Comments (3)
Hi @peci1 !
Thank you for reading our blog post, your interest in ROS# and for finding our work great!
Thank you also for suggesting a new SDF import feature!
We are aware of the SDF format. In our department we are using URDF files only to specify our robot models. This is the reason why we opted for a URDF Importer (in the first place).
Please note that the URDF file is made for simulation models of individual robots. It contains all relevant model parameters for rigidbody simulation models. Among others, also joint limits and friction coefficients can be specified in a URDF (http://wiki.ros.org/urdf/XML/joint).
To be honest, we are very glad that the URDF importer works so nicely in Unity and we found a Unity counterpart to (almost) all specifications can be made in an URDF.
The SDF importer specifies whole simulation scenes with optionally multiple robots in it. The sdf data format can thus be considered as a superset of the URDF data format. Though the specification of an individual robots in an SDF does not match the specification of the same robot in a URDF, many things are identical.
An SDF importer in ROS# could be considered as a complete Gazebo-Unity Scene Importer.
When thinking about implementing an SdfImporter in addition to UrdfImporter in ROS#, I noticed the following:
- The whole UrdfImporter architecture can be adopted by the SdfImporter:
- Step 1: Implement an xml file parser in a separate Visual Studio project to be used for not-necessarily-Unity applications. (The easy part).
- Step 2: Use the dll obtained in step 1 in Unity and implement C# extension methods in for interpreting the xmldata in Unity.
- A huge part of the UrdfImporter code can be re-used or shared with the SdfImporter:
- The overall link & joint tree structure of robot models seems to be identical.
- The mesh importers can directly be re-used.
- many XML elements are identical, e.g. interal and interta elements which caused me some headache to convert to a Unity InertiaTensor
- Some SDF-specific parameters are simple (e.g. the gravity value specified in can directly be written in the Physics.gravity vector). Others will become complex (possibly skysphere).
Rather than an SdfImporter, I see the biggest potential in an SdfExporter: Think about setting up a whole Gazebo Simulation Environment with the efficient Unity Editor functionalities and exporting that scene to ROS.
from ros-sharp.
Hi @MartinBischoff ,
Please allow me to share our views.
We came across this repository. We are very excited to evaluate this tool.
We understand why urdf is important. One reason we could find is that the ROS nav and similar packages expect URDF as robot description. However, one of the major limitation we came across while working with an URDF model is; we can not simulate those have chained joints. So we had to stick to sdf based models. chained joints models i.e. parallel gripper, complex suspension systems etc. Or the joints where parent and child links form a loop.
We think as the awareness for urdf limitation grow, the community might stick to sdf rather than that of URDF. Hence, the request for having an SDF importer can be a valuable library for few developers like us. I wish to +1 for the need of sdf here.
from ros-sharp.
In this commit we realized exporting URDFs from Unity.
Since we are not currently planning to further go into SDF im-/export I am closing this issue.
from ros-sharp.
Related Issues (20)
- Cache issue casue app crashed HOT 1
- encoding problem in transform urdf file from ros to unity
- How do you get your desired urdf to be published as robot_description to the ROS parameter server? HOT 1
- Unsubscribe and re-subscribe to different joint state topics at runtime HOT 2
- Realtime subscribing problem on Ubuntu HOT 1
- The problem of not being able to recognize tabs at MessageGeneration.MessageTokenizer HOT 1
- Is MoveBaseClient in rosc++ implemented here? HOT 1
- Unable to transfer Turtlebot3 URDF from in Unity3D HOT 2
- LaserScanPublisher not giving output HOT 2
- CameraImagePublisher and CameraImageManager HOT 1
- Trouble setting up ros-sharp for unity on Ubuntu
- Received a message without an op. HOT 2
- Use of additional ROS Packages HOT 1
- potential concurrency (multithreading) issues HOT 7
- Subscribe to topic by specifying the Type as a string
- Default Siemens security policy
- Having trouble with step "2.3 Gazebo Simulation Setup" / Turtlebot3 not moving in GAZEBO and missing some nodes in RQT GRAPH HOT 1
- Many calls to unsubscribe, subscribe cause Web Socket Net to stop receiving
- I cannot build the Unity Mixed Reality Project after adding ROS# HOT 15
- Unity Application URDF Import at Runtime HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ros-sharp.