Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support DAE meshes (by adding DAE loader to upstream VTK) #2941

Closed
hongkai-dai opened this issue Jul 26, 2016 · 19 comments
Closed

Support DAE meshes (by adding DAE loader to upstream VTK) #2941

hongkai-dai opened this issue Jul 26, 2016 · 19 comments
Assignees
Labels
component: geometry general Geometry infrastructure or topics that defy categorization into other geometry components priority: medium type: feature request

Comments

@hongkai-dai
Copy link
Contributor

The HSR robot comes with DAE file, would be helpful to support it, rather than converting it to obj file using meshlab

@liangfok
Copy link
Contributor

Extra credit for also supporting .stl files. 😄

@hongkai-dai hongkai-dai changed the title Support DAE mesh file in Geometry.cpp Support DAE and stl mesh file in Geometry.cpp Jul 26, 2016
@gizatt
Copy link
Contributor

gizatt commented Mar 8, 2017

Any hope of this happening in the near future? This functionality is implied to already exist by Drake documentation (see drake/docs/models.rst), which is awkward.

@Lucy-tri
Copy link
Contributor

Lucy-tri commented Mar 8, 2017

Oops, yes, just now saw that models.rst is wrong. I will fix shortly.
When this issue is fixed, please be sure to update models.html (doc/models.rst) with any changes.

@hongkai-dai
Copy link
Contributor Author

hongkai-dai commented Mar 8, 2017

I am not working on it, I will unassign myself, as I am not the expert on the geometry world.

@hongkai-dai hongkai-dai removed their assignment Mar 8, 2017
@SeanCurtis-TRI SeanCurtis-TRI self-assigned this Mar 9, 2017
@SeanCurtis-TRI
Copy link
Contributor

This looks like something that belongs in my wheelhouse. I'll put it on my plate.

@Lucy-tri
Copy link
Contributor

