[ros-users] Message proxy?

Austin Hendrix legotown at aol.com
Mon Jul 2 21:25:12 UTC 2012


I would take a look at rosproxy: http://ros.org/wiki/rosproxy

The serialization in ROS should be cross-platform/endianness.

-Austin

On 07/02/2012 12:46 PM, William Woodall wrote:
> 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 <mailto:w at auburn.edu>
> wjwwood at gmail.com <mailto:wjwwood at gmail.com>
> williamjwoodall.com <http://williamjwoodall.com>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
> On Mon, Jul 2, 2012 at 2:20 PM, Karan, Cem F CIV (US) 
> <cem.f.karan.civ at mail.mil <mailto: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 <mailto:ros-users at code.ros.org>
>     https://code.ros.org/mailman/listinfo/ros-users
>
>
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users





More information about the ros-users mailing list