Hi trinighost,<br><br>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.<br>
<br>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 :-).<br><br>Cheers,<br>Paul<br><br><div class="gmail_quote">
On Wed, Oct 6, 2010 at 12:00 PM, Ken Conley <span dir="ltr"><<a href="mailto:kwc@willowgarage.com" target="_blank">kwc@willowgarage.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

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


> Sent from the ROS-Users mailing list archive at Nabble.com.<br>
> _______________________________________________<br>
> ros-users mailing list<br>
> <a href="mailto:ros-users@code.ros.org" target="_blank">ros-users@code.ros.org</a><br>
> <a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
><br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org" target="_blank">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
</div></div></blockquote></div><br>