LeRobot documentation
GR00T Politikası
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 modelnvidia/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.
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_NAMEBu, 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):
| Suite | Başarı oranı | Kontrol Noktası |
|---|---|---|
| LIBERO Uzamsal | 95% | nvidia/gr00t17-lerobot-libero_spatial-640 |
| LIBERO Nesne | 100% | nvidia/gr00t17-lerobot-libero_object-640 |
| LIBERO Hedef | 98% | nvidia/gr00t17-lerobot-libero_goal-640 |
| LIBERO 10 (Uzun) | 93% | nvidia/gr00t17-lerobot-libero_10-640 |
| Ortalama | 96.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=50Baş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=0Stabil çıkarım sağlamak için
inference.queue_thresholddeğ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