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


Milujúce vozidlo

Schématické zobrazenie

\"\"

Milujúce 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-re);
robot->Motor[LEFT].Value=8*(1-li);
/* Ak (Hodnota >= 10) => max. rýchlosť */
...

}

Správanie robota

Robot sa pohybuje priamočiaro, pokiaľ pred ním nie je žiaden objekt (Rýchlosť=8). Ak sa nachádza na pravej strane objekt, tak b de pravé koleso v dôsledku zvýšených dát zo senzora viac spomalené ako ľavé koleso. To má za následok, že sa robot pohybuje stále pomalšie približuje k objektu. Robot ostáva stáť, keď sa dáta z ľavého senzora vyrovnajú dátam z pravého senzora rovným 1.Keď robot stojí pred objektom a objekt sa pohybuje k robotovi, tak robot vykonáva spiatočný pohyb avšak zostáva pri objekte. Robot teda vlastní aj sprievodcovské správanie.

Hore
Kontakt: Marek Bundzel