NVIDIA 中国开发者日活动 中国・苏州 | 2025 年 11 月 14 日 了解详情
机器人

使用 NVIDIA Isaac Lab 和 Newton 训练四足运动策略并模拟布料操作

物理学在机器人仿真中起着关键作用,为机器人在现实环境中的行为与交互提供了精确的虚拟呈现基础。借助这些仿真工具,研究人员和工程师能够以更安全、高效且经济的方式,对机器人控制算法进行训练、开发、测试,并验证机器人原型设计。

然而,仿真通常难以完全还原现实,这一挑战被称为“仿真与现实之间的差距”。机器人开发者亟需一个统一、可扩展且可定制的解决方案,以准确模拟现实世界中的物理特性,并支持多种类型的求解器。

本文将介绍如何在 NVIDIA Isaac Lab 中基于 Newton 训练四足机器人实现从一个位置到另一个位置的移动,以及如何利用工业机械臂在多物理场仿真环境中完成衣物折叠任务。

什么是 Newton? 

Newton 是一个开源且可扩展的物理引擎,由 NVIDIA、Google DeepMind 和 Disney Research 共同开发,并由 Linux 基金会 进行管理,致力于推动机器人学习与开发的进步。

Newton 基于 NVIDIA WarpOpenUSD 构建,使机器人能够以更高的精度、速度和可扩展性学习处理复杂任务。该平台兼容多种机器人学习框架,如 MuJoCo Playground 和 Isaac Lab。通过 Newton Solver API,开发者可以接入包括 MuJoCo Warp 在内的多种物理引擎,实现对基于张量的数据模型的操作,从而便捷地集成至 Isaac Lab 的训练环境中。

Architecture diagram including sections labeled Isaac Lab, Newton, MuJoCo, and Warp.
图1:Newton 是一个独立的 Python 软件包,提供用于描述机器人系统物理模型与状态的 GPU 加速接口。

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 测试版的亮点主要有:

  • Newton 求解器 MuJoCo Warp 在运动模拟方面,速度比在 GeForce RTX 4090 上运行的 MJX 快 152 倍,在操作任务方面则快 313 倍。NVIDIA RTX PRO Blackwell 系列为 MuJoCo Warp 和 MJX 分别带来最高 44% 和 75% 的性能提升。
  • 作为新一代 Isaac Lab 的后端,Newton Beta 相较于 PhysX,可将 MuJoCo Warp 在手动灵巧操作任务中的运行速度提升 65%。
  • 此外,针对服装等薄型可变形体的 Vortex Block Descent(VBD)求解器,以及适用于颗粒状材料的隐式材质点法(MPM)求解器,在性能与稳定性方面也得到了进一步增强。

如何在 Isaac Lab 中基于 Newton 框架训练四足机器人的运动策略

Isaac Lab 中集成的新 Newton 物理引擎为机器人研发带来了更高效、更稳定的工作流程。

本节将展示一个端到端的示例,涵盖四足运动策略的训练、在模拟环境中的性能验证,以及为实际部署所做的准备工作。以 ANYmal 机器人为案例,我们将演示这一完整且高效的训练、验证与部署流程。

第一步:利用 Newton 训练运动策略

第一步是配置存储库,并利用 Isaac Lab 中的强化学习脚本从零开始训练策略。本示例采用 rsl_rl 框架,训练 ANYmal-D 机器人在平面刚性地形上实现行走。通过GPU 并行化技术,支持在数千个同步环境中进行训练,从而加快策略收敛速度。

要在无外设模式下启动训练以实现最佳性能,请执行以下命令:

./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 文件),用于进入下一阶段。

Gif showing a time-lapse of RL training visualized using the Newton Visualizer, with quadrupeds on the right and code on the left.
图2。使用 Newton Visualizer 对 RL 训练延迟进行可视化

第二步:通过 Sim2Sim 迁移验证策略

Sim2Sim 传输是一项关键的完整性检查,用于确保策略不会过拟合于某一特定物理引擎的特性。能够在不同模拟器(如 PhysX 和 Newton)之间成功迁移的策略,通常在真实物理机器人上也表现出更高的成功率。

一个关键挑战在于,不同的物理引擎在解析机器人的 USD 文件时,可能会以不同的顺序排列其关节。为解决这一问题,我们采用简单的 YAML 映射文件,对策略的观测和动作进行重新映射。

要运行在 Newton 上使用基于 PhysX 的 Isaac Lab 训练出的策略,请使用提供的迁移脚本:

./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 代码库获取。

视频1. 展示了使用Newton后端训练的ANYmal-D策略成功部署于基于PhysX的Isaac Lab中,验证了Sim2Sim迁移的实际效果

第 3 步:准备部署 Sim2Real 系统

工作流的最后阶段是将仿真训练得到的策略迁移到物理机器人上。

例如,在标准的 Isaac Lab 环境中,使用 Newton 后端为 ANYmal-D 机器人训练策略。训练过程仅依赖于物理机器人传感器所提供的观测数据,如 IMU 和关节编码器的信息,确保不使用任何特权信息。

随后,在苏黎世联邦理工学院机器人系统实验室(RSL)与 NVIDIA 合作伙伴的协助下,该策略被直接部署到其物理实体 ANYmal 机器人上。硬件测试结果表明,机器人成功实现了行走步态,验证了从 Isaac Lab 中的仿真训练到现实世界系统测试的直接迁移路径(视频 2)。

