Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
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



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


Používanie senzorových programov

V Popbugse v3 je možné programovať senzory rôznymi spôsobmi. Napríklad: predpokladajme že chceme mať senzor na vzdialenosť červených objektov. Potom musíme použiť špecifikáciu senzora [0 red] Takto vytvoríme senzor, ktorý vráti vzdialenosť najbližšieho objektu v senzorovom lúči. Príklad:

   1 -> pb_new_world;
   3 -> pb_display_level;
   [[0 red]] -> pb_sensors;
   [[colour red]] -> pb_spec;
   [[colour blue]] -> pb_spec;

Menením smeru pohybu robota zistíme, že senzor indikuje len červené objekty.

Vo všeobecnosti majú senzorové špecifikácie nasledovný tvar:

    [  ]

Každá začína parametrom field_spec.
Field spec môže nadobúdať tieto hodnoty:

  • integer - pre lúčový senzor
  • vektor dvoch integer čísel - pre sektorový senzor
  • prázdny vektor - pre senzor na vnímanie celého okolia

Podľa field_spec môžeme pridať k snímaču 0 a viac filtrov a 0 a viac prevodníkov.
Niekoľko príkladov konfigurácie filtrov:

   [10]
   [10 col]
   [-30 col1]
   [{-20 20} num1]
   [{-20 20} 10 nearest behaviour]
   [{-10 10} red circle prox]
   [{90} red circle prox1]
   [{90 0.1} red circle prox1]
   [20 impenetrable obstacle shape]
   define intensity(vals);
   lvars val, vals n = 0;
   for val in vals do n + val -> n endfor;
   enddefine;

   [{90 270} [type fish] [colour red] prox ^intensity]

Hore
Kontakt: Marek Bundzel