0
$\begingroup$

Rosanswers logo

Hi All,

I am implementing the Robot Driver specification (link), however the "reference" JointTrajectoryDownloader implementation assumes you are communicating with a robot that uses the simple_message protocol. My robot does not communicate using simple_messages, it communicates using ordinary ROS topics and messages.

The usage of simple_message protocol is very deeply embedded into the JointTrajectoryDownloader and JointTrajectoryInterface classes. What is the best way to use the JointTrajectoryDownloader library on a robot that does not use simple_message for communication?

Thanks, Bart


Originally posted by bjem85 on ROS Answers with karma: 163 on 2014-09-03

Post score: 1


Original comments

Comment by sedwards on 2014-09-04:
The link you provided is to the industrial_robot_client wiki...not a specification (is this what you meant)?

Comment by Adolfo Rodriguez T on 2014-09-04:
If you don't want to use the simple_message protocol, do you really need to use the industrial_robot_client, then?. What's the actual problem you'd like to solve, send joint trajectories to your robot and read state feedback?

Comment by bjem85 on 2014-09-04:
Hi Adolfo, I don't strictly need to use it, but apart from the use of simple_message as a communication method it actually quite closely fits my requirements. From my point of view it makes little sense to do effectively a 'copy-and-paste' programming job.

Comment by bjem85 on 2014-09-04:
sedwards: link has been updated

Comment by bjem85 on 2014-09-04:
Conversely, I did investigate writing a receiver for simple_message, but I could not find any documentation or tutorials on how to do so. Is this a gap in the documentation?

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

The specification you reference simply outlines the ROS API for ROS-Industrial. The industrial_robot_client library is a set of nodes that adheres to that spec and provides a bridge to robot controllers via simple_message. It was never meant to bridge from one ROS API to another...since a robot that could already speak ROS messages should be simple to modify/adapt. I do not think you can easily utilize the industrial_robot_client nodes to bridge between ROS APIs, nor would I recommend you do that. If you still would like to create a receiver for simple_message, then you can find examples in the vendor packages ( here. These files are written in a controller specific language, RAPID, but it's readable enough to get the idea.


Originally posted by sedwards with karma: 1601 on 2014-09-04

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by bjem85 on 2014-09-08:
Thanks for that info, it looks like I will stick to writing my own interface with MoveIt.

Comment by Adolfo Rodriguez T on 2014-09-09:
Consider taking a look at the ros_control project. It offers controllers compatible with MoveIt!, and a Gazebo backend. You would have to expose your hardware to ros_control yourself, but the overhead is much lower than doing it all from scratch.

Comment by bjem85 on 2014-09-10:
Thanks Adolfo. I am presently pursuing this line of development.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.