Duration of activity: 3 hours
Group members participating: Thomas, Rasmus
The Goal of the session...: Building a two-wheel car/robot that can keep its balance.
Setup:
We built the NXTWay robot suggested in the excercise notes (http://www.philohome.com/nxtway/nxtway.htm)
Experiments:
Getting to know the hardware:
We started out by loading a Bang-Bang controller onto the NXTWay and running it. The results were not very impressive. The problem was the way the power to the motors were controlled. Either they were full on or off, which resulted in highly erratic behaviour and, ultimately (but quickly), the NXTWay falling over. Because this was expected, we didn't spend a lot of time analysing this. Instead we moved on to a more feasible control mechanism. (The Bang-Bang Controller ced can be found here: http://www.daimi.au.dk/~rusmus/SejwayBad.java).
Moving on:
We now loaded a PID controller onto the NXTWay, and tried it out. We ran into a problem with the sensor being able to move, which gave some rather unstable readings, resulting in the NXTWay falling down. It turned out, that this was due to a design error, so we moved the sensor higher up and made sure it was fixed properly.
Getting scientific...:
Purpose:
Analysing the readouts from the lightsensor, in order to better tweak the software parameters.
What we did:
Started up the program, and tilted the NXTWay as far forward as possible. We then read the sensorreading of the display and tilted it a back a bit. We continued in this way until the readings no longer changed perceptibly.
On the table:
- Forward position: 559
- Upright position: 513
- Slightly backward position: 472
- Backward position: 458
On the floor (blue):
- Forward position: 417
- Upright position: 397
- Slightly backward position: 369
- Backward position: 363
On white floor:
- Forward position: 573
- Upright position: 535
- Slightly backward position: 499
- Backward position: 489
We plotted this:
The three most important points on each of the series, are the first three. This is because the NXTWay uses these readings to determine which way it is tilting, and consequently they are used to control the motors. On the table and the white surface, the readings are fairly similar. There is a nice difference between the three most significant points, making them well suited for balancing on.
The floor on the other hand the curve is flatter. Beacause of this the NXTWay should in theory have a harder time balancing on this surface.
We tested this hypothesis and indeed the balancing capabilities of the car on the blue floor were clearly poorer.
Further experiments:
We would have liked to conduct a number of other experiments, but we ran out of time. We briefly tried adding a "tower" on top of the NXTWay, in order to move the center of gravity, but from the little we tried, we could not detect any significant improvement.
We would also have liked to tweak the code in some way, in order to adjust the NXTWay to the environment we were testing in. It is our firm belief, that with some parameter tweaking and on the right surface, the NXTWay can balance quite effieciently.
No comments:
Post a Comment