物理在机器人仿真中发挥着至关重要的作用,它为机器人在真实环境中的行为及交互提供了精准的虚拟呈现基础。借助仿真器,研究人员和工程师能够以安全、高效且经济的方式训练、开发、测试和验证机器人控制算法及原型设计。
然而,仿真往往难以完全复刻现实,这一问题被称为“仿真与现实的差距”(sim-to-real gap)。机器人开发者需要一个统一、可扩展且可定制的解决方案来对现实世界的物理现象进行建模,其中包括对不同类型求解器的支持。
本文将详细介绍如何在 NVIDIA Isaac Lab 中使用 Newton 训练四足机器人,实现从一个点移动到另一个点,以及如何搭建包含工业机械臂的多物理场仿真环境,完成衣物折叠任务。
什么是 Newton?
Newton 是一款开源、可扩展的物理引擎,由 NVIDIA、Google DeepMind 和 Disney Research 共同开发,由 Linux Foundation 管理,旨在推动机器人学习与开发领域的发展。
Newton 基于 NVIDIA Warp 和 OpenUSD 构建,能让机器人以更高的精度、速度和可扩展性学习处理复杂任务。它与 MuJoCo Playground、Isaac Lab 等机器人学习框架兼容。Newton 求解器 API 为 MuJoCo Warp 等不同物理引擎提供了接口,使其能在基于张量的数据模型上运行,从而轻松与 Isaac Lab 中的训练环境集成。

Newton 的核心是用于数值积分和约束求解的求解器模块。求解器既可以基于约束或力,也可以采用直接法或迭代法,还能使用最大坐标表示或简化坐标表示。
由于采用了通用接口和共享数据模型,无论运行的是 MuJoCo Warp、Disney Research 的 Kamino 求解器,还是自定义求解器,与 Newton 的交互方式始终保持一致。这种模块化设计还支持复用碰撞处理、逆运动学、状态管理和时间步长逻辑,无需重写应用代码。
在训练方面,Newton 提供基于张量的 API,将物理状态以兼容 PyTorch 和 NumPy 的数组形式呈现,支持高效批处理,并能与 Isaac Lab 等机器人学习框架无缝集成。通过 Newton Selection API,训练脚本可查询关节状态、执行动作,并将结果反馈给学习算法——所有操作均通过单一、统一的接口完成。
由 Google DeepMind 开发的 MuJoCo Warp 已作为 Newton 求解器完全集成,同时也为 DeepMind 技术栈中的 MJX 和 Playground 提供支持。这使得模型和基准测试能以极低的成本在 Newton、Isaac Lab 和 MuJoCo 环境之间无缝迁移。
Newton 及其相关求解器基于 Apache 2.0 许可证发布,这确保了社区能够自由采用、扩展该项目并为其贡献力量。
Newton 测试版有哪些亮点?
Newton 测试版的亮点包括:
- 在 GeForce RTX GPU 上,作为 Newton 主要求解器的 MuJoCo Warp,在运动控制场景下速度比 MJX 快高达 152 倍,在操作任务场景下快高达 313 倍;而 NVIDIA RTX PRO GPU 能使 MuJoCo Warp 的速度再提升 44%,MJX 的速度提升 75%。
- 作为下一代 Isaac Lab 后端,Newton 测试版使用 MuJoCo Warp 实现的手部灵巧操作,比使用 PhysX 时速度快高达 65%。
- 增强了 Vortex Block Descent(VBD)求解器的性能和稳定性,使其适用于布料等薄形可变形物体;同时优化了 Implicit Material Point Method(MPM)求解器,使其适用于颗粒状材料。
如何在 Isaac Lab 中使用 Newton 训练四足机器人的运动策略?
Isaac Lab 中全新集成了 Newton 物理引擎,为机器人研究与开发打造了更快速、更稳健的工作流。
本节将展示一个端到端示例:训练四足机器人的运动策略、在不同仿真器间验证其性能,以及为现实世界部署做准备。我们将以 ANYmal 机器人为案例,演示“训练—验证—部署”的高效流程。
步骤 1:使用 Newton 训练运动策略
第一步是搭建代码库,并使用 Isaac Lab 中的某个强化学习脚本从零开始训练策略。本示例将通过 rsl_rl 框架,训练 ANYmal-D 机器人在平坦刚性地面上行走。GPU 并行计算支持在数千个同步环境中同时训练,实现策略的快速收敛。
若要以 headless mode 启动训练以获得最佳性能,请运行以下命令:
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py
--task Isaac-Velocity-Flat-Anymal-D-v0 --num_envs 4096 --headless
借助 Newton 测试版,现在可以使用全新的轻量级 Newton Visualizer 监控训练进度,且无需承担完整 Omniverse GUI 带来的性能开销。只需添加 –newton_visualizer 标志即可:
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py
--task Isaac-Velocity-Flat-Anymal-D-v0 --num_envs 4096 --headless
--newton_visualizer
训练完成后,会生成一个策略检查点文件(.pt 文件),为下一阶段做好准备。

