SLAM机器人开发(二)SLAM技术现状

SLAM机器人开发(二)SLAM技术现状SLAM机器人开发(二)SLAM技术现状激光SLAM2D激光SLAM3D激光SLAM视觉SLAM常见的视觉SLAM视觉SLAM对比视觉SLAM中使用的相机种类视觉SLAM效果图视觉激光融合SLAM激光SLAM2D激光SLAM激光SLAM在SLAM技术中是较为传统且成熟的。2D激光SLAM技术需要输入IMU数据、里程计数据和2D激光雷达数据,经过计算后输出覆盖栅格地图和机器人轨迹。从20世纪90年代EKF-SLAM的提出开始,陆续出现了UKF-SLAM、PF-S

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

激光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- LOAMVELO,其中 V- LOAM 基于漂移匀速假设,无回环;而 VELO 基于无运动畸变假设,有回环。但是,在视觉激光融合 SLAM 中需要解决不同系统之间的同步问题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187119.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Kettle Spoon入门教程「建议收藏」

    Kettle Spoon入门教程「建议收藏」Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。其中,Spoon是Kettle中的一个组件,其他组件有PAN,CHEF,Encr和KITCHEN等。Spoon通过图形化的页面,方便直观的让你完成数据转换的操作。1、安装配置点我下载最新版本是7.1,小编这里使用的是6.1。下载完毕后,解压即可。因为是Java编写的,需要jdk环

    2022年5月23日
    32
  • springboot详细讲解_Springboot项目

    springboot详细讲解_Springboot项目系列文章目录一、Spring和Springboot的区别及其注意事项什么?二、忽略文件技巧,这样就可以减少很多不必要的文件生成三、SpringBootParent讲解四、stater的介绍五、引导类的介绍六、Springboot内置tomcat(辅助功能必看)可以更改服务提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前..

    2022年9月22日
    2
  • 0-1背包问题的动态规划法与回溯法

    0-1背包问题的动态规划法与回溯法一、动态规划状态转移方程:算法:例子:例:0-1背包问题。在使用动态规划算法求解0-1背包问题时,使用二维数组m[i][j]存储背包剩余容量为j,可选物品为i、i+1、……、n时0-1背包问题

    2022年7月2日
    25
  • 深度神经网络总结

    深度神经网络总结深度神经网络(DeepNeuralNetworks,DNN)可以理解为有很多隐藏层的神经网络,又被称为深度前馈网络(DFN),多层感知机(Multi-Layerperceptron,MLP)。1前向传播算法1.1从感知机到神经网络感知机的模型是一个有若干输入和一个输出的模型,如下图:输出和输入之间学习到一个线性关系,得到中间输出结果:接着是一个神经元激活函数,…

    2022年6月15日
    41
  • 适配器模式的理解和示例[通俗易懂]

    适配器模式的理解和示例[通俗易懂]一、是什么1.定义:让原来不兼容的两个接口协同工作2.分类:类适配器、对象适配器、接口适配器3.角色目标接口:Target,该角色把其他类转换为我们期望的接口被适配者:Adapte

    2022年7月1日
    21
  • PyCharm 汉化

    PyCharm 汉化汉化汉化资源地址:链接:https://pan.baidu.com/s/1htwrK5e密码:1c4d将汉化包”resources_cn.jar”放置到lib下,删除”resources_en.jar”,重启PyCharm步骤如下:…

    2022年5月26日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号