Ubuntu20.04安装LeGO-LOAM和LIO-SAM

这篇具有很好参考价值的文章主要介绍了Ubuntu20.04安装LeGO-LOAM和LIO-SAM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ubuntu20.04安装LIO-SAM真是挺折磨人的,填了一路的坑,在此记录分享一下,为大家安装编译算法提供一个全面的参考。

目录

1. GTSAM安装

1.1 GTSAM安装准备

1.1.1 目录/usr/local/lib下清理gatsam

1.1.2 目录/opt/ros/noetic/lib/下清理gtsam

1.2 GTSAM安装过程

2. LIO-SAM算法依赖项安装

3. LeGO-LOAM算法编译问题解决

3.1 问题1----“index”

3.2 问题2---找不到-lBoost::

3.3 问题3---opencv/cv.h

3.4 问题4---PCL报错

4. LIO-SAM算法编译及运行问题解决

4.1 问题1---opencv/cv.h

4.2 问题2---PCL报错

4.3 问题3---error: ‘class std::unordered_map >’ has no member named ‘serialize’  

4.4 问题4---找不到-lBoost::

4.5 问题5---报错[lio_sam_imuPreintegration-2]

5. 运行LeGO-LOAM和LIO-SAM


1. GTSAM安装

1.1 GTSAM安装准备

由于笔者之前在安装LeGO-LOAM算法时安装了4.2版本的GTSAM,后续又辗转安装了4.1版本的GTSAM、4.02和4.03版本的GTSAM,导致在安装LIO-SAM时需要填很多坑。

所以,在此提醒大家,如果已经安装了较高版本的GTSAM,后续LIO-SAM在编译时不报错,在跑数据集时,终端一直提示error:[lio_sam_mapOptmization-5] ........[pid 29650, exit code -6,这是由于gtsam版本混乱造成的,请先清理一下gtsam,具体操作如下:

1.1.1 目录/usr/local/lib下清理gatsam

usr/local/lib目录下打开终端,删除下图中选中的文件,高版本的gtsam可能还会有libmetis-gtsam.so等文件需要删除,将名字带有gtsam的文件删除即可:

package 'lio_sam' not found:

删除指令:

sudo rm -f 文件名

1.1.2 目录/opt/ros/noetic/lib/下清理gtsam

opt/ros/noetic/lib目录下打开终端,删除下图中选中的libmetis.so文件,安装了高版本的gtsam,如果看到libmetis-gtsam.so文件,同样需要删除。

package 'lio_sam' not found:

删除指令同上:

sudo rm -f 文件名

至此,GTSAM安装准备工作完成。

1.2 GTSAM安装过程

查阅了大多数论坛博客,有说ubuntu20.04需要安装4.03版本以上的GTSAM,有说4.2版本GTSAM满足编译要求的。实际上确实是满足编译要求,但是运行时容易产生[lio_sam_mapOptmization-5]各种报错不好解决。

笔者在清理GTSAM后,选择安装了低版本的GTSAM,4.0.0-alpha2版本。

下载GTSAM4.0.0-alpha2指令:

wget https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip

为方便,直接分享一下笔者的GTSAM4.0.0-alpha2文件。

链接: https://pan.baidu.com/s/12WQHZN-B5fukpmYVe1pjdQ?pwd=auty 提取码: auty

将gtsam-4.0.0-alpha2提取出来,放到主目录下即可,根据自己喜好放到指定位置:

package 'lio_sam' not found:

提取

package 'lio_sam' not found:

放到指定位置

然后,在gtsam-4.0.0-alpha2目录下打开终端,输入下列指令:

  1. mkdir build && cd build
  2. cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
  3. sudo make install -j8

第2步,有推荐替换使用下面指令的,但是笔者没有使用也没有什么影响,所以建议不用

cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..

至此,GTSAM4.0.0-alpha2安装完成,我们接下来需要安装算法的依赖项。

2. LIO-SAM算法依赖项安装

sudo apt-get install -y ros-noetic-navigation
sudo apt-get install -y ros-noetic-robot-localization
sudo apt-get install -y ros-noetic-robot-state-publisher

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

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

3. LeGO-LOAM算法编译问题解决

安装GTSAM4.0.0-alpha2后,LeGO-LOAM算法编译会存在以下几个问题:

3.1 问题1----“index”

/usr/include/pcl-1.10/pcl/filters/voxel_grid.h:340:21: error: ‘Index’ is not a member of ‘Eigen’ 340 | for (Eigen::Index ni = 0; ni < relative_coordinates.cols (); ni++)
我们需要在指定目录中,修改voxel_grid.h文件:

package 'lio_sam' not found:

在该目录下,打开终端输入指令:

sudo gedit voxel_grid.h

把340和699行的

for (Eigen::Index ni = 0; ni < relative_coordinates.cols (); ni++)

改为:

for (int ni = 0; ni < relative_coordinates.cols (); ni++)

修改后,记得点击保存。此类问题可以参照下面链接:

LEGO-LOAM的编译与数据集调试_牙刷与鞋垫的博客-CSDN博客文章浏览阅读561次,点赞2次,收藏4次。在已开启终端中输入以下内容。https://blog.csdn.net/qq_42087574/article/details/129555213

3.2 问题2---找不到-lBoost::

package 'lio_sam' not found:

在LeGO-LOAM的CmakeList.txt中添加依赖项,即添加下列代码:

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)
find_package(Boost REQUIRED COMPONENTS system filesystem date_time)

