chip updates: standing and sitting nicer now [updates]
Updated: Apr 13, 2020
So earlier today we made a post that literally babbled about the standing and sitting protocol and the KP KI KD for chip and the speed of leg motion. We finally set those to 0.1, 0.0005, 0.01 for KP, KI, KD respectively. The speed is now 0.7 which 1.0 was too fast and jerky, and 0.5 was too slow. Now look. The robot is very smoothly sitting and standing with the 0.7 speed and the motors are quieter and not as jittery meaning the control is a little better.
So the next steps are as follows. We're going to re-write the whole leg walking procedure node because the last one was a disaster. We're going to figure out how to transfer weight off of a leg, step that leg, and then take weight off and step the next one. Now I do think that the PID needs more tuning for this to work. We will likely need to keep the speed at 0.7, but it's possible we will need to increase KP to 0.15 or 0.2 because on three legs we need a more "solid" response for the robot to be able to stand. We're going to do that this evening. Not play with speed. But play with the robot's KP, KI, and KD, to get more robust tuning. We'll also play with the KMaxOutput and KMinOutput values.
This time, we're going to try PID tuning the right way using the Zeigler-Nicholas method. We'll use the above method for tuning our PIDs in the next post. We'll be referencing this API Documentation: http://www.revrobotics.com/content/sw/max/sw-docs/java/com/revrobotics/CANPIDController.html
The documentation will allow us to essentially figure out how to tune the PID gains such that we get a good response and don't overcurrent the motor. We can use a KP of 0.2 as long as we drop the output limits and etc. We'll try that.
That's all for now! We'll see if it works!
We're testing Kps from 0.1 - 0.2 to see if the performance really differs any. If they all look noticeably similar, we'll just use the higher KP we test.
Yea, there's no visible reduction in jitter from 0.1 to 0.2 KP, we're just going to use the KP of 0.2 because that will make the robot allow a little bit more current through the motors.
These are the final values we are using at a speed of 0.7:
private final double kP = 0.2; private final double kI = 0.0005; private final double kD = 0.01;
^YES THIS WHOLE THING NEEDS TO BE FIXED.
If this becomes a problem later (over battery power) we'll move back to the gains we know work (KP 0.1). I don't think it's going to be an issue since we've set the speed to 0.7! The motors are a little jittery. But hopefully we can fix that later with PID tuning that comes after the set point commander becomes smoother. For now, we're going to play even more with the stand up and sit down trajectories so there's no swaying when the platform stands and all the legs can stand to the same height. After we do that, it's time for re-writing the step commander possibly using trajectories. After we do that we'll move to more dynamic responses after we fix set point.