LeRobot documentation
RoboColosseum
RoboColosseum
RoboColosseum là một benchmark thực tế phân tán để đánh giá các chính sách robot đa dụng trên các robot vật lý được triển khai trong môi trường thực. Các lần đánh giá được thực hiện trên các cấu hình chuẩn hóa: humanoid Unitree G1, YAM hai tay, cánh tay Franka trong cấu hình DROID và SO-101. Mọi lần chạy đánh giá, bao gồm cả các trường hợp thất bại, đều được công bố trên Hugging Face Hub ở định dạng LeRobot.
Trang này hướng dẫn cách chuẩn bị một chính sách LeRobot cho hai vòng đánh giá của nó và cách kết nối nó với các robot của RoboColosseum. Để một chính sách được đánh giá, hãy nộp đơn trên trang web RoboColosseum.
- Bài báo: RoboColosseum: Evaluating Physical Intelligence at Scale In-The-Wild
- GitHub: RoboColosseum/RoboColosseum
- Trang web dự án: robocolosseum.ai
- Bảng xếp hạng: robocolosseum.ai/leaderboard
- Bộ dữ liệu: bộ sưu tập Datasets RoboColosseum

Tổng quan
| Thuộc tính | Giá trị |
|---|---|
| Các hình thức | SO-101, Franka (DROID), YAM hai tay, Unitree G1 |
| Lộ trình tinh chỉnh | 20 tác vụ, 5 tác vụ cho mỗi hình thái. Mỗi chính sách được tinh chỉnh trên cùng 100 bản diễn giải của một tác vụ, sau đó thực hiện 25 lần thử. |
| Mở Track | Hai chính sách ẩn danh thử cùng một chỉ thị mới trong cùng một cảnh; bộ đánh giá chọn lần chạy tốt hơn hoặc tuyên bố hòa. Điểm kiểm tra được đóng băng. |
| Đánh giá | Về các robot vật lý của RoboColosseum |
Cấu hình phần cứng

