
lerobot සමඟ SO-100 මත Action Chunking Transformer එකක් මුල සිට පුහුණු කරන්න: act config, chunk_size සහ n_action_steps, 100000 පියවර කාලසටහන, 20 ms අනුමානය.
SO-100 ප්රතිපත්ති අතරින් ACT යනු සුවිශේෂී එකකි. GR00T N1.7 සහ N1.5 ආරම්භ වන්නේ nvidia/GR00T-N1.7-3B සහ nvidia/GR00T-N1.5-3B වෙතින් වන අතර, Pi0.5 ආරම්භ වන්නේ lerobot/pi05_base වෙතින්ය. ACT කිසිවකින් ආරම්භ නොවේ: එය පදනම් ආකෘතියක් (foundation model) නොවන නිසා මූලික චෙක්පොයින්ට් එකක් නොමැත. එය ආසන්න වශයෙන් මිලියන 80ක පරාමිති සහිත ට්රාන්ස්ෆෝමරයක් වන අතර, ඔබ එය එක් කාර්යයක් සඳහා, ඔබේ රොබෝ අත මත, ඔබේ ආලෝකකරණය යටතේ මුල සිට පුහුණු කරයි.
බිලියන 3ක පරාමිති සහිත VLA එකකට 152 සිට 485 ms අවශ්ය වන තැන, මෙය පාලන පියවරක් 20 ms තුළ ක්රියාත්මක කරන්නේ එබැවිනි, තවද එක් ධාවනයකට 4 සිට 12 USD වෙනුවට 1 සිට 3 USD වැය වේ. මෙම මාර්ගෝපදේශය අතින් සිදු කරන ක්රමය විස්තර කරයි lerobot මත SO-100 එකක් මත: වාර්තා කිරීම, act වින්යාසය, chunk_size සහ n_action_steps පාලනය කරන්නේ කුමක්දැයි, 100000 පියවර කාලසටහන, සහ රෝල්අවුට්. ඉන්පසු AY-Robots මත එම කාර්යයම, වේදිකාව උදව් නොකරන අවස්ථාද ඇතුළුව.
ඔබ දැනගත යුතු දේ
- •ACT මුල සිට පුහුණු වේ: මූලික ආකෘතියක් නැත, පූර්ව පුහුණුවක් නැත, භාෂා ආදානයක් නැත. එක් චෙක්පොයින්ට් එකක්, එක් කාර්යයක්.
- •පත්රිකාව: ආසන්න වශයෙන් මිලියන 80ක පරාමිති, 11 GB RTX 2080 Ti එකක පැය 5ක් පමණ, 0.01 s අනුමානය.
- •lerobot පෙරනිමි: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 steps, seed 1000.
- •AY-Robots මත: එක් පියවරකට 20 ms, පහෙන් වේගවත්ම. අවම වශයෙන් කථාංග 50ක්, LeRobot v3.0, 24 GB කාඩ්පතක්, එක් ධාවනයකට 1 සිට 3 USD.
- •එය දැක ඇති කාර්යයකදී ජයග්රහණය කරන අතර, ඔබට භාෂා තත්ත්වකරණය අවශ්ය වන මොහොතේදී පරාජය වේ.
2026 අගෝස්තු 23 දින lerobot 0.6.x ට එරෙහිව පරීක්ෂා කරන ලදී: pyproject.toml හි main හි version = "0.6.2" ලෙස සඳහන් වේ, නවතම ටැගය v0.6.1, 2026 අගෝස්තු 3. python lerobot/scripts/train.py සමඟ ආරම්භ වන නිබන්ධනයක් කොන්සෝල ප්රවේශ ස්ථාන lerobot-train, lerobot-record සහ lerobot-rollout වලට පෙර පැවතිණි.
ACT යනු ඇත්ත වශයෙන්ම කුමක්ද
Action Chunking with Transformers ALOHA පත්රිකාවෙන් පැමිණේ, Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, Zhao, Kumar, Levine සහ Finn විසින්, arXiv, 2023 අප්රේල් 23. මෙම උපකරණය 50 Hz වේගයකින් පටිගත කරන අතර, වෙබ් කැමරා හතරක් 480x640 විභේදනයෙන් 30 fps වේගයකින් විකාශනය කරයි: දෙකක් ග්රිපර් මත, එකක් ඉහළින්, එකක් ඉදිරිපසින්. සාරාංශය අනුව, විනිවිද පෙනෙන කුළුබඩු කෝප්පයක් විවෘත කිරීම සහ බැටරියක් ඇතුළු කිරීම ඇතුළු කුසලතා හයක් 80 සිට 90 ප්රතිශතයක් සාර්ථක වී ඇති අතර, එය විනාඩි 10ක නිරූපණ වලින් ලබාගෙන ඇත.
පටිගත කිරීමේ සැසියක් සැලසුම් කිරීමේදී ප්රධාන කොටස වඩාත් ප්රයෝජනවත් වේ: එක් කාර්යයක් සඳහා නිරූපණ 50ක්, Thread Velcro සඳහා 100ක් හැර, එය දත්ත විනාඩි 10 සිට 20ක් සහ නැවත සැකසීම් ගණනය කළ පසු බිත්ති ඔරලෝසු වේලාව විනාඩි 30 සිට 60ක් වේ. සාර්ථකත්වය ද ඒකාකාරී නොවේ: Thread Velcro 20 ප්රතිශතයකින් අවසන් වේ, Put On Shoe 92, Cup Open 84, Prep Tape 64.
| අධිපරාමිතිය | ALOHA පත්රිකාව, III වගුව | ප්රධාන lerobot |
|---|---|---|
| ඉගෙනුම් අනුපාතය | 1e-5 | optimizer_lr = 1e-5 |
| කණ්ඩායම් ප්රමාණය | 8 | batch_size = 8, in TrainPipelineConfig not ACTConfig |
| එන්කෝඩර් / ඩිකෝඩර් ස්ථර | 4 / 7 | n_encoder_layers = 4 / n_decoder_layers = 1 |
| ඛණ්ඩ ප්රමාණය k | 100 | chunk_size = 100 |
| z හි ගුප්ත මානය | absent; Fig. 11 shows a 32 to 512 projection | latent_dim = 32 |
| කාලික සමූහකරණය | absent; --temporal_agg in the reference code | temporal_ensemble_coeff = None |
මෙම පත්රිකාවේ විසංකේතක ස්ථර 7ක් ලැයිස්තුගත කර ඇත, lerobot හිතාමතාම 1ක් නිකුත් කරයි. configuration_act.py හි ඇති අදහස් දැක්වීමේ සඳහන් වන්නේ මුල් ක්රියාත්මක කිරීමේ දෝෂයක් ඇති බවත්, එයින් අදහස් කරන්නේ පළමු ස්ථරය පමණක් භාවිතා වන බවත්, tonyzhaozh/act හි 25 වන ගැටලුව උපුටා දක්වමින්: ක්රියා ශීර්ෂය hs[0] කියවන බැවින්, ස්ථර හතම ක්රියාත්මක වුවද, පළමු ප්රතිදානය පමණක් පුරෝකථනයට ළඟා වේ. එම ගැටලුව 2024 අප්රේල් 23 සිට විවෘතව ඇති අතර පිළිතුරු දී නොමැත. lerobot ප්රකාශිත ප්රතිඵල නිපදවූ හැසිරීමට ගැලපේ, මුද්රිත අංකයට නොවේ. --policy.n_decoder_layers වැඩි කළහොත්, පත්රිකාව කිසිදා ඇගයීමට ලක් නොකළ ආකෘතියක් පුහුණු කරනු ඇත.
ක්රියා ඛණ්ඩනය සම්පූර්ණ අදහසයි
සාමාන්ය චර්යාත්මක ක්ලෝනකරණය එක් නිරීක්ෂණයක් එක් ක්රියාවකට සිතියම්ගත කරයි, සහ දෝෂ එකතු වේ: අපගමනයක් මඟින් අත බෙදාහැරීමෙන් ඉවතට තල්ලු කරයි, නරක ක්රියාවක් නිපදවයි, සහ පියවර තිහකට පසු ග්රිපරය වස්තුව අසලවත් නොවේ. ක්රියා ඛණ්ඩනය එකවර k ක්රියා පුරෝකථනය කර ඒවා ක්රියාත්මක කරයි, ඵලදායී ක්ෂිතිජය k සාධකයකින් අඩු කරයි. එය මිනිස් දත්ත වලට විශේෂිත වූ කරදරයක් ද හසුරුවයි: ටෙලිඔපරේටර්වරු විරාමයක් ගනී, සහ තනි-පියවර Markovian ප්රතිපත්තියක් පෙර සිදු වූ දේ මත රඳා පවතින විරාමයක් ආකෘතිගත කළ නොහැක.
මෙම පත්රිකාව k තහවුරු කරනවාට වඩා එය ඉවත් කරයි. තාවකාලික සමූහගත කිරීම අක්රියව තිබියදී, සැකසුම් හතරක් හරහා සාමාන්යකරණය කළ විට, k = 1 හිදී 1% සිට k = 100 හිදී 44% දක්වා සාර්ථකත්වය ඉහළ යයි, පසුව ප්රතිපත්තිය විවෘත-ලූප් පාලනයට ළඟා වන විට 200 සහ 400 දී අඩු වේ. එම වක්රය පෙරනිමි අගය 100 වීමට හේතුවයි.
- chunk_size: ඩිකෝඩරය එක් ෆෝවර්ඩ් පාස් එකකට පුරෝකථනය කරන අනාගත ක්රියා කීයක්ද. පෙරනිමිය 100.
- n_action_steps: නැවත විමසීමට පෙර ඔබ ඒවායින් කීයක් ක්රියාත්මක කරනවාද. පෙරනිමිය 100, එබැවින් lerobot සම්පූර්ණ චන්ක් එක විවෘත ලූපයකින් ධාවනය කරයි.
- lerobot මගින්
n_action_steps <= chunk_sizeවලංගු කරන අතර ඔබ එය වැරදි ලෙස ලබා දෙන්නේ නම්ValueErrorඑකක් මතු කරයි.
ක්රියාකාරීව වැදගත් වන්නේ chunk_size රාමු අනුපාතයෙන් බෙදීමයි. lerobot හි SO-100 උදාහරණ භාවිතා කරන 30 fps දී, 100 ක චන්ක් එකක් එක් නිරීක්ෂණයකින් තත්පර 3.3 ක් පමණ කැප කරයි. කාර්යයට එම කවුළුව තුළ නිවැරදි කිරීමක් අවශ්ය නම්, අඩු කරන්න n_action_steps, නොව chunk_size: ඔබ දිගු පුරෝකථනය තබාගෙන නිතර නිතර නැවත නිරීක්ෂණය කරන්න.
# 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--policy.temporal_ensemble_coeff සකසන්න, එවිට lerobot මගින් n_action_steps = 1 අවශ්ය වන අතර, එසේ නොමැති නම් NotImplementedError එකක් මතු කරයි. එන්සෙම්බල් කිරීම මගින් සෑම ටයිම්ස්ටෙප් එකකදීම ප්රතිපත්තිය විමසන අතර, එම ටයිම්ස්ටෙප් එක සඳහා අතිච්ඡාදනය වන පුරෝකථන w_i = exp(-m * i) බර සමඟ මිශ්ර කරයි, පැරණිම එකට w_0 ලැබේ. පත්රිකාව ACT සඳහා එය සියයට 3.3 ක් ලෙස දක්වයි: සැබෑ නමුත් මධ්යස්ථ වන අතර, එය අනුමාන ගණන චන්ක් දිගෙන් ගුණ කරයි. එක් පියවරකට 20 ms දී දැරිය හැකි නමුත් 485 ms දී නොවේ. අනුමාන ප්රමාදය බලන්න.
ACT මූලික ආකෘතියක් පරදවන විට
පුහුණු කළ හැකි ප්රතිපත්ති පහ එක ළඟ, AY-Robots මනින සහ එය කුලියට ගන්නා GPU හි ප්රමාණය තීරණය කිරීමට භාවිතා කරන සංඛ්යා සමඟ.
| ප්රතිපත්තිය | වර්ගය | පරාමිති | එක් පියවරකට | GPU ස්ථරය | අවම කථාංග | දත්ත කට්ටලය |
|---|---|---|---|---|---|---|
| ACT | මුල සිටම, කොටස් කරන ට්රාන්ස්ෆෝමරය | ~80 M | 20 ms | RTX 4090 / 24 GB | 50 | LeRobot v3.0 |
| SmolVLA | සංයුක්ත VLA | ~450 M | 245 ms | RTX 4090 / 24 GB | 30 | LeRobot v3.0 |
| GR00T N1.7 | VLA පදනම, විසරණ ශීර්ෂය | ~3 B (~40 M trained) | 152 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| GR00T N1.5 | VLA පදනම, පූර්වගාමියා | ~3 B | 165 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 or v2.1 |
| Pi0.5 | ප්රවාහ-ගැලපෙන VLA, බලන්න ප්රවාහ ගැලපීම | ~3 B, PaliGemma backbone | 485 ms | A100 / H100 80 GB | 50 | LeRobot v3.0 |

