机器人

R²D²:基于 NVIDIA Isaac Lab 拓展多模态机器人学习

构建强大的智能机器人需要在复杂环境中进行测试。然而,在现实世界中收集数据不仅成本高昂、耗时漫长,还常常伴随高风险。针对关键危险场景(例如高速碰撞或硬件故障)进行安全训练几乎是不可能的。更严重的是,现实世界的数据往往偏向“正常”运行条件,导致机器人在面对突发状况时缺乏应对能力。

模拟对于弥合这一差距至关重要,可为严格的开发提供无风险的环境。然而,传统流水线难以满足现代机器人的复杂需求。当今的多面手机器人必须掌握多模态学习,融合视觉、触觉和本体感知等多种输入,才能在混乱且非结构化的环境中有效导航。这对仿真技术提出了新的要求:必须在紧凑的训练循环中实现规模性、真实感以及多模态感知能力,而这些正是受 CPU 限制的传统模拟器难以高效应对的挑战。

本期 NVIDIA 机器人研发摘要 (R²D²) 介绍了 NVIDIA Isaac Lab,一个来自 NVIDIA Research 的开源 GPU 原生仿真框架,如何将这些功能整合到一个专为大规模多模态 机器人学习 设计的统一堆栈中。

机器人学习的主要挑战

仿真中的现代机器人学习将仿真基础设施推向极限。为高效训练出稳健的策略,研究人员必须克服以下关键障碍:

  • 将模拟扩展到数千个并行环境,以解决 CPU 受限工具训练耗时过长的问题
  • 集成多种传感器模式(视觉、力觉和本体感知),形成同步的高保真数据流
  • 建模真实执行器与控制频率,以捕捉物理硬件的细微特性
  • 通过可靠的域随机化与精确的物理属性,缩小仿真与现实世界部署之间的差距

Isaac Lab:一个用于机器人学习的统一开源框架

Isaac Lab 是一个用于多模态机器人学习的 GPU 加速仿真框架。作为一个统一的 GPU 原生平台,它致力于应对现代机器人学习中的各项挑战。通过将物理仿真、渲染、感知与学习整合至单一架构中,该平台为研究人员提供了训练具备大规模与高保真度的通用智能体的技术支持。

A robot focused on handling a cardboard box within a warehouse setting, showcasing its precision and functionality. Below the main view, there are color-coded overlays displaying different perspectives or depth information related to the box's geometry and the robot's hand positioning.
图 1. Isaac Lab 仿真框架支持多种机器人应用

Isaac Lab 核心元件

Isaac Lab 的关键元素包括:

  • GPU 原生架构:通过端到端 GPU 加速支持物理特性和渲染,实现大规模并行计算,显著缩短训练时间
  • 模块化和可组合设计:提供适用于多种应用场景(如人形机器人、机械手)的灵活组件与可复用环境,加快开发进程
  • 多模态仿真:结合分块 RTX 渲染与基于 Warp 的传感器模拟,生成丰富的同步观测数据(视觉、深度、触觉),并支持逼真的多频率控制回路
  • 集成工作流:原生支持强化学习(RL)与模仿学习(IL),简化大规模数据收集、域随机化及策略评估流程;无缝对接主流 RL 库(包括 SKRL、RSL-RL、RL-Games、SB3 和 Ray),并可与 NVIDIA Cosmos 生成的数据高效集成,提升模仿学习效果

Isaac Lab 框架内部:模块化工具包

Isaac Lab 将机器人学习分解为可组合的基础模块,帮助您构建复杂且可扩展的任务,而无需重复造轮子。

Figure showing diverse assets (rigid/soft bodies, articulated robots), multimodal sensors (RGB-D, proprioception), and standard controllers (IK, RMPFlow).
图 2. Isaac Lab 包含多种材质、多模态传感器和标准控制器

功能包括基于管理器的工作流、程序化场景生成等。

基于管理器的工作流程

Isaac Lab 将您的环境分解为独立的“管理器”,分别用于观察、操作、奖励和事件,而非编写融合物理与逻辑的单一脚本。这种设计使代码更具模块化和可重用性。例如,您可以更换机器人的奖励功能,而无需修改其传感器配置。

@configclass
class MyRewardsCfg:
    # Define rewards as weighted terms
    track_lin_vel = RewTerm(func=mdp.track_lin_vel_xy_exp, weight=1.0, params={"std": 0.5})
    penalty_lin_vel_z = RewTerm(func=mdp.lin_vel_z_l2, weight=-2.0)
    
