LeRobot documentation
RoboMME
RoboMME
The commands below run the simulator locally. To keep its dependencies away from your policy's, serve it instead with `lerobot-env-server --config_path=docker/sim/configs/robomme.yaml --sim.task=--docker=true`, where ` ` is the command's `--env.task`, and add `--env.server.endpoint=tcp/127.0.0.1:7448` to the command. A server runs the task it was started with (see [Simulation: local or served](./simulation)).
RoboMME là một benchmark thao tác có bổ trợ bộ nhớ được xây dựng trên ManiSkill (SAPIEN). Nó đánh giá khả năng của robot trong việc giữ và sử dụng thông tin xuyên suốt một episode — đếm, tính bền vững của vật thể, tham chiếu và bắt chước.
- 16 tác vụ trong 4 bộ kỹ năng bộ nhớ
- 1.600 demo huấn luyện (100 cho mỗi tác vụ, 50 val, 50 test)
- Bộ dữ liệu:
lerobot/robomme— LeRobot v3.0, 768K khung hình ở 10 fps - Trình mô phỏng: ManiSkill / SAPIEN, cánh tay Panda, chỉ hỗ trợ Linux
![]()
Nhiệm vụ
| Bộ | Nhiệm vụ |
|---|---|
| Đếm (bộ nhớ thời gian) | BinFill, PickXtimes, SwingXtimes, StopCube |
| Tính bền vững (bộ nhớ không gian) | VideoUnmask, VideoUnmaskSwap, ButtonUnmask, ButtonUnmaskSwap |
| Tham chiếu (bộ nhớ đối tượng) | PickHighlight, VideoRepick, VideoPlaceButton, VideoPlaceOrder |
| Bắt chước (trí nhớ thủ tục) | MoveCube, InsertPeg, PatternLock, RouteStick |
Cài đặt
RoboMME yêu cầu Linux (ManiSkill/SAPIEN sử dụng Vulkan rendering). Khuyến nghị sử dụng Docker để cách ly các xung đột phụ thuộc.
Native (Linux)
uv pip install --override <(printf 'gymnasium==0.29.1\nnumpy==1.26.4\n') \
-e '.[smolvla,av-dep]' \
'robomme @ git+https://github.com/RoboMME/robomme_benchmark.git@main'Ghi chú về phụ thuộc:
mani-skill(được kéo theo bởirobomme) cố địnhgymnasium==0.29.1vànumpy<2.0.0, gây xung đột vớinumpy>=2.0.0cơ bản của lerobot. Đó là lý dorobommekhông phải là một extra trong pyproject — hãy sử dụng lệnh cài đặt ghi đè ở trên, hoặc cách tiếp cận Docker ở dưới để tránh hoàn toàn các xung đột.
Docker (được khuyến nghị)
Chạy RoboMME trong image mô phỏng riêng của nó, để các phiên bản numpy/gymnasium của nó không bao giờ xung đột với phiên bản của policy:
lerobot-env-server --config_path=docker/sim/configs/robomme.yaml --docker=trueSau đó, đánh giá với --env.type=robomme --env.server.endpoint=tcp/127.0.0.1:7448 (xem Mô phỏng: cục bộ hoặc được phục vụ).
Chạy đánh giá
Mặc định (một tác vụ, một phiên)
lerobot-eval \
--policy.path=<your_policy_repo> \
--env.type=robomme \
--env.task=PickXtimes \
--env.dataset_split=test \
--env.task_ids=[0] \
--eval.batch_size=1 \
--eval.n_episodes=1Đánh giá đa nhiệm
Đánh giá nhiều tác vụ trong một lần chạy bằng cách phân tách tên tác vụ bằng dấu phẩy. Sử dụng task_ids để kiểm soát các episode được đánh giá cho từng tác vụ. Khuyến nghị: 50 episode cho mỗi tác vụ đối với tập test.
lerobot-eval \
--policy.path=<your_policy_repo> \
--env.type=robomme \
--env.task=PickXtimes,BinFill,StopCube,MoveCube,InsertPeg \
--env.dataset_split=test \
--env.task_ids=[0,1,2,3,4,5,6,7,8,9] \
--eval.batch_size=1 \
--eval.n_episodes=50Các tùy chọn CLI chính cho env.type=robomme
| Tùy chọn | Mặc định | Mô tả |
|---|---|---|
env.task | PickXtimes | Bất kỳ tên tác vụ nào trong 16 tên tác vụ ở trên (phân tách bằng dấu phẩy) |
env.dataset_split | test | train, val hoặc test |
env.action_space | joint_angle | joint_angle (8-D) hoặc ee_pose (7-D) |
env.episode_length | 300 | Số bước tối đa mỗi tập |
env.task_ids | null | Danh sách các chỉ số tập để đánh giá (null = [0]) |
Bộ dữ liệu
Bộ dữ liệu lerobot/robomme ở định dạng LeRobot v3.0 và có thể được nạp trực tiếp:
from lerobot.datasets.lerobot_dataset import LeRobotDataset
dataset = LeRobotDataset("lerobot/robomme")Đặc điểm của bộ dữ liệu
| Tính năng | Hình dạng | Mô tả |
|---|---|---|
image | (256, 256, 3) | Camera RGB phía trước |
wrist_image | (256, 256, 3) | Camera RGB cổ tay |
actions | (8,) | Góc khớp + kẹp |
state | (8,) | Vị trí khớp + trạng thái gắp |
simple_subgoal | str | Ghi chú ngôn ngữ cấp cao |
grounded_subgoal | str | Ghi chú ngôn ngữ có cơ sở |
episode_index | int | ID tập |
frame_index | int | Khung trong tập |
Căn chỉnh khóa tính năng (đào tạo)
Env wrapper phơi bày các camera của nó dưới pixels/<camera_name>, được đặt tên bởi RoboMMEEnvConfig.front_camera_name và RoboMMEEnvConfig.wrist_camera_name (mặc định là camera1 và camera2). Policy nhận chúng dưới dạng observation.images.camera1 và observation.images.camera2, và trạng thái (agent_pos) dưới dạng observation.state.
Các cột thô của tập dữ liệu không khớp với các khóa chính sách đó, vì vậy hãy truyền --rename_map khi tinh chỉnh:
--rename_map='{"image": "observation.images.camera1", "wrist_image": "observation.images.camera2", "state": "observation.state", "actions": "action"}'Ghi đè --env.front_camera_name / --env.wrist_camera_name nếu bạn huấn luyện với các tên khóa khác nhau, để các quan sát trong đánh giá khớp với các tên khóa mà chính sách đã được huấn luyện.
Không gian hành động
| Loại | Chiều | Mô tả |
|---|---|---|
joint_angle | 8 | 7 góc khớp + 1 kẹp (−1 đóng, +1 mở, tuyệt đối) |
ee_pose | 7 | xyz + roll/pitch/yaw + gripper |
Được đặt thông qua --env.action_space=joint_angle (mặc định) hoặc --env.action_space=ee_pose.
Ghi chú về nền tảng
- Chỉ hỗ trợ Linux: ManiSkill yêu cầu SAPIEN/Vulkan. macOS và Windows không được hỗ trợ.
- Khuyến nghị GPU: Việc render có thể chạy trên CPU nhưng chậm; CUDA + Vulkan cho tốc độ đầy đủ.
- xung đột giữa gymnasium và numpy: Xem ghi chú cài đặt ở trên. Ảnh Docker xử lý điều này tự động.
- Fork ManiSkill:
robommephụ thuộc vào một fork cụ thể của ManiSkill (YinpeiDai/ManiSkill), được kéo vào tự động thông qua góirobomme.