当前位置: 首页 > news >正文

NVIDIA Isaac GR00T N1.5 人形机器人强化学习入门教程(四)Lerobot、宇树 G1 等不同形态机器人微调教程

系列文章目录

    目录

    系列文章目录

    前言

    一、Lerobot So100/So101 微调教程

    1.1 数据集

    1.2 微调

    1.3 开环评估

    1.4 部署

    二、Unitree G1 微调

    2.1 下载数据集

    2.2 尝试加载数据集并可视化它

    2.3 微调

    2.4 开环评估

    2.5 部署


    前言

            本笔记本是一份关于如何在新的数据集上对GR00T-N1预训练模型进行微调的教程。


    一、Lerobot So100/So101 微调教程

            GR00T-N1.5 适用于各种机器人形态的用户。基于 Huggingface 的低成本 So101 Lerobot 机械臂,用户可通过 new_embodiment 标签在自己的机器人上对 GR00T-N1.5 进行微调。

    So100 Strawberry and Grape PickingSo101 Table Cleanup Task

    {width=400}

    {width=400}

    DatasetObservationViz Link
    so101-table-cleanupDual camera views of table cleanup taskLink
    so100_strawberry_grapeSingle camera view of strawberry and grape pickingLink
    tictac-botSingle camera view of a tic-tac-toe boardLink

    1.1 数据集

            用户可以使用任何 lerobot 数据集进行微调。在本教程中,我们将首先使用一个示例数据集:so101-table-cleanup

    请注意,此实现未包含在我们的预训练数据集混合中。

    首先,下载数据集

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

            其次,复制模态文件

    modality.json 文件提供了关于状态和动作模态的额外信息,以使其与“GR00T”兼容。将 examples/so100_dualcam__modality.json 复制到数据集 <DATASET_PATH>/meta/modality.json。

            对于类似 so101-table-cleanup 数据集的双摄像头设置,请执行以下操作:

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

            对于单摄像头设置,如 so100_strawberry_grape 数据集,请执行以下操作:

    cp examples/so100__modality.json ./demo_data/so100_strawberry_grape/meta/modality.json

    然后我们可以使用LeRobotSingleDataset类加载数据集。

    1.2 微调

            微调可以通过使用我们的微调脚本/gr00t_finetune.py来完成,因为它支持“new-embodiment”标签。

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

    将批处理大小调整为与您的GPU内存匹配。

    1.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

            这是在训练策略7000步后的结果。

            

            经过更多步骤的训练后,模型性能将显著提升。

            太棒了!您已成功在新的实现上对GR00T-N1.5进行了微调。

    1.4 部署

            首先,确保数据可重放,请参考lerobot文档:https://huggingface.co/docs/lerobot/so101

            在机器人上评估策略:

    python eval_lerobot.py \--robot.type=so101_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."

    有关部署的更多详细信息,请参阅笔记本:5_policy_deployment.md

    二、Unitree G1 微调

            本节展示如何在 Unitree G1 机器人上进行微调,作为新的实现方式。数据集可从以下链接获取:nvidia/PhysicalAI-Robotics-GR00T-Teleop-G1

    规格:

    • 观察:43 维向量化状态(全身和双手的关节位置)
    • 动作:43 维向量化动作(全身和双手的关节位置)
    • 视频:RGB 视频,分辨率为 640x480,帧率为 20fps
    • 语言指令:
      • “从桌子上拿起苹果,把它放进篮子里。”
      • “从桌子上拿起梨并放入篮子。”
      • “从桌子上拿起葡萄并放入篮子。”
      • “从桌子上拿起星果并放入篮子。”

    2.1 下载数据集

    huggingface-cli download \--repo-type dataset nvidia/PhysicalAI-Robotics-GR00T-Teleop-G1 \--local-dir ./datasets/

    2.2 尝试加载数据集并可视化它

            示例:加载苹果数据集的第一集

    python scripts/load_dataset.py --dataset-path datasets/PhysicalAI-Robotics-GR00T-Teleop-G1/g1-pick-apple/ --plot-state-action### Similar for other fruits
    # Switch to other fruits -- pear, grapes, starfruit

            ·您应看到以下图表:

    2.3 微调

            在此,我们可以提供用于微调的數據集列表。我们将使用包含苹果、梨、葡萄和星果采摘任务的混合数据集对模型进行微调。

    dataset_list=("datasets/PhysicalAI-Robotics-GR00T-Teleop-G1/g1-pick-apple/""datasets/PhysicalAI-Robotics-GR00T-Teleop-G1/g1-pick-pear/""datasets/PhysicalAI-Robotics-GR00T-Teleop-G1/g1-pick-grapes/""datasets/PhysicalAI-Robotics-GR00T-Teleop-G1/g1-pick-starfruit/"
    )python scripts/gr00t_finetune.py \--dataset-path ${dataset_list[@]} \--num-gpus 1 --batch-size 95  --output-dir ~/checkpoints/full-g1-mix-fruits/  \--data-config unitree_g1 --max-steps 15000

    注意:由于该数据集采用H.264编码格式录制,因此在加载视频时需使用decord后端。

    2.4 开环评估

            示例:评估苹果数据集

    python scripts/eval_policy.py --plot \--embodiment_tag new_embodiment \--model_path <YOUR_CHECKPOINT_PATH> \--data_config unitree_g1 \--dataset_path datasets/PhysicalAI-Robotics-GR00T-Teleop-G1/g1-pick-apple/ \--video_backend decord \--modality_keys left_arm right_arm

            我们可以看出,策略对动作的预测似乎与真实情况非常接近,这表明微调是成功的。然而,对于策略的实际性能,我们需要在真实机器人上进行评估。

    2.5 部署

            G1 的部署脚本在此未提供。但该管道与 so100 微调管道类似。

    http://www.xdnf.cn/news/1044289.html

    相关文章:

  • Spring Boot的Security安全控制——应用SpringSecurity!
  • Java面试题022:一文深入了解微服务网关Gateway
  • 微软azure抢跑aws和谷歌云的区别
  • SpringMVC系列(一)(介绍,简单应用以及路径位置通配符)
  • 使用Nodejs尝试小程序后端服务编写:简单的待办事项管理demo
  • Java EE与Jakarta EE命名空间区别
  • Appium+python自动化(二十三)- Monkeyrunner与Monkey
  • 基于PPSO与BP神经网络回归模型的特征选择实战(Python实现)
  • Node.js 中常用的异步函数讲解、如何检测异步操作时间和事件
  • NodeJS的yarn和npm作用和区别,为什么建议用yarn
  • AWS 解决方案深度剖析:Amazon QLDB — 构建可信赖、不可变的数据审计基石
  • 智造奇点:AI超级工厂如何重塑制造业DNA
  • nodejs和npm升级
  • 什么是稳定币?
  • windows制作ubuntu系统安装盘
  • 算法题(169):最大子段和(分治思想)
  • AnimateCC及CreateJS:打飞机的4版本V1、V2、V3、V4
  • UltraISO绿色便携版v9 下载与安装教程
  • 基于51单片机的校园打铃及灯控制系统
  • 芯片测试之 trim修调详解
  • 《棒垒球科普》足垒球的规则·垒球2号位
  • [直播推流] 使用 librtmp 库推流
  • KSP密钥管理系统赋能智能制造:密钥管理系统在智能制造行业中有哪些典型应用
  • 单机定时任务@Schedule的常见问题
  • 5.5.1_哈夫曼树
  • uni-app项目loading显示方案
  • neo4j社区版数据库下载安装
  • 玛哈特纵剪矫平机:金属板材精密加工的“开平裁切”核心装备
  • SEO关键词与长尾词布局实战
  • 解决国内无法加载谷歌验证码(reCAPTCHA):URL 重定向配置指南