R3LIVE从零开始搭建环境和实物(livox avia + d435)

 

 

文章目录

 


前言

本人以前有过点ros基础刚好最近在学习slam以及vio和lio,在这一个月份以来最起码,初步接触了vio以及slam和lio,并且自己成功的搭建了自己的实物平台,写这篇文章就是希望初次搭建的同学不用再踩一次博主踩过的坑。

d18b9ca92bb943a2b8eb169db322b1c2.png

 


一、R3live是什么?

强大、实时、RGB彩色、激光雷达-惯性-视觉紧密耦合的状态估计和建图、

具体可以参考原作者

https://github.com/hku-mars/r3live

056873acfa98410392273826cabc9cd5.png

二、基本环境的配置

1.ubuntu20.04

2.ros noetic

3.opencv 3.3.1

博主建议opencv的版本大于或者等于 3.3,因为低于这个版本的话容易报错。

这个代码能查询你的opencv版本。

pkg-config --modversion opencv

 opencv3.3.1安装:

https://blog.csdn.net/CynalFly/article/details/126784079?ops_request_misc=%257B%2522request%255Fid%2522%253A%25229D448904-CC49-44C8-83E4-C9827F181B59%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=9D448904-CC49-44C8-83E4-C9827F181B59&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-6-126784079-null-null.142^v100^pc_search_result_base1&utm_term=%E5%AE%89%E8%A3%85%E6%8C%87%E5%AE%9A%E7%89%88%E6%9C%AC%E7%9A%84opencv&spm=1018.2226.3001.4187

我是参考这位博主的文章去安装的,大家可以仔细看一下(我相信这难不倒你们  ^_^  )

 4.livox_ros_driver的安装

https://github.com/Livox-SDK/livox_ros_driver

可以参考livox官方的安装教程,建议没安装opencv的同学,先安装opencv,不然容易出错(博主就是这里出错先安装了雷达驱动)。

除了这个细节需要注意,还需要根据自己的雷达来下载官方的sdk,mid360的sdk和avia的不一样。

5.CGAL and pcl_viewer(optional)

sudo apt-get install libcgal-dev pcl-tools

三、R3live代码下载以及编译

1.克隆代码

记得创建工作空间catkin_ws

cd ~/catkin_ws/src
git clone https://github.com/hku-mars/r3live.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash

 如果上面环境都对应上的同学,编译肯定能通过。

2.运行官方数据集

数据集下载地址参考这里:

https://github.com/ziv-lin/r3live_dataset

roslaunch r3live r3live_bag.launch
rosbag play YOUR_DOWNLOADED.bag

rosbagplay记得在下载的文件夹里面。

de44a91862f94dff92a17546aea6d3fb.png

 成功运行:

72664c14d53143b192f9e4237cd6b313.png


 

四、硬件的基础配置

1.雷达的配置:

我们需要设置正确的地址与网关

d3689e81de7e48138464d94de30474e0.png

我们前面下载了雷达的SDK在此基础上,我们可以验证我们的硬件与电脑的连接是否正确。

roslaunch livox_ros_driver livox_lidar_rviz.launch bd_list:="自己雷达的广播码"

出了rviz画面即可

4c8f1233319546d8bd87a1c62d0a809c.png

2.d435内参获取

博主也是很粗糙的获取d435的内参,大家不要学习博主最好还是使用工具去获取内参(粗略学习的同学可以参考一下)

roslaunch realsense2_camera rs_camera.launch
rostopic echo /camera/color/camera_info

7af09c88da7c4b45be336816845dc6a0.png

五、外参获取与联合标定

这是折磨博主最久的步骤,因为种种原因导致踩了很多坑。希望在这里写出来能帮助大家避雷。

1.livox_camera_calib包下载

博主这里是打算使用这个方法对雷达和相机进行联合标定

https://github.com/hku-mars/livox_camera_calib

这是官方网站,大家可以在此处下载标定程序。

下载完成之后我们需要打开它的calib.yaml文件,其中