Note that currently there is Drake code to set any mesh filename extension to "obj" and try to open that file (in geometry.cc

string Mesh::FindFileWithObjExtension() const {
).

@jwnimmer-tri jwnimmer-tri changed the title Support DAE and stl mesh file in Geometry.cpp Support DAE and STL meshes (not just OBJ) Dec 21, 2018
@tri-ltyyu
Copy link

Still relevant. Leaving in backlog.

@SeanCurtis-TRI SeanCurtis-TRI added the component: geometry general Geometry infrastructure or topics that defy categorization into other geometry components label May 14, 2020
@SeanCurtis-TRI
Copy link
Contributor

I'm closing for now. We're up to our ears in OBJ without any plan in the forseeable future to branch out. When it's a concrete need, we can revisit this.

@jwnimmer-tri
Copy link
Collaborator

jwnimmer-tri commented Oct 21, 2020

In #14219, I started us on a path to resolve this.

The ergonomics of manually converting and vendoring third-party robotics meshes are awkward -- we need to track where they came from, licensing, and upgrades are a manual process. It's much easier if we can just refer to the *.dae file directly from the third-party hosting already in place.

We have many geometry-related mesh tools in play, mostly as a large suite of different visualizers. They all speak obj, but beyond that have mixed support for other formats. Instead of teaching them all about all formats, we'll consolidate on obj as the lingua franca, by converting other formats to obj before use. At the moment, we're doing that at compilation time, but in the future it could be at runtime.

In #14219, I added stl2obj to handle the *.stl case using VTK tools, with the PR2 as an example.

In order to support *.dae, I'd like to request that VTK add some limited support for parsing *.dae meshes as well. We definitely need the geometry and probably need materials. No lighting, cameras, animation, etc.

Here are some examples of robotics-related *.daes that we'd like to be able to convert to obj:

@jwnimmer-tri jwnimmer-tri reopened this Oct 21, 2020
@jwnimmer-tri jwnimmer-tri changed the title Support DAE and STL meshes (not just OBJ) Support DAE meshes in VTK Oct 21, 2020
@SeanCurtis-TRI SeanCurtis-TRI added unused component: geometry externals VTK, FCL, drake_visualizer, etc. and removed component: geometry general Geometry infrastructure or topics that defy categorization into other geometry components labels Oct 21, 2020
@SeanCurtis-TRI
Copy link
Contributor

@jamiesnape We'll want to spin this up.

Actions:

@jamiesnape does this seem right? Feel free to edit this checklist to account for things I've missed.

@jamiesnape
Copy link
Contributor

Yes, seems good to me.

@EricCousineau-TRI
Copy link
Contributor

EricCousineau-TRI commented Dec 7, 2020

While the above checklist seems only catered towards DAE, I'd like to expand this to STL. Jeremy's comment above leads me to believe that his request is that "DAE meshes can be loaded at runtime too", meaning it would be nice to have STL meshes also be loaded at runtime.

The solution in #14219 is build-time only (e.g. genrules that convert).

Context: https://stackoverflow.com/questions/65101327/how-to-use-ros-urdf-package-in-drake

@EricCousineau-TRI EricCousineau-TRI changed the title Support DAE meshes in VTK Support DAE/STL meshes in Drake's Perception and Illustration consumers (VTK, etc.) Dec 7, 2020
@jwnimmer-tri
Copy link
Collaborator

That should be a separate issue; please revert the edits.

@EricCousineau-TRI EricCousineau-TRI changed the title Support DAE/STL meshes in Drake's Perception and Illustration consumers (VTK, etc.) Support DAE meshes in VTK Dec 7, 2020
@EricCousineau-TRI
Copy link
Contributor

Reverted in terms of "I did step on Sean's toes b/c he owns the issue".

However, with Sean's above checklist, I disagree that this should be separate, and would like to await Sean's response on how he wants carving:
Suggested title: "Support DAE/STL meshes in Drake's Perception and Illustration consumers (VTK, etc.)"

@jwnimmer-tri
Copy link
Collaborator

My request did not imply runtime support for different file types across all of geometry. My request is only about VTK support for DAE loading, so that we can do build-time conversion. If you want to advocate for on-the-fly mesh conversion, you can do that elsewhere.

@EricCousineau-TRI
Copy link
Contributor

EricCousineau-TRI commented Dec 7, 2020

Ah. I misread your comment, then. I assumed your request meant, "I want to load DAE meshes in Drake via VTK", not meaning on-the-fly conversion, but side-stepping it entirely (e.g. RenderEngineVtk, etc., loads that mesh type).

However, Sean's follow-up does not indicate to me that the requirements are tailored for build-system conversion only. Pending that clarification from Sean, sure, I'll open up a separate issue.

@jamiesnape
Copy link
Contributor

I am reading this completely as a VTK feature request that that we are considering. Scheduling the Drake update as the last checkbox here is the rebuild of the binaries, a minor part of the administrative and technical work. Actually using the new VTK will probably spawn a different issue. Looks like we are already using the VTK STL reader. If that needs any improvement, create yet another issue.

@EricCousineau-TRI
Copy link
Contributor

OK Yeah, gotcha. In that case, I'd love it if the "build system" aspect of this could be encoded in the title.

I'll make a low-priority follow-up issue about possibly supporting other meshes at run-time (e.g. for downstream consumers); at a minimum, part of that (or this?) issue could be docs to clearly state the workflows for using OBJ meshes.

@jwnimmer-tri
Copy link
Collaborator

Closing as not planned. Adding a DAE loader to VTK is not the best technical approach to adding DAE support to Drake.

We have #19109 open now to consider the overall problem of DAE support, and we'll iterate there as the main tracking issue for DAE support moving forward.

@jwnimmer-tri jwnimmer-tri closed this as not planned Won't fix, can't repro, duplicate, stale Jul 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: geometry general Geometry infrastructure or topics that defy categorization into other geometry components priority: medium type: feature request
Projects
None yet
Development

No branches or pull requests

10 participants