- ක්රියාකාරී පියවරකට මිලි තත්පර 20 ක්, පහෙන් වේගවත්ම, A100 එකක් නොව 24 GB කාඩ්පතක.
- 3 B පන්තිය සඳහා 4 සිට 12 දක්වා වූ අගයට සාපේක්ෂව එක් ධාවනයකට 1 සිට 3 USD.
- එය දැක ඇති ස්පර්ශ බහුල වැඩ වලදී නිරවද්යයි: Slide Ziploc සහ Slot Battery මත 88 සහ 96 ප්රතිශතය, පෙර ක්රම කිසි විටෙක පළමු අදියර සමත් නොවූ තැන්වලදී.
- භාෂා තත්ත්වකරණය නැත: කාර්යය තන්තුව නොසලකා හරිනු ලැබේ, එබැවින් එක් පිරික්සුම් ලක්ෂ්යයක් එක් කාර්යයකි.
- අර්ථකථන පූර්ව දැනුමක් නැත: එය දන්නා සියල්ල ඔබගේ කථාංග 50 න් ලැබුණි.
- පටු සාමාන්යකරණය: කැමරාවක් චලනය කළහොත් ඔබට නැවත පුහුණු කිරීමට සිදුවේ.
- එය නිහඬව අසාර්ථක වේ: අලාභය අඩු වේ, අත කිසිවක් නොකරයි, ලොග් වල කිසිවක් සඳහන් නොවේ.
- වේග වාසිය උපකාරී වන්නේ අනුමානය සර්වෝ යාන්ත්රණ අසල තිබේ නම් පමණි.
කාර්යය සහ දර්ශනය ස්ථාවර වන විට සහ චලනය වේගවත් හා නිරවද්ය විය යුතු විට ACT තෝරන්න. එක් එක් පිරික්සුම් ලක්ෂ්යයක් උපදෙස් කිහිපයක් ආවරණය කළ යුතු විට තෝරන්න. පිටු දෙකක් තීරණය මුහුණට මුහුණ ලා ක්රියා කරයි: සහ . ප්රකාශිත මිණුම් සලකුණු සඳහා, සෑම අංකයක්ම එහි මූලාශ්රයට සම්බන්ධ කරයි.
ඔබ ආරම්භ කිරීමට පෙර අවශ්ය දේ
එක් අනුගාමික අතක්, සඳහා එක් නායක අතක්, අවම වශයෙන් එක් කැමරාවක්, 24 GB GPU එකක්. ACT කියවන්නේ රූප සහ සන්ධි පිහිටීම් පමණි. කැමරා දෙකක් වඩාත් සුදුසුයි: දේවල් කොහේදැයි බැලීමට ස්ථාවර ඉදිරිපස දසුනක්, සහ ස්පර්ශ කිරීමට ආසන්න දේ සඳහා මැණික් කටු කැමරාවක්, ALOHA හි මෙන්.
| අත | සර්වෝ | වෝල්ටීයතාව | කොටස් පිරිවැය | තත්ත්වය |
|---|---|---|---|---|
| SO-100 | Feetech STS3215 | 7.4 V | ~110 to 150 EUR | සම්පූර්ණ සහාය, යොමු අත |
| SO-101 | Feetech STS3215 | 7.4 V | ~130 to 170 EUR | සම්පූර්ණ සහාය |
| Koch v1.1 | Dynamixel XL330 / XL430 | 5 V and 12 V rails | ~250 to 350 EUR | අනුකූල |
| LeKiwi | Feetech STS3215 (arm) | 7.4 V arm, 12 V base | ~400 to 500 EUR | අනුකූල |
SO-100 සහ SO-101 Feetech STS3215 සර්වෝ 7.4 V රේල් පීල්ලක ක්රියාත්මක වේ. ඒවාට 12 V සැපයීමෙන් ඒවා විනාශ වේ, එය නිහඬව සිදුවන නිසා මිනිසුන් මුලින්ම දොස් පවරන්නේ මෘදුකාංගයට වන අතර, Koch 12 V සැපයුමක් SO-100 පුවරුවකට භෞතිකව ගැලපේ. ලේබලය පරීක්ෂා කරන්න. රෝග ලක්ෂණ: සර්වෝ ප්රතිචාර නොදැක්වීම, අත ගැස්සී පසුව එල්ලා වැටීම. තවද SO-100 එදිරිව SO-101.
හිස් අතේ සිට වාර්තාගත දත්ත කට්ටලය දක්වා
පහත ප්රවාහය lerobot 0.6.x වේ. ඔබට ක්රමාංකනය කරන ලද අතක් සහ දත්ත කට්ටලයක් තිබේ නම් මෙය මඟ හරින්න. එසේ නොමැතිනම් SO-100 ආරම්භක මාර්ගෝපදේශය එකලස් කිරීම ආවරණය කරයි, වාර්තා කිරීමේ මාර්ගෝපදේශය ග්රහණය කිරීම ආවරණය කරයි, සහ දත්ත කට්ටල ලේඛන ආකෘතිය ආවරණය කරයි.
- 1නිවැරදි අමතර දේ සමඟ lerobot ස්ථාපනය කරන්න
පටිගත කිරීම සඳහා `core_scripts`, පුහුණුව සඳහා `training`, Feetech සර්වෝ සඳහා `feetech` අවශ්ය වේ. 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 - 2සෑම අතකම USB පෝට් එක සොයන්න
අත් දෙකම සම්බන්ධ කර ධාවනය කරන්න, විමසූ විට එකක් විසන්ධි කරන්න. Linux මත ඔබට නෝඩ් අවසර විවෘත කිරීමට අවශ්ය විය හැක.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3මෝටර් හැඳුනුම්පත් සහ බෝඩ් අනුපාතය සකසන්න
SO-100 මත මෙය එකලස් කිරීමට පෙර සිදු වේ: SO-101 මෙන් නොව, සම්බන්ධක සෑදූ පසු ළඟා විය නොහැක. ස්ක්රිප්ට් එක ග්රිපර් එකෙන් එකවර එක් මෝටරයක් බස් එක දිගේ ගමන් කර, EEPROM වෙත හැඳුනුම්පත් ලියයි.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 4අත් දෙකම ක්රමාංකනය කරන්න
සෑම සන්ධියක්ම එහි පරාසයේ මැදට සකසන්න, Enter ඔබන්න, ඉන්පසු එක් එක් එහි සම්පූර්ණ පරාසය හරහා ගෙන යන්න. ක්රමාංකනය මඟින් එක් අතක් මත පුහුණු කරන ලද ප්රතිපත්තියක් තවත් අතක් මත ධාවනය කිරීමට ඉඩ සලසයි. එකම
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 - 5කැමරා ක්රියාත්මක කර එක් වරක් දුරස්ථව ක්රියාත්මක කරන්න
lerobot හි සාමාන්ය රීතිය: ඔබට කැමරා රූප පමණක් බලා කාර්යය කිරීමට හැකි විය යුතුය. ඔබට නොහැකි නම්, ACT ටද නොහැක. මෙය පසුකාලීන දෝෂ නිවැරදි කිරීමට වඩා නරක දත්ත කට්ටල වැඩි ප්රමාණයක් හඳුනා ගනී.
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 - 6කථාංග 50ක් පටිගත කරන්න
50 යනු AY-Robots අවම අගය වන අතර ALOHA එක් කාර්යයක් සඳහා භාවිතා කළ අගයයි. lerobot වස්තු ස්ථානයකට 10ක්, කැමරා ස්ථාවරව, ග්රහණය ස්ථාවරව තබා ගැනීමට උපදෙස් දෙයි.
nමඟින් කථාංගයක් අවසන් කරයි,rනැවත පටිගත කරයි,qනවතා කේතනය කරයි.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 හට ආපසු යාමට පූර්ව දැනුමක් නොමැති බැවින්, සෑම නොගැලපීමක්ම ස්ථිර වේ. වඩාත්ම මිල අධික තුන: කථාංග 20 සහ 21 අතර කැමරාවක් තල්ලු කිරීම, දහවල් කාලයේදී කට්ටලයෙන් අඩක් පටිගත කළ නිසා ආලෝකය වෙනස් වීම, ග්රහණයක් ක්රම දෙකකින් සිදු කිරීම. සෑම එකක්ම පරිපූර්ණ පෙනුමක් ඇති පාඩු වක්රයක් සහ වැරදි ස්ථානයකට යන අතක් ලබා දෙයි. පාඩු අඩු වේ, ප්රතිපත්තිය කිසිවක් නොකරයි, ප්රතිපත්තිය ක්රියා කරන්නේ එක් සැකසුමක පමණි සහ උසස් තත්ත්වයේ පුහුණු දත්ත එකතු කිරීම බලන්න.
පුහුණු කිරීමට පෙර, අවම වශයෙන් කථාංග පහක් නැවත ධාවනය කරන්න. කැමරා ප්රවාහ, සන්ධි තත්ව සහ ක්රියා ගබඩා කරයි , සහ නැවත ධාවනය එම ක්රියා අතට ආපසු තල්ලු කරයි. නැවත ධාවනය කාර්යය නොකරන්නේ නම්, දත්ත එය අඩංගු නොවන අතර පුහුණුව එය නිර්මාණය නොකරනු ඇත.
lerobot-replay \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_cube \
--dataset.episode=0ACT ප්රතිපත්තිය පුහුණු කිරීම
මෙය සම්පූර්ණ විධානයයි. ACT-විශේෂිත සියල්ල දැනටමත් පෙරනිමියකි, එබැවින් lerobot ACT පිටුව පවසන්නේ ඒවායින් ආරම්භ කරන ලෙසයි.
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 මඟින් ACTConfig පූරණය කරයි, එය ඔබගේ දත්ත කට්ටලය වාර්තා කළ මෝටර සහ කැමරා ගණනට අනුවර්තනය වේ, එබැවින් ඔබට නිරීක්ෂණ හැඩය කිසිවිටෙක ප්රකාශ කිරීමට අවශ්ය නොවේ. --wandb.enable=true විකල්ප වන අතර එය වටී: පියවර 100000 ක ධාවනයකදී පාඩු වක්රය එකම ලාභ සංඥාවයි. කාලසටහන ACTConfig වෙතින් නොව lerobot හි පුහුණු වින්යාසයෙන් පැමිණේ: පියවර 100000, කණ්ඩායම් 8, බීජය 1000, සෑම පියවර 20000 කට වරක් චෙක්පොයින්ට් එකක්, සෑම 200 කට වරක් ලොග් කිරීම.
සම්පූර්ණ ධාවනයකින් චෙක්පොයින්ට් ඩිරෙක්ටරි පහක්, 020000 සිට 100000 දක්වා, සහ අවසාන සිම්ලින්ක් එකක් ඉතිරි වේ. ඒවා සියල්ලම තබා ගන්න: හොඳම ප්රතිපත්තිය බොහෝ විට අවසාන එක නොවේ.
| සැකසුම | lerobot පෙරනිමි | AY-Robots ACT ආකෘතිය | අදහස් |
|---|---|---|---|
| කණ්ඩායම් ප්රමාණය | 8 | 8 | ඔබ VRAM සීමාවන්ට ළඟා වුවහොත් මුලින්ම මෙය අඩු කරන්න. |
| ඉගෙනුම් අනුපාතය | 1e-5 | 1e-5 | ALOHA පත්රිකාවේ ඇති ආකාරයටමයි. |
| උපරිම පියවර ගණන | 100000 | 100000 | දළ වශයෙන් කථාංග 50 ක කට්ටලයක් වැඩිදියුණු වීම නතර වන ස්ථානය. |
| ග්රේඩියන්ට් සමුච්චය | 1 | 1, does not apply | ඒ වෙනුවට කණ්ඩායම් ප්රමාණය වෙනස් කරන්න. |
| බීජය | 1000 | exposed | GR00T හි tyro ඇතුල්වීමේ ස්ථානයට බීජයක් නොමැත; ACT ධාවන යනු ප්රතිනිෂ්පාදනය කළ හැකි ඒවාය. |
| chunk_size / n_action_steps | 100 / 100 | 100 / 100, editable | අනාවැකි සහ ක්රියාත්මක කිරීමේ ක්ෂිතිජය. දෙවැන්න අඩු කරන්න, පළමුවැන්න නොවේ. |
| චෙක්පොයින්ට් සංඛ්යාතය | 20000 | not exposed | මෙහි saveSteps යනු GR00T හි පාලනයකි. |
640x480 කැමරා දෙකක් සහිත කණ්ඩායම් ප්රමාණය 8 හි ACT, 24 GB මත පහසුවෙන් ක්රියා කරයි. මිනිසුන් වේගය සඳහා කණ්ඩායම් ප්රමාණය වැඩි කරන විට, හෝ lerobot පටිගත කිරීමේ උදාහරණයක් පෙන්වන 1920x1080 රාමු එයට ලබා දෙන විට එය ක්රියා කිරීම නතර කරයි. 1080p හි ResNet-18 බැක්බෝන් දෙකක් ඉතා වෙනස් මතක පැතිකඩක් ඇත. විශාල කාඩ්පතක් කුලියට ගැනීමට පෙර --batch_size 4 දක්වා අඩු කරන්න. පුහුණුවේදී මතකය අවසන් වීම බලන්න.
කාලය: පත්රිකාවේ සඳහන් පරිදි 11 GB RTX 2080 Ti එකක පැය 5ක් පමණ, lerobot හි ACT පිටුවට අනුව 100k පියවර සඳහා පැය කිහිපයක්, AY-Robots 24 GB ස්ථරයේ පැය 2 සිට 5 දක්වා. එය කෙටි නොකරන්න. යොමු ගබඩාවේ README පවසන්නේ, ගැස්සෙන හෝ නතර වන ප්රතිපත්තියකට සාමාන්යයෙන් අවශ්ය වන්නේ තවත් පුහුණුව, මන්ද පාඩු ස්ථාවර වූ පසු සාර්ථකත්වය සහ සුමට බව දිගින් දිගටම වැඩි දියුණු වන බැවිනි: සැබෑ ලෝක දත්ත සඳහා එයට අවම වශයෙන් යුග 5000ක් හෝ ස්ථාවර වීමෙන් පසු නැවතත් දිගෙන් 3 සිට 4 ගුණයක් අවශ්ය වේ.
lerobot-train \
--config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
--resume=trueපුහුණු කළ ප්රතිපත්තිය අත මත ක්රියාත්මක කිරීම
යෙදවීම සඳහා lerobot-rollout භාවිතා කරයි. කැමරා යතුරු පටිගත කළ ඒවාට ගැළපිය යුතුය: front සහ wrist මත පුහුණු කළ ප්රතිපත්තියක් cam0 සහ cam1 භාර නොගනී, තවද rename_map උදව් නොකරයි, මන්ද එයට පූර්ව පුහුණු කළ පිරික්සුම් ස්ථානයක් අවශ්ය වන බැවිනි. කාර්ය තන්තුව මඟ හැරිය හැක; lerobot හිම උදාහරණය 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=60ඇගයීම lerobot-record --policy.path=... හරහා ක්රියාත්මක විය. 0.6.x හිදී එය lerobot-rollout වන අතර --strategy.type තේරීමක් ඇත: base, sentry (ස්වයංක්රීය උඩුගත කිරීම සමඟ පටිගත කිරීම), highlight (යතුරු එබීමෙන් සුරකින ලද රින්ග් බෆරය), dagger (ක්රියාවලියට මිනිසා සම්බන්ධ කිරීම) සහ episodic. 2026 අගෝස්තු 23 වන විට, ACT ලේඛන පිටුවේ lerobot-rollout ක්රියාත්මක වන බ්ලොක් එකකට ඉහළින් තවමත් "lerobot-record විධානය භාවිතා කිරීම" ලෙස සඳහන් වේ. වාක්යය නොව විධානය අනුගමනය කරන්න.
අවසාන ආකෘතියට වඩා චෙක්පොයින්ට් එකක් සවි කිරීමට, එකතු කරන්න --policy.pretrained_revision. ඒ සඳහා ධාවනය ආරම්භ වී තිබිය යුතුය --save_checkpoint_to_hub=true, පෙරනිමියෙන් අක්රියයි: එය නොමැතිව lerobot අවසාන ආකෘතිය පමණක් තල්ලු කරයි. එය සමඟ, සෑම චෙක්පොයින්ට් එකක්ම එහි ශුන්ය-පිරවූ පියවර සමඟ ටැග් කර ඇත, එබැවින් --policy.pretrained_revision=060000 60000 පියවර එකක් ප්රතිසාධනය කරයි. සැබෑ අත මත 100000 ට එරෙහිව එය සංසන්දනය කිරීම ලබා ගත හැකි ලාභම අත්හදා බැලීමයි.
එකම චෙක්පොයින්ට් එකට මාර්ග දෙකක්
ඉහත සියල්ල අතින් කරන ක්රමය වන අතර එය ක්රියා කරයි. වේදිකා ක්රමය මඟින් GPU එකක් හෝ Python පරිසරයක් අයිති කර නොගැනීම සඳහා පාලනය හුවමාරු කරයි.
- `core_scripts`, `training`, `feetech`, ffmpeg සමඟ lerobot 0.6.x ස්ථාපනය කරන්න.
- වරායන් සොයා ගන්න, මෝටර් හැඳුනුම්පත් සකසන්න, අත් දෙකම ක්රමාංකනය කරන්න, කථාංග 50ක් පටිගත කරන්න.
- දත්තවල කාර්යය අඩංගු බව තහවුරු කිරීමට කථාංග කිහිපයක් නැවත ධාවනය කරන්න.
- 24 GB GPU එකක් කුලියට ගන්න හෝ අයිති කර ගන්න, CUDA සහ PyTorch ගලපන්න, `lerobot-train --policy.type=act` ධාවනය කරන්න.
- පැය කිහිපයක් රැඳී සිටින්න, ඉන්පසු අතෙහි ඇති යන්ත්රයේ `lerobot-rollout` ධාවනය කරන්න.
# 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සම්පූර්ණ පාලනය: `configuration_act.py` සංස්කරණය කරන්න, කැමරාවක් එක් කරන්න, පුහුණුකරු ෆෝක් කරන්න. කාර්යයක් යැවීම වෙනුවට පර්යේෂණ සඳහා, වේදිකාවක් අවධානය වෙනතකට යොමු කිරීමකි.
- ඩෙස්ක්ටොප් සේවාදායකය සමඟ පටිගත කරන්න, නැතහොත් Hugging Face repo id එකක් හෝ දේශීය දත්ත කට්ටලයක් ගෙන එන්න.
- SO-100 මාර්ගෝපදේශය මත ACT විවෘත කර ආකෘතිය සහ දත්ත කට්ටලය තෝරන්න. පෙරනිමි අගයන් lerobot ඒවා වේ; chunkSize, nActionSteps, seed සහ logFreq සංස්කරණය කළ හැක.
- බැක්එන්ඩ් VRAM ප්රමාණයට ගැලපෙන GPU එකක් කුලියට ගන්නා අතර චෙක්පොයින්ට් වස්තු ගබඩාවට ලියයි.
/api/inference/podපසුව දේශීය රොබෝ සේවාදායකයාට ප්රතිපත්තිය සපයයි. අක්රිය මුර බල්ලෙක් පොඩ් එක විනාශ කරයි, එබැවින් කිසිවක් නිහඬව බිල්පත් නොවේ.- එම මෙහෙයුම් CLI, MCP සේවාදායකය සහ පුහුණු ලේඛන තුළ පවතී.
එය ඔබගේ දත්ත නිවැරදි නොකරයි: කැමරාවක් චලනය වූ දත්ත කට්ටලයක් මෙහිදීත් ඒ තරමටම නරක ලෙස පුහුණු වන අතර, පෝරමයට එය හඳුනාගත නොහැක. එය ප්රමාද ගැටලුවද ඉවත් නොකරයි. පාලන ලූපය එක් ක්රියාකාරී පියවරකට 20 සිට 485 ms දක්වා වන අතර, පොදු අන්තර්ජාල වට සංචාර ඉහළින්ම පවතී, ACT වඩාත් හානි වන්නේ එහි පියවර කෙටිම බැවිනි: 60 ms යනු Pi0.5 හි 485 ms සඳහා 12% ක මන්දගාමිත්වයක් වන නමුත් ACT හි 20 ms සඳහා පියවර හතර ගුණයක් වේ. දුරස්ථ අනුමානය මන්දගාමී තෝරා ගැනීම් සහ ස්ථානගත කිරීම් සඳහා සුදුසු වන අතර, වේගවත් ප්රතික්රියාශීලී චලනයන් සඳහා නොවේ.

