在 LeRobot SO-101 上调优 GR00T N1.5 基础模型

2025年7月12日 8点热度 0人点赞 0条评论

NVIDIA Isaac GR00T(Generalist Robot 00 Technology)是一个用于构建机器人基础模型和数据管道的研发平台,旨在加速智能、适应性机器人的创建。

Isaac GR00T N1.5 是GR00T N1 的首次重大更新,Isaac GR00T N1 是全球首个用于广义人形机器人推理和技能的开放基础模型。该跨具体化模型能够处理包括语言和图像在内的多模态输入,以便在各种环境中执行操作任务。它可以通过后期训练适应特定的具体化、任务和环境。

在此博客中,我们将演示如何使用来自单个 SO-101 机械臂的远程操作数据对 GR00T N1.5 进行后训练(微调)。

分步教程

现在,使用各种机器人外形的开发人员都可以使用 GR00T N1.5,并且可以使用价格实惠的开源 LeRobot SO-101 手臂轻松地进行微调和调整。

该系统实现了这种灵活性EmbodimentTag,允许针对不同的机器人平台对模型进行无缝定制,使业余爱好者、研究人员和工程师能够根据自己的硬件定制先进的人形推理和操作能力。

步骤0:安装

在继续安装之前,请检查您是否满足先决条件

0.1 克隆Isaac-GR00T 仓库

git clone https://github.com/NVIDIA/Isaac-GR00T
cd Isaac-GR00T

0.2 创建环境

conda create -n gr00t python=3.10
conda activate gr00t
pip install --upgrade setuptools
pip install -e .[base]
pip install --no-build-isolation flash-attn==2.7.1.post4

步骤1:数据集准备

用户可以使用任何 LeRobot 数据集对 GROOT N1.5 进行微调。在本教程中,我们将以表清理任务为例进行微调。

需要注意的是,SO-100 或 SO-101 的数据集不在 GR00T N1.5 的初始预训练中。因此,我们将把它作为 进行训练new_embodiment

1.1 创建或下载你的数据集

在本教程中,您可以按照这些说明(推荐)创建自己的自定义数据集,也可以从 Huggingface下载so101-table-cleanup --local-dir数据集。参数指定数据集在计算机上的保存位置。

huggingface-cli download \
    --repo-type dataset youliangtan/so101-table-cleanup \
    --local-dir ./demo_data/so101-table-cleanup

1.2 配置模态文件

modality.json文件提供了有关状态和操作模式的附加信息,使其与“GR00T 兼容”。使用以下命令将其复制getting_started/examples/so100_dualcam__modality.json到数据集:<DATASET_PATH>/meta/modality.json

cp getting_started/examples/so100_dualcam__modality.json ./demo_data/so101-table-cleanup/meta/modality.json

注意:对于像 so100_strawberry_grape 这样的单摄像头设置,请运行:

cp getting_started/examples/so100__modality.json ./demo_data/<DATASET_PATH>/meta/modality.json

完成这些步骤后,就可以使用 GR00T 类加载数据集了LeRobotSingleDataset。加载数据集的示例脚本如下所示:

python scripts/load_dataset.py --dataset-path ./demo_data/so101-table-cleanup --plot-state-action --video-backend torchvision_av

步骤2:微调模型

可以使用 Python 脚本对 GR00T N1.5 进行微调scripts/gr00t_finetune.py。要开始微调,请在终端执行以下命令:

python scripts/gr00t_finetune.py \
   --dataset-path ./demo_data/so101-table-cleanup/ \
   --num-gpus 1 \
   --output-dir ./so101-checkpoints  \
   --max-steps 10000 \
   --data-config so100_dualcam \
   --video-backend torchvision_av

提示:默认微调设置需要约 25G 的显存。如果您的显存空间不足,请尝试--no-tune_diffusion_model在脚本中添加此标志gr00t_finetune.py

步骤3:开环评估

一旦训练完成并且生成了微调策略,您就可以通过运行以下命令在开环设置中可视化其性能:

python scripts/eval_policy.py --plot \
   --embodiment_tag new_embodiment \
   --model_path <YOUR_CHECKPOINT_PATH> \
   --data_config so100_dualcam \
   --dataset_path ./demo_data/so101-table-cleanup/ \
   --video_backend torchvision_av \
   --modality_keys single_arm gripper

恭喜!您已成功在新版本中对 GR00T-N1.5 进行微调。

步骤 4:部署

成功微调和评估您的策略后,最后一步是将其部署到您的物理机器人上以进行实际执行。

要连接您的SO-101机器人并开始评估,请在终端中执行以下命令:

python getting_started/examples/eval_lerobot.py \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=lil_guy \
    --robot.cameras="{ wrist: {type: opencv, index_or_path: 9, width: 640, height: 480, fps: 30}, front: {type: opencv, index_or_path: 15, width: 640, height: 480, fps: 30}}" \
    --policy_host=10.112.209.136 \
    --lang_instruction="Grab pens and place into pen holder."

由于我们使用不同的语言指令对 GRO0T-N1.5 进行了微调,因此用户可以使用数据集中的某个任务提示来控制策略,例如:

Grab tapes and place into pen holder

予人玫瑰,手有余香。如果您觉得本文对您有帮助,请点赞或打赏。

文章评论

您需要 登录 之后才可以评论