RobotLocomotion / drake

Model-based design and verification for robotics.
https://drake.mit.edu
Other
3.25k stars 1.26k forks source link

Manipulation station (cupboard, iiwas, wsg, cameras, and objects) should all specified via yaml #10022

Closed RussTedrake closed 2 years ago

RussTedrake commented 5 years ago

The manipulation station example should migrate to loading the entire configuration from sdf, with the only assumptions being that there is one IIWA model, one WSG model, and some number of cameras.

Consider also including the camera serial numbers as a tag in the sdf.

Note: Updated title to reflect the plan to use yaml instead of sdf

RussTedrake commented 5 years ago

Cc @siyuanfeng-tri

EricCousineau-TRI commented 5 years ago

From having dealt with this, I'm not sure if SDF is the correct solution unless we want to fix our resource paths and do everything through Xacro (which is inflexible since this is going to be compile-time gen, and we should avoid needing this at all during runtime). I'd say resource paths may be non-trivial because it will cause backwards-incompatible changes to both the SDF and the consuming code.

Perhaps simple YAML assembly is the right step forward in the short term, after which we should really focus on improving upon SDF or creating a better format for assembling scenes, if it's something that we want other people to use.

RussTedrake commented 5 years ago

I believe that the current plan of record for this is to port the yaml parsing from anzu into drake. @sammy-tri -- perhaps I could put this onto your plate? (priority is marked as low)

jwnimmer-tri commented 5 years ago

@sammy-tri If you like, I could start moving the visitor/archive pattern over? That seems to have stabilized by this point, even though the schemas that use it are still evolving.

jwnimmer-tri commented 5 years ago

And to clarify.. I think the YamlReadArchive is stable enough to move to Drake. I don't think we can move many specific schemas (like model directives) yet -- they are some mix of too unstable, or too poorly designed, to upstream.

EricCousineau-TRI commented 5 years ago

+1000 to Jeremy's comment

Extra peanut gallery comment, paralleling my other in #10851: There's been quite a few PRs and issues that (to me, at least) indicate that ManipulationStation should be broken apart for applications that do not fit its design (which for simple tutorial uses is absolutely great, but over-encapsulated for anything else).

I think that config files only mask this problem, and may not be the best solution.

sammy-tri commented 5 years ago

I could start moving the visitor/archive pattern over?

:+1: yeah, I think it's time to do this. We can discuss further about the specific schemas.

jwnimmer-tri commented 5 years ago

I could start moving the visitor/archive pattern over?

=> #10869

huihuaTRI commented 4 years ago

Just curious about the update on this issue. Another use case of this feature popped up in Drake while trying to simulate HSR. See slack for a brief discussion with Calder.

EDIT(eric): Scrubbed link.

jwnimmer-tri commented 3 years ago

As of #13282, the full YAML scene language ("model directives") is available in Drake. The manipulation_station has not been ported to that yet, though.

RussTedrake commented 2 years ago

This will be resolved via #14992

jwnimmer-tri commented 1 year ago

See also https://github.com/RobotLocomotion/drake/issues/19155 re: parsing SDFormat camera sensors directly.