二十五.SLAM中Mapping和Localization区别和思考_goldqiu的博客-CSDN博客
由这篇博客开始。
基于LIO-SAM的全局定位
lio-sam相关博客:
十一.激光惯导LIO-SLAM框架学习之LIO-SAM框架---框架介绍和运行演示_goldqiu的博客-CSDN博客
十四.激光和惯导LIO-SLAM框架学习之惯导内参标定_goldqiu的博客-CSDN博客
十五.激光和惯导LIO-SLAM框架学习之惯导与雷达外参标定(1)_goldqiu的博客-CSDN博客
十六.激光和惯导LIO-SLAM框架学习之配置自用传感器实时室外跑LIO-SAM框架_goldqiu的博客-CSDN博客
十七.激光和惯导LIO-SLAM框架学习之IMU和IMU预积分_goldqiu的博客-CSDN博客
十九.激光和惯导LIO-SLAM框架学习之项目工程代码介绍---代码框架和一些文件解释_goldqiu的博客-CSDN博客
二十三.激光和惯导LIO-SLAM框架学习之LIO-SAM项目工程代码介绍---基础知识_goldqiu的博客-CSDN博客
测试的框架是LIO-SAM_based_relocalization,哈工大的一个兄弟写的。
大概功能是:导入全局地图(pcd格式),然后播放bag,在全局地图中实现定位。
给出github:
https://github.com/Gaochao-hit/LIO-SAM_based_relocalization.git
配置好了LIO-SAM的环境就可以直接跑LIO-SAM_based_relocalization,作者是在LIO-SAM原框架中加了一个全局定位的源文件。
同样在config文件夹中需要修改yaml文件:更改全局pcd地图的路径
查看源码发现地图文件的名称并没有在yaml文件中,直接在源码中写死了,必须更改为cloudGlobal.pcd,当然你也可以自己修改。
全局地图需要你自己提前先录制,录制方法之前博客有写。
然后开始测试:
修改好地图位置、播放bag后,运行run_relocalize.launch
测试一:
跑官方数据集(同个数据集下录制地图和播放bag):
测试二:
跑自录数据集(同个数据集下录制地图和播放bag):
拐弯处正常定位。
测试三:
跑自录数据集(不同数据集下录制地图和播放bag):
定位失败。
原因主要是没有加全局约束,即GNSS。
测试四:
跑自录数据集(同个数据集下录制地图和播放bag,但进行延迟播包):
同样无法定位。
猜测原因:
- 同样是没有全局约束
- 框架没有写初始化位姿
- 延迟播放包导致位姿初始化时间过短,没有来得及初始化
后续
1.加入全局约束进行测试。
2.自己写一个有初始化位姿的全局定位程序