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

相关推荐
点云SLAM1 个月前
卡尔曼滤波算法(Kalman Filter, KF)深入推导
人工智能·算法·slam·状态估计·滤波器·卡尔曼滤波算法
点云SLAM1 个月前
SLAM文献之-DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras
深度学习·3d·slam·droid-slam·稠密ba·端到端深度学习slam
JaydenQ2 个月前
如何使用3D高斯分布进行环境建模
slam
Perishell2 个月前
无人机避障——感知篇(采用Livox-Mid360激光雷达获取点云数据显示)
linux·机器人·动态规划·无人机·slam
知也无涯123452 个月前
机器学习大模型问题记录
计算机视觉·slam
bohu832 个月前
亚博microros小车-原生ubuntu支持系列:17 gmapping
slam·激光雷达·rviz·gmapping·microros·亚博·构建地图
深蓝学院2 个月前
顶刊JFR|ROLO-SLAM:首个针对不平坦路面的车载Lidar SLAM系统
slam·激光雷达
陈傻鱼3 个月前
ROS2测试仿真
机器人·ros·slam
点云SLAM3 个月前
CVPR 2024 自动驾驶方向总汇
人工智能·计算机视觉·自动驾驶·slam·cvpr·cvpr 2024·道路检测
什么都不会的小澎友4 个月前
相机雷达外参标定综述“Automatic targetless LiDAR–camera calibration: a survey“
slam