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

Revision history [back]

click to hide/show revision 1
initial version

The TCPROS protocol information on www.ros.org/wiki/ROS/TCPROS states the following required fields for a TCPROS Connection Header: callerid: name of subscriber topic: name of the topic the subscriber is connecting to md5sum: md5sum of the message type type: message type

Unfortunately, the /clock topic in the DRCSIM for Gazebo, also requires message_definition field, or ROS throws the [ERROR] [1365876629.072388151, 159.022000000]: a header of over a gigabyte was predicted in tcpros. that seems highly unlikely, so I'll assume protocol synchronization is lost.

Not sure if this is specific to DRCSIM, ROS, or Gazebo, but if it is ROS, the wiki page needs to be updated with the message_definition field as a required field, or countless people will spend hours and hours spinning their wheels when attempting to write a ROS Client from scratch as I am doing. I hope this information helps somebody else.

Thanks,

Aaron

click to hide/show revision 2
Trying to respond to Maurice...

The TCPROS protocol information on www.ros.org/wiki/ROS/TCPROS states the following required fields for a TCPROS Connection Header: callerid: name of subscriber topic: name of the topic the subscriber is connecting to md5sum: md5sum of the message type type: message type

Unfortunately, the /clock topic in the DRCSIM for Gazebo, also requires message_definition field, or ROS throws the [ERROR] [1365876629.072388151, 159.022000000]: a header of over a gigabyte was predicted in tcpros. that seems highly unlikely, so I'll assume protocol synchronization is lost.

Not sure if this is specific to DRCSIM, ROS, or Gazebo, but if it is ROS, the wiki page needs to be updated with the message_definition field as a required field, or countless people will spend hours and hours spinning their wheels when attempting to write a ROS Client from scratch as I am doing. I hope this information helps somebody else.

Thanks,

Aaron

