4、多传感器标定:LiDAR-IMU外参标定、相机-IMU标定、LiDAR-相机标定及联合标定工具

多传感器融合定位系统的精度上限,往往不取决于性能最强的单一传感器,而取决于传感器之间空间与时间对齐的准确性。外参标定(Extrinsic Calibration)解决的是“传感器A坐标系下的点,如何变换到传感器B坐标系下”的问题;时间同步(Temporal Synchronization)则解决“两个传感器采集同一物理事件的时刻是否对齐”的问题。本章围绕LiDAR-IMU、Camera-IMU、LiDAR-Camera三组核心外参标定展开,并介绍联合标定工具链的选型与工程落地要点。

多传感器标定核心链路与工具矩阵 LiDAR 3D点云 / 几何结构 IMU 角速度 / 加速度 / 高频 Camera 图像 / 纹理 / 语义 T_LI 手眼标定 T_CI Kalibr T_CL 目标板/互信息 联合标定(LiDAR + IMU + Camera) 目标:最小化重投影误差 + 惯性残差 + 点云几何残差 工具:LiDAR-Camera-Calib / Direct LiDAR-Camera / 自研BA LiDAR-IMU lidar_align / 连续时间B样条 Camera-IMU Kalibr / imu_utils / Allan方差 LiDAR-Camera Autoware / 标定板 / 互信息法 时间同步 硬件PPS/GPRMC 软件插值对齐

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)问题,是当前学术与工业界的主流方案。

标定流程与操作要点

  1. 数据采集:将传感器刚性固定,进行充分激励运动。建议包含绕三个轴的旋转(俯仰、横滚、偏航)以及平移加速段,避免匀速直线运动。采集时长建议60-120秒,IMU频率200Hz以上,LiDAR频率10Hz。
  2. 预处理:对LiDAR点云进行帧间配准(如ICP或NDT),得到帧间相对运动;对IMU数据进行零偏估计与积分。
  3. 初始外参估计:使用手眼标定法(如Eigen-Quaternion方法)获得初始旋转,再通过最小二乘求解平移。
  4. 联合优化:将外参、时间偏移、IMU零偏、轨迹B样条系数作为状态量,构建非线性最小二乘问题,使用Ceres或G2O求解。
  5. 验证:将标定后的外参用于点云去畸变,观察点云中墙面、地面是否清晰锐利;或对比IMU积分轨迹与LiDAR里程计轨迹的重合度。
关键参数参考:旋转误差应小于0.1°,平移误差应小于2cm。若使用B样条方法,控制点间隔建议设为0.05-0.1秒,以平衡计算效率与轨迹表达精度。

案例拆解: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频率较低时。

常见误区:① 采集数据时传感器静止时间过长,导致IMU零偏不可观;② 忽略时间偏移,将外参与时间同步分开标定;③ 使用低精度LiDAR(如4线)进行帧间配准,引入较大相对运动误差。

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。
经验提醒:Kalibr对时间戳精度极其敏感。建议使用硬件同步(如PPS+GPIO)或至少确保时间戳抖动小于1ms。标定板建议使用AprilGrid(非对称圆点格),对运动模糊更鲁棒。

4.3 LiDAR-相机标定:从目标板到无目标互信息法

核心原理

LiDAR-相机标定求解的是相机坐标系到LiDAR坐标系的变换T_CL。由于LiDAR提供稀疏3D点,相机提供稠密2D像素,两者数据模态差异大,标定难度高于前两者。主流方法分为三类:基于标定板(提取点云中的平面边缘与图像中的棋盘格角点对应)、基于互信息(最大化点云深度图与图像边缘的互信息)、基于深度学习(端到端回归外参)。工程中最常用的是基于标定板的方法,如Autoware提供的标定工具。

操作流程与数据要求

  1. 标定板准备:使用黑白棋盘格(建议7x6或更大),板面平整且具有高反射率,便于LiDAR点云中识别。
  2. 数据采集:在不同距离(2-8m)、不同角度(±30°)下采集10-20组同步数据。确保标定板在图像中占比超过20%,且在点云中至少形成20个以上有效点。
  3. 特征提取:图像中提取棋盘格角点;点云中提取标定板平面,并计算平面法向量与边界。
  4. 位姿求解:利用PnP(Perspective-n-Point)或EPnP求解外参,再通过非线性优化最小化重投影误差。
  5. 验证:将点云投影到图像上,观察物体边缘是否对齐;或计算深度图与图像边缘的重合度。
精度参考:旋转误差应小于0.2°,平移误差应小于5cm。若使用互信息法,建议初始化时使用粗略外参(如手动测量),避免陷入局部最优。

常见误区与工程建议

  • 误区一:使用室内小标定板标定室外大场景。建议根据LiDAR线束密度选择标定板尺寸,16线LiDAR建议使用1m×1m以上标定板。
  • 误区二:忽略LiDAR与相机的时间同步。若两者时间偏移超过20ms,在车辆行驶时会产生明显的投影错位。
  • 误区三:仅使用单帧数据标定。应使用多帧数据联合优化,降低单帧噪声影响。

4.4 联合标定工具链与工程选型

工具对比与选型策略

工具名称支持传感器核心方法适用场景开源状态
lidar_alignLiDAR + IMU连续时间B样条高精度外参标定开源(ROS)
KalibrCamera + IMUB样条 + BA视觉惯性标定开源(ROS)
Autoware CalibrationLiDAR + Camera棋盘格 + PnP自动驾驶车辆开源
Direct LiDAR-CameraLiDAR + 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。
  • 风险提示:分步标定会累积误差。若最终融合定位精度要求较高(如RTK级别),建议使用联合标定工具同时优化所有外参。联合标定需要精心设计激励轨迹,确保所有外参可观。

    案例拆解:自动驾驶车辆联合标定全流程

    某L4级自动驾驶项目配备64线LiDAR、6个相机、2个IMU。要求LiDAR-Camera外参精度旋转<0.05°,平移<2cm。

    实施过程:

    • 使用Kalibr标定每个相机内参与Camera-IMU外参,重投影误差均<0.3px。
    • 使用lidar_align标定LiDAR-IMU外参,旋转误差0.03°,平移误差1.5cm。
    • 推导LiDAR-Camera初值后,使用Autoware工具在标定间内采集20组数据精化。
    • 最终验证:将点云投影到图像,远处建筑物边缘对齐误差<2像素(50m处对应约10cm)。

    复盘经验:联合标定并非一次性工作。车辆运行一段时间后,由于振动、温度变化,外参可能发生微小漂移。建议建立在线标定监测机制,利用SLAM过程中的残差实时检测外参退化,必要时触发重新标定。

    总结复盘:多传感器标定的核心是“激励充分、时间同步、联合优化”。无论使用何种工具,都必须确保:① 运动轨迹包含六自由度激励;② 时间戳误差小于传感器周期的一半;③ 使用多帧数据联合优化而非单帧求解。标定完成后,务必在真实场景中验证投影一致性,并建立定期复检机制。