Skip to content

Releases: siemens/ros-sharp

ROS# Version 2.2.1

23 Jul 15:47
ea80541

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.2.1] - 23.07.2025

Fixed

  • Correct outdated GUIDs in some meta files of the Unity package.

ROS# Version 2.2.0

23 Jul 15:38
a67ee7d

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.2.0] - 22.07.2025

Added

  • ROS2 Message/Service/Action Generation: Major refactor and extension of the message auto-generation pipeline to support new ROS2 message, service, and action interface features, including:
    • Support for default values, bounded variable-size arrays and strings in ROS2 .msg files. For example:
      • string full_name "John Doe"
      • int32[] samples [-200, -100, 0, 100, 200]
      • int32[<=5] up_to_five_integers_array
      • string<=10 up_to_ten_characters_string
    • New token types and parsing logic for ROS2 message syntax.
    • Improved handling of C# keywords and identifier validation in generated code. Invalid identifiers are added with '@' instead of '_', eliminating the need for an additional JsonProperty.
    • Note: Bounded strings in bounded variable-size arrays are not supported (string<=10[<=5] up_to_five_strings_up_to_ten_characters_each for example). These will be generated as standard string arrays.
  • Editor Usability: Improved error messages, dialog titles, and progress reporting in Unity Editor message generation windows.

Changed

  • Refactored Message Parser/Tokenizer: Message parsing and tokenization logic has been refactored for maintainability, extensibility, and ROS2 compatibility.
    • All API calls below Parse() and Tokenize() have changed. Parse() and Tokenize() have the same definition and functionality, and are backwards compatible.
    • MessageTokenizer.cs now processes messages line by line using regular expressions instead of character by character.
  • Consistent Constructor Generation: Parameterized and default constructors in generated message/service/action classes now consistently support new ROS2 features.

Fixed

  • Some of the auto-generated messages now correctly define ROS2-specific arrays.

Removed

  • CodeDomProvider based identifier validation is no longer supported.

ROS# Version 2.1.1

02 Jun 11:00
a71cb5e

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.1.1] - 02.06.2025

Added

  • Multi-framework targeting support, new .NET Standard 2.1 alongside .NET 8.0.

  • Updated dependencies, including but not limited to:

    • Microsoft.Bcl.AsyncInterfaces 9.0.5.
    • NUnit 4.3.2.
    • NUnit3TestAdapter 5.0.0.
    • System.Runtime.CompilerServices.Unsafe 6.1.2.
    • System.Text.Encodings.Web 9.0.5.
    • System.Text.Json 9.0.5.
    • System.Threading.Channels 9.0.5.
    • System.IO.Pipelines 9.0.5.
    • websocket-sharp 1.0.3-rc11

Fixed

  • Separate Editor and Runtime codes (UnityFibonacciAction*.cs), which caused build errors for Android and Windows.

  • Various wiki enhancements.

ROS# Version 2.1.0

20 Jan 17:58
a8c5e50

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.1.0] - 20.01.2025

Added

  • ROS2 Action Support:
    • In ActionClient.cs and ActionServer.cs, new methods were introduced for setting, sending, canceling, and responding to action goals, accommodating ROS2-specific parameters like feedback, fragment size, and compression, etc. Additionally, Communicators.cs now includes new classes—ActionConsumer and ActionProvider—which facilitate ROS2 action goal management and feedback/result handling (including non-blocking listener callbacks, custom delegates, and more).

      • Derived example classes FibonacciActionClient.cs and FibonacciActionServer.cs and their console examples are updated as well.
    • ActionServer.cs now features the ROS2 server state machine model (ROS2 Design - Actions)

    • Namespace and Message Type Integration:

      • Across key files such as ActionAutoGen.cs, FibonacciActionClient.cs, and FibonacciActionServer.cs, namespaces were updated to RosSharp.RosBridgeClient.MessageTypes.Action, aligning with ROS2. Furthermore, message types and identifiers were modified to reflect ROS2 constructs.
    • Abstract Action Message Types:

      • In ActionFeedback.cs, ActionResult.cs, and ActionGoal.cs, (TActionFeedback/Result/Goal) new properties were added to support ROS2's (action) feedback system and result tracking, enhancing metadata management.
    • Utility and Infrastructure Enhancements:

      • RosSocket.cs now feature new methods for ROS2 action advertising, unadvertising, managing action goals, cancel requests; feedback, result and status responses.
      • Communication.cs now feature ROS2 action message structures defined by the ROS Bridge Protocol.
    • MessageGeneration Support for ROS2 Actions:

      • In ActionAutoGen.cs, automatic action message generation capabilities have been implemented, including dynamic package inclusion, default and parameterized constructors based on ROS version.
    • ROS2 Action Support for Unity Fibonacci Examples

