fredag den 13. april 2012

TeddyClimber, session 6

Deltagere: Mikkel, Troels, Bjarke
Varighed: 5 timer

Plan

1. Få koden til at virke med den nye robot (fix it)
2. Nå til toppen.

Resultat

1. Efter den ikke helt velovervejede ombygning af robotten, virker vores "følg linje" kode ikke mere. Vi har fundet et problem med vores setScale metode, da den ikke scaler P,I,D værdierne, når scale bliver ændret. Årsagen til brugen af skalering er, at vi gerne vil anvende kommetal, når vi sætter P, I og D, mens vi samtidig gerne vil undgå brugen af floats, da anvendelsen af forskellige formater kan være ødelæggende. Derfor bruger vi en skalering, således at P, I og D ganges med denne skalering når de sættes (og tilpasses hvis en scale ændres), hvilket gør at vi kan nøjes med integers.

Vi har fundet et problem med den måde vi finder ud af om vi læser sort eller hvid. Vores funktion sammenligner de læste værdier med det threshold vi sætter når vi kallibrerer robotten. Funktionen ser om de læste værdier ligger indenfor et fastsat værdi af den kallibrerede værdi. Denne fastsatte værdi er svær at sætte pga forskellen mellem de gamle og nye sensorer, da forskellen mellem sort/hvid værdierne er større for de nye sensorer end for de gamle. Vi omskrev derfor funktionen således at den er baseret på en %-sats af differencen mellem sort og hvid, hvilket tager højde for dette problem. Når vi bruger en værdi der er mellem 20 og 30% af differencen, reagerer robotten fint på de forskellige farver.

2. Vi nåede ikke toppen.
Vi brugte meget tid på at fjerne de to beskrevne fejl og derefter tilpasse forskellige variable. Da dette var gjort kunne vi dog fortsætte fra hvor vi slap i slutningen af sidste sæssion. Med den nuværende opbygning og indstillinger klarer robotten fint turen op ad første rampe. Den opdater at den når toppen, fordi alle tre sensorer læser hvid, da den ikke kan dreje tilstrækkeligt hurtigt ved sådan en pludselig retnings-ændring. Når det sker fortager vi ca. en 180° rotation mod højre. Her mister den forbindelsen med stregen og det næste job bliver at genfinde den.
Da vi bruger et tilstands-system, har vi dedikeret en tilstand til at genfinde stregen og komme ordenligt ind på den, således at vores tilstand der kører ligeud kan overtage og køre op til næste rampe, hvor vi går over i tilstanden der er ansvarlig for at dreje robotten. Udover disse tre skal vi tilføje en tilstand ansvarlig for at dreje os 180° på stedet, når vi når toppen.

Konklusion

Vi fik robotten til at følge en lige linje, finde svinget og foretage et sving.Næste gang skal vi sørge for at robotten kan genfinde stregen og så finpudse styring så den kan finde toppen konsistent.

Ingen kommentarer:

Send en kommentar