序言
作为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