LeRobot documentation

GR00T Politikası

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

GR00T Politikası

GR00T, genel amaçlı humanoid robot akıl yürütme ve becerileri için bir NVIDIA temel model ailesidir. Dil, görüntüler ve propriosepsiyon dahil olmak üzere çok modlu girdileri kabul eden, çeşitli ortamlarda manipülasyon görevlerini gerçekleştirmek için kullanılan bir gövde-üstü politika (cross-embodiment policy)dır.

LeRobot, GR00T N1.7'yi groot politika türü aracılığıyla entegre eder.

Kırıcı değişiklik: LeRobot'tan GR00T N1.5 desteği kaldırıldı ve güncel sürümler yalnızca GR00T N1.7'yi destekler. N1.5 checkpoint'leri ve yapılandırmaları, bir geçiş notuyla reddedilir. Bir N1.5 checkpoint'ini kullanmaya devam etmek için, onu destekleyen son sürümü sabitleyin: pip install 'lerobot==0.5.1'. Güncel sürümü kullanmak için GR00T N1.7'ye (temel model nvidia/GR00T-N1.7-3B) geçiş yapın.

Model Genel Bakış

GR00T N1.7, Cosmos-Reason2/Qwen3-VL omurgasını kullanır ve SimplerEnv, DROID ve LIBERO için kontrol noktaları sağlar.

Geliştiriciler ve araştırmacılar, GR00T'u belirli humanoid robotlar veya görevler için uyarlamak amacıyla kendi gerçek veya sentetik verileriyle post-eğitim (post-train) yapabilir.

GR00T, görü ve dil kodlayıcılarını ön eğitilmiş olarak kullanır ve bir akış eşleştirme eylem dönüştürücüsüyle, görü, dil ve propriosepsis koşullarına bağlı bir eylem kümesini modellemek için kullanır.

An overview of GR00T

Güçlü performansı, kapsamlı ve çeşitli bir humanoid veri setinde eğitilmesinden kaynaklanmaktadır; bu veri seti şunları içerir:

  • Robotlardan gerçek yakalanan veriler.
  • NVIDIA Isaac GR00T Blueprint kullanılarak oluşturulan sentetik veri.
  • İnternet ölçeğinde video verisi.

Bu yaklaşım, modele belirli gövde yapıları, görevler ve ortamlar için eğitim sonrası aşamasında yüksek düzeyde uyum sağlama imkânı tanır.

Kurulum Gereksinimleri

GR00T, NVIDIA GPU hızlandırmalı sistemler için tasarlanmıştır. LeRobot'u GR00T ek paketiyle yükleyin:

pip install "lerobot[groot]"

Bir kaynak kodu denetimi için:

pip install -e ".[groot]"

Kullanım

GR00T N1.7'yi kullanmak için:

--policy.type=groot

Eğitim

Eğitim Komutu Örneği

Kendi veri setinizde temel GR00T modelini ince ayar yapmak için tam bir eğitim komutu:

Bu komut, SO-101 robotu için kullanılan new_embodiment bayrağını kullanır; GR00T'ün farklı vücut yapılarını nasıl ele aldığını öğrenmek için daha fazla bilgi edinin.

# install extra deps for training
pip install "lerobot[training]"

hf auth login
# Trackio needs no login for local runs; pass --trackio.space_id=<user>/<space> to sync runs to a Hugging Face Space.

export DATASET_NAME=your_data_set
export HF_USER=your_hf_username
export DATASET=$HF_USER/$DATASET_NAME
export REPO_ID="${DATASET}_GR00T17" #this is the model that will be uploaded to huggingface
export OUTPUT_DIR=outputs/train/$REPO_ID

lerobot-train \
  --dataset.repo_id=$DATASET \
  --dataset.image_transforms.enable=true \
  --policy.type=groot \
  --policy.device=cuda \
  --policy.base_model_path=nvidia/GR00T-N1.7-3B \
  --policy.embodiment_tag=new_embodiment \
  --policy.chunk_size=16 \
  --policy.n_action_steps=16 \
  --policy.use_relative_actions=true \
  --policy.relative_exclude_joints='["gripper"]' \
  --policy.use_bf16=true \
  --policy.push_to_hub=true \
  --policy.repo_id=$REPO_ID \
  --seed=42 \
  --batch_size=64 \
  --steps=20000 \
  --save_checkpoint=true \
  --save_freq=5000 \
  --use_policy_training_preset=true \
  --env_eval_freq=0 \
  --eval_steps=0 \
  --log_freq=10 \
  --output_dir=$OUTPUT_DIR \
  --job_name=$DATASET \
  --trackio.enable=true \
  --trackio.disable_artifact=true

Performans Sonuçları

LIBERO Benchmark Sonuçları

lerobot-eval çalıştırmadan önce LIBERO kurulum talimatlarını izleyin.

