ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

ROS-I Robot Support Package documentation

asked 2019-10-22 08:14:21 -0500

bakerhillpins gravatar image

updated 2019-10-22 08:15:06 -0500

So I've been working on trying to create a Robot Support Package based upon ROS-I. I've based most of my work on tutorials and some examples I've located throughout the ROS ecosystem. During that development process it's come to my attention that my development is apparently following the "old" (Simple Message) interfaces mostly by way of comments about the documentation being out of date. For example, these questions all have answers or comments that mention that the Simple Message interface is old but don't point to the updated info:

End Of Trajectory

ROS-I Interface

ROS-I industrial Application

Unfortunately, I've been unable to find any documentation/tutorial/webpage that specifically details what the most up to date Robot Support Package interfaces are. I've tried lots of different search term combinations to no avail. Does anyone have any links or otherwise to information or documentation (or at a minimum a example repo) that details the newer ROS-I Robot Support Package interfaces?

I'm hoping that @gvdhoorn will see this as he's commented on it several times but there doesn't appear to be any way to PM folks on this forum.

edit retag flag offensive close merge delete

Comments

You might also want to submit this to the ROS-I Issue Tracker on Github.

jschornak gravatar image jschornak  ( 2019-10-22 11:14:58 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2019-10-22 12:18:16 -0500

gvdhoorn gravatar image

updated 2019-10-24 02:49:43 -0500

I believe your question is based on a misunderstanding of my comments (I'm not a native speaker, so there is a good chance this is a fault on my side).

You write:

During that development process it's come to my attention that my development is apparently following the "old" (Simple Message) interfaces mostly by way of comments about the documentation being out of date. For example, these questions all have answers or comments that mention that the Simple Message interface is old but don't point to the updated info [..]

and:

Unfortunately, I've been unable to find any documentation/tutorial/webpage that specifically details what the most up to date Robot Support Package interfaces are [..] Does anyone have any links or otherwise to information or documentation (or at a minimum a example repo) that details the newer ROS-I Robot Support Package interfaces?

I believe the specific comment that confused and caused you to (eventually) post this question was (by me in #q330389):

Finally:

I'm working on creating a ROS-i robot support package based upon reading their FAQ/Tutorials (http://wiki.ros.org/Industrial/Tutorials).

as the approach that was taken for the older drivers (ie: using Simple Message et al) is not something that is still often being used, those tutorials have gotten a bit stale. They should be updated, or at least their status should be made more clear.

What I meant to say here was (and still is) that using Simple Message itself could be considered "old". Not that there is an "old and new way" of interfacing with robot controllers that are both "part of ROS-Industrial".

Simple Message was really only created as a stop-gap measure, at a time (around 2010/11) when external motion control interfaces to industrial robot controllers were not ubiquitous (or at least not on the controllers targetted at that point in time). It is a very simple, primitive protocol that just serves its purpose (because of the very limited programming and runtime environments these controllers have), until you have something better available to you.

For most industrial robot controllers, "something better" has been available for quite a few years. KUKA has (and has had) RSI, FRI, SmartServo, DirectServo, EKI and some others. ABB has EGM. Fanuc has Stream Motion. Mitsubishi has MXT. Universal Robots has RTDE. Denso has b-CAP. Kawasaki has KRNX. Etc. Etc.

All of those interfaces support external motion control orders of magnitude more comprehensive and performant than would ever be possible using Simple Message (between 100 to 1kHz position, velocity and sometimes even force/torque control). And best of all: all of those interfaces are supported by their respective manufacturers. Some will even let you use those interfaces "on the factory floor".

From that perspective it doesn't make much sense to keep using a custom, primitive protocol -- if you'd target those kinds of controllers.

If you don't, and you don't have a good, performant external motion interface available, then using Simple ... (more)

edit flag offensive delete link more

Comments

PS: using Simple Message as the protocol to communicate with a controller from a ros_controlhardware_interface would also be possible of course. But that doesn't change the fact that if something better is available, I'd still recommend to use that instead.

gvdhoorn gravatar image gvdhoorn  ( 2019-10-22 12:19:16 -0500 )edit

You write:

I believe your question is based on a misunderstanding of my comments (I'm not a native speaker, so there is a good chance this is a fault on my side).

That's a good part of it yes, but no worries. Overall, I'm finding it difficult to come in cold and really understand how these components interact. The tutorials are great for turning a crank to get something on the screen but they don't provide much toward understanding.

For most industrial robot controllers, "something better" has been available for quite a few years.

Here's where most of the confusion starts. ROS-I seems to have a goal to accelerate adoption into industry. Industry likes to have common interfaces (among countless other things) and this seems to be the exact opposite. A custom, proprietary, interface on everything. Seems counter intuitive, what am I missing (maybe a ...(more)

bakerhillpins gravatar image bakerhillpins  ( 2019-10-22 13:05:43 -0500 )edit

Continuing:

If you do: I would look into writing a ros_control compatible hardware_interface that exposes

On the diagram on the ros_control page the hardware_interface::RobotHW block (orange) seems to be operating on the SimpleMessage paradigm. (JointEffort/JointState messages) This is where I get confused as I wrote a hardware_interface against these messages.

If you'd still like to conform to the ROS-Industrial driver specification, that is still possible, with and without ros_control. Most can be made compliant by remapping.

So the simple answer here is Yes, that's exactly what I want to do. Problem is that I'm still confused as to what exactly defines compliance, where that information is, and what I have to do to get there from a bare robot that has it's own command/control API. I have a feeling it's right in front of me but I can't see it at all.

bakerhillpins gravatar image bakerhillpins  ( 2019-10-22 13:44:30 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2019-10-22 08:14:21 -0500

Seen: 235 times

Last updated: Oct 24 '19