Running controller_manager spawner with /mybot/robot_description?
Should I be able to have controller_manager spawner running inside the /mybot namespace and have it find /mybot/robot_description? Right now with Ubuntu 14.04 and Indigo I am only getting
Could not find parameter robot_description on parameter server
Failed to parse urdf file
Initializing ... failed
...
If I load the robot_description to /robot_description even while keeping the spawner in the /mybot namespace it will work again, suggesting that something downstream from the spawner is only looking at a hardcoded /robot_description rather than respecting namespaces.
Update:
I've done a little digging and it seems perhaps the problem lies in a service call to load_controller loses namespace information, the service provider (which is in /gazebo) just looks up "robot_description". It seems like if I where to launch gazebo within the /mybot namespace it would find the description (and break other things maybe), but then if that were the only way to do that then that means multiple robots with different robot_descriptions wouldn't be possible?
In my urdf I have a gazebo_ros_control plugin loading with the <robotparam> set to /mybot/robot_description - should that make the loading of the controller work (though it isn't for me currently)? I do see messages like Starting gazebo_ros_control plugin in namespace: /mybot
and gazebo_ros_control pulgin is waiting for model URDF in parameter [/mybot/robot_description] on the ROS param server.
Update
I've replicated making everything run inside this with my forked copy of gazebo_ros_demos https://github.com/lucasw/gazebo_ros_... , I can successfully launch gazebo with
roslaunch rrbot_gazebo rrbot_world.launch
And that works in the current state, though I had to put /mybot in more places than I'd like (rather than being able to put it an one level in the launch file and no lower level configuration files having to know about it and just operating on relative namespaces. (gazebo gets launched via empty_world.launch and that doesn't work within a namespace (more descriptive comments in the launch file)
But I can't get the controller nodes to launch properly from here:
roslaunch rrbot_control rrbot_control.launch
If I don't put the spawner inside mybot (and everything else is) I get:
[INFO] /opt/ros/indigo/lib/controller_manager/spawner:121 : Controller Spawner: Waiting for service controller_manager/load_controller [WARN] /opt/ros/indigo/lib/controller_manager/spawner:138 : Controller Spawner couldn't find the expected controller_manager ROS interface.
or if I do try to load the spawner within mybot:
/opt/ros/indigo/lib/robot_state_publisher/robot_state_publisher
[INFO] /opt/ros/indigo/lib/controller_manager/spawner:121 : Controller Spawner: Waiting for service controller_manager/load_controller
[INFO] /opt/ros/indigo/lib/controller_manager/spawner:126 : Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] /opt/ros/indigo/lib/controller_manager/spawner:134 : Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] /opt/ros/indigo/lib/controller_manager/spawner:189 : Loading controller: joint_state_controller
[ERROR] /opt/ros/indigo/lib/controller_manager/spawner:195 : Failed to load joint_state_controller
[INFO] /opt/ros/indigo/lib/controller_manager/spawner:189 : Loading controller: joint1_position_controller
[ERROR] /opt/ros/indigo/lib/controller_manager/spawner:195 : Failed to load joint1_position_controller
[INFO ...
Lucas, did you ever find a solution to this? Thanks.
I alse meet this problem, can you give me some help about it . thanks very much.
To understand the situation: In which namespace is the
gazebo_ros_control
plugin being spawned?/mybot
?. If you load the robot description under/mybot/robot_description
the plugin fails to load, but if you do it under/robot_description
it works?.I didn't ever solve this directly, I just restructured to avoid it. I'm going to have to recreate this int the form of a simple example to demonstrate it.
I've updated the question to link to github where I've recreated the problem.
Hy, have you solved this point because I'm having exactly the same problem on Jade. I did this tutorial http://gazebosim.org/tutorials?tut=ro... but the warning is hold "Controller spawner couldn't find the expected controller_manager ROS interface". Thanks a lot
Having the same problem on Jade. Any ideas?