一群彼此靠近的小型机器人(如 Kilobots)如何在不撞到对方的情况下实现协作?例如,一项研究显示了在没有类似 GPS 的系统的情况下通过测量与邻居的距离来移动的一千个机器人群(参见文章和视频)中的可编程自组装。这是实现的,因为机器人非常慢。
有没有什么方法可以让类似的机器人通过使用更复杂的协调技术来实现更高效、更快速的组装?不是顺时针走(我想这是最简单的方法),而是我的意思是使用一些更复杂的方法。因为等待半天(~11 小时)使用一千个机器人群创建一个简单的星形太长了!
一群彼此靠近的小型机器人(如 Kilobots)如何在不撞到对方的情况下实现协作?例如,一项研究显示了在没有类似 GPS 的系统的情况下通过测量与邻居的距离来移动的一千个机器人群(参见文章和视频)中的可编程自组装。这是实现的,因为机器人非常慢。
有没有什么方法可以让类似的机器人通过使用更复杂的协调技术来实现更高效、更快速的组装?不是顺时针走(我想这是最简单的方法),而是我的意思是使用一些更复杂的方法。因为等待半天(~11 小时)使用一千个机器人群创建一个简单的星形太长了!
已经有很多方法可以实现这种分布式协调。我在这里介绍其中之一,因为它的通用性和简单性(这也很容易记住)。但首先,这些方法背后的总体思想非常有趣,围绕着一种称为stigmergy的机制。
Stigmergy是一种由环境介导的行为协调机制。它最初是针对白蚁进行描述的,最著名的例子与蚂蚁有关。蚂蚁外出觅食时会形成足迹,但它们通常不直接互动。事实证明,当他们离开山丘时,他们会在地上留下信息素。信息素可以让他们找到回家的路,也可以引导他们去哪里:如果他们从同龄人那里找到信息素踪迹,他们就会跟随它,自己的信息素加起来,加强了踪迹的信号。在舞台上,越来越多的蚂蚁“一起移动”,形成一条小路。已经实现了协调。
在源自 stigmergy 的各种实现中,有“基于场的运动协调模型”(FBMCM)。这个想法是创建一个(可能是虚拟的)环境来维护世界的一些状态。每个对象在环境中记录一个信号,该信号在对象位置(其边缘)处最大,然后随着距离而减小。移动的物体(例如机器人)每个都会发出一个由环境中继的信号。然后他们可以感知对方的场并采取相应的行动:例如,当信号强时,离开;当虚弱时,靠近是安全的,等等。在软件模拟器(游戏中的排队,演习模拟)和机器人中已经展示了几个复杂的群体动作。这种方法的好处是计算即使是复杂的行为也很便宜。例如,避免冲突需要基于汇总附近字段值的简单“逻辑”代码。FBMCM 非常漂亮,用于视频游戏,但很难在物理环境中实现(对我来说约会知识),因为建立可靠的环境可能具有挑战性。例如,参见Mamei 和 Zambonelli的工作,以及Weyns 等人的机器人首批工业实现之一。. 请注意,机器人的实施需要对环境基础设施进行大量工作,由于它是受控仓库,因此变得更加可行。
类似 stigmergy 的模型的优势在于它们通常简单且有弹性:您可以在不影响觅食路径的情况下失去一只蚂蚁。不利的一面是,这些模型通常很慢,因为协调需要时间才能从间接交互中出现。这可以通过添加额外的直接交互来改进(例如,用 GPS 和杂货店地图授权蚂蚁,或者只是磁北感应)。
在实践中,如果环境实现不可靠,这些模型可能会崩溃。对于机器人或自动驾驶汽车来说,如果他们希望在路上安装一些转发器,这可能会很困难,因为这些设备的设置和维护成本很高,而且它们可能会被损坏或被盗。最好给机器人配备雷达、声纳或其他接近传感器来实现污名模型。一个相关的例子是特斯拉决定在其汽车上添加雷达,而不是假设道路上有可靠的转发器(注意:这只是一个平行线;没有官方关系)。
其他实现和相关模型是,例如,基于元组的协调语言(如Linda)和网络协议(如Chord)。如你所见,这些作品不一定属于“AI领域”。