-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Port "model directives" scene assembly DSL #13282
Comments
FTR One thing that model directives lack (in their current edition in Anzu) is a sense of "encapsulation". For example, a model directive for a gripper can depend on a frame defined outside that model directive, making the directive invalid as a standalone (which really sucks for things like testing, etc.), and requires you to know the magical interface the directives expect. I've tried to address that in the (current draft) proposal for Model Composition in SDFormat: Relates gazebosim/sdformat#278 That all being said, the current SDFormat proposal may not be optimal (e.g. it may introduce too many layers of nesting, etc.) |
Strong agree -- the lack of encapsulation is a nasty landmine in the current model directives. |
FYI, a design discussion within Anzu yielded this design result there, which I scribe here for reference and fair warning that this design is likely coming for drake.
|
FYI @sammy-tri has requested that this migration to drake not proceed until he has finished some related work on the upstream feature (reference anzu #4963). Talk to Sammy or me for details if this is blocking you. |
FYI the code in question contains a workaround for #13624, which I am mentioning here so that github puts appropriate notifying badges on the issues. |
Recording an items from downstream:
|
* Resolves RobotLocomotion#13282 * A domain-specific language for assembling MultibodyPlant scenes from multiple SDF files. * Helpful for assembling large scenes without huge unwieldy sdf/xacro files. * A temporary accomodation until sdformat adds similar functionality. * Ported from TRI Project Anzu Authors: Eric Cousineau <[email protected]> Jeremy Nimmer <[email protected]> Grant Gould <[email protected]> Calder Phillips-Grafflin <[email protected]> Siyuan Feng <[email protected]>
* Resolves RobotLocomotion#13282 * A domain-specific language for assembling MultibodyPlant scenes from multiple SDF files. * Helpful for assembling large scenes without huge unwieldy sdf/xacro files. * A temporary accomodation until sdformat adds similar functionality. * Ported from TRI Project Anzu Authors: Eric Cousineau <[email protected]> Jeremy Nimmer <[email protected]> Grant Gould <[email protected]> Calder Phillips-Grafflin <[email protected]> Siyuan Feng <[email protected]>
* Resolves RobotLocomotion#13282 * A domain-specific language for assembling MultibodyPlant scenes from multiple SDF files. * Helpful for assembling large scenes without huge unwieldy sdf/xacro files. * A temporary accomodation until sdformat adds similar functionality. * Ported from TRI Project Anzu Authors: Eric Cousineau <[email protected]> Jeremy Nimmer <[email protected]> Grant Gould <[email protected]> Calder Phillips-Grafflin <[email protected]> Siyuan Feng <[email protected]>
* Resolves RobotLocomotion#13282 * A domain-specific language for assembling MultibodyPlant scenes from multiple SDF files. * Helpful for assembling large scenes without huge unwieldy sdf/xacro files. * A temporary accomodation until sdformat adds similar functionality. * Ported from TRI Project Anzu Authors: Eric Cousineau <[email protected]> Jeremy Nimmer <[email protected]> Grant Gould <[email protected]> Calder Phillips-Grafflin <[email protected]> Siyuan Feng <[email protected]>
* Toward RobotLocomotion#13282 * A domain-specific language for assembling MultibodyPlant scenes from multiple SDF files. * Helpful for assembling large scenes without huge unwieldy sdf/xacro files. * A temporary accomodation until sdformat adds similar functionality.
* Toward RobotLocomotion#13282 * A domain-specific language for assembling MultibodyPlant scenes from multiple SDF files. * Helpful for assembling large scenes without huge unwieldy sdf/xacro files. * A temporary accomodation until sdformat adds similar functionality. Co-authored-by: Eric Cousineau [email protected] Co-authored-by: Siyuan Feng [email protected] Co-authored-by: Grant Gould [email protected] Co-authored-by: Jeremy Nimmer [email protected] Co-authored-by: Calder Phillips-Grafflin [email protected]
* Toward RobotLocomotion#13282 * A domain-specific language for assembling MultibodyPlant scenes from multiple SDF files. * Helpful for assembling large scenes without huge unwieldy sdf/xacro files. * A temporary accomodation until sdformat adds similar functionality. This code is copied and adapted from TRI's Project Anzu. Co-authored-by: Eric Cousineau <[email protected]> Co-authored-by: Siyuan Feng <[email protected]> Co-authored-by: Grant Gould <[email protected]> Co-authored-by: Jeremy Nimmer <[email protected]> Co-authored-by: Calder Phillips-Grafflin <[email protected]>
* Toward RobotLocomotion#13282 * A domain-specific language for assembling MultibodyPlant scenes from multiple SDF files. * Helpful for assembling large scenes without huge unwieldy sdf/xacro files. * A temporary accomodation until sdformat adds similar functionality. This code is copied and adapted from TRI's Project Anzu. Co-authored-by: Eric Cousineau <[email protected]> Co-authored-by: Siyuan Feng <[email protected]> Co-authored-by: Jeremy Nimmer <[email protected]> Co-authored-by: Calder Phillips-Grafflin <[email protected]>
* Model Directives mechanism for scene assembly. * Toward #13282 * A domain-specific language for assembling MultibodyPlant scenes from multiple SDF files. * Helpful for assembling large scenes without huge unwieldy sdf/xacro files. * A temporary accomodation until sdformat adds similar functionality. This code is copied and adapted from TRI's Project Anzu. Co-authored-by: Eric Cousineau <[email protected]> Co-authored-by: Siyuan Feng <[email protected]> Co-authored-by: Jeremy Nimmer <[email protected]> Co-authored-by: Calder Phillips-Grafflin <[email protected]>
https://github.com/ggould-tri/drake/pull/new/model_directives_undev moves model directives out of dev and brings all tests to passing. Still needed:
|
* Weld error support omitted for simplicity. * Follow-up to RobotLocomotion#14038 * Completes RobotLocomotion#13282
* Weld error support omitted for simplicity. * Follow-up to RobotLocomotion#14038 * Completes RobotLocomotion#13282
* Weld error support omitted for simplicity. * Follow-up to RobotLocomotion#14038 * Completes RobotLocomotion#13282
* Weld error support omitted for simplicity. * Follow-up to RobotLocomotion#14038 * Completes RobotLocomotion#13282
This is a generalization of #10022 and largely subsumes that work.
Following #10022, TRI developed an internal yaml-based language for assembling a collection of SDF/URDF-specified entities into a scene. This was necessary to manage the potentially dozens of sdfs contributing to each of our simulations. The language supports named frames, adding sdfs at particular offsets from those frames, and arbitrary recursive inclusion. The scenario assembly layer also has hooks for injecting modeling error (which brings weld joints into the reach of stochastic scenarios #13251).
Porting this language to Drake would be (we hope) a temporary accommodation for SDF's lack of composability or an inclusion mechanism, allowing data-oriented specification of complex scenes rather than needing to do it all in python or C++. However we hope that eventually improvements in SDF would remove the need for this mechanism.
The text was updated successfully, but these errors were encountered: