机器人如何在SLAM中进行姿态估计?

How does robot do pose estimation in SLAM?

我知道在粒子滤波算法中,机器人可以根据给定的地图选择最佳姿势。但是机器人如何在没有给定地图的 SLAM 中预测姿势。我们从 IMU 获取数据吗?

SLAM 是一个非常广泛的应用,关于如何执行 SLAM 有很多方法。

基本思想是估计环境地图以及机器人在环境中所走的路径。地图通常由测量环境中突出地标位置的传感器感测。机器人的运动通常由 IMU、里程计或 GPS 传感器集成。不过,用于执行 SLAM 的设置和算法可能会有很大差异。

甚至不需要从机器人那里获取运动数据。您可以考虑一个卡尔曼滤波器,它在其状态向量中跟踪地标位置和机器人位置,并假设没有控制输入的机器人具有恒定位置状态转换模型。即使过渡模型被假定为恒定位置,地标位置的测量更新在理论上也足以给出机器人更新位置的估计。

如果您考虑“运动结构”方法,这会更进一步,在这种方法中,在环境中移动的单个相机用于根据图像特征估计环境地图,同时估计路径相机穿过那张地图。

因此,只要您没有特定的传感器设置和算法,"how a robot does pose estimation in SLAM" 的问题就不会真正有效。如果您有具体问题,我也许可以为您指明具体文献的方向。

Sebastian Thrun 的 probabilistic robotics 一书很好地介绍了 SLAM 的概率方法。

在没有提供地图的情况下,机器人会通过其上的传感器检测周围环境。它通过标记在 three-dimensional space 中检测到的点来创建地图。例如,vision-based 机器人试图在下一个场景(帧)中找到它在当前场景(帧)中检测到的兴趣点(特征)。它试图通过查看它在屏幕上找到的特征的位移来确定自己的位移。将这个概念表示为里程计,机器人可以估计它在环境中移动了多少。里程计信息通常是通过传感器融合的方式使用多个不同的传感器获得的,而不是单个传感器。