0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SLAM为何重要

MATLAB 来源:MATLAB 作者:MATLAB 2022-07-28 14:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

同步定位与地图构建 (SLAM) 是自动驾驶汽车所用的一种技术,您不仅可以用它构建地图,还可同时在该地图上定位您的车辆。SLAM 算法让汽车能够构建未知环境的地图。工程师们使用地图信息执行路径规划和避障等任务。

1. SLAM 为何重要

早在多年前,人们就已开始对 SLAM 开展技术研究。如今,随着计算机处理速度显著提升,且相机和激光测距仪等低成本传感器大为普及,SLAM 更是在越来越多的领域投入实际应用。

SLAM 为何重要?要回答这个问题,我们可以看看以下几个例子,了解它有哪些好处和应用。

SLAM 示例

假设有一个家用扫地机器人。没有 SLAM,它只会在房间里随机移动,无法打扫整个地面空间。此外,这种方法会消耗更多功率,因此电池会更快耗尽。相反,采用 SLAM 的机器人可以使用滚轮转数等信息以及来自相机和其他成像传感器的数据,确定所需的移动量。这称为定位。机器人还可以同步使用相机和其他传感器创建其周围障碍物的地图,避免同一区域清洁两次。这称为建图。

c97b06ec-0d94-11ed-ba43-dac502259ad0.png

SLAM 给扫地机器人带来的好处

SLAM 还可用于许多其他应用场景中,例如让一队移动机器人在仓库中移动并整理货架,让自动驾驶汽车停泊到空车位,或者让无人机在未知环境中完成送货。MATLABSimulink 提供了 SLAM 算法、函数和分析工具来开发各种应用。您可以在实现同步定位与地图构建的同时,完成传感器融合、目标跟踪、路径规划和路径跟随等其他任务。

2. SLAM 工作原理

大致说来,实现 SLAM 需要两类技术。一类技术是传感器信号处理(包括前端处理),这类技术在很大程度上取决于所用的传感器。另一类技术是位姿图优化(包括后端处理),这类技术与传感器无关。

c99005ec-0d94-11ed-ba43-dac502259ad0.png

SLAM 处理流程

为了进一步了解前端处理技术,我们不妨先来了解一下两种不同的 SLAM 方法——视觉 SLAM 和激光雷达 SLAM。

视觉 SLAM

顾名思义,视觉 SLAM(又称 vSLAM)使用从相机和其他图像传感器采集的图像。视觉 SLAM 可以使用普通相机(广角、鱼眼和球形相机)、复眼相机(立体相机和多相机)和 RGB-D 相机(深度相机和 ToF 相机)。

视觉 SLAM 所需的相机价格相对低廉,因此实现成本较低。此外,相机可以提供大量信息,因此还可以用来检测路标(即之前测量过的位置)。路标检测还可以与基于图的优化结合使用,这有助于灵活实现 SLAM。

使用单个相机作为唯一传感器的 vSLAM 称为单目 SLAM,此时难以定义深度。这个问题可以通过以下方式解决:检测待定位图像中的 AR 标记、棋盘格或其他已知目标,或者将相机信息与其他传感器信息融合,例如测量速度和方向等物理量的惯性测量单元 (IMU) 信息。vSLAM 相关的技术包括运动重建 (SfM)、视觉测距和捆绑调整。

视觉 SLAM 算法可以大致分为两类。稀疏方法:匹配图像的特征点并使用 PTAM 和 ORB-SLAM 等算法。稠密方法:使用图像的总体亮度以及 DTAM、LSD-SLAM、DSO 和 SVO 等算法。

c9a52cc4-0d94-11ed-ba43-dac502259ad0.jpg

运动重建。

c9b4bbee-0d94-11ed-ba43-dac502259ad0.jpg

RGB-D SLAM 点云配准

激光雷达 SLAM

光探测与测距(激光雷达)方法主要使用激光传感器(或距离传感器)。

对比相机、ToF 和其他传感器,激光可以使精确度大大提高,常用于自动驾驶汽车和无人机等高速移动运载设备的相关应用。激光传感器的输出值一般是二维 (x, y) 或三维 (x, y, z) 点云数据。激光传感器点云提供了高精确度距离测度数据,特别适用于 SLAM 建图。一般来说,首先通过点云匹配来连续估计移动。然后,使用计算得出的移动数据(移动距离)进行车辆定位。对于激光点云匹配,会使用迭代最近点 (ICP) 和正态分布变换 (NDT) 等配准算法。二维或三维点云地图可以用栅格地图或体素地图表示。

