1. 位姿估计概述

各位同学好,我是这门课的主讲。咱们今天先聊点基础的——位姿估计到底是什么。

说白了,位姿估计就是回答两个问题:“我在哪?” 和 “我朝哪看?”。“位”是位置(x, y, z),“姿”是姿态(roll, pitch, yaw 或者四元数)。合在一起,就是刚体在三维空间里的 6 个自由度。

我记得刚入行那会儿,带我的老工程师跟我说:“你搞懂了位姿,就搞懂了一半的机器人视觉。”当时我不信,后来踩了无数坑才明白——这话一点不夸张。

1.1 位姿估计到底在干什么?

想象一下,你手里拿着一个手机,打开 AR 测量 App,对着桌子扫一圈,然后屏幕上出现一条虚拟的线,告诉你桌子的长度。这个过程中,手机每时每刻都在做位姿估计——它要知道自己相对于桌子的位置和朝向,才能把虚拟物体“锚定”在真实空间里。

从数学上讲,位姿估计就是求解一个刚体变换矩阵 T ∈ SE(3):

T = [ R  t ]
    [ 0  1 ]

其中 R 是旋转矩阵(3×3),t 是平移向量(3×1)。这个矩阵把世界坐标系下的点,映射到相机坐标系下。

核心要点:位姿估计不是单一算法,而是一套“传感器数据 → 特征匹配 → 几何约束 → 优化求解”的流水线。任何一个环节出问题,精度都会崩。

1.2 应用场景:你每天都在用

位姿估计的应用比你想象的更普遍。我简单列几个方向,你看看是不是都接触过:

领域 典型应用 精度要求 我踩过的坑
AR/VR 手机 AR 测量、Hololens 空间锚点 厘米级 曾经在弱纹理白墙上做 AR 标注,位姿直接漂到隔壁房间
机器人 机械臂抓取、AGV 导航 毫米级 有一次机械臂抓取螺丝,位姿误差 2mm,夹爪直接把零件弹飞了
自动驾驶 车辆定位、高精地图构建 厘米级(局部) 隧道里 GPS 失效,纯靠视觉里程计撑了 3 公里,回来一看轨迹偏了半米
无人机 视觉悬停、自主返航 分米级 大疆的 VIO 在强光下出现过一次位姿跳变,差点炸机

你想想看,这些场景对精度的要求完全不是一个量级。AR 差个几厘米,用户顶多觉得“有点歪”;但自动驾驶差 10 厘米,可能就是一场事故。所以,精度评价就成了位姿估计里绕不开的一环。

1.3 精度评价指标:RPE 和 ATE

很多初学者喜欢问:“我这个算法精度怎么样?”我一般会反问:“你用什么指标?”

位姿估计的精度评价,主流就两个指标:RPE(相对位姿误差) 和 ATE(轨迹误差)。它们俩看问题的角度不一样。

1.3.1 RPE:看“局部抖动”

RPE 衡量的是相邻两帧之间的位姿变化误差。说白了,它关心的是你的算法在短时间内的“平滑度”和“一致性”。

公式长这样:

E_RPE = (T_est_inv * T_gt) 的平移部分和旋转部分

其中 T_est 是估计的帧间变换,T_gt 是真实值。通常我们会取一个固定时间间隔 Δ,然后计算所有间隔的 RMSE。

我的习惯:在做 VIO 调试时,我第一个看的指标就是 RPE。如果 RPE 突然变大,十有八九是特征匹配出错了,或者 IMU 预积分有累积误差。RPE 能帮你快速定位“哪一段轨迹出了问题”。

1.3.2 ATE:看“全局漂移”

ATE 衡量的是整条轨迹与真实轨迹之间的偏差。它更关心你的算法在长时间运行后,位置漂移了多少。

计算方式:先把估计轨迹和真实轨迹对齐(通常用 Umeyama 算法做相似变换对齐),然后逐帧计算位置误差:

ATE_RMSE = sqrt( 1/N * Σ ||p_est_i - p_gt_i||² )

其中 p_est_i 和 p_gt_i 是对齐后的位置点。

注意:ATE 对轨迹的“整体形状”很敏感。如果你的算法在局部表现很好(RPE 很低),但整体在缓慢漂移(ATE 很高),那说明你的算法缺少全局约束——比如没有闭环检测。我曾经在一个长走廊数据集上吃过这个亏,RPE 漂亮得很,ATE 却惨不忍睹。

1.3.3 什么时候用哪个?

场景 优先看 原因
SLAM 前端调试 RPE 快速定位帧间匹配问题
SLAM 后端优化 ATE 评估整体轨迹精度
VIO 初始化 RPE 检查 IMU 和视觉对齐是否稳定
闭环检测 ATE 看闭环后漂移是否被消除
最终系统评测 两者都看 RPE 低 + ATE 低 = 好系统

1.4 本章知识体系总览

为了让你对整章内容有个整体印象,我画了一张结构图。你可以把它当作本章的“地图”——后面每讲一个知识点,你都能在这张图上找到它的位置。

位姿估计精度提升课程 - 第1章知识体系 第1章:位姿估计概述 - 知识体系 位姿估计 定义:6-DOF 刚体变换 应用场景 精度评价指标 AR/VR 机器人 自动驾驶 RPE:相对位姿误差 ATE:轨迹误差 位置 (x, y, z) 姿态 (roll, pitch, yaw) 本章核心逻辑 1. 位姿估计 = 位置 + 姿态,本质是求解 SE(3) 变换矩阵 2. 应用场景不同,精度要求不同:AR 厘米级 → 自动驾驶厘米级 → 机器人毫米级 3. RPE 看局部抖动,ATE 看全局漂移,两者互补 4. 评价指标的选择取决于你的调试阶段:前端看 RPE,后端看 ATE 5. 后续章节将围绕“如何降低 RPE 和 ATE”展开

1.5 一个小建议

学位姿估计,别一上来就调参数、跑数据集。先把评价指标搞明白——你连“好”和“坏”都分不清,怎么优化?

我个人习惯是:拿到一个新算法,先跑一遍公开数据集(比如 EuRoC、TUM RGB-D),把 RPE 和 ATE 算出来,看看它到底在什么水平。然后再去读,看作者是怎么优化这两个指标的。这样学起来,效率高得多。

避坑指南:我曾经为了刷 ATE 指标,疯狂调后端优化参数,结果 RPE 反而变差了。后来才发现,ATE 和 RPE 有时候是矛盾的——你压低了全局漂移,可能牺牲了局部平滑度。所以,两个指标要一起看,别偏科。

好了,这一章就到这里。你只要记住三件事:位姿估计是啥、用在哪儿、怎么评价。后面所有章节,都是围绕“怎么让 RPE 和 ATE 更小”展开的。