英伟达分享:使用NVIDIA Isaac GR00T端到端开发人形机器人的策略
端到端开发人形机器人策略
(映维网Nweon 2026年07月08日)在刚刚结束的NVIDIA GTC 2026大会,PICO携手英伟达共同揭晓了沉浸式机器人遥操作开源方案:Isaac Teleop。这一合作旨在解决大规模机器人数据采集的瓶颈,通过PICO先进的XR硬件与NVIDIA Isaac平台的深度融合,为全球机器人开发者提供一套标准化、高保真的数据生产管线。
日前,英伟达又撰文介绍了使用NVIDIA Isaac GR00T端到端开发人形机器人的策略:

随着越来越多的团队从人形机器人的启动阶段转向特定任务技能开发,对可重复开发工作流的需求日益增长。构建人形机器人依然复杂,而当今的开发流程仍然高度碎片化。所以,开发人员在专注于构建机器人能力之前,需要花费大量时间配置机器人基础设施。
尽管机器人社区已在流程的各个阶段开发出功能强大的工具,但由于孤立的软件生态系统、不兼容的数据格式以及工具之间的人工集成,将它们连接成无缝工作流仍然是一个挑战。为解决这一问题,我们推出NVIDIA Isaac GR00T开发平台:一个开源人形机器人平台,它统一了流程的每个阶段,以实现更快速的开发。
本文涵盖端到端GR00T平台,从数据收集和模型训练到大规模评估和部署就绪,展示了一个完全集成的平台如何简化人形机器人开发。
加速端到端人形机器人开发

工作流示意图展示了从开发者到机器人的流程,包含五个阶段:在Isaac Lab中设置环境,使用Isaac Teleop在真实和仿真环境中创建数据,使用模仿学习脚本进行训练,在Isaac Lab Arena中进行评估,以及通过Isaac ROS将验证后的策略部署到机器人上。
Isaac GR00T平台帮助机器人开发者扩展人形数据收集和基于仿真的训练,以便在真实机器人上开发、验证和部署策略。其端到端平台完全开放且模块化,使团队能够使用单个组件或完整流程,集成自己的工具,并基于经过验证的NVIDIA软件栈进行构建。
-
仿真环境设置 NVIDIA Isaac Lab-Arena 创建用于数据生成、策略训练和测试的仿真环境。
-
数据创建 NVIDIA Isaac Teleop 捕获高质量的机器人演示数据,用于策略训练和开发。
-
策略训练 NVIDIA Isaac GR00T 1.7 + 训练脚本 使用仿真和真实演示数据训练机器人策略,实现人形推理和多任务行为。
-
策略评估 NVIDIA Isaac Lab-Arena 在真实部署前,在仿真中测试和评估机器人策略。
-
策略部署 NVIDIA Isaac ROS + Jetson Thor 将模型导出为可部署的LEAPP包,并将后训练策略部署到机器人上,用于实时设备端推理和控制。
GR00T工作流的一个关键组件是开放的Isaac GR00T 1.7视觉-语言-动作(VLA)模型,它通过强大的预训练基础来简化开发。该模型在多样化数据上训练,能高效泛化到新任务和环境,同时生成更自然、更像人类的运动。
开始使用GR00T 1.7

