ఐదు పాలసీ వరుసలు మరియు నాలుగు రోబోట్ ఆర్మ్ నిలువు వరుసలతో కూడిన AY-Robots శిక్షణ మ్యాట్రిక్స్, ప్రతి సెల్ నిర్దిష్ట మోడల్ మరియు ఆర్మ్ శిక్షణ మార్గదర్శినికి లింక్ చేస్తుంది
ACTSO-100lerobotఅనుకరణ అభ్యాసంపాలసీ శిక్షణ

SO-100 పై ACT ని మొదటి నుండి ఎలా శిక్షణ ఇవ్వాలి

AY-Robots ResearchAugust 23, 202616 నిమిషాల పఠనం

lerobot తో SO-100 పై యాక్షన్ చంకింగ్ ట్రాన్స్‌ఫార్మర్‌ను మొదటి నుండి శిక్షణ ఇవ్వండి: 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 ఏమీ లేకుండా ప్రారంభమవుతుంది: దీనికి బేస్ చెక్‌పాయింట్ లేదు, ఎందుకంటే ఇది ఫౌండేషన్ మోడల్ కాదు. ఇది సుమారు 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 M పారామీటర్లు, 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.
  • ఇది చూసిన పనిలో గెలుస్తుంది, మరియు మీరు భాషా కండిషనింగ్ కోరుకున్న క్షణంలో ఓడిపోతుంది.
ఈ వెర్షన్‌లు దేనిని వివరిస్తాయి

23 ఆగస్టు 2026 న lerobot 0.6.x కు వ్యతిరేకంగా తనిఖీ చేయబడింది: pyproject.toml లో main version = "0.6.2" అని చదువుతుంది, సరికొత్త ట్యాగ్ v0.6.1, 3 ఆగస్టు 2026. python lerobot/scripts/train.py తో ప్రారంభమయ్యే ఒక ట్యుటోరియల్ కన్సోల్ ఎంట్రీ పాయింట్‌ల lerobot-train, lerobot-record మరియు lerobot-rollout కంటే ముందుంది.

ACT అంటే ఏమిటి

యాక్షన్ చంకింగ్ విత్ ట్రాన్స్‌ఫార్మర్స్ (ACT) ALOHA పేపర్ నుండి వచ్చింది, Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, Zhao, కుమార్, లెవిన్ మరియు ఫిన్ ద్వారా, arXiv, 23 ఏప్రిల్ 2023. ఈ రిగ్ 50 Hz వద్ద రికార్డ్ చేస్తుంది, నాలుగు వెబ్‌క్యామ్‌లు 480x640 రిజల్యూషన్‌తో 30 fps వద్ద స్ట్రీమ్ చేస్తాయి: రెండు గ్రిప్పర్‌లపై, ఒకటి పైన, ఒకటి ముందు. 10 నిమిషాల ప్రదర్శనల నుండి, ఆరు నైపుణ్యాలలో 80 నుండి 90 శాతం విజయాన్ని సాధించినట్లు సారాంశం పేర్కొంది, వాటిలో పారదర్శక కండిమెంట్ కప్పును తెరవడం మరియు బ్యాటరీని స్లాట్ చేయడం ఉన్నాయి.

రికార్డింగ్ సెషన్‌ను ప్లాన్ చేసేటప్పుడు ఈ భాగం మరింత ఉపయోగకరంగా ఉంటుంది: ప్రతి పనికి 50 ప్రదర్శనలు, థ్రెడ్ వెల్క్రోకు 100 మినహా, ఇది 10 నుండి 20 నిమిషాల డేటా మరియు రీసెట్‌లను లెక్కించిన తర్వాత 30 నుండి 60 నిమిషాల వాల్-క్లాక్ సమయం. విజయం కూడా ఏకరీతిగా లేదు: థ్రెడ్ వెల్క్రో 20 శాతంతో ముగుస్తుంది, పుట్ ఆన్ షూ 92, కప్ ఓపెన్ 84, ప్రెప్ టేప్ 64.

హైపర్‌పారామీటర్ALOHA paper, Table IIIlerobot on main
లెర్నింగ్ రేట్1e-5optimizer_lr = 1e-5
బ్యాచ్ సైజు8batch_size = 8, in TrainPipelineConfig not ACTConfig
ఎన్‌కోడర్ / డీకోడర్ లేయర్‌లు4 / 7n_encoder_layers = 4 / n_decoder_layers = 1
చంక్ సైజు k100chunk_size = 100
z యొక్క లేటెంట్ డైమెన్షన్లేదు; Fig. 11 32 నుండి 512 ప్రొజెక్షన్‌ను చూపుతుందిlatent_dim = 32
టెంపోరల్ ఎన్‌సెంబ్లింగ్లేదు; రిఫరెన్స్ కోడ్‌లో --temporal_aggtemporal_ensemble_coeff = None
డీకోడర్ లేయర్ వరుస తప్పు కాదు

పేపర్ 7 డీకోడర్ లేయర్‌లను జాబితా చేస్తుంది, లెరోబోట్ ఉద్దేశపూర్వకంగా 1ని పంపుతుంది. configuration_act.pyలోని వ్యాఖ్య ప్రకారం, అసలు ఇంప్లిమెంటేషన్‌లో ఒక బగ్ ఉంది, అంటే మొదటి లేయర్ మాత్రమే ఉపయోగించబడుతుంది, tonyzhaozh/actలో ఇష్యూ 25ని ఉటంకిస్తూ: యాక్షన్ హెడ్ hs[0]ని చదువుతుంది, కాబట్టి అన్ని ఏడు లేయర్‌లు నడుస్తాయి కానీ మొదటి అవుట్‌పుట్ మాత్రమే అంచనాకు చేరుకుంటుంది. ఆ ఇష్యూ 23 ఏప్రిల్ 2024 నుండి తెరిచి ఉంది మరియు సమాధానం లేదు. లెరోబోట్ ప్రచురించిన ఫలితాలను ఉత్పత్తి చేసిన ప్రవర్తనకు సరిపోతుంది, ముద్రించిన సంఖ్యకు కాదు. --policy.n_decoder_layersని పెంచండి మరియు పేపర్ ఎప్పుడూ మూల్యాంకనం చేయని మోడల్‌ను మీరు శిక్షణ ఇస్తారు.

యాక్షన్ చంకింగ్ అనేది మొత్తం ఆలోచన

సాధారణ ప్రవర్తనా క్లోనింగ్ ఒక పరిశీలనను ఒక చర్యకు మ్యాప్ చేస్తుంది, మరియు లోపాలు పెరుగుతాయి: ఒక విచలనం చేయిని పంపిణీ నుండి దూరం చేస్తుంది, చెత్త చర్యను ఉత్పత్తి చేస్తుంది, మరియు ముప్పై అడుగుల తర్వాత గ్రిప్పర్ వస్తువుకు దగ్గరగా ఉండదు. యాక్షన్ చంకింగ్ ఒకేసారి k చర్యలను అంచనా వేస్తుంది మరియు వాటిని అమలు చేస్తుంది, k కారకం ద్వారా సమర్థవంతమైన హోరిజోన్‌ను తగ్గిస్తుంది. ఇది మానవ డేటాకు ప్రత్యేకమైన ఒక సమస్యను కూడా నిర్వహిస్తుంది: టెలిఆపరేటర్లు పాజ్ చేస్తారు, మరియు ఒకే-దశ మార్కోవియన్ పాలసీ ముందు వచ్చిన దానిపై ఆధారపడిన పాజ్‌ను మోడల్ చేయదు.

