Vi startede med at lave en slagplan for hvordan vi skal løse problemet med at få roboten op til toppen og ned igen. Vi brugte billedet herunder til at lægge en plan:
Ideen er at vi det op til det første sving kører efter højre side af stregen, efter svinget og inden det næste sving skal den så skifte over til at køre efter den anden side af stregen, så den måler på den "rigtige" side af svinget. Når den har lavet begge sving skal vi have den til at vende oppe i det sidste felt. Dette vil vi gøre endten ved x-punkts vending, hvor vi søger efter stregen, eller ved at lade hjulene rotere hver sin vej igen mens vi søger efter stregen og så kører ned igen, efter samme taktik.
Vi delte opgaverne så en programerede turen op af rampen, og en programmerede vendingen.
Vi havde nogle problemer med nogle exceptions i dataloggeren, vi fandt ud af at skyldes at int ikke har en toString metode, men Integer har, så vi brugte Integer i stedet.
Mens vi bøvlede med exceptions fik vi lavet en program der bare manglede at få input fra dataloggeren, og ellers burde virke (i teorien).
Vi prøvede robotten, men baghjulet gik på, så det virkede ikke så godt. Vi byggede robotten lidt om, og ændrede på koden.
Vi prøvede igen, men det virkede ikke så godt, robotten ville ikke følge linjen. Det virkede som om sensoren sad for langt væk fra linien. Vi prøvede at sætte sensoren tættere på men det hjalp ikke. Så tilbage og rette på koden så vores robot kan følge en sort linje.
Det hjalp et sætte kraften hvormed robotten drejede ned til 1/4 kraft, så den ikke drejede så skarp at drejede væk fra den sorte linje.
Vi havde stadig svært ved at få robotten til at følge linjen, og prøvede derfor at hardcode farve-værdierne istedet for at kalibrere hver gang.
Hver gang vi tester med robotten laver vi en log fil hvor vi kan se hvilke værdier roboten læser fra lyssensoren og hvilken vej den drejer. Udfra dette prøver vi på at få robotten til at fungere.
Vi endte med at have en robot der fungerede som en statemaskine så vi kunne håndtere de forskellige faser af ruten. Men desværre gav vores opbygning af robotten en del problemer når underlaget slog et knæk og lyssensoren så var for langt væk derfra. Dette resulterede i at vi var nødt til at hardcode en del for at nå over de fysiske problemer med robotten.
Set i bakspejlet skulle vi have ombygget vores robot så den havde flere sensorer (i stedet for den ene lyssensor), og arbejdet ud fra det.
Koden kan ses her:
Ingen kommentarer:
Send en kommentar