Skip to content

Commit 5b020da

Browse files
committed
Merge fixup. Note saved original in save.
1 parent 2e908bd commit 5b020da

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

multibody/tree/multibody_tree.cc

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -792,8 +792,14 @@ void MultibodyTree<T>::CreateJointImplementations() {
792792
Mobilizer<T>* mobilizer = owned_mobilizer.get();
793793
mobilizer->set_model_instance(joint.model_instance());
794794
mobilizer->set_is_ephemeral(joint.is_ephemeral());
795-
// TODO(sherm1) Merge issue: do we need this?
796-
// mobilizer->set_is_floating_base_mobilizer(is_floating_base_mobilizer);
795+
796+
// Mark floating base bodies as needed. Note the strict definition:
797+
// (1) the inboard joint must have six degrees of freedom, and
798+
// (2) that joint must be ephemeral (added automatically).
799+
bool is_floating_base_mobilizer =
800+
mobilizer->has_six_dofs() && mobilizer->is_ephemeral();
801+
mobilizer->set_is_floating_base_mobilizer(is_floating_base_mobilizer);
802+
797803
AddMobilizer(std::move(owned_mobilizer)); // ownership->tree
798804
DRAKE_DEMAND(mobilizer->index() == mobod.index());
799805
// Record the joint to mobilizer map.

0 commit comments

Comments
 (0)