
DROID, BridgeData V2 và Open X-Embodiment chuyển đổi thành các hành động đầu cuối 7 chiều trên các cánh tay robot 6 và 7 bậc tự do. Một SO-100 sử dụng 6 vị trí khớp. Những gì có thể chuyển giao, những gì không, và nên làm gì thay thế.
Phiên bản tóm tắt
- •Các bản dựng LeRobot của cả ba đều chia sẻ một quy ước: một hành động đầu cuối 7 chiều [x, y, z, roll, pitch, yaw, gripper] và một trạng thái 8 chiều với một khe đệm. Một SO-100 sử dụng sáu vị trí khớp tuyệt đối.
- •Vector 7 chiều đó là sản phẩm của bộ chuyển đổi: trường hành động RLDS riêng của DROID là 6 vận tốc khớp cộng với một vị trí kẹp, với chế độ xem Descartes trong action_dict.
- •Bốn tốc độ khung hình: DROID 15 fps, BridgeData V2 5 fps, lát google_robot 3 fps, một SO-100 ghi hình ở 30 fps.
- •Bạn không thể hợp nhất chúng với dữ liệu của riêng bạn. validate_all_metadata sẽ báo lỗi ở điểm khác biệt đầu tiên về fps, robot_type hoặc features, và cả ba đều khác nhau.
- •Cái được chuyển giao là trọng số đã được huấn luyện trước, không phải các tập. Dữ liệu mã nguồn mở chiếm 9.1 phần trăm trong hỗn hợp huấn luyện trước của pi0.
- •Cách sử dụng thực tế rẻ nhất của chúng là một thiết bị kiểm tra: một mẫu DROID 2 GB, 100 tập đã được xác minh là tốt, chứng minh quy trình của bạn trước khi bạn ghi hình trong một cuối tuần.
Có một tập dữ liệu công khai với hàng triệu quỹ đạo trên một Google Cloud bucket và một SO-100 trên bàn có giá 110 đến 150 EUR tiền linh kiện. Tại sao cái đầu tiên không thể dạy cái thứ hai? Nó có thể một phần, nhưng hầu như không có sự chuyển giao nào xảy ra ở nơi mọi người mong đợi, và phần trông dễ nhất lại hoàn toàn không hoạt động.
Sau đây là: những gì có trong DROID, BridgeData V2 và Open X-Embodiment, nơi mỗi cái va chạm với một cánh tay 5 bậc tự do chi phí thấp, và những gì nên làm thay thế. Mọi con số dưới đây đều đến từ bài báo, thẻ tập dữ liệu hoặc tệp nguồn mà nó thuộc về.
Ba tập dữ liệu này thực sự chứa gì
| DROID | BridgeData V2 | Open X-Embodiment | |
|---|---|---|---|
| Robot | Franka Panda, 7 DoF, Robotiq 2F-85 | WidowX 250, 6 DoF, giàn máy khoảng 4.000 USD | 22 hiện thân, 60 bộ dữ liệu, 34 phòng thí nghiệm |
| Quy mô | 76k quỹ đạo, 350 giờ | 60.096 quỹ đạo | Hơn 1 triệu quỹ đạo, 527 kỹ năng |
| Đa dạng | 564 cảnh, 84 tác vụ, 50 người thu thập | 24 môi trường, 13 kỹ năng | 160.266 tác vụ, 21 tổ chức |
| Thành phần | tất cả được điều khiển từ xa | 50.365 được điều khiển từ xa, 9.731 được lập trình | theo phòng thí nghiệm nguồn |
| Tốc độ điều khiển | 15 Hz | 5 Hz | thay đổi, từ 3 khung hình/giây trở lên |
| Camera | 2 x ZED 2 bên ngoài, 1 x ZED Mini gắn cổ tay | tối đa 4, hầu hết các tập chỉ dùng camera cố định | tùy thuộc vào thiết bị phòng thí nghiệm sử dụng |
| Tải xuống thô | 1.7 TB RLDS, 8.7 TB raw stereo | Kho lưu trữ JPEG | các bucket TFDS theo từng bộ dữ liệu |
Ít người còn tải xuống 1.7 TB TFRecords RLDS. Tổ chức cộng đồng IPEC-COMMUNITY đã tái xuất bản hầu hết Open X-Embodiment dưới dạng bộ dữ liệu LeRobot với video AV1, trong đó DROID có kích thước 392 GB. Đây là phiên bản bạn sẽ làm việc, và meta/info.json của nó là thứ cần đọc đầu tiên.
DROID
Tiêu chuẩn hóa nhất trong ba loại. Một giàn máy duy nhất ở mọi nơi: một Franka Panda với bộ kẹp Robotiq 2F-85, hai camera stereo ZED 2 có thể điều chỉnh và một ZED Mini gắn cổ tay, được điều khiển từ xa bằng bộ điều khiển Meta Quest 2, ghi lại qua Polymetis ở tốc độ 15 Hz trong cả không gian khớp và đầu cuối không gian. Nhãn ngôn ngữ được thêm vào sau đó qua tasq.ai, tối đa ba nhãn cho mỗi tập.
- 76 nghìn quỹ đạo, 350 giờ, 564 cảnh, 84 nhiệm vụ, 50 người thu thập dữ liệu trên ba châu lục.
- Kết quả nổi bật là đồng huấn luyện, không phải huấn luyện độc lập: các lô dữ liệu được trộn 50/50 với các minh họa trong miền đã vượt trội hơn phương pháp tốt nhất tiếp theo 22 phần trăm thành công tuyệt đối trong phân phối, và 17 phần trăm ngoài phân phối.
- IPEC-COMMUNITY/droid_lerobot: 92.233 tập, 27.044.326 khung hình, franka, 15 fps, codebase_version v2.0, ba luồng AV1 ở 180x320, 392 GB.
- Một mẫu gỡ lỗi 2 GB, 100 tập nằm tại gs://gresearch/robotics/droid_100. Bắt đầu từ đó.
BridgeData V2
Gần nhất với một thiết lập nghiệp dư: một cánh tay WidowX 250 6-DoF, 60.096 quỹ đạo trên 24 môi trường và 13 kỹ năng ở 5 Hz. Lưu ý thành phần: 50.365 minh họa được điều khiển từ xa bởi chuyên gia cộng với 9.731 từ một chính sách chọn và đặt ngẫu nhiên theo kịch bản, vì vậy khoảng 16 phần trăm không phải là minh họa của con người, điều này quan trọng đối với học bắt chước chất lượng. Bản tải xuống thông thường, IPEC-COMMUNITY/bridge_orig_lerobot, báo cáo 53.192 tập và 1.893.026 khung hình ở 5 fps, robot_type widowx: ít hơn 60.096 của bài báo, vì vậy hãy đọc số lượng từ meta/info.json thay vì trích dẫn một trong hai.
Open X-Embodiment
Không phải là một tập dữ liệu theo nghĩa thông thường: 60 tập dữ liệu robot hiện có từ 34 phòng thí nghiệm được gộp vào một bộ sưu tập RLDS duy nhất, bao gồm 22 dạng thực thể và hơn một triệu quỹ đạo. BridgeData V2 nằm trong đó dưới dạng bridge_orig; lát cắt google_robot, fractal20220817_data, chuyển đổi thành 87.212 tập ở tốc độ 3 khung hình/giây.
Việc gộp dữ liệu đi kèm với một cảnh báo mà bài báo đã nêu rõ. Đối với các thí nghiệm RT-X, các tác giả chuyển đổi mỗi nguồn thành một hành động đầu cuối 7-DoF, nhưng không căn chỉnh các hệ tọa độ giữa các tập dữ liệu, và cho phép các giá trị hành động là vị trí hoặc vận tốc tuyệt đối hoặc tương đối, tùy theo sơ đồ điều khiển ban đầu của mỗi robot. Kết luận của họ: cùng một vector hành động có thể tạo ra các chuyển động rất khác nhau cho các robot khác nhau.

