一、标定基础:什么是传感器外参?为什么需要标定?
大家好,我是老张。在机器人这行摸爬滚打了十几年,今天咱们来聊聊传感器外参标定这件事。
说实话,我刚入行那会儿,对「外参」这个概念也是一头雾水。直到有一次,我负责的AGV小车在工厂里撞了货架——原因很简单,激光雷达和里程计的数据对不上。嗯,从那以后,我彻底明白了外参标定的重要性。
1.1 什么是传感器外参?
先问个问题:你车上装了个摄像头,又装了个激光雷达。它们各自看到的世界,怎么才能「对齐」?
说白了,外参就是描述两个传感器之间相对位置和朝向的数学关系。
举个例子:
- 摄像头装在车顶,激光雷达装在保险杠上
- 它们之间差了1.2米,转了15度角
- 这个「1.2米 + 15度」就是外参
我习惯把外参理解成「翻译官」。它把激光雷达看到的点云,翻译成摄像头能理解的像素坐标。没有这个翻译官,两个传感器各说各话,融合就是个笑话。
1.2 为什么需要标定?
你可能会问:出厂时厂家不是标好了吗?
嗯,理论上是这样。但实际情况是:
- 运输过程中的震动,会让螺丝松动
- 温度变化导致金属热胀冷缩
- 安装时的人工误差,差个几毫米很正常
- 时间久了,传感器位置会轻微偏移
我曾经遇到过一个案例:某无人配送车,摄像头和激光雷达的外参偏差了0.5度。就这0.5度,导致30米外的障碍物定位偏差了26厘米。26厘米什么概念?刚好够撞上一个消防栓。
1.3 外参标定的核心数学原理
好了,聊完了「是什么」和「为什么」,咱们来点硬核的。外参标定的数学基础,说白了就是刚体变换。
1.3.1 刚体变换
刚体变换,就是物体在空间中移动和旋转,但形状不变。你想想看,你把手机从桌上拿到耳边,手机本身没变形,这就是刚体变换。
数学上,刚体变换可以写成:
P' = R * P + T
其中:
- P 是原始坐标系下的点
- P' 是目标坐标系下的点
- R 是旋转矩阵(3x3)
- T 是平移向量(3x1)
说白了,就是先转一下,再挪一下。
1.3.2 旋转矩阵
旋转矩阵R,是个3x3的方阵。它有几个特点:
- 行列式为1
- 是正交矩阵(R的转置等于R的逆)
- 有9个元素,但只有3个自由度
我刚开始学的时候,觉得9个数记起来太麻烦。后来发现,其实你只需要理解它代表绕三个轴的旋转就行。
1.3.3 欧拉角
欧拉角是旋转矩阵的「简化版」。它用三个角度来描述旋转:
- 绕X轴旋转:横滚角(Roll)
- 绕Y轴旋转:俯仰角(Pitch)
- 绕Z轴旋转:偏航角(Yaw)
但这里有个坑——万向锁。当俯仰角达到±90度时,横滚和偏航会变成同一个轴,导致自由度丢失。
我记得有一次做无人机标定,就是因为没注意万向锁问题,导致姿态解算直接炸了。嗯,从那以后,我更喜欢用四元数。
1.3.4 四元数
四元数,听起来高大上,其实没那么复杂。它用四个数来表示旋转:
q = w + xi + yj + zk
其中:
- w 是实部
- x, y, z 是虚部
- i² = j² = k² = ijk = -1
四元数的好处:
- 没有万向锁问题
- 插值平滑(SLERP)
- 计算效率高
你想想看,旋转矩阵要9个数,欧拉角有奇异性,四元数只要4个数,完美解决了问题。
1.4 知识体系总览
为了让你更直观地理解本章的知识结构,我画了一张图:
1.5 三种表示方式的对比
最后,我把三种旋转表示方式整理成了一张表,方便你对比:
| 特性 | 旋转矩阵 | 欧拉角 | 四元数 |
|---|---|---|---|
| 参数数量 | 9个 | 3个 | 4个 |
| 奇异性 | 无 | 有(万向锁) | 无 |
| 插值 | 困难 | 有抖动 | 平滑(SLERP) |
| 计算效率 | 中等 | 高 | 高 |
| 直观性 | 差 | 好 | 中等 |
| 工程推荐 | 不推荐 | 仅用于显示 | 强烈推荐 |
好了,这一章的内容就到这里。外参标定看似基础,但它是整个传感器融合的基石。地基打不牢,上面盖再高的楼也是白搭。
可可精品资料库