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