复现lio_sam激光slam算法创建点云地图

实验环境:ubuntu16.04+ROSkinetic+robosense16线+xsense_mti_700惯导+pcl1.9.0+gtsam4.0.2

一、LIO_SAM简介

论文:https://github.com/TixiaoShan/LIO-SAM/blob/master/config/doc/paper.pdf

源码:https://github.com/TixiaoShan/LIO-SAM

LIO_SAM由作者Tixiao Shan发表于IROS2020,是一种激光-惯性里程计紧耦合slam方法,前端执行scan-to-map匹配得到位姿变换;后端采用因子图优化方法,包含四种因子,通过优化lidar里程计因子、IMU预积分因子、GPS因子和回环因子来得到机器人的全局一致位姿。该作者在2018年就发表过LeGO-LOAM,LIO-SAM是LeGO-LOAM的扩展版本,添加了IMU预积分因子和GPS因子 下图是LIO-SAM的因子图结构,变量节点是关键帧,相邻的关键帧之间通过IMU数据计算预积分获得位姿变换,构建IMU预积分因子;每个关键帧还有对应的GPS数据参与校正。如果有闭环出现,闭环帧之间可以构建约束;关键帧之间有若干普通帧,这些帧不参与优化,但是会执行scan-to-map的配准,优化每帧位姿。

复现lio_sam激光slam算法创建点云地图

二、必要的准备工作

2.1将robosense点云格式转为velodyne点云格式,lio-sam仅支持velodyne和ouster雷达,如果你是速腾聚创雷达可以参考我的另一篇博客详细记录了robosense点云转velodyne点云

2.2 lio_sam仅支持9轴imu,你需要拿到你imu的内参,可以参考我的另一篇博客详细记录了使用港科大的imu_utils标定工具,使用Allan方差来标定高斯白噪声和随机游走噪声。imu_utils标定imu

2.3 联合标定lidar和imu的外参,可以参考我的另一篇博客详细记录了使用瑞士苏黎世联邦理工大学自动驾驶实验室开发的lidar_align工具标定雷达和imu外参过程。lidar-align联合标定lidar与imu

三、配置运行lio_sam的环境

3.1 pcl1.9.0安装

安装pcl所需要的依赖

sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre

下载pcl压缩包:pcl-1.9.0

复现lio_sam激光slam算法创建点云地图

将下载的压缩包放在home/下解压缩并编译安装

tar -zxvf pcl-pcl-1.9.0.tar.gz    //解压缩

cd pcl-pcl-1.9.0
mkdir build
cd build

cmake -DCMAKE_BUILD_TYPE=Release ..

make -j1                          //编译
sudo make install

3.2 安装gtsam4.0.2

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

编译前在CMakeList.txt中299行后if(GTSAM_USE_SYSTEM_EIGEN)前加上set(GTSAM_USE_SYSTEM_EIGEN on)

复现lio_sam激光slam算法创建点云地图
//在上一步新建的biuld文件夹内打开终端进行编译
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..

make -j1
sudo make install

3.3 安装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.4 下载lio_sam源码并编译

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

catkin_make

3.5 这里你可以下载作者提供的数据集感受一下lio_sam,境外资源下载很慢可以从我的网盘下载

lio_sam_park数据集:
hi,这是我用百度网盘分享的内容~复制这段内容打开「百度网盘」APP即可获取
链接:https://pan.baidu.com/s/1xaeqbJID3KBuOHjSlfN3Og
提取码:tzrs

cd ~/catkin_ws
source devel/setup.bash
roslaunch lio_sam run.launch

rosbag park.bag            //在你放数据集的文件夹内右键新开终端

3.6 在完成第二步必要的工作后,配置LIO-SAM/config/下的params.yaml参数,更改之前建议备份在旁边复制粘贴一份params(copy).yaml

复现lio_sam激光slam算法创建点云地图

复现lio_sam激光slam算法创建点云地图

打开前面imu_utils标定的结果按照数字编号对应粘贴覆盖掉params.yaml数值

复现lio_sam激光slam算法创建点云地图

打开前面lidar_align标定的结果按照数字编号对应粘贴覆盖掉params.yaml数值

params.yaml编号06编号07数值一样都用lidar_align的标定结果编号06三阶矩阵

复现lio_sam激光slam算法创建点云地图

3.7 保存地图设置

更改LIO-SAM/config/下的params.yaml ==== false改为ture,路径以斜杠开头结尾

复现lio_sam激光slam算法创建点云地图

更改_TIMEOUT_SIGINT参数否则可能造成地图保存失败,这是由于地图过大时,保存地图会花费一些时间,如果_TIMEOUT_SIGINT太小,很可能造成地图还未保存,ros节点就已经提前关闭了

sudo gedit /opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/nodeprocess.py

//默认是15s改到30s或者60s

3.8 到这里准备工作就完成啦,给lidar和imu上电!

启动imu 节点

cd ~/imu_ws
source devel/setup.bash
sudo chmod 666 /dev/ttyUSB0
roslaunch xsens_driver xsens_driver.launch

启动lidar节点

cd ~/RS_SDK
source devel/setup.bash
roslaunch rslidar_sdk start.launch

启动lio_sam节点

cd ~/catkin_ws
source devel/setup.bash
roslaunch lio_sam run.launch

贴两张效果图

复现lio_sam激光slam算法创建点云地图

感谢并参考了这位博主的帖子:https://blog.csdn.net/weixin_42141088/article/details/118000544

Original: https://blog.csdn.net/weixin_53073284/article/details/123363263
Author: 大聪明墨菲特
Title: 复现lio_sam激光slam算法创建点云地图

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/647804/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球