ඇත්තටම වැරදෙන්නේ කුමක්ද
පුහුණු විධානය තුළ කිසිදු අපහසුතාවයක් නොමැත. එය අවට ඇති දේ තුළ පවතින අතර, ඒවා පළමු වරට ගැටලු ඇති කරන වාර ගණන අනුව පෙළගස්වා ඇත.
| රෝග ලක්ෂණය | සාමාන්ය හේතුව | පිටුව |
|---|---|---|
| lerobot-find-port කිසිවක් නොපෙන්වයි | ධාවකය, කේබලය හෝ නෝඩ් අවසර | හස්තය හඳුනා නොගනී |
| පටිගත කිරීමේදී කැමරාව අතුරුදහන් වී ඇත | නැවත ආරම්භ කිරීමේදී දර්ශකය වෙනස් වී ඇත, නැතහොත් එක් USB පාලකයක කැමරා දෙකක් | කැමරාව හඳුනා නොගනී |
| පුහුණුව දත්ත කට්ටලය ප්රතික්ෂේප කරයි | ACT v3.0 අවශ්ය වන අතර GR00T හට v2.1 අවශ්ය වේ | දත්ත කට්ටලය v3 ලෙස ප්රතික්ෂේප විය |
| CUDA මතකය අවසන් වී ඇත | කණ්ඩායම් ප්රමාණය වැඩි කර ඇත, නැතහොත් 480p වෙනුවට 1080p රාමු | පුහුණුවේදී මතකය අවසන් වීම |
| පාඩුව විශිෂ්ටයි, හස්තය කිසිවක් නොකරයි | දත්තවල කාර්යය නොමැත, නැතහොත් කැමරාවක් චලනය වී ඇත | පාඩුව අඩු වේ, ප්රතිපත්තිය කිසිවක් නොකරයි |
| කථාංගය මැදදී ගැස්සෙන චලනයක් හෝ විරාමයක් | ප්රමාණවත් ලෙස පුහුණු නොවීම, කොටසක මායිමේදී ඇනහිටීමක්, හෝ කාලය ඉක්මවා ගිය අනුමාන ඇමතුමක් | ප්රතිපත්තිය චලනය මැදදී නතර වේ |
පේළි දෙකක් අවධාරණය කළ යුතුය. ACT LeRobot v3.0 මත පුහුණු වන අතර GR00T හි ලෝඩරය එය මත බිඳ වැටී v2.1 අවශ්ය වේ, එබැවින් ACT පුහුණු කරන දත්ත කට්ටලයක් GR00T ධාවනයක් අසාර්ථක කළ හැකිය. අවසාන පේළියේ විසඳුම් දෙකක් ඇත: ACT කතුවරුන් ගැස්සෙන චලනයට වැඩි පුහුණුවකින් පිළිතුරු දෙන අතර, n_action_steps 100 දී සැබෑ ඇනහිටීමක් කොටසක මායිමක සිදු වේ, එය 30 fps දී සෑම තත්පර 3.3 කට වරක් දෘශ්යමාන විරාමයකි. තවත් කරුණු දෙකක් දැනගත යුතුය: තනි මිය ගිය සන්ධියක් සාමාන්යයෙන් කිසිදා ලියා නොතිබූ සර්වෝ හැඳුනුම්පතක්, සහ ළඟා වන නමුත් කිසිදා වැසී නොයන ග්රිපරයක් යනු නිරූපණවල ග්රිපර් පරාසය ඉතා අඩු බවයි. සම්පූර්ණ දර්ශකය: අසාර්ථක වීමේ ක්රම පිටු.
ධාවනයකට වැය වන මුදල
| තට්ටුව | මාදිලි | ධාවන කාලය | පැයකට මිල | එක් ධාවනයකට පිරිවැය |
|---|---|---|---|---|
| RTX 4090 / 24 GB | ACT, SmolVLA | 2 to 5 hours | 0.30 to 0.60 USD | about 1 to 3 USD |
| A100 80 GB / H100 | GR00T N1.7, GR00T N1.5, Pi0.5 | 3 to 6 hours | 1.20 to 2.00 USD | about 4 to 12 USD |
පසුව VLA එකක් අවශ්ය වුවද ACT සමඟ ආරම්භ කිරීමට මෙය තර්කයයි. අසාර්ථක ACT ධාවනයකට කෝපි කෝප්පයක මිල වැය වන අතර, ඔබේ දත්ත කට්ටලයේ කාර්යය අඩංගු දැයි පැය කිහිපයක් ඇතුළත ඔබට කියයි. අසාර්ථක GR00T ධාවනයකට එම පාඩම සඳහා සිව් ගුණයක් වැය වේ. ඉන්පසු GR00T N1.7 හෝ SmolVLA වෙත මාරු වීම යනු නැවත ගොඩනැගීමක් නොව, ආකෘති වෙනසකි. පසුබිම: දෘශ්ය-භාෂා-ක්රියාකාරී මාදිලි, එම සම්පූර්ණ SO-100 මාර්ගෝපදේශය, ඔබේ පළමු ප්රතිපත්තිය පුහුණු කරන්න සහ අනුකරණ ඉගෙනීම. අතක් නැද්ද? සජීවී පිටුව ලියාපදිංචි නොවී ධාවනය කිරීමට සැබෑ SO-100 එකක් විකාශනය කරයි.
ඔබේ SO-100 මත ACT පුහුණු කරන්න
මෙම නිශ්චිත සංයෝජනය සඳහා මාර්ගෝපදේශය: පෙරනිමි, GPU තට්ටුව සහ ධාවනයකට වැය වන දේ. දත්ත කට්ටලය තෝරන්න, පසුබිම කාඩ්පත කුලියට ගෙන චෙක්පොයින්ට් ලියයි.
පුහුණු මාර්ගෝපදේශය විවෘත කරන්නඒ වෙනුවට මට fine-tune කළ හැකි පූර්ව පුහුණු කළ ACT මාදිලියක් තිබේද?▾
නැත. ACT හට මූලික මාදිලියක් නොමැත; එය පවතින්නේ ඔබ එය පුහුණු කළ පසුව පමණි. එය මෙවලම්වල හිඩැසක් නොවේ, එය ACT යනු මෙයයි: පත්රිකාව එක් එක් කාර්යය සඳහා මුල සිටම ප්රතිපත්තියක් පුහුණු කරයි. විකුණුම්කරුවෙකුගේ චෙක්පොයින්ට් එකක් සඳහා, GR00T N1.7 හෝ Pi0.5 භාවිතා කරන්න.
මට ඇත්තටම කථාංග කීයක් අවශ්යද?▾
50: ALOHA එක් කාර්යයකට (Thread Velcro සඳහා 100, එය වඩාත්ම දුෂ්කර) සහ AY-Robots අවම වශයෙන් වාර්තා කළ දේ. lerobot වස්තු ස්ථානයකට 10 ක් පමණ උපදෙස් දෙයි, කැමරා ස්ථාවරව, ග්රහණය ස්ථාවරව. කැමරාව චලනය වූ සියයක් කථාංගවලට වඩා පිරිසිදු කථාංග පනහක් හොඳයි.
මම chunk_size 100 සිට වෙනස් කළ යුතුද?▾
සාමාන්යයෙන් නැත. k = 1 හිදී 1% සිට k = 100 හිදී 44% දක්වා ඇබ්ලේෂන් ඉහළ යන අතර පසුව අඩු වේ, එබැවින් 100 ඉහළට ආසන්නව පිහිටා ඇත. අත වැඩි වේලාවක් ක්රියාත්මක වන්නේ නම්, ඒ වෙනුවට n_action_steps අඩු කරන්න: 30 fps හිදී, සෑම තත්පර 0.8 කට වරක් 25 වතාවක් නැවත විමසීම් සිදු වේ.
පුහුණු ධාවනයකට කොපමණ කාලයක් ගතවේද, සහ මට එය කලින් නැවැත්විය හැකිද?▾
පියවර 100000 ක් සඳහා 24 GB කාඩ්පතක පැය දෙකේ සිට පහ දක්වා. චෙක්පොයින්ට් සෑම පියවර 20000 කට වරක් සුරැකෙන අතර --resume=true ධාවනය නැවත ආරම්භ කරයි, එබැවින් කලින් නැවැත්වීම ආරක්ෂිතයි. පළමු පැතලි කොටසේදී පමණක් නොවේ: පාඩුව ස්ථාවර වූ පසු සුමට බව වැඩි දියුණු වේ.
පාඩුව අඩු වූ අතර අත තවමත් අසාර්ථක වේ. දැන් කුමක්ද?▾
සෑම විටම පාහේ දත්ත කට්ටලය. වාර්තා කළ කථාංග අතේ නැවත ධාවනය කරන්න: නැවත ධාවනය කාර්යය නොකරන්නේ නම්, දත්තවල එය අඩංගු නොවේ. ඉන්පසු යමක් චලනය වී ඇත්දැයි පරීක්ෂා කරන්න, විශේෂයෙන් කැමරාවක්. ACT හට පූර්ව දැනුමක් නොමැත, එබැවින් 21 වන කථාංගයේදී සිදු කරන කුඩා තල්ලුවක් ස්ථිර වේ.
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