LIO-SAM 安装 编译 学习记录

一.准备工作

1源码:

1.1加速mirrors / TixiaoShan / LIO-SAM · GitCode

1.2原版GitHub - TixiaoShan/LIO-SAM: LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping

2依赖

3编译

cd ~/catkin_ws/src
添加源码
cd..
catkin_make -j1  (第一次尽量-j1以来生成一些消息类型)//catkin_make

4编译遇到的问题(不断更新中)

  • 由于PCL版本1.10,将C++标准改为14:
#set(CMAKE_CXX_FLAGS "-std=c++11")
set(CMAKE_CXX_FLAGS "-std=c++14")
  • 找到OpenCV4.2.0包:
#find_package(OpenCV REQUIRED QUIET)
set(CMAKE_PREFIX_PATH "/usr/include/opencv4") 
find_package(OpenCV 4.0 QUIET)
  • /usr/bin/ld问题,修改:
# find_package(Boost REQUIRED COMPONENTS timer)
find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)
  • 找到utility.h中的:#include<opencv/cv.h>,修改为
// #include<opencv/cv.h>
#include <opencv2/imgproc.hpp>

5.运行示例数据集

5.1   source

source devel/setup.zsh
//若不行source devel/setup.bash

5.2运行launch文件:

roslaunch lio_sam run.launch

5.3播放数据包((频率可选,可调)

rosbag play park_dataset.bag -r 3

5.4播放数据集报错

(实验了,好使)

错误:ERROR: cannot launch node of type [robot_localization/ekf_localization_node]: robot_localization,安装功能包:

sudo apt-get install ros-noetic-fake-localization
sudo apt-get install ros-noetic-robot-localization

若报错:[lio_sam_imuPreintegration-2]和[lio_sam_mapOptmization-5],是GTSAM的问题,缺少一些库。它们已安装但不可用,因为不在 LD_LIBRARY_PATH 环境变量中。所以将 /usr/local/lib 目录添加到变量中:
 

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

或者(没实验过)

1.报错[lio_sam_imuPreintegration-2]时

原因:库文件libmetis.so 的位置不在ros的工作区。在安装GTSAM库的时候默认安装的路径为/usr/local/lib/,当启动工作空间时,运行的库查找的路径为/opt/ros/ros版本/lib/。

cd /usr/local/lib/
sudo cp libmetis.so /opt/ros/melodic【自己的ros版本】/lib/

2.报错lio_sam_mapOptmization-5]时

原因:GTSAM库编译问题。

解决: 重新编译安装GTSAM库加上参数指令,cmake命令为:

cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..

5.5三个数据集测试

LIO_SAM实测运行,论文学习及代码注释[附对应google driver数据]_gitee liosam_Eminbogen的博客-CSDN博客

三个官方数据集:casual_walk_2.bag、outdoor.bag、west.bag。

如果运行casual_walk_2.bag不需要修改任何参数,使用默认文件即可;如果要运行其它两个数据集,则需要做如下修改:

imuTopic: "imu_raw"  改为 imuTopic: "imu_correct"
extrinsicRot 和 extrinsicRPY 设为单位矩阵

其中extrinsicRot表示imu->lidar的坐标变换, 用于旋转imu坐标系下的加速度和角速度到lidar坐标系下, extrinsicRPY则用于旋转imu坐标系下的欧拉角到lidar坐标下, 由于lio-sam作者使用的imu的欧拉角旋转方向与lidar坐标系不一致, 因此使用了两个旋转不同, 但是大部分的设备两个旋转应该是设置为相同的。
 

同时GitHub主页还提供了验证GPS的数据集(park.bag),如果要使用GPS数据,则需要进行如下修改:

gpsTopic: "odometry/gpsz"  改为 gpsTopic: "odometry/gps"  
useImuHeadingInitialization: false 改为 useImuHeadingInitialization: true   # 如果使用gps数据这里一定要设置为true,不然可能会跑飞

具体细节方面(有相对应的网盘连接)

LIO-SAM:配置环境、安装测试、适配自己采集数据集_有待成长的小学生的博客-CSDN博客

5.6如果要保存点云及轨迹等结果,在参数文件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

park数据集可验证GPS松组合效果,如果要使用GPS数据,则需要进行如下修改:

gpsTopic: "odometry/gpsz"  改为 gpsTopic: "odometry/gps"  
useImuHeadingInitialization: false 改为 useImuHeadingInitialization: true

5.7后续问题解决

5.8.pcl-ros-vtk版本问题对不上

ubuntu18.04先安装对应版本ROS,,接着是对应版本的VTK,,最后安装PCL。

注意:ros-melodic里的pcl我对应的是pcl1.8;ros-noetic里对应的pcl为pcl1.10。

一.

对于ros细节步骤如下:

5.8.1对应版本安装

ubuntu18.04-------ros-melodic

5.8.2

配置软件库

 清华-阿里都可,那个快用那个

5.8.3可能出现的问题以及解决方案

1.设置安装源,(借鉴,具体可看原著,更详细Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)_鱼香ros安装_爱跑步的mango的博客-CSDN博客

避免后面会出现无法定位软件包的错误,这里ROS提供了国内的安装源,添加国内安装源命令

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

2.设置密钥

  • 若密钥服务器hkp://ha.pool.sks-keyservers.com:80无法添加成功,则可以尝试hkp://pgp.mit.edu:80或者hkp://keyserver.ubuntu.net:80

已成功案例:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

3.更新Ubuntu 18.04 LTS的最新可用软件包列表

sudo apt update

...

但是会出现uodate不成功,百度(见隐藏文章)

http://t.csdn.cn/W8KEy

...有点懒了,就按照上述操作

ros安装成功

二.ROS已装背景下安装PCL和VTK,解决VTK和PCL_ROS冲突问题_pcl_ros安装_TwilightZrui的博客-CSDN博客

就成功了 。

致谢:转载+参考

1.

Ubuntu20.04下运行LOAM系列:A-LOAM、LeGO-LOAM、LIO-SAM 和 LVI-SAM_loam运行_ZARD帧心的博客-CSDN博客

2.

LIO-SAM运行报错[lio_sam_imuPreintegration-2]和[lio_sam_mapOptmization-5]解决_lio-sam编译时无法链接到map_花雨仙晨的博客-CSDN博客

3.Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)_鱼香ros安装_爱跑步的mango的博客-CSDN博客

4.

ROS已装背景下安装PCL和VTK,解决VTK和PCL_ROS冲突问题_pcl_ros安装_TwilightZrui的博客-CSDN博客

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值