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