
Τα DROID, BridgeData V2 και Open X-Embodiment μετατρέπονται σε ενέργειες τελικού ενεργοποιητή 7 διαστάσεων σε βραχίονες 6 και 7 βαθμών ελευθερίας. Ένας SO-100 δέχεται 6 θέσεις αρθρώσεων. Τι μεταφέρεται, τι όχι, τι να κάνετε αντ' αυτού.
Η σύντομη εκδοχή
- •Οι υλοποιήσεις LeRobot και των τριών μοιράζονται μία σύμβαση: μια δράση τελικού ενεργοποιητή 7 διαστάσεων [x, y, z, roll, pitch, yaw, gripper] και μια κατάσταση 8 διαστάσεων με μια θέση συμπλήρωσης. Ένα SO-100 λαμβάνει έξι απόλυτες θέσεις αρθρώσεων.
- •Αυτό το διάνυσμα 7 διαστάσεων είναι το τεχνούργημα του μετατροπέα: το πεδίο δράσης RLDS του DROID είναι 6 ταχύτητες αρθρώσεων συν μια θέση αρπάγης, με την καρτεσιανή προβολή στο action_dict.
- •Τέσσερα ρολόγια: DROID 15 fps, BridgeData V2 5 fps, το google_robot slice 3 fps, μια εγγραφή SO-100 στα 30 fps.
- •Δεν μπορείτε να τα συγχωνεύσετε με τα δικά σας δεδομένα. Το validate_all_metadata εγείρει σφάλμα στην πρώτη διαφορά σε fps, robot_type ή features, και και τα τρία διαφέρουν.
- •Αυτό που μεταφέρεται είναι προεκπαιδευμένα βάρη, όχι επεισόδια. Τα δεδομένα ανοιχτού κώδικα αποτελούν το 9.1 τοις εκατό του μείγματος προεκπαίδευσης του pi0.
- •Η φθηνότερη πραγματική τους χρήση είναι ένα εξάρτημα δοκιμής: ένα γνωστό-καλό δείγμα DROID 2 GB, 100 επεισοδίων που αποδεικνύει τη λειτουργία της διοχέτευσής σας πριν κάνετε εγγραφή για ένα Σαββατοκύριακο.
Υπάρχει ένα δημόσιο σύνολο δεδομένων εκατομμυρίων τροχιών σε ένα Google Cloud bucket και ένα SO-100 στο γραφείο που κόστισε 110 έως 150 EUR σε εξαρτήματα. Γιατί το πρώτο δεν μπορεί να διδάξει το δεύτερο; Εν μέρει μπορεί, αλλά σχεδόν καμία από τη μεταφορά δεν συμβαίνει εκεί που οι άνθρωποι περιμένουν, και το μέρος που φαίνεται ευκολότερο δεν λειτουργεί καθόλου.
Τι ακολουθεί: τι περιέχεται στο DROID, BridgeData V2 και Open X-Embodiment, όπου το καθένα συγκρούεται με έναν βραχίονα 5-DoF χαμηλού κόστους, και τι να κάνετε αντ' αυτού. Κάθε αριθμός παρακάτω προήλθε από την εργασία, την κάρτα δεδομένων ή το αρχείο πηγής στο οποίο ανήκει.
Τι περιέχουν στην πραγματικότητα τα τρία σύνολα δεδομένων
| DROID | BridgeData V2 | Open X-Embodiment | |
|---|---|---|---|
| Ρομπότ | Franka Panda, 7 DoF, Robotiq 2F-85 | WidowX 250, 6 DoF, ~4,000 USD rig | 22 υλοποιήσεις, 60 σύνολα δεδομένων, 34 εργαστήρια |
| Κλίμακα | 76 χιλ. τροχιές, 350 ώρες | 60.096 τροχιές | 1M+ τροχιές, 527 δεξιότητες |
| Ποικιλομορφία | 564 σκηνές, 84 εργασίες, 50 συλλέκτες | 24 περιβάλλοντα, 13 δεξιότητες | 160.266 εργασίες, 21 ιδρύματα |
| Σύνθεση | όλα τηλεχειριζόμενα | 50.365 τηλεχειριζόμενα, 9.731 προγραμματισμένα | ανά εργαστήριο πηγής |
| Ρυθμός ελέγχου | 15 Hz | 5 Hz | ποικίλλει, 3 fps και άνω |
| Κάμερες | 2 x ZED 2 exterior, 1 x ZED Mini wrist | έως 4, τα περισσότερα επεισόδια μόνο η σταθερή | ό,τι χρησιμοποίησε το εργαστήριο |
| Αρχική λήψη | 1.7 TB RLDS, 8.7 TB raw stereo | JPEG archives | per-dataset TFDS buckets |
Λίγοι άνθρωποι κατεβάζουν ακόμα 1,7 TB RLDS TFRecords. Ο κοινοτικός οργανισμός IPEC-COMMUNITY έχει αναδημοσιεύσει το μεγαλύτερο μέρος του Open X-Embodiment σε μορφή LeRobot dataset με βίντεο AV1, όπου το DROID φτάνει τα 392 GB. Αυτή είναι η έκδοση με την οποία θα εργαστείτε, και το meta/info.json της είναι αυτό που πρέπει να διαβάσετε πρώτα.
DROID
Το πιο τυποποιημένο από τα τρία. Ένα σύστημα παντού: ένα Franka Panda με αρπάγη Robotiq 2F-85, δύο ρυθμιζόμενες στερεοφωνικές κάμερες ZED 2 και μια κάμερα καρπού ZED Mini, τηλεχειριζόμενο με χειριστήρια Meta Quest 2, καταγεγραμμένο μέσω Polymetis στα 15 Hz τόσο στον χώρο των αρθρώσεων όσο και στον χώρο του τελικού ενεργοποιητή. Οι ετικέτες γλώσσας προστέθηκαν αργότερα μέσω του tasq.ai, έως τρεις ανά επεισόδιο.
- 76k τροχιές, 350 ώρες, 564 σκηνές, 84 εργασίες, 50 συλλέκτες σε τρεις ηπείρους.
- Το κύριο αποτέλεσμα είναι η συν-εκπαίδευση, όχι η αυτόνομη εκπαίδευση: παρτίδες αναμεμειγμένες 50/50 με επιδείξεις εντός πεδίου νίκησαν την επόμενη καλύτερη μέθοδο κατά 22 ποσοστιαίες μονάδες απόλυτης επιτυχίας στην κατανομή, 17 ποσοστιαίες μονάδες εκτός αυτής.
- IPEC-COMMUNITY/droid_lerobot: 92.233 επεισόδια, 27.044.326 καρέ, franka, 15 fps, codebase_version v2.0, τρεις ροές AV1 στα 180x320, 392 GB.
- Ένα δείγμα εντοπισμού σφαλμάτων 2 GB, 100 επεισοδίων βρίσκεται στο gs://gresearch/robotics/droid_100. Ξεκινήστε από εκεί.
BridgeData V2
Το πιο κοντινό σε μια ερασιτεχνική εγκατάσταση: ένας βραχίονας WidowX 250 6-DoF, 60.096 τροχιές σε 24 περιβάλλοντα και 13 δεξιότητες στα 5 Hz. Σημειώστε τη σύνθεση: 50.365 επιδείξεις από ειδικούς τηλεχειριζόμενους συν 9.731 από μια τυχαιοποιημένη πολιτική επιλογής και τοποθέτησης με σενάριο, οπότε περίπου το 16 τοις εκατό δεν είναι ανθρώπινη επίδειξη, κάτι που έχει σημασία για μάθηση μέσω μίμησης ποιότητα. Η συνήθης λήψη, IPEC-COMMUNITY/bridge_orig_lerobot, αναφέρει 53.192 επεισόδια και 1.893.026 καρέ στα 5 fps, robot_type widowx: λιγότερα από τα 60.096 της εργασίας, οπότε διαβάστε τον αριθμό από το meta/info.json αντί να αναφέρετε οποιοδήποτε από τα δύο.
Open X-Embodiment
Όχι ένα σύνολο δεδομένων με την ίδια έννοια: 60 υπάρχοντα σύνολα δεδομένων ρομπότ από 34 εργαστήρια συγκεντρώθηκαν σε μία συλλογή RLDS που καλύπτει 22 υλοποιήσεις και πάνω από ένα εκατομμύριο τροχιές. Το BridgeData V2 βρίσκεται μέσα σε αυτήν ως bridge_orig. Το τμήμα google_robot, fractal20220817_data, μετατρέπεται σε 87.212 επεισόδια στα 3 fps.
Η συγκέντρωση δεδομένων εμπεριέχει μια προειδοποίηση που αναφέρεται ευθέως στην εργασία. Για τα πειράματα RT-X, οι συγγραφείς μετατρέπουν κάθε πηγή σε μια ενέργεια τελικού ενεργοποιητή 7-DoF, αλλά δεν ευθυγραμμίζουν τα συστήματα συντεταγμένων μεταξύ των συνόλων δεδομένων και επιτρέπουν στις τιμές δράσης να είναι απόλυτες ή σχετικές θέσεις ή ταχύτητες, σύμφωνα με το αρχικό σχήμα ελέγχου κάθε ρομπότ. Το συμπέρασμά τους: το ίδιο διάνυσμα δράσης μπορεί να προκαλέσει πολύ διαφορετικές κινήσεις για διαφορετικά ρομπότ.

Η αναντιστοιχία, σε τέσσερα μέρη
Η αναντιστοιχία ενσωμάτωσης συνήθως αντιμετωπίζεται ως ένα ασαφές πρόβλημα. Είναι τέσσερα, αποτυγχάνουν διαφορετικά, και δύο δεν μπορούν να διορθωθούν με scripting.
1. Βαθμοί ελευθερίας
Ένας SO-100 έχει πέντε αρθρώσεις βραχίονα συν μια λαβίδα. Μετρημένος ως κινητήρες είναι ένας βραχίονας 6-DoF, και η εργασία SmolVLA τον αποκαλεί έτσι· μετρημένος ως μηχανισμός τοποθέτησης είναι 5-DoF, και το LeRobot τον αποκαλεί έτσι στο docstring της αντίστροφης κινηματικής του, το οποίο περιγράφει την IK μαλακού προσανατολισμού στον 5-DOF SO-101 όπου ο καρπός παρακολουθεί τον προσανατολισμό μόνο εν μέρει. Ένας Franka έχει επτά αρθρώσεις τοποθέτησης. Αυτό το κενό καθορίζει ποιες στάσεις υπάρχουν: ένας βραχίονας 5-DoF δεν μπορεί γενικά να φτάσει ταυτόχρονα σε μια αυθαίρετη θέση και προσανατολισμό, οπότε ο επιλυτής επιστρέφει την πλησιέστερη δυνατή, μια διαφορετική κίνηση από αυτή που επιδείχθηκε. Ιστορικό: βαθμοί ελευθερίας.
# 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-DΈνα έτοιμο DROID checkpoint δεν αποτελεί συντόμευση. Η Physical Intelligence διανέμει το pi05_droid στο gs://openpi-assets/checkpoints/pi05_droid, και το ίδιο README που επαινεί το εύρος του προειδοποιεί ότι αυτά τα εξειδικευμένα checkpoints ενδέχεται να μην γενικεύονται στην εγκατάστασή σας. Η κατάστασή του είναι οκτώ αριθμοί αρθρώσεων Franka και τα κλειδιά εικόνας του είναι exterior_image_1_left και wrist_image_left. Καμία σημαία δεν το μετατρέπει σε εντολή SO-100 έξι κινητήρων.
2. Τι λέει στην πραγματικότητα το διάνυσμα δράσης
Βαθύτερα από τη διαστατικότητα. Στις μετατροπές του LeRobot και τα τρία λένε πού πρέπει να πάει η λαβίδα, σε καρτεσιανό χώρο. Ένα SO-100 λέει πού πρέπει να πάνε έξι σερβοκινητήρες. Η μετατροπή απαιτεί ένα κινηματικό μοντέλο και έναν επιλυτή, όχι μια αναμόρφωση.
| Ιδιότητα | OXE, DROID και Bridge σε μορφή LeRobot | SO-100 σε LeRobot |
|---|---|---|
| Διάνυσμα δράσης | 7-D: x, y, z, roll, pitch, yaw, gripper | 6-D: μία θέση στόχου ανά κινητήρα |
| Διάνυσμα κατάστασης | 8-D, με μια θέση συμπλήρωσης (το google_robot χρησιμοποιεί ένα τετραδόνιο) | 6-D, ένα ανά κινητήρα |
| Πλαίσιο | Καρτεσιανό, μη ευθυγραμμισμένο σε όλα τα σύνολα δεδομένων | χώρος αρθρώσεων, βαθμονόμηση ανά βραχίονα |
| Απόλυτο ή σχετικό | είτε, αποφασίζεται από το εργαστήριο πηγής | απόλυτες θέσεις στόχου |
| Μονάδες | κανονικοποιημένες ανά σύνολο δεδομένων, στη συνέχεια διακριτοποιημένες | μοίρες από προεπιλογή (use_degrees=True), αλλιώς -100 έως 100 |
| Σιωπηρή αποτυχία | ένα δέλτα που διαβάζεται ως απόλυτο | ένας μη βαθμονομημένος βραχίονας |
Το README του openx2lerobot τεκμηριώνει μια ενοποιημένη κατάσταση 8 διαστάσεων και μια ενέργεια 7 διαστάσεων για κάθε σύνολο δεδομένων που μετατρέπει, από όπου προέρχεται η υποδοχή pad. Το δικό του σχήμα RLDS του DROID διαφέρει: η κορυφαία action του είναι ένα διάνυσμα 7 στοιχείων από 6 ταχύτητες αρθρώσεων συν 1 θέση λαβής, με cartesian_position, cartesian_velocity, joint_position και joint_velocity κάτω από το action_dict. Το openpi διαβάζει την προβολή του χώρου των αρθρώσεων, η κατασκευή LeRobot σας δίνει την καρτεσιανή. Κανένα από τα δύο δεν είναι έξι απόλυτες γωνίες σερβομηχανισμού.
Το LeRobot παρέχει το κομμάτι που λείπει: ο ακολουθητής SO διαθέτει έναν επεξεργαστή κινηματικής με βήματα InverseKinematicsEEToJoints και ForwardKinematicsJointsToEE. Τα κλειδιά του είναι ee.x, ee.y, ee.z συν ένα διάνυσμα περιστροφής ee.wx, ee.wy, ee.wz και ee.gripper_pos, οπότε ακόμη και η κωδικοποίηση προσανατολισμού διαφέρει από το roll-pitch-yaw στα αρχεία. Το βήμα IK λαμβάνει ένα orientation_weight, προεπιλογή 0.01, του οποίου το docstring λέει να οριστεί σε 0.0 για IK μόνο θέσης σε υπο-ενεργοποιημένους βραχίονες. Μπορείτε να χτίσετε τη γέφυρα, αλλά το μισό του προσανατολισμού κάθε δανεισμένης ενέργειας παραμένει προσεγγιστικό.
3. Ρυθμός ελέγχου
Το DROID είναι 15 Hz, το BridgeData V2 5 Hz, το google_robot slice 3 fps. Οι συγγραφείς του pi0 περιγράφουν το open-source μέρος του μείγματός τους ως έλεγχο χαμηλής συχνότητας μεταξύ 2 και 10 Hz. Το DatasetRecordConfig του LeRobot έχει προεπιλογές fps 30, episode_time_s 60, reset_time_s 60, num_episodes 50. Μια εκπαιδευμένη σε δεδομένα 5 Hz έμαθε ότι μια ενέργεια καλύπτει 200 ms. Αναπαράγετε την στα 30 Hz και ο βραχίονας σέρνεται. Επαναδειγματοληψία αφελώς και θολώνετε το καρέ όπου κλείνει η λαβή. Επίσης αλληλεπιδρά άσχημα με το : ένα κομμάτι 100 βημάτων είναι 20 δευτερόλεπτα στα 5 Hz, 3.3 στα 30 Hz.
4. Κάμερες
Το BridgeData V2 τυχαιοποίησε δύο θέσεις κάμερας κάθε 50 τροχιές, και η σελίδα του έργου του σημειώνει ότι τα περισσότερα δεδομένα φέρουν ούτως ή άλλως μόνο τη σταθερή προβολή. Το DROID χρησιμοποίησε ρυθμιζόμενες βάσεις ZED 2 συν ένα ZED Mini στον καρπό. Έχετε δύο USB webcams τοποθετημένες με το μάτι. Η θέση της κάμερας δεν είναι μια μεταβλητή ενόχλησης για ένα · είναι μεγάλο μέρος αυτού στο οποίο βασίστηκε ο οπτικός κωδικοποιητής, και τίποτα στη μορφή αρχείου δεν σας λέει ότι οι θέσεις διαφέρουν.
Τα κομμάτια ταιριάζουν αρκετά καλά για να λειτουργήσουν. Το σύνολο δεδομένων φορτώνεται, η εκπαίδευση ξεκινά, η απώλεια μειώνεται, εμφανίζονται σημεία ελέγχου, τίποτα δεν εμφανίζει σφάλματα. Στη συνέχεια, η πολιτική δεν κάνει τίποτα αναγνωρίσιμο στον βραχίονα και περνάτε μια μέρα κυνηγώντας ένα σφάλμα στο σενάριο εκπαίδευσής σας. Δεν υπάρχει σφάλμα: το μοντέλο έμαθε μια κατανομή καρτεσιανής δράσης για ένα ρομπότ που δεν υπάρχει στο δωμάτιό σας. Ξεκινήστε από η απώλεια μειώνεται, η πολιτική δεν κάνει τίποτα, όχι από τους υπερπαραμέτρους σας.
Τι συμβαίνει όταν προσπαθείτε να συγχωνεύσετε τα δεδομένα ούτως ή άλλως
Το προφανές σχέδιο είναι να συνενώσουμε: μερικές χιλιάδες επεισόδια DROID συν τα δικά σας 50. Το LeRobot αρνείται, και η άρνηση αναφέρει τα τρία πράγματα που διαφέρουν.
- 1Κατεβάστε το δείγμα των 100 επεισοδίων, όχι το πλήρες 1.7 TB
2 GB είναι αρκετά για να δείτε τη δομή.
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2Μετατροπή RLDS σε μορφή LeRobot
Το openx2lerobot ενσωματώνει τους τυπικούς μετασχηματισμούς OXE και προσδιορίζει τον τύπο ρομπότ και τη συχνότητα ελέγχου. Το README το τοποθετεί στο 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Διαβάστε το meta/info.json πριν από οτιδήποτε άλλο
Αυτό το αρχείο αποφασίζει αν η υπόλοιπη μέρα σας θα λειτουργήσει.
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'])" - 4Δοκιμάστε τη συγχώνευση και διαβάστε το σφάλμα
Η συγχώνευση φορτώνει κάθε σύνολο δεδομένων, και στη συνέχεια το validate_all_metadata ελέγχει τα fps, robot_type και features έναντι του πρώτου στη λίστα, προκαλώντας σφάλμα στην πρώτη αναντιστοιχία.
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.
Οι τιμές αναφοράς προέρχονται από όποιο σύνολο δεδομένων αναφέρατε πρώτο, γι' αυτό το μήνυμα παραπονιέται για τα 30 fps σας αντί για τα 15 του DROID. Διορθώστε τα fps και θα συναντήσετε τον έλεγχο robot_type· διορθώστε αυτό και θα συναντήσετε τον έλεγχο χαρακτηριστικών, 7 έναντι 6 για την ενέργεια. Καμία σειρά δεν περνάει, και ο ίδιος έλεγχος εκτελείται κατά την εγγραφή μέσω του sanity_check_dataset_robot_compatibility.
Στην τρέχουσα κύρια έκδοση του LeRobot, τα so100_follower και so101_follower είναι και τα δύο καταχωρημένα σε ένα κοινό SOFollowerRobotConfig, οπότε η συμβολοσειρά από μια πραγματική εγγραφή δεν είναι απαραίτητα αυτή που περιμένετε. Διαβάστε την από το δικό σας meta/info.json, και αντιμετωπίστε έναν έλεγχο που έπρεπε να απενεργοποιήσετε ως έναν έλεγχο που σας έλεγε κάτι.
Τι μεταφέρεται στην πραγματικότητα;
Βάρη, όχι επεισόδια. Κάθε σύγχρονη γενική πολιτική απορρόφησε μέρος αυτού στην προ-εκπαίδευση, και όταν κάνετε fine-tune από ένα δημοσιευμένο σημείο ελέγχου το κληρονομείτε ήδη συμφιλιωμένο από άτομα με την υπολογιστική ισχύ να το κάνουν σωστά. Η εργασία του pi0 είναι ειλικρινής σχετικά με την αναλογία: το 9.1 τοις εκατό του μείγματος προ-εκπαίδευσής του, μετρούμενο σε χρονικά βήματα, είναι δεδομένα ανοιχτού κώδικα, συμπεριλαμβανομένων των OXE, Bridge v2 και DROID. Αυτός ο αριθμός είναι του pi0· το μείγμα κάθε προμηθευτή διαφέρει.
- Οπτικές και γλωσσικές προηγούμενες γνώσεις: ο κωδικοποιητής έχει δει χιλιάδες κουζίνες και κούπες και γνωρίζει σε τι αναφέρεται το «το κόκκινο μπλοκ».
- Μια προηγούμενη γνώση για τη δομή χειρισμού: προσέγγιση, κλείσιμο, ανύψωση, μεταφορά, απελευθέρωση, ανεξάρτητη από την ενσωμάτωση ακόμα και όταν οι αριθμοί δεν είναι.
- Ένα γνωστό-καλό σύνολο δεδομένων για δοκιμές. Εάν η εργασία σας δεν μπορεί να υπερπροσαρμοστεί σε 100 επεισόδια DROID, το πρόβλημα είναι η ρύθμισή σας.
- Σημεία αναφοράς: σε τομείς συνόλων δεδομένων μικρής κλίμακας το RT-1-X πέτυχε 50 τοις εκατό υψηλότερο μέσο ποσοστό επιτυχίας από την αρχική μέθοδο ή το RT-1, και το RT-2-X ξεπέρασε το RT-2 κατά περίπου 3 φορές σε αναδυόμενες δεξιότητες.
- Καμία χρησιμοποιήσιμη επίβλεψη δράσης. Ένας 7-D Καρτεσιανός στόχος δεν είναι μια 6-D εντολή άρθρωσης.
- Καμία μεταφορά πόζας κάμερας, και τίποτα στα δεδομένα δεν σας λέει ότι οι πόζες διαφέρουν.
- Καμία μεταφορά χρονισμού: πηγές 3, 5 και 15 fps έναντι ενός καταγραφέα 30 fps.
- Καμία μεταφορά λαβής. Ένας Robotiq 2F-85 και μια τυπωμένη σιαγόνα σε ένα STS3215 διαφέρουν σε δύναμη, διαδρομή και δυναμική.
- Η κλίμακα από μόνη της δεν ήταν αρκετή ούτε για τους συγγραφείς της: στους τομείς μεγάλων συνόλων δεδομένων το RT-1-X δεν ξεπέρασε ένα RT-1 εκπαιδευμένο μόνο σε αυτό το σύνολο δεδομένων.
- Καμία μείωση στον αριθμό των δικών σας επεισοδίων που χρειάζεστε.
| Επίπεδο του μοντέλου | Μεταφέρεται; | Γιατί |
|---|---|---|
| Κωδικοποιητής όρασης | Ναι, έντονα | Τα αντικείμενα και οι σκηνές είναι ανεξάρτητα από την ενσωμάτωση |
| Γλωσσική θεμελίωση | Ναι | Οι οδηγίες είναι κείμενο, όχι γεωμετρία |
| Διατροπική σύντηξη | Κυρίως | Εστιάζει στο αντικείμενο που αναφέρεται στην προτροπή |
| Κωδικοποιητής ιδιοδεκτικότητας | Όχι | Η διάσταση εισόδου και η σημασιολογία των αρθρώσεων διαφέρουν |
| Κεφαλή δράσης | Όχι | Εκπαιδευμένο σε έναν 7-D Καρτεσιανό χώρο στον οποίο δεν βρίσκεστε |
| Στατιστικά κανονικοποίησης | Όχι, και επικίνδυνο | Ξένα στατιστικά μετατοπίζουν κάθε εντολή |
Αυτός είναι ο λόγος που SmolVLA συμπεριφέρεται διαφορετικά σε έναν βραχίονα χαμηλού κόστους. Η δημοσίευσή του επιλέγει 481 σύνολα δεδομένων κοινότητας από το Hugging Face, φιλτραρισμένα κατά τύπο ενσωμάτωσης, αριθμό επεισοδίων, ποιότητα δεδομένων και κάλυψη καρέ: 22.9K επεισόδια, 10.6M καρέ, αξιολογημένα σε πραγματικούς βραχίονες SO-100 και SO-101. Το μικρό και ταιριαστό υπερτερεί του μεγάλου και αταίριαστου. Συγκρίνετε στο ACT against SmolVLA.
Τρεις δρόμοι που αξίζει να ακολουθήσετε
Διαδρομή Α: λεπτομερής ρύθμιση από ένα σημείο ελέγχου που έχει ήδη απορροφήσει τα δεδομένα
Οι περισσότεροι άνθρωποι θα πρέπει να ακολουθήσουν αυτή τη διαδρομή. Δεν αγγίζετε ποτέ το DROID ή το Open X-Embodiment: επιλέξτε μια πολιτική της οποίας η προ-εκπαίδευση έχει ήδη απορροφήσει δεδομένα δια-ενσωμάτωσης, καταγράψτε τα δικά σας επεισόδια, κάντε λεπτομερή ρύθμιση.
| Πολιτική | Παράμετροι | Ελάχιστα επεισόδια | Μορφή συνόλου δεδομένων | Επίπεδο GPU | Συμπέρασμα | Βασικό σημείο ελέγχου |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M εκπαιδευμένο σε fine-tuning | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 152 ms ανά βήμα | 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, PaliGemma backbone | 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 | none, from scratch |
Το ACT είναι η ειλικρινής οριακή περίπτωση: χωρίς βασικό μοντέλο, οπότε κανένα από τα δημόσια δεδομένα δεν το φτάνει ποτέ. Δεν είναι αυτόματα μειονέκτημα, καθώς στα 20 ms ανά βήμα ενέργειας είναι το μόνο από τα πέντε που μπορεί να κλείσει έναν γρήγορο βρόχο, όπως η σελίδα του ACT αναφέρει. Επιλέξτε ανά εργασία χρησιμοποιώντας και τα πέντε συγκριτικά, το GR00T N1.7 έναντι του Pi0.5, και τα 332 αποτελέσματα συγκριτικής αξιολόγησης σε 85 μοντέλα στην την αρένα.
Διαδρομή Β: χρησιμοποιήστε το DROID ως διάταξη δοκιμής
Το δείγμα 100 επεισοδίων είναι τα καλύτερα 2 GB που θα κατεβάσετε αυτόν τον μήνα, και όχι για εκπαίδευση. Είναι ένα σύνολο δεδομένων που γνωρίζετε ότι είναι σωστό. Εκτελέστε τον μετατροπέα, τον φορτωτή και μια σύντομη εργασία GPU σε αυτό. Οτιδήποτε αποτύχει είναι ένα σφάλμα υποδομής που βρέθηκε όσο ήταν φθηνό. Η NVIDIA κάνει το ίδιο σε κλίμακα: η κάρτα GR00T N1.7 παραθέτει τέσσερις μετα-εκπαιδευμένες παραλλαγές, για Bridge και Fractal στο SimplerEnv, DROID και LIBERO.
Διαδρομή Γ: καταγράψτε τα δικά σας, σκόπιμα
Τριάντα έως πενήντα ακούγονται λίγα δίπλα στα 76.000, μέχρι να θυμηθείτε ότι τα δικά σας είναι τα μόνα με το δικό σας χέρι, τις δικές σας κάμερες και το δικό σας τραπέζι. Με τις προεπιλογές του LeRobot, 50 επεισόδια αντιστοιχούν σε 100 λεπτά πραγματικού χρόνου. Δείτε , και .

