Skip to content
RobotWorld
返回博客
IEEE TRO|CMU 开源 riMESA:弱通信+离群点下的实时多机器人 SLAM,真实数据领先 7×+
多机器人SLAMcollaborative SLAMC-ADMM

IEEE TRO|CMU 开源 riMESA:弱通信+离群点下的实时多机器人 SLAM,真实数据领先 7×+

CMU 的 riMESA 用 C-ADMM 共识 + 增量鲁棒求解器 riSAM,把分布式、增量式、鲁棒性与弱通信四件事第一次完整拧在一起:共享变量而非整图通信、对偶衰减、RWBP 允许旧共识被新证据推翻、非阻塞通信线程。2430 组合成 + 28 组真实数据上,与集中式 GNC 的差距比 DLGBP 小 7 倍、比 DDF-SAM2 小 17 倍,平均带宽仅约 55 KB/s。

智驾机器人技术前线 (WeChat)2026年8月26日4 分钟阅读
EN

多机器人 SLAM 的真正难题

多机器人 SLAM 真正难的,从来不是"让几台机器人各自跑起来"。真正棘手的是:通信会断、回环会错、数据不断涌入,但所有机器人还得在同一个世界坐标系里尽快达成一致。

Carnegie Mellon University(CMU)Robotics Institute 的 Daniel McGann 和 Michael Kaess 将 riMESA 做成了一套面向真实部署的系统方案,这篇工作已被 IEEE Transactions on Robotics(TRO)接收。它没有假设稳定网络,也没有把离群点交给一个中央服务器统一清理,而是把 C-ADMM、增量式鲁棒优化 riSAM、异步通信和故障恢复机制组合成一个完整的分布式 C-SLAM 后端。

如果只用一句话概括这篇论文:riMESA 的价值不只是"又做了一个分布式优化器",而是把多机器人 SLAM 中最难同时满足的四件事——分布式、增量式、鲁棒性和弱通信——第一次比较完整地拧到了一起。

论文代码已经开源。

01. 为什么这篇工作值得看?真实多机器人 SLAM 和"理想网络"不是一回事

很多多机器人 SLAM 工作,在实验时默认了一些非常舒服的条件:机器人之间能持续通信、数据能及时同步、关键测量基本可靠,或者可以在后台做耗时的批量优化。但真正把机器人丢到矿井、森林、灾区、地下空间甚至月球表面,这些假设很容易同时失效。

  • 第一,通信不是持续存在的。机器人通常依赖自组织网络,随着距离、遮挡、带宽和干扰变化,通信拓扑会不断变化。某两台机器人现在能连接,不代表下一秒还能连接。
  • 第二,通信不是可靠事务。延迟可能比传感器更新周期更长,连接可能在传输中途掉线,甚至会出现论文特别强调的 Two-Generals Failure:通信双方中只有一方认为本次交互成功。
  • 第三,前端会产生错误约束。只要系统运行得足够久,感知混淆、错误数据关联和错误回环几乎不可避免。普通非线性最小二乘对这类离群点非常敏感,一条错误的跨机器人回环就可能把整张图拉坏。
  • 第四,机器人不能等优化"完全收敛"以后再行动。规划、导航和控制需要的是现在可用的状态估计,而不是几分钟后才得到的一张漂亮全局地图。

这也是 riMESA 的问题设定:在 ad-hoc、稀疏、不可靠、异步通信下,对持续增长的多机器人因子图进行鲁棒、实时、分布式优化。

riMESA 整体示意图
图 1:论文对 riMESA 的整体示意。不同机器人只维护各自局部问题;当通信机会出现时,它们通过共享变量、边变量和对偶变量逐步加强一致性约束;局部新测量则交给 riSAM 增量处理。

02. 先把问题写清楚:协同 SLAM 本质上是"带一致性约束的分布式 MAP"

单机器人 SLAM 常见的后端写法,是把所有状态和测量放进因子图,通过最大后验估计转成非线性最小二乘问题。对多机器人系统来说,只是数据不再集中:机器人 $i$ 只拥有自己的状态子集和测量子集,但不同机器人又可能观察同一个状态。忽略离群点时,可以把全局问题写成:

$$\Theta_{\mathrm{MAP}} = \arg\min_{\Theta\in\Omega} \sum_{i\in\mathcal{R}} \sum_{m\in\mathcal{M}_i} \left\|h_m(\Theta_i)-m\right\|_{\Sigma_m}^{2}$$

