SLAM综述

2023-05-16

SLAM综述

  • 前言
  • 一、概述
  • 二、Lidar SLAM
    • 激光雷达传感器
    • 激光雷达SLAM系统(Lidar SLAM System)
      • 2D SLAM
      • 3D SLAM
      • 深度学习与激光雷达
        • Feature & Detection(特征和检测)
        • Recognition & Segmentation(识别和分割)
        • Localization(定位)
    • 挑战与未来
      • 成本和适应性
      • 弱纹理和动态环境
      • 敌对的传感器攻击
  • 三、Visual SLAM
    • 视觉传感器
    • 视觉SLAM系统(Visual SLAM System)
      • 稀疏视觉SLAM
      • 半稠密视觉SLAM
      • 稠密视觉SLAM
      • 视觉惯性里程计SLAM
      • 深度学习与视觉SLAM
      • 挑战与未来
        • 鲁棒性和可移植性
        • 多传感器融合
        • 语义SLAM
        • 软件和硬件
  • 雷达和视觉SLAM系统
    • 多传感器校准
    • 雷达与视觉融合
      • 挑战和未来

前言

同时定位与建图(SLAM)基于自我感知实现了同时定位与地图构建的目的。这篇论文对于新研究人员掌握SLAM的发展并非常明确地学习是非常友好的。此论文也可以被认为是手册,为有经验的研究人员探索和发现新的兴趣方向。

一、概述

SLAM是同时定位与建图的缩写,它包含两个主要任务:定位和建图。这是移动机器人领域的一个重要的开放问题:为了精确地移动机器人必须有一个精确的环境地图;然而,要建立一个精确的地图,必须要知道移动机器人的感知位置。因此,同时定位与建图可以比喻为先有鸡还有先有蛋?

1990年,首先提出了用EKF (Extended Kalman Filter)(卡尔曼滤波器)逐增地估计机器人姿态的后验分布和路标。其实,从未知的位置和未知的环境中开始,机器人在移动过程中通过反复观察环境的特征来定位自己的位姿,然后根据自己的位置构建周围环境的增量式地图,以便达到同时定位与建图。定位是近年来的热点和难点。定位技术取决于环境和对成本、精度、频率和鲁棒性的要求。能够实现定位的有GPS(Global Positioning System) (全球定位系统),IMU(Inertial Measurement Unit) (惯性测量单元)、无线信号等等。但是GPS只能在室外工作,而IMU存在累积误差。无线技术作为一种动态系统,不可能在成本和准确性之间平衡。随着快速的发展,SLAM配备激光雷达、摄像头、IMU和其他传感器在最近几年兴起。

从基于滤波器的SLAM开始,如今基于图像的SLAM起主导作用。图像SLAM算法来源于KF (Kalman Filter),是EKF和PF(Particle Filter)(粒子过滤器)以图形为基础的优化。单线程已经被多线程所取代,SLAM技术也从最早的军用过渡到多传感器融合的机器人应用。

二、Lidar SLAM

激光雷达传感器

激光雷达传感器可分为二维激光雷达和三维激光雷达,由激光雷达光束的数量来确定。对于生产工艺而言,激光雷达也可分为机械激光雷达,固态激光雷达像MEMS(微机电)和固态激光雷达。固态激光雷达可以采用相控阵和flash技术制作。
Velodyne :在机械激光雷达中,有VLP-16, HDL-32E和HDL-64E。在固态激光雷达中,有车载的 Ultra puck。
SLAMTEC :有廉价的激光雷达和机器人平台像RPLIDAR A1, A2 和 R3。
Ouster :有16到128通道的机械激光雷达。
Quanergy :S3是世界上第一个发布的固态激光雷达,M8是机械激光雷达。S3-QI 是微型固态激光雷达。
Ibeo :有Lux 4L和Lux 8L机械激光雷达。与Valeo公司合作,发布了一种混合固态激光雷达Scala。

在未来的趋势中,微型化和轻量化的固态激光雷达将占领市场并能满足大多数的应用。其他激光雷达公司包括但不限于Hokuyo, HESAI, RoboSense, LeddarTech, ISureStar,benewake, Livox, Innovusion, Innoviz, Trimble, Leishen Intelligent System 。

激光雷达SLAM系统(Lidar SLAM System)

2D SLAM

Gmapping :这是机器人最常用的基于RBPF (Rao-Blackwellisation Partical Filter)算法的SLAM包,增加了2D激光雷达扫描匹配方法来估计位姿。它是基于FastSLAM的栅格地图的改进版。
HectorSLAM :它将2D SLAM系统和3D扫描匹配技术和惯性传感系统结合。
KartoSLAM :它是一个基于图优化的SLAM系统。
LagoSLAm :它是基于图形的SLAM,是非线性非凸的成本函数的最小化。
CoreSLAM :它是一个被认为性能损失最小的算法。
Cartographer :它是一个来自谷歌的SLAM系统。它采用了sub-map和闭环,在产品性能上达到了更好的效果。该算法可以提供在多个平台和传感器的2D和3D SLAM。

3D SLAM

