我正在通过四轮(两轮驱动)差动驱动机器人通过某个走廊行驶来进行SLAM。走廊到处都不平坦。然后,机器人旋转到位,然后沿最终方向移动。 SLAM算法不需要在线运行。 。 LIDAR以270度弧线扫描走廊,并测量范围和角度。但是,据我所知,走廊只有在拐角处时才有可辨别的特征

我需要找到将编码器测量的提议动作与IMU和LIDAR数据融合的最佳方法。我可以将IMU的偏航与编码器数据融合在一起,以获得更好的航向感,但是我应该如何合并LIDAR数据?

本质上,什么是合适的测量模型?如何将噪声纳入运动模型?除了在一些(ax,ay,az,wx,wy,wz)处添加一些高斯噪声外,这还与问题有些正交,但也使我感到困惑。目前,我正在使用粒子滤波器执行SLAM,并且对于是否表示粒子本身的角加速度不确定性,我有些困惑。我看到两个选择:


使用EKF(或其他任何东西)的单独导航过滤器,首先找到“最佳估计”角加速度矩阵的向量,然后将该矩阵用作绝对真值用于粒子过滤器。这样,粒子中的任何漂移都不会来自角加速度的不确定性。
将不确定性纳入粒子漂移本身。此选项似乎更明智,但我不确定实现此目的的原则是什么。


评论

如果我可以进行技术更正,则表示IMU中的陀螺仪正在测量角速度。加速度计可测量线性加速度。

#1 楼


由于您拥有无法以受控方式旋转的2D传感器,因此只能期望在2D平面上执行SLAM。 (因为您没有指南针,因此只能倾斜),并相应地校正每个稍微旋转的2D激光扫描。如果您的IMU还没有为您提供姿态估计,我将使用非线性互补滤波器来计算姿态估计,因为它们仅需要调整一个常数。
即使理论上可以将SLAM的粒子滤波器用于激光扫描(请参见gmapping),当前的最新技术是基于图的SLAM,即SLAM图的最小二乘优化,或者在您的情况下为姿态图优化。看看ROS中的karto作为示例性开源实现。