
DROID، BridgeData V2 اور Open X-Embodiment 6 اور 7-DoF بازوؤں پر 7-D اینڈ-ایفیکٹر ایکشنز میں تبدیل ہوتے ہیں۔ ایک SO-100 چھ جوائنٹ پوزیشنز لیتا ہے۔ کیا منتقل ہوتا ہے، کیا نہیں ہوتا، اور اس کے بجائے کیا کرنا چاہیے۔
مختصر ورژن
- •تینوں کے 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 embodiments, 60 datasets, 34 labs |
| پیمانہ | 76k trajectories, 350 hours | 60,096 trajectories | 1M+ trajectories, 527 skills |
| تنوع | 564 scenes, 84 tasks, 50 collectors | 24 environments, 13 skills | 160,266 tasks, 21 institutions |
| ترکیب | all teleoperated | 50,365 teleoperated, 9,731 scripted | per source lab |
| کنٹرول کی شرح | 15 Hz | 5 Hz | varies, 3 fps upwards |
| کیمرے | 2 x ZED 2 exterior, 1 x ZED Mini wrist | up to 4, most episodes only the fixed one | whatever the lab used |
| خام ڈاؤن لوڈ | 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
تینوں میں سب سے زیادہ معیاری۔ ہر جگہ ایک ہی رگ: ایک فرینکا پانڈا جس میں روبوٹک 2F-85 گریپر، دو ایڈجسٹ ایبل ZED 2 سٹیریو کیمرے اور ایک کلائی ZED منی، میٹا کویسٹ 2 کنٹرولرز کے ساتھ ٹیلی آپریٹڈ، پولیمیٹس کے ذریعے 15 ہرٹز پر جوائنٹ اور اینڈ-ایفیکٹر اسپیس دونوں میں ریکارڈ کیا گیا۔ زبان کے لیبل بعد میں tasq.ai کے ذریعے آئے، فی ایپیسوڈ۔
- 76k ٹراجیکٹریز، 350 گھنٹے، 564 مناظر، 84 کام، تین براعظموں پر 50 کلیکٹرز۔
- سرخی کا نتیجہ مشترکہ تربیت ہے، نہ کہ اکیلی تربیت: ان-ڈومین مظاہروں کے ساتھ 50/50 کے تناسب سے ملے ہوئے بیچز نے اگلے بہترین طریقہ کار کو تقسیم میں 22 فیصد اور اس سے باہر 17 فیصد مطلق کامیابی سے شکست دی۔
- IPEC-COMMUNITY/droid_lerobot: 92,233 ایپی سوڈز، 27,044,326 فریمز، فرینکا، 15 fps، codebase_version v2.0، 180x320 پر تین AV1 سٹریمز، 392 GB۔
- ایک 2 GB، 100-ایپی سوڈ ڈیبگنگ نمونہ gs://gresearch/robotics/droid_100 پر موجود ہے۔ وہاں سے شروع کریں۔
BridgeData V2
ایک شوقیہ سیٹ اپ کے قریب ترین: ایک WidowX 250 6-DoF بازو، 24 ماحول اور 13 مہارتوں میں 60,096 ٹراجیکٹریز 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
اسی معنی میں کوئی ڈیٹا سیٹ نہیں: 34 لیبز سے 60 موجودہ روبوٹ ڈیٹا سیٹس کو ایک RLDS کلیکشن میں جمع کیا گیا جو 22 ایمباڈیمنٹس اور دس لاکھ سے زیادہ ٹراجیکٹریز کا احاطہ کرتا ہے۔ BridgeData V2 اس کے اندر bridge_orig کے طور پر موجود ہے؛ google_robot سلائس، fractal20220817_data، 3 fps پر 87,212 ایپی سوڈز میں تبدیل ہوتا ہے۔
اس پولنگ میں ایک انتباہ شامل ہے جسے مقالے میں واضح طور پر بیان کیا گیا ہے۔ RT-X تجربات کے لیے مصنفین ہر سورس کو 7-DoF اینڈ-ایفیکٹر ایکشن میں تبدیل کرتے ہیں، لیکن ڈیٹا سیٹس کے درمیان کوآرڈینیٹ فریمز کو سیدھ میں نہیں لاتے، اور ہر روبوٹ کی اصل کنٹرول اسکیم کے مطابق ایکشن ویلیوز کو مطلق یا نسبتی پوزیشنز یا ویلوسٹیز ہونے کی اجازت دیتے ہیں۔ ان کا نتیجہ: ایک ہی ایکشن ویکٹر مختلف روبوٹس کے لیے بہت مختلف حرکات پیدا کر سکتا ہے۔

