激光雷达SLAM:全面掌握同步定位与地图构建指南

描述

 

SLAM 背后的核心思想是让机器人或自主系统能够探索未知环境并创建该环境的地图,同时确定其在生成的地图中的位置。这是通过融合来自各种传感器(例如激光雷达、摄像头和惯性测量单元 (IMU))的数据来估计机器人的轨迹和环境中地标的位置来实现的。

SLAM 算法通常由两个主要部分组成:预测步骤和校正步骤。预测步骤也称为运动或里程计更新,根据传感器提供的机器人先前的位置和运动信息来估计机器人的新位置。校正步骤也称为观察或传感器更新,它使用环境测量值(例如激光雷达传感器检测到的地标的距离)来细化预测位置。

通过迭代执行预测和校正步骤,SLAM 算法可以不断更新机器人的位置和环境地图。生成的地图可以以各种形式表示,例如占用网格、点云或地标之间的空间关系图。

地图生成和姿态估计

使用激光雷达数据生成地图并估计机器人在地图内的姿态的过程是激光雷达 SLAM 的核心。地图可以用多种形式表示,例如占用网格,其中网格中的每个单元格指示该单元格被对象占用的概率,或者作为点云,其中环境中对象的位置表示为3D 空间中的点集。

为了估计机器人的姿态,SLAM 算法使用激光雷达数据来识别和跟踪环境中的地标。通过将观察到的地标与地图中存储的地标进行比较,该算法可以确定机器人相对于地图的位置和方向。此过程通常涉及找到将观测到的激光雷达数据与存储的地图最佳对齐的转换,这可以使用迭代最近点 (ICP) 或其他优化算法等技术来实现。

随着机器人探索环境并收集新的激光雷达数据,地图会不断更新,机器人的姿势也会得到完善。这一迭代过程使激光雷达 SLAM 系统能够创建准确的地图,并在从自动驾驶车辆到移动机器人和室内测绘等各种应用中提供实时定位。

为特定 SLAM 应用选择合适的激光雷达传感器取决于所需范围、分辨率、视场和成本等因素。

机械扫描激光雷达:

机械扫描激光雷达传感器是 SLAM 应用中最常见的激光雷达传感器类型之一。它们由安装在旋转平台上的激光发射器和探测器组成,允许传感器通过在宽视场中引导激光脉冲来扫描环境。机械扫描激光雷达传感器可以提供范围长达 200 米的高分辨率点云,具体取决于具体的传感器型号和配置。

Velodyne HDL-64E 是自动驾驶车辆和机器人应用中常用的机械扫描激光雷达传感器的一个示例。其数据集具有64个激光扫描光束、360度水平视场和26.9度垂直视场,最大范围为120米,角分辨率为0.08度。高分辨率和宽视场使其适用于需要详细环境数据的各种SLAM应用。

固态激光雷达:

固态激光雷达传感器代表了新一代激光雷达技术,不依赖移动部件来扫描环境。相反,固态激光雷达传感器使用电子光束控制方法,例如光学相控阵或微机电系统 (MEMS) 镜,将激光脉冲引导到整个视场。与机械扫描激光雷达传感器相比,固态激光雷达传感器具有多种优势,包括更高的耐用性、更低的功耗以及更小的尺寸和重量。

Innoviz Technologies 的 InnovizOne 是专为汽车和机器人应用设计的固态激光雷达传感器的一个示例。它的范围可达 250 米,水平视野为 73 度,垂直视野为 20 度。该传感器提供角分辨率为0.1度的高分辨率点云,使其适合需要精确环境数据的SLAM应用。

闪光激光雷达:

闪光激光雷达传感器是另一种固态激光雷达技术,它用单个广角激光脉冲照亮整个场景,并用 2D 传感器阵列捕获反射光。闪光激光雷达传感器可以提供快速的单次环境测量,非常适合需要高速数据采集的应用,例如空中测绘或高速自动驾驶车辆中的障碍物检测。

Advanced Scientific Concepts 的 ASC TigerCub 是专为机器人和航空测绘应用而设计的闪存激光雷达传感器的一个示例。它的范围可达 150 米,水平视野为 90 度,垂直视野为 20 度。该传感器提供空间分辨率为 1 厘米的点云数据,可在 SLAM 系统中进行精确的绘图和定位。

为 SLAM 选择合适的激光雷达传感器

为 SLAM 应用选择合适的激光雷达传感器对于获得最佳性能和满足特定要求至关重要。

范围和分辨率

激光雷达传感器的范围和分辨率直接影响生成的地图的准确性和细节以及这些地图内的定位性能。更长的范围使 SLAM 系统能够检测和绘制更远距离的物体,这对于高速行驶的自动驾驶汽车等应用至关重要。高分辨率激光雷达传感器可以提供更详细的点云,从而能够识别环境中更小或更复杂的地标。

