
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 নমুনা যা একটি সপ্তাহান্তে রেকর্ডিং করার আগে আপনার পাইপলাইন প্রমাণ করে।
একটি Google Cloud বাল্কে একটি মিলিয়ন-ট্র্যাজেক্টরি পাবলিক ডেটাসেট রয়েছে এবং একটি 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 রিগ | 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
তিনটির মধ্যে সবচেয়ে মানসম্মত। সব জায়গায় একটি রিগ: একটি 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, 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 চেকপয়েন্ট কোনো শর্টকাট নয়। 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, প্রতি মোটরের জন্য একটি |
| ফ্রেম | কার্টেসিয়ান, ডেটাসেট জুড়ে অসংলগ্ন | জয়েন্ট স্পেস, প্রতি-আর্ম ক্যালিব্রেশন |
| পরম বা আপেক্ষিক | যেকোনো একটি, উৎস ল্যাব দ্বারা নির্ধারিত | পরম লক্ষ্য অবস্থান |
| একক | প্রতি ডেটাসেট অনুযায়ী স্বাভাবিককৃত, তারপর বিচ্ছিন্নকৃত | ডিফল্টরূপে ডিগ্রি (use_degrees=True), অন্যথায় -100 থেকে 100 |
| নীরব ব্যর্থতা | একটি ডেল্টা পরম হিসাবে পঠিত | একটি অ-ক্যালিব্রেটেড আর্ম |
openx2lerobot README প্রতিটি ডেটাসেটের জন্য একটি সমন্বিত 8-মাত্রিক অবস্থা এবং 7-মাত্রিক অ্যাকশন নথিভুক্ত করে যা এটি রূপান্তর করে, এবং এখান থেকেই pad স্লটটি আসে। DROID-এর নিজস্ব RLDS স্কিমা ভিন্ন: এর শীর্ষ-স্তরের action হল 6টি জয়েন্ট ভেলোসিটি এবং 1টি গ্রিপার পজিশন-এর একটি 7-ভেক্টর, যেখানে 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, তাই এমনকি ওরিয়েন্টেশন এনকোডিংও ফাইলগুলিতে থাকা রোল-পিচ-ইও থেকে ভিন্ন। IK ধাপে একটি orientation_weight লাগে, যার ডিফল্ট মান 0.01, এবং এর ডকস্ট্রিং বলে যে আন্ডার-অ্যাকচুয়েটেড আর্মগুলিতে শুধুমাত্র পজিশন-ভিত্তিক 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 প্রতি ৫০টি ট্র্যাজেক্টরির জন্য দুটি ক্যামেরা পোজ র্যান্ডমাইজ করেছে, এবং এর প্রজেক্ট পেজে উল্লেখ করা হয়েছে যে বেশিরভাগ ডেটাতেই কেবল স্থির ভিউ থাকে। DROID অ্যাডজাস্টেবল ZED 2 মাউন্ট এবং একটি রিস্ট ZED মিনি ব্যবহার করেছে। আপনার কাছে দুটি USB ওয়েবক্যাম আছে যা হাতে বসানো হয়েছে। ক্যামেরা পোজ একটি বিরক্তিকর ভেরিয়েবল নয় একটি ; এটি ভিজ্যুয়াল এনকোডার যা কিছুর উপর ভিত্তি করে কাজ করে তার অনেকটাই, এবং ফাইল ফরম্যাটে এমন কিছুই নেই যা আপনাকে বলে যে পোজগুলি ভিন্ন।
অংশগুলি চালানোর জন্য যথেষ্ট ভালোভাবে একত্রিত হয়। ডেটাসেট লোড হয়, প্রশিক্ষণ শুরু হয়, লস কমে, চেকপয়েন্ট দেখা যায়, কোনো ত্রুটি হয় না। তারপর পলিসি বাহুতে চেনা যায় এমন কিছুই করে না এবং আপনি আপনার প্রশিক্ষণ স্ক্রিপ্টে একটি বাগ খুঁজতে একটি দিন ব্যয় করেন। কোনো বাগ নেই: মডেলটি এমন একটি রোবটের জন্য একটি কার্টেসিয়ান অ্যাকশন ডিস্ট্রিবিউশন শিখেছে যা আপনার ঘরে নেই। আপনার হাইপারপ্যারামিটার থেকে নয়, লস কমে, পলিসি কিছুই করে না থেকে শুরু করুন।
যাইহোক ডেটা মার্জ করার চেষ্টা করলে কী হয়
স্পষ্ট পরিকল্পনা হল সংযুক্ত করা: কয়েক হাজার DROID পর্বের সাথে আপনার ৫০টি। LeRobot প্রত্যাখ্যান করে, এবং প্রত্যাখ্যানের কারণ হিসেবে তিনটি ভিন্ন জিনিসের নাম উল্লেখ করে।
- 1সম্পূর্ণ ১.৭ টিবি নয়, ১০০-পর্বের নমুনাটি টানুন
গঠন দেখতে ২ জিবি যথেষ্ট।
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-এর ১৫ এর পরিবর্তে আপনার ৩০ fps নিয়ে অভিযোগ করে। fps ঠিক করলে আপনি robot_type চেক-এ আটকে যাবেন; সেটি ঠিক করলে আপনি বৈশিষ্ট্য চেক-এ আটকে যাবেন, অ্যাকশনের জন্য ৬ এর বিপরীতে ৭। কোনো ক্রমই কাজ করে না, এবং sanity_check_dataset_robot_compatibility এর মাধ্যমে রেকর্ড করার সময় একই গার্ড চলে।
বর্তমান LeRobot মেইন-এ so100_follower এবং so101_follower উভয়ই একটি শেয়ার্ড SOFollowerRobotConfig-এ নিবন্ধিত, তাই একটি বাস্তব রেকর্ডিং থেকে প্রাপ্ত স্ট্রিংটি আপনার প্রত্যাশিত নাও হতে পারে। এটি আপনার নিজের meta/info.json থেকে পড়ুন, এবং যে চেকটি আপনাকে নিষ্ক্রিয় করতে হয়েছিল সেটিকে এমন একটি চেক হিসাবে বিবেচনা করুন যা আপনাকে কিছু বলছিল।
তাহলে আসলে কী স্থানান্তরিত হয়?
ওজন, পর্ব নয়। প্রতিটি আধুনিক সাধারণ নীতি প্রাক-প্রশিক্ষণে এর কিছু অংশ শোষণ করেছে, এবং যখন আপনি একটি প্রকাশিত থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হন, তখন এটি ইতিমধ্যেই সঠিকভাবে করার জন্য প্রয়োজনীয় কম্পিউটেশন ক্ষমতা সম্পন্ন ব্যক্তিদের দ্বারা সমন্বয় করা থাকে। pi0-এর গবেষণাপত্র অনুপাতের বিষয়ে স্পষ্ট: এর প্রাক-প্রশিক্ষণ মিশ্রণের ৯.১ শতাংশ, টাইমস্টেপ হিসাবে গণনা করা হয়, 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-এর উপর একটি প্রিন্টেড জ (jaw) বল, স্ট্রোক এবং ডাইনামিক্সে ভিন্ন।
- শুধুমাত্র স্কেলই এর লেখকদের জন্যও যথেষ্ট ছিল না: বৃহৎ ডেটাসেট ডোমেনগুলিতে RT-1-X শুধুমাত্র সেই ডেটাসেটে প্রশিক্ষিত RT-1-কে হারাতে পারেনি।
- আপনার নিজের কতগুলি পর্বের প্রয়োজন, তার কোনো হ্রাস নেই।
| মডেলের স্তর | স্থানান্তরিত হয়? | কেন |
|---|---|---|
| Vision encoder | হ্যাঁ, দৃঢ়ভাবে | বস্তু এবং দৃশ্যগুলি এমবডিমেন্ট-স্বাধীন |
| Language grounding | হ্যাঁ | নির্দেশাবলী পাঠ্য, জ্যামিতি নয় |
| Cross-modal fusion | বেশিরভাগ ক্ষেত্রে | প্রম্পটে উল্লিখিত বস্তুর প্রতি মনোযোগ দেয় |
| Proprioception encoder | না | ইনপুট ডাইমেনশন এবং জয়েন্ট সিম্যান্টিক্স ভিন্ন |
| Action head | না | আপনি যে 7-D কার্টেসিয়ান স্পেসে নেই, সেটিতে প্রশিক্ষিত |
| Normalisation statistics | না, এবং বিপজ্জনক | বিদেশী পরিসংখ্যান প্রতিটি কমান্ডকে স্থানান্তরিত করে |
এই কারণেই 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 | কোনোটি নেই, শুরু থেকে |
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 | validate_all_metadata দ্বারা অবরুদ্ধ | n/a | কিছুই না, এটি চলে না |
| SmolVLA, 30 থেকে 50টি নিজস্ব এপিসোড | a few GB | 100 মিনিটের রেকর্ডিং | 1 to 3 USD | উচ্চ |
| GR00T N1.7, 50টি নিজস্ব এপিসোড | a few GB | 100 মিনিটের রেকর্ডিং | 4 to 12 USD | উচ্চ |
| প্রথম থেকে ACT, 50টি নিজস্ব এপিসোড | a few GB | 100 মিনিটের রেকর্ডিং | 1 to 3 USD | উচ্চ, 20 ms ইনফারেন্স |
| একটি টেস্ট ফিক্সচার হিসাবে DROID নমুনা | 2 GB | এক বিকেল | one short run | উচ্চ, বৈধতা হিসাবে |
অসামঞ্জস্যতাই মূল বিষয়: যে পথটি সবচেয়ে বেশি ডেটা ধার করে, সেটি সবচেয়ে ব্যয়বহুল এবং আপনার হাত নাড়ানোর সম্ভাবনা সবচেয়ে কম। আপনার নিজের দুই ঘণ্টার কম টেলিঅপারেশন অন্য কারো ফ্রাঙ্কার এক টেরাবাইটকে হারায়। এখনো কোনো হাত নেই? /live কোনো সাইনআপ ছাড়াই একটি ফিজিক্যাল SO-100 স্ট্রিম করে। তারপর আপনার প্রথম নীতি প্রশিক্ষণ দিন, এবং SO-100 এ স্মলভিএলএ নির্দিষ্ট গাইডের জন্য।
2 GB DROID নমুনা ডাউনলোড করুন এবং আপনার পাইপলাইন প্রমাণ করতে এটি ব্যবহার করুন। অন্য 1.7 TB উপেক্ষা করুন। স্থির ক্যামেরা সহ একটি কাজের 50টি পর্ব রেকর্ড করুন। প্রথমে ফাইন-টিউন করুন SmolVLA, কারণ 24 GB কার্ডে সর্বনিম্ন 30টি পর্বে এটি পুনরাবৃত্তি করার জন্য সবচেয়ে সস্তা, তারপর চেষ্টা করুন GR00T N1.7 একই ডেটার উপর। আপনার কাজের উপর তুলনা করুন, কোনো বেঞ্চমার্কের উপর নয়।
আপনার বাহুর সাথে মানানসই ডেটাসেট রেকর্ড করুন
ডেস্কটপ ক্লায়েন্ট একটি টেলিয়প সেশন থেকে সরাসরি LeRobot-ফরম্যাটের ডেটাসেট লেখে: সঠিক বাহু, সঠিক ফ্রেম রেট, সঠিক অ্যাকশন স্পেস। কোনো RLDS রূপান্তর বা রিম্যাপিংয়ের প্রয়োজন নেই।
ডেস্কটপ ক্লায়েন্ট পানআমি কি DROID-এ একটি পলিসি প্রশিক্ষণ দিয়ে আমার SO-100-এ চালাতে পারি?▾
সরাসরি নয়। LeRobot বিল্ডে DROID অ্যাকশনগুলি 15 fps-এ একটি Franka Panda-এর উপর 7-D এন্ড-ইফেক্টর কমান্ড; কাঁচা RLDS-এ এগুলি 6টি জয়েন্ট ভেলোসিটি এবং একটি গ্রিপার পজিশন। একটি SO-100 6টি অ্যাবসোলিউট জয়েন্ট পজিশন নেয়। আপনার একটি ইনভার্স-কিনেমেটিক্স লেয়ারের প্রয়োজন হবে, এবং এমনকি তখনও একটি 5-DoF রিস্ট নির্বিচারে 6-DoF পোজগুলি পুনরুত্পাদন করতে পারে না।
আমি কি DROID বা Bridge এপিসোডগুলি আমার নিজস্ব SO-100 এপিসোডের সাথে মেশাতে পারি?▾
না। validate_all_metadata-এর জন্য অভিন্ন fps, robot_type এবং feature schema প্রয়োজন এবং প্রথম অমিলের ক্ষেত্রে ValueError উত্থাপন করে। তিনটিই ভিন্ন: 30-এর বিপরীতে 15 বা 5 fps, আপনার বাহুর বিপরীতে franka বা widowx, 6-এর বিপরীতে 7-এর অ্যাকশন শেপ। চেক পাস করার জন্য মেটাডেটা পুনরায় লিখলে সেম্যান্টিক্স ঠিক হয় না।
তাহলে কি Open X-Embodiment একটি কম খরচের বাহুর জন্য অকেজো?▾
না, তবে এর মূল্য আপনার কাছে প্রাক-প্রশিক্ষিত ওজন (pretrained weights) এর মাধ্যমে পৌঁছায়, এপিসোডের মাধ্যমে নয়। 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 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: 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