siemens / ros-sharp

ROS# is a set of open source software libraries and tools in C# for communicating with ROS from .NET applications, in particular Unity3D
Apache License 2.0
945 stars 364 forks source link

Unity Application URDF Import at Runtime #453

Closed jckenny59 closed 2 months ago

jckenny59 commented 3 months ago

I have a question!

Here is my question:

Hello, I have a question. I am working on an augmented reality application for assisting in the review, request, and planning of robotic trajectories for complex spatial assemblies in realtime. The target platform for this application is both ios & android build platforms. The current application works by utilizing the URDF Importer and using the robots as prefab unity assets. However, the aim of the application is to work with any robot and attached end effector (for any custom placement, gripping, & robotic set up). In order to do so, we were hoping to utilize the URDF Importer at runtime from each device. However, in the current ROS# implementation the functionalities, and classes associated with the URDF Importer are only accessible from the editor.

image

This question is quite general, and I am still quite new to the usage of ROS# inside of Unity. However, would it be possible to adjust the functionalities of the URDF importer to read the robot description at runtime of the application? From my understanding, it would primarily be adjusting the URDFAssetPath to a runtime accessible location such as the Application.persistentDataPath. However, I am not sure if there is something else that I am missing or if this would even be possible?

Again, I apologize for the very general question, but I have been reviewing the Wiki, ROS Answers, and Stack Overflow. And I have not found something related to this request. Thank you very much, and I apologize for the lengthy questions.


I have a feature request!

I want to do this:

For being able to do it, I wish ROS# had the following feature:

MartinBischoff commented 3 months ago

Hi @jckenny59 ! Thanks for this question. Importing CAD Data at runtime is quite more complex than importing them in Editor mode. There exist special Unity packages which provide additional CAD-runtime functionalities e.g. this. Adding these packages to ROS# in general would impose additional restrictions and dependencies. Please feel free to make these adjustments in your fork.