ubuntu20.04 运行 lio-sam 流程记录

2024-04-03 12:36

本文主要是介绍ubuntu20.04 运行 lio-sam 流程记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ubuntu20.04 运行 lio-sam

  • 一、安装和编译
    • 1.1、安装 ROS1
    • 1.2、安装 gtsam
    • 1.3、安装依赖
    • 1.4、下载源码
    • 1.5、修改文件
    • 1.6、编译和运行
  • 二、官方数据集的运行
    • 2.1、casual_walk_2.bag
    • 2.2、outdoor.bag、west.bag
    • 2.3、park.bag
  • 三、一些比较好的参考链接

记录流程,方便自己快速复现

一、安装和编译

1.1、安装 ROS1

这里使用的鱼香 ros 一键安装

wget http://fishros.com/install -O fishros && . fishros

1.2、安装 gtsam

sudo add-apt-repository ppa:borglab/gtsam-release-4.0
sudo apt install libgtsam-dev libgtsam-unstable-dev

1.3、安装依赖

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

1.4、下载源码

创建工作空间 catkin_ws/src

cd ~/catkin_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git

1.5、修改文件

第一处:

~/catkin_ws/src/LIO-SAM/include/ 文件夹下的 utility.h 文件,替换其中的 #include <opencv/cv.h> 这一行,改为:#include <opencv2/imgproc.hpp>

第二处:

~/catkin_ws/src/LIO-SAM/ 文件夹下的 CMakeList.txt 文件,替换其中的 set(CMAKE_CXX_FLAGS "-std=c++11") 这一行,改为:set(CMAKE_CXX_FLAGS "-std=c++14"),并且添加

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)

1.6、编译和运行

catkin_make
source devel/setup.bash
roslaunch lio_sam run.launch

二、官方数据集的运行

数据集下载链接:
链接: https://pan.baidu.com/s/1IZClZE_YfsrsES3xklBzhQ 提取码: vsks

如果想要保存地图,需要对config/params.yaml文件的这两行做修改

# Export settingssavePCD: true                              # https://github.com/TixiaoShan/LIO-SAM/issues/3savePCDDirectory: "/Downloads/LOAM/"        # in your home folder, starts and ends with

会保存五个pcd

在这里插入图片描述

2.1、casual_walk_2.bag

这个包可以直接运行,不用做任何修改

在这里插入图片描述

2.2、outdoor.bag、west.bag

params.yaml 改成如下,便可运行

extrinsicRot 和 extrinsicRPY 设为单位矩阵

  # Extrinsics (lidar -> IMU)extrinsicTrans: [0.0, 0.0, 0.0]# extrinsicRot: [-1, 0, 0,#                 0, 1, 0,#                 0, 0, -1]#extrinsicRPY: [0,  1, 0,#                -1, 0, 0,#                 0, 0, 1]extrinsicRot: [1, 0, 0,0, 1, 0,0, 0, 1]extrinsicRPY: [1, 0, 0,0, 1, 0,0, 0, 1]

imuTopic: “imu_raw” 改为 imuTopic: “imu_correct”

 imuTopic: "imu_correct"                         # IMU data

outdoor.bag :

在这里插入图片描述
west.bag:

在这里插入图片描述

2.3、park.bag

这个数据集有 gps 数据,更改文件 params.yaml 文件即可使用gps数据;

更改文件第一处:

gpsTopic: "odometry/gpsz"  改为 gpsTopic: "odometry/gps"  

更改文件第二处:

useImuHeadingInitialization: false 改为 useImuHeadingInitialization: true 

运行结果:

在这里插入图片描述

三、一些比较好的参考链接

方便自己查阅

参考链接1-安装liosam的其他问题

参考链接2-适配自己的传感器

参考链接3-论文学习和数据运行

参考链接4-数据格式要求和标定

参考链接5-lio-sam 适配 Mid360(livox雷达)

这篇关于ubuntu20.04 运行 lio-sam 流程记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

如何在运行时修改serialVersionUID

优质博文:IT-BLOG-CN 问题 我正在使用第三方库连接到外部系统,一切运行正常,但突然出现序列化错误 java.io.InvalidClassException: com.essbase.api.base.EssException; local class incompatible: stream classdesc serialVersionUID = 90314637791991

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器