
SO-100 көмегімен пайдалануға жарамды LeRobot деректер жинағын жазыңыз: калибрлеу, жетекші-ілесуші телеоперациясы, нақты lerobot-record жалаушалары мен әдепкі мәндері, камераны орнату, эпизод сандары және іске қосуды бұзатын ақаулар.
Бір SO-100 ізбасары, бірдей дизайнды жетекші қол және екі USB камера бір түстен кейін саясатты реттей алады. Дәл сол стенд файл шолғышында сау көрінетін алпыс эпизодты оңай шығара алады және алты сағаттық GPU жұмысын ысырап етеді. Айырмашылық сирек модельде болады; ол сервоприводтар мен parquet файлы арасында болған нәрседе.
Міне, қолмен орындалатын жол, содан кейін қысқасы. Әрбір пәрмен lerobot 0.6.1 нұсқасынан, 2026 жылдың 3 тамызында шығарылған және PyPI-дегі ағымдағы нұсқасы. Ол консольдік кіру нүктелеріне ауысты, сондықтан python lerobot/scripts/control_robot.py іске қосатын оқулықтар енді жоқ файлды сипаттайды.
Қысқа нұсқасы
- •lerobot 0.6.1 v3.0 жазады; GR00T N1.7 және N1.5 v2.1 қажет етеді. Жазуды бастамас бұрын форматты реттеңіз.
- •Төрт пәрмен: lerobot-find-port, lerobot-setup-motors, lerobot-calibrate, lerobot-record. Калибрлеуден алынған бірдей --robot.id және --teleop.id мәндерін жазу сессиясына қолданыңыз.
- •Нақты әдепкі мәндер: 30 fps, әр эпизодқа 60 с, 60 с қалпына келтіру, 50 эпизод, шамамен 100 минут нақты уақыт.
- •Мұндағы ең аз эпизодтар: SmolVLA үшін 30, қалғандары үшін 50.
- •Әртүрлілік көлемнен артық. Деректер жинақтары төрт нәрседен бұзылады: ауыстырылған камера индекстері, түсірілмеген немесе қатып қалған кадрлар, шегіне жеткен буын, оқылмайтын тапсырма жолы.
Жазу сессиясы не түсіреді
A LeRobot дерекқоры бейнелер қалтасы емес, бейне қоса берілген уақыт бойынша индекстелген кесте: әрбір басқару циклінің тілімі басқарылатын әрекетті, ізбасар жеткен күйді, камераға бір кадрды, уақыт белгісін және индекстерді қамтитын бір жолды жазады. Саясат тек осы бағандарды көреді. lerobot/svla_so100_pickplace схемасы, оның meta/info.json файлынан оқылған.
| Feature | dtype | Shape | What it is |
|---|---|---|---|
| action | float32 | [6] | joint targets from the leader arm |
| observation.state | float32 | [6] | joint positions the follower reached |
| observation.images.top | video | [480, 640, 3] | scene camera, MP4 (av1 here) |
| observation.images.wrist | video | [480, 640, 3] | wrist camera, same rate |
| timestamp | float32 | [1] | seconds since episode start |
| frame_index, episode_index, index, task_index | int64 | [1] | auto-populated bookkeeping |
Буындар main_shoulder_pan, main_shoulder_lift, main_elbow_flex, main_wrist_flex, main_wrist_roll және main_gripper: SO-100-дің алты еркіндік дәрежесі. Әрекет пен күй бір пішінді бөліседі, себебі жетекші-ізбасар телеоперациясы нысананы және бір қадам кейін жеткен позицияны жазады. Бұл айырмашылық ақпарат болып табылады: қолдың тартылыс күшімен немесе кептеліп қалған нысанмен күрескен жері. Бұл жолдар сол дерекқорға тиесілі. Бүгін 0.6.1 нұсқасымен жазылған сессия shoulder_pan.pos-тан gripper.pos-қа дейін, шинадағы 1-ден 6-ға дейінгі идентификаторларды жазады: бірдей алты буын, әртүрлі кілттер, бұл конфигурация функцияны атауы бойынша адрестеген кезде маңызды.
Бұл дерекқорда 30 кадр/сек жылдамдықпен 50 эпизод және 19 631 кадр бар: әр эпизодқа шамамен 393 кадр немесе 13 секунд. Егер сіздікі орташа есеппен бір минут болса, сіз қиынырақ нәрсе істеп жатырсыз немесе екі жағынан да бос уақытты жазып жатырсыз.

