人体和机器人结构不一样
骨架比例、自由度数量、关节顺序、接触点分布都不同,不可能做简单的坐标映射。
人形机器人的模仿学习里,最难的部分往往不是策略训练,而是“如何把人类动作变成机器人能执行的动作”。这条 pipeline 处理不好,前面的学习全部白费。
骨架比例、自由度数量、关节顺序、接触点分布都不同,不可能做简单的坐标映射。
人类的很多自然动作在机器人关节空间里可能是奇异的或者超出关节限位的。
人的足底、手掌接触模式,和机器人的末端执行器几何完全不同。
人的动态特性(质量分布、响应速度、力矩输出)和机器人完全不在一个量级。
动捕、遥操作、仿真规划器或已有策略 rollouts。每种数据源的偏差和成本不同,质量差异也很大。
把原始动作数据映射到公共骨架表示,处理骨骼长度差异和采集系统的噪声。
把人体动作映射到机器人关节空间,处理自由度数量不匹配的问题。通常需要自定义 IK 求解器或 learning-based 方法。
修正足底滑移、接触力方向错误、关节超限等问题。这一步往往需要手动规则或 learning-based 校正。
处理采样率差异、相位对齐、动作分割,把连续动作切分成可用的片段。
对处理后的数据进行归一化、分割、重采样,形成可直接用于 IL 训练的干净数据集。
最接近自然人类动作,但需要 retarget;骨骼长度差异处理复杂,foot skating 需要后处理。
直接用机器人同构或近构骨架采集,无需 retarget;但数据量少、采集成本高、动作不一定自然。
数据完全基于机器人模型,无 retarget 问题;但可能缺乏人类动作的自然性。
适合做 knowledge distillation,但质量取决于 teacher 策略本身。
映射后的关节角度超出机器人关节限位,导致动作不可执行或危险。
机器人站立时足底位置和参考动作不符,导致训练数据包含不可能的滑动。
机器人质心位置或速度超出可行域,导致训练出的策略无法保持平衡。
经过大量修正后,动作失去了原始人类演示的风格和自然性。
把原始人类动作和 retarget 后结果同时可视化,检查姿态和接触是否合理。
逐帧检查是否有任何关节超出物理限位,并统计超限比例。
用机器人模型 forward dynamics 验证 retarget 动作是否能被真实执行。
把 retarget 动作在仿真器里直接回放,观察是否有碰撞、奇异或爆炸等问题。
用少量 retarget 数据训练一个 baseline 策略,验证数据质量是否足以学到合理行为。
先读 view_motion_humanoid_args 解析,把 reference motion 的基本格式和可视化链路弄清楚。
接着读 关键流程 UML 图 和 配置文件系统详解,把 retargeting 参数是怎么进入训练系统的串起来。
再读 给定目标速度执行复合动作,然后跳到 RL vs IL 和 Sim2Real Pipeline。
Retargeting 的质量直接决定了模仿学习数据的上限。即使策略训练做得再好,输入的 retarget 数据不行,最终效果也一定不行。
Retargeting 是 IL 数据准备的核心环节。
IL 数据质量决定 RL + IL 混合系统的最终上限。
Retarget 后的动作是否能在真实系统上执行,是 Sim2Real 的最后一步。
理解参考动作数据格式和动作可视化流程,是进入 retargeting 的最小入口。
用顺序图解释 run.py、EnvBuilder、AgentBuilder、BaseAgent、BaseEnv 的整体数据流。
理解 MimicKit 的 args、配置文件和环境构建方式,知道 retargeting 相关参数是如何被读取和应用的。
这个例子展示了 reference motion、速度目标和复合动作的组合方式,是理解 retargeting 如何服务技能控制的具体案例。
如果你刚准备进入 retargeting 代码阅读,这个节奏化建议能帮你避免一开始就被细节淹没。