前言
1、运行参考此大佬
一、下载
mkdir -p ~/lio_sam_ws/src
cd ~/lio_sam_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
cd ..
存在网盘上的功能文件:
1、改ros包中frame_id的名字的py文件
链接: https://pan.baidu.com/s/1503fTV8KnfLkXJcCxXhtcw?pwd=pux5 提取码: pux5
–来自百度网盘超级会员v5的分享
2、使用GPS时候将gps格式转化为liosam所需要的格式
实现从 sensor_msgs/NavSatFix 转换为 nav_msgs/Odometry 的功能
链接: https://pan.baidu.com/s/1oanEeFAJ_I7A1kezPG7wFQ?pwd=vx87 提取码: vx87
–来自百度网盘超级会员v5的分享
二、编译&&解决报错
catkin_make
报错如下
opencv的解决方案:
第一步:
sudo add-apt-repository ppa:borglab/gtsam-release-4.0
sudo apt update
sudo apt install libgtsam-dev libgtsam-unstable-dev
第二步:
找到utility.h文件
//将下面头文件移动到opencv头文件前面
#include <pcl/kdtree/kdtree_flann.h>
//#include <opencv/cv.h>
//add
#include <opencv2/opencv.hpp>
第三步:
修改CMakeLists.txt文件
#set(CMAKE_CXX_FLAGS "-std=c++11")
#add
set(CMAKE_CXX_FLAGS "-std=c++14")
gtsam的解决方案
报错如图
[lio_sam_imuPreintegration-2] process has died [pid 9303, exit code -11, cmd /home/kenneth/Liosam/devel/lib/lio_sam/lio_sam_imuPreintegration __name:=lio_sam_imuPreintegration __log:=/home/kenneth/.ros/log/cb7b7292-44dd-11ef-bb3d-c75409d23bf0/lio_sam_imuPreintegration-2.log].
log file: /home/kenneth/.ros/log/cb7b7292-44dd-11ef-bb3d-c75409d23bf0/lio_sam_imuPreintegration-2*.log
[lio_sam_mapOptmization-5] process has died [pid 9299, exit code -11, cmd /home/kenneth/Liosam/devel/lib/lio_sam/lio_sam_mapOptmization __name:=lio_sam_mapOptmization __log:=/home/kenneth/.ros/log/cb7b7292-44dd-11ef-bb3d-c75409d23bf0/lio_sam_mapOptmization-5.log].
log file: /home/kenneth/.ros/log/cb7b7292-44dd-11ef-bb3d-c75409d23bf0/lio_sam_mapOptmization-5*.log
参考博客:
这里
报错[lio_sam_imuPreintegration-2]时
cd /usr/local/lib/
sudo cp libmetis.so /opt/ros/melodic【自己的ros版本】/lib/
报错lio_sam_mapOptmization-5]时
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
下面详细说以下源码编译的时候的修改方案(ubuntu20.04)
下载以后
gtsam-4.0.0/CMakeLists.txt
中把两处debug下的东西删掉或者注释
gtsam-4.0.0/wrap/CMakeLists.txt
这个里的debug也删掉或者注释
编译指令使用如下
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
make -j4
sudo make install
以上内容是自己电脑上编译了很多版本的gtsam导致环境错乱。导致了los sam运行时候报错。