SLAM导航技术介绍

SLAM导航技术介绍

技术开发 编程 技术框架 技术发展

 

SLAM导航技术介绍

仅在 100 年,全球就出货了 000,2021 辆自动导引车 (AGV) 和自主移动机器人 (AMR)。在收入方面,AMR 产生了 1 亿美元,AGV 增长到 6 亿美元(1)。这些市场正在迅速增长,预计到 3 年,AGV 和 AMR 的 t 将增长到 1 亿美元(18)。推动这一增长的是机器人软件领域几十年来一直在进步,但对许多人来说仍然是陌生的——同步定位和映射(SLAM)。

有人可能会认为SLAM仅适用于先进的工业自主机器人,但它比大多数人想象的更加普遍。例如,许多家庭现在使用具有内置激光雷达传感器并使用SLAM清洁地板的自动真空吸尘器。还有最后一英里送货机器人和仓库机器人,它们利用SLAM快速适应不断变化的操作环境。

SLAM在最简单的解释中是一种在跟踪地图创建者位置的同时创建环境地图的方法。这种映射和定位方法是使机器人能够自主了解其在空间中的当前位置并导航到新位置的关键部分。

与人工智能等许多技术一样,SLAM 受益于激光雷达和边缘计算等新进步,以不断发展和突破界限。SLAM 有许多变体,每种变体都有优点和缺点,具体取决于用例。在这篇博文中,我们将以更简单的术语介绍 SLAM,以帮助您了解该技术并在采用自主技术时做出更好的决策。

什么是 SLAM

想象一下自己在异国他乡醒来。你会怎么做?您可能会开始环顾四周以找到您所在的位置。在此过程中,您将标记一些对象以帮助您记住要去的地方。你会做一个心理地图,画出你周围的世界是什么样子的,以及你在那个世界里的位置。这就是同步定位和映射 (SLAM) 的作用。SLAM是机器人技术中必不可少的一部分,它可以帮助机器人在地图上估计它们的姿势 - 位置和方向,同时创建环境地图以执行自主活动。让我们分解一下,看看本地化和映射的含义。

地方化

当自主机器人打开时,它做的第一件事就是识别它在哪里。在典型的定位场景中,机器人配备了传感器来扫描其周围环境并监控其运动。使用来自传感器的输入,机器人能够识别它在给定地图上的位置。在某些情况下,像GPS这样的跟踪设备被用来协助本地化过程(例如,这就是谷歌在谷歌地图上给你蓝点的方式)。

映射

虽然听起来很简单,但创建地图并不是一件容易的事,尤其是对于机器人来说。首先,使用一种视觉探测器(如相机或激光雷达传感器)来记录周围环境。随着机器人的移动,它会捕获更多的视觉信息,并尝试建立联系并提取特征(如角落)以标记一些可识别的点。然而,一些特征可能看起来非常相似,机器人很难区分哪个是哪个。这时,本地化对于通过 SLAM 创建更准确的地图变得非常有用。

为什么使用 SLAM

