Varighed:
Tilstedeværende: Morten, Simon
Siden sidst:
Siden sidst er der ikke rigtig blevet gjort noget nyt.
Goal:
Målet med denne lab øvelse er at bygge en LEGO NXT Segway, som kan balancere på to hjul.
For at nå dette mål, har vi opsat følgende plan.
Plan:
- Forsøge at oprette forbindelse til NXT'en via bluetooth, med henblik på at kunne ændre variabler løbende uden at skulle rekompilere programmer.
- Ombygge LEGObilen til en segway (jvf. NXTWay).
- Reimplementere Sejway.java (link) og køre programmet.
- Implementering af fjernstyring af PID værdier med henblik på at kunne finde de perfekte værdier for at Segway'en kan holde sig oprejst.
Results:
Punkt1:
Som testprogram på NXT'en blev BTcontrolledCar.java brugt. Det fungerede i første forsøg da vi i sidste lab fik bluetooth til at virke. Vi observerede også i denne kørsel at motor-hastigheden ved samme power var meget forskellig på de to motorer og besluttede os derfor at forsøge at bruge den 3. motor vi havde liggende og kassére den motor som kørte mest forskelligt fra de andre 2.
Punkt2:
Bygningen af segway'en gik fint. Billederne var lette at følge. Desuden blev der tilføjet to balance bumme som peger fremad (se billede)
Punkt3:
Sejway.java blev skrevet om til at bruge Car.class klassen, samt floats istedet for integer. Derefter blev programmet kørt. Dette var ikke nogen stor success, da robotten bare kørte fremad hele tiden, lige meget hvad.
Efter en granskning af den reimplementerede kode blev fejlen fundet ved den værdi som blev sendt til motorerne. Da dette blev rettet kunne programmet køres ordentligt. Dette kan ses på videoen nedenfor.
Følgende observation blev gjort.
- Robotten kunne balancere en lille smule, men manglede de rigtige PIDværdier til at kunne rejse sig ordentligt.
Punkt4:
Der blev bygget et program i java swing, som kunne tage de tre værdier; KP, KI og KD som input og sende det via bluetooth til robotten. Robotten har en tråd kørende, som lytter på værdier sendt over bluetooth. Dermed kan de tre PID værdier blive ændret på runtime, hvilket gør det meget lettere at finde frem til den perfekte indstilling.
Efter MANGE testkørsler blev der fundet frem til følgende værdier, som vi mener giver den bedste opførsel. Se video nedenfor.
Derefter brugte vi et program (DataLogger.java) til at logge Error- og PIDværdier. Det blev gjort for at give et bedre billede af hvordan Errorværdien opfører sig gennem en kørsel. Grafen kan ses nedenfor.
Kommentarer:
Efter MANGE testkørsler blev der fundet frem til følgende værdier, som vi mener giver den bedste opførsel. Se video nedenfor.
Kp = 3, Ki = 0.2, Kd = 0.1
Derefter brugte vi et program (DataLogger.java) til at logge Error- og PIDværdier. Det blev gjort for at give et bedre billede af hvordan Errorværdien opfører sig gennem en kørsel. Grafen kan ses nedenfor.
Graf af værdier målt på en testkørsel. Værdierne for Kp, Ki og Kd er henholdsvis 3, 0.2 og 0.1.
Kommentarer:

