LeRobot documentation

RoboColosseum

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.7.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

RoboColosseum

RoboColosseum, gerçek dünyada dağıtık olarak çalışan genel amaçlı robot politikalarını, sahada konuşlandırılmış fiziksel robotlar üzerinde değerlendirmek için bir referans testidir. Değerlendirmeler standartlaştırılmış kurulumlarda çalıştırılır: Unitree G1 humanoidleri, çift kollu YAM, DROID kurulumundaki Franka kolları ve SO-101. Başarısızlıklar dahil olmak üzere her değerlendirme çalıştırması, LeRobot biçiminde Hugging Face Hub üzerinde yayımlanır.

Bu sayfa, bir LeRobot politikasının iki değerlendirme turu için nasıl hazırlanacağını ve RoboColosseum’un robotlarına nasıl bağlanacağını açıklar. Bir politikanın değerlendirilmesini istiyorsanız, RoboColosseum web sitesinde başvuru yapın.

RoboColosseum benchmark overview

Genel Bakış

ÖzellikDeğer
UygulamalarSO-101, Franka (DROID), Bimanual YAM, Unitree G1
İnce Ayarlama Takibi20 görev, her vücut tipi için 5 görev. Her politika, bir görevin aynı 100 gösterimi üzerinde ince ayarlanır, ardından 25 deneme yapar.
Open Trackİki anonimleştirilmiş politika, aynı sahnede aynı yeni talimata çalışır; değerlendirici daha iyi çalışmayı seçer veya berabere ilan eder. Kontrol noktası dondurulur.
DeğerlendirmeRoboColosseum'un fiziksel robotları hakkında

Fiziksel kurulum

RoboColosseum robot platforms: Bimanual YAM, SO-101, Franka in the DROID configuration and Unitree G1

Her site, bir vücut (embodiment) için aynı donanım yapılandırmasını kullanır. Şekilde soldan sağa: Bimanual YAM, SO-101, DROID yapılandırmasındaki Franka ve Unitree G1. Kamera adları, Fine-tune Track veri setlerindeki observation.images.* anahtarlarıdır.

VücutlanmaRobotKameralar
SO-101Yüksekliği ayarlanabilir mobil bir masadaki SO-101 takip kolufront: eklemli kolda Intel RealSense D435; wrist: bilek kamerası
Franka (DROID)DROID yapılandırmasında, taşınabilir ayakta çalışma masasında Robotiq 2F-85 gripper'lı Franka Panda 7-DoF koluleft_image, right_image: iki ayarlanabilir ZED 2 stereo kamera; wrist: ZED Mini bilek stereo kamerası
Bimanual YAMYüksekliği ayarlanabilir mobil bir masada MolmoAct2 YAM kiti içinden iki YAM kolutop: direğin üzerindeki Intel RealSense D435; left, right: bilek kameraları Intel RealSense D405
Unitree G1Unitree G1 insan benzeri robotu ve Unitree Dex-1 paralel kavrayıcılarıhead: stereo baş kamerası; left_wrist, right_wrist: Intel RealSense D405 bilek kameraları

SO-101 ve Bimanual YAM istasyonları ayrıca bir RTX 5090 GPU ve 700 W taşınabilir güç istasyonu içeren bir dizüstü bilgisayara da sahiptir. Politika çıkarımı, bu dizüstü bilgisayarda yerel olarak veya sunucu barındırmalı bir uç noktadan uzaktan çalıştırılır.

Mevcut görevler

Fine-tune Track'ta 20 görev bulunur, her vücut tipi için 5 görev. Her görev, Hub'da 100 epizodla kaydedilmiş ayrı bir LeRobot v3.0 veri setidir:

