LeGO-LOAM 复现(Ubuntu18.04、ROS Melodic、gtsam)

Autonomous vehicle 杂谈_12


一. 写在前面

 上回书成功复现了LOAM的进阶版本 - ALOAM,但其实还有一个更加进阶的版本 - LeGO LOAM,这种方法与普通的LOAM相比,更改了特征点的提取形式,添加了后端优化,因此,构建出来的地图也就更加的完善。
 简单总结起来,LeGO-LOAM的主要特点有以下三点:
(1)对地面做了分割,减少了特征搜索范围
(2)提取特征之前做了聚类,提高了特征质量
(3)水平和航向分别优化,提高了效率
分享放在前面(提前阅读一下比较好入口):
(1)LeGO-LOAM初探:原理,安装和测试
(2)LeGO-LOAM和LOAM的区别与联系
(3)LeGO-LOAM Public Datasets
(4)LeGO-LOAM Github

二. 实战复现 LeGO-LOAM
2.1 下载安装gtsam
# 第一步:安装依赖的功能包
sudo apt-get install libboost-all-dev
sudo apt-get install libparmetis-dev

# 第二步:检查环境版本对应情况
cmake --version  # 需要 CMake >= 2.6
gcc -v # 需要 gcc >= 4.7.3

# 第三步:下载gtsam
cd ~
git clone https://bitbucket.org/gtborg/gtsam.git

# 第四步:编译
cd ~/gtsam
mkdir build
cd build
cmake ..
sudo make install  # 花费时间较久,无报错显示100%即为安装完成
2.2 下载编译LeGO-LOAM
mkdir -p ~/legoloam_ws/src
cd ~/legoloam_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make -j1
2.3 运行LeGO-LOAM,并读取bag
# 运行LeGO-LOAM
cd ~/legoloam/devel/
source setup.bash
cd ../src
roslaunch lego_loam run.launch

# 读取bag
cd 到bag所在位置
rosbag play *.bag --clock --topic /velodyne_points /imu/data  # 有IMU单元的加上 /imu/data,没有的将其去掉即可
2.4 Rviz 查看地图生成过程及成果展示

LeGO-LOAM 复现(Ubuntu18.04、ROS Melodic、gtsam)_第1张图片

2.5 地图保存方法
# 在整个地图生成快要结束前,输入:
rosbag record -o out /laser_cloud_surround

# 从录制的地图包中提取出pcd格式的map
rosrun pcl_ros bag_to_pcd ***.bag /laser_cloud_surround pcd

结束后最后会生成一个pcd文件夹,按时间排序后,时间最新的pcd文件就是最终生成的地图。
三. 评价

 LeGO-LOAM是比较经典的激光SLAM算法,在LOAM的基础上改进而来。从目前的结果看来,里程计部分scan2scan的匹配是不够平稳的,此外其对IMU的使用也是比较松的耦合,仅限于去畸变和提供位姿旋转初值。回环检测部分也是比较简单,可以改进的空间较大。


如有问题,敬请指正。欢迎转载,但请注明出处。

你可能感兴趣的:(自动驾驶学习整理,自动驾驶,人工智能,算法,LiDAR)