Жұмыс үстелінде не қажет
| Элемент | Толық ақпарат | Ескерту |
|---|---|---|
| Ершіл қол | SO-100, алты Feetech STS3215 сервосы | бөлшектерге шамамен 110-150 ЕУРО |
| Жетекші қол | екінші SO-100, берілістері алынған | алты жетекші мотордың барлық берілістері алынған: тек кодтағыш, үйкеліс аз |
| Қуат | материалдар тізіміндегі 7.4 В STS3215 нұсқасына сәйкес | төмендегі ескертуді қараңыз |
| Камералар | екі USB камера, 640x480, 30 кадр/сек | бір көрініс, бірі білекте |
| Хост | Python 3.12 немесе одан жаңа, ffmpeg | requires-python >= 3.12 |
| Хаб аккаунты | Hugging Face write token | optional with --dataset.push_to_hub=false |
STS3215 екі нұсқада шығарылады: SO-ARM100 README 7.4 В нұсқасының 6 В-та өлшенген 16.5 kg.cm тоқтау моментін және 12 В нұсқасының 30 kg.cm екенін көрсетеді, сондай-ақ 12 В моторларды алу 5 В-тық қуат көзінің орнына 12 В 5 А+ қуат көзін сатып алуды білдіретінін ескертеді. Материалдар тізімінде 7.4 В серволар көрсетілген. 7.4 В деп бағаланған серволарға 12 В беру оларды істен шығарады, сондықтан кез келген сымды қоспас бұрын мотор белгісін оқыңыз. Серво жауап бермейді.
Егер қол әлі құрастырылмаған болса, бұл бөлек кеш: бастаңыз SO-100 бастау және SO-100 орнату бойынша толық нұсқаулық. Егер сіз ештеңе сатып алмаған болсаңыз, алдымен оқыңыз SO-100 мен SO-101 салыстыруы алдымен: SO-101 – жақсартылған сымдары бар және берілісті алу қадамы жоқ жаңа нұсқа, ал жазу жұмыс процесі бірдей.
lerobot 0.6.1 орнату
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-infoҚосымшалар адамдарды жиі шатастырады. pip install lerobot тек негізгі ML тәуелділіктерін орнатады, роботпен сөйлесетін ештеңе жоқ. Koch қолдарына dynamixel орнына feetech қажет. Егер сіздің қабықшаңыз lerobot-record туралы ешқашан естімеген болса, міне себебі осы.
Порттар, қозғалтқыш идентификаторлары және калибрлеу
Бөлшектер мен жұмыс істейтін телеоперация циклі арасында үш бір реттік қадам бар. сіздің қолыңызда үйретілген саясатты басқа біреудің қолында іске қосады, шикі энкодер сандарын ортақ буын конвенциясына сәйкестендіреді.
- 1Әр қолдың USB портын табыңыз
Екі қолды да қосып іске қосыңыз, сұралған кезде анықтап жатқан қолды ажыратыңыз және қай порттың жоғалып кеткенін ескеріңіз. Linux жүйесінде сізге
sudo chmod 666 /dev/ttyACM0қажет болуы мүмкін.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. - 2Қозғалтқыш идентификаторлары мен бод жылдамдықтарын жазыңыз
Идентификаторлар бір қозғалтқыштан кейін жазылады, және құжаттама қалай жасау керектігі туралы қатаң: контроллер тақтасына дәл бір қозғалтқышты қосыңыз, әлі басқаларға тізбектелмеген. Скрипт тізбекті кері қарай жүріп, алдымен қысқышты сұрайды және оған 6 идентификаторын береді, содан кейін білек айналымын 5, иық панорамасын 1-ге дейін береді. Мұны құрастыру алдында жасаңыз.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 3Екі қолды да калибрлеңіз
Әрбір буынды диапазонының ортасына жылжытыңыз, Enter пернесін басыңыз, содан кейін әрқайсысын толық диапазоны бойынша жылжытыңыз.
idпрофиль файл атауы болады.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 - 4Ештеңе жазбас бұрын телеоперация жасаңыз
Жоғарыда айтылғандардың барлығына арналған қабылдау сынағы. Егер телеоперация дірілдесе, айналанса немесе бір буын ілеспесе, жазу оны 50 эпизодта сақтайды.
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
Профильдер $HF_LEROBOT_CALIBRATION мекенжайына барады, әдепкі бойынша ~/.cache/huggingface/lerobot/calibration, және идентификатор іздеу кілті болып табылады. lerobot-record-қа калибрленген идентификатор берсеңіз, ол профильді қайта пайдалану үшін Enter немесе қайта жасау үшін c пернесін басуды ұсынады. Оған белгісіз идентификатор берсеңіз, файл болмайды, сондықтан ол сессия ортасында калибрлеуге өтеді.
Камералар саясаттың нені көретінін анықтайды
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.0Екі көрініс және олардың орналасуы маңызды: жұмыс кеңістігін қамтитын тұрақты көрініс камерасы және соңғы эффекті ұстағыштың неге тиетінін көрсететін білек камерасы. LeRobot қауымдастық деректер жинақтарының тізімі 480x640 / 720p немесе одан да жақсы екі көріністі, статикалық фонды, бейтарап тұрақты жарықтандыруды және жетекші қол мен адам аяқ-қолдарын кадрдан тыс қалдыруды сұрайды. Жазу нұсқаулығы мынадай ережені қосады: сіз камера кескіндеріне қарап қана тапсырманы өзіңіз орындай алуыңыз керек.
OpenCV индекстері санау ретінен келеді, сондықтан қайта жүктеу немесе қайта қосу 0 және 2 индекстерін ауыстырып, білек көрінісін бүкіл сессия бойы жоғарғы орынға қоюы мүмкін. lerobot өзі айтқандай: оның камера класы құрылғы жолын да, бүтін санды да қабылдайды және индекстердің қайта жүктеулер немесе порт өзгерістері кезінде, әсіресе Linux-та тұрақсыз екенін ескертеді. `index_or_path` параметрін `/dev/v4l/by-id/` астындағы udev симлинкіне бағыттаңыз, ол санау ретінен гөрі құрылғыны қадағалайды. Бұл деректер жинағының ішкі қайшылыққа ұшырауының ең көп таралған жолы, және оқыту оны жөндеуге қабілетсіз. Камера анықталмады.
Жазу пәрмені және әрбір жалауша
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=2Төмендегі әдепкі мәндер src/lerobot/configs/dataset.py негізгі тармақтағы файлдан алынған, оқулықтан емес. Кейбіреулері адамдар болжағандай емес.
| Жалауша | Әдепкі мән | Не істейді |
|---|---|---|
| --dataset.repo_id | бос | атауы; әдепкі бойынша уақыт белгісі қосылады |
| --dataset.single_task | бос | әр эпизодпен бірге сақталатын тапсырма жолы |
| --dataset.root | $HF_LEROBOT_HOME/repo_id | жазу жолы, әдепкі бойынша ~/.cache/huggingface/lerobot/ |
| --dataset.fps | 30 | басқару циклінің жылдамдығы және деректер жинағының кадр жиілігі |
| --dataset.episode_time_s | 60 | эпизод автоматты түрде алға жылжығанға дейінгі секундтар |
| --dataset.reset_time_s | 60 | көріністі қалпына келтіру; қол қозғалады, ештеңе сақталмайды |
| --dataset.num_episodes | 50 | осы сессияда жазылған эпизодтар |
| --dataset.push_to_hub | true | сессия соңында жүктеу; false жергілікті болып қалады |
| --dataset.streaming_encoding | деректер класында false, құжаттар кестесінде true | түсіру кезінде кодтау; оны нақты орнатыңыз |
| --dataset.encoder_queue_maxsize | 30 | камераға буферленген кадрлар, 30 кадр/сек жылдамдықта ~1 с |
| --dataset.encoder_threads | null (кодек шешеді) | әр кодтағышқа арналған ағындар; түсіру кезінде кедергілер болса, төмендетіңіз |
| --dataset.no_stamp | false | repo_id-ді терілгендей дәл сақтау |
| --resume | false | бар деректер жинағына қосу; --dataset.root қажет |
Сіздің деректер жинағыңыз сіз терген атаумен аталмайды. lerobot деректерге уақыт белгісін қосады, сондықтан so100_pick_cube атауы so100_pick_cube_20260823_141530 болып өзгереді. Тұрақты атау үшін --dataset.no_stamp=true қолданыңыз. Жалғастыру жалпы санды емес, қосымшаларды санайды. --resume=true қолданғанда, --dataset.num_episodes қосымша эпизодтарды санайды және --dataset.root міндетті болады. 30 эпизодтық деректер жинағына 50 сұрасаңыз, 80 аласыз.
Сеанс кезіндегі пернетақтамен басқару
- Оң жақ бағыттау немесе
n: эпизодты аяқтау немесе фазаны ерте қалпына келтіру. Сіз ең көп қолданатын перне, себебі таза ұстау сирек 25 секундты қажет етеді. - Сол жақ бағыттау немесе
r: эпизодты жою және қайта жасау. Сәтсіз әрекет қазір ештеңеге тұрмайды, бірақ кейін көп шығын әкелуі мүмкін. - Escape немесе
q: сеансты тоқтату, кодтауды аяқтау, жүктеу. - Бұлар X11, Wayland және headless SSH жүйелерінде жұмыс істейді: жаһандық пернелік бэкэнд болмаған кезде, lerobot-record басқару терминалынан бірдей пернелерді оқиды. Әріптер баяу SSH байланыстарында да жұмыс істейді, мұнда бағыттау тізбектері бөлініп қалуы мүмкін.
- Пернетақтамен телеоперация басқаша және жаһандық бэкэндті қажет етеді: X11, Windows немесе Accessibility қосылған macOS.
Қанша эпизод және жақсы эпизод қандай болады
Жазу нұсқаулығы бірінші тапсырма үшін кем дегенде 50 эпизодты, әр нысан орналасқан жеріне шамамен 10 эпизодты ұсынады. саясат беттері әр модельге ең аз мөлшерді көрсетеді, одан төмен іске қосу GPU уақытына тұрмайды.
| Саясат | Мин. эпизодтар | Деректер жинағының форматы | GPU деңгейі | Әр іске қосу құны |
|---|---|---|---|---|
| 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 |
Жақсырақ сұрақ – ненің қаншасы. Data Scaling Laws in Imitation Learning for Robotic Manipulation (Lin et al., 2024) 40 000-нан астам демонстрация жинап, 15 000-нан астам нақты әлемдік іске қосуды жүргізді. Жалпылау санымен шамамен дәрежелік заңдылық байланысын көрсетті орталар мен нысандар, және әр орта немесе нысан үшін белгілі бір шектен асқанда, қосымша демонстрациялардың әсері өте аз болды. Бір стендте: нысанды жылжытыңыз, жарықтандыруды өзгертіңіз, текшені ауыстырыңыз, бір рет қайталаудың орнына.
- Серво пернетақта немесе геймпадтан айырмашылығы, үздіксіз буын траекторияларын қайталай алады
- Әрекет пен күй координаттық келісімді бөліседі, сондықтан саясат тікелей басқара алатын нысанды үйренеді
- 25 секундтық эпизод пен 10 секундтық қалпына келтіру сағатына шамамен 100 эпизодты құрайды
- Оператор ізбасардың тоқтап қалуын немесе кептелуін сезеді, сондықтан деректер бекітілгенге дейін ақаулар анықталады
- Екінші қол бөлшектер құнын шамамен екі есе арттырады
- Демонстрациялар оператор әдеттерін мұра етеді; Mandlekar және т.б. саясат сапасы демонстрация сапасына қатты байланысты екенін анықтады
- Лидер цикл жылдамдығымен іріктеледі, сондықтан кідірістер саясатты күтуге үйрететін дерлік бірдей қатарларға айналады
- Сессиялар арасындағы үйлесімділікті ешнәрсе қамтамасыз етпейді: 5 см жылжытылған камера жасырын таралу ауысуы болып табылады
Жақсы эпизод қызықсыз: қайталанатын бастапқы қалып, бір іс орындалған, нысан қоқыс жәшігінде болғаннан кейін аяқталған, тапсырма жолы тізімдеме ұсынған 25-тен 50-ге дейінгі таңбада. Қызыл текшені алып, қорапқа салыңыз - тапсырма жолы; task1 - тізімдеме нақты атаған анти-үлгі. Түсініксіз аннотациялар оның мәселелер тізімін бастайды және олар ең маңыздысы көру-тіл-әрекет модельдері, мұнда жол файл атауы емес, модель кірісі болып табылады.
Деректер жинағын білдірмей бұзатын ақаулар
Ешқайсысы ерекше жағдай тудырмайды. Барлығы оқытуға дейін сақталып, жақсы көрінетін шығын қисығы және ештеңе істемейтін робот ретінде көрінеді. Көрініс орнатылған кезде тексеріңіз.
| Ақау | Қалай көрінеді | Қайдан пайда болады | Қалай анықтауға болады |
|---|---|---|---|
| Ауыстырылған камера көріністері | жоғарғы кілт астындағы білек кескіні | қайта қосылғаннан кейінгі индексті қайта тағайындау | lerobot-find-cameras each session; by-id paths |
| Қатып қалған кадрлар | ондаған жол үшін бірдей кескін | камера жеткізуді тоқтатады; цикл соңғы кадрды қайталайды | scrub it in lerobot-dataset-viz |
| Түсірілген кадрлар | жол саны кадр/сек уақыт секундтан төмен | кезек толып кетеді, блоктардың орнына түсіріледі | 'Encoder queue full' in the log; rows vs fps times duration |
| Буын шегінде | бір буын ең аз немесе ең көп мәнде тегіс | жетекшінің диапазоны ізбасардың диапазонынан асады немесе ортаңғы қалып дұрыс емес | per-joint min/max in ds.meta.stats; lerobot-find-joint-limits beforehand |
| Кескін мен әрекет сәйкес келмейді | саясат алдын алады немесе артта қалады | камералар циклден басқа кадр/сек-те | keep every camera at --dataset.fps |
| Өлі уақыт | бірдей әрекет жолдарының ұзақ сериялары | оператор жазу құрылғысы қосулы кезде кідірді | share of consecutive identical action rows |
| Жарамсыз тапсырма жолы | task1, demo2, test | жылдам теру | meta/tasks.parquet in v3.0 (it was meta/tasks.jsonl in v2.1); fix with lerobot-edit-dataset modify_tasks |
Кодер әр камераға шектеулі кезек ұстайды, әдепкі бойынша 30 кадр. Ол үлгермеген кезде, кадрлар бұғатталмай, тасталады: түсіру жалғасады және ештеңе істен шықпайды. Сіз Encoder queue full for {camera}, dropped N frame(s) хабарламасын және эпизод соңында камера бойынша жалпы санын аласыз. lerobot шегі: шамамен 5 пайыз жетіспеушілік жүйенің шамадан тыс жүктелгенін білдіреді, 2 пайыз іске қосу кезіндегі күтілетін жүктеме. Түзетулер ретімен: --display_data=false, --dataset.encoder_threads төмендету, vcodec=h264, ағынды өшіру.
Бір ескерту: ағындық-кодтау нұсқаулығының кестесі әдепкі мәнді True, ал негізгі деректер класы streaming_encoding: bool = False. Құжаттама мен код сәйкес келмейді, сондықтан оны нақты орнатыңыз; lerobot жалауша өшірулі күйде іске қосылған кезде оны ұсынатын кеңес береді.
GPU жалға алмас бұрын деректер жинағын тексеріңіз
Құжаттамадағы қабылдау сынағы: бейне ұзақтығын CLI хабарлаған эпизод ұзақтығымен салыстырыңыз және жолдар санының кадр жиілігі мен ұзақтығына тең екенін растаңыз. Жалпы емес, әр эпизод бойынша.
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"])Содан кейін оған қараңыз. lerobot-dataset-viz Rerun немесе Foxglove бағдарламаларында камера көріністерінің жанындағы буын іздерімен эпизодты кадр бойынша ойнатады. Аударылған камералар мен қатып қалған кадрлар он секунд ішінде пайда болады. Адамдар бұл қадамды өткізіп жібереді.
# 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 немесе v3.0: жазбас бұрын шешім қабылдаңыз
v2.1 әр эпизодқа бір parquet және бір MP4 жазды. v3.0 көптеген эпизодтарды ортақ бөліктерге біріктіреді және метадеректерден шекараларды қайта құрады, сондықтан info.json келесідей жол үлгілерін қамтиды: data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet эпизод нөмірінің орнына. Жоғарыдағы негіздеме – аз, үлкенірек файлдар: жылдамырақ инициализация және ауқымды жүйеде файлдық жүйеге аз қысым.
| LeRobot v2.1 | LeRobot v3.0 | |
|---|---|---|
| Орналасу | one parquet and one MP4 per episode | many episodes per shard |
| Эпизод метадеректері | JSONL files | chunked parquet under meta/episodes/, via the datasets stack |
| Хабтан ағынмен жіберу | no | yes, via StreamingLeRobotDataset |
| lerobot 0.6.1 арқылы жазылған | no | yes, what you get today |
| GR00T N1.7 және N1.5 арқылы оқылады | yes | no, must be converted down |
lerobot 0.6.1 v3.0 жазады, бірақ GR00T N1.7 және N1.5 v2.0 немесе v2.1 оқиды және оған қате жібереді. Қозғалыс бағытына назар аударыңыз: src/lerobot/scripts/ ішінде convert_dataset_v21_to_v30.py бар, бірақ кері бағытта ештеңе жоқ. Сессия алдында мұны шешіңіз. Түзету: v3 ретінде қабылданбаған деректер жинағы.
# 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=falseБір деректер жинағына екі жол
Жоғарыда айтылғандардың барлығын өз машинаңызда: USB тізімін, ffmpeg құрастыруды, кодтағышты реттеуді және калибрлеу файлдарын өзіңіз басқарасыз. Бұл құбырды түсінуге, ерекше камера қондырғысын іске қосуға немесе деректерді жергілікті жерде сақтауға арналған дұрыс жол.
Уақыт: әр қолды құрастыруға бір кеш, бірінші калибрлеу қиындықпен өтеді және камера дұрыс ұяшықта болмағандықтан бірінші сессияны лақтырып тастайсыз.
Жұмыс үстелі клиенті LeRobot форматындағы деректер жинақтарын, эпизодтарды, камера ағындарын және буын күйлерін тікелей телеоперация сессиясынан жазады. Бұл деректер жинағы оқыту формасын толтырады: модельді, деректер жинағын және гиперпараметрлерді таңдаңыз, ал бэкэнд модельдің VRAM өлшеміне сәйкес GPU жалға алады, оқытушыны іске қосады және бақылау нүктелерін объектілік сақтау қоймасына жазады.
- 1Клиентті орнату
жүктеу бетінде; клиент құжаттамасында орнату.
- 2Телеоперация сессиясынан жазу
Қолды басқарыңыз; клиент эпизодтарды LeRobot форматында жазады. Нұсқаулық: алғашқы деректер жинағыңызды жазыңыз.
- 3Немесе өз деректеріңізді әкеліңіз
Деректер жинағы Hugging Face репозиторий идентификаторынан немесе өз машинаңыздан да келуі мүмкін: деректер жинағы құжаттамасы, жалпыға ортақ каталог.
- 4Оқытып, қайта іске қосу
оқыту матрицасынан комбинацияны таңдаңыз, содан кейін саясатты қолға қайта іске қосыңыз. Шамамен 24 ГБ деңгейінде 1-ден 3 USD, A100 немесе H100 деңгейінде 4-тен 12 USD.
Ол сіздің қолыңызды құрастырмайды немесе калибрлемейді, сондай-ақ ақаулы эпизодты жөндемейді, сондықтан тексеру қадамы әлі де қолданылады. Басқа жағында да қатаң шектеу бар: жылдам тапсырмалар үшін қорытынды сервомоторлардың жанында болуы керек. Басқару циклі әрекет қадамына 20-дан 485 мс дейін жұмыс істейді, ал қоғамдық интернет арқылы қосымша айналымдар жұмыс істеп тұрған саясатты екіұшты етеді.
Құбырды өзіңіз қоспай LeRobot деректер жинақтарын жазыңыз
AY-Robots жұмыс үстелі клиенті телеоперация сессиясынан эпизодтарды, камера ағындарын және буын күйлерін LeRobot форматында жазады, содан кейін деректер жинағын оқытушыға береді.
Жұмыс үстелі клиентін алыңызДеректер жинағынан саясатқа дейін
Елу таза эпизод әрбір имитациялық оқытуды осында іске қосады. ACT сіздің тапсырмаңыз бойынша нөлден бастап оқытылады, шамамен 80 миллион параметр, әрекет қадамына шамамен 20 мс кетеді, бұл жылдам қозғалысқа ыңғайлы бес модельдің жалғызы. SmolVLA 24 ГБ картада шамамен 450 миллион параметрді құрайды. GR00T N1.7 шамамен 3 миллиард параметрлі негізгі модель, мұнда дәл баптау шамамен 40 миллион параметрге әсер етеді, A100 немесе H100 қажет етеді және v2.1 деректер жинағын қалайды.
Келесі, сіздің комбинацияңызға арналған нұсқаулық: SO-100-дегі ACT, SO-100-дегі SmolVLA немесе SO-100-дегі GR00T N1.7; алғашқы іске қосу үшін, алғашқы саясатыңызды оқытыңыз қысқарақ. Егер саясат стендте жұмыс істесе, бірақ үстелді жылжытқан сәтте құласа, бұл деректер мәселесі: саясат тек бір конфигурацияда жұмыс істейді және жоғары сапалы VLA оқыту деректерін жинау әртүрлілікке тереңірек үңіледі.
Алғашқы жұмыс істейтін саясат үшін қанша эпизод қажет?▾
SmolVLA үшін отыз, ACT, Pi0.5, GR00T N1.5 және N1.7 үшін елу, бұл AY-Robots оқытушылары талап ететін ең төменгі мөлшер. LeRobot нұсқаулығы алғашқы тапсырма үшін кемінде 50, нысан орналасқан жеріне шамамен 10 эпизодты дербес ұсынады. Деректерді масштабтау жұмыстары жалпылаудың демонстрация санына емес, орталар мен нысандарға байланысты екенін көрсетті, сондықтан бір көріністі жүз рет түсіру бес орналасу бойынша елу рет түсіруден нашар.
Маған жетекші қол қажет пе, әлде пернетақтамен телебасқаруға бола ма?▾
lerobot пернетақта және геймпад телеоператорларын жеткізеді, сондықтан жетекші қол қатаң түрде талап етілмейді, бірақ ол өте қолайлы: жетекші-ізбасар жазылған әрекеттің координаталық конвенциясында үздіксіз буын траекторияларын береді, ал пернетақта енгізу саясаттың серпіліс ретінде үйренетін сатылы қозғалысты тудырады. Пернетақтамен телебасқаруға сонымен қатар жаһандық пернелік бэкэнд қажет, сондықтан ол Wayland және headless режимдерінде жұмыс істемейді.
Raspberry Pi немесе шағын мини-компьютерде жазуға бола ма?▾
Иә, баптау арқылы. Ағынды кодтау нұсқаулығында заманауи 4 ядролы машиналар мен Raspberry Pi 5-ті қамтитын төмен ресурстық шектеу бар және екі камераны 640x480 және 30 fps жылдамдықпен «баптауды қажет етеді» бағанына орналастырады. Оның кеңесі: --dataset.rgb_encoder.vcodec=h264 және --dataset.streaming_encoding=false арқылы кодтаушының түсіру циклімен бәсекелесуін тоқтатыңыз. Ол екі камераны 640x480-де секундына шамамен 55 миллион пиксель, ал екі камераны 1920x1080-де шамамен 373 миллион пиксель деп бағалайды.
Жаңа ғана жазылған деректер жинағының шынымен сау екенін қалай білуге болады?▾
Үш қарапайым тексеру. Әр эпизодтың бейне ұзақтығын CLI хабарлаған ұзақтықпен салыстырыңыз және жол санының жалпы санына емес, әр эпизодқа сәйкес келетін кадр/сек * ұзақтыққа тең екенін растаңыз; бұл lerobot кодтау нұсқаулығы беретін қабылдау сынағы. ds.meta.stats файлын оқыңыз, мұнда ең төменгі мәні ең жоғарғы мәніне тең буын ешқашан қозғалмаған. Содан кейін lerobot-dataset-viz-де екі немесе үш эпизодты қайта ойнатыңыз, бұл ауыстырылған көріністер мен қатып қалған кадрлардың пайда болуының жалғыз жолы. Түсірілмеген кадрлар бойынша нұсқаулық шамамен 5 пайыз жоғалтуды шектейді; шамамен 2 пайыз қалыпты өтпелі жүктеме болып табылады, көбінесе тек іске қосу кезінде.
Менің оқыту жұмысым деректер жинағын v3.0 ретінде қабылдамады. Енді не істеу керек?▾
GR00T N1.7 және N1.5 LeRobot v2.0 немесе v2.1 оқиды және lerobot 0.6.1 жазатын v3.0-да істен шығады. Оқыту алдында форматты реттеңіз немесе v3.0-ді жергілікті түрде оқитын саясатты қолданыңыз: Pi0.5, SmolVLA немесе ACT. lerobot v2.1-ден v3.0-ге түрлендіргішті жеткізеді және керісінше ештеңе жоқ.
Sources
- LeRobot: Нақты әлем роботтарындағы имитациялық оқыту
- LeRobot: SO-100 құрастыру, қозғалтқышты орнату және калибрлеу
- LeRobot: Камералар және lerobot-find-cameras
- LeRobot: Орнату және қосымшалар матрицасы
- LeRobotDataset v3.0: орналасуы және v2.1 миграциясы
- LeRobot: Бейне ағынын кодтау және түсіп қалған кадрлар
- LeRobot: Үлкен деректер жинақтарын v3.0-ге тасымалдау (DROID)
- lerobot v0.6.1 шығарылымы, 3 тамыз 2026
- DatasetRecordConfig: нақты жазу әдепкі параметрлері
- lerobot_record.py: жазу циклі және жалғастыруды өңдеу
- TheRobotStudio/SO-ARM100: құрастыру репозиторийі және материалдар тізімі
- Hugging Face: LeRobot қауымдастық деректер жинақтарының тізімі
- lerobot/svla_so100_pickplace: 50 эпизод, 19,631 кадр
- Lin et al. (2024), Имитациялық оқытудағы деректерді масштабтау заңдары
- Mandlekar et al. (2021), Офлайн адам демонстрацияларынан үйренуде не маңызды
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