Gazebo | Ignition | Community
Ask Your Question
0

Problem with start controller with roslaunch: controller spawner couldn't find the expected controller_manager ROS interface

asked 2016-02-19 06:00:50 -0500

gabri89 gravatar image

updated 2016-02-19 06:02:03 -0500

Hy everyone, I'm using ros jade with gazebo 5.2. I tried to follow this tutorial. After launching the rrbot_world.launch, I try to do :

 roslaunch rrbot_control rrbot_control.launch

I've this response

    SUMMARY
========

PARAMETERS
 * /rosdistro: jade
 * /rosversion: 1.11.16
 * /rrbot/joint1_position_controller/joint: joint1
 * /rrbot/joint1_position_controller/pid/d: 10.0
 * /rrbot/joint1_position_controller/pid/i: 0.01
 * /rrbot/joint1_position_controller/pid/p: 100.0
 * /rrbot/joint1_position_controller/type: effort_controller...
 * /rrbot/joint2_position_controller/joint: joint2
 * /rrbot/joint2_position_controller/pid/d: 10.0
 * /rrbot/joint2_position_controller/pid/i: 0.01
 * /rrbot/joint2_position_controller/pid/p: 100.0
 * /rrbot/joint2_position_controller/type: effort_controller...
 * /rrbot/joint_state_controller/publish_rate: 50
 * /rrbot/joint_state_controller/type: joint_state_contr...

NODES
  /
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
  /rrbot/
    controller_spawner (controller_manager/spawner)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
process[rrbot/controller_spawner-1]: started with pid [5768]
process[robot_state_publisher-2]: started with pid [5769]
[INFO] [WallTime: 1455881521.257272] [0.000000] Controller Spawner: Waiting for service controller_manager/load_controller
[WARN] [WallTime: 1455881551.416911] [109.233000] Controller Spawner couldn't find the expected controller_manager ROS interface.
[rrbot/controller_spawner-1] process has finished cleanly
log file: /home/gabriele/.ros/log/33f60b1a-d6fc-11e5-8b0c-e839df8a64f0/rrbot-controller_spawner-1*.log

The WARN says that the spawner couldn't not found the controller manager. I already have this command line :

sudo apt-get install ros-jade-ros-control ros-jade-ros-controllers

What's wrong? Could it be a compatibility problem between my gazebo/ros distro?

Then I don't understand what is control_manager. Should it be a directory? Because in my rrbot_control I can't see it. Have I to create it?

Thank you, bye!

edit retag flag offensive close merge delete

4 Answers

Sort by ยป oldest newest most voted
2

answered 2016-02-19 06:38:06 -0500

longforgotten gravatar image

updated 2016-02-19 16:05:40 -0500

Hello again :)

In this tutorial, section Install gazebo_ros_pkgs, it says that there is no ros-jade-gazebo-ros-control debian package released for now. Without this, you can't run simulations using ros_control in Gazebo.

What you can do now is clone the gazebo_ros_pkgs repository and compile the gazebo_ros_control package, so you can run your simulation.

edit flag offensive delete link more
0

answered 2019-10-18 12:42:59 -0500

Make sure you have all the namespaces right. After running a catkin_make, don't forget to $source devel/setup.bash

I was having the same issues, it got solved after this!

edit flag offensive delete link more
0

answered 2018-12-15 04:08:08 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hi,

I have encoutered the same problem. This may possible be caused by the name space inconsistency between robot urdf defintion and the controller manager spawner in Gazebo.

Have a check of the robot urdf file first. Find the following lines:

<gazebo>
    <plugin filename="libgazebo_ros_control.so" name="gazebo_ros_control">
      <robotNamespace>/rrbot</robotNamespace>
      <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
    </plugin>
</gazebo>

Noticet that the name space for robot to load gaze_ros_control is /rrbot. That means that the controller_manager ROS interface will be loaded in the space /rrbot.

Then check the launch file that initializes the robot controller, and find the following lines:

<node name="controller_spawner" 
      pkg="controller_manager" 
      type="spawner" respawn="false"
      output="screen" 
      ns="/rrbot" 
      args="joint_state_controller  joint1_position_controller  joint2_position_controller"
/>

Here the name space for initializing the node (ns="/rrbot") is also /rrbot. Then the gazebo can find the correct controller_manager ROS interface. If this ns for controller_manager is different from the above ns in gazebo_ros_control, then the problem occurs, i.e., Controller Spawner couldn't find the expected controller_manager ROS interface.

Make sure the name for these two name spaces are exactly same, and then restart everything. The Controller Spawner will work properly.

Hope this helps you :)

edit flag offensive delete link more

Comments

thank you, this is useful to my situation.

mcfrain gravatar imagemcfrain ( 2019-03-27 21:47:29 -0500 )edit
0

answered 2016-02-20 11:32:38 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Thanks for sharing this useful information with us here. Can you please share the details of the running hardware compatible with it? Also what type of MCU i can use with it? Which libraries are available into this?

circuit board manufacturing

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2016-02-19 06:00:50 -0500

Seen: 25,031 times

Last updated: Dec 15 '18