పేపర్ kని నొక్కి చెప్పకుండా దానిని అబ్లేట్ చేస్తుంది. టెంపోరల్ ఎన్సెంబ్లింగ్ ఆఫ్ చేయబడినప్పుడు, నాలుగు సెట్టింగ్‌లలో సగటున, k = 1 వద్ద 1 శాతం నుండి k = 100 వద్ద 44 శాతానికి విజయం పెరుగుతుంది, ఆపై పాలసీ ఓపెన్-లూప్ నియంత్రణకు దగ్గరగా ఉన్నప్పుడు 200 మరియు 400 వద్ద తగ్గుతుంది. ఆ వక్రరేఖే డిఫాల్ట్ 100 కావడానికి కారణం.

  • chunk_size: డీకోడర్ ప్రతి ఫార్వర్డ్ పాస్‌కు ఎన్ని భవిష్యత్ చర్యలను అంచనా వేస్తుంది. డిఫాల్ట్ 100.
  • n_action_steps: మళ్లీ ప్రశ్నించే ముందు మీరు వాటిలో ఎన్నింటిని అమలు చేస్తారు. డిఫాల్ట్ 100, కాబట్టి lerobot మొత్తం చంక్‌ను ఓపెన్ లూప్‌లో నడుపుతుంది.
  • లెరోబోట్ n_action_steps <= chunk_sizeను ధృవీకరిస్తుంది మరియు మీరు దాన్ని తప్పుగా ఇస్తే ValueErrorను పెంచుతుంది.

కార్యాచరణపరంగా ముఖ్యమైనది ఫ్రేమ్ రేట్ ద్వారా భాగించబడిన chunk_size. లెరోబోట్ యొక్క SO-100 ఉదాహరణలు ఉపయోగించే 30 fps వద్ద, 100 చర్యల చంక్ ఒక పరిశీలన నుండి సుమారు 3.3 సెకన్ల కాలాన్ని సూచిస్తుంది. ఆ విండోలో పనికి దిద్దుబాటు అవసరమైతే, తగ్గించండి n_action_steps, కాదు chunk_size: మీరు సుదీర్ఘ అంచనాను ఉంచుతారు మరియు తరచుగా మళ్లీ పరిశీలిస్తారు.

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
అంచనాను తగ్గించకుండా చంక్ యొక్క అమలు చేయబడిన భాగాన్ని తగ్గించడం.
టెంపోరల్ ఎన్సెంబ్లింగ్ ట్రాప్

Set --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 M20 msRTX 4090 / 24 GB50LeRobot v3.0
SmolVLAకాంపాక్ట్ VLA~450 M245 msRTX 4090 / 24 GB30LeRobot v3.0
GR00T N1.7VLA ఫౌండేషన్, డిఫ్యూజన్ హెడ్~3 B (~40 M trained)152 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5VLA ఫౌండేషన్, పూర్వగామి~3 B165 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5ఫ్లో-మ్యాచింగ్ VLA, చూడండి ఫ్లో మ్యాచింగ్~3 B, PaliGemma బ్యాక్‌బోన్485 msA100 / H100 80 GB50LeRobot v3.0
The AY-Robots policies page showing a comparison table of ACT, SmolVLA, GR00T N1.5, GR00T N1.7 and Pi0.5 with parameter counts, GPU requirements, inference latency and minimum episode counts
The /policies table: ACT has the smallest parameter count and the shortest step time.
ACTని మొదటి నుండి శిక్షణ ఇవ్వడం
ప్రయోజనాలు
  • ప్రతి చర్య దశకు 20 ms, ఐదింటిలో వేగవంతమైనది, A100 కాకుండా 24 GB కార్డ్‌లో.
  • 3 B క్లాస్‌కు 4 నుండి 12 USDతో పోలిస్తే ప్రతి రన్‌కు 1 నుండి 3 USD.
  • ఇది చూసిన కాంటాక్ట్-రిచ్ పనిలో ఖచ్చితమైనది: స్లైడ్ జిప్‌లాక్ మరియు స్లాట్ బ్యాటరీపై 88 మరియు 96 శాతం, ఇక్కడ మునుపటి పద్ధతులు మొదటి దశను ఎప్పుడూ దాటలేదు.
