Dato
25. September 2009Tidsforbrug
3 timerDeltagende gruppemedlemmer
Martin Aksel Jensen, Kim Munk PetersenMål
- Bygge en robot der kan balancere på to hjul så den ikke vælter
- Få erfaring med PID-controllere og justering heraf
Resultater
Vi startede med at bygge vores robot magen til Philippe Hurbain's NXTway[1]. Herefter hentede vi source-koden til en lignende NXT-robot, via et link givet i opgavebeskrivelsen. Efter at have flashet vores robot med denne dette program, testede vi hvor godt den virkede. Programmet virker sådan at robottens setpoint sættes når man trykker på Enter-knappen efter opstart. Det medfører at robotten skal stå i balance-punktet når man trykker Enter. Efter store vanskeligheder med at ramme balancepunktet præcist, ændrede vi programmet således at vi vha. Right- og Left-tasterne på NXT-brick'en, kunne justere setpoint'et mens programmet kørte. Herefter lykkedes det os at få robotten til at stå i 2-3 sekunder inden den væltede. Den virkede meget urolig, som om den ikke ville holde stille selvom den var i balance. Årsagen hertil var at programmet som minimum gav 55% kraft på de to motorer. Ifølge en test vi lavede, skulle der 35% til før robotten var på grænsen til at bevæge sig. Vi ændrede derfor i programmet således at det som minimum gav 35% kraft i stedet for 55%. Dette gjorde robotten mere rolig, men desværre lidt for rolig idet dens PID-controller var justeret efter et minimum på 55%. Vi rettede derfor PID-controllerens skalering således at den gav 100% kraft til motorerne når robotten var så tæt på at vælte at vi mente det var nødvendigt med 100% for at undgå at vælte. Herefter var robotten i stand til at stå oprejst i 4 sekunder uden hjælp.Ved at analysere robottens reaktion mht. overshoot, oscillation, offset osv. prøvede vi at lave justeringer på PID-controlleren så dens balanceevne burde forbedres. Det lykkedes til dels, men efter omkring 6 sekunder væltede robotten fordi den ikke kunne nå at reagere på et udsving. Lige meget hvordan vi ændrede PID-controlleren lykkedes det os ikke at rette denne fejl. Vi besluttede derfor at ændre robottens fysiske design en smule for at gøre den mere stabil. Ved at flytte NXT-brick'en længere ned gav vi robotten et lavere tyngdepunkt der i teorien skulle gøre det nemmere for den at korrigere udsving. Det havde desværre ikke den store effekt i praksis.
Efter at have prøvet forskellige justeringer af PID-controlleren, blev vi nødt til at sande at det ikke var muligt for os at få den til at holde balancen på egen hånd i længere tid. Vi mistænker lyssensoren for at være hovedårsagen til at robotten vælter. Vi har nogle idéer til forbedringer af robotten. På software-siden har vi bl.a. overvejet at gøre den proportionelle del af controlleren eksponentiel mens vi på hardware-siden har overvejet at prøve LEGO's UltraSonic Sensor til at måle afstanden til underlaget. Disse forslag har vi ikke prøvet at realisere endnu, men vil måske gøre det på et senere tidspunkt.
LEGO model
Her ses Philippe Hurbain's NXTway som er magen til vores robot.Referencer
- [1], Philippe Hurbain, NXTway
Ingen kommentarer:
Send en kommentar