这里,每个机器人只对自己的测量负责;真正麻烦的是共享状态。例如机器人 A 与机器人 B 都观察到了同一个位姿或地标,那么 A 手里的那份状态和 B 手里的那份状态最终必须相等。于是分布式问题天然带有一致性约束:

$$\min_{\{\Theta_i\}} \sum_{i\in\mathcal{R}} f_i(\Theta_i) \quad \mathrm{s.t.}\quad q_s\!\left(\theta_{s_i},\theta_{s_j}\right)=0, \qquad \forall s\in S(i,j)$$

其中,函数 $q$ 用来比较两个共享状态在对应流形上的差异。这一步非常关键,因为它解释了为什么作者会把 Consensus ADMM(C-ADMM)拉进 C-SLAM:C-ADMM 原本就是为"每个节点解自己的局部目标,但最终对共享变量达成一致"这种问题准备的。换句话说,riMESA 并不是先决定"我要用 ADMM",再硬把 SLAM 套进去;而是多机器人 SLAM 的数学结构本身就非常接近共识优化。

03. 从 C-ADMM 到 MESA+:机器人只解自己的问题,用通信逐渐逼近全局一致

3.1 每台机器人不需要持有整张全局图

集中式后端的思路很直接:所有机器人把数据发给中央服务器,服务器算完再把结果发回来。这在网络稳定时很好用,但它会带来三个问题:通信量大、中央节点是单点故障、全局问题会随着机器人数量和运行时间一起膨胀。

riMESA 选择的路线相反:每台机器人只维护自己的局部子图,只对与其他机器人共享的状态建立一致性约束。C-ADMM 为每一条机器人通信边引入边变量 $z$ 和对偶变量 $\lambda$。可以把它直观理解成:

  • 本地状态 $\theta$:机器人"我现在认为这个共享状态在哪里";
  • 边变量 $z$:这一对机器人针对共享状态形成的中间共识;
  • 对偶变量 $\lambda$:记录双方长期以来"还差多少没对齐",不断推动两边收敛到一致解。

因此每次通信不需要传整张因子图,也不需要传全部原始测量,只需要交换当前共享变量的估计。

3.2 Biased Prior:把 ADMM 的一致性约束塞回普通 SLAM 求解器

一个很漂亮的工程处理是 Biased Prior。ADMM 的局部增广拉格朗日项里同时出现线性对偶项和二次惩罚项。作者利用下面这个等价关系:

$$\arg\min_a \left( \langle b,a\rangle + \frac{\beta}{2}\|a\|^2 \right) = \arg\min_a \frac{\beta}{2} \left\|a+\frac{b}{\beta}\right\|^2$$

于是,一个看起来"不像 SLAM 因子"的 ADMM 约束,就可以被改写成一个普通的先验因子。这意味着每台机器人不需要实现一套完全特殊的优化器,而是仍然可以利用 GTSAM、g2o、Ceres 这类成熟的稀疏非线性优化框架。论文进一步注意到位姿中的平移和旋转量纲不同,如果直接统一处理,旋转容易约束不足,因此使用带噪声模型的 Weighted Biased Prior,对旋转和平移采用不同尺度。

3.3 位姿在 SE(N) 上,不能简单做向量平均

真实 SLAM 的状态不是普通欧式向量,位姿位于 SE(N) 流形上。作者比较了 Geodesic、Approximate-Geodesic、Split、Chordal 等多种一致性约束形式,最终采用 Geodesic 约束。这与 SLAM 社区长期形成的经验一致:对位姿优化,使用流形上的几何误差通常比把旋转矩阵"硬拉平"成向量更合理。边变量的更新则可用位姿插值的闭式形式表达:

$$z_{(i,j)s}^{k+1} = \operatorname{SPLIT}\left( \theta_{s_i}^{k+1}, \theta_{s_j}^{k+1}, 0.5 \right)$$

这一整套"流形 + 边变量 + 加权 Biased Prior + 异步边通信"的组合,构成了论文中的 MESA+。但 MESA+ 仍然更像一个批量共识优化器。要真正跑在在线机器人上,还差最关键的一步:增量化与鲁棒化。

04. 第一个核心:不要等 C-ADMM 收敛,把"收敛过程"摊到机器人运行时间里

