本文仅用于自己学习雷达与IMU标定过程中的一些记录。
最近项目需要入手了镭神智能的“镭神C32”激光雷达,和KVH的1750IMU模块。在调用驱动完成初步数据读取之后,现在需要对雷达IMU系统进行标定。查阅了一些资料,发现并没有太多关于Lidar+IMU标定的资料。大多数论文中只是提到一句“我们认为雷达和IMU已经完成了标定”或者“Lidar与IMU采用离线的方式完成标定”。真的让人摸不着头脑。
标定需要标什么?
参考文献[1]中指出 “the LiDAR-IMU calibration mainly includes the LiDAR extrinsic parameters calibration, IMU intrinsic parameters calibration, and coordinate transformation between LiDAR and IMU”,即需要标定三个:Lidar的外参、IMU内参、Lidar与IMU之间的变换。
Lidar外参是什么鬼,我也没搞清楚,好像和Lidar探测时球坐标系有关,但一般厂商都做了标定,所以不用管。
IMU的内参,首先需要给出IMU的测量模型: a m = R G I ( a − g ) + b a ( t ) + n a a_m = R_G^I(a-g)+b_a(t)+n_a am=RGI(a−g)+ba(t)+na w m = w + b g ( t ) + n g w_m=w+b_g(t)+n_g wm=w+bg(t)+ng 等号左侧是测量值, a , w a, w a,w是实际的真值, g g g是重力加速度(可以看出IMU在z轴正方时会有一个 + g +g +g的输出,而且是归一化的,表示“几个 g g g”), b a , b g b_a, b_g ba,bg 是随机游走噪声,随时间变化,而 n g , n a n_g,n_a ng,na是测量高斯白噪声。在IMU启动后,需要确定到世界系/大地系/地球系的旋转矩阵 R R R,并需要实时估计两个bias。
Lidar与IMU之间的变换,包括两部分:6DoF的刚体变换,与传感器延迟的时间差。首先说这个时间差,参考文献[2]中指出,由于传感器在测量(采样)时并不是同步的,同时由于传感器到系统有一个延迟,两者信号之间具有时差,这影响了测量值插值的精度。如图, t a , t b t_a, t_b ta,tb分别是IMU和camera的延迟,延迟后相差一个 t d t_d td,所以对于采样到的camera需要加上这个 t d t_d td才能得到在IMU时间系统中采样的时刻(一般论文都将IMU时间作为系统参考时间)。
再说刚体变换,即计算Lidar到IMU的刚体变换,一般论文中为了方便,多将IMU系作为机器人机体系,而将Lidar的点云数据变换到IMU系,因此需要得到从Lidar到IMU的刚体变换。论文[1]采用多种特征进行计算,论文[3]采用因子图优化的方式得到一段儿时间内优化的
R
,
t
R,t
R,t参数。
Lidar+IMU标定工具:lidar_align
发现ETHZ在github的一个lidar和IMU标定的代码,lidar_align:https://github.com/ethz-asl/lidar_align
自己学习这个代码做的总结:https://blog.csdn.net/tfb760/article/details/108581092
后续补充:这种方法如果拿不到IMU准确的数据,效果可能不好。所以可以看到代码里面命名都是Odom而不是IMU。IMU的准确数据可以由GPS或轮式里程计纠偏,否则漂移太过于严重。
再次补充:lidar_align不适用于纯IMU与Lidar进行标定! 纯IMU进行积分,无法得到准确的Odom数据。所以无法使用纯IMU获得odom,进行与Lidar标定。
来自lidar_align代码维护者Alex:
Unfortunately our toolbox is not suitable for pure imu-to-lidar calibration. I have seen other papers about this problem, but to be honest I’m not up to date with that literature so I don’t know if there is an open-source toolbox available.
Our typical use case is one where we have a camera-imu-lidar system. We typically perform visual-inertial odometry and use this as the odom transform to which you’re referring. If you don’t have an option for obtaining odometry in a similar manner you might be out of luck with this toolbox…
参考文献
[1]. A Novel Multifeature Based On-Site Calibration Method for LiDAR-IMU System
[2]. Online temporal calibration for camera–IMU systems: Theory and algorithms
[3]. 3D Lidar-IMU Calibration based on Upsampled Preintegrated Measurements for Motion Distortion Correction