ROS# is a set of open source software libraries and tools in C# for communicating with ROS from .NET applications, in particular Unity.
Find some examples what you can do with ROS# here.
This commit comes with major changes in RosBridgeClient that already have been discussed in this issue.
The biggest changes are:
- Generic Communication Protocol Interface: an interface to the communication protocol used by RosBridgeClient. It currently comes with two implementations: WebSocketNetProtocol and WebSocketSharpProtocol
- Message Type Structure: a more ROS-oriented structure of message types, including further code simplifications
- Simplified Message Handling in Unity: a simplified structure with even better performance. It requires a different placement of ROS# components in Unity scene.
Please see the Wiki and the videos of UnitySimulationScene and GazeboSimulationScene for a detailed info on how to use the new framework.
If you prefer working with the old framework, please revert to this commit or to the corresponding release v1.2c.
- Libraries: .NET solution for RosBridgeClient, UrdfImporter
- ROS: ROS packages used by ROS#.
- Unity3D: Unity project containing
- Unity-specific extensions to RosBridgeClient and UrdfImporter
- example scenes and reference code (see Wiki)
In addition to the source code, Releases contain:
- a Unity Asset Package containing the Unity3D project assets:
- to be imported in other Unity projects using ROS#.
- binaries of RosBridgeClient and UrdfImporter
- to be used in other .NET projects using these libraries.
The latest release is also being published in the Unity Asset Store.
Please get the development version with latest changes and fixes directly from the tip of this master branch.
ROS# is open source under the Apache 2.0 license and is free for commercial use.
RosBridgeClient requires:
websocket-sharp.dll
from websocket-sharp provided under MIT License (required only when using WebSocketSharpProtocol).Newtonsoft.Json.dll
from NewtonSoft Json.Net provided under MIT License.
UrdfImporter requires:
MathNet.Numerics.dll
from Math.NET Numerics provided under MIT License.
-
ROS# is developed for Windows and has successfully been used on Linux and iOS by community members.
-
The RosSharp solution is built using .NET Framework 4.6. It requires Unity 2018.x to run. Make sure to set the scripting runtime version to
.NET 4.x Equivalent
(see Wiki page). -
David Whitney provides a UWP version of ROS# on his fork.
-
Additionally Blommers kindly provides a .NET Standard 2.0 version of UrdfImporter.
- Karl Henkel for providing the reference for the Unity STL mesh importer used in this project.
- Jeremy Fix for providing some helpful ROS communication example scripts in Unity.
- Hassanbot for multiple bug fixes and communication performance tests.
- David Whitney and tarukosu for UWP platform support.
- Samuel Lindgren for adding the ROS Service Providers in Unity.
- Interested in contributing as well?
© Siemens AG, 2017-2018
Author: Dr. Martin Bischoff ([email protected])