Coder Social home page Coder Social logo

SdfImporter Feature Request about ros-sharp HOT 3 CLOSED

siemens avatar siemens commented on August 17, 2024 1
SdfImporter Feature Request

from ros-sharp.

Comments (3)

MartinBischoff avatar MartinBischoff commented on August 17, 2024 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.

rahuldeo2047 avatar rahuldeo2047 commented on August 17, 2024 3

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.

MartinBischoff avatar MartinBischoff commented on August 17, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.