Prírodou inšpirované algoritmy
študijné materiály pre projekt mobilnej triedy umelej inteligencie
|
|
Zvedavé vozidloSché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 ).
|
|
Kontakt: Marek Bundzel |