
Lei 'n Action Chunking Transformer van nuuts af op 'n SO-100 op met lerobot: die act config, chunk_size en n_action_steps, die 100000-stap skedule, 20 ms inferensie.
ACT is die uitsondering onder die SO-100 beleide. GR00T N1.7 en N1.5 begin van nvidia/GR00T-N1.7-3B en nvidia/GR00T-N1.5-3B, Pi0.5 van lerobot/pi05_base. ACT begin van niks: daar is geen basis kontrolepunt nie, want dit is nie 'n grondslagmodel nie. Dit is 'n ongeveer 80 miljoen parameter transformator wat jy van nuuts af oplei vir een taak, op jou arm, onder jou beligting.
Dit is ook hoekom dit 'n beheerstap in 20 ms uitvoer waar 'n 3 miljard parameter VLA 152 tot 485 ms benodig, en 1 tot 3 USD per loop kos in plaas van 4 tot 12. Hierdie gids volg die handmatige roete met lerobot op 'n SO-100: opname, die act konfigurasie, wat chunk_size en n_action_steps beheer, die 100000 stap skedule, die uitrol. Dan dieselfde taak op AY-Robots, insluitend waar die platform nie help nie.
Wat jy moet weet
- •ACT lei van nuuts af op: geen basismodel, geen vooropleiding, geen taalinsette. Een kontrolepunt, een taak.
- •Die artikel: ongeveer 80 M parameters, ongeveer 5 ure op 'n 11 GB RTX 2080 Ti, 0.01 s inferensie.
- •lerobot verstekke: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 steps, seed 1000.
- •Op AY-Robots: 20 ms per stap, die vinnigste van die vyf. 50 episodes minimum, LeRobot v3.0, 'n 24 GB kaart, 1 tot 3 USD per loop.
- •Dit wen op 'n taak wat dit gesien het, en verloor die oomblik wat jy taal kondisionering wil hê.
Gekontroleer 23 Augustus 2026 teen lerobot 0.6.x: pyproject.toml op main lees version = "0.6.2", nuutste etiket v0.6.1, 3 Augustus 2026. 'n Tutoriaal wat begin met python lerobot/scripts/train.py dateer die konsole-toegangspunte lerobot-train, lerobot-record en lerobot-rollout voor.
Wat ACT werklik is
Action Chunking with Transformers kom van die ALOHA-artikel, Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, deur Zhao, Kumar, Levine en Finn, arXiv, 23 April 2023. Die opstelling neem op teen 50 Hz met vier webkameras wat 480x640 teen 30 fps stroom: twee op die grypers, een bo, een voor. Die opsomming beweer ses vaardighede met 80 tot 90 persent sukses, waaronder die oopmaak van 'n deurskynende kondimentbeker en die inskuif van 'n battery, uit 10 minute se demonstrasies.
Die hoofteks is nuttiger wanneer 'n opnamesessie beplan word: 50 demonstrasies per taak, behalwe Thread Velcro teen 100, wat 10 tot 20 minute se data en 30 tot 60 minute se werklike tyd is sodra terugslae getel is. Sukses is ook nie eenvormig nie: Thread Velcro eindig op 20 persent, Put On Shoe op 92, Cup Open 84, Prep Tape 64.
| Hiperparameter | ALOHA-artikel, Tabel III | lerobot op hoof |
|---|---|---|
| leertempo | 1e-5 | optimizer_lr = 1e-5 |
| bondelgrootte | 8 | batch_size = 8, in TrainPipelineConfig not ACTConfig |
| enkodeerder- / dekodeerderlae | 4 / 7 | n_encoder_layers = 4 / n_decoder_layers = 1 |
| brokgrootte k | 100 | chunk_size = 100 |
| latente dimensie van z | afwesig; Fig. 11 toon 'n 32 tot 512 projeksie | latent_dim = 32 |
| temporele ensemble | afwesig; --temporal_agg in die verwysingskode | temporal_ensemble_coeff = None |
Die referaat lys 7 dekodeerderlae, lerobot verskaf 1, doelbewus. Die kommentaar in configuration_act.py sê die oorspronklike implementering het 'n fout wat beteken dat slegs die eerste laag gebruik word, met verwysing na kwessie 25 in tonyzhaozh/act: die aksiekop lees hs[0], so al sewe lae loop, maar slegs die eerste uitset bereik die voorspelling. Daardie kwessie is oop en onbeantwoord sedert 23 April 2024. lerobot stem ooreen met die gedrag wat die gepubliseerde resultate gelewer het, nie die gedrukte nommer nie. Verhoog --policy.n_decoder_layers en jy lei 'n model op wat die referaat nooit geëvalueer het nie.
Aksie-chunking is die hele idee
Gewone gedragskloning karteer een waarneming na een aksie, en foute vermeerder: 'n afwyking plaas die arm buite-verspreiding, wat 'n swakker aksie produseer, en dertig stappe later is die gryper nêrens naby die voorwerp nie. Aksie-chunking voorspel k aksies gelyktydig en voer dit uit, wat die effektiewe horison met 'n faktor van k verminder. Dit hanteer ook 'n oorlas spesifiek vir menslike data: teleoperateurs onderbreek, en 'n enkelstap Markoviaanse beleid kan nie 'n pouse modelleer wat afhang van wat voorheen gebeur het nie.
Die referaat ablateer k eerder as om dit te beweer. Met tydelike ensemblering afgeskakel, gemiddeld oor vier instellings, styg sukses van 1 persent by k = 1 tot 44 persent by k = 100, en neem dan af by 200 en 400 namate die beleid naby oop-lus beheer kom. Daardie kurwe is hoekom die verstek 100 is.
- chunk_size: hoeveel toekomstige aksies die dekodeerder per vorentoe-pas voorspel. Verstek 100.
- n_action_steps: hoeveel daarvan jy uitvoer voordat jy weer navraag doen. Verstek 100, so lerobot voer die hele brokkie ooplus uit.
- lerobot valideer
n_action_steps <= chunk_sizeen lig 'nValueErroras jy dit agteruit kry.
Wat operasioneel saak maak, is chunk_size gedeel deur raamtempo. Teen die 30 fps wat lerobot se SO-100 voorbeelde gebruik, verbind 'n brokkie van 100 ongeveer 3.3 sekondes vanaf een waarneming. As die taak 'n regstelling binne daardie venster benodig, verlaag n_action_steps, nie chunk_size: jy behou die lang voorspelling en her-waarneem meer gereeld.
# predict 100 actions, re-query after 25 of them (about 0.8 s at 30 fps)
lerobot-train \
--dataset.repo_id=${HF_USER}/so100_cube \
--policy.type=act \
--policy.chunk_size=100 \
--policy.n_action_steps=25 \
--policy.device=cudaStel --policy.temporal_ensemble_coeff en lerobot vereis n_action_steps = 1, en lig andersins 'n NotImplementedError. Ensembling doen navraag by die beleid elke tydstap en meng die oorvleuelende voorspellings vir daardie tydstap met gewigte w_i = exp(-m * i), waar die oudste w_0 kry. Die referaat stel dit op 3.3 persent vir ACT: werklik maar beskeie, en dit vermenigvuldig die inferensietelling met die brokkielengte. Bekostigbaar teen 20 ms per stap, nie teen 485 ms nie. Sien inferensie-latensie.
Wanneer ACT 'n grondslagmodel oortref
Die vyf opleibare beleide langs mekaar, met die syfers wat AY-Robots meet en gebruik om die GPU wat dit huur, te grootte.
| Beleid | Familie | Parameters | Per stap | GPU-vlak | Min episodes | Datastel |
|---|---|---|---|---|---|---|
| ACT | Stukkie-transformator, van nuuts af | ~80 M | 20 ms | RTX 4090 / 24 GB | 50 | LeRobot v3.0 |
| SmolVLA | Kompakte VLA | ~450 M | 245 ms | RTX 4090 / 24 GB | 30 | LeRobot v3.0 |
| GR00T N1.7 | VLA-grondslag, diffusiekop | ~3 B (~40 M trained) | 152 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| GR00T N1.5 | VLA-grondslag, voorganger | ~3 B | 165 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| Pi0.5 | Vloeipas-VLA, sien vloeipas | ~3 B, PaliGemma backbone | 485 ms | A100 / H100 80 GB | 50 | LeRobot v3.0 |

- 20 ms per aksiestap, die vinnigste van die vyf, op 'n 24 GB kaart, nie 'n A100 nie.
- 1 tot 3 USD per lopie teenoor 4 tot 12 vir die 3 B klas.
- Presies op kontakryke werk wat dit gesien het: 88 en 96 persent op Slide Ziploc en Slot Battery, waar vorige metodes nooit stadium een geslaag het nie.
- Geen taalkondisionering nie: die taakstring word geïgnoreer, dus is een kontrolepunt een taak.
- Geen semantiese voorkennis nie: alles wat dit weet, kom van jou 50 episodes.
- Smal veralgemening: skuif 'n kamera en jy moet heroplei.
- Dit misluk stilweg: verlies daal, die arm doen niks, die logboeke sê niks.
- Die spoedvoordeel help net as inferensie langs die servo's sit.
Kies ACT wanneer taak en toneel vas is en beweging vinnig en presies moet wees. Kies 'n wanneer een kontrolepunt verskeie instruksies moet dek. Twee bladsye werk die besluit kop aan kop: en . Vir gepubliseerde maatstawwe, koppel elke nommer aan sy bron.
Wat jy nodig het voordat jy begin
Een volgerarm, een leierarm vir , ten minste een kamera, 'n 24 GB GPU. ACT lees slegs beelde en gewrigsposisies. Twee kameras is die ideale plek: 'n vaste vooraansig vir waar dinge is, 'n polskamera vir wat die op die punt staan om aan te raak, soos op ALOHA.
| Arm | Servos | Spanning | Onderdelekoste | Status |
|---|---|---|---|---|
| SO-100 | Feetech STS3215 | 7.4 V | ~110 tot 150 EUR | Volle ondersteuning, verwysingsarm |
| SO-101 | Feetech STS3215 | 7.4 V | ~130 tot 170 EUR | Volle ondersteuning |
| Koch v1.1 | Dynamixel XL330 / XL430 | 5 V en 12 V relings | ~250 tot 350 EUR | Versoenbaar |
| LeKiwi | Feetech STS3215 (arm) | 7.4 V arm, 12 V basis | ~400 tot 500 EUR | Versoenbaar |
SO-100 en SO-101 gebruik Feetech STS3215 servos op 'n 7.4 V reling. As hulle met 12 V gevoer word, vernietig dit hulle, stil genoeg dat mense eers die sagteware blameer, en 'n Koch 12 V toevoer pas fisies op 'n SO-100 bord. Kontroleer die etiket. Simptome: servo reageer nie, arm ruk dan sak. Sien ook SO-100 vs SO-101.
Van kaal arm tot opgeneemde datastel
Die onderstaande vloei is lerobot 0.6.x. Slaan dit oor as jy 'n gekalibreerde arm en 'n datastel het. Andersins dek die SO-100 aan die gang gids, die samestelling, die opname-deurloop dek die vaslegging en die datastel dokumentasie die formaat.
- 1Installeer lerobot met die regte ekstras
Opname benodig
core_scripts, opleidingtraining, Feetech-servo'sfeetech. Python 3.12+.bashconda create -y -n lerobot python=3.12 conda activate lerobot conda install ffmpeg -c conda-forge pip install 'lerobot[core_scripts,training,feetech]' lerobot-info - 2Vind die USB-poort van elke arm
Loop dit met albei arms ingeprop, ontkoppel een wanneer gevra word. Op Linux moet jy dalk die nodus-toestemmings oopmaak.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3Stel die motor-ID's en baudrate
Op die SO-100 gebeur dit voor montering: anders as die SO-101 is die verbindings onbereikbaar sodra dit gebou is. Die skrip loop die bus een motor op 'n slag vanaf die gryper, en skryf ID's na EEPROM.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 4Kalibreer albei arms
Stel elke gewrig in die middel van sy bereik, druk Enter, en vee dan elkeen deur sy volle bereik. Kalibrasie laat 'n beleid wat op een arm opgelei is, op 'n ander loop. Hergebruik dieselfde
id.bashlerobot-calibrate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_follower lerobot-calibrate \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_leader - 5Teleopereer een keer met die kameras aan
Die lerobot-duimreël: jy moet die taak kan doen deur slegs na die kamera-beelde te kyk. As jy nie kan nie, kan ACT ook nie. Dit vang meer slegte datastelle as latere ontfouting.
bashlerobot-teleoperate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_follower \ --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_leader \ --display_data=true - 6Neem 50 episodes op
50 is die AY-Robots minimum en wat ALOHA per taak gebruik het. lerobot beveel 10 per objekligging aan, kameras vas, greep konsekwent.
nbeëindig 'n episode,rheropneem,qstop en enkodeer.bashHF_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_follower \ --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_leader \ --dataset.repo_id=${HF_USER}/so100_cube \ --dataset.num_episodes=50 \ --dataset.single_task="Grab the black cube and put it in the bin" \ --display_data=true

ACT het geen voorkennis om op terug te val nie, so elke inkonsekwentheid word permanent. Die drie duurste: 'n kamera wat tussen episode 20 en 21 gestamp is, lig wat verander het omdat jy die helfte van die stel in die middag opgeneem het, 'n greep wat op twee maniere gedoen is. Elkeen gee 'n perfek-voorkomende verlieskurwe en 'n arm wat na die verkeerde plek gaan. Sien verlies daal, beleid doen niks, beleid werk slegs in een opstelling en insameling van hoë kwaliteit opleidingsdata.
Voor opleiding, speel ten minste vyf episodes af. stoor kamerastrome, gewrigstoestande en aksies per , en afspeel stoot daardie aksies terug na die arm. As die afspeel nie die taak doen nie, bevat die data dit nie en opleiding sal dit nie uitvind nie.
lerobot-replay \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_cube \
--dataset.episode=0Oplei van die ACT-beleid
Dit is die hele opdrag. Alles wat ACT-spesifiek is, is reeds 'n verstek, daarom sê die lerobot ACT-bladsy om daarmee te begin.
lerobot-train \
--dataset.repo_id=${HF_USER}/so100_cube \
--policy.type=act \
--output_dir=outputs/train/act_so100_cube \
--job_name=act_so100_cube \
--policy.device=cuda \
--wandb.enable=true \
--policy.repo_id=${HF_USER}/act_so100_cube--policy.type=act laai ACTConfig, wat aanpas by hoeveel motors en kameras jou datastel opgeneem het, sodat jy nooit die waarnemingsvorm hoef te verklaar nie. --wandb.enable=true is opsioneel en die moeite werd: die verlieskurwe is die enigste goedkoop sein in 'n 100000-stap-lopie. Die skedule kom van lerobot se opleidingskonfigurasie, nie ACTConfig nie: 100000 stappe, bondel 8, saad 1000, 'n kontrolepunt elke 20000 stappe, en aantekening elke 200.
’n Volledige lopie laat vyf kontrolepuntgidse, 020000 tot 100000, plus 'n laaste simskakel. Hou hulle almal: die beste beleid is dikwels nie die laaste een nie.
| Instelling | lerobot verstek | AY-Robots ACT vorm | Kommentaar |
|---|---|---|---|
| bondelgrootte | 8 | 8 | Verlaag dit eers as jy VRAM-limiete bereik. |
| leertempo | 1e-5 | 1e-5 | Dieselfde as die ALOHA-artikel. |
| maksimum stappe | 100000 | 100000 | Ongeveer waar 'n stel van 50 episodes ophou verbeter. |
| gradiëntakkumulasie | 1 | 1, does not apply | Verander eerder die bondelgrootte. |
| saad | 1000 | exposed | GR00T se tyro-toegangspunt het geen saad nie; ACT-lopies is die reproduseerbare. |
| chunk_size / n_action_steps | 100 / 100 | 100 / 100, editable | Voorspellings- en uitvoeringshorison. Verlaag die tweede, nie die eerste nie. |
| kontrolepuntfrekwensie | 20000 | not exposed | saveSteps is hier 'n GR00T-knop. |
ACT teen bondelgrootte 8 met twee 640x480 kameras pas gemaklik op 24 GB. Dit hou op om te pas wanneer mense die bondelgrootte verhoog vir spoed, of dit die 1920x1080 rame voer wat een lerobot-opnamevoorbeeld toon. Twee ResNet-18 ruggrate teen 1080p het 'n baie verskillende geheueprofiel. Verlaag --batch_size na 4 voordat jy 'n groter kaart huur. Sien onvoldoende geheue tydens opleiding.
Duur: ongeveer 5 uur op 'n 11 GB RTX 2080 Ti in die referaat, 'n paar uur vir 100k stappe per lerobot se ACT-bladsy, 2 tot 5 uur op die AY-Robots 24 GB-vlak. Moenie dit kortknip nie. Die verwysingsrepo se README sê 'n rukkerige of pouseerbeleid benodig gewoonlik net meer opleiding, want sukses en gladheid bly verbeter nadat die verlies plato bereik: vir werklike data benodig dit ten minste 5000 epogte, of 3 tot 4 keer die lengte weer na die plato.
lerobot-train \
--config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
--resume=trueLoop die opgeleide beleid op die arm
Ontplooiing gebruik lerobot-rollout. Kamerasleutels moet ooreenstem met die opgeneemde sleutels: 'n beleid wat opgelei is op front en wrist sal nie cam0 en cam1, en rename_map help nie, aangesien dit 'n vooraf-opgeleide kontrolepunt benodig. Die taakstring kan weggelaat word; lerobot se eie voorbeeld merk dit as oorslaanbaar vir ACT.
lerobot-rollout \
--strategy.type=base \
--policy.path=${HF_USER}/act_so100_cube \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \
--display_data=true \
--duration=60Evaluasie het voorheen deur lerobot-record --policy.path=... geloop. In 0.6.x is dit lerobot-rollout met 'n --strategy.type-kieser: base, sentry (opname met outo-oplaai), highlight (ringbuffer gestoor deur sleuteldruk), dagger (mens in die lus) en episodic. Vanaf 23 Augustus 2026 sê die ACT-dokumentasiebladsy steeds "using the lerobot-record command" direk bo 'n blok wat lerobot-rollout uitvoer. Volg die opdrag, nie die sin nie.
Om 'n kontrolepunt eerder as die finale model vas te pen, voeg by --policy.pretrained_revision. Dit vereis dat die uitvoering begin het met --save_checkpoint_to_hub=true, by verstek afgeskakel: sonder dit stoot lerobot die finale model en niks anders nie. Daarmee word elke kontrolepunt gemerk met sy nul-gevulde stap, so --policy.pretrained_revision=060000 herstel die 60000-stap een. Om dit teen 100000 op die regte arm te vergelyk, is die goedkoopste eksperiment beskikbaar.
Twee roetes na dieselfde kontrolepunt
Alles hierbo is die handmatige roete en dit werk. Die platformroete ruil beheer in vir die voordeel om nie 'n GPU of 'n Python-omgewing te besit nie.
- Installeer lerobot 0.6.x met
core_scripts,training,feetech, ffmpeg. - Vind poorte, stel motor-ID's in, kalibreer albei arms, neem 50 episodes op.
- Speel 'n paar episodes af om te bevestig dat die data die taak bevat.
- Huur of besit 'n 24 GB GPU, pas CUDA en PyTorch aan, voer
lerobot-train --policy.type=actuit. - Wag 'n paar uur, voer dan
lerobot-rolloutuit op die masjien by die arm.
# the two commands that matter, end to end
lerobot-record --robot.type=so100_follower --robot.port=/dev/ttyACM0 \
--teleop.type=so100_leader --teleop.port=/dev/ttyACM1 \
--dataset.repo_id=${HF_USER}/so100_cube --dataset.num_episodes=50 \
--dataset.single_task="Grab the black cube"
lerobot-train --dataset.repo_id=${HF_USER}/so100_cube --policy.type=act \
--output_dir=outputs/train/act_so100_cube --policy.device=cudaVolledige beheer: wysig configuration_act.py, voeg 'n kamera by, vertak die opleier. Vir navorsing eerder as om 'n taak te lewer, is 'n platform 'n afleiding.
- Neem op met die werkskermkliënt, of bring 'n Hugging Face repo id of plaaslike datastel.
- Maak die ACT op SO-100 gids oop en kies model en datastel. Verstekwaardes is die lerobot-waardes; chunkSize, nActionSteps, seed en logFreq is wysigbaar.
- Die agterkant huur 'n GPU wat volgens VRAM grootte is en skryf kontrolepunte na objekberging.
/api/inference/podbedien dan die beleid aan die plaaslike robotkliënt. 'n Ledige waghond vernietig die pod, sodat niks stilweg gefaktureer word nie.- Dieselfde bewerkings bestaan in die CLI, die MCP-bediener en die opleidingsdokumente.
Dit los nie jou data op nie: 'n datastel met 'n verskuifde kamera lei presies so sleg hier op, en die vorm kan dit nie opspoor nie. Dit verwyder ook nie die latensieprobleem nie. Die beheerlus is 20 tot 485 ms per aksiestap, met openbare-internet heen-en-weer reise bo-op, en ACT word die meeste benadeel omdat sy stap die kortste is: 60 ms is 'n 12 persent verlangsaming op Pi0.5 se 485 ms, maar vier keer die stap op ACT se 20 ms. Afgeleë inferensie pas by stadige optel en plaas, nie vinnige reaktiewe beweging nie.

