10 DoF biped robot joint PID tuning help

I am trying to create a 10 DoF bipedal robot simulation in gazebo with a URDF and ROS control. My idea is that it should first just stand, then later down the line I would implement ZMP walking.

But when trying to tune in the PID controllers in each joint, it starts to slightly bounce in one direction and then the controller swings it back, which then makes it bounce more and it falls over.

First I started with adjusting P in each joint so it stands still, for a while it does, but this first unnoticeable bouncing, especially in the top joint gets worse until it becomes unstable.Then when it fell over, all the joints begin swinging, so I added a bit of D until the overshoot wasn’t so bad.Then varying the I makes it either shake or it’s just still unstable.

No matter how much I play with the values, it doesn’t stay more stable. Do you have any tips how to properly tune such a system? Is it even possible to stabilize the system with PID controllers that don’t know about each other or should I try a different method?

In case a picture is helpful or you want to look at the code:

submitted by /u/braineniac
[link] [comments]