عدم مطابقت، چار حصوں میں
ایمباڈیمنٹ کی عدم مطابقت کو عام طور پر ایک مبہم مسئلہ سمجھا جاتا ہے۔ یہ چار ہیں، وہ مختلف طریقے سے ناکام ہوتے ہیں، اور دو کو اسکرپٹنگ کے ذریعے ٹھیک نہیں کیا جا سکتا۔
آزادی کی ڈگریاں
ایک SO-100 میں پانچ بازو کے جوڑ اور ایک گریپر ہوتا ہے۔ موٹرز کے طور پر شمار کیا جائے تو یہ ایک 6-DoF بازو ہے، اور SmolVLA پیپر اسے یہی کہتا ہے؛ پوزیشننگ میکانزم کے طور پر شمار کیا جائے تو یہ 5-DoF ہے، اور LeRobot اسے اپنی انورس-کائنیمیٹکس ڈاکسٹرنگ میں یہی کہتا ہے، جو 5-DOF SO-101 پر نرم-اورینٹیشن IK کو بیان کرتا ہے جہاں کلائی صرف جزوی طور پر اورینٹیشن کو ٹریک کرتی ہے۔ ایک فرینکا میں سات پوزیشننگ جوڑ ہوتے ہیں۔ یہ فرق فیصلہ کرتا ہے کہ کون سی پوز موجود ہیں: ایک 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 چیک پوائنٹ کوئی شارٹ کٹ نہیں ہے۔ فزیکل انٹیلی جنس pi05_droid کو gs://openpi-assets/checkpoints/pi05_droid پر فراہم کرتا ہے، اور وہی README جو اس کی وسعت کی تعریف کرتا ہے، خبردار کرتا ہے کہ یہ ماہر چیک پوائنٹس آپ کے سیٹ اپ پر عام نہیں ہو سکتے۔ اس کی حالت آٹھ فرینکا جوائنٹ نمبرز ہے اور اس کی تصویری کیز 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, رول، پچ، یا، گریپر | 6-D: ہر موٹر کے لیے ایک ہدف پوزیشن |
| اسٹیٹ ویکٹر | 8-D، ایک پیڈ سلاٹ کے ساتھ (google_robot ایک کوآٹرنیون استعمال کرتا ہے) | 6-D، ہر موٹر کے لیے ایک |
| فریم | کارٹیشین، ڈیٹا سیٹس میں غیر منسلک | جوائنٹ اسپیس، فی بازو کیلیبریشن |
| مطلق یا نسبتی | کوئی بھی، ماخذ لیب کے ذریعے فیصلہ کیا جاتا ہے | مطلق ہدف پوزیشنز |
| یونٹس | فی ڈیٹا سیٹ نارملائزڈ، پھر ڈسکریٹائزڈ | بطور ڈیفالٹ ڈگریز (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 فالوور میں 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 کہتی ہے کہ کم ایکچویٹڈ بازوؤں پر صرف پوزیشن IK کے لیے اسے 0.0 پر سیٹ کریں۔ آپ برج بنا سکتے ہیں، لیکن ہر مستعار ایکشن کا اورینٹیشن والا نصف حصہ تخمینہ شدہ ہی رہے گا۔
3. کنٹرول ریٹ
DROID 15 Hz ہے، BridgeData V2 5 Hz ہے، google_robot سلائس 3 fps ہے؛ pi0 کے مصنفین اپنے مکسچر کے اوپن سورس حصے کو 2 اور 10 Hz کے درمیان کم فریکوئنسی کنٹرول کے طور پر بیان کرتے ہیں۔ LeRobot کی DatasetRecordConfig کا ڈیفالٹ fps 30، episode_time_s 60، reset_time_s 60، num_episodes 50 ہے۔ ایک جو 5 Hz ڈیٹا پر تربیت یافتہ ہے، نے سیکھا کہ ایک ایکشن 200 ms کا احاطہ کرتا ہے۔ اسے 30 Hz پر دوبارہ چلائیں تو بازو رینگتا ہے؛ اگر آپ اسے سادہ لوحی سے دوبارہ سیمپل کریں تو آپ اس فریم کو دھندلا دیں گے جہاں گرپر بند ہوتا ہے۔ یہ کے ساتھ بھی بری طرح تعامل کرتا ہے: ایک 100-اسٹیپ چنک 5 Hz پر 20 سیکنڈ اور 30 Hz پر 3.3 سیکنڈ کا ہوتا ہے۔
4. کیمرے
BridgeData V2 نے ہر 50 ٹراجیکٹریز کے بعد دو کیمرہ پوز کو بے ترتیب کیا، اور اس کے پروجیکٹ پیج میں بتایا گیا ہے کہ زیادہ تر ڈیٹا ویسے بھی صرف فکسڈ ویو پر مشتمل ہوتا ہے۔ DROID نے ایڈجسٹ ایبل ZED 2 ماؤنٹس کے علاوہ ایک کلائی ZED Mini استعمال کیا۔ آپ کے پاس دو USB ویب کیمز ہیں جو آنکھوں سے پوزیشن کیے گئے ہیں۔ کیمرہ پوز ایک پریشان کن متغیر نہیں ہے ؛ یہ بہت کچھ ہے جس پر ویژول انکوڈر نے توجہ مرکوز کی تھی، اور فائل فارمیٹ میں کچھ بھی آپ کو نہیں بتاتا کہ پوز مختلف ہیں۔
ٹکڑے چلانے کے لیے کافی اچھی طرح سے فٹ ہوتے ہیں۔ ڈیٹا سیٹ لوڈ ہوتا ہے، ٹریننگ شروع ہوتی ہے، نقصان کم ہوتا ہے، چیک پوائنٹس ظاہر ہوتے ہیں، کوئی خرابی نہیں ہوتی۔ پھر پالیسی بازو پر کچھ بھی قابل شناخت نہیں کرتی اور آپ اپنے ٹریننگ اسکرپٹ میں ایک بگ کی تلاش میں ایک دن گزار دیتے ہیں۔ کوئی بگ نہیں ہے: ماڈل نے ایک ایسے روبوٹ کے لیے کارٹیشین ایکشن ڈسٹری بیوشن سیکھی ہے جو آپ کے کمرے میں موجود نہیں ہے۔ نقصان کم ہوتا ہے، پالیسی کچھ نہیں کرتی سے شروع کریں، نہ کہ اپنے ہائپر پیرامیٹرز سے۔
جب آپ ویسے بھی ڈیٹا کو ضم کرنے کی کوشش کرتے ہیں تو کیا ہوتا ہے
واضح منصوبہ یہ ہے کہ چند ہزار DROID ایپی سوڈز کو آپ کے 50 کے ساتھ جوڑ دیا جائے۔ 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مرج کو آزمائیں اور ایرر پڑھیں۔
merge ہر ڈیٹا سیٹ کو لوڈ کرتا ہے، پھر 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 کے 15 کے بجائے آپ کے 30 fps کے بارے میں شکایت کرتا ہے۔ fps کو ٹھیک کریں اور آپ robot_type کی جانچ پر پہنچ جائیں گے؛ اسے ٹھیک کریں اور آپ فیچر کی جانچ پر پہنچ جائیں گے، ایکشن کے لیے 6 کے مقابلے میں 7۔ کوئی ترتیب کام نہیں کرتی، اور وہی گارڈ ریکارڈ کے وقت 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 ایک کم لاگت والے بازو پر مختلف طریقے سے برتاؤ کرتا ہے۔ اس کے مقالے میں ہگنگ فیس سے 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 فائن ٹیوننگ میں تربیت یافتہ | 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 بیک بون | 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 | کوئی نہیں، شروع سے |
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: اپنا خود کا، جان بوجھ کر ریکارڈ کریں
تیس سے پچاس 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 | ایک دوپہر | ایک مختصر رن | زیادہ، توثیق کے طور پر |
عدم توازن ہی اصل نکتہ ہے: وہ راستہ جو سب سے زیادہ ڈیٹا لیتا ہے سب سے مہنگا ہے اور آپ کے بازو کو حرکت دینے کا امکان سب سے کم ہے۔ آپ کے اپنے ٹیلی آپریشن کے دو گھنٹے سے کم کسی اور کے فرینکا کے ایک ٹیرا بائٹ سے بہتر ہے۔ ابھی تک کوئی بازو نہیں ہے؟ /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، آپ کے بازو کے مقابلے میں فرینکا یا وڈو ایکس، 6 کے مقابلے میں 7 کے ایکشن شیپس۔ چیک پاس کرنے کے لیے میٹا ڈیٹا کو دوبارہ لکھنا سیمنٹکس کو ٹھیک نہیں کرتا۔
تو کیا Open X-Embodiment کم لاگت والے بازو کے لیے بیکار ہے؟▾
نہیں۔ لیکن اس کی قدر آپ تک پری ٹرینڈ ویٹس کے ذریعے پہنچتی ہے، نہ کہ ایپیسوڈز کے ذریعے۔ اوپن سورس ڈیٹا سیٹس بشمول OXE، Bridge v2 اور DROID، pi0 کے پری ٹریننگ مکسچر کا 9.1 فیصد ہیں، اور NVIDIA GR00T N1.7 ویریئنٹس کو Bridge، Fractal، DROID اور LIBERO پر پوسٹ ٹرین کر کے بھیجتا ہے۔ جو آپ نہیں کر سکتے وہ یہ ہے کہ ان ایپیسوڈز کو اپنی ریکارڈنگ میں شامل کریں۔
کون سی پالیسی عوامی کراس-ایمباڈیمنٹ ڈیٹا سے سب سے زیادہ فائدہ اٹھاتی ہے؟▾
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 سیکنڈ فی ایپیسوڈ اور 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: 3 fps پر google_robot کا حصہ
- 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