跳到正文
EMBODIED INTELLIGENCE · 感知、空间与导航

机器人不知道自己在哪,只能不断更新估计

轮子转了多少、相机看见什么、身体如何加速,都只是关于状态的证据。状态估计融合这些证据;同时定位与建图进一步联合推断轨迹和环境。读懂漂移、回环与坐标系,才能理解为什么地图看起来正确,机器人仍可能走偏。

移动机器人绕过室内隔墙后回到起点附近,局部地图与轨迹逐渐对齐,表达建图、漂移与回环修正。
直觉总览:移动机器人绕过室内隔墙后回到起点附近,局部地图与轨迹逐渐对齐,表达建图、漂移与回环修正。 生成插画不承载精确结构、尺寸或安全保证,正文机制图为准。 查看原图 ↗
01 · 测量不是状态本身

轮子转了一圈,不保证车走了一圈对应的距离

闭眼数步可以估计走了多远,但地面打滑、步幅变化和转向误差会逐渐累积。看到熟悉门口时,你会用它修正判断。机器人也需要在运动预测与新测量之间不断校正;不同之处是它必须明确建模误差,而不能靠人的直觉补齐。

状态可以包含位置、姿态、速度和传感器偏置,具体取决于模型。惯性测量单元 IMU(Inertial Measurement Unit)提供角速度与加速度相关观测,不直接给出可靠的长期位置;轮编码器可以快速提供局部运动信息,却会受滑移与轮径误差影响。

p(xt∣z1:t,u1:t)∝p(zt∣xt)∫p(xt∣xt−1,ut) p(xt−1∣z1:t−1,u1:t−1) dxt−1p(x_t\mid z_{1:t},u_{1:t})\propto p(z_t\mid x_t)\int p(x_t\mid x_{t-1},u_t)\,p(x_{t-1}\mid z_{1:t-1},u_{1:t-1})\,dx_{t-1}
贝叶斯滤波的简化表达:x 是状态,z 是观测,u 是运动输入。先根据运动模型预测,再用当前观测修正;依赖马尔可夫等建模假设。积分不是要求工程实现必须显式枚举所有状态。

扩展卡尔曼滤波 EKF(Extended Kalman Filter)在当前估计附近线性化非线性模型;无迹卡尔曼滤波 UKF(Unscented Kalman Filter)用代表性采样点传播均值与协方差。两者都有分布与模型假设,不是把更多传感器接上就自动更准。

协方差表达估计的不确定程度和变量之间的相关性。误把同一轮速推导出的速度和里程当成完全独立的两份证据,可能让系统过度自信;给坏传感器设置极小噪声,也会让滤波器错误地信任它。模型没覆盖的系统偏差,不会因为输出了协方差就消失。

官方实现 · 查询于 2026-10-20

状态融合不等于建图

robot_localization 文档使用 15 维状态,包含三维位置、姿态、线速度、角速度和线加速度,用预测与测量修正融合状态。这个维数是该实现的约定,不是所有机器人的标准状态;它本身也不意味着自动创建环境地图。实现文档。

02 · 一边认识环境,一边认识自己

同时定位与建图,解决的是相互依赖

同时定位与建图 SLAM(Simultaneous Localization and Mapping)面对一个循环问题:知道自己在哪,才能把观测放进地图;知道地图长什么样,又能更准确地定位。系统通过跨时刻观测建立约束,联合或交替优化轨迹与环境表示。

  1. 匹配观测

    在图像特征、点云或其他表征间建立对应;动态物体与重复纹理会误导匹配。

  2. 估计局部运动

    利用相邻观测和惯性信息计算短时运动,选取关键帧并构建局部约束。

  3. 识别旧地点

    检测可能的回访,再做几何验证;“看起来像”不能直接当成同一个地方。

  4. 优化轨迹与地图

    利用相对运动、回环和其他测量减小不一致;鲁棒损失不能保证所有错误约束都无害。

典型分层流程,不限定所有 SLAM 实现。前端建立观测关系,后端优化约束;地图可以是稀疏点、稠密几何或其他表示。

视觉里程计主要关注连续运动估计;SLAM 常进一步利用长期地点识别与回环纠正累计漂移。回环不是“把两条线硬拉到一起”:一个错误回环可能扭曲整张地图,所以需要外观候选、几何一致性与后端鲁棒性共同把关。

纯单目几何通常无法仅由图像恢复绝对米制尺度;双目已知基线、深度传感或满足可观测条件的惯性融合可提供额外尺度信息。不能把“有 IMU”写成在所有运动条件下立即准确恢复尺度,静止或退化运动仍可能让初始化困难。

03 · 长期一致与短期连续

地图允许修正,控制却不能突然跳一下

Tmap,base=Tmap,odom  Todom,baseT_{\mathrm{map,base}}=T_{\mathrm{map,odom}}\;T_{\mathrm{odom,base}}
沿用 T_AB 把 B 系坐标变到 A 系的约定。ROS 的常见关系是 map → odom → base_link;全局修正可作用于 map 与 odom 之间,不必让局部里程计中的机体运动出现离散跳变。

REP 105 区分两种需求:odom 中的机器人位姿应连续,但长期可以漂移;map 适合全局参考,可随着新定位证据发生离散修正。这里“连续”是坐标接口应满足的语义,不是说轮速或惯性测量永远没有噪声。官方约定。

如果回环把全局位置修正了 20 cm,这不意味着机器人身体真的瞬间移动了 20 cm。控制器若把它误当成高速运动,可能产生错误动作。将局部运动与全局定位分开,使各模块能按自己的连续性与参考系需求工作。

另一个常见错误是变换时间不一致:地图里的障碍来自过去,机器人位姿来自现在。即便每个坐标变换单独正确,组合后仍可能错位。导航不仅需要一条可连通的坐标链,还需要对观测时刻可用的坐标链。

04 · 精度属于实验合同

厘米级结果,不是所有道路上的承诺

ORB-SLAM3 的 2021 年修订论文摘要报告,其双目惯性配置在 EuRoC 数据集达到平均 3.6 cm 的精度,在 TUM-VI 房间快速手持运动设置达到 9 mm。它说明特定系统与协议下的能力,不代表任何相机、光照和机器人都能得到该数字;也不能把它当成本文已经复现的结果。原论文及版本记录。

绝对轨迹误差 ATE(Absolute Trajectory Error)关注对齐后的整体轨迹偏差;相对位姿误差 RPE(Relative Pose Error)关注一定时间或距离间隔内的运动误差。是否对齐尺度、用哪种轨迹对齐、统计均方根还是其他聚合,都会影响数字可比性。

还应记录跟踪丢失次数、重定位时间、长距离漂移、计算延迟、动态物体比例与运行时长。一条很准但经常失联的轨迹,不一定比略有误差但稳定可用的局部状态更适合控制。

失效时如何处理

机器人不应在定位可信度下降时继续假装坐标准确。系统应按任务与安全约束减速、停下、重新观察或请求接管。绘制出一张漂亮地图,不是定位链路始终可靠的证明。

KNOWLEDGE CONNECTIONS

把这一层放回完整机器人

返回具身智能知识地图,或沿本专栏继续展开:

RESEARCH LEDGER

一手来源与证据边界

优先使用论文、官方文档、官方模型卡和代码仓库。页面中的数字只代表来源所述设置,不自动外推到其他模型与数据。