文章目录
- 前言
- 一、R3live是什么?
- 二、基本的环境配置
- 三、R3live代码下载以及编译
- 四、硬件的基础配置
- 五、外参获取与联合标定
- 六、r3live运行
前言
本人以前有过点ros基础刚好最近在学习slam以及vio和lio,在这一个月份以来最起码,初步接触了vio以及slam和lio,并且自己成功的搭建了自己的实物平台,写这篇文章就是希望初次搭建的同学不用再踩一次博主踩过的坑。

一、R3live是什么?
强大、实时、RGB彩色、激光雷达-惯性-视觉紧密耦合的状态估计和建图、
具体可以参考原作者
https://github.com/hku-mars/r3live

二、基本环境的配置
1.ubuntu20.04
2.ros noetic
3.opencv 3.3.1
博主建议opencv的版本大于或者等于 3.3,因为低于这个版本的话容易报错。
这个代码能查询你的opencv版本。
pkg-config --modversion opencv
opencv3.3.1安装:
我是参考这位博主的文章去安装的,大家可以仔细看一下(我相信这难不倒你们 ^_^ )
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记得在下载的文件夹里面。

成功运行:

四、硬件的基础配置
1.雷达的配置:
我们需要设置正确的地址与网关

我们前面下载了雷达的SDK在此基础上,我们可以验证我们的硬件与电脑的连接是否正确。
roslaunch livox_ros_driver livox_lidar_rviz.launch bd_list:="自己雷达的广播码"
出了rviz画面即可

2.d435内参获取
博主也是很粗糙的获取d435的内参,大家不要学习博主最好还是使用工具去获取内参(粗略学习的同学可以参考一下)
roslaunch realsense2_camera rs_camera.launch
rostopic echo /camera/color/camera_info

五、外参获取与联合标定
这是折磨博主最久的步骤,因为种种原因导致踩了很多坑。希望在这里写出来能帮助大家避雷。
1.livox_camera_calib包下载
博主这里是打算使用这个方法对雷达和相机进行联合标定
https://github.com/hku-mars/livox_camera_calib
这是官方网站,大家可以在此处下载标定程序。
下载完成之后我们需要打开它的calib.yaml文件,其中


修改完成之后我们跑一下作者提供的包,再去自己采集数据也不迟。
2.采集自己的数据(相机)
启动相机
roslaunch realsense2_camera rs_camera.launch
打开rqt
rqt_image_view
拍照保存(保存的时候会弹出保存路径)

至此我们的png文件获取完毕。
3.采集数据(雷达)
开始博主(小白)以为我们需要录取相应的rosbag其中包含着雷达的点云信息然后再通过pcl工具
转换格式将rosbag转换为pcd文件,但是折腾了一周之后我才发现我狠狠的错了。
这是我转换出来的pcd包

这是港大提供的pcd数据包

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

所以我开始反思到底是那一步出现了问题(一直想不出来,以为是硬件问题又换了电脑采集数据转换发现也不行),一直想不出来正当我以为项目要延长周期时,有天我惊奇的发现了fast-lio文件夹里面居然有个pcd!!
(fast-lio的配置和使用可以参考网上,很多博主都有讲如何配置故不再赘述。)

使用查看pcd指令
pcl_viewer
好家伙果然点云数量比我以前转换的多出来了很多!博主很开心终于可以进展下一步了。
4.标定开始

成功的输出了标定结果 。
至此我们的雷达与相机的联合标定至此结束。
六、r3live运行
1.标定参数处理
我们需要求出逆矩阵,不然就会像博主这样子彩色点云不出来(当时在这里捣鼓了好久,终于查阅了各种资料才发现需要求逆矩阵 )

http://www.yunsuan.info/cgi-bin/matrix_inverse.py
在这个网页里面我们需要处理我们得到的标定参数,求它的在线矩阵求逆。

(左上角3X3放在 camera_ext_R,第四列1X4的前三行放在camera_ext_t)
2.代码修改
将我们的外参填入下表

修改我们的话题名称

代码的修改部分到此结束。
3.时间同步
在这里分硬件同步以及软件同步
软件同步:
直接使用r3live作者修改的代码实现软件同步(博主没搞出来,故不讲)
硬件同步:
我们需要ifconfig查看自己的网卡是否支持

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

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启动!
(当时运行成功太激动了,忘记记录了)
437

被折叠的 条评论
为什么被折叠?



