Ask Your Question

ros control effort controllers explained?

asked 2019-08-22 20:45:27 -0500

PG_GrantDare gravatar image

updated 2019-08-23 05:48:30 -0500

Hi everyone,

I am trying to model the response of my robot in gazebo. My gazebo is really based around its torque, it is a logistics robot. I am currently using the following for control:

  type: "velocity_controllers/JointGroupVelocityController"
  joints: ['front_left_wheel', 'center_left_wheel', 'rear_left_wheel']

  type: "velocity_controllers/JointGroupVelocityController"
  joints: ['front_right_wheel', 'center_right_wheel', 'rear_right_wheel']

However upon further investigation I believe I have chosen to control velocity regardless of motor torque. So my question is, do the effort controllers control torque? if so, can I set a maximum torque for the controllers and control them with velocity commands? I have done some research and believe that is known as an effort velocity controller? Is it possible to specify the torque of a velocity joint controller (as I have used)?

I cannot find any use cases for this, can anyone provide a link to a use case?

If I instead control the joints through effort, what unit is that? is it torque? (Nm)?

thanks, Grant.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2019-08-23 03:48:33 -0500

Yes effort controllers control torque in the case of rotary joints, or force in the case of linear joints. They are named that way since they are agnostic to the type of joint they're controlling.

Controllers are defined by the type of control input and the type of output they use to drive the joint. By the sounds of it you want a controller which accepts velocity commands going in, and produces torque (effort) commands going up. This will allow you to set an upper limit on the torque. You want an effort_controllers/joint_velocity_controller for this.

ROS uses SI units as standard, so yes an effort_controller connected to a rotary joint will output torque in Nm.

Hope this helps.

edit flag offensive delete link more


Hi, great answer! exactly what I was after :) I have 3 wheels driven from a chain system connected to a single motor, for this reason I was using the velocity group controller, is there such a controller for effort_controllers/joint_velocity_controllers

PG_GrantDare gravatar imagePG_GrantDare ( 2019-08-26 20:54:20 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2019-08-22 20:45:27 -0500

Seen: 30 times

Last updated: Aug 23