具体如下:

package 'lio_sam' not found:

3.3 问题3---opencv/cv.h

修改utility.h文件,注释#include <opencv/cv.h>,并添加#include<opencv2/imgproc.hpp>:

package 'lio_sam' not found:

3.4 问题4---PCL报错

pcl报错问题有两种情况,一种是需要将CmakeList.txt中c++11改为14,具体如下:

package 'lio_sam' not found:

情况一

解决方法:

set(CMAKE_CXX_FLAGS "-std=c++14")

另一种情况是因为pcl链接冲突,需要将CmakeList.txt中pcl依赖项注释:

package 'lio_sam' not found:

情况二

解决方法:

package 'lio_sam' not found:

注释find_package(PCL REQUIRED QUIET)

如果还有其他问题,可以参照笔者之前的LeGO-LOAM安装笔记。

4. LIO-SAM算法编译及运行问题解决

4.1 问题1---opencv/cv.h

解决方法:

将utility.h中#include <opencv/cv.h>注释,添加#include <opencv2/opencv.hpp>

4.2 问题2---PCL报错

解决方法:

同上述3.4节的情况一,在CmakeList.txt中,把c++11改为14。

前面两种问题为常规问题,接下来重点介绍特殊问题。

4.3 问题3---error: ‘class std::unordered_map<unsigned int, std::vector<unsigned int> >’ has no member named ‘serialize’  

解决方法:

在utility.h文件中,将#include <opencv2/opencv.hpp>放到最后,如下图所示

package 'lio_sam' not found:

4.4 问题4---找不到-lBoost::

package 'lio_sam' not found:

解决方法:

参照3.2节。找不到什么,就添加什么,附上笔者当时参考的链接:

关于LIO-SAM编译时出现错误 /usr/bin/ld: 找不到 -lBoost::timer-CSDN博客文章浏览阅读2.1k次,点赞16次,收藏35次。关于LIO-SAM编译时出现错误:下载LIO-SAM代码进入LIO-SAM文件夹,通过以下代码编译:mkdir buildcd buildcmake ..make报错:/usr/bin/ld: 找不到 -lBoost::timercollect2: error: ld returned 1 exit statusCMakeFiles/lio_sam_imuPreintegration.dir/build.make:759: recipe for target 'devel/lib/lihttps://blog.csdn.net/weixin_47552638/article/details/122237126

package 'lio_sam' not found:

笔者的解决方法(CmakeList.txt修改结果)

4.5 问题5---报错[lio_sam_imuPreintegration-2]

解决方法:

cd /usr/local/lib/

sudo cp libmetis.so /opt/ros/noetic/lib/

补充:如果安装了其他版本的gtsam,查看/usr/local/lib/目录下是否有libmetis-gtsam.so,如果有,同样拷贝到/opt/ros/noetic/lib/目录下。

笔者当时参考的链接:

