Каков наилучший способ объединить измерения из информации IMU, LIDAR и Encoder в некотором рекурсивном байесовском фильтре?

8

Я делаю SLAM с четырехколесным (двухколесным) роботом с дифференциальным приводом, проезжающим через холл. Коридор не везде плоский. И робот поворачивается, вращаясь на месте, а затем движется в полученном направлении. Алгоритм SLAM не нужно запускать онлайн.

Робот выполняет измерения с ремня вниз измерения IMU / гироскопа (ax,ay,az,wx,wy,wz), где axотносится к ускорению в направлении х и wxизмеряет угловое ускорение вокруг оси х. LIDAR сканирует прихожую с дугой в 270 градусов и измеряет диапазоны и углы. Тем не менее, насколько я знаю, прихожая не имеет заметных черт, кроме тех случаев, когда она идет по углам.

Мне нужно найти лучший способ объединить предлагаемое действие, измеренное кодером, с данными IMU и LIDAR. Для меня имеет смысл, что я мог бы объединить рывок от IMU с данными энкодера, чтобы лучше понять курс, но как мне включить данные LIDAR?

По сути, что является подходящей моделью измерения и как я должен включить шум в модель движения ? Помимо добавления гауссовских шумов (0,σ)?

добавление

Это несколько ортогонально к вопросу, но так же смущает меня. В настоящее время я использую фильтр частиц для создания SLAM, и меня немного смущает вопрос о том, представлять ли неопределенность углового ускорения в самих частицах. Я вижу два варианта:

  1. Отдельный навигационный фильтр, использующий EKF (или что-нибудь на самом деле), чтобы сначала найти вектор матрицы наилучшего оценивания углового ускорения, а затем использовать эту матрицу как абсолютную правду для фильтра частиц. Так что любой дрейф в частицах не из-за неопределенности в угловом ускорении.

  2. Включите неопределенность в дрейф частиц сами. Этот вариант кажется более разумным, но я не уверен, что принципиальный способ сделать это.

chibro2
источник
Если я могу сделать техническую коррекцию, гироскоп в IMU измеряет угловую скорость . Акселерометр измеряет линейное ускорение .
Шон

Ответы:

2
  • Поскольку у вас есть 2D-датчик, который вы не можете вращать контролируемым образом, вы можете рассчитывать на выполнение SLAM только в 2D-плоскости.

  • Лучше всего использовать IMU для оценки ориентации (только по крену и тангажу, поскольку у вас нет компаса) и соответственно корректировать каждое слегка повернутое 2D лазерное сканирование. Если ваш IMU уже не предоставляет вам оценку отношения, я бы вычислил оценки отношения, используя нелинейный дополнительный фильтр, поскольку они нуждаются только в настройке одной единственной константы.

  • Несмотря на то, что теоретически возможно использование фильтров частиц для SLAM с лазерным сканированием (см. Gmapping), текущим уровнем техники является SLAM на основе графа, т.е. оптимизация наименьших квадратов графа SLAM или в вашем случае оптимизация графа позы. Посмотрите на karto в ROS как на пример реализации с открытым исходным кодом.

sebsch
источник