torsdag den 6. januar 2011

Afsluttende projekt, 7. dag

Date: 6. Januar 2010
Duration of activity: 4 hours
Group members participating: Heine Stokholm, Michael Vilhelmsen og Mads Møller Jensen

Dagens mål
  • Få robotten til at køre gennem banen
Plan
  • Kigge på delene af programmet og optimere disse
  • Ændre banen, så robotten kan se de sorte markeringer, som fortæller den, at den befinder sig på midten af et modul
Problemer
I går havde vi store problemer med at få farten ned på PID-systemet i LineFollower-delen af programmet. Vi har løst dette på en "hovedet-under-armen"-metode, og divideret farten med 2. Dvs. at vi har leftMotor.controlMotor(power/2), og tilsvarende rightMotor.controlMotor(power/2). Dette har imidlertid virket og robotten kører gennem banen med en mere acceptabel fart. 

I dag opstod et nyt problem. Når vi har drejet 360 grader og scannet de åbne veje, kører vi lidt frem med PID-systemet i LineFolloweren for at rette de eventuelle fejl, der kan opstå ved rotationen. Når robotten er rettet ind, skal den så køre ligeud - uden PID-system - indtil den ser en sort markering. Grunden til at den skal køre uden PID-system er, at vi ser den sorte væg inden vi ser den sorte markering, og med PID-systemet ville robotten dreje helt skævt. Problemet består nu i, at vi har en fejl på en motor, formoder vi, som gør, at robotten drejer til venstre, når den blot skal køre ligeud. Vi lavede et simpelt program, som bare skulle få robotten til at køre ligeud, og det viste desværre, at vi havde ret i vores antagelse. Både ved høj og ved lav fart. Vi prøvede at køre med robotten på banen med det rigtige program, og pludselig ville robotten gerne køre ligeud, som den skulle.

Vi har indtil videre beholdt kompasset på robotten, så vi kunne bruge det til at sige, hvad der er nord, syd, øst og vest, så vi var fri for at huske hvilken retning, vi peger. Vi vidste, at kompasset var lidt fejlbarlig, men vi troede, at vi kunne bruge det til at angive en cirka retning. Denne antagelse var helt forkert! Kompasset var så forvirret, så den troede, robotten var drejet 235 grader, når den kun var drejet 180. Det betød at kompas værdien var tættere på 270 grader, og den fortalte robotten, at den pegede i en anden retning end den gjorde.

Den følgende video viser to ting:
  1. Videoen viser, hvor godt robotten efterhånden kører rundt på banen, holder sig til linjerne og læser de rigtige værdier.
  2. Samtidig viser videoen også, at kompasset forstyrrer robotten så den er i tvivl om hvilke retninger den skal læse.

For at løse problemet har vi lavet en variabel, som husker hvilken retning, robotten peger i.
Resultatet heraf var som følger:





Status
Vores robot kan efterhånden køre banen rundt. Vi har prøvet forskellige ting af i dag, og vi synes efterhånden at resultatet er ret godt. Det har virkelig givet pote, at fokusere på de små dele af programmet og optimere dem hver for sig. Robotten kører næsten banen som den skal. Vi er meget tilfredse med at have droppet at bruge kompasset. Derved har vi også fjernet noget af det mere dynamiske i miljøet, så det i sin helhed er blevet mere statisk og derved egner sig endnu bedre til vores sekvens strategi.


Næste gang
Næste gang skal vi have modificeret bane en lille smule. Robotten har lidt problemer i kanterne, hvor den støder i mod kanten af den plade som banen er på (Dette kan også ses på videoen). Derudover skal vi arbejde videre med, at robotten skal huske de moduler den ser, og at den ikke scanner de samme moduler flere gange, og forhåbentlig til sidst kan lave et 2-dimensionalt array som vi kan arbejde med på computeren.

Ingen kommentarer:

Send en kommentar