固态雷达(如Livox、禾赛等非旋转式激光雷达)与IMU(惯性测量单元)的外参标定(Extrinsic Calibration)是自动驾驶、机器人定位(如LIO-SAM、FAST-LIO)的关键步骤。
1. 标定原理
外参标定的目标是找到雷达与IMU之间的相对位姿(平移 (t)( \mathbf{t} )(t) 和旋转 (R)( \mathbf{R} )(R)),即:
TLiDARIMU=[Rt01] \mathbf{T}_{\text{LiDAR}}^{\text{IMU}} = \begin{bmatrix} \mathbf{R} & \mathbf{t} \\ \mathbf{0} & 1 \end{bmatrix} TLiDARIMU=[R0t1]
2. 标定方法分类
(1) 基于目标物的标定(Target-Based)
适用场景:实验室或可控环境,精度高。
工具:棋盘格、AprilTag、标定板。
步骤:
- 安装标定板:固定棋盘格或AprilTag在墙面/支架上。
- 同步采集数据:
- 雷达点云(检测标定板角点/平面)。
- IMU数据(提供姿态信息)。
- 标定流程:
- 通过标定板在雷达坐标系下的3D点云拟合平面,计算标定板位姿 (TBoardLiDAR)( \mathbf{T}_{\text{Board}}^{\text{LiDAR}} )(TBoardLiDAR)。
- 通过相机或手动测量获取标定板在IMU坐标系下的位姿 (TBoardIMU)( \mathbf{T}_{\text{Board}}^{\text{IMU}} )(TBoardIMU)。
- 计算外参:
TLiDARIMU=TBoardIMU⋅(TBoardLiDAR)−1 \mathbf{T}_{\text{LiDAR}}^{\text{IMU}} = \mathbf{T}_{\text{Board}}^{\text{IMU}} \cdot (\mathbf{T}_{\text{Board}}^{\text{LiDAR}})^{-1} TLiDARIMU=TBoardIMU⋅(TBoardLiDAR)−1
工具推荐:
- Livox_Calibration(Livox官方工具,支持棋盘格标定)。
- lidar_align(基于点云与IMU轨迹对齐)。
(2) 基于运动的方法(Motion-Based)
适用场景:无标定板,依赖设备运动。
原理:IMU和雷达对同一运动的观测应一致。
步骤:
- 数据采集:
- 手持设备做剧烈运动(旋转+平移,激励充分)。
- 录制雷达点云(
rosbag record /points
)和IMU数据(/imu
)。
- 标定工具:
- LIO-SAM/FAST-LIO:直接运行SLAM,在线优化外参。
- Kalibr(扩展支持雷达-IMU标定)。
- LI_Init(专为固态雷达设计,见GitHub)。
- 优化目标:
- 最小化雷达点云匹配误差与IMU预积分误差。
代码示例(LI_Init):
git clone https://github.com/Livox-SDK/LI_Init
cd LI_Init
roslaunch li_init li_calib.launch
(3) 联合标定(SLAM-Based)
适用场景:长时间运行SLAM,自动优化外参。
方法:
- LIO-SAM:在配置文件中启用
optimizeExtrinsic
:
optimizeExtrinsic: 1# 1=在线优化, 2=固定外参
- FAST-LIO2:修改配置文件的
extrinsic_est_en
:
extrinsic_est_en: true# 在线估计外参
3. 标定验证
- 点云对齐检查:
- 在Rviz中叠加雷达点云和IMU坐标系,运动时观察是否一致。
- 轨迹对比:
- 运行SLAM,对比纯IMU积分和雷达建图轨迹。
- 重投影误差:
- 将雷达点云投影到IMU坐标系,检查静止场景点云是否稳定。
4. 注意事项
- 时间同步:
- 确保雷达和IMU时间戳同步(硬件同步或软件对齐)。
- 运动激励:
- 标定时需充分激励(旋转+加速度变化)。
- 初始值设置:
- 外参初始值尽量接近真实值(如CAD模型测量)。
- 多传感器标定顺序:
- 先标定IMU-相机(如Kalibr),再标定雷达-IMU。
5. 开源工具对比
工具 | 适用传感器 | 方法 | 特点 |
---|---|---|---|
LI_Init | Livox雷达+IMU | 运动激励 | 专为固态雷达设计 |
lidar_align | 机械雷达+IMU | 轨迹对齐 | 简单易用 |
Kalibr | 相机+IMU+雷达 | 多模态标定 | 支持多传感器 |
LIO-SAM | 雷达+IMU | SLAM优化 | 在线标定 |
6. 常见问题解决
- 标定发散:检查IMU噪声参数(
accelerometer_noise_density
等)。 - 点云抖动:确认时间同步或降低雷达运动畸变。
- 外参不准:尝试不同初始值或增加运动多样性。
如果使用Livox雷达,推荐优先尝试 LI_Init;若已部署LIO-SAM/FAST-LIO,可直接在线优化外参。
有用的链接:https://zhuanlan.zhihu.com/p/674902669