
Action Chunking Transformer-ийг SO-100 дээр lerobot ашиглан эхнээс нь сургах: act config, chunk_size болон n_action_steps, 100000 алхамт хуваарь, 20 мс таамаглал.
ACT нь SO-100 бодлогуудын дундаас онцгой нэг юм. GR00T N1.7 болон N1.5 нь nvidia/GR00T-N1.7-3B болон nvidia/GR00T-N1.5-3B, Pi0.5 нь lerobot/pi05_base. ACT нь юунаас ч эхэлдэггүй: суурь шалгах цэг байхгүй, учир нь энэ нь суурь загвар биш юм. Энэ нь таны гарт, таны гэрэлтүүлгийн дор, нэг даалгавар дээр эхнээс нь сургадаг ойролцоогоор 80 сая параметртэй трансформатор юм.
Тиймээс ч энэ нь 20 ms дотор хяналтын алхам гүйцэтгэдэг бол 3 тэрбум параметртэй VLA нь 152-485 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 алхам, seed 1000.
- •AY-Robots дээр: алхам тутамд 20 ms, таван загвараас хамгийн хурдан нь. Хамгийн багадаа 50 анги, LeRobot v3.0, 24 GB карт, нэг ажиллуулалт нь 1-3 USD.
- •Энэ нь өмнө нь харсан даалгавар дээр ялдаг бөгөөд хэлний нөхцөл шаардсан үед ялагддаг.
2026 оны 8-р сарын 23-нд lerobot-той харьцуулж шалгасан 0.6.x: pyproject.toml on main reads version = "0.6.2", newest tag v0.6.1, 3 August 2026. Эхлэх заавар python lerobot/scripts/train.py нь консолын нэвтрэх цэгүүдээс өмнө байсан lerobot-train, lerobot-record and lerobot-rollout.
ACT үнэндээ юу вэ
Трансформатор ашиглан үйлдлийг хуваах (Action Chunking with Transformers) нь ALOHA баримт бичгээс гаралтай, Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, Zhao, Kumar, Levine, Finn нарын arXiv-т 2023 оны 4-р сарын 23-нд нийтлэгдсэн. Энэхүү төхөөрөмж нь 50 Гц давтамжтайгаар бичлэг хийдэг бөгөөд дөрвөн вэбкамер 480x640 нягтралтай, 30 fps хурдтайгаар дамжуулдаг: хоёр нь баригч дээр, нэг нь дээрээс, нэг нь урдаас. Хураангуйд 10 минутын турш хийсэн үзүүлбэрээс зургаан ур чадварыг 80-90 хувийн амжилттай гүйцэтгэсэн гэж дурдсан бөгөөд үүнд тунгалаг амтлагчийн аягыг онгойлгох, зайг үүрэнд нь хийх зэрэг багтжээ.
Бичлэг хийх хуваарийг төлөвлөхөд энэ хэсэг илүү ашигтай: даалгавар тус бүрт 50 үзүүлбэр, харин Thread Velcro-д 100 үзүүлбэр, энэ нь 10-20 минутын өгөгдөл, дахин тохируулгыг тооцвол 30-60 минутын бодит хугацаа юм. Амжилт нь жигд биш: Thread Velcro 20 хувь, Put On Shoe 92 хувь, Cup Open 84 хувь, Prep Tape 64 хувьтай дууссан.
| Гиперпараметр | ALOHA баримт бичиг, Хүснэгт III | lerobot main дээр |
|---|---|---|
| Суралцах хурд | 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-ийн далд хэмжээс | байхгүй; Зураг 11 нь 32-аас 512-т проекцийг харуулсан | latent_dim = 32 |
| Цаг хугацааны ансамбль | байхгүй; лавлах код дахь --temporal_agg | temporal_ensemble_coeff = None |
Уг баримт бичигт 7 декодер давхарга жагсаасан боловч lerobot зориудаар 1-ийг нийлүүлдэг. `configuration_act.py` файлын тайлбарт анхны хэрэгжилт нь алдаатай бөгөөд зөвхөн эхний давхарга ашиглагддаг гэж дурдсан байна. Үүнийг tonyzhaozh/act-ийн 25-р асуудал-аас иш татсан: үйлдлийн толгой нь `hs[0]`-г уншдаг тул долоон давхарга бүгд ажилладаг боловч зөвхөн эхний гаралт нь таамаглалд хүрдэг. Энэ асуудал 2024 оны 4-р сарын 23-наас хойш нээлттэй бөгөөд хариугүй байна. lerobot нь хэвлэгдсэн үр дүнг гаргасан үйлдлийг тааруулдаг, хэвлэгдсэн тоог биш. `--policy.n_decoder_layers`-г нэмэгдүүлснээр та уг баримт бичигт хэзээ ч үнэлэгдээгүй загварыг сургах болно.
Үйлдлийн хэсэгчлэл бол гол санаа юм
Энгийн зан үйлийн клончлол нь нэг ажиглалтыг нэг үйлдэлтэй холбодог бөгөөд алдаанууд хуримтлагддаг: хазайлт нь гарыг хуваарилалтаас гаргаж, муу үйлдэл үүсгэдэг бөгөөд гучин алхмын дараа баригч нь объектын ойролцоо ч байдаггүй. Үйлдлийн хэсэгчлэл нь k үйлдлийг нэг дор таамаглаж, гүйцэтгэдэг бөгөөд ингэснээр үр дүнтэй хэтийн төлөвийг k хүчин зүйлээр бууруулдаг. Энэ нь мөн хүний өгөгдөлд хамаарах нэгэн бэрхшээлийг шийддэг: телеоператорууд түр зогсдог бөгөөд нэг алхамт Марковын бодлого нь өмнө нь юу болсноос хамаарах түр зогсолтыг загварчилж чадахгүй.
Уг баримт бичигт 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 ГБ карт дээр.
- 3 B ангиллын хувьд 4-12 ам.доллар байдаг бол нэг ажиллуулахад 1-3 ам.доллар.
- Холбоо барих шаардлагатай ажлууд дээр нарийн гүйцэтгэлтэй: Slide Ziploc болон Slot Battery дээр 88, 96 хувьтай, өмнөх аргууд эхний үе шатыг хэзээ ч давж байгаагүй.
- Хэлний нөхцөл байдал байхгүй: даалгаврын мөрийг үл тоомсорлодог тул нэг шалгах цэг нь нэг даалгавар юм.
- Урьдчилсан семантик мэдлэг байхгүй: түүний мэдэх бүх зүйл таны 50 ангиас ирсэн.
- Хязгаарлагдмал ерөнхийлөлт: камерыг хөдөлгөхөд та дахин сургалт хийнэ.
- Энэ нь чимээгүйхэн алдаа гаргадаг: алдагдал буурч, гар юу ч хийхгүй, логууд юу ч хэлэхгүй.
- Хурдны давуу тал нь зөвхөн дүгнэлт сервогийн хажууд байрласан тохиолдолд л тусална.
Даалгавар болон орчин тогтмол, хөдөлгөөн хурдан бөгөөд нарийн байх ёстой үед ACT-ийг сонго. Нэг шалгах цэг нь хэд хэдэн зааврыг хамарч байх ёстой үед -ыг сонго. Хоёр хуудас энэ шийдвэрийг харьцуулж үздэг: болон . Нийтлэгдсэн жишиг үзүүлэлтүүдийн хувьд, нь тоо бүрийг эх сурвалжтай нь холбодог.
Эхлэхийн өмнө танд юу хэрэгтэй вэ
Нэг дагагч гар, нэг удирдагч гар, дор хаяж нэг камер, 24 ГБ 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 vs SO-101.
Хоосон гараас бичигдсэн өгөгдлийн багц хүртэл
Доорх урсгал нь lerobot 0.6.x юм. Хэрэв танд тохируулсан гар болон өгөгдлийн багц байгаа бол үүнийг алгасана уу. Үгүй бол SO-100 эхлүүлэх гарын авлага угсралтыг хамардаг, бичлэгийн алхам алхмын заавар бичлэгийг хамардаг ба өгөгдлийн багцын баримт бичиг форматыг хамардаг.
- 1Lerobot-ийг зөв нэмэлтүүдтэй суулгах
Бичлэг хийхэд
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 дээр та node-ийн зөвшөөрлийг нээх шаардлагатай байж магадгүй.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3Моторын ID болон baudrate-ийг тохируулах
SO-100 дээр энэ нь угсрахаас өмнө хийгддэг: SO-101-ээс ялгаатай нь угсарч дууссаны дараа холбогчдод хүрэх боломжгүй болдог. Энэ скрипт нь баригчаас эхлэн нэг нэгээр нь моторын автобусаар явж, ID-уудыг 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 - 650 эпизод бичих
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 өгөгдлийн багцын формат нь камерын урсгал, үений төлөв, үйлдлүүдийг эпизод тус бүрээр хадгалдаг бөгөөд дахин тоглуулах нь эдгээр үйлдлүүдийг гарт буцаан түлхдэг. Хэрэв дахин тоглуулах нь даалгаврыг гүйцэтгэхгүй бол өгөгдөл үүнийг агуулаагүй бөгөөд сургалт үүнийг зохион бүтээхгүй.
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-ын тохируулга юм. |
8 багцын хэмжээтэй, хоёр 640x480 камертай ACT нь 24 ГБ-д тав тухтай багтдаг. Хүмүүс хурд нэмэхийн тулд багцын хэмжээг нэмэгдүүлэх эсвэл lerobot-ын бичлэгийн жишээнд үзүүлсэн 1920x1080 фрэймийг оруулах үед энэ нь багтахаа больдог. 1080p-ийн хоёр ResNet-18 backbone нь санах ойн хувьд огт өөр профайлтай. Илүү том карт түрээслэхээс өмнө --batch_size-ийг 4 болгож буулгана уу. Сургалтын явцад санах ой дутагдах-ыг үзнэ үү.
Үргэлжлэх хугацаа: баримт бичигт дурдсанаар 11 ГБ RTX 2080 Ti дээр 5 цаг орчим, lerobot-ын ACT хуудсанд 100k алхамд хэдэн цаг, AY-Robots 24 ГБ түвшинд 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 хувилбарт энэ нь --strategy.type сонгогчтой lerobot-rollout болсон: base, sentry (автоматаар байршуулах бичлэгтэй), highlight (товчлуур дарахад хадгалагддаг цагираг буфер), dagger (хүн оролцсон) болон episodic. 2026 оны 8-р сарын 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-ийг суулгана уу.- Портуудыг олж, моторын ID-г тохируулж, хоёр гарыг тохируулж, 50 эпизод бичнэ үү.
- Өгөгдөл нь даалгаврыг агуулж байгаа эсэхийг баталгаажуулахын тулд хэд хэдэн эпизодыг дахин тоглуулна уу.
- 24 ГБ 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 репо ID эсвэл орон нутгийн өгөгдлийн багц авчрах.
- SO-100 дээрх ACT гарын авлагыг нээж, загвар болон өгөгдлийн багцыг сонгоно уу. Анхдагч утгууд нь lerobot-ынх; chunkSize, nActionSteps, seed болон logFreq-ийг засах боломжтой.
- Бэкэнд нь VRAM-аар хэмжигдсэн GPU түрээсэлж, шалгах цэгүүдийг объектын санах ойд бичдэг.
/api/inference/podдараа нь бодлогыг орон нутгийн роботын клиентэд үйлчилдэг. Идэввхгүй хяналтын систем нь подыг устгадаг тул юу ч чимээгүйгээр төлбөр тооцогдохгүй.- Ижил үйлдлүүд CLI, MCP сервер болон сургалтын баримт бичигт байдаг.
Энэ нь таны өгөгдлийг засахгүй: камер хөдөлгөсөн өгөгдлийн багц энд яг адилхан муу сургагддаг бөгөөд маягт үүнийг илрүүлж чадахгүй. Мөн энэ нь хоцролтын асуудлыг арилгахгүй. Хяналтын давталт нь үйлдлийн алхам тутамд 20-485 мс бөгөөд дээр нь олон нийтийн интернетийн эргэлтийн хугацаа нэмэгддэг. ACT нь хамгийн их хохирдог, учир нь түүний алхам хамгийн богино: 60 мс нь Pi0.5-ын 485 мс-ийн 12 хувийн удаашрал боловч ACT-ын 20 мс-ийн алхамаас дөрөв дахин их юм. Алсын зайн дүгнэлт нь удаан сонгох, байрлуулахад тохиромжтой, хурдан хариу үйлдэл үзүүлэх хөдөлгөөнд тохиромжгүй.

Яг юу буруу болдог вэ
Сургалтын командын өөрөөс нь үүдэх бэрхшээл бараг байдаггүй. Харин түүнийг тойрсон зүйлсээс, анх удаагаа алдаа гаргах давтамжаар нь эрэмбэлсэн жагсаалт энд байна.
| Шинж тэмдэг | Ердийн шалтгаан | Хуудас |
|---|---|---|
| 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 секунд тутамд харагдахуйц түр зогсолт үүсгэдэг. Нэмж мэдэх хоёр зүйл: нэг үхсэн үе нь ихэвчлэн хэзээ ч бичигдээгүй серво ID, ба ойртох боловч хэзээ ч хаагдахгүй баригч нь үзүүлбэрүүдэд баригчийн хүрээ хэт бага байсныг илтгэнэ. Бүрэн индекс: алдааны горимын хуудаснууд.
Нэг ажиллагааны зардал
| Түвшин | Загварууд | Ажиллах хугацаа | Цагийн үнэ | Нэг ажиллагааны зардал |
|---|---|---|---|---|
| RTX 4090 / 24 GB | ACT, SmolVLA | 2-5 цаг | 0.30 to 0.60 USD | ойролцоогоор 1-3 ам.доллар |
| A100 80 GB / H100 | GR00T N1.7, GR00T N1.5, Pi0.5 | 3-6 цаг | 1.20 to 2.00 USD | ойролцоогоор 4-12 ам.доллар |
Хэрэв та хожим VLA ашиглахыг хүсэж байсан ч ACT-аас эхлэх нь зөв гэдгийг энэ нь харуулж байна. Амжилтгүй болсон ACT ажиллагаа нь нэг аяга кофений үнэтэй тэнцэх бөгөөд таны өгөгдлийн багц тухайн даалгаврыг агуулж байгаа эсэхийг хэдхэн цагийн дотор хэлж өгнө. Амжилтгүй болсон GR00T ажиллагаа нь ижил сургамжийн хувьд дөрөв дахин их үнэтэй. Дараа нь GR00T N1.7 эсвэл SmolVLA руу шилжих нь дахин бүтээх биш, харин хэлбэр өөрчлөх явдал юм. Ерөнхий мэдээлэл: хараа-хэл-үйлдэл загварууд, SO-100-ийн иж бүрэн гарын авлага, анхны бодлогоо сургах болон дуурайх сургалт. Гар байхгүй юу? Шууд дамжуулалтын хуудас нь бүртгүүлэхгүйгээр жолоодох боломжтой бодит SO-100-г шууд дамжуулдаг.
Өөрийн SO-100 дээр ACT-г сургах
Энэхүү яг таарсан хослолын гарын авлага: үндсэн тохиргоо, GPU-ийн түвшин болон нэг ажиллагааны зардал. Өгөгдлийн багцыг сонгоно, бэкэнд нь картыг түрээсэлж, шалгалтын цэгүүдийг бичнэ.
Сургалтын гарын авлагыг нээхОронд нь нарийвчлан тохируулах боломжтой урьдчилан сургасан 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-ээр, 25 дахин асуулга 0.8 секунд тутамд.
Сургалтын ажиллагаа хэр удаан үргэлжилдэг вэ, мөн би үүнийг эрт зогсоож болох уу?▾
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