fredag den 13. november 2009


Fremmødte
rfogh og pepe. Varighed 3 timer.

Formål
Formålet med dagens øvelser er at undersøge en robots mulighed for map-building og muligheden for at give en robot et overordnet retningsmål, men samtidig bevare egenskaber som at undgå påkørsler osv.

Forløb
Vi byggede en udvidet udgave af TriBot - standard-robotten fra LEGO. Vi vurderede at denne robot ville være god til øvelserne, da meget af vægten ligger på de to kørehjul og der derfor burde være mindre slack i forbindelse med hjulspin under igangsætning og drejning. Denne robot blev brugt til alle vores forsøg.

Efter at have udført forsøg med TriBot som beskrevet nedenfor, erstattede vi ultralydssensoren med en kompassensor og udførte forsøg med at navigere efter kompas.

Forsøg
Første forsøg var at implementere det fra kapitel 12 udleverede kode, dette gik dog ikke helt efter forskriften.

Der viste sig at være problemer med at dreje, for at klarlægge hvordan blev et mere stiliseret forsøg opstillet:
Robotten skal ud fra tachocounteren finde frem til [X,Y] punkterne [0,0], [0,100],[100,100],[100,0] og [0,0].

Den ønskede og faktiske rute kan ses i figuren.

Som det ses, fulgte robotten ikke den ønskede rute. Den første halvdel af ruten var korrekt, men efter et kort holdt i (100,100) fortsatte robotten i samme retning i stedet for at dreje. Den kørte 100cm mere, drejede 90grader og kørte 200cm, hvorefter den mente at være i (0,0).
Det tyder altså meget på, at der er fejl i SimpleNavigator-klassen og ikke i vores brug af den.

Vi undersøgte det yderligere ved at lade robotten følge en bane, der blev kodet som vist på dette billede:
Robotten kørte dog som vist på videoen:



Som man kan se, er det meget svært at gætte, at det er den ønskede sti, der følges...

Efter på det nærmeste at have opgivet SimpleNavigator prøvede vi i stedet for TachoPilot at bruge CompassPilot efter samme otte-kantede rute som beskrevet ovenfor.



Igen ses det, at ruterne er næsten ens, men dog overhovedet ikke som vi har forestillet os det.


Forløsning
Det er svært at konkludere noget på disse to forsøg, da det ser ud som om SimpleNavigator er fejlbehæftet, eller vi bruger klassen forkert. Da dokumentationen er meget mangelfuld er det svært at afgøre, hvilken en af delene der er tilfældet. Vi kan dog konstatere, at robotten fx. kørte ligeud på tidspunkter, hvor den burde dreje, så det er ikke blot et spørgsmål om tilretning af konstanter.

Ingen kommentarer:

Send en kommentar