chip updates: stability design theory [updates]
Okay so this post won't talk about any specific PID tuning or other hard core control design, but it will focus on the concept of the stability controller and how it plans to keep the platform stable. WE HAVE NOT TUNED THE GAINS YET, IN-FACT MOST OF THE CONTROLLER HAS NOT BEEN IMPLEMENTED YET. But here's the concept.
**Update as of today, Chip stands and sits** The IMU stability is present yet highly primitive and works. We don't have videos but hopefully will have some tomorrow.
stability in the orientation axis:
Okay so, the good news is we have a pretty nice IMU on CHIP. The thing with a robot dog is we need stability in multiple directions right. First, we need to keep the platform as level as possible so that's stability in the orientation direction.
Orientation axis means we want to keep the platform as level as possible so the first PID controller controls only the Y-axis of the legs. If the platform is tilting forward then it increases the height of the front legs and decreases the height of the back right? Similarly if the robot is tilting to the left or right we increase and decrease the hight of the legs to level them. We do this via a PID controller that still needs to be tuned. This part is implemented and it works for the most part.
This is the y-axis orientation stability controller in the CHIP platform. It keeps the platform level.
stability in the acceleration axis:
Now the next part is stopping the robot from falling. That's the most important stability controller because it allows the robot, literally, to walk. It's the core of the chip stability system and here's the plan for that.
The IMU measures the angular acceleration around the three axis, x, y, and z right. (It also measures the linear acceleration but we won't use that right now). If there is + angular acceleration in the y direction, the robot is FALLING backwards, if there's + angular acceleration in the x direction, it's FALLING right.
The reason I say falling is because if the robot's really accelerating in one direction or the other rotationally, it's likely falling because if it was simply standing, sitting, changing its angle, the PID saturation comes so fast in these cases the speed its changing its angle with is usually constant. The angular speed being mostly constant, the acceleration is close to zero in most operating conditions. It's when the robot takes two feet off the ground where we need to be careful. To stop it from accelerating forwards, backwards, left, or right, we need to shift the robot's feet under the CoG.
If the robot is falling to the right, we shift the legs right to "catch it." Similarly if the platform is falling forward, we shift the legs forward to stop it from falling and catch it. That's really what we're looking at here.
Now it does seem that these control systems will be fighting each other. But that's the idea. If they fight each other one can't be too over powering so any "bad behavior" they exhibit will be limited.
The PID tuning on both of these systems will have to be really precise. We're going to start tomorrow with tuning the PID gains of the orientation stabilizer. And once that works, we'll add in the axis acceleration stabilizer and get that working. If we have time, we'll tune those gains too.