1、代码下载github链接https://github.com/TixiaoShan/LIO-SAM
2、安装依赖项
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:
下载源文件安装https://github.com/borglab/gtsam/releases/tag/4.0.2
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j8
3、编译LIO-SAM,编译报错,信息如下:
error: static assertion failed: Error: GTSAM was built against a different version of Eigen
static_assert(
error: static assertion failed: Error: GTSAM was built against a different version of Eigen
static_assert(
^
In file included from /usr/local/include/gtsam/base/Matrix.h:26:0,
from /usr/local/include/gtsam/base/Manifold.h:22,
from /usr/local/include/gtsam/base/Lie.h:25,
from /usr/local/include/gtsam/base/VectorSpace.h:11,
from /usr/local/include/gtsam/geometry/Point2.h:20,
from /usr/local/include/gtsam/geometry/Unit3.h:23,
from /usr/local/include/gtsam/geometry/Rot3.h:25,
from /home/bruce/study/LIO_SAM_WS/src/LIO-SAM/src/mapOptmization.cpp:4:
查找资料发现这是因为ROS找到的Eigen版本与gtsam找到的版本不一致造成的,那么解决问题的办法就是使它们一致,即需要使/usr/local/include、/usr/include 这两个文件夹下的eigen版本一致。
直接操作:
sudo cp -r ...
把对应文件copy值另一个文件夹中。
重新安装gtsam,再次编译LIO-SAM,编译成功!
4、运行数据集casual_walk.bag
source devel/setup.bash
roslaunch lio_sam run.launch
rosbag play /home/bruce/dataset/casual_walk.bag -r 3
运行结果如下: