系列文章目录
目录
系列文章目录
前言
一、简介
二、详细教程
2.1 数据集准备
2.1.1 创建或下载您的数据集
2.1.2 配置模态文件
2.2 模型微调
2.3 开环评估
2.4 部署
🎉 快乐编程!💻🛠️
立即开始!
前言
一、简介
NVIDIA Isaac GR00T(通用机器人 00 技术)是一个用于构建机器人基础模型和数据管道的研发平台,旨在加速智能、适应性强的机器人的创建。
今天,我们宣布推出 Isaac GR00T N1.5,这是 Isaac GR00T N1 的首次重大更新,Isaac GR00T N1 是全球首个用于通用人形机器人推理和技能的开放式基础模型。该跨实体模型可处理多模态输入(包括语言和图像),在各种环境中执行操作任务。它可以通过针对特定实体、任务和环境的后训练进行适应性调整。
在本博客中,我们将演示如何使用来自单个 SO-101 机械臂的远程操作数据对 GR00T N1.5 进行后训练(微调)。
二、详细教程
现在,GR00T N1.5 已经向使用各种机器人形态的开发者开放,并可以通过经济实惠、开源的 LeRobot SO-101 机械臂进行轻松的微调和适配。
这种灵活性得益于 EmbodimentTag 系统,该系统允许对不同机器人平台进行无缝定制,使爱好者、研究人员和工程师能够根据自己的硬件定制先进的人形机器人推理和操作功能。
2.1 数据集准备
用户可以使用任何 LeRobot 数据集对 GROOT N1.5 进行微调。在本教程中,我们将以清理餐桌任务为例进行微调。
需要注意的是,SO-100或SO-101的数据集并未包含在GROOT N1.5的初始预训练中。因此,我们将将其作为新的embodiment进行训练。
2.1.1 创建或下载您的数据集
在本教程中,您可以选择按照以下步骤创建自己的自定义数据集(推荐)或从 Hugging Face 下载 so101-table-cleanup 数据集。--local-dir 参数用于指定数据集在您的机器上的保存位置。
huggingface-cli download \--repo-type dataset youliangtan/so101-table-cleanup \--local-dir ./demo_data/so101-table-cleanup
2.1.2 配置模态文件
modality.json 文件提供了关于状态和动作模态的额外信息,以使其与“GR00T”兼容。使用以下命令将 examples/so100__modality.json 复制到数据集 <DATASET_PATH>/meta/modality.json:
cp examples/so100__modality.json ./demo_data/so101-table-cleanup/meta/modality.json
注意:对于类似 so101-table-cleanup 数据集的双摄像头设置,请运行:
cp examples/so100__dualcam_modality.json ./demo_data/so100-table-cleanup/meta/modality.json
完成上述步骤后,可使用GR00T LeRobotSingleDataset类加载数据集。以下是一个加载数据集的示例脚本:
python scripts/load_dataset.py --dataset-path datasets/so101-table-cleanup/ --plot-state-action --video-backend torchvision_av
2.2 模型微调
GR00T N1.5 的微调可通过 Python 脚本 scripts/gr00t_finetune.py 执行。要开始微调,请在终端中执行以下命令:
python scripts/gr00t_finetune.py \--dataset-path /datasets/so101-table-cleanup/ \--num-gpus 1 \--output-dir ~/so101-checkpoints \--max-steps 10000 \--data-config so100_dualcam \--video-backend torchvision_av
2.3 开环评估
当训练完成且您的微调策略生成后,您可以通过运行以下命令在开环环境中可视化其性能:
python scripts/eval_policy.py --plot \--embodiment_tag new_embodiment \--model_path <YOUR_CHECKPOINT_PATH> \--data_config so100_dualcam \--dataset_path /datasets/so101-table-cleanup/ \--video_backend torchvision_av \--modality_keys single_arm gripper
恭喜!您已成功在新的实现上对GR00T-N1.5进行微调。
2.4 部署
在成功完成策略的微调和评估后,最后一步是将其部署到您的物理机器人上进行实际执行。
要连接您的SO-101机器人并开始评估,请在终端中执行以下命令:
python 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进行了不同语言指令的微调,用户可以通过使用数据集中的任务提示之一来引导策略,例如“拿起胶带并放入笔筒中”。
🎉 快乐编程!💻🛠️
立即开始!
准备好利用NVIDIA的GR00T N1.5提升您的机器人项目了吗?立即开始使用这些必备资源:
- GR00T N1.5模型:直接从Hugging Face下载最新模型。
- 微调资源:在我们的 GitHub 上查找用于微调的示例数据集和 PyTorch 脚本。
- 贡献数据集:通过向 Hugging Face 贡献自己的数据集,为机器人社区贡献力量。
- LeRobot 黑客马拉松:加入全球社区,参与即将举行的 LeRobot 黑客马拉松,展示您的技能。
通过关注 NVIDIA 在 Hugging Face 上的动态,了解最新进展。