Skip to content

Releases: siemens/ros-sharp

ROS# Version 2.2.2

Choose a tag to compare

@memrecakal memrecakal released this 22 Apr 18:24

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.2] - 22.04.2026

Security (file_server)

  • Path validation: Block path-traversal (. / ..) and enforce package:// addresses.
  • Extension whitelist: Only allow safe extensions (e.g. .urdf, .stl, .png, .yaml, .dae, .obj, .mtl, etc.).
  • Canonical checks: Use canonical/weakly_canonical comparisons to ensure target stays inside the package share directory.

Added (file_server)

  • Parameter control: Disable saving and overwriting by default.

    • allow_save: enables file_server/save_file service (default: false).
    • allow_overwrite: allows overwriting existing files (default: false).
  • C++17 support for stdc++fs (ROS1/file_server)

  • ROS2 Jazzy support w/ ament_index_cpp (ROS2/file_server, thank you @lreiher! (PR #489))

Removed (file_server)

  • Auto package generation: Remove generate_ros_package and the old recursive create_directories; directory creation is now explicit and permissioned via std::filesystem::create_directories.

ROS# Version 2.2.1

Choose a tag to compare

@memrecakal memrecakal released this 23 Jul 15:47
ea80541

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

Choose a tag to compare

@memrecakal memrecakal released this 23 Jul 15:38
a67ee7d

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

Choose a tag to compare

@memrecakal memrecakal released this 02 Jun 11:00
a71cb5e

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

Choose a tag to compare

@memrecakal memrecakal released this 20 Jan 17:58
a8c5e50

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

Choose a tag to compare

@memrecakal memrecakal released this 10 Oct 14:04
fa4003b

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

Choose a tag to compare

@MartinBischoff MartinBischoff released this 01 Feb 10:00
  • updating to Unity Version 2019.4.18f1
  • multiple minor fixes, see commit history for details

ROS# Version 1.6.0

Choose a tag to compare

@MartinBischoff MartinBischoff released this 20 Dec 14:54

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

Choose a tag to compare

@MartinBischoff MartinBischoff released this 28 Jun 13:55

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

Choose a tag to compare

@MartinBischoff MartinBischoff released this 20 Dec 09:40

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