使用Livox-Mid360激光雷达,复现FAST_LIO(保姆级教程)

news2024/11/15 12:29:28

前面我已经完成了mid360激光雷达的驱动安装,octomap的复现,昨天我去把这俩在正式环境中实测了一下,效果不好,走廊转角没建出来,我查了一下,应该是TF的原因,但这部分我还不太懂,看到有的教程里说可以用SLAM建图完成TF变换,加上我之前就想要先做建图,再用Octomap转为栅格地图,于是就有了这次尝试。

要完成我这篇里实现的东西,你需要先具备这些条件:

1.完成了mid3620的驱动安装,保证激光雷达有数据,包括了SDK安装和driver安装,参考以下链接:

Livox_Mid-360激光雷达使用教程_ubuntu 20.04 mid 360 csdn-CSDN博客

2.我使用的是ubuntu18.04,ROS1 noetic。供参考

不想看废话的可以跳过这几段:

假设我们现在都装好了雷达,并且雷达能够正常工作,那么要复现FAST_LIO的思路是什么呢?我觉得在重现一个项目前,应该要有大致的思路,不能说按照网上的教程一通走,极有可能会出错,而且不知道错在哪。(呜呜呜,我踩的坑,泪奔~)。

大致思路:激光雷达运行,FAST_LIO接收到数据开始建图。其实很简单。那么对应的就是,我们应该先编译激光雷达的包,再去编译建图的包,不要走回头路。一起放进src就得走回头路。

————————————————————————————

下面附上一个保姆级教程:

一、安装激光雷达驱动

上面已经给了链接了,不重复。

我的雷达驱动工作空间名称为:catkin_livox_ros_driver2

二、安装编译FAST_LIO

官方链接(建议看看):GitHub - hku-mars/FAST_LIO: A computationally efficient and robust LiDAR-inertial odometry (LIO) package

我用的教程:

GitHub - 66Lau/NEXTE_Sentry_Nav: The navigation system of "sentry" for Next-E team in RoboMaster2023Ubuntu 20.04使用Livox mid 360 测试 FAST_LIO_ubuntu mid360 fastliono configured subnet or ip-ra-CSDN博客

——————————————————————————————

先说说别的问题,我先尝试了第一个链接里的教程,因为这个教程很符合我的要求,可以把整条路径规划的线都走通,但一直失败,编译时报错找不到雷达驱动的包,试了很多方法,单独编译驱动可行,把下载的源码放进去编译就报错。最后放弃了,还是从简单的来吧。不过后面我还是会再次尝试这个链接里的方法。

——————————————————————————

1.下载源码

我是那个永远git clone不下来的人,所以选择直接到官方下载.zip

下载之后注意修改文件夹名称为:FAST_LIO

2.创建一个工作空间

    cd ~/$A_ROS_DIR$/src
    git clone https://github.com/hku-mars/FAST_LIO.git
    cd FAST_LIO
    git submodule update --init
    cd ../..
    catkin_make
    source devel/setup.bash

这里只是给一个创建工作空间的参考。更方便的是,直接把源码放到已经编译好的雷达驱动工作空间里,也就是:把FAST_LIO放到catkin_livox_ros_driver2的src里,如图所示:

2.修改FAST_LIO源码

为了使其与mid360适配,必须修改代码,因为mid360用的是driver2。

大家直接用vscode打开工作空间,搜索:livox_ros_driver

直接选择全部替换为:livox_ros_driver2

不要一个个去改了。容易出错。改完之后记得保存。

3.编译

可以看到,官方给了这样一句指令

git submodule update --init

 但我们目前没有使用,而且我用这句指令会报错,最开始我没理解啥意思,就没有管,直接编译了,然而,会报错!找不到include/ikd-Tree/ikd_Tree.cpp 这个玩意儿。

于是我就去下载的源码里看,真没有这玩意,又去官网看了下,原来他把这个放在了子仓库里。直接从子仓库里下载.zip复制里面的文件放在include/ikd-Tree里就行了:

GitHub - hku-mars/ikd-Tree at e2e3f4e9d3b95a9e66b1ba83dc98d4a05ed8a3c4

 ————————————————————

接下来,正式开始编译!!!!

