第二章:标定原理——激光雷达如何“看”世界
大家好,我是老周。做激光雷达标定这行快十年了。今天咱们聊聊标定背后的原理。
很多人觉得标定就是调参数,其实不然。你得先搞懂激光雷达怎么工作,点云数据长什么样,坐标系怎么变来变去。这三件事搞明白了,标定就成功了一半。
2.1 激光雷达工作原理
激光雷达,说白了就是“用激光测距的雷达”。它发射一束激光,打到物体上反射回来,通过计算时间差来知道距离。
我习惯把激光雷达分成两类:
- 机械式:激光器旋转扫描,360度覆盖。典型代表是Velodyne的64线雷达。
- 固态式:没有旋转部件,靠光学相控阵或MEMS微镜实现扫描。体积小,但视场角有限。
不管哪种类型,核心原理都一样——TOF(飞行时间)。公式很简单:
距离 = 光速 × 飞行时间 / 2
嗯,这里要注意:光速是3×10⁸ m/s,但实际测量中要考虑大气折射、温度影响。我在项目中遇到过,夏天和冬天标定结果差了好几个厘米,就是因为没做温度补偿。
核心要点:激光雷达输出的原始数据是“距离+角度”,不是直接的三维坐标。这个区别很重要,后面会讲。
2.2 点云数据特性
点云是什么?就是一堆三维点的集合。每个点包含(x, y, z)坐标,还可能带有反射强度、时间戳等信息。
我刚开始接触点云时,觉得它就是“高级照片”。后来发现完全不是那么回事。点云有几个特性你必须了解:
- 稀疏性:一帧点云可能只有几万到几十万个点,而一张照片有上千万像素。所以点云是“稀疏”的。
- 非均匀分布:近处点密,远处点疏。你想想看,激光束是发散的,越远间距越大。
- 噪声:雨雪、灰尘、多路径反射都会产生噪点。我见过最离谱的,是激光打到玻璃上,反射回来一个“虚像”,位置完全不对。
- 强度信息:不同材质反射率不同。白色墙面反射强,黑色轮胎反射弱。这个信息可以用来做标定板的识别。
个人经验:标定时尽量选反射率均匀的标定板,比如白色亚光板。我曾经用黑色板子试过,点云稀疏得可怜,标定精度大打折扣。
2.3 标定的数学基础:坐标系变换
终于到重点了。标定本质上就是求坐标系之间的变换关系。你想想看,激光雷达有自己的坐标系,标定板也有自己的坐标系,车辆也有自己的坐标系。怎么把它们统一起来?
答案就是刚体变换。一个刚体变换包含两部分:
- 旋转:用3×3的旋转矩阵R表示
- 平移:用3×1的平移向量t表示
公式长这样:
P' = R × P + t
其中P是原始坐标系下的点,P'是目标坐标系下的点。
旋转矩阵有3个自由度(绕x、y、z轴的旋转角),平移向量有3个自由度。所以一个刚体变换总共有6个自由度。这就是我们常说的6自由度标定。
避坑指南:我曾经犯过一个低级错误——把旋转矩阵和平移向量的顺序搞反了。结果标定出来的点云全飞了。记住:先旋转,后平移。顺序不能乱。
2.3.1 欧拉角与四元数
旋转的表达方式不止一种。常用的有:
| 表达方式 | 优点 | 缺点 |
|---|---|---|
| 欧拉角 | 直观,容易理解 | 有万向锁问题 |
| 旋转矩阵 | 计算方便 | 9个参数,冗余 |
| 四元数 | 无万向锁,插值平滑 | 不太直观 |
我个人习惯用四元数。为什么?因为欧拉角在俯仰角接近90度时会“锁死”,导致旋转丢失一个自由度。我在做车载激光雷达标定时就遇到过这个问题,车辆爬坡时俯仰角变大,标定结果突然跳变。后来换成四元数就稳了。
2.3.2 标定板的坐标系定义
标定板通常是一个平面,我们定义它的坐标系如下:
- 原点:标定板的中心
- Z轴:垂直于板面,指向激光雷达方向
- X轴:沿板面水平方向
- Y轴:沿板面垂直方向
为什么这样定义?因为标定板上的点都在Z=0平面上。这样处理起来特别方便。你想想看,只要知道标定板的位姿,就能把板上的点投影到激光雷达坐标系中。
注意:标定板的尺寸要精确测量。我见过有人用卷尺量,误差2-3毫米。对于高精度标定来说,这个误差太大了。建议用激光测距仪或游标卡尺。
2.4 标定流程的核心逻辑
好了,原理讲完了。咱们用一张图来总结一下整个标定的知识体系:
这张图把整个标定原理串起来了。从左到右看:先理解激光雷达怎么测距,再理解点云数据有什么特点,最后用坐标系变换把两者统一起来。标定的最终输出就是旋转矩阵R和平移向量t。
我的建议:刚开始学标定的人,不要急着调参数。先把坐标系变换的数学搞明白。我见过太多人,公式都写不对,就在那里调参数,结果越调越乱。
好了,这一章就到这里。标定原理是基础,基础打牢了,后面讲标定板设计、标定流程、误差分析,你才能听得明白。
公众号:蓝海资料掘金营,微信deep3321