В EKF-SLAM зачем нам нужна одометрия, когда есть более надежный датчик? Кроме того, все ли алгоритмы SLAM основаны на функциях?

8

В книге SLAM для манекенов нам даже нужна одометрия, когда робот использует данные, полученные с лазерного сканера, что является более точным, чем одометрия? Почему бы просто не положиться на лазерный сканер и отказаться от одометрии? Есть ли какой-то вклад одометрии, которого нет у лазерного сканера? Кроме того, все ли алгоритмы SLAM основаны на функциях?

Xegara
источник
Один вопрос за раз, пожалуйста. Но я попытался ответить на оба вопроса. Теперь, пожалуйста, не редактируйте вопрос, чтобы задать больше. Вместо этого задавайте в отдельных вопросах. Спасибо!
Джош Вандер Хук

Ответы:

10

Вы читаете это слишком узко.

  • Вам не «нужна» одометрия. SLAM - это просто способ объединить любые оценки датчиков в последовательную оценку состояния робота.

  • «Основанный на функциях» не обязательно означает, что вам нужно иметь идентифицируемые функции повсюду в среде.

  • Первый принцип сенсорного синтеза: две оценки лучше, чем одна!

пример

Я не читал книгу "для чайников", но если они не приведут следующий числовой пример, я подожгу книгу и получу лучшую. И если они делают есть этот пример, то я удивляюсь , почему ты не сказал об этом!

(Вы можете следовать в математике здесь )

Робот в положении x=0и движется вправо (увеличивается x). В этом идеальном мире динамика и сенсорные режимы линейны. (в противном случае используйте EKF, PF или другой вариант).

  • Там точно стена x=10 до которого робот может измерить расстояние.
  • Робот оснащен лазерным сканером для определения расстояния с отклонением датчика σl2=.1
  • Робот может измерять пройденное расстояние с помощью одометров, используя дисперсию датчиков. σo2=.5, Очевидно, что лазер более точен, чем сигнал.

Вот как робот обрабатывает SLAM в этой простой среде. (обратите внимание, что это на самом деле локализация, так как мы не обновляем положение стены).

  • Робот пытается переместить одну единицу вправо.
  • Одометрия меры x=.9
  • Лазерный сканер говорит, что вы 8.8юниты от стены. (подразумевая, что вы на 1.2)

Вопрос : где ты?

  • Вы выбираете лучший датчик? В этом случае лазер самый лучший, верно? Так что, очевидно, я вx=1.2,

  • Вы выбираете тот, «ближайший» к тому, что вы ожидаете? Ну, в этом случае я думаю, что мы должны использовать одометрию, так как.9 ближе к тому, что я намеревался, (двигаясь на одну единицу).

  • Может быть, вы могли бы усреднить два? Ну, это лучше, но оно подвержено выбросам.

  • Блестящие принципы сенсорного синтеза говорят вам, как ответить на вопрос следующим образом:

Ваша минимальная среднеквадратичная оценка положения робота определяется как:

xmmse=σl2σo2+σl2(.9)+σo2σo2+σl2(1.2)
xmmse=.1.6(.9)+.5.6(1.2)
xmmse=1.15

... если я не облажался где-то в алгебре. Люди локализуют самолеты, используя математику, не намного более сложную, чем эта.

Джош Вандер Хук
источник
6

Если вы прочитаете о принципах слияния сенсоров, вы всегда получите более точную оценку, если правильно объедините данные. Например, если вы измеряете температуру в комнате с 3-мя различными датчиками температуры, не стоит использовать только лучший датчик. Идеальным вариантом было бы создать взвешенную комбинацию каждого датчика, где вес датчика пропорционален единице, превышающей дисперсию этого датчика. Не говоря уже о том, что данные одометрии ОЧЕНЬ хороши. Это извлечение ориентиров, которое является шумным и, скорее всего, будет иметь более высокую дисперсию.

Если вы думаете об этом с точки зрения высокого уровня, вам также необходимо иметь обновление движения, основанное на одометрии. Если бы вы использовали только ориентиры, то у вас были бы неоднозначные случаи. Возьмем, к примеру, случай, когда вы определяете только один ориентир. У вас будет расстояние z от вашего робота до ориентира, но это будет отображать бесконечное число точек в круге вокруг ориентира. Если вы идентифицируете ноль ориентиров, то вы ничего не можете сделать! Включая одометрию, мы больше не имеем двусмысленности. Предполагая, что мы локализуем в 2D плоскости (x, y), вам нужно будет гарантировать, что у вас есть показания как минимум для 3 ориентиров, чтобы триангулировать ваше положение без одометрии, и вы не можете сделать это в нормальных условиях.

Наконец, кодер может быть сэмплирован порядка 50 Гц, тогда как LIDAR может быть сэмплирован только на частоте около 6-7 Гц (не указывайте меня на этих частотах). Это означает, что вы можете обновлять свою текущую позицию гораздо чаще с помощью одометрии, чем по показаниям датчика. Это даже не принимая во внимание, сколько времени вам потребуется, чтобы обработать показания датчика для определения ориентиров!

Андрей Каподиеч
источник
3

Просто добавим, что использование одометрии для оценки положения робота намного быстрее, чем использование данных с лазерного сканера. В большинстве случаев данные со сканера дальности обрабатываются как 2D PointCloud. Это означает, что для оценки относительной позы между позициями A, B вам необходимо выровнять их соответствующие облака точек и найти наиболее вероятную позу этой операции выравнивания. Для этого вы должны использовать ICP или аналогичный алгоритм, который из-за своей итеративной природы требует больших вычислительных ресурсов.

С другой стороны, используя информацию об одометрии (например, от колесных энкодеров), вам просто нужно сложить текущую оценку вашей позы, которая является просто суммой двух функций плотности вероятности (текущая оценка + добавочное чтение одометрии)

bergercookie
источник
-1

Принципы EKF были хорошо объяснены в других ответах.

Я хотел бы добавить, что вы можете делать SLAM без использования одометрии, то есть, например, только с помощью LIDAR.

«Кроме того, все ли алгоритмы SLAM основаны на функциях?»

Нет не все конечно

AL-РОБОТ
источник