Rosanswers logo

I’m trying to launch the diff_drive_controller but I get this message when I run the .launch file.

“Controller Spawner: Waiting for service controller_manager/load_controller”

" Controller Spawner couldn't find the expected controller_manager ROS interface."

This is my .launch file: https://www.dropbox.com/s/gwtwy3ogzq8on0m/launch. I try with args="mobile_base_controller" instead of args="diff_drive_controller"

And the config file that I copied from the diff_drive_controller site.

  type        : "diff_drive_controller/DiffDriveController"
  left_wheel  : 'wheel_left_joint'
  right_wheel : 'wheel_right_joint'
  publish_rate: 50.0               # default: 50
  pose_covariance_diagonal : [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
  twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]

  # Wheel separation and diameter. These are both optional.
  # diff_drive_controller will attempt to read either one or both from the
  # URDF if not specified as a parameter
  wheel_separation : 1.0
  wheel_radius : 0.3

  # Wheel separation and radius multipliers
  wheel_separation_multiplier: 1.0 # default: 1.0
  wheel_radius_multiplier    : 1.0 # default: 1.0

  # Velocity commands timeout [s], default 0.5
  cmd_vel_timeout: 0.25

  # Base frame_id
  base_frame_id: base_footprint #default: base_link

  # Velocity and acceleration limits
  # Whenever a min_* is unspecified, default to -max_*
      has_velocity_limits    : true
      max_velocity           : 1.0  # m/s
      min_velocity           : -0.5 # m/s
      has_acceleration_limits: true
      max_acceleration       : 0.8  # m/s^2
      min_acceleration       : -0.4 # m/s^2
      has_jerk_limits        : true
      max_jerk               : 5.0  # m/s^3
      has_velocity_limits    : true
      max_velocity           : 1.7  # rad/s
      has_acceleration_limits: true
      max_acceleration       : 1.5  # rad/s^2
      has_jerk_limits        : true
      max_jerk               : 2.5  # rad/s^3

Thanks for the help, I’m desperate with the ros_control package. Sorry for my english.

Originally posted by javi_tecla on ROS Answers with karma: 3 on 2018-04-24

Post score: 0

Original comments

Comment by Humpelstilzchen on 2018-04-25:
args="diff_drive_controller" is definitely wrong since you have it as "mobile_base_controller" in the config. The ns="/robot" also looks wrong, as I don't the config loaded into this namespace.


1 Answer 1


Rosanswers logo

Hi Jaime, you have a couple of errors in the information you posted:

  1. the args on the launch file, do not have the correct name. You should specify there the name of the controller you defined in the config file, that is mobile_base_controller
  2. also in the launch file, you are indicating a namespace /robot but that is not included in the yaml file. You can get rid of it

Those two points should resolved the problem of controller spawner couldn't .... However, you may have later a problem loading the controller with a different error report.

Since I don't know if you are loading the ROS control plugin and if you are specifying the transmisions. You need to do that in your URDF model if you want the controllers to load properly.

Have a look at this video where I show step by step how to modify your files for proper working: https://goo.gl/ZWE5st

Originally posted by R. Tellez with karma: 874 on 2018-05-28

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by javi_tecla on 2018-08-18:
Thanks a lot for the answers and specialy for the dedicated video.

Finaly I can launch the control node. You can see in this video one of the test of the weelchair working https://www.youtube.com/watch?v=2xSHQy6WOEo


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.