LIO-SAM运行报错[lio_sam_imuPreintegration-2]和[lio_sam_mapOptmization-5]解决_启动lio_sam功能包出现"package 'lio_sam' not found, search_花雨仙晨的博客-CSDN博客文章浏览阅读1.9k次,点赞2次,收藏15次。激光SALM框架LIO-SAM算法编译运行。_启动lio_sam功能包出现"package 'lio_sam' not found, searching: ['/opt/ros/foxhttps://blog.csdn.net/qq_36812406/article/details/126247621补充:其他问题可以直接从网上找答案,如果遇到没有人问及的问题,可以考虑gtsam问题,建议安装笔者推荐的gtsam,并在安装前进行清理,防止后续多版本的gtsam编译运行交叉产生问题。

5. 运行LeGO-LOAM和LIO-SAM

最后放上算法运行结果。

package 'lio_sam' not found:

LeGO-LOAM(KITTI07)

package 'lio_sam' not found:

LIO-SAM(Park)文章来源地址https://www.toymoban.com/news/detail-861200.html

到了这里,关于Ubuntu20.04安装LeGO-LOAM和LIO-SAM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu20.04下A-LOAM配置安装及测试教程(包含报错问题踩坑)

    参考文章: ubuntu20.04下ros运行A-LOAM Ubuntu20.04下运行LOAM系列:A-LOAM、LeGO-LOAM、SC-LeGO-LOAM、LIO-SAM 和 LVI-SAM 需要学习源码的同学可以下载LOAM论文 LOAM论文链接 1.1Eigen 3.3 可以直接使用apt命令安装,或者去官网下载源码安装 安装成功如下,我这里之前装过所以显示如下,可以看到安

    2024年01月16日
    浏览(54)
  • LeGo-LOAM 源码解析

    A lightweight and ground optimized lidar odometry and mapping (LeGO-LOAM) system for ROS compatible UGVs. The system takes in point cloud from a Velodyne VLP-16 Lidar (placed horizontal) and optional IMU data as inputs. It outputs 6D pose estimation in real-time. LeGO-LOAM(激光SLAM,IMU+LiDAR),以LOAM为基础,实现与其同等的精度同时大大

    2024年02月09日
    浏览(32)
  • 3D激光slam:LeGO-LOAM---地面点提取方法及代码分析

    地面点提取方法 LeGO-LOAM中前端改进中很重要的一点就是充分利用地面点,本片博客主要讲解 如何进行地面点提取 如下图所示,相邻的两个scan的同一列,打在地面上,形成两个点A和B。 它们的垂直高度差为h,这个值在理想情况(雷达水平安装,地面是水平的)接近于0 水平距

    2023年04月09日
    浏览(33)
  • 多传感器融合SLAM --- 5.Lego-LOAM论文解读及运行

    目录 1 Lego LOAM框架简介 2 论文解读 2.1 摘要部分 2.2 INTRODUCTION部分 2.3 系统描述

    2024年02月08日
    浏览(43)
  • 编译LeGo-LOAM,并且采用速腾聚创激光雷达与之相连

    参考链接:实车部署采用速腾聚创RS16激光雷达的LeGo-LOAM LeGO-LOAM初探:原理,安装和测试 1.gtsam安装(install的过程比较慢,需要耐心等待) 2.下载并编译LeGO-LOAM 3.数据集试运行 数据集的百度云地址:https://pan.baidu.com/s/1SkrqfN82il1m6jhkLZT-WA 密码: oqo8 打开 LeGO-LOAM/LeGO-LOAM/launch/run.

    2024年02月08日
    浏览(53)
  • 3D激光SLAM:LeGO-LOAM论文解读---激光雷达里程计与建图

    激光雷达里程计模块的功能就是 :估计相邻帧之间的位姿变换。 估计的方式 :在相邻帧之间做点到线的约束和点到面的约束 具体的方式和LOAM一样 针对LOAM的改进 1 基于标签的匹配 在特征提取部分提取的特征点都会有个标签(在点云分割时分配的) 因此在找对应点时,标签

    2023年04月09日
    浏览(68)
  • Ubuntu 20.04 安装宋体

    环境:         ubuntu 20.04,英文环境,但已经安装中文包 检查ubuntu中安装的中文字体 命令: fc-list :lang=zh 检查ubuntu中安装的所有字体 命令: fc-list 宋体下载: Simsun Font - Free Fonts 网盘分享:链接: https://pan.baidu.com/s/12fSpgkUWuWsh-OU32q1WCA 提取码: wpia 或者从win10上拷贝,但是拷贝的

    2024年02月10日
    浏览(35)
  • Ubuntu20.04 安装jekyll

    首先使根据官方文档安装:Jekyll on Ubuntu | Jekyll • Simple, blog-aware, static sites 如果没有报错,就不用再继续看下去了。 我这边在执行 gem install jekyll bundler 时报错,所以安装了rvm,安装rvm可以参考这篇文章Ubuntu 20.04 安装RVM 在安装完RVM之后,安装对应的ruby版本,并切换至对应版

    2024年02月19日
    浏览(37)
  • Ubuntu 20.04 安装RVM

    RVM是管理Ruby版本的工具,使用RVM可以在单机上方便地管理多个Ruby版本。 首先使下载安装脚本 如果出现了 Connection refused 的情况, 可以考虑执行以下命令修改dns,再执行下载命令 执行安装脚本 如果gpg提示没有公钥,如下,则执行提示的命令,添加对应的公钥 安装成功后会

    2024年02月21日
    浏览(46)
  • Ubuntu20.04安装anaconda

    官网链接:Anaconda | Anaconda Distribution 直接选择Download,他会自动识别系统下载最新的版本 进入下载文件夹,运行安装文件 接受安装协议,输入yes;阅读注册信息,然后输入yes;确定anaconda的安装位置,按enter确定,加入环境变量的提示信息,输入yes 在文件最后两行写入  应用

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包