例如,Velodyne HDL-64E 的最大范围为 120 米,角分辨率为 0.08 度,非常适合需要大面积详细环境数据的应用。相比之下,具有较短距离和较低分辨率的低成本激光雷达传感器可能足以满足环境较小且不太复杂的室内机器人应用。

视野

激光雷达传感器的视场 (FoV) 决定了传感器在单次扫描中可以捕获的环境的空间范围。宽视场使 SLAM 系统能够绘制更大的环境区域,并检测相对于传感器不同角度的物体。这对于需要全面了解周围环境的应用尤其重要,例如自动驾驶车辆的防撞或绘制大型室内空间地图。

例如,InnovizOne 固态激光雷达传感器提供 73 度水平 FoV 和 20 度垂直 FoV,使其能够捕获广阔的环境视野。这种宽视场非常适合需要彻底了解周围环境的应用,例如城市驾驶或复杂的室内环境。

更新率和延迟

激光雷达传感器的更新速率和延迟会显着影响 SLAM 系统的性能,特别是在物体和地标可能快速变化的动态环境中。更高的更新率使 SLAM 系统能够更频繁地捕获环境快照,从而更准确地表示不断变化的环境。低延迟激光雷达传感器可以提供近乎实时的环境数据,这对于需要快速决策的应用至关重要,例如快速移动的自动驾驶车辆中的障碍物检测和避让。

ASC TigerCub Flash Lidar 传感器是高速 Lidar 传感器的一个示例,专为需要快速数据采集的应用而设计。TigerCub具有单次测量能力,可以瞬间捕获整个场景,提供适合高速自主导航的快速环境更新。

成本和复杂性

在为 SLAM 应用选择传感器时,激光雷达传感器的成本和复杂性也可能是关键因素。具有长距离、高分辨率和宽视场的高端激光雷达传感器往往更昂贵,并且可能需要更复杂的集成和校准程序。相比之下,成本较低的传感器可能具有较低的性能特征,但更易于访问且更容易集成到 SLAM 系统中。

为特定 SLAM 应用选择激光雷达传感器时,必须平衡性能要求与传感器的成本和复杂性。通过仔细考虑范围、分辨率、视场、更新速率和延迟等因素以及成本和复杂性,可以选择满足特定 SLAM 应用的独特需求的激光雷达传感器。

流行的激光雷达 SLAM 算法

激光雷达 SLAM 算法是生成精确地图并在这些地图中定位机器人或自动驾驶车辆的基石。高效算法的开发和实施带来了 SLAM 领域的重大进步。 

多种激光雷达 SLAM 算法因其性能、鲁棒性和可扩展性而受到欢迎。

通用映射

GMapping 是基于激光雷达的 SLAM 的 Rao-Blackwellized 粒子滤波器 (RBPF) 的著名实现。该算法利用网格地图表示并使用扫描匹配将激光雷达扫描与地图对齐。GMapping 能够在小型和大型环境中提供准确的地图和定位结果。

GMapping 采用自适应重采样策略,根据机器人姿态估计的不确定性调整滤波器中使用的粒子数量。这种策略使得算法能够在计算效率和鲁棒性之间保持平衡。GMapping 已广泛应用于机器人应用,包括自主导航、室内测绘和移动机器人定位。

赫克托·斯拉姆

Hector SLAM 是一种基于激光雷达的 SLAM 算法,不依赖里程计数据,因此适用于没有车轮编码器或其他运动传感器的平台。该算法使用网格地图表示和多分辨率方法来处理不同分辨率的激光雷达数据,使其能够有效地处理大规模环境。

Hector SLAM 的核心是快速扫描匹配技术,它对齐连续的激光雷达扫描来估计机器人的运动。该算法还结合了闭环检测和优化,以纠正机器人姿态估计随时间的累积漂移。Hector SLAM 已成功应用于各种平台,包括飞行器、地面机器人,甚至手持式激光雷达扫描仪。

制图师

Cartographer 是 Google 开发的一种多功能且可扩展的激光雷达 SLAM 算法。它支持 2D 和 3D 映射,旨在与各种类型的传感器配合使用,包括激光雷达、IMU 和里程计数据。Cartographer 采用局部和全局优化技术的组合来创建一致且准确的环境地图。

在局部优化阶段,Cartographer使用实时扫描匹配来估计机器人的位姿并更新当前正在构建的子图。在全局优化阶段,该算法采用位姿图优化技术来纠正漂移并保持全局一致的地图。Cartographer 已用于广泛的应用,从室内测绘和自主导航到大型室外测绘项目

LOAM(激光雷达里程计和测绘)

LOAM 是一种实时激光雷达 SLAM 算法,专为使用高分辨率激光雷达传感器进行 3D 测绘而设计。该算法将激光雷达数据分解为两个部分:用于估计机器人里程计的低分辨率部分和用于构建详细环境地图的高分辨率部分。

LOAM 利用多线程方法有效处理激光雷达数据。该算法首先从激光雷达扫描中提取特征,例如边缘和平面,然后在连续扫描之间匹配这些特征以估计机器人的运动。然后使用运动估计来构建环境的详细 3D 地图。LOAM 已成功应用于自动驾驶汽车、无人机和机器人平台,展示了其在各种环境中的稳健性和准确性。

选择正确的算法

如前所述,有多种可用的激光雷达 SLAM 算法,每种算法都有其优点和缺点。选择符合您的应用程序要求的算法至关重要。例如,如果实时性能至关重要,那么计算高效的算法(如 Hector SLAM 或 ICP)可能是合适的。相反,如果需要高精度和可扩展性,像 Cartographer 这样基于图的 SLAM 算法可能是更好的选择。

配置参数

选择最合适的激光雷达 SLAM 算法后,下一步就是配置其参数。这些参数控制算法的各个方面,例如传感器模型、运动模型和优化设置。需要考虑的一些关键参数包括:

传感器噪声模型:激光雷达传感器的噪声特性,例如距离和角度测量噪声,会显着影响 SLAM 算法的性能。为了获得可靠的测绘和定位结果,必须对这种噪声进行精确建模。

运动模型: 运动模型描述了机器人的运动学和动力学,SLAM 算法使用这些模型来预测机器人随时间变化的姿态。选择适合机器人特性的运动模型对于准确的位姿估计至关重要。

优化设置: 许多SLAM算法都涉及优化过程,例如图优化或粒子过滤。这些过程的设置(例如收敛标准、迭代次数和优化算法)可以显着影响算法的性能和准确性。

配置这些参数可能需要进行实验和微调,因为最佳值可能会根据具体应用和环境而有所不同。

集成解决方案

配置激光雷达 SLAM 算法后,最后一步是将其集成到您的应用程序中。这涉及到算法与激光雷达传感器、运动数据源和其他相关系统(例如定位、导航和控制)的接口。

集成SLAM算法时,要考虑数据同步、数据处理速率、硬件要求等因素。确保激光雷达传感器和其他来源的数据正确同步并以正确的速率处理对于获得可靠且准确的 SLAM 结果至关重要。此外,请确保硬件资源(例如处理能力和内存)足以使所选 SLAM 算法实现最佳性能。

激光雷达 SLAM 在现实生活中的流行应用:

自动驾驶汽车:

激光雷达SLAM(同步定位和建图)技术是自动驾驶汽车开发的重要组成部分。这些车辆中使用的激光雷达传感器可创建周围环境的 3D 地图,帮助汽车的车载计算机自动导航。激光雷达 SLAM 可用于自动驾驶汽车的多种应用,包括障碍物检测和规避、定位和地图绘制。传感器检测并分类汽车路径中的障碍物,例如其他车辆、行人和道路危险。该信息用于规划安全有效的路线,避免潜在的碰撞。激光雷达 SLAM 帮助汽车的车载计算机在环境中准确定位,这对于规划最佳驾驶路径和避免碰撞至关重要。最后,激光雷达 SLAM 创建的高度详细的周围环境 3D 地图可用于改善汽车对环境的感知并优化其驾驶行为。

清洁机器人:

激光雷达 SLAM 可用于清洁机器人的多种应用,包括障碍物检测和规避、定位和地图绘制。传感器检测机器人路径中的障碍物(例如家具和其他物体)并对其进行分类,并使用这些信息来规划有效的清洁路径,避免碰撞。激光雷达 SLAM 帮助机器人在环境中准确定位,这对于规划最佳清洁路径和避免碰撞至关重要。最后,激光雷达 SLAM 创建的高度详细的 3D 环境地图可用于优化机器人的清洁行为,确保其覆盖房间的所有区域并避免遗漏任何点。

SLAM 无人机:

配备激光雷达传感器的无人机可以创建周围环境的 3D 地图,可用于多种应用,包括测量、测绘和检查。激光雷达 SLAM 可用于自动化无人机中的多种应用,包括障碍物检测和规避、定位和地图绘制。传感器对无人机路径中的障碍物(例如建筑物、树木和其他物体)进行检测和分类,并利用这些信息来规划安全高效的飞行路径,避免碰撞。激光雷达 SLAM 帮助无人机在环境中准确定位,这对于规划最佳飞行路径和避免碰撞至关重要。最后,激光雷达 SLAM 创建的高度详细的 3D 环境地图可用于绘制地形、检查基础设施和监测野生动物种群等应用

激光雷达 SLAM 的挑战和局限性

传感器限制

激光雷达传感器虽然功能强大且准确,但其固有的局限性可能会影响 SLAM 算法的性能。其中一些限制包括:

范围限制:激光雷达传感器有一个最大范围,超出该范围就无法提供准确或可靠的测量。这种范围限制可能会影响 SLAM 算法在大型环境中或当远处的物体感兴趣时进行地图和定位的能力。

分辨率和精度: 激光雷达传感器的分辨率和精度可能因传感器类型、环境和操作条件而异。较低的分辨率和精度可能会导致地图和定位估计不太精确,特别是在具有小或复杂特征的复杂环境中。

对环境因素的敏感性: 激光雷达传感器对各种环境因素非常敏感,例如环境光、灰尘、雾和雨。这些因素会降低传感器数据的质量,进而影响 SLAM 算法的性能。

有限的视野: 大多数激光雷达传感器的视野有限,这可能导致环境测绘不完整或部分。当机器人需要全面了解周围环境以实现安全有效的导航时,这种限制尤其成问题。

计算复杂度

激光雷达 SLAM 算法可能需要大量计算,特别是在处理大规模环境和高分辨率传感器数据时。计算复杂性可能会给实时性能和硬件要求带来挑战。在某些情况下,可能需要针对特定应用或硬件平台优化 SLAM 算法才能实现所需的性能。

动态环境

激光雷达 SLAM 算法通常是针对静态环境设计的,其中假设环境不会随时间发生显着变化。然而,在现实场景中,具有移动物体(例如行人、车辆或其他机器人)的动态环境是常见的。在激光雷达 SLAM 中处理动态环境可能具有挑战性,因为算法必须能够区分静态和动态对象并相应地更新地图。

循环闭合和全局一致性

SLAM 的主要挑战之一是实现全局一致性,特别是在处理大规模环境或长期任务时。由于传感器数据的高维性和感知混叠的可能性(即不同的地方看起来相似),算法识别机器人已返回之前访问过的位置的闭环过程在激光雷达 SLAM 中可能具有挑战性。

稳健性和可靠性

确保激光雷达 SLAM 的稳健性和可靠性至关重要,特别是在自动驾驶车辆或机器人助手等安全关键型应用中。开发能够处理传感器噪声、数据异常值和其他不确定性的算法是 SLAM 领域持续面临的挑战。此外,在面对硬件或软件故障时实现容错和故障安全操作对于实际应用至关重要。

总之,激光雷达 SLAM 面临着一些挑战和限制,包括传感器限制、计算复杂性、动态环境、闭环和鲁棒性。应对这些挑战并开发可靠、高效的 SLAM 解决方案是机器人和自主系统领域持续研究和开发的领域。

常见问题 (FAQ)

1:激光雷达SLAM主要应用有哪些?

激光雷达 SLAM 具有多种应用,包括自动驾驶汽车、无人机、移动机器人、室内导航、测量、测绘,甚至虚拟现实。这些应用涵盖汽车、农业、物流和建筑等各个行业。

2:激光雷达SLAM可以在黑暗或弱光条件下工作吗?

是的,激光雷达传感器是主动传感器,它们以激光脉冲的形式发射自己的光,这使得它们能够在黑暗或弱光条件下有效工作。这是激光雷达 SLAM 相对于其他依赖无源传感器的技术(例如基于摄像头的 SLAM)的优势之一。

3:激光雷达SLAM如何处理环境中的移动物体?

对于激光雷达 SLAM 算法来说,处理具有移动物体的动态环境可能具有挑战性。高级算法通常使用对象跟踪、数据关联或分段等技术来区分静态和动态对象并相应地更新地图。

4:2D和3D激光雷达SLAM有什么区别?

2D 和 3D 激光雷达 SLAM 之间的主要区别在于激光雷达传感器收集的数据的维度。在 2D 激光雷达 SLAM 中,传感器在单个平面中提供数据,而在 3D 激光雷达 SLAM 中,传感器捕获三维空间中的数据。因此,3D 激光雷达 SLAM 可以提供更详细、更准确的环境地图,但代价是计算复杂性增加。

5:激光雷达SLAM适合户外应用吗?

是的,激光雷达SLAM适合户外应用。然而,激光雷达传感器的性能可能会受到某些环境因素的影响,例如雨、雾或灰尘。选择专为户外应用设计的激光雷达传感器并确保 SLAM 算法能够应对这些环境挑战至关重要。

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分