一: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上面的框架图:
特点:
1. 一共使用了三个传感器,GPS可选;
2. Odometry 以IMU的frequency(要收到雷达里程计信息后才发出),这样前端频率更高;
3. IMU odometry提供初始估计值并做了预积分处理,同时IMU原始数据进行雷达进行运动补偿;
4. 后端因子图优化包括四个因子,IMU预积分结合雷达里程计的帧间约束因子在预积分节点维护,其他三个在后端节点维护,分别是GPS因子、雷达里程计因子和回环检测因子。
5. 紧耦合:IMU的零偏可以被估计,利用雷达里程计的帧间约束进行反馈,使IMU解算更加准确,提供更好的初值。
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。
效果如下:
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)