gazebosim / gazebo-classic

Gazebo classic. For the latest version, see https://github.com/gazebosim/gz-sim
http://classic.gazebosim.org/
Other
1.15k stars 478 forks source link

Analysis of external mesh loading libraries and comparing with the existing approach #3209

Open onurtore opened 2 years ago

onurtore commented 2 years ago

Gazebo's mesh loading library doesn't support glTF2 and FBX mesh loaders. There are two ways to extend the capabilities of the Gazebo's mesh loading system, (A) Using an external open-source library or (B) Writing glTF2 and FBX mesh loaders consistent with the current approach.

An initial analysis is required to decide which approach is better. I am planning to generate such analysis in the next couple of days, so any idea is welcome. The main aspect of the analysis will be around:

  1. Maturity Analysis This section covers external library’s supported file types, and development history.
  2. Complexity Analysis This section mainly covers how hard it is to understand the design structure of candidate libraries.
  3. Implementation/Integration & Testing Analysis This section covers the required implementation and integration steps for each candidate library. Additionally covers an analysis of both internal and external possible testing scenarios for unit and integration tests.
onurtore commented 2 years ago

I created an additional document for this analysis in here. I will start my analysis with assimp.

onurtore commented 2 years ago

Is it possible to get any feedback for this approach @ahcorde, @iche033?

iche033 commented 2 years ago

hi, thanks for looking into this. Since the doc mentions GSOC, we'll be targeting this functionality to the Ignition / Gazebo simulator. The mesh loaders have moved to one its libraries here: https://github.com/ignitionrobotics/ign-common/tree/ign-common4/graphics/src

I think you're on the right direction with your analysis. assimp is promising if it has good support for the 2 formats already. If we're to writer the loader ourselves, I think glTF2 importer is easier to write as its a open format but there may be more work with fbx as there is a text and also a binary format.

onurtore commented 2 years ago

Thanks for valuable feedback, I will update my documentations and software stack.

onurtore commented 2 years ago

This issue moved to here: https://github.com/ignitionrobotics/ign-common/issues/344