@configclass
class MyEnvCfg(ManagerBasedRLEnvCfg):
    # Plug in the reward config cleanly
    rewards: MyRewardsCfg = MyRewardsCfg()
    # ... other managers for actions, observations, etc.

程序化场景生成

为防止过拟合,通常不建议在单一静态场景上进行训练。借助 Isaac Lab 场景生成工具,您可以通过程序化定义规则来生成多样化的环境。无论是为导航任务随机散布障碍物,还是为运动生成粗糙地形,只需定义一次逻辑,框架便能在 GPU 上高效生成数千种环境变体。<!–

# Configure a terrain generator with diverse sub-terrains
terrain_cfg = TerrainGeneratorCfg(
    sub_terrains={
        "pyramid_stairs": MeshPyramidStairsTerrainCfg(
            proportion=0.2, step_height_range=(0.05, 0.2)
        ),
        "rough_ground": MeshRandomGridTerrainCfg(
            proportion=0.8, noise_scale=0.1
        ),
    }
)

更多功能

此外,Isaac Lab 还提供:

  • 统一的资产 API,支持从 USD、URDF 或 MJCF 导入任意机器人
  • 逼真的执行器模型,用于电机动力学仿真,并提供包括 IMU 到真实感 RTX 摄像头在内的十余种传感器类型
  • 内置远程操作堆栈,进一步简化数据采集流程

这些功能共同提供了从原型到部署高效策略所需的完整支持。

大规模提供 GPU 加速性能

Isaac Lab 可提供现代机器人学习所需的巨大吞吐量,在人形机器人运动(Unitree H1)中实现 135000 FPS,在操作任务(Franka Cabinet)中实现超过 150000 FPS——训练策略可在数分钟内完成,而非数天。其统一的 GPU 架构消除了 CPU 瓶颈,即使在 4096 个环境中启用复杂的 RGB-D 传感器,仍能保持高吞吐量。

基准测试证实了使用 VRAM 可实现线性扩展,并成功实现了零样本迁移,适用于多种具身形态,包括灵巧手、多智能体蜂群以及 H1 人形机器人在户外的稳健行走。

标准机器人学习工作流程

Isaac Lab 将机器人学习循环标准化为一个清晰的、以 Python 优先的工作流。无论您是在训练运动策略还是操作技能,该流程均遵循相同的四个步骤:设计、随机化、训练和验证。

要运行一个完整的示例(训练人形机器人行走),请按以下步骤操作。

第 1 步:设计和配置

首先,在 Python 中定义您的环境。通过配置类来选择机器人(例如 Unitree H1)、传感器以及随机化逻辑:

# pseudo-code representation of a config
@configclass
class H1FlatEnvCfg(ManagerBasedRLEnvCfg):
    scene = InteractiveSceneCfg(num_envs=4096, env_spacing=2.5)
    robot = ArticulationCfg(prim_path="{ENV_REGEX_NS}/Robot", spawn=...)
    # Randomization and rewards are defined here

有关更多详细信息,请参阅 isaac-sim/IsaacLab GitHub 仓库中的 H1 人形机器人环境配置。此外,您还可以添加 其他传感器。传感器的配置过程十分简便。

配置平铺摄像头:

from isaaclab.sensors import TiledCameraCfg

# Define a camera attached to the robot's head
tiled_camera: TiledCameraCfg = TiledCameraCfg(
    prim_path="{ENV_REGEX_NS}/Robot/head/camera",
    offset=TiledCameraCfg.OffsetCfg(
 	pos=(-7.0, 0.0, 3.0), 
  	rot=(0.9945, 0.0, 0.1045, 0.0), 
 	convention="world"),
    data_types=["rgb"],
    spawn=sim_utils.PinholeCameraCfg(
      		focal_length=24.0, 
focus_distance=400.0, 
horizontal_aperture=20.955, 
clipping_range=(0.1, 20.0)
    ),
    width=80,
    height=80,
)

配置光线投射器 (LiDAR) :

from isaaclab.sensors import RayCasterCfg, patterns

# Define a 2D LiDAR scanner
lidar = RayCasterCfg(
    prim_path="{ENV_REGEX_NS}/Robot/base_link/lidar",
    update_period=0.1,       # Run at 10Hz
    offset=RayCasterCfg.OffsetCfg(pos=(0.0, 0.0, 0.2)),
    attach_yaw_only=True,    # Stabilize against robot tilt
    pattern_cfg=patterns.LidarPatternCfg(
        channels=32, 
        vertical_fov_range=(-15.0, 15.0), 
        horizontal_fov_range=(-180.0, 180.0)
    )
)

