十一.激光惯导LIO-SLAM框架学习之LIO-SAM框架---框架介绍和运行演示

 专栏系列文章如下:

一: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博客

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

九.激光SLAM框架学习之LeGO-LOAM框架---速腾Robosense-16线雷达室外建图和其他框架对比、录包和保存数据_goldqiu的博客-CSDN博客

十.激光SLAM框架学习之LeGO-LOAM框架---算法原理和改进、项目工程代码_goldqiu的博客-CSDN博客

一. 框架介绍

LIO-SAM是Tixiao Shan在2020的IROS会议提出的⼀种激光惯导紧耦合的SLAM框架,可在室内和室外实现效果不错的建图。

这是作者附在Github上面的框架图:

十一.激光惯导LIO-SLAM框架学习之LIO-SAM框架---框架介绍和运行演示_第1张图片

特点:

1. 一共使用了三个传感器,GPS可选;

2. Odometry 以IMU的frequency(要收到雷达里程计信息后才发出),这样前端频率更高;

3. IMU odometry提供初始估计值并做了预积分处理,同时IMU原始数据进行雷达进行运动补偿;

4. 后端因子图优化包括四个因子,IMU预积分结合雷达里程计的帧间约束因子在预积分节点维护,其他三个在后端节点维护,分别是GPS因子、雷达里程计因子和回环检测因子。

5. 紧耦合:IMU的零偏可以被估计,利用雷达里程计的帧间约束进行反馈,使IMU解算更加准确,提供更好的初值。

二. LIO-SAM运行演示

1. 首先要安装 ROS

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

2. 安装ROS依赖

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

3.安装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

4.下载编译LIO-SAM

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

4. 播放 bag 包运行(github上有数据集下载)

roslaunch lio_sam run.launch
rosbag play your-bag.bag 

这里有些数据集需要更改yaml文件,具体请看github。

效果如下:

十一.激光惯导LIO-SLAM框架学习之LIO-SAM框架---框架介绍和运行演示_第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,自动驾驶,人工智能)