搞激光SLAM的童鞋都接触过LeGO-LOAM吧?作为LOAM的升级版,这个是Tixiao Shan在2018年发表的东东,如今 LIO-SAM论文已经被IROS2020录用, 性能优于LOAM等.
他们团队还用三种设备:手持雷达、Jackal无人地面车、Duffy 21电动船. 真有钱啊!
LIO-SAM实际上是LeGO-LOAM的扩展版本,添加了IMU预积分因子和GPS因子,去除了帧帧匹配部分.
附上论文地址
https://arxiv.org/abs/2007.00258
代码地址
https://github.com/TixiaoShan/LIO-SAM
官方测试地址
https://www.youtube.com/watch?v=A0H8CoORZJU
安装
以ROS kinetic为例:
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
安装gtsam
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.2/
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j8
编译源码
cd ~/catkin_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
cd ..
catkin_make
测试
roslaunch lio_sam run.launch
rosbag play your-bag.bag -r 3
官方给出了数据集,可参考GitHub说明.
摘要
本文提出了一种基于smoothing和mapping的LIO-SAM紧耦合激光雷达惯性测程框架,实现了高精度、实时的移动机器人轨迹估计和地图构建.LIO-SAM在因子图顶部设置了激光雷达惯性VO,允许将不同来源的多种相对及绝对测量包括闭环作为因子合并到系统中.从IMU预积分得到运动估计值,并对点云进行反斜处理,得到激光雷达测程优化的初始估计值.然后我们利用获得的激光雷达里程计方案估计IMU的偏置.
为了保证实时的高性能,我们将旧的激光雷达扫描边缘化以进行姿态优化,然后选择性地引入关键帧,以有效的滑动窗口方法将新的关键帧配准到固定大小的先验子关键帧集合中,在局部范围替代全局范围内进行扫描匹配.从而显著地提高系统的实时性能.
系统框架
实验结果
首先就是一个场景的对比:
接着就是一个端到端误差对比:
作者跑了一个实际场景,并且附上几张激光方案对比:
轨迹比较:
最后论文附上与谷歌地球对齐的图:
总的来说,无论是性能还是效果,LIO-SAM确实不错!!!