LIO-SAM 安装 编译 学习记录

2024-02-27 21:10
文章标签 编译 安装 学习 记录 sam lio

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



http://www.chinasem.cn/article/753607

相关文章

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时