速腾聚创激光雷达复现FAST-LIO
目录
记录复现FAST-LIO算法的过程和,代码梳理和理解
1.软件环境
Windows 10(64bits) + VMware 16 Pro + Ubuntu 20.04 + ROS Noetic
FAST-LIO的简化版、注释版。感谢大佬的工作!
zlwang7/S-FAST_LIO: A simplified implementation of FAST_LIO (with Chinese note) (github.com)
PCL 1.10.0,Eigen 3.3.7。
Sophus按照上面代码中的readme过程安装即可,但是会遇到一些问题,一些报错可参考:
Sophus 编译错误_undefined reference to `sophus::so3::so3-CSDN博客
已解决:动态库加载失败:cannot open shared object file: No such file or directory-CSDN博客
以上依赖环境实测可以成功运行!
2.测试执行
大佬的代码支持了速腾激光雷达,和我自己使用的雷达一致,所以主要按照这条路进行学习。先用大佬的数据集进行测试和学习,后面用自己录的包进行了运行。
跑自己的包主要修改rslidar.yaml文件
- imu_topic和自己IMU传感器的话题一致。
- 根据自己的场景修改blind参数,用于滤除距离原点半径blind内的点云。
- 由于我的IMU传感器与激光雷达的方向一致,所以没改空间外参就出了还不错的结果。
如果出现无法匹配intensity的报错,参考以下博客修改点云格式:
激光雷达点云格式对比与转换,速腾、Velodyne、Ouster-CSDN博客
3.代码学习
3.1.找主节点代码文件
查看节点关系,只有一个节点,在laserMapping.cpp
rqt_graph
3.2.整体流程结构
读取yaml文件中的配置参数——》定义Subscriber和Publisher——》设置滤波器参数和IMU变量定义——》while循环:
读取IMU数据和点云数据到队列——》打包数据到结构MeasureGroup——》IMU数据预处理,包括IMU初始化,IMU正向传播,反向传播补偿运动失真 ——》迭代更新——》发布里程计、路径和去畸变的点云。
3.3.具体函数理解
待补……