[ros-users] Message proxy?

William Woodall wjwwood at gmail.com
Mon Jul 2 19:46:30 UTC 2012


Sophisticated as this question is, I think it is still serviceable via
http://answers.ros.org/questions/

For part 1):

Not sure, potentially if the code that deserializes was generated for an
ARM target.  Maybe some else can comment on this.

For part 2):

The message type '<pkg>/<MessageName>', the actual message definition, and
the md5sum of the message are all part of the data being sent in the
serialized data. See:

http://www.ros.org/wiki/ROS/TCPROS
http://www.ros.org/wiki/ROS/Connection%20Header

This is how, from what I understand, rosbag can record and republish ros
topic data with out linking to any message type headers, because it never
actually deserializes anything, similarly your proxies can forward the data
in its serialized form without ever knowing the type and ros nodes on the
other side can still determine the type and then deserialize the data.

--

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
William Woodall
Graduate Software Engineering
Auburn University
w at auburn.edu
wjwwood at gmail.com
williamjwoodall.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



On Mon, Jul 2, 2012 at 2:20 PM, Karan, Cem F CIV (US) <
cem.f.karan.civ at mail.mil> wrote:

> Hi all, I'm trying to pass data between multiple robots in a manner
> similar to what multimaster (http://ros.org/wiki/multimaster) is/was
> supposed to do, but after some work, I've realized that what I'm really
> trying to do is proxy messages from one robot to another.  I can do this
> by grabbing a message and asking it for its serialized representation, and
> then rsyncing that across the network, but I realized that that leaves 2
> potential problems:
>
> 1) I don't know how portable the serialization format really is.  Can I
> take a message that was serialized on a little endian 32 bit machine (x86)
> and forward it to a big endian 16 bit machine (ARM), and have the data be
> correctly serialized/deserialized?  I know I can do this via google
> protocol buffers (https://developers.google.com/protocol-buffers/) or
> MessagePack (http://msgpack.org/), but I'm not too sure if I can do this
> with serialized message format that ROS uses.
>
> 2) Is the message type encoded into the serialized data?  It doesn't
> appear so, but I just wanted to make sure.  This affects what kind of
> proxy I can make; if the message type is encoded in the message, then the
> proxy can be oblivious to messages, and will simply forward the data
> along.  The receiver can likewise be oblivious, putting the message 'on
> the bus' and letting all listeners decode what they want.  Conversely, if
> the messages don't encode their own type, then the proxies will need to
> know every message type that they encode; otherwise, the receivers won't
> be able to put the right message type 'on the bus'.
>
> Any help/pointers would be appreciated.
>
> Thanks,
> Cem Karan
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20120702/730d3d05/attachment-0004.html>


More information about the ros-users mailing list