fredag den 6. november 2009

Darwin i en datamat


Fremmødte

Pepe og rfogh, 3 timer

Formål

Formålet med dagens øvelsesgang er at påbegynde en robot der kan bygges kompetencer ovenpå. Robotten skal kunne finde rundt på gulvet i Zuse bygningen, holde sig væk fra at støde ind i ting og spille en lille melodi med jævne mellemrum.

Robottens miljø er egentlig dynamisk, idet der også er andre studerende og robotter i lokalet, men i praksis er det ret statisk idet hverken dataloger eller ingeniører flytter sig ret meget.

Forløb

For at finde ud af hvordan systemet fungerer blev den udleverede kode kompileret og uploadet.

Da vores robot var lavet med "omvendte" motorer blev det nødvendigt at ændre på måden Car klassen virker.

Robotten består af to lys sensorer, en afstandssensor, og en lydsensor, der er to motorer som er eneste tilføjede aktuatorer. Der er selvfølgelig den indbyggede højttaler der anvendes til at spille melodien.

Efter afprøvningen af den udleverede kode (og rettelse så den passer til robotten) blev der implementeret en FollowLight klasse. Denne klasse bygger på Behavior og sender robotten i en bestemt retning hvis der er mere lys i en retning end i en anden indenfor en tærskelværdi.


Prioriteringen af trådene blev:

  1. Random Walk
  2. Follow light
  3. Avoid Front
  4. Play Sound

Grunden til at follow light ligger lavere end Avoid Front, er at det er vigtigere for den at lade være med at støde ind i ting, desuden er det at følge lyset fornuftigt på et højere plan end bare at rende tilfældigt rundt, og der er endnu mere fornuft i at lade være med at støde ind i ting.

Forsøg

Forsøgene der er gjort med den oprindelige kode begrænsede sig til at få den til at køre den rigtige vej, og eksperimentere med hvor tæt den skulle på genstande for at begynde at bakke.



Eksperimenterne med den lys følgende kode viste at en tærskel værdi på 5 (en forskel i procent på 5) var god til at lave en afbalancering mellem at finde lyset og lade random walk stadig være en del af dens funktion.


Eksperimentet stillede et meget filosofisk spørgsmål: Hvad gør en robot når den har fundet og opnået sin mening med livet?



I vores tilfælde viste det sig at svaret var at synge en lille sang og danse lidt.

Når der findes lys nærmer den sig denne kilde, indtil der er lige meget lys på begge sider. Når der er lige meget lys på begge sider vælger robotten en tilfældig retning at bevæge sig i, hvis der bliver stor forskel mellem værdierne på lyssensoren rettes der op og hvis den kommer for tæt på noget afviges der.

Når robotten rammer døren i Zuse bygningen har den opnået det den er lavet til: Find lyset uden at støde ind i noget. Derfor kører den frem mod lyset til den kommer for tæt på døren hvor den flytter sig fra, hvilket gør den kommer for langt fra døren/lyset. Dette ligner en lille dans, hvilket forstærkes af den lyd den spiller, der kunne minde om en sang.




Forløsning

Behavior modellen gør det nemt at programmere nxt'en med en måde at opføre sig.

Som det muligvis er bemærket bliver robotten meget mere beskrevet ud fra psykologiske termer, idet det nu er muligt at beskrive mål og "ønsker" for robotten.


Ingen kommentarer:

Send en kommentar