So I am working with a UR10 manipulator which doesn't have a direct torque interface. However, it provides torque/velocity/position feedback for each joint as well as position/velocity interfaces for joint control.

I have a feeling the answer is "yes", but I've been having trouble finding examples and comments on the feasibility of this approach.


  • 1
    $\begingroup$ I don't understand your question. You have both position and force feedback of each joint. What exactly do you think you miss? $\endgroup$ – JJM Driessen May 21 '17 at 7:34

If you're trying to do torque control, then you'll probably get best results if you could work with joint accelerations, because:

$$ \tau = I \alpha \\ $$

Where $\tau$ is joint torque, $I$ is the moment of inertia, and $\alpha$ is the joint angular acceleration. It's a linear relationship and should be pretty straightforward to control with a PID controller.

You don't have an acceleration input for your joint, though. What you have is a speed input for your joint. SO, what you could do is to setup a PID controller with torque error as your input, joint acceleration reference as your output, and then perform a numeric integration of the output to get a speed reference. This would look like:

$$ \tau_{\mbox{err}} = \tau_{\mbox{ref}} - \tau_{\mbox{fbk}} \\ e_P = \tau_{\mbox{err}} \\ e_I = e_I + e_P*\Delta t \\ e_D = \frac{e_P - e_{P_{\mbox{prev}}}}{\Delta t} \\ e_{P_{\mbox{prev}}} = e_P \\ a_{\mbox{ref}} = (K_P e_P) + (K_I e_I) + (K_D e_D) \\ v_{\mbox{ref}} = v_{\mbox{ref}} + a_{\mbox{ref}} * \Delta t \\ $$

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.