Loam :它是一种实时状态估计的方法,使用三维激光雷达进行建图。它也back and forth spin版本和连续扫描2D激光雷达版本。
Lego-Loam :它从Velodyne 的一个VLP-16激光雷达(水平放置)和可选的IMU数据作为输入获得点云数据。该系统实时输出6维位姿估计,具有全局最优性和闭环性。
Cartographer :支持2D和3D SLAM。
IMLS-SLAM :它提出了一种新的基于3D激光雷达数据的低漂移SLAM算法,该算法使用扫描到模型(scan-to-model)的匹配框架。

深度学习与激光雷达

Feature & Detection(特征和检测)

PointNetVLAD 允许端到端的训练和推理,从给定的3D点云提取全局描述符来解决基于点云的位置识别。
VoxelNet 是一个通用的三维检测网络,包括统一特征提取和单级边界框检测,端到端可训练的深度网络。其他工作可以在BirdNet 中看到。
LMNet 描述了一个高效的单级深度卷积神经网络以检测对象并输出objectness map和每个点的边界框偏移值。
PIXOR 是一个proposal-free 的单级检测器,从像素的神经网络预测输出面向三维物体的估计解码。
Yolo3D 建立在二维图像空间中的一次回归元架构透视成功的基础上,从激光雷达点云数据进行扩展定向生成三维物体的边界框。
PointCNN 旨在从输入的点中学习X-transformation。X-transformation是元素的乘积和求和的典型卷积算子。
MV3D 是一种传感器融合框架,采用激光雷达点云和RGB图像作为输入,并预测定向的三维边界框。

Recognition & Segmentation(识别和分割)

事实上,分割的方法对于3D点云来说可以分为基于边缘、区域生长、模型拟合、混合方法、机器学习应用和深度学习。本文主要探讨了深度学习的方法。
PointNet 设计了一种新型的可以直接利用点云的神经网络,具有分类,分割和语义分析功能。
PointNet++ 通过不断扩大的语境范围来学习层次特征。
VoteNet 构造了一个基于pointnet++的3D检测管道,是一个端到端的点云三维物体检测网络。
SegMap 是一种地图描述,用于3D点云中基于线段提取的定位与建图。
SqueezeSeg 是具有递归CRF的卷积神经网络,用于从三维激光雷达点云中实时分割道路目标。
PointSIFT 是一个语义三维点云的分割框架,它是基于在一个从八个方向的相邻点中提取特征的简单模型上。
PointWise 提出了一种卷积神经网络,用于语义分割和三维点云的物体识别。
3P-RNN 是针对非结构化点云的一种新颖的端到端方法,沿着两个水平方向的语义分割挖掘内在的语境特征。
SegMatch 是一个基于三维线段的检测与匹配的循环闭合方法。Kd-Network是为三维模型识别任务而设计的,用于非结构化的点云。
DeepTemporalSeg 提出了一种深度卷积神经网络(DCNN),用于激光雷达扫描的时间一致性的语义分割。
其他类似的还有PointRCNN,但不限于此。

Localization(定位)

L3-Net 是一种基于学习的新方法来实现激光雷达定位系统厘米级的定位精度。
SuMa++ 通过整体扫描将计算语义分割的结果保存到point-wise标签里,允许我们标贴法建立一个语义丰富的地图并且提高通过语义约束进行匹配的扫描效果。

挑战与未来

成本和适应性

激光雷达的优点是可以提供三维信息,不受夜晚和光线变化的影响。此外,激光雷达的视角比较大,可以达到360度,但是激光雷达的技术门槛很高,导致开发周期长,成本很大。未来的趋势是微型化、合理化、成本低,状态稳定,实现高可靠性和适应性。

弱纹理和动态环境

大多数SLAM系统只能在固定的环境下工作,但是环境是在变化的。此外,长走廊、大管道等弱纹理环境会对激光雷达SLAM造成问题。使用IMU辅助2D SLAM可以解决上面的障碍。此外,在映射过程中包含了时间维度可以使机器人能够在一个在动态环境中工作时产生精确的映射。如何使激光雷达SLAM适应弱纹理和动态环境,以及如何保持地图更新应该进行更深入地考虑。

敌对的传感器攻击

深层神经网络容易受到敌对样本的攻击,这也被摄像头感知证明了。但在基于激光的感知中,这是非常重要的但是也是无人涉足的。通过中继攻击,首先对激光雷达的输出数据和距离估计进行干扰,这种新的饱和攻击使Velodynes VLP-16激光雷达在感知某个方向时完全失效。探讨了策略性地控制欺骗攻击来破坏机器学习模型的可能性。本文认为重要的任务是优化问题并且对输入扰动函数和目标函数设计建立模型的方法,这将攻击成功率提高到75%左右。这种敌对的传感器攻击会破坏基于激光雷达点云的SLAM系统,这是无形的,因为很难发现和维护。因此,研究如何防止激光雷达SLAM系统遭到敌对的传感器攻击应该是一个全新的的话题。

三、Visual SLAM

随着CPU和GPU的发展,图形处理能力越来越强大。相机传感器变得更便宜,更轻,也有更多的功能,过去的十年见证了视觉SLAM的飞速发展。与激光雷达系统相比,使用相机的视觉SLAM也使系统更便宜、更小。目前,视觉SLAM系统可以在微PC和嵌入式设备上运行,甚至可以在智能手机等移动设备上运行。
视觉SLAM包括摄像头或惯性测量单元等采集数据的传感器、前端视觉里程计或视觉惯性里程计、后端优化、后端闭环和建图等。重定位是实现稳定、提高视觉SLAM精确性的附加模块。

