問題描述 一
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 …後的一段日志資訊:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL4QzNzADOzYTMxIjMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
從這個日志資訊可以看出,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