PART 05 · CHAPTER 27

定位与 SLAM:一边走,一边知道自己在哪里

一句话理解

SLAM 同时估计机器人的轨迹和环境地图,用不断重访与校正对抗传感器积分漂移。

约 1,814 字约 5 分钟5 个来源3 幅教学图

定位、建图与 SLAM 的区别

若地图已知,只估计机器人在地图中的位姿,称为定位;若机器人位姿由外部系统准确提供,只把观测写入地图,称为建图;地图和位姿都未知并相互依赖,就是同步定位与建图(SLAM)。位姿影响观测应该写到地图哪里,地图又提供位姿校正依据,因此这是一个“鸡与蛋”问题。

里程计根据轮速或 IMU 从上一时刻推到下一时刻,短时连续,误差会积累。扫描匹配或视觉里程计通过相邻帧对齐估计相对运动,也会缓慢漂移。SLAM 的关键额外信息是回环:机器人再次看到曾经到过的地方时,识别为同一位置,给整个历史轨迹增加一条长距离约束。

前端与后端

SLAM 系统通常分前端和后端。前端处理传感器数据:提取视觉特征、匹配点、对齐激光扫描、生成相对位姿约束,并判断是否发生回环。后端把机器人位姿和地标作为变量,优化所有约束的一致性。

位姿图优化可写为

FIGURE 01里程计漂移与回环校正估计里程计漂移回环校正感知环境反馈SLAM 依靠重访建立全局一致性,每一步局部估计都允许带误差。
图 1 回环约束把局部误差传播回整条历史轨迹。
\[\min_{\{\mathbf T_i\}} \sum_{(i,j)\in\mathcal E} \left\| \operatorname{Log}\left( \mathbf Z_{ij}^{-1}\mathbf T_i^{-1}\mathbf T_j \right) \right\|_{\boldsymbol\Omega_{ij}}^2.\]

\(\mathbf T_i\) 是第 \(i\) 个关键帧位姿,\(\mathbf Z_{ij}\) 是前端测得的 \(i\)\(j\) 相对变换,\(\boldsymbol\Omega_{ij}\) 是信息矩阵,表示约束可信度;\(\operatorname{Log}\)\(SE(3)\) 上的位姿误差映射到局部六维向量。优化在所有边 \(\mathcal E\) 上寻找最一致的轨迹。

只含相对约束的位姿图没有绝对原点,整体平移或旋转后残差不变,这称为规范自由度。优化时通常固定第一个位姿或加入先验;若忘记固定,线性系统会秩亏。固定原点只是在选择地图坐标,不会凭空提高轨迹的相对精度。

视觉 SLAM 还常使用重投影误差。三维地标 \(\mathbf P_l\) 经位姿投影到图像的预测像素,与实际观测 \(\mathbf u_{il}\) 的误差为

\[\mathbf e_{il}=\mathbf u_{il}-\pi(\mathbf T_i^{-1}\mathbf P_l),\]

束调整同时优化相机位姿与地标,使 \(\sum\|\mathbf e_{il}\|^2\) 最小。\(\pi\) 是相机投影函数。真实数据会有误匹配,因此通常加入 Huber 等鲁棒损失,降低异常边影响。

FIGURE 02SLAM 前端与后端前端产生带不确定性的约束后端求全局一致。输出控制传感器
图 2 前端产生带不确定性的约束,后端求全局一致。

地图并不只有一种

二维占据栅格适合室内轮式导航,容易做碰撞检查;点云地图保留三维几何,但数据量大;体素与截断符号距离场适合三维重建;视觉特征地图只保存可重定位地标,几何外观不完整;语义地图增加房间、门、桌子等对象与关系。

地图选择要服务任务。扫地机器人不必保存每个杯子的三维网格;机械臂抓取却需要局部高精度表面。常见架构把静态全局地图、动态局部代价地图和语义对象层分开,更新周期和生命周期也不同。

回环、数据关联与“灾难性自信”

数据关联判断当前观测对应哪个既有地标或位置。漏掉真实回环会保留漂移,影响是渐进的;接受错误回环会强行把两处不同地点拉到一起,可能使整张地图折叠。外观相似的走廊、重复货架和玻璃反射都会制造假回环。

可靠系统用多级验证:外观候选生成后,再做几何一致性检查、最小内点数、运动合理性和时间/拓扑限制;后端使用鲁棒核或可切换约束。重定位也应输出置信度,并保留“当前未知”的状态。

FIGURE 03同一环境的四种地图定位与 SLAM:一边走,一边知道自己在哪里适合的任务丢失的信息地图是面向任务的世界表示规划控制环境地图分辨率和语义层级应由规划与控制需要决定。
图 3 地图是面向任务的世界表示,必然保留一部分信息并舍弃另一部分。

退化与动态环境

长直走廊对二维激光的纵向位置约束弱;纯白墙对视觉缺少特征;机器人原地匀速旋转时,单目尺度仍不可观;振动会污染 IMU;大量行人会让前端把动态物体当成静态地标。这些都称为可观测性或环境退化。

处理方法包括融合不同传感器、主动改变运动以获得视差、剔除动态物体、利用轮速或先验地图,以及检测退化后降低速度。系统应监控匹配内点数、残差、协方差、求解条件数和传感器健康,而不能只输出一个看似连续的位姿。

工程例子:仓库地图在夜间“弯了”

白天建图时货架通道里有人和叉车,夜间重定位时场景更空;重复货架纹理造成错误回环,后端把相隔几十米的两个通道合并。若系统自动保存覆盖原地图,第二天所有导航都会受影响。

工程上应把建图和在线定位的写权限分开;候选地图先离线验证或与基准锚点比较;关键区域添加可靠几何特征或人工标志;回环需几何验证;发生地图跃变时暂停机器人并保留原版本。地图是一项需要版本、来源和验收的生产资产。

深入阅读