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

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

asked 2015-09-28 22:32:27 -0500

boon gravatar image

I am using moveit with spiri_simulator package. When I launch the file, I get the warning, "Controller Spawner couldn't find the expected controller_manager ROS interface". I cut the ros_control and gazebo_ros_pkgs and paste it back in the catkin workspace. Sometimes this solves the problem but at most times this does not solve the problem. I don't find this problem with controller_manager while using other simulators. What should I be doing?

edit retag flag offensive close merge delete

Comments

Creating a separate launch file for the node, 'controller_spawner' and launching it after the simulator and Rviz ( I was using for visualization) were launched, solved the problem. Was the node missing some information before, that it could not be launched?

boon gravatar image boon  ( 2015-10-01 00:35:44 -0500 )edit

The spawner only requests controller load and start actions. They are serviced by the controller_manager. The error you are getting is telling you that the spawner did not find a running controller_manager in its namespace to service its requests.

Adolfo Rodriguez T gravatar image Adolfo Rodriguez T  ( 2015-10-01 05:37:39 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
1

answered 2019-07-11 01:42:06 -0500

Sohan_Anisetty gravatar image

updated 2019-07-11 01:50:20 -0500

Make sure the namespace is same in the gazebo plugin and the controllers.yaml file. This namespace is equal to the name of the robot in your URDF file. Also make sure the hardwareInterface type (eg. PositonJointInterface) matches the corresponding controller of the joint in controllers.yaml file you created.

For eg. my gazebo plugin has this tag: <robotnamespace>/arm_mesh</robotnamespace>

where arm_mesh is the name specified in my URDF.

My controllers.yaml file is like this:

arm_mesh:

  robotic_arm_controller:

      type: "position_controllers/JointTrajectoryController"

         .......

My launch file to activate controller manager:

 <launch>

   <rosparam file="$(find PKG_NAME)/config/controllers.yaml" command="load"/>

      <node name="robotic_arm_controller_spawner" pkg="controller_manager" type="spawner" 
        respawn="false"  output="screen" ns="/arm_mesh" args="robotic_arm_controller"/>


 </launch>
edit flag offensive delete link more
0

answered 2015-09-30 08:55:23 -0500

Adolfo Rodriguez T gravatar image

I would first find out if there is ros_control integration for the spiri_simulator, and if so make sure that you're properly loading it. The error you get most likely means that there is no controller_manager running, or that it is in a different namespace than the spawner.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2015-09-28 22:32:27 -0500

Seen: 4,567 times

Last updated: Jul 11 '19