目录

ROS-kinetic

LIO-SAM作者推荐的依赖环境

手动下载安装GTSAM

建立一个catkin工作空间,编译LIO-SAM

LIO-SAM编译失败

vmware共享文件问题

运行LIO-SAM

运行报错

保存点云

安装PCL


VMWARE workstation15+UBUNTU16.04.7+ros-kinetic+gtsam4.0.0

(默认16.04比较老旧,不好用,vmtools也都没有,选了一个.7)

选16.04版本的理由也简单,只是为了参考一个博客,单独建的环境,虚拟机换版本也容易。

省流:每一步最好做快照!!!

CMAKE版本更新

(重要:建议想更新cmake版本提前安装,不然后续改变版本会破坏ros系统,如果pcl不自己make,cmake版本变更不是必要)

ROS-kinetic

去官网kinetic/Installation/Ubuntu - ROS Wiki看说明装的desktop-full

LIO-SAM

地址(含教程):https://github.com/TixiaoShan/LIO-SAM

GitHub - TixiaoShan/LIO-SAM: LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping

LIO-SAM作者推荐的依赖环境

sudo apt-get install -y ros-kinetic-navigation
sudo apt-get install -y ros-kinetic-robot-localization
sudo apt-get install -y ros-kinetic-robot-state-publisher

作者还提供了直接安装GTSAM的命令

sudo apt install libgtsam-dev libgtsam-unstable-dev

实测不成功,资源找不到(梯子也没用,可能需要设置资源或者资源过期,或者我的梯子不好),所以需要手动装GTSAM。

手动下载安装GTSAM

如果前一步能自动装,忽略此步。

(如果怕出错,先看下边的“LIO-SAM编译失败”)

wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.2/
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j8

这块可能报错一个C11罢工,kill的错误

c++: internal compiler error: Killed (program cc1plus)

可能和内存或者CPU资源有关,把-j8去了可以编译成功,会慢很多。或者改虚拟机内存到8192,但是实测没成功,改大内存,-j4实测成功。

建立一个catkin工作空间,编译LIO-SAM

建立一个catkin工作空间,编译LIO-SAM

cd ~/catkin_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
cd ..
catkin_make

LIO-SAM编译失败
原因是GTSAM和EIGEN版本不一致

error: static assertion failed: Error: GTSAM was built against a different version of Eigen static_assert!

为了向下兼容EIGEN,4.0.2可能不好用,这里直接改成4.0.0再重复上述操作可以下载成功。

wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0.zip

再重新编译安装一遍GTAM,此外,去CMakelist改一下使用系统的EIGEN,OFF改成ON

 make过程反馈

vmware共享文件问题

其实有vmware,剪贴板共享,但是/mnt/hgfs/下没有共享文件夹,挂载点有一些bug,也可能是安装软件改变环境影响的。我这里是拖了一个旧的vmware-tools-distrib目录,直接用vmware-install.pl装了一次,很多地方要选yes去覆盖,装完就可以找到/mnt/hgfs/共享文件传bag了,如果有办法传,忽略此步。

运行LIO-SAM

运行节点

source devel/setup.bash

roslaunch lio_sam run.launch

播包

rosbag play your-bag.bag -r 3

 根据“运行walk数据包不需要改params.yaml文件。其他两个数据包运行要修改topics和extrinsicRPY,extrinsicRot。需要保存pcd请修改保存true和路径。”先运行casual_walk.bag

$ rosbag play casual_walk.bag 

数据:

链接:https://pan.baidu.com/s/1098VzzSDhs4ByW-HrqZwNw 
提取码:mmcw

运行报错

[lio_sam_mapOptmization-4] process has died [pid 16913, exit code -6

 一个可能是我装过多次gtsam,先4.0.2有问题,又4.0.0,忘了卸载了,所以有冲突

搜了网上的, 一说是自动寻找路径在ros,复制过去就好了,一说export路径的,但是他们的错误码都是127,我是6,问题不同,决定自己删除gtsam重装。

没有删除命令,打算手动删除gtsam,主要就是/usr/local的lib和include。

sudo rm  /usr/local/lib/libgtsam* -rf

sudo rm  /usr/local/include/gtsam* -rf
 

重新安装gtsam4.0.0,进入gtsam4.0.0/build目录

sudo make install -j4

重新编译lio-sam,进入catkin_ws目录catkin_make

重新source devel/setup.bash。

重新roslaunch

重新play bag

保存点云

改成true

编辑关闭延迟

取决于系统和ros版本

sudo gedit /opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/nodeprocess.py
或者

sudo gedit /opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/nodeprocess.py

把时间改长一点,默认15.0

安装PCL

有一个办法是用apt-get自动装,失败。

有一个办法是用一大串依赖,自己编译pcl源码,年代久远,有丢失(qt或者vtk之类的库)。

PS:编译pcl时候因为默认cmake版本低3.5,要求3.10,重装cmake导致ros功能不完整,需要重装ros,最好就是装ros前选好cmake高级版本,或者就先不要装pcl。

最后选择下载一个pcl的deb包,直接装,成功。

https://www.dropbox.com/s/9llzm20pc4opdn9/PCL-1.8.0-Linux.deb?dl=0

打开lio-sam保存的pcd文件