Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
Bojazlivé vozidlo
Agresívne vozidlo
Milujúce vozidlo
Zvedavé vozidlo
Vozidlo medzi 2 zdrojmi svetla



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


Zvedavé vozidlo

Schématické zobrazenie

\"\"

Zvedavé vozidlo

Pseudo kód

boolean StepRobot(struct Robot *robot)
{

...
/*Normovanie+Sumácia dát sensora*/
/*re,li v rozsahu [0,3] */

for(i=0;i<3;i++)
li=li+(robot->IRSensor[i].DistanceValue)/1023;
for(i=3;i<6;i++)
re=re+(robot->IRSensor[i].DistanceValue)/1023;

robot->Motor[RIGHT].Value=8*(1-li);
robot->Motor[LEFT].Value=8*(1-re);

/* Ak (li==re > prah) => otočenie */
/* Ak (Hodnota >= 10) => max. rýchlosť */
...

}

Správanie robota

Robot sa pohybuje priamočiaro, pokiaľ nie je pred ním žiaden objekt (Rýchlosť=8). Ak sa nachádza na pravej strane objekt, tak bude ľavé koleso v dôsledku zvýšených dát zo senzora vpravo viac spomalené ako pravé koleso. To má za následok, že sa robot pomaly odkláňa od objektu. Robot ostáva stáť, keď sa dáta z ľavého senzora vyrovnajú dátam z pravého senzora rovným 1. Aby sa tomu zabránilo, je pri symetrickom podnete ľavého a pravého senzora donútený k otočeniu (v prípade prekročenia určitého prahu dát senzora). Robot teda má zvedavé správanie (skúmajúce správanie + vyhýbanie sa prekážkam ).

Hore
Kontakt: Marek Bundzel