传统批量分布式优化很容易掉进一个陷阱:每来了新数据,就希望所有机器人重新通信很多轮,直到当前问题重新收敛。这在真实系统里几乎不可行。

riMESA 的思路是 amortization(摊销):共享约束不必在当前时刻被一次性拉到完全一致,而是随着未来通信机会不断出现,逐步收紧。这背后的判断很务实:中间解虽然还没有达到严格全局一致,但仍然是有用的。机器人即使暂时完全独立,也至少有一份自己的局部解;只要跨机器人约束开始产生作用,这个解通常就会继续改善。因此,没有必要为了"数学上这一次迭代彻底收敛"而把在线系统卡住。

最终,riMESA 把运行过程拆成两个互不锁死的循环:

  • 本地更新:新测量到来,机器人立即更新自己的局部状态;
  • 通信更新:两台机器人什么时候能通信,就什么时候更新共享状态相关的边变量和对偶变量。

这使得"网络多久连一次"不再决定"SLAM 能不能继续运行",而主要决定"机器人之间的一致性能够多快变好"。这是论文最有工程价值的设计之一。

05. 第二个核心:离群点不需要全队统一判定,先在本地把它压下去

如果把普通最小二乘直接放进上述框架,错误回环仍然会把局部解拉坏,再通过共识机制传播到其他机器人。作者于是给测量残差套上鲁棒核:

$$\Theta_{\mathrm{MAP}} = \arg\min_{\{\Theta_i\}} \sum_{i\in\mathcal{R}} \sum_{m\in\mathcal{M}_i} \rho\!\left( \left\|h_m(\Theta_i)-m\right\|_{\Sigma_m}^{2} \right)$$

表面上只是多了一个鲁棒函数 $\rho$,但对于分布式 SLAM 意义很大:因为全局目标本身是可分离的,所以对离群点的处理也可以留在产生该测量的机器人本地完成,不必把所有原始测量集中到某个中心节点,再统一做离群点筛选。

但作者没有停留在"给残差套个 Geman-McClure 核"这一层。原因是固定 M-Estimator 虽然快,却容易对初始化敏感;而多机器人系统恰恰经常遇到初始化差、回环噪声大和弱观测的问题。因此 riMESA 的局部求解器使用 riSAM

riSAM 本身是一个鲁棒增量式 SLAM 求解器,它把 Graduated Non-Convexity(GNC)的 continuation 思想做成增量版本:优化不是一上来就面对强非凸的鲁棒目标,而是逐渐改变鲁棒核形状,让问题从相对容易的目标逐步过渡到最终的强鲁棒目标。论文实现采用 DogLeg 线搜索与 SIG Kernel,并让控制参数依次经过:

$$\mu = \left[ 0.0,\ 0.5,\ 0.9,\ 0.95,\ 1.0 \right]$$

这样,riMESA 同时保留了两种能力:增量性——新因子到来时,只更新受影响的局部子问题;鲁棒性——通过 continuation 减少固定鲁棒核对初值的依赖。这也是为什么论文中的 kiMESA——把 riSAM 换成 iSAM2 + 固定 M-Estimator 的消融版本——在高噪声情况下明显更容易出问题。

06. 真正巧妙的一步:机器人之间的"一致性先验"也要允许被暂时质疑

到这里其实还有一个隐藏问题。假设机器人 A 因为一个错误跨机器人回环,暂时形成了错误判断;机器人 B 后来又获得了新的局部信息,发现之前的共识可能有问题。如果两台机器人之间的 Biased Prior 始终被当作绝对可信约束,那么旧共识反而可能压制新证据,导致系统"明明后来知道错了,却很难改回来"。

riMESA 的处理是:连 Biased Prior 本身也套上鲁棒核。作者称它为 Robust Weighted Biased Prior(RWBP)。简化后,其本地更新可以写成:

$$\Theta_i^{k+1} = \arg\min_{\Theta_i\in\Omega_i} \sum_{m\in\mathcal{M}_i} \rho\!\left( \left\|h_m(\Theta_i)-m\right\|_{\Sigma_m}^{2} \right) + \sum_j\sum_{s\in S(i,j)} \rho\!\left( \frac{\beta_{(i,j)s}^{k}}{2} \left\| \operatorname{Log}\left( \theta_{s_i}^{k}\ominus z_{(i,j)s}^{k} \right) + \frac{\lambda_{(i,j)s}^{k}}{\beta_{(i,j)s}^{k}} \right\|_{\Sigma_s}^{2} \right)$$

