Kristan Andersen, Simon Lykke, Jacob Styrup Bang

fredag den 16. november 2007

Lesson 9

Dagens Mål
  • Undersøge leJOS TachoNavigator.
    • Teste TachoNavigatoren i praksis.
    • Teste præcisionen af TachoNavigatoren.
  • Overveje undvigelse af objekter mens der navigeres med TachoNavigatoren.

Opbygning af robotten

Vi benyttede standart robotten dog uden sensorer. Det lille baghjul på robotten kan give uregelmæssigheder når robotten startes.

Eksperimenter med TachoNavigatoren.
Programmet fra side 298 i " Brian Bagnall, Maximum Lego NXTBuilding Robots with Java Brains" blev indlæst.
Vi valgte dog at implemntere det i en Behaviour tråd som i Lesson 8, det er dog kunne denne ene tråd der states i selve hovedprogrammet da alle andre Behaviours er slået fra.
I følge teksten var det nødvendig at måle hjulafstanden da dette skal bruges til TachoNavigatoren.
Første gang målte vi hjulafstanden fra ydresiden af hjulene, da robotten kørte observerede vi at robotten ikke drejede som beskrevet i teksten men næsten 90 grader i stedet for de forventede 45 grader.
Vi målte da hjul afstanden som angivet i teksten fra midten af hjulene og dette betød at robotten nu var tæt på at komme tilbage til udgangspunktet.

Herover ses hvor tæt robotten sluttede på udgangspunktet på 4 kørsler. Hver mønt er placeret midt under hjulaksen på det sted hvor robotten stoppede efter hver kørsel.
Robotten udgangspunkt var samlingen mellem de 3 plader i gulvet.
Som det ses ud fra robottens størrelse ses det at robotten stoppede mellem 5 og 10 cm fra udgangspunktet og med ca. 5 cm afvigelse mellem hver kørsel.

Vi lavede også et eksperiment, hvor vi satte robotten til at dreje 90 grader 4 gange. Først med det lille hjul der følger med når der drejes rundt og derefter hvor hjulet er erstattet af en pind. Som det kan ses på videoerne i bunden af indlægget øger brug af pind i stedet for hjul præcisionen med ca. 10 grader i vores lille forsøg.

Undvigelse af objekter mens der navigeres med TachoNavigatoren

Da vi har implementeret vores BlighBot som en behaviour, ville det være nemt at udvide robottens opførsel med en ny behaviour "Avoid object". Denne nye behaviour skal have højere prioritet end BlighBot behaviouren, og skal som "Avoid object" behaviour'en fra Lesson 7 få robotten til at bakke væk fra objektet, men i modsætning til denne, skal den nye ikke bakke direkte tilbage. Hvis robotten bakkede direkte tilbage, og drejede rundt, for derefter at forsøge igen at køre mod dens mål, ville den fortsætte af præcis den samme sti, og køre direkte hen til forhindringen. For at undgå denne "Dead lock" skal robotten i stedet for at køre direkte tilbage, køre i en vinkel tilbage, for at ændre den rute robotten tager mod målet. Tegningen her illustrerer forskellen.

a. viser hvordan robotten med avoideren fra Lesson 7 hele tiden ville køre ind i forhindringen, mens b. viser at objektet kan undgås hvis robotten bakker et stykke skråt tilbage.


Konklusion
I vores undersøgelser af TachoNavigatoren blev vi overraskede over præcisionen. Under robot race'ed eksperimenterede vi selv med TachoCounteren, hvor indtrykket var at den ikke var specielt præcis. Vi fandt ud af at præcisionen af hjulafstanden var meget vigtig for at opnå en korrekt drejevinkel. Vi målte afstanden til 11.3cm, og selvom vi havde 0.1cm præcision stoppede robotten inden for en radius af 10-15cm fra udgangspunktet. Andre faktorer, som kan have haft indflydelse på denne afvigelse er at startvinklen for robotten kan have afviget en smule fra gang til gang, og robottens baghjul kan have en indvirkning på robottens retning efter der blevet drejet. En mulighed for at øge præcisionen ville være at bruge en pind i stedet for baghjulet. Evt. kunne man udføre eksperimenter med en tusch som baghjul, for bedre at kunne observere den præcise rute robotten kører. Problemet med TachoNavigatoren er at alle disse små usikkerheder lagt sammen over længere tid giver en stor afvigelse.


Ingen kommentarer: