Advertisement

初识SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)

阅读量:

1. SLAM简介

SLAM(Simultaneous Localization and Mapping, 实时定位与动态环境构建)是一种专门应用于移动机器人或无人系统的技术。其主要目的是解决机器人在未知或不完全已知环境中进行实时定位和动态环境构建的问题。具体而言,在探索新环境的过程中,SLAM技术实现了对实时定位和动态环境构建的高效处理。该系统通过使用视觉信息、激光雷达数据以及深度相机来实现这一目标。

定位(Localization):确定自身的位置与姿态(亦即方向);地图构建(Mapping):构建周围的环境地图,并可呈现二维或三维的细节

1.1 早期背景

八十年代初期,在实验室中逐步发展成熟的机器人技术引起了广泛关注与研究热潮。研究人员致力于使机器人能够在未知环境中自主导航,并取得了一定成果。传统的解决方案通常依赖于先通过人工途径或其他外部系统建立地图后再由机器人进行定位操作。然而,在复杂多变的环境以及未知环境等情况下这一传统方法的效果较为有限,并难以满足实际应用中的多样化需求

1.2 SLAM概念的提出

该概念于1990年代中期首次被提出。在《A Method for Concurrent Map Building and Localisation》一文中,在1986年时,J.A. Leonard 和 H.F. Durrant-Whyte提出了关于机器人同时实现定位与地图构建思路的方法, 该研究被视为SLAM领域的起点

SLAM技术的核心在于解决"鸡和蛋"问题:为了实现精准的定位目标,机器人必须了解其所在环境的地图信息;而与此同时,为了构建精确且完整的地图信息,机器人又必须掌握自身位置的数据支持。在这一背景下,SLAM系统旨在同时解决这两个关键问题.为此,它依赖于借助复杂的数学建模与统计分析手段,通过各类传感器(包括激光雷达、数字摄像头以及惯性测量单元等)实时采集环境数据,从而逐步构建出完整的地图信息并完成定位过程。

定位、定向、测速与授时问题始终困扰着人类对其长久以来的努力与追求。从古代文明的萌芽时期开始,在没有现代科技的情况下,人们只能依靠夜观天象借助司南来进行基本的方位辨别。而元代数学家为了解决定位难题巧妙地设计出了牵星术这一测量工具,在这种传统下通过牵星板观察星辰数据从而实现纬度估计

1964年美国正式投入使用的GPS系统,在一夜之间革新了全球导航技术的游戏规则体系。
军用P码可实现精确到1至2米级的定位精度;而开放供公众使用的C/A码则具备5至10米级的定位精度。

后来大家一方面致力于突破P码限制以实现卫星通信的技术瓶颈;另一方面则通过开发出许多具有创新性的解决方案来提升GPS系统的定位与定姿性能。借助实时相位差分技术的应用能够使系统达到厘米级的定位精度从而基本实现了GPS在复杂环境下的定位与定姿需求

但是,在室内环境中这个问题更加棘手。为了完成室内的定位与定姿任务,各种技术应运而生并不断涌现。其中, SLAM 技术脱颖而出成为解决此类问题的核心方案。

1.3 早期的突破与发展

在1990年代至2000年代之间期间,在这个时间段内期间,在计算机硬件性能方面取得了进步后期间 SLAM 技术取得了显著的进步期间

EKF-SLAM(扩展卡尔曼滤波SLAM):

EKF-SLAM 是一种典型的早期 SLAM 算法,在扩展卡尔曼滤波的基础上实现了有效的定位与建图功能。该算法通过递推机制持续更新机器人在环境中的空间定位数据以及环境特征的地图估计信息。FastSLAM:FastSLAM 是一种高效的多机器人定位与建图算法

2000年代初时, FastSLAM算法的提出被视为一个里程碑事件,标志着SLAM技术的重要进展.该算法采用了一种基于粒子滤波的方法,使得其不仅能够应用于更大的工作环境,还显著提升了处理不确定性问题的能力.

随着21世纪初期的到来,在线 SLAM 方法逐渐兴起。该技术通过将 SLAM 问题转化为图形优化任务,在应对大规模环境时展现出较高的效率,并成功地实现了对积累误差的有效抑制。

2.SLAM 的工作原理

SLAM的主要功能在于利用激光雷达、摄像头和惯性测量单元(IMU)等多种传感器获取环境数据,并基于此数据实现机器人位置估计与环境地图构建的过程。这一技术揭示了机器人定位与环境地图之间相互依存的关系:准确的定位依赖于精确的地图构建,而准确的地图又必须建立在可靠的位置估计基础之上。

当前广泛应用于SLAM领域的传感器主要可分为两种类型:激光雷达和摄像头。

在这里插入图片描述

SLAM的主要组件

SLAM系统通常由以下几个主要组件组成:

该段列举了多种常见的雷达设备以及各类深度成像设备。其中激光雷达则分为单线或多线类型,在角分辨率与精度方面各有特色。SICK、velodyne、Hokuyo等均为知名激光雷达制造商;此外,在国内市场较为知名的还有北醒光学与Slamtech公司。这些设备可作为SLAM系统的数据输入源之一。

这个小视频里展示的就是一种简单的2D SLAM。

在这里插入图片描述

这个短视频是由宾大教授Kumar研发的一个非常著名的演示视频。它主要应用于无人机平台上的二维激光雷达技术来实现SLAM技术。

在这里插入图片描述

而VSLAM则主要通过摄像头来实现其功能,在实际应用中涉及的摄像头类型丰富多样,在现有的研究中通常将其划分为单眼相机(Single Eye Camera)、双眼相机(Double Eye Camera)、基于结构光的单眼相机(Structured Light Single Eye Camera)、基于结构光的双眼相机(Structured Light Double Eye Camera)以及Time of Flight(ToF)五种类型。它们的核心在于获取并处理RGB图像与深度数据(Depth Information)。对于较为简单的单眼相机与双眼相机系统(如常见的Zed相机与Leap Motion手套式追踪设备等简单类型的使用场景不在此处展开介绍),本节重点将阐述基于结构光技术和ToF技术的工作原理与应用

最近流行的结构光和TOF

结构光原理的深度摄像机主要采用激光光源模块、光学衍射元件(DOE)和热成像摄像头作为其三大核心组件。

在这里插入图片描述

这个图(下图)摘自primesense的专利。

在这里插入图片描述

可以看到primesense的doe由两个部分构成,在其设计中主要包含扩散片与衍射片两种核心组件。随后将光线分散成一个区域内的随机斑点后,并将其均匀地投射到被测物表面。基于红外摄像头捕获到这些红外散斑分布情况后,则该芯片能够迅速解算出每个点的空间深度信息

这儿还有两款结构光原理的摄像头。

在这里插入图片描述

第一页由两幅极其有序的斑点构成,在随后的过程中又被红外相机捕捉到其位置信息,并呈现出较高的分辨率。然而,在此过程中所涉及的成本也不容忽视

还有一种独特的创新方案(最后一幅图),它利用MEMS技术构建了一个微型光学系统,在设计上模仿DLP投影仪的功能特点。该系统通过调节激光器频率对光束进行精确控制,并经由微型镜片反射光线,并迅速调整其姿态以实施行踪扫描以实现结构光的投射。(此方案由ST公司提供; ST以其开发一些令人惊叹的技术而闻名)

ToF(time of flight)也是一种很有前景的深度获取方法。

传感器发射经过调制的近红外光束照射到物体后会反射回来。传感器通过计算光线发射与反射的时间差或相位差来推算出被拍摄景物的距离,并生成深度信息。这种技术原理与雷达探测类似,在于利用信号传播的时间差异进行测量。例如蝙蝠依靠超声波感知周围环境,在此软kinetic的DS325芯片上同样采用了基于Time of Flight(ToF)的技术方案(由TI设计团队开发)。不过该芯片的独特之处在于其接收器采用了特殊的微观结构设计——配备两个或更多个快门以测量皮秒级的时间差异。然而由于每个像素的实际尺寸通常控制在100微米级别导致目前仍无法达到理想的分辨率水平。尽管如此未来有望在技术上取得更大突破但我觉得这并非彻底颠覆性的创新。

当深度图生成后呢?随后, SLAM算法开始执行.基于不同的传感器配置, SLIM算法的表现形式会有细微差别.大致可分为激光型SLAM(二维与三维区分)以及视觉型SLAM(稀疏、半稠密与稠密类型)两类,其核心思路基本上一致.

在这里插入图片描述

这两种的对比

在SLAM技术领域中,在主要应用层面主要采用两类核心感知设备:激光雷达系统(LIDAR)作为主被动感知装置,并辅以成像传感器(即摄像头)。这两类设备各有其独特的优势与不足,并根据特定场景的需求进行优化配置。以下将从多个维度对这两类设备进行详细对比分析:

1. 数据精度与稳定性
雷达(LIDAR):

优势:LIDAR能够实现厘米级的距离测量,在不同光照条件下(如白天、夜晚或阴天等),其系统均能稳定运行。它能够生成精确的点云数据,在构建高质量的地图时展现出显著效果。与传统方法相比,在复杂环境中也能保持高效性

