Ubuntu20.04 ROS noetic中编译和运行LIO-SAM_ros noetic lio sam-CSDN博客
运行过程参考以上博客,现在把自己的安装运行过程记录下来。
第一步【运行前准备】
1.【创建工作空间】
mkdir -p lio_sam_ws/src
cd lio_sam_ws/src/
catkin_init_workspace
2.【下载LIO-SAM源码包】
提前下载好LIO-SAM安装包https://github.com/TixiaoShan/LIO-SAM
把下载的安装包拖到Ubuntu的/home/lio_sam_ws/src目录中,解压此安装包,解压后的文件名为LIO-SAM-master,改名为LIO-SAM。
3.【回到lio_sam_ws目录下】
cd ..
第二步【安装依赖源】
1.【ros版本号是noetic】
我的Ubuntu20.04中安装的ros版本号是noetic,依次安装下面依赖源
sudo apt-get install -y ros-noetic-navigation
sudo apt-get install -y ros-noetic-robot-localization
sudo apt-get install -y ros-noetic-robot-state-publisher
2. 【GTSAM的版本号是4.1】
自己安装的gtsam不知道为什么不能用,用了博主的apt方式安装
sudo add-apt-repository ppa:borglab/gtsam-release-4.1
sudo apt install libgtsam-dev libgtsam-unstable-dev
第三步【编译】
因为在没有更改文件内容之前进行编译,出现了好多问题,所以在进行编译之前对安装包中的文件进行更改
第一处更改:lio_sam_ws/src/LIO-SAM目录下,双击打开CMakeLists.txt文件,将第5行的c++11改为c++14,保存后退出
第二处更改:lio_sam_ws/src/LIO-SAM/include目录下,双击打开utility.h文件,将第18行的#include <opencv/cv.h>使用//注释掉,并添加#include <opencv2/opencv.hpp> ,保存后退出
第三处更改:lio_sam_ws/src/LIO-SAM/include目录下,双击打开utility.h文件,将下图中的27行使用//注释掉,并复制这行到下图18行去,保存后退出。
三次更改之后进行编译
编译命令:catkin_make
如果报错:Invoking "make -j4 -l4" failed,把lio_sam_ws中除了src文件夹的其它两个文件夹删除,重新编译,编译命令改为:catkin_make -j1
第四步【运行】
1.【配置环境变量】
在任何一个目录下都可输入echo "source ~/lio_sam_ws/devel/setup.bash" >> ~/.bashrc
2.【运行】
重新打开一个终端,输入
roslaunch lio_sam run.launch
3.【运行数据集】
在https://github.com/TixiaoShan/LIO-SAM中下载数据集,把下载的数据集放到LIO-SAM文件夹中,我新建的文件夹名字为dataset,放着所有的数据集,用casual_walk.bag做测试
重新打开终端,输入 rosbag play casual_walk.bag
最后运行的结果图
PS:因为运行到最后的时候,虚拟机卡掉了,一直转圈,一播放数据包rviz进程就崩溃。而且运行lio-sam数据包的时候只有轨迹没有全局点云地图,查找原因,有位博主说是可能也是因为虚拟机的原因。
总之,最后LIO-SAM是可以运行的,虽然结果不是很完美,后续继续调吧。