# A joint with high couple but small speed

Hi,

I want to make a joint that can't move fast but still have a high couple. To action this joint I use the class JointController and PID. This joint is now unstable and I would like to find a way to limit its max velocity (which is not directly implemented). This would give me the opportunity to use a strong PID and would simpliy its parameterisation.

To give you an id, one way of doing is to increase a lot the inertials values of the links, and then use a PID with very high values of P, I and D. But since I want to keep my inertial realistic, I can't do this anymore.

I tried then to use the friction parameter of the joint, but this is not exactly what I need because it doesn't imply a max speed, but more a leak of energy when applying forces.

Any idea would be welcome !

Cheers.

edit retag close merge delete

Sort by ยป oldest newest most voted

You probably want to use high joint viscous damping rather than friction, because friction will likely result in a "go-stop-go" stuttering behavior.

Take a look at this world for very high damping example:

https://bitbucket.org/osrf/gazebo/src...

and make sure implicit_spring_damper is set to true.

My usual advice is to use a damping values that makes sense physically, albeit on the high side for your application, i.e. tune your Nm/(rad/s) so that it's not un-physically large.

more

I'm not sure I understood your last sentence. I try to find more documentation/explaination on the damping in joints (physically), but can't find anything nice, even on the ODE website.

( 2015-11-09 17:36:01 -0500 )edit

I don't think most robot manufacturers release any information on what the joint viscous damping coefficient is. But in general, if you take a robot joint and apply constant X-Nm of torque, if the steady state joint velocity is Y-rad/s, then a reasonable approximation for viscous damping coefficient is X/Y N s/(m rad). Take that number, 1 order of magnitude away from this value should be OK, but two orders of magnitude off might be too much. That's all I was trying to say.

( 2015-11-09 17:50:01 -0500 )edit

Hi, thx for your answer, it's working perfectly. I'm now using the following parameters for my joints:

• joints_damping = 4
• joints_cfm_damping = 1
• joints_implicit_spring_damping = 1

On the top of it, I use PIDs with I and D set to zeros, and P = 15 (which is a lot I guess). But this work fine, at least for what I want to get. I have a 6 DOF arm robot and avoid with this configuration the very complex parameterization of its PIDs. The moves are precise and stable.

more

Great! p.s. cfm_damping is deprecated by implicit_spring_damper. If you are using a "new enough" version of gazebo (6.5 definitely is), you only need to specify implicit_spring_damper.