Matrix ya mafunzo ya AY-Robots yenye safu tano za sera na nguzo nne za mikono ya roboti, kila seli ikiunganisha na mwongozo maalum wa mafunzo ya modeli na mkono
ACTSO-100lerobotujifunzaji wa kuigamafunzo ya sera

Jinsi ya Kufunza ACT kwenye SO-100 Kutoka Mwanzo

AY-Robots ResearchAugust 23, 202616 min kusoma

Funza Action Chunking Transformer kutoka mwanzo kwenye SO-100 ukitumia lerobot: usanidi wa act, chunk_size na n_action_steps, ratiba ya hatua 100000, utekelezaji wa 20 ms.

ACT ni tofauti kati ya sera za SO-100. GR00T N1.7 na N1.5 huanza kutoka nvidia/GR00T-N1.7-3B na nvidia/GR00T-N1.5-3B, Pi0.5 kutoka lerobot/pi05_base. ACT huanza kutoka mwanzo: hakuna kituo cha msingi cha ukaguzi, kwa sababu si mfumo msingi. Ni transformer yenye takriban vigezo milioni 80 unayoifundisha kutoka mwanzo kwenye kazi moja, kwenye mkono wako, chini ya mwangaza wako.

Hiyo pia ndiyo sababu inatekeleza hatua ya udhibiti katika milisekunde 20 ambapo VLA yenye vigezo bilioni 3 inahitaji milisekunde 152 hadi 485, na inagharimu USD 1 hadi 3 kwa kila utekelezaji badala ya 4 hadi 12. Mwongozo huu unaeleza njia ya mikono na lerobot kwenye SO-100: rekodi, usanidi wa act, nini chunk_size na n_action_steps hudhibiti, ratiba ya hatua 100000, utekelezaji. Kisha kazi hiyo hiyo kwenye AY-Robots, ikiwemo pale ambapo jukwaa halisaidii.

Unachohitaji kujua

  • ACT hufundishwa kutoka mwanzo: hakuna mfumo msingi, hakuna mafunzo ya awali, hakuna pembejeo ya lugha. Kituo kimoja cha ukaguzi, kazi moja.
  • Karatasi: takriban vigezo milioni 80, karibu saa 5 kwenye RTX 2080 Ti ya 11 GB, 0.01 s ya utambuzi.
  • Mipangilio chaguomsingi ya lerobot: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, hatua 100000, seed 1000.
  • Kwenye AY-Robots: milisekunde 20 kwa kila hatua, ya haraka zaidi kati ya tano. Vipindi 50 angalau, LeRobot v3.0, kadi ya 24 GB, USD 1 hadi 3 kwa kila utekelezaji.
  • Inashinda kwenye kazi iliyoiona, na inapoteza mara tu unapotaka masharti ya lugha.
Matoleo gani haya yanaeleza

Imekaguliwa Agosti 23, 2026 dhidi ya lerobot 0.6.x: pyproject.toml on main reads version = "0.6.2", newest tag v0.6.1, 3 August 2026. Mafunzo yanayoanza na python lerobot/scripts/train.py yanatangulia sehemu za kuingilia za koni lerobot-train, lerobot-record and lerobot-rollout.

ACT ni nini hasa

Action Chunking with Transformers inatokana na karatasi ya ALOHA, Kujifunza Udhibiti wa Mikono Miwili kwa Usahihi wa Juu kwa Kutumia Vifaa vya Gharama Nafuu, na Zhao, Kumar, Levine na Finn, arXiv, 23 Aprili 2023. Mfumo huo hurekodi kwa 50 Hz na kamera nne za wavuti zinazotiririsha 480x640 kwa 30 fps: mbili kwenye vishikio, moja juu, moja mbele. Muhtasari unadai ujuzi sita kwa asilimia 80 hadi 90 ya mafanikio, miongoni mwao kufungua kikombe cha mchuzi kisichoonekana wazi na kuweka betri, kutoka dakika 10 za maonyesho.

Sehemu ya maelezo ni muhimu zaidi wakati wa kupanga kipindi cha kurekodi: maonyesho 50 kwa kila kazi, isipokuwa Thread Velcro kwa 100, ambayo ni dakika 10 hadi 20 za data na dakika 30 hadi 60 za muda halisi baada ya kuhesabu uwekaji upya. Mafanikio si sawa pia: Thread Velcro huishia kwa asilimia 20, Put On Shoe kwa 92, Cup Open 84, Prep Tape 64.

Kigezo cha JuuKaratasi ya ALOHA, Jedwali IIIlerobot kwenye main
kiwango cha kujifunza1e-5optimizer_lr = 1e-5
ukubwa wa kundi8batch_size = 8, in TrainPipelineConfig not ACTConfig
tabaka za encoder / decoder4 / 7n_encoder_layers = 4 / n_decoder_layers = 1
ukubwa wa chunk k100chunk_size = 100
kipimo fiche cha zhaipo; Mchoro 11 unaonyesha makadirio ya 32 hadi 512latent_dim = 32
uunganishaji wa mudahaipo; --temporal_agg katika msimbo wa rejeatemporal_ensemble_coeff = None
Safu ya tabaka la avkodari si kosa la uchapaji

Karatasi inaorodhesha tabaka 7 za avkodari, lerobot inasafirisha 1, kwa makusudi. Maoni katika configuration_act.py yanasema utekelezaji wa asili una hitilafu inayomaanisha kuwa tabaka la kwanza tu ndilo linalotumika, ikinukuu suala la 25 katika tonyzhaozh/act: kichwa cha kitendo kinasoma hs[0], hivyo tabaka zote saba zinafanya kazi lakini pato la kwanza tu ndilo linafika kwenye utabiri. Suala hilo liko wazi na halijajibiwa tangu 23 Aprili 2024. lerobot inalingana na tabia iliyotoa matokeo yaliyochapishwa, si nambari iliyochapishwa. Ongeza --policy.n_decoder_layers na utafundisha modeli ambayo karatasi haikuwahi kutathmini.

Kugawanya vitendo ni wazo zima

Uigaji wa tabia wa kawaida huunganisha uchunguzi mmoja na kitendo kimoja, na makosa hujikusanya: mkengeuko huweka mkono nje ya usambazaji, na kutoa kitendo kibaya zaidi, na hatua thelathini baadaye kishika hakiko karibu na kitu. Kugawanya vitendo hutabiri vitendo k mara moja na kuvitekeleza, ikipunguza upeo halisi kwa sababu ya k. Pia inashughulikia kero maalum kwa data ya binadamu: waendeshaji wa mbali husitisha, na Markovian ya hatua moja sera haiwezi kuiga kusitisha kunakotegemea kilichotangulia.

Karatasi inachunguza k badala ya kudai. Kwa kuunganisha kwa muda kumezimwa, kwa wastani wa mipangilio minne, mafanikio huongezeka kutoka asilimia 1 kwa k = 1 hadi asilimia 44 kwa k = 100, kisha hupungua kwa 200 na 400 kadri sera inavyokaribia udhibiti wa wazi. Mchoro huo ndio sababu chaguo-msingi ni 100.

  • chunk_size: idadi ya vitendo vya baadaye ambavyo kidekodari hutabiri kwa kila pasi ya mbele. Chaguomsingi 100.
  • n_action_steps: ni vingapi kati ya hivyo unavyotekeleza kabla ya kuuliza tena. Chaguomsingi 100, hivyo lerobot huendesha kipande chote kwa kitanzi huru.
  • lerobot inathibitisha n_action_steps <= chunk_size na huibua ValueError ikiwa utaweka kinyume.

