Я делаю SLAM с четырехколесным (двухколесным) роботом с дифференциальным приводом, проезжающим через холл. Коридор не везде плоский. И робот поворачивается, вращаясь на месте, а затем движется в полученном направлении. Алгоритм SLAM не нужно запускать онлайн.
Робот выполняет измерения с ремня вниз измерения IMU / гироскопа (ax,ay,az,wx,wy,wz)
, где ax
относится к ускорению в направлении х и wx
измеряет угловое ускорение вокруг оси х. LIDAR сканирует прихожую с дугой в 270 градусов и измеряет диапазоны и углы. Тем не менее, насколько я знаю, прихожая не имеет заметных черт, кроме тех случаев, когда она идет по углам.
Мне нужно найти лучший способ объединить предлагаемое действие, измеренное кодером, с данными IMU и LIDAR. Для меня имеет смысл, что я мог бы объединить рывок от IMU с данными энкодера, чтобы лучше понять курс, но как мне включить данные LIDAR?
По сути, что является подходящей моделью измерения и как я должен включить шум в модель движения ? Помимо добавления гауссовских шумов (0,σ)
?
добавление
Это несколько ортогонально к вопросу, но так же смущает меня. В настоящее время я использую фильтр частиц для создания SLAM, и меня немного смущает вопрос о том, представлять ли неопределенность углового ускорения в самих частицах. Я вижу два варианта:
Отдельный навигационный фильтр, использующий EKF (или что-нибудь на самом деле), чтобы сначала найти вектор матрицы наилучшего оценивания углового ускорения, а затем использовать эту матрицу как абсолютную правду для фильтра частиц. Так что любой дрейф в частицах не из-за неопределенности в угловом ускорении.
Включите неопределенность в дрейф частиц сами. Этот вариант кажется более разумным, но я не уверен, что принципиальный способ сделать это.
источник
Ответы:
Поскольку у вас есть 2D-датчик, который вы не можете вращать контролируемым образом, вы можете рассчитывать на выполнение SLAM только в 2D-плоскости.
Лучше всего использовать IMU для оценки ориентации (только по крену и тангажу, поскольку у вас нет компаса) и соответственно корректировать каждое слегка повернутое 2D лазерное сканирование. Если ваш IMU уже не предоставляет вам оценку отношения, я бы вычислил оценки отношения, используя нелинейный дополнительный фильтр, поскольку они нуждаются только в настройке одной единственной константы.
Несмотря на то, что теоретически возможно использование фильтров частиц для SLAM с лазерным сканированием (см. Gmapping), текущим уровнем техники является SLAM на основе графа, т.е. оптимизация наименьших квадратов графа SLAM или в вашем случае оптимизация графа позы. Посмотрите на karto в ROS как на пример реализации с открытым исходным кодом.
источник