3. 坐标系与标定:让传感器“说同一种语言”
做自动驾驶感知,第一个绕不开的坎儿就是坐标系。你想想看,车上装了激光雷达、摄像头、毫米波雷达,每个传感器都有自己的“小世界”——它们各自定义原点在哪、哪个方向是X轴。如果不把这些坐标系统一到同一个框架下,那感知结果就是鸡同鸭讲。
我个人习惯把坐标系比作“方言”。每个传感器说自己的方言,标定就是请一个翻译,让所有方言都变成普通话。这个普通话,就是世界坐标系。
3.1 三大坐标系:你总得认识它们
先搞清楚三个最常用的坐标系。我在项目中见过不少新人搞混,结果融合出来的数据全是乱的。
3.1.1 车辆坐标系
车辆坐标系是整车的“基准坐标系”。一般定义如下:
- 原点:通常在后轴中心,或者车辆质心。不同车厂习惯不同,我建议统一用后轴中心,因为和运动学模型更匹配。
- X轴:车辆前进方向为正。
- Y轴:车辆左侧为正(右手系)。
- Z轴:车辆上方为正。
重要: 车辆坐标系是动态的。车在转弯时,坐标系也跟着转。所以做路径规划时,一定要考虑坐标系的变化。
3.1.2 传感器坐标系
每个传感器都有自己的坐标系。比如:
- 激光雷达:原点在激光雷达中心,X轴朝前,Y轴朝左,Z轴朝上。但有些雷达厂商把Z轴朝下,嗯,这里要注意。
- 摄像头:原点在光心,Z轴沿光轴方向朝前,X轴朝右,Y轴朝下(图像坐标系)。
- 毫米波雷达:原点在雷达天线中心,X轴朝前,Y轴朝左。
我曾经在项目里遇到过一个问题:某款激光雷达的坐标系定义和常规不一样,Z轴是朝下的。结果融合模块一直报错,查了两天才发现是坐标系符号反了。从那以后,我拿到新传感器第一件事就是看坐标系定义文档。
3.1.3 世界坐标系
世界坐标系是“绝对坐标系”。它不随车辆移动而改变。一般用UTM坐标系或者经纬度+高程。
- UTM坐标系:把地球投影到平面上,用东向和北向来表示位置。适合局部路径规划。
- 经纬度坐标系:WGS-84标准,适合全局导航。
说白了,世界坐标系就是一张大地图。车辆坐标系是你在车上的视角,传感器坐标系是你手里的工具。标定就是把工具测量的结果,映射到大地图上。
3.2 传感器外参标定原理
外参标定,就是求传感器坐标系到车辆坐标系的旋转矩阵和平移向量。数学上很简单:
P_vehicle = R * P_sensor + T
其中R是3x3旋转矩阵,T是3x1平移向量。但实际做起来,坑不少。
3.2.1 旋转矩阵的表示方式
旋转矩阵有几种表示方式,我建议用欧拉角或者四元数:
| 表示方式 | 优点 | 缺点 |
|---|---|---|
| 欧拉角(Roll, Pitch, Yaw) | 直观,容易理解 | 有万向锁问题 |
| 四元数 | 无万向锁,插值平滑 | 不够直观 |
| 旋转矩阵 | 数学上严谨 | 参数多,冗余 |
我个人习惯用四元数做内部计算,用欧拉角做调试和可视化。为什么呢?因为四元数插值平滑,不会出现万向锁。但调试时看欧拉角更直观,一眼就能看出传感器装歪了多少度。
3.2.2 标定流程
外参标定一般分两步:
- 粗标定:用尺子量传感器安装位置,估算平移向量。旋转角度用水平仪或者直接目测。精度大概在厘米级和度级。
- 精标定:用标定板或者自然特征点,通过优化算法求精确的外参。精度可以达到毫米级和0.1度级。
小技巧: 粗标定别太随意。我见过有人直接用目测,结果精标定算法死活不收敛。粗标定误差控制在5厘米和2度以内,精标定才能稳定工作。
3.3 标定板与目标物标定方法
标定板是精标定的核心工具。常见的标定板有:
- 棋盘格:角点检测容易,适合摄像头标定。
- 圆形阵列:圆心检测精度高,适合激光雷达和摄像头联合标定。
- AprilTag:自带ID,可以同时做位姿估计和标定。
3.3.1 摄像头-激光雷达联合标定
这是最常见的标定场景。流程如下:
- 放置标定板,确保摄像头和激光雷达都能看到。
- 摄像头检测标定板角点,得到像素坐标。
- 激光雷达检测标定板平面,得到点云中的平面方程。
- 通过优化算法,最小化重投影误差,求外参。
我曾经在项目里遇到一个问题:标定板反光太强,激光雷达打上去全是噪点。后来换了哑光材质的标定板,问题就解决了。嗯,细节决定成败。
3.3.2 目标物标定方法
如果没有标定板,也可以用自然目标物。比如:
- 建筑物角点:用激光雷达检测墙角,摄像头也检测同一个墙角,然后匹配。
- 车道线:用摄像头检测车道线,激光雷达也检测车道线,然后对齐。
- 杆状物:路灯杆、交通标志杆,都是很好的标定目标。
注意: 自然目标物标定精度不如标定板。一般只用于在线标定或者粗标定。如果要做高精度融合,还是老老实实用标定板。
3.4 标定后的验证
标定完了,怎么知道标得准不准?我一般做三步验证:
- 可视化验证:把激光雷达点云投影到图像上,看边缘是否对齐。如果标定准确,点云应该刚好落在物体的轮廓上。
- 距离验证:在标定板前放一个已知距离的物体,看融合后的距离是否准确。
- 重复性验证:多次标定,看外参是否稳定。如果每次标定结果差异很大,说明标定流程有问题。
我记得有一次,标定结果看起来很好,可视化也对齐了。但实际跑车时,融合结果总是有偏差。后来发现是标定板放得太近,远距离的外参误差被放大了。从那以后,我标定时会放多个距离的标定板,确保远近都准。
3.5 本章知识体系
下面这张图总结了坐标系与标定的核心逻辑。你可以把它当作一个快速参考:
好了,坐标系与标定这部分就讲到这里。记住一句话:标定是感知融合的基石。标定不准,后面所有工作都是白费。我建议你在项目初期就建立一套标准的标定流程,并且定期验证标定精度。这样能省去后面很多排查问题的时间。
核心要点回顾:
- 三大坐标系:车辆、传感器、世界,必须统一
- 外参标定:求R和T,粗标定+精标定两步走
- 标定方法:标定板精度高,目标物灵活但精度低
- 验证三步走:可视化、距离、重复性
可可精品资料库