视频2展示了物理ANYmal机器人执行行走步态的过程。该策略完全在Isaac Lab的实验版本中使用Newton后端进行训练,并直接部署到实际硬件上。

这一完整的训练、验证与部署流程,展示了 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 布料求解器,在 RTX 4090 上以约 30 FPS 的帧率运行,并在整个模拟过程中保持稳定的无渗透接触效果。

与其他采用无渗透动力学的基于 GPU 的模拟器(例如基于 GPU 的增量势接触求解器 GPU-IPC)相比,该示例的性能提升了 300 倍以上,是目前公开的完全无渗透布料模拟演示中速度极为领先的一个。

视频 3 展示了 Newton 独立引擎在 NVIDIA Omniverse Kit 中渲染的布料操作演示,结合了刚体与可变形体的物理特性。

第二步:认识多物理场耦合

该演示是多物理场耦合的典型范例,展示了具有不同动态特性的系统之间的相互作用。通过为各个组件分配专用的求解器,实现了高效的协同仿真。在查看 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 如何为推动机器人学习、弥合仿真与现实之间的差距提供统一的基础平台。

苏黎世联邦理工学院机器人系统实验室(RSL)长期致力于将 Newton 平台应用于土木工程中的多物理场仿真,特别是在重型设备自动化领域。该团队采用 Newton 中的隐式材质点法(MPM)求解器,有效模拟颗粒材料之间的相互作用,如土壤、沙石与刚性机械结构碰撞等复杂场景。

与此同时,ETH 已在机器人与图形学研究中更广泛地应用 Warp,涵盖可部署运动控制中的微分模拟基于高斯点阵(FOCI)的轨迹优化,以及利用 GarmentCodeData 数据集实现的大规模 3D 服装建模。

视频 4:Newton 用于模拟重型机械与大量颗粒材料之间的相互作用。演示者:苏黎世联邦理工学院的 Maximilian Krause、Lorenzo Terenzi 和 Lennart Werner。

Lightwheel 积极为 Newton 贡献力量,专注于 SimReady 资产的开发与求解器优化,尤其在多物理场景中针对土壤、电缆等可变形体的模拟方面表现突出。以下演示展示了在大规模环境中应用的隐式 MPM 求解器,可用于模拟由多种材料构成的非刚性地形上任意四足机器人的运动。

视频 5:ANYmal 四足机器人在由沙子、碎石等多种材料构成的非刚性地形上进行交互运动

北京大学(PKU)正通过集成其基于 IPC 的求解器 Taccel,将 Newton 框架拓展至触觉领域,用于模拟机器人机械手的视觉化触觉感知。借助 Newton 基于 GPU 加速的可微分架构,研究人员能够对细粒度的接触交互进行建模,这对于实现高精度的触觉感知与可变形物体操作具有重要意义。

视频6展示了Tac-Man操作Taccel的模拟过程,其仿真结果与现实世界的执行高度接近,仿真与现实之间的差异极小。

Style3D 正将其在布料与软体模拟领域的深厚技术积累引入 Newton,推动服装及复杂交互可变形物体的高保真建模。目前,一个简化版的 Style3D 求解器已集成至 Newton 平台,未来还将推出 API,支持高级用户运行包含数百万顶点的全尺寸模拟。

视频 7:利用 Newton 对包含复杂交互的服装与可变形体进行高保真建模

慕尼黑工业大学(TUM)正在利用 Newton 在仿真环境中运行经过训练的灵巧操作策略,这些策略已在真实机器人上得到验证,标志着我们在实现仿真与现实闭环方面迈出了关键的第一步。此外,目前已能够在 MuJoCo Warp 中通过 4000 个并行环境进行策略训练。下一个目标是将这些策略成功迁移至实际硬件,并结合具有空间分辨率的触觉皮肤,进一步将该框架拓展至精细操作任务。

了解 TUM AIDX 实验室 如何利用 Warp 加速其在触觉手持操作代理方面的机器人研究,以及如何通过 Newton 推动机器人学习研究的进展。

视频 8 展示了 Newton 平台用于运行已训练完成的灵巧操作策略,这些策略已在真实机器人上成功验证。

开始使用 Newton 

Newton 物理引擎采用模块化、可扩展且与模拟器无关的设计,能够为机器人研究人员提供高保真的仿真能力,并可直接集成于机器人学习中的各类求解器。

作为一个由社区驱动的开源项目,Newton 支持开发者自由使用、分发和扩展,可添加自定义求解器,并为整个生态系统贡献力量。

了解将于9月27日至10月2日在韩国首尔举行的CoRL与Humanoids大会所展示的研究成果。

此外,您还可以参与 2025 BEHAVIOR 挑战赛,这是一项机器人基准测试,旨在评估推理、运动与操作能力,涵盖 50 项家庭任务以及 10,000 次远程操作演示。

订阅我们的时事通讯并在 LinkedInInstagramXFacebook 上关注 NVIDIA Robotics,及时获取最新资讯。浏览 NVIDIA 文档YouTube 频道,参与 NVIDIA 开发者机器人论坛立即注册免费的 NVIDIA 机器人开发基础课程,开启您的机器人开发之旅。

 

标签