AY-Robots کی عوامی ڈیٹا سیٹ ڈائریکٹری جو SO-100 کلاس کے بازوؤں پر ریکارڈ کیے گئے LeRobot ڈیٹا سیٹس دکھا رہی ہے
ڈیٹا سیٹسOpen X-EmbodimentDROIDSO-100LeRobot

DROID، BridgeData V2 اور Open X کا SO-100 پر استعمال

AY-Robots ResearchAugust 23, 202618 منٹ کا مطالعہ

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 بازو سے ٹکراتا ہے، اور اس کے بجائے کیا کرنا ہے۔ نیچے دیا گیا ہر نمبر اس کاغذ، ڈیٹا سیٹ کارڈ یا سورس فائل سے آیا ہے جس سے اس کا تعلق ہے۔

تینوں ڈیٹا سیٹس میں دراصل کیا شامل ہے

DROIDBridgeData V2Open X-Embodiment
روبوٹFranka Panda, 7 DoF, Robotiq 2F-85WidowX 250, 6 DoF, ~4,000 USD rig22 embodiments, 60 datasets, 34 labs
پیمانہ76k trajectories, 350 hours60,096 trajectories1M+ trajectories, 527 skills
تنوع564 scenes, 84 tasks, 50 collectors24 environments, 13 skills160,266 tasks, 21 institutions
ترکیبall teleoperated50,365 teleoperated, 9,731 scriptedper source lab
کنٹرول کی شرح15 Hz5 Hzvaries, 3 fps upwards
کیمرے2 x ZED 2 exterior, 1 x ZED Mini wristup to 4, most episodes only the fixed onewhatever the lab used
خام ڈاؤن لوڈ1.7 TB RLDS, 8.7 TB raw stereoJPEG archivesper-dataset TFDS buckets
داخلی نقطہ LeRobot کی تبدیلی ہے، نہ کہ اصل بالٹی

بہت کم لوگ اب بھی 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 اینڈ-ایفیکٹر ایکشن میں تبدیل کرتے ہیں، لیکن ڈیٹا سیٹس کے درمیان کوآرڈینیٹ فریمز کو سیدھ میں نہیں لاتے، اور ہر روبوٹ کی اصل کنٹرول اسکیم کے مطابق ایکشن ویلیوز کو مطلق یا نسبتی پوزیشنز یا ویلوسٹیز ہونے کی اجازت دیتے ہیں۔ ان کا نتیجہ: ایک ہی ایکشن ویکٹر مختلف روبوٹس کے لیے بہت مختلف حرکات پیدا کر سکتا ہے۔

The AY-Robots dataset directory listing public LeRobot datasets with episode counts and task descriptions
The public dataset directory at /directory: datasets already in LeRobot form, already matching a supported arm.

عدم مطابقت، چار حصوں میں

ایمباڈیمنٹ کی عدم مطابقت کو عام طور پر ایک مبہم مسئلہ سمجھا جاتا ہے۔ یہ چار ہیں، وہ مختلف طریقے سے ناکام ہوتے ہیں، اور دو کو اسکرپٹنگ کے ذریعے ٹھیک نہیں کیا جا سکتا۔

آزادی کی ڈگریاں

ایک SO-100 میں پانچ بازو کے جوڑ اور ایک گریپر ہوتا ہے۔ موٹرز کے طور پر شمار کیا جائے تو یہ ایک 6-DoF بازو ہے، اور SmolVLA پیپر اسے یہی کہتا ہے؛ پوزیشننگ میکانزم کے طور پر شمار کیا جائے تو یہ 5-DoF ہے، اور LeRobot اسے اپنی انورس-کائنیمیٹکس ڈاکسٹرنگ میں یہی کہتا ہے، جو 5-DOF SO-101 پر نرم-اورینٹیشن IK کو بیان کرتا ہے جہاں کلائی صرف جزوی طور پر اورینٹیشن کو ٹریک کرتی ہے۔ ایک فرینکا میں سات پوزیشننگ جوڑ ہوتے ہیں۔ یہ فرق فیصلہ کرتا ہے کہ کون سی پوز موجود ہیں: ایک 5-DoF بازو عام طور پر ایک ہی وقت میں کسی بھی پوزیشن اور اورینٹیشن تک نہیں پہنچ سکتا، لہذا سالور قریب ترین ممکنہ پوز واپس کرتا ہے، جو مظاہرہ کردہ حرکت سے مختلف ہوتی ہے۔ پس منظر: آزادی کی ڈگریاں.

