Following the resolution of the rotating issue, I set about making some changes to the robot:
Replacing the velcro with double sided tape to rigidly fix the breadboard (and accelerometer) to the robot chassis.
Glueing the frame components together (previously just slotted); improving the rigidity of the frame and the wheel axes alignment.
Adding a switch to the circuit to prevent me having to unplug the battery every time.
After making these changes I conducted more testing with a friend and saw the following results:
The new calibration procedure worked well and the robot started trying to balance when it was lifted to the equilibrium position; the initial attempt looked very promising, much like the oscillatory behaviour you would expect from a poorly tuned PID controller.
The robot balanced but constantly drifted forwards; routinely travelling about 5m (until we had to stop it due to a lack of space)
The stepper drivers were getting very hot and this seemed to cause the performance of the robot to suffer; missed steps from the stepper motors etc.
With a low value for the Integral gain, the robot performed how you would expect with a badly tuned PID loop. The robot is extremely sensitive to integral gain. Making this a little higher resulted in the robot balancing for longer but always dirfting.
Data was taken during balancing tests to try to discern any control/sensor issues (analysis to follow soon).
In conclusion, the robot still seemed to exhibit behaviour that was not solvable by simple PID tuning. Specifically the drifting and sudden falling in some cases give the impression there are some electronic issues. The drivers getting very hot seems to be a big problem. The next test that will be done is to try using some NEMA 17 stepper motors with a lesser current rating in an attempt to reduce the load on the drivers.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.