视觉传感器

视觉SLAM最常用的传感器是相机。具体来说,相机可分为单目相机、立体相机、RGB-D相机、Event camera等。
单目相机:基于单目摄像机的视觉SLAM具有真实尺寸的轨迹和地图的比例尺。也就是说,单目相机无法获得真实的深度,称为尺度模糊。基于单目摄像机的SLAM必须进行初始化,并面临漂移问题。
立体相机:立体相机是两个单目相机的组合,但两个单目相机之间的距离称为基线是已知的。虽然可以通过标定、校正、匹配、计算等方法得到深度,但这是一种浪费资源的过程。
RGB-D相机:RGB-D相机也称深度相机,因为可以直接用像素输出深度。深度相机可以通过立体、结构光和TOF技术来实现。结构光理论是指红外激光向物体表面发射具有结构特征的图案,然后红外相机将收集由于不同深度的表面图案的变化。TOF测量激光飞行的时间来计算距离。
事件相机:事件相机不是以固定的速率捕获图像,而是异步地测量每个像素的亮度变化。事件相机具有非常高的动态范围(140 dB vs. 60 dB),高时间分辨率(顺序),低功耗,并且不会出现运动模糊。因此,事件相机在高速、高动态范围内的性能优于传统相机。以事件相机为例的有动态视觉传感器、动态线条传感器、动态主动像素视觉传感器、基于时间的异步图像传感器。

接下来介绍视觉传感器的产品和公司:
Microsoft:Kinectc v1(结构光),Kinect v2(TOF), Azure Kinect(带麦克风和IMU)。
Intel:200系列,300系列,模组D400系列,D415(有源红外立体声,滚动快门),D435(有源红外立体声,全球快门),D435i(带IMU的D435)。
Stereolabs ZED :ZED立体相机(深度可达20米)。
MYNTAI:D1000系列(深度相机),D1200(智能手机),S1030系列(标准立体相机)
Occipital Structure:结构传感器(适用于ipad)。
Samsung:Gen2和Gen3动态视觉传感器和基于事件的视觉解决方案。
其他深度相机可以列出如下,但不限于此:Leap Motion, Orbbec Astra, Pico Zense, DUO, Xtion,
Camboard, IMI, Humanplus, PERCIPIO.XYZ, PrimeSense.
其他深度相机可以列出如下,但不限于此:iniVation, AIT(AIT Austrian Institute of
Technology),
SiliconEye, Prophesee, CelePixel, Dilusense.

视觉SLAM系统(Visual SLAM System)

利用图像信息的方法可分为直接法和基于特征的方法。直接法是半稠密和稠密构造,而基于特征的方法是稀疏构造。接下来,我们将介绍一些视觉SLAM(ATAM7是一个针对初学者的visual slam工具包):

稀疏视觉SLAM

MonoSLAM:第一个基于EKF的实时单目SLAM系统。
PTAM:(单目)是第一个并行跟踪和映射的SLAM系统。首先采用束调整优化关键帧的概念。后一个版本支持一个简单有效的重定位方法。
ORB-SLAM:(单目)使用三个线程:跟踪、基于最小化重投影误差(Covisibility Graph)和基于姿态图的全局优化(Essential Graph)。ORB-SLAM v2支持单目、立体和RGB-D相机。Visual Inertial ORB-SLAM 解释了IMU的初始化过程和基于视觉信息的联合优化。
proSLAM:(立体)是一个轻量级的视觉SLAM系统,易于理解。
ENFT-sfm:它是一种特征跟踪方法,能够有效地匹配一个或多个视频序列之间的特征点。升级版的ENFT-SLAM可以大规模运算。
OpenVSLAm:(所有类型的相机)是基于具有稀疏特征的间接SLAM算法。OpenVSLAM的优秀之处在于该系统支持透视、鱼眼和equirectangular相机,甚至支持自己设计的相机模型。
TagSLAM:它通过使用AprilTag基准标记实现SLAM。此外,它还提供了一个前端的GTSAM因素图优化,可以设计大量的实验。
其他类似的还有但不限于UcoSLAM

半稠密视觉SLAM

LSD-SLAM:(单目)提出了一种基于李代数和直接法的直接跟踪方法。支持立体相机,支持广角相机
SVO:(单目)是一种半直接的视觉里程计。它采用基于稀疏模型的图像对齐来获得较快的速度。更新版本扩展到多个相机,鱼眼和反折射相机。CNN-SVO是具有单图像深度预测网络的SVO版本。
DSO:(单目)是LSD-SLAM作者的新作。在不需要检测和描述特征点的情况下,基于直接法和稀疏法建立了一个可视化的导航系统。
EVO:(事件)是一种基于事件的视觉测程算法。我们的算法不受运动模糊的影响,并在具有挑战性的,光照变化强烈的高动态范围条件下运行良好。

稠密视觉SLAM