@Maurice - public final static byte[] CLOCK_MESSAGE={(byte)0x26,(byte)0xb1,(byte)0x70,(byte)0x23,(byte)0x20,(byte)0x72,(byte)0x6f,(byte)0x73,(byte)0x6c,(byte)0x69,(byte)0x62,(byte)0x2f,(byte)0x43,(byte)0x6c,(byte)0x6f,(byte)0x63,(byte)0x6b,(byte)0x20,(byte)0x69,(byte)0x73,(byte)0x20,(byte)0x75,(byte)0x73,(byte)0x65,(byte)0x64,(byte)0x20,(byte)0x66,(byte)0x6f,(byte)0x72,(byte)0x20,(byte)0x70,(byte)0x75,(byte)0x62,(byte)0x6c,(byte)0x69,(byte)0x73,(byte)0x68,(byte)0x69,(byte)0x6e,(byte)0x67,(byte)0x20,(byte)0x73,(byte)0x69,(byte)0x6d,(byte)0x75,(byte)0x6c,(byte)0x61,(byte)0x74,(byte)0x65,(byte)0x64,(byte)0x20,(byte)0x74,(byte)0x69,(byte)0x6d,(byte)0x65,(byte)0x20,(byte)0x69,(byte)0x6e,(byte)0x20,(byte)0x52,(byte)0x4f,(byte)0x53,(byte)0x2e,(byte)0x20,(byte)0x0a,(byte)0x23,(byte)0x20,(byte)0x54,(byte)0x68,(byte)0x69,(byte)0x73,(byte)0x20,(byte)0x6d,(byte)0x65,(byte)0x73,(byte)0x73,(byte)0x61,(byte)0x67,(byte)0x65,(byte)0x20,(byte)0x73,(byte)0x69,(byte)0x6d,(byte)0x70,(byte)0x6c,(byte)0x79,(byte)0x20,(byte)0x63,(byte)0x6f,(byte)0x6d,(byte)0x6d,(byte)0x75,(byte)0x6e,(byte)0x69,(byte)0x63,(byte)0x61,(byte)0x74,(byte)0x65,(byte)0x73,(byte)0x20,(byte)0x74,(byte)0x68,(byte)0x65,(byte)0x20,(byte)0x63,(byte)0x75,(byte)0x72,(byte)0x72,(byte)0x65,(byte)0x6e,(byte)0x74,(byte)0x20,(byte)0x74,(byte)0x69,(byte)0x6d,(byte)0x65,(byte)0x2e,(byte)0x0a,(byte)0x23,(byte)0x20,(byte)0x46,(byte)0x6f,(byte)0x72,(byte)0x20,(byte)0x6d,(byte)0x6f,(byte)0x72,(byte)0x65,(byte)0x20,(byte)0x69,(byte)0x6e,(byte)0x66,(byte)0x6f,(byte)0x72,(byte)0x6d,(byte)0x61,(byte)0x74,(byte)0x69,(byte)0x6f,(byte)0x6e,(byte)0x2c,(byte)0x20,(byte)0x73,(byte)0x65,(byte)0x65,(byte)0x20,(byte)0x68,(byte)0x74,(byte)0x74,(byte)0x70,(byte)0x3a,(byte)0x2f,(byte)0x2f,(byte)0x77,(byte)0x77,(byte)0x77,(byte)0x2e,(byte)0x72,(byte)0x6f,(byte)0x73,(byte)0x2e,(byte)0x6f,(byte)0x72,(byte)0x67,(byte)0x2f,(byte)0x77,(byte)0x69,(byte)0x6b,(byte)0x69,(byte)0x2f,(byte)0x43,(byte)0x6c,(byte)0x6f,(byte)0x63,(byte)0x6b,(byte)0x0a,(byte)0x74,(byte)0x69,(byte)0x6d,(byte)0x65,(byte)0x20,(byte)0x63,(byte)0x6c,(byte)0x6f,(byte)0x63,(byte)0x6b,(byte)0x0a,(byte)0x20,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x63,(byte)0x61,(byte)0x6c,(byte)0x6c,(byte)0x65,(byte)0x72,(byte)0x69,(byte)0x64,(byte)0x3d,(byte)0x2f,(byte)0x72,(byte)0x6d,(byte)0x64,(byte)0x6d,(byte)0x69,(byte)0x61,(byte)0x1a,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x74,(byte)0x63,(byte)0x70,(byte)0x5f,(byte)0x6e,(byte)0x6f,(byte)0x64,(byte)0x65,(byte)0x6c,(byte)0x61,(byte)0x79,(byte)0x3d,(byte)0x30,(byte)0x4e,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x6d,(byte)0x64,(byte)0x35,(byte)0x73,(byte)0x75,(byte)0x6d,(byte)0x3d,(byte)0x61,(byte)0x39,(byte)0x63,(byte)0x39,(byte)0x37,(byte)0x63,(byte)0x31,(byte)0x64,(byte)0x32,(byte)0x33,(byte)0x30,(byte)0x63,(byte)0x66,(byte)0x63,(byte)0x31,(byte)0x31,(byte)0x32,(byte)0x65,(byte)0x32,(byte)0x37,(byte)0x30,(byte)0x33,(byte)0x35,(byte)0x31,(byte)0x61,(byte)0x39,(byte)0x34,(byte)0x34,(byte)0x65,(byte)0x65,(byte)0x34,(byte)0x37,(byte)0x18,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x74,(byte)0x6f,(byte)0x70,(byte)0x69,(byte)0x63,(byte)0x3d,(byte)0x2f,(byte)0x63,(byte)0x6c,(byte)0x6f,(byte)0x63,(byte)0x6b,(byte)0x30,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x74,(byte)0x79,(byte)0x70,(byte)0x65,(byte)0x3d,(byte)0x72,(byte)0x6f,(byte)0x73,(byte)0x67,(byte)0x72,(byte)0x61,(byte)0x70,(byte)0x68,(byte)0x5f,(byte)0x6d,(byte)0x73,(byte)0x67,(byte)0x73,(byte)0x2f,(byte)0x43,(byte)0x6c,(byte)0x6f,(byte)0x63,(byte)0x6b,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00};

Or to make it simpler here is the actual text that makes the message definitions (You will need to pad the header fields with length information and message header length) keep in mind if it used to work, but it broke recently chances are the newest release may have a new md5, and message_definition.