返回专辑
·Johan·4 分钟阅读

轮速里程计标定:轴距、轮径误差如何污染整个导航栈

推导差速模型中轮径与轴距误差对曲率和尺度漂移的影响,给出 UMBmark 标定流程与激光里程计对齐验收方法。

轮速里程计标定:轴距、轮径误差如何污染整个导航栈

1. 轮速是导航栈的尺子

轮速计便宜、高频、不受光照影响,却常被随便填个轮径。我追过三天「激光 SLAM 回环过多」——最后发现左右轮径差 3 mm,机器人走直线其实在微弯,激光里程计被当外点,后端一直在拧。轮速标定不性感,但是整个导航栈的尺子。Nav2 画龙时,先量直线 5 m 横向偏差、原地 180° 角度偏差——比直接改 AMCL 粒子数有效。

2. 差速模型里的两个关键尺度

离散形式:

为轮距, 为轮半径。误差来源:左右轮径不等(磨损、充气、温度);有效轴距与 CAD 不符(万向轮摩擦、地面变形);编码器分辨率/减速比填错;打滑(模型外,但会被标定「吸收」)。

3. 误差如何表现

误差类型直线行走原地旋转 / 圆弧
左右轮径同比例偏差距离尺度错角度也可能偏
左右轮径差走偏(隐含曲率)角度误差显著
轴距 B 偏大影响较小同样轮速差下 偏小
轴距 B 偏小影响较小 偏大,转多了

轮速被当硬约束时,激光/视觉只会被当外点——回环增多、融合 filter 中 IMU 被错误轮速带偏、Nav2 窄道画龙。横向偏差随距离线性增 → 轮径差;角度单独偏 → 轴距或单轮尺度。

4. 经典标定流程

直线实验(估平均轮径尺度):在已知长度 的直线上走行:

等比更新 。重复 3 次取中位数,速度要慢——打滑时 odom 不可信。

转圈实验(估轴距/轮径差):原地或固定半径转过

UMBmark 用 4 个 90° 弧组成闭合路径,一次实验同时估 ——比单步实验更 robust。

与激光里程计对齐:慢速走矩形或 8 字(30–60 s),对齐 odom_wheelodom_lidar 相对运动,估 和 yaw bias。激光本身有 drift 时不能当绝对真值——用短轨迹、多次平均,排除退化段。

5. 写入 ROS 2 与现场维护

diff_drive_controller / 驱动参数与 URDF 轮径一致odom→base_link 协方差诚实:打滑场景加大 process noise。融合中不要让错误轮速以过小协方差绑架 IMU/激光——协方差虚标参数错误一样致命。

环氧 vs 水泥 vs 地毯,有效轮径差可达 1–2%。标定应绑定地面类型;换场地重验直线 10 m。充气不足时左右半径差也会变——运维 SOP 写「每周目视轮胎 + 月度抽测直线」不夸张。

6. 与 SLAM/导航的分工

轮速:高频、短时平滑、填充视觉/激光失效空隙。激光/视觉:纠 drift、给全局。回环异常多:先查轮速尺度,再查回环阈值。Nav2 局部规划读 odom——轮速错 = 控制器在错坐标系里工作。

7. 融合 filter 里的轮速协方差

EKF/ESKF 融合轮速 + IMU + 激光时,轮速 measurement noise 过小会绑架 IMU bias 估计——表现像「IMU 和轮速打架」。打滑场景应动态增大轮速 process noise,或检测 超阈值时降权。协方差虚标和参数错误一样致命。

robot_localizationodom0_config 决定哪些分量融合——只融合 而丢弃侧向,是差速模型的正确契约;把假的 也融合进去会引入虚假约束。

8. 验收

  • 直线 10 m:距离误差 < 1–2%(视地面)
  • 原地 360°:角度误差可重复(3 次 std < 1°)
  • 矩形闭环:开环终点偏差 < 5 cm / 2°
  • 与激光 odom 短轨迹对齐残差 < 阈值
  • 标定前后 SLAM 回环次数 / ATE 变化
  • 打滑检测:轮速预测 vs IMU 加速度一致性
  • 融合中轮速 innovation 序列无系统性偏置

轮速标定报告绑定机器人 SN 与地面类型。尺子歪了,SLAM、融合、Nav2 都在错的几何上「精修」——越精修越偏。

← 全部文章

johan's blog