DTAM:(单目)在一种新的非凸优化框架中,通过最小化全局空间正则化能量泛函,实现了三维模型的实时重建,称为直接法。
MLM SLAM:(单目)该算法不需要图形处理单元(GPU)就可以在线重建稠密的三维模型。其关键贡献在于多分辨率深度估计和空间平滑处理。
Kinect Fusion:(RGB-D)几乎是第一个具有深度相的三维重建系统。
DVO:(RGB-D)提出了一种稠密视觉SLAM方法,基于熵的关键帧选择相似度度量和基于g2o框架的闭环检测。
RGBD-SLAM-V2:(RGB-D)可以在没有其他传感器帮助的情况下重建精确的三维稠密模型。
Kintinuous:(RGB-D)是一个具有全局一致性的点和网格实时重构的视觉SLAM系统。
RTAB-MAP:(RGB-D)支持同时定位和建图,但难以作为开发上层算法的基础。后一个版本同时支持视觉和激光雷达SLAM。
Dynamic Fusion:(RGB-D)提出了第一个能够在Kinect融合中实时重建非刚性变形场景的稠密SLAM系统。VolumeDeform也实现了实时的非刚性重建,但不是开源的。类似的工作可以在Fusion4D中看到。
Elastic Fusion:(RGB-D)是一个实时稠密的可视SLAM系统,能够利用RGB-D相机捕获到全面密集的全球一致的基于地表的房间尺度环境地图。
InfiniTAM:(RGB-D)是一个基于Linux、IOS、Android平台的实时三维重建系统。
Bundle Fusion:(RGB-D)支持从严重跟踪故障中恢复的加强跟踪,并实时重新估计3D模型以确保全局一致性。
其他类似的可以列举如下,但不限于SLAMReconRKD-SLAMRGB-D SLAMMaplabPointNVSNetMID-FusionMaskFusion

视觉惯性里程计SLAM

视觉SLAM在技术上具有挑战性是无疑的。单目视觉SLAM存在必要的初始化、尺度模糊和尺度漂移等问题。立体相机和RGB-D相机虽然可以解决初始化和缩放的问题,但也存在一些不可忽视的障碍,如快速移动(Global Shuttle或鱼眼甚至全景相机都可以解决)、小视场、大计算、遮挡、特征丢失、动态场景、光线变化等。近年来,视觉惯性里程计SLAM技术成为研究热点。
首先,在VIO中给出一些尝试。给出了视觉惯性里程计中的例子和数学证明。值得一提的是,tango、Dyson 360 Eye、hololens等都是VIO的真实产品,得到了很好的反馈。除此之外,苹果的ARkit(基于过滤器)、谷歌的ARcore(基于过滤器)、uSens的Inside-out都是VIO的技术。PennCOSYVIO从一个VI传感器(立体相机和IMU)、两个Project Tango手持设备和三个GoPro Hero 4相机同步数据,并进行内部和外部校准。接下来将介绍一些开源VIO系统:
SSF :(松耦合、基于滤波器)是基于EKF的时间延迟补偿单传感器和多传感器融合框架。
MSCKF:它是基于扩展卡尔曼滤波器的谷歌探戈采用的一种紧耦合滤波方法。但类似的工作称为MSCKF-VIO,开放源代码。
ROVIO:(紧耦合,基于滤波器)是一个扩展的卡尔曼滤波器,同时跟踪三维地标和图像补丁特征。它支持单目相机。
OKVIS:(紧耦合,基于优化)是一个开放和经典的基于关键帧的视觉惯性SLAM。它支持单目和立体相机的滑动窗口估计。
VINS: VINS-Mono:(紧密耦合,基于优化)是单目视觉惯性系统的实时SLAM框架。开放源代码运行在Linux上,并与ROS完全集成。VINS-Mobile是一种在兼容的iOS设备上运行的实时单目视觉惯性里程计。此外,VINS-Fusion支持多种视觉惯性传感器类型(GPS、单目相机+ IMU、立体相机+ IMU,甚至仅支持立体相机)。它具有在线空间标定、在线时间标定和视觉闭环。
ICE-BA:(紧耦合,基于优化)为视觉惯性SLAM提供了一种增量的、一致的、高效的约束调整,在滑动窗口上并行执行局部BA,在所有关键帧上并行执行全局BA,并实时输出每一帧的相机姿态和更新的地图点。
Maplab:(紧耦合,基于优化)是一个开放的、面向研究的可视化惯性建图框架,用c++编写,用于创建、处理和操作多会话建图。一方面,maplab可以被认为是一个现成的视觉惯性建图和定位系统。另一方面,maplab为研究社区提供了一套多会话建图工具,包括地图合并、可视化惯性批处理优化、环路闭合、三维密集重建等。
其他解决方案可以列出如下,但不限于VI-ORB(紧密耦合的、基于优化的)(ORB-SLAM作者的作品,但不是开源的),StructVIORKSLAM能够可靠地处理AR应用中的快速运动和强旋转。

深度学习与视觉SLAM

