基于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博客

相关推荐
智驾机器人技术前线2 天前
近期两篇NeRF/3DGS-based SLAM方案赏析:TS-SLAM and MBA-SLAM
3d·slam·nerf·3dgs
CA7275 天前
【视觉SLAM】2-三维空间刚体运动的数学表示
slam·三维旋转·四元数
CA7277 天前
【视觉SLAM】4b-特征点法估计相机运动之PnP 3D-2D
slam
大山同学7 天前
RA-L开源:Light-LOAM: 基于图匹配的轻量级激光雷达里程计和地图构建
语言模型·机器人·去中心化·slam·感知定位
大山同学8 天前
DPGO:异步和并行分布式位姿图优化 2020 RA-L best paper
人工智能·分布式·语言模型·去中心化·slam·感知定位
OAK中国_官方10 天前
OAK相机:纯视觉SLAM在夜晚的应用
人工智能·机器学习·slam
极客代码12 天前
【计算机视觉】深入浅出SLAM技术原理
人工智能·python·算法·计算机视觉·机器人·slam·地图构建
大山同学13 天前
最新开源DCL-SLAM:一种用于机器人群体的分布式协作激光雷达 SLAM 框架
人工智能·分布式·机器人·开源·slam·感知定位
大山同学14 天前
多机器人图优化:2024ICARA开源
人工智能·语言模型·机器人·去中心化·slam·感知定位
Lusix19491 个月前
Realsense相机驱动在使用imu数据时出现Qos问题
数码相机·slam·realsense