JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

从单台机器人到机器人群:为什么团队胜过独行侠

认识多机器人系统与群体机器人:一群简单的机器为何能胜过一台聪明的机器人。

大自然早已给出答案

看一群蚂蚁抬起数倍于自身体型的叶子,或是一群椋鸟在天空中翻飞,宛如一整片活的云。没有哪只蚂蚁在指挥,也没有哪只鸟在发号施令。每个个体只遵循几条简单的规则——靠近邻居、别撞到它们、大致朝同一方向走——而正是这无数微小的局部选择,汇聚出庞大而看似聪明的整体行为。早在人类造出第一台机器之前,大自然就解决了一个难题:如何用许多渺小、能力有限的工人,完成一项大工程?

机器人学直接借用了这条经验。一台机器人——哪怕再出色——也只有一副身体、一组传感器,一次只能待在一个地方。多机器人系统不过是一群朝着共同目标协作的机器人:团队能同时出现在多个地点,能在任何一名成员失效时继续运转,还能把一项庞大的任务拆成易于处理的小块。本指南为整个机器人系统专题揭开序幕,提出一个看似简单的问题:什么时候一群普通的机器,胜过一位天才?

群体:简单规则中诞生的聪明

多机器人系统中有一类把蚂蚁的思路推到极致。在群体机器人中,你制造许多廉价、近乎相同的机器人,只给每个机器人局部信息——它在近距离内能感知到的、或通过短程无线电链路能接收到的东西——然后让有用的群体行为自发涌现,无需任何单台机器人理解整体计划。没有哪个成员知道全局地图,每个只是对邻居作出反应。我们把这种结果称为涌现行为:团队完成了任何单个成员自己都无法描述的事。

最著名的入门例子是“boids”,由克雷格·雷诺兹于1986年提出的群飞模拟。每只模拟鸟遵循三条规则——分离(别挤到邻居)、对齐(朝附近邻居的转向方向走)、凝聚(向附近邻居的平均位置靠拢)。仅此而已。可满屏的boids却能像真正的鸟群一样绕过障碍。群体机器人用真实的轮子和传感器做着同样的事:输入局部规则,输出群体行为。

集中式大脑 vs. 去中心化团队

并非每个团队都是群体。最关键的设计分岔在于:谁来决策。在集中式系统中,一台计算机掌握全局,精确指挥每台机器人——就像空中交通管制员指挥飞机。在去中心化系统中,每台机器人仅凭自己感知到、以及从邻居那里听到的信息自行决策——更像没有引导员、却仍能有序散场的人群。两者都行得通,只是各有取舍。这一权衡正是机器人自主性的核心:每台机器自己决定多少,又有多少是自上而下安排的。

集中式控制能给出干净、全局优化的方案,也便于分析——但中央大脑是单点故障,而且团队一大,无线网络就可能阻塞。去中心化控制经得起机器人失联和消息丢失,扩展性极佳——但谁也无法保证团队在做最优的事,只能做到足够好。真实系统往往两者兼用:一个监督者设定高层目标,而每台机器人处理自己每时每刻的动作。

各自的舞台在哪里?在仓库里——想想仓储与物流机器人——成百上千台搬运货架的机器人通常偏向集中式:建筑有地图、网络可靠,一个车队管理器可以为所有机器人规划路线、避免堵塞。而在倒塌建筑中的搜救场景(搜救机器人),无线电时断时续、机器人随时可能被压毁,因此一支即使成员不断减少仍能继续工作的去中心化团队更胜一筹。在农业机器人领域,一群小型田间机器人可以并行除草或巡查农场,比一台巨型机器更便宜,也对土壤更温和。

难点:协调才是真正的功夫

增加机器人听起来全是好处,但每多一台机器人,也就多了一个可能相撞、抢话、起争执的对象。组队的代价是多机器人协调:确保机器人彼此帮忙,而不是互相绊脚。两台机器人都决定去抓同一个箱子,或者都朝同一方向闪避却反而撞上,结果比一台机器人单干还糟。

协调可以拆解为几个反复出现的难题,本专题会逐一展开。团队必须在嘈杂、片面的信息下就共同事实达成一致——这就是分布式共识,机器人像委员会投票那样达成协议。它们必须在移动中保持有用的队形,这就是队形控制,如同大雁保持人字形。它们还必须公平地分配工作,这就是多机器人任务分配——决定谁去取哪个包裹、谁去搜哪个房间。

这一切之下,是一层管道:让机器人传递消息、共享地图、互相触发动作而不陷入混乱的软件。后续指南会介绍让这一切变得可行的工具——用于松耦合通信的发布-订阅模式、把机器人各个程序串联起来的机器人操作系统,以及用于组织“机器人在何时做什么”的行为树。眼下,只需记住这个大局:硬件让机器人能行动,而协调,才是把一堆机器人变成一支团队的关键。