目前,深度学习在计算机视觉的维护中起着至关重要的作用。随着视觉SLAM的发展,越来越多的人将目光投向了深度学习。“语义SLAM”指的是一种方法,它将语义信息包含到SLAM过程中,通过提供高层次的理解、健壮的性能、资源感知和任务驱动感知来提高性能和表现。接下来,我们将从以下几个方面介绍带语义信息的SLAM的实现:
Feature & Detection: Pop-up SLAM :(单目)提出了一种实时单目平面SLAM算法,表明场景理解可以改善状态估计和稠密建图,特别是在低纹理环境下。平面测量来自应用于每个图像的弹出三维平面模型。SuperPoint提出了一种用于训练兴趣点检测器和描述符的自监督框架,该框架适用于计算机视觉中的大量多视图几何问题。GCN-SLAM提出了一个基于深度学习的网络GCNv2,用于生成关键点和描述符。SalientDSO通过深度学习来实现视觉显著性和环境感知。CubeSLAM (单目)是一种基于立方体模型的三维目标检测与SLAM系统。MonoGRNet是一个用于单目三维目标检测和定位的几何推理网络。关于在深度学习中进行调查检测,可能是一个不错的选择。
Recognition & Segmentation: SLAM++:(CAD model)二维语义信息通过具有空间一致性的连接关键帧之间的对应转移到三维映射中。Semanticfusion (RGBD)结合CNN卷积神经网络(Convolutional Neural Network)和一种最先进的密集同步定位与建图(SLAM)系统,ElasticFusion构建出语义三维地图。3DMV (RGBD)结合RGB颜色和几何信息,对RGB- D扫描进行三维语义分割。Pix3D研究单一图像的三维形状建模。ScanComplete是一种数据驱动方法,它采用场景的不完整3D扫描作为输入,并预测一个完整的3D模型,以及每个体素语义标签。Fusion++是一个在线对象级的SLAM系统,它可以为任意重建对象构建一个持久而精确的三维图形地图。RGB-D摄像机浏览杂乱的室内场景时,使用掩码Mask-RCNN实例分段来初始化紧凑的每个对象的截断符号距离函数(TSDF)重构,该重构具有对象大小相关的分辨率和新颖的3D前景掩码。SegMap是一种基于三维线段的地图表示,可用于机器人定位、环境重建和语义提取。3D-SIS是一种用于商品RGB-D扫描中三维语义实例分割的新型神经网络结构。DA-RNN采用一种新的递归神经网络结构对RGB-D视频进行语义标注。DenseFusion是从RGB-D图像中估计一组已知对象的6D位姿的通用框架。其他作品见CCNet
Recovery Scale: CNN-SLAM:(单目)另一项研究见DeepVOGS3DUnDeepVO可以使用带有深度学习的单目相机获得6自由度的姿态和深度。谷歌提出了一种工作,该工作提出了一种基于无监督学习的方法,在单目相机和场景中的人都在自由移动的场景中预测稠密深度。GeoNet是一种用于单目深度的联合无监督学习框架,光流和视频中的自我运动估计。CodeSLAM提出了一种基于单幅图像的深度图,该深度图可以与位姿变量一起有效地优化。GEN-SLAM借助常规几何SLAM和单目拓扑约束输出稠密地图。其他类似的工作可以在DeepMVS中看到。基于事件相机的深度估计可以应用于单目相机和立体相机。
Pose Output & Optimization:是同步性的立体VO。[192]利用CNN从光流估计运动。PoseNet无需优化即可从单个RGB图像中获得6自由度姿态。VInet (单目)首先对VIO中的运动进行估计,减少了对手动同步和校准的依赖。DeepVO (单目)利用深度递归卷积神经网络(RCNNs)提出了一种新颖的单目VO端到端框架。类似的工作可以在[196]和SFM-Net中看到。VSO提出了一种新的视觉语义里程计(VSO)框架,利用语义对点进行中期连续跟踪。MID-Fusion (RGBD,密集型点云)使用面向对象的跟踪方法估计每个现有移动对象的姿态,并将分割后的请求与现有模型关联起来,逐步将相应的颜色、深度、语义和前景对象概率融合到每个对象模型中。其他类似的作品可以在VidLoc中看到。此外,[200]使用事件相机输出自我运动。
Long-term Localization:综合度量信息、语义信息和数据关联,提出了传感器状态和发散地标位置的优化问题。[203]提出了一种新的基于特征嵌入的无监督深度神经网络结构来实现视觉闭环。[204]表明语义信息比传统的特征描述符更有效。X-View利用语义图描述符匹配进行全局定位,支持在完全不同的视图点下进行定位。[206]提出了一种将假设表示为等效非高斯传感器模型的多模态来确定对象类别标签和测量地标对应的解决方案。关于基于事件相机的应用,[207]值得一读。
Dynamic SLAM: RDSLAM:提出了一种基于在线关键帧表示和更新的单目实时SLAM系统。DS-SLAM是一个基于优化的ORB-SLAM的具有语义信息的SLAM系统。语义信息可以使SLAM系统在动态环境下具有更强的鲁棒性。MaskFusion (RGB-D, 稠密点云)是一种基于Mask R-CNN的实时、对象感知、语义化、动态的RGB-D SLAM系统。该系统甚至可以在连续的、独立的对运动中的目标进行语义标注。相关的工作可以在Co-Fusion (RGBD)中看到。Detect-SLAM将SLAM与基于深度神经网络的目标探测器相结合,使这两种功能在未知的动态环境中相互受益。DynaSLAM是一个动态环境下的单目、立体和RGB-D相机的SLAM系统。StaticFusion提出了一种动态环境下的鲁棒稠密RGB-D SLAM方法,该方法检测运动目标并同时重建背景结构。RGB-D SLAM和[215][216][217]也有基于动态环境的相关工作。

挑战与未来

鲁棒性和可移植性

视觉SLAM仍然面临着光照条件、高动态环境、快速运动、剧烈旋转和低纹理环境等重要障碍。首先,全局快门代替滚动快门是实现精确相机姿态估计的基础。像动态视觉传感器这样的事件相机每秒可以产生100万个事件,这对于高速、高动态范围内的快速运动来说已经足够了。其次,利用边缘、平面、地物等语义特征,甚至减少特征依赖,如结合边缘跟踪、直接跟踪或机器学习的组合,可能成为更好的选择。第三,基于SfM/SLAM的数学机制,精确的数学公式优于隐式学习的导航函数。
SLAM的未来可以预见,一是基于智能手机或无人机等嵌入式平台的SLAM,二是详细的3D重建、场景理解和深度学习。如何平衡实时性和准确性是一个重要的开放性问题。动态、非结构化、复杂、不确定和大规模环境的解决方案有待探索。

多传感器融合

实际的机器人和硬件设备通常不携带一种传感器,往往是多个传感器的融合。例如,目前对手机VIO的研究将视觉信息与IMU信息相结合,实现了两个传感器的互补优势,这为SLAM的小型化和低成本提供了一个非常有效的解决方案。DeLS-3D是一种融合摄像机视频、运动传感器(GPS/IMU)和三维语义图的传感器融合方案,以实现系统的鲁棒性和高效性。有以下列出的传感器,但不限于激光雷达,声纳,IMU,红外,相机,GPS,雷达等。传感器的选择取决于环境和所需的地图类型。

语义SLAM

事实上,人类识别物体的运动是基于感知,而不是图像的特征。SLAM中的深度学习可以实现目标识别和分割,帮助SLAM系统更好地感知周围环境。语义SLAM还可以在全局优化、循环关闭和重定位等方面发挥作用。[220]:传统的同步定位和制图方法(SLAM)依赖于点、线(PL-SLAM、StructSLAM)、面等几何特征来推断环境结构。在大规模场景中,高精度实时定位的目标可以通过语义SLAM来实现。

软件和硬件

SLAM不是一种算法,而是一种综合的、复杂的技术。它不仅依赖于软件,而且还依赖于硬件。未来的SLAM系统将专注于算法和传感器的深度结合。基于上面的例子,领域特定的处理器而不是通用处理器,集成的传感器模块而不是像相机这样的单独的传感器,将显示出巨大的潜力。这些工作使得开发者将注意力集中在算法上,加速了真实产品的发布。

雷达和视觉SLAM系统

多传感器校准

Camera & IMU: Kalibr:是一个解决以下校准问题的工具箱:多个摄像机校准、视觉-惯性校准(camera- IMU)和卷帘门相机校正。Vins-Fusion 能在线空间校准和在线时间校准。MSCKF-VIO也有相机和IMU的校准。此外,IMU- tk可以校准IMU的内部参数。其他工作可以在[227]中看到。[228]提出了一种单目VIO的端到端网络,该网络融合了来自相机和IMU的数据。
Camera & Depth: BAD SLAM:为使用同步全球快门RGB和深度相机提出一个校准的基准。
Lidar & IMU: LIO-mapping:介绍了一种紧密耦合的lidar-IMU融合方法。Lidar- align是一种简单的方法,用于寻找三维激光雷达和6自由度姿态传感器之间的外部校准。激光雷达的外部校准可以在[231]中看到。博士论文[233]阐述了激光雷达校准的工作。
Camera & Lidar: :介绍了一种概率监测算法和一个连续校准优化器,使相机激光校准实现在线并且自动。Lidar - camera提出了一种新的管道和实验装置,用于寻找精确的刚体变换,用于外部校准激光雷达和相机,使用3D-3D点对应。RegNet是第一个在多模态传感器之间推导出6个自由度(DOF)外部校准的深度卷积神经网络(CNN),以扫描激光雷达和单目相机为例。LIMO提出了一种从激光雷达测量数据中提取深度的算法,用于摄像机特征轨迹的提取和运动估计。CalibNet是一种能够实时自动估计三维激光雷达和二维相机之间的6自由度刚体变换的自监督深度网络。Autoware的标定工具可以对信号波束激光雷达和摄像机进行标定。其他工作如下,但不限于[239]。
其它的例如SVIn2等研究展示了一种基于OKVIS的融合声纳、视觉、惯性和深度传感器的水下SLAM系统。

雷达与视觉融合

