[ros-users] [Discourse.ros.org] [ROS-Industrial] Streaming Motion Interfaces

Jonathan Meyer ros.discourse at gmail.com
Mon Aug 27 01:30:38 UTC 2018


I've been stewing on an idea lately and I'd like to submit to the community at large to see what you think.

Some of our industrial robot drivers have "streaming" interfaces, meaning that joints are sent "on the fly" to applications while execution is happening. This is in contrast to "downloading" interfaces which try to make the entire plan available to the controller in advance.

A problem on the ROS-I side of things is that all of our interfaces look like download interfaces to user applications: you can only send whole trajectory chunks. Some drivers have alternate interfaces (ROS-Control in some of the UR variants?) that allow for real time streaming.

I'd like to:

1. Create a ROS level API for connecting to, configuring, streaming, and manipulating joint-motion streams to the robot driver.
2. Create a robot driver that calls on inspiration from audo drivers (e.g. ALSA or JACK). Data is sent in "chunks", or time slices, to the controller where it is double buffered. The size of the time slice would be configureable so you can trade off between latency and reliability for your given application. This might enable more robustness on not RT platforms, especially when servicing multiple robots or when the computer is under heavy computational load.
3. Some kind of test setup to quantify our performance on, say, a Motoman or a UR.

What in this proposal already exists? Has anyone experimented with point 2? Can ROS-Control fulfill our needs on point 1?

[Visit Topic](https://discourse.ros.org/t/streaming-motion-interfaces/5858/1) or reply to this email to respond.

More information about the ros-users mailing list