{"action":"opened","issue":{"url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/244","repository_url":"https://api.github.com/repos/ros-controls/ros_controllers","labels_url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/244/labels{/name}","comments_url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/244/comments","events_url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/244/events","html_url":"https://github.com/ros-controls/ros_controllers/issues/244","id":193135386,"number":244,"title":"Can't initialize effort_controllers/JointPositionController with non-global robot_description parameter","user":{"login":"piyushk","id":1686279,"avatar_url":"https://avatars.githubusercontent.com/u/1686279?v=3","gravatar_id":"","url":"https://api.github.com/users/piyushk","html_url":"https://github.com/piyushk","followers_url":"https://api.github.com/users/piyushk/followers","following_url":"https://api.github.com/users/piyushk/following{/other_user}","gists_url":"https://api.github.com/users/piyushk/gists{/gist_id}","starred_url":"https://api.github.com/users/piyushk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piyushk/subscriptions","organizations_url":"https://api.github.com/users/piyushk/orgs","repos_url":"https://api.github.com/users/piyushk/repos","events_url":"https://api.github.com/users/piyushk/events{/privacy}","received_events_url":"https://api.github.com/users/piyushk/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-02T14:56:40Z","updated_at":"2016-12-02T14:56:40Z","closed_at":null,"body":"Ref: http://answers.ros.org/question/249138/cant-initialize-effort_controllersjointpositioncontroller-with-non-global-robot_description-parameter\r\n\r\nHere's an outline of my problem:\r\n\r\n1. I have multiple robots in Gazebo with different URDF descriptions. Each robot is pushed into a namespace (/robot1/...), and each frame id is pre-pended with a prefix (robot1_....). Consequently, I have no robot_description param in the global namespace.\r\n2. libgazebo_ros_control (running inside Gazebo) initializes ControllerManager. Gazebo runs in the global namespace.\r\n3. `effort_controllers/JointPositionController` (running inside Gazebo) calls [`urdf::Model::initParam`](https://github.com/ros/robot_model/blob/kinetic-devel/urdf/src/model.cpp#L89) which does not respect the controller's constructed namespace, and executes a [`searchParam`](https://github.com/ros/robot_model/blob/kinetic-devel/urdf/src/model.cpp#L96) in Gazebo's global namespace, which fails.\r\n\r\nI can't figure out how to tell the controller to read the robot_description from `robot1/robot_description`. \r\n\r\nFurthermore, It's unclear to me why each controller is trying to read the URDF independently in the first place. Doesn't it make more sense to use the controller manager.\r\n\r\nIf this issues needs a patch, and I can provide one. Would an acceptable solution be that I duplicate Model's search inside a controller, since the controller has the correct NodeHandle?"}}
{"actor":{"display_login":"piyushk"}}