这个设计的含义非常直白:如果某个机器人发现"当前共识和我刚获得的新证据严重冲突",它可以暂时把这个共识当作过时信息,而不是被强行拉回错误状态。这非常符合在线系统的现实:信息的新旧顺序是不确定的,今天的"共识"并不一定永远比明天的新观测更可信。

07. RWBP 还不够:给对偶变量加衰减,避免历史错误长期"积债"

ADMM 的对偶变量会不断累积历史不一致。如果某个共识约束后来被鲁棒核拒绝,旧的对偶变量仍可能残留较大的错误分量。于是 riMESA 在标准对偶更新中加入衰减:

$$\lambda_{(i,j)s}^{k+1} = \mathfrak{d}\,\lambda_{(i,j)s}^{k} + \beta_{(i,j)s}^{k}\, q_s\!\left( \theta_{s_i}^{k+1}, z_{(i,j)s}^{k+1} \right), \qquad \mathfrak{d}=0.9$$

也就是说,历史约束不会无限记账,较新的信息拥有更高权重。这一步看起来只是乘了一个 0.9,但论文的消融实验表明,它和 RWBP 都明显改善了 riMESA 的鲁棒性。

riMESA 消融实验
图 7:论文的消融实验。左侧验证 RWBP 与 dual decay,右侧验证共享变量的鲁棒初始化。两类设计都不是"可有可无的工程补丁"。

08. 第三个核心:通信线程与 SLAM 主线程彻底解耦,掉线了就丢掉这次通信

很多"理论上异步"的分布式算法,到了工程里仍可能在通信上阻塞。riMESA 专门设计了一个 Communication Handler,让通信在独立线程中进行,而且操作的是算法状态的缓存副本。这样做有三个好处:

第一,网络延迟不会卡住本地状态更新

哪怕一轮通信要 200 ms,而传感器期间又来了多帧数据,主线程仍然可以继续用 riSAM 更新局部状态。

第二,中途断线不会污染主状态

通信开始时先复制一份缓存。只有当整轮交互完整成功后,结果才被并入主线程。如果中途超时或掉线,这个缓存直接丢掉即可。对 SLAM 主状态来说,最坏结果只是"错过了一次通信机会",而不是把半截数据写进系统。

第三,可以天然支持并行通信

机器人 A 和 B 通信的同时,也可以和 C 建立另一条通信,而不必等所有机器人形成同步回合。论文进一步采用两阶段通信:

  • 阶段 1:双方先交换"我们究竟共享哪些变量、哪些变量还没初始化、哪些维度能被本地观测";
  • 阶段 2:在双方已经对共享集合达成一致后,再交换对应状态估计。

这样比"直接把整份局部解全发出去"省得多,也更适合长期运行中共享状态集合不断变化的情况。

09. 一个很容易被忽略的细节:共享变量怎么初始化,直接影响离群点能不能被正确识别

普通 C-ADMM 对初始化通常没那么敏感,但鲁棒估计不同。如果一个新共享变量只用其中一台机器人的值初始化,那么这个初始选择本身就在向优化器注入偏见,可能直接影响后续把某条测量判断成"内点"还是"离群点"。

riMESA 因此设计了鲁棒初始化:能由本地测量直接观测的状态分量,优先保留本地信息;本地无法观测的分量,再从变量"所属机器人"的状态中补齐。例如 Bearing-Range 测量可以直接观察相对位置,但并不能完整观察对方朝向,此时没有必要把整个位姿都粗暴复制过来,而是把不同来源的信息按可观测性拼起来。论文对这一设计也做了单独消融,结果显示,在 Range-Only、Bearing-Range 和 C-PGO 等不同局部可观测条件下,完整鲁棒初始化方案整体表现最好。

10. 把 riMESA 的运行过程串起来,其实就是三件事

如果从工程实现角度看,riMESA 没有想象中那么神秘,可以浓缩为三条主流程。

流程 A:新测量到来

机器人先判断新因子涉及哪些局部变量、哪些共享变量、哪些环境变量,建立对应的边变量、对偶变量、惩罚参数与 RWBP,然后调用 riSAM 做一次增量更新。对刚出现但还没与另一台机器人通信过的 RWBP,论文把惩罚系数初始化得极小:

$$\beta_{\mathrm{uninit}}=10^{-4}$$