పరిమితులు
  • భాషా కండిషనింగ్ లేదు: టాస్క్ స్ట్రింగ్ విస్మరించబడుతుంది, కాబట్టి ఒక చెక్‌పాయింట్ ఒక టాస్క్.
  • సెమాంటిక్ ప్రయర్‌లు లేవు: దానికి తెలిసినవన్నీ మీ 50 ఎపిసోడ్‌ల నుండి వచ్చాయి.
  • పరిమిత సాధారణీకరణ: కెమెరాను కదిపితే, మీరు తిరిగి శిక్షణ ఇవ్వాలి.
  • ఇది నిశ్శబ్దంగా విఫలమవుతుంది: నష్టం తగ్గుతుంది, చేయి ఏమీ చేయదు, లాగ్‌లు ఏమీ చెప్పవు.
  • ఇన్‌ఫరెన్స్ సర్వోల పక్కన ఉంటేనే వేగం ప్రయోజనం ఉంటుంది.

టాస్క్ మరియు సీన్ స్థిరంగా ఉన్నప్పుడు మరియు కదలిక వేగంగా మరియు ఖచ్చితంగా ఉండాల్సినప్పుడు ACTని ఎంచుకోండి. ఒక ఒక చెక్‌పాయింట్ అనేక సూచనలను కవర్ చేయాల్సినప్పుడు ఎంచుకోండి. రెండు పేజీలు నిర్ణయాన్ని తలపడి పని చేస్తాయి: మరియు . ప్రచురించబడిన బెంచ్‌మార్క్‌ల కోసం, ప్రతి సంఖ్యను దాని మూలానికి లింక్ చేస్తుంది.

మీరు ప్రారంభించడానికి ముందు మీకు ఏమి కావాలి

ఒక ఫాలోవర్ ఆర్మ్, కోసం ఒక లీడర్ ఆర్మ్, కనీసం ఒక కెమెరా, 24 GB GPU. ACT చిత్రాలను మరియు జాయింట్ పొజిషన్‌లను మాత్రమే చదువుతుంది. రెండు కెమెరాలు సరైనవి: వస్తువులు ఎక్కడ ఉన్నాయో చూపడానికి స్థిరమైన ముందు వీక్షణ, ఏమి తాకబోతోందో చూపడానికి ఒక మణికట్టు కెమెరా, ALOHAలో వలె.

చేయిసర్వోలువోల్టేజ్విడిభాగాల ఖర్చుస్థితి
SO-100Feetech STS32157.4 V~110 to 150 EURపూర్తి మద్దతు, రిఫరెన్స్ ఆర్మ్
SO-101Feetech STS32157.4 V~130 to 170 EURపూర్తి మద్దతు
Koch v1.1Dynamixel XL330 / XL4305 V and 12 V rails~250 to 350 EURఅనుకూలమైనది
LeKiwiFeetech STS3215 (arm)7.4 V arm, 12 V base~400 to 500 EURఅనుకూలమైనది
7.4 V, 12 V కాదు

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 ప్రారంభ గైడ్, అసెంబ్లీని కవర్ చేస్తుంది, రికార్డింగ్ వాక్‌త్రూ క్యాప్చర్‌ను కవర్ చేస్తుంది మరియు డేటాసెట్ డాక్యుమెంటేషన్ ఫార్మాట్‌ను కవర్ చేస్తుంది.

  1. 1
    సరైన అదనపు ఫీచర్లతో లెరోబోట్‌ను ఇన్‌స్టాల్ చేయండి

    రికార్డింగ్ కోసం core_scripts, శిక్షణ కోసం training, Feetech సర్వోల కోసం feetech అవసరం. పైథాన్ 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
    ప్రతి చేయి యొక్క USB పోర్ట్‌ను కనుగొనండి

    రెండు చేతులను ప్లగ్ చేసి, అడిగినప్పుడు ఒకదాన్ని అన్‌ప్లగ్ చేయండి. లైనక్స్‌లో మీరు నోడ్ అనుమతులను తెరవాల్సి రావచ్చు.

    bash
    lerobot-find-port
    # on Linux, if the port exists but is unreadable:
    sudo chmod 666 /dev/ttyACM0
  3. 3
    మోటారు ఐడిలు మరియు బాడ్‌రేట్‌ను సెట్ చేయండి

    SO-100లో ఇది అసెంబ్లీకి ముందు జరుగుతుంది: SO-101 వలె కాకుండా, ఒకసారి నిర్మించిన తర్వాత కనెక్టర్లు అందుబాటులో ఉండవు. స్క్రిప్ట్ గ్రిప్పర్ నుండి ఒక మోటారును ఒకేసారి బస్సులో నడుపుతుంది, 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
    రెండు చేతులను కాలిబ్రేట్ చేయండి

    ప్రతి జాయింట్‌ను దాని పరిధి మధ్యలో సెట్ చేయండి, ఎంటర్ నొక్కండి, ఆపై ప్రతిదాన్ని దాని పూర్తి పరిధిలో స్వీప్ చేయండి. కాలిబ్రేషన్ ఒక చేయిపై శిక్షణ పొందిన పాలసీని మరొక దానిపై అమలు చేయడానికి అనుమతిస్తుంది. అదే idని తిరిగి ఉపయోగించండి.

    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
    కెమెరాలను ఆన్ చేసి ఒకసారి టెలిఆపరేట్ చేయండి

    లెరోబోట్ యొక్క సాధారణ నియమం: మీరు కెమెరా చిత్రాలను మాత్రమే చూస్తూ పనిని చేయగలగాలి. మీరు చేయలేకపోతే, ACT కూడా చేయలేదు. ఇది తదుపరి డీబగ్గింగ్ కంటే ఎక్కువ చెడ్డ డేటాసెట్‌లను పట్టుకుంటుంది.

    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
    50 ఎపిసోడ్‌లను రికార్డ్ చేయండి

    50 అనేది AY-Robots కనిష్ట సంఖ్య మరియు ALOHA ప్రతి పనికి ఉపయోగించినది. లెరోబోట్ ప్రతి వస్తువు స్థానానికి 10, కెమెరాలు స్థిరంగా, పట్టు స్థిరంగా ఉండాలని సలహా ఇస్తుంది. n ఒక ఎపిసోడ్‌ను ముగిస్తుంది, r తిరిగి రికార్డ్ చేస్తుంది, q ఆపి ఎన్‌కోడ్ చేస్తుంది.

    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
టెలిఆపరేషన్ సెషన్ నుండి లెరోబోట్-ఫార్మాట్ డేటాసెట్‌ను ఎలా సంగ్రహించాలో వివరించే AY-Robots రికార్డింగ్ ట్యుటోరియల్ పేజీ
రికార్డింగ్ ట్యుటోరియల్. డెస్క్‌టాప్ క్లయింట్ లెరోబోట్-రికార్డ్ వలె అదే లేఅవుట్‌ను వ్రాస్తుంది.
ఒక రోజును తినే ఉచ్చు: అస్థిరమైన డేటాసెట్