但就密度而言,点云不及图像精细,因此并不总能提供充足的特征来进行匹配。例如,在障碍物较少的地方,将难以进行点云匹配,因此可能导致跟丢车辆。此外,点云匹配通常需要高处理能力,因此必须优化流程来提高速度。鉴于存在这些挑战,自动驾驶汽车定位可能需要融合轮式测距、全球导航卫星系统 (GNSS) 和 IMU 数据等其他测量结果。仓储机器人等应用场景通常采用二维激光雷达 SLAM,而三维激光雷达点云 SLAM 则可用于无人机和自动驾驶。

c9cdf410-0d94-11ed-ba43-dac502259ad0.jpg

二维激光雷达 SLAM

c9db0786-0d94-11ed-ba43-dac502259ad0.jpg

三维激光雷达 SLAM

SLAM 面临的常见挑战

虽然 SLAM 已在某些场景下投入实际应用,但是仍面临诸多技术挑战,因此难以得到更为广泛的应用。不过,每项挑战都可以凭借特定的对策加以克服。

1) 定位误差累积,导致与实际值产生偏差

SLAM 会估计连续移动,并容许一定的误差。但是误差会随着时间累积,导致与实际值产生明显偏差。误差还会导致地图数据瓦解或失真,让后续搜索变得困难。我们来看一个绕正方形通道行驶的例子。随着误差累积,机器人的起点和终点对不上了。这称为闭环问题。这类位姿估计误差不可避免。我们必须设法检测到闭环,并确定如何修正或抵消累积的误差。

对策之一是记住之前到过的某处的某些特征,将其作为路标,从而最小化定位误差。构建位姿图有助于修正误差。将误差最小化问题视为优化问题进行求解,以生成更准确的地图数据。这种优化在视觉 SLAM 中称为捆绑调整。

c9ea5290-0d94-11ed-ba43-dac502259ad0.jpg

构建位姿图并最小化误差的示例

2) 定位失败,地图上的位置丢失

图像和点云建图不考虑机器人的移动特征。在某些情况下,这种方法会生成不连续的位置估计。例如,可能会有计算结果显示,以 1 米/秒速度移动的机器人突然向前“瞬移”了 10 米。避免这种定位失败的办法有两种:一是使用恢复算法;二是将运动模型与多个传感器融合,以基于传感器数据计算。

有多种方法可以实现运动模型的传感器融合。一种常见方法是使用卡尔曼滤波进行定位。由于大部分差速驱动机器人和四轮车辆一般都使用非线性运动模型,因此通常会使用扩展卡尔曼滤波器和粒子滤波器(蒙特卡罗定位)。某些情况下,也可以使用无迹卡尔曼滤波器等更加灵活的贝叶斯滤波器。一些常用传感器是惯性测量装置,例如惯性测量单元 (IMU)、航姿参考系统 (AHRS)、惯性导航系统 (INS)、加速度计传感器、陀螺仪传感器和磁力传感器。安装到车辆的轮式编码器通常用于测距。

定位失败时,一种恢复对策是记住之前经过的某个位置的关键帧,将其作为路标。搜索路标时,会以特定方法进行特征提取以便高速扫描。有些方法基于图像特征,例如特征袋 (BoF) 和视觉词袋 (BoVW)。近年来,人们也使用深度学习来比较特征距离。

3) 图像处理、点云处理和优化带来高计算成本

在车辆硬件上实现 SLAM 时,计算成本是个问题。计算通常在处理能力有限的紧凑型低功耗嵌入式微处理器上执行。为了实现准确定位,必须高频率执行图像处理和点云匹配。此外,闭环等优化计算都是高成本计算流程。此处的挑战在于如何在嵌入式微处理器上执行这种高成本处理。

对策之一是并行运行多个不同流程。例如,用于匹配流程前处理的特征提取就相对适合并行运行。使用多核 CPU 进行处理时,单指令多数据 (SIMD) 计算和嵌入式 GPU 在某些情况下可以进一步提升速度。而且,由于位姿图优化可以在相对长的周期里执行,降低其优先级并以规律间隔执行也能提高性能。

3. 使用 MATLAB 实现 SLAM

MATLAB 可以帮助您在目标系统上实现 SLAM 应用,并可帮助您应对各种已知的 SLAM 技术挑战。

SLAM 前端的传感器信号和图像处理

使用 Lidar Toolbox 和 Navigation Toolbox 进行二维/三维激光雷达处理和扫描匹配

三维点云处理和点云配准

使用特征袋和视觉词袋进行闭环检测

使用深度学习进行目标检测和语义分割

使用 Automated Driving Toolbox 生成包含三维激光雷达点云的地图

使用 Sensor Fusion and Tracking Toolbox 将传感器融合用于定位和多目标跟踪

SLAM 后端的二维/三维位姿图

使用 Navigation Toolbox 生成二维/三维位姿图

基于节点和边约束优化位姿图

使用 Computer Vision Toolbox 进行捆绑调整

使用 SLAM 地图生成器生成占据栅格

从 MATLAB 工作区或 rosbag 文件导入二维激光雷达数据并创建占据栅格

寻找并修改闭环,然后将地图导出为占据栅格以用于路径规划

使用来自 SLAM 算法的输出地图进行路径规划和控制

使用 Navigation Toolbox 实现 RRT 或 Hybrid A* 等路径规划算法

发送控制指令以跟随规划路径并避开障碍

使用 Parallel Computing Toolbox 并行运行计算密集型流程(例如图像处理相关的流程),以加快流程处理速度

使用 ROS Toolbox 从 MATLAB 和 Simulink 部署独立 ROS 节点并与支持 ROS 的机器人通信

使用 MATLAB Coder 和 GPU Coder 将在 MATLAB 和 Simulink 中开发的图像处理和导航算法部署到嵌入式微处理器

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2574

    文章

    54452

    浏览量

    786550
  • 图像传感器
    +关注

    关注

    68

    文章

    2055

    浏览量

    131945
  • SLAM
    +关注

    关注

    24

    文章

    456

    浏览量

    33193

原文标题:什么是 SLAM?你不可不知的三大要点>>

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是激光雷达 3D SLAM技术?

    在智能移动设备自主运行的赛道上,激光雷达3DSLAM技术正成为破局关键,但多数人对其认知仍停留在表层。要读懂这一核心技术,不妨先回溯“SLAM”的本质——SLAM
    的头像 发表于 12-02 19:23 154次阅读
    什么是激光雷达 3D <b class='flag-5'>SLAM</b>技术?

    政策多次提及,零碳园区为何如此重要?氢能源如何进入?

    11月10日,《国家发展改革委、国家能源局关于促进新能源消纳和调控的指导意见》发布。意见指出,推进零碳园区建设。 这是2025年国家层面第三次明文支持零碳园区建设,不难看出国家的支持力度,那么,零碳园区为何如此重要呢?从目前发展情况来看,氢能源又该如何与零碳园区融合发展
    的头像 发表于 11-12 15:16 221次阅读
    政策多次提及,零碳园区<b class='flag-5'>为何</b>如此<b class='flag-5'>重要</b>?氢能源如何进入?

    FPGA和GPU加速的视觉SLAM系统中特征检测器研究

    特征检测是SLAM系统中常见但耗时的模块,随着SLAM技术日益广泛应用于无人机等功耗受限平台,其效率优化尤为重要。本文首次针对视觉SLAM流程开展硬件加速特征检测器的对比研究,通过对比
    的头像 发表于 10-31 09:30 327次阅读
    FPGA和GPU加速的视觉<b class='flag-5'>SLAM</b>系统中特征检测器研究

    全新轻量级ViSTA-SLAM系统介绍

    无需相机内参、极致轻量的前端(前端模型大小仅为同类35%),实时单目视觉SLAM,ViSTA-SLAM。与现有方法相比,ViSTA-SLAM不仅更轻、更快,在相机跟踪和密集3D重建质量方面也均表现出色。
    的头像 发表于 09-22 15:53 664次阅读
    全新轻量级ViSTA-<b class='flag-5'>SLAM</b>系统介绍

    一种适用于动态环境的自适应先验场景-对象SLAM框架

    由于传统视觉SLAM在动态场景中容易会出现严重的定位漂移,本文提出了一种新颖的基于场景-对象的可靠性评估框架,该框架通过当前帧质量指标以及相对于可靠参考帧的场景变化,全面评估SLAM的稳定性。
    的头像 发表于 08-19 14:17 661次阅读
    一种适用于动态环境的自适应先验场景-对象<b class='flag-5'>SLAM</b>框架

    基于深度学习的增强版ORB-SLAM3详解

    ORB-SLAM3虽是当前最先进的SLAM之一,但由于使用传统的ORB(定向FAST和旋转BRIEF)特征,在尺度、旋转和光照发生显著变化时可能会表现出局限性。
    的头像 发表于 07-14 17:21 1320次阅读
    基于深度学习的增强版ORB-<b class='flag-5'>SLAM</b>3详解

    一种适用于动态环境的实时RGB-D SLAM系统

    近期用于视觉SLAM的3D高斯泼溅(3DGS)技术在跟踪和高保真建图方面取得了显著进展。然而,其顺序优化框架以及对动态物体的敏感性限制了其在现实场景中的实时性能和鲁棒性。为此,我们提出
    的头像 发表于 07-04 15:14 1007次阅读
    一种适用于动态环境的实时RGB-D <b class='flag-5'>SLAM</b>系统

    为何化工企业偏爱GUTOR UPS?

    为何化工企业偏爱GUTOR UPS?
    发表于 07-03 14:33

    三维高斯泼溅大规模视觉SLAM系统解析

    近期兴起的神经辐射场(NeRF)与三维高斯泼溅(3DGS)技术在视觉SLAM中展现出令人鼓舞的突破性成果。然而,当前主流方法多依赖RGBD传感器,并且仅适用于室内环境。在大规模室外场景中的重建鲁棒性
    的头像 发表于 05-27 14:13 1191次阅读
    三维高斯泼溅大规模视觉<b class='flag-5'>SLAM</b>系统解析

    【「# ROS 2智能机器人开发实践」阅读体验】视觉实现的基础算法的应用

    : 一、机器人视觉:从理论到实践 第7章详细介绍了ROS2在机器视觉领域的应用,涵盖了相机标定、OpenCV集成、视觉巡线、二维码识别以及深度学习目标检测等内容。通过学习,我认识到: 相机标定的重要
    发表于 05-03 19:41

    【「# ROS 2智能机器人开发实践」阅读体验】+ROS2应用案例

    的知识,还需要对ROS 2的节点通信和数据处理有一定的了解。通过实践这一部分内容,我掌握了如何在ROS 2中实现二维码识别,这对于提高机器人的智能性和交互性具有重要意义。 地图构建:SLAM技术
    发表于 04-27 11:42

    一种基于点、线和消失点特征的单目SLAM系统设计

    本文提出了一种稳健的单目视觉SLAM系统,该系统同时利用点、线和消失点特征来进行精确的相机位姿估计和地图构建,有效解决了传统基于点特征的SLAM的局限性。
    的头像 发表于 03-21 17:07 857次阅读
    一种基于点、线和消失点特征的单目<b class='flag-5'>SLAM</b>系统设计

    托盘“智”运,SLAM导航 地牛式AGV机器人,“7*24小时”工作!

    AGV地牛小巧灵活,载重大,采用激光SLAM导航,可智能控制路线。支持定制化云平台监控,多级安全措施保障安全。适用于多行业仓储物流,提高搬运效率,降低人力投入。
    的头像 发表于 02-11 17:56 715次阅读
    托盘“智”运,<b class='flag-5'>SLAM</b>导航  地牛式AGV机器人,“7*24小时”工作!

    一种基于MASt3R的实时稠密SLAM系统

    本文提出了一种即插即用的单目SLAM系统,能够在15FPS的帧率下生成全局一致的位姿和稠密几何图形。 01   本文核心内容 视觉SLAM乃是当今机器人技术与增强现实产品的基础性构建模块。通过
    的头像 发表于 12-27 15:25 2314次阅读

    THS1209 SYNC脚位的功能为何?

    第一次接触 并列ADC 功能的IC 想请问一下 TI人员 关于THS1209的写入和读取暂存器 和 读取DATA的脚位动作关係 1. 当我要写入暂存器时,其CS0、CS1、W/R和RD动作为何
    发表于 12-25 06:46