首先,要进入工作空间编译,我用的是:

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

如果你的环境没问题,直接用catkin_make也可以的。我的是因为曾经出了一些问题,不这样会报错。

激动人心!!终于成功了!!!纪念!!

4.运行

如果你前面都成功了,那就运行看结果吧!!

首先,确认你的雷达连线没有问题,ip已经配置成功,能够看到数据进来。

其次,没有其次了。。。哈哈哈

————————

开始运行:

启动雷达:

#进入工作空间

source devel/setup.bash
roslaunch livox_ros_driver2 msg_MID360.launch

重开一个终端,启动FAST_LIO:

source devel/setup.bash
roslaunch fast_lio mapping_mid360.launch

没有问题的话,你就可以看到结果了:

5.结果保存

结束运行后,结果会自动保存到PCD文件夹,这个scans就是我今天跑的:

然后,如果你想查看这个.pcd,需要安装pcl的一个工具包:

sudo apt install pcl-tools

最后,进入PCD文件夹:

pcl_viewer scans.pcd

就能看到结果啦:

按不同的键,它会有不同的着色哟,哈哈哈,我觉得最好玩的就是看到结果之后。上面这个是按的5。

    1 is all random
    2 is X values
    3 is Y values
    4 is Z values
    5 is intensity

——————————————————————

好了,最后来记录一下吧,后续呢我还要进行将pcd传给octomap进行栅格地图构建。目前有两种思路,一种参考链接1的教程。一种用octomap的教程中的实时显示。大差不差感觉。

最后,有空再尝试一下链接1教程的那一套,能不能走得通。

做事情之前一定要先想想大致思路,为什么要这么做。不要无脑看教程。会走弯路。

希望大家都能成功!!

——————————————————————

更新,我马不停蹄的去试了一下用跑出来的pcd文件生成octomap的栅格地图

1.直接上链接吧

OctoMap-基于八叉树的地图 - 智学无人小车平台

这个实测可以成功。

(奇怪,之前跑的那个octomap居然跑不出来了),会报错:

用上面那个跑,结果是这样的,有点奇怪诶,感觉是不是分辨率的问题,也有可能是这个mid360的点云。。。:

怎么和人家的pcd跑出来的不一样,他这个效果这么好。。。呜呜呜呜

这个图是用官方的工具打开的,没染色,仔细看看还是能看出来中间是空的嘿嘿。

暂时性的成功吧。加油喽!

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

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

相关文章

利用大模型知识库,优化智能客服问答效果 | 创新场景

ITValue 痛点 SSC( Share Service Center ,共享服务中心)是企业日常接触最多的场景之一,更多是对内服务,包括 HR 、财务、IT 等。该场景对专业度要求非常高,知识点非常多,对于知识的使用者或者查…

每日一题~ leetcode 402 (贪心+单调栈)

