Joint-Torque control

Hi,

we are working in some research projects and would also like to use an existing UR10(e) as a demonstrator for control algorithms. Is there any way (e.g. low level APIs, own UR-CAPs, etc) we can comand and control the joint torques / currents / voltages? Anything more low level than joint speed?

-Klaus

2 Likes

Hi @klaus.ening,

There is no method for setting the joint torques. The script function “force_mode()” is what get closest. Maybe with the DH-parameters you can do the dynamics calculation from joint torques into tool force/torques
https://www.universal-robots.com/articles/ur-articles/parameters-for-calculations-of-kinematics-and-dynamics/

Hi Ebbe,

thanks for the answer. This sounds like a suboptimal and computation intensive route. I will have a look though.
Any chance the “servoj” “a”-parameter" might be useable in the future? Or to provide a low level “research-interface” ?

-Klaus

Hi @klaus.ening,

I completely agree. I think if the ROS community is having the same need. Then the likelihood is much higher.

Hi @Ebbe,

are there any updates on this?

We would like to use the UR10e on top of 3 additional axes (6+3=9DoF) for a teleoperation application. Our workaround would is to command the torques of the first 3 joints directly to the motor drivers and then mapping the last 6 torques (corresponding to the UR10e) to the UR10e end effector and using forcemode(). This is computationally not great however.

Thank you!

Hi @hannes.gamper,

Unfortunately there is still no way to do this directly. But thank you for sharing your wish.

You might take a look here: URScript_Examples/admittance-control at main · UniversalRobots/URScript_Examples · GitHub. It is in the cartesian space. If it is required to be in joint space maybe you can get inspired and utilize get_joint_torques() and speedj()

Ebbe