通信约束
多机器人SLAM的成败取决于其通信预算。真实的机器人团队通过带宽受限、时断时续的链路进行通信——处于覆盖边缘的WiFi、临时组网的网状电台,或以千比特每秒计的地下/水下信道。传输原始传感器数据流或稠密地图是不可行的,因此协作SLAM系统必须围绕哪些信息可以廉价共享来设计。
可共享数据的成本层级
按每比特传输开销大致递增排列:
- 关键帧的全局位置描述子(词袋向量或学习得到的嵌入向量)——最便宜的”货币”;足以发现一次可能的相遇。
- 单个关键帧的局部特征(关键点+描述子)——足以对候选回环进行几何验证;比图像本身小几个数量级。
- 位姿图/稀疏地标子集——足以对齐并联合优化轨迹。
- 压缩子地图(网格、TSDF块、点云片段)——最昂贵的一级,很少发送,甚至完全不发送。
设计良好的系统会按需逐级攀升这一梯度:持续广播第1级,仅对有希望的匹配发送第2级,第3-4级则留给已确认的合并操作。
设计模式
- 使用稀疏描述子而非图像。 机器人交换紧凑的位置识别签名——词袋向量(DBoW2)或学习得到的全局描述子(NetVLAD)——而不是数兆字节的像素数据。完整特征集或原始图像只有在出现有希望的匹配之后才会发送,甚至根本不发送(C2TAM一直只传输关键点+描述子,从不传输图像)。
- 紧凑的地图表示。 位姿图和稀疏地标集合会被传输;稠密网格、TSDF或点云通常留在本地,最多交换压缩子地图或边界信息。
- 增量式/去重的交换。 追踪每个邻居已经拥有的内容,只发送新数据(Swarm-SLAM的稀疏描述子交换机制),而不是重复广播整个数据库。
- 在预算内排定优先级。 当链路无法承载每一个候选回环时,将验证带宽花在最有价值的候选项上——例如,Swarm-SLAM根据相似度、不确定性以及是否能连接不相连的子图来对候选项打分。
- 对断连的容忍。 连通性本质上是时断时续的:客户端在本地缓存关键帧,重新连接后再回溯上传(CCM-SLAM),并且本地里程计必须在网络消失时不受影响地继续运行。
- 消息量小的分布式优化。 选择分布式位姿图求解器的部分原因在于,它们每次迭代的消息(邻居之间的少量位姿或梯度)相比传输完整地图要小得多。
常见陷阱
- 在理想网络下进行评估。 一个在仿真中假设完全、持续连通的系统,一旦遇到现实中的第一次断连就会崩溃;断连处理必须是设计假设,而不是事后补丁。
- 忽视延迟。 即使带宽充足,修正信息也会滞后到达;客户端必须能够容忍在略微过时的地图上运行(C2TAM的异步缓存地图模式),而不是阻塞等待最新地图。
- 规模扩大时的广播风暴。 简单粗暴的全对全描述子广播会随团队规模呈平方级增长;去重与邻居感知的交换机制使集群保持可行。
- 发送无法验证的内容。 花费带宽传输那些无法通过几何验证的回环候选是纯粹的浪费——这正是候选优先级排序在去中心化系统中被视为首要问题的原因。
一个有用的心智模型:通信信道是另一种传感器预算约束,就像CPU或电池一样。协作SLAM的每一个架构特性——集中式还是去中心化、描述子的选择、子地图粒度、回环优先级排序——都可以理解为对”什么能通过这条管道?“这一问题的回答。
对SLAM的意义
在基准测试上看起来完全一样的算法,在实际传输字节数上可能相差几个数量级,而在实际场景中,网络通常是最先失效的部分。为稀疏、优先级化、能容忍断连的共享而设计,正是可部署的多机器人SLAM(地下勘探、搜索救援、仓储车队)与仅停留在仿真阶段的成果之间的分界线。