Kinachohitajika kiutendaji ni chunk_size kugawanywa na kasi ya fremu. Kwa fremu 30 kwa sekunde ambazo mifano ya SO-100 ya lerobot hutumia, kipande cha 100 huahidi takriban sekunde 3.3 kutoka uchunguzi mmoja. Ikiwa kazi inahitaji marekebisho ndani ya dirisha hilo, punguza n_action_steps, si chunk_size: unaweka utabiri mrefu na kuchunguza tena mara nyingi zaidi.

bash
# 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=cuda
Kufupisha sehemu iliyotekelezwa ya kipande bila kufupisha utabiri.
Mtego wa kuunganisha kwa muda

Weka --policy.temporal_ensemble_coeff na lerobot inahitaji n_action_steps = 1, ikitoa NotImplementedError vinginevyo. Kuunganisha huuliza sera kila hatua ya muda na kuchanganya utabiri unaoingiliana kwa hatua hiyo ya muda na uzito w_i = exp(-m * i), wa zamani zaidi akipata w_0. Karatasi inaiweka kwa asilimia 3.3 kwa ACT: halisi lakini ya kawaida, na inazidisha idadi ya utabiri kwa urefu wa kipande. Inafaa kwa 20 ms kwa kila hatua, si kwa 485 ms. Tazama inference latency.

Wakati ACT inaposhinda modeli msingi

Sera tano zinazoweza kufunzwa zikiwa sambamba, pamoja na nambari ambazo AY-Robots hupima na kutumia kuamua ukubwa wa GPU inayoikodi.

SeraFamiliaVigezoKwa hatuaKiwango cha GPUVipindi vya chiniSeti ya data
ACTTransformer ya kugawanya, kutoka mwanzo~80 M20 msRTX 4090 / 24 GB50LeRobot v3.0
SmolVLAVLA iliyoshikana~450 M245 msRTX 4090 / 24 GB30LeRobot v3.0
GR00T N1.7Msingi wa VLA, kichwa cha usambaaji~3 B (~40 M trained)152 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5Msingi wa VLA, mtangulizi~3 B165 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5VLA ya kulinganisha mtiririko, angalia ulinganishaji wa mtiririko~3 B, PaliGemma backbone485 msA100 / H100 80 GB50LeRobot v3.0
Ukurasa wa sera za AY-Robots unaoonyesha jedwali la kulinganisha la ACT, SmolVLA, GR00T N1.5, GR00T N1.7 na Pi0.5 na idadi ya vigezo, mahitaji ya GPU, muda wa kusubiri wa inference na idadi ya chini ya vipindi
Jedwali la /policies: ACT ina idadi ndogo zaidi ya vigezo na muda mfupi zaidi wa hatua.
Kufunza ACT kuanzia mwanzo
Manufaa
  • Milisekunde 20 kwa hatua ya kitendo, ya haraka zaidi kati ya tano, kwenye kadi ya GB 24 si A100.
  • Dola 1 hadi 3 kwa kila uendeshaji dhidi ya 4 hadi 12 kwa darasa la 3 B.
  • Sahihi kwenye kazi zenye mguso mwingi ilizoziona: asilimia 88 na 96 kwenye Slide Ziploc na Slot Battery, ambapo mbinu za awali hazikuwahi kupita hatua ya kwanza.
Mabadilishano
  • Hakuna masharti ya lugha: mfuatano wa kazi hupuuzwa, kwa hivyo sehemu moja ya kukagua ni kazi moja.
  • Hakuna vipaumbele vya kisemantiki: kila kitu inachojua kilitokana na vipindi vyako 50.
  • Ujumlishaji finyu: sogeza kamera na utakuwa unafunza upya.
  • Inashindwa kimya kimya: hasara inapungua, mkono haufanyi chochote, kumbukumbu hazisemi chochote.
  • Faida ya kasi husaidia tu ikiwa hitimisho liko karibu na servomotor.

Chagua ACT wakati kazi na eneo zimerekebishwa na mwendo lazima uwe wa haraka na sahihi. Chagua wakati sehemu moja ya kukagua lazima ifunike maelekezo kadhaa. Kurasa mbili zinafanya kazi ya uamuzi ana kwa ana: na . Kwa vigezo vilivyochapishwa, huunganisha kila nambari na chanzo chake.

Unachohitaji kabla ya kuanza

Mkono mmoja wa mfuasi, mkono mmoja wa kiongozi kwa , angalau kamera moja, GPU ya GB 24. ACT husoma picha na nafasi za viungo pekee. Kamera mbili ndio mahali pazuri: mtazamo wa mbele uliowekwa kwa ajili ya mahali vitu vilipo, kamera ya mkono kwa ajili ya kile kinakaribia kugusa, kama ilivyo kwenye ALOHA.

MkonoServosVoltiGharama ya sehemuHali
SO-100Feetech STS32157.4 V~110 to 150 EURUsaidizi kamili, mkono wa marejeleo
SO-101Feetech STS32157.4 V~130 to 170 EURUsaidizi kamili
Koch v1.1Dynamixel XL330 / XL4305 V and 12 V rails~250 to 350 EURInaendana
LeKiwiFeetech STS3215 (arm)7.4 V arm, 12 V base~400 to 500 EURInaendana
7.4 V, si 12 V

SO-100 na SO-101 hutumia servos za Feetech STS3215 kwenye reli ya 7.4 V. Kuzipa 12 V huziharibu, kimya kimya kiasi kwamba watu hulaumu programu kwanza, na usambazaji wa Koch 12 V unaingia kimwili kwenye bodi ya SO-100. Angalia lebo. Dalili: servo haijibu, mkono unatetemeka kisha unalegea. Pia SO-100 dhidi ya SO-101.

Kutoka mkono tupu hadi seti ya data iliyorekodiwa

Mchakato ufuatao ni lerobot 0.6.x. Uruke ikiwa una mkono uliorekebishwa na seti ya data. Vinginevyo mwongozo wa kuanza wa SO-100 unashughulikia uunganishaji, mwongozo wa kurekodi unashughulikia kunasa na nyaraka za seti ya data umbizo.

  1. 1
    Sakinisha lerobot na nyongeza sahihi

    Kurekodi kunahitaji core_scripts, mafunzo training, serva za Feetech feetech. Python 3.12+.

    bash
    conda 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
  2. 2
    Pata bandari ya USB ya kila mkono

    Endesha ikiwa na mikono yote miwili imeunganishwa, ukichomoa mmoja unapoombwa. Kwenye Linux unaweza kuhitaji kufungua ruhusa za nodi.

    bash
    lerobot-find-port
    # on Linux, if the port exists but is unreadable:
    sudo chmod 666 /dev/ttyACM0
  3. 3
    Weka vitambulisho vya motor na kasi ya baud

    Kwenye SO-100 hii hutokea kabla ya kuunganisha: tofauti na SO-101 viunganishi haviwezi kufikiwa mara tu vinapojengwa. Skripti hupitia basi motor moja kwa wakati kutoka kwa kishika, ikiandika vitambulisho kwenye EEPROM.

    bash
    lerobot-setup-motors \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0
    
    lerobot-setup-motors \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1
  4. 4
    Rekebisha mikono yote miwili

    Weka kila kiungo katikati ya masafa yake, bonyeza Enter, kisha pitisha kila kimoja kupitia masafa yake kamili. Urekebishaji huruhusu sera iliyefunzwa kwenye mkono mmoja kuendeshwa kwenye mwingine. Tumia tena id sawa.

    bash
    lerobot-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
  5. 5
    Endesha kwa mbali mara moja na kamera zikiwa zimewashwa

    Kanuni ya jumla ya lerobot: unapaswa kuweza kufanya kazi ukiangalia tu picha za kamera. Ikiwa huwezi, ACT pia haiwezi. Hii inakamata seti mbaya za data zaidi kuliko utatuzi wa baadaye.

    bash
    lerobot-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
  6. 6
    Rekodi vipindi 50

    50 ni kiwango cha chini cha AY-Robots na kile ALOHA ilitumia kwa kila kazi. lerobot inashauri 10 kwa kila eneo la kitu, kamera zimewekwa sawa, mshiko thabiti. n inamaliza kipindi, r inarekodi upya, q inasimamisha na kusimba.

    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_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
Ukurasa wa mafunzo ya kurekodi wa AY-Robots unaoelezea jinsi ya kunasa seti ya data ya muundo wa LeRobot kutoka kipindi cha uendeshaji wa mbali
Mafunzo ya kurekodi. Mteja wa kompyuta ya mezani huandika mpangilio sawa na lerobot-record.
Mtego unaokula siku: seti ya data isiyo thabiti

ACT haina vipaumbele vya kutegemea, kwa hivyo kila utofauti unakuwa wa kudumu. Vitatu vya gharama kubwa zaidi: kamera iliyosogezwa kidogo kati ya kipindi cha 20 na 21, mwanga uliopita kwa sababu ulirekodi nusu ya seti alasiri, mshiko uliofanywa kwa njia mbili. Kila moja inatoa mkondo wa hasara unaoonekana kamilifu na mkono unaokwenda mahali pabaya. Tazama hasara inashuka, sera haifanyi chochote, sera inafanya kazi katika usanidi mmoja tu na kukusanya data ya mafunzo ya hali ya juu.

Kabla ya mafunzo, cheza tena angalau vipindi vitano. Muundo wa seti ya data ya LeRobot huhifadhi mitiririko ya kamera, hali za viungo na vitendo kwa kila kipindi, na uchezaji tena hurudisha vitendo hivyo kwenye mkono. Ikiwa uchezaji tena haufanyi kazi, data haijumuishi na mafunzo hayataibuni.

bash
lerobot-replay \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_follower \
    --dataset.repo_id=${HF_USER}/so100_cube \
    --dataset.episode=0
Inacheza tena kipindi cha 0. Ikiwa hii itashindwa, simamisha na rekodi upya.

Kufunza sera ya ACT

Huu ndio amri nzima. Kila kitu mahususi kwa ACT tayari ni chaguo-msingi, ndiyo maana ukurasa wa lerobot ACT unasema kuanza nao.

bash
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
Amri ya mafunzo kutoka nyaraka za lerobot 0.6.x, kwenye hifadhidata ya SO-100.

--policy.type=act hupakia ACTConfig, ambayo hujirekebisha kulingana na idadi ya mota na kamera ambazo seti yako ya data ilirekodi, kwa hivyo hutawahi kutangaza umbo la uchunguzi. --wandb.enable=true ni hiari na inafaa: mkunjo wa hasara ndio ishara pekee ya bei nafuu katika mchakato wa hatua 100000. Ratiba inatoka kwenye usanidi wa mafunzo wa lerobot, sio ACTConfig: hatua 100000, kundi 8, mbegu 1000, kituo cha ukaguzi kila hatua 20000, na kuweka kumbukumbu kila 200.

Mchakato kamili huacha saraka tano za vituo vya ukaguzi, 020000 hadi 100000, pamoja na kiungo cha ishara cha mwisho. Zihifadhi zote: sera bora mara nyingi si ile ya mwisho.

MpangilioChaguo-msingi cha lerobotFomu ya AY-Robots ACTMaoni
ukubwa wa kundi88Punguza kwanza ukifikia mipaka ya VRAM.
kiwango cha kujifunza1e-51e-5Sawa na karatasi ya ALOHA.
hatua za juu100000100000Takriban pale seti ya vipindi 50 inapoacha kuboreshwa.
mkusanyiko wa gradient11, haitumikiBadilisha ukubwa wa kundi badala yake.
mbegu1000imefichuliwaSehemu ya kuingilia ya tyro ya GR00T haina mbegu; mchakato wa ACT ndio unaoweza kurudiwa.
ukubwa wa kipande / idadi ya hatua za kitendo100 / 100100 / 100, inaweza kuhaririwaUpeo wa utabiri na utekelezaji. Punguza ya pili, sio ya kwanza.
marudio ya kituo cha ukaguzi20000haijafichuliwasaveSteps ni kifundo cha GR00T hapa.
Kukosa kumbukumbu ni tatizo la ukubwa wa kundi, sio tatizo la kadi

ACT kwa ukubwa wa kundi 8 na kamera mbili za 640x480 inatoshea vizuri kwenye GB 24. Inaacha kutoshea wakati watu wanapoongeza ukubwa wa kundi kwa kasi, au kuipa fremu za 1920x1080 ambazo mfano mmoja wa rekodi ya lerobot unaonyesha. Miundo miwili ya ResNet-18 kwa 1080p ina wasifu tofauti sana wa kumbukumbu. Punguza --batch_size hadi 4 kabla ya kukodisha kadi kubwa zaidi. Tazama kukosa kumbukumbu wakati wa mafunzo.

Muda: takriban saa 5 kwenye RTX 2080 Ti ya GB 11 kwenye karatasi, saa chache kwa hatua 100k kwa kila ukurasa wa ACT wa lerobot, saa 2 hadi 5 kwenye kiwango cha AY-Robots cha GB 24. Usiikate fupi. README ya repo ya marejeleo inasema sera inayoyumbayumba au kusimama mara kwa mara kwa kawaida inahitaji tu zaidi mafunzo, kwa sababu mafanikio na ulaini huendelea kuboreka baada ya hasara kufikia kiwango cha juu: kwa data halisi inahitaji angalau epoki 5000, au mara 3 hadi 4 urefu tena baada ya kiwango cha juu.

bash
lerobot-train \
  --config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
  --resume=true
Kuendeleza utekelezaji uliosimamishwa kutoka kwenye kituo chake cha mwisho.

Kuendesha sera iliyefunzwa kwenye mkono

Utekelezaji hutumia lerobot-rollout. Funguo za kamera lazima zilingane na zile zilizorekodiwa: sera iliyefunzwa kwenye front na wrist haitakubali cam0 na cam1, na rename_map haisaidii, kwani inahitaji kituo cha ukaguzi kilichofunzwa awali. Mfuatano wa kazi unaweza kuachwa; mfano wa lerobot wenyewe unauweka kama unaoweza kurukwa kwa ACT.

bash
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=60
Utekelezaji huru bila kurekodi. Tumia --strategy.type=sentry kurekodi vipindi vya tathmini.
Amri hii ilibadilishwa jina hivi karibuni, hivyo mafunzo ya zamani hayakubaliani

Tathmini ilikuwa ikifanywa kupitia lerobot-record --policy.path=.... Katika 0.6.x, ni lerobot-rollout na kiteuzi cha --strategy.type: base, sentry (kurekodi na kupakia kiotomatiki), highlight (buffer ya pete iliyohifadhiwa kwa kubonyeza kitufe), dagger (binadamu katika mzunguko) na episodic. Kufikia Agosti 23, 2026, ukurasa wa nyaraka wa ACT bado unasema "kutumia amri ya lerobot-record" moja kwa moja juu ya kizuizi kinachoendesha lerobot-rollout. Fuata amri, si sentensi.

Ili kubandika sehemu ya kukagua badala ya modeli ya mwisho, ongeza --policy.pretrained_revision. Hiyo inahitaji utekelezaji uwe umeanza na --save_checkpoint_to_hub=true, imezimwa kwa chaguo-msingi: bila hiyo lerobot inasukuma modeli ya mwisho na hakuna kingine. Kwa hiyo, kila sehemu ya kukagua inawekewa lebo na hatua yake iliyojazwa sifuri, hivyo --policy.pretrained_revision=060000 inarejesha ile ya hatua 60000. Kuilinganisha na 100000 kwenye mkono halisi ndio jaribio la bei nafuu zaidi linalopatikana.

Njia mbili za kufikia sehemu moja ya kukagua

Yote yaliyo hapo juu ni njia ya mikono na inafanya kazi. Njia ya jukwaa inabadilisha udhibiti kwa kutomiliki GPU au mazingira ya Python.

  1. Sakinisha lerobot 0.6.x na core_scripts, training, feetech, ffmpeg.
  2. Pata bandari, weka vitambulisho vya motor, rekebisha mikono yote miwili, rekodi vipindi 50.
  3. Cheza tena vipindi vichache ili kuthibitisha data ina kazi husika.
  4. Kodisha au miliki GPU ya 24 GB, linganisha CUDA na PyTorch, endesha lerobot-train --policy.type=act.
  5. Subiri masaa machache, kisha endesha lerobot-rollout kwenye mashine iliyo karibu na mkono.
bash
# 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=cuda
Nini njia hii inakupa

Udhibiti kamili: hariri configuration_act.py, ongeza kamera, tawi la mkufunzi. Kwa utafiti badala ya kusafirisha kazi, jukwaa ni kero.

Matrix ya mafunzo ya AY-Robots yenye safu tano za sera na safu nne za mikono ya roboti, ambapo kila seli inaunganisha kwenye mwongozo maalum wa mafunzo kwa mchanganyiko huo wa modeli na mkono.
Matrix kwenye /train. Safu ya ACT dhidi ya safu ya SO-100 ni mwongozo wa makala haya.

Nini hasa kinachoenda vibaya

Karibu maumivu yote hayapo kwenye amri ya mafunzo. Yapo kwenye mambo yanayoizunguka, yamepangwa kwa jinsi yanavyojitokeza mara ya kwanza.

DaliliSababu ya kawaidaUkurasa
lerobot-find-port haionyeshi chochoteRuhusa za kiendeshi, kebo au nodimkono haujatambuliwa
Kamera haipo wakati wa kurekodiKielezo kimebadilika baada ya kuwasha upya, au kamera mbili kwenye kidhibiti kimoja cha USBkamera haijatambuliwa
Mafunzo yanakataa seti ya dataACT inataka v3.0, GR00T inahitaji v2.1seti ya data imekataliwa kama v3
CUDA imeishiwa kumbukumbuUkubwa wa bechi umeongezwa, au fremu za 1080p badala ya 480pkumbukumbu imeisha wakati wa mafunzo
Hasara inaonekana nzuri, mkono haufanyi chochoteData haina kazi, au kamera ilihamahasara inapungua, sera haifanyi chochote
Mwendo wa kutetemeka au kusimama katikati ya kipindiHaijafunzwa vya kutosha, kusimama kwenye mpaka wa kipande, au simu ya inference iliyoisha mudasera inaganda katikati ya mwendo

Safu mbili zinastahili kusisitizwa. ACT inafunzwa kwenye LeRobot v3.0 wakati kipakiaji cha GR00T kinagonga kwenye hiyo na kinahitaji v2.1, kwa hivyo seti ya data inayofunza ACT inaweza kufeli utekelezaji wa GR00T. Na safu ya mwisho ina marekebisho mawili: waandishi wa ACT hujibu mwendo wa kutetemeka kwa mafunzo zaidi, wakati na n_action_steps kwa 100 kusimama halisi hutua kwenye mpaka wa kipande, kusimama kunakoonekana kila sekunde 3.3 kwa 30 fps. Mengine mawili ya kujua: kiungo kimoja kilichokufa kwa kawaida ni kitambulisho cha servo ambacho hakikuandikwa kamwe, na kibano kinachokaribia lakini hakifungi kamwe inamaanisha safu ndogo sana ya kibano katika maonyesho. Kielezo kamili: kurasa za aina za hitilafu.

Gharama ya utekelezaji

KiwangoMiundoMuda wa kuendeshaBei kwa saaGharama kwa kila uendeshaji
RTX 4090 / 24 GBACT, SmolVLAsaa 2 hadi 50.30 to 0.60 USDkama 1 hadi 3 USD
A100 80 GB / H100GR00T N1.7, GR00T N1.5, Pi0.5saa 3 hadi 61.20 to 2.00 USDkama 4 hadi 12 USD

Huu ndio hoja ya kuanza na ACT hata kama unataka VLA baadaye. Uendeshaji wa ACT ulioshindwa unagharimu bei ya kahawa na hukujulisha ndani ya masaa kama seti yako ya data ina kazi hiyo. Uendeshaji wa GR00T ulioshindwa unagharimu mara nne zaidi kwa somo hilo hilo. Kuhamia kwenye GR00T N1.7 au SmolVLA baadaye ni mabadiliko ya fomu, sio ujenzi upya. Mandharinyuma: miundo ya maono-lugha-vitendo, mwongozo kamili wa SO-100, funza sera yako ya kwanza na ujifunzaji wa kuiga. Hakuna mkono? ukurasa wa moja kwa moja huonyesha SO-100 halisi ya kuendesha bila kujisajili.

Funza ACT kwenye SO-100 yako

Mwongozo wa mchanganyiko huu kamili: mipangilio chaguomsingi, kiwango cha GPU na gharama ya uendeshaji. Chagua seti ya data, backend inakodisha kadi na kuandika sehemu za kukagua.

Fungua mwongozo wa mafunzo
Je, kuna modeli ya ACT iliyefunzwa awali ninayoweza kurekebisha badala yake?

Hapana. ACT haina modeli ya msingi; inapatikana tu baada ya kuifunza. Hilo sio pengo katika zana, ndivyo ACT ilivyo: karatasi inafunza sera kutoka mwanzo kwa kila kazi. Kwa sehemu ya kukagua ya muuzaji, tumia GR00T N1.7 au Pi0.5.

Ninahitaji vipindi vingapi hasa?

50: kile ALOHA ilirekodi kwa kila kazi (100 kwa Thread Velcro, ngumu zaidi) na kiwango cha chini cha AY-Robots. lerobot inashauri takriban 10 kwa kila eneo la kitu, kamera zimewekwa sawa, mshiko thabiti. Vipindi hamsini safi vinashinda mia moja ambapo kamera ilisogea.

Je, nibadilishe chunk_size kutoka 100?

Kwa kawaida hapana. Upunguzaji huongezeka kutoka asilimia 1 kwa k = 1 hadi asilimia 44 kwa k = 100 na hupungua baadaye, kwa hivyo 100 inakaa karibu na kilele. Ikiwa mkono unajishughulisha kwa muda mrefu sana, punguza n_action_steps badala yake: kwa 30 fps, maswali 25 ya kurudia kila sekunde 0.8.

Uendeshaji wa mafunzo huchukua muda gani, na ninaweza kuukomesha mapema?

Saa mbili hadi tano kwenye kadi ya 24 GB kwa hatua 100000. Sehemu za kukagua hutua kila hatua 20000 na --resume=true huanzisha tena uendeshaji, kwa hivyo kusitisha mapema ni salama. Sio tu kwenye sehemu ya kwanza tambarare: ulaini huboreshwa baada ya hasara kutulia.

Hasara ilipungua na mkono bado unashindwa. Sasa nini?

Karibu kila mara seti ya data. Cheza tena vipindi vilivyorekodiwa kwenye mkono: ikiwa uchezaji tena haufanyi kazi, data haina hiyo. Kisha angalia kama kitu chochote kilihamia, hasa kamera. ACT haina vipaumbele, kwa hivyo msukumo kwenye kipindi cha 21 ni wa kudumu.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started