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

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

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

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


相关推荐

  • jdk 8 stream_stream流是什么

    jdk 8 stream_stream流是什么Java8新特性:Stream流详解本文章转载自头条网,只是觉得好用很详细,所以自己收集做下笔记,不做任何商业用途,不收任何费用,不喜勿喷。本文是转载,希望不要涉及到文章版权,只是自己做笔记。_________这个是最重要的。致敬头条@程序猿的内心独白1.Stream初体验我们先来看看Java里面是怎么定义Stream的:Asequenceofele…

    2022年10月6日
  • 分布式锁的使用场景_分布式锁的三种实现的对比

    分布式锁的使用场景_分布式锁的三种实现的对比前言对于锁大家肯定不会陌生,比如synchronized关键字和ReentrantLock可重入锁,一般我们用其在多线程环境中控制对资源的并发访问。但是随着业务的发展,分布式的概念逐渐出现在我们系统中,我们在开发的过程中经常需要进行多个系统之间的交互,于是上面的加锁方法就会失去作用。于是在分布式锁就自然而然的诞生了,接下来我们来聊一聊分布式锁实现的几种方式。分布式锁的使用场景 效率性:使用分布式锁可以避免不同节点重复相同的工作。 正确性:分布式锁可以避免破坏正确性的发生,如

    2022年9月8日
  • 视频的行为识别「建议收藏」

    视频的行为识别「建议收藏」1.概述使用DL方法解决视频中行为识别/动作识别的问题解决思路有三个分支:分别是two-stream(双流)方法,C3D方法以及CNN-LSTM方法。本文将从算法介绍、算法架构、参数配置、训练集预处理、算法优势及原因、运行结果六个方面对每种算法进行阐释,并对每一个分支的算法集合总结自己的心得。本文暂不区分行为识别(ActivityRecognition)与动作识别(ActionRecog…

    2022年6月9日
  • 用python打包exe应用程序-PyInstaller

    1、PyInstaller简介PyInstaller是一个跨平台的Python应用打包工具,支持Windows/Linux/MacOS三大主流平台,能够把Python脚本及其所在的…

    2022年4月6日
  • ant design vue上传文件_antd vue 表单

    ant design vue上传文件_antd vue 表单antdvue文件上传实例说明该实例是后端进行文件上传至minio服务器这里仅仅是展示前端antdvue得代码限制文件类型配置查看这里<template><a-upload:headers=”headers”:action=”url”:fileList=”fileList”@change=”handleChang…

    2022年8月15日
  • 安装tensorflow GPU版本–tensorflow-gpu版本与CUDA版本对应关系(持续更新,目前到TF2.7)「建议收藏」

    安装tensorflow GPU版本–tensorflow-gpu版本与CUDA版本对应关系(持续更新,目前到TF2.7)「建议收藏」一、WIndows安装GPU版本tensorflow注意一下几个问题一般就不会出错(1)确定自己要安装哪个版本的tensorflow-gpu;(1)根据自己要装的tensorflow-gpu版本确定要下载的CUDA版本;(2)根据要安装的CUDA版本确定要下载的Cudnn版本。二、tensorflow-gpu版本与CUDA版本对应关系不同版本的tensorflow-gpu与CUDA对应关…

    2022年5月16日

发表回复

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

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