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

前面我已经完成了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$/srcgit clone https://github.com/hku-mars/FAST_LIO.gitcd FAST_LIOgit submodule update --initcd ../..catkin_makesource 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 random2 is X values3 is Y values4 is Z values5 is intensity

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

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

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

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

希望大家都能成功!!

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

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

1.直接上链接吧

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

这个实测可以成功。

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

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

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

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

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

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

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

相关文章

云计算【第一阶段(28)】DNS域名解析服务

一、DNS解析的定义与作用 1.1、DNS解析的定义 DNS解析(Domain Name System Resolution)是互联网服务中的一个核心环节,它负责将用户容易记住的域名转换成网络设备能够识别和使用的IP地址。一般来讲域名比 IP 地址更加的有含义、也更容易记住…

2024世界人工智能大会:deepin引领AI与操作系统融合新时代

内容来源:deepin(深度)社区 7月4日,WAIC 2024在上海拉开帷幕。大会围绕核心技术、智能终端、应用赋能三大板块,聚焦大模型、算力、机器人、自动驾驶等重点领域,集中展示一批“人工智能”创新应用最新成果。…

【web前端HTML+CSS+JS】--- JS学习笔记03

一、JS介绍 可以在前端页面上进行逻辑处理,来解决表单的验证等问题,提升效率,直接在前端提示问题,减少服务器压力 应用1:可以做静态验证和动态验证(进行异步请求) 应用2:可以解析后…

学习数据库2

在数据库中创建一个表student,用于存储学生信息 查看建表结果 向student表中添加一条新记录 记录中id字段的值为1,name字段的值为"monkey",grade字段的值为98.5 并查看结果 向student表中添加多条新记录 2,"bob"…

鸿蒙开发小案例(名片管理))

鸿蒙开发小案例(名片管理) 1、页面效果1.1 初始页面1.2 点击名片展开1.3 点击收藏1.4 点击编辑按钮 2、实现代码2.1 DataModel.ets2.2 RandomUtil.ets2.3 ContactList.ets 1、页面效果 1.1 初始页面 1.2 点击名片展开 1.3 点击收藏 1.4 点击编辑按钮 2、…

百度、谷歌、必应收录个人博客网站

主要是给各个搜索引擎提交你的sitemap文件,让别人能搜到你博客的内容。 主题使用的Butterfly。 生成sitemap 安装自动生成sitemap插件。 npm install hexo-generator-sitemap --save npm install hexo-generator-baidu-sitemap --save在站点配置文件_config.yml…

【手撕数据结构】卸甲时/空间复杂度

目录 前言时间复杂度概念⼤O的渐进表⽰法小试牛刀 空间复杂度 前言 要想知道什么是空/时间复杂度,就得知道什么是数据结构。 这得分两层来理解。我们生活中处处存在数据,什么抖音热点上的国际大事,什么懂的都懂的雍正卸甲等等一系列我们用户看得到的&a…

鸿蒙语言基础类库:【@ohos.url (URL字符串解析)】

URL字符串解析 说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 导入…

【K8s】专题六(5):Kubernetes 稳定性之重启策略、滚动更新策略

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号! 目录 一、重启策略 1、基本介绍 2、资源清单(示例) 二、滚动更新策略 …

Vue框架引入

vue简介 1.1.vue是什么?Vue官网 英文官网: https://vuejs.org/中文官网: https://cn.vuejs.org/ vue是一套构建用户界面的渐进式javascript框架 构建用户界面:将我们手里拿到的数据通过某种办法变成用户可以看见的界面前端工程师的职责:就是在合适的时候发出合适的请求,然后…

Splunk Enterprise 任意文件读取漏洞(CVE-2024-36991)

文章目录 前言漏洞描述影响版本漏洞复现POC批量检测-nuclei脚本 修复建议 前言 Splunk Enterprise 是一款强大的机器数据管理和分析平台,能够实时收集、索引、搜索、分析和可视化来自各种数据源的日志和数据,帮助企业提升运营效率、增强安全性和优化业务…

【MYSQL】如何解决 bin log 与 redo log 的一致性问题

该问题问的其实就是redo log 的两阶段提交 为什么说redo log 具有崩溃恢复的能力 MySQL Server 层拥有的 bin log 只能用于归档,不足以实现崩溃恢复(crash-safe),需要借助 InnoDB 引擎的 redo log 才能拥有崩溃恢复的能力。所谓崩…

二刷力扣——单调栈

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

Java进阶----继承

继承 一.继承概述 继承是可以通过定义新的类,在已有类的基础上扩展属性和功能的一种技术. 案例:优化 猫、狗JavaBean类的设计 狗类:Dog 属性:名字 name,年龄 age 方法:看家 watchHome(),Gett…

Android多开应用软件系统设计

设计一个支持Android多开应用的软件系统,主要涉及到以下几个关键技术点和设计考虑: 1. 虚拟化技术 容器技术:与传统的虚拟机不同,可以采用更轻量级的容器技术,为每个应用实例创建独立的运行环境。这包括分配独立的用…

HTTP 请求走私漏洞详解

超详细的HTTP请求走私漏洞教程,看完还不会你来找我。 1. 简介 HTTP请求走私漏洞(HTTP Request Smuggling)发生在前端服务器(也称代理服务器,一般会进行身份验证或访问控制)和后端服务器在解析HTTP请求时&…

上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 淘宝上面有一个商品蛮好玩的,那就是日志记录器。说是记录器,其实就是一个模块,这个模块的输入是一个ttl串口&am…

利用Python进行数据分析PDF下载经典数据分享推荐

本书由Python pandas项目创始人Wes McKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter,并增加大量实际案例…

Docker Desktop如何换镜像源?

docker现在很多镜像源都出现了问题,导致无法拉取镜像,所以找到一个好的镜像源,尤为重要。 一、阿里镜像源 经过测试,目前,阿里云镜像加速地址还可以使用。如果没有阿里云账号,需要先注册一个账号。 地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 二…

基于Java技术的B/S模式书籍学习平台

你好,我是专注于计算机科学领域的学姐码农小野。如果你对书籍学习平台开发感兴趣或有相关需求,欢迎私信联系我。 开发语言: Java 数据库: MySQL 技术: B/S模式、Java技术 工具: Eclipse、Navicat、Mave…