SLAM(同步定位和地图)是一种用于自动驾驶车辆的方法,它可以让你建立地图,并在地图上同时定位你的车辆。SLAM算法允许车辆绘制未知环境的地图。工程师利用地图信息进行路径规划和避障等任务。
斯隆一直是技术研究的主题多年。但随着计算机处理速度的巨大改进以及相机和激光测距仪等低成本传感器的可用性,现在用于越来越多的田地中的实际应用。
为了理解为什么SLAM如此重要,让我们看看它的一些好处和应用示例。
考虑家用机器人真空。没有SLAM,它将在房间内随机移动,可能无法清洁整个地板。此外,这种方法使用过大功率,因此电池将更快地耗尽。另一方面,具有SLAM的机器人可以使用诸如车轮转数和来自摄像机的数据的数量和其他成像传感器等信息来确定所需的运动量。这称为本地化。机器人还可以同时使用相机和其他传感器,以创建周围环境中的障碍物的地图,并避免两次清洁相同的区域。这称为映射。
SLAM在许多其他应用中都很有用,比如引导移动机器人编队在仓库中安排货架,在空的地方停放自动驾驶汽车,或者在未知环境中通过导航无人机投递包裹。MATLAB和Simu万博1manbetxlink提供SLAM算法、功能和分析工具开发各种应用程序。您可以同时实现本地化和映射以及传感器融合,对象跟踪等其他任务,路径规划和路径跟踪。
一般来说,有两种类型的技术组件用于实现SLAM。第一类是传感器信号处理,包括前端处理,这在很大程度上取决于所使用的传感器。第二种类型是姿态图优化,包括后端处理,这与传感器无关。
要了解有关前端处理组件的更多信息,让我们来看看Visual Slam和Lidar Slam - 两种不同的Slam方法。
顾名思义,视觉SLAM(或vSLAM)使用从相机和其他图像传感器获取的图像。视觉SLAM可以使用简单相机(广角、鱼眼和球形相机)、复眼相机(立体和多相机)和RGB-D相机(深度和ToF相机)。
视觉SLAM能够以低成本使用相对便宜的相机来实现。此外,由于摄像机提供一个大容量的信息,它们可以被用来检测一个界标(先前测得的位置)。标志检测也可以与基于图形的优化结合,实施SLAM实现灵活性。
单眼SLAM是当vSLAM使用单个相机作为唯一的传感器,这使得它具有挑战性的限定深度。这可以通过检测AR标记,棋盘,或用于定位或通过融合与另一传感器的照相机的信息图像中的其他已知的对象来解决如惯性测量单元(IMU),其能够测量物理量诸如速度和方向。有关vSLAM技术包括从运动(SFM),视觉里程计,和束调整结构。
Visual Slam算法可以大致分为两类稀疏方法,匹配图像的特征点,并使用PTAM和ORB-SLAM等算法。密集方法使用图像的整体亮度和使用算法,如DTAM,LSD-SLAM,DSO和SVO。
光探测和测距(激光雷达)是一种主要使用激光传感器(或距离传感器)的方法。
与相机、ToF和其他传感器相比,激光的精度要高得多,适用于自动驾驶汽车和无人机等高速行驶车辆。激光传感器的输出值一般为2D (x, y)或3D (x, y, z)点云数据。激光传感器点云提供高精度的距离测量,并非常有效地用于SLAM地图构建。一般情况下,通过匹配点云来估计运动。计算的运动(移动距离)用于定位车辆。激光雷达点云匹配采用迭代最近点(ICP)算法和正态分布变换(NDT)算法。二维或三维点云图可以表示为网格图或体素图。
另一方面,点云在密度方面没有用作图像,并且并不总是提供足够的匹配功能。例如,在障碍物很少的地方,难以对准点云,这可能导致车辆位置的丢失轨迹。此外,点云匹配通常需要高处理电量,因此有必要优化过程提高速度。由于这些挑战,自主车辆的本地化可能涉及融合其他测量结果,例如车轮型测量结果,如车轮内径,全局导航卫星系统(GNSS)和IMU数据。对于仓库机器人等应用,二维激光雷达大满贯常用,而利用三维激光雷达点云进行SLAM可用于无人机和自动停车。
尽管SLAM用于一些实际应用,但一些技术挑战阻碍了更广泛的应用。每个人都有帮助克服障碍的对策。
SLAM估计顺序运动,包括一些错误的余量。误差随着时间的推移累积,导致与实际值的大量偏差。它还可以使地图数据崩溃或扭曲,使后续搜索困难。让我们沿着方形通道举行一个例子。由于错误累积,机器人的开始和结束点不再匹配。这被称为循环关闭问题。姿势估计误差是不可避免的。检测循环闭合并确定如何纠正或取消累计错误是很重要的。
一对策要记住从以前访问过的地方作为一个具有里程碑意义的一些特征,并尽量减少定位误差。构建以帮助姿态图表纠正错误。通过求解误差最小化作为优化问题,可以产生更精确的地图数据。这种优化的被称为视觉SLAM束调整。
图像和点云映射不考虑机器人的运动特征。在某些情况下,这种方法可以产生不连续的位置估计。例如,计算结果显示,一个移动速度为1m /s的机器人突然向前跳了10米。采用恢复算法或多传感器融合运动模型,根据传感器数据进行计算,都可以避免这种定位故障。
有几种方法可以使用带有传感器融合的运动模型。常用的方法是使用卡尔曼滤波本地化。由于大多数差速驱动机器人和四轮车辆一般使用非线性运动模型,扩展卡尔曼滤波器和粒子过滤器(蒙特卡罗定位)是常用的方法。在某些情况下,也可以使用更灵活的贝叶斯滤波器,如无迹卡尔曼滤波器。一些常用的传感器是惯性测量设备,如IMU,姿态和航向参考系统或明显惯性导航系统(INS)、加速度计传感器、陀螺传感器和磁传感器)。附在车辆上的车轮编码器常用于里程计。
当定位失败,对策恢复是通过记住的标志性从以前访问过的地方的一个关键帧。当搜索一个地标,特征提取过程以高速扫描的方式应用。基于图像特征的一些方法包括袋子特征(BOF)和视觉单词袋(BOVW)。最近,深度学习用于比较来自特征的距离。
计算成本在车辆上的硬件实现SLAM时是一个问题。计算通常是在具有有限处理能力和紧凑低能量嵌入式微处理器执行。为了实现精确的定位,来执行它是必不可少的图像处理和在高频率点云匹配。此外,优化计算如环路闭合高运算处理。我们面临的挑战是如何在嵌入式微型计算机执行这样的计算昂贵的处理。
一对策是运行在并行不同的过程。过程,如特征提取,其预处理所述匹配处理的,比较适合并行化。使用多核CPU进行处理,单指令多数据(SIMD)计算,以及嵌入的GPU可以进一步改善在某些情况下的速度。此外,由于姿态图形优化可以在相对较长的周期内完成,降低其优先级和执行该过程定期也可以提高性能。
MATLAB®为实现SLAM应用为目标的系统和解决了许多对策与SLAM知技术挑战的能力。