Mọi site đều sử dụng cùng một cấu hình phần cứng cho một dạng hiện thân. Từ trái sang phải trong hình: Bimanual YAM, SO-101, Franka trong cấu hình DROID và Unitree G1. Tên camera là các khóa observation.images.* trong các bộ dữ liệu Fine-tune Track.
| Thân xác | Robot | Camera |
|---|---|---|
| SO-101 | Cánh tay theo dõi SO-101 trên bàn di động có thể điều chỉnh chiều cao | front: Intel RealSense D435 trên cánh tay khớp động; wrist: camera cổ tay |
| Franka (DROID) | Cánh tay 7 bậc tự do Franka Panda với gắp Robotiq 2F-85 trên bàn đứng di động, trong cấu hình DROID | left_image, right_image: hai camera stereo ZED 2 có thể điều chỉnh; wrist: camera stereo ZED Mini đeo cổ tay |
| YAM hai tay | Hai cánh tay YAM từ bộ kit YAM MolmoAct2 trên bàn di động có thể điều chỉnh chiều cao | top: Intel RealSense D435 trên một cột; left, right: camera cổ tay Intel RealSense D405 |
| Unitree G1 | Humanoid Unitree G1 với kẹp song song Unitree Dex-1 | head: camera đầu stereo; left_wrist, right_wrist: camera cổ tay Intel RealSense D405 |
Các trạm SO-101 và Bimanual YAM cũng được trang bị một laptop có GPU RTX 5090 và một trạm điện di động 700 W. Việc suy luận chính sách được thực hiện cục bộ trên laptop đó hoặc từ xa thông qua một endpoint được lưu trữ trên máy chủ.
Các tác vụ khả dụng
Mục Fine-tune Track có 20 tác vụ, 5 tác vụ cho mỗi dạng thân. Mỗi tác vụ là một tập dữ liệu LeRobot v3.0 riêng biệt trên Hub, được ghi lại với 100 tập:
| Nhiệm vụ | Thân xác | Hướng dẫn |
|---|---|---|
so101-cube-drawer | SO-101 | Đặt khối lập phương màu xanh dương trên bàn vào ngăn kéo đang mở, sau đó đóng ngăn kéo lại. |
so101-remove-screwdriver | SO-101 | Lấy tua vít màu đen ra khỏi hộp và đặt nó lên bàn. |
so101-stack-bowls | SO-101 | Cầm cái bát nhựa màu trắng bên phải và đặt chồng lên trên cái bát nhựa màu trắng bên trái. |
so101-stack-cubes | SO-101 | Đặt khối lập phương màu xanh dương lên trên khối lập phương màu đỏ, sau đó đặt khối lập phương màu trắng lên trên khối lập phương màu xanh dương. |
so101-upright-bottle | SO-101 | Nhặt chai nước ép đã rơi và đặt nó đứng thẳng trên bàn. |
droid-close-laptop | Franka (DROID) | đóng laptop |
droid-mug-on-coaster | Franka (DROID) | cốc trên đế |
droid-open-drawer | Franka (DROID) | mở ngăn kéo |
droid-put-marker-pen | Franka (DROID) | Đặt bút vào giá đỡ |
droid-towel-in-basket | Franka (DROID) | khăn trong giỏ |
yam-cups | YAM hai tay | Xếp chồng các cốc. |
yam-drawer | YAM hai tay | Đặt cốc vào ngăn kéo. |
yam-dustpan | YAM hai tay | Dọn dẹp bảng. |
yam-microwave | YAM hai tay | Mở lò vi sóng và lấy bát ra. |
yam-tray | YAM hai tay | Dọn dẹp bảng. |
g1-carry-box | Unitree G1 | hộp đựng |
g1-fold-towel | Unitree G1 | gấp khăn |
g1-hang-keys | Unitree G1 | các khóa treo |
g1-load-clothes-washing-machine | Unitree G1 | tải máy giặt quần áo |
g1-plate-into-rack | Unitree G1 | chèn đĩa vào giá |
Hướng dẫn Open Track được viết bởi một người đánh giá ngay tại chỗ.
Bộ dữ liệu
Tải xuống tất cả 20 bộ dữ liệu của Fine-tune Track vào ./data/RoboColosseum, mỗi tác vụ một thư mục. Bộ dữ liệu đầy đủ có dung lượng khoảng 35 GB: SO-101 1,4 GB, Franka 4,6 GB, Bimanual YAM 5,9 GB và 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Để chỉ tải một số tác vụ, hãy giữ lại các tên đó trong danh sách. Mỗi thư mục là một tập dữ liệu LeRobot tự chứa. Để tải một tập dữ liệu, hãy truyền thư mục của nó làm root:
from lerobot.datasets import LeRobotDataset
dataset = LeRobotDataset(
"RoboColosseum/so101-stack-bowls",
root="./data/RoboColosseum/so101-stack-bowls",
)Nếu không có root, bộ dữ liệu sẽ được tải xuống từ Hub khi sử dụng lần đầu.
Cài đặt
Cài đặt Policy Server trên máy chạy mô hình của bạn:
git clone https://github.com/RoboColosseum/robocolosseum-policy-server.git
cd robocolosseum-policy-server
uv sync --extra demoCác trang web của Robot cài đặt Robot Client trên máy tính được kết nối với robot, trong đó <robot_type> là so101, franka hoặc 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.
Đánh giá
Các bài đánh giá được chạy trên các robot của RoboColosseum. Sau khi bạn đăng ký, nhóm RoboColosseum sẽ kết nối chính sách của bạn theo một trong hai cách: bạn tự triển khai một Policy Server trên máy suy luận của mình, hoặc bạn cung cấp một checkpoint để họ triển khai trên một máy đặt cạnh robot.
Các thử nghiệm Open Track sử dụng hai chương trình:
| Thành phần | Chạy trên | Nó hoạt động như thế nào | Kho lưu trữ |
|---|---|---|---|
| Máy chủ Chính sách | Máy suy luận của bạn | Nhận quan sát từ robot, chạy mô hình của bạn và trả về các hành động | robocolosseum-policy-server |
| Robot Client | Máy tính của robot | Điều khiển robot, thực thi các hành động và ghi lại thử nghiệm | robocolosseum-client |
Cung cấp chính sách của bạn
Trong bước checkout của Policy Server, hãy tạo cấu hình và đặt URL của Router cùng token của Policy Server mà bạn nhận được từ nhóm RoboColosseum:
cp configs/policy.yaml.example configs/policy.yamlurl: wss://router.example.com:8443
token: pol_replace_with_token_from_router_uiKiểm tra kết nối mà không gửi các hành động. Khi Router khớp một Robot Client với máy chủ của bạn, chỉ thị tác vụ, trạng thái khớp và gắp cùng hình ảnh từ camera sẽ được hiển thị (các hình ảnh mở trong cửa sổ OpenCV, do đó cần một màn hình đồ họa):
uv run --extra demo python examples/test_policy.py --no-enable-action
Sau đó, kết nối mô hình của bạn với Policy Server SDK. Lưu tệp này dưới tên serve_policy.py ở thư mục gốc của kho:
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) chuyển đổi quan sát (obs.instruction, obs.state.head_image, obs.state.left_image, obs.state.right_image, obs.state.joints, obs.state.gripper) thành đầu vào cho mô hình của bạn và trả về một mảng NumPy có hình dạng (horizon, action_dim) trong không gian hành động đã thống nhất với Client. Mặc định, đây là joint_position ở 15 Hz với tối đa 16 bước mỗi chunk. Khởi động server và giữ cho nó chạy trong khi các bộ đánh giá sử dụng chính sách của bạn:
uv run python serve_policy.py
Cài đặt một robot
Trong phần checkout của Robot Client, tạo cấu hình và chỉnh sửa nó cho robot của bạn:
cp configs/robot.yaml.example configs/robot.yamlSau đó, khởi động Client:
.venv/bin/colosseum-robot configs/robot.yaml
Làm theo các hướng dẫn để nhập một chỉ thị hoặc chọn một tác vụ, chạy thử nghiệm và gửi đánh giá. Mỗi thử nghiệm được ghi lại và xuất ở định dạng LeRobot.
Mã đánh giá theo dõi Fine-tune
Mã fine-tuning và đánh giá được sử dụng cho từng embodiment trong Fine-tune Track là công khai: SO-101, Franka (DROID), Bimanual YAM và Unitree G1.
Huấn luyện
Lộ trình tinh chỉnh
Huấn luyện trên bộ dữ liệu tác vụ đã tải xuống bằng --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-bowlsCấu hình chính sách cụ thể, ánh xạ camera, biểu diễn hành động và công thức huấn luyện phụ thuộc vào chính sách đang được điều chỉnh. Nếu chính sách của bạn kỳ vọng các tên camera khác nhau, hãy ánh xạ chúng bằng --rename_map.
Lưu ý: các baseline G0.5 và LingBot-VLA 2.0 đã được fine-tune bằng mã nguồn gốc của chúng, GalaxeaVLA @ 89f2322 và lingbot-vla-v2 @ be969b8.
Mở Track
Open Track đánh giá một checkpoint đóng băng trên các tác vụ thực tế. Không có quá trình huấn luyện nào được thực hiện trên dữ liệu đánh giá của RoboColosseum Open Track.
Nếu chính sách của bạn chưa hỗ trợ cấu hình robot đích, trước tiên hãy điều chỉnh nó trên dữ liệu robot công khai cho cấu hình đó, sau đó đóng băng checkpoint kết quả trước khi đánh giá. Các bộ dữ liệu khởi tạo công khai được khuyến nghị:
| Hình thái mục tiêu | Dữ liệu khởi tạo công khai |
|---|---|
| SO-100 / SO-101 | allenai/MolmoAct2-SO100_101-Dataset |
| Franka (DROID) | DROID |
| YAM hai tay | allenai/MolmoAct2-BimanualYAM-Dataset |
allenai/MolmoAct2-SO100_101-Dataset liệt kê các bộ dữ liệu LeRobot SO-100 và SO-101 được sử dụng để huấn luyện MolmoAct2, kèm theo chú thích ngôn ngữ cho từng episode. Tải xuống danh sách các kho lưu trữ nguồn bằng cách:
hf download allenai/MolmoAct2-SO100_101-Dataset repo_list.json \ --repo-type dataset \ --local-dir ./data/molmoact2_so100_101
Mỗi mục trong repo_list.json là một ID dataset Hub được đặt tiền tố lerobot: (ví dụ lerobot:<user>/<dataset>). Hãy chọn các dataset SO-100 / SO-101 tương thích từ danh sách và huấn luyện trên chúng. Nhiều dataset trong số đó sử dụng định dạng LeRobot v2.1: hãy chuyển đổi chúng sang v3.0 trước khi nạp (xem Sử dụng LeRobotDataset).
DROID được phát hành ở định dạng RLDS. Hãy chuyển đổi nó thành một tập dữ liệu LeRobot bằng cách làm theo ví dụ DROID trong Porting Large Datasets, sau đó huấn luyện trên tập dữ liệu đã chuyển đổi bằng lerobot-train.
Bộ dữ liệu Bimanual YAM hoạt động trực tiếp với 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_yamGiai đoạn bootstrap chỉ làm cho chính sách tương thích với cấu hình mục tiêu. Điểm kiểm tra được nộp cho Open Track sẽ được giữ nguyên trong suốt quá trình đánh giá.
Gửi bài dự thi lên bảng xếp hạng
Các điểm số được công bố trên bảng xếp hạng RoboColosseum. Để một chính sách được đánh giá, hãy đăng ký trên trang web RoboColosseum. Giao thức cho mỗi hạng mục:
- Lộ trình tinh chỉnh: mỗi chính sách được tinh chỉnh trên cùng 100 ví dụ minh họa của một tác vụ, sau đó thực hiện 25 lần thử. Các thành công hoàn toàn và tiến độ đạt mốc được báo cáo.
- Open Track: người đánh giá sẽ xem hai chính sách ẩn danh thực hiện cùng một chỉ thị trên cùng một robot và cùng một cảnh, sau đó chọn lượt chạy tốt hơn hoặc tuyên bố hòa. Các đánh giá được khớp từ tất cả các so sánh trên robot đó và được hiển thị kèm theo độ không chắc chắn của chúng.