GR00T N1.7, LIBERO benchmark setinde güçlü bir performans sergilemiştir. LeRobot sonuçlarını yeniden üretmek için LIBERO bölümündeki talimatları izleyin.

LIBERO üzerinde eğitim

LIBERO süiti için örnek eğitim komutu (burada libero_spatial):

IMAGE_TRANSFORMS='{
  "brightness": {"weight": 1.0, "type": "ColorJitter", "kwargs": {"brightness": [0.7, 1.3]}},
  "contrast":   {"weight": 1.0, "type": "ColorJitter", "kwargs": {"contrast":   [0.6, 1.4]}},
  "saturation": {"weight": 1.0, "type": "ColorJitter", "kwargs": {"saturation": [0.5, 1.5]}},
  "hue":        {"weight": 1.0, "type": "ColorJitter", "kwargs": {"hue":        [-0.08, 0.08]}}
}'

lerobot-train \
  --dataset.repo_id=IPEC-COMMUNITY/libero_spatial_no_noops_1.0.0_lerobot \
  --dataset.root=/datasets/libero_spatial \
  --dataset.revision=main \
  --dataset.video_backend=pyav \
  --dataset.image_transforms.enable=true \
  --dataset.image_transforms.max_num_transforms=4 \
  --dataset.image_transforms.tfs="$IMAGE_TRANSFORMS" \
  --policy.type=groot \
  --policy.base_model_path=nvidia/GR00T-N1.7-3B \
  --policy.embodiment_tag=libero_sim \
  --policy.push_to_hub=false \
  --policy.use_relative_actions=false \
  --policy.max_steps=20000 \
  --batch_size=320 \
  --steps=20000 \
  --save_freq=2000 \
  --env_eval_freq=0 \
  --eval_steps=0 \
  --log_freq=10 \
  --trackio.enable=true \
  --trackio.project=lerobot \
  --trackio.disable_artifact=true \
  --num_workers=4 \
  --prefetch_factor=2 \
  --persistent_workers=true \
  --output_dir=$OUTPUT_DIR \
  --job_name=$JOB_NAME

Bu, burada bulunan tarife uyacaktır.

GR00T N1.7 LIBERO Sonuçları

Ön LeRobot entegrasyon sonuçları (GR00T-LeRobot, suite başına eval.n_episodes >= 50):

SuiteBaşarı oranıKontrol Noktası
LIBERO Uzamsal95%nvidia/gr00t17-lerobot-libero_spatial-640
LIBERO Nesne100%nvidia/gr00t17-lerobot-libero_object-640
LIBERO Hedef98%nvidia/gr00t17-lerobot-libero_goal-640
LIBERO 10 (Uzun)93%nvidia/gr00t17-lerobot-libero_10-640
Ortalama96.5%
export MODEL_ID=your_trained_model_on_huggingface

lerobot-eval \
  --policy.path=$MODEL_ID \
  --policy.embodiment_tag=libero_sim \
  --env.type=libero \
  --env.task=libero_spatial \
  --eval.n_episodes=50

Başarı oranlarını raporlarken her suite için eval.n_episodes >= 50 kullanın.

Donanım kurulumunuzda değerlendirin

Parametrelerinizle modelinizi eğittikten sonra, aşağı akış görevinizde çıkarım (inference) çalıştırabilirsiniz. Policy Deployment (lerobot-rollout) başlığındaki talimatları izleyin. Örneğin:

# install extra deps for roullout and real hardware
pip install "lerobot[feetech,viz]"

export MODEL_ID=your_trained_model_on_huggingface

# make sure that camera index matches your setup!
# find index using `uv run lerobot-find-cameras opencv`
WRIST_CAM='wrist: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30, fourcc: "MJPG"}'
FRONT_CAM='front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: "MJPG"}'
export ROBOT_CAMERAS="{ $WRIST_CAM, $FRONT_CAM }"
export ROBOT_ID=follower_robot
export ROBOT_PORT=/dev/ttyACM0

# Set --inference.rtc.enabled=False if RTC causes inference instability
uv run lerobot-rollout \
  --strategy.type=base \
  --policy.path=$MODEL_ID \
  --policy.base_model_path=nvidia/GR00T-N1.7-3B \
  --policy.n_action_steps=8 \
  --robot.type=so101_follower \
  --robot.port=$ROBOT_PORT \
  --robot.id=$ROBOT_ID \
  --robot.cameras="$ROBOT_CAMERAS" \
  --task="place the vial in the rack" \
  --duration=60 \
  --device=cuda \
  --display_data=true \
  --inference.type=rtc \
  --inference.rtc.enabled=True \
  --inference.rtc.execution_horizon=8 \
  --inference.queue_threshold=0

Stabil çıkarım sağlamak için inference.queue_threshold değeri 5'i aşmamalıdır.

Lisans

GR00T N1.7, NVIDIA Open Model License Agreement kapsamında yayınlanmıştır.

Update on GitHub