Tidsforbrug: 3 timer. Deltagere: Asbjørn, Christer og Jesper.
Målet for dagens session at bygge en robot der kan balancere på to hjul ligesom en Segway.
Vi startede med at dræbe den gamle robot (R.I.P.) og bygge en ny. I softwaren forsøgte vi først med en P-controller, men den viste sig at være helt utilstrækkelig.
Den direkte mapping mellem målinger og motor-output resulterede i vild overshoot. Denne ville vi da udvide til en PD-controller for at kompensere for dette. I denne process flyttede vi sensoren tættere på jorden for at opnå bedre målinger. I sin oprindelige position mistede den hurtigt jorden af syne når den vippede.
Vi opdagede desuden at den indbyggede Math.pow(double a, double b) er defekt. Derfor måtte vi ændre styringen, så vi ikke skulle bruge denne funktion. Vi modificerede PD-styringen til at benytte en ulineær funktion.
Nu prøvede vi at ændre robottens fysiske egenskaber ved at hæve tyngdepunktet. Dette gjorde vi ved at hæve NXT'en nogle centimeter. Hjulene skiftede vi også til en større model for at opnå en hurtigere respons når ubalance måles.
Det lykkedes desværre ikke i dag at få den til at holde balancen mere end et sekund ad gangen.
Tidsforbrug: 3 timer. Deltagere: Asbjørn, Christer og Jesper
Målet med dagens lektion er, at få vores robot til at følge en sort streg på en bane på kortest mulig tid. Til slut skal vores tid indsendes til Legolab.
Grundlæggende var vi enige om at vores robot havde den korrekte grundlæggende funktionalitet og dagen skulle bruges til at kalibrere diverse konstanter i robotten for at opnå optimal hastighed.
Vi havde to forskellige "håndtag" vi kunne dreje på, begge relateret til hastigheden i sving. Som det kan ses på billeder har vores robot tre sensorer. Vores program kører robotten fremad hvis den midterste sensor ser sort. Hvis den midterste sensor ikke ser sort, men er af de andre to gør drejer den ind imod banen igen. Det gør den ved at det ene hjul kører ved fuld hastighed og det andet kører ved en anden hastighed. Denne anden hastighed kaldes herefter halfSpeed. Hvis ingen af sensorne ser sort drejer den skarpt imod den side hvor den sidst har set sort. Igen gøres det ved at det ene hjul kører ved fuld hastighed mens det andet kører ved mindre hastighed. Denne mindre hastighed kalder vi stopSpeed. De to variabler vi har leget med er altså halfSpeed og stopSpeed.
Det første vi gjorde var at skifte batterierne til almindelige AA batterier og sætte det store specielle batteri til opladning. Vi satte da stopSpeed til 0 og eksperimenterede med forskellige værdier af halfSpeed. For hver værdi lavede vi tre tests på banen:
halfSpeed
stopSpeed
tid / s
600
0
21,8
-
0
21,9
-
0
22,8
700
0
22,5
-
0
22,9
-
0
22,9
800
0
Fejl
-
0
23,8
600
0
22,8
-
0
23,1
-
0
23,2
500
0
23,1
-
0
23,3
-
0
23,4
På dette tidspunkt valgte vi at stoppe. Vi nøjedes med kun to målinger ved værdien 800 fordi den værdi gav meget dårlige resultater. Kigger du på ovenstående bruges værdien 600 to gange og giver forskellige resultater. Vores konklusion var at det var vigtigere at der er meget strøm på batterierne end hvad værdien af halfSpeed er.
Vi ændrede nu softwaren til at kunne skifte halfSpeed of stopSpeed variablerne på runtime med et menu-system og skiftede batteriet tilbage til det medfølgende specielle batteri og lavede nye tests. Denne gang testede vi kun en gang for hver parameter. Først koncentrede vi os om at skyde os ind på nogle gode værdier til halfSpeed med de nye batterier:
halfSpeed
stopSpeed
tid / s
600
0
22,3
550
0
22,5
650
0
22,0
700
0
22,9
Dernæst eksperimenterede vi med stopSpeed:
halfSpeed
stopSpeed
tid / s
650
100
22,0
650
200
22,0
650
400
22,6
800
500
23,3
Hvor den sidste test var et halv-desperat forsøg på at få meget fart ud af robotten ved hele tiden at køre hurtigt. Det mislykkedes naturligvis fordi den nu ikke længere var i stand til at følge banen godt.
På dette tidspunkt koknkluderede vi at den eneste måde at få mere fart på var bedre batterier, som vi ikke umiddelbart kunne finde. Vi gav derfor umiddelbart op.
Nu var der ca. en time tilbage og for sjov ville vi få robotten til at spille et stykke musik mens den kørte. Som musik valgte vi naturligvis fjerde del af ouverturen fra William Tell. (Det eneste muligt korrekte valg.) Vi fik bilen til at stå stille under introen hvilket så meget imponerende ud. Det sjove er at med musik satte vi dagens bedste tid (for vores bil):
halfSpeed
stopSpeed
tid / s
600
50
21,317
Vores bedste gennemkørsel:
En AVI kan hentes her. Den spiller føromtalte melodi, men desværre bliver den overdøvet af motorerne.
Tidsforbrug: 3 timer, onsdag d. 3. oktober Deltagere: Asbjørn, Christer og Jesper
Målet med dagens ekstraordinære session er, at arbejde videre på forberedelsen til løbet. Vores robot kørte ikke hurtig nok og desuden var der flere mangler hist og pist. Så den blev sendt på operationsbordet for at blive udstyret med ekstra gearing.
Planen er i store træk:
Montere gearing så robotten kører hurtigere
Udvide programmet til at stoppe ved grønt
Udvide programmet til at tage tid
Optimeringer (vi har f.eks. lidt overshoot når robotten drejer)
Diverse... :)
I det følgende vil vi ikke nødvendigvis gennemgå disse punkter i denne rækkefølge. Vi vil snarere beskrive vores arbejdsgang i kronologisk orden. Kl 17:30 Første udkast til den nye gearing er så småt på plads.
kl 17:55 Den nye gearing er færdigmonteret, men bilen kører nu baglæns. Fejlen rettes i software. Desuden er tyngdepunktet blevet rykket så langt frem, at vi midlertidigt monterede ekstra kontravægt.
kl 18:15 Første rigtige testkørsel med den nye gearing. Motorerne er for stærke. Med den nye gearing hopper sensorerne op og ned, og robotten får ikke ordentlige målinger. Det bevirker at den "stikker af" og slet ikke kan følge sporet. Vi diskuterer forskellige løsningsmodeller:
Mere vægt foran.
Dette viste sig at være utilstrækkeligt.
Mindre aggressiv gearing.
Softwaren skal ikke kompensere så kraftigt.
Desuden opdaterer vi softwaren med default måleværdier, så vi ikke behøver at kalibrere sensorerne ved hver eneste kørsel.
Kl 18:30 - 19:00 Pizzamanden ankommer og arbejdet indstilles. :)
kl 19:00 Vi indser at gearingen får robotten til at køre for hurtigt. Den kan simpelthen ikke nå at ændre retning før det er for sent. Vi beslutter at fjerne gearingen helt, men beholde de store hjul. Dette viste sig at være en god ide. Vi retter nu opmærksomheden mod overkompenseringen i svingene.
kl 20:00 Vi begynder så småt at pakke sammen. På nuværende tidspunkt er vi rimeligt tilfredse med robotten og det er kun småting der mangler. Disse regner vi med at kunne nå at udbedre fredag inden det endelige løb.
Dagens bedste tid for en gennemkørsel af banen: 22,3 sekunder