[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