大家好,又见面了,我是你们的朋友全栈君。
SLAM机器人开发(二)SLAM技术现状
- 激光SLAM
- 2D激光SLAM
- 3D激光SLAM
- 视觉SLAM
- 常见的视觉SLAM
- 视觉SLAM对比
- 视觉SLAM中使用的相机种类
- 视觉SLAM效果图
- 视觉激光融合 SLAM
激光SLAM
2D激光SLAM
激光 SLAM 在 SLAM 技术中是较为传统且成熟的。2D 激光 SLAM 技术需要输入 IMU 数据、 里程计数据和 2D 激光雷达数据,经过计算后输出覆盖栅格地图和机器人轨迹。从 20 世纪 90 年 代 EKF-SLAM 的提出开始,陆续出现了 UKF-SLAM、PF-SLAM、FAST-SLAM、GMapping、 Optimal-RBPF等激光 SLAM 算法。其中,GMapping 算法基于 RBPF-SLAM,使用粒子滤波器 (Particle Filter,PF),进一步降低了定位和建图误差,从而成为一种常用的激光 SLAM 算法。
3D激光SLAM
LOAM于 2014 年被提出,是较早的 3D 激光 SLAM。LOAM 算法使用两轴单线的激光雷达构建三维点云图。与视觉 SLAM 采用的深度相机相比,三维激光雷达在室内实景三维测图方面速度快、精度高。三维激光 SLAM 在室内建图精度可达到 2cm,而室外的表现稍差一些,精度为 9.7cm。但是与视觉SLAM相比,用于 3D 激光 SLAM 的激光雷达成本较高,线束越多,价格越贵,64线束的激光雷达可达几十万元。
视觉SLAM
常见的视觉SLAM
视觉 SLAM 的提出时间比激光 SLAM 晚,视觉 SLAM 可通过相机建立视觉里程计,所以不需要外部里程计和 IMU 的纯视觉 SLAM 也可以获得很好的效果。不过纯视觉 SLAM 在快速移动时效果欠佳,在相机移动速度大于 5m/s 时可能会跟丢特征点。视觉 SLAM 的后端优化大多采用 非线性优化,回环检测大多采用词袋模型,而前端的视觉里程计(VO/VIO)计算方法有特征点法、直接法和光流法等。其中特征点法中提取的特征可以是 SIFT 特征、ORB 特征、SURF 特 征以及 HF-Net 等。 常用的视觉 SLAM 算法有 PTAM、ORB-SLAM、RTAB-MAP、RGBD-SLAM-V2 等 。具体如下图所示:
参考文献:C. Campos, R. Elvira, et al.ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial, and Multimap SLAM[J]. IEEE/Transactions on Robotics(Early Access), 2021:1-17.*
视觉SLAM对比
RTAB-MAP 是一个集成度很高的算法,不易于二次开发,ORB-SLAM 和 RGBD-SLAM-V2 算法则各有千秋。 ORB-SLAM是2015 年被提出的基于 ORB 特征点的 SLAM 算法,紧接着 2017 年提出了 ORB-SLAM2,2021 年提出了 ORB-SLAM3。三个版本 ORB-SLAM 算法在前端里程计的计算中都依赖于 ORB 特征的提取。不过,ORB-SLAM 最终建立的是稀疏点云图。ORB-SLAM3是第一个基于特征点的紧耦合的 VIO 系统,仅依赖于最大后验估计,包括在 IMU 在初始化时。与旧版本相比,ORB-SLAM3 在大场景或小场景,室内或室外中都能鲁棒的实时运行。而且在精度上, 相比于上一版提升了 2 到 5 倍。 而另一种算法 RGBD-SLAM 于 2014 年提出,可从多种特征中选择一个,同时建立稠密点 云图。但是建立稠密点云图是一项费资源耗时的任务,而其中的 SIFT 特征点提取需要使用 GPU, 因此更为费资源。所以,RGBD-SLAM 实时性较差,而且十分依赖硬件资源。 近几年,基于融合 CNN 算法的深度特征 HF-Net 提取的 DXSLAM 采用深度学习不仅可以给出关键点描述符, 而且给出整个图像的全局描述符。由于 DXSLAM 基于全局特征,便可构建一个有效的重定位模块,用于在系统初始化或跟踪失败时加速重定位。
视觉SLAM中使用的相机种类
除了算法,相机类型的不同也会影响到视觉 SLAM 的性能。用于视觉 SLAM 的相机可分为 单目相机、双目相机、RGB-D 相机、针孔相机、鱼眼相机、全景相机、Event 相机等。其中,常用的相机有单目相机、双目相机、RGB-D 相机。 单目相机用于单目 SLAM(Monocular SLAM),由于只用一个摄像机进行 SLAM,成本很低。但是这种用二维形式反映三维世界的方法无法确定真实尺度,这导致单目 SLAM 的应用受限。对于无法确定 真实尺度的问题,可以通过测量出深度信息而解决,因此,研究方向更多的转到了双目相机和 RGB-D 相机。 双目相机的测量深度原理和人左右眼测距原理十分相似,两个相机之间的距离, 经常被称为基线,是已知的,从而通过两个相机获取的图像差别便可求出深度。但是双目相机需 要耗费极大的计算模块资源来计算视差,如果想实时输出获取图像的距离信息,需要使用 GPU 和 FPGA 设备加速。 RGB-D 相机是 2010 年左右兴起的一种相机,它自带图像处理器,可以通过红外结构光或 TOF 原理测出物体离相机的距离,从而不必耗费搭载其的工控机的计算资源去计算深度。 在上述测距原理中,双目测距方法需要耗费极大的硬件资源,而且受光照、物体纹理情况、 物体材料透明度等影响,但是在室外的情况下,相比另外两种方法可以得到更精确的深度数据。 红外结构光测距可以完美地解决双目匹配图像时的问题,但在室外测距效果不佳。尽管 TOF 测 距虽然没有另外两种方法的不足,但其得到的分辨率较低,深度图像质量差,而且功耗大。
视觉SLAM效果图
这是使用Intel Realsense D415 建立的三维点云地图。Realsense D400系列能获取的彩色图最大分辨率为 1920×1080,深度图的最大分辨率为 1280×720。但在实际应用中,彩色图和深度图的分辨率均采用 640×480,同时帧率设置为 30fps。在双目测距的基 础上,同时发射结构光来解决在低纹理问题和环境光照敏感问题。结构光可以把有规律的光斑照射到低纹理物体表面,从而获取更多的图像特征点,但同时获取图像特征点的时间也将变长。经过测验,未加入结构光时,2 到 12ms 之间可以获取一帧关键图像,而每个关键帧中 含有 800 到 2200 个特征点。但是,当加入结构光时,每个关键帧中含有 4700 到 10500 个特征点, 而获取关键帧的时间增长到 10 到 28ms。
视觉激光融合 SLAM
相比于现有的 RGB-D 相机,激光雷达可以提供更高精度的深度数据。因此,可以令 3D 激光雷达为视觉特征提供深度信息,而视觉辅助激光雷达进行运动畸变去除、辅助回环检测和提供精 确里程信息。基于这一融合的算法有 V- LOAM 和 VELO,其中 V- LOAM 基于漂移匀速假设,无回环;而 VELO 基于无运动畸变假设,有回环。但是,在视觉激光融合 SLAM 中需要解决不同系统之间的同步问题。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187119.html原文链接:https://javaforall.cn