ROS#资讯汇总(ROS、C#、.NET和Unity3D)

2022-04-29 16:53:39 浏览数 (1)

ROS#是C#中的一组软件库和工具,用于.NET应用程序(尤其是Unity)与ROS进行通信。

之前博文涉及windows系统与ROS应用可参考(ROS2有windows版本):链接1、链接2。

本文是西门子公司的Martin Bischoff客座博客文章。 感谢Martin的更新,感谢西门子对ROS-Industrial Consortium的支持!

ROS#包括如下内容:

  • RosBridgeClient, a .NET API to ROS using rosbridge_suite on the ROS side.
  • UrdfImporter, a URDF file parser for .NET applications.
  • RosSharp.unitypackage, a Unity Asset package providing Unity-specific extensions to RosBridgeClient and UrdfImporter.

----

ROS#可以实现功能有:

1. Communicate通过Windows应用程序与ROS进行通讯:订阅和发布主题,调用和发布服务,设置和获取参数以及使用rosbridge套件提供的所有功能。

2. Import将机器人的URDF模型作为GameObject导入到Unity3D中。 使用robot_description服务直接从ROS系统导入数据,或通过复制到Unity资源文件夹中的URDF文件导入数据。

3. Control通过Unity3D控制真实机器人

4. Visualize在Unity3D中可视化机器人的实际状态和传感器数据

5. Simulate:使用URDF提供的数据在Unity3D中实现机器人仿真(这里不使用与ROS的连接的方式)。 除了网格和纹理的可视化组件之外,还可以导入了刚体的关节参数、质量、CoMs、惯性和碰撞等规格指标。

6. And much more:更多功能!ROS#可用于各种应用,如机器学习、人机交互、远程监控、虚拟原型、机器人操作、游戏和娱乐等!

其他附加资料(英文):

Got Interested?

Please do not hesitate to try it out yourself and to get in touch with us! We are very interested in your feedback, applications, improvement suggestions, and contributions!

ROS# Development Team (ros-sharp.ct@siemens.com), Siemens AG, Corporate Technology, 2017

----

ROS# is a set of open source software libraries and tools in C# for communicating with ROS from .NET applications, in particularUnity3D.

Find some examples what you can do with ROS# here.

Contents:

RosBridgeClient

... provides a .NET API to ROS via rosbridge_suite.

UrdfImporter

... provides a URDF file parser for .NET applications.

ROS

... contains code for ROS nodes and ROS launch files which are useful to RosBridgeClient and/or UrdfImporter.

Unity3D

... is a Unity3D reference project providing Unity3D-specifc extensions to

  • RosBridgeClient
  • UrdfImporter

Release

... contains RosSharp.unitypackage the latest package of ROS# assets from the Unity3D project.

Tutorials

... contains Unity3D tutorial projects described described in the Wiki.

Licensing:

ROS# is open source under the Apache 2.0 license and is free for commercial use.

External Dependencies:

RosBridgeClient uses the following 3rd party libraries:

  • websocket-sharp.dll from websocket-sharp provided under MIT License.
  • NewtonSoft.Json.dll from NewtonSoft Json.Net provided under MIT License.

UrdfImporter uses the following 3rd party libraries:

  • MathNet.Numerics.dll from Math.NET Numerics provided under MIT License.
  • System.Threading.dll from TaskParallelLibrary for .NET 3.5 provided under MS-EULA License.

.NET Standard 2.0:

Both RosBridgeClient and UrdfImporter are running on .NET Framework 3.5 as this is the .NET platform currently supported by official Unity3D releases.

For Non-Unity3D-Applications blommers kindly provides a .NET Standard 2.0 version of UrdfImporter.

Special Thanks:

  • Rahul Warrier for adjusting the code to enable its open source publication.
  • Verena Roehrl for providing the Wiki pages and the tutorial projects.
  • Karl Henkel for providing the reference for the Unity3D STL mesh importer used in this project.
  • Jeremy Fix for providing the CameraImagePublisher and VelocitySubscriber
  • Interested in contributing as well?

Further Info:

  • Read the Wiki.
  • Contact the Project Team.
----

© Siemens AG, 2017

Author: Dr. Martin Bischoff (martin.bischoff@siemens.com)

----

User Documentation

1. Installation and Configuration

1.1 Unity3D on Windows

1.2 Ubuntu on Oracle VM

1.3 ROS on Ubuntu

1.4 Robot Setup and Configuration

1.4.1 NextageOpen
1.4.2 TurtleBot2

2. Application examples without ROS connection

2.1 Importing a URDF on Windows

2.2 Simulating a robot model in Unity3D

3. Application examples with ROS connection

3.1 Importing a URDF from ROS

3.2 Animating a robot model in Unity3D via ROS

3.2.1 Animating a robot model using /joint_states
3.2.2. Animating a robot model using /odom

Developer Documentation

  • Hardware Independence
  • License Headers
  • Namespace Organization
  • Unity3D Asset Folder Organization
  • Unity3D Class Naming Guidelines

General Information

  • Application Showcases
  • Publications

----

0 人点赞