ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Using industrial_robot_client without simple_message

asked 2014-09-03 04:27:11 -0500

bjem85 gravatar image

updated 2014-09-04 16:44:36 -0500

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

edit retag flag offensive close merge delete


The link you provided is to the industrial_robot_client wiki...not a specification (is this what you meant)?

sedwards gravatar image sedwards  ( 2014-09-04 08:55:04 -0500 )edit

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?

Adolfo Rodriguez T gravatar image Adolfo Rodriguez T  ( 2014-09-04 09:28:33 -0500 )edit

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.

bjem85 gravatar image bjem85  ( 2014-09-04 16:44:19 -0500 )edit

sedwards: link has been updated

bjem85 gravatar image bjem85  ( 2014-09-04 16:44:53 -0500 )edit

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?

bjem85 gravatar image bjem85  ( 2014-09-04 16:49:08 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2014-09-04 20:56:25 -0500

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.

edit flag offensive delete link more


Thanks for that info, it looks like I will stick to writing my own interface with MoveIt.

bjem85 gravatar image bjem85  ( 2014-09-08 23:35:39 -0500 )edit

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.

Adolfo Rodriguez T gravatar image Adolfo Rodriguez T  ( 2014-09-09 04:26:59 -0500 )edit

Thanks Adolfo. I am presently pursuing this line of development.

bjem85 gravatar image bjem85  ( 2014-09-10 16:58:51 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2014-09-03 04:27:11 -0500

Seen: 163 times

Last updated: Sep 04 '14