第 2 步:训练策略

接下来,启动训练脚本以开始学习。Isaac Lab 采用 Gymnasium 接口,因此能够便捷地与 RSL-RL 或 SKRL 等强化学习库进行连接。

# Train a policy for the Unitree H1 humanoid
# This runs 4096 environments in parallel on your GPU
python source/standalone/workflows/rsl_rl/train.py --task=Isaac-Velocity-Flat-H1-v0

第 3 步:播放并可视化

训练完成后,请在推理模式下运行策略以验证其效果。该过程将加载已训练好的检查点并渲染结果。

# Run the trained policy and visualize the robot walking
python source/standalone/workflows/rsl_rl/play.py --task=Isaac-Velocity-Flat-H1-v0

第 4 步:从仿真到现实的部署

验证后,可将策略导出为 ONNX 或 TorchScript 格式,以便在物理硬件上部署时利用训练过程中应用的域随机化。如需查看实际示例,请参阅仿真到现实部署指南

采用生态系统

人形机器人、具身 AI 和腿部运动领域的领先机构与研究实验室正在部署 Isaac Lab,以加速通用机器人策略及基础模型的开发,涵盖以下方面:

  • Agility Robotics 的通用人形机器人 Digit 采用 Isaac Lab 框架,通过数百万个强化学习场景优化全身控制,加速技能组合的提升,例如在制造和物流设施等高度动态环境中,实现从外部干扰中快速恢复步伐的能力。
  • Skild AI 正在开发一个适用于有腿、轮式及人形机器人的通用机器人基础模型,利用 Isaac Lab 训练运动与灵巧操作任务,并借助 NVIDIA Cosmos 世界基础模型 生成训练所需的数据集。
  • FieldAI 正在训练跨形态的具身机器人智能体,用于建筑、制造以及石油和天然气等环境中的监测与巡检任务,采用 Isaac Lab 进行强化学习训练,同时使用 NVIDIA Isaac Sim 生成合成数据并完成软件在环验证。
  • 机器人与 AI 研究机构 正基于 NVIDIA Isaac Lab 训练高性能的强化学习控制器,以实现敏捷的腿部运动、动态的全身操作能力,并适配多种自定义机器人平台;在将策略部署至波士顿动力的 Spot 和 Atlas 以及 RAI 的 Ultra Mobile Vehicle (UMV) 之前,通过优化模拟器参数,有效缩小仿真与现实之间的差距。
  • 加州大学河滨分校(UCR) 正在 NVIDIA Isaac 平台上研发适用于重工业的坚固型人形机器人,利用 Isaac GR00T 的合成数据流水线 Isaac Lab 与 Isaac Sim,训练端到端的移动策略,并持续迭代以缩小仿真与现实的差异,确保 Moby 能在严苛的建筑与工业场景中稳定可靠地运行。

开始使用多模态机器人学习

准备好使用 Isaac Lab 扩展您自己的多模态机器人学习工作负载了吗?从核心资源入手,进阶到高级工作流程的前沿研究。

详细了解研究人员如何运用模拟与生成式 AI 推动机器人学习的发展:

  • Harmon: 结合语言模型与物理特性,直接从文本生成富有表现力的全身人形机器人动作。
  • MaskedMimic: 一种通用控制策略,通过运动模仿学习多种技能,简化人形机器人控制,无需依赖复杂的奖励设计。
  • SIMPLER: 用于评估仿真中真实操作策略(如 RT-1、Octo)的框架,可可靠预测其在真实环境中的物理表现。

NVIDIA GTC AI 大会将于 2026 年 3 月 16 日至 19 日在圣何塞举行,首席执行官黄仁勋将于太平洋时间 3 月 16 日上午 11 点在 SAP 中心发表备受瞩目的主题演讲。欢迎探索 GTC 机器人会议,深入了解 AI、仿真和加速计算如何赋能机器人实现高效感知、学习与实时决策。

本文是 NVIDIA 机器人研发摘要 (R2D2) 系列文章的一部分,该系列旨在帮助开发者深入理解 NVIDIA Research物理 AI 与机器人应用领域的前沿突破。

要开启您的机器人开发之旅,请注册免费的 NVIDIA 机器人开发基础课程

 

标签