8b18ab8c14d44ea6ab27fb30a17a509a.png

e3cbaa5c4ea3422397d5995601030f15.png

修改完成之后我们跑一下作者提供的包,再去自己采集数据也不迟。

2.采集自己的数据(相机)

启动相机

roslaunch realsense2_camera rs_camera.launch 

打开rqt

rqt_image_view 

拍照保存(保存的时候会弹出保存路径)

e41bc1f0a09a4e97bdc7c64737cd90e6.png

 

至此我们的png文件获取完毕。

3.采集数据(雷达)

开始博主(小白)以为我们需要录取相应的rosbag其中包含着雷达的点云信息然后再通过pcl工具

转换格式将rosbag转换为pcd文件,但是折腾了一周之后我才发现我狠狠的错了。

这是我转换出来的pcd包

6474b48dc443476d8581de9667b93bbb.png

这是港大提供的pcd数据包

6b4d882d4c3445388a13890c49d7235b.png

大家可以看下面的对比看出来,我们转换的数据包的点云数量远远少于人家的,这是为什么呢,我个人理解是这样的,可能我的转换工具,转换出来的pcd是rosbag瞬时的点云,这才导致了点云数据少。

177396cbbc0948cab23059f22b2b257a.png

 所以我开始反思到底是那一步出现了问题(一直想不出来,以为是硬件问题又换了电脑采集数据转换发现也不行),一直想不出来正当我以为项目要延长周期时,有天我惊奇的发现了fast-lio文件夹里面居然有个pcd!!

(fast-lio的配置和使用可以参考网上,很多博主都有讲如何配置故不再赘述。)

a76b2b4d608049349e56e9ad8d882466.png

 

使用查看pcd指令

pcl_viewer 

好家伙果然点云数量比我以前转换的多出来了很多!博主很开心终于可以进展下一步了。

4.标定开始

82580b38e57a4d55a252871a1758ded8.png

 

成功的输出了标定结果 。

至此我们的雷达与相机的联合标定至此结束。

六、r3live运行

1.标定参数处理

我们需要求出逆矩阵,不然就会像博主这样子彩色点云不出来(当时在这里捣鼓了好久,终于查阅了各种资料才发现需要求逆矩阵 )

30533c3a674140c7ac218d00cde559f1.png

http://www.yunsuan.info/cgi-bin/matrix_inverse.py

在这个网页里面我们需要处理我们得到的标定参数,求它的在线矩阵求逆。

70d93fa4b3104659bbecb8f738aecb0b.png

(左上角3X3放在 camera_ext_R,第四列1X4的前三行放在camera_ext_t)

2.代码修改

将我们的外参填入下表

169520d7e3b746bb8758f39bd138fa05.png

修改我们的话题名称

5714f81f452b4213b9728c88e7d638eb.png

代码的修改部分到此结束。

3.时间同步

在这里分硬件同步以及软件同步

软件同步:

直接使用r3live作者修改的代码实现软件同步(博主没搞出来,故不讲)

硬件同步:

我们需要ifconfig查看自己的网卡是否支持

ade77001fcbb4deb92d06b705d351bd1.png

ethtool -T enp4s0

和博主一样的话说明支持硬件同步(如果硬件不支持可以去找软件同步的方法)

6666444e4db941a7bca3657a7efce428.png

 sudo apt install ptpd
 sudo ptpd -M -i enp4s0 -c

即可成功实现同步。

4.实物运行

终于到这一步了,作为一个刚入坑不久的小白而言,自己一个人捣鼓了很久,最终出彩色点云了这一切都是值得的!

 roslaunch livox_ros_driver livox_lidar_msg.launch  //启动雷达

 roslaunch realsense2_camera rs_camera.launch       //启动相机

 sudo ptpd -M -i enp4s0 -c   //同步

 roslaunch r3live r3live_bag.launch   //r3live启动!



(当时运行成功太激动了,忘记记录了)

 

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值