ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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