LeRobot documentation
RoboColosseum
RoboColosseum
RoboColosseum هو معيار موزّع في العالم الحقيقي لتقييم سياسات الروبوتات العامة على روبوتات مادية مُنفَّذة في بيئات حقيقية. تُجرى التقييمات على إعدادات قياسية: روبوتات Unitree G1 البشرية، وYAM ذات اليدَين، وأذرع Franka في إعداد DROID، وSO-101. يُنشر كل تشغيل تقييم، بما في ذلك حالات الفشل، على Hugging Face Hub بتنسيق LeRobot.
يتناول هذا الصفحة كيفية إعداد سياسة LeRobot لمساري التقييم الخاصين بها وكيفية ربطها بأجهزة RoboColosseum الروبوتية. لتقييم سياسة ما، قدّم طلبًا على موقع RoboColosseum.
- الورقة: RoboColosseum: Evaluating Physical Intelligence at Scale In-The-Wild
- GitHub: RoboColosseum/RoboColosseum
- موقع المشروع: robocolosseum.ai
- لوحة الصدارة: robocolosseum.ai/leaderboard
- مجموعة البيانات: مجموعة بيانات RoboColosseum

نظرة عامة
| خاصية | القيمة |
|---|---|
| التجسيدات | SO-101، Franka (DROID)، YAM ثنائي اليد، Unitree G1 |
| مسار الضبط الدقيق | 20 مهمة، 5 لكل تجسيد. يتم ضبط كل سياسة بدقة على نفس 100 عرض توضيحي للمهمة، ثم تقوم بـ 25 محاولة. |
| فتح المسار | تتعرض سياستان مجهولتان للتجربة على نفس التعليمات الجديدة في نفس المشهد؛ يختار المقيّم التنفيذ الأفضل أو يُعلن تعادلًا. يتم تجميد نقطة الفحص. |
| التقييم | على الروبوتات المادية في RoboColosseum |
الإعداد المادي

تستخدم كل المواقع نفس تكوين العتاد للتجسيد. من اليسار إلى اليمين في الشكل: YAM ثنائي اليد، وSO-101، وFranka في تكوين DROID، وUnitree G1. أسماء الكاميرات هي مفاتيح observation.images.* في مجموعات بيانات Fine-tune Track.
| التجسيد | روبوت | الكاميرات |
|---|---|---|
| SO-101 | ذراع متتبعة SO-101 على طاولة متنقلة قابلة للتعديل في الارتفاع | front: كاميرا Intel RealSense D435 مثبتة على ذراع مفصلي؛ wrist: كاميرا المعصم |
| Franka (DROID) | ذراع Franka Panda ذات 7 درجات حرية مزودة بمقبض Robotiq 2F-85 على مكتب واقف محمول، في تكوين DROID | left_image، right_image: كاميرتان ستيريو قابلتان للتعديل من نوع ZED 2؛ wrist: كاميرا ستيريو صغيرة من نوع ZED Mini تُركَّب على المعصم |
| YAM ثنائي اليد | ذراعان من نوع YAM من طقم MolmoAct2 YAM على طاولة متنقلة قابلة للتعديل في الارتفاع | top: كاميرا Intel RealSense D435 مثبتة على عمود؛ left، right: كاميرات Intel RealSense D405 معصمية |
| Unitree G1 | الإنسان الآلي Unitree G1 مزوّد بمقبضين متوازيين من نوع Unitree Dex-1 | head: كاميرا رأسية ستيريو؛ left_wrist، right_wrist: كاميرات معصم Intel RealSense D405 |
تحتوي محطات SO-101 وBimanual YAM أيضًا على حاسوب محمول مزوّد بوحدة معالجة رسومية RTX 5090 ومحطة طاقة محمولة بقوة 700 واط. يتم تنفيذ استنتاج السياسة محليًا على ذلك الحاسوب المحمول أو عن بُعد عبر نقطة نهاية تستضيفها الخادم.
المهام المتاحة
يتضمن مسار الضبط الدقيق 20 مهمة، بمعدل 5 مهام لكل تجسيد. كل مهمة هي مجموعة بيانات LeRobot v3.0 مستقلة على Hub، سُجّلت عبر 100 حلقة:
| المهمة | التجسيد | التعليم |
|---|---|---|
so101-cube-drawer | SO-101 | ضع المكعب الأزرق الموجود على الطاولة في الدرج المفتوح، ثم أغلق الدرج. |
so101-remove-screwdriver | SO-101 | أخرج المِفكّ الأسود من الصندوق وضعه على الطاولة. |
so101-stack-bowls | SO-101 | التقط الوعاء البلاستيكي الأبيض الموجود على اليمين وضعه فوق الوعاء البلاستيكي الأبيض الموجود على اليسار. |
so101-stack-cubes | SO-101 | ضع المكعب الأزرق فوق المكعب الأحمر، ثم ضع المكعب الأبيض فوق المكعب الأزرق. |
so101-upright-bottle | SO-101 | التقط زجاجة العصير الساقطة وضعها بشكل مستقيم على الطاولة. |
droid-close-laptop | Franka (DROID) | إغلاق الحاسوب المحمول |
droid-mug-on-coaster | Franka (DROID) | فنجان على حامل |
droid-open-drawer | Franka (DROID) | فتح الدرج |
droid-put-marker-pen | Franka (DROID) | ضع القلم في حامل الأقلام |
droid-towel-in-basket | Franka (DROID) | منشفة في سلة |
yam-cups | YAM ثنائي اليد | رتّب الأكواب فوق بعضها. |
yam-drawer | YAM ثنائي اليد | ضع الكوب في الدرج. |
yam-dustpan | YAM ثنائي اليد | نظّف الجدول. |
yam-microwave | YAM ثنائي اليد | افتح الميكروويف وأخرج الوعاء. |
yam-tray | YAM ثنائي اليد | نظّف الجدول. |
g1-carry-box | Unitree G1 | صندوق الحمل |
g1-fold-towel | Unitree G1 | طوي منشفة |
g1-hang-keys | Unitree G1 | مفاتيح معلقة |
g1-load-clothes-washing-machine | Unitree G1 | load clothes washing machine |
g1-plate-into-rack | Unitree G1 | من الصفيحة إلى الرف |
تُكتب تعليمات Open Track من قِبل المُقيِّم في الموقع.
مجموعة البيانات
حمّل جميع مجموعات بيانات المسار Fine-tune Track العشرين في ./data/RoboColosseum، بمجلد واحد لكل مهمة. الحجم الإجمالي للمجموعة الكاملة حوالي 35 غيغابايت: SO-101 بمقدار 1.4 غيغابايت، وFranka بمقدار 4.6 غيغابايت، وBimanual YAM بمقدار 5.9 غيغابايت، وUnitree G1 بمقدار 22.7 غيغابايت.
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لتحميل بعض المهام فقط، احتفظ بأسمائها فقط في القائمة. كل مجلد هو مجموعة بيانات LeRobot مستقلة بذاتها. حمّل واحدة عن طريق تمرير مجلدها كـroot:
from lerobot.datasets import LeRobotDataset
dataset = LeRobotDataset(
"RoboColosseum/so101-stack-bowls",
root="./data/RoboColosseum/so101-stack-bowls",
)بدون root، يتم تنزيل مجموعة البيانات من Hub عند أول استخدام.
التثبيت
قم بتثبيت خادم السياسة على الجهاز الذي يعمل عليه نموذجك:
git clone https://github.com/RoboColosseum/robocolosseum-policy-server.git
cd robocolosseum-policy-server
uv sync --extra demoتقوم مواقع الروبوتات بتثبيت عميل الروبوت على الحاسوب المتصل بالروبوت، حيث يكون <robot_type> إما so101 أو franka أو yam:
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.
التقييم
تُنفَّذ التقييمات على روبوتات RoboColosseum. بعد أن تقدّم بطلب، يتصل فريق RoboColosseum بسياساتك بأحد طريقتين: إما أن تستضيف خادم سياسة على جهاز الاستدلال الخاص بك، أو أن تسلّم نقطة تحقق يقومون هم بتشغيلها على جهاز ملاصق للروبوت.
تستخدم تجارب Open Track برنامجين:
| مكوّن | يعمل على | ما يفعله | المستودع |
|---|---|---|---|
| خادم السياسة | جهاز الاستدلال الخاص بك | يستقبل ملاحظات الروبوت، يشغّل نموذجك ويعيد الإجراءات | robocolosseum-policy-server |
| عميل الروبوت | حاسوب الروبوت | يتحكم في الروبوت، وينفّذ الإجراءات ويسجّل التجربة | robocolosseum-client |
استضافة سياستك
في شاشة إتمام عملية الشراء لخادم السياسة، أنشئ التكوين وقم بإعداد عنوان URL الخاص بالموجّه ورمز خادم السياسة الذي تستلمه من فريق RoboColosseum:
cp configs/policy.yaml.example configs/policy.yamlurl: wss://router.example.com:8443
token: pol_replace_with_token_from_router_uiتحقق من الاتصال دون إرسال أي إجراءات. عندما يطابق Router عميل الروبوت Robot Client مع خادمك، يتم عرض تعليمات المهمة وحالة المفاصل والمقبض والصور الملتقطة بالكاميرا (تُفتح الصور في نوافذ OpenCV، لذا يتطلب ذلك عرضًا رسوميًا):
uv run --extra demo python examples/test_policy.py --no-enable-action
ثم اربط نموذجك بـ SDK لخادم السياسة. احفظ هذا الملف باسم serve_policy.py في جذر المستودع:
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) الملاحظة (obs.instruction، obs.state.head_image، obs.state.left_image، obs.state.right_image، obs.state.joints، obs.state.gripper) إلى مدخلات نموذجك، ويعيد مصفوفة NumPy ذات الشكل (horizon, action_dim) في فضاء الإجراءات المتفق عليه مع العميل. افتراضيًا، يكون هذا joint_position بتردد 15 هرتز وبحد أقصى 16 خطوة لكل شريحة. ابدأ الخادم وأبقِه يعمل بينما يستخدم المقيّمون سياستك:
uv run python serve_policy.py
إعداد روبوت
في شاشة إتمام الطلب في Robot Client، أنشئ التكوين وعدّله لروبوتك:
cp configs/robot.yaml.example configs/robot.yamlثم ابدأ العميل:
.venv/bin/colosseum-robot configs/robot.yaml
اتبع التعليمات لإدخال تعليمات أو اختيار مهمة، ثم نفّذ التجربة وأرسل التقييم. تُسجَّل كل تجربة وتُصدَّر بتنسيق LeRobot.
تقييم كود التتبع
كود الضبط الدقيق والتقييم المستخدم لكل تجسيد في مسار الضبط الدقيق متاح للعامة: SO-101، Franka (DROID)، Bimanual YAM وUnitree G1.
التدريب
مسار الضبط الدقيق
الدراسة على مجموعة بيانات مهمة تم تنزيلها باستخدام --dataset.root:
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يعتمد تكوين السياسة الدقيق، وتعيين الكاميرات، وتمثيل الإجراء، وصفة التدريب على السياسة التي يتم تكييفها. إذا كانت سياستك تتوقع أسماء كاميرات مختلفة، فقم بتعيينها باستخدام --rename_map.
ملاحظة: تم ضبط الأساسيات G0.5 و LingBot-VLA 2.0 باستخدام أكوادها الأصلية، GalaxeaVLA @ 89f2322 و lingbot-vla-v2 @ be969b8.
فتح المسار
تقيّم المسار المفتوح نقطة تجميد على مهام واقعية. لا يتم إجراء أي تدريب على بيانات التقييم الخاصة بمسار RoboColosseum المفتوح.
إذا لم يدعم خط عملك بعد تجسيد الهدف، فقم أولاً بتكييفه على بيانات روبوت عامة لذلك التجسيد، ثم قم بتجميد نقطة التفتيش الناتجة قبل التقييم. مجموعات البيانات العامة الموصى بها للتشغيل الأولي:
| الجسد المستهدف | بيانات الإقلاع العامة |
|---|---|
| SO-100 / SO-101 | allenai/MolmoAct2-SO100_101-Dataset |
| Franka (DROID) | DROID |
| YAM ثنائي اليد | allenai/MolmoAct2-BimanualYAM-Dataset |
allenai/MolmoAct2-SO100_101-Dataset يتضمن مجموعات بيانات LeRobot الخاصة بـ SO-100 و SO-101 المستخدمة في تدريب MolmoAct2، مع تعليقات لغوية لكل حلقة. حمّل قائمة المستودعات المصدرية باستخدام:
hf download allenai/MolmoAct2-SO100_101-Dataset repo_list.json \ --repo-type dataset \ --local-dir ./data/molmoact2_so100_101
كل عنصر في repo_list.json هو معرّف مجموعة بيانات على Hub مُسبق بـ lerobot: (على سبيل المثال lerobot:<user>/<dataset>). اختر مجموعات البيانات المتوافقة مع SO-100 / SO-101 من القائمة ودرّب عليها. تستخدم العديد منها صيغة LeRobot v2.1: حوّلها إلى v3.0 قبل التحميل (انظر استخدام LeRobotDataset).
يُصدر DROID بتنسيق RLDS. قم بتحويله إلى مجموعة بيانات LeRobot باتباع مثال DROID في نقل مجموعات البيانات الكبيرة، ثم درّب على المجموعة المحوّلة باستخدام lerobot-train.
يعمل مجموعة بيانات Bimanual YAM مع lerobot-train مباشرةً:
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لا تجعل مرحلة الإقلاع السياسة متوافقة مع التجسيد المستهدف فحسب. تبقى نقطة التفتيش المُرسلة إلى المسار المفتوح مجمّدة أثناء التقييم.
إرسال إلى لوحة الصدارة
تُنشر النتائج على لوحة صدارة RoboColosseum. لتقييم سياسة معينة، قدّم طلبًا على موقع RoboColosseum. بروتوكول كل مسار:
- مسار الضبط الدقيق: يتم ضبط كل سياسة بدقة على نفس 100 عرض توضيحي للمهمة، ثم تُجري 25 محاولة. يتم الإبلاغ عن النجاحات الكاملة والتقدم المحرز في المعالم.
- مسار مفتوح: يرى المقيّمون سياستين مجهولتي الهوية تحاولان تنفيذ نفس التعليمات على نفس الروبوت والمشهد، ويختارون التنفيذ الأفضل أو يصرّحون بالتعادل. تُحسب التقييمات من جميع المقارنات على ذلك الروبوت وتُعرض مع درجة عدم اليقين الخاصة بها.