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

Urdf import, export and workcell editor fixes #177

Merged
merged 142 commits into from
Jan 23, 2024
Merged

Urdf import, export and workcell editor fixes #177

merged 142 commits into from
Jan 23, 2024

Conversation

luca-della-vedova
Copy link
Member

@luca-della-vedova luca-della-vedova commented Aug 31, 2023

New feature implementation

Implemented feature

Based on #155 by @audrow, extends urdf export to also export joint and inertial data, as well as add a urdf import feature to convert URDF into a Workcell object. Having both allows adding an integration test that performs a roundtrip conversion in rmf_site_format and makes sure that the files match.
I am also refining various parts of the workcell editor mode and fix issues I found along the way. Will change it to in review and add a more detailed description of the changes once it's ready.

Implementation description

  • Removed rapier dependency, it was meant to be used for physics simulation but it was effectively never used, we can reintroduce it when needed. Saves us some compile time and runtime overhead.
  • Fix mesh primitives that were not selectable.
  • Add a system that "explodes" SDFs imported in the workcell editor mode to unpack all the visuals and collisions contained in them.
  • Fix parenthood of models that was not set properly.
  • Add joint components / data to the Workcell structure, including conversion back and forth from urdf.
  • Add a basic joint inspection widget, as well as a button to create a joint when two frames are connected directly in the hierarchy without a joint inbetween.
  • Update the mesh primitive inspector widget to only have read-only labels, until we implement systems to update primitives based on sizes / type.
  • Add a keybinding (Ctrl-E) to export to URDF. For the moment I didn't add a menu button since that would have needed adding a state dependent logic to the top menu bar.
  • Add inertial data to the Workcell format, including saving and loading to a site. No inspector is implemented yet though.
  • Added a temporary workaround system that replaces NameInSite components for NameInWorkcell if the spawned object is a child of a Workcell. This will probably be removed in the future by having a NameInGroup component that unifies the two.
  • Add support for opening urdf files through the Open File window.

audrow and others added 30 commits July 27, 2023 18:46
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
luca-della-vedova and others added 20 commits November 7, 2023 11:08
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Audrow Nash <audrow@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
@luca-della-vedova
Copy link
Member Author

There are a few rough edges here and there but this is "stable enough" that it should be pretty much OK.

Copy link
Collaborator

@mxgrey mxgrey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this has been baking for quite a while and much of the implementation details are subject to change as we obtain better foundational tools in Bevy, so I'm only doing a cursory review to unblock this.

I only noticed a few things that seem off, and they're relatively minor, so I've opened issues #198 #199 #200.

@mxgrey mxgrey merged commit e852b34 into main Jan 23, 2024
5 checks passed
@mxgrey mxgrey deleted the luca/urdf_import branch January 23, 2024 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants