基于ubuntu20.04 环境跑通LIO_SAM重定位

link

序言

作为LOAM重要的一个变种,LIO_SAM基本上算是这个系列里面知识点最全面。这个软件框架包含了去畸变、特征点提取(角点、平面点)、前端、后端、回环,同时软件框架还融合了IMU信息,可以配置融合GPS信息。当然这种紧耦合方式也有一些缺点,要求传感器的时间同步做的比较好。另外还有一些问题,比如大场景建图还是需要用submap这种形式;还比如建图需要对于动/静态的障碍物需要进行过滤等。

环境配置

我配置前已经安装好ros系统,因此默认大家也都已经安装好ros系统。

步骤1:安装依赖环境

powershell 复制代码
sudo apt-get install -y ros-noetic-navigation
sudo apt-get install -y ros-noetic-robot-localization
sudo apt-get install -y ros-noetic-robot-state-publisher

步骤2:安装gtsam库

text 复制代码
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

问题:进行'cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..'时,出现下图问题

解决:1、修改文件gtsam/wrap/CMakeLists.txt文件;2、修改文件gtsam/CMakeLists.txt文件


步骤3:安装LIO_SAM

text 复制代码
mkdir -p catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/Gaochao-hit/LIO-SAM_based_relocalization.git
cd ..
catkin_make

步骤4、下载对应的数据,数据百度网盘链接(BAG_LIO_SAM)提取码:G0Y3

步骤5、运行程序LIO_SAM

text 复制代码
source devel/setup.bash
roslaunch lio_sam run.launch;

问题:运行时出现[lio_sam_imuPreintegration-2] process has died、[lio_sam_mapOptmization-5] process has died

解决:解决实际问题是库文件libmetis.so 的位置。它是一个运行时库,但是当应用程序查找它时,它的位置不在预期的目录中。在通过运行命令sudo make install -j8安装库gtsam 时,文件libmetis.so安装在/usr/local/lib/的默认位置,但是当我们启动 ros 工作区时,运行时库查看位置/opt/ros/noetic/lib/

text 复制代码
cd /usr/local/lib/
sudo mv libmetis.so /opt/ros/melodic/lib/

问题:IMU坐标系配置问题、topic名字配置出现问题

解决:按照下载数据不同配置IMU坐标系

text 复制代码
extrinsicRot: [-1, 0, 0,
                  0, 1, 0,
                  0, 0, -1]
  extrinsicRPY: [0, -1, 0,
                 1, 0, 0,
                 0, 0, 1] # casual_walk.bag
  # extrinsicRot: [1, 0, 0,
  #                 0, 1, 0,
  #                 0, 0, 1]
  # extrinsicRPY: [1, 0, 0,
  #                 0, 1, 0,
  #                 0, 0, 1] # 其他bag包

topic名称配置可以

text 复制代码
rosbag info ***.bag # 下载的bug包,将对应的topic名称写入配置文件即可。

步骤6、PCB全局地图保存,修改配置文件config/params.yaml

text 复制代码
# Export settings
savePCD: true
savePCDDirectory: "/map/" # 根据需要,配置自己的路径,路径前后都需要加"/" 

问题:对应路径下保存不了地图;

解决 :修改配置文件/opt/ros/noetic/lib/python3/dist-packages/roslaunch/nodeprocess.py

text 复制代码
# DOUBLE_TIMEOUT_SIGINT=15.0
DOUBLE_TIMEOUT_SIGINT=60.0

步骤7:运行重定位

text 复制代码
roslaunch lio_sam run_relocalize.launch

最后,经历了以上步骤后运行程序,建图效果如下:


重定位效果如下:


参考链接如下:

链接1:Ubuntu 中 gtsam 安装问题:CMake Error at wrap/CMakeLists.txt:32 (target_link_libraries): The "debug" ...

链接2:运行LIO-SAM,[lio_sam_imuPreintegration-2] process has died,[lio_sam_mapOptmization-5] process has died

链接3:LIO_SAM怎么保存地图_海的精灵的博客-CSDN博客

相关推荐
我搞slam2 天前
Cartographer源码理解
算法·slam·cartographer
杀生丸学AI15 天前
【三维重建】近期进展(完善中)
3d·aigc·slam·三维重建·nerf·视觉大模型
WHAT81620 天前
【Orb-Slam3学习】 特征匹配函数的目的与分类
c++·人工智能·算法·slam
Chris·Bosh23 天前
intel RealSense D435i自制数据集跑SLAM
linux·slam
Johaden1 个月前
视觉SLAM ch3补充——在Linux中配置VScode以及CMakeLists如何添加Eigen库
linux·c++·ide·vscode·编辑器·slam
风与铃的约定1 个月前
2.2 视觉SLAM 实践:Eigen
c++·机器人·slam·视觉slam·eigen·机器人运动学
Johaden2 个月前
在C++程序中新建并使用库
linux·运维·服务器·c++·slam
WHAT8162 个月前
【视觉SLAM】 G2O库编写步骤介绍
算法·slam·g2o
什么都不会的小澎友2 个月前
(秋招复习)自动驾驶与机器人中的SLAM技术(一)
自动驾驶·秋招·slam
sinat_164231712 个月前
alike-cpp 编译
slam