这样"尚未得到有效跨机器人状态"的伪先验不会错误影响当前解。第一次成功通信后,再把它设为:

$$\beta_{\mathrm{init}}=1.0$$

流程 B:检测到通信机会

启动独立 Communication Handler,用缓存状态完成两阶段信息交换。

流程 C:通信成功

主线程用双方在通信时真正传输的那份缓存值更新边变量和对偶变量,并标记相关变量,在下一次 riSAM 更新中重新消元、重新凸化。如果通信失败,则不执行流程 C。

这一点很重要:riMESA 并没有试图"预测网络会不会可靠",而是让算法结构本身能够接受网络不可靠。

11. 实验不是只跑 C-PGO:作者刻意测试了多种 C-SLAM 观测结构

这篇论文实验量很大。作者最终报告:2430 个独立合成数据集;28 个真实数据集。合成环境覆盖 6 机器人、不同噪声、不同观测结构、不同团队规模、不同运行长度和不同通信质量;真实数据使用 COSMO-Bench 的 24 个数据集,加上 4 个 Nebula 数据集。

这里最值得注意的不是"数据多",而是作者没有把 C-SLAM 偷换成一个固定的 C-PGO 问题。论文测试了:

  • Collaborative Pose-Graph Optimization(C-PGO)
  • Range-Aided PGO
  • Range-Only C-SLAM
  • Bearing-Range-Only C-SLAM
  • Landmark C-SLAM
  • Landmark + Direct C-SLAM
  • 无平面约束的完整 3D C-PGO

这也是论文前面坚持从"通用 C-SLAM"而不是"只做位姿图"开始建模的原因。

不同噪声水平与观测结构下的结果
图 3:不同噪声水平与不同 C-SLAM 观测结构下的结果。总体上 riMESA 最接近使用真值离群点信息的 Oracle 类基线,而 DDF-SAM2、DLGBP 在多种条件下容易明显退化甚至失败。

12. 一个重要结论:riMESA 把通信质量变成了可退化变量

论文没有回避 riMESA 的弱点。在 Range-Aided PGO、Range-Only、Bearing-Range-Only 这类跨机器人测量秩较低的问题里,如果同时存在较大噪声,riMESA 的性能会明显下降。作者分析后发现,这不是单纯因为鲁棒核不够强,而是因为这些观测本来就提供较少跨机器人几何信息;再叠加稀疏通信后,系统的有效信噪比更低。

随后作者专门改变通信条件做实验,从高延迟、小通信范围、低频通信,一步步提升到低延迟、大范围、高频通信。结果很有意思:通信变好后,riMESA 在低信噪比场景中的性能明显恢复。

通信质量消融实验
图 6:通信质量从 a 到 e 逐步提升。高信噪比 C-PGO 对弱通信已经比较耐受,而 Range-Only 等弱观测问题确实需要更多通信才能把多机器人信息融合起来。

这说明 riMESA 并不是声称"通信完全不重要"。更准确的理解是:它把通信从一个"必须持续满足的前置条件",变成了一个影响收敛速度和最终质量的连续资源。这个区别非常重要。

13. 扩展性:轨迹做到 5000 帧、团队做到 48 台机器人,riMESA 仍保持稳定趋势

作者还单独测试了长期运行和团队规模。长期实验中,6 台机器人的轨迹长度从 500 增加到 5000;团队规模实验中,每台机器人固定 1000 个位姿,机器人数量从 3 增加到 48。

riMESA 在这些规模变化下仍能保持较稳定的精度和离群点分类表现,而 DDF-SAM2 和 DLGBP 会随规模增大出现更明显的退化,尤其 DLGBP 在长期运行时受滑动窗口限制,对长时间跨度回环信息的利用更困难。

扩展性实验
图 5:上半部分增加轨迹长度,下半部分增加机器人数量。riMESA 的整体趋势比已有分布式基线稳定。

14. 真实数据才是重点:不是某个数据集赢一次,而是"最差情况"更可控

真实数据实验使用 COSMO-Bench 与 Nebula。COSMO-Bench 基于真实 LiDAR 数据、实际 C-SLAM 前端和来源于真实网络的通信模型构建。实验中机器人尝试以 5 Hz 发起通信,单次通信延迟不超过 200 ms,并额外让 5% 原本成功的通信出现 Two-Generals Failure。从定性结果看,不同机器人的点云最终能够较好对齐到同一地图中。

真实数据点云对齐
图 8:不同颜色对应不同机器人。若多机器人位姿估计不一致,同一区域的点云会明显重影;图中多个场景的地图基本能够对齐。

更关键的是定量结果。论文没有只挑"最好看的数据集",而是计算所有真实数据上,各方法相对 Centralized GNC 的平均性能差距:

方法相对 Centralized GNC 的平均性能差距
riMESA45.09%
kiMESA157.70%
DLGBP352.81%
DDF-SAM2787.30%

性能差距定义为:

$$\operatorname{Gap}(m) = \frac{\text{iATE}_{m}-\text{iATE}_{\mathrm{GNC}}}{\text{iATE}_{\mathrm{GNC}}} \times 100\%$$

按这个指标,riMESA 与 Centralized GNC 的差距,比 DLGBP 小 7 倍以上,比 DDF-SAM2 小 17 倍以上。这比简单说"某个数据集 ATE 低了多少"更有意义,因为 Centralized GNC 本身可以使用集中式数据和更强的全局鲁棒优化;riMESA 则必须在通信受限的前提下工作。论文还给出了一个很直观的时间序列案例:DDF-SAM2 在运行到约 4200 秒附近发生明显发散,而 riMESA 在整个过程中都紧跟 Centralized Oracle 的误差趋势。

15. 实时性:鲁棒集中式优化精度很强,但实际在线跑不动

多机器人 SLAM 后端不能只看最终 ATE,还要看每次更新要多久。作者在 main_campus_wifi 上用 Intel Core i9-13900K 和 128 GB 内存进行运行时间测试,同时统计单次更新耗时和累计运行时间。结果显示:

  • riMESA 等大多数分布式方法能够维持实时;
  • DDF-SAM2 在序列后段会出现较长更新时间;
  • Centralized Oracle 由于知道哪些测量是真内点,仍能维持实时;
  • 但真正需要在线处理离群点的 Centralized GNC 和 Centralized PCM,累计优化成本已经超过实时边界。
运行时间对比
图 10:上部为分布式算法、下部为集中式基线。论文的结论并不是"分布式天然更准",而是当鲁棒性、在线性与真实通信限制同时存在时,riMESA 获得了更好的综合平衡。

这也是这篇论文与很多"离线全局优化"工作最大的区别:它关心的是机器人在运行过程中每一时刻能不能继续使用当前解。

16. 带宽也算过:平均几十 KB/s,峰值仍在实验网络模型上限以内

论文虽然没有在主实验中直接用带宽上限截断每一次通信,但作者记录了真实数据实验中的实际通信量,用它验证这一假设是否离谱:

网络模型峰值带宽平均带宽
Wi-Fi 模型625.3 KB/s54.9 KB/s
Pro-Radio 模型825.3 KB/s57.6 KB/s

这都低于论文对应网络模型设定的带宽上限。更极端的 ntu_r3_02_wifi 实验中,riMESA 的峰值只有 3.8 KB/s,平均仅 0.12 KB/s,但仍然优于所有对比的既有分布式方法,甚至超过部分集中式方案。这个结果说明,共享"状态"而不是持续同步整张原始因子图,确实让它有机会进入更受限的真实网络。

17. 这篇论文真正贡献了什么?不只是一个新后端

如果把算法名字和公式都拿掉,riMESA 最值得带走的其实有四层思想。

第一层:把"全局一致"从一次性目标改成持续逼近过程

传统直觉往往是:跨机器人约束出现后,就要赶紧把全局图重新算到收敛。riMESA 反过来接受现实——只要当前中间解有用,就允许一致性在未来多次通信中逐渐加强。这让"在线"真正进入了分布式优化结构,而不是简单地把批量算法反复重跑。

第二层:鲁棒性可以局部解决,一致性再分布式传播

C-ADMM 的可分离结构让每台机器人先在本地判断测量是否可信,再通过共享状态传播结果。这将"鲁棒估计"和"多机器人共识"从一个巨大的全局问题中拆开。

第三层:共识本身也可能过期

RWBP 是本文里一个容易被忽略但很漂亮的设计。很多系统默认跨机器人同步得到的信息天然更可信,而 riMESA 允许机器人在获得新证据后暂时拒绝旧的一致性约束。这种思路更符合长期自主系统:过去达成过一致,不代表过去永远正确。

第四层:网络故障不是异常路径,而是正常运行状态

