
DROID, BridgeData V2 र Open X-Embodiment 6 र 7-DoF हातहरूमा 7-D एन्ड-इफेक्टर कार्यहरूमा रूपान्तरण हुन्छन्। SO-100 ले 6 जोइन्ट पोजिसनहरू लिन्छ। के स्थानान्तरण हुन्छ, के हुँदैन, र यसको सट्टा के गर्ने।
संक्षिप्त संस्करण
- •तीनवटै LeRobot बिल्डहरूले एउटै परम्परा साझा गर्छन्: 7-D एन्ड-इफेक्टर कार्य [x, y, z, roll, pitch, yaw, gripper] र प्याड स्लटसहितको 8-D अवस्था। एउटा SO-100 ले छवटा निरपेक्ष जोइन्ट पोजिसनहरू लिन्छ।
- •त्यो 7-D भेक्टर कन्भर्टरको कलाकृति हो: DROID को आफ्नै RLDS कार्य फिल्ड 6 जोइन्ट वेगहरू र ग्रिपर पोजिसन हो, जसमा action_dict मा कार्टेसियन दृश्य छ।
- •चार घडीहरू: DROID 15 fps, BridgeData V2 5 fps, google_robot स्लाइस 3 fps, SO-100 रेकर्डिङ 30 fps मा।
- •तपाईंले तिनीहरूलाई आफ्नो डेटासँग मर्ज गर्न सक्नुहुन्न। validate_all_metadata ले fps, robot_type वा सुविधाहरू मध्ये फरक पर्ने पहिलोमा त्रुटि दिन्छ, र तीनवटै फरक छन्।
- •के स्थानान्तरण हुन्छ भनेको पूर्व-प्रशिक्षित वजनहरू हुन्, एपिसोडहरू होइनन्। खुला स्रोत डेटा pi0 को पूर्व-प्रशिक्षण मिश्रणको 9.1 प्रतिशत हो।
- •तिनीहरूको सबैभन्दा सस्तो वास्तविक प्रयोग एउटा परीक्षण फिक्स्चर हो: एउटा ज्ञात-राम्रो 2 GB, 100-एपिसोड DROID नमूना जसले तपाईंको पाइपलाइनलाई सप्ताहन्तमा रेकर्ड गर्नु अघि प्रमाणित गर्छ।
गुगल क्लाउड बकेटमा एक मिलियन-ट्र्याजेक्टरी सार्वजनिक डेटासेट छ र एउटा 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 ल्याब |
| स्केल | 76k ट्र्याजेक्टोरी, 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 बाहिरी, 1 x ZED Mini नाडी | 4 सम्म, धेरैजसो एपिसोडमा निश्चित क्यामेरा मात्र | ल्याबले जे प्रयोग गर्यो |
| कच्चा डाउनलोड | 1.7 TB RLDS, 8.7 TB कच्चा स्टेरियो | JPEG अभिलेखहरू | प्रति-डेटासेट TFDS बकेटहरू |
थोरै मानिसहरूले अझै पनि 1.7 TB RLDS TFRecords डाउनलोड गर्छन्। समुदाय संस्था IPEC-COMMUNITY ले Open X-Embodiment को धेरैजसो भाग LeRobot dataset ढाँचामा AV1 भिडियो सहित पुन: प्रकाशित गरेको छ, जहाँ DROID 392 GB मा आउँछ। तपाईंले काम गर्ने संस्करण यही हो, र यसको meta/info.json नै पहिले पढ्नुपर्ने कुरा हो।
DROID
तीन मध्ये सबैभन्दा मानकीकृत। जताततै एउटै रिग: Robotiq 2F-85 ग्रिपर भएको Franka Panda, दुई समायोज्य ZED 2 स्टेरियो क्यामेरा र एउटा नाडी ZED Mini, Meta Quest 2 नियन्त्रकहरूद्वारा टेलिअपरेटेड, Polymetis मार्फत 15 Hz मा संयुक्त र अन्त-प्रभावकारी स्पेसमा रेकर्ड गरिएको। भाषा लेबलहरू पछि tasq.ai मार्फत आए, प्रत्येक एपिसोड मा तीन सम्म।
- 76k trajectories, 350 hours, 564 scenes, 84 tasks, 50 collectors तीन महाद्वीपमा।
- मुख्य नतिजा सह-प्रशिक्षण हो, एक्लो प्रशिक्षण होइन: इन-डोमेन प्रदर्शनहरूसँग 50/50 मिश्रित ब्याचहरूले वितरणमा 22 प्रतिशत निरपेक्ष सफलता र बाहिर 17 प्रतिशतले अर्को उत्कृष्ट विधिलाई हरायो।
- IPEC-COMMUNITY/droid_lerobot: 92,233 episodes, 27,044,326 frames, franka, 15 fps, codebase_version v2.0, three AV1 streams at 180x320, 392 GB.
- 2 GB, 100-एपिसोड डिबगिङ नमूना gs://gresearch/robotics/droid_100 मा छ। त्यहाँबाट सुरु गर्नुहोस्।
BridgeData V2
शौकको सेटअपको सबैभन्दा नजिक: एक WidowX 250 6-DoF आर्म, 24 वातावरण र 13 सीपहरूमा 5 Hz मा 60,096 ट्र्याजेक्टरीहरू। संरचनामा ध्यान दिनुहोस्: 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
एउटै अर्थमा डेटासेट होइन: ३४ प्रयोगशालाबाट ६० वटा अवस्थित रोबोट डेटासेटहरू २२ वटा एम्बोडिमेन्ट र दश लाखभन्दा बढी ट्र्याजेक्टोरीहरू समेट्दै एउटा RLDS संग्रहमा जम्मा गरियो। BridgeData V2 यसभित्र bridge_orig को रूपमा रहेको छ; google_robot स्लाइस, fractal20220817_data, ३ fps मा ८७,२१२ एपिसोडमा रूपान्तरण हुन्छ।
यस संकलनमा एउटा चेतावनी छ जुन पेपरले स्पष्ट रूपमा उल्लेख गरेको छ। RT-X प्रयोगहरूको लागि लेखकहरूले प्रत्येक स्रोतलाई ७-DoF एन्ड-इफेक्टर कार्यमा रूपान्तरण गर्छन्, तर डेटासेटहरूमा समन्वय फ्रेमहरू पङ्क्तिबद्ध गर्दैनन्, र प्रत्येक रोबोटको मौलिक नियन्त्रण योजना अनुसार कार्य मानहरूलाई निरपेक्ष वा सापेक्ष स्थिति वा वेग हुन अनुमति दिन्छन्। उनीहरूको निष्कर्ष: एउटै कार्य भेक्टरले विभिन्न रोबोटहरूको लागि धेरै फरक गतिहरू उत्पन्न गर्न सक्छ।

बेमेल, चार भागमा
Embodiment mismatch लाई सामान्यतया एउटा अस्पष्ट समस्याको रूपमा लिइन्छ। यो चार प्रकारका हुन्छन्, तिनीहरू फरक-फरक तरिकाले असफल हुन्छन्, र दुईवटा स्क्रिप्टिङद्वारा समाधान गर्न सकिँदैन।
1. स्वतन्त्रताका डिग्रीहरू
एउटा SO-100 मा पाँचवटा आर्म जोइन्ट र एउटा ग्रिपर हुन्छ। मोटरको रूपमा गणना गर्दा यो 6-DoF आर्म हो, र SmolVLA पेपरले यसलाई त्यसरी नै भन्छ; पोजिसनिङ मेकानिजमको रूपमा गणना गर्दा यो 5-DoF हो, र LeRobot ले यसलाई आफ्नो इन्भर्स-काइनेमेटिक्स डकस्ट्रिङमा त्यसरी नै भन्छ, जसले 5-DOF SO-101 मा सफ्ट-ओरिएन्टेसन IK वर्णन गर्दछ जहाँ नाडीले आंशिक रूपमा मात्र ओरिएन्टेसन ट्र्याक गर्दछ। एउटा 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 चेकपोइन्ट कुनै सर्टकट होइन। Physical Intelligence ले pi05_droid लाई gs://openpi-assets/checkpoints/pi05_droid मा पठाउँछ, र यसको व्यापकताको प्रशंसा गर्ने त्यही README ले यी विशेषज्ञ चेकपोइन्टहरू तपाईंको सेटअपमा सामान्यीकरण नहुन सक्ने चेतावनी दिन्छ। यसको अवस्था आठ फ्रान्का जोइन्ट नम्बरहरू हुन् र यसको छवि कुञ्जीहरू exterior_image_1_left र wrist_image_left हुन्। कुनै पनि फ्ल्यागले त्यसलाई छ-मोटर SO-100 कमाण्डमा बदल्दैन।
२. कार्य भेक्टरले वास्तवमा के भन्छ
आयामिकता भन्दा गहिरो। LeRobot रूपान्तरणहरूमा, तीनवटैले ग्रिपर कार्टेसियन स्पेसमा कहाँ जानुपर्छ भनी बताउँछन्। एक SO-100 ले छ वटा सर्भो कहाँ जानुपर्छ भनी बताउँछ। रूपान्तरण गर्नका लागि किनेमेटिक मोडेल र सल्भर चाहिन्छ, रिसेप होइन।
| गुण | LeRobot फारममा OXE, DROID र Bridge | LeRobot मा SO-100 |
|---|---|---|
| कार्य भेक्टर | 7-D: x, y, z, roll, pitch, yaw, gripper | 6-D: प्रति मोटर एक लक्ष्य स्थिति |
| अवस्था भेक्टर | 8-D, प्याड स्लट सहित (google_robot ले क्वार्टर्नियन प्रयोग गर्दछ) | 6-D, प्रति मोटर एक |
| फ्रेम | कार्टेसियन, डेटासेटहरूमा असंगत | जोइन्ट स्पेस, प्रति-आर्म क्यालिब्रेसन |
| निरपेक्ष वा सापेक्ष | कुनै पनि, स्रोत प्रयोगशाला द्वारा निर्णय गरिएको | absolute goal positions |
| एकाइहरू | प्रति डेटासेट सामान्यीकृत, त्यसपछि विच्छेदीकृत | पूर्वनिर्धारित रूपमा डिग्री (use_degrees=True), अन्यथा -100 देखि 100 |
| मौन विफलता | निरपेक्ष रूपमा पढिएको डेल्टा | एक अनक्यालिब्रेटेड आर्म |
openx2lerobot README ले यसले रूपान्तरण गर्ने प्रत्येक डेटासेटको लागि एक एकीकृत 8-dim स्थिति र 7-dim कार्य दस्तावेज गर्दछ, जहाँबाट `pad` स्लट आउँछ। DROID को आफ्नै RLDS स्कीमा फरक छ: यसको शीर्ष-स्तरको `action` *6 जोइन्ट वेग प्लस 1 ग्रिपर स्थिति* को 7-भेक्टर हो, जसमा `action_dict` अन्तर्गत `cartesian_position`, `cartesian_velocity`, `joint_position` र `joint_velocity` छन्। openpi ले जोइन्ट-स्पेस दृश्य पढ्छ, LeRobot बिल्डले तपाईंलाई कार्टेसियन दृश्य दिन्छ। दुवै छ वटा निरपेक्ष सर्भो कोण होइनन्।
LeRobot ले हराएको टुक्रा पठाउँछ: SO follower सँग InverseKinematicsEEToJoints र ForwardKinematicsJointsToEE चरणहरू भएको किनेमेटिक्स प्रोसेसर छ। यसका कुञ्जीहरू ee.x, ee.y, ee.z साथै एक रोटेशन भेक्टर ee.wx, ee.wy, ee.wz र ee.gripper_pos हुन्, त्यसैले अभिमुखीकरण एन्कोडिङ पनि फाइलहरूमा भएको रोल-पिच-याव भन्दा फरक छ। IK चरणले orientation_weight लिन्छ, जसको पूर्वनिर्धारित मान 0.01 हो, जसको डकस्ट्रिङले कम-सक्रिय हातहरूमा स्थिति-मात्र IK को लागि 0.0 सेट गर्न भन्छ। तपाईं पुल निर्माण गर्न सक्नुहुन्छ, तर प्रत्येक उधारो कार्यको अभिमुखीकरण आधा अनुमानित नै रहन्छ।
३. नियन्त्रण दर
DROID १५ Hz छ, BridgeData V2 ५ Hz, google_robot स्लाइस ३ fps; pi0 का लेखकहरूले उनीहरूको मिश्रणको खुला-स्रोत भागलाई २ र १० Hz बीचको कम-फ्रिक्वेन्सी नियन्त्रणको रूपमा वर्णन गर्छन्। LeRobot को DatasetRecordConfig पूर्वनिर्धारित रूपमा fps ३०, episode_time_s ६०, reset_time_s ६०, num_episodes ५० मा सेट गरिएको छ। ५ Hz डेटामा प्रशिक्षित एउटा ले एउटा कार्यले २०० ms समेट्छ भनी सिक्यो। यसलाई ३० Hz मा रिप्ले गर्दा हात बिस्तारै चल्छ; यसलाई सामान्य रूपमा पुनः नमूना गर्दा ग्रिपर बन्द हुने फ्रेम धमिलो हुन्छ। यसले सँग पनि नराम्रोसँग अन्तरक्रिया गर्छ: १००-चरणको खण्ड ५ Hz मा २० सेकेन्ड हुन्छ, ३० Hz मा ३.३ सेकेन्ड।
4. क्यामेराहरू
BridgeData V2 ले प्रत्येक ५० ट्र्याजेक्टरीमा दुई क्यामेरा पोजहरू अनियमित गर्यो, र यसको परियोजना पृष्ठले धेरैजसो डेटाले निश्चित दृश्य मात्र बोक्छ भनेर नोट गर्छ। DROID ले समायोज्य ZED 2 माउन्टहरू र एउटा नाडी ZED Mini प्रयोग गर्यो। तपाईंसँग आँखाले राखिएका दुई USB वेबक्यामहरू छन्। क्यामेरा पोज एक उपद्रव चर होइन ; यो धेरैजसो भिजुअल एन्कोडरले कुञ्जी गरेको कुरा हो, र फाइल ढाँचामा केही पनि छैन जसले तपाईंलाई पोजहरू फरक छन् भनी बताउँछ।
टुक्राहरू चलाउनको लागि पर्याप्त राम्रोसँग मिल्छन्। डेटासेट लोड हुन्छ, प्रशिक्षण सुरु हुन्छ, हानि घट्छ, चेकपोइन्टहरू देखा पर्छन्, कुनै त्रुटि हुँदैन। त्यसपछि नीतिले हातमा केही चिन्न सकिने काम गर्दैन र तपाईं आफ्नो प्रशिक्षण स्क्रिप्टमा बग खोज्दै एक दिन बिताउनुहुन्छ। कुनै बग छैन: मोडेलले तपाईंको कोठामा नभएको रोबोटको लागि कार्टेसियन कार्य वितरण सिक्यो। हानि घट्छ, नीतिले केही गर्दैन बाट सुरु गर्नुहोस्, तपाईंको हाइपरप्यारामिटरहरूबाट होइन।
तपाईंले जे भए पनि डेटा मर्ज गर्ने प्रयास गर्दा के हुन्छ
स्पष्ट योजना भनेको केही हजार DROID एपिसोडहरू र तपाईंको ५० लाई जोड्नु हो। LeRobot ले अस्वीकार गर्छ, र अस्वीकृतिले फरक पार्ने तीन चीजहरूको नाम दिन्छ।
- 1पूरा 1.7 TB होइन, 100-एपिसोडको नमूना तान्नुहोस्
संरचना हेर्न 2 GB पर्याप्त छ।
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2RLDS लाई 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 र सुविधाहरू जाँच गर्छ, पहिलो बेमेलमा त्रुटि उठाउँछ।
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.
सन्दर्भ मानहरू तपाईंले पहिले सूचीबद्ध गर्नुभएको डेटासेटबाट आउँछन्, त्यसैले सन्देशले DROID को १५ को सट्टा तपाईंको ३० fps बारे गुनासो गर्छ। fps ठीक गर्नुहोस् र तपाईं robot_type जाँचमा पुग्नुहुन्छ; त्यो ठीक गर्नुहोस् र तपाईं सुविधा जाँचमा पुग्नुहुन्छ, कार्यका लागि ६ विरुद्ध ७। कुनै पनि क्रमबद्धता सफल हुँदैन, र sanity_check_dataset_robot_compatibility मार्फत रेकर्ड समयमा उही गार्ड चल्छ।
हालको LeRobot मुख्यमा so100_follower र so101_follower दुवै एउटै साझा SOFollowerRobotConfig मा दर्ता गरिएका छन्, त्यसैले वास्तविक रेकर्डिङबाट आएको स्ट्रिङ तपाईंले अपेक्षा गरेको जस्तो नहुन सक्छ। यसलाई तपाईंको आफ्नै meta/info.json बाट पढ्नुहोस्, र तपाईंले असक्षम गर्नुपरेको जाँचलाई तपाईंलाई केही भनिरहेको जाँचको रूपमा लिनुहोस्।
वास्तवमा के स्थानान्तरण हुन्छ?
वजनहरू, एपिसोडहरू होइनन्। प्रत्येक आधुनिक सामान्यवादी नीतिले यसको केही अंश पूर्व-प्रशिक्षणमा अवशोषित गरेको थियो, र जब तपाईं जारी गरिएको बाट, तपाईंले यसलाई पहिले नै कम्प्युट भएका मानिसहरूद्वारा राम्ररी मिलाइएको अवस्थामा प्राप्त गर्नुहुन्छ। pi0 को पेपरले अनुपातको बारेमा स्पष्ट रूपमा बताउँछ: यसको पूर्व-प्रशिक्षण मिश्रणको 9.1 प्रतिशत, टाइमस्टेपमा गणना गर्दा, OXE, Bridge v2 र DROID सहितको खुला स्रोत डेटा हो। त्यो आंकडा pi0 को हो; प्रत्येक विक्रेताको मिश्रण फरक हुन्छ।
- दृश्य र भाषा प्राथमिकताहरू: एन्कोडरले हजारौं भान्सा र मगहरू देखेको छ र "रातो ब्लक" ले केलाई जनाउँछ भन्ने थाहा छ।
- हेरफेर संरचनामा एक प्राथमिकता: दृष्टिकोण, बन्द, लिफ्ट, यातायात, रिलीज, संख्याहरू नभए पनि एम्बोडिमेन्ट-स्वतन्त्र।
- परीक्षणको लागि एक ज्ञात-राम्रो डेटासेट। यदि तपाईंको कामले 100 DROID एपिसोडहरू ओभरफिट गर्न सक्दैन भने, समस्या तपाईंको सेटअप हो।
- सन्दर्भ बिन्दुहरू: सानो-स्केल डेटासेट डोमेनहरूमा RT-1-X ले मूल विधि वा RT-1 भन्दा 50 प्रतिशत उच्च औसत सफलता दर हासिल गर्यो, र RT-2-X ले उदीयमान सीपहरूमा RT-2 लाई लगभग 3 गुणाले हरायो।
- कुनै प्रयोगयोग्य कार्य पर्यवेक्षण छैन। 7-D कार्टेसियन लक्ष्य 6-D जोइन्ट कमाण्ड होइन।
- कुनै क्यामेरा-पोज स्थानान्तरण छैन, र डेटामा केही पनि छैन जसले तपाईंलाई पोजहरू फरक छन् भनी बताउँछ।
- कुनै समय स्थानान्तरण छैन: 30 fps रेकर्डरको विरुद्धमा 3, 5 र 15 fps स्रोतहरू।
- कुनै ग्रिपर स्थानान्तरण छैन। Robotiq 2F-85 र STS3215 मा छापिएको जबडा बल, स्ट्रोक र गतिशीलतामा फरक हुन्छ।
- स्केल मात्र यसका लेखकहरूको लागि पनि पर्याप्त थिएन: ठूला-डेटासेट डोमेनहरूमा RT-1-X ले त्यो डेटासेटमा मात्र प्रशिक्षित RT-1 लाई हराउन सकेन।
- तपाईंलाई कति आफ्नै एपिसोडहरू चाहिन्छ भन्नेमा कुनै कमी छैन।
| मोडेलको तह | स्थानान्तरण हुन्छ? | किन |
|---|---|---|
| भिजन एन्कोडर | हो, बलियो रूपमा | वस्तुहरू र दृश्यहरू एम्बोडिमेन्ट-स्वतन्त्र हुन्छन् |
| भाषा ग्राउन्डिङ | हो | निर्देशनहरू पाठ हुन्, ज्यामिति होइनन् |
| क्रस-मोडल फ्युजन | धेरै जसो | प्रम्प्टमा नाम दिइएको वस्तुमा ध्यान दिन्छ |
| प्रोप्रियोसेप्शन एन्कोडर | होइन | इनपुट आयाम र जोइन्ट सिमान्टिक्स फरक हुन्छन् |
| एक्शन हेड | होइन | तपाईं नभएको 7-D कार्टेसियन स्पेसमा प्रशिक्षित |
| सामान्यीकरण तथ्याङ्क | होइन, र खतरनाक | विदेशी तथ्याङ्कले प्रत्येक कमाण्डलाई परिवर्तन गर्छ |
यसैले गर्दा SmolVLA कम लागतको आर्ममा फरक तरिकाले व्यवहार गर्छ। यसको पेपरले Hugging Face बाट 481 सामुदायिक डेटासेटहरू चयन गर्छ, जुन एम्बोडिमेन्ट प्रकार, एपिसोड गणना, डेटा गुणस्तर र फ्रेम कभरेजद्वारा फिल्टर गरिएको छ: 22.9K एपिसोड, 10.6M फ्रेम, वास्तविक SO-100 र SO-101 आर्महरूमा मूल्याङ्कन गरिएको। सानो र मिल्दोले ठूलो र नमिल्दोलाई जित्छ। यसमा तुलना गर्नुहोस् ACT against SmolVLA.
लिन लायक तीन मार्गहरू
मार्ग A: डेटा पहिले नै समावेश भएको चेकपोइन्टबाट फाइन-ट्यून गर्नुहोस्
धेरैजसो मानिसहरूले यो मार्ग अपनाउनुपर्छ। तपाईंले DROID वा Open X-Embodiment लाई कहिल्यै छुनुहुन्न: जसको पूर्व-प्रशिक्षणले पहिले नै क्रस-एम्बोडिमेन्ट डेटा अवशोषित गरिसकेको छ, त्यस्तो नीति छान्नुहोस्, आफ्नै एपिसोडहरू रेकर्ड गर्नुहोस्, फाइन-ट्यून गर्नुहोस्।
| नीति | प्यारामिटरहरू | न्यूनतम एपिसोडहरू | डेटासेट ढाँचा | GPU टियर | अनुमान | आधार चेकपोइन्ट |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B, ~40 M trained in fine-tuning | 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, 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, र 85 मोडेलहरूमा 332 बेन्चमार्क परिणामहरू एरिना।
मार्ग B: DROID लाई परीक्षण फिक्स्चरको रूपमा प्रयोग गर्नुहोस्
100-एपिसोडको नमूना यस महिना डाउनलोड गर्ने सबैभन्दा राम्रो 2 GB हो, र यो प्रशिक्षणको लागि होइन। यो एउटा डेटासेट हो जुन तपाईंलाई सही छ भन्ने थाहा छ। यसमा आफ्नो कन्भर्टर, लोडर र छोटो GPU कार्य चलाउनुहोस्; असफल हुने कुनै पनि कुरा सस्तो हुँदा फेला परेको पूर्वाधार बग हो। NVIDIA ले ठूलो मात्रामा पनि त्यही गर्छ: GR00T N1.7 कार्डले SimplerEnv मा Bridge र Fractal, DROID र LIBERO का लागि चार पोस्ट-प्रशिक्षित भेरियन्टहरू सूचीबद्ध गर्दछ।
मार्ग C: आफ्नै, जानाजानी रेकर्ड गर्नुहोस्
तीस देखि पचास ७६,००० को तुलनामा सानो लाग्छ जबसम्म तपाईंलाई याद हुँदैन कि तपाईंका मात्र त्यस्ता हुन् जसमा तपाईंको पाखुरा, क्यामेरा र टेबल छन्। LeRobot को पूर्वनिर्धारित सेटिङहरूमा, ५० एपिसोडहरू १०० मिनेटको वास्तविक समय हो। हेर्नुहोस् , र .

सार्वजनिक डेटाबाट कार्यरत नीतिमा पुग्ने दुई तरिका
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 | both | blocked by validate_all_metadata | n/a | कुनै छैन, यो चल्दैन |
| SmolVLA, 30 देखि 50 आफ्नै एपिसोडहरू | a few GB | 100 min recording | 1 to 3 USD | उच्च |
| GR00T N1.7, 50 आफ्नै एपिसोडहरू | a few GB | 100 min recording | 4 to 12 USD | उच्च |
| ACT स्क्र्याचबाट, 50 आफ्नै एपिसोडहरू | a few GB | 100 min recording | 1 to 3 USD | उच्च, 20 ms inference |
| परीक्षण फिक्स्चरको रूपमा DROID नमूना | 2 GB | एक दिउँसो | one short run | उच्च, प्रमाणीकरणको रूपमा |
विषमता नै मुख्य कुरा हो: सबैभन्दा बढी डेटा लिने मार्ग सबैभन्दा महँगो हुन्छ र तपाईंको पाखुरा चलाउने सम्भावना कम हुन्छ। तपाईंको आफ्नै दुई घण्टा भन्दा कम टेलिअपरेसन अरू कसैको फ्रान्काको एक टेराबाइट भन्दा राम्रो हुन्छ। अझै पाखुरा छैन? /live ले साइनअप बिना भौतिक SO-100 स्ट्रिम गर्छ। त्यसपछि आफ्नो पहिलो नीति तालिम दिनुहोस्, र SO-100 मा SmolVLA विशिष्ट मार्गनिर्देशनको लागि।
2 GB DROID नमूना डाउनलोड गर्नुहोस् र यसलाई आफ्नो पाइपलाइन प्रमाणित गर्न प्रयोग गर्नुहोस्। अन्य 1.7 TB लाई बेवास्ता गर्नुहोस्। निश्चित क्यामेराहरूसँग एउटै कार्यका 50 एपिसोडहरू रेकर्ड गर्नुहोस्। पहिले SmolVLA लाई फाइन-ट्यून गर्नुहोस्, किनभने 24 GB कार्डमा न्यूनतम 30 एपिसोडहरूमा यो दोहोर्याउन सबैभन्दा सस्तो हुन्छ, त्यसपछि सोही डेटामा GR00T N1.7 प्रयास गर्नुहोस्। बेन्चमार्कमा होइन, आफ्नो कार्यमा तुलना गर्नुहोस्।
तपाईंको पाखुरासँग पहिले नै मिल्ने डेटासेटहरू रेकर्ड गर्नुहोस्
डेस्कटप क्लाइन्टले टेलिअप सत्रबाट सिधै LeRobot-ढाँचाका डेटासेटहरू लेख्छ: सही पाखुरा, सही फ्रेम दर, सही कार्य स्थान। कुनै RLDS रूपान्तरण छैन, कुनै रिम्यापिङ छैन।
डेस्कटप क्लाइन्ट प्राप्त गर्नुहोस्के म DROID मा नीति तालिम दिएर मेरो SO-100 मा चलाउन सक्छु?▾
सीधै होइन। LeRobot बिल्डमा DROID कार्यहरू फ्रान्का पाण्डामा 15 fps मा 7-D एन्ड-इफेक्टर कमान्डहरू हुन्; कच्चा RLDS मा तिनीहरू 6 जोइन्ट वेगहरू र एक ग्रिपर स्थिति हुन्। SO-100 ले 6 निरपेक्ष जोइन्ट स्थितिहरू लिन्छ। तपाईंलाई एक इन्भर्स-काइनेमेटिक्स लेयर चाहिन्छ, र त्यति हुँदा पनि 5-DoF नाडीले मनमानी 6-DoF पोजहरू पुन: उत्पादन गर्न सक्दैन।
के म DROID वा Bridge एपिसोडहरूलाई मेरो आफ्नै SO-100 एपिसोडहरूसँग मिसाउन सक्छु?▾
होइन। validate_all_metadata लाई समान fps, robot_type र फिचर स्कीमा चाहिन्छ र पहिलो बेमेलमा ValueError उठाउँछ। तीनवटै फरक छन्: 30 को विरुद्धमा 15 वा 5 fps, तपाईंको पाखुराको विरुद्धमा franka वा widowx, 6 को विरुद्धमा 7 को कार्य आकार। जाँच पास गर्न मेटाडेटा पुन: लेख्दा अर्थशास्त्र ठीक हुँदैन।
के त्यसो भए कम लागतको पाखुराको लागि Open X-Embodiment बेकार छ?▾
होइन, तर यसको मूल्य तपाईंलाई पूर्व-तालिम प्राप्त वजनहरू मार्फत पुग्छ, एपिसोडहरू मार्फत होइन। OXE, Bridge v2 र DROID सहितका खुला स्रोत डेटासेटहरू pi0 को पूर्व-तालिम मिश्रणको 9.1 प्रतिशत हुन्, र NVIDIA ले Bridge, Fractal, DROID र LIBERO मा पोस्ट-तालिम प्राप्त GR00T N1.7 भेरियन्टहरू पठाउँछ। तपाईंले ती एपिसोडहरूलाई आफ्नो रेकर्डिङमा जोड्न सक्नुहुन्न।
सार्वजनिक क्रस-इम्बोडिमेन्ट डेटाबाट कुन नीतिले सबैभन्दा बढी फाइदा लिन्छ?▾
Pi0.5 र GR00T मोडेलहरूले सबैभन्दा बढी क्रस-इम्बोडिमेन्ट पूर्व-तालिम बोक्छन्, तर SmolVLA प्रायः कम लागतको पाखुरामा राम्रो व्यवहार गर्छ: यसको पूर्व-तालिम सेट 481 सामुदायिक डेटासेटहरू, 22.9K एपिसोडहरू र 10.6M फ्रेमहरू छन्, जुन वास्तविक SO-100 र SO-101 पाखुराहरूमा मूल्याङ्कन गरिएको छ। ACT यसको विपरीत हो: कुनै आधार मोडेल छैन, प्रति कार्य चरण 20 ms।
मलाई वास्तवमा आफ्नै कति एपिसोडहरू चाहिन्छ?▾
SmolVLA को लागि 30, GR00T N1.7, GR00T N1.5, Pi0.5 र ACT को लागि 50। LeRobot को पूर्वनिर्धारित प्रति एपिसोड 60 s र 60 s रिसेटमा, 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: the 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: 3 fps मा google_robot स्लाइस
- huggingface/lerobot: SO follower, किनेमेटिक्स प्रोसेसर, एग्रीगेट र रेकर्ड कन्फिगहरू
- 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