Denne blog bruges af Kim Munk Petersen (20063667), Andreas Koefoed-Hansen (20062154) og Tim Rasmussen (20061947) som dagbog i forbindelse med kurset Embedded Systems/Legolab på Århus Universitet.

torsdag den 8. oktober 2009

Forberedelse til robot race - Øvelsesgang 5

Denne uges opgave går ud på at få robotten til at følge en linie og stoppe når den når til målområdet. Opgaven er en god forberedelse til næste uges race, hvor det gælder om at få robotten hurtigst til toppen og tilbage igen. Under denne uges øvelser, har begge gruppemedlemmer deltaget aktivt.

Black White Detection
For at kunne udføre denne og senere opgaver, var vi nødt til endnu engang at bygge vores robot.

Opgaven går ud på at anvende klassen BlackWhiteSensor som vi har fået udleveret. Klassen indeholder en række metoder, hvor 2 bruges til at kalibrere farverne og to bruges til at bestemme om lyssensoren befinder sig over en hvid eller sort farve. Måde denne afgøre dette på er ved at lave et blackWhiteThreshold, som er summen af de to farvers værdi diveret med 2.

For at teste brugen af BlackWhiteSensor klassen, oprettede vi vores eget test program. BlackWhiteTest.
Programmet opretter en ny BlackWhiteSensor som vi herefter kalder calibrate metoden på. Denne metode sørger for at værdierne for hvid og sort bliver gemt og beregner blackWhiteThreshold.
Resten af test programmet udskriver blot den målte værdi og undersøger om der er tale om en sort eller hvid farve.

Programmet brugt i denne opgave kan findes:
http://www.cs.au.dk/~tiras/filer/LEGO/BlackWhiteSensor.java
http://www.cs.au.dk/~tiras/filer/LEGO/BlackWhiteTest.java

Line Follower with Calibration
Denne opgave går ud på at stifte bekendtskab med hvordan man kan anvende BlackWhiteSensor klassen til at få robotten til at følge en linie. Vi får udleveret programmet LineFollowerCal, som netop gør bruge af funktionerne til at bestemmer om den følger linjen.

Programmet brugt i denne opgave kan findes:
http://www.cs.au.dk/~tiras/filer/LEGO/LineFollowerCal.java

Vi vil ikke gør mere ud af denne beskrivelse da næste opgave omhandler samme enme, blot den tilføjelser og ændringer af BlackWhiteSensor klassen.

ColorSensor with Calibration
Denne opgave går ud på at lave et nyt program ColorSensor, som kan kende forskel på sort, hvid og grøn. Programmet er en udvidelse af BlackWhiteSensoren klassen. Tilføjelserne består i at vi har lavet en ekstra variabel greenLightValue, indeholder den kalibrerede værdig for grøn. Ligeledes er et nyt greenWhiteThreshold lavet, som indeholer summer af den grønne og hvide værdi divideret med 2.
Vi har nu to thresholds der indeholder gennemsnittsværdien af henholdsvis sort - grøn og grøn - hvid.

Vi har tilføjet en ny metode green(), som returnere true hvis den aflæste værdi ligger imellem de to thresholdes.

Denne løsning virker for det meste, men kan have problemer med at skelne mellem sort og grøn, da de to værdi ligger meget tæt op af hinanden. En lille forskel i lysmængden kan derfor kan derfor være med til at påvirke resultatet.

ColorSensor programmet kan findes på:
http://www.cs.au.dk/~tiras/filer/LEGO/ColorSensor.java

Line Follower that stops in a Goal Zone
Denne opgave går ud på at få robotten til at følge en linje og stopper når den når til målområdet. For at løse denne opgave har vi gjort bruge af ColorSensor klasse og LineFollowerCal. Klassen LineFollowerCal er blevet modificeret således at den nu også gør brug af metoden green() til at bestemmer om den er nået til målområdet.

Til at starte med gjorde vi kun bruge at en lyssensor, men det viste sig hurtigt at det var svært for den at følge linjen. Grunden til dette er som beskrevet i forrig opgave at den har svært ved at se forskel på sort og grøn.

Dette problem løste vi, ved at tilføje en ekstra lyssensor til robotten. Dette har gjort at den nu er meget mere præcis og nu følger linjen til punkt og prikke. :D
Grunden til at den nu følger linjen bedre, er at den nu kigger ved siden af linjen i stedet for på linjen.

Det nuværende program ser du som følgende:
http://www.cs.au.dk/~tiras/filer/LEGO/LineFollowerCalColor.java

Ingen kommentarer:

Send en kommentar

Faste læsere