Closed dljsjr closed 8 years ago
Original comment by Sylvain Bertrand (Bitbucket: SylvainBertrand, GitHub: SylvainBertrand):
Hi! Sorry for the late response. So I can split the gains to be joint specific, but before doing so I would like to point out that those gains are used to compute a desired acceleration for each joint which is then fed into our QP solver + inverse dynamics to compute the adequate desired joint torques. This means that these gains don't have to be scaled according to each joint's subtree inertia as the inverse dynamics is already doing so. This is why we use only one set of gains for all the arm joints.
Also, note that I have barely had the time to finish implementing the controller on Valkyrie, these gains are temporarily downtuned to ensured stability until the whole controller is working properly. Increasing them at the moment might result in unexpected instabilities.
Originally reported by: Vladimir Ivan (Bitbucket: vivan, GitHub: vivan)
The PID controllers for the arm joints currently share one set of PID gains between them. These gains are set up in
ManipulationControlModule.java
on line 98:This severely limits accuracy/response of the arms. Each joint drives a link(age) with different inertia properties. Sharing the PID gains restricts setting these to conservative values.
We (the Edinburgh team) would like to tune these gains and run a couple of experiments while we are at JSC. This is high on our priority list, since we can't execute any manipulation/reaching plans without good tracking performance.
I'm happy to help with making this happen.