ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Is ROS able to support C# language?

asked 2011-06-25 16:31:25 -0600

sam gravatar image

Hi, I want to use c# to build robot interface. I found c# is very convenient,because both windows and linux can run the same c# program. c# can use mono to run. So if c# can also be included in ROS, it will be very great~

edit retag flag offensive close merge delete

5 Answers

Sort by » oldest newest most voted

answered 2011-06-25 23:42:13 -0600

C# is not supported yet; if you must use C#, your only option would be to re-implement the basic network protocols in C#, but that will be a lot of work.

If you are just looking for a way to build a platform-independent robot interface, you could have a look at rosjava.

edit flag offensive delete link more


It's not really necessary to re-implement it. You could also use a foreign language interface and wrap it around roscpp as the old jni based rosjava did it. Of course, that wouldn't run on windows then :)
Lorenz gravatar image Lorenz  ( 2011-06-26 06:36:27 -0600 )edit
Is anyone who want to implement c# interface? Because I found that many useful libraries like aforge which has a lot of high level of tech like machine learning,neural network,fuzzy,genetic algorithms...etc.
sam gravatar image sam  ( 2011-08-10 01:37:00 -0600 )edit

answered 2012-06-21 15:53:02 -0600

st gravatar image

There is now a C# api, available see:

edit flag offensive delete link more

answered 2011-06-25 21:08:24 -0600

dornhege gravatar image

updated 2011-06-25 21:11:53 -0600

You can basically run ROS with any language supporting networking. So, yes, ROS is able to support C#. BUT there needs to be an implementation and as far as I know there is no C# one.

If you are only looking for platform independence python is supported very well in ROS. Full ROS usability in Windows is somewhat limited, though, as you will want all ROS features.

edit flag offensive delete link more


What should I do when I want to init C# program to a ros node (not by rosjava)?
sam gravatar image sam  ( 2011-08-10 01:39:47 -0600 )edit
You will need to have a client library: " Client Libraries"
dornhege gravatar image dornhege  ( 2011-08-10 02:15:59 -0600 )edit

answered 2011-06-27 01:42:39 -0600

updated 2011-06-27 16:14:52 -0600

You can attempt to convert the rosjava.jar into a CLR lib using IKVM--haven't tried it but it may work. It basically convert JVM byte code into CLR IL. Once you have the DLL you just load it like you normally would in Visual Studio/MonoDevelop.

edit flag offensive delete link more


If I can make the DLL file of rosjava,is there any tutorials or documents of how to implement C# program as a ROS node?
sam gravatar image sam  ( 2011-08-10 01:42:05 -0600 )edit is an example using rosjava converted to a DLL and used by IronPython. The import clr, clr.AddReference commands have already been done.

Doug Blank gravatar image Doug Blank  ( 2013-06-14 00:52:39 -0600 )edit

answered 2015-02-26 14:18:55 -0600

n8ers gravatar image

ROS.NET is another project which appears to aim at this goal.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2011-06-25 16:31:25 -0600

Seen: 8,313 times

Last updated: Jun 21 '12