የ AY-Robots ማሰልጠኛ ማትሪክስ ከአምስት የፖሊሲ ረድፎች እና አራት የሮቦት ክንድ አምዶች ጋር, እያንዳንዱ ሕዋስ ከተወሰነ ሞዴል እና ክንድ ማሰልጠኛ መመሪያ ጋር ይገናኛል
ACTSO-100lerobotየመኮረጅ ትምህርትየፖሊሲ ስልጠና

ACTን በSO-100 ላይ ከመጀመሪያው እንዴት ማሰልጠን እንደሚቻል

AY-Robots ResearchAugust 23, 202616 ደቂቃ ንባብ

አንድ Action Chunking Transformerን በSO-100 ላይ ከለሮቦት ጋር ከመጀመሪያው ያሰልጥኑ: የ act config, chunk_size እና n_action_steps, የ 100000 እርምጃ መርሐግብር, 20 ms ግምት.

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 ሚሴ ውስጥ የሚያከናውነው፣ 3 ቢሊዮን ፓራሜትር ያለው VLA ደግሞ ከ152 እስከ 485 ሚሴ የሚፈልግ ሲሆን፣ በአንድ ሩጫ ከ4 እስከ 12 ዶላር ፈንታ ከ1 እስከ 3 ዶላር ብቻ የሚያስከፍለው። ይህ መመሪያ በእጅ የሚሰራውን መንገድ ከለሮቦትSO-100: መቅዳት፣ የact ኮንፊግ፣ ምን chunk_size እና n_action_steps እንደሚቆጣጠሩ፣ የ100000 እርምጃ መርሐግብር፣ ሮልአውት። ከዚያም ተመሳሳይ ስራ በAY-Robots ላይ፣ መድረኩ በማይረዳበት ቦታ ጭምር።

ማወቅ ያለብዎት ነገር

  • ACT ከመጀመሪያው ጀምሮ ያሰለጥናል: የመሠረት ሞዴል የለም፣ ቅድመ-ስልጠና የለም፣ የቋንቋ ግብዓት የለም። አንድ ቼክፖይንት፣ አንድ ተግባር።
  • ጥናቱ: ወደ 80 ሚሊዮን ፓራሜትሮች፣ በ11 ጊባ RTX 2080 Ti ላይ ወደ 5 ሰዓታት ያህል፣ 0.01 ሰከንድ ኢንፈረንስ።
  • ለሮቦት ነባሪዎች: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 steps, seed 1000።
  • በAY-Robots ላይ: በአንድ እርምጃ 20 ሚሴ፣ ከአምስቱ ፈጣኑ። ዝቅተኛው 50 ክፍሎች፣ LeRobot v3.0፣ 24 ጊባ ካርድ፣ በአንድ ሩጫ ከ1 እስከ 3 ዶላር።
  • ባየው ተግባር ላይ ያሸንፋል፣ እና የቋንቋ ሁኔታን በፈለጉበት ቅጽበት ይሸነፋል።
ይህ የትኞቹን ስሪቶች እንደሚገልጽ

በ23 ኦገስት 2026 ከለሮቦት 0.6.x ጋር ተረጋግጧል: pyproject.toml on main reads version = "0.6.2", newest tag v0.6.1, 3 ኦገስት 2026። በpython lerobot/scripts/train.py የሚጀምር ትምህርት ከኮንሶል መግቢያ ነጥቦች lerobot-train, lerobot-record and lerobot-rollout ይቀድማል።

ACT በትክክል ምንድን ነው

Action Chunking with Transformers ከALOHA ወረቀት የመጣ ነው፣ ዝቅተኛ ወጪ ባላቸው ሃርድዌሮች ጥሩ ዝርዝር የሁለት እጅ ማኒፑሌሽን መማር፣ በዣኦ፣ ኩማር፣ ሌቪን እና ፊን፣ arXiv፣ 23 ኤፕሪል 2023። መሳሪያው በ50 Hz ይመዘግባል፣ አራት የድር ካሜራዎች 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 ወረቀት፣ ሠንጠረዥ IIIlerobot በዋናው
የመማሪያ መጠን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 ድብቅ ልኬትየለም፤ ምስል 11 ከ32 ወደ 512 ፕሮጀክሽን ያሳያልlatent_dim = 32
ጊዜያዊ ስብስብየለም፤ --temporal_agg በማጣቀሻ ኮድ ውስጥtemporal_ensemble_coeff = None
የዲኮደር ንብርብር ረድፍ የትየለሌ አይደለም

ጽሑፉ 7 ዲኮደር ንብርብሮችን ይዘረዝራል፣ lerobot ሆን ብሎ 1 ብቻ ያቀርባል። በconfiguration_act.py ውስጥ ያለው አስተያየት የመጀመሪያው ትግበራ ስህተት እንዳለበት ይገልጻል፣ ይህም የመጀመሪያው ንብርብር ብቻ ጥቅም ላይ እንደሚውል ያሳያል፣ በtonyzhaozh/act ውስጥ ያለውን ጉዳይ 25 በመጥቀስ፡ የድርጊት ራስ hs[0]ን ያነባል፣ ስለዚህ ሰባቱም ንብርብሮች ቢሰሩም፣ የመጀመሪያው ውጤት ብቻ ወደ ትንበያው ይደርሳል። ይህ ጉዳይ ከኤፕሪል 23 ቀን 2024 ጀምሮ ክፍት እና ምላሽ ያልተሰጠበት ነው። lerobot የታተሙትን ውጤቶች ያመጣውን ባህሪ እንጂ የታተመውን ቁጥር አይዛመድም። --policy.n_decoder_layersን ከፍ ካደረጉ፣ ጽሑፉ ፈጽሞ ያልገመገመውን ሞዴል ያሰለጥናሉ።

የድርጊት መከፋፈል ዋናው ሀሳብ ነው

የተለመደው የባህሪ ክሎኒንግ አንድ ምልከታን ከአንድ ድርጊት ጋር ያዛምዳል፣ እና ስህተቶች ይከማቻሉ፡ መዛባት ክንዱን ከስርጭቱ ውጪ ያደርገዋል፣ የከፋ ድርጊት ያስከትላል፣ እና ከሰላሳ እርምጃዎች በኋላ ግሪፐሩ ከዕቃው አጠገብ አይሆንም። የድርጊት መከፋፈል በአንድ ጊዜ k ድርጊቶችን ይተነብያል እና ያስፈጽማል፣ ውጤታማውን አድማስ በ k እጥፍ ይቀንሳል። በተጨማሪም ከሰው መረጃ ጋር የተያያዘ ችግርን ይፈታል፡ ቴሌኦፕሬተሮች ለአፍታ ያቆማሉ፣ እና አንድ-ደረጃ ማርኮቪያን ፖሊሲ ከዚህ በፊት በነበረው ነገር ላይ የተመሰረተ ለአፍታ ማቆምን መቅረጽ አይችልም።

ጽሑፉ kን ከማረጋገጥ ይልቅ ያጠፋዋል። ጊዜያዊ ስብስብ ሲጠፋ፣ በአራት ቅንብሮች ላይ በአማካይ ሲታይ፣ ስኬት በ k = 1 ከ 1 በመቶ ወደ 44 በመቶ በ k = 100 ይጨምራል፣ ከዚያም ፖሊሲው ወደ ክፍት-ሉፕ ቁጥጥር ሲቃረብ በ 200 እና 400 ላይ ይቀንሳል። ያ ኩርባ ነባሪው 100 የሆነበት ምክንያት ነው።

  • chunk_size: ዲኮደሩ በአንድ ፎርዋርድ ፓስ ምን ያህል የወደፊት ድርጊቶችን እንደሚተነብይ። ነባሪ 100።
  • n_action_steps: እንደገና ከመጠየቅዎ በፊት ከእነዚህ ውስጥ ስንቱን እንደሚፈጽሙ። ነባሪ 100 ነው፣ ስለዚህ lerobot ሙሉውን ቸንክ ክፍት ሉፕ ያካሂዳል።
  • lerobot n_action_steps <= chunk_size መሆኑን ያረጋግጣል እና በተቃራኒው ከሆነ ValueError ያነሳል።

በአሰራር ደረጃ አስፈላጊው chunk_size በ frame rate የተከፈለው ነው። lerobot's 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
ትንበያውን ሳያሳጥሩ የቸንኩን የተፈጸመውን ክፍል ማሳጠር።
የጊዜያዊ ስብስብ ወጥመድ

--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 የሚለካቸው እና የሚከራየውን ጂፒዩ መጠን ለመወሰን የሚጠቀምባቸው ቁጥሮች።

ፖሊሲቤተሰብመለኪያዎችበእያንዳንዱ እርምጃጂፒዩ ደረጃዝቅተኛ ክፍሎችየውሂብ ስብስብ
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 backbone485 msA100 / H100 80 GB50LeRobot v3.0
የAY-Robots ፖሊሲዎች ገጽ የACT፣ SmolVLA፣ GR00T N1.5፣ GR00T N1.7 እና Pi0.5 ንጽጽር ሠንጠረዥን ከመለኪያ ብዛት፣ ከጂፒዩ መስፈርቶች፣ ከኢንፈረንስ መዘግየት እና ከዝቅተኛው የክፍሎች ብዛት ጋር ያሳያል።
የ/policies ሠንጠረዥ፡ ACT አነስተኛውን የመለኪያ ብዛት እና አጭር የእርምጃ ጊዜ አለው።
ACTን ከመጀመሪያው ማሰልጠን
ጥቅሞች
  • በአንድ የድርጊት ደረጃ 20 ሚሊሰከንዶች፣ ከአምስቱ ፈጣኑ፣ በ24 ጂቢ ካርድ ላይ እንጂ በA100 ላይ አይደለም።
  • በአንድ ሩጫ ከ1 እስከ 3 ዶላር፣ ለ3 B ክፍል ከ4 እስከ 12 ዶላር ጋር ሲነጻጸር።
  • ባየው የግንኙነት-በዛ ሥራ ላይ ትክክለኛ ነው፡ በስላይድ ዚፕሎክ እና ስሎት ባትሪ ላይ 88 እና 96 በመቶ፣ ቀደምት ዘዴዎች የመጀመሪያውን ደረጃ ፈጽሞ ማለፍ አልቻሉም።
የሚለዋወጡ ነገሮች
  • የቋንቋ ሁኔታ የለም፡ የተግባር ሕብረቁምፊው ችላ ይባላል፣ ስለዚህ አንድ የፍተሻ ነጥብ አንድ ተግባር ነው።
  • የፍቺ ቅድመ-እውቀት የለም፡ የሚያውቀው ነገር ሁሉ የመጣው ከ50 ክፍሎችዎ ነው።
  • ጠባብ አጠቃላይነት፡ ካሜራን ካንቀሳቀሱ እንደገና እያሰለጠኑ ነው።
  • በጸጥታ ይወድቃል፡ ኪሳራው ይቀንሳል፣ ክንዱ ምንም አያደርግም፣ ምዝግቦቹ ምንም አይሉም።
  • የፍጥነት ጥቅሙ የሚረዳው ግምት ከሰርቮዎቹ አጠገብ ከሆነ ብቻ ነው።

ተግባር እና ትዕይንት ቋሚ ሲሆኑ እና እንቅስቃሴ ፈጣንና ትክክለኛ መሆን ሲኖርበት ACTን ይምረጡ። አንድ የፍተሻ ነጥብ ብዙ መመሪያዎችን መሸፈን ሲኖርበት ይምረጡ። ሁለት ገጾች ውሳኔውን ፊት ለፊት ያነጻጽራሉ፡ እና ። ለታተሙ መለኪያዎች፣ እያንዳንዱን ቁጥር ወደ ምንጩ ያገናኛል።

ከመጀመርዎ በፊት የሚያስፈልግዎ ነገር

አንድ ተከታይ ክንድ፣ አንድ መሪ ክንድ ለ፣ ቢያንስ አንድ ካሜራ፣ 24 ጂቢ ጂፒዩ። 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 ክንድ፣ 12 V ቤዝ~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 ከ 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
    የእያንዳንዱን ክንድ የዩኤስቢ ወደብ ያግኙ

    ሁለቱንም ክንዶች ሰክተው ያሂዱት፣ ሲጠየቁ አንዱን ይንቀሉ። በሊኑክስ ላይ የኖድ ፍቃዶችን መክፈት ሊያስፈልግዎ ይችላል።

    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ም አይችልም። ይህ ከኋላ ከሚደረግ ማረም (debugging) የበለጠ መጥፎ የውሂብ ስብስቦችን ይይዛል።

    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 መቅጃ ትምህርት ገጽ ከቴሌኦፕሬሽን ክፍለ ጊዜ የLeRobot-ቅርጸት የውሂብ ስብስብን እንዴት መቅረጽ እንደሚቻል ያብራራል።
የመቅጃ ትምህርቱ። የዴስክቶፕ ደንበኛው እንደ ለሮቦት-መዝገብ (lerobot-record) ተመሳሳይ አቀማመጥ ይጽፋል።
አንድ ቀን የሚበላው ወጥመድ፡ ወጥነት የሌለው የውሂብ ስብስብ

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 እርምጃ ሩጫ ውስጥ ብቸኛው ርካሽ ምልክት ነው። መርሐግብሩ የሚመጣው ከlerobot የሥልጠና ውቅር እንጂ ከACTConfig አይደለም፡ 100000 እርምጃዎች፣ ባች 8፣ ሲድ 1000፣ እና ቼክፖይንት በየ20000 እርምጃዎች፣ በየ200 ምዝገባ።

ሙሉ ሩጫ አምስት የቼክፖይንት ማውጫዎችን፣ ከ020000 እስከ 100000፣ በተጨማሪም last ሲምሊንክ ይተዋል። ሁሉንም ያስቀምጡ፡ ምርጡ ፖሊሲ ብዙውን ጊዜ የመጨረሻው አይደለም።

ቅንብርየlerobot ነባሪየAY-Robots ACT ቅጽአስተያየት
የባች መጠን88የVRAM ገደብ ከደረሱ መጀመሪያ ይቀንሱት።
የመማሪያ መጠን1e-51e-5ከALOHA ወረቀት ጋር ተመሳሳይ።
ከፍተኛ እርምጃዎች100000100000በግምት 50 የትዕይንት ስብስብ መሻሻል የሚያቆምበት።
የግራዲየንት ክምችት11, አይተገበርምበምትኩ የባች መጠንን ይቀይሩ።
ሲድ1000የተጋለጠየGR00T ታይሮ መግቢያ ነጥብ ሲድ የለውም፤ የACT ሩጫዎች ሊባዙ የሚችሉ ናቸው።
chunk_size / n_action_steps100 / 100100 / 100, ሊስተካከል የሚችልየትንበያ እና የአፈፃፀም አድማስ። ሁለተኛውን ይቀንሱ፣ የመጀመሪያውን አይደለም።
የቼክፖይንት ድግግሞሽ20000አልተጋለጠምsaveSteps እዚህ የGR00T መቆጣጠሪያ ነው።
የማህደረ ትውስታ እጥረት የባች መጠን ችግር ነው እንጂ የካርድ ችግር አይደለም

ACT በባች መጠን 8 ከሁለት 640x480 ካሜራዎች ጋር በ24 ጊባ ላይ ምቹ በሆነ ሁኔታ ይገጥማል። ሰዎች ፍጥነትን ለመጨመር የባች መጠንን ሲያሳድጉ፣ ወይም አንድ የlerobot ቀረጻ ምሳሌ የሚያሳየውን 1920x1080 ፍሬሞችን ሲመግቡት መገጣጠም ያቆማል። ሁለት ResNet-18 ባክቦኖች በ1080p በጣም የተለየ የማህደረ ትውስታ መገለጫ አላቸው። ትልቅ ካርድ ከመከራየትዎ በፊት --batch_size ወደ 4 ይቀንሱ። በስልጠና ወቅት የማህደረ ትውስታ እጥረት የሚለውን ይመልከቱ።

የቆይታ ጊዜ፡ በጽሁፉ ላይ ባለው 11 ጂቢ RTX 2080 Ti ላይ ወደ 5 ሰዓታት ገደማ፣ በለሮቦት ACT ገጽ መሰረት ለ100k እርምጃዎች ጥቂት ሰዓታት፣ በAY-Robots 24 ጂቢ ደረጃ ላይ ከ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 አይረዳም፣ ምክንያቱም ቅድመ-የሰለጠነ የፍተሻ ነጥብ ስለሚያስፈልገው። የተግባር ሕብረቁምፊው ሊተው ይችላል፤ የለሮቦት የራሱ ምሳሌ ለ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 መራጭ ጋር ነው፡ basesentry (በራስ-ሰር ሰቀላ መቅዳት)፣ 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) ወይም የፓይዘን አካባቢ (Python environment) ባለቤት አለመሆንን በመምረጥ ቁጥጥርን ይተካል።

  1. lerobot 0.6.x ን ከcore_scriptstrainingfeetech፣ ffmpeg ጋር ይጫኑ።
  2. ፖርቶችን ያግኙ፣ የሞተር መለያዎችን ያዘጋጁ፣ ሁለቱንም ክንዶች ያስተካክሉ፣ 50 ክፍሎችን ይመዝግቡ።
  3. መረጃው ስራውን እንደያዘ ለማረጋገጥ ጥቂት ክፍሎችን መልሰው ያጫውቱ።
  4. 24 ጊባ ጂፒዩ ይከራዩ ወይም ይግዙ፣ 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 ን ያርትዑ፣ ካሜራ ያክሉ፣ አሰልጣኙን (trainer) ፎርክ ያድርጉ። ስራን ከማቅረብ ይልቅ ለምርምር፣ ፕላትፎርም ትኩረት የሚከፋፍል ነው።

የAY-Robots ስልጠና ማትሪክስ ከአምስት የፖሊሲ ረድፎች እና አራት የሮቦት ክንድ አምዶች ጋር፣ እያንዳንዱ ሕዋስ ለዚያ ሞዴል እና ክንድ ጥምረት ወደተለየው የስልጠና መመሪያ የሚያገናኝበት።
በ/train ላይ ያለው ማትሪክስ። የACT ረድፍ ከSO-100 አምድ ጋር የዚህ ጽሑፍ መመሪያ ነው።

በእርግጥ ምን ስህተት ይፈጠራል

ከስልጠና ትዕዛዙ ጋር የተያያዘው ችግር እምብዛም አይደለም። ችግሩ በዙሪያው ባሉ ነገሮች ላይ ነው፣ ለመጀመሪያ ጊዜ ምን ያህል ጊዜ እንደሚያስቸግሩ በቅደም ተከተል ተዘርዝሯል።

ምልክትየተለመደ መንስኤገጽ
lerobot-find-port ምንም አያሳይምድራይቨር፣ ኬብል ወይም ኖድ ፈቃዶችክንድ አልተገኘም
በመቅረጫ ጊዜ ካሜራ ጠፍቷልዳግም ሲጀመር ኢንዴክስ ተቀይሯል፣ ወይም ሁለት ካሜራዎች በአንድ ዩኤስቢ መቆጣጠሪያ ላይካሜራ አልተገኘም
ስልጠናው የውሂብ ስብስቡን አይቀበልም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 GBACT, SmolVLAከ 2 እስከ 5 ሰዓታት0.30 to 0.60 USDከ 1 እስከ 3 ዶላር ገደማ
A100 80 GB / H100GR00T 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ን ያለምዝገባ ለመንዳት ያስችላል።

ACTን በSO-100ዎ ላይ ያሰልጥኑ

ለዚህ ትክክለኛ ጥምረት መመሪያው: ነባሪዎች፣ የጂፒዩ ደረጃ እና አንድ ሩጫ ምን ያህል እንደሚያስወጣ። የውሂብ ስብስቡን ይምረጡ፣ የኋላ ስርዓቱ ካርዱን ተከራይቶ ቼክፖይንቶችን ይጽፋል።

የስልጠና መመሪያውን ይክፈቱ
በምትኩ ማስተካከል የምችል አስቀድሞ የሰለጠነ የ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 ጂቢ ካርድ ላይ ከሁለት እስከ አምስት ሰዓታት። ቼክፖይንቶች በየ 20000 እርምጃዎች ይወርዳሉ እና --resume=true ሩጫን እንደገና ያስጀምራል፣ ስለዚህ ቀድሞ ማቆም ደህንነቱ የተጠበቀ ነው። በመጀመሪያው ጠፍጣፋ ክፍል ላይ ብቻ አይደለም: ኪሳራው ከተረጋጋ በኋላ ቅልጥፍና ይሻሻላል።

ኪሳራው ቀንሷል እና ክንዱ አሁንም አይሰራም። አሁን ምን ይደረግ?

ሁልጊዜ ማለት ይቻላል የውሂብ ስብስቡ። የተቀዱ ክፍሎችን በክንዱ ላይ እንደገና ያጫውቱ: መልሶ ማጫወቱ ስራውን ካልሰራ፣ ውሂቡ አልያዘውም። ከዚያ ምንም ነገር እንዳልተንቀሳቀሰ ያረጋግጡ፣ በተለይም ካሜራ። ACT ምንም ቅድመ እውቀት የለውም፣ ስለዚህ በክፍል 21 ላይ የሚደረግ ትንሽ ግፊት ቋሚ ነው።

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started