Hardware layer: Pandora:来自HESAI的软件和硬件解决方案集成了40束激光雷达,5个彩色相机和识别算法。集成的方案可以使开发人员从时间和空间的同步中得到安慰。从KAARTA 了解CONTOURSTENCIL的存在,将给你一个头脑风暴。
Data layer:激光雷达深度数据稀疏、精度高,而相机深度数据密集、精度低,这将导致基于图像的深度上采样和基于图像的深度绘制/补全深度。[242]提出了一种新的深度图像上采样方法。[243]仅依靠基本的图像处理操作来完成稀疏激光雷达深度数据的深度补全。对于深度学习,[244]提出使用单个深度回归网络直接学习RGB-D原始数据,并探讨深度样本数量的影响。[245]考虑了CNN在稀疏输入上的操作,以及一个从稀疏激光扫描数据到深度补全的应用。DFuseNet提出了一种基于从高分辨率强度图像中收集的上下文线索的稀疏范围测量的CNN。其他类似的工作如下,但不限于[247]。
Task layer:融合立体相机和激光雷达来感知。[250]融合雷达、激光雷达和相机来探测和分类运动物体。可以看到其他传统的作品,但不限于[251]。[254]可以通过RGB-D摄像机提供的深度信息或与摄像机相关的激光雷达(Lidars)提供的深度信息来增加VO,即使这些信息很少。V-Loam提出了一种将视觉里程计和激光雷达里程计相结合的通用框架。该方法以视觉里程计为出发点,基于扫描匹配的激光雷达里程计同时细化了运动估计和点云配准。VI-SLAM涉及一种系统的开发,该系统结合了精确的激光里程计估计值,以及使用视觉实现环路检测的位置识别算法。[257]针对SLAM的跟踪部分,利用RGB-D摄像机和2D低成本激光雷达,通过模式切换和数据融合完成一个健壮的室内SLAM。VIL-SLAM将紧密耦合的立体VIO与激光雷达建图和激光雷达增强的视觉环路闭合相结合。[259]将单目相机图像与激光距离测量相结合,使视觉SLAM不受尺度不确定性增加的误差影响。在深度学习中,对相机和激光雷达数据进行融合检测和识别的方法很多,如PointFusionRoarNetAVODMV3DFuseNet等。其他类似的工作可以在[264]中看到。 此外,[265]利用激光雷达和摄像机来执行非常精确的定位,采用端到端可学习的体系结构。[266]融合了三维激光雷达和单目相机。

挑战和未来

Data Association:SLAM的未来必须整合多传感器。但是不同的传感器有不同的数据类型、时间戳和坐标系统表达式,需要统一处理。此外,还需要考虑多传感器之间的物理模型建立、状态估计和优化。
Integrated Hardware:目前,没有合适的芯片和集成硬件使SLAM技术更容易成为产品。另一方面,如果传感器的精度由于故障、非正常状态或老化而下降,则传感器测量的质量(如噪声、偏差)与噪声模型不匹配。应该遵循硬件的鲁棒性和集成性。前端传感器应具备数据处理能力,并由硬件层向算法层演进,再由功能层向SDK进行应用创新。
Crowdsourcing:分散视觉SLAM是多机器人应用于没有绝对定位系统环境的有力工具。协同优化视觉多机器人SLAM需要分散的数据和优化,这被称为众包。分散数据过程中的隐私问题应引起重视。差分隐私技术[269]或许能帮上忙。
High Definition Map:高清晰度地图对机器人至关重要。但是哪种地图最适合机器人呢?密集地图或稀疏地图可以导航、定位和路径规划吗?对于长期建图,一个相关的开放问题是多久更新一次地图中包含的信息,以及如何确定什么时候这些信息会过时并可以丢弃。
Adaptability, Robustness, Scalability:正如我们所知,现在没有一个SLAM系统可以覆盖所有的场景。为了在给定的场景中正确工作,大多数都需要大量的参数调优。为了让机器人感知到人类,基于外观而不是基于特征的方法是首选的,这将有助于将昼夜序列或不同季节之间的语义信息整合成闭环。
Ability against risk and constraints:完善的SLAM系统应具备故障安全机制和故障感知机制。这不是关于重定位或循环闭合的问题。SLAM系统必须具备应对风险或失败的能力。同时,理想的SLAM解决方案应该能够在不同的平台上运行,而不管平台的计算限制。如何在精度、鲁棒性和有限的资源之间取得平衡是一个具有挑战性的问题。
Application:SLAM技术应用广泛:大规模定位、导航、三维或语义地图构建、环境识别与理解、地面机器人、无人机、VR/AR/MR、AGV(自动导引车)、自动驾驶、虚拟室内装饰、虚拟试衣间、沉浸式网络游戏、抗震救灾、视频分割与编辑。
Open question:端到端学习将主导SLAM吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SLAM综述 的相关文章

随机推荐

  • 使用小觅双目-惯性相机运行VINS-Mono

    步骤 1 下载相机驱动MYNT EYE SDK 2 xff0c 然后make ros xff08 注意 xff1a 前面的Ubuntu安装也要操作 xff09 xff1b 2 安装VINS Mono xff1b 3 在MYNT EYE VI
  • 在TX2上安装VIINS-Mono——问题总结

    1 ceres solver 我们一般通过以下命令安装Eigen xff1a sudo apt get install libeigen3 dev 默认安装在 usr include eigen3 在CMakeList txt中一般用以下语
  • LeGO-LOAM初探:原理,安装和测试

    前言 最近要搞3D激光SLAM xff0c 先后测试了Autoware xff0c cartographer xff0c loam和LeGO LOAM 今天就带来LeGO LOAM的使用体验 Github xff1a https githu
  • IMU噪声标定——加速度计和陀螺仪的白噪声和零偏不稳定性

    前言 imu utils是一个用于分析IMU性能的ROS工具包 参考资料 Allan Variance Noise Analysis for Gyroscopesvectornav gyroscopeAn introduction to i
  • TF坐标变换

    文章目录 TF坐标变换TF功能包TF工具乌龟例程中的TF创建TF广播器创建TF监听器实现乌龟跟随运动 存在的问题总结参考 TF坐标变换 坐标变换是机器人学中一个非常基础 xff0c 同时也是非常重要的概念 机器人本体和机器人的工作环境中往往
  • Linux下目录文件的操作(opendir,readdir,closedir) 以及DIR,dirent,stat等结构体详解

    From http blog chinaunix net uid 27213819 id 3810699 html 注 xff1a 为什么要说 目录文件 xff1f 其实在linux中 目录也是一种 文件 xff0c 只是它的内容是上级的
  • 堆栈的工作原理

    声明 xff1a 以下均为个人收集的一些资料 xff0c 非原创 每一个使用c语言的都应该知道栈的重要性 xff0c 我们能够使用C C 43 43 语言写出诸多复杂的程序 xff0c 很大功劳一部分有归于栈的实现 xff0c 因为它可以帮
  • RTK+GPS提高定位精度原理解析(一个小白写给另一个小白系列)

    RTK 43 GPS提高定位精度原理解析 xff08 一个小白写给另一个小白系列 xff09 GPS定位原理回顾RTK基本概念RTK组成RTK传输差分示意RTK数据链接坐标转换RTK应用后记 我们在上一篇文章导航定位系统的原理解析 xff0
  • Python 嵌套函数中内部函数引用外部函数循环变量情况

    Python 嵌套函数中内部函数引用外部函数循环变量情况 Python中的嵌套函数也称为闭包 xff08 Closure xff09 有一个特点就是内部函数可以引用外部函数内的变量并且在外部函数返回后保存该引用变量的值 xff1b 但是如果
  • Git查看版本改动—— git diff

    HEAD 表示当前版本 xff0c 也就是最新的提交 上一个版本就是 HEAD xff0c 上上一个版本就是 HEAD xff0c 往上100个版本写100个 比较容易数不过来 xff0c 所以写成 HEAD 100 HEAD 2 相当于
  • PyQt5编程-鼠标事件

    处理鼠标事件的频率不低于键盘事件 包括按下 松开鼠标按键 xff1b 移动鼠标到特定区域或离开特定区域 xff1b 更改鼠标指针的形状 xff0c 等等 1 按下 松开鼠标按键 按下并释放鼠标按钮时 xff0c 将调用以下方法 xff1a
  • latex 正文设置为双栏,图片如何占两栏

    xff08 1 xff09 插入一栏图片时 xff0c 使用的是 xff1a begin figure end figure 96 xff08 2 xff09 插入双栏图片时 xff0c 需在figure的上标中加入星号 begin fig
  • VIO松耦合和紧耦合对比

    松耦合 xff08 结果级融合 xff09 xff1a 两个独立的运动估计过程中分别处理视觉和惯性测量的信息 xff0c 最终将他们的输出 xff08 位置和姿态 xff09 融合作为结果 紧耦合 xff08 特征级融合 xff09 xff
  • zed2相机运行VINS-mono

    zed2相机标定请参考专栏前面博文 xff01 一 zed2相机运行VINS mono 1 下载VINS mono mkdir p vins ws src cd vins ws src git clone https github com
  • C语言指针笔试题

    1 我们先来看第一段代码和它的输出 span class token keyword int span span class token function main span span class token punctuation spa
  • Gazebo 官网教程学习笔记--Model Editor

    终端打开Gazebo Gui 界面 然后快捷键CTRL 43 M 打开 Model Editor xff0c 或者在edit 下选择model editor 界面如下 1 工具栏 包含用于编辑模型的工具 2 调色板 也称为左面板 有两个选项
  • 《大厂算法面试》小书

    算法面试是大多数小伙伴的弱势 xff0c 但是大厂几乎都会考算法 xff0c 如果在面试过程中不刻意准备一下算法 xff0c 很大概率被挂 其实对于前端和移动端来说 xff0c 算法要求的并不是很高 xff0c 只要把一些常见的算法题刷完
  • ROS通信架构上——Topic和Msg

    Topic 异步通信方式 Node间通过publish subscribe机制通信 相关的命令 xff1a rostopic rostopic list 列出当前所有topicrostopic info topic name 显示某个top
  • Type-C显示器是什么,Type-C显示器的5大优势

    在显示器领域内 xff0c USB Type C接口还处于发展阶段 xff0c 目前已经在新推出的一些高端显示器和旗舰显示器中有配置 USB Type C接口的出现 xff0c 将会形成以显示器为核心的桌面解决方案 xff0c 用户可以把任
  • SLAM综述

    SLAM综述 前言一 概述二 Lidar SLAM激光雷达传感器激光雷达SLAM系统 xff08 Lidar SLAM System xff09 2D SLAM3D SLAM深度学习与激光雷达Feature amp Detection xf