{"action":"created","issue":{"url":"https://api.github.com/repos/ros-industrial/industrial_core/issues/118","labels_url":"https://api.github.com/repos/ros-industrial/industrial_core/issues/118/labels{/name}","comments_url":"https://api.github.com/repos/ros-industrial/industrial_core/issues/118/comments","events_url":"https://api.github.com/repos/ros-industrial/industrial_core/issues/118/events","html_url":"https://github.com/ros-industrial/industrial_core/issues/118","id":94271948,"number":118,"title":"robot_client: joint_trajectory_streamer doesn't check reply msg from ctrlr in streamingThread","user":{"login":"gavanderhoorn","id":4550046,"avatar_url":"https://avatars.githubusercontent.com/u/4550046?v=3","gravatar_id":"","url":"https://api.github.com/users/gavanderhoorn","html_url":"https://github.com/gavanderhoorn","followers_url":"https://api.github.com/users/gavanderhoorn/followers","following_url":"https://api.github.com/users/gavanderhoorn/following{/other_user}","gists_url":"https://api.github.com/users/gavanderhoorn/gists{/gist_id}","starred_url":"https://api.github.com/users/gavanderhoorn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gavanderhoorn/subscriptions","organizations_url":"https://api.github.com/users/gavanderhoorn/orgs","repos_url":"https://api.github.com/users/gavanderhoorn/repos","events_url":"https://api.github.com/users/gavanderhoorn/events{/privacy}","received_events_url":"https://api.github.com/users/gavanderhoorn/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ros-industrial/industrial_core/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-07-10T10:08:55Z","updated_at":"2015-07-12T11:00:00Z","closed_at":null,"body":"The state machine in `JointTrajectoryStreamer::streamingThread()` uses `SmplMsgConnection::sendAndReceiveMsg(req, reply, ..)` to send `JointTrajPtMessage` instances to the server program running on the controller, but the returned `reply` msg is never checked for success of the operation ([here](https://github.com/ros-industrial/industrial_core/blob/d18b676f30616bb29b92dede04120b364907f8c7/industrial_robot_client/src/joint_trajectory_streamer.cpp#L188-L199)). As trajectory streaming is done using (synchronous) `SERVICE_REQUEST` type msgs, it would seem logical to also check the reply from the controller.\r\n\r\nThe current implementation makes it impossible for servers to reject or *nack* an incoming traj pt (or in general: a service request).\r\n"},"comment":{"url":"https://api.github.com/repos/ros-industrial/industrial_core/issues/comments/120707586","html_url":"https://github.com/ros-industrial/industrial_core/issues/118#issuecomment-120707586","issue_url":"https://api.github.com/repos/ros-industrial/industrial_core/issues/118","id":120707586,"user":{"login":"gavanderhoorn","id":4550046,"avatar_url":"https://avatars.githubusercontent.com/u/4550046?v=3","gravatar_id":"","url":"https://api.github.com/users/gavanderhoorn","html_url":"https://github.com/gavanderhoorn","followers_url":"https://api.github.com/users/gavanderhoorn/followers","following_url":"https://api.github.com/users/gavanderhoorn/following{/other_user}","gists_url":"https://api.github.com/users/gavanderhoorn/gists{/gist_id}","starred_url":"https://api.github.com/users/gavanderhoorn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gavanderhoorn/subscriptions","organizations_url":"https://api.github.com/users/gavanderhoorn/orgs","repos_url":"https://api.github.com/users/gavanderhoorn/repos","events_url":"https://api.github.com/users/gavanderhoorn/events{/privacy}","received_events_url":"https://api.github.com/users/gavanderhoorn/received_events","type":"User","site_admin":false},"created_at":"2015-07-12T11:00:00Z","updated_at":"2015-07-12T11:00:00Z","body":"Do we actually care about this? Should the act of transferring the traj pt be considered the 'service request', and not so much the execution of the associated motion? If that is the case, the fields in the `RobotStatus` msgs would indirectly give feedback on the success of the motion (no errors on the `robot_status` topic == success), and there is no need to be able to nack points explicitly.\r\n\r\n@shaun-edwards: could you elaborate on the design of the protocol wrt this?\r\n"}}