Developing a ROS node on windows .NET (C#)

778 views
Skip to first unread message

Kevin Brandon

unread,
Jun 10, 2014, 5:29:59 PM6/10/14
to win...@googlegroups.com
Daniel,

I have been working on developing a ROS Node on windows using C# (Not win_ros/C++/MSVC).  My goal involves a master ROS installation on Kubunto 14.04 with a few ROS nodes located on a separate Windows Machine.  I have considered utilizing win_ros and then having C# communicate with win_ros.  However, win_ros it just too cumbersome along with all the baggage of a C++<->C# interface.  Also note my expertise is in .NET/Windows/Unix and my C++ skills are a little weak.

To accomplish my goal I do not require a full blown ROS port to Windows .NET, but only what is required to create/use a ROS node.  I have been trying to reverse engineer (always messy) the ROS source, but it has been inefficient.  What I really need is to just understand the exact XMLRPC messages that come and go from a Node.  Then I can utilize a great C# xml-rpc.net library, to reproduce the behavior from the ground up.  After that I will need to understand/handle the TCPROS/UDPROS socket negotiation/setup.  Again I will leave as much in the Linux world as possible (ie. Master and Utilities).

Can you provide some support via a dialog on this post or direct if you prefer.  It could lead to many opportunities such as using a Kinect on Windows.  If you are game can you help by providing an overview of XMLRPC exchanges that occur with a node?  Most important can you show a way of modify Linux ROS source to print the XMLRPC messages to screen/log.  With this information I can create a node on Windows and slowly mimic the XMLRPC behavior step by step.

Thanks,
Kevin

Daniel Stonier

unread,
Jun 29, 2014, 10:03:03 AM6/29/14
to win...@googlegroups.com
Hi Kevin,

Sorry for the delay. I looked at getting the c++ libs to c# at one point in time but as you say, there's alot of baggage and would take more time than I could commit. Getting something simple would definitely be useful for accessing windows drivers, but I'd avoid doing too much until ROS 2.0 comes along.

Alot of roscpp's xmlrpc logging goes into ROS_DEBUG_NAMED("roscpp_internal")....you should be able to enable it at a low level in the rosconsole.config file. See http://wiki.ros.org/rosconsole for details. Probably you need:

log4j.logger.ros.roscpp.roscpp_internal=DEBUG
Apart from the master slave xml-rpc docs on the wiki there isn't that much documentation. The small amount of debugging I've done at that level has usually resorted to having a linux system running next to me and reverse engineering that to know what to expect.

Haven't got a great deal of time to help you right now, but please do keep pinging back here. I'd like to stay tuned :)

Cheers,
Daniel.


Reply all
Reply to author
Forward
0 new messages