NVIDIA Isaac GR00T N1.7 — 人形機器人 VLA 基礎模型完整教學

本教學針對「想把人形機器人 VLA 模型整合進 sim-to-real 管線、或想在自家機器人上 finetune 的工程師」撰寫。涵蓋安裝、架構、實際應用、資安、整合進 NVIDIA Physical AI 全家桶(Cosmos / Nemotron / Isaac Sim)的工作流。


目錄

  1. 專案定位
  2. 安裝指南
  3. 核心架構解析
  4. Helper Scripts 與 CLI 詳細用法
  5. 應用場景
  6. 資安掃描報告
  7. FAQ
  8. 進階技巧
  9. 整合進其他工作流(NVIDIA Physical AI 全家桶)
  10. 重點摘要 Checklist
  11. 進一步閱讀

1. 專案定位

1.1 這是什麼

NVIDIA Isaac GR00T N1.7 是 NVIDIA 官方開源的 人形機器人基礎模型 (Humanoid Robot Foundation Model),採用 Vision-Language-Action (VLA) 範式。輸入是「機器人攝影機影像 + 機器人本體感測 (proprioception state) + 自然語言指令」,輸出是「未來 N 步的連續動作軌跡 (continuous action trajectory)」。

GR00T 名稱來源:Generalist Robot 00 Technology(00 表示 “the foundational generation”)。N1.7 = N1 系列的第 7 個 minor release。

核心技術選擇:

模組N1.7 採用備註
VLM BackboneCosmos-Reason2-2B(Qwen3-VL 架構)取代 N1.6 的 Eagle backbone
Action HeadDiffusion Transformer (DiT)對連續動作 denoise,類似 RDT-1B / π0
動作表示Relative EEF (End-Effector Frame)動作為「相對於當前 pose 的 delta」,跨 embodiment 共用
預訓練資料多 embodiment 機器人 + 20K 小時 EgoScale 人類影片人類影片可直接用 relative EEF 表示,無需轉換
資料格式LeRobot v2 + meta/modality.json與 HuggingFace LeRobot 生態相容
部署PyTorch / ONNX / TensorRT支援 Jetson Thor、Orin、DGX Spark、x86 H100

模型參數:3B(GR00T-N1.7-3B)。

1.2 為什麼重要 — NVIDIA Physical AI 三電腦戰略

NVIDIA 在 GTC 主題演講中提出 Physical AI 的 「三電腦」架構

電腦硬體軟體角色
AI FactoryDGX H100 / B200PyTorch / Megatron / NeMo訓練基礎模型
AI SimOmniverse + GPUIsaac Sim / Isaac Lab + Cosmos大規模合成資料 + sim-to-real 訓練
AI RobotJetson Thor / DRIVE ThorTensorRT + Isaac ROS在實體機器人上即時推論

