Med Asbjørn, Christer og Jesper

torsdag den 20. december 2007

Projekt, møde 4

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

Denne gang satte vi os for at rette de fejl der var ved vores hardwares håndtering af kuben:
  • Vores tilter kunne ikke altid tilte kuben.
  • Vores twister kunne ikke holde sig på multipla af 90 grader.
Disse tre problemer angreb vi i rækkefølgen beskrevet her. Det første var at fikse tilteren. Dette problem løste vi ved at ombygge forbindelsen mellem motoren og tilter-armen. Det viste sig at vi ikke behøvede nedgearing her. Resultatet er en mere voldsom tiltning af kuben, men til gengæld virker den hver gang.

Det andet problem var en større hindring. Da rubikskuber ikke er designet med LEGO-kompatibilitet for øje, er der rimelig meget slør mellem kuben og twisterarmen. Løsningen har her primært været i softwaren, der nu kompenserer for slør-effekten. I stedet for at dreje f.eks. 90 grader, drejer den i stedet lidt for langt og lidt tilbage. Ved at prøve forskellige værdier for denne overkompensering, lykkedes det os at finde en løsning der virkede. I hardwaren har vi gjort grebet om kuben lidt tættere.

Efter vi havde opnået en rimelig pålidelig mekanisk manipulation af kuben, fik vi udleveret en NXT Color Sensor. Projektet kræver godt nok to, men det er da en start. Vi lavede nogle indledende tests og konstaterede følgende:
  • Farvemålingen er generelt god og følsom overfor små ændringer i farve, men:
    • Afstanden man kan måle præcist i er kort og skarpt afgrænset. Det observerede vi tydeligst med kubens blå og grønne felter. Ved ca 1 cm var målingen god, men ved 1.5 cm var der problemer.
    • Selv om den indbyggede RGB -> farveindex konvertering virker det meste af tiden, har den meget svært ved at genkende kubens hvide sider (farve index 17). Også selv om RGB værdierne er ca lige store og i den høje ende (dvs i intervallet lysegrå..hvid).
Efter disse indledende målinger var det tid at finde en måde at montere sensoren på, så den pålideligt kunne måle farverne på kubens sider. I vores mockup har vi indtil nu anvendt to andre sensorer med samme ydre dimensioner som farvesensoren. Men vi havde ikke taget højde for sensorens begrænsede rækkevidde. Derfor har vi været nødt til at ændre twister-armen, så sensorerne kan komme tættere på kubens sider.

Vi brugte resten af tiden på at forbedre monteringen af farvesensorerne, samt at påbegynde programmeringen af softwaren. Vi har valgt at adskille logikken fra styringen af motorerne. Derved kan vi udvikle løsningsalgoritmen uden at inddrage den fysiske robot hver gang koden skal testes. Hvis en almindelig PC kan løse en virtuel kube i Java, vil det da være en smal sag at flytte koden over på NXT'en og løse kuben ved mekanisk manipulation.

Desuden optog vi en video af maskinen mens den kørte. Den laver ikke noget "fornuftigt" på denne video. Det er udelukkende en test af de forskellige mekaniske dele.


Billeder
Her ses et nærbillede af styringsmekanismen til rotation af slæden. I vores oprindelige design var slæden monteret direkte på en motor. Dette viste sig dog at være en vakkelvorn og ikke særlig præcis løsning. Dette design er meget bedre med hensyn til stabilitet og præcision.
Her ses en måling af et grønt felt på kuben. På NXT'ens skærm udskriver vi farveindex og RGB værdier.
Det kan være lidt svært at se værdierne på billedet, men der står:









På de næste billeder ses hele konstruktionen oppefra, sidefra og i perspektiv som den ser ud på dette tidspunkt.














onsdag den 19. december 2007

Projekt, møde 3

Deltagere: Asbjørn, Christer og Jesper.
Tidsforbrug: 3 timer.

Som beskrevet i sidste blogpost besluttede vi at mødes en ekstra gang inden jul. Heller ikke denne gang er der det store at skrive, men vi kan jo tage flere billeder så.

Sideløbende med videre udbygning af robotten er vi begyndt med udvikling af software til styring af motorene. Derfor går en god del af tiden med at bestemme hvor mange grader de forskellige motorer skal køre for at opnå den ønskede mekaniske effekt. Ligeledes er der aspektet med hvor præcise motorerne er. Når man roterer slæden som kuben ligger på, er det vigtigt at den drejer præcis 90 grader hver gang. Det er ikke godt nok at den f.eks. drejer 90 grader og derefter et par grader mere mens motoren speeder ned.

Billeder
Alle nedenstående billeder er af vores work-in-progress model. Derfor vil selve modellens opbygning variere mellem hvert af billederne. De er sorteret kronologisk med de første øverst og de sidste nederst.

Modellen lige før og midt under en rotation.














Denne konfiguration virker det meste af tiden. Dog er der tilfælde hvor kuben sidder fast når man "tilter" den. Til at imødegå dette problem monterede vi ekstra sider af tandhjul i slæden. De sørger dels for at hindre at kuben sidder fast, og dels for at den ruller ned på plads efter en tiltning. Som det ses på billederne, eksperimenterede vi med flere forskellige tandhjul.














To be continued...

fredag den 14. december 2007

Projekt, uge 2

Deltagere: Asbjørn, Christer og Jesper.
Tidsforbrug: 3 timer

Nu har vi fået tilladelse til at gennemføre rubiks-kube projektet. De specielle lyssensorer er bestilt, men vi har ikke fået dem endnu. Planen for dagens session er, at prøve at få den mekaniske del i retning mod et funktionelt stadie.

Mekanikken består af tre dele:
  1. En "slæde" der kan rotere. Den går 1/3 op ad kuben, så den nederste side kan holdes fast mens resten roteres.
  2. En "rambuk" der kan vælte kuben om på siden, så vi kan rotere i flere dimensioner.
  3. En "hånd" der kan holde kuben fast mens ovennævnte slæde roterer. Denne hånd indeholder også vores farvesensorer (NXT Color Sensor), så vi i den indledende fase af løsningen kan scanne kubens startkonfiguration
Der er ikke så meget at skrive om selve byggeriet. Derfor indeholder denne blog-post flere billeder end normalt.
Her ses første udkast til del 1 og 2 fra et par vinkler:
Her ses gribearmen (del 3) med et par mockup-sensorer. På dette tidspunkt har vi endnu ikke fået de rigtige sensorer. Det kan dog ikke umiddelbart ses på dette billede:

Ved enden af denne øvelsesgang var vi nået frem til følgende stadie.
Oppefra:
Sidefra:
Som det ses på de sidste par billeder, er opstillingen på dette tidspunkt langt fra færdig og er desuden temmelig vakkelvorn. Derfor aftalte vi at mødes igen onsdag d. 19., så vi måske kunne have mekanikken nogenlunde færdig inden jul. Derved vil der være mere tid i januar til at færdiggøre softwaren.

fredag den 7. december 2007

Projektstart

Deltagere: Asbjørn, Christer og Jesper.
Tidsforbrug: 3 timer.

Målet med dagens session er, at:
  • Få et projekt godkendt af Ole Caprani.
  • Påbegynde arbejdet på dette projekt.
Ved dagens start kunne det ikke lade sig gøre at træffe Ole, så vi besluttede i stedet at gå så småt igang med at skille vores gamle robot ad og påbegynde en eksperimentel opbygning af en rubiks kube løser.