视觉(摄像头):

优势:摄像头不仅能够捕获深度信息(distance information),同时也能获取丰富的色彩和纹理细节(color and texture details),这对于执行物体识别、语义分割等高级视觉任务具有重要意义。基于单目或双目相机的视觉SLAM(Visual SLAM)技术依赖于图像中的特征点来完成定位与环境地图的构建(map construction)。劣势:受光照条件的影响较为明显(包括光线不足或强烈反射的情况),这可能导致视觉SLAM算法性能下降。此外,在单目相机系统中无法直接测距(distance measurement),必须通过多帧图像间的几何关系推断出深度信息(depth information),这可能带来一定的精度限制。

2. 环境适应性
雷达(LIDAR):

优势方面,在复杂场景中(例如森林和城市区域)表现出色,并能精准描绘出周围的环境模型。该技术即使遇到表面光滑或无细节结构的情况(如白色墙面或隧道),也能稳定运行;这是因为其核心原理基于测距技术而非视觉数据处理。劣势方面,在感知能力上存在明显局限性:一个显著缺点是无法感知物体的颜色和纹理特征;这限制了其在需要高级环境理解时(例如构建语义地图)的应用。

视觉(摄像头):

优势:视觉系统在环境感知方面更加全面,在物体识别、色彩感知以及字符辨认等方面均能获取大量信息,在充足的光照条件下可实现较高的准确性和效率的语义SLAM技术发展迅速;该技术通过精准捕捉环境细节从而显著提升环境理解能力,在良好的光照环境下能够展现出最佳的性能表现

3. 计算复杂性与资源需求
雷达(LIDAR):

优势

视觉(摄像头):

优势:视觉传感器的计算复杂性主要集中在图像处理与特征提取环节。尽管算法较为复杂, 但得益于现代计算机视觉技术的进步, 例如深度学习等技术的应用, 视觉SLAM在运行速度与精度方面均有显著提升。视觉SLAM系统通常体积较小且功耗较低, 更适合部署于轻量级移动设备。劣势:图像处理环节对计算资源要求较高;特别是在实时应用场景中, 多帧图像匹配与深度估计等过程对计算硬件的要求较高;同时这些操作对于硬件性能有一定依赖度。

4. 成本与应用场景
雷达(LIDAR):

优势

在这里插入图片描述
视觉(摄像头):

优势:摄像头价格亲民且安装简便,在智能手机、无人机以及家用机器人等多种消费级产品中得到了广泛应用。劣势:尽管摄像头具有经济性和安装便利性特点但视觉SLAM系统对环境条件与光照变化极为敏感从而限制了其在某些特定场景中的应用范围。综合比较而言LIDAR SLAM更适合需要高精度测绘稳定性强且对光照变化不敏感的应用领域例如无人驾驶技术与户外测绘项目而视觉SLAM则更适合获取丰富环境信息成本敏感以及设备轻量化需求较高的场景例如室内导航系统与消费级电子产品等两者结合使用可有效弥补各自的技术局限例如将LIDAR与摄像头数据融合形成V-LSLAM系统能够兼顾高精度定位与环境感知能力从而实现性能与可靠性兼备的优势

数据预处理与分析:通过传感器采集的数据中识别环境特性如边界线、交点和平面区域等。这些特性用于使机器人感知并解析其所在的环境空间。

数据关联(Data Association):通过采集当前时间步环境特征并将其连接至之前时间步的数据集以实现数据关联的过程,有助于机器人完成自身位置在地图中的定位

状态估计与更新:采用算法(如卡尔曼滤波、粒子滤波、图优化等)来估算并更新机器人位置信息及其环境地图构建。

闭环检测(Loop Closure Detection):当机器人回到之前访问过的区域时,在此发现一特定闭环,并利用该信息来修正积累的定位偏差以提高地图精度。

SLAM 的应用

SLAM广泛应用于各种领域,如:

路径规划与实时导航系统 :由计算机视觉与移动平台驱动的自动执行者(如吸尘器、配送车等)通过视觉同步算法(SLAM)实现精确位置识别与动态路径规划。

在这里插入图片描述
在这里插入图片描述

无 driver 自动驾驶汽车实时监控中依靠 SLAM 技术进行定位和环境感知尤其在 GPS 信号弱或缺失的环境中

飞行器:飞行器通过SLAM技术对未知区域进行调查(涵盖室内环境及林间地形),实现精准的环境定位与路径规划。

增强现实(AR)和虚拟现实(VR):SLAM技术主要用于定位设备的位置信息,并被用来生成对应场景的三维模型图。这使得虚拟物体能够自然地融入真实的环境中

SLAM 技术难点

动态的环境:在现实中环境中往往呈现动态特性其中可能包括移动的人车以及其他物体这些动态元素会对SLAM系统造成影响进而影响定位与地图构建过程为了有效地区分动态物体与静态背景并对其加以处理这确实是SLAM技术所面临的一大技术难题

传感器噪声:所有传感器都会产生一定的噪声(即信号中混杂着无用信息),这会导致测量数据不可避免地带有不确定性。激光雷达、相机、IMU等常见类型的传感器在工作时都会受到外界环境、设备状态等多种因素的影响而产生这种偏差(即系统误差)。如何在存在这种偏差的情况下实现高精度的定位和地图构建是一个重大难题?

特征匹配:SLAM系统基于传感器数据识别环境特征以实现定位与地图构建。在复杂环境下寻找对应特征点并准确关联新数据于已知地图具有挑战性。若发生错误可能会导致累积误差进而使整个SLAM系统失效。

闭合检测(Loop Closure Detection):当机器人返回之前访问过的区域时,在线性代数中定义为一个闭合路径,并通过该信息来纠正累积的位置偏差。然而,在复杂的技术难题中实现这一目标尤其具有挑战性:尤其是在大规模空间或特征不明显的场景中。

实时性处理:SLAM技术包含一系列复杂的运算过程,在机器人视觉系统中主要包含以下几个环节:首先是传感器数据的接收与分析;其次是关键特征的识别;接着是机器人位置的估算以及随后的地图模型动态更新。为了确保机器人的安全运行,在规定时间内完成这些运算并实现定位与避障任务至关重要。当环境复杂度上升时,在有限的时间内高效完成所有运算并保证系统稳定性将面临更大挑战

大范围地理信息系统的构建与维护:面对地形环境复杂多变的挑战,在现代地理信息系统建设中经常会遇到大量地理空间信息的数据处理问题。为了实现对这些大量地理空间信息的有效存储与管理,并确保能够快速检索所需数据的同时维持系统高效的数据更新能力,则被视为SLAM技术中的另一个重要挑战问题

复杂多变的环境需求: SLAM系统必须具备适应不同环境的能力 ,包括室内与室外环境 、光照强度波动 以及气候状况等 。例如 , 在低光照环境下 , 视觉 SLAM 的效果通常会不如在充足光照下的效果显著 。而激光 SLAM 在雨天或有雾的环境中可能会受到影响

**场景变化:**物体可能随着时间发生变动或数量变化(如移动、增减等),从而迫使SLAM系统能够不断更新地图并处理这些变化以避免定位错误与地图失真的情况发生

多源数据整合:在现代SLAM系统中,主要依赖于多种传感器(例如激光雷达、摄像头和惯性测量单元等)协同工作以提高系统的鲁棒性和测量精度。然而,在各类传感器输出的数据类型、采集频率以及噪声特性各有差异的情况下,实现对异构数据的有效融合是一项极具挑战性的技术难题。

本研究涉及的问题之一是同步问题。本研究涉及的问题之一是同步问题也是一个挑战。各个传感器可能具有不同的采样频率,并且在采集过程中会产生时差。通过有效的处理手段实现融合数据的高度准确性和实时性,在SLAM系统中这是一个较为困难的问题

误差累积 :随着工作流程的推进,在SLAM系统中定位与地图构建之间的误差会逐步积累。通过采用闭环检测技术能够有效消除这种误差;然而,在实际应用中若闭环检测未能成功或存在延迟,则可能导致误差难以得到有效控制。

全局一致性维护 :闭环检测获得成功反馈时,在线系统需对整个地图及路径实施全局一致性校正工作。该过程涉及复杂的图优化问题,在实际应用中尤其面临着大规模环境下如何实现有效的全局地图优化这一挑战

环境因素 :SLAM系统必须能够在多种环境下(如光照变化、天气状况、物体移动等)正常运行。确保系统在不同场景和复杂条件下的鲁棒性与可靠性是SLAM技术面临的重要挑战。

故障处理

SLAM技术的主要挑战体现在如何应对不确定性、满足实时性要求、适应复杂环境以及确保系统的可靠性和容错能力等关键方面。要解决这些问题,则需要从多个维度进行技术创新与算法优化。因此,在机器人技术、无人驾驶系统以及AR/VR等领域中,SLAM仍是一个重要的研究热点。

全部评论 (0)

还没有任何评论哟~