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

TCPROS connection header probe attribute for discovery

asked 2014-03-11 17:27:42 -0500

unknown_entity1 gravatar image

updated 2014-03-12 17:50:11 -0500

Dear ROS Supporters,

Is there developer documentation for TCPROS connection header probe attribute for discovery?



I believe probe was used by rossrv for introspecting service type information that is not available via the XMLRPC API. This made me wonder what else is not documented. I've been working on a Java client for over a year, and this sort of information would of been like gold. My client did discovery of service types via an auto-generated shell script that is not platform independent, and required the user to manually run the script, then import the discovered data to the client.

This data trace was performed in February 2014 on the latest version of ROS.

The changelist at the following URL mentioned the probe...

The following is the Hex of a Wireshark data trace: 410000000e000000736572766963653d2f737061776e0700000070726f62653d311400000063616c6c657269643d2f726f7373657276696365080000006d643573756d3d2a The following is printable text of the above hex string: service=/spawn probe=1 callerid=/rosservice md5sum=*

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2014-03-11 18:35:36 -0500

ahendrix gravatar image

updated 2014-03-12 20:22:27 -0500

You're probably interested in the Slave API and the TCPROS documentation


I'm going to agree that this isn't documented in the TCPROS documentation.

I've found these references to the probe field in the ROS client libraries:

It looks like it's used in rospy to indicate a service probe without any content. It looks like roslisp may be unhappy about receiving a service request with probe=1.

It looks like roscpp detects and handles the same situation without needing the probe field. Maybe here:

edit flag offensive delete link more


No. The probe connection header attribute is not documented there, or anywhere I can find. I only discovered it by analyzing the byte streams using wireshark, and then found vague references to the functionality in release notes. I autogenerated scripts for discovery before noticing probe exists.

unknown_entity1 gravatar image unknown_entity1  ( 2014-03-12 04:54:41 -0500 )edit

Adding information about the things you're seeing will help the developers correlate it with the actual behavior of the software. Links to release notes, code, existing docs that you've already found, and wireshark dumps would all be useful.

ahendrix gravatar image ahendrix  ( 2014-03-12 07:21:28 -0500 )edit

Where do you think I should put it? It seems like the TCPROS documentation would only be the right place once the details are known so as not to confuse readers? I'll post here if you think this is the right place. I usually don't get follow up on my comments, so I appreciate your follow through, and I will personally follow through to your suggestions if you reply. Thanks, Aaron

unknown_entity1 gravatar image unknown_entity1  ( 2014-03-12 10:31:22 -0500 )edit

For the purposes of asking about these things, include your background materials in the question. This will prevent answers suggesting documentation that you've already deemed is incomplete.

ahendrix gravatar image ahendrix  ( 2014-03-12 11:11:47 -0500 )edit

Added the information to the Description. Thanks, Aaron

unknown_entity1 gravatar image unknown_entity1  ( 2014-03-12 17:51:27 -0500 )edit

Off subject do you know the default connect timeout? and does a pub/sub timeout on no activity after x time? If so what is that time duration?

unknown_entity1 gravatar image unknown_entity1  ( 2014-03-13 05:07:14 -0500 )edit

I'm not sure what the connection timeout is; I suspect it's set by the OS TCP stack. I'm not aware of an inactivity timeout on topics.

ahendrix gravatar image ahendrix  ( 2014-03-13 06:43:41 -0500 )edit

I think your right about topics. Although, the UDP implementation does have a heartbeat bit, yet I don't think it uses it. I didn't see a non-infinite timeout on the code references you shared, however, a comment inside of there made it appear like that was an intent... Thanks for your incite.

unknown_entity1 gravatar image unknown_entity1  ( 2014-03-13 11:33:32 -0500 )edit

Question Tools

1 follower


Asked: 2014-03-11 17:27:42 -0500

Seen: 415 times

Last updated: Mar 12 '14