八.激光SLAM框架学习之LeGO-LOAM框架---框架介绍和运行演示

  专栏系列文章如下:

一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN博客

二.激光SLAM框架学习之A-LOAM框架---介绍及其演示_goldqiu的博客-CSDN博客

三.激光SLAM框架学习之A-LOAM框架---项目工程代码介绍---1.项目文件介绍(除主要源码部分)_goldqiu的博客-CSDN博客

四.激光SLAM框架学习之A-LOAM框架---项目工程代码介绍---2.scanRegistration.cpp--前端雷达处理和特征提取_goldqiu的博客-CSDN博客

五.激光SLAM框架学习之A-LOAM框架---项目工程代码介绍---3.laserOdometry.cpp--前端雷达里程计和位姿粗估计_goldqiu的博客-CSDN博客

六.激光SLAM框架学习之A-LOAM框架---项目工程代码介绍---4.laserMapping.cpp--后端建图和帧位姿精估计(优化)_goldqiu的博客-CSDN博客

七.激光SLAM框架学习之A-LOAM框架---速腾Robosense-16线雷达室内建图_goldqiu的博客-CSDN博客

一. 框架介绍

LeGO-LOAM是Tixiao Shan提出的⼀种基于LOAM的改进激光SLAM框架,主要是为了实现小车在多变地形下的定位和建图,其针对前端和后端都做了⼀系列的改进。

前端的改进有:

1. 对地⾯点进⾏分类和提取,避免⼀些异常边缘点的提取

2. 应⽤点云聚类算法,剔除了⼀些可能产生的outlier

3. 两次迭代求解前端帧间⾥程记,在不影响精度的情况下减轻计算负载,保障了嵌⼊式平台的实时性。

后端的改进有:

1. 使⽤slam关键帧的概念对后端部分进⾏了重构

2. 引⼊回环检测和位姿图优化概念,使得地图的全局⼀致性更好

框架和实物如下:

八.激光SLAM框架学习之LeGO-LOAM框架---框架介绍和运行演示_第1张图片

二. LeGO-LOAM运行演示

1. 首先要安装 ROS

Ubuntu 64-bit 16.04 or 18.04. ROS Kinetic or Melodic

2.安装gtsam

wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.0-alpha2/
mkdir build && cd build
cmake ..
sudo make install

3.下载编译LeGO-LOAM

cd ~/catkin_ws/src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make -j1

4. 播放 bag 包运行

roslaunch lego_loam run.launch
rosbag play *.bag --clock --topic /velodyne_points /imu/data

效果如下:

八.激光SLAM框架学习之LeGO-LOAM框架---框架介绍和运行演示_第2张图片

5.报错解决

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

说明GTSAM默认编译并没有使用系统eigen

解决办法:在CMakeLists.txt文件中if(GTSAM_USE_SYSTEM_EIGEN)判断的前边添加如下代码:

set(GTSAM_USE_SYSTEM_EIGEN ON)

你可能感兴趣的:(多传感器融合SLAM,导航研究和学习,自动驾驶,slam,人工智能)