Stop using canonicalize_graph! in MechanismState ctor (and write_urdf). #525
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using
canonicalize_graph!
in theMechanismState
constructor was necessarybecause removing a tree joint can make it so that the indices of the
tree joints are no longer ordered and contiguous. However, it made it so
that constructing
MechanismState
s was not thread-safe. In addition, itwas perhaps an unexpected (although harmless) behavior to have
the
Mechanism
be modified in any way uponMechanismState
construction orin
write_urdf
.Instead, just canonicalize the graph in
remove_joint!
andremove_fixed_tree_joints!
.This is covered by the
reattach
test set.Also some random minor changes in related code that I should have separate out, but OK.