✅ 两种模式:“拖曳模式” vs “协同一体模式”
假设两台 MicroDuck 类型的双足小车,正面用磁铁吸住对接
模式 1:只控制其中一台,另一台不发任何动作指令(最容易出现的情况)
- A 小车执行走路步态,B 小车保持不动(比如保持站立锁死关节)
- 磁铁把 A、B 连在一起,A 往前走,靠磁力硬拽 B
- 缺点非常明显:
- B 是被动负载,相当于 A 拖着一个死重量,步态极易失衡、摔倒
- 磁铁会反复撞击、滑脱,走路的时候两台小车之间不停 “哐哐撞”
- 磁力一旦小于拉力,直接脱开,两台分开,各走各的
- 本质:一台主动机器人 + 一个被动负重块,不是一体机器人
模式 2:两台同时接收同步动作指令,真正 “合为一体协同运动”(你想要的效果)
这个才是真正意义上拼起来一起走路,不是硬拖
- 上层同一个主控(或者同一个无线指令),同时给 A、B 下发一模一样的步态 ONNX 策略
- A、B 各自独立跑自己的 PPO 步态闭环(每台都读取自己本机 IMU、自己关节编码器,各自执行 50Hz 的 RL 策略)
- 磁力只负责维持两台相对位置,防止左右、上下错位,动力由两台一起出力向前
- 此时,两台都在主动发力,合力往前走,而不是一台拖着另一台
- 注意:即使同步下发一样步态,两台本身有微小硬件差异(电机零点、摩擦力),依然会出现轻微步调不一致,磁力会吸收这个微小偏差;偏差太大磁铁会直接脱开
🧲 磁吸在这里起到的准确作用是什么?
磁铁仅仅是快速可分离的机械连接器,它只能传递拉力、压力,不能传递控制信号、不能自动同步两台机器人的动作
表格
| 项目 | 磁吸能做到 | 磁吸做不到 |
|---|---|---|
| 把两台小车贴在一起 ✅ | ✔ | ❌ |
| 传递拉力,一台拉另一台 ✅ | ✔ | ❌ |
| 自动同步两台的步态动作 | ❌ | ✔(必须靠上层控制器发同步指令) |
| 自动把两套 RL 策略合并成一个大的整体策略 | ❌ | ✔(要专门训练一个 “双体耦合 RL 策略” 才可以) |
🚀 进阶:更进一步,真正把两台当成一个整体机器人(难度最大)
上面模式 2 只是 “两台各自跑一样步态,靠磁铁贴在一起”,还不是严格意义上一个整体机器人。 想要让系统感知到 “现在我是两台粘在一起的联合体”,需要额外做两件事:
- 对接检测:磁铁旁边加一个霍尔传感器 / 接触开关,一旦磁吸成功,触发信号告诉上层主控:当前状态是【合体状态】
- 切换专门训练好的合体 RL 策略:合体之后,两台不再跑单独走路 ONNX,而是加载专门训练出来的双体耦合 ONNX 策略,这个策略是在仿真里直接把两台磁吸绑定在一起训练出来的,会主动考虑到两台之间的相互作用力,步态是专门为合体状态设计的,稳定性远高于两台单独步态硬拼。
如果没有专门训练合体策略,哪怕两台同步跑普通走路步态,两台之间会持续互相推挤,容易震荡、脱磁。
⚠️ 这个方案的核心坑点(双足磁吸合体特别容易踩)
- 磁力大小很难调:磁力太小,走路过程中容易挣脱分开;磁力太大,两台之间刚性太强,双足落地微小的高度差会产生巨大内力,直接把其中一台掀翻
- 双足本身是不稳定的动态系统,两台耦合之后,整个系统的动力学完全改变,单独训练的步态放到合体状态,动力学已经不对,sim2real 会崩
- 磁吸只能限制 “分离方向”,很难限制上下、左右、扭转,走路的时候两台会出现相对扭转错位,很快步态跑偏
总结一句话
磁铁只能把两台小车机械贴在一起;想两台一起主动同步走,必须由主控同时下发步态指令;想要走得稳、真正当成一台整体机器人,还要做对接检测 + 单独训练一套磁吸耦合状态下的强化学习策略。