GR00T 同時是這三台電腦的輸出與輸入

  • AI Factory 上預訓練(H100 cluster)
  • AI Sim 上用 Cosmos 生成的合成資料 + Isaac Sim 環境做 sim-to-real fine-tune
  • AI Robot 上用 TensorRT 量化後即時跑(Jetson Thor ~22Hz,5090 ~76Hz @ FlashVLA-realtime engine — 見 issue #660)

直白講:GR00T 是 NVIDIA 把「LLM in the cloud」典範搬到「機器人本體」的旗艦案例。Cosmos 是它的「世界模擬器」,Nemotron Nano Omni 是它的「高層大腦」,GR00T 自己負責「動作執行」。

1.3 在 NVIDIA Isaac / Physical AI 生態的定位

 1NVIDIA Isaac 平台家族
 2├── Isaac Sim       — Omniverse-based robotics simulator
 3├── Isaac Lab       — RL training framework on top of Isaac Sim
 4├── Isaac ROS       — ROS 2 GPU-accelerated packages
 5└── Isaac GR00T     — Humanoid foundation model  ← 本 repo
 6
 7NVIDIA Physical AI 模型家族
 8├── Cosmos (WFM)    — World Foundation Models, 物理世界生成
 9├── Nemotron        — LLM 家族 (Nano / Super / Ultra / Nano Omni)
10└── GR00T           — VLA 人形機器人  ← 本 repo

與其他 NVIDIA 開源 repo 的關係(本批同步處理的姊妹專案):

姊妹專案是什麼與 GR00T 的關係成熟度
NVIDIA-NeMo/NemotronLLM 家族 — Nano / Super / Ultra / Nano OmniNano Omni 可作為 GR00T 上層「任務分解大腦」(語言指令→子目標→GR00T 執行)生產級(PR 不收)
nvidia/cosmosWorld Foundation Models — 物理世界生成 / 模擬共設計關係:Cosmos 生成合成軌跡資料 + 場景 → GR00T 用合成資料訓練;N1.7 的 VLM backbone 直接叫 Cosmos-Reason2-2B生產級
NVlabs/alpamayoNVlabs 自駕車 / 機器人研究專案研究血脈相鄰(NVlabs = NVIDIA Research,GR00T 從 NVlabs 過渡到 NVIDIA 官方)研究
NVlabs/Nemotron-Labs-DiffusionNVlabs 的 diffusion 研究policy diffusion 重疊:兩者都用 diffusion transformer,可能共用 head 設計研究

核心關係圖


flowchart LR
    Nemotron[Nemotron Nano Omni
多模態 LLM
高層任務分解] --> GR00T Cosmos[Cosmos WFM
合成資料 + 世界模擬] --> GR00T IsaacSim[Isaac Sim / Isaac Lab
實時模擬器] --> GR00T GR00T[GR00T N1.7
VLA Foundation Model
3B params] --> Robot[實體人形機器人
Unitree G1 / Boston Dynamics
Apptronik / Figure / 1X] NVlabsDiff[NVlabs Diffusion
研究 policy head] -.research.-> GR00T Alpamayo[NVlabs Alpamayo
research lineage] -.shared infra.-> GR00T

1.4 N1.7 vs N1.6 vs N1.5 — 演進軌跡

版本發佈VLM Backbone關鍵變化
N12025-06自研首版開源,arXiv 論文
N1.52025-12自研改進更多 embodiment 支援
N1.62026-04Eagle引入 EEF 動作空間
N1.72026-04 EACosmos-Reason2-2B (Qwen3-VL)Relative EEF + 20K 小時人類影片預訓練;原生 aspect ratio 圖像處理(不需 padding)

1.5 支援的機器人 (Embodiments)

從 commit 3df8b38 與 README、gr00t/policy/gr00t_n1d7/ 可看出本 release 支援的 embodiment tag:

Pretrain Embodiments(base model 可直接 zero-shot):

  • OXE_DROID_RELATIVE_EEF_RELATIVE_JOINT — DROID 資料集(Franka 系列研究機器人)
  • LIBERO_PANDA — Franka Panda(LIBERO benchmark)
  • SIMPLER_ENV_WIDOWX — WidowX(SimplerEnv Bridge)
  • SIMPLER_ENV_GOOGLE — Google Robot(SimplerEnv Fractal)
  • UNITREE_G1 — 宇樹 G1 人形(解耦 WBC)
  • UNITREE_G1_SONIC — 宇樹 G1 + SONIC 全身控制(GEAR-SONIC)
  • NEW_EMBODIMENT — 自訂機器人 fine-tune 用

已釋出的 finetuned checkpoint

CheckpointHF 路徑Embodiment
nvidia/GR00T-N1.7-3Bbase model 3B所有 pretrain tag
nvidia/GR00T-N1.7-LIBEROLIBERO 任務LIBERO_PANDA
nvidia/GR00T-N1.7-DROIDDROID 任務OXE_DROID_*
nvidia/GR00T-N1.7-SimplerEnv-BridgeWidowXSIMPLER_ENV_WIDOWX
nvidia/GR00T-N1.7-SimplerEnv-FractalGoogle RobotSIMPLER_ENV_GOOGLE

社群整合的真實機器人(從 issues 看出):1X、Boston Dynamics Atlas、Unitree H1/G1、Figure 02、Apptronik Apollo、AgiBot、SO100(低成本研究臂)、Sharpa(社群用 human retarget)。


2. 安裝指南

2.1 硬體需求

場景最低推薦
推論1× GPU 16 GB VRAM(RTX 4090 / Jetson Thor / Orin / DGX Spark)L40 / H100
Fine-tune1× GPU 40 GB VRAM(A6000)H100 / L40 cluster
Pretrain(重做)不建議256× H100 級別

CUDA / Python 版本矩陣(很重要,跨平台容易踩雷):

平台CUDAPython註記
dGPU x86_64(4090/L40/H100)12.83.10預設
Jetson Orin(JetPack 6.2)12.63.10aarch64
Jetson Thor(JetPack 7.1)13.03.12aarch64 + 需要 triton patch
DGX Spark(GB10)13.03.12aarch64 + 需要 triton patch

2.2 dGPU x86_64 安裝(最常見)

 1# 1. 安裝 git-lfs(必要 — demo_data 是 parquet)
 2sudo apt install git-lfs && git lfs install
 3
 4# 2. clone 含 submodule(external_dependencies/ 是 submodule)
 5git clone --recurse-submodules https://github.com/NVIDIA/Isaac-GR00T
 6cd Isaac-GR00T
 7
 8# 3. 裝 uv(NVIDIA 全部 robot stack 都改用 uv 了)
 9curl -LsSf https://astral.sh/uv/install.sh | sh
10
11# 4. 裝 FFmpeg(torchcodec 需要)
12sudo apt-get update && sudo apt-get install -y ffmpeg
13
14# 5. uv 一鍵安裝
15uv sync --python 3.10
16
17# 6. 驗證
18uv run python -c "import gr00t; print('GR00T installed successfully')"

2.3 Jetson Thor / DGX Spark / Orin(aarch64)

aarch64 平台強制使用 torchcodec 作為影片 backend(decord/pyav 不支援)。

 1# Thor
 2bash scripts/deployment/thor/install_deps.sh
 3source .venv/bin/activate
 4source scripts/activate_thor.sh
 5
 6# Spark
 7bash scripts/deployment/spark/install_deps.sh
 8source .venv/bin/activate
 9source scripts/activate_spark.sh
10
11# Orin
12bash scripts/deployment/orin/install_deps.sh
13source .venv/bin/activate
14source scripts/activate_orin.sh

2.4 已知踩雷區

從 README 收集的 「警告框」全清單

  1. flash-attn 每次 uv run 都顯示重裝:uv 已知行為(重新校驗 wheel URL),實際是 cache hit,2-3 秒。要消除把 pyproject.toml[tool.uv.sources] flash-attn 移除,但下次 uv lock 會 build from source。
  2. CUDA_HOME unset 導致 fine-tune 失敗:跑 bash scripts/deployment/dgpu/install_deps.sh 或手動 export CUDA_HOME=/usr/local/cuda
  3. CUDA 13.x triton 不認版本:跑 uv run bash scripts/patch_triton_cuda13.sh
  4. GB300 (sm_103) torch.compile 失敗:triton 3.3.1 不支援;改用 eager 或 TensorRT。
  5. Ubuntu 20.04 (glibc < 2.35) 上 flash-attn import erroruv pip install flash-attn==2.7.4.post1 --no-binary flash-attn --no-cache 從原始碼編(10-30 min)。
  6. uv run python 破壞 aarch64 venv (Spark):未解,issue #675 標 OPEN,目前 workaround 是用 source .venv/bin/activate 後直接 python

2.5 Docker 替代方案

1cd docker && cat README.md

docker/ 提供 dGPU + Orin + Thor + Spark 四套 Dockerfile。所有 base image 都基於 NGC PyTorch container。


3. 核心架構解析

3.1 整體模型架構

GR00T 是典型 VLA (Vision-Language-Action) 架構,但有兩個 NVIDIA 自家特色:

  1. VLM backbone 直接用 Cosmos-Reason2-2B(不是常見的 SigLIP + Llama 組合)
  2. Action head 是 diffusion transformer (DiT),不是 autoregressive token prediction

flowchart TB
    Cam[攝影機影像
任意 aspect ratio
無需 padding] --> VLM Lang[語言指令
e.g. pick the pear] --> VLM State[Proprioception
關節角度 / EEF pose] --> StateEnc VLM[Cosmos-Reason2-2B VLM
Qwen3-VL 架構
~2B params] StateEnc[State Encoder
MLP] --> Fusion VLM --> Fusion[Cross-Attention Fusion] EmbTag[Embodiment Tag
UNITREE_G1 / LIBERO_PANDA
...] --> Fusion Fusion --> DiT[Diffusion Transformer
Action Head
~1B params] Noise[Gaussian Noise z_t] --> DiT DiT --> Action[Relative EEF Action
未來 N 步 chunked] Action --> Decoder[Action Decoder
per-embodiment] Decoder --> Robot[Robot Joint / EEF Command]

3.2 為什麼是 Relative EEF?— 跨 embodiment 的關鍵

傳統 robot policy 預測「絕對關節角度」或「絕對 EEF pose」。問題:

  • 不同機器人關節數不同(7-DoF vs 14-DoF vs 28-DoF 全身)
  • 不同機器人 home pose 不同
  • 人類影片沒有關節數

GR00T N1.7 改用 Relative EEF:每一步輸出「相對於當前 pose 的 delta (Δx, Δy, Δz, Δrot, Δgripper)」。優點:

  • 人類影片可用 hand pose 估計直接轉換成 EEF delta
  • 不同機器人共用同一個 action space
  • 訓練資料可自由混合(20K 小時人類 + 多 embodiment 機器人 demos)

每個 embodiment 在輸出端有一個輕量 per-embodiment decoder 把 EEF delta 轉成該機器人的 joint command。

3.3 訓練 / 部署 pipeline


flowchart LR
    A[Robot Demos
+ Human Videos
20K hours] --> B[LeRobot v2 Format
+ modality.json] B --> C[Pretrain on H100
cluster
~3B model] C --> D[Base Checkpoint
GR00T-N1.7-3B] D --> E1[Zero-Shot Inference
on pretrain embodiments] D --> E2[Fine-tune on
new embodiment
~100-2000 demos] E2 --> F[Posttrained Checkpoint
GR00T-N1.7-LIBERO / DROID / ...] E1 --> G[Open-Loop Eval
predicted vs GT] F --> G G --> H[Closed-Loop Eval
Server-Client ZMQ] H --> I1[Sim Deploy
Isaac Sim / MuJoCo / SimplerEnv] H --> I2[Real Robot Deploy
via PolicyClient] I2 --> J[TensorRT Optimize
Jetson Thor 22Hz / 5090 76Hz]

3.4 NVIDIA Physical AI 三電腦架構 — GR00T 的位置


flowchart TB
    subgraph AIFactory[AI Factory - DGX cluster]
        Pretrain[Pretrain GR00T
on H100/B200] Nemotron_Train[Train Nemotron
Megatron-Bridge] end subgraph AISim[AI Sim - Omniverse] IsaacSim[Isaac Sim
物理引擎模擬] IsaacLab[Isaac Lab
RL Training] Cosmos2[Cosmos WFM
合成資料生成] end subgraph AIRobot[AI Robot - Jetson Thor] TRT[TensorRT inference
GR00T N1.7] ROS[Isaac ROS
感測與控制] Robot2[實體人形機器人] end AIFactory --> AISim AISim -.synthetic data.-> AIFactory AIFactory -- 模型權重 --> AIRobot AISim -- sim-to-real --> AIRobot AIRobot -.real-world feedback.-> AIFactory

3.5 Repo 目錄結構

 1Isaac-GR00T/
 2├── gr00t/                          # 主 Python 套件
 3   ├── model/
 4      ├── modules/                # DiT / Qwen3 backbone / 各 module
 5      └── gr00t_n1d7/             # N1.7 模型實作(processing / setup / 主類別)
 6   ├── data/                       # LeRobot 資料載入器、modality.json 解析
 7   ├── policy/
 8      ├── gr00t_policy.py         # Gr00tPolicy 主類別(33K 行)
 9      ├── replay_policy.py        # ReplayPolicy(debug 用)
10      └── server_client.py        # ZMQ server/client 對外介面
11   ├── eval/                       # open-loop / closed-loop / sim 評估
12   ├── experiment/                 # launch_finetune.py / launch_train.py
13   ├── configs/                    # 預設訓練 / 微調 config
14   ├── deployment/                 # 部署相關(ONNX/TRT export)
15   └── utils/
16├── scripts/
17   ├── deployment/
18      ├── dgpu/                   # x86_64 安裝
19      ├── thor/orin/spark/        # 各 aarch64 平台
20      └── standalone_inference_script.py
21   ├── eval/                       # check_sim_eval_ready.py
22   ├── lerobot_conversion/         # convert_v3_to_v2.py
23   ├── activate_orin.sh / activate_spark.sh / activate_thor.sh
24   ├── download_droid_sample.py    # 抓 DROID 資料
25   ├── download_simplerenv_sample.py
26   ├── patch_triton_cuda13.sh
27   └── repair_lerobot_metadata.py
28├── examples/                       # 各 benchmark walkthrough
29   ├── DROID/  LIBERO/  SimplerEnv/  SO100/
30   ├── robocasa-gr1-tabletop-tasks/
31   ├── mask-guided-background-suppression/
32   └── finetune.sh                 # 一鍵 fine-tune 範例
33├── demo_data/                      # 已內附的 LeRobot 資料
34   ├── droid_sample/  libero_demo/
35   ├── simplerenv_bridge_sample/  simplerenv_fractal_sample/
36   ├── cube_to_bowl_5/  cube_to_bowl_5_with_mask/
37├── getting_started/                # 7 份 markdown + 1 jupyter
38   ├── policy.md (23K)             # Policy API 完整指南
39   ├── data_preparation.md (9K)
40   ├── data_config.md (11K)
41   ├── finetune_new_embodiment.md (6K)
42   ├── hardware_recommendation.md (5K)
43   ├── real_world_deployment.md (20K)
44   └── GR00T_inference.ipynb (440K  完整 walkthrough notebook)
45├── tests/  docker/  tools/
46├── FAQ.md (6K)
47├── README.md (28K)
48├── pyproject.toml + uv.lock        # uv 管理
49└── ATTRIBUTIONS.md (952K  內含所有 3rd-party 授權)

3.6 設計品味評論

🟢 好品味

  • 用 LeRobot v2 + modality.json 擴充,不重新發明資料格式 — 直接接 HuggingFace 生態
  • Relative EEF 大幅簡化跨 embodiment / 跨人類影片的問題(消除「絕對 vs 相對」「不同關節數」兩個特殊情況)
  • Server-client 架構讓 inference 和機器人本體解耦 — Jetson 本體不夠強就把 policy 跑在 server H100,ZMQ 走網路
  • 跨平台 install 用統一 uv + 各平台一個 install_deps.sh — 簡化 CUDA / triton / flash-attn 三件套地獄
  • ReplayPolicy 設計(不用 model 就 replay 資料動作)對 debug 環境設定極有用

🟡 可接受但有設計債

  • gr00t_policy.py 33K 行單檔,未來會難維護
  • processing_gr00t_n1d7.py 750+ 行也偏胖
  • 模型權重 NVIDIA Open Model License 而不是 Apache-2.0 — 商用需要看條款,這是 GR00T 「開源」最大的星號
  • EA 階段不收 PR,社群修補只能等 GA

4. Helper Scripts 與 CLI 詳細用法

4.1 一鍵 zero-shot 推論(最快上手)

1uv run python scripts/deployment/standalone_inference_script.py \
2    --model-path nvidia/GR00T-N1.7-3B \
3    --dataset-path demo_data/droid_sample \
4    --embodiment-tag OXE_DROID_RELATIVE_EEF_RELATIVE_JOINT \
5    --traj-ids 1 2 \
6    --inference-mode pytorch \
7    --action-horizon 8

第一次跑會自動從 HuggingFace 下載 ~6 GB base model

4.2 啟動 Policy Server

1uv run python gr00t/eval/run_gr00t_server.py \
2    --model-path nvidia/GR00T-N1.7-3B \
3    --embodiment-tag OXE_DROID_RELATIVE_EEF_RELATIVE_JOINT \
4    --device cuda:0 \
5    --host 0.0.0.0 --port 5555

預設用 ZMQ 在 port 5555 監聽。對外暴露兩個 RPC:

  • get_action(obs) — 回傳未來 N 步動作 chunk
  • reset() — 清空 policy state(如有 temporal smoothing buffer)

4.3 Python 客戶端

1from gr00t.policy.server_client import PolicyClient
2
3policy = PolicyClient(host="localhost", port=5555)
4env = YourEnvironment()
5obs, info = env.reset()
6
7while not done:
8    action, info = policy.get_action(obs)
9    obs, reward, done, truncated, info = env.step(action)

obs 是 dict:

1obs = {
2    "video.head_camera": np.ndarray,    # (T, H, W, 3) uint8
3    "video.left_wrist": np.ndarray,
4    "state.joint": np.ndarray,          # (T, joint_dim) float32
5    "state.eef_pose": np.ndarray,       # (T, 7) — xyz + quat
6    "annotation.human.action.task_description": "pick the red cube",
7}

action 也是 dict(依 embodiment 不同 keys 不同):

1action = {
2    "action.eef_translation": np.ndarray,   # (action_horizon, 3) — Δx Δy Δz
3    "action.eef_rotation": np.ndarray,      # (action_horizon, 3) — axis-angle delta
4    "action.gripper": np.ndarray,           # (action_horizon, 1) — 0=open 1=close
5}

4.4 Fine-tune(單 GPU)

 1CUDA_VISIBLE_DEVICES=0 uv run python \
 2    gr00t/experiment/launch_finetune.py \
 3    --base-model-path nvidia/GR00T-N1.7-3B \
 4    --dataset-path demo_data/cube_to_bowl_5 \
 5    --embodiment-tag NEW_EMBODIMENT \
 6    --modality-config-path examples/SO100/so100_config.py \
 7    --num-gpus 1 \
 8    --output-dir /tmp/test_finetune \
 9    --max-steps 2000 \
10    --global-batch-size 32 \
11    --dataloader-num-workers 4

4.5 Fine-tune(多 GPU,8× H100)

 1uv run torchrun --nproc_per_node=8 --master_port=29500 \
 2    gr00t/experiment/launch_finetune.py \
 3    --base-model-path nvidia/GR00T-N1.7-3B \
 4    --dataset-path demo_data/cube_to_bowl_5 \
 5    --embodiment-tag NEW_EMBODIMENT \
 6    --modality-config-path examples/SO100/so100_config.py \
 7    --num-gpus 8 \
 8    --output-dir /tmp/test_finetune_8gpu \
 9    --max-steps 2000 \
10    --global-batch-size 32 \
11    --dataloader-num-workers 4 \
12    --use-wandb

注意是 uv run torchrun不是 torchrun(後者用系統 Python,找不到 venv 套件)。

4.6 Open-loop 評估

1uv run python gr00t/eval/open_loop_eval.py \
2    --dataset-path demo_data/droid_sample \
3    --embodiment-tag OXE_DROID_RELATIVE_EEF_RELATIVE_JOINT \
4    --model-path nvidia/GR00T-N1.7-DROID \
5    --traj-ids 0 1 2 \
6    --action-horizon 16

產生 /tmp/open_loop_eval/traj_{N}.jpeg — 每條軌跡一張圖,內含預測 vs ground-truth 對照 + per-dim MSE。

4.7 Closed-loop 模擬評估

1# 1. 啟動 server
2uv run python gr00t/eval/run_gr00t_server.py \
3    --model-path nvidia/GR00T-N1.7-LIBERO \
4    --embodiment-tag LIBERO_PANDA \
5    --device cuda:0
6
7# 2. 啟動 LIBERO benchmark client
8cd examples/LIBERO && bash run_libero_eval.sh

可用 benchmark:LIBERO(Franka)、SimplerEnv Fractal(Google Robot)、SimplerEnv Bridge(WidowX)、SO100、DROID。

4.8 把自家資料轉 LeRobot v2 格式

1# 從 LeRobot v3 轉 v2
2uv run python scripts/lerobot_conversion/convert_v3_to_v2.py \
3    --input-path /path/to/lerobot_v3_dataset \
4    --output-path /path/to/lerobot_v2_dataset
5
6# 修復壞掉的 LeRobot metadata
7uv run python scripts/repair_lerobot_metadata.py --path /path/to/dataset

4.9 TensorRT 部署

 1# 匯出 ONNX
 2cd scripts/deployment && cat README.md  # 完整 TRT walkthrough
 3
 4# 大致流程:
 5uv run python -m gr00t.deployment.export_onnx \
 6    --model-path nvidia/GR00T-N1.7-3B \
 7    --output-path /tmp/gr00t_n17.onnx
 8
 9# ONNX → TRT engine
10trtexec --onnx=/tmp/gr00t_n17.onnx --saveEngine=/tmp/gr00t_n17.engine \
11    --fp16 --workspace=4096

實測效能(issue #660 社群報告 FlashVLA-realtime):

平台模式頻率
Jetson ThorTRT FP16>22 Hz
RTX 5090TRT FP16 + FlashVLA>76 Hz

5. 應用場景

5.1 場景一:在自家研究臂(SO100 / Koch / xArm)做 pick-and-place

最低成本入門路徑。SO100 是 LeRobot 社群推的 ~$100 機器手臂套件。

 1# 1. 收集 ~100 條 teleoperation 軌跡(用 LeRobot 內建 teleop 工具)
 2# 2. 轉成 LeRobot v2 format(GR00T 兼容)
 3# 3. fine-tune
 4uv run python gr00t/experiment/launch_finetune.py \
 5    --base-model-path nvidia/GR00T-N1.7-3B \
 6    --dataset-path /path/to/my_so100_data \
 7    --embodiment-tag NEW_EMBODIMENT \
 8    --modality-config-path examples/SO100/so100_config.py \
 9    --max-steps 5000
10
11# 4. server-client deploy
12uv run python gr00t/eval/run_gr00t_server.py --model-path /tmp/test_finetune

實測門檻(FAQ 提到):「簡單固定位置 pick-place ~100 軌跡足夠;複雜場景需 500+;雙手人形需 2000+」。

5.2 場景二:全身人形(Unitree G1 + SONIC WBC)

N1.7 新增 SONIC 全身控制(commit 3df8b38)。VLA 預測緊湊 latent action token,由獨立的 WBC controller 解碼成全身關節指令。

1# 完整 collect → finetune → deploy 在 NVlabs/GR00T-WholeBodyControl
2# VR 遠端操作收資料 → 用 UNITREE_G1_SONIC tag finetune → 部署 PolicyServer + SONIC decoder

關鍵設計:language-conditioned 端到端全身協調(同時動腳走路、動手抓取)。

5.3 場景三:用 Cosmos 合成資料 + Isaac Sim → sim-to-real


flowchart LR
    A[Real Robot Demos
~50 條 seed 資料] --> B[Cosmos WFM
生成 1000× 變化軌跡
不同光照/物件/位置] B --> C[Isaac Sim 渲染
RGB + depth + segmentation] C --> D[Fine-tune GR00T
on synthetic + real mix] D --> E[Open-loop eval
real test set] E --> F[Real Robot Deploy] F --> G[Domain Gap?] G -- Yes --> B G -- No --> H[Done]

⚠️ FAQ 提到 “Cosmos 合成資料生成 pipeline 還在 dev 中、非標準 release”,但研究上已有 DreamGen 等 paper 驗證可行。

  • 可能適用:若未來有自動化液體處理(pipetting robot, e.g., Hamilton STAR)整合需求,GR00T 不適合 — 用 Hamilton 自家 PLC 程式或 PyHamilton 工具鏈
  • 理論啟發:GR00T 的「foundation model + LeRobot 資料格式」對 biopharm CMC 自動化長期可能參考(10 年尺度)

5.5 場景五:從 HuggingFace LeRobot 抓現成資料訓練

1# DROID 資料集(最大 OXE 子集之一)
2uv run python scripts/download_droid_sample.py --num-episodes 100
3
4# SimplerEnv 樣本
5uv run python scripts/download_simplerenv_sample.py --benchmark fractal

5.6 場景六:學術 benchmark 復現

論文「NVIDIA Isaac GR00T N1: An Open Foundation Model for Generalist Humanoid Robots」(arXiv:2503.14734) 的所有 benchmark 都可在 repo 復現:

  • LIBERO 10-Long
  • SimplerEnv Bridge / Fractal
  • DROID
  • robocasa-gr1-tabletop-tasks

但 issue #685 反映 N1.6-fractal 復現可能要手動 cherry-pick per-env seed fix,社群正在追蹤。


6. 資安掃描報告

6.1 自動掃描結果

針對 gr00t/, scripts/, getting_started/ 目錄做關鍵字掃描(eval / exec / os.system / shell=True / pickle / __import__ / api_key / secret / password / token)。

風險等級數量主要分類
🔴 高0
🟡 中5HuggingFace transformers_access_token 使用、use_auth_token 棄用警告
🟢 低30+model.eval() PyTorch API 呼叫(與 Python eval() 不同)、tokenizer 內 token API(自然語言 token,非 secret)

6.2 詳細結論

🟢 完全沒問題

  • model.eval() 呼叫(PyTorch 把模型切換 eval mode)— 30+ 處,皆無風險
  • tokenizer 相關 API(NLP tokenization,與安全 token 無關)

🟡 需注意

  • gr00t/model/gr00t_n1d7/setup.py:64-65:用 self.config.training.transformers_access_token 載入 HuggingFace private 模型。使用者責任:不要把 HF token 寫死在 config 檔案、上傳 GitHub。建議用環境變數 HF_TOKEN~/.cache/huggingface/token
  • processing_gr00t_n1d7.py:755-757:相容性 fallback,舊版 use_auth_token → 新版 token 的處理,沒有實際安全問題,只是 HF Transformers API 棄用警告處理。

🔴 無高風險發現

  • 沒有 eval() 動態執行使用者輸入
  • 沒有 os.system() / subprocess shell=True
  • 沒有 pickle.load() 讀網路資料(這是常見的反序列化攻擊面)
  • 沒有寫死的 secret / password / api_key

6.3 模型權重供應鏈

  • base model 來源:HuggingFace nvidia/GR00T-N1.7-3B(NVIDIA 官方帳號,已驗證)
  • 載入機制AutoModel.from_pretrained + safetensors(非 pickle,無反序列化風險)
  • 依賴transformers, torch, flash-attn, tensorrt(皆為主流 PyPI 套件)

6.4 授權注意 — 這是最大的「星號」

對象License商用限制
程式碼Apache-2.0可自由商用
模型權重NVIDIA Open Model License (NOML)要看條款

NOML 允許大多數商用情境,但有以下保留條款(使用前務必看 license 原文):

  • 不能用 GR00T 訓練「競爭性 foundation model」
  • 不能違反美國出口管制(特定國家 / 實體)
  • 衍生模型必須附帶 NOML 通知

6.5 機密邊界建議

  • ✅ 訓練資料:自家資料保留在自家 GPU,不要傳到 HF Hub public dataset
  • ✅ Fine-tuned checkpoint:private repo 或本地存放(已是行業常識)
  • ⚠️ 啟動 --use-wandb 會把訓練 metric 上傳 wandb — 內部訓練前確認 wandb project 是 private
  • ⚠️ Policy Server --host 0.0.0.0 預設完全沒有認證,部署到實機器人前一定要套 firewall / VPN / TLS proxy

6.6 紅黃綠燈總結

🟢 整體 GREEN:核心程式碼乾淨、無高風險呼叫、依賴主流、官方維護。 🟡 黃色注意:HF token 由使用者管理;模型權重 NOML 商用要看條款;Policy Server 無認證。 🔴 無紅燈


7. FAQ

Q1:GR00T 跟 RT-2 / OpenVLA / π0 / RDT-1B 比有什麼不同?

維度GR00T N1.7RT-2 (Google)OpenVLAπ0 (Physical Intelligence)RDT-1B
開源✅(程式碼 + 權重)
動作表示Relative EEFDiscrete tokensDiscrete tokensContinuous (flow matching)Continuous (diffusion)
BackboneCosmos-Reason2-2BPaLM-E 12BLlama 2 7BPaliGemma 3BSigLIP + Llama 2
人類影片✅ 20K 小時
多 embodiment✅ 8+
全身控制✅ SONIC部分
商用 licenseNOML(程式碼 Apache)不公開Apache-2.0Apache-2.0CC-BY-NC

GR00T 最獨特:人類影片直接用 relative EEF 訓練 + 全身 SONIC + NVIDIA 完整工具鏈

Q2:我沒有人形機器人,這個 repo 還有用嗎?

有:

  • SO100 ~$100 桌上型機械臂可用 NEW_EMBODIMENT fine-tune
  • HuggingFace LeRobot 生態資料集可直接用 GR00T zero-shot 評估
  • SimplerEnv / LIBERO benchmark 只要一張 RTX 4090 就能跑

Q3:3B 參數的模型,fine-tune 要多少資料?

從 FAQ.md:

  • 簡單固定位置 pick-place:~100 軌跡
  • 複雜場景 / 多步任務:500+ 軌跡
  • 高 DoF 人形:2000+ 軌跡
  • 細緻操作:100-500 episodes(建議搭配人類動作預訓練)

策略推薦 HG-DAgger(Human Gated DAgger)— 跑 policy、人介入失敗處、把救援軌跡加進資料集再訓。

Q4:N1.7 為什麼 backbone 換成 Cosmos-Reason2-2B?

兩個原因:

  1. 支援原生 aspect ratio 圖像(不像 SigLIP 強制 224x224 或 384x384 padding) → 機器人攝影機是 16:9,padding 浪費 token + 損失訊息
  2. NVIDIA 全家桶整合 — Cosmos-Reason 是 NVIDIA 自家做的 VLM,跟 Cosmos WFM 同源;用同個 backbone 可在合成資料生成(Cosmos)與動作預測(GR00T)共用權重

Q5:可以做 VQA / 推理嗎?

❌ 不行。FAQ 明確指出:「GR00T N1.x 系列專為 action generation 優化,不做 VQA / 開放推理。複雜語意推理保留給未來 N2 系列」。

要 reasoning 就接 Nemotron Nano Omni 在上游做任務分解(見 §9)。

Q6:相機角度大改變(頭動)會掉準嗎?

會。FAQ 提到「大視角改變等於 observation distribution shift」,目前公開 demo 多用相對固定 head pose。

Q7:可以自動 retry 失敗動作嗎?

模型是 stateless(不知道前一步成功與否),retry 行為要靠高品質資料中已有救援 demosDAgger / RL 顯式訓出來。

Q8:模型權重商用 OK 嗎?

程式碼 Apache-2.0 完全 OK。模型權重 NOML — 大多數商用情境 OK,但要看條款。要訓練自家競爭性 foundation model 不允許。實際商用前請法務 review NOML 原文。

Q9:跑 8× H100 fine-tune 一次要多久?

依資料量與 step 數。--max-steps 2000 + global batch 32 在 8×H100 上約 1-2 小時(粗估,視 dataloader 速度)。

Q10:state_dropout_prob 是什麼,要設多少?

gr00t/configs/finetune_config.py 預設:

  • model config: 0.8
  • CLI default: 0.2
  • LIBERO 10-Long: 0.2
  • SimplerEnv Bridge: 0.8
  • SimplerEnv Fractal: 0.5

含義:訓練時隨機 drop 掉 state 輸入,逼模型多看影像 / 語言。任務越依賴 proprioception(如精細抓取)就調低。

Q11:Issue #685 講 N1.6-fractal 復現問題怎麼處理?

需要 cherry-pick commit 3df8b38 的 per-env seed fix。社群在追,NVIDIA 尚未官方修。如果你要復現論文 benchmark,這是已知 bug。

Q12:GA 何時釋出?

EA 文件沒給明確時間,但 README 寫「will continue iterating toward a more stable GA release」— 從 N1 (2025-06) → N1.7 (2026-04) 約 10 個月迭代 4 個 minor version,估計 GA 在 2026 下半年。


8. 進階技巧

8.1 Batched inference

1from gr00t.policy.gr00t_policy import Gr00tPolicy
2
3policy = Gr00tPolicy.from_pretrained("nvidia/GR00T-N1.7-3B")
4batch_obs = [obs1, obs2, obs3, obs4]   # 4 條軌跡
5batch_actions = policy.get_action(batch_obs)

8.2 Action chunking — 怎麼決定 horizon

預設 --action-horizon 8:模型預測未來 8 步,但 server 通常只發送前 N 步就再請求一次(temporal smoothing)。

  • 小 horizon(4-8):reactive,適合精細抓取
  • 大 horizon(16-32):smooth,適合 trajectory following

8.3 連 wandb 追訓

1uv run python gr00t/experiment/launch_finetune.py \
2    --use-wandb \
3    --wandb-project gr00t-internal \
4    ...

⚠️ 內部訓練前確保 wandb project 是 private(資料外洩警告)。

8.4 從 LeRobot v3 轉 v2

1uv run python scripts/lerobot_conversion/convert_v3_to_v2.py \
2    --input-path /path/v3 \
3    --output-path /path/v2

8.5 同時把多個資料集混訓

--dataset-path 支援多路徑或 yaml config 列舉:

1# data_config.yaml
2datasets:
3  - path: demo_data/cube_to_bowl_5
4    weight: 1.0
5  - path: /shared/big_pickplace_data
6    weight: 3.0
1uv run python gr00t/experiment/launch_train.py \
2    --data-config data_config.yaml \
3    ...

8.6 ReplayPolicy 用於環境驗證

1uv run python gr00t/eval/run_gr00t_server.py \
2    --dataset-path demo_data/droid_sample \
3    --embodiment-tag OXE_DROID_RELATIVE_EEF_RELATIVE_JOINT
4    # 不給 --model-path → 自動用 ReplayPolicy 跑資料動作

可在連模型都還沒下載時,驗證機器人 / sim 環境連線正常。

8.7 Mask-guided background suppression

examples/mask-guided-background-suppression/ 展示用前處理 mask 把背景去掉,逼模型只看物件 — 對小資料 fine-tune 有幫助。

8.8 自家 embodiment 註冊

gr00t/eval/sim/env_utils.pyENV_PREFIX_TO_EMBODIMENT_TAG 加新項:

1ENV_PREFIX_TO_EMBODIMENT_TAG = {
2    ...
3    "my_robot_sim": EmbodimentTag.MY_ROBOT,
4}

並在 tests/gr00t/eval/sim/test_env_utils.py 新增 test。


9. 整合進其他工作流(NVIDIA Physical AI 全家桶)

9.1 與 NVIDIA Nemotron 配合(語言大腦 + 動作執行器)

Nemotron Nano Omni 是 NVIDIA 的多模態 LLM(見姊妹 tutorial inbox/2026-06-02-tutorial-Nemotron.md),可作為 GR00T 的上層任務分解大腦


flowchart LR
    User[人類語言指令
整理廚房,把碗放回櫃子] --> Nano[Nemotron Nano Omni
多模態 LLM] Nano --> Subgoals[子目標序列
1.找到碗 2.走到櫃子 3.打開門 4.放入] Subgoals --> GR00T[GR00T N1.7
VLA 執行器] GR00T --> Robot[人形機器人]

整合做法

 1from nemotron_inference import NanoOmniClient   # 假設介面
 2from gr00t.policy.server_client import PolicyClient
 3
 4llm = NanoOmniClient("http://nemotron-server:8000")
 5vla = PolicyClient(host="gr00t-server", port=5555)
 6
 7high_level_goal = "整理廚房,把碗放回櫃子"
 8subgoals = llm.decompose_task(high_level_goal, image=current_camera)
 9
10for subgoal in subgoals:
11    obs["annotation.human.action.task_description"] = subgoal
12    while not subgoal_complete(obs):
13        action, _ = vla.get_action(obs)
14        obs = env.step(action)

兩個模型完全解耦 — Nemotron 跑在 H100 server,GR00T 跑在 Jetson Thor,分別優化。

9.2 與 NVIDIA Cosmos 配合(合成資料 + 世界模擬)— 最強整合

Cosmos World Foundation Models 與 GR00T 是 NVIDIA 內部刻意共設計 的:

  • N1.7 VLM backbone 直接叫 Cosmos-Reason2-2B(用 Cosmos-Reason VLM)
  • Cosmos WFM 可生成大量合成軌跡訓 GR00T
  • 兩者共享 Qwen3-VL 架構與部分權重

Sim-to-real pipeline


flowchart TB
    A[少量真機器人 demo
~50 條 seed] --> B[Cosmos WFM
生成 1000× 變化軌跡] B --> C[Isaac Sim 重渲染
RGB + depth + seg] C --> D[資料混合
real + synthetic 1:20] D --> E[GR00T finetune] E --> F[Real Deploy
實機器人] F -.feedback.-> A

⚠️ FAQ 注意:Cosmos 合成資料 → GR00T 訓練的 production pipeline 還在 dev,目前只有研究 paper(DreamGen 等)驗證可行。如果你急需,先看 NVlabs 的 paper repos。

9.3 與 NVlabs/alpamayo 的關係

NVlabs alpamayo 是 NVIDIA Research(NVlabs)的自駕 / 機器人研究專案。從命名與時間線看:

  • 共享研究血脈:GR00T 從 NVlabs 的 prototype(如 ALOHA 系列、GEAR-SONIC)孵化到 NVIDIA 官方產品線
  • 共享 infra:兩者都用 LeRobot 資料格式、PyTorch、可能共用 GPU cluster

成熟度差異:alpamayo 是研究(API 不穩、PR 隨意),GR00T 是準生產(EA 鎖 PR、之後 GA 有商業支援)。

9.4 與 NVlabs/Nemotron-Labs-Diffusion 的關係

NVlabs 的 diffusion 研究 repo。與 GR00T 重疊點:

  • Policy diffusion head:GR00T 的 action head 是 diffusion transformer (DiT),可能直接借用或共享 NVlabs 的 DiT 實作
  • 兩者皆用 NVIDIA cluster 訓練

如果讀者要改 action head 演算法,先看 Nemotron-Labs-Diffusion repo 找最新 DiT 變體(如 RTC-style flow matching、見 issue #676 社群提案)。

  • 若未來需自動化液體處理機器人,可參考 GR00T 的 server-client 架構資料管線設計
  • LeRobot 資料格式對任何「demonstration learning」工作流都有借鑑價值(不論機器人或軟體 RPA)

9.6 整合進 AI Knowledge Template(本 repo)

GR00T 與本 template 的整合場景:

  • gh-tutorial-qd(你正在看的):把 GR00T repo 變成內部 tutorial
  • paper-tutorial:把 GR00T 論文 (arXiv:2503.14734) + Cosmos + π0 三篇做整合教學
  • research-pipeline-v2:若要評估「GR00T 能否整合進 Apotek 未來 robot pharmacy 線」走完整 9-stage 管線

9.7 三大姊妹 tutorial 索引

主題路徑用途
Nemotroninbox/2026-06-02-tutorial-Nemotron.mdLLM 上層大腦
Cosmosinbox/2026-06-02-tutorial-cosmos.md(並行產出中)世界模擬 + 合成資料
GR00T本文件VLA 執行器

10. 重點摘要 Checklist

讀完本文你應該能回答:

  • GR00T 是什麼?→ NVIDIA 人形機器人 VLA 基礎模型(Cosmos-Reason2-2B + DiT action head)
  • 為什麼用 Relative EEF?→ 跨 embodiment + 人類影片可直接訓
  • N1.7 與 N1.6 差別?→ 換 backbone(Eagle → Cosmos-Reason2-2B),加人類影片預訓練
  • 怎麼最快上手?→ uv sync + standalone_inference_script.py zero-shot droid_sample
  • Fine-tune 自家機器人要多少資料?→ 100~500 條軌跡(簡單任務)
  • 怎麼部署到實機器人?→ server-client 架構,PolicyServer 跑 H100 + PolicyClient 跑 Jetson
  • 部署效能?→ Jetson Thor 22 Hz、5090 76 Hz(TRT FP16 + FlashVLA)
  • 商用 license?→ 程式碼 Apache-2.0 ✅;權重 NOML(看條款)
  • 跟 Cosmos 怎麼配合?→ Cosmos 生成合成資料、Cosmos-Reason 直接是 GR00T VLM backbone
  • 跟 Nemotron 怎麼配合?→ Nemotron Nano Omni 做高層任務分解,GR00T 執行
  • 在 NVIDIA Physical AI 三電腦的位置?→ 訓於 AI Factory、學於 AI Sim、跑於 AI Robot
  • 資安最大注意?→ Policy Server 預設無認證;模型權重 NOML 商用要看條款

11. 進一步閱讀

官方資源

內部 getting_started 文件(強烈推薦先讀)

文件大小內容
getting_started/GR00T_inference.ipynb440K完整 walkthrough notebook
getting_started/policy.md23KPolicy API 完整指南(最詳細)
getting_started/real_world_deployment.md20K實機器人部署
getting_started/data_config.md11Kmodality.json 詳細格式
getting_started/data_preparation.md9K資料準備指南
getting_started/finetune_new_embodiment.md6K新 embodiment fine-tune
getting_started/hardware_recommendation.md5K硬體採購指南

姊妹專案文件(本 batch 同步產出)

  • Nemotroninbox/2026-06-02-tutorial-Nemotron.md
  • Cosmosinbox/2026-06-02-tutorial-cosmos.md
  • NVlabs/alpamayoinbox/2026-06-02-tutorial-alpamayo.md
  • NVlabs/Nemotron-Labs-Diffusioninbox/2026-06-02-tutorial-Nemotron-Labs-Diffusion.md

相關 VLA / 機器人 paper

  • GR00T N1 (NVIDIA 2025) — arXiv:2503.14734
  • RT-2 (Google DeepMind 2023) — VLA 開山作
  • OpenVLA (Stanford 2024) — 開源 VLA
  • π0 (Physical Intelligence 2024) — Flow matching VLA
  • RDT-1B (Tsinghua 2024) — Diffusion VLA
  • DreamGen — Cosmos-based synthetic data for VLA
  • DROID (Stanford 2024) — 大規模 OXE 資料集

社群整合工具

  • LeRobot (HuggingFace) — 資料格式來源 + teleop 工具
  • Isaac Sim / Isaac Lab — sim 環境
  • GEAR-SONIC / GR00T-WholeBodyControl (NVlabs) — 全身控制 decoder
  • FlashVLA (issue #660) — 社群實時推論引擎

與本 template 相關 skill

  • gh-tutorial-qd — 本文件用的工作流
  • paper-tutorial — 若要做 GR00T + Cosmos + π0 三篇 paper 整合教學
  • research-pipeline-v2 — 若要做完整研究評估

作者註:本教學基於 GR00T N1.7 (commit 626af89, 2026-05-26) 撰寫;N1.7 仍為 Early Access,API 與資料可能在 GA 前變動。所有實際部署前請對照 repo 最新 README 與 getting_started/