{"action":"created","issue":{"url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/248","repository_url":"https://api.github.com/repos/ros-controls/ros_controllers","labels_url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/248/labels{/name}","comments_url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/248/comments","events_url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/248/events","html_url":"https://github.com/ros-controls/ros_controllers/issues/248","id":195867697,"number":248,"title":"Joint position controller commands not getting through (permanently zero)","user":{"login":"pallgeuer","id":5592992,"avatar_url":"https://avatars.githubusercontent.com/u/5592992?v=3","gravatar_id":"","url":"https://api.github.com/users/pallgeuer","html_url":"https://github.com/pallgeuer","followers_url":"https://api.github.com/users/pallgeuer/followers","following_url":"https://api.github.com/users/pallgeuer/following{/other_user}","gists_url":"https://api.github.com/users/pallgeuer/gists{/gist_id}","starred_url":"https://api.github.com/users/pallgeuer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pallgeuer/subscriptions","organizations_url":"https://api.github.com/users/pallgeuer/orgs","repos_url":"https://api.github.com/users/pallgeuer/repos","events_url":"https://api.github.com/users/pallgeuer/events{/privacy}","received_events_url":"https://api.github.com/users/pallgeuer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-12-15T17:35:41Z","updated_at":"2016-12-15T19:07:41Z","closed_at":null,"body":"I am running a Gazebo simulation of a robot with 20 joints, each of which is being controlled by an effort_controllers::JointPositionController. Under ROS Indigo (Gazebo 2.x) everything works fine and I've been using it for a while. Under ROS Kinetic (Gazebo 7.x) however, very often when I launch the simulation, one or more joints permanently have a setpoint of zero, and those joints therefore don't move, even though valid commands are being published.\r\n\r\nSo for example, if on a particular run of the simulation the left_hip_yaw joint is the problem, that means that my robot control node is publishing on:\r\n\r\n`/my_robot/left_hip_yaw_position_controller/command`\r\n\r\nAnd I can confirm this with `rostopic echo`, that the data is really being published, and is non-zero. When I do however:\r\n\r\n`rostopic echo /nimbro_op/left_hip_yaw_position_controller/state`\r\n\r\n...I permanently see `set_point: 0.0`. I checked, and was able to definitively see that the reason for this is because despite this line:\r\n\r\n`sub_command_ = n.subscribe<std_msgs::Float64>(\"command\", 1, &JointPositionController::setCommandCB, this);`\r\n\r\nin `JointPositionController::init()`, the callback `JointPositionController::setCommandCB` is never called. Using `rosnode info` and `rostopic info` says that the node is correctly subscribed though, and the `ROS_DEBUG` messages also say:\r\n\r\n> [DEBUG][/gazebo->Subscription::pendingConnectionDone]: Connecting via tcpros to topic [/nimbro_op/left_hip_yaw_position_controller/command] at host [nelson.local:58643]\r\n> [DEBUG][/gazebo->TransportTCP::connect]: Resolved publisher host [nelson.local] to [127.0.1.1] for socket [72]\r\n> [DEBUG][/gazebo->TransportTCP::initializeSocket]: Adding tcp socket [72] to pollset\r\n> [DEBUG][/gazebo->TransportTCP::connect]: Async connect() in progress to [nelson.local:58643] on socket [72]\r\n> [DEBUG][/gazebo->Subscription::pendingConnectionDone]: Connected to publisher of topic [/nimbro_op/left_hip_yaw_position_controller/command] at [nelson.local:58643]\r\n\r\nThe only indication, other than that the callback isn't being called, that something is wrong is the `ROS_DEBUG` message (once only):\r\n\r\n> [DEBUG][/gazebo->SubscriptionQueue::push]: Incoming queue was full for topic \"/nimbro_op/left_hip_yaw_position_controller/command\". Discarded oldest message (current queue size [0])\r\n\r\nwhich indicates that the messages are never being processed at all, because otherwise the second time the buffer of size 1 is full after being emptied again once, the `ROS_DEBUG` message would appear again.\r\n\r\nBut on every launch it's other joint(s) having the problem, and even if one is not working, the other 19 JointPositionControllers _are_ working. Also, if a JointPositionController is working after being launched, then it will continue to do so for as long as Gazebo is running, and if it is not, then it never suddenly starts working later.\r\n\r\nSomething is not working right, but what?"},"comment":{"url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/comments/267413019","html_url":"https://github.com/ros-controls/ros_controllers/issues/248#issuecomment-267413019","issue_url":"https://api.github.com/repos/ros-controls/ros_controllers/issues/248","id":267413019,"user":{"login":"bmagyar","id":3524577,"avatar_url":"https://avatars.githubusercontent.com/u/3524577?v=3","gravatar_id":"","url":"https://api.github.com/users/bmagyar","html_url":"https://github.com/bmagyar","followers_url":"https://api.github.com/users/bmagyar/followers","following_url":"https://api.github.com/users/bmagyar/following{/other_user}","gists_url":"https://api.github.com/users/bmagyar/gists{/gist_id}","starred_url":"https://api.github.com/users/bmagyar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmagyar/subscriptions","organizations_url":"https://api.github.com/users/bmagyar/orgs","repos_url":"https://api.github.com/users/bmagyar/repos","events_url":"https://api.github.com/users/bmagyar/events{/privacy}","received_events_url":"https://api.github.com/users/bmagyar/received_events","type":"User","site_admin":false},"created_at":"2016-12-15T19:07:41Z","updated_at":"2016-12-15T19:07:41Z","body":"Hiya,\r\n\r\nQuite a puzzle! Let's start at base 1, do you have a public simulation I could reproduce this with?\r\n\r\nRandom architect question: Any particular reason why you use one controller per joint instead of group controllers?"}}
{"actor":{"display_login":"bmagyar"}}