Releases: siemens/ros-sharp
ROS# Version 2.2.1
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
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
.msgfiles. For example:string full_name "John Doe"int32[] samples [-200, -100, 0, 100, 200]int32[<=5] up_to_five_integers_arraystring<=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 additionalJsonProperty. - Note: Bounded strings in bounded variable-size arrays are not supported (
string<=10[<=5] up_to_five_strings_up_to_ten_characters_eachfor example). These will be generated as standard string arrays.
- Support for default values, bounded variable-size arrays and strings in ROS2
- 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()andTokenize()have changed.Parse()andTokenize()have the same definition and functionality, and are backwards compatible. MessageTokenizer.csnow processes messages line by line using regular expressions instead of character by character.
- All API calls below
- 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
CodeDomProviderbased identifier validation is no longer supported.
ROS# Version 2.1.1
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
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.
- Across key files such as ActionAutoGen.cs, FibonacciActionClient.cs, and FibonacciActionServer.cs, namespaces were updated to
-
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.
- In ActionFeedback.cs, ActionResult.cs, and ActionGoal.cs, (
-
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
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
- updating to Unity Version 2019.4.18f1
- multiple minor fixes, see commit history for details
ROS# Version 1.6.0
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
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 itemRosBridgeClient > 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 withrosbridge_server.
Make sure to activatebson_only_modewhen launchingros_bridge_serveras explained here.
The attached binaries are:
RosSharp.unitypackage: complete ROS# Unity Package containing all assets of the Unity3D projectRosBridgeClient.dll: the build of RosBridgeClient projectUrdf.dll: the build of Urdf project
ROS# Version 1.4.0
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 projectRosBridgeClient.dll: the build of RosBridgeClient projectUrdf.dll: the build of Urdf project
ROS# Version 1.3.0
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 projectRosBridgeClient.dll: the build of RosBridgeClient projectUrdfImporter.dll: the build of UrdfImporter project