fredag den 23. november 2007

Lesson 10:

Idag 23/11-2007 mødtes vi alle i gruppe, Elvar, Henrik og Ebbe fra kl 9:00-12:00

Indledning:
Idag skal vi, igennem en række forsøg, undersøge hvordan en behaviour-based architecture er blevet implementeret med subsumption API'et leJOS NXJ.

BumperCar:
Vi skal her eksperimentere med et behaviour-based system, hvor en legobil med en touch sensor kører udgør kernen i eksperimentet. Legobilen indeholder to behaviours som hver især aktiveres på bestemte stimuli. De to behaviour er DriveForward og HitWall.
I første del eksperiment skal vi beskrive hvad der sker når vi trykker touch sensoren ned og holder den nede. Vi observerede at så snart touch sensoren trykkes ned, så begynder legobilen at bakke, indtil den til sidst helt stopper. Det der sker internt i legobilen er at når touch sensoren aktiveres så starter den HitWall, som så er aktiveret et vidst antal sekunder, hvorefter den så stopper. HitWall han derefter aktiveres igen ved at slippe touch sensoren, for så derefter at trykke på den igen, men den aktiveres ikke sekventielt ved at holde touch sensoren nede. Det vil sige at takeControl metoden i DriveForward ikke bliver aktiveret så længe at HitWall er aktiveret da DriveForward er i sleep-mode så længe HitWall er aktiv.

Efter at vi havde implementeret en PlaySound behaviour og givet den højest prioritet skulle vi derefter observere HitWall og se hvordan den ville reagere når den blev suppressed. Når HitWall bliver suppressed stopper begge motorere, men det kan alligevel godt ske at HitWall stadig har kontrol over motorene da programmet HitWall sover mellem at den kørere tilbage og drever legobilen og hvis tråden sover kan den ikke umiddelbart suppresses, så derfor kan HitWall godt stadig have kontrol over bilen selvom den bliver suppressed.

Another Arbitrator:
Her skal vi undersøge hvorledes vi kan undersøge en triggering condition ved mellem et konstant interval. Hvis vi kort kigger tilbage på den forrige opgave, hvor vi skulle se hvad der skete når når touch sensoren holdes nede, så observerede vi at der ikke skete noget efter den havde reageret første gang. Det ville være smart hvis legobilen reagerede på at touch sensoren blev holdt ned ved at den blev ved med at køre baglæns, og dette vil måske være muligt med undersøgelse at triggering conditions mellem et fast interval.
Efter vi tog de beskrevne skridt i opgaven opserverede vi nu at, hvis f.eks touch sensoren blev holdt nede, så gentog den HitWall behaviour sekvensen flere gange efter hinanden, som vi havde antaget.

Motivation Funktions:
Denne opgave går ud på at bruge motivation som faktor i beslutnings processen, når legobilen finder ud af hvilken behaviour den skal udføre. Her kan takeControl eventuelt bruges hvor den returnere en motivation variable mellem 0-1, som hentyder hvor motiveret legobilen er for at udføre en bestemt behaviour, hvor 1 er max motiveret. HitWall kunne sættes til at bruge denne metode sådan at når legobilen rammer en mur, så er den max motiveret til at bakke tilbage og dreje væk fra muren. Bilen ville derimod være mindre motiveret til at gentage sekvensen når den drejer da det ikke er mulig at køre ind i noget forfra når man bakker. Legobilen kunne derimod godt ramme en forhinding når den drejer i den dens forsøg på at komme væk fra muren, så her skulle den så igen være max motiveret til at undvige væggen endnu engang. Dermed kunne HitWall aktiveres når den forsøger at dreje væk fra muren.

References:
ReferencesBrian Bagnall, The leJOS Tutorial, Behavior
Thiemo Krink (in prep.). Motivation Networks - A Biological Model for Autonomous Agent Control.

Ingen kommentarer:

Bidragydere