4. 多传感器标定
多传感器融合定位系统的精度上限,往往不取决于性能最强的单一传感器,而取决于传感器之间空间与时间对齐的准确性。外参标定(Extrinsic Calibration)解决的是“传感器A坐标系下的点,如何变换到传感器B坐标系下”的问题;时间同步(Temporal Synchronization)则解决“两个传感器采集同一物理事件的时刻是否对齐”的问题。本章围绕LiDAR-IMU、Camera-IMU、LiDAR-Camera三组核心外参标定展开,并介绍联合标定工具链的选型与工程落地要点。
4.1 LiDAR-IMU外参标定:从手眼标定到连续时间优化
核心原理
LiDAR-IMU外参标定求解的是从IMU坐标系到LiDAR坐标系的刚体变换 T_LI(包含旋转R_LI和平移t_LI)。其物理意义是:当IMU测得角速度与加速度时,如何将这些惯性量投影到LiDAR坐标系下,用于点云去畸变或状态预测。工程上最常用的方法是手眼标定(Hand-Eye Calibration)的变体:利用传感器运动过程中的旋转约束和平移约束,构建AX=XB形式的方程。其中A为LiDAR帧间运动,B为IMU帧间运动,X即为待求外参。
然而,纯手眼标定对运动激励要求较高,且容易受LiDAR帧间配准误差影响。更稳健的做法是采用连续时间B样条轨迹表示,将IMU高频测量与LiDAR低频点云在统一的时间基下联合优化,同时估计外参与轨迹。这种方法能自然处理时间偏移(time offset)问题,是当前学术与工业界的主流方案。
标定流程与操作要点
- 数据采集:将传感器刚性固定,进行充分激励运动。建议包含绕三个轴的旋转(俯仰、横滚、偏航)以及平移加速段,避免匀速直线运动。采集时长建议60-120秒,IMU频率200Hz以上,LiDAR频率10Hz。
- 预处理:对LiDAR点云进行帧间配准(如ICP或NDT),得到帧间相对运动;对IMU数据进行零偏估计与积分。
- 初始外参估计:使用手眼标定法(如Eigen-Quaternion方法)获得初始旋转,再通过最小二乘求解平移。
- 联合优化:将外参、时间偏移、IMU零偏、轨迹B样条系数作为状态量,构建非线性最小二乘问题,使用Ceres或G2O求解。
- 验证:将标定后的外参用于点云去畸变,观察点云中墙面、地面是否清晰锐利;或对比IMU积分轨迹与LiDAR里程计轨迹的重合度。
案例拆解:AGV平台LiDAR-IMU标定实战
某室内AGV搭载16线LiDAR(10Hz)与工业级IMU(200Hz,陀螺仪零偏稳定性5°/h)。初始标定采用手眼标定法,但发现点云去畸变后地面点云厚度达15cm,明显异常。分析原因:AGV运动以平移为主,旋转激励不足,导致手眼标定旋转部分病态。
解决过程:
- 重新设计采集轨迹:加入“8”字绕行、原地旋转、急加速/急减速段,确保三轴角速度激励充分。
- 改用lidar_align工具(基于连续时间B样条),同时估计外参与时间偏移。
- 标定结果:旋转误差从0.8°降至0.06°,平移误差从5cm降至1.2cm。
- 验证:点云去畸变后地面厚度降至3cm以内,建图精度显著提升。
复盘经验:手眼标定适合作为初值,但复杂运动平台必须使用连续时间优化;时间偏移(通常为几毫秒到几十毫秒)不可忽略,尤其在LiDAR频率较低时。
4.2 相机-IMU标定:Kalibr工具链与内参外参联合优化
核心原理
相机-IMU标定求解的是IMU坐标系到相机坐标系的变换T_CI,同时需要估计相机内参(焦距、主点、畸变系数)以及IMU零偏。其核心思想是利用相机观测到的标定板角点作为视觉约束,IMU积分作为惯性约束,在滑动窗口内进行联合优化(BA)。Kalibr是这一领域的事实标准工具,它采用B样条参数化IMU轨迹,能够同时估计:相机内参、相机-IMU外参、时间偏移、IMU零偏以及重力方向。
标定流程与质量判断
| 步骤 | 操作内容 | 质量指标 |
|---|---|---|
| 1. IMU噪声分析 | 使用imu_utils对IMU静止数据做Allan方差分析 | 角度随机游走 < 0.5°/√h,零偏不稳定性 < 10°/h |
| 2. 相机内参标定 | 使用Kalibr或OpenCV拍摄棋盘格/AprilGrid | 重投影误差 < 0.5 pixel |
| 3. 联合标定 | 采集IMU+图像数据,运行Kalibr联合优化 | 重投影误差 < 1 pixel,IMU残差收敛 |
| 4. 验证 | 将标定结果用于VIO初始化,观察轨迹漂移 | 1分钟VIO漂移 < 2% 距离 |
案例拆解:手持设备Camera-IMU标定失败排查
某视觉惯性模组使用OV9282全局快门相机(30fps)与BMI160 IMU(400Hz)。Kalibr标定结果重投影误差高达3.5px,且外参平移分量在多次标定中波动超过3cm。
排查过程:
- 检查图像时间戳:发现相机驱动使用系统时间,而IMU使用传感器内部时钟,两者存在约20ms的随机抖动。
- 检查标定板:使用A4纸打印的棋盘格,平整度不足导致角点提取误差。
- 解决方案:改用玻璃基板陶瓷棋盘格;在驱动层统一使用硬件PPS同步时间戳。
- 结果:重投影误差降至0.4px,外参平移波动小于5mm。
4.3 LiDAR-相机标定:从目标板到无目标互信息法
核心原理
LiDAR-相机标定求解的是相机坐标系到LiDAR坐标系的变换T_CL。由于LiDAR提供稀疏3D点,相机提供稠密2D像素,两者数据模态差异大,标定难度高于前两者。主流方法分为三类:基于标定板(提取点云中的平面边缘与图像中的棋盘格角点对应)、基于互信息(最大化点云深度图与图像边缘的互信息)、基于深度学习(端到端回归外参)。工程中最常用的是基于标定板的方法,如Autoware提供的标定工具。
操作流程与数据要求
- 标定板准备:使用黑白棋盘格(建议7x6或更大),板面平整且具有高反射率,便于LiDAR点云中识别。
- 数据采集:在不同距离(2-8m)、不同角度(±30°)下采集10-20组同步数据。确保标定板在图像中占比超过20%,且在点云中至少形成20个以上有效点。
- 特征提取:图像中提取棋盘格角点;点云中提取标定板平面,并计算平面法向量与边界。
- 位姿求解:利用PnP(Perspective-n-Point)或EPnP求解外参,再通过非线性优化最小化重投影误差。
- 验证:将点云投影到图像上,观察物体边缘是否对齐;或计算深度图与图像边缘的重合度。
常见误区与工程建议
- 误区一:使用室内小标定板标定室外大场景。建议根据LiDAR线束密度选择标定板尺寸,16线LiDAR建议使用1m×1m以上标定板。
- 误区二:忽略LiDAR与相机的时间同步。若两者时间偏移超过20ms,在车辆行驶时会产生明显的投影错位。
- 误区三:仅使用单帧数据标定。应使用多帧数据联合优化,降低单帧噪声影响。
4.4 联合标定工具链与工程选型
工具对比与选型策略
| 工具名称 | 支持传感器 | 核心方法 | 适用场景 | 开源状态 |
|---|---|---|---|---|
| lidar_align | LiDAR + IMU | 连续时间B样条 | 高精度外参标定 | 开源(ROS) |
| Kalibr | Camera + IMU | B样条 + BA | 视觉惯性标定 | 开源(ROS) |
| Autoware Calibration | LiDAR + Camera | 棋盘格 + PnP | 自动驾驶车辆 | 开源 |
| Direct LiDAR-Camera | LiDAR + Camera | 互信息优化 | 无标定板场景 | 开源 |
| 联合标定(自研) | LiDAR + IMU + Camera | 多传感器BA | 高精度融合定位 | 商业/自研 |
联合标定实施框架
在实际工程中,建议采用分步标定+联合精化的策略:
- 第一步:分别标定Camera内参(Kalibr)、IMU噪声特性(Allan方差)。
- 第二步:标定Camera-IMU外参(Kalibr),获得T_CI。
- 第三步:标定LiDAR-IMU外参(lidar_align),获得T_LI。
- 第四步:推导LiDAR-Camera外参:T_CL = T_CI * T_LI-1,作为初值。
- 第五步:使用LiDAR-Camera标定工具精化T_CL,或直接进行三传感器联合BA。
- 使用Kalibr标定每个相机内参与Camera-IMU外参,重投影误差均<0.3px。
- 使用lidar_align标定LiDAR-IMU外参,旋转误差0.03°,平移误差1.5cm。
- 推导LiDAR-Camera初值后,使用Autoware工具在标定间内采集20组数据精化。
- 最终验证:将点云投影到图像,远处建筑物边缘对齐误差<2像素(50m处对应约10cm)。
案例拆解:自动驾驶车辆联合标定全流程
某L4级自动驾驶项目配备64线LiDAR、6个相机、2个IMU。要求LiDAR-Camera外参精度旋转<0.05°,平移<2cm。
实施过程:
复盘经验:联合标定并非一次性工作。车辆运行一段时间后,由于振动、温度变化,外参可能发生微小漂移。建议建立在线标定监测机制,利用SLAM过程中的残差实时检测外参退化,必要时触发重新标定。