# ros_control velocity_controllers/JointPositionController not working

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hi I am trying to use a velocity_controllers/JointPositionController from ros_control pkg, although either it does not respond or became totally unstable without any errors. The PID values are not the problem since are extremely low (it crashes even with only kp = 0.001 with UR10 robot) In particular as soon as I spawn and start two controllers for two different controllers get unstable.

edit retag close merge delete

Sort by » oldest newest most voted

Maybe it makes sense that low PID values result to unstable behavior. The position of the rotary joints are given in radians (probably between -3.14 and 3.14 or so) and the velocity is radians per second, which might be quite large.

Let's say you have the joint in initial position at angle of 0 radians and want to move to the opposite side. So the error will be some 3.14 radians. And to achieve that position in less than a second, you need to move more that 3 radians per second. Taking just the P component of the PID regulator, you want to assign a velocity of kp*error = 0.001*3.14 to the joint. That won't do.

You should not aim for small PID values. You should aim for PID values that make sense with your application.

more