ACTకి ఆధారపడటానికి ముందస్తు సమాచారం లేదు, కాబట్టి ప్రతి అస్థిరత శాశ్వతంగా మారుతుంది. అత్యంత ఖరీదైన మూడు: ఎపిసోడ్ 20 మరియు 21 మధ్య కెమెరా కదిలింది, మధ్యాహ్నం సగం సెట్‌ను రికార్డ్ చేయడం వల్ల కాంతి మారింది, రెండు విధాలుగా చేసిన పట్టు. ప్రతిదీ ఖచ్చితంగా కనిపించే నష్ట వక్రతను మరియు తప్పు స్థానానికి వెళ్ళే చేతిని ఇస్తుంది. చూడండి నష్టం తగ్గుతుంది, పాలసీ ఏమీ చేయదు, పాలసీ ఒక సెటప్‌లో మాత్రమే పనిచేస్తుంది మరియు అధిక నాణ్యత గల శిక్షణ డేటాను సేకరించడం.

శిక్షణకు ముందు, కనీసం ఐదు ఎపిసోడ్‌లను రీప్లే చేయండి. లెరోబోట్ డేటాసెట్ ఫార్మాట్ కెమెరా స్ట్రీమ్‌లు, జాయింట్ స్టేట్‌లు మరియు చర్యలను నిల్వ చేస్తుంది ఎపిసోడ్, మరియు రీప్లే ఆ చర్యలను తిరిగి చేయికి పంపుతుంది. రీప్లే పనిని చేయకపోతే, డేటా దానిని కలిగి ఉండదు మరియు శిక్షణ దానిని కనుగొనదు.

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
ఎపిసోడ్ 0ని మళ్ళీ ప్లే చేస్తోంది. ఇది విఫలమైతే, ఆపి మళ్ళీ రికార్డ్ చేయండి.

ACT పాలసీకి శిక్షణ ఇవ్వడం

ఇది మొత్తం కమాండ్. ACT-నిర్దిష్టమైన ప్రతిదీ ఇప్పటికే డిఫాల్ట్‌గా ఉంది, అందుకే lerobot ACT పేజీ వాటితో ప్రారంభించమని చెబుతుంది.

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
lerobot 0.6.x డాక్యుమెంటేషన్ నుండి శిక్షణ కమాండ్, SO-100 డేటాసెట్‌పై.

--policy.type=act ACTConfigను లోడ్ చేస్తుంది, ఇది మీ డేటాసెట్ రికార్డ్ చేసిన మోటార్లు మరియు కెమెరాల సంఖ్యకు అనుగుణంగా ఉంటుంది, కాబట్టి మీరు అబ్జర్వేషన్ షేప్‌ను ఎప్పుడూ డిక్లేర్ చేయరు. --wandb.enable=true ఐచ్ఛికం మరియు విలువైనది: 100000 స్టెప్ రన్‌లో లాస్ కర్వ్ మాత్రమే చౌకైన సిగ్నల్. షెడ్యూల్ ACTConfig నుండి కాకుండా లెరోబోట్ యొక్క ట్రైన్ కాన్ఫిగ్ నుండి వస్తుంది: 100000 స్టెప్‌లు, బ్యాచ్ 8, సీడ్ 1000, ప్రతి 20000 స్టెప్‌లకు ఒక చెక్‌పాయింట్, ప్రతి 200కి లాగింగ్.

ఒక పూర్తి రన్ ఐదు చెక్‌పాయింట్ డైరెక్టరీలను వదిలివేస్తుంది, 020000 నుండి 100000 వరకు, ప్లస్ ఒక last సిమ్‌లింక్. వాటన్నింటినీ ఉంచండి: ఉత్తమ పాలసీ తరచుగా చివరిది కాదు.

