ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Check two things:

Firstly, that the controller_manager is running. You can check this by executing on the command line:

rosservice list | grep controller_manager

The expected output should look like:

/controller_manager/list_controller_types
/controller_manager/list_controllers
/controller_manager/load_controller
/controller_manager/reload_controller_libraries
/controller_manager/switch_controller
/controller_manager/unload_controller

If you don't get any output, then you're probably not loading the gazebo_ros_control plugin in your robot model:

<gazebo>
  <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
    <robotNamespace>/MYROBOT</robotNamespace>
  </plugin>
</gazebo>

Notice that if you specify <robotNamespace> above (it's optional), the controller_manager ROS API will be namespaced to /MYROBOT/controller_manager/...

Secondly, check that the controller_manager and the spawner are in the same namespace. That is, if you spawn the controller_manager under the MYROBOT namespace, the spawner should be pushed to the same namespace as well. roslaunch allows spawning nodes in namespaces.

You might be interested in this related question