@@ -121,9 +121,14 @@ The ***Sejway.java*** program is a modification of Bagnall's Sejway program, whe
...
@@ -121,9 +121,14 @@ The ***Sejway.java*** program is a modification of Bagnall's Sejway program, whe
As both these programs can't run simultanously on the NXT, we also made the ***NXTSegwayRunner.java*** program which simply starts a Sejway instance, starts it, starts a PCconnection instance with a reference to the Sejway instance. This also means that the upper two classes extends Thread to enable simultaneous execution.
As both these programs can't run simultanously on the NXT, we also made the ***NXTSegwayRunner.java*** program which simply starts a Sejway instance, starts it, starts a PCconnection instance with a reference to the Sejway instance. This also means that the upper two classes extends Thread to enable simultaneous execution.
#### Search for good PID parameters
#### Search for good PID parameters
After implementing the programs enabling easy PID parameter search, we quickly concluded that before changing the PID values we needed to find a good offset with the specific weight distribution of our robot.
After implementing the programs enabling easy PID parameter search, we started playing around with different values for P, I and D by using a by-hand-calibrated setpoint. We quickly that this method didn't enhance either our understanding of the different variables or the robots ability to self-balance. We therefore decided to use a more systematic way of testing and deciding on variable values than this 'feelings'- and experience (which we have very little of) based approach.
To systematically observe which P, I and D values work better for our robot, we needed to have a best possible starting point, where the robot was in best possible initial balance, why we set out to find a good setpoint for the specific weight destribution of our robot.
##### Finding a good setpoint
##### Finding a good setpoint
To find the best possible setpoint we decided to use the PID values of Bagnalls initial program ([TODO insert values]) and then trying to narrow our way into the best possible value by starting with a, from our prior experience, low- and high value. This gave the observations seen in table 1.