onsdag den 30. september 2009

Øvelse 4

Dato: 24. september 2009
Øvelsens varighed: 3 timer
Gruppemedlemmer: Annette, Samuel og Rasmus

Mål:
Målet for denne uges øvelse er at bygge en robot der kan balancere på 2 hjul.
Baggrundsinfo:
PID regulering:
Se refferencer [2]
Java-Program:
Se refferencer [1]
Fremgangsmåde:
Fremgangsmåde:

1) Samle robotten efter anvisning [1], Robotten anvender lyssensoren.
2) Upload program til robotten.
3) Teste robotten
4) Robotten anvender PID-regulering, vi vil derfor forsøge at justere P, I og D variablene, bl.a. vha. manual tuning fremgangsmåden som beskrevet på wikipedia [2]
Resultater:
Vi byggede en robot til projektet, først efter en tegning vi fandt på kursus hjemmesiden til NXTway robotten lavet af Philippe Hurbain
Men da det javaprogram vi skulle benytte brugte nogle P,I og D værdier som var tilpasset Bagnalls robot besluttede vi dog at benytte denne.
Da vi havde bygget robotten, prøvede vi at downloade programmet, som er beskrevet i Bagnalls bog [1]. Robotten havde dog problemer med at holde balancen.
Vi prøvede forskellige placeringer af sensoren og kom frem til at det var bedst at placere denne temmelig tæt på bordet. Fordelen ved dette, er at lysforholdet ikke har en lige så stor indvirkning som ved lang afstand. En af ulemperne er derimod at robotten tit kommer til at lande på sensoren og kan derefter ikke rette op igen.
Afhængigt af hvilken side robotten hælder til har den meget svært ved at rette op når den er ved at få overbalance. (Se konklusion)
Vi prøvede også forskellige værdier for P, I og D, dog uden held. Derfor valgte vi at prøve Manual tuning fremgangsmåden som er beskrevet på wikipedia [2].
Konklusion:
Det lykkedes os ikke at få robotten til at balancere helt uden hjælp.
Vi prøvede manual tuning teknikken som er beskrevet på wikipedia.
Vores forsøg indikerede også at den P værdi på 28 som Bagnall benytter var passende.
Vi fik dog aldrig noget tilfredsstillende resultat ud af det.

I javakoden som Bagnall bruger [1] er der en skalering, hvor han ganger med 1.8 når robotten hælder til den ene side. Vi går ud fra at denne skallering er der for at kompencere for at sensorens afstand til jorden ikke er poportional med robottens hældning. Vi nåede ikke at prøve at udkommentere denne skalering, men vi observerede under vores test at robotten havde svært ved at rette op når den hældte til den ene side.

Det er muligt at denne værdi skulle mindskes og at det ville gøre det nemmere at justere P, I og D værdierne med manuel tuning.
Referencer:
[1] LEGO NXT – Building Robots with Java Brains by Brian Bagnall
http://www.variantpress.com/books/maximum-lego-nxt (Koden kan hentes herfra)

[2] PID regulering på wikipedia
http://en.wikipedia.org/wiki/PID_controller

Ingen kommentarer:

Send en kommentar

Faste læsere

Bidragydere