Sự không khớp, trong bốn phần
Sự không khớp về thể hiện thường được coi là một vấn đề mơ hồ. Thực ra có bốn loại, chúng thất bại theo những cách khác nhau, và hai trong số đó không thể khắc phục bằng cách lập trình.
1. Bậc tự do
Một SO-100 có năm khớp tay cộng với một bộ kẹp. Nếu tính theo động cơ, đó là một cánh tay 6 bậc tự do (6-DoF), và bài báo SmolVLA gọi nó như vậy; nếu tính theo cơ chế định vị, đó là 5 bậc tự do (5-DoF), và LeRobot gọi nó như vậy trong docstring động học ngược của nó, mô tả IK định hướng mềm trên SO-101 5 bậc tự do, nơi cổ tay chỉ theo dõi định hướng một phần. Một Franka có bảy khớp định vị. Khoảng cách đó quyết định những tư thế nào tồn tại: một cánh tay 5 bậc tự do thường không thể đạt được một vị trí và định hướng tùy ý cùng một lúc, vì vậy bộ giải sẽ trả về vị trí gần nhất có thể, một chuyển động khác với chuyển động đã được trình diễn. Thông tin cơ bản: bậc tự do.
# src/lerobot/robots/so_follower/so_follower.py
motors = {
"shoulder_pan": Motor(1, "sts3215", norm_mode_body),
"shoulder_lift": Motor(2, "sts3215", norm_mode_body),
"elbow_flex": Motor(3, "sts3215", norm_mode_body),
"wrist_flex": Motor(4, "sts3215", norm_mode_body),
"wrist_roll": Motor(5, "sts3215", norm_mode_body),
"gripper": Motor(6, "sts3215", MotorNormMode.RANGE_0_100),
}
# action keys are "<motor>.pos"; send_action sync_writes them to
# "Goal_Position" -> a 6-D ABSOLUTE JOINT POSITION command
# openpi/src/openpi/policies/droid_policy.py
def make_droid_example() -> dict:
return {
"observation/exterior_image_1_left": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8),
"observation/wrist_image_left": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8),
"observation/joint_position": np.random.rand(7), # seven Franka joints
"observation/gripper_position": np.random.rand(1),
"prompt": "do something",
}
# state = concat(joint_position, gripper_pos) -> 8-DVì vậy, một checkpoint DROID có sẵn không phải là một lối tắt. Physical Intelligence cung cấp pi05_droid tại gs://openpi-assets/checkpoints/pi05_droid, và cùng một README ca ngợi sự đa dạng của nó cũng cảnh báo rằng các checkpoint chuyên gia này có thể không tổng quát hóa được cho thiết lập của bạn. Trạng thái của nó là tám số khớp Franka và các khóa hình ảnh của nó là exterior_image_1_left và wrist_image_left. Không có cờ nào biến điều đó thành lệnh SO-100 sáu động cơ.
2. Vector hành động thực sự nói gì
Sâu hơn cả chiều. Trong các chuyển đổi của LeRobot, cả ba đều cho biết kẹp gắp nên đi đâu, trong không gian Descartes. Một SO-100 cho biết sáu servo nên đi đâu. Chuyển đổi cần một mô hình động học và một bộ giải, chứ không phải là một sự định hình lại.
| Thuộc tính | OXE, DROID và Bridge dưới dạng LeRobot | SO-100 trong LeRobot |
|---|---|---|
| Vector hành động | 7-D: x, y, z, roll, pitch, yaw, kẹp gắp | 6-D: một vị trí mục tiêu cho mỗi động cơ |
| Vector trạng thái | 8-D, với một khe đệm (google_robot sử dụng một quaternion) | 6-D, một cho mỗi động cơ |
| Khung | Descartes, không đồng nhất giữa các tập dữ liệu | không gian khớp, hiệu chuẩn từng cánh tay |
| Tuyệt đối hay tương đối | tùy chọn, do phòng thí nghiệm nguồn quyết định | vị trí mục tiêu tuyệt đối |
| Đơn vị | chuẩn hóa theo từng tập dữ liệu, sau đó rời rạc hóa | độ theo mặc định (use_degrees=True), nếu không thì -100 đến 100 |
| Lỗi âm thầm | một delta được đọc như một giá trị tuyệt đối | một cánh tay chưa được hiệu chuẩn |
README của openx2lerobot ghi lại một trạng thái 8-dim thống nhất và hành động 7-dim cho mọi tập dữ liệu mà nó chuyển đổi, đây là nơi xuất phát của khe pad. Lược đồ RLDS của riêng DROID khác biệt: action cấp cao nhất của nó là một vector 7 chiều gồm 6 vận tốc khớp cộng 1 vị trí kẹp, với cartesian_position, cartesian_velocity, joint_position và joint_velocity nằm dưới action_dict. openpi đọc chế độ xem không gian khớp, bản dựng LeRobot cung cấp cho bạn chế độ xem Descartes. Cả hai đều không phải là sáu góc servo tuyệt đối.
LeRobot thực sự cung cấp phần còn thiếu: bộ theo dõi SO có bộ xử lý động học với các bước InverseKinematicsEEToJoints và ForwardKinematicsJointsToEE. Các khóa của nó là ee.x, ee.y, ee.z cộng với một vector quay ee.wx, ee.wy, ee.wz và ee.gripper_pos, vì vậy ngay cả mã hóa hướng cũng khác với roll-pitch-yaw trong các tệp. Bước IK nhận một orientation_weight, mặc định 0.01, mà docstring của nó nói rằng hãy đặt 0.0 cho IK chỉ vị trí trên các cánh tay thiếu truyền động. Bạn có thể xây dựng cầu nối, nhưng nửa hướng của mọi hành động được mượn vẫn chỉ là xấp xỉ.
3. Tốc độ điều khiển
DROID là 15 Hz, BridgeData V2 5 Hz, lát google_robot 3 fps; các tác giả của pi0 mô tả phần mã nguồn mở trong hỗn hợp của họ là điều khiển tần số thấp trong khoảng từ 2 đến 10 Hz. DatasetRecordConfig của LeRobot mặc định là fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. Một được huấn luyện trên dữ liệu 5 Hz đã học rằng một hành động bao gồm 200 ms. Phát lại nó ở 30 Hz và cánh tay sẽ bò; lấy mẫu lại một cách ngây thơ và bạn sẽ làm nhòe khung hình nơi kẹp đóng lại. Nó cũng tương tác kém với : một phân đoạn 100 bước là 20 giây ở 5 Hz, 3.3 ở 30 Hz.
4. Camera
BridgeData V2 đã ngẫu nhiên hóa hai tư thế camera sau mỗi 50 quỹ đạo, và trang dự án của nó lưu ý rằng hầu hết dữ liệu chỉ mang góc nhìn cố định. DROID đã sử dụng giá đỡ ZED 2 có thể điều chỉnh cùng với một ZED Mini gắn ở cổ tay. Bạn có hai webcam USB được định vị bằng mắt. Tư thế camera không phải là một biến gây phiền toái đối với một ; nó là phần lớn những gì bộ mã hóa thị giác đã tập trung vào, và không có gì trong định dạng tệp cho bạn biết các tư thế khác nhau.
Các phần khớp với nhau đủ tốt để chạy. Tập dữ liệu tải, quá trình huấn luyện bắt đầu, độ lỗi giảm, các điểm kiểm tra xuất hiện, không có lỗi nào. Sau đó, chính sách không thực hiện bất kỳ hành động nào có thể nhận dạng được trên cánh tay robot và bạn dành cả ngày để tìm lỗi trong tập lệnh huấn luyện của mình. Không có lỗi: mô hình đã học một phân phối hành động Cartesian cho một robot không tồn tại trong phòng của bạn. Bắt đầu từ độ lỗi giảm, chính sách không làm gì, chứ không phải từ các siêu tham số của bạn.
Điều gì xảy ra khi bạn vẫn cố gắng hợp nhất dữ liệu
Kế hoạch rõ ràng là nối chuỗi: vài nghìn tập DROID cộng với 50 tập của bạn. LeRobot từ chối, và sự từ chối đó nêu ra ba điểm khác biệt.
- 1Tải mẫu 100 tập, không phải toàn bộ 1.7 TB
2 GB là đủ để xem cấu trúc.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2Chuyển đổi RLDS sang định dạng LeRobot
openx2lerobot bao bọc các chuyển đổi tiêu chuẩn OXE và chú thích loại robot cũng như tần số điều khiển. README đặt điều này trong convert.sh.
bashgit clone https://github.com/Tavish9/any4lerobot.git cd any4lerobot/openx2lerobot python openx_rlds.py \ --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \ --local-dir ~/lerobot_droid100 \ --repo-id you/droid100_lerobot \ --use-videos - 3Đọc meta/info.json trước bất cứ điều gì khác
Tệp này quyết định liệu phần còn lại trong ngày của bạn có hoạt động hay không.
bashpython -c "import json;d=json.load(open('meta/info.json'));\ print(d['codebase_version'], d['robot_type'], d['fps']);\ print(d['features']['action']['shape'], d['features']['observation.state']['shape'])" - 4Thử hợp nhất và đọc lỗi
merge tải mọi tập dữ liệu, sau đó validate_all_metadata kiểm tra fps, robot_type và các tính năng so với tập đầu tiên trong danh sách, báo lỗi ngay khi có sự không khớp đầu tiên.
bashlerobot-edit-dataset \ --new_repo_id you/mixed \ --operation.type merge \ --operation.repo_ids "['you/droid100_lerobot', 'you/my_so100_task']" # ValueError: Same fps is expected, but got fps=30 instead of 15.
Các giá trị tham chiếu đến từ tập dữ liệu nào bạn liệt kê đầu tiên, đó là lý do tại sao thông báo phàn nàn về 30 fps của bạn thay vì 15 của DROID. Sửa fps và bạn sẽ gặp kiểm tra robot_type; sửa lỗi đó và bạn sẽ gặp kiểm tra tính năng, 7 so với 6 cho hành động. Không có thứ tự nào vượt qua được, và cùng một cơ chế bảo vệ chạy tại thời điểm ghi thông qua sanity_check_dataset_robot_compatibility.
Trên LeRobot main hiện tại, so100_follower và so101_follower đều được đăng ký vào một SOFollowerRobotConfig dùng chung, vì vậy chuỗi từ một bản ghi thực tế không nhất thiết là chuỗi bạn mong đợi. Hãy đọc nó từ meta/info.json của riêng bạn, và coi một kiểm tra mà bạn phải vô hiệu hóa là một kiểm tra đang nói cho bạn điều gì đó.
Vậy điều gì thực sự được chuyển giao?
Trọng số, không phải tập dữ liệu. Mọi chính sách tổng quát hiện đại đều hấp thụ một phần trong quá trình tiền huấn luyện, và khi bạn từ một đã phát hành, bạn sẽ kế thừa nó đã được điều chỉnh bởi những người có đủ năng lực tính toán để thực hiện đúng cách. Bài báo của pi0 thẳng thắn về tỷ lệ: 9.1 phần trăm hỗn hợp tiền huấn luyện của nó, tính theo bước thời gian, là dữ liệu mã nguồn mở bao gồm OXE, Bridge v2 và DROID. Con số đó là của pi0; hỗn hợp của mỗi nhà cung cấp khác nhau.
- Tiền đề thị giác và ngôn ngữ: bộ mã hóa đã nhìn thấy hàng ngàn nhà bếp và cốc và biết "khối màu đỏ" ám chỉ điều gì.
- Một tiền đề về cấu trúc thao tác: tiếp cận, đóng, nâng, vận chuyển, thả, độc lập với thể hiện ngay cả khi các con số không.
- Một tập dữ liệu tốt đã biết để kiểm tra. Nếu công việc của bạn không thể khớp quá 100 tập DROID, vấn đề là ở thiết lập của bạn.
- Điểm tham chiếu: trên các miền tập dữ liệu quy mô nhỏ, RT-1-X đạt tỷ lệ thành công trung bình cao hơn 50 phần trăm so với phương pháp gốc hoặc RT-1, và RT-2-X đánh bại RT-2 khoảng 3 lần về các kỹ năng mới nổi.
- Không có giám sát hành động khả dụng. Một mục tiêu Descartes 7 chiều không phải là một lệnh khớp 6 chiều.
- Không có chuyển giao tư thế camera, và không có gì trong dữ liệu cho bạn biết các tư thế khác nhau.
- Không có chuyển giao thời gian: nguồn 3, 5 và 15 khung hình/giây so với bộ ghi 30 khung hình/giây.
- Không có chuyển giao kẹp. Một Robotiq 2F-85 và một hàm in 3D trên STS3215 khác nhau về lực, hành trình và động lực học.
- Chỉ riêng quy mô là không đủ ngay cả đối với các tác giả của nó: trong các miền tập dữ liệu lớn, RT-1-X không vượt trội hơn RT-1 được huấn luyện chỉ trên tập dữ liệu đó.
- Không giảm số lượng tập dữ liệu riêng của bạn cần.
| Lớp của mô hình | Có chuyển giao không? | Tại sao |
|---|---|---|
| Vision encoder | Có, mạnh mẽ | Các đối tượng và cảnh độc lập với thể hiện |
| Language grounding | Có | Các hướng dẫn là văn bản, không phải hình học |
| Cross-modal fusion | Chủ yếu | Chú ý đến đối tượng được đặt tên trong lời nhắc |
| Proprioception encoder | Không | Kích thước đầu vào và ngữ nghĩa khớp khác nhau |
| Action head | Không | Được huấn luyện trên không gian Descartes 7 chiều mà bạn không ở trong đó |
| Normalisation statistics | Không, và nguy hiểm | Thống kê ngoại lai làm lệch mọi lệnh |
Đây là lý do tại sao SmolVLA hoạt động khác biệt trên một cánh tay robot chi phí thấp. Bài báo của nó chọn 481 bộ dữ liệu cộng đồng từ Hugging Face, được lọc theo loại hình thể hiện, số lượng tập, chất lượng dữ liệu và độ phủ khung hình: 22.9K tập, 10.6M khung hình, được đánh giá trên các cánh tay robot SO-100 và SO-101 thực tế. Nhỏ và phù hợp sẽ tốt hơn lớn và không phù hợp. So sánh trên ACT so với SmolVLA.
Ba con đường đáng đi
Con đường A: tinh chỉnh từ một điểm kiểm tra đã hấp thụ dữ liệu
Hầu hết mọi người nên chọn con đường này. Bạn không bao giờ cần chạm vào DROID hoặc Open X-Embodiment: chọn một chính sách mà quá trình tiền huấn luyện của nó đã hấp thụ dữ liệu đa hình thể, ghi lại các tập của riêng bạn, sau đó tinh chỉnh.
| Chính sách | Tham số | Số tập tối thiểu | Định dạng tập dữ liệu | Cấp GPU | Suy luận | Điểm kiểm tra cơ sở |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M được huấn luyện tinh chỉnh | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 152 ms per step | nvidia/GR00T-N1.7-3B |
| GR00T N1.5 | ~3 B | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 165 ms | nvidia/GR00T-N1.5-3B |
| Pi0.5 | ~3 B, kiến trúc PaliGemma | 50 | LeRobot v3.0 | A100 or H100 80 GB | 485 ms | lerobot/pi05_base |
| SmolVLA | ~450 M | 30 | LeRobot v3.0 | RTX 4090 or any 24 GB | 245 ms | lerobot/smolvla_base |
| ACT | ~80 M | 50 | LeRobot v3.0 | RTX 4090 or any 24 GB | 20 ms | không có, từ đầu |
ACT là trường hợp ngoại lệ trung thực: không có mô hình cơ sở, vì vậy không có dữ liệu công khai nào tiếp cận được nó. Đây không tự động là một bất lợi, vì với 20 ms mỗi bước hành động, nó là một trong năm mô hình duy nhất có thể đóng một vòng lặp nhanh, như trang ACT đã nêu. Chọn theo tác vụ bằng cách sử dụng cả năm mô hình được so sánh, GR00T N1.7 so với Pi0.5, và 332 kết quả benchmark trên 85 mô hình trong đấu trường.
Đường dẫn B: sử dụng DROID làm thiết bị kiểm tra
Mẫu 100 tập là 2 GB tốt nhất bạn sẽ tải xuống tháng này, và không phải để huấn luyện. Đây là một tập dữ liệu mà bạn biết là chính xác. Chạy bộ chuyển đổi, bộ tải và một tác vụ GPU ngắn trên đó; bất cứ thứ gì thất bại đều là lỗi hạ tầng được tìm thấy khi chi phí còn thấp. NVIDIA cũng làm điều tương tự ở quy mô lớn: thẻ GR00T N1.7 liệt kê bốn biến thể đã được huấn luyện sau, cho Bridge và Fractal trong SimplerEnv, DROID và LIBERO.
Đường dẫn C: tự ghi lại, một cách có chủ đích
Ba mươi đến năm mươi nghe có vẻ nhỏ bé so với 76.000 cho đến khi bạn nhớ rằng của bạn là những tập duy nhất có cánh tay, camera và bàn của bạn. Với cài đặt mặc định của LeRobot, 50 tập là 100 phút thời gian thực. Xem , và .