Wat werklik verkeerd loop
Byna niks van die moeite lê in die opleidingsopdrag nie. Dit lê in die dinge rondom dit, gerangskik volgens hoe gereeld dit die eerste keer probleme veroorsaak.
| Simptoom | Gewone oorsaak | Bladsy |
|---|---|---|
| lerobot-find-port wys niks | Drywer, kabel of nodus-toestemmings | arm nie bespeur nie |
| Kamera ontbreek tydens opname | Indeks verander na herlaai, of twee kameras op een USB-beheerder | kamera nie bespeur nie |
| Opleiding verwerp die datastel | ACT benodig v3.0, GR00T benodig v2.1 | datastel verwerp as v3 |
| CUDA buite geheue | Bondelgrootte verhoog, of 1080p rame in plaas van 480p | buite geheue tydens opleiding |
| Verlies lyk goed, arm doen niks | Die data ontbreek die taak, of 'n kamera het geskuif | verlies daal, beleid doen niks |
| Rukkerige beweging of 'n pouse in die middel van die episode | Onderopgelei, 'n brokkie-grens stilstand, of 'n tyd-uit inferensie-oproep | beleid vries in die middel van beweging |
Twee rye verdien klem. ACT lei op LeRobot v3.0 terwyl GR00T se laaier daarop ineenstort en v2.1 benodig, so 'n datastel wat ACT oplei, kan 'n GR00T-lopie laat misluk. En die laaste ry het twee oplossings: die ACT-outeurs beantwoord rukkerige beweging met meer opleiding, terwyl met n_action_steps by 100 'n ware stilstand by 'n brokkie-grens beland, 'n sigbare pouse elke 3.3 sekondes teen 30 fps. Nog twee om te weet: 'n enkele dooie gewrig is gewoonlik 'n servo-ID wat nooit geskryf is nie, en 'n gryper wat naderkom maar nooit sluit nie beteken te min gryperbereik in die demonstrasies. Volledige indeks: die foutmodusbladsye.
Wat 'n lopie kos
| Vlak | Modelle | Looptyd | Prys per uur | Koste per loop |
|---|---|---|---|---|
| RTX 4090 / 24 GB | ACT, SmolVLA | 2 tot 5 ure | 0.30 to 0.60 USD | ongeveer 1 tot 3 USD |
| A100 80 GB / H100 | GR00T N1.7, GR00T N1.5, Pi0.5 | 3 tot 6 ure | 1.20 to 2.00 USD | ongeveer 4 tot 12 USD |
Dit is die argument om met ACT te begin, selfs al wil jy later 'n VLA hê. 'n Mislukte ACT-loop kos die prys van 'n koffie en vertel jou binne ure of jou datastel die taak bevat. 'n Mislukte GR00T-loop kos vier keer soveel vir dieselfde les. Om daarna op te skuif na GR00T N1.7 of SmolVLA daarna is 'n vormverandering, nie 'n herbou nie. Agtergrond: visie-taal-aksie modelle, die volledige SO-100 gids, lei jou eerste beleid op en nabootsingsleer. Geen arm? Die regstreekse bladsy stroom 'n regte SO-100 om te bestuur sonder om aan te meld.
Lei ACT op jou SO-100 op
Die gids vir hierdie presiese kombinasie: verstekke, GPU-vlak en wat 'n loop kos. Kies die datastel, die agterkant huur die kaart en skryf die kontrolepunte.
Maak die opleidingsgids oopIs daar 'n vooraf-opgeleide ACT-model wat ek eerder kan fyninstel?▾
Nee. ACT het geen basismodel nie; dit bestaan slegs nadat jy dit opgelei het. Dit is nie 'n gaping in die gereedskap nie, dit is wat ACT is: die referaat lei 'n beleid van nuuts af per taak op. Vir 'n verskaffer-kontrolepunt, gebruik GR00T N1.7 of Pi0.5.
Hoeveel episodes het ek regtig nodig?▾
50: wat ALOHA per taak opgeneem het (100 vir Thread Velcro, die moeilikste) en die AY-Robots minimum. lerobot beveel ongeveer 10 per objekligging aan, kameras vas, greep konsekwent. Vyftig skoon episodes is beter as honderd waar die kamera beweeg het.
Moet ek chunk_size van 100 verander?▾
Gewoonlik nie. Die ablasie klim van 1 persent by k = 1 tot 44 persent by k = 100 en neem daarna af, so 100 is naby die top. As die arm te lank verbind, verlaag eerder n_action_steps: teen 30 fps, 25 heraanvrae elke 0.8 sekondes.
Hoe lank neem 'n opleidingsloop, en kan ek dit vroeg stop?▾
Twee tot vyf ure op 'n 24 GB kaart vir 100000 stappe. Kontrolepunte land elke 20000 stappe en --resume=true hervat 'n loop, so dit is veilig om vroeg te stop. Net nie by die eerste plat stuk nie: gladheid verbeter nadat die verlies stabiliseer.
Verlies het gedaal en die arm misluk steeds. Wat nou?▾
Byna altyd die datastel. Speel opgeneemde episodes by die arm af: as die afspeel nie die taak uitvoer nie, bevat die data dit nie. Kontroleer dan of enigiets beweeg het, veral 'n kamera. ACT het geen voorkennis nie, so 'n stootjie op episode 21 is permanent.
Sources
- Zhao, Kumar, Levine, Finn: Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (ACT), arXiv 2304.13705
- ALOHA / ACT project page
- tonyzhaozh/act, the reference implementation and its training-length advice
- tonyzhaozh/act issue 25: the action head reads only the first decoder layer
- huggingface/lerobot
- lerobot ACTConfig: chunk_size, n_action_steps, n_decoder_layers and the rest of the defaults
- lerobot TrainPipelineConfig: steps, batch_size, seed, save_freq, log_freq, save_checkpoint_to_hub
- lerobot train_utils: zero-padded checkpoint dirs, the last symlink and checkpoint push tagging
- lerobot v0.6.1 release, 3 August 2026
- LeRobot docs: ACT
- LeRobot docs: imitation learning on real robots (record, replay, train, rollout)
- LeRobot docs: SO-100 setup, motor ids and calibration
- LeRobot docs: installation and the optional extras
- Hugging Face blog: LeRobot Community Datasets, the ImageNet of Robotics, When and How?
- TheRobotStudio/SO-ARM100: Standard Open Arm 100
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started