Table of Contents

Low Skill

Fungovanie Low-skill

Jednotlivé nižšie pohyby agenta sú opísané prostredníctvom XML súborov (nižšie pohyby sú napríklad kopnutie do lopty, postavenie sa, otočenie hlavou a podobne). Každý pohyb sa skladá z viacerých fáz, pričom každá fáza predstavuje určitú zmenu natočenia určitých kĺbov za určitý čas. Vo svojom popise má teda pohyb svoje unikátne meno, začiatočnú fázu, typ, autora, opis… Začiatočná fáza sa potom odkazuje na nasledovnú fázu a tá na ďalšiu a tak ďalej… Jednotlivé fázy sú popísané v XML súbore spolu s popisom pohybu. Ukončenie pohybu je realizované zapísaním isFinal==true ku danej fáze, v ktorej je možné pohyb ukončiť. Štandardné je zapísanie iba jedného pohybu do jedného súboru. Tieto XML súbory sa zapisujú do priečinka ./moves.

Štruktúra XML súborov

robot (koreňový atribút)

low_skills (agregacia pre popis low skillov - každý low skill musí mať unikátne meno a začiatočnú fázu)

low_skill (popis konkrétneho low skillu)

name (meno pohybu - musí byť unikátne)

firstPhase (prvá fáza v danom pohybe - popis fáz je v dokumente neskôr)

type (typ pohybu - môže nadobúdať hodnoty: fall, look, kick, stand_up, rotation, walk, other…)

author (autor daného pohybu)

extendedFromMove (z akého pohybu sa pri danom pohybe vychádzalo)

description (voľný popis pohybu – či je stabilný, rýchly, pomalý, dobrý, zlý, čo vlastne robí a pod… )

phases (agregacia pre popis fáz - každá fáza musí mať unikátne meno - nie len v rámci pohybu, ale všeobecne)

phase (popis konkrétnej fázy)

name (unikátne meno fázy)

next (nasledovná fáza)

isFinal (=true, ak je možné po danej fáze ukončiť pohyb)

efectors (popis pohybu jednotlivých kĺbov počas fázy)

duration (doba trvania danej fázy)

Vytvorenie pohybu v editore

  1. Stiahnuť editor pohybov
  2. Po otvorení zvoliť možnosť Nový pohyb
  3. Pridať stav a pomenovať no podľa toho čo bude pohyb vykonávať napr. pohyb_rukou
  4. Následne kliknúť na tlačidlo Pridať
  5. Vybrať požadovaný kĺb napr. Ľavé plece(-120°; 120°)
  6. Nastaviť čas od ktorého sa ma pohyb začať vykonávať alebo počiatočné podmienky
  7. Nastaviť počiatočný uhol natočenie napr. -90°
  8. Nastaviť koncový uhol natočenia napr. 90°
  9. A ako posledne zvoliť buď rýchlosť otáčania kĺbu alebo čas ako dlho sa ma kĺb natáčať
  10. Uložiť pohyb
  11. Exportovať xml do priečinka moves v Jimovi

Podrobný návod viď. v sekcií Návody a inštalácie: Vytvorenie_pohybu_v_editore

Manuálne vytvorenie pohybu

Na manuálne vytvorenie pohybu je nutne riadiť sa štruktúrou XML súboru. Pre prvé manuálne vytvorenie pozri priklad vytvoreného xml súboru s pohybom. Pohyb je potrebné uložiť v ./moves

Príklad jednoducheho pohybu (agent hýbe rukami hore a dole):

''<?xml version="1.0" encoding="utf-8"?>
<robot xsi:noNamespaceSchemaLocation="moves.xsd">
 <low_skills>
   <low_skill name="prvy_pohyb" firstPhase="prvy_pohyb_phase0">
   <type>pokus o prvy pohyb</type>
       <author>A55-Kickers</author>
       <extendedFromMove></extendedFromMove>
       <description>Hrač hybe rukami hore a dole</description>
    </low_skill>
 </low_skills>
 <phases>
   <phase name="prvy_pohyb_phase0" next="prvy_pohyb_phase1">
     <effectors>
       <rae1 end="-90" />
       <lae1 end="-90" />
     </effectors>
     <duration>1000</duration>
   </phase>
   <phase name="prvy_pohyb_phase1" next="prvy_pohyb_phase2">
     <effectors>
       <rae1 end="90" />
       <lae1 end="90" />
     </effectors>
     <duration>2000</duration>
   </phase>
   <phase name="prvy_pohyb_phase2" isFinal="true">>
     <effectors>
       <rae1 end="-90" />
       <lae1 end="-90" />
     </effectors>
     <duration>2000</duration>
     <finalize>prvy_pohyb_phase2</finalize>
   </phase>
 </phases>
</robot>
''

Otestovanie pohybu

Pre otestovanie pohybu je potrebne v priečinku ./scripts/plan zmeniť v pláne planZakladny.rb riadok @plan«LowSkill.new(“nazov xml suboru s pohybom”). Následne v spustiť hráča s planom planZakladny. Ako spustiť hráča s požadovaným plánom pozri kapitolu fungovanie v časti Planovac.