物理接地与多智能体强化学习:AssistMimic的人形机器人协作控制方案
发布时间:2026/10/14 6:35:06 锦皓数字建站

前阵子刷到CVPR 2026的接收列表CMU和庆应大学合作的AssistMimic一下子引起了我的注意。标题里的几个关键词组合得挺有意思多智能体强化学习、物理接地、双人协助人形控制。说实话我第一次看到物理接地这个词也有点犯嘀咕以为是什么宣传话术。直到我把论文扫了一遍又在自己常跑的MuJoCo环境里模拟了一下类似的协作场景才意识到这个词确实点中了人形机器人落地的死穴机器人不能只会看起来像人还得在物理世界里站得稳、使得上劲、敢跟另一个智能体真实接触。这篇文章我想把AssistMimic的核心设计掰开讲讲也会把我在复现类似多智能体人形控制任务时踩过的坑一并写出来给正在做具身智能、人形机器人和模仿学习方向的朋友做个参考。1. 人形机器人为什么需要第二个智能体搭把手1.1 现实部署里绕不开的物理协作场景人形机器人这几年热度很高但真正放到实际环境里大部分demo还是单机自主完成动作走过去、抓杯子、开门。问题在于现实场景不是按单机剧本设计的。仓库里搬长板材一个人形机器人双臂抱住一根两米长的木板重心稍偏一点就倒医院里辅助老人从轮椅上站起来机器人光是拉着人上肢没有腰腹和外部的支撑配合根本稳定不住户外救援里机器人在泥地上搬运重物仅靠自身脚底摩擦很难提供足够推力。这些场景有一个共同特征需要第二个物理实体和机器人发生持续、可调节、有明确力交互的接触。这个第二个实体可以是人可以是另一台机器人也可以是一台带主动力控的移动底盘。AssistMimic研究的正是这种双人协作设定一个主智能体控制人形机器人本体另一个协助智能体通过施加外力、接触支撑或共同搬运帮人形机器人完成自身物理能力范围内难以做到的任务。1.2 单智能体控制为什么搞不定协作传统单智能体强化学习控制人形机器人核心思路是让机器人学会自己维持平衡、自己规划发力。可一旦引入协作对象问题性质就变了。协作意味着机器人不能把对方当成静态环境对方的行为本身也是动态策略。两个人分别控制自己的身体共同托举一个物体最优发力方式不是各自独立求稳而是要让整体系统的质心、角动量和接触力形成闭环。这就引出了多智能体强化学习的必要性。在共享物理系统下两个智能体的动作都会影响同一个动力学模型任意一方改变发力另一方的最优策略就会跟着变。如果分开训练或者只把对方视作环境噪声策略很容易收敛到局部极值出现互相较劲、拉扯、甚至摔倒的情况。1.3 AssistMimic在整体方案里的位置AssistMimic的定位比较清晰它不是一个通用的语义决策框架而是专门面向物理接触协作的底层控制策略学习方案。它要做的事是端到端地学出两个智能体的底层动作让它们在一个物理引擎里以真实接触模型进行协作同时用真实人类协作运动数据做引导解决纯强化学习中奖励稀疏、探索困难的问题。这套思路把模仿学习和多智能体强化学习捏在了一起。前者保证策略初始阶段不瞎探索后者保证策略最终能超越数据示范适应没有见过的情况。论文最大的看点不是某一项算法上的花活而在于整个pipeline的设计取舍特别是物理接地这条主线值得认真拆解。2. 物理接地到底在说什么从运动学像样到动力学站得住2.1 物理接地不是在仿真里跑跑这么简单我第一次看到physical grounding也觉得这词有点玄。看完整篇工作我理解它在AssistMimic里的含义非常具体智能体的动作输出必须是在物理引擎中经过真实接触求解得到的全身控制指令而不是纯粹从运动学数据里拟合出来的关节轨迹。换句话说策略最终学到的是如何通过肌肉骨骼级的力与力矩控制身体而不是如何播放一段看起来像样的动画。这中间有一个容易被忽略的技术分叉点。很多模仿学习工作用了运动捕捉或者视频姿态数据做法是让策略网络输出目标关节位置再靠PD控制器去跟踪对应的关节轨迹。只要关节角度的误差降下来demo视频里看起来就很像。但这种做法在物理世界里经常翻车因为跟踪一个运动学轨迹并不保证动力学稳定。地面反作用力、动量协方差、足底接触状态这些看不见的东西才是人形机器人在真实环境中站不站得住的根本。AssistMimic强调物理接地就是要让策略在训练过程中充分接触上述物理量脚底与地面的法向力、摩擦力、接触点位置、全身质心的线动量/角动量变化。它不是在运动学空间里做模仿而是在物理状态空间里让智能体学会在真实受力条件下完成协作动作。2.2 纯运动学模仿为什么在协作场景里更危险单个人形机器人做运动学模仿风险已经不小双人协作场景里风险被显著放大。一个很直观的例子一段双人配合搬运长条的动捕数据里两个人的手都贴在物体上看起来配合很默契。但动捕数据只记录了关节角度完全没有记录手部施加了多大的力。如果直接让机器人跟踪这个轨迹机器人可能完全没发力整个人是挂着的状态或者发力方向反了变成两个人互相较劲最终物体脱手机器人重心失衡。物理接地的意义在于它把力/力矩放回到训练目标里。策略网络直接输出关节力矩或者作为低层力控的输入物理引擎根据当前全身接触状态决定最终效果。这样一来任何只有动画但没有实际作用力的虚假动作都会被淘汰因为做得不对机器人当场就会倒。2.3 接地约束在AssistMimic里的具体落点从工作公开的技术细节来看AssistMimic的物理接地主要体现在三个约束落点。第一是足底接触约束策略必须学会在帮助者施加外力时主动调整双脚受力维持摩擦锥内接触第二是动量约束两个智能体的质心合成运动需要满足动量守恒尤其是当协助者横向推机器人的时候机器人必须主动倾斜来应对水平动量变化第三是协作接触力边界协助者施加的力不能无限制必须落在人形机器人结构能承受的范围内否则协作本身就成了破坏来源。这三个落点翻译成强化学习的语言就是奖励函数和状态表征里的物理项。前者告诉策略什么不能做后者告诉策略现在处于什么物理状态。我在实验里体会很深的一点是很多初学者在奖励里写一大堆不要摔倒保持稳定的惩罚项效果往往很差因为这类惩罚没有告诉智能体应该借助什么物理机制来稳定自己还不如把地面反作用力、接触面位置这些量显式加进观测里让策略自己学会利用物理规律。3. 多智能体强化学习框架拆解双智能体共享一套身体动力学3.1 问题建模共享动力学下的双智能体POMDPAssistMimic里的双人协作本质上是一个共享动力学的多智能体系统。两个智能体各自控制自己的关节但它们的身体通过物理接触耦合在一起整个系统的状态空间是联合的。这里用标准的多智能体POMDP来建模是合理的每个智能体有自己的局部观测动作会影响全局物理状态而全局物理状态往往是部分可观测的。我特别关注的是观测空间的切分方式。人形机器人需要知道自己的身体姿态、关节角速度、脚底接触力、以及协助者当前接触点的位置和方向协助者则更多关注自己的末端位置、对机器人产生的接触力大小、以及机器人重心的变化趋势。两个智能体的观测不是完全共享的否则训练时信息泄漏太多推理时需要互相传输大量状态实际部署会变得很脆弱。AssistMimic的做法比较符合集中训练、分散执行的基本范式训练时用Critic拿全局信息估计联合动作价值部署时两个Actor只用各自的局部观测做决策。这样既保证了训练阶段能学出协调策略又避免了部署阶段对高速通信网络的依赖。3.2 网络结构共享表征与独立策略网络设计上AssistMimic一类工作通常会用一个小型视觉/状态编码器把各自的观测映射成隐向量然后接一个独立的策略头。真正影响训练效果的关键在于Critic怎么共享。我自己的经验是两个智能体的Actor如果完全独立训练初始阶段极易陷入各自的局部最优出现各扫门前雪的尴尬状态。解决方式是在Critic的输入侧把两个智能体的状态和动作拼在一起让价值函数学习到全局配合会产生更高回报再把这部分信息通过价值函数反馈给两个Actor。还有一个细节值得注意两个智能体虽然共享物理系统但它们的控制频率可以不同。人形机器人的全身平衡控制通常需要高频反馈协助者如果是一个带轮式基座的机械臂控制频率完全可以低一些。AssistMimic在实现里为两个Agent分别配置了不同的动作间隔这个设计在实际运行中很实用避免了高频通信下的同步问题。3.3 奖励函数协作项、物理接地项和模仿引导项的权重哲学多智能体强化学习任务里奖励函数是最容易翻车的地方。AssistMimic的奖励大致可分成三层。最底层是物理接地项包括接触稳定性、力矩平滑度、脚底不滑动这些项决定策略能不能稳住身体中层是协作项比如两个智能体的接触力方向一致性、相对位置误差、协作完成任务的时间这些项决定两人是不是在往一个方向使劲顶层才是任务奖励比如是否成功搬运物体、是否成功助人起身。权重设计上这个工作给我的启发是物理接地项的权重不能太大也不能太小。太大策略会变得极度保守两个智能体连接触都不敢有因为任何接触都会带来额外的力扰动太小策略虽然敢用力但动作会变得毛糙出现剧烈抖动和撞击。我在类似任务里调权重时有个比较实用的策略先固定任务奖励从零开始逐步增加物理接地项权重直到策略不再出现异常抖动为止。这样得到的权重通常比直接照搬论文默认值好很多。4. 训练流程里的关键工程决策数据、课程与sim2real4.1 用少量真人协作数据做行为克隆预训练AssistMimic里mimic这个词指的是用人类协作运动数据作为模仿来源。这里的目标不是单纯复现人类动作而是帮助强化学习在新任务中快速找到有意义的探索方向。行为克隆预训练在双智能体场景下尤其重要因为两个智能体的联合探索空间实在太大从零开始随机构造协作动作几乎不可能。我在实践中体会最深的是对齐数据的坐标系和物理单位。采集真人协作数据时两台动捕设备或者两套视觉系统都有自己的坐标系。如果不做统一标定直接喂给策略行为克隆预训练的阶段就会学出一堆看起来在动实际上物理不一致的动作。AssistMimic的pipeline里应当也做了类似的预处理这一点论文里不一定细讲但实际复现时躲不开。4.2 课程学习从固定支点到自由接触双人协作策略训练里让两个智能体一上来就自由接触策略崩溃的概率非常高。一个比较自然的做法是课程学习最开始协助者可以提供一个固定的支撑点例如始终在机器人背后用手扶住腰部机器人只需要学会在这个外力下保持平衡随后逐渐放开协助者的位置限制让它学会自行选择接触点最后再加入动态扰动让协助者需要根据机器人状态实时调整发力方向。AssistMimic的训练flow大概率也遵循了类似的思路这种课程设计不只是为了稳定训练它还能顺便解决奖励无效的问题。如果任务奖励只在完整协作完成后才触发探索阶段的奖励密度太低策略完全学不到东西。课程式地把任务拆成渐进目标等于人为提高了奖励密度训练效率会高一个量级。4.3 域随机化与接地验证仿真毕业不等于真实可用仿真到真实迁移是人形控制工作里最让人头疼的环节。AssistMimic这类在物理引擎里训练的策略迁移到真实硬件前至少要做两件事。第一是域随机化包括地面摩擦系数、接触刚度、关节力矩延迟、传感器噪声。第二是接地验证这是我自己习惯的额外步骤在仿真里加一个完全不同摩擦系数的地面观察策略在没有重新训练的情况下是否还能保持协作行为。如果策略一换地面参数就崩说明它依赖了过拟合的接触模型即使训练时loss再好看也不能上真机。另外我还建议在训练时对脚底接触力加随机扰动。真实机器人脚底的力传感器噪声很大如果不把这个噪声来源加进仿真物理接地项的实际信噪比会在迁移时急剧恶化。很多团队在仿真里跑分很高一上真机就疯狂抖动根源往往就是这些细小的噪声建模没跟上。5. 复现与踩坑记录多智能体物理训练中最容易翻车的五个地方5.1 接触力惩罚过强导致怕碰问题我最早在类似协作任务里试验时为了强调安全性给协助者的接触力加了一个很大的平方惩罚。结果策略很快学到了最优策略是不接触——协助者漂在空中完全逃避任务。这个现象在AssistMimic这类物理接地框架里尤其明显因为框架本身已经通过物理项约束了接触稳定性额外再加过强惩罚就是双重限制。正确做法是把接触力惩罚改成软约束比如只在超过力矩上限时才惩罚而不是一有接触就惩罚。5.2 双智能体更新步调不一致造成训练震荡双智能体训练里两个Actor的更新频率如果不加协调很容易出现一种典型病态协助者学得快人形机器人学得慢后者的策略还在更新前者的行为已经变了导致Critic永远在追一个漂移的目标。解决思路有两个维度一是给两个Actor配置不同的学习率和更新步数二是在Reward shaping里加入协作一致性项让两个智能体在相近状态下的策略输出差异不要过大。AssistMimic的公开代码我没细看但这种多智能体训练的基础问题任何框架都绕不开。5.3 物理引擎积分器精度影响物理接地的质量很多人忽略了一个看似底层的问题物理接地框架下引擎的积分器和接触求解算法直接决定物理量是否可信。MuJoCo默认的Euler积分在某些刚度较大的接触任务里会产生明显能量误差可能导致策略学到利用数值伪影的假物理行为。比如在地面上轻轻反复弹跳来维持稳定这种动作在仿真里很常见但真实机器人的驱动器和电池根本扛不住。我建议在复现这类工作之前先做一个小测试把一台人形机器人模型放在地面上静止观察足底接触力在连续几百个仿真步里的波动是否小于阈值。如果波动太大先调整物理引擎的求解精度再开始训练否则后边所有接地的结论都会沾水分。5.4 观测噪声和通信延迟必须显式建模协作策略在真实部署时要面对两个天然问题传感器噪声和通信延迟。仿真训练时如果默认观测完全精确、控制指令零延迟迁移后策略会变得高度敏感一点点延迟都会造成两个智能体动作不同步。我在做类似工作的时候会在训练阶段给两个智能体的观测分别注入不同级别的高斯噪声并随机丢帧模拟通信延迟。这个细节看着不起眼但往往能大幅改善真实环境里的成功率。5.5 只盯任务成功率会忽略接地质量很多工作汇报时喜欢给一个任务成功率的柱状图但单看成功率很容易被骗。两个策略可能都成功搬运了物体一个是全程稳定接触、力控平滑一个是靠巨大抖动和撞击硬生生把任务糊过去了。后者在仿真里也能完成任务真实环境下很快就会损毁硬件。我在评估AssistMimic这类策略时会额外计算一组物理接地指标足底接触时间占比、接触力峰值、关节力矩变化率、协作接触点位置漂移。只有这些指标也达标策略才算是真正过了物理接地这一关。6. 写在最后我对AssistMimic的判断和下一步想做的事6.1 适用边界与还未解决的hard caseAssistMimic这套方案强项在于用多智能体强化学习把双人物理协作纳入了端到端的学习框架让两个智能体能够在同一个物理系统里协同发力。但它的适用边界也比较明显任务需要相对明确的接触结构协作对象的位置和自由度不能过于复杂。如果两个智能体交互形式非常开放比如从远处互相抛掷物体这类框架也会变得很吃力。更现实的问题是数据获取成本。AssistMimic依赖高质量的双人协作运动数据做模仿引导这类数据采集成本远高于单人的动捕数据。很多研究团队连单人的运动数据都未必采集得足够直接上双人协作数据门槛确实高了不少。这也是我觉得制约这类方案落地的主要瓶颈。6.2 与低成本硬件结合的应用可能虽然基线硬件要求高但我觉得AssistMimic里学习协同发力的思想可以外溢到更轻量的设备上。比如给普通的四足机器人、轮式助力设备加一条机械臂让它在康复训练中辅助患者站立或者在仓储场景里用一台低成本移动机器人和人形机器人配合搬运细长物体。这类任务不要求全尺寸人形但需要的物理协作逻辑和AssistMimic是完全一致的。6.3 一个非常实用的落地小技巧最后分享一个我自己的习惯训练这类物理接地策略时别只在TensorBoard里盯reward曲线一定要把训练过程中关键接触点的接触力原始日志导出来按时间轴画成热力图。很多时候reward曲线看似在涨但接触力热力图显示两个智能体正以高频、高幅值的撞击式接触来完成协作。出现这种模式就说明物理接地项没有真正起作用策略是在走捷径。早一点看到这个信号能省下大量调参时间。这也是我在看完AssistMimic之后最想提的一件事论文里的方案再好真正决定项目成败的往往是这些训练细节里最不起眼的角落。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。