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.
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)
Podrobný návod viď. v sekcií Návody a inštalácie: Vytvorenie_pohybu_v_editore
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> ''
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.