AY-Robots kennslusíðan fyrir upptöku á fyrsta LeRobot gagnasafninu þínu með SO-100 armi
LeRobotSO-100Upptaka gagnasafnsFjarstýringHerminám

Taktu upp fyrsta LeRobot gagnasafnið þitt með SO-100

AY-Robots ResearchAugust 23, 202616 mín lestur

Taktu upp nothæft LeRobot gagnasafn með SO-100: kvörðun, fjarstýringu leiðtoga-fylgjanda, raunverulegar lerobot-record fánar og sjálfgefnar stillingar, uppsetningu myndavélar, fjölda þátta, og gallana sem eyðileggja keyrslu.

Einn SO-100 fylgjandi, leiðararmur af sömu hönnun og tvær USB myndavélar geta fínstillt stefnu á einum eftirmiðdegi. Sama prófunarbekkur getur jafn auðveldlega framleitt sextíu þætti sem líta vel út í skráavafra og sóað sex klukkustunda GPU keyrslu. Munurinn er sjaldan líkanið; það er það sem gerðist á milli servóanna og parquet skráarinnar.

Hér er handvirka leiðin, síðan sú styttri. Sérhver skipun er frá lerobot 0.6.1, gefin út 3. ágúst 2026 og núverandi á PyPI. Það færðist yfir í inngangspunkta fyrir stjórnborð, svo kennsluefni sem keyra python lerobot/scripts/control_robot.py lýsa skrá sem er ekki lengur til.

Stutta útgáfan

  • lerobot 0.6.1 tekur upp v3.0; GR00T N1.7 og N1.5 vilja v2.1. Ákveðið sniðið áður en þú ýtir á upptöku.
  • Fjórar skipanir: lerobot-find-port, lerobot-setup-motors, lerobot-calibrate, lerobot-record. Notið sömu --robot.id og --teleop.id frá kvörðun inn í upptökulotuna.
  • Raunverulegar sjálfgefnar stillingar: 30 fps, 60 s á hvern þátt, 60 s endurstilling, 50 þættir, um 100 mínútur af rauntíma.
  • Lágmarksþættir hér: 30 fyrir SmolVLA, 50 fyrir restina.
  • Fjölbreytni er betri en magn. Gagnasöfn deyja af fjórum ástæðum: víxluðum myndavélavísitölum, týndum eða frosnum römmum, lið sem er fastur við mörk sín, ólæsilegum verkefnisstreng.

Hvað upptökulota fangar

Gagnasafn LeRobot gagnasafn er ekki mappa af myndböndum heldur tímasett tafla með myndbandi tengdu: hver stýrilásar-tíðni skrifar eina röð sem inniheldur skipaða aðgerð, ástandið sem fylgjandinn náði, einn ramma á hverja myndavél, tímastimpil og vísitölur. Stýringin sér aðeins þessar dálka. Skema lerobot/svla_so100_pickplace, lesið úr meta/info.json þess.

EiginleikidtypeLögunHvað það er
actionfloat32[6]liðamarkmið frá leiðararmi
observation.statefloat32[6]liðastaðsetningar sem fylgjandinn náði
observation.images.topvideo[480, 640, 3]senumyndavél, MP4 (av1 hér)
observation.images.wristvideo[480, 640, 3]úlnliðsmyndavél, sama tíðni
timestampfloat32[1]sekúndur frá upphafi þáttar
frame_index, episode_index, index, task_indexint64[1]sjálfvirkt fyllt bókfærsla

Liðirnir eru main_shoulder_pan, main_shoulder_lift, main_elbow_flex, main_wrist_flex, main_wrist_roll og main_gripper: sex frelsisgráður SO-100. Aðgerð og ástand deila lögun vegna þess að leiðara-fylgjanda fjarstýring skráir markmið og staðsetningu sem náðist einu skrefi síðar. Þetta bil er upplýsingar: hvar armurinn barðist við þyngdarafl eða fastan hlut. Þessar strengir eru úr þessu gagnasafni. Fundur sem var skráður með 0.6.1 í dag skrifar shoulder_pan.pos í gegnum gripper.pos, auðkenni 1 til 6 á strætó: sömu sex liðir, mismunandi lyklar, sem skiptir máli þegar stilling vísar í eiginleika með nafni.

Mælikvarði úr raunverulegu gagnasafni

Þetta gagnasafn inniheldur 50 þætti og 19.631 ramma á 30 fps: um 393 ramma, eða 13 sekúndur, á hvern þátt. Ef þínir eru að meðaltali mínútu, ertu að gera eitthvað erfiðara eða taka upp dauðan tíma í báðum endum.

Orðalýsing AY-Robots fyrir LeRobot gagnasniðið, sem sýnir möppuskipulagið og lýsigagnaskrár.
Hvað býr í data/, videos/ og meta/, og hvaða reglur lesa hvaða útgáfu.

Hvað þú þarft á vinnubekknum

HluturNánarAthugasemd
FylgihandleggurSO-100, sex Feetech STS3215 servóarum 110 til 150 EUR í hlutum
Leiðtogahandleggurannar SO-100, gírar fjarlægðirgírar fjarlægðir úr öllum sex leiðtogamótorum: aðeins kóðari, minni núningur
Aflgjafipassar við 7.4 V STS3215 útgáfuna í efnisskrásjá viðvörun hér að neðan
Myndavélartvær USB myndavélar, 640x480 við 30 fpsein fyrir umhverfið, ein á úlnliðnum
HýsillPython 3.12 eða nýrri, ffmpegrequires-python >= 3.12
Hub reikningurHugging Face skriflykillvalfrjálst með --dataset.push_to_hub=false
7.4 V, ekki 12 V

STS3215 kemur í tveimur útgáfum: SO-ARM100 README metur 7.4 V útgáfuna á 16.5 kg.cm stöðvunartog mælt við 6 V og 12 V útgáfuna á 30 kg.cm, og tekur fram að ef 12 V mótorar eru valdir þýðir það einnig að kaupa 12 V 5 A+ aflgjafa í stað 5 V. Efnisskráin listar 7.4 V servóar. Að gefa 12 V spennu á servóar sem eru metnir fyrir 7.4 V eyðileggur þá, svo lestu merkimiða mótorsins áður en þú tengir eitthvað. Servó svarar ekki.

Ef armurinn er ekki smíðaður ennþá, þá er það sér kvöldverkefni: byrjaðu á SO-100 að byrja og fullkominni SO-100 uppsetningarleiðbeiningum. Ef þú hefur ekki keypt neitt, lestu SO-100 samanburðinum við SO-101 fyrst: SO-101 er nýrri útgáfan með bættri raflögn og engu gír-fjarlægingarskrefi, og upptökuferlið er eins.

Setja upp lerobot 0.6.1

bash
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
lerobot-info prentar kerfisyfirlit, þar á meðal ffmpeg útgáfuna sem það finnur á PATH.

Aukaþættir valda oftast vandræðum. pip install lerobot setur aðeins upp kjarna ML-háðir, ekkert sem talar við vélmenni. Koch armar þurfa dynamixel í stað feetech. Ef skelin þín hefur aldrei heyrt um lerobot-record, þá er þetta ástæðan.

Portar, mótorauðkenni og kvörðun

Þrjú einu sinni skref standa á milli hluta og virkrar fjarstýringarlykkju. gerir stefnu sem þjálfuð er á þínum armi kleift að keyra á armi einhvers annars, og varpar hráum kóðarafjölda á sameiginlega liðamótareglu.

  1. 1
    Finndu USB-port hvers arms

    Keyrðu það með báðum örmum tengdum, taktu úr sambandi þann sem þú ert að auðkenna þegar beðið er um það, og skráðu hvaða port hverfur. Á Linux gætirðu þurft sudo chmod 666 /dev/ttyACM0.

    bash
    lerobot-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. 2
    Skrifaðu mótorauðkenni og baudhraða

    Auðkenni eru skrifuð einn mótor í einu, og leiðbeiningarnar eru strangar um hvernig: tengdu nákvæmlega einn mótor við stýriborðið, ekki enn tengdan í keðju við neinn annan. Skriftan gengur afturábak í keðjunni, biður fyrst um gripinn og gefur honum auðkenni 6, síðan wrist_roll sem 5, niður í shoulder_pan sem 1. Gerðu þetta fyrir samsetningu.

    bash
    lerobot-setup-motors \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0
    
    lerobot-setup-motors \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1
  3. 3
    Kvarðaðu báða arma

    Færðu hvern lið í miðju sviðs síns, ýttu á Enter, og færðu síðan hvern og einn í gegnum allt svið sitt. id verður heiti sniðskrárinnar.

    bash
    lerobot-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. 4
    Fjarstýrðu áður en nokkuð er tekið upp

    Viðtökuprófið fyrir allt ofangreint. Ef fjarstýringin er rykkjótt, spegluð, eða einn liður fylgir ekki, varðveitir upptaka það í 50 þáttum.

    bash
    lerobot-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
Hvar kvörðun lendir, og hvers vegna auðkennið skiptir máli

Snið fara í $HF_LEROBOT_CALIBRATION, sjálfgefið ~/.cache/huggingface/lerobot/calibration, og auðkennið er uppflettingarlykillinn. Gefðu lerobot-record kvarðað auðkenni og það býður upp á Enter til að endurnýta sniðið eða c til að endurtaka það. Gefðu því óþekkt auðkenni og það er engin skrá, svo það fer í kvörðun í miðri lotu.

Myndavélar ákveða hvað stefnan sér

bash
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
Keyrðu þetta í hverri lotu: skjölun varar við því að þessir auðkennarar geti breyst eftir endurræsingu eða endurtengingu, eftir því hvaða stýrikerfi er notað.

Tvær sýnir, og staðsetning þeirra skiptir máli: föst sýnismyndavél sem nær yfir vinnusvæðið, og úlnliðsmyndavél nálægt griparmaenda sem sýnir hvað gripurinn er að fara að snerta. Gátlisti LeRobot samfélagsgagnasafna biður um helst tvær sýnir í 480x640 / 720p eða betri upplausn, kyrran bakgrunn, hlutlausa stöðuga lýsingu, og að leiðararminn og mannlegir útlimir séu utan ramma. Upptökuleiðbeiningarnar bæta við þumalputtareglunni: þú ættir að geta framkvæmt verkefnið sjálfur með því einu að horfa á myndirnar frá myndavélinni.

Myndavélarvísitalan er ekki stöðug auðkenni

OpenCV vísitölur koma frá upptalningarröð, svo endurræsing eða endurtenging getur valdið því að vísitölur 0 og 2 skipti um stað og setji úlnliðssýnina í efsta raufina fyrir heila lotu. lerobot segir það sjálft: myndavélaklasinn þess tekur við tækjaleið sem og heiltölu, og varar við því að vísitölur séu óstöðugar yfir endurræsingar eða portbreytingar, sérstaklega á Linux. Beindu index_or_path á udev tákntengilinn undir /dev/v4l/by-id/, sem fylgir tækinu frekar en upptalningarröðinni. Þetta er algengasta leiðin til að gagnasafn endar innbyrðis ósamræmt, og þjálfun getur ekki lagað það. Myndavél fannst ekki.

Skráningarskipan og hver fáni

bash
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
Myndavélaskráin er ein strengur í skel-tilvitnunum; innfelldu svigarnir eru ekki skeljarsetningafræði.

Sjálfgefnar stillingar hér að neðan koma frá src/lerobot/configs/dataset.py á aðalgreininni, ekki úr kennsluefni. Nokkrar eru ekki það sem fólk gerir ráð fyrir.

FániSjálfgefiðHvað það gerir
--dataset.repo_idemptynafn; tímasetning bætt við sjálfgefið
--dataset.single_taskemptyverkefnisstrengur geymdur með hverjum þætti
--dataset.root$HF_LEROBOT_HOME/repo_idskrifslóð, sjálfgefið ~/.cache/huggingface/lerobot/
--dataset.fps30stýrilykkjuhraði og rammahraði gagnasafns
--dataset.episode_time_s60sekúndur áður en þáttur fer sjálfkrafa áfram
--dataset.reset_time_s60endurstilling senu; armur hreyfist, ekkert geymt
--dataset.num_episodes50þættir skráðir í þessari lotu
--dataset.push_to_hubtruehlaða upp í lok lotu; false heldur staðbundið
--dataset.streaming_encodingfalse in the dataclass, true in the docs tablekóða meðan á upptöku stendur; stilltu það sérstaklega
--dataset.encoder_queue_maxsize30biðminni ramma á myndavél, ~1 s við 30 fps
--dataset.encoder_threadsnull (codec decides)þræðir á kóðara; lækka ef upptaka hikstar
--dataset.no_stampfalsehalda repo_id nákvæmlega eins og slegið er inn
--resumefalsebæta við núverandi gagnasafn; þarf --dataset.root
Tveir fánar sem kosta óvænt klukkutíma

