Deltagere: pepe uden rfogh, suk...
Formål
Formålet med denne labsession er at få en lego robot til at balancere. Inspirationen er segway (se ill. 1). Der er lagt op til brug af en PID regulator til at opnå dette.
ill. 1:
Segway reklame video
Alternative former for regulering der kunne være anvendt er bang-bang controlleren som beskrevet i noten fra Maximum LEGO NXT, eller fuzzy regulering wikipedia.org - Fuzzy control system der har den fordel at det er nemmere at beskrive hvad controlleren skal gøre, til gengæld for en tungere matematisk model.
Fremgangsmåde
Robotten bygges efter anvisningerne i Maximum noten, dog med den ændring at de korte pegs i step 5 skiftes ud med de lange for at få plads til batteriet.
Kildekoden der ligger som en del af øvelsesoplæget kompileres og uploades til robotten.
Det viser sig at det er meget vanskeligt at ramme det rigtige nulpunkt, hvorfor ændringer laves i koden så det er muligt at ændre den værdi der er valgt som nulpunktsværdi.
Dette giver dog ikke den store ændring, det burde derfor være muligt at ramme balancepunktet ved at holde robotten nogenlunde i balance.
Næste punkt er at prøve at finde de korrekte værdier for KP KI og KD.
Ifølge wikipedia artiklen om pid regulatoren er en metode til at gøre dette Ziegler-Nichols metoden. I denne metode skal den kritiske proportional forstærkning Pc først findes.
Derefter findes de andre værdier efter formlen KP = 0.60Kc KI = 2KP / Pc og KD = KPPc / 8
Problemet med denne metode er at det er vanskeligt at finde Pc Resultatet af at have fundet den korrekte værdi må være at robotten banker i gulvet i den modsatte retning af hvor den vælter til.
Det har imidlertid ikke været muligt at finde en sådan værdi, selv med en KP på næsten 200 og en SCALE værdi på 1 regulerer robotten fint ind.
Der er desuden det problem at robotten stopper et øjeblik med jævne mellemrum.
Der er forsøgt at anvende getValue i stedet for getNormalizedValue, men dette giver ingen løsning på dette problem og gør i tilgift robotten ubrugelig.
Forløsning
Lysmåleren er ikke god nok som afstandsmåler, reflektionen er for ujævn og opløsningen for dårlig. En egentlig segway-lignende robot virker usandsynlig, idet der er meget svingning i robotten, selv når den balancerer bedst.
Der er desuden det problem, at hvis lyssensoren rammer underlaget bliver reflektionen 0 og robotte vil derfor køre videre med lyssensoren i jorden.
Kraftigere motorer og et større matematisk grundlag ville måske kunne få dette projekt til at virke. At skyde på værdier i blinde gør ihvertfald ikke.
Ingen kommentarer:
Send en kommentar