Closed RussTedrake closed 2 years ago
Cc @siyuanfeng-tri
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.
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)
@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.
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.
+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.
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.
I could start moving the visitor/archive pattern over?
=> #10869
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.
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.
This will be resolved via #14992
See also https://github.com/RobotLocomotion/drake/issues/19155 re: parsing SDFormat camera sensors directly.
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