Gagnasafnið þitt heitir ekki það sem þú slóst inn. lerobot bætir við dagsetningar- og tímamerki, svo so100_pick_cube verður so100_pick_cube_20260823_141530. Notaðu --dataset.no_stamp=true fyrir stöðugt nafn. Halda áfram telur viðbætur, ekki heildartölur. Með --resume=true telur --dataset.num_episodes viðbótarþætti og --dataset.root verður skylda. Biddu um 50 á gagnasafni með 30 þáttum og þú færð 80.

Lyklaborðsstýring meðan á lotu stendur

  • Hægri ör eða n: ljúka þætti eða endurstilla fasa snemma. Lykillinn sem þú notar mest, því hreint grip þarf sjaldan 25 sekúndur.
  • Vinstri ör eða r: farga þættinum og endurtaka hann. Slæm upptaka kostar ekkert núna en mikið síðar.
  • Escape eða q: stöðva lotuna, ljúka kóðun, hlaða upp.
  • Þetta virkar á X11, Wayland og höfuðlausum SSH: án alþjóðlegs lyklabakenda les lerobot-record sömu lykla frá stjórnunarstöðinni. Stafirnir lifa af seinar SSH tengingar, þar sem örvaröð brotnar.
  • Lyklaborðs fjarstýring er öðruvísi og þarf alþjóðlegan bakenda: X11, Windows, eða macOS með aðgengi.

Hversu margir þættir, og hvernig góður þáttur lítur út

Upptökuleiðbeiningarnar benda til að minnsta kosti 50 þátta fyrir fyrsta verkefni, um 10 á hvern staðsetningu hlutar. The stefnusíðurnar lista upp lágmark á hverja gerð, undir því er keyrsla ekki virði GPU tímans.

StefnaLágmarksþættirGagnasafnsniðGPU flokkurKostnaður á keyrslu
SmolVLA30LeRobot v3.0RTX 4090 or any 24 GB cardabout 1 to 3 USD
ACT50LeRobot v3.0RTX 4090 or any 24 GB cardabout 1 to 3 USD
GR00T N1.750LeRobot v2.0 or v2.1A100 80 GB or H100 80 GBabout 4 to 12 USD
GR00T N1.550LeRobot v2.0 or v2.1A100 80 GB or H100 80 GBabout 4 to 12 USD
Pi0.550LeRobot v3.0A100 80 GB or H100 80 GBabout 4 to 12 USD

Betri spurningin er hversu mikið af hverju. Data Scaling Laws in Imitation Learning for Robotic Manipulation (Lin o.fl., 2024) söfnuðu yfir 40.000 sýnikennslum og keyrðu meira en 15.000 raunheims keyrslur. Alhæfing fylgdi u.þ.b. veldislögmáli í sambandi við fjölda umhverfa og hluta, og eftir ákveðinn þröskuld á hvert umhverfi eða hlut höfðu viðbótar sýnikennslur lágmarksáhrif. Á einum vinnubekk: færðu hlutinn, breyttu lýsingunni, skiptu um teninginn, frekar en að endurtaka eina töku.

Fjarstýring leiðtoga-fylgjanda sem gagnagjafi
Kostir
  • Samfelldar liðferlar sem servó getur endurtekið, ólíkt lyklaborði eða leikjastýringu
  • Aðgerð og ástand deila hnitareglu, svo stefnan lærir markmið sem hún getur stýrt beint
  • 25 sekúndna þáttur auk 10 sekúndna endurstillingar er u.þ.b. 100 þættir á klukkustund
  • Stjórnandinn finnur þegar fylgjandinn hikstar eða festist, svo gallar koma í ljós áður en gögn eru skráð
