我是一名游戏动画师,正在尝试让NPC通过物理引擎学习移动,而不是使用动作捕捉。设置:MyoSuite 的 MyoLeg(80 条腿肌肉)在 MuJoCo / MuJoCo Warp 中,使用 PPO(通过 mjlab 的 RSL-RL)在一台笔记本电脑 GPU 上运行,奖励函数接近 Schumacher et al. 2023:在目标速度行走、自适应努力成本、以及“疼痛”惩罚(针对关节限制和硬地面撞击)。没有演示数据。

  • 尝试 1:训练约 20 分钟后它开始行走,但步态呈跺脚状:峰值脚部力约为体重的 4.6 倍,步频约 230 步/分钟。使用均值动作(无噪声)时每次都会摔倒。

  • 尝试 2:使用 sigmoid 肌肉指令并加大撞击惩罚。力度降至约体重的 2 倍,步伐变得更平稳。但关闭噪声后,约 1.3 秒内仍会摔倒。

  • 尝试 3:我继续训练,同时逐步降低动作噪声(标准差降至 0.05)。现在它使用均值动作行走:32 次中 0 次摔倒,步频约 150 步/分钟,步长约 0.44 米,力度约为体重的 1.5 倍。

自此以后,它学会了遵循速度和方向指令,能够启动和停止(大多数情况),并在实时驱动 UE5 人偶。当前问题:它呈现左右不对称。左转 90 度后停止时会摔倒,右转后则不会。因此下一次运行加入了镜像对称性损失(Yu、Turk 和 Liu 2018)。

问题:对于已经训练过肌肉模型的人来说,“政策依赖于其自身的探索噪声”是常见现象吗?你们是通过降低噪声(如本人所做)来解决,还是使用其他方法(如相关噪声,如 Lattice 等)?

我会在一个小的 YouTube 频道记录整个过程(如果在评论区放置链接没问题的话)。我大部分代码都使用 Claude(AI 助手)来编写。