RosSharpMessageGeneration 2.0.0

Suggested Alternatives

Siemens.RosSharp.MessageGeneration

Additional Details

Changed namespace

dotnet add package RosSharpMessageGeneration --version 2.0.0                
NuGet\Install-Package RosSharpMessageGeneration -Version 2.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RosSharpMessageGeneration" Version="2.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RosSharpMessageGeneration --version 2.0.0                
#r "nuget: RosSharpMessageGeneration, 2.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RosSharpMessageGeneration as a Cake Addin
#addin nuget:?package=RosSharpMessageGeneration&version=2.0.0

// Install RosSharpMessageGeneration as a Cake Tool
#tool nuget:?package=RosSharpMessageGeneration&version=2.0.0                

<img src="https://github.com/siemens/ros-sharp/wiki/img/Home_RosSharpLogo.png" width="480" alt ="ROS#"/>

Overview

ROS# is a set of open-source software libraries and tools in C# for communicating with ROS from .NET applications, in particular Unity. With ROS#, developers can effortlessly create .NET applications that communicate with ROS nodes, subscribe to and publish topics, handle actions and services, and interact with ROS messages. This enables the development of robotics applications, simulations, and automation systems within the .NET ecosystem.

<div style="text-align: center;"> <img src="https://github.com/siemens/ros-sharp/wiki/img/Home_RosSharp_arch.png" alt="ROS# Architecture" style="padding-top: 5px; padding-bottom: 5px; width: 100%; height: 100%;"> </div>

Here are some showcases illustrating what can be done with ROS#. The community provided various other application examples for ROS# here.

<div style="text-align: center;"> <img src="https://github.com/siemens/ros-sharp/wiki/img/Home_RosSharp_showcase.png" alt="ROS# Showcase" style="padding-top: 5px; padding-bottom: 5px; width: 100%; height: 100%;"> </div>

Installation

ROS# can be used with Unity Engine and/or with any compatible .NET project, see platform support and external dependencies.

  • For Unity Integration: Unity Package Manager

    1. In Unity Package Manager, click the "Add package from git URL" option at the top left corner.
    2. Paste the following URL: https://github.com/siemens/ros-sharp.git?path=/com.siemens.ros-sharp <img src="https://github.com/siemens/ros-sharp/wiki/img/User_Inst_InstallationROS_sharp_From_GitCombined.png" alt="ROS# Package Install from Git" style="padding-top: 10px; padding-bottom: 0px; width: 90%; height: 100%;">

For more installation options, detailed instractions, and getting started see wiki: Installing and Configuring ROS# for Unity.

    1. Head to the NuGet page.
    2. Install the required packages individually from NuGet.

For more installation options, detailed instractions, and getting started see wiki: Installing and Configuring ROS# for .NET.

Platform Support

  • The ROS# dependencies require .NET 8 and Visual Studio 2022 or higher.
  • The Unity package has been developed with Unity Version 2022.3.17f1 (LTS) and should also be compatible with older versions.

For Unity versions below 2022.3: See wiki.

Repository Structure

Below is an overview of the main directories and their purposes:

  • com.siemens.ros-sharp/: Contains the custom Unity UPM package for integrating ROS# into Unity projects. The package includes the whole ROS# .NET solution, as well as Unity specific scripts, external dependencies, and samples. This folder follows a planned layout as Unity recommends.

    • Runtime/: Core ROS# .NET scripts and components for Unity integration.
    • Editor/: Unity specific editor scripts for mainly UI extensions.
    • Plugins/: External dependencies with specific versions.
    • Samples~/: Example samples that need to be imported through the package manager window. For more info about example scenes and reference code, see wiki.
  • Libraries/: .NET solution containing the core ROS# libraries and tools for communicating with ROS.

    • RosBridgeClient/: Core ROS# .NET library for communicating with ROS via websockets.
    • MessageGeneration/: Tools for generating C# classes from ROS message definitions, including messages, actions, and services with both ROS1/2 support.
    • Urdf/: Library for parsing URDF files and creating Unity GameObjects.
    • PostBuildEvents/: OS specific post build scripts. Please see post build events for more information.
  • ROS Packages/: ROS packages that are used by ROS# for tutorial, testing and demonstration purposes.

Further Info


© Siemens AG, 2017-2024

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 95 10/30/2024 2.0.0 is deprecated.
1.7.0 664 2/6/2021