这是大疆开源的Livox多激光雷达标定源码。代码地址: https://github.com/Livox-SDK/Livox_automatic_calibration
输入
- 主lidar 点云
- 待标定lidar 点云
- 两者外参的initial guess
输出
- 两者外参的标定结果
算法流程
整个流程是比较简单的,三个步骤:
- 主lidar 建图
- 标定
- ransac
主lidar建图
用的是BLAM。
- 点云匹配用的generalized icp
- scan2scan 先得到帧间位姿估计,然后利用该估计,在map中选择当前帧的最近邻点,与当前帧重新做一次gicp,更新map,更新odometry
标定
把待标定lidar 的scan 往主lidar的map上怼。利用odometry和initial guess,在map中选择最近点,与scan做generalized icp。
利用generalized icp 的fitness score 对标定结果做了一波筛选。fitness score <1的会被用来更新初值继续迭代,fitness score<0.1的才会被存下来做下一步的ransac。
Ransac
目的是拟合得到最终的标定结果。上一步的标定结果会有很多outliers,因此这里选择了ransac。 把上一步标定结果转为x,y,z,roll,pitch,yaw,分别用ransac得到最优的估计值。