click me! 这个贪心的推导在leetcode上已经很明确了。 click me! 删除k个数,可以先考虑删除一个数。这也是一种常见的思路。(如果进行同样的操作多次,可以先只 考虑一次操作如何实现,或者他的影响。完成这一次操作后,…

服务器数据恢复—DS5300存储raid5阵列数据恢复案例

服务器存储数据恢复环境: 某单位一台某品牌DS5300存储,1个机头4个扩展柜,50块硬盘组建2组RAID5磁盘阵列(一组raid5阵列有27块成员盘,存放Oracle数据库文件;另外一组raid5阵列有23块成员盘)。存储…

【免费资料】IEEE33节点系统参数及拓扑图visio

主要内容 对于初学配电网的同学,最经典的系统即是33节点配电网系统,在各个研究文献中出现频次最高的也是这个系统,为了让大家更好了解33节点系统参数,本次整理了系统节点、支路参数excel以及33节点网络拓扑图visio&#xff0c…

解决IDEA每次新建项目都需要重新配置maven的问题

每次打开IDEA都要重新配置maven,这是因为在DEA中分为项目设置和全局设置,这个时候我们就需要去到全局中设置maven了。我用的是IntelliJ IDEA 2023.3.4 (Ultimate Edition),以此为例。 第一步:打开一个空的IDEA,选择左…

Multisim仿真-交流数字电压表

下图为整体的原理框图,交流电源经过整流滤波电路转换后,送入模数转换电路,经译码给到显示电路,由其显示交流电源的有效值。 信号发生器XFG1输出正弦波信号(峰峰值),XMM1测量有效值,U6数码管显示有效值。仿真…

38条Web测试经验分享

1. 页面链接检查 每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如LinkBotPro、File-AIDCS、HTML Link Validater、Xenu等工具。 LinkBotPro不支持中文,中文字符显示为乱码;HTML Link Validater只能测…

vue3【实战】来回拖拽放置图片

效果预览 技术要点 img 标签默认就是可拖拽的(a 标签也是)事件 e 内的 dataTransfer 对象可用于临时存储事件过程中的数据拖拽事件的默认行为是用浏览器新开页签打开被拖拽对象,所以通常需要禁用默认的浏览器行为被拖拽元素必须设置 id&#…

二刷力扣——单调栈

739. 每日温度 单调栈应该从栈底到栈顶 是递减的。 找下一个更大的 ,用递减单调栈,就可以确定在栈里面的每个比当前元素i小的元素,下一个更大的就是这个i,然后弹出并记录;然后当前元素i入栈,仍然满足递减…

AcWing 1550:完全二叉搜索树

【题目来源】https://www.acwing.com/problem/content/1552/【题目描述】二叉搜索树 (BST) 递归定义为具有以下属性的二叉树: (1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值 (2)若它的右…

BS结构的毕业设计题目管理系统-计算机毕业设计源码92342

目 录 摘要 1 绪论 1.1 研究背景 1.2目的及意义 1.3论文结构与章节安排 2 毕业设计题目管理系统设计分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分…

【C++】开源:地图投影和坐标转换proj库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍地图投影和坐标转换proj库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&a…

二、从多臂老虎机看强化学习

二、从多臂老虎机看强化学习 2.1 多臂老虎机问题2.1.1 问题定义2.2.2 问题建模2.2.3 累积懊悔2.2.4 估计期望奖励 2.2 强化学习中的探索与利用平衡2.3 贪心策略2.4 上置信界算法2.5 汤普森采样算法 2.1 多臂老虎机问题 2.1.1 问题定义 在多臂老虎机(mutil-armed bandit, MAB)问…

linux 服务器数据备份 和 mysql 数据迁移

查看域名ip 查看程序所处文件位置 list open files 1、 lsof -i :port 查看端口获取进程 pid 2、lsof -i pid 1、scp 下载服务器文件到本地 security copy protocol 2、导出服务器 mysql 数据库(表)到本地 mysqldump是MySQL自带的一个实用程序&…

半同步主从复制

半同步主从复制的概念 半同步主从复制(Semisynchronous Replication, SBR)是MySQL数据库中的一种数据复制方式,它在异步复制的基础上增加了一定程度的同步性,旨在提高数据安全性,减少数据丢失的风险。 半同步主从复制…

Facebook群发消息API接口的申请流程详解!

Facebook 群发消息api接口如何集成?怎么使用API接口? 在现代社交媒体营销中,群发消息是与客户保持互动的重要工具。Facebook群发消息API接口提供了一种有效的方法来实现这一目标。本文将详细介绍如何申请Facebook群发消息API接口的具体步骤和…

51单片机基础10——串口实验

串口实验 51单片机串口实验1. 软硬件条件2. 串口实验2.1 单片机与PC 发送字符2.1.1 效果2.1.2 代码2.1.3 优化 2.3 串口接收数据(指令控制单片机)2.3.1 非中断方式实现2.3.2 中断方式实现 51单片机串口实验 1. 软硬件条件 单片机型号:STC89C52RC开发环境&#xff…

【微信小程序开发】小程序更新、页面生命周期、用户信息获取应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

小白 | Linux安装python3

一、更新包列表 首先,确保你的包管理器是最新的: sudo apt update 二、安装 Python 3 安装 Python 3 以及常用的开发工具 sudo apt install python3 python3-pip python3-venv 三、验证安装 python3 --version

GlusterFS分布式存储系统

GlusterFS分布式存储系统 一,分布式文件系统理论基础 1.1 分布式文件系统出现 计算机通过文件系统管理,存储数据,而现在数据信息爆炸的时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储…