python
# 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
بائیں: LeRobot کا SO فالوور، src/lerobot/robots/so_follower/so_follower.py سے۔ دائیں: openpi کا DROID پالیسی ان پٹ۔ چھ بمقابلہ آٹھ۔

لہٰذا، ایک تیار شدہ 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
خاموش ناکامیایک ڈیلٹا کو مطلق کے طور پر پڑھا گیاایک غیر کیلیبریٹڈ بازو
7-D کارٹیشین ویکٹر کنورٹر کا کنونشن ہے، DROID کا نہیں

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
    مکمل 1.7 TB کے بجائے 100 ایپی سوڈ کا نمونہ کھینچیں۔

    ساخت دیکھنے کے لیے 2 GB کافی ہے۔

    bash
    pip install gsutil tensorflow tensorflow-datasets
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  2. 2
    RLDS کو LeRobot فارم میں تبدیل کریں۔

    openx2lerobot OXE معیاری تبدیلیوں کو سمیٹتا ہے اور روبوٹ کی قسم اور کنٹرول فریکوئنسی کو نشان زد کرتا ہے۔ README اسے convert.sh میں رکھتا ہے۔

    bash
    git 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. 3
    کسی بھی چیز سے پہلے meta/info.json پڑھیں۔

    یہ فائل فیصلہ کرتی ہے کہ آپ کے دن کا باقی حصہ کام کرے گا یا نہیں۔

    bash
    python -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. 4
    مرج کو آزمائیں اور ایرر پڑھیں۔

    merge ہر ڈیٹا سیٹ کو لوڈ کرتا ہے، پھر validate_all_metadata فہرست میں پہلے کے خلاف fps، robot_type اور خصوصیات کی جانچ کرتا ہے، پہلی عدم مطابقت پر ایرر دیتا ہے۔

    bash
    lerobot-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 کے ذریعے چلتا ہے۔

جانچ کو ناکام بنانے کے لیے robot_type کو ہارڈ کوڈ نہ کریں۔

موجودہ LeRobot مین پر so100_follower اور so101_follower دونوں ایک مشترکہ SOFollowerRobotConfig پر رجسٹرڈ ہیں، لہذا ایک حقیقی ریکارڈنگ سے آنے والی سٹرنگ ضروری نہیں کہ وہی ہو جس کی آپ توقع کرتے ہیں۔ اسے اپنی meta/info.json سے پڑھیں، اور ایک ایسی جانچ کو جسے آپ کو غیر فعال کرنا پڑا، ایک ایسی جانچ سمجھیں جو آپ کو کچھ بتا رہی تھی۔

تو اصل میں کیا منتقل ہوتا ہے؟

وزن، نہ کہ ایپی سوڈز۔ ہر جدید عمومی پالیسی نے پری ٹریننگ میں اس کا کچھ حصہ جذب کیا، اور جب آپ ایک جاری کردہ سے کرتے ہیں تو آپ کو یہ پہلے ہی ان لوگوں کے ذریعے حل شدہ حالت میں وراثت میں ملتا ہے جن کے پاس اسے صحیح طریقے سے کرنے کے لیے کمپیوٹ موجود ہے۔ pi0 کا مقالہ اس تناسب کے بارے میں واضح ہے: اس کے پری ٹریننگ مکسچر کا 9.1 فیصد، ٹائم سٹیپس میں شمار کیا گیا، اوپن سورس ڈیٹا ہے جس میں OXE، Bridge v2 اور DROID شامل ہیں۔ یہ اعداد و شمار pi0 کے ہیں؛ ہر وینڈر کا مکسچر مختلف ہوتا ہے۔

SO-100 پروجیکٹ پر عوامی کراس-ایمباڈیمنٹ ڈیٹا
فوائد
  • بصری اور لسانی ترجیحات: انکوڈر نے ہزاروں کچن اور مگ دیکھے ہیں اور جانتا ہے کہ "سرخ بلاک" کس چیز کا حوالہ دیتا ہے۔
  • مینیپولیشن ڈھانچے پر ایک ترجیح: قریب آنا، بند کرنا، اٹھانا، منتقل کرنا، چھوڑنا، ایمباڈیمنٹ سے آزاد، یہاں تک کہ جب اعداد نہ ہوں۔
  • جانچا ہوا اچھا ڈیٹا سیٹ۔ اگر آپ کا کام 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 فائن ٹیوننگ میں تربیت یافتہ50LeRobot v2.0 or v2.1A100 or H100 80 GB152 ms فی قدمnvidia/GR00T-N1.7-3B
