1. 产品简介
NVIDIA Isaac GR00T N1 是全球首个面向类人机器人的开源通用基础模型,可处理语言与图像等多模态输入,并在不同环境中完成抓取、搬运等操作任务。
模型由视觉-语言大模型(VLM)骨干与扩散式动作预测头组成,能“去噪”生成连续动作序列。
2. 训练数据
- 真实机器人数据
- 模拟数据(源自 Isaac GR00T Blueprint,可生成神经轨迹)
- 互联网级视频数据
这些数据共同支持跨形态(cross-embodiment)学习,并允许用户在后续针对特定机器人或任务做增量微调。
3. 快速使用流程
| 步骤 | 说明 |
|---|---|
| 1️⃣ 数据准备 | 收集 (video, state, action) 三元组演示并转换成 LeRobot 兼容格式 |
| 2️⃣ 配置环境 | 根据机器人形态选择示例配置文件 |
| 3️⃣ 微调/推理 | 使用脚本对 GR00T N1 进行微调或直接推理 |
| 4️⃣ 部署 | 将 Gr00tPolicy 接入机器人控制器执行动作 |
4. 目标人群
- 人形机器人研究人员
- 工程师 / 开发者需快速自定义机器人行为
5. 环境与依赖
| 场景 | 系统 | GPU | Python | CUDA |
|---|---|---|---|---|
| 微调 | Ubuntu 20.04/22.04 | H100、L40、RTX 4090、A6000 | 3.10 | 12.4 |
| 推理 | Ubuntu 20.04/22.04 | RTX 3090、RTX 4090、A6000 | 3.10 | 12.4 |
其它依赖:ffmpeg libsm6 libxext6
6. 安装步骤
git clone https://github.com/NVIDIA/Isaac-GR00T
cd Isaac-GR00T
# 创建 Conda 环境(确保 CUDA 12.4 已装好)
conda create -n gr00t python=3.10
conda activate gr00t
pip install --upgrade setuptools
pip install -e .
# flash-attn 对 CUDA 版本敏感
pip install --no-build-isolation flash-attn==2.7.1.post4
7. 上手指南(getting_started)
7.1 数据格式与加载
from gr00t.data.dataset import LeRobotSingleDataset
from gr00t.data.embodiment_tags import EmbodimentTag
from gr00t.experiment.data_config import DATA_CONFIG_MAP
data_config = DATA_CONFIG_MAP["gr1_arms_only"]
dataset = LeRobotSingleDataset(
dataset_path="demo_data/robot_sim.PickNPlace",
modality_configs=data_config.modality_config(),
embodiment_tag=EmbodimentTag.GR1,
)
print(dataset[5]) # 访问样本
交互教程:
getting_started/0_load_dataset.ipynb
7.2 推理
from gr00t.model.policy import Gr00tPolicy
policy = Gr00tPolicy(
model_path="nvidia/GR00T-N1-2B",
modality_config=...,
embodiment_tag=EmbodimentTag.GR1,
device="cuda" # 建议 GPU
)
action = policy.get_action(dataset[0])
或启动服务:
python scripts/inference_service.py --model_path nvidia/GR00T-N1-2B --server
python scripts/inference_service.py --client # 另一个终端发送请求
7.3 微调
# 查看可用参数
python scripts/gr00t_finetune.py --help
# 单 GPU 微调
python scripts/gr00t_finetune.py --dataset-path ./demo_data/robot_sim.PickNPlace --num-gpus 1
# LoRA 高效微调示例
python scripts/gr00t_finetune.py \
--dataset-path ./demo_data/robot_sim.PickNPlace \
--num-gpus 1 --lora_rank 64 --lora_alpha 128 --batch-size 32
建议:尽量增大 batch size,并训练约 20 k 步。
7.4 评估
python scripts/eval_policy.py --plot --model_path nvidia/GR00T-N1-2B
# 或评估新模型
python scripts/eval_policy.py --plot \
--dataset_path <DATASET_PATH> --embodiment_tag new_embodiment \
--data_config <DATA_CONFIG>
脚本会生成「真实动作 vs 预测动作」图及未归一化 MSE-分数。
8. 性能提示
- 微调:1× H100 或 L40 最快;A6000/RTX 4090 也可,但收敛更慢
- LoRA 微调:推荐 2× A6000 或 4090
- 推理:单样本实时推理,L40 与 4090 几乎无差别
- 动作头:4 步去噪已足够,整体推理 ≈ 62 ms(L40 单卡)
9. 常见问题
| 问题 | 解答 |
|---|---|
| CUDA ARM (Jetson) 能跑吗? | 可以,参考 jetson-containers 项目 |
| 自有数据如何微调? | 先按 LeRobot 格式整理,再用 gr00t_finetune.py |
| Modality Config / Embodiment Tag / Transform Config 是什么? | 详见 getting_started/4_deeper_understanding.md |
| Gr00tPolicy 推理速度? | L40 单卡:VLM 22.9 ms + 动作头 39.6 ms ≈ 62.5 ms |
以上即为 GR00T N1 的中文快速指南。希望能帮助你在本地顺利安装、微调并部署该人形机器人基础模型。若有其它疑问,欢迎随时交流!