Δύο τρόποι για να περάσετε από τα δημόσια δεδομένα σε μια λειτουργική πολιτική
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.

Τι κοστίζει κάθε διαδρομή
| Διαδρομή | Αποθηκευτικός χώρος | Ανθρώπινος χρόνος | Κόστος GPU | Πιθανότητα να κινήσει το χέρι σας |
|---|---|---|---|---|
| Μετατροπή DROID μόνο | 392 GB | ημέρες μετατροπής | 4 to 12 USD | πολύ χαμηλή, λάθος χώρος δράσης |
| DROID συγχωνευμένο με τα επεισόδιά σας | και τα δύο | blocked by validate_all_metadata | n/a | καμία, δεν εκτελείται |
| SmolVLA, 30 έως 50 δικά σας επεισόδια | λίγα GB | 100 λεπτά καταγραφής | 1 to 3 USD | υψηλή |
| GR00T N1.7, 50 δικά σας επεισόδια | λίγα GB | 100 λεπτά καταγραφής | 4 to 12 USD | υψηλή |
| ACT από το μηδέν, 50 δικά σας επεισόδια | λίγα GB | 100 λεπτά καταγραφής | 1 to 3 USD | υψηλή, 20 ms συμπερασματολογία |
| Δείγμα DROID ως διάταξη δοκιμής | 2 GB | ένα απόγευμα | μία σύντομη εκτέλεση | υψηλή, ως επικύρωση |
Το σημείο είναι η ασυμμετρία: η διαδρομή που δανείζεται τα περισσότερα δεδομένα είναι η πιο ακριβή και η λιγότερο πιθανή να κινήσει το χέρι σας. Λιγότερο από δύο ώρες δικής σας τηλελειτουργίας υπερτερούν ενός terabyte Franka κάποιου άλλου. Δεν έχετε ακόμα ρομποτικό βραχίονα; /live μεταδίδει ζωντανά ένα φυσικό SO-100 χωρίς εγγραφή. Στη συνέχεια, εκπαιδεύστε την πρώτη σας πολιτική, και SmolVLA στο SO-100 για τον συγκεκριμένο οδηγό.
Κατεβάστε το δείγμα DROID 2 GB και χρησιμοποιήστε το για να αποδείξετε την αρχιτεκτονική σας. Αγνοήστε τα υπόλοιπα 1.7 TB. Καταγράψτε 50 επεισόδια μιας εργασίας με σταθερές κάμερες. Ρυθμίστε λεπτομερώς το SmolVLA πρώτα, επειδή με 30 ελάχιστα επεισόδια σε κάρτα 24 GB είναι το φθηνότερο για επανάληψη, και μετά δοκιμάστε το GR00T N1.7 στα ίδια δεδομένα. Συγκρίνετε στην εργασία σας, όχι σε ένα benchmark.
Καταγράψτε σύνολα δεδομένων που ταιριάζουν ήδη με τον βραχίονά σας
Ο επιτραπέζιος πελάτης γράφει σύνολα δεδομένων μορφής LeRobot απευθείας από μια συνεδρία τηλελειτουργίας: σωστός βραχίονας, σωστός ρυθμός καρέ, σωστός χώρος δράσης. Χωρίς μετατροπή RLDS, χωρίς επαναχαρτογράφηση.
Αποκτήστε τον επιτραπέζιο πελάτηΜπορώ να εκπαιδεύσω μια πολιτική στο DROID και να την εκτελέσω στο SO-100 μου;▾
Όχι άμεσα. Στην έκδοση LeRobot, οι ενέργειες DROID είναι εντολές τελικού ενεργοποιητή 7 διαστάσεων σε ένα Franka Panda στα 15 fps. Στο ακατέργαστο RLDS είναι 6 ταχύτητες αρθρώσεων συν μια θέση αρπάγης. Ένα SO-100 λαμβάνει 6 απόλυτες θέσεις αρθρώσεων. Θα χρειαζόσαστε ένα επίπεδο αντίστροφης κινηματικής, και ακόμα και τότε ένας καρπός 5-DoF δεν μπορεί να αναπαράγει αυθαίρετες πόζες 6-DoF.
Μπορώ να αναμείξω επεισόδια DROID ή Bridge με τα δικά μου επεισόδια SO-100;▾
Όχι. Το validate_all_metadata απαιτεί πανομοιότυπα fps, robot_type και feature schema και εγείρει ValueError στην πρώτη αναντιστοιχία. Και τα τρία διαφέρουν: 15 ή 5 fps έναντι 30, franka ή widowx έναντι του βραχίονά σας, σχήματα δράσης 7 έναντι 6. Η επανεγγραφή των μεταδεδομένων για να περάσει ο έλεγχος δεν διορθώνει τη σημασιολογία.
Είναι άχρηστο το Open X-Embodiment για έναν βραχίονα χαμηλού κόστους τότε;▾
Όχι, αλλά η αξία του σας φτάνει μέσω προεκπαιδευμένων βαρών, όχι επεισοδίων. Τα ανοιχτού κώδικα σύνολα δεδομένων, συμπεριλαμβανομένων των OXE, Bridge v2 και DROID, αποτελούν το 9.1 τοις εκατό του μείγματος προεκπαίδευσης του pi0, και η NVIDIA διαθέτει παραλλαγές GR00T N1.7 μετα-εκπαιδευμένες σε Bridge, Fractal, DROID και LIBERO. Αυτό που δεν μπορείτε να κάνετε είναι να προσθέσετε αυτά τα επεισόδια στη δική σας καταγραφή.
Ποια πολιτική επωφελείται περισσότερο από τα δημόσια δεδομένα δια-ενσωμάτωσης;▾
Το Pi0.5 και τα μοντέλα GR00T φέρουν την περισσότερη προεκπαίδευση δια-ενσωμάτωσης, αλλά το SmolVLA συχνά συμπεριφέρεται καλύτερα σε έναν βραχίονα χαμηλού κόστους: το σύνολο προεκπαίδευσής του είναι 481 σύνολα δεδομένων κοινότητας, 22.9K επεισόδια και 10.6M καρέ, αξιολογημένα σε πραγματικούς βραχίονες SO-100 και SO-101. Το ACT είναι το αντίθετο: κανένα βασικό μοντέλο, 20 ms ανά βήμα δράσης.
Πόσα δικά μου επεισόδια χρειάζομαι στην πραγματικότητα;▾
30 για το SmolVLA, 50 για τα GR00T N1.7, GR00T N1.5, Pi0.5 και ACT. Με τις προεπιλογές του LeRobot των 60 δευτερολέπτων ανά επεισόδιο και 60 δευτερολέπτων επαναφοράς, 50 επεισόδια είναι 100 λεπτά πραγματικού χρόνου. Τα δανεισμένα δεδομένα δια-ενσωμάτωσης δεν μειώνουν αυτούς τους αριθμούς.
Sources
- DROID: Ένα Μεγάλης Κλίμακας Σύνολο Δεδομένων Χειρισμού Ρομπότ σε Πραγματικές Συνθήκες
- Τεκμηρίωση DROID: μεγέθη λήψης και το σχήμα επεισοδίου RLDS
- BridgeData V2: Ένα Σύνολο Δεδομένων για Εκμάθηση Ρομπότ σε Κλίμακα
- Σελίδα έργου BridgeData V2: σύνθεση και κάλυψη κάμερας
- Open X-Embodiment: Σύνολα Δεδομένων Ρομποτικής Εκμάθησης και Μοντέλα RT-X
- Σελίδα έργου Open X-Embodiment
- google-deepmind/open_x_embodiment: λίστα συνόλων δεδομένων και σημεία ελέγχου RT-1-X
- any4lerobot: ο μετατροπέας openx2lerobot και η ενοποιημένη 8-D κατάσταση, 7-D δράση του
- IPEC-COMMUNITY/droid_lerobot: meta/info.json και μέγεθος αποθετηρίου
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: το τμήμα google_robot στα 3 fps
- huggingface/lerobot: ακολουθητής SO, επεξεργαστής κινηματικής, διαμορφώσεις συγκέντρωσης και καταγραφής
- openpi: εισόδους πολιτικής DROID και το σημείο ελέγχου pi05_droid
- pi0: Ένα Μοντέλο Ροής Όρασης-Γλώσσας-Δράσης για Γενικό Έλεγχο Ρομπότ
- SmolVLA: Ένα Μοντέλο Όρασης-Γλώσσας-Δράσης για Προσιτή και Αποδοτική Ρομποτική
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