GörevVücutlanmaTalimat
so101-cube-drawerSO-101Masa üzerindeki mavi küpü açık çekmeceye koyun, ardından çekmeceyi kapatın.
so101-remove-screwdriverSO-101Siyah tornavidayı kutudan çıkarın ve masaya yerleştirin.
so101-stack-bowlsSO-101Sağdaki beyaz plastik kaseyi al ve soldaki beyaz plastik kase üzerine yerleştir.
so101-stack-cubesSO-101Mavi küpü kırmızı küpün üzerine yerleştirin, ardından beyaz küpü mavi küpün üzerine yerleştirin.
so101-upright-bottleSO-101Yere düşen meyve suyu şişesini al ve masada dik bir şekilde durdur.
droid-close-laptopFranka (DROID)laptopu kapat
droid-mug-on-coasterFranka (DROID)altlığındaki fincan
droid-open-drawerFranka (DROID)çekmeceyi aç
droid-put-marker-penFranka (DROID)Kalemi kalemlik içine yerleştirin
droid-towel-in-basketFranka (DROID)sepetteki havlu
yam-cupsBimanual YAMKupaları üst üste dizin.
yam-drawerBimanual YAMBardığı çekmeceye koyun.
yam-dustpanBimanual YAMTabloyu temizleyin.
yam-microwaveBimanual YAMMikrodalga fırını açın ve kaseyi çıkarın.
yam-trayBimanual YAMTabloyu temizleyin.
g1-carry-boxUnitree G1taşıma kutusu
g1-fold-towelUnitree G1havlu katla
g1-hang-keysUnitree G1anahtarlar
g1-load-clothes-washing-machineUnitree G1load clothes washing machine
g1-plate-into-rackUnitree G1plakayı rafa yerleştir

Open Track talimatları, bir değerlendirici tarafından anında yazılır.

Veri seti

Tüm 20 Fine-tune Track veri setini, görev başına bir klasör olacak şekilde ./data/RoboColosseum dizinine indirin. Tam set yaklaşık 35 GB'dır: SO-101 1,4 GB, Franka 4,6 GB, Bimanual YAM 5,9 GB ve Unitree G1 22,7 GB.

for task in so101-cube-drawer so101-remove-screwdriver so101-stack-bowls so101-stack-cubes so101-upright-bottle \
            droid-close-laptop droid-mug-on-coaster droid-open-drawer droid-put-marker-pen droid-towel-in-basket \
            yam-cups yam-drawer yam-dustpan yam-microwave yam-tray \
            g1-carry-box g1-fold-towel g1-hang-keys g1-load-clothes-washing-machine g1-plate-into-rack; do
  hf download "RoboColosseum/${task}" --repo-type dataset --local-dir "./data/RoboColosseum/${task}"
done

Sadece bazı görevleri indirmek için listede yalnızca o görev adlarını bırakın. Her klasör, kendi içinde bağımsız bir LeRobot veri setidir. Birini yüklemek için klasörünü root olarak iletin:

from lerobot.datasets import LeRobotDataset

dataset = LeRobotDataset(
    "RoboColosseum/so101-stack-bowls",
    root="./data/RoboColosseum/so101-stack-bowls",
)

root verilmediğinde, veri seti ilk kullanımda Hub'dan indirilir.

Kurulum

Modelinizi çalıştıran makinede Policy Server'ı yükleyin:

git clone https://github.com/RoboColosseum/robocolosseum-policy-server.git
cd robocolosseum-policy-server
uv sync --extra demo

Robot siteleri, robotun bağlı olduğu bilgisayara Robot Client'ı yükler; burada <robot_type> değeri so101, franka veya yam olabilir:

git clone https://github.com/RoboColosseum/robocolosseum-client.git
cd robocolosseum-client
uv sync --extra <robot_type>
Both need Python 3.10 or newer and [uv](https://docs.astral.sh/uv/). The Robot Client also needs FFmpeg to export recordings. On SO-101, the Robot Client drives the arm with LeRobot's `so101_follower` driver, which needs Python 3.12: follow the Client's [SO-101 guide](https://github.com/RoboColosseum/robocolosseum-client/blob/main/docs/so101.md) instead.

Değerlendirme

Değerlendirmeler, RoboColosseum’un robotlarında çalıştırılır. başvurduktan sonra RoboColosseum ekibi, politikanızı iki yoldan biriyle bağlar: kendi çıkarım makinenizde bir Policy Server barındırırsınız ya da robotun yanındaki bir makinede sunulması için bir checkpoint teslim edersiniz.

Open Track denemeleri iki program kullanır:

BileşenÇalıştığıNe işe yararDepo
Policy SunucusuÇıkarım makinenizRobot gözlemlerini alır, modelinizi çalıştırır ve eylemleri döndürürrobocolosseum-policy-server
Robot İstemcisiRobotun bilgisayarıRobotu kontrol eder, eylemleri yürütür ve denemeyi kaydederrobocolosseum-client

Politikanızı sunun

Policy Server kontrolünde yapılandırmayı oluşturun ve RoboColosseum ekibinden aldığınız Router URL'sini ve Policy Server jetonunu ayarlayın:

cp configs/policy.yaml.example configs/policy.yaml
url: wss://router.example.com:8443
token: pol_replace_with_token_from_router_ui

Eylemler göndermeden bağlantıyı kontrol edin. Router, bir Robot Client'i sunucunuza eşleştirdiğinde, görev talimatı, eklem ve kavrama durumu ile kamera görüntüleri gösterilir (görüntüler OpenCV pencerelerinde açılır, bu nedenle grafiksel bir ekran gereklidir):

uv run --extra demo python examples/test_policy.py --no-enable-action

Ardından modelinizi Policy Server SDK ile bağlayın. Bunu depo kökünde serve_policy.py olarak kaydedin:

from colosseum_policy_server import ColosseumPolicySDK
from your_policy import load_model  # Replace with your own model loader.


def main():
    model = load_model()

    with ColosseumPolicySDK.from_yaml("configs/policy.yaml") as sdk:
        print("Connected to Router. Waiting for observations...", flush=True)
        while True:
            obs = sdk.get_obs()
            actions = model.infer(obs)
            sdk.send_action(actions, observation=obs)


if __name__ == "__main__":
    main()

model.infer(obs), gözlemi (obs.instruction, obs.state.head_image, obs.state.left_image, obs.state.right_image, obs.state.joints, obs.state.gripper) modelinizin girdilerine dönüştürür ve Client ile anlaşılan eylem uzayında (horizon, action_dim) biçiminde bir NumPy dizi döndürür. Varsayılan olarak bu, parça başına en fazla 16 adımla 15 Hz'de joint_position'dur. Sunucuyu başlatın ve değerlendiriciler politikanızı kullanırken çalışır durumda tutun:

uv run python serve_policy.py

Bir robot kurun

Robot Client çıkışında yapılandırmayı oluşturun ve robotunuz için düzenleyin:

cp configs/robot.yaml.example configs/robot.yaml

Sonra Client'i başlatın:

.venv/bin/colosseum-robot configs/robot.yaml

Yönergeleri izleyerek bir talimat girin veya bir görev seçin, denemeyi çalıştırın ve değerlendirmeyi gönderin. Her deneme LeRobot biçiminde kaydedilir ve dışa aktarılır.

İnce ayar Takip değerlendirme kodu

Fine-tune Track'taki her vücut için kullanılan ince ayar ve değerlendirme kodları herkese açıktır: SO-101, Franka (DROID), Bimanual YAM ve Unitree G1.

Eğitim

İnce Ayarlama Takibi

--dataset.root ile indirilen görev veri setinde eğitim yapın:

lerobot-train \
  --dataset.repo_id=RoboColosseum/so101-stack-bowls \
  --dataset.root=./data/RoboColosseum/so101-stack-bowls \
  --policy.type=<policy_type> \
  --policy.repo_id=${HF_USER}/<policy_type>_robocolosseum_so101-stack-bowls \
  --output_dir=./outputs/<policy_type>_robocolosseum_so101-stack-bowls

Kesin politika yapılandırması, kamera eşlemesi, eylem temsili ve eğitim tarifi, uyarlanan politikaya bağlıdır. Politikanız farklı kamera adları bekliyorsa, bunları --rename_map ile eşleyin.

Not: G0.5 ve LingBot-VLA 2.0 baz çizgileri, orijinal kodlarıyla ince ayarlandı: GalaxeaVLA @ 89f2322 ve lingbot-vla-v2 @ be969b8.

Open Track

Open Track, donmuş bir kontrol noktasını gerçek dünya görevlerinde değerlendirir. RoboColosseum Open Track değerlendirme verileri üzerinde herhangi bir eğitim yapılmaz.

Eğer politikanız hedef vücut yapısını henüz desteklemiyorsa, önce bu vücut yapısına ait açık robot verileri üzerinde uyarlayın, ardından değerlendirme öncesinde elde edilen kontrol noktasını dondurun. Önerilen açık başlangıç veri kümeleri:

Hedef vücutHerkese açık başlangıç verileri
SO-100 / SO-101allenai/MolmoAct2-SO100_101-Dataset
Franka (DROID)DROID
Bimanual YAMallenai/MolmoAct2-BimanualYAM-Dataset

allenai/MolmoAct2-SO100_101-Dataset, MolmoAct2’nin eğitilmesinde kullanılan SO-100 ve SO-101 LeRobot veri kümelerini, bölüm başına dil açıklamalarıyla birlikte listeler. Kaynak depolarının listesini şu komutla indirin:

hf download allenai/MolmoAct2-SO100_101-Dataset repo_list.json \
  --repo-type dataset \
  --local-dir ./data/molmoact2_so100_101

repo_list.json dosyasındaki her giriş, lerobot: önekiyle başlayan bir Hub veri seti kimliğidir (örneğin lerobot:<user>/<dataset>). Listeden uyumlu SO-100 / SO-101 veri setlerini seçin ve bunlarla eğitim yapın. Bunların çoğu LeRobot v2.1 biçimini kullanır: yüklemeye başlamadan önce bunları v3.0 biçimine dönüştürün (bkz. LeRobotDataset Kullanımı).

DROID, RLDS biçiminde yayınlanmıştır. Büyük Veri Setlerini Taşıma bölümündeki DROID örneğini izleyerek bunu bir LeRobot veri setine dönüştürün, ardından dönüştürülen veri setinde lerobot-train ile eğitim yapın.

Bimanual YAM veri seti lerobot-train ile doğrudan çalışır:

lerobot-train \
  --dataset.repo_id=allenai/MolmoAct2-BimanualYAM-Dataset \
  --policy.type=<policy_type> \
  --policy.repo_id=${HF_USER}/<policy_type>_bimanual_yam \
  --output_dir=./outputs/<policy_type>_bimanual_yam

Bootstrap aşaması, politikayı yalnızca hedef vücut yapısıyla uyumlu hale getirir. Open Track'e gönderilen checkpoint, değerlendirme sırasında donmuş kalır.

Sıralama tablosuna gönderim

Skorlar RoboColosseum liderlik tablosunda yayınlanır. Bir politikanın değerlendirilmesi için RoboColosseum web sitesinde başvurun. Her parkurun protokolü:

  • İnce Ayar İzleme: her politika, bir görevin aynı 100 gösterimi üzerinde ince ayarlanır, ardından 25 deneme yapar. Tam başarılar ve kilometre taşı ilerlemeleri raporlanır.
  • Açık Takip: Değerlendiriciler, aynı robot ve sahnede aynı talimatı denemeye çalışan iki anonimleştirilmiş politikayı görür ve daha iyi çalışmayı seçer veya berabere ilan eder. Değerlendirmeler, o robot üzerindeki tüm karşılaştırmalardan uydurulur ve belirsizlikleriyle birlikte gösterilir.
Update on GitHub