Ubuntu20.04下的编译与运行LIO-SAM【问题解决】

2023-05-16

LIO-SAM在Ubuntu20.04下编译和运行的问题

  • 一、安装依赖项
    • 1. Boost >= 1.65
    • 2. CMake >= 3.0
    • 3. gcc大于4.7.3就行
    • 4. 安装 TBB
    • 5. 安装 MKL
  • 二、安装GTSAM
  • 三、OpenCV 版本问题
  • 四、pcl问题
    • C++14环境
  • 五、/usr/bin/ld问题
  • 六、运行报错
  • 七、数据集
  • 八、运行效果


建议运行LIO-SAM前,先在电脑上编译运行LeGO-LOAM,很多依赖项都属于继承关系,出现相关问题参考我的另一个博客Ubuntu20.04下的编译与运行LeGO-LOAM【问题解决】,对库的修改自行对照博客,对源码的修改请参照此处。

一、安装依赖项

1. Boost >= 1.65

sudo apt-get install libboost-all-dev

2. CMake >= 3.0

sudo apt-get install cmake

3. gcc大于4.7.3就行

查看版本

gcc --version

之后的依赖(TBB、MKL)是可选安装(Optional prerequisites - used automatically if findable by CMake),我没试过不装这些依赖是什么效果,但应该问题不大。

4. 安装 TBB

sudo apt-get install libtbb-dev

5. 安装 MKL

这一步首先要进入到 root 权限,进入root之后,步骤如下:

sudo bash
 
cd /tmp
 
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
 
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
 
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
 
exit

之后关闭root终端,重开一个终端 :

sudo wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list
 
sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'

如果是32位系统,还要加上这句,64位跳过
sudo dpkg --add-architecture i386

紧接着:

sudo apt-get update
 
选择安装版本,选比较新的应该问题不大,给的示例是:
sudo apt-get install intel-mkl-2018.2-046
 
我安装的是2020.4-912,也就是:
sudo apt-get install intel-mkl-2020.4-912

二、安装GTSAM

这里需要注意,ubuntu20.04的需要选择GTSAM >= 4.0.3 的版本,否则会报“The “debug” argument must be followed by a library.”之类的错误。目前网上的解决方法都是说注释掉报错的部分,但这种操作本身风险就很大,在之后的cmake 和 install 时又会出现其他错误。因此,只要选择这时间之后的版本基本上都没问题。

三、OpenCV 版本问题

由于20.04自带的是OpenCV4,所以要对LIO-SAM代码做一点改动:
找到utility.h中的:#include<opencv/cv.h>,修改为#include <opencv2/imgproc.hpp>。即可成功编译。

四、pcl问题

C++14环境

错误如下(示例):

在这里插入图片描述

主要是让LIO-SAM支持C++14,所以只需要修改下载下来的源码中CMakeList.txt:
修改如下:

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

五、/usr/bin/ld问题

错误如下(示例):

在这里插入图片描述

在CMakeLists中加入:

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)

六、运行报错

错误如下(实例):
在这里插入图片描述
解决办法:在新的终端执行以下指令

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

七、数据集

lio-sam配套数据集

