查阅了一番资料和现有的代码后发现,现在的多个激光雷达之间的标定程序都是ROS框架下面的,并且都是C++代码,需要安装的依赖也比较复杂,于是自己写了一个python版本的标定程序,依赖非常简单,Windows系统也可以运行。并且代码简单,扩展性比较好,后续想要同时标定2个以上的雷达也很方便拓展;
它能够解决上述的三个问题:
- 通过手动标定加自动配准可以更精确的标定
- 标定的参数包含了各个方向的角度和位移
- 可以实时手动调整点云的位姿,效率较高
标定流程为:
- 抽取每个雷达的点云数据的一帧数据保存为PCD文件,作为标定的原始数据
- 先手动标定两个雷达的点云,可以连续任意角度旋转,平移,效率较高,得到标定矩阵的初始值
- 根据标定的初始值,利用ICP算法找到最优的标定矩阵,使得B点云与A点云完全重合,得到最优的外参标定矩阵
# 通过以下按键来调整点云位姿:
# q,a 偏航角调整
# w,s roll 翻滚角调整
# e,d pitch 俯仰角调整
# r,f X 轴调整
# t,g Y 轴调整
# y,h