让我们通过使用真空吸尘器示例更深入地了解为什么 SLAM 对自主机器人有用。想象一个典型的客厅,里面有大型家具,比如沙发,位置非常固定。较小的物品,例如可以经常在房间内移动的咖啡桌和永远不会移动的房间墙壁(除非您正在进行大型改造!为了清洁房间,自动吸尘器需要一张地图来导航空间。

地图可以通过不同的方式送入真空。一种方法是手动创建地图并将其上传到机器,这需要您在移动一件家具时重新绘制地图。另一种方法是每次打开真空吸尘器时重新绘制全新的地图,这对于远程家用设备来说将是非常资源繁重且效率低下的。这是SLAM大放异彩的时候。

通过使用SLAM,真空吸尘器能够仅更新与上次扫描相比已更改的位置。因此,它可以更有效地执行扫地的主要工作。在这个例子中,机器人可以依靠墙壁来获得一致的参考,但是当一件家具位于意外的位置时,机器人将更新地图。类似的好处也适用于其他自主机器人,如最后一英里的送货机器人。社区的一般地图可以提供给送货机器人,但机器人可以响应他们使用 SLAM 看到的任何新物体,如停放的汽车或行人。

SLAM 也可以在无法获得地图时使用——例如,矿井、火山隧道或火星!自主机器人能够检查这些未知条件,创建准确的地图,并与控制器共享结果以进行进一步的研究或探索。

如何实现 SLAM

如前所述,本地化和映射紧密相连,一起使用时效果更好。事实上,合作是可能的,因为它们都利用了从周围环境中提取的特征。但什么是功能?在上一节中,我们使用拐角或平面作为特征的示例。在高级别上,它们是要素,因为它们是可以在地图上指出的不同视觉信息。但是,提取特征在基于相机的方法和基于激光雷达的方法之间是完全不同的。

基于摄像头的 SLAM

当相机用于捕捉场景时,它能够记录具有丰富细节的高分辨率图像。计算机视觉算法,如 SIFT(尺度不变特征变换)或 ORB(定向快速和旋转简报),可用于检测特征。例如,如果机器人使用相机绘制仓库地图,则记录的图片可能具有托盘、货架和门。通过检查相邻像素的颜色差异,机器人可以识别场景中存在不同的物体。

基于激光雷达的SLAM

(基于激光雷达的SLAM利用强度来映射要素的示例。

资料来源:Shan等人使用成像激光雷达进行稳健的位置识别。)

与基于相机的 SLAM 不同,激光雷达传感器本机收集有关场景中捕获的对象的深度和几何形状的信息。如果上面的同一个仓库机器人使用激光雷达传感器而不是相机,它将使用返回给传感器的距离和形状来识别物体。事实上,基于激光雷达的SLAM使用通过设备记录的边和平面作为特征,而不是相邻像素来连接视觉信息并创建地图。与相机不同,这种方法在创建 3D 地图的数字孪生副本方面要好得多,这更逼真。

如何选择合适的 SLAM

(不同SLAM算法的输出)

有各种 SLAM 方法的功能完全不同。此外,每种方法都有优点和缺点,具体取决于用例。让我们看一些有助于决定 SLAM 算法的区别。

一类是 SLAM 算法的输出。例如,如果您在公园,您是否想知道树木和长椅的相对位置(拓扑方法)或它们之间的确切距离(公制方法)?此外,您是否计划重新创建公园的数字副本(体积法)或仅提供足够的信息来区分对象(基于特征的方法)?可以想象,某些输出需要大量资源甚至不同类型的传感器才能完成工作。

另一个因素是环境的性质。运行 SLAM 算法的位置是不会随时间变化的静态位置还是需要更新的动态位置?想象一下,一个机器人在仓库的空荡荡的过道上漫步,但在回来的路上发现了成堆的托盘。它是否能够关闭循环并建立连接,表明它在同一个位置,但只是添加了不同的对象?

最后但并非最不重要的是多机器人实例。当有多个机器人在仓库内自主导航时,它可能面临不同的挑战。一个挑战是能够在没有其他机器人的情况下创建干净的地图。您如何确保每个机器人都知道其他机器人的位置,以便能够在映射中排除它们?如果机器人可以相互通信,那么每个机器人是否可以在本地创建较小的地图并与中央系统共享以创建整个地图?

如您所见,没有单一的 SLAM 算法可以满足所有用例。然而,SLAM 仍在随着技术的进步而发展。为了取得成功,需要真正了解用例,并灵活地测试不同的算法以找到最佳解决方案。

SLAM 之后会发生什么

一开始,我们用在异国他乡醒来的例子来解释SLAM是绘制周围环境地图并在地图上定位您所在位置的行为。但是,这不包括地图上的“内容”。当我们看到一棵树时,我们知道一棵树,但机器人不知道。我们需要让他们知道,在他们面前的中心周围散布着点的高大物体实际上是一棵树。在SLAM输出中添加语义可以提高机器人可以完成的自主级别。例如,如果机器人能够识别人类并在他们附近减速以防止突然移动造成的事故,那么它可以更安全地在仓库周围机动。

随着机器学习的发展,向SLAM添加语义变得越来越容易,进一步扩展了AGV和AMR的用例。有可以识别托盘及其孔的自动叉车,以便能够运输托盘,还有可以移动到特定位置挖掘土壤的自动挖掘机。

结论

我们讨论了什么是同步定位和映射,实现SLAM的不同算法,以及增加增强自治水平的语义。正如您所见证的,SLAM 不是一个容易理解的概念,即使对于经验丰富的从业者来说也不容易应用于用例。在实施之前,有许多注意事项需要仔细检查。

技术开发 编程 技术框架 技术发展