基于ubuntu20.04 环境跑通LIO_SAM重定位

news2024/11/25 18:49:16

link

序言

作为LOAM重要的一个变种,LIO_SAM基本上算是这个系列里面知识点最全面。这个软件框架包含了去畸变、特征点提取(角点、平面点)、前端、后端、回环,同时软件框架还融合了IMU信息,可以配置融合GPS信息。当然这种紧耦合方式也有一些缺点,要求传感器的时间同步做的比较好。另外还有一些问题,比如大场景建图还是需要用submap这种形式;还比如建图需要对于动/静态的障碍物需要进行过滤等。

环境配置

我配置前已经安装好ros系统,因此默认大家也都已经安装好ros系统。

步骤1:安装依赖环境

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

步骤2:安装gtsam库

wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.2.zip
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.2/
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j8

问题:进行‘cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..’时,出现下图问题

解决:1、修改文件gtsam/wrap/CMakeLists.txt文件;2、修改文件gtsam/CMakeLists.txt文件

步骤3:安装LIO_SAM

mkdir -p catkin_ws/src && cd ~/catkin_ws/src
git clone https://github.com/Gaochao-hit/LIO-SAM_based_relocalization.git
cd ..
catkin_make

步骤4、下载对应的数据,数据百度网盘链接(BAG_LIO_SAM)提取码:G0Y3

步骤5、运行程序LIO_SAM

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

问题:运行时出现[lio_sam_imuPreintegration-2] process has died、[lio_sam_mapOptmization-5] process has died

解决:解决实际问题是库文件libmetis.so 的位置。它是一个运行时库,但是当应用程序查找它时,它的位置不在预期的目录中。在通过运行命令sudo make install -j8安装库gtsam 时,文件libmetis.so安装在/usr/local/lib/的默认位置,但是当我们启动 ros 工作区时,运行时库查看位置/opt/ros/noetic/lib/

cd /usr/local/lib/
sudo mv libmetis.so /opt/ros/melodic/lib/

问题:IMU坐标系配置问题、topic名字配置出现问题

解决:按照下载数据不同配置IMU坐标系

extrinsicRot: [-1, 0, 0,
                  0, 1, 0,
                  0, 0, -1]
  extrinsicRPY: [0, -1, 0,
                 1, 0, 0,
                 0, 0, 1] # casual_walk.bag
  # extrinsicRot: [1, 0, 0,
  #                 0, 1, 0,
  #                 0, 0, 1]
  # extrinsicRPY: [1, 0, 0,
  #                 0, 1, 0,
  #                 0, 0, 1] # 其他bag包

topic名称配置可以

rosbag info ***.bag # 下载的bug包,将对应的topic名称写入配置文件即可。

步骤6、PCB全局地图保存,修改配置文件config/params.yaml

# Export settings
savePCD: true
savePCDDirectory: "/map/" # 根据需要,配置自己的路径,路径前后都需要加“/” 

问题:对应路径下保存不了地图;

解决 :修改配置文件/opt/ros/noetic/lib/python3/dist-packages/roslaunch/nodeprocess.py

# DOUBLE_TIMEOUT_SIGINT=15.0
DOUBLE_TIMEOUT_SIGINT=60.0

步骤7:运行重定位

roslaunch lio_sam run_relocalize.launch

最后,经历了以上步骤后运行程序,建图效果如下:

重定位效果如下:

参考链接如下:

链接1:Ubuntu 中 gtsam 安装问题:CMake Error at wrap/CMakeLists.txt:32 (target_link_libraries): The “debug“ ...

链接2:运行LIO-SAM,[lio_sam_imuPreintegration-2] process has died,[lio_sam_mapOptmization-5] process has died

链接3:LIO_SAM怎么保存地图_海的精灵的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1162698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鲲鹏920(kylinV10)安装虚拟化工具kvm

目录 准备工作 安装 大致流程 具体步骤 安装 界面工具 virt-manager 创建虚拟机流程 点击创建虚拟机 可能出现的问题 问题1 问题2 问题3 准备工作 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld 关闭selinux sed -i s/enforcing…

从0开始搭建一个APP:compose搬砖的一天

无论是从各个大佬的书籍还是blog,大的方向还是翻了一遍,个人感觉,compose 是UI解决方案这种定义和Android离得特别远,像Android 的应用端的大多数工作量还是在UI开发上,flutter 也差不多,结合Kotlin的开发经验&#xf…

统计学习方法 逻辑斯蒂回归与最大熵模型

文章目录 统计学习方法 逻辑斯蒂回归与最大熵模型逻辑斯蒂回归逻辑斯蒂分布二项逻辑斯蒂回归多项逻辑斯蒂回归 最大熵模型原理定义学习极大似然估计 统计学习方法 逻辑斯蒂回归与最大熵模型 学习李航的《统计学习方法》时,关于逻辑斯蒂回归与最大熵模型的笔记。 逻…

【1】2023版密评算分工具

0X01 前言 工具根据商用密码应用安全性评估量化评估规则(2023年8月1日实施)实现 0x02 工具功能介绍 给定D A K的打分结果,计算单个测评对象和测评单元得分。根据测评单元得分计算测评层面得分根据测评层面得分计算报告整体得分配置文件说明…

美国亚马逊站暖手宝、热袜子、加热器UL499安全审核测试

近很多客户过来咨询,亚马逊上有人投诉产品起火,亚马逊要求提供UL报告,怎么办?特别是电池产品,很多卖家不约而同的提出同样的问题。不要着急,我司已经处理过很多类似产品,为很多商家提供了相应的报告&#…

【每日OJ题 —— 876. 链表的中间结点(链表)】

每日OJ题 —— 876. 链表的中间结点(链表) 1.题目: 876. 链表的中间结点2.方法讲解2.1.解法2.1.1.图文解析2.1.2.代码实现2.1.3.提交结果展示 1.题目: 876. 链表的中间结点 2.方法讲解 2.1.解法 2.1.1.图文解析 题解思路&#x…

ks ios快手极速版、概念版、创作版sig sig3

风控: 快手除了正版下,还有极速版,概念版,创作版。 然而看了下概念版还是风控比正版要低的多~ 抓包: 对于快手的ios版本抓包很简单,直接vpn转发抓包方式即可,不可用代理抓包;这个…

一款优秀的低代码平台应具备哪些能力?

低代码开发平台是一种基于低代码概念而研发出来的产品,是指无代码或少量代码就可以快速生成应用程序的平台。这类平台通过拼装可重复使用的组件,使开发人员可以通过可视化的工作界面快速设计应用,以解决传统软件开发模式周期长、成本高的问题…

LVGL库入门 04 - 颜色与图像

1、颜色 1.1、构造颜色 在 LVGL 中,颜色以结构 lv_color_t 表示。在最开始移植整个工程时,曾经在 lv_conf.h 中修改过颜色深度: /*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/ #define LV_COLOR_DEPTH …

使用 javascript 在 n*m 网格中演示 BFS 广度优先搜索算法在带权重图中求最短路径

普通的广度优先最短路径搜索算法只能解决无权重的图: 求出的最短路径没问题,但是如果上边的空缺格子的距离为100呢?这种方式搜出的最短路径可能就是错的: 我们可以找一个距离1作为基本距离,然后距离为100的格子在搜索时…

[免费] 适用于 Windows的10 的十大数据恢复软件

Windows 10是微软开发的跨平台和设备应用程序的操作系统。它启动速度更快,具有熟悉且扩展的“开始”菜单,甚至可以在多种设备上以新的方式工作。所以,Windows 10非常流行,我们用它来保存我们的照片、音乐、文档和更多文件。但有时…

高效剪辑:视频剪辑新手如何批量分割视频

随着社交媒体和自媒体的兴起,视频剪辑已经成为一项必备的技能。无论是制作自己的电影、视频博客,还是为广告宣传提供支持,高效地剪辑视频都是非常重要的。对于视频剪辑新手来说,了解如何批量分割视频是提高剪辑效率的关键。本文讲…

左右联动 provide、inject+props、emit

实现效果 成都大屏 —— 视频管理 左右两个都是组件,所以涉及到父组件向多个子组建传递数据 方法1 provide、inject 目录结构 父组件 index.vue 用provide传递数据和修改数据的方法 import { provide} from "vue"; provide("Provide_Selected…

C语言队列实现

1.知识百科 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的…

月入8K, 计算机专业应届女孩转行5G网络优化工程师,她说:这行请慎入

小C说,如果要用两个字描述23年计算机专业的就业心情,那就是“焦虑”;用三个字描述23年计算机专业的就业环境,那就是“卷麻了”。 得益于张雪峰老师的就业推荐计算机专业需求的日益减少,2023年,计算机专业成…

【漏洞复现】74cms任意文件读取

漏洞描述 74CMS 是一款国内用的比较多招聘网站管理系统(Job Board CMS),专注于招聘和人力资源领域的网站建设,存在任意文件读取漏洞 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律&#xff0c…

vue3中使用deck.gl

deck,gl网址:Home | deck.gl 因为deck.gl是国外的技术,国外最流行的框架是react,所以deck.gl有为react提供的地图组件,没有为vue提供,并且还需要翻墙。所以想用vue使用这个还是有一定难度的。 除了用到deck.gl之外还…

使用Serv-U FTP服务器共享文件,实现无公网IP的外网访问

文章目录 1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装 3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 科技日益发展的今天,移动电子设备似乎成了我们生活的主角,智能…

vue项目打包时按一定的名称规范生成对应的压缩包

在项目部署中经常需要将打包的dist按一定的名称压缩成压缩包,今天记录一下打包时生成压缩包的过程。其中有用到的npm包需要自己安装一下。 js文件放置的目录如下 compress.js内容如下: // compress.jsimport fs from "fs"; import shell fro…

电商价格数据监测接口|淘宝商品价格接口|天猫商品价格接口|京东商品价格接口|拼多多商品价格接口|API接口申请指南

电商价格数据监测接口是一种可以实时监测电商平台上商品价格的接口工具。通过这个接口,可以获取到各个电商平台的商品价格信息,并且可以设置价格监控频率、智能数据绑定、破价提醒机制等功能。 以下是电商价格数据监测接口的一些特点: 商城…