开源不到一天1.9k星星!NVIDIA新突破,机器人ChatGPT时刻!
- 公众号:GitHubStore
- 发布时间:2026-07-02T08:02:00+08:00
- 微信链接:https://mp.weixin.qq.com/s/_EK3V-EJ7FxU5OKMl9wMVQ
- RSS ID:3916483328-2247495659_1
- Feed ID:MP_WXS_3916483328
- Glance 当前首页可见:是
项目简介
把人类的复杂动作,切成一个个小小的“运动 token”。就像语言模型把句子拆成词一样。然后,用一个普通的 Transformer 模型,去预测“下一个动作 token”是什么。预测完之后,把它解码成肌肉指令,让物理引擎去真实模拟。
没有花里胡哨的新架构,就是经典的自回归预测 + 物理仿真。
让人意外的是,很多高级行为直接涌现出来了。
ProtoMotions3 是一个 GPU 加速的仿真与学习框架,用于训练物理模拟的数字人类和人形机器人。我们的使命是为各种模拟人形学习任务和环境提供快速原型平台,服务于动画、机器人学和强化学习领域的研究者和从业者,促进跨社区协作。
这对机器人圈的人冲击很大。目前很多人形机器人团队还在为每个具体技能(走、跑、跳、抓取)单独设计控制器和奖励函数,工作量巨大。而这条路,似乎打开了一种新可能:先用海量数据预训练一个“通用身体”,让基础本能先长出来,再针对具体任务微调。
可以做什么
大规模动作学习
在 4 张 A100 GPU 上,只需 12 小时,即可让你的完全物理模拟角色从整个公开的 AMASS 人类动画数据集(40+ 小时)中学习运动技能。
可扩展的多 GPU 训练
可扩展到更大规模的数据集,每个 GPU 处理部分动作子集。例如,我们使用 24 张 A100,在 BONES 数据集(SOMA 骨骼格式)上,每张 GPU 处理 13K 个动作。立即查看 快速开始 和 SEED BVH 数据准备 来体验数据集和预训练模型。
一键重定向
使用内置的基于 PyRoki 的优化器,一条命令即可将整个 AMASS 数据集转移到你喜欢的机器人上。
训练任意机器人
只需修改一个命令参数:—robot-name=smpl → —robot-name=h1_2,并准备好重定向后的动作,即可在 12 小时 内让你的机器人学会 AMASS 的运动技能(详见此处)。
Sim2Sim 测试
一键切换模拟器(—simulator=isaacgym → —simulator=newton → —simulator=mujoco),在不同物理引擎(NVIDIA Newton、MuJoCo CPU)中测试 H1_2 或 G1 的机器人控制策略。下方展示的策略仅使用真实硬件可获取
从仿真到真实
在仿真中训练,然后部署到真实硬件。ProtoMotions 在整个 BONES-SEED 数据集(约 142K 个动作)上训练了一个通用跟踪策略,可零样本直接转移到 Unitree G1 人形机器人。
我们的部署流水线导出一个单一的 ONNX 模型(已内置观测计算),因此部署框架只需提供原始传感器信号——无需重写观测函数或匹配训练内部细节。我们通过优秀的 RoboJuDo 框架在 Unitree G1 上进行了测试,只需添加一个策略文件,无需修改 RoboJuDo 核心。
高保真渲染
在 IsaacSim 5.0+ 中测试你的策略,支持加载美观的 Gaussian Splatting 背景(使用 Omniverse NuRec 生成——目前渲染场景尚不可物理交互)。
使用 Kimodo 进行动作创作
配合 Kimodo(NVIDIA 的文本到动作生成模型),通过文本提示生成任意动作,然后使用 ProtoMotions 训练物理-based 策略——支持 SOMA 动画角色和 Unitree G1 机器人。训练后的策略可直接部署到真实硬件。
详见 Kimodo 数据准备。
程序化场景生成
程序化生成大量场景,用于可扩展的合成数据生成 (SDG):从种子动作集开始,使用 RL 让动作适应增强后的场景。
生成式策略
训练生成式策略(例如 MaskedMimic),让角色自主选择“动作”来完成任务。关于可复用的离散潜在先验和 PEFT 任务适配器,请参阅 GPC 和 PEFT 指南。
复杂地形导航
训练你的机器人攀登具有挑战性的地形!
自定义环境
有新的任务?使用模块化组件构建——无需庞大的单一环境类。以下是 steering(转向)任务的组成示例:
Layer
File
功能
Controlsteering_control.py管理任务状态(目标方向、速度、朝向)。定期采样新的朝向目标。
Observationobs/steering.py纯 Tensor 内核——将目标转换到机器人局部坐标系 → 5D 特征向量。
Rewardrewards/task.pycompute_heading_velocity_rew —— 混合方向匹配 (0.7) 和朝向匹配 (0.3) 奖励。
Experimentsteering/mlp.py通过上下文路径将组件连接为 MdpComponent 实例。
每个部分都是独立的函数或类——实验配置使用 MdpComponent 和 FieldPath 描述符将它们绑定成完整任务。
新 RL 算法
想尝试新的 RL 算法?利用我们的模块化设计,只需约 50 行代码 即可在 ProtoMotions 中实现如 ADD 等算法:
📄 protomotions/agents/mimic/agent_add.py
自定义模拟器
想使用自己的模拟器?实现以下不同模拟器之间的接口 API:
📄 protomotions/simulator/base_simulator/
参考社区贡献的示例:
📄 protomotions/simulator/genesis/
🤖 添加你自己的机器人
想添加自己的机器人?按以下步骤操作:
将你的 .xml MuJoCo 规格文件添加到 protomotions/data/assets/mjcf/
填写配置字段(参考 protomotions/robot_configs/g1.py 等示例)
在 protomotions/robot_configs/factory.py 中注册
即可完成!
写在最后
过去,机器人控制很多时候像“手工艺”——工程师凭经验和大量试错,一点点调参数。现在,这项工作在尝试把“身体智能”变成一种可规模化的“语言建模”问题。
用数据驱动 + 自回归预测,让物理约束下的智能自然涌现。这条路如果走通,未来人形机器人的开发门槛可能会大幅降低。基础运动能力先靠大规模预训练搞定,开发者就能把精力放在更高层的任务规划和具体场景适配上。
当然,现在还只是研究阶段。真实世界比仿真复杂太多,传感器噪声、延迟、硬件磨损等问题都需要继续攻克。但至少,它提供了一个清晰、可实践的新思路。
项目地址
https://github.com/NVlabs/ProtoMotions
如果你觉得这篇文章不错,别忘了点赞、在看、转发给更多需要的小伙伴哦!
预览时标签不可点