SLAM :同步定位与建图的核心原理与实践
提供自动驾驶软硬件解决方案,需要项目合作的请留言。
SLAM = Simultaneous Localization and Mapping,同步定位与建图
一、SLAM 的本质:两个未知量互相依赖
在经典 SLAM 问题中,机器人轨迹和地图两者都是未知的。这就是经典的「先有鸡还是先有蛋」问题:
- 想要定位机器人,需要一张已知地图;
- 想要构建地图,需要知道机器人自身的位置(位姿)。
两个量都不知道,没法单独求解。下图用圆圈代表机器人,星星代表环境路标点(landmark),直观展示了这一相互依赖关系:机器人位姿决定了路标在地图中的坐标,而路标的位置又反过来约束机器人的位姿。

二、地图与位姿估计误差相互耦合
Map and pose estimates correlated,译文为:地图估计误差和位姿估计误差是相互耦合、相关的。
机器人位姿一旦估计偏了,用这个错误位姿观测出来的地图特征坐标也会跟着出错;反过来,地图上特征估计不准,又会进一步污染后续机器人定位结果,误差会互相传递、累积,很难分开处理。
因此,SLAM 不能把定位和建图拆成两个独立模块分别求解,而必须把它们放在同一个状态向量里做联合估计。这也是后端优化中协方差矩阵呈现非对角块结构的原因——位姿与路标之间的相关性被显式建模,而不是被忽略。
三、观测与地图的对应关系未知:数据关联问题
观测值与地图之间的对应关系是未知的,这就是数据关联(data association)问题——机器人不知道现在看到的这个特征,到底对应地图里哪一个路标点。
具体来说,机器人在某一时刻通过传感器(如激光雷达、相机)提取到一组观测特征,而地图中已经维护着一批路标点。问题在于:
- 当前观测到的特征,究竟对应地图中的哪一个路标?
- 它是不是一个从未见过的新路标,需要被加入地图?
- 还是说它只是噪声或动态物体,根本不应该被关联?
这个对应关系无法直接获得,只能通过特征描述、几何约束和概率模型去推断。一旦关联错误,就会把错误的观测强行绑定到某个路标上,导致该路标坐标被污染,进而影响位姿估计,误差继续向后传播。
因此,数据关联与位姿估计、地图构建三者是紧密耦合的:关联错了,地图和轨迹都会跟着错;而地图和位姿不准,又会让后续的关联判断更加困难。这也是 SLAM 前端需要设计稳健的特征匹配策略、后端需要引入异常值剔除与一致性检验的根本原因。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)