LeGO-LOAM 是IROS 2018 LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain 文章的代码。github链接:https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
文章在LeGO-LOAM的github里。
此代码基于LOAM。关于LOAM的安装与运行可以参考https://blog.csdn.net/qq_36396941/article/details/82973772
他们在Youtube上有介绍视频,有能力的可以去看一下,视频演示了loam和LeGO-LOAM在i7 4710mq和jetson tx2两种平台下的对比,效果十分好。https://www.youtube.com/watch?v=O3tz_ftHV48
博主的环境 Ubuntu16.04+ROS kinetic+pcl1.8+gtsam
1.编译安装LeGO-LOAM的依赖
gtasm的编译安装
1.下载gtsam的源代码
git clone https://bitbucket.org/gtborg/gtsam.git
编译安装
mkdir build
cd build
cmake ..
sudo make install
至此,gtsam已经编译安装完成了。
2.LeGO-LOAM的编译安装
1.LeGO-LOAM的编译需要使用catkin,如果已经建立catkin_ws,可以跳过下面这步
mkdir -p catkin_ws/src
cd catkin_ws/src
catkin_init_workspace
2.下载LeGO-Loam的源码
cd ~/catkin_ws/src # catkin_ws自己的ROS工作空间。
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
如果觉得github下载慢,可以使用我clone到gitee的代码
git clone https://gitee.com/Yeah2333/LeGO-LOAM.git
编译LeGO-Loam
cd catkin_ws
catkin_make -j1
source ~/devel/setup.bash
source命令在每打开一个新的终端需要重新输入,也可以把它写入到.bahsrc里面
3.运行LeGO-LOAM
论文作者在youtube上的演示视频使用了imu,不过imu是选配的。博主实测不使用imu效果也还是很好的,不过手里没有能回环检测的数据集,只是测试了以下手里的rosbag,占用的资源小很多,不过有个问题是在点多时之前的点会被剔除。
作者给出的回复是修改include文件夹utility.h 91行 globalMapVisualizationSearchRadius的值,修改后再执行catkin_make,实测问题已经得到解决。
roslaunch lego_loam run.launch
rosbag play *.bag --clock --topic /velodyne_points /imu/data
虽然这里配准了imu信息,没有imu数据是可以正常运行的,不过不加这个运行会失败。
效果图