Med Asbjørn, Christer og Jesper

fredag den 4. januar 2008

Projekt, møde 5

Deltagere: Asbjørn, Christer og Jesper
Tidsforbrug: 7 timer (9-16)

Hardwaren er nu rimelig komplet. Forhåbentlig drejer det sig kun om småting på den front fra nu af. En enkelt ting vi besluttede os for at rette i hardwaren var drivmekanismen i slæden. Den har en lille smule slør som gør at vi en gang imellem ikke drejer kuben præcis 90 grader. Det er et snegledrev hvor sneglen har mulighed for at forskyde sig en smule langs dens aksel. Vi har adresseret problemet ved at holde sneglen fast ved at indsætte en elastik som afstandsstykke på akslen.

Efter operationen var vi nødt til at kalibrere konstanterne for rotation i softwaren. Det viste sig desværre at denne løsning ikke var tilstrækkelig robust, hvorfor vi ændrede den igen. Det er ikke nemt at finde afstandsstykker med lidt "skæve" længder, men vi fandt heldigvis en type tandhjul vi kunne bruge i stedet.





Hvis vi antager at hardwaren er tilstrækkelig komplet nu, er de resterende opgaver i projektet som følger:
  • Konstruktion af en passende datastruktur for en kube
  • Fastlægge yderligere mødetidspunkter
  • Visualisering af kuben når vi simulerer løsning på pc
  • Løsning af kuben i software
  • Analyse af lyssensoren
  • Mekanisk løsning af kuben
  • Automatisk indscanning af kuben
  • Rapportskrivning
Vi begyndte med det samme med første punkt.

Konstruktion af en passende datastruktur for en kube
Vi havde ingen klar ide om hvordan man bedst repræsenterer overfladerne af kuben i NXT'ens hukommelse. Der er flere udfordringer. Siderne afhænger af hinanden når man roterer dele af kuben. Hvis man f.eks. roterer en ende, følger 1/3 af felterne på de 4 tilstødende sider med rundt. Desuden har har vi en ret begrænset mængde ram til rådighed. Det betyder at vi skal holde kompleksiteten i koden og i datastrukturen på et minimum.
For at brainstorme satte vi os hver for sig og implementerede hver en måde at repræsentere kuben på. To af løsningerne var "side-orienterede" og repræsenterede kuben som 6 sider med 3x3 felter der har nogle bestemte forhold til hinanden ved hjælp af bl.a. lookup tabeller, mens den tredje var "kube-orienteret" og betragtede kuben som en container for 27 små kuber, hver med information om farverne på deres sider. Når man deri vil rotere en ende, roterer man først de 9 involverede små kuber hvorefter man flytter dem. Vinderen blev en af de side-orienterede løsninger.

Fastlægge yderligere mødetidspunkter
Vi aftalte at mødes igen mandag kl 10.

Visualisering af kuben når vil løser den på pc
Vores arkitektur er konstrueret således at repræsentation og løsning af kuben er adskilt fra NXT-specifik kode. Derved kan vi simulere en kubeløsning på en pc og se resultatet på skærmen. Altså kan vi udvikle og teste løsningsalgoritmen uden at være afhængige af robotten.

Ingen kommentarer: