Re: [ros-users] examples of non ROS service clients?

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: User discussions
Date:  
To: User discussions
Subject: Re: [ros-users] examples of non ROS service clients?
Hi trinighost,

On the technical issue of whether it is possible to communicate with ROS
services without calling rospy or ROS native code with a modest amount of
code, I can confirm that it is possible (YARP does it). The service
protocol is particularly straightforward. The XML/RPC API is adequately
documented (and can be probed easily), and the connection headers are
simple. Serialization is well documented. For my purposes, I turned off
md5 hashes on types (just send "*" as the hash if I remember correctly) and
serialized "by hand" since the provided IDL was a bit too intertwined with
the ROS library and build machinery to extricate.

On the strategic issue of whether doing any of this is a good idea, I can't
argue with Ken. But I can confirm that it is possible to load that gun and
point it at your foot :-).

Cheers,
Paul

On Wed, Oct 6, 2010 at 12:00 PM, Ken Conley <> wrote:

> I think several things are being conflated here:
>
> 1. Whether or not something is a node: Being a non-node simply
> relates to how much infrastructure a single process starts up. The
> difference in code is very little.
> 2. Platform independence: rospy is platform independent, save for a
> single line PYTHONPATH bootstrapper that doesn't work on Windows
> (yet). It's very easy to override this.
> 3. "Modest" segment of code: I would look at rospy or roslua. I get
> the feeling that they are not as big as you think they are.
>
> I think you'll find that, in implementing the steps you outline, you
> will have implemented a nearly complete ROS client library, but by
> being non ROS native, it will be more brittle and harder to maintain
> in the long run. Similarly, by avoiding a ROS install, you'll jump
> through extra hoops to get autogenerated service classes into your
> codebase.
>
> - Ken
>
>
> On Wed, Oct 6, 2010 at 7:30 AM, trinighost <> wrote:
> >
> > If I interpreted this sentence and the spirit of that section properly,
> the
> > service client does not have to be a
> > ROS node, and any code which could:
> >
> > 1) negotiate the XMLRPC handshaking (which seem to conform to some
> > standard),
> > 2) generate the proper connection header, and
> > 3) send and decode serialized messages (over sockets and again apparently
> > generated in "a" standard manner)
> > ought to be able to communicate with a ROS based service provider.
> >
> > This should be an avenue available to code which doesn't call rospy or
> ROS
> > native code.
> > I'm interested in services which can communicate with ROS services but do
> > not require a ROS install, or at least are dependent on a modest,
> platform
> > independent segment of ROS code.
> > Did I over simplify what I read?
> > --
> > View this message in context:
> http://ros-users.122217.n3.nabble.com/examples-of-non-ROS-service-clients-tp1636253p1642837.html
> > Sent from the ROS-Users mailing list archive at Nabble.com.
> > _______________________________________________
> > ros-users mailing list
> >
> > https://code.ros.org/mailman/listinfo/ros-users
> >
> _______________________________________________
> ros-users mailing list
>
> https://code.ros.org/mailman/listinfo/ros-users
>