首页 文章详情

R3LIVE开源代码全体验及测试

3D视觉工坊 | 870 2022-01-10 13:33 0 0 0
UniSMS (合一短信)
作者丨颍川滞@知乎
来源丨https://zhuanlan.zhihu.com/p/453038352
编辑丨3D视觉工坊

前言:

Hello,大家好,我是清华自动化的小郭,前两个月我开始做SLAM研究,目的是以Livox雷达为核心做多传感器融合方案用在测绘场景做应用,在大量学习和调研之后选择follow港大MARS实验室的有关Livox雷达的成果,趁r3live刚开源不久(2021年的最后一天开源)的机会,我就蹭个热度,如题所示,这个文章是对刚刚开源的R3LIVE的体验以及测试,r3live的github链接:https://github.com/hku-mars/r3live
R3LIVE这个工作我已经关注很久了,它在传统SLAM框架下搭建了一套高性能雷达odometry-彩色点云Mapping-三维重建的体系,将Lidar-相机-IMU更直接有效的融合。它在建图的同时把RGB信息通过VIO子系统给点云上色,并通过一定的方法优化这个上色。
给点云的xyz加上了RGB和协方差信息之后,数据的信息要素就变多了,可拓展性也变强了。
可以说,在现在已有的所有slam框架中,r3live是唯一能做到这一点的,这就是这个工作真正值得吹的,最牛逼的地方,这也是笔者我愿意花这么多时间写这个文章的主要原因。

R3LIVE A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual state estimator

视频:https://www.bilibili.com/video/BV1d341117d6?from=search&seid=12107213485081421560&spm_id_from=333.337.0.0
此外,更有趣的就是,这篇文章还提供了高效的三维点云重建mesh工具,作者根据三维重建的结果做了一个打怪的小游戏。
视频地址:https://www.bilibili.com/video/BV1e3411q7Di?from=search&seid=12107213485081421560&spm_id_from=333.337.0.0
看完演示和论文我直呼小母牛倒立-NB冲天(图0-1)
另外,看了这个作者(Jiarong Lin)发表的所有历史工作之后,发现所有他的文章都有对应的开源实现!!!对于这种宝贵的开源精神,这不大家赶紧动动小手支持一下?至少给个star不过分吧哈哈哈
https://paperswithcode.com/search?q=author%3AJiarong+Lin
简介:
在这里我简单介绍一下hku-mars的几篇相关工作

1、loam-livox:livox雷达SLAM的奠基之作

作者:Jiarong Lin and Fu Zhang
代码链接:https://github.com/hku-mars/loam_livox
简介:也就是r3live的作者写的这篇文章,在经典loam体系的基础之上,针对livox高频率小fov和不规则采样的特点,设计了
一种鲁棒、实时的激光雷达建图算法;livox-loam2更是添加了一种高效的回环检测方案(这很符合测绘逻辑)。
再说说Livox的这个雷达,它采用花瓣式扫描(图1-1)的方式类似于人的视网膜(图1-2)的扫描方式,之后如果用来做机器学习
可能会非常的NB。
图1-1:livox-avia扫描方式
图1-2:livox雷达和人眼扫描注意力对比图

2、lio系列:FASTLIO\FASTLIO2:高性能LIO的

作者:Wei Xu, Yixi Cai 等
代码链接:https://github.com/hku-mars/ikd-Tree
简介:FASTLIO1提出了一种使用紧耦合的迭代扩展卡尔曼滤波器将激光雷达特征点与IMU数据融合,我的理解FASTLIO1做了两个工作,
一个是使用流形约束了SO3,一个是设计了一种迭代卡尔曼滤波器代替了loam的非线性优化方案。
FASTLIO2就更有意思了,更好的利用了他们实验室设计的动态增量KD树,在ikdtree的高速运算加持下,就不用zhangji那种手工
提取角点面点的老方法了,直接降采样做ICP这样匹配就能get到一些重要的但是我们并不知道它重要的特征。

3、live系列:r2live\r3live:

作者:Jiarong Lin and Fu Zhang
代码链接:https://github.com/hku-mars/r2live
简介:r2live,将fastlio2变成lio子系统,加入了vio子系统,在误差卡尔曼滤波器内部估计状态,并用因子图优化进一步提高整体
精度。通俗点儿讲就是雷达和相机在不同环境中有各自的优势,在卡尔曼滤波框架下雷达场景不退化的用雷达,雷达不行上相机顶,实在
不行上IMU顶。
看完了r2live的论文和介绍视频之后我就说,是骡子是马拉出来溜溜,我马上带着我们调研时候自己攒的手持设备(图2-1)在校园里测试一下,那是真的随便走随便扫,实时运算,咋扫都行,计算效率特别高,也非常的鲁棒(图2-2),扫完之后我就有一种感觉:确实牛逼
然而,今天的主角不是r2live,而是我接下来重点想说说的r3live
图2-1:我们的设备和采集过程
图2-2:r2live扫描校园效果1
图2-3:r2live扫描效果2

r3lvie意义何在

有小伙伴就问了,这r2live(图3-1)和r3live(图3-2)有啥区别呢,在看完论文之后,可以判断r3live应该基于前作r2live的基础上开发的,也是分为俩个子系统,即:激光惯导子系统(LIO)视觉惯导子系统(VIO)。其中,如以下框架图所示,r3live和r2live的LIO系统并没有太大的区别,他们的最大区别在于VIO的设计上。r2live采用的是ESIKF filter-based odometry + pose graph optimization的pipeline,通过ESIKF filter快速迭代出最优状态,然后通过pose graph optimization的进行refine。而在r3live中,VIO子系统直接使用了由LIO系统的点云地图,通过对地图纹理(即点云的RGB颜色)的观测来更新系统的状态。简而言之,r3live中的LIO系统负责构建地图的几何结构(geometry structure), VIO子系统负责渲染地图的纹理(texture, 即点云的颜色信息)。
得益于这种设计,r3live比r2live的多传感器融合的更直接有效。
图3-1 r2live
图3-2:r3live

r3live效果展示

首先,我的电脑配置:32GRAM,i7-10700U的NUC,没有显卡,跑起来无压力,所有的截图都是实时跑数据实时截图。
我跑的数据就是作者提供的几个数据集分别是:
degenerate开头的表示容易退化场景的数据集,好像还有loam-livox的陈年老bag
hku_campus开头的是港大室内-室外场景的数据集
hkust_campus开头的港科技是比较大尺度的校园类型的数据集
hku_park是开头的是树木多的公园类型的数据集
这几种数据集基本上可以代表大部分slam的作用环境了,跑一跑这个数据做一个验证是非常有说服力的,也可以跑我们自己的数据(r2live采集的数据)。但是跑自己的数据的时候要做好相机雷达联合标定,并在config的yaml文件里配置一下自己的相机的内外参。

1、实时性:用图体现不出来,我们跑的时候还是很流畅的

2、雷达和相机容易退化的几个场景
直接硬怼白墙这种雷达必然退化,相机也容易飘的场景能保持稳定非常NB
再来一张

3、回环的场景

hkust01的bag,走第二圈这个楼梯的时候还是同一个栏杆非常的NB
走树林的场景回环的很好

4、彩色点云

点云上色的质量非常的好
港科技萌萌的地面
每一根毛都清清楚楚
有一种身临其境的感觉
树林一角
校园风景
校园总览
地面纹理相当清晰
车道线表达也相当稳健
三维重建及其应用

5、mesh重建:

建图效率非常的好,作者把该功能集成在了roslaunch中,用起来也非常方便,有心了。

6、重建应用:两个小游戏

7、系统监视工具:

内存查看器:在运行r3live的roslaunch的终端里面,作者给我们维护了一个内存监视器,可以实时查看内存占用情况,还是很好用的。

对于r3live的展望

在实际测试中,除了实时重建的彩色地图给了我很大的震撼,我还关注到以下几点,首先是内存占用问题,通过作者提供的内存查看器,我门可以很清楚的看到,r3live的内存占用是比较大的,9GB大小的香港科技大学的bag,在内存中表现总占用了27GB RAM,可以看出来,R3LIVE的地图记录了不止点位的几何位置信息,还记录了RGB颜色、协方差等一堆参数,导致R3LIVE在内存占用上还是很高的,不知道后续作者会不会针对这个问题做相关的优化。
第二点就是在进行三维重建之后,在树和房子之间的部分,建图效果不是很理想,语义分割后再进行mesh是不是会好一些?
总之我就想赶紧标定好设备,马上去采据去
本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现
11.自动驾驶中的深度学习模型部署实战
12.相机模型与标定(单目+双目+鱼眼)
13.重磅!四旋翼飞行器:算法与实战

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。


一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定激光/视觉SLAM自动驾驶)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
 圈里有高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~  

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter