Skip to content

Commit

Permalink
Rigid body plant timestepping. (RobotLocomotion#7545)
Browse files Browse the repository at this point in the history
  • Loading branch information
edrumwri authored Dec 7, 2017
1 parent 4836d80 commit 0d82aa2
Show file tree
Hide file tree
Showing 4 changed files with 644 additions and 38 deletions.
2 changes: 2 additions & 0 deletions drake/multibody/rigid_body_plant/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ drake_cc_library(
":compliant_contact_model",
"//drake/common:copyable_unique_ptr",
"//drake/common:essential",
"//drake/math:orthonormal_basis",
"//drake/multibody:rigid_body_tree",
"//drake/multibody/constraint:constraint_solver",
"//drake/solvers:mathematical_program",
"//drake/systems/framework",
],
Expand Down
28 changes: 14 additions & 14 deletions drake/multibody/rigid_body_plant/compliant_contact_model.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,20 @@ class CompliantContactModel {
/// aborts. (See CompliantContactParameters for details on valid ranges.)
void set_model_parameters(const CompliantContactModelParameters& values);

/// Given two collision elements (with their own defined compliant material
/// properties, computes the _derived_ parameters for the _contact_. Returns
/// the portion of the squish attributable to Element `a` (sₐ). Element `b`'s
/// squish factor is simply 1 - sₐ. See contact_model_doxygen.h for details.
/// @param[in] a The first element in the contact.
/// @param[in] b The second element in the contact.
/// @param[out] parameters The net _contact_ parameters.
/// @retval sₐ The "squish" factor of Element `a` -- the fraction of the full
/// penetration deformation that `a` experiences.
double CalcContactParameters(
const multibody::collision::Element& a,
const multibody::collision::Element& b,
CompliantMaterial* parameters) const;

private:
// Computes the friction coefficient based on the relative tangential
// *speed* of the contact point on A relative to B (expressed in B), v_BAc.
Expand All @@ -75,20 +89,6 @@ class CompliantContactModel {
// range [0, 1] where the f''(0) = f''(1) = f'(0) = f'(1) = 0.
static T step5(const T& x);

// Given two collision elements (with their own defined compliant material
// properties, computes the _derived_ parameters for the _contact_. Returns
// The portion of the squish attributable to Element `a` (sₐ). Element `b`'s
// squish factor is simply 1 - sₐ. See contact_model_doxygen.h for details.
// @param[in] a The first element in the contact.
// @param[in] b The second element in the contact.
// @param[out] parameters The net _contact_ parameters.
// @retval sₐ The "squish" factor of Element `a` -- the fraction of the full
// penetration deformation that `a` experiences.
double CalcContactParameters(
const multibody::collision::Element& a,
const multibody::collision::Element& b,
CompliantMaterial* parameters) const;

// Note: this is the *inverse* of the v_stiction_tolerance parameter to
// optimize for the division.
double inv_v_stiction_tolerance_{
Expand Down
Loading

0 comments on commit 0d82aa2

Please sign in to comment.