Hai cách để chuyển từ dữ liệu công khai sang một chính sách hoạt động
All of this runs on your own machine plus a rented GPU. Knowing the manual path matters because when something breaks you will know which layer broke.
- 1Install LeRobot with the extras the scripts need
The record and train entry points each declare their own extra.
bashpip install 'lerobot[core_scripts]' # lerobot-record pip install 'lerobot[training]' # lerobot-train pip install gsutil tensorflow tensorflow-datasets - 2Get a small, known-good slice
100 DROID episodes, 2 GB.
bashgsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 3Convert to LeRobot form
Writes the unified 8-D state and 7-D action, annotating robot type and control frequency.
bashpython openx_rlds.py \ --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \ --local-dir ~/lerobot_droid100 \ --repo-id you/droid100_lerobot \ --use-videos - 4Check the version against your trainer
The converter README documents v3.0 output; the published IPEC-COMMUNITY datasets report v2.0. GR00T wants v2.0 or v2.1 and crashes on v3.0; Pi0.5, SmolVLA and ACT want v3.0. Mind the gap: the only conversion script on LeRobot main goes 2.1 to 3.0.
bashpython src/lerobot/scripts/convert_dataset_v21_to_v30.py \ --repo-id=you/droid100_lerobot - 5Record your own episodes
Defaults: 30 fps, 60 s per episode, 60 s reset, 50 episodes. The teleoperator type is so100_leader.
bashlerobot-record \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.cameras="{front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --dataset.repo_id=you/so100_pick_block \ --dataset.num_episodes=50 \ --dataset.single_task="Pick up the red block and put it in the bowl" - 6Fine-tune on your data only
Weights from public data, actions from your own. Do not mix the datasets.
bashlerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=you/so100_pick_block \ --policy.device=cuda \ --batch_size=4 \ --steps=20000
Not in training; the GPU job is hours. The conversion, the version mismatch and the moment you find your dataset is v2.0 and your trainer wants v3.0 are days. Read dataset rejected as v3 first.
The platform removes the GPU and pipeline plumbing. It does not remove the embodiment mismatch: point the trainer at a converted DROID dataset and you get a policy trained on Franka actions, exactly as you would locally.
- 1Pick a policy, not a dataset
The five trainable policies, with parameter counts, GPU tiers and latencies, are at /policies.
- 2Record with the desktop client
It writes LeRobot-format datasets, episodes, camera streams and joint states, straight out of a teleop session. No conversion step to get wrong.
- 3Or bring a dataset you already have
The training form accepts one from /directory, a Hugging Face repo id, or your own machine. A repo id means a converted OXE dataset will load, and the mismatch loads with it.
- 4Train on a rented GPU
The backend rents a card on a spot market by required VRAM. SmolVLA or ACT on 24 GB: 2 to 5 hours, about 1 to 3 USD. GR00T or Pi0.5 on A100 or H100: 3 to 6 hours, about 4 to 12 USD. See /pricing.
- 5Serve it back to the arm
/api/inference/pod auto-provisions a GPU pod serving the policy; the local client talks to that endpoint. Pods carry an idle watchdog and destroy themselves, so nothing keeps billing silently.
Inference has to sit next to the servos for fast tasks. The control loop is 20 to 485 ms per action step depending on the model, and public-internet round trips turn a working policy into a hesitant one. Remote inference is fine for slow pick-and-place, not fast reactive motion.
The platform helps with the boring parts: the right format for the right arm at the right frame rate, and no babysitting a spot instance. It helps with nothing else in this article.

Chi phí của mỗi đường dẫn
| Đường dẫn | Lưu trữ | Thời gian người dùng | Chi phí GPU | Khả năng nó di chuyển cánh tay của bạn |
|---|---|---|---|---|
| DROID đã chuyển đổi riêng | 392 GB | ngày chuyển đổi | 4 to 12 USD | rất thấp, không gian hành động sai |
| DROID hợp nhất với các tập của bạn | cả hai | bị chặn bởi validate_all_metadata | n/a | không có, nó không chạy |
| SmolVLA, 30 đến 50 tập riêng | vài GB | 100 phút ghi hình | 1 to 3 USD | cao |
| GR00T N1.7, 50 tập riêng | vài GB | 100 phút ghi hình | 4 to 12 USD | cao |
| ACT từ đầu, 50 tập riêng | vài GB | 100 phút ghi hình | 1 to 3 USD | cao, suy luận 20 ms |
| Mẫu DROID làm thiết bị kiểm tra | 2 GB | một buổi chiều | một lần chạy ngắn | cao, như xác thực |
Điểm mấu chốt là sự bất đối xứng: con đường vay mượn nhiều dữ liệu nhất là đắt nhất và ít có khả năng di chuyển cánh tay của bạn nhất. Dưới hai giờ vận hành từ xa của riêng bạn tốt hơn một terabyte dữ liệu Franka của người khác. Chưa có cánh tay robot? /live phát trực tiếp một SO-100 vật lý mà không cần đăng ký. Sau đó, huấn luyện chính sách đầu tiên của bạn, và SmolVLA trên SO-100 để có hướng dẫn cụ thể.
Tải xuống mẫu DROID 2 GB và sử dụng nó để chứng minh quy trình của bạn. Bỏ qua 1.7 TB còn lại. Ghi lại 50 tập của một nhiệm vụ với camera cố định. Tinh chỉnh SmolVLA trước, vì với tối thiểu 30 tập trên thẻ 24 GB, đây là cách lặp lại rẻ nhất, sau đó thử GR00T N1.7 trên cùng dữ liệu. So sánh trên nhiệm vụ của bạn, không phải trên một điểm chuẩn.
Ghi lại các tập dữ liệu đã khớp với cánh tay robot của bạn
Ứng dụng máy tính để bàn ghi lại các tập dữ liệu định dạng LeRobot trực tiếp từ phiên vận hành từ xa: cánh tay phải, tốc độ khung hình phù hợp, không gian hành động phù hợp. Không chuyển đổi RLDS, không ánh xạ lại.
Tải ứng dụng máy tính để bànTôi có thể huấn luyện một chính sách trên DROID và chạy nó trên SO-100 của mình không?▾
Không trực tiếp. Trong bản dựng LeRobot, các hành động của DROID là lệnh đầu cuối 7 chiều trên Franka Panda ở 15 khung hình/giây; trong RLDS thô, chúng là 6 vận tốc khớp cộng với vị trí kẹp. Một SO-100 yêu cầu 6 vị trí khớp tuyệt đối. Bạn sẽ cần một lớp động học ngược, và ngay cả khi đó, một cổ tay 5 bậc tự do cũng không thể tái tạo các tư thế 6 bậc tự do tùy ý.
Tôi có thể trộn các tập DROID hoặc Bridge với các tập SO-100 của riêng mình không?▾
Không. validate_all_metadata yêu cầu fps, robot_type và feature schema giống hệt nhau và sẽ báo lỗi ValueError khi có sự không khớp đầu tiên. Cả ba đều khác nhau: 15 hoặc 5 fps so với 30, franka hoặc widowx so với cánh tay của bạn, hình dạng hành động 7 so với 6. Việc viết lại metadata để vượt qua kiểm tra không khắc phục được ngữ nghĩa.
Vậy Open X-Embodiment có vô dụng đối với một cánh tay robot chi phí thấp không?▾
Không, nhưng giá trị của nó đến với bạn thông qua các trọng số được huấn luyện trước, không phải các tập. Các tập dữ liệu mã nguồn mở bao gồm OXE, Bridge v2 và DROID chiếm 9.1 phần trăm hỗn hợp huấn luyện trước của pi0, và NVIDIA cung cấp các biến thể GR00T N1.7 được huấn luyện sau trên Bridge, Fractal, DROID và LIBERO. Điều bạn không thể làm là thêm các tập đó vào bản ghi của riêng bạn.
Chính sách nào hưởng lợi nhiều nhất từ dữ liệu đa dạng công khai?▾
Pi0.5 và các mô hình GR00T mang nhiều huấn luyện trước đa dạng nhất, nhưng SmolVLA thường hoạt động tốt nhất trên cánh tay robot chi phí thấp: tập huấn luyện trước của nó là 481 tập dữ liệu cộng đồng, 22.9K tập và 10.6M khung hình, được đánh giá trên các cánh tay robot SO-100 và SO-101 thực tế. ACT thì ngược lại: không có mô hình cơ sở, 20 ms mỗi bước hành động.
Tôi thực sự cần bao nhiêu tập của riêng mình?▾
30 cho SmolVLA, 50 cho GR00T N1.7, GR00T N1.5, Pi0.5 và ACT. Với các cài đặt mặc định của LeRobot là 60 giây mỗi tập và 60 giây đặt lại, 50 tập là 100 phút thời gian thực. Dữ liệu đa dạng được mượn không làm giảm các con số đó.
Sources
- DROID: Bộ dữ liệu thao tác robot quy mô lớn trong môi trường thực tế
- Tài liệu DROID: kích thước tải xuống và lược đồ tập RLDS
- BridgeData V2: Bộ dữ liệu cho học máy robot quy mô lớn
- Trang dự án BridgeData V2: thành phần và phạm vi camera
- Open X-Embodiment: Bộ dữ liệu học máy robot và các mô hình RT-X
- Trang dự án Open X-Embodiment
- google-deepmind/open_x_embodiment: danh sách bộ dữ liệu và các điểm kiểm tra RT-1-X
- any4lerobot: bộ chuyển đổi openx2lerobot và trạng thái 8 chiều, hành động 7 chiều thống nhất của nó
- IPEC-COMMUNITY/droid_lerobot: meta/info.json và kích thước kho lưu trữ
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: lát cắt google_robot ở 3 fps
- huggingface/lerobot: bộ theo dõi SO, bộ xử lý động học, cấu hình tổng hợp và ghi
- openpi: đầu vào chính sách DROID và điểm kiểm tra pi05_droid
- pi0: Mô hình luồng Thị giác-Ngôn ngữ-Hành động cho điều khiển robot tổng quát
- SmolVLA: Mô hình Thị giác-Ngôn ngữ-Hành động cho robot giá cả phải chăng và hiệu quả
Sources
- DROID: A Large-Scale In-The-Wild Robot Manipulation Dataset
- DROID docs: download sizes and the RLDS episode schema
- BridgeData V2: A Dataset for Robot Learning at Scale
- BridgeData V2 project page: composition and camera coverage
- Open X-Embodiment: Robotic Learning Datasets and RT-X Models
- Open X-Embodiment project page
- google-deepmind/open_x_embodiment: dataset list and RT-1-X checkpoints
- any4lerobot: the openx2lerobot converter and its unified 8-D state, 7-D action
- IPEC-COMMUNITY/droid_lerobot: meta/info.json and repo size
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: the google_robot slice at 3 fps
- huggingface/lerobot: SO follower, kinematics processor, aggregate and record configs
- openpi: DROID policy inputs and the pi05_droid checkpoint
- pi0: A Vision-Language-Action Flow Model for General Robot Control
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started