使用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$/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跑出来的不一样,他这个效果这么好。。。呜呜呜呜

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

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

  • 22
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值