Mobot Full Breakdown
Our mobot completed the track successfully without the need for resets or multiple trials with a run time of 7.05 seconds and a stopping distance of 14.5 centimeters. While the stopping distance was slightly short of the intended 15 centimeters it was a rather negligible 3% difference from the goal.
The robot followed the line using a PID controller receiving inputs from several line sensors. The sensors detected whether the lightness value was above an experimentally determined threshold. Based on these flags were set for three locations: left, center and right. The distance sensing mechanic was based on a mathematical function run on the values from an ultrasonic range finder. The function converted the value from the ultrasonic to centimeter values.
Our final PID values were the result of numerous tests and recalibrations of the values. Tuning of the PID coefficients to appropriate values is a delicate and important process. If all the values are not balanced appropriately the results will be substantially different than what is desired. My process for filtering the values of the PID coefficients was applying a pseudo-binary search process. I would have the values to reach an optimal point as quickly as possible.
It was interesting to see how the different values of the PID controller impacted the vehicle's trajectory. Within this context, exceptionally large proportional constants can result in one bad reading throwing the path off. Integral values caused what we referred to as the “windshield wiper” effect. The bot would oscillate over the line often causing errors once a turn occurred.