Prírodou inšpirované algoritmy

študijné materiály pre projekt mobilnej triedy umelej inteligencie

Späť ku kurzom triedy
Obsah
Používateľské rozhranie
Programové rozhranie
Simulácia Braitenbergovho vozidla



Ostatné kapitoly
Walterove korytnačky
BEAM Robotika
Kolektívne správanie robotov
KANSEI
Braintenbergove vozidlá
POPBUGS
iRobot
Insect Robots
Ešte niekoľko robotov ...
MIT Roboty


Tutoriály
 Celulárne automaty
 Morfogenéza
 Simulátory
 Evolučné algoritmy
 Chaos
 Roboty
 Rôzne


Programové rozhranie

Podkapitoly:

Ovládanie pohybu
Ovládanie senzorov
Používanie senzorových programov
Programovanie náhodného správania
Generovanie video záznamu simulácie
Spúšťanie simulácii na pozadí
Premenné prístupné používateľovi

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').
Napríklad kód ktorým vygenerujeme simuláciu "vyhýbací tanec" vyzerá nasledovne:

"avoidance" -> pb_simulation;

Vznikne nám simulácia, ktorú môžete vidieť na obrázku:

Vyhýbací tanec

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é.
Napríklad:

   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.

Hore
Kontakt: Marek Bundzel