Coinurl2

Tuesday, 6 March 2012

NXT Programmering, Lesson 5

NXT Programmering, Lesson 5

Tid: 5 timer, Deltagere: Kenneth, Mikkel, Rawad.

Siden sidst:

Formål:
I denne lab session er formålet at lave en selv-balancerende LEGO robot inspireret af Steve Hassenplug’s originale Legway, kontrolleret af en RCX[1]. For at

Plan

  1. Konstruktion af robot
  2. Skift af konstanter “on the fly”
  3. Selvbalancerende robot
  4. Status
  5. Referencer





1. Konstruktion af robot
I konstruktionen af en selvbalancerende, har vi fundet inspiration til konstruktionen hos NXTway[2].

2. Skift af konstanter “on the fly”

I vores test af den selvbalancerende robot, fandt vi det for tidskrævende at hver gang konstanterne skal opdateres, så skal programmet rekompileres. Det førte til at vi lavede et program til at ændre konstanterne “on the fly” over bluetooth. Dette program er baseret på  PCcarController.java og BTcontrolledCar.java skrevet af OleCaprani [3]. Programmet er istand til at ændre balancepoint, p,i og d termerne i PID kontrolleren, gennem en GUI på en pc. Source koden kan findes her [4].

3. Selvbalancerende robot

For at få noget mere feedback fra robottens evne til at balancere, udover hvad vi kan se, bruger vi en modificeret udgave af DataLogger klassen. DataLogger klassen har fået tilføjet en metode til at skrive PID værdier ud, altså error, integral, derivative og pid value. Disse værdier skrives nede i en komma separaret liste, som vi så kan hente ind i excel og lave fine grafer af. Se [x].

I udviklingen af softwaren har vi startet ud med at modificere Brian Bagnalls Sejway.java [5],

Et grundlæggende problem i at bruge lyssensoren til en balancerende robot, er at enhver korrektion som robotten foretager sig, altså hver gang hjulene drejer, vil sensorværdien blive påvirket. Så selvom robotten er ved at vælte, vil sensor outputtet ikke nødvendigvis give en entydigt faldende linje. Neden stående diagram viser outputtet fra den sidste og “bedste” PID kontroller vi fik sammensat. Det ses, at i starten hvor error er lille, går det fint, men så snart at fejlen begynder at vokse, vil robotten gå i selvsving og begynde at vælte.



4. Status
Det lykkedes os at implementere et bluetooth program til “on the fly” ændring af konstanterne. Dette har været en gevaldig hjælp i udviklingen af en selvbalancerende robot. Specielt on the fly ændring af balance punktet har været kritisk, da det er svært at indstille balance punktet med en knap der skubber robotten.

Derudover lykkedes det for os at lave en balancerende robot, baseret på lyssensoren og en PID controller, som kan holde balancen i et kort stykke tid, omkring 15 sekunder. Konklusionen på det må være, at en lyssensor ikke er den optimale sensor til balancerende robotter. Herunder ses en video af robotten der holder sig stående i 17 sekunder.





5. Referencer
[1] Steve Hassenplug, Legway
[2] Philippe Hurbain, NXTway
[3] Source code PCcarController & BTcontrolledCar
http://legolab.cs.au.dk/DigitalControl.dir/NXT/Lesson5.dir/PCcarController.java
http://legolab.cs.au.dk/DigitalControl.dir/NXT/Lesson5.dir/BTcontrolledCar.java
[4] Source code Bluetooth on the fly...... [Ændre navn]
[5] Source code Brain Bagnalls Sejway.java
http://dl.dropbox.com/u/2779683/SejwayOriginal.java

No comments:

Post a Comment