సెట్టింగ్లెరోబోట్ డిఫాల్ట్AY-రోబోట్స్ ACT ఫారమ్వ్యాఖ్య
బ్యాచ్ సైజు88మీరు VRAM పరిమితులను చేరుకుంటే ముందుగా దీన్ని తగ్గించండి.
లెర్నింగ్ రేట్1e-51e-5ALOHA పేపర్‌లో ఉన్నట్లే.
గరిష్ట దశలు100000100000సుమారుగా 50 ఎపిసోడ్‌ల సెట్ మెరుగుపడటం ఆగిపోయే చోట.
గ్రాడియంట్ అక్యుములేషన్11, వర్తించదుబదులుగా బ్యాచ్ సైజును మార్చండి.
సీడ్1000బయటపెట్టబడిందిGR00T యొక్క టైరో ఎంట్రీ పాయింట్‌కు సీడ్ లేదు; ACT రన్‌లు పునరుత్పత్తి చేయదగినవి.
chunk_size / n_action_steps100 / 100100 / 100, సవరించదగినదిఅంచనా మరియు అమలు పరిధి. రెండవదాన్ని తగ్గించండి, మొదటిదాన్ని కాదు.
చెక్‌పాయింట్ ఫ్రీక్వెన్సీ20000బయటపెట్టబడలేదుఇక్కడ saveSteps అనేది GR00T నాబ్.
మెమరీ లేకపోవడం అనేది బ్యాచ్ సైజు సమస్య, కార్డ్ సమస్య కాదు

ACT బ్యాచ్ సైజు 8తో రెండు 640x480 కెమెరాలతో 24 GBలో సౌకర్యవంతంగా సరిపోతుంది. వేగం కోసం ప్రజలు బ్యాచ్ సైజును పెంచినప్పుడు, లేదా ఒక లెరోబోట్ రికార్డింగ్ ఉదాహరణ చూపిన 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 రెట్లు ఎక్కువ సమయం.

bash
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 కోసం దీనిని స్కిప్ చేయదగినదిగా సూచిస్తుంది.

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
రికార్డింగ్ లేకుండా స్వయంప్రతిపత్త రోల్‌అవుట్. మూల్యాంకన ఎపిసోడ్‌లను రికార్డ్ చేయడానికి --strategy.type=sentry ఉపయోగించండి.
ఈ కమాండ్ ఇటీవల పేరు మార్చబడింది, కాబట్టి పాత ట్యుటోరియల్‌లు ఏకీభవించవు

మూల్యాంకనం గతంలో lerobot-record --policy.path=... ద్వారా జరిగేది. 0.6.xలో ఇది lerobot-rollout, --strategy.type సెలెక్టర్‌తో ఉంటుంది: base, sentry (ఆటో-అప్‌లోడ్‌తో రికార్డింగ్), highlight (కీస్ట్రోక్ ద్వారా సేవ్ చేయబడిన రింగ్ బఫర్), dagger (లూప్‌లో మానవుడు) మరియు episodic. 23 ఆగస్టు 2026 నాటికి, ACT డాక్యుమెంటేషన్ పేజీ ఇప్పటికీ lerobot-rollout నడుస్తున్న బ్లాక్ పైన నేరుగా "lerobot-record కమాండ్‌ను ఉపయోగించడం" అని చెబుతోంది. వాక్యాన్ని కాకుండా కమాండ్‌ను అనుసరించండి.

చివరి మోడల్‌కు బదులుగా ఒక చెక్‌పాయింట్‌ను పిన్ చేయడానికి, --policy.pretrained_revision. దానికి రన్ --save_checkpoint_to_hub=true, డిఫాల్ట్‌గా ఆఫ్ చేయబడింది: అది లేకుండా lerobot చివరి మోడల్‌ను మాత్రమే పుష్ చేస్తుంది. దానితో, ప్రతి చెక్‌పాయింట్ దాని జీరో-ప్యాడెడ్ స్టెప్‌తో ట్యాగ్ చేయబడుతుంది, కాబట్టి --policy.pretrained_revision=060000 60000వ స్టెప్ దానిని తిరిగి పొందుతుంది. నిజమైన ఆర్మ్‌పై దానిని 100000తో పోల్చడం అనేది అందుబాటులో ఉన్న చౌకైన ప్రయోగం.

ఒకే చెక్‌పాయింట్‌కు రెండు మార్గాలు

పైన పేర్కొన్నవన్నీ మాన్యువల్ మార్గం మరియు అది పని చేస్తుంది. ప్లాట్‌ఫారమ్ మార్గం GPU లేదా పైథాన్ ఎన్విరాన్‌మెంట్‌ను కలిగి ఉండకుండా నియంత్రణను వదులుకుంటుంది.

  1. core_scripts, training, feetech, ffmpeg తో lerobot 0.6.xని ఇన్‌స్టాల్ చేయండి.
  2. పోర్ట్‌లను కనుగొనండి, మోటార్ ఐడిలను సెట్ చేయండి, రెండు చేతులను క్రమాంకనం చేయండి, 50 ఎపిసోడ్‌లను రికార్డ్ చేయండి.
  3. డేటాలో టాస్క్ ఉందని నిర్ధారించడానికి కొన్ని ఎపిసోడ్‌లను మళ్లీ ప్లే చేయండి.
  4. 24 GB GPUని అద్దెకు తీసుకోండి లేదా స్వంతం చేసుకోండి, CUDA మరియు PyTorchని సరిపోల్చండి, lerobot-train --policy.type=actని అమలు చేయండి.
  5. కొన్ని గంటలు వేచి ఉండండి, ఆపై ఆర్మ్ వద్ద ఉన్న మెషీన్‌లో lerobot-rolloutని అమలు చేయండి.
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
ఈ మార్గం మీకు ఏమి ఇస్తుంది

పూర్తి నియంత్రణ: configuration_act.pyని సవరించండి, కెమెరాను జోడించండి, ట్రైనర్‌ను ఫోర్క్ చేయండి. ఒక పనిని పంపడం కంటే పరిశోధన కోసం, ఒక ప్లాట్‌ఫారమ్ ఒక పరధ్యానం.

The AY-Robots training matrix with five policy rows and four robot arm columns, where every cell links to the specific training guide for that model and arm combination
The matrix on /train. The ACT row against the SO-100 column is this article's guide.

నిజానికి ఏమి తప్పు జరుగుతుంది

శిక్షణ కమాండ్‌లో దాదాపుగా ఎటువంటి సమస్య ఉండదు. సమస్య దాని చుట్టూ ఉన్న విషయాలలో ఉంటుంది, అవి మొదటిసారి ఎంత తరచుగా ఇబ్బంది పెడతాయో దాని ఆధారంగా క్రమబద్ధీకరించబడ్డాయి.

లక్షణంసాధారణ కారణంపేజీ
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 సెకన్లకు ఒక స్పష్టమైన విరామం. తెలుసుకోవలసినవి మరో రెండు: ఒకే చనిపోయిన జాయింట్ సాధారణంగా ఎప్పుడూ వ్రాయబడని సర్వో ఐడి, మరియు దగ్గరకు వస్తుంది కానీ ఎప్పుడూ మూసివేయని గ్రిప్పర్ అంటే ప్రదర్శనలలో గ్రిప్పర్ పరిధి చాలా తక్కువ. పూర్తి సూచిక: వైఫల్య మోడ్ పేజీలు.

ఒక రన్ ఎంత ఖర్చవుతుంది

TierModelsRun timePrice per hourCost per run
RTX 4090 / 24 GBACT, SmolVLA2 నుండి 5 గంటలు0.30 నుండి 0.60 USDసుమారు 1 నుండి 3 USD
A100 80 GB / H100GR00T N1.7, GR00T N1.5, Pi0.53 నుండి 6 గంటలు1.20 నుండి 2.00 USDసుమారు 4 నుండి 12 USD

మీరు తర్వాత 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 ప్రతి పనికి రికార్డ్ చేసినవి (థ్రెడ్ వెల్క్రో కోసం 100, ఇది చాలా కష్టం) మరియు AY-రోబోట్స్ కనిష్టంగా. 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లో ఒక చిన్న కదలిక శాశ్వతం.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started