赞
踩
Paper:https://arxiv.org/pdf/2007.00258.pdf
工程源码: https://github.com/TixiaoShan/LIO-SAM
实验环境 Ubuntu 18.04 + gtsam 4.2.0
功能包编译过程中可能会出现的错误提示:
1)问题1
static assertion failed: Error: GTSAM was built against a different version of Eigen
这是由于gtsam自带eigen版本与系统中已安装的eigen版本之间冲突问题,需要修改gtsam包的CMakeLists.txt文件,使其编译时使用系统eigen,然后重新编译安装gtsam。
在gtsam的CMakeLists.txt文件中找到:
if(GTSAM_USE_SYSTEM_EIGEN)
find_package(Eigen3 REQUIRED)
在 if(GTSAM_USE_SYSTEM_EIGEN) 上方添加一句:
set(GTSAM_USE_SYSTEM_EIGEN ON)
然后重新编译安装GTSAM即可。
2) 问题2
在roslaunch后,可能会出lio_sam_mapOptimization crash的问题.
主要原因是gtsam版本问题,按照作者github上给出的gtsam版本及安装步骤重新安装即可
3)问题3
地图保存失败
LIO_SAM运行完后会在系统家目录下的/Dwonloads/LOAM/目录下保存地图、轨迹等pcd文件。
需更改一下_TIMEOUT_SIGINT参数,否则可能造成地图保存失败(这是由于ros会在_TIMEOUT_SIGINT秒后关闭ros节点,但是地图过大时,保存地图会花费一些时间,如果_TIMEOUT_SIGINT太小,很可能造成地图还未保存,节点就已经关闭了,所以需要适当调高_TIMEOUT_SIGINT值),具体方法如下:
sudo gedit /opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/nodeprocess.py
找到_TIMEOUT_SIGINT并调整数值,尽量调大一点(默认15s,我的参考值300s)
参考:
https://github.com/TixiaoShan/LIO-SAM/issues/3
三个官方数据集casual_walk_2.bag、outdoor.bag、west.bag,下载地址如下:
https://pan.baidu.com/s/1-sAB_cNlYPqTjDuaFgz9pg
提取码:ejmu
其中运行casual_walk_2.bag不需要修改任何参数,如果要运行另外两个数据集,则需要将params.yaml文件中的imuTopic改为数据集的话题名,并将extrinsicRot和extrinsicRPY矩阵设置为单位阵(这两个矩阵是Lidar系与IMU系的外参矩阵),然后就可以测试工程了。
casual_walk.bag测试:
bagInfo:
map:
trajectory:
kitti raw data转成rosbag的代码作者已提供:
参考:https://github.com/TixiaoShan/LIO-SAM/tree/master/config/doc/kitti2bag
另外,需要在params.yaml文件中修改相应参数:
downsampleRate: 2
loopClosureEnableFlag: true
bagInfo:
map:
trajectory:
downsampleRate: 2
loopClosureEnableFlag: true
bagInfo:
map:
trajectory:
作者提到由于Kitti数据集中IMU的一些内参未知,这对LIO-SAM的精度有很大的影响。
参考:
[1]https://blog.csdn.net/qq_42938987/article/details/108434290
[2]https://blog.csdn.net/unlimitedai/article/details/107378759#t1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。