Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||||||||||||||||||||
|
Programové rozhraniePodkapitoly:Ovládanie pohybu Základy
Balík POPBUGS umožňuje používateľovi vytvárať a kontrolovať simulácie, ktoré sa obyčajne programujú v jazykoch POP-11 alebo LISP, v jazyku s veľmi prívetivou syntaxou. Väčšina funkcionality balíka je dostupná prostredníctvom priraďovacích výrazov, ktoré sa píšu v smere sprava doľava. (napr. '2 -> x').
"avoidance" -> pb_simulation;
Vznikne nám simulácia, ktorú môžete vidieť na obrázku:
![]() Robot je na obrázku zobrazený ako kruh obsahujúci 'H'. Šípka označuje aktuálny smer pohybu. Kód pre spustenie simulácie v čase 20 cyklov 20 -> pb_cycles; Robot je normálne nakonfigurovaný tak, aby zanechával za sebou stopu, ktorá reprezentuje trajektóriu pohybu. V predchádzajúcom príklade je trajektória svetloružovej farby, takže po skončení simulácie vyzerá svet nasledovne: ![]() Inicializácia prázdneho sveta: 0 -> pb_new_world; Inicializácia sveta, ktorý obsahuje dva roboty: 2 -> pb_new_world; Inicializácia sveta s dvoma robotmi a tromi objektmi:
[2 3] -> pb_new_world; Všetky atribúty aktuálneho robota (čo je buď prvý vytvorený alebo momentálne aktívny robot)sú prístupné prostredníctvom aktívnych premenných. Napríklad pre zistenie farby aktuálneho robota môžeme napísať: pb_colour ==> čo má za následok výpis: ** green v hlavnom okne Poplogu. Ak chceme zmeniť farbu robota na žltú, napíšeme: "yellow" -> pb_trail_colour; Ak chceme zistiť pozíciu, zadáme: pb_position ==> Vypíšu sa súradnice polohy: ** {50 50} Ak chceme zistiť kam robot smeruje použijeme príkaz : pb_direction ==> Výsledok bude vyzerať: ** 293 Presunutie robota na novú pozíciu a nasmerovanie na východ: [30 50] -> pb_position; 180 -> pb_direction;
Balík obsahuje niekoľko tzv. pseudo-atribútov, ktoré môžu byť takisto zmenené.
4 -> pb_steps; posunie aktuálneho robota dopredu o štyri kroky: ![]() znázornené žltou trajektóriou -3 -> pb_steps; je vrátenie dozadu: ![]() 20 -> pb_size; Zväčší robota: ![]()
Ak chceme nastaviť atribúty neaktuálneho robota, musíme použiť procedúru pb_map v konjunkcii s procedúrou pb_update_obj. Procedúra pb_map zoberie interné číslo objektu a vráti relevantnú údajovú štruktúru. Takže: pb_map(2) -> object; pb_update_obj(object, [[colour yellow]]); nastaví farbu objektu 2 na žltú a : turns object 2 yellow, while pb_update_obj(object, [[position [20 10]][direction 270]]); objekt 2 presunie na pozíciu so súradnicami '20 10' a nastaví smerovanie pohybu na 270. POPBUGS poskytuje množstvo možností definovania a kontrolovania pohybových a senzorických vlastností robotov. |
|||||||||||||||||||
Kontakt: Marek Bundzel |