3. 相对轨迹误差(RPE):定义、计算方法与ATE的区别

聊完了ATE,咱们来看看另一个关键指标——RPE。

说实话,我刚入行那会儿,总觉得ATE一个指标就够了。直到有一次做视觉SLAM的闭环检测评估,ATE显示误差很小,但地图就是飘得厉害。后来才发现,RPE才是揪出这个问题的关键。

3.1 RPE到底在衡量什么?

RPE的全称是Relative Pose Error,相对位姿误差。

它衡量的是:在一段固定时间间隔内,估计轨迹的位姿变化量与真实位姿变化量之间的差异。

你想想看,ATE看的是整体漂移,而RPE看的是局部抖动。说白了,RPE更关心你的算法在短时间内的表现——比如每秒钟、每两秒钟,轨迹的局部一致性好不好。

核心思想:RPE = 局部时间窗口内的位姿变化误差

ATE = 全局轨迹的整体对齐误差

3.2 RPE的计算方法

计算RPE其实不复杂,我习惯分三步走:

  1. 选取时间间隔:通常取 Δ = 1秒(对应帧率)
  2. 计算相对位姿:对估计轨迹和真实轨迹,分别计算相隔Δ的两帧之间的位姿变换
  3. 求误差:比较这两个相对变换的差异

公式长这样:

E_i = (Q_i^{-1} * Q_{i+Δ})^{-1} * (P_i^{-1} * P_{i+Δ})

其中:

  • P_i 是估计轨迹的第i个位姿
  • Q_i 是真实轨迹的第i个位姿
  • Δ 是时间间隔

然后,RPE通常取所有E_i的RMSE(均方根误差):

RPE = sqrt( 1/N * Σ ||trans(E_i)||² )

这里只取了平移部分的误差。旋转误差也可以单独算,但实践中平移RPE用得最多。

我的经验:Δ的选取很关键。Δ=1适合评估帧间一致性,Δ=30则能看出长时漂移。我一般会跑多个Δ值,画成曲线图来看整体趋势。

3.3 一个具体的计算例子

假设我们有3个时间戳的轨迹数据:

时间戳 真实位姿 (x, y, θ) 估计位姿 (x, y, θ)
t=0 (0, 0, 0°) (0, 0, 0°)
t=1 (1, 0, 0°) (1.1, 0.05, 2°)
t=2 (2, 0, 0°) (2.15, 0.12, 3°)

取Δ=1,计算t=0到t=1的相对变换:

  • 真实相对变换:向右移动1米,旋转0°
  • 估计相对变换:向右移动约1.1米,旋转2°
  • 误差:平移误差 ≈ 0.1米,旋转误差 ≈ 2°

同理计算t=1到t=2的误差,然后取RMSE,就得到了RPE值。

3.4 RPE与ATE的核心区别

这个问题我经常被问到。咱们直接上对比:

对比维度 ATE RPE
衡量什么 全局轨迹的整体漂移 局部时间窗口内的相对误差
是否需要对齐 需要(先做轨迹对齐) 不需要(直接比较相对变换)
对闭环敏感度 高(闭环后ATE会骤降) 中等(闭环改善局部一致性)
对高频抖动敏感度 低(被全局平均掩盖) 高(直接反映帧间抖动)
典型应用场景 评估整体建图精度 评估里程计/前端稳定性

注意:千万不要只看ATE就下结论。我曾经有一个项目,ATE只有0.05米,但RPE高达0.3米/秒。结果就是地图整体看着还行,但机器人走起来一抖一抖的,根本没法用。

3.5 什么时候该用RPE?

我个人总结了几条经验:

  • 评估里程计:RPE是首选。里程计没有全局优化,ATE意义不大。
  • 对比不同前端:比如ORB特征 vs. 光流法,RPE能看出谁的帧间估计更稳。
  • 调试闭环检测:闭环前的RPE曲线能反映漂移积累速度。
  • 传感器融合评估:IMU+视觉 vs. 纯视觉,RPE能看出融合后是否更平滑。

避坑指南:我曾经犯过一个错误——用RPE去评估一个带全局优化的SLAM系统。结果RPE很小,但ATE很大。后来才意识到,全局优化会拉平局部误差,但整体漂移可能还在。所以,RPE和ATE要搭配着看。

3.6 知识体系小结

来,我画了一张图,帮你理清RPE在整个轨迹评估中的位置:

轨迹评估指标知识体系 轨迹评估指标 ATE(绝对轨迹误差) RPE(相对轨迹误差) 全局对齐 整体漂移 局部一致性 帧间抖动 建图精度评估 闭环检测评估 里程计稳定性 传感器融合评估

从这张图可以看得很清楚:ATE和RPE是互补的,一个看全局,一个看局部。做SLAM评估时,我建议两个指标都算,然后综合判断。

嗯,RPE的内容就到这里。记住一句话:ATE告诉你地图准不准,RPE告诉你轨迹稳不稳。两者缺一不可。

一句话总结:RPE是局部时间窗口内的相对位姿误差,擅长捕捉帧间抖动和里程计漂移,与ATE形成互补。

可可精品资料库