В книге SLAM для манекенов нам даже нужна одометрия, когда робот использует данные, полученные с лазерного сканера, что является более точным, чем одометрия? Почему бы просто не положиться на лазерный сканер и отказаться от одометрии? Есть ли какой-то вклад одометрии, которого нет у лазерного сканера? Кроме того, все ли алгоритмы SLAM основаны на функциях?
localization
slam
mapping
Xegara
источник
источник
Ответы:
Вы читаете это слишком узко.
Вам не «нужна» одометрия. SLAM - это просто способ объединить любые оценки датчиков в последовательную оценку состояния робота.
«Основанный на функциях» не обязательно означает, что вам нужно иметь идентифицируемые функции повсюду в среде.
Первый принцип сенсорного синтеза: две оценки лучше, чем одна!
пример
Я не читал книгу "для чайников", но если они не приведут следующий числовой пример, я подожгу книгу и получу лучшую. И если они делают есть этот пример, то я удивляюсь , почему ты не сказал об этом!
(Вы можете следовать в математике здесь )
Робот в положенииx=0 и движется вправо (увеличивается Икс ). В этом идеальном мире динамика и сенсорные режимы линейны. (в противном случае используйте EKF, PF или другой вариант).
Вот как робот обрабатывает SLAM в этой простой среде. (обратите внимание, что это на самом деле локализация, так как мы не обновляем положение стены).
Вопрос : где ты?
Вы выбираете лучший датчик? В этом случае лазер самый лучший, верно? Так что, очевидно, я вх = 1,2 ,
Вы выбираете тот, «ближайший» к тому, что вы ожидаете? Ну, в этом случае я думаю, что мы должны использовать одометрию, так как+0,9 ближе к тому, что я намеревался, (двигаясь на одну единицу).
Может быть, вы могли бы усреднить два? Ну, это лучше, но оно подвержено выбросам.
Блестящие принципы сенсорного синтеза говорят вам, как ответить на вопрос следующим образом:
Ваша минимальная среднеквадратичная оценка положения робота определяется как:
... если я не облажался где-то в алгебре. Люди локализуют самолеты, используя математику, не намного более сложную, чем эта.
источник
Если вы прочитаете о принципах слияния сенсоров, вы всегда получите более точную оценку, если правильно объедините данные. Например, если вы измеряете температуру в комнате с 3-мя различными датчиками температуры, не стоит использовать только лучший датчик. Идеальным вариантом было бы создать взвешенную комбинацию каждого датчика, где вес датчика пропорционален единице, превышающей дисперсию этого датчика. Не говоря уже о том, что данные одометрии ОЧЕНЬ хороши. Это извлечение ориентиров, которое является шумным и, скорее всего, будет иметь более высокую дисперсию.
Если вы думаете об этом с точки зрения высокого уровня, вам также необходимо иметь обновление движения, основанное на одометрии. Если бы вы использовали только ориентиры, то у вас были бы неоднозначные случаи. Возьмем, к примеру, случай, когда вы определяете только один ориентир. У вас будет расстояние z от вашего робота до ориентира, но это будет отображать бесконечное число точек в круге вокруг ориентира. Если вы идентифицируете ноль ориентиров, то вы ничего не можете сделать! Включая одометрию, мы больше не имеем двусмысленности. Предполагая, что мы локализуем в 2D плоскости (x, y), вам нужно будет гарантировать, что у вас есть показания как минимум для 3 ориентиров, чтобы триангулировать ваше положение без одометрии, и вы не можете сделать это в нормальных условиях.
Наконец, кодер может быть сэмплирован порядка 50 Гц, тогда как LIDAR может быть сэмплирован только на частоте около 6-7 Гц (не указывайте меня на этих частотах). Это означает, что вы можете обновлять свою текущую позицию гораздо чаще с помощью одометрии, чем по показаниям датчика. Это даже не принимая во внимание, сколько времени вам потребуется, чтобы обработать показания датчика для определения ориентиров!
источник
Просто добавим, что использование одометрии для оценки положения робота намного быстрее, чем использование данных с лазерного сканера. В большинстве случаев данные со сканера дальности обрабатываются как 2D PointCloud. Это означает, что для оценки относительной позы между позициями A, B вам необходимо выровнять их соответствующие облака точек и найти наиболее вероятную позу этой операции выравнивания. Для этого вы должны использовать ICP или аналогичный алгоритм, который из-за своей итеративной природы требует больших вычислительных ресурсов.
С другой стороны, используя информацию об одометрии (например, от колесных энкодеров), вам просто нужно сложить текущую оценку вашей позы, которая является просто суммой двух функций плотности вероятности (текущая оценка + добавочное чтение одометрии)
источник
Принципы EKF были хорошо объяснены в других ответах.
Я хотел бы добавить, что вы можете делать SLAM без использования одометрии, то есть, например, только с помощью LIDAR.
«Кроме того, все ли алгоритмы SLAM основаны на функциях?»
Нет не все конечно
источник