运行LIO-SAM踩坑问题

本文解决LIO-SAM功能包在ROS环境下的几个常见问题,包括升级过程中动态链接库缺失、编译时版本冲突以及保存地图设置等。通过修改配置文件与源代码,确保LIO-SAM正常运行。

问题描述 一

Same issue when upgrading ROS Melodic code from 4.0.2 to 4.0.3 on Ubuntu 18.04. ROS code compiled correctly however at runtime gave error:

error while loading shared libraries: libmetis-gtsam.so: cannot open shared object file: No such file or directory

解决方案

Adding export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH to ~/.bashrc resolved the issue as mentioned above.

source ~/.bashrc

问题描述二

编译LIO-SAM功能包时遇到错误提示:

static assertion failed: Error: GTSAM was built against a different version of Eigen

原因

这是由于gtsam自带eigen版本与系统ros中自带eigen版本之间冲突问题,需要修改gtsam包的CMakeLists.txt文件,使其编译时使用系统eigen,然后重新编译安装gtsam。

解决方法

解决办法就是让GTSAM编译的时候使用系统的eigen。
首先看一下gtsam编译在执行了cmake …后的一段日志信息:
在这里插入图片描述
从这个日志信息可以看出,GTSAM默认编译并没有使用系统eigen。

在gtsam的CMakeLists.txt文件中找到:

if(GTSAM_USE_SYSTEM_EIGEN)
     find_package(Eigen3 REQUIRED)
     …

if(GTSAM_USE_SYSTEM_EIGEN) 上方添加一句:

set(GTSAM_USE_SYSTEM_EIGEN ON)

然后重新编译安装GTSAM即可。
在这里插入图片描述

问题描述 三

保存地图,需要对config/params.yaml文件进行如下修改:

# 保存地图设置为true
savePCD: true                              # https://github.com/TixiaoShan/LIO-SAM/issues/3
# 设置地图保存路径
savePCDDirectory: "自己设置的路径"        # in your home folder, starts and ends with "/". Warning: the code deletes "LOAM" folder then recreates it. See "mapOptimization" for implementation

更改了配置文件后,还需更改一下_TIMEOUT_SIGINT参数,否则可能造成地图保存失败(这是由于ros会在_TIMEOUT_SIGINT秒后关闭ros节点,但是地图过大时,保存地图会花费一些时间,如果_TIMEOUT_SIGINT太小,很可能造成地图还未保存,节点就已经关闭了,所以需要适当调高_TIMEOUT_SIGINT值),具体方法如下:

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

找到_TIMEOUT_SIGINT并调整数值(默认15s,我的参考值60s)
参考:github:https://github.com/TixiaoShan/LIO-SAM/issues/3

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值