
SO-100 bilan foydalanish mumkin bo'lgan LeRobot ma'lumotlar to'plamini yozib oling: kalibrlash, yetakchi-ergashuvchi teleoperatsiya, haqiqiy lerobot-record flaglari va standart sozlamalari, kamera sozlamalari, epizodlar soni va ishni buzadigan nuqsonlar.
Bir SO-100 kuzatuvchi, xuddi shu dizayndagi yetakchi qo'l va ikkita USB kamera bir tushdan keyin siyosatni nozik sozlashlari mumkin. Xuddi shu stend fayl brauzerida sog'lom ko'rinadigan oltmish epizodni osongina yaratishi va olti soatlik GPU ishini behuda sarflashi mumkin. Farq kamdan-kam hollarda modelda bo'ladi; bu servo va parquet fayli o'rtasida sodir bo'lgan narsadir.
Bu yerda avval qo'lda bajariladigan yo'l, keyin esa qisqaroq yo'l ko'rsatilgan. Har bir buyruq 2026-yil 3-avgustda chiqarilgan va PyPI'da mavjud bo'lgan lerobot 0.6.1'dan olingan. U konsol kirish nuqtalariga o'tdi, shuning uchun python lerobot/scripts/control_robot.py ishga tushiradigan qo'llanmalar endi mavjud bo'lmagan faylni tasvirlaydi.
Qisqa versiya
- •lerobot 0.6.1 records v3.0; GR00T N1.7 and N1.5 want v2.1. Yozishni boshlashdan oldin formatni aniqlang.
- •To'rtta buyruq: lerobot-find-port, lerobot-setup-motors, lerobot-calibrate, lerobot-record. Kalibrlashdan olingan bir xil --robot.id va --teleop.id'ni yozish sessiyasiga olib o'ting.
- •Haqiqiy standartlar: 30 fps, 60 s per episode, 60 s reset, 50 episodes, about 100 minutes of wall clock.
- •Bu yerda minimal epizodlar: 30 for SmolVLA, 50 for the rest.
- •Xilma-xillik hajmga qaraganda muhimroq. Ma'lumotlar to'plamlari to'rtta narsa tufayli ishdan chiqadi: almashtirilgan kamera indekslari, tushib qolgan yoki muzlatilgan kadrlar, chegarasida to'xtab qolgan bo'g'in, o'qib bo'lmaydigan vazifa satri.
Yozish sessiyasi nimani qamrab oladi
Bir LeRobot maʼlumotlar toʻplami videolar papkasi emas, balki videolari biriktirilgan vaqt boʻyicha indekslangan jadvaldir: har bir boshqaruv-sikl takti buyurilgan harakatni, kuzatuvchi erishgan holatni, har bir kamera uchun bitta kadrni, vaqt tamgʻasini va indekslarni oʻz ichiga olgan bitta qatorni yozadi. Siyosat faqat shu ustunlarni koʻradi. lerobot/svla_so100_pickplace ning sxemasi, uning meta/info.json faylidan oʻqilgan.
| Xususiyat | dtype | Shakl | Nima ekanligi |
|---|---|---|---|
| action | float32 | [6] | yetakchi qoʻldan boʻgʻin nishonlari |
| observation.state | float32 | [6] | kuzatuvchi erishgan boʻgʻin pozitsiyalari |
| observation.images.top | video | [480, 640, 3] | sahna kamerasi, MP4 (bu yerda av1) |
| observation.images.wrist | video | [480, 640, 3] | bilak kamerasi, bir xil tezlikda |
| timestamp | float32 | [1] | epizod boshlanganidan beri soniyalar |
| frame_index, episode_index, index, task_index | int64 | [1] | avtomatik toʻldiriladigan hisob-kitob |
Boʻgʻinlar main_shoulder_pan, main_shoulder_lift, main_elbow_flex, main_wrist_flex, main_wrist_roll va main_gripper: SO-100 ning oltita erkinlik darajasi. Harakat va holat bir xil shaklga ega, chunki yetakchi-kuzatuvchi teleoperatsiyasi nishonni va bir qadam keyin erishilgan pozitsiyani yozib oladi. Bu boʻshliq maʼlumotdir: qoʻl tortishish kuchiga yoki tiqilib qolgan narsaga qarshi kurashgan joy. Bu satrlar oʻsha maʼlumotlar toʻplamiga tegishli. Bugun 0.6.1 versiyasi bilan yozilgan sessiya shoulder_pan.pos dan gripper.pos gacha, avtobusda 1 dan 6 gacha ID larni yozadi: bir xil oltita boʻgʻin, ammo turli kalitlar, bu konfiguratsiya xususiyatni nomi bilan chaqirgan paytda muhimdir.
Bu maʼlumotlar toʻplami 50 ta epizod va 30 kadr/sekund tezlikda 19,631 ta kadrni oʻz ichiga oladi: har bir epizodga taxminan 393 ta kadr yoki 13 soniya. Agar siznikilar oʻrtacha bir daqiqa boʻlsa, siz qiyinroq ish qilyapsiz yoki ikki tomondan ham boʻsh vaqtni yozib olyapsiz.

Ish stolida sizga nimalar kerak bo'ladi
| Element | Tafsilot | Izoh |
|---|---|---|
| Kuzatuvchi qo'l | SO-100, oltita Feetech STS3215 servo | ehtiyot qismlar uchun taxminan 110 dan 150 Yevrogacha |
| Yetakchi qo'l | ikkinchi SO-100, tishli g'ildiraklari olib tashlangan | barcha oltita yetakchi motorning tishli g'ildiraklari yechilgan: faqat enkoder, kamroq ishqalanish |
| Quvvat | materiallar ro'yxatidagi 7.4 V STS3215 variantiga mos keladi | quyidagi ogohlantirishga qarang |
| Kameralar | ikkita USB kamera, 640x480, 30 kadr/sek | bitta sahna ko'rinishi, bittasi bilakda |
| Xost | Python 3.12 yoki yangiroq, ffmpeg | requires-python >= 3.12 |
| Hub hisobi | Hugging Face write token | --dataset.push_to_hub=false bilan ixtiyoriy |
STS3215 ikki versiyada mavjud: SO-ARM100 README 7.4 V versiyasini 6 V da o'lchangan 16.5 kg.cm tormoz momenti bilan, 12 V versiyasini esa 30 kg.cm bilan baholaydi va 12 V motorlarni olish 5 V quvvat manbai o'rniga 12 V 5 A+ quvvat manbaini sotib olishni ham anglatishini ta'kidlaydi. Materiallar ro'yxatida 7.4 V servolar ko'rsatilgan. 7.4 V uchun mo'ljallangan servolarga 12 V quvvat berish ularni ishdan chiqaradi, shuning uchun simlarni ulashdan oldin motor yorlig'ini o'qing. Servo javob bermayapti.
Agar qo'l hali yig'ilmagan bo'lsa, bu alohida kechki ish: quyidagidan boshlang SO-100 bilan ishlashni boshlash, va SO-100 ni sozlash bo'yicha to'liq qo'llanma. Agar siz hali hech narsa sotib olmagan bo'lsangiz, avval SO-100 va SO-101 taqqoslash ni o'qing: SO-101 yaxshilangan simlar va tishli g'ildirakni olib tashlash bosqichisiz yangi versiya bo'lib, yozib olish jarayoni bir xil.
lerobot 0.6.1 ni o'rnating
conda create -y -n lerobot python=3.12
conda activate lerobot
# TorchCodec is the default video decoder and needs ffmpeg
conda install ffmpeg -c conda-forge
# core_scripts = dataset + hardware + viz extras (record, replay, calibrate)
# feetech = SDK for the STS3215 bus servos in the SO-100
pip install 'lerobot[core_scripts,feetech]'
lerobot-infoQo'shimcha funksiyalar ko'pchilikni chalkashtiradi. pip install lerobot faqat asosiy ML bog'liqliklarini o'rnatadi, robot bilan aloqa qiladigan hech narsani emas. Koch qo'llari uchun dynamixel o'rniga feetech kerak. Agar sizning shell'ingiz lerobot-record haqida hech qachon eshitmagan bo'lsa, sababi shunda.
Portlar, motor IDlari va kalibrlash
Qismlar va ishlaydigan teleop sikli o'rtasida uchta bir martalik qadam mavjud. sizning qo'lingizda o'qitilgan siyosatni boshqa birovning qo'lida ishlatishga imkon beradi, xom enkoder hisoblarini umumiy bo'g'in konventsiyasiga moslashtiradi.
- 1Har bir qo'lning USB portini toping
Ikkala qo'l ham ulangan holda ishga tushiring, so'ralganda aniqlayotganingizni uzing va qaysi port yo'qolganini qayd eting. Linuxda sizga
sudo chmod 666 /dev/ttyACM0kerak bo'lishi mumkin.bashlerobot-find-port # Finding all available ports for the MotorsBus. # Ports before disconnecting: ['/dev/ttyACM0', '/dev/ttyACM1'] # Remove the USB cable from your MotorsBus and press Enter when done. # The port of this MotorsBus is '/dev/ttyACM1' # Reconnect the USB cable. - 2Motor IDlari va uzatish tezligini yozing
IDlar birma-bir motorga yoziladi va hujjatlarda qanday qilib yozish kerakligi qat'iy ko'rsatilgan: boshqa motorlarga ketma-ket ulanmagan holda, boshqaruv platasiga faqat bitta motorni ulang. Skript zanjirni orqaga qarab yuradi, avval tutqich uchun so'rov beradi va unga 6-IDni beradi, keyin bilak aylanishi uchun 5-IDni, yelka panasi uchun esa 1-IDni beradi. Buni yig'ishdan oldin bajaring.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 3Ikkala qo'lni ham kalibrlang
Har bir bo'g'inni o'z diapazonining o'rtasiga o'tkazing, Enter tugmasini bosing, so'ngra har birini to'liq diapazoni bo'ylab harakatlantiring.
idprofil fayl nomiga aylanadi.bashlerobot-calibrate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_so100_follower lerobot-calibrate \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_so100_leader - 4Hech narsa yozib olishdan oldin teleoperatsiya qiling
Yuqoridagi barcha narsalar uchun qabul sinovi. Agar teleoperatsiya sakrab-sakrab ishlasa, aks ettirilgan bo'lsa yoki bitta bo'g'in ergashmasa, yozib olish buni 50 epizodda saqlab qoladi.
bashlerobot-teleoperate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_so100_follower \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_so100_leader \ --display_data=true
Profillar $HF_LEROBOT_CALIBRATION ga, sukut bo'yicha ~/.cache/huggingface/lerobot/calibration ga joylashadi va ID qidiruv kalitidir. lerobot-record ga kalibrlangan IDni bersangiz, u profilni qayta ishlatish uchun Enter tugmasini yoki uni qayta bajarish uchun c tugmasini taklif qiladi. Agar noma'lum ID bersangiz va fayl bo'lmasa, u sessiya o'rtasida kalibrlashga o'tadi.
Kameralar siyosat nimani ko'rishini hal qiladi
lerobot-find-cameras opencv # or: lerobot-find-cameras realsense
# --- Detected Cameras ---
# Camera #0:
# Name: OpenCV Camera @ 0
# Type: OpenCV
# Id: 0
# Backend api: AVFOUNDATION
# Default stream profile:
# Format: 16.0
# Width: 1920
# Height: 1080
# Fps: 15.0Ikki ko'rinish va ularning joylashuvi muhim: ish maydonini qoplaydigan statsionar sahna kamerasi va oxirgi aktuator ushlagich nimaga tegmoqchi ekanligini ko'rsatuvchi bilak kamerasi. LeRobot hamjamiyat-ma'lumotlar to'plamlari ro'yxati afzalroq 480x640 / 720p yoki undan yaxshiroq ikki ko'rinishni, statik fonni, neytral barqaror yoritishni hamda yetakchi qo'l va inson a'zolarining kadrda bo'lmasligini talab qiladi. Yozib olish qo'llanmasi shunday qoidani qo'shadi: siz vazifani faqat kamera tasvirlariga qarab o'zingiz bajarishingiz kerak.
OpenCV indekslari sanash tartibidan kelib chiqadi, shuning uchun qayta yuklash yoki qayta ulash indeks 0 va 2 ni o'rin almashtirishiga va bilak ko'rinishini butun sessiya davomida yuqori o'ringa qo'yishiga olib kelishi mumkin. lerobotning o'zi shunday deydi: uning kamera klassi qurilma yo'lini ham, butun sonni ham qabul qiladi va indekslar qayta yuklashlar yoki port o'zgarishlari, ayniqsa Linuxda beqaror ekanligidan ogohlantiradi. index_or_path ni /dev/v4l/by-id/ ostidagi udev symlinkiga yo'naltiring, bu sanash tartibi o'rniga qurilmaga amal qiladi. Bu ma'lumotlar to'plamining ichki nomuvofiq bo'lib qolishining eng keng tarqalgan usuli bo'lib, o'qitish uni tuzata olmaydi. Kamera aniqlanmadi.
Yozish buyrug'i va har bir flag
HF_USER=$(NO_COLOR=1 hf auth whoami | awk -F': *' 'NR==1 {print $2}')
lerobot-record \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_so100_follower \
--robot.cameras="{ top: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}" \
--teleop.type=so100_leader \
--teleop.port=/dev/ttyACM1 \
--teleop.id=my_so100_leader \
--display_data=true \
--dataset.repo_id=${HF_USER}/so100_pick_cube \
--dataset.single_task="Pick the red cube and drop it in the box" \
--dataset.num_episodes=50 \
--dataset.fps=30 \
--dataset.episode_time_s=25 \
--dataset.reset_time_s=10 \
--dataset.streaming_encoding=true \
--dataset.encoder_threads=2Quyidagi standart qiymatlar src/lerobot/configs/dataset.py asosiy qismdan olingan, qo'llanmadan emas. Ba'zilari odamlar taxmin qilganidek emas.
| Flag | Default | What it does |
|---|---|---|
| --dataset.repo_id | bo'sh | nom; standart bo'yicha vaqt belgisi qo'shiladi |
| --dataset.single_task | bo'sh | har bir epizod bilan saqlanadigan vazifa qatori |
| --dataset.root | $HF_LEROBOT_HOME/repo_id | yozish yo'li, standart ~/.cache/huggingface/lerobot/ |
| --dataset.fps | 30 | boshqaruv sikli tezligi va ma'lumotlar to'plami kadr tezligi |
| --dataset.episode_time_s | 60 | epizod avtomatik ravishda davom etishidan oldingi soniyalar |
| --dataset.reset_time_s | 60 | sahna qayta tiklanishi; qo'l harakatlanadi, hech narsa saqlanmaydi |
| --dataset.num_episodes | 50 | ushbu sessiyada yozilgan epizodlar |
| --dataset.push_to_hub | true | sessiya oxirida yuklash; false mahalliy qoladi |
| --dataset.streaming_encoding | dataclass'da false, hujjatlar jadvalida true | yozib olish paytida kodlash; uni aniq belgilang |
| --dataset.encoder_queue_maxsize | 30 | har bir kamera uchun buferlangan kadrlar, 30 kadr/s tezlikda ~1 s |
| --dataset.encoder_threads | null (kodek hal qiladi) | har bir kodlovchi uchun ish zarrachalari; agar yozib olish uzilib qolsa, kamaytiring |
| --dataset.no_stamp | false | repo_id'ni yozilganidek saqlang |
| --resume | false | mavjud ma'lumotlar to'plamiga qo'shish; --dataset.root talab qiladi |
Siz kiritgan nomdagi ma'lumotlar to'plami mavjud emas. lerobot sana-vaqt tegini qo'shadi, shuning uchun so100_pick_cube so100_pick_cube_20260823_141530 bo'ladi. Barqaror nom uchun --dataset.no_stamp=true dan foydalaning. Davom ettirish umumiy sonni emas, balki qo'shimchalarni hisoblaydi. --resume=true bilan --dataset.num_episodes qo'shimcha epizodlarni hisoblaydi va --dataset.root majburiy bo'ladi. 30 epizodli ma'lumotlar to'plamida 50 ta so'rasangiz, 80 ta olasiz.
Sessiya davomida klaviatura orqali boshqarish
- O'ng strelka yoki
n: epizodni tugatish yoki bosqichni muddatidan oldin qayta o'rnatish. Bu siz eng ko'p ishlatadigan tugma, chunki toza ushlash kamdan-kam hollarda 25 soniyani talab qiladi. - Chap strelka yoki
r: epizodni bekor qilish va uni qayta bajarish. Yomon urinish hozir hech narsa turmaydi, keyin esa ko'p narsa turadi. - Escape yoki
q: sessiyani to'xtatish, kodlashni yakunlash, yuklash. - Bular X11, Wayland va headless SSH da ishlaydi: global kalit backendisiz, lerobot-record boshqaruvchi terminaldan bir xil kalitlarni o'qiydi. Harflar sekin ishlaydigan SSH ulanishlarida ham saqlanib qoladi, bu yerda strelka ketma-ketliklari bo'linadi.
- Klaviatura teleoperatsiyasi boshqacha va global backendni talab qiladi: X11, Windows yoki Accessibility bilan macOS.
Qancha epizodlar va yaxshi epizod qanday ko'rinishga ega
Yozish bo'yicha qo'llanma birinchi vazifa uchun kamida 50 ta epizod, har bir obyekt joylashuvi uchun taxminan 10 tadan taklif qiladi. siyosat sahifalari har bir model uchun minimal miqdorni ko'rsatadi, undan kam bo'lsa, ishlatish GPU vaqtiga arzimaydi.
| Siyosat | Minimal epizodlar | Ma'lumotlar to'plami formati | GPU darajasi | Har bir ishlatish narxi |
|---|---|---|---|---|
| SmolVLA | 30 | LeRobot v3.0 | RTX 4090 or any 24 GB card | about 1 to 3 USD |
| ACT | 50 | LeRobot v3.0 | RTX 4090 or any 24 GB card | about 1 to 3 USD |
| GR00T N1.7 | 50 | LeRobot v2.0 or v2.1 | A100 80 GB or H100 80 GB | about 4 to 12 USD |
| GR00T N1.5 | 50 | LeRobot v2.0 or v2.1 | A100 80 GB or H100 80 GB | about 4 to 12 USD |
| Pi0.5 | 50 | LeRobot v3.0 | A100 80 GB or H100 80 GB | about 4 to 12 USD |
Yaxshiroq savol shundaki, nimalardan qancha. Data Scaling Laws in Imitation Learning for Robotic Manipulation (Lin va boshq., 2024) 40 000 dan ortiq namoyishlarni to'pladi va 15 000 dan ortiq real dunyo sinovlarini o'tkazdi. Umumlashtirish muhitlar va obyektlar soni bilan taxminan darajali qonuniy bog'liqlikni ko'rsatdi va har bir muhit yoki obyekt uchun belgilangan chegaradan o'tgach, qo'shimcha namoyishlar minimal ta'sir ko'rsatdi. Bir stendda: obyektni siljiting, yoritishni o'zgartiring, kubni almashtiring, bir xil harakatni takrorlashdan ko'ra.
- Klaviatura yoki geympaddan farqli o'laroq, servo takrorlay oladigan uzluksiz bo'g'in traektoriyalari
- Harakat va holat koordinata konvensiyasini baham ko'radi, shuning uchun siyosat to'g'ridan-to'g'ri boshqara oladigan maqsadni o'rganadi
- 25 soniyalik epizod va 10 soniyalik qayta tiklash taxminan soatiga 100 ta epizodni tashkil qiladi
- Operator ergashuvchining to'xtab qolganini yoki bog'langanini his qiladi, shuning uchun ma'lumotlar kiritilishidan oldin nosozliklar yuzaga chiqadi
- Ikkinchi qo'l qismlar narxini taxminan ikki baravar oshiradi
- Namoyishlar operator odatlarini meros qilib oladi; Mandlekar va boshq. siyosat sifatining namoyish sifatiga juda bog'liqligini aniqladilar
- Yetakchi tsikl tezligida namuna olinadi, shuning uchun pauzalar siyosatni kutishga o'rgatadigan deyarli bir xil qatorlarga aylanadi
- Sessiyalar orasidagi izchillikni hech narsa ta'minlamaydi: 5 sm siljigan kamera yashirin taqsimot o'zgarishidir
Yaxshi epizod zerikarli: takrorlanuvchi boshlangʻich holat, bitta ish bajarilgan, obyekt qutiga tushgach tugatilgan, nazorat roʻyxati tavsiya qilgan 25 dan 50 gacha belgidan iborat vazifa satri. Qizil kubni oling va qutiga tashlang vazifa satri hisoblanadi; task1 nazorat roʻyxati aniq nomlagan anti-namuna hisoblanadi. Noaniq izohlar uning muammolar roʻyxatini boshlab beradi va ular eng muhimi koʻrish-til-harakat modellari uchun ahamiyatli, bu yerda satr model kiritmasi, fayl nomi emas.
Maʼlumotlar toʻplamini jimjit buzadigan nuqsonlar
Hech biri istisno keltirmaydi. Hammasi oʻqitishga oʻtadi, natijada yaxshi koʻrinadigan yoʻqotish egri chizigʻi va hech narsa qilmaydigan robot paydo boʻladi. Sahna sozlanayotganda tekshiring.
| Nuqson | Qanday koʻrinadi | Qayerdan keladi | Qanday aniqlash kerak |
|---|---|---|---|
| Kamera koʻrinishlari almashgan | yuqori kalit ostidagi bilak tasviri | qayta ulashdan keyin indeksni qayta tayinlash | har bir sessiyada lerobot-find-cameras; by-id yoʻllari |
| Muzlatilgan kadrlar | oʻnlab qatorlar uchun bir xil tasvir | kamera tasvir yetkazib berishni toʻxtatadi; sikl oxirgi kadrni takrorlaydi | uni lerobot-dataset-viz da tekshiring |
| Tushib qolgan kadrlar | qatorlar soni fps koʻpaytirilgan soniyalardan kam | navbat toʻlib ketadi, bloklash oʻrniga tashlab yuboradi | logda 'Encoder queue full'; qatorlar va fps koʻpaytirilgan davomiylik |
| Boʻgʻin oʻz chegarasida | bitta boʻgʻin min yoki max da tekis | yetakchining diapazoni ergashuvchining diapazonidan oshib ketadi, yoki yomon oʻrta holat | ds.meta.stats da boʻgʻin boʻyicha min/max; oldindan lerobot-find-joint-limits |
| Tasvir va harakat mos kelmaydi | siyosat oldindan biladi yoki kechikadi | kameralar sikldan farqli fps da | har bir kamerani --dataset.fps da saqlang |
| Oʻlik vaqt | bir xil harakat qatorlarining uzoq davom etishi | operator yozuvchi ishlayotgan holda pauza qildi | ketma-ket bir xil harakat qatorlarining ulushi |
| Yaroqsiz vazifa satri | task1, demo2, test | tez yozish | v3.0 da meta/tasks.parquet (v2.1 da meta/tasks.jsonl edi); lerobot-edit-dataset modify_tasks bilan tuzating |
Kodlovchi har bir kamera uchun cheklangan navbatni saqlaydi, odatda 30 kadr. Agar u ulgura olmasa, kadrlar bloklanish o'rniga tashlab yuboriladi: suratga olish davom etadi va hech narsa ishdan chiqmaydi. Siz Encoder queue full for {camera}, dropped N frame(s) xabarini va epizod oxirida har bir kamera uchun umumiy sonni olasiz. Lerobot chegarasi: taxminan 5 foiz yo'qolgan kadrlar tizimning haddan tashqari yuklanganligini bildiradi, 2 foiz esa kutilgan ishga tushirish yuklamasi hisoblanadi. Tuzatishlar tartibi: --display_data=false, --dataset.encoder_threads ni kamaytirish, vcodec=h264, oqimni o'chirish.
Bir ogohlantirish: oqimli kodlash qo'llanmasining jadvalida standart qiymat True, asosiy dataclass esa streaming_encoding: bool = False deb ko'rsatilgan. Hujjatlar va kod mos kelmaydi, shuning uchun uni aniq belgilang; lerobot bayroq o'chirilgan holda ishga tushganda uni tavsiya qiluvchi maslahatni yozib boradi.
GPU ijaraga olishdan oldin ma'lumotlar to'plamini tekshiring
Hujjatlardagi qabul testi: video davomiyligini CLI xabar bergan epizod davomiyligi bilan solishtiring va qatorlar soni fps ko'paytirilgan davomiylikka teng ekanligini tasdiqlang. Har bir epizod uchun, umumiy son bo'yicha emas.
from lerobot.datasets import LeRobotDataset
ds = LeRobotDataset("your-user/so100_pick_cube_20260823_141530")
print("fps:", ds.fps, "frames:", ds.num_frames)
# In v3.0 the per-episode records live in meta/episodes/ as chunked parquet:
# lengths, tasks and offsets into the shared parquet and mp4 shards.
# They load through the datasets stack, so this is a datasets.Dataset --
# use .column_names and integer indexing, not pandas .columns / .head().
eps = ds.meta.episodes
print(eps.column_names)
print(eps[0])
# Global feature statistics, including per-joint min and max.
# A joint whose min equals its max never moved. A joint sitting at a
# hard limit for most of the run is the one that will stall the policy.
print(ds.meta.stats["observation.state"])Keyin uni ko'rib chiqing. lerobot-dataset-viz Rerun yoki Foxglove'da kamera ko'rinishlari yonida bo'g'in izlari bilan epizodni kadrma-kadr ijro etadi. Almashtirilgan kameralar va muzlatilgan kadrlar o'n soniyada paydo bo'ladi. Odamlar bu qadamni o'tkazib yuborishadi.
# Replay one episode with camera views and joint traces
lerobot-dataset-viz \
--repo-id your-user/so100_pick_cube_20260823_141530 \
--episode-index 0
# Foxglove instead, for a seekable, scrubbable timeline
lerobot-dataset-viz \
--repo-id your-user/so100_pick_cube_20260823_141530 \
--episode-index 0 \
--display-mode foxglove
# Drop the episodes that did not survive review
lerobot-edit-dataset \
--repo_id your-user/so100_pick_cube_20260823_141530 \
--new_repo_id your-user/so100_pick_cube_clean \
--operation.type delete_episodes \
--operation.episode_indices "[3, 17, 41]"
v2.1 yoki v3.0: yozishdan oldin hal qiling
v2.1 har bir epizod uchun bitta parquet va bitta MP4 yozgan. v3.0 ko'plab epizodlarni umumiy shardlarga birlashtiradi va chegaralarni metama'lumotlardan qayta tiklaydi, shuning uchun info.json yo'l shablonlarini quyidagicha olib boradi: data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet epizod raqami o'rniga. Yuqori oqimdagi asoslash kamroq, kattaroq fayllar: tezroq ishga tushirish va keng miqyosda fayl tizimiga kamroq bosim.
| LeRobot v2.1 | LeRobot v3.0 | |
|---|---|---|
| Joylashuv | har bir epizod uchun bitta parquet va bitta MP4 | har bir shard uchun ko'plab epizodlar |
| Epizod metama'lumotlari | JSONL fayllari | meta/episodes/ ostidagi bo'laklarga bo'lingan parquet, ma'lumotlar to'plami staki orqali |
| Hub'dan striming | yo'q | ha, StreamingLeRobotDataset orqali |
| lerobot 0.6.1 tomonidan yozilgan | yo'q | ha, bugun oladigan narsangiz |
| GR00T N1.7 va N1.5 tomonidan o'qiladi | ha | yo'q, pastga o'tkazilishi kerak |
lerobot 0.6.1 v3.0'ni yozadi, lekin GR00T N1.7 va N1.5 v2.0 yoki v2.1'ni o'qiydi va unda ishdan chiqadi. Harakat yo'nalishiga e'tibor bering: src/lerobot/scripts/ saqlaydi convert_dataset_v21_to_v30.py va boshqa yo'nalishda hech narsa yo'q. Mashg'ulotdan oldin buni hal qiling. Tuzatish: ma'lumotlar to'plami v3 sifatida rad etildi.
# Upgrade an older v2.1 dataset to v3.0
python -m lerobot.scripts.convert_dataset_v21_to_v30 \
--repo-id=your-user/so100_pick_cube
# By default it pushes the converted dataset back to the hub and tags it v3.0.
# To convert a local copy and keep it off the hub:
python -m lerobot.scripts.convert_dataset_v21_to_v30 \
--repo-id=your-user/so100_pick_cube \
--root=/path/to/dataset/directory \
--push-to-hub=falseBir xil ma'lumotlar to'plamiga ikki yo'l
Yuqoridagi barchasi, o'z kompyuteringizda: USB sanash, ffmpeg qurilishi, kodlovchini sozlash va kalibrlash fayllari sizga tegishli. Bu quvurni tushunish, g'ayrioddiy kamera moslamasini ishga tushirish yoki ma'lumotlarni mahalliy saqlash uchun to'g'ri yo'l.
Vaqt: har bir qo'lni yig'ish uchun bir oqshom, nozik birinchi kalibrlash va kamera noto'g'ri uyaga joylashtirilgani uchun tashlab yuboriladigan birinchi sessiya.
Ish stoli mijozi LeRobot formatidagi ma'lumotlar to'plamlarini, epizodlarni, kamera oqimlarini va bo'g'in holatlarini to'g'ridan-to'g'ri teleoperatsiya sessiyasidan yozib oladi. Bu ma'lumotlar to'plami o'qitish shaklini to'ldiradi: modelni, ma'lumotlar to'plamini va giperparametrlarini tanlang, va backend modelning VRAM hajmiga mos keladigan GPU ijaraga oladi, o'qituvchini ishga tushiradi va nazorat nuqtalarini ob'ekt saqlash joyiga yozadi.
- 1Mijozni o'rnating
Yuklab olish sahifasida; sozlash mijoz hujjatlarida.
- 2Teleoperatsiya sessiyasidan yozib olish
Qo'lni boshqaring; mijoz epizodlarni LeRobot formatida yozadi. Ko'rsatma: birinchi ma'lumotlar to'plamingizni yozib oling.
- 3Yoki o'z ma'lumotlaringizni olib keling
Ma'lumotlar to'plami Hugging Face repo id'dan yoki o'z kompyuteringizdan ham kelishi mumkin: ma'lumotlar to'plami hujjatlari, ommaviy katalog.
- 4O'qiting va qayta ishga tushiring
O'qitish matritsasida kombinatsiyani tanlang, so'ngra siyosatni qo'lda qayta ishga tushiring. Taxminan 24 GB darajasida 1 dan 3 USD gacha, A100 yoki H100 darajasida 4 dan 12 USD gacha.
U qo'lingizni yig'maydi yoki kalibrlamaydi, va nuqsonli epizodni tuzatmaydi, shuning uchun tekshirish bosqichi hali ham qo'llaniladi. Boshqa tomonda ham qattiq cheklov mavjud: tezkor vazifalar uchun xulosa chiqarish servolar yonida bo'lishi kerak. Boshqaruv tsikli har bir harakat bosqichi uchun 20 dan 485 ms gacha ishlaydi, va ustiga jamoat internetidagi borib-kelishlar ishlaydigan siyosatni ikkilanuvchi siyosatga aylantiradi.
Quvurni o'zingiz ulashmasdan LeRobot ma'lumotlar to'plamlarini yozib oling
AY-Robots ish stoli mijozi teleoperatsiya sessiyasidan epizodlarni, kamera oqimlarini va bo'g'in holatlarini LeRobot formatida yozib oladi, so'ngra ma'lumotlar to'plamini o'qituvchiga topshiradi.
Get the desktop clientMa'lumotlar to'plamidan siyosatga
Ellikta toza epizod har bir imitatsion o'rganish bu yerda ishlaydi. ACT faqat sizning vazifangiz bo'yicha noldan o'qitiladi, taxminan 80 million parametr har bir harakat bosqichiga taxminan 20 ms sarflaydi, tez harakatlanishga qulay bo'lgan beshtadan yagona model. SmolVLA 24 GB kartada taxminan 450 million parametrga ega. GR00T N1.7 taxminan 3 milliard parametrli asosiy model bo'lib, u yerda nozik sozlash taxminan 40 million parametrga tegadi, A100 yoki H100 talab qiladi va o'sha v2.1 ma'lumotlar to'plamini xohlaydi.
Keyingi, sizning kombinatsiyangiz uchun qo'llanma: ACT on SO-100, SmolVLA on SO-100 yoki GR00T N1.7 on SO-100; birinchi ishga tushirish uchun, birinchi siyosatingizni o'qiting qisqaroq. Agar siyosat stolda ishlasa-yu, lekin stolni siljitganingizda ishdan chiqsa, bu ma'lumotlar muammosi: siyosat faqat bitta sozlamada ishlaydi va yuqori sifatli VLA o'qitish ma'lumotlarini yig'ish xilma-xillikni chuqurroq o'rganadi.
Birinchi ishlaydigan siyosat uchun menga qancha epizod kerak?▾
SmolVLA uchun o'ttizta, ACT, Pi0.5, GR00T N1.5 va N1.7 uchun ellikta, AY-Robots o'qituvchilari tomonidan talab qilinadigan minimumlar. LeRobot qo'llanmasi birinchi vazifa uchun kamida 50 ta, har bir obyekt joylashuvi uchun taxminan 10 ta epizodni mustaqil ravishda tavsiya qiladi. Ma'lumotlarni masshtablash bo'yicha ishlar shuni ko'rsatdiki, umumlashtirish namoyishlar soni bilan emas, balki muhitlar va obyektlar bilan masshtablanadi, shuning uchun bitta sahnaning yuzta yozuvi beshta joylashtirish bo'yicha elliktadan yomonroqdir.
Menga yetakchi qo'l kerakmi, yoki klaviatura bilan teleyeratsiya qila olamanmi?▾
lerobot klaviatura va geympad teleyeratorlarini yetkazib beradi, shuning uchun yetakchi qo'l qat'iy talab qilinmaydi, lekin u juda afzaldir: yetakchi-ergashuvchi yozilgan harakatning koordinata konvensiyasida uzluksiz bo'g'in traektoriyalarini beradi, klaviatura kiritish esa siyosat tomonidan silkinish sifatida o'rganiladigan qadamli harakatni hosil qiladi. Klaviatura teleyeratsiyasi global kalit backendini ham talab qiladi, shuning uchun u Wayland va headless tizimlarda ishlamaydi.
Raspberry Pi yoki kichik mini kompyuterda yozib olsam bo'ladimi?▾
Ha, sozlash bilan. Streaming-encoding qo'llanmasida zamonaviy 4 yadroli mashinalar va Raspberry Pi 5 ni qamrab oluvchi kam resursli qism mavjud bo'lib, u ikkita kamerani 640x480 va 30 kadr/sekundda o'zining "biroz sozlashni talab qiladi" ustuniga joylashtiradi. Uning maslahati: --dataset.rgb_encoder.vcodec=h264 va --dataset.streaming_encoding=false orqali kodlovchining suratga olish sikli bilan raqobatlashishini to'xtating. U ikkita 640x480 kamerani sekundiga taxminan 55 million piksel, ikkita 1920x1080 kamerani esa taxminan 373 million piksel deb baholaydi.
Yangi yozib olgan ma'lumotlar to'plamim haqiqatan ham sog'lom ekanligini qanday bilaman?▾
Uchta arzon tekshiruv. Har bir epizodning video davomiyligini CLI xabar bergan davomiylik bilan solishtiring va qatorlar soni umumiy emas, balki har bir epizod uchun kadr/sekund ko'paytirilgan davomiylikka teng ekanligini tasdiqlang; bu lerobotning kodlash qo'llanmasi beradigan qabul qilish testi. ds.meta.stats ni o'qing, u yerda minimal qiymati maksimal qiymatiga teng bo'lgan bo'g'in hech qachon harakatlanmagan. Keyin lerobot-dataset-viz da ikki yoki uchta epizodni qayta ijro eting, bu almashtirilgan ko'rinishlar va muzlatilgan kadrlar paydo bo'lishining yagona yo'li. Tushib qolgan kadrlar bo'yicha qo'llanma taxminan 5 foiz yo'qolgan joyda chegara qo'yadi; taxminan 2 foiz normal vaqtinchalik yuk, ko'pincha shunchaki ishga tushirishdir.
Mening o'qitish ishim ma'lumotlar to'plamini v3.0 deb rad etdi. Endi nima qilishim kerak?▾
GR00T N1.7 va N1.5 LeRobot v2.0 yoki v2.1 ni o'qiydi va lerobot 0.6.1 yozib oladigan v3.0 da ishdan chiqadi. Yoki o'qitishdan oldin formatni hal qiling, yoki v3.0 ni mahalliy ravishda o'qiydigan siyosatdan foydalaning: Pi0.5, SmolVLA yoki ACT. lerobot v2.1 dan v3.0 ga konvertorni yetkazib beradi va teskari yo'nalishda hech narsa yo'q.
Sources
- LeRobot: Haqiqiy dunyo robotlarida taqlidiy o'rganish
- LeRobot: SO-100 yig'ish, motor sozlamalari va kalibrlash
- LeRobot: Kameralar va lerobot-find-cameras
- LeRobot: O'rnatish va qo'shimcha matritsa
- LeRobotDataset v3.0: joylashuv va v2.1 ga migratsiya
- LeRobot: Video oqimini kodlash va tushib qolgan kadrlar
- LeRobot: Katta ma'lumotlar to'plamlarini v3.0 ga ko'chirish (DROID)
- lerobot v0.6.1 relizi, 2026 yil 3 avgust
- DatasetRecordConfig: haqiqiy yozishning standart sozlamalari
- lerobot_record.py: yozish sikli va davom ettirishni boshqarish
- TheRobotStudio/SO-ARM100: qurish repozitoriysi va materiallar ro'yxati
- Hugging Face: LeRobot hamjamiyat ma'lumotlar to'plamlari ro'yxati
- lerobot/svla_so100_pickplace: 50 epizod, 19,631 kadr
- Lin va boshqalar (2024), Taqlidiy o'rganishda ma'lumotlarni masshtablash qonunlari
- Mandlekar va boshqalar (2021), Ofllayn inson namoyishlaridan o'rganishda nima muhim
Sources
- LeRobot: Imitation Learning on Real-World Robots
- LeRobot: SO-100 assembly, motor setup and calibration
- LeRobot: Cameras and lerobot-find-cameras
- LeRobot: Installation and the extras matrix
- LeRobotDataset v3.0: layout and v2.1 migration
- LeRobot: Streaming video encoding and dropped frames
- LeRobot: Porting large datasets to v3.0 (DROID)
- lerobot v0.6.1 release, 3 August 2026
- DatasetRecordConfig: the real recording defaults
- lerobot_record.py: record loop and resume handling
- TheRobotStudio/SO-ARM100: build repo and bill of materials
- Hugging Face: LeRobot Community Datasets checklist
- lerobot/svla_so100_pickplace: 50 episodes, 19,631 frames
- Lin et al. (2024), Data Scaling Laws in Imitation Learning
- Mandlekar et al. (2021), What Matters in Learning from Offline Human Demonstrations
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started