Deltagere: Elvar, Ebbe, Henrik
Sessionens formål:
1. Redesigne robotten endnu en gang.
2. Eksperimenter med tacho units i forhold til centimeter.
3. Navigering på Mars pladen.
4. Tilrette vores pathfinding algoritme til NXT enheden.
1.Redesigne robotten endnu en gang.
Endnu en gang fandt vi det nødvendigt at redesigne vores robot. Den have stadig et par problemer, som gjorde at den havde svært ved at køre lige. Vi fandt ud af at robotten var meget uligevægtig. Motoren som trækker vores løftemekaniske, og selve løftemekanismen, sad i den ene side af robotten, og var dermed med til at trække robotten ned i denne side. Det vi gjorde var at finde noget modvægt, og sætte det i den anden side af robotten. Dette resulterede i at den kørte en smule mere lige, men det var stadig ikke perfekt. Vi ændrede derudover hvor langt der var imellem hver hjul da vi kunne observere at hjulene skrånede en smule ind mod selve bilen. Til sidst observerede vi at hjulene skrabede en smule imod selve robottens konstruktion, og dette kunne yderligere gøre at en motor blev en smule bremset i forhold til den anden, og dermed gøre at robotten kørte skævt.
Vi foretog, i forbindelse med at robotten kørte skævt, nogle eksperimenter for at sikre os at de ting vi ændrede rent faktisk hjalp. Vi fik robotten til at køre det der ca svarer til 100cm på en lige linie, hvorefter vi målte hvor meget den afveg fra denne linie efter afsluttet eksperiment. Vi foretog fem tests før vores ændringer på robotten og observerede i gennemsnit en afvigelse på fem centimeter fra robotten centrum til liniens centrum over en afstand på 100cm. Efter ændringer kunne vi observere at robotten nu kun afveg i gennemsnit 2cm over fem forsøg på en 100cm strækning. Vi fandt at dette var en tilstrækkelig forbedring, men vi kan eventuelt lave flere forsøg senere hvis vi finder at afvigelsen er for stor.
Vi fandt ud af at andre havde haft problemer med tacho counteren, da vi søgte på nettet. Deres problemer er ikke nødvendigvis de samme som vores, men problemerne er dog taget i betragtning og udviklerne erkender at der er visse fejle, som skal rettes i næste udgave af nxt. References til dette er her.
Vores nye design af robotten kan ses på følgende billede:

2. Eksperimenter med tacho units i forhold til centimeter.
Disse simple forsøg gik blot ud på at finde ud af hvor mange tacho units der var per centimeter, sådan at når vi bevæger os på Y-aksen på Mars pladen, så ville vi kunne navigere i centimeter ved hjælp af tacho units. Vi kan nemlig ikke på Y-aksen navigere ved hjælp af de sorte streger da disse er meget tynde i forhold til stregerne, som adskille X-koorinaterne.
Det er dog ikke sikkert at vi i sidste ende bruger tacho units til at navigere med, måske bruger vi centimeter, hvis vi kan få dette til at blive præcist nok. Men lige nu bruger vi tacho units, så derfor skal vi finde ud af hvor mange units der er per centimeter.
Vi opstillede forsøget ved at ligge et centimetermål ud på Mars pladen og starte robotten i den ene ende, og måle hvor langt robotten egentlig kørte når man bedte den om at køre 100cm. Vi udførte igen dette forsøg fem gange og fandt en afvigelse på i gennemsnit fem centimeter, det vil sige robotten kørte i gennemsnit fem centimeter for langt. Vi justerede parametrene, som man skal give tacho counteren, altså målet mellem hver hjul, og hjulets radius. Da disse ændringer var lavet kom vi i fem forsøg ned på en afvigelse på en centimeter i gennemsnit, hvorefter forsøget blev meget svært forbedre, og vi besluttede at resultatet var tilstrækkeligt.
Forsøgets opstilling kan ses på følgende billede:

3. Navigering på Mars pladen.
Efter vi fik lavet algoritmen til at navigere på Mars pladen, stod vi nu overfor det problem der var i rent faktisk, at bevæge robotten fra start positionen til slut positionen. Det skal først siges at vi, i dag, ikke blev færdige med dette, men arbejdet med dette skulle gerne færdiggøres i morgen. Vi har dog overvejet to løsninger til dette problem, men ingen er i dag blevet implementeret. Begge løsninger har selvfølgelig det til fælles, at vi tager det første element vi får tilbage fra den ArrayListe fra path finding algoritmen, og derefter går alle elementerne igennem en efter en, for til sidst at komme til destinationen. Måden vi kommer fra punkt til punkt i denne ArrayListe på, varierer i vore to løsninger.
I den første løsning var planen, at holde styr på vinklen robotten står i, og hvor meget den præcist skal bevæge sig for at komme fra punkt til punkt. Denne løsning giver mange varibler, som der er nødvendigt at vedligeholde, og komplicerer også selve bevægelsen af robotten fra punkt til punkt, da dette er noget vi selv skal implementerer.
I den anden løsning giver vi centret i hvert punkt(hver firkant på Mars pladen), i koordinat systemet, en koordinat i centimeter. Vi fandt ud af at tacho counteren selv kan roterer og navigerer fra punkt til punkt i et koordinat system, hvor enhederne er centimeter. Dette vil simplificerer vores navigering meget, da vi ikke selv skal holde styr på at roterer og køre vores robot, det vil tacho counteren selv klare. Vi hælder til sidst forklarede løsning, og denne vil vi fortsætte med i morgen.
4. Tilrette vores pathfinding algoritme til NXT enheden.
Da vi testede vores path finding algoritme på nxt enheden havde vi nogle problemer. Den virtuelle maskine, som ligger på nxt enheden, er en begrænset udgave af den virtuelle maskine, som ligger i windows. Det første vi løb ind i, var at vores repræsentation af koordinat systemet ikke var gyldig på nxt enheden. Vi havde repræsenteret koordinat systemet som et multi dimensionelt array, men da dette dig imidlertidigt er muligt på en nxt enhed, så havde vi dog stadig problemer, og vi fik fejl, som vi ikke rigtigt forstod, men vi forstod dog så meget af dem, at vi kunne identificerer fejlens oprindelsen, dog ikke problemet. Vi valgte istedet at løse problemer ved at lave et ArrayListe med Arrylister. Dette er i bund og grund det samme som et flerdimensionelt array, men det er åbenbart arrangeret på en måde i hukkommelse, som nxt enheden kan håndterer. Derudover kørte vores algoritmen som den skulle, vi lavede selvfølgelig forsøg med path finding på enheden, og resultatet af disse forsøg blev som forventet en korrekt rute fra punkt A til punkt B.
Imorgen er den primære plan, at få robotten til at bevæge sig efter en rute fundet med vores path finding algoritme, og hvis der er tid til det, så vil vi starte med at implementerer løsningen til de første opgaver.
Ingen kommentarer:
Send en kommentar