3. 坐标系与标定
在无人机多传感器融合系统中,深度相机与激光雷达的数据要真正“对齐”,前提是建立统一的坐标描述体系。相机看到的是像素平面上的二维投影,雷达输出的是三维空间中的点云,两者只有通过内参、外参和联合标定,才能把同一物理目标映射到同一坐标系下。本节围绕坐标系定义、参数含义、标定方法、工具选择与实战流程展开,帮助你把“标定”从抽象概念变成可执行的操作链路。
一、四类坐标系与参数关系
无人机融合感知通常涉及四类坐标系:相机像素坐标系、相机归一化/相机坐标系、雷达坐标系、机体(或世界)坐标系。相机内参描述“相机坐标系到像素坐标系”的投影关系,外参描述“雷达坐标系到相机坐标系”的刚体变换,联合标定则同时求解这两组参数,使点云与图像在同一空间基准下对齐。
- 相机内参:焦距 fx、fy,主点 cx、cy,以及畸变系数 k1、k2、p1、p2、k3。它决定三维点投影到图像上的位置。
- 相机外参:旋转矩阵 R 与平移向量 t,描述相机相对雷达或机体的安装位姿。
- 雷达坐标系:通常以雷达光学中心或机械旋转中心为原点,X 向前、Y 向左、Z 向上,不同厂商定义可能不同。
- 联合标定:在统一时间戳下,利用标定板、角点、边缘或互信息,求解 R、t 与内参的联合最优解。
核心关系可概括为:
像素坐标 = 内参 × 外参 × 雷达点坐标
即 p_img = K · [R|t] · P_lidar。标定的本质就是求 K、R、t 这三组参数。
二、联合标定方法:从棋盘格到互信息
联合标定方法按标定物与优化目标可分为三类。第一类是基于标定板的方法,使用棋盘格或圆点板,在图像中提取角点,在点云中提取对应平面或角点,通过最小化重投影误差求解外参。第二类是基于特征的方法,利用场景中的直线、平面、边缘等几何特征,适合无标定板或远距离场景。第三类是基于互信息的方法,直接最大化图像灰度与点云反射强度之间的统计相关性,适合标定板难以布置的户外环境。
| 方法 | 标定物 | 优化目标 | 适用场景 | 精度 |
|---|---|---|---|---|
| 棋盘格法 | 棋盘格/圆点板 | 重投影误差最小 | 室内、近距离 | 高 |
| 特征法 | 直线/平面/边缘 | 几何距离最小 | 结构化场景 | 中高 |
| 互信息法 | 自然场景 | 灰度—强度互信息最大 | 户外、无标定板 | 中 |
| 手眼标定法 | 多姿态运动 | AX=XB 求解 | 无人机机载 | 中高 |
三、标定工具与实战流程
常用工具包括 ROS 生态的 camera_calibration、lidar_camera_calibration,以及 Autoware 的 calibration_tools、OpenCV 的 calibrateCamera 与 solvePnP。无人机场景推荐使用 ROS 2 + Autoware 标定工具链,便于与后续融合节点对接。
# 1. 相机内参标定(ROS 2)
ros2 run camera_calibration cameracalibrator \
--size 8x6 --square 0.025 \
--ros-args -r image:=/camera/image_raw
# 2. 雷达-相机外参标定
ros2 launch lidar_camera_calibration calibrate.launch.py \
image_topic:=/camera/image_raw \
lidar_topic:=/lidar/points \
chessboard_size:=8x6 \
square_size:=0.025
# 3. 保存结果
# 内参:camera_intrinsics.yaml
# 外参:lidar_camera_extrinsics.yaml
实战流程建议:先单独标定相机内参并验证畸变校正效果;再固定相机与雷达的相对安装,采集 15~30 组不同距离、不同角度的标定板数据;最后用重投影误差和点云投影叠加图评估标定质量,误差应控制在 2 像素以内。
四、常见误区与复盘
- 误区一:只标外参不标内参。内参不准会导致投影整体偏移,外参再准也无法对齐。
- 误区二:标定板只在一个距离采集。应在 1m、3m、5m 等多距离采集,避免外参过拟合。
- 误区三:忽略时间同步。相机与雷达时间戳不同步会引入运动模糊误差,需先做硬触发或软同步。
- 误区四:标定后不验证。应使用独立测试集检查点云投影是否落在目标边缘上。
无人机振动会导致安装位姿缓慢变化,建议在每次飞行任务前用单帧快速校验外参,若重投影误差超过 3 像素,应重新标定或检查机械紧固。
掌握坐标系与标定链路后,你才能把深度相机的稠密深度与雷达的精确距离真正融合起来。标定不是一次性工作,而是贯穿系统部署、飞行验证与维护的持续过程。