Changed/Removed

  • There were no changes/removals affecting ROS1 functionalities. All new ROS2 enhancements were contained within conditional compilation directives, thereby maintaining the continuity of ROS1 operations.

ROS# Version 2.0.0

10 Oct 14:04
fa4003b

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.0.0]

Added

  • Unity package supports UPM and requires Unity 2022.3.
  • ROS2 support is available for both the Unity Package (com.siemens.ros-sharp) and the complete ROS# .NET solution, including RosBridgeClient, MessageGeneration, and Urdf (Libraries).
  • New ROS packages: File Server, Unity Simuatlion Scene, and Gazebo Simulation Scene, with ROS2 support.
  • Unity Simulation Scene and Gazebo Simulation Scene, included in the Unity Package for ROS2 support.
  • RawImageSubscriber script is now part of the Unity package.
  • Post-build events for Visual Studio streamline development between Unity and .NET.

Fixed

  • UrdfTransfer files use serializer-specific methods instead of Newtonsoft JSON.

Changed

  • RosBridgeClient, MessageGeneration, and Urdf support .NET 8.0.
  • RosBridgeClient, MessageGeneration, and Urdf source code is included in the Unity Package; and no longer dynamically linked to the Unity package.
  • Switched from websocket-sharp to websocket-sharp.netstandard.
  • The JoyAxisReader script in the Unity package inherits from IAxisReader interface for increased applicability.
  • The ImageSubscriber script in the Unity package is renamed to CompressedImageSubscriber.
  • URDF export and import windows in the Unity package utilize the existing RosSocket component in the scene.
  • Thread safety for Subscriber : RosBridgeClient.Communication. Each Subscriber, including .NET and Unity package, can be configured to receive thread-safe.

Removed

  • Newtonsoft BSON is no longer supported.

ROS# Version 1.7.0

01 Feb 10:00

Choose a tag to compare

  • updating to Unity Version 2019.4.18f1
  • multiple minor fixes, see commit history for details

ROS# Version 1.6.0

20 Dec 14:54

Choose a tag to compare

Automatic Message Generation:

  • With ROS# you can now generate C# classes of any ROS message, service or action type.
  • For example, the auto-generated class of sensor_msgs/JointState.msg is JointState.cs.
  • Please find the new library here and the console tool sources here.
  • Please also note the new Unity Editor menu features.
  • Check out the new Wiki page for further info.

Action Server and Action Client Revision:

  • Check out the new Wiki pages for [Action Server] and [Action Client] for further info.

ROS# Version 1.5.0

28 Jun 13:55

Choose a tag to compare

The biggest changes in ROS# Version 1.5 are:

  • ROS Action Support:
    Please check out the FibonacciActionServer and FibonacciActionClient example and find the corresponding ROS tutorial here.

  • Message Class Generation via Unity Editor:
    Please check out the new Unity menu item RosBridgeClient > Generate Messages > ...
    This wiki page gives an overview on the different options to generate new message files.

  • BSON (De-)Serialization:
    As alternative to JSON, you can now select to set up BSON communication with rosbridge_server.
    Make sure to activate bson_only_mode when launching ros_bridge_server as explained here.

The attached binaries are:

  • RosSharp.unitypackage : complete ROS# Unity Package containing all assets of the Unity3D project
  • RosBridgeClient.dll: the build of RosBridgeClient project
  • Urdf.dll: the build of Urdf project

ROS# Version 1.4.0

20 Dec 09:40

Choose a tag to compare

This version gives you the possibility to create, modify and export your URDF models with all comforts of the Unity Editor!

The biggest changes since Version 1.3 are:

  • Urdf Libary: The UrdfImporter project was renamed to Urdf. It now supports the ability to both read from and write to URDF files.
  • Create, Modify, and Export URDF models in Unity: ROS# now supports creating and exporting URDF models directly in Unity. It is also possible to modify and re-export an existing URDF model.
  • Transfer URDF files from Unity to ROS: Previously it was only possible to transfer/import URDF files from ROS to Unity. Now ROS# can send a URDF and all its meshes from Unity to a package in ROS.
    Please see the Wiki, especially Section 3.2, for further info.

The attached binaries are:

  • RosSharp.unitypackage : complete ROS# Unity Package containing all assets of the Unity3D project
  • RosBridgeClient.dll: the build of RosBridgeClient project
  • Urdf.dll: the build of Urdf project

ROS# Version 1.3.0

13 Sep 14:45

Choose a tag to compare

This version comes with the following changes in RosBridgeClient as discussed in Issue #59:

  • 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.

The attached binaries are:

  • RosSharp.unitypackage : complete ROS# Unity Package containing all assets of the Unity3D project
  • RosBridgeClient.dll: the build of RosBridgeClient project
  • UrdfImporter.dll: the build of UrdfImporter project