Communication Handler 的设计说明作者是在按照真实系统思维做算法:延迟、掉线、半成功通信都不是"以后工程化再解决的问题",而是算法必须直接面对的输入条件。

18. riMESA 也有明确边界,不应该把结论解读过头

18.1 没有正式的整体收敛保证

论文明确讨论了这一点。C-ADMM 的若干变体分别对非凸问题、流形问题、非线性约束、异步问题和可分离问题存在理论结果,但对于 C-SLAM 这种同时具备多种复杂性质、还使用耦合非线性约束的场景,目前没有现成定理直接覆盖。更重要的是,riMESA 为了在线运行又加入了通信摊销、RWBP 和对偶衰减。这些改动使问题本身随时间持续变化,也进一步偏离标准"固定目标上的 ADMM 收敛"设定。因此,riMESA 的强项是大规模实证,而不是一个完整的全局收敛证明。

18.2 弱观测 + 大噪声 + 极差通信仍然会难

Range-Only 等低秩跨机器人约束在高噪声下,本身就缺乏足够几何信息。riMESA 能容忍稀疏通信,不等于能从几乎没有信息的系统里凭空恢复高质量全局状态。论文实验恰恰说明:这类场景增加通信后会明显改善。

18.3 "带宽可接受"目前更多是测量验证,而不是严格带宽约束优化

作者记录了带宽并证明实验值低于网络模型上限,但主实验并没有把每条连接的带宽预算作为优化约束显式加入算法。如果未来面向更低带宽无线链路,如何进一步压缩共享状态、选择最有价值的变量进行通信,仍然有很大空间。

19. 对做 SLAM 的人来说,riMESA 最值得借鉴的是什么?

这篇论文给人的最大感受,是它把"算法设计"和"真实系统约束"结合得比较紧。如果你只关心单机器人高精地图,C-ADMM 本身未必是你最需要的东西;但如果系统进入多机器人协同,问题会立刻从"怎么优化一个因子图"变成:

谁持有什么数据?谁和谁能通信?什么时候通信?一条跨机器人约束错了会传播多远?没有通信时系统还能不能继续?新证据能不能推翻旧共识?

riMESA 对这些问题给出的答案并不复杂,但组合得很完整:局部图用成熟增量优化器解决,离群点在本地鲁棒处理;共享变量用 C-ADMM 做共识;通信有机会就推进,没有机会就继续本地运行;旧共识如果与新信息冲突,也允许被鲁棒地降权。

这套思路的价值,其实已经超出了 C-SLAM。任何"多个机器人分别维护局部估计,又必须在不稳定网络中对部分共享状态达成一致"的问题,都可能从这种结构里得到启发。

20. 总结

riMESA 最终解决的不是一个理想化的"多机器人位姿图求最优解"问题,而是更接近部署现场的组合难题:测量持续到来,回环可能出错,机器人只能偶尔见面通信,网络还可能中断,但系统必须一直给出可用于导航和规划的状态估计。

它的技术主线可以浓缩成一句:用 C-ADMM 负责跨机器人的一致性,用 riSAM 负责本地增量鲁棒优化,再通过 RWBP、对偶衰减、鲁棒初始化和非阻塞通信,把理论上的共识过程改造成能在线工作的 C-SLAM 后端。

从实验看,riMESA 没有在所有条件下"碾压一切",但它表现出一个真实系统更需要的属性:稳定。有的方法在某些数据集上很好,却会在另一些数据集突然崩掉;riMESA 的突出之处,是在不同观测类型、不同噪声、不同通信质量、不同机器人数量和真实数据集之间,整体表现都更可控。对于多机器人 SLAM 后端而言,这种"跨条件的稳定性"往往比单一数据集上的最低 ATE 更重要。

论文信息

  • 论文标题:riMESA: Consensus ADMM for Real-World Collaborative SLAM
  • 作者:Daniel McGann, Michael Kaess
  • 作者单位:Robotics Institute, Carnegie Mellon University(CMU)
  • 期刊:IEEE Transactions on Robotics(TRO)
  • 项目 / 代码:github.com/rpl-cmu/rimesa
  • riSAM 实现:github.com/rpl-cmu/risam-v2

原文来源:智驾机器人技术前线(微信公众号),2026-08-26 发布。本文为学术分享与完整编译。

原文来源:智驾机器人技术前线 (WeChat)https://mp.weixin.qq.com/s/OsQ5UK0YFj1b4Bv6AvgKQQ