Málamiðlanir
  • Annar armur tvöfaldar u.þ.b. kostnað við varahluti
  • Sýnikennslur erfa venjur stjórnanda; Mandlekar o.fl. komust að því að gæði stefnu ráðast mikið af gæðum sýnikennslunnar
  • Leiðtoginn er sýndur á lykkjuhraða, svo hlé verða næstum eins raðir sem kenna stefnunni að bíða
  • Ekkert tryggir samræmi milli funda: myndavél sem er hreyfð um 5 cm er falin dreifingarbreyting

Góður þáttur er leiðinlegur: endurtekin heimastelling, eitt verkefni klárað, lýkur þegar hluturinn er í ruslafötunni, verkefnisstrengur í 25 til 50 stöfum eins og gátlistinn mælir með. Taktu rauða teninginn og slepptu honum í kassann er verkefnisstrengur; task1 er andstæðan við það mynstur sem gátlistinn nefnir sérstaklega. Óljósar athugasemdir eru efst á lista yfir vandamál, og þær skipta mestu máli fyrir sjón-tungumál-aðgerðarlíkön, þar sem strengurinn er inntak líkans, ekki skráarnafn.

Gallar sem eyðileggja gagnasafn í hljóði

Enginn kastar undantekningu. Allir lifa af inn í þjálfun, koma fram sem tapferill sem lítur vel út og vélmenni sem gerir ekkert. Athugaðu á meðan sviðsmyndin er sett upp.

GalliHvernig það lítur útHvaðan það kemurHvernig á að finna það
Víxlaðar myndavélarsýnirúlnliðsmynd undir efsta lyklinumendurúthlutun vísitölu eftir endurtengingulerobot-find-cameras í hverri lotu; by-id paths
Frosnir rammarsama myndin í tugum raðamyndavél hættir að skila; lykkja endurtekur síðasta rammaskoða það í lerobot-dataset-viz
Tapaðir rammarfjöldi raða undir rammar á sekúndu sinnum sekúndurbiðröð flæðir yfir, sleppir frekar en að lokar'Encoder queue full' í log; raðir vs rammar á sekúndu sinnum lengd
Liður á mörkum sínumeinn liður flatur á lágmarki eða hámarkisvið leiðtogans fer yfir svið fylgjandans, eða slæm miðjustellingmin/max fyrir hvern lið í ds.meta.stats; lerobot-find-joint-limits fyrirfram
Mynd og aðgerð ósamstilltstefnan sér fyrir eða dregst aftur úrmyndavélar á öðrum rammar á sekúndu en lykkjanhalda hverri myndavél á --dataset.fps
Dauður tímilangar keyrslur af eins aðgerðaröðumstjórnandi gerði hlé með upptökutækið í gangihlutfall samliggjandi eins aðgerðarraða
Ónothæfur verkefnisstrengurtask1, demo2, testfljót að slá innmeta/tasks.parquet í v3.0 (það var meta/tasks.jsonl í v2.1); laga með lerobot-edit-dataset modify_tasks
Fellir rammar fela sig

Kóðarinn heldur takmarkaðri biðröð fyrir hverja myndavél, 30 ramma sjálfgefið. Þegar hann ræður ekki við, eru rammar felldir niður frekar en stöðvaðir: upptaka heldur áfram og ekkert hrynur. Þú færð Encoder queue full for {camera}, dropped N frame(s) og heildarfjölda fyrir hverja myndavél í lok þáttar. Lerobot þröskuldurinn: um 5 prósent vantar þýðir ofhlaðið kerfi, 2 prósent er búist við ræsihleðslu. Lagfæringar í röð: --display_data=false, lækka --dataset.encoder_threads, vcodec=h264, slökkva á streymi.

Eitt fyrirvari: taflan í leiðbeiningum um streymiskóðun sýnir sjálfgefna stillingu sem True, á meðan gagnaklasinn á aðalútgáfunni les streaming_encoding: bool = False. Skjöl og kóði eru ósammála, svo stilltu það skýrt; lerobot skráir vísbendingu sem mælir með því hvenær sem það byrjar með flaggið slökkt.

