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


Bojazlivé vozidlo

Schématické zobrazenie

\"\"

Bojazlivé vozidlo

Pseudo kód

boolean StepRobot(struct Robot *robot)
{

...
/*Normovanie+Sumácia dát senzora*/
/*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=(2+3*re);
robot->Motor[LEFT].Value=(2+3*li);
/* Falls (2+3*re >= 10)
=> max. rýchlosť */
...

}

boolean StepRobot(...)...Funkcia ktorá je stále volaná simulátorom

robot- > IRSensor[i].DistanceValue...hodnota (okolité svetlo +
reflektované svetlo) i-teho senzoru. rozsah hodnôt: [0,1023]
robot- > Motor[RIGHT].Value...rýchlosť motora.
rozsah hodnôt: [-10,10]

Správanie robota

Robot sa pohybuje priamočiaro, pokiaľ nie je žiaden objekt (Rýchlosť=2). Ak sa nachádza na pravej strane objekt, tak bude pravé koleso v dôsledku zvýšených dát zo senzora viac zrýchlené ako ľavé koleso. To má za následok, že sa robot odkloní od objektu. V špeciálnom prípade, keď sú dáta z pravého a ľavého senzora zhodné, má za následok náraz robota do objektu (agresívne správanie).

Hore
Kontakt: Marek Bundzel