AY-Robots পাবলিক ডেটাসেট ডিরেক্টরি যেখানে SO-100 শ্রেণীর আর্মগুলিতে রেকর্ড করা LeRobot ডেটাসেটগুলি দেখানো হয়েছে
ডেটাসেটOpen X-EmbodimentDROIDSO-100LeRobot

SO-100-এ DROID, BridgeData V2 এবং Open X ব্যবহার করা

AY-Robots ResearchAugust 23, 202618 মিনিট পড়া

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 আর্মের সাথে সংঘর্ষে লিপ্ত হয়, এবং এর পরিবর্তে কী করতে হবে। নীচের প্রতিটি সংখ্যা সংশ্লিষ্ট পেপার, ডেটাসেট কার্ড বা সোর্স ফাইল থেকে নেওয়া হয়েছে।

তিনটি ডেটাসেটে আসলে কী রয়েছে

DROIDBridgeData V2Open X-Embodiment
রোবটFranka Panda, 7 DoF, Robotiq 2F-85WidowX 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 Hz5 Hzপরিবর্তনশীল, 3 fps বা তার বেশি
ক্যামেরা2 x ZED 2 এক্সটেরিয়র, 1 x ZED Mini রিস্ট4টি পর্যন্ত, বেশিরভাগ এপিসোডে শুধুমাত্র স্থিরটিল্যাব যা ব্যবহার করেছে
কাঁচা ডাউনলোড1.7 TB RLDS, 8.7 TB কাঁচা স্টেরিওJPEG আর্কাইভপ্রতি-ডেটাসেট TFDS বাকেট
এন্ট্রি পয়েন্ট হল LeRobot রূপান্তর, আসল বাকেট নয়

খুব কম লোকই এখনও 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 এন্ড-ইফেক্টর অ্যাকশনে রূপান্তরিত করেন, কিন্তু ডেটাসেট জুড়ে কোঅর্ডিনেট ফ্রেমগুলি সারিবদ্ধ করেন না, এবং প্রতিটি রোবটের মূল নিয়ন্ত্রণ স্কিম অনুসারে অ্যাকশন মানগুলিকে পরম বা আপেক্ষিক অবস্থান বা বেগ হতে দেন। তাদের উপসংহার: একই অ্যাকশন ভেক্টর বিভিন্ন রোবটের জন্য খুব ভিন্ন গতি তৈরি করতে পারে।

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 চেকপয়েন্ট কোনো শর্টকাট নয়। 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 এবং BridgeLeRobot-এ SO-100
অ্যাকশন ভেক্টর7-D: x, y, z, roll, pitch, yaw, gripper6-D: প্রতি মোটরের জন্য একটি লক্ষ্য অবস্থান
স্টেট ভেক্টর8-D, একটি প্যাড স্লট সহ (google_robot একটি কোয়াটারনিয়ন ব্যবহার করে)6-D, প্রতি মোটরের জন্য একটি
ফ্রেমকার্টেসিয়ান, ডেটাসেট জুড়ে অসংলগ্নজয়েন্ট স্পেস, প্রতি-আর্ম ক্যালিব্রেশন
পরম বা আপেক্ষিকযেকোনো একটি, উৎস ল্যাব দ্বারা নির্ধারিতপরম লক্ষ্য অবস্থান
এককপ্রতি ডেটাসেট অনুযায়ী স্বাভাবিককৃত, তারপর বিচ্ছিন্নকৃতডিফল্টরূপে ডিগ্রি (use_degrees=True), অন্যথায় -100 থেকে 100
নীরব ব্যর্থতাএকটি ডেল্টা পরম হিসাবে পঠিতএকটি অ-ক্যালিব্রেটেড আর্ম
7-মাত্রিক কার্টেসিয়ান ভেক্টরটি কনভার্টারের প্রথা, DROID-এর নয়

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. 1
    সম্পূর্ণ ১.৭ টিবি নয়, ১০০-পর্বের নমুনাটি টানুন

    গঠন দেখতে ২ জিবি যথেষ্ট।

    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-এর ১৫ এর পরিবর্তে আপনার ৩০ fps নিয়ে অভিযোগ করে। fps ঠিক করলে আপনি robot_type চেক-এ আটকে যাবেন; সেটি ঠিক করলে আপনি বৈশিষ্ট্য চেক-এ আটকে যাবেন, অ্যাকশনের জন্য ৬ এর বিপরীতে ৭। কোনো ক্রমই কাজ করে না, এবং sanity_check_dataset_robot_compatibility এর মাধ্যমে রেকর্ড করার সময় একই গার্ড চলে।

চেক এড়াতে robot_type হার্ডকোড করবেন না

বর্তমান LeRobot মেইন-এ so100_follower এবং so101_follower উভয়ই একটি শেয়ার্ড SOFollowerRobotConfig-এ নিবন্ধিত, তাই একটি বাস্তব রেকর্ডিং থেকে প্রাপ্ত স্ট্রিংটি আপনার প্রত্যাশিত নাও হতে পারে। এটি আপনার নিজের meta/info.json থেকে পড়ুন, এবং যে চেকটি আপনাকে নিষ্ক্রিয় করতে হয়েছিল সেটিকে এমন একটি চেক হিসাবে বিবেচনা করুন যা আপনাকে কিছু বলছিল।

তাহলে আসলে কী স্থানান্তরিত হয়?

ওজন, পর্ব নয়। প্রতিটি আধুনিক সাধারণ নীতি প্রাক-প্রশিক্ষণে এর কিছু অংশ শোষণ করেছে, এবং যখন আপনি একটি প্রকাশিত থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হন, তখন এটি ইতিমধ্যেই সঠিকভাবে করার জন্য প্রয়োজনীয় কম্পিউটেশন ক্ষমতা সম্পন্ন ব্যক্তিদের দ্বারা সমন্বয় করা থাকে। pi0-এর গবেষণাপত্র অনুপাতের বিষয়ে স্পষ্ট: এর প্রাক-প্রশিক্ষণ মিশ্রণের ৯.১ শতাংশ, টাইমস্টেপ হিসাবে গণনা করা হয়, 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-এর উপর একটি প্রিন্টেড জ (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-tuning50LeRobot v2.0 or v2.1A100 or H100 80 GB152 ms per stepnvidia/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 backbone50LeRobot 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: আপনার নিজের, ইচ্ছাকৃতভাবে রেকর্ড করুন

ত্রিশ থেকে পঞ্চাশ ৭৬,০০০ এর পাশে ছোট মনে হতে পারে যতক্ষণ না আপনি মনে রাখবেন যে আপনার বাহু, আপনার ক্যামেরা এবং আপনার টেবিলের সাথে আপনারগুলোই একমাত্র। LeRobot-এর ডিফল্ট সেটিংসে, ৫০টি এপিসোড হল ১০০ মিনিটের ওয়াল ক্লক। দেখুন , এবং .

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 মার্জ করা হয়েছেbothvalidate_all_metadata দ্বারা অবরুদ্ধn/aকিছুই না, এটি চলে না
SmolVLA, 30 থেকে 50টি নিজস্ব এপিসোডa few GB100 মিনিটের রেকর্ডিং1 to 3 USDউচ্চ
GR00T N1.7, 50টি নিজস্ব এপিসোডa few GB100 মিনিটের রেকর্ডিং4 to 12 USDউচ্চ
প্রথম থেকে ACT, 50টি নিজস্ব এপিসোডa few GB100 মিনিটের রেকর্ডিং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

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started