Athugaðu gagnasafnið áður en þú leigir GPU

Viðtökuprófið úr skjölunum: berðu saman lengd myndbands við lengd þáttar sem CLI tilkynnti, og staðfestu að fjöldi raða jafngildi fps sinnum lengd. Fyrir hvern þátt, ekki heildina.

python
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"])
Þáttur sem er langt frá fps sinnum lengd er frambjóðandi til eyðingar, ekki þjálfunar.

Skoðaðu það síðan. lerobot-dataset-viz spilar þátt ramma fyrir ramma með liðsporum við hlið myndavélarsýna, í Rerun eða Foxglove. Skiptar myndavélar og frosnir rammar birtast á tíu sekúndum. Fólk sleppir þessu skrefi.

bash
# 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]"
lerobot-edit-dataset framkvæmir einnig skiptingu, samruna, fjarlægingu eiginleika, breytingu á verkefnum og endurreikning tölfræði. Eyðið ríkulega: slæmur þáttur kostar einn þátt; að halda honum kostar hverja keyrslu sem þjálfuð er á honum.
AY-Robots gagnasafnaskráin sýnir opinber LeRobot gagnasöfn með fjölda þátta og sniðum.
Hvernig sambærileg gagnasöfn eru stærðar og skýrð.

v2.1 eða v3.0: ákveðið áður en þið takið upp

v2.1 skrifaði eina parquet og eina MP4 á hvern þátt. v3.0 sameinar marga þætti í sameiginlegar skífur og endurbyggir mörk úr lýsigögnum, svo info.json inniheldur slóðasniðmát eins og data/chunk-{chunk_index:03d}/file-{file_index:03d}.parquet í stað þáttanúmers. Rökstuðningurinn er færri, stærri skrár: hraðari frumstilling og minna álag á skráakerfið í stórum skala.

LeRobot v2.1LeRobot v3.0
Uppsetningeitt parquet og eitt MP4 á hvern þáttmargir þættir á hverja skífu
Lýsigögn þáttaJSONL skrárskipt parquet undir meta/episodes/, í gegnum gagnasafnsstaflann
Streymi frá Hubneijá, í gegnum StreamingLeRobotDataset
Skrifað af lerobot 0.6.1neijá, það sem þú færð í dag
Lesið af GR00T N1.7 og N1.5nei, verður að breyta niður
Upptaka í dag, þjálfun GR00T á morgun

lerobot 0.6.1 skrifar v3.0, en GR00T N1.7 og N1.5 lesa v2.0 eða v2.1 og hrynja á því. Athugið ferðastefnuna: src/lerobot/scripts/ inniheldur convert_dataset_v21_to_v30.py og ekkert sem fer hina leiðina. Ljúkið þessu fyrir fundinn. Lagfæring: gagnasafn hafnað sem v3.

bash
# 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
Fljótt fyrir 50 þætti. Mælikvarði er annað verkefni: flutningsleiðbeiningar lerobot, fyrir hrá DROID í v3.0, gera ráð fyrir 7+ dögum af staðbundinni vinnslu og um 400 GB.

Tvær leiðir að sama gagnasafni

Allt ofangreint, á þinni eigin vél: þú átt USB upptalninguna, ffmpeg smíðina, kóðara stillinguna og kvörðunarskrárnar. Rétta leiðin til að skilja ferlið, keyra óvenjulegan myndavélarbúnað eða halda gögnum staðbundnum.

Hvað þessi leið kostar

Tími: eitt kvöld á arm til að setja saman, erfið fyrsta kvörðun og fyrsta lota sem þú hendir vegna þess að myndavél var í röngu raufi.

Taktu upp LeRobot gagnasöfn án þess að tengja leiðsluna sjálfur

AY-Robots skjáborðsforritið skráir þætti, myndavélarstrauma og liðstöður á LeRobot sniði úr fjarstýringarlotu, og afhendir síðan gagnasafnið þjálfaranum.

Sæktu skjáborðsforritið

Frá gagnasafni til stefnu

Fimmtíu hreinir þættir næra hvert sem keyrt er hér. þjálfar frá grunni á þínu verkefni einu, um 80 M færibreytur á um það bil 20 ms á hverju aðgerðarskrefi, sú eina af fimm sem er þægileg með hraðar hreyfingar. er um 450 M færibreytur á 24 GB korti. er um það bil 3 B færibreyta grunnlíkan þar sem snertir um 40 M færibreytur, þarf A100 eða H100, og vill þetta v2.1 gagnasafn.

Næst, leiðbeiningarnar fyrir þína samsetningu: , eða ; fyrir fyrstu keyrslu er styttra. Þegar stefnan virkar á prófunarbekknum en hrynur um leið og þú færir borðið, þá er það gagnavandamál: og fara dýpra í fjölbreytileika.

Hversu marga þætti þarf ég raunverulega fyrir fyrstu virku stefnuna?

Þrjátíu fyrir SmolVLA, fimmtíu fyrir ACT, Pi0.5, GR00T N1.5 og N1.7, sem eru lágmarkskröfur AY-Robots þjálfaranna. LeRobot leiðbeiningarnar mæla sjálfstætt með að minnsta kosti 50 fyrir fyrsta verkefni, um 10 á hvern staðsetningu hlutar. Gagnaskölunarvinna sýndi að alhæfing skalast með umhverfi og hlutum frekar en fjölda sýnikenna, svo hundrað upptökur af einni senu eru verri en fimmtíu yfir fimm staðsetningar.

Þarf ég stýriarm, eða get ég fjarstýrt með lyklaborði?

lerobot sendir með lyklaborðs- og leikjatölvufjarstýringar, svo stýriarmur er ekki stranglega nauðsynlegur, en hann er mjög æskilegur: leiðtoga-fylgja gefur samfelldar liðferlar í hnitakerfi upptekinnar aðgerðar, á meðan lyklaborðsinntak framleiðir stigvaxna hreyfingu sem stefna lærir sem rykk. Lyklaborðsfjarstýring þarf einnig alþjóðlegan lyklabakenda, svo hún virkar ekki á Wayland og höfuðlausum kerfum.

Get ég tekið upp á Raspberry Pi eða lítilli smátölvu?

Já, með fínstillingu. Leiðbeiningar um straumkóðun hafa lágt auðlindasvið sem nær yfir nútíma 4-kjarna vélar og Raspberry Pi 5, og setur tvær myndavélar á 640x480 og 30 fps í dálkinn „þarf einhverja fínstillingu“. Ráð hennar: stöðva kóðarann frá því að keppa við upptökulásinn, með --dataset.rgb_encoder.vcodec=h264 og --dataset.streaming_encoding=false. Hún metur tvær myndavélar á 640x480 sem um 55 milljónir pixla á sekúndu og tvær á 1920x1080 sem um 373 milljónir.

Hvernig veit ég að gagnasafnið sem ég tók upp sé í raun heilbrigt?

Þrjár einfaldar athuganir. Berðu saman myndbandslengd hvers þáttar við lengdina sem CLI tilkynnti og staðfestu að fjöldi raða jafngildi fps sinnum þá lengd, á hvern þátt frekar en heildina; það er samþykkisprófið sem lerobot kóðunarleiðbeiningarnar gefa. Lestu ds.meta.stats, þar sem liður sem hefur lágmark jafnt hámarki hreyfðist aldrei. Spilaðu síðan tvo eða þrjá þætti í lerobot-dataset-viz, eina leiðin til að sjá skiptar sýnir og frosna ramma. Varðandi týnda ramma dregur leiðbeiningin mörkin við um það bil 5 prósent vantar; um 2 prósent er eðlilegt tímabundið álag, oft bara við ræsingu.

Þjálfunarverkefnið mitt hafnaði gagnasafninu sem v3.0. Hvað nú?

GR00T N1.7 og N1.5 lesa LeRobot v2.0 eða v2.1 og hrynja á v3.0, sem er það sem lerobot 0.6.1 tekur upp. Annaðhvort ákveða sniðið fyrir þjálfun, eða nota stefnu sem les v3.0 innfæddur: Pi0.5, SmolVLA eða ACT. lerobot sendir með v2.1 til v3.0 breytir og ekkert í öfuga átt.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started