步骤 2:通过 Sim2Sim 迁移验证策略
Sim2Sim 迁移是一项关键的合理性检查,用于确保策略不会过度拟合某一物理引擎的特定特性。如果一个策略能成功在 PhysX、Newton 等不同仿真器间迁移,那么它在实体机器人上正常运行的概率会显著更高。
这一过程的核心挑战在于,不同物理引擎解析机器人 USD 文件及排列关节顺序的方式可能存在差异。为解决此问题,我们通过一个简单的 YAML 映射文件,对策略的观测数据和动作进行重新映射。
若要在基于 PhysX 的 Isaac Lab 中运行在 Newton 环境下训练的策略,可使用提供的迁移脚本:
./isaaclab.sh -p scripts/newton_sim2sim/rsl_rl_transfer.py \
--task=Isaac-Velocity-Flat-Anymal-D-v0 \
--num_envs=32 \
--checkpoint <PATH_TO_POLICY_CHECKPOINT> \
--policy_transfer_file
scripts/sim2sim_transfer/config/newton_to_physx_anymal_d.yaml
该迁移脚本可在 isaac-sim / IsaacLab GitHub 代码库中获取。
步骤 3:为 Sim2Real 部署做准备
该工作流的最后一步,是将在仿真环境中训练的策略迁移到实体机器人上。
在本示例中,我们在标准 Isaac Lab 环境中,完全借助 Newton 后端为 ANYmal-D 机器人训练了一个策略。训练过程特意限制为仅使用实体机器人传感器可获取的观测数据(如来自 IMU 和关节编码器的数据),即训练过程中未使用任何“特权信息”(privileged information)。
在苏黎世联邦理工学院机器人系统实验室(RSL)的 NVIDIA 合作伙伴支持下,该策略被直接部署到他们的实体 ANYmal 机器人上。硬件测试结果显示,机器人成功实现了行走步态,证明了从 Isaac Lab 训练到现实系统测试的直接路径(见视频 2)。
这一完整的“训练—验证—部署”流程表明,Newton 为机器人从仿真走向现实,实现实际应用价值提供了有力支持。
借助 Newton 独立引擎实现多物理场仿真
多物理场仿真能在单一框架中捕捉刚体(如机器人手部)与可变形物体(如布料)之间的耦合交互。这使得机器人设计、控制和任务性能的评估更贴近现实,同时支持基于数据的优化。
Newton 可与 Isaac Lab 配合使用,但开发者也可在独立模式下通过 Python 直接调用它,以实验复杂的物理系统。
本节将重点展示 Newton 对具有不同物理属性的混合系统进行仿真的这一关键特性。我们将以刚性机械臂操作可变形布料为例,说明 Newton API 如何助力在单一实时仿真中轻松组合多个物理求解器。
步骤 1:启动交互式演示
Newton 附带了一系列易于运行的示例。在 Newton 代码库的根目录下,只需一条命令即可启动 Franka 机械臂与布料的演示程序。
首先,确保环境配置正确:
# Set up the uv environment for running Newton examples
uv sync --extra examples
接下来,运行布料操作示例:
# Launch the Franka arm and cloth demo
uv run -m newton.examples cloth_franka
运行后会打开一个交互式查看器,可实时观看 GPU 加速的仿真过程。Franka-cloth 演示程序采用基于 GPU 的 VBD Cloth solver,在 RTX GPU 上的运行帧率约为 30 FPS,且能确保整个仿真过程中无穿透接触(penetration-free contact)。
与其他同样支持无穿透动力学的 GPU 仿真器,比如 GPU-IPC 相比,本示例的性能提升超过 300 倍,是目前速度最快的全无穿透布料操作演示程序之一。
步骤 2:理解多物理场耦合
该演示程序是多物理场仿真的典型案例,展示了具有不同动力学行为的系统之间的交互。这种交互通过为每个组件分配专用求解器来实现。查看 example_cloth_franka.py 文件,可了解求解器的初始化方式:
# Initialize a Featherstone solver for the robot
self.robot_solver = SolverFeatherstone(self.model, ...)
# Initialize a Vertex-Block Descent (VBD) solver for the cloth
self.cloth_solver = SolverVBD(self.model, ...)
只需将 SolverFeatherstone 替换为其他支持刚体仿真的求解器,比如 SolverMuJoCo,即可轻松切换机器人求解器。
仿真循环中实现了这些求解器的协同工作,这正是整个流程的核心。本示例采用单向耦合方式:刚体(机械臂)会对可变形物体(布料)产生影响,但反之则不成立。在布料操作场景中,布料对机器人动力学的影响可忽略不计,因此这种耦合方式是合理的。仿真循环逻辑如下:
- 更新布料状态:cloth_solver 对布料的运动进行仿真,对来自机器人的碰撞做出反应。
- 更新机器人状态:robot_solver 推进 Franka 机械臂的状态(机械臂作为运动学物体)。
- 碰撞检测:引擎检测新位置下的机器人与布料粒子之间的碰撞。
# A simplified view of the simulation loop in example_cloth_franka.py
def simulate(self):
for _step in range(self.sim_substeps):
# 1. Step the robot solver forward
self.robot_solver.step(self.state_0, self.state_1, ...)
# 2. Check for contacts between the robot and the cloth
self.contacts = self.model.collide(self.state_0, ...)
# 3. Step the cloth solver, passing in robot contact information
self.cloth_solver.step(self.state_0, self.state_1, ..., self.contacts, ...)
这种可由用户直接控制的显式循环,充分体现了 Newton API 的强大功能,让研究人员能对不同物理系统的耦合方式进行精细控制。
Newton 开发团队计划进一步扩展 Newton 的功能,实现更深层次、更紧密的耦合。这包括探索双向耦合,即适用于两个系统间动力学影响显著的场景,例如机器人在土壤、泥浆等可变形材料上运动时,土壤也会对行走中的刚体产生反作用力;同时,团队还计划为特定求解器组合实现隐式耦合,以更自动化地管理系统间的力传递。
生态系统对 Newton 的应用
Newton 开源生态系统正快速发展,众多顶尖高校和企业正集成专用求解器与工作流。从触觉感知到布料仿真,从灵巧操作到复杂地形运动,这些合作案例充分表明,Newton 为推动机器人学习发展,缩小“仿真与现实的差距”提供了通用基础。
苏黎世联邦理工学院机器人系统实验室积极将 Newton 用于土方工程应用中的多物理场仿真,尤其聚焦重型设备自动化。该实验室使用 Newton Implicit Material Point Method(MPM)求解器,捕捉土壤、碎石等颗粒状物质与刚性机械的碰撞交互。
同时,苏黎世联邦理工学院还将 Warp 更广泛地应用于机器人与图形学研究,包括用于可部署运动控制的可微仿真、基于 Gaussian splats 的轨迹优化(FOCI),以及通过 GarmentCodeData 数据集实现的大规模 3D 服装建模。
光轮智能通过开发 SimReady 资产和优化求解器,特别针对多物理场场景中的土壤、线缆等可变形物体,为 Newton 项目积极贡献力量。下方演示展示了在大型环境中应用 Implicit MPM 求解器,模拟 ANYmal 四足机器人在由多种材料构成的非刚性地形上的运动。
北京大学将基于 IPC 的求解器 Taccel 集成到 Newton 中,将其扩展至触觉领域,用于对机器人操作器的视觉触觉感知进行仿真。借助 Newton 基于 GPU 加速的可微架构,北京大学的研究人员能够对触觉操作和可变形物体操作中至关重要的细粒度接触交互进行建模。
Style3D 将其在布料和软体仿真领域的深厚专业知识融入 Newton,实现了对服装和可变形物体复杂交互的高保真建模。Style3D 求解器的简化版本已集成到 Newton 中,未来计划开放 API,允许高级用户运行涉及数百万个顶点的大规模仿真。
慕尼黑工业大学利用 Newton 在仿真环境中重新运行已在实体机器人上验证过的灵巧操作策略,这是实现“仿真—现实”闭环的重要第一步。此外,慕尼黑工业大学已经实现利用 MuJoCo Warp,在 4,000 个并行环境中完成策略训练,下一步目标是将策略迁移到硬件上,之后再扩展该框架,利用空间分辨触觉皮肤实现精细操作。
了解更多关于慕尼黑工业大学 AIDX Lab 如何利用 Warp 加速触觉手部操作智能体机器人研究的信息,以及 AIDX Lab 如何借助 Newton 推进机器人学习研究。
视频 8. Newton 用于在仿真环境中重新运行已在实体机器人上验证过的灵巧操作策略
开始使用 Newton
Newton 物理引擎不仅能提供机器人研究人员所需的仿真精度,其模块化、可扩展且与仿真器无关的设计,使得集成各类求解器以支持机器人学习的过程变得简单易行。
作为一个开源的社区驱动型项目,开发者可对 Newton 进行使用、分发、扩展,包括添加自定义求解器,为生态系统贡献代码。
- 若要开始使用独立的 Newton 测试版,请查看 newton-physics/newton GitHub 代码库。
- 若要试用 Newton,可通过 GitHub 访问 isaac-sim/IsaacLab。
- 访问 Newton Developer 网页,获取更多资源。
更多研究成果,请关注 9 月 27 日至 10 月 2 日在韩国首尔举办的 CoRL 及 Humanoids 会议。
欢迎参加 2025 BEHAVIOR Challenge,这是一项机器人基准测试,旨在测试机器人的推理、运动和操作能力,包含 50 项家务任务和 10,000 个远程操作演示。