八、运行效果

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu20.04下的编译与运行LIO-SAM【问题解决】 的相关文章

  • Anaconda使用总结

    原文地址 xff1a https www jianshu com p 2f3be7781451 序 Python易用 xff0c 但用好却不易 xff0c 其中比较头疼的就是包管理和Python不同版本的问题 xff0c 特别是当你使用Wi
  • A*寻路算法介绍

    你是否在做一款游戏的时候想创造一些怪兽或者游戏主角 xff0c 让它们移动到特定的位置 xff0c 避开墙壁和障碍物呢 xff1f 如果是的话 xff0c 请看这篇教程 xff0c 我们会展示如何使用A星寻路算法来实现它 xff01 在网上
  • RTK固定解什么意思

    RTK固定解什么意思 金丝大环刀的回答 知乎 RTK固定解什么意思 知乎 rtk固定解一般是指载波相位窄巷整周模糊度已经固定之后的解算结果 narrow int xff0c 精度可达厘米级至毫米级 除此之外 xff0c 还有宽巷解 xff0
  • QtCreate由MinGW编译的项目,换为MSVC编译器后编译无法通过

    解决方法 xff1a 1 将文件的编码格式设置为utf 8且BOM格式 xff1b 2 在 pro文件中添加如下代码 msvc QMAKE CFLAGS 43 61 utf 8 QMAKE CXXFLAGS 43 61 utf 8 其中方法
  • 2D nav goal 后小车不能沿着路径走

    2D nav goal 后小车不能沿着路径走 解决方法 xff1a 下载turtlebot3的代码 xff0c 编译 xff0c 把原来的模型改成turtlebot3的 真正的错因 xff1a xacro在melodic版本上的inorde
  • vscode配置header指令添加头部注释或KoroFileHeader自动添加头部解释

    1 xff08 1 xff09 新建Python文件输入header添加头部注释 vscode gt file gt Perferences gt User Snippets gt python 也可选其他语言 xff1a 则会生成pyth
  • Android Okhttp工具类的封装(okhttpUtils)

    Android Okhttp工具类 Android Okhttp工具类的封装 xff08 okhttpUtils xff09 近期的项目频繁使用到了网络交互 xff0c 采用的是第三方类库okhttp 以下是我对okhttp主要使用到的方法
  • 通过requests登录店小秘解决验证码问题

    登录常用手段就是 request post请求 selenium等自动化工具 这里讲一下使用requests实现自动登录 网站 现在网站登录基本上都有验证码 xff0c requests登录的难点在于将验证码与账号联系起来 xff0c 这里
  • 关于ubuntu18系统~/.bashrc文件中ros环境无法生效问题

    项目场景 xff1a ubuntu18 43 melodic 问题描述 xff1a 这几天一直遇到一个问题 xff0c 就是ubuntu18中ros的环境问题 xff0c 最开始的时候是一直用到好好的ros系统 xff0c 突然说无法识别r
  • 关于move_base无法加载的问题[move_base-11] process has died

    项目场景 xff1a kinetic下使用move base进行导航 问题描述 xff1a 之前move base使用的好好的 xff0c 结果突然之间不能用了 xff0c 出现move base功能包无法加载的情况 报错如下 xff1a
  • Jetson Nano利用普通引脚进行PWM波输出

    这篇博客我就简单介绍一下好了 xff0c 不深入讲了 需要注意的是 xff0c 我这里用到了ROS xff0c 所以运行之前需要安装ROS 初始化中有一个12和50 xff0c 分别代表频率 xff0c 完之后他就会让pin12自动输出50
  • Git基础 - git tag 一文真正的搞懂git标签的使用

    1 什么是tag 1 1 tag的简单理解 tag 中文我们可以称它为 标签 简单的理解 xff0c tag 就是 对某次 commit 的一个标识 xff0c 相当于起了一个别名 例如 xff0c 在项目发布某个版本的时候 xff0c 针
  • C++学习笔记十六:使用OpenCv(c++)调用yolo模型实现目标检测

    一 前言 因为之前都是直接使用python编程来实现目标检测 xff0c 而且是直接使用模型 于是就想了解一下使用c 43 43 语言如何进行目标检测 xff0c 也能帮助自己更好的熟悉c 43 43 的语法 简单起见 xff0c 使用op
  • requests python

    requests是模拟客户端向服务端发送http请求的模块 可以方便的对网页进行爬取 xff0c 是学习python爬虫的较好的http请求模块 1 安装 pip install requests 2 使用方法 方法解释requests r
  • QGraphicsView加入到布局,所在的窗口变大,视图和场景都变大,使场景中的矩形也变大

    需求 窗口变化时 xff0c 窗口中的矩形框也变化 效果展示 当窗口变大时其矩形框也变大 要求绿色矩形框与蓝色背景的边距始终为10 代码 直接上项目的代码 项目结构 各文件的代码 main cpp span class token macr
  • TX2通过串口或CAN和其他设备通信(一)--- 串口通信

    TX2通过串口或CAN和其他设备通信 xff08 一 xff09 串口通信 背景介绍 Jetson TX2是NVIDIA推出的一款嵌入式开发平台 xff0c TX2所提供的性能为早前版本的两倍 xff0c 即能够以两倍以上的功效运行 xff
  • Micropython——九轴传感器(MPU6050)的使用及算法(二)

    前言 xff1a 在上篇文章中 xff0c 简单地实现了九轴传感器 xff08 MPU6050 xff09 的获取加速度 角速度以及温度的数值 但是 xff0c 我们知道 xff0c 对于MPU6050来说 xff0c 其提供的数据会夹杂有
  • Micropython——九轴传感器(MPU6050)的使用及算法(三)

    简介 xff1a 上篇文章中 xff0c 关于九轴传感器 xff08 MPU6050 xff09 xff0c 学习其如何对其生成的数据偏移进行校准 xff0c 这节课我们来将其中的一个问题来进行解决 关于MPU6050地址问题 xff0c
  • C语言库函数——string.h

    目录 摘要 xff1a 一 头文件 string h 中定义的函数 strcpy 用法 xff1a 代码示例 xff1a 参数 xff1a memchr 用法 xff1a 代码示例 xff1a 参数 xff1a strlen 用法 xff1
  • 2019年电赛准备程序STM32版本

    现在是2019年8月11号 xff0c 昨天电赛结束 xff0c 不愿意好的东西随时间而消失不见 xff0c 所以将准备的程序总结一下 xff0c 分享出来 目录 一 电赛的故事 二 准备程序 1 PID 2 滤波 3 菜单 4 直流编码电

随机推荐