本文主要是介绍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博客
这篇关于LIO-SAM 安装 编译 学习记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!