GR00T N1.5~3 B50LeRobot v2.0 or v2.1A100 or H100 80 GB165 msnvidia/GR00T-N1.5-3B
Pi0.5~3 B, PaliGemma بیک بون50LeRobot v3.0A100 or H100 80 GB485 mslerobot/pi05_base
SmolVLA~450 M30LeRobot v3.0RTX 4090 or any 24 GB245 mslerobot/smolvla_base
ACT~80 M50LeRobot v3.0RTX 4090 or any 24 GB20 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 منٹ کی وال کلاک ہیں۔ دیکھیں ، اور .

AY-Robots ریکارڈنگ ٹیوٹوریل صفحہ جو ٹیلی آپریشن سیشن سے LeRobot ڈیٹا سیٹ حاصل کرنے کے اقدامات دکھا رہا ہے۔
ریکارڈنگ واک تھرو /learn/record-your-first-dataset پر: وہ قدم جسے عوامی ڈیٹا تبدیل نہیں کر سکتا۔

عوامی ڈیٹا سے ایک فعال پالیسی تک پہنچنے کے دو طریقے

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.

  1. 1
    Install LeRobot with the extras the scripts need

    The record and train entry points each declare their own extra.

    bash
    pip install 'lerobot[core_scripts]'   # lerobot-record
    pip install 'lerobot[training]'      # lerobot-train
    pip install gsutil tensorflow tensorflow-datasets
  2. 2
    Get a small, known-good slice

    100 DROID episodes, 2 GB.

    bash
    gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/
  3. 3
    Convert to LeRobot form

    Writes the unified 8-D state and 7-D action, annotating robot type and control frequency.

    bash
    python openx_rlds.py \
        --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \
        --local-dir ~/lerobot_droid100 \
        --repo-id you/droid100_lerobot \
        --use-videos
  4. 4
    Check 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.

    bash
    python src/lerobot/scripts/convert_dataset_v21_to_v30.py \
        --repo-id=you/droid100_lerobot
  5. 5
    Record your own episodes

    Defaults: 30 fps, 60 s per episode, 60 s reset, 50 episodes. The teleoperator type is so100_leader.

    bash
    lerobot-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"
  6. 6
    Fine-tune on your data only

    Weights from public data, actions from your own. Do not mix the datasets.

    bash
    lerobot-train \
      --policy.path=lerobot/smolvla_base \
      --dataset.repo_id=you/so100_pick_block \
      --policy.device=cuda \
      --batch_size=4 \
      --steps=20000
Where the time actually goes

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 AY-Robots desktop client download page, the client that records LeRobot-format datasets from a teleoperation session
The desktop client at /download writes LeRobot datasets directly from a teleop session, sidestepping RLDS conversion.

ہر راستے کی لاگت کیا ہے

راستہاسٹوریجانسانی وقتGPU لاگتآپ کے بازو کو حرکت دینے کا امکان
صرف تبدیل شدہ DROID392 GBتبدیلی کے دن4 to 12 USDبہت کم، غلط ایکشن اسپیس
آپ کے ایپی سوڈز کے ساتھ ضم شدہ DROIDدونوںblocked by validate_all_metadatan/aکوئی نہیں، یہ نہیں چلتا
SmolVLA، 30 سے 50 اپنے ایپی سوڈزچند GB100 منٹ کی ریکارڈنگ1 to 3 USDزیادہ
GR00T N1.7، 50 اپنے ایپی سوڈزچند GB100 منٹ کی ریکارڈنگ4 to 12 USDزیادہ
ACT شروع سے، 50 اپنے ایپی سوڈزچند GB100 منٹ کی ریکارڈنگ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 منٹ کا وال کلاک ٹائم بنتے ہیں۔ ادھار لیا گیا کراس-ایمباڈیمنٹ ڈیٹا ان اعداد کو کم نہیں کرتا۔

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started