GR00T 1.7是首个开放的、可商用的通用人形机器人技能VLA模型,采用宽松的Apache 2.0许可证发布。它是一个跨实体模型,接受多模态输入(包括语言和图像),并生成在多种环境中执行任务所需的动作。开发者无需从头训练策略,而是可以从一个已编码广泛操作先验的模型开始,通过后训练将其适配到特定机器人、任务和环境。
GR00T 1.7的新特性:
-
鲁棒的人类视频预训练:1.7在约3.2万小时的真实演示和人类第一人称数据以及约8千小时的仿真 rollout 和来自BEHAVIOR、RoboCasa和Simulated GR-1的演示上进行了预训练,以实现更类人的动作。
-
新的VLM主干:Cosmos-Reason2-2B(Qwen3-VL架构)取代了GR00T N1.6中使用的Eagle主干。这有助于支持灵活的分辨率,并在不填充的情况下以原始宽高比编码图像。
-
扩展的部署支持:增加了对ONNX和TensorRT的完整流程导出,并提高了导出可靠性和更高频率的更新。
-
增强的性能:通过任务级和子任务级分解改进长时程任务推理,提高了可靠性、运动质量和跨实体泛化能力。
-
改进的基准测试:与N1.6相比,在DROID和SimplerEnv上均有持续改进,包括DROID-F0(+10%)和DROID-F6(+61%),以及SimplerEnv Bridge(+5%)和Fractal(+2%),展示了更强的泛化能力。
GR00T 1.7可通过GitHub和Hugging Face获取,模型权重公开,基础检查点为30亿参数。
在端到端GR00T工作流中使用GR00T 1.7模型可简化后训练和策略评估,降低从基础模型到已部署机器人行为的过渡难度。下文详细介绍了在仿真工作流中使用GR00T 1.7的步骤。
使用GR00T平台和1.7模型进行灵巧操作任务
本节将介绍使用GR00T平台和GR00T 1.7模型构建简单拾取-放置任务的仿真工作流,从环境设置到部署就绪。这是我们的端到端GR00T开发指南的节选,其中更详细地涵盖了完整流程。
本指南包括:
-
在仿真中设置环境
-
通过遥操作收集机器人数据
-
将收集的数据转换为LeRobot格式
-
使用转换后的数据集对GR00T 1.7进行后训练
-
评估后训练策略
尽管本节聚焦于仿真,但相同的步骤可应用于物理机器人,并适配不同的实体和任务。
1. 设置环境
在收集任何训练数据之前,必须先设置环境。使用物体和机器人资产构建场景,定义任务,并选择遥操作设备。
在本例中,机器人站在架子前,使用其手臂将苹果移动到同一架子上的盘子中。全身控制器(WBC)保持机器人平衡;由于该任务中机器人不行走,使用AGILE WBC,这是一个单一端到端策略,相比站立/行走控制器更适合静态任务。
请预先慎重选择WBC:在遥操作期间,AGILE WBC和PinkIK生成关节空间目标,这些目标将作为策略的训练信号,因此不同的控制器对相同动作会产生不同的训练分布。
在高层实现如下代码片段所示。这些片段使用Isaac Lab-Arena API来组合场景、注册资产并连接遥操作设备。这些仅为片段;完整环境设置请参阅GitLab。
background = self.asset_registry.get_asset_by_name("galileo_locomanip")()
pick_up_object = self.asset_registry.get_asset_by_name(args_cli.object)()
destination = self.asset_registry.get_asset_by_name(args_cli.destination)()
embodiment = self.asset_registry.get_asset_by_name(args_cli.embodiment)(
enable_cameras=args_cli.enable_cameras
)
teleop_device = (
self.device_registry.get_device_by_name(args_cli.teleop_device)()
if args_cli.teleop_device is not None else None
)
scene = Scene(assets=[background, pick_up_object, destination])
task = PickAndPlaceTask(
pick_up_object=pick_up_object,
destination_location=destination,
background_scene=background,
)
return IsaacLabArenaEnvironment(
name=self.name,
embodiment=embodiment,
scene=scene,
task=task,
teleop_device=teleop_device,
)
2. 收集演示数据
一个人戴着VR头显并手持两个控制器,站在显示器旁,显示器显示立体机器人遥操作界面,展示在实验室环境中使用Isaac Teleop收集演示数据。
设置好环境后,即可使用Isaac Teleop捕获演示数据,收集期间由AGILE WBC处理全身控制。演示通过受支持的VR头显(例如PICO)通过CloudXR客户端进行收集。启动CloudXR运行时并加载CloudXR环境后,使用以下命令记录演示:
python isaaclab_arena/scripts/imitation_learning/record_demos.py \
--viz kit \
--device cpu \
--enable_cameras \
--dataset_file $DATASET_DIR/arena_g1_static_apple_dataset_recorded.hdf5 \
--num_demos 400 \
--num_success_steps 10 \
--disable_full_sim_buffer_reset \
galileo_g1_static_pick_and_place \
--object apple_01_objaverse_robolab \
--destination clay_plates_hot3d_robolab \
--teleop_device openxr
这里质量和数量同样重要。对于此任务,我们收集了400条轨迹,并非一次性完成,而是通过多次数据收集会话拼接而成。你可以先从较小的数据批次开始,了解各部分如何组合,然后再投入完整的演示集。
成功的演示将保存到HDF5文件中,以作为下一阶段的原始输入,在那里它将被转换为GR00T 1.7后训练所需的LeRobot格式。
3. 转换数据格式
GR00T 1.7使用LeRobot格式的数据集,因此记录的HDF5在训练前需要在Arena容器内部进行转换。转换由配置文件g1_static_apple_config.yaml驱动,该文件将记录字段映射到GR00T期望的格式:
# Input/Output paths
data_root: /datasets/isaaclab_arena/static_apple_tutorial
hdf5_name: "arena_g1_static_apple_dataset_recorded.hdf5"
# Task description
language_instruction: "move the apple to the plate"
task_index: 3
# Data field mappings
state_name_sim: "robot_joint_pos"
action_name_sim: "processed_actions"
pov_cam_name_sim: "robot_head_cam_rgb"
# Output configuration
fps: 50
chunks_size: 1000
运行转换命令:
python isaaclab_arena_gr00t/lerobot/convert_hdf5_to_lerobot.py \
--yaml_file isaaclab_arena_gr00t/lerobot/config/g1_static_apple_config.yaml
这将生成一个lerobot文件夹,包含状态和动作的parquet文件、MP4摄像头录制文件以及数据集元数据。现在有了转换后的数据集,你可以对GR00T 1.7模型进行后训练。
4. 后训练GR00T 1.7
后训练在Arena容器外部运行,在独立的Isaac-GR00T仓库检出中进行。微调命令会调整视觉主干、投影器和扩散模型,同时冻结语言模型:
uv run python -m torch.distributed.run --nproc_per_node=1 --standalone \
gr00t/experiment/launch_finetune.py \
--base-model-path nvidia/GR00T-N1.7-3B \
--dataset-path $DATASET_DIR/arena_g1_static_apple_dataset_recorded/lerobot \
--output-dir $MODELS_DIR/static_apple_n17_finetune \
--modality-config-path /path/to/IsaacLab-Arena/isaaclab_arena_gr00t/embodiments/g1/g1_sim_wbc_data_gr00t_n_1_7_config.py \
--embodiment-tag new_embodiment \
--global-batch-size 12 \
--max-steps 20000 \
--num-gpus 1 \
--save-steps 5000 \
--save-total-limit 5 \
--no-tune-llm \
--tune-visual \
--tune-projector \
--tune-diffusion-model \
--dataloader-num-workers 8 \
--color-jitter-params brightness 0.3 contrast 0.4 saturation 0.5 hue 0.08
5. 评估策略
后训练完成后,评估只需两步:将检查点加载到GR00T服务器中,然后在闭环中运行策略。Arena使用服务器-客户端设置,服务器托管微调后的模型,Arena客户端运行仿真并从服务器查询模型。
通过从Arena容器启动客户端来运行策略:
/isaac-sim/python.sh isaaclab_arena/evaluation/policy_runner.py \
--viz kit \
--policy_type isaaclab_arena_gr00t.policy.gr00t_remote_closedloop_policy.Gr00tRemoteClosedloopPolicy \
--policy_config_yaml_path isaaclab_arena_gr00t/policy/config/g1_static_apple_gr00t_closedloop_config.yaml \
--remote_host <SERVER_HOST> --remote_port 5555 \
--num_steps 600 \
--enable_cameras \
galileo_g1_static_pick_and_place \
--object apple_01_objaverse_robolab \
--destination clay_plates_hot3d_robolab \
--embodiment g1_wbc_agile_joint
评估进行时指标会打印到控制台,最终输出将显示后训练策略的性能。
[Rank 0/1] Metrics: {'success_rate': 1.0, 'object_moved_rate': 1.0, 'num_episodes': 1}
要调整评估量,可以修改几个flag。–num_steps设置rollout长度;600是快速冒烟测试,大约对应此任务的一个回合。为了获得代表性的成功率,可使用–num_episodes 100(或1000以获得更强估计)评估完整回合,并添加–num_envs 5以并行运行环境,增加试验间的随机性。其他保持不变,你只需更改平均的rollout次数。
简化的开发流程
这样就完成了通过Isaac GR00T开发平台的完整流程。每个阶段生成一个清晰的工件,直接输入下一阶段,形成一个完全集成、简化的开发过程。虽然本指南使用特定实体作为示例,但相同流程可适配你自己的机器人设置,为你的用例定义任务,在你的系统上收集演示,并复用相同的数据转换、后训练和评估工作流。

