-
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
[multibody] Working PR for new Multibody graphing code #20225
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This was referenced Sep 21, 2023
sherm1
force-pushed
the
mbp_topology_shuffle
branch
from
September 25, 2023 18:58
81869e4
to
87bf89a
Compare
sherm1
force-pushed
the
mbp_topology_shuffle
branch
2 times, most recently
from
October 3, 2023 23:46
509593d
to
da324d4
Compare
sherm1
force-pushed
the
mbp_topology_shuffle
branch
2 times, most recently
from
October 5, 2023 01:00
29487ff
to
8379db1
Compare
@drake-jenkins-bot retest this please. |
1 similar comment
@drake-jenkins-bot retest this please. |
sherm1
force-pushed
the
mbp_topology_shuffle
branch
7 times, most recently
from
October 12, 2023 19:11
5360249
to
8f8e43f
Compare
sherm1
force-pushed
the
mbp_topology_shuffle
branch
from
October 17, 2023 01:04
82846ef
to
ff16265
Compare
sherm1
force-pushed
the
mbp_topology_shuffle
branch
5 times, most recently
from
October 24, 2023 21:25
b3bd789
to
e3e2057
Compare
sherm1
force-pushed
the
mbp_topology_shuffle
branch
4 times, most recently
from
October 26, 2023 21:54
ab0fca5
to
5e529c1
Compare
sherm1
force-pushed
the
mbp_topology_shuffle
branch
11 times, most recently
from
August 8, 2024 22:57
8916e6b
to
5e4c4a7
Compare
sherm1
force-pushed
the
mbp_topology_shuffle
branch
4 times, most recently
from
August 14, 2024 20:50
9977d62
to
776b654
Compare
sherm1
force-pushed
the
mbp_topology_shuffle
branch
5 times, most recently
from
August 19, 2024 21:44
47955b9
to
b52f076
Compare
sherm1
force-pushed
the
mbp_topology_shuffle
branch
2 times, most recently
from
August 19, 2024 22:53
2ace167
to
7c9ea16
Compare
Modified MultibodyTree to replace its internal topology with SpanningForest. Harmonized BodyNode & Mobilizer with Mobilized Body numbering.
sherm1
force-pushed
the
mbp_topology_shuffle
branch
from
August 20, 2024 00:01
7c9ea16
to
556cb16
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
[Draft] This is the complete set of changes introducing new topology-building code for MultibodyPlant. This is too big for review so serves as a reference for the chain of smaller PRs needed to get this in.
Issues addressed
#9566 #9939 #11266 #11307 #12789 #17429 #18200 #18442 #18803 #19034
Discussion
Users specify models (e.g. in sdf or urdf) with links and joints, forming a general directed graph. To work in internal coordinates, we have to model that graph with a spanning forest comprised of bodies, mobilizers, and constraints. This can (and should) be viewed as a graph transformation, independent of the multibody computations to be performed later. Currently in MultibodyPlant graph operations are sprinkled around the code and completed in various phases of the computation. The main idea here is to consolidate that into one place and time so that everything we need to build an optimal computational model is present already at finalize. By making the graph->forest construction explicit, we are also able to upgrade its functionality significantly:
The separation of concerns here makes it easy to add more graphing capabilities, such as editing the graph and quickly recomputing the resulting forest.
This change is a precursor to reworking the computational internals into a high-performance "multibody kernel" which can be constructed directly from the spanning forest. This PR only goes as far as re-expressing the existing functionality using the new graph and forest. The most significant internal change is that BodyNode and Mobilizer can now be viewed as a single mobilized body (BodyNode, Mobilizer) with the same index as the spanning forest's mobilized bodies.
Some details
Note to reviewers
During the PR train leading up to this I'm using Doxygen comments
/**
despite the fact that this is currently just internal so Doxygen will not process them. The intention is to make the API public once it stabilizes and proves its utility, and developing with the Doxygen comments on helps with proper wording and syntax. When the final PR in the train goes in the comments will be changed to/*
and then changed back only if we do decide to make the API public.This change is