3. 坐标系与标定:世界坐标系、车辆坐标系、传感器坐标系,以及联合标定方法
各位同学,咱们今天聊一个绕不开的话题——坐标系与标定。
说实话,我刚开始做感知融合那会儿,觉得标定就是个“配准”的活儿,没啥技术含量。直到有一次,我花了整整两周排查一个融合结果抖动的问题,最后发现是激光雷达和相机的外参偏了0.1度。嗯,从那以后,我再也不敢小看标定了。
3.1 为什么需要这么多坐标系?
你想想看,一辆自动驾驶车上,传感器各管各的。摄像头看到的是像素坐标,激光雷达扫到的是三维点云,毫米波雷达给的是径向距离和速度。这些数据要融合到一起,就得有个“共同语言”。
说白了,坐标系就是那个共同语言。我们得把每个传感器的数据,都翻译到同一个参考系下。
核心原则:所有传感器数据最终都要统一到车辆坐标系下,再根据需求转换到世界坐标系。
3.2 四大坐标系详解
3.2.1 世界坐标系
世界坐标系是全局的参考系。它固定在地球上,不随车辆移动而改变。通常我们使用ENU(东-北-天)坐标系,或者UTM坐标系。
我个人习惯用UTM,因为它是平面直角坐标系,计算起来方便。但要注意,UTM在不同带区之间会有跳变,跨区域行驶时得做特殊处理。
3.2.2 车辆坐标系
车辆坐标系是跟着车走的。一般定义:
- X轴:车头方向(前进方向)
- Y轴:车辆左侧方向
- Z轴:车辆上方(符合右手定则)
原点通常在后轴中心,或者车辆质心。我在项目中遇到过,不同车厂对原点的定义不一样,有的放在前保险杠中心,有的放在GPS天线位置。这个一定要提前确认清楚,否则融合结果会整体偏移。
3.2.3 传感器坐标系
每个传感器都有自己的坐标系:
- 相机坐标系:光心为原点,Z轴指向拍摄方向,X轴向右,Y轴向下(图像坐标系)
- 激光雷达坐标系:通常以激光发射中心为原点,X轴指向车头,Y轴向左,Z轴向上
- 毫米波雷达坐标系:以雷达天线中心为原点,X轴指向雷达法线方向
小技巧:我建议你在项目初期就画一张传感器布局图,标注每个传感器的安装位置和朝向。这张图后面调试标定参数时会反复用到。
3.3 联合标定方法
标定说白了就是求两个坐标系之间的变换关系——一个旋转矩阵R和一个平移向量t。
3.3.1 激光雷达到相机的标定
这是最常用的标定对。核心思路是利用标定板上的特征点:
- 在激光雷达点云中提取标定板的角点或中心点
- 在相机图像中提取对应的像素坐标
- 构建3D-2D对应关系,求解PnP问题
# 伪代码示例:激光雷达到相机的标定
def lidar_to_camera_calibration(lidar_points_3d, image_points_2d):
# 使用OpenCV的solvePnP求解
# 需要已知相机内参矩阵K
success, rvec, tvec = cv2.solvePnP(
lidar_points_3d,
image_points_2d,
camera_matrix,
dist_coeffs
)
R, _ = cv2.Rodrigues(rvec)
return R, tvec
避坑指南:我曾经遇到过标定板反光导致角点提取不准的问题。后来改用哑光材质的标定板,并在不同光照条件下多次采集数据,才把重投影误差降到0.5像素以内。
3.3.2 激光雷达到毫米波雷达的标定
这个相对简单,因为两者都是3D传感器。通常的做法是:
- 在场景中放置角反射器(毫米波雷达能检测到)
- 同时用激光雷达扫描同一个角反射器
- 获取两组3D点,用ICP或SVD求解变换矩阵
3.3.3 多传感器联合标定
当传感器数量超过两个时,我们通常采用“链式标定”或“全局优化”策略。
我个人更推荐全局优化。把所有传感器的外参一起优化,能避免误差累积。比如用因子图优化,把每一对标定结果作为约束,同时优化所有外参。
3.4 标定流程与工具
| 步骤 | 操作 | 注意事项 |
|---|---|---|
| 1 | 安装传感器并固定 | 确保机械结构稳定,标定后不要松动 |
| 2 | 采集标定数据 | 多角度、多距离采集,覆盖整个视场 |
| 3 | 特征提取与匹配 | 检查特征点对应关系是否正确 |
| 4 | 求解变换矩阵 | 使用RANSAC剔除异常匹配 |
| 5 | 验证与微调 | 用未参与标定的数据验证重投影误差 |
常用的标定工具有:
- Apollo标定工具:功能全面,支持多传感器联合标定
- Kalibr:相机-IMU标定的利器
- Autoware标定工具:开源,适合快速验证
3.5 知识体系总览
下面这张图,是我自己总结的坐标系与标定的核心逻辑。你看一眼就能明白整个流程。
3.6 标定验证与常见问题
标定做完不等于万事大吉。我每次标定完都会做两件事:
- 重投影验证:把激光雷达点云投影到图像上,看边缘是否对齐。误差超过2个像素就要重新标定。
- 动态验证:让车辆在不同场景下行驶,观察融合结果是否稳定。我曾经发现标定参数在颠簸路面会变化,后来加了紧固件才解决。
我的经验:标定不是一次性的工作。车辆使用一段时间后,机械结构可能发生微小形变。我建议每3个月或每1万公里重新标定一次,确保融合精度。
好了,坐标系与标定就聊到这儿。记住一句话:标定精度决定了融合效果的上限。这块儿花再多时间都值得。
核心要点回顾:
- 世界坐标系、车辆坐标系、传感器坐标系是三大核心参考系
- 联合标定本质是求解坐标系间的旋转和平移变换
- 标定精度直接影响融合效果,需要定期维护
- 多传感器标定推荐使用全局优化方法