时间:2026-03-22 12:17
人气:
作者:admin
仿真技术,特别是使用GPU加速的框架,对于将机器人学习扩展到超越真实世界数据收集的限制和风险至关重要,它能够在数千个多样化的并行环境中进行训练。NVIDIA Isaac Lab在一个模块化、开源的架构中统一了物理、渲染、感知和学习,支持具有同步、高保真数据流、程序化场景生成以及开箱即用的强化和模仿学习工作流的多模态机器人学习。包括Agility Robotics、Skild AI、FieldAI、The Robotics and AI Institute和UCR在内的主要机器人组织都已采用Isaac Lab来加速开发、仿真到现实的迁移以及部署强大的通用机器人策略和基础模型。
构建强大、智能的机器人需要在复杂环境中对其进行测试。然而,在物理世界中收集数据成本高昂、速度缓慢,而且通常很危险。要安全地训练应对现实世界中的关键风险(如高速碰撞或硬件故障)几乎是不可能的。更糟糕的是,现实世界的数据通常偏向于“正常”条件,使得机器人在面对意外情况时毫无准备。
仿真是弥合这一差距的关键,它提供了一个无风险的环境进行严谨的开发。然而,传统的仿真流程难以支持现代机器人学的复杂需求。如今的通用机器人必须掌握多模态学习——融合视觉、触觉和本体感觉等多种输入,以在杂乱、非结构化的世界中导航。这给仿真带来了新的要求:它必须在一个紧密的训练循环中提供规模、真实感和多模态感知,这是传统CPU限制的仿真器无法高效处理的。
本期NVIDIA机器人研究与发展文摘(R²D²)解释了NVIDIA Isaac Lab(一个来自NVIDIA Research的开源GPU原生仿真框架)如何将这些能力统一到一个专为大规模、多模态机器人学习设计的架构中。
现代机器人学习对仿真基础设施提出了极高要求。为了高效训练鲁棒的策略,研究人员必须克服关键障碍,包括:
Isaac Lab是一个用于多模态机器人学习的GPU加速仿真框架。它是一个统一的、GPU原生的平台,旨在解决现代机器人学习的挑战。通过将物理、渲染、感知和学习整合到一个架构中,它为研究人员提供了以前所未有的规模和保真度训练通用智能体的技术。
Isaac Lab的关键要素包括:
Isaac Lab将机器人学习分解为可组合的构建块,使您能够构建复杂、可扩展的任务,而无需“重复造轮子”。
其功能包括基于管理器的流程、程序化场景生成等。
Isaac Lab没有将物理和逻辑混合在单一脚本中,而是将环境解耦为独立的“管理器”,分别用于观测、动作、奖励和事件。这使得代码模块化且可重用。例如,您可以在不接触其传感器设置的情况下,更换机器人的奖励函数。
@configclass
class MyRewardsCfg:
# 将奖励定义为加权项
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):
# 清晰地接入奖励配置
rewards: MyRewardsCfg = MyRewardsCfg()
# ... 用于动作、观测等其他管理器
为了防止过拟合,通常不希望在一个单一的静态场景上进行训练。借助Isaac Lab的场景生成工具,您可以定义规则来程序化地生成多样化的环境。无论是为导航任务散布碎片,还是为移动任务生成崎岖地形,只需定义一次逻辑,框架便能在GPU上构建数千种变体。
# 配置包含多种子地形的地形生成器
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还提供:
这些功能共同构成了从原型到部署策略所需的一切。
Isaac Lab为现代机器人学习提供了所需的大规模吞吐量,对于人形机器人移动(Unitree H1)达到135,000 FPS,对于操作任务(Franka Cabinet)超过150,000 FPS——在几分钟内训练策略,而非几天。其统一的GPU架构消除了CPU瓶颈,即使在4096个环境中启用复杂的RGB-D传感器,也能保持高吞吐量。
基准测试证实了与显存的线性扩展,以及对各种实体(包括灵巧手、多智能体集群以及在户外稳健行走的H1人形机器人)的成功零样本迁移。
Isaac Lab将机器人学习循环标准化为一个清晰的、以Python为先的工作流程。无论是训练移动策略还是操作技能,过程都遵循相同的四个步骤:设计、随机化、训练和验证。
要开箱即用地运行一个完整示例——训练一个人形机器人行走,请按照以下步骤操作。
首先,在Python中定义您的环境。使用配置类选择您的机器人(例如Unitree H1)、传感器和随机化逻辑:
# 配置的伪代码表示
@configclass
class H1FlatEnvCfg(ManagerBasedRLEnvCfg):
scene = InteractiveSceneCfg(num_envs=4096, env_spacing=2.5)
robot = ArticulationCfg(prim_path="{ENV_REGEX_NS}/Robot", spawn=...)
# 随机化和奖励在此定义
有关更多详细信息,请参阅isaac-sim/IsaacLab GitHub仓库中的H1人形机器人环境配置。您还可以选择性地添加其他传感器。配置传感器非常简单。
配置平铺式相机:
from isaaclab.sensors import TiledCameraCfg
# 定义安装在机器人头部的相机
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,
)
配置光线投射器(激光雷达):
from isaaclab.sensors import RayCasterCfg, patterns
# 定义一个2D激光雷达扫描仪
lidar = RayCasterCfg(
prim_path="{ENV_REGEX_NS}/Robot/base_link/lidar",
update_period=0.1, # 以10Hz运行
offset=RayCasterCfg.OffsetCfg(pos=(0.0, 0.0, 0.2)),
attach_yaw_only=True, # 针对机器人倾斜进行稳定
pattern_cfg=patterns.LidarPatternCfg(
channels=32,
vertical_fov_range=(-15.0, 15.0),
horizontal_fov_range=(-180.0, 180.0)
)
)
接下来,启动训练脚本开始学习。Isaac Lab使用gymnasium接口,因此可以轻松连接到RSL-RL或SKRL等强化学习库。
# 为Unitree H1人形机器人训练一个策略
# 这在您的GPU上并行运行4096个环境
python source/standalone/workflows/rsl_rl/train.py --task=Isaac-Velocity-Flat-H1-v0
训练完成后,通过在推理模式下运行策略来验证其效果。这将加载训练好的检查点并渲染结果。
# 运行训练好的策略并可视化机器人行走
python source/standalone/workflows/rsl_rl/play.py --task=Isaac-Velocity-Flat-H1-v0
验证之后,策略可以导出为ONNX或TorchScript格式,以便部署到物理硬件上,同时利用训练期间应用的领域随机化技术。要查看现实世界的示例,请参阅仿真到现实部署指南。
在人形机器人、具身智能和腿式移动领域的领先组织和研究实验室正在部署Isaac Lab,以加速通用机器人策略和基础模型的开发,包括:
准备好使用Isaac Lab扩展您自己的多模态机器人学习工作负载了吗?从这里开始核心资源,并通过最新的研究提升高级工作流。
了解更多关于研究人员如何利用仿真和生成式AI突破机器人学习边界的信息: