多机器人系统、人机交互与软件

分布式共识(多机器人一致性)

分布式共识,讲的是这样一件事:一群机器人,每台都只掌握真相的一小块、又只能和附近的邻居交谈,却要全体敲定同一个共享答案——而且没有一个上司来一锤定音。设想有十支温度计散布在一片田野里,每支读到的温度略有不同,它们却必须就一个要上报的数字达成一致。难点在于:没有哪台机器人能一下子看到所有人的读数,可它们最终又都得握有同一个值。

经典的办法妙在简单:每台机器人反复地把自己的数字,朝着邻居们此刻所报数值的平均值挪动一点点,然后把更新后的数字共享出去,如此一轮又一轮。一轮接一轮,差距不断缩小,整个群体便收敛到一个共同的值——而如果每台机器人对各个邻居的权重都相等,这个值正是大家初始值的平均数。尽管没有任何一台机器人见过全局画面,这套办法依然奏效,因为信息会一传一地向外扩散,直到每台机器人实际上都已“听到”了其他所有机器人的声音。

共识是多机器人团队里的一员主力。它能让一支车队就一个会合点、一个共享时钟、一个共同航向,或就“下一步做什么”的一次投票达成一致,全程都不需要一个可能会出故障、或成为瓶颈的中央协调者。可难点也实实在在:消息会丢失,网络可能裂成两半,机器人会加入也会退出,而一台出故障或“说谎”的机器人,还可能把整个群体拽向错误的答案——所以这个领域有很大一部分,研究的正是如何在上述种种出错之下,依然可靠地达成一致。

一排无人机,每架被告知的高度略有不同,它们不断把自己的高度与邻居取平均,直到全体悄悄停在同一个高度上。

与邻居取平均、再重复——整个群体最终落到同一个数字上。

同样的思想也支撑着计算机网络和区块链中的共识;在机器人学里,它通常指就位置、时间或航向这类连续量达成一致。

又称
consensusagreement protocol一致性共识算法