Drake
Drake C++ Documentation
ContactWrenchEvaluator Class Reference

#include <drake/multibody/optimization/contact_wrench_evaluator.h>

Public Member Functions

int num_lambda () const
 Returns the size of lambda. More...
 
const SortedPair< geometry::GeometryId > & geometry_id_pair () const
 Returns the pair of geometry IDs. More...
 
const MultibodyPlant< AutoDiffXd > & plant () const
 
const systems::Context< AutoDiffXd > & context () const
 Getter for const context. More...
 
systems::Context< AutoDiffXd > & get_mutable_context ()
 Getter for the mutable context. More...
 
Does not allow copy, move, or assignment
 ContactWrenchEvaluator (const ContactWrenchEvaluator &)=delete
 
ContactWrenchEvaluatoroperator= (const ContactWrenchEvaluator &)=delete
 
 ContactWrenchEvaluator (ContactWrenchEvaluator &&)=delete
 
ContactWrenchEvaluatoroperator= (ContactWrenchEvaluator &&)=delete
 
compose variable values.

Composes the value of the variable x in Eval(x, &y) function, based on the context and value of lambda, x = [q, λ].

Precondition
q has size plant.num_positions() x 1
lambda has size num_lambda_ x 1.
template<typename T , typename Derived >
std::enable_if_t< std::is_same_v< T, typename Derived::Scalar >, VectorX< T > > ComposeVariableValues (const systems::Context< T > &context, const Derived &lambda_value) const
 Overloads ComposeVariableValues. More...
 
template<typename DerivedQ , typename DerivedLambda >
std::enable_if_t< std::is_same_v< typename DerivedQ::Scalar, typename DerivedLambda::Scalar >, VectorX< typename DerivedQ::Scalar > > ComposeVariableValues (const Eigen::MatrixBase< DerivedQ > &q_value, const Eigen::MatrixBase< DerivedLambda > &lambda_value) const
 Overloads ComposeVariableValues with q, λ as the input instead of context, λ. More...
 
- Public Member Functions inherited from EvaluatorBase
virtual ~EvaluatorBase ()
 
void Eval (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::VectorXd *y) const
 Evaluates the expression. More...
 
void Eval (const Eigen::Ref< const AutoDiffVecXd > &x, AutoDiffVecXd *y) const
 Evaluates the expression. More...
 
void Eval (const Eigen::Ref< const VectorX< symbolic::Variable >> &x, VectorX< symbolic::Expression > *y) const
 Evaluates the expression. More...
 
void set_description (const std::string &description)
 Set a human-friendly description for the evaluator. More...
 
const std::string & get_description () const
 Getter for a human-friendly description for the evaluator. More...
 
std::ostream & Display (std::ostream &os, const VectorX< symbolic::Variable > &vars) const
 Formats this evaluator into the given stream using vars for the bound decision variable names. More...
 
std::ostream & Display (std::ostream &os) const
 Formats this evaluator into the given stream, without displaying the decision variables it is bound to. More...
 
std::string ToLatex (const VectorX< symbolic::Variable > &vars, int precision=3) const
 Returns a LaTeX string describing this evaluator. More...
 
int num_vars () const
 Getter for the number of variables, namely the number of rows in x, as used in Eval(x, y). More...
 
int num_outputs () const
 Getter for the number of outputs, namely the number of rows in y, as used in Eval(x, y). More...
 
void SetGradientSparsityPattern (const std::vector< std::pair< int, int >> &gradient_sparsity_pattern)
 Set the sparsity pattern of the gradient matrix ∂y/∂x (the gradient of y value in Eval, w.r.t x in Eval) . More...
 
const std::optional< std::vector< std::pair< int, int > > > & gradient_sparsity_pattern () const
 Returns the vector of (row_index, col_index) that contains all the entries in the gradient of Eval function (∂y/∂x) whose value could be non-zero, namely if ∂yᵢ/∂xⱼ could be non-zero, then the pair (i, j) is in gradient_sparsity_pattern. More...
 
bool is_thread_safe () const
 Returns whether it is safe to call Eval in parallel. More...
 
 EvaluatorBase (const EvaluatorBase &)=delete
 
EvaluatorBaseoperator= (const EvaluatorBase &)=delete
 
 EvaluatorBase (EvaluatorBase &&)=delete
 
EvaluatorBaseoperator= (EvaluatorBase &&)=delete
 

Protected Member Functions

 ContactWrenchEvaluator (const MultibodyPlant< AutoDiffXd > *plant, systems::Context< AutoDiffXd > *context, int num_lambda, const SortedPair< geometry::GeometryId > &geometry_id_pair, const std::string &description)
 Each derived class should call this constructor. More...
 
template<typename Derived >
Eigen::VectorBlock< const Derived > q (const Derived &x) const
 Extract the generalized configuration q from x (x is used in Eval(x, &y)). More...
 
template<typename Derived >
Eigen::VectorBlock< const Derived > lambda (const Derived &x) const
 Extract lambda from x (x is used in Eval(x, &y)). More...
 
- Protected Member Functions inherited from EvaluatorBase
 EvaluatorBase (int num_outputs, int num_vars, const std::string &description="")
 Constructs a evaluator. More...
 
virtual void DoEval (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::VectorXd *y) const =0
 Implements expression evaluation for scalar type double. More...
 
virtual void DoEval (const Eigen::Ref< const AutoDiffVecXd > &x, AutoDiffVecXd *y) const =0
 Implements expression evaluation for scalar type AutoDiffXd. More...
 
virtual void DoEval (const Eigen::Ref< const VectorX< symbolic::Variable >> &x, VectorX< symbolic::Expression > *y) const =0
 Implements expression evaluation for scalar type symbolic::Expression. More...
 
virtual std::ostream & DoDisplay (std::ostream &os, const VectorX< symbolic::Variable > &vars) const
 NVI implementation of Display. More...
 
virtual std::string DoToLatex (const VectorX< symbolic::Variable > &vars, int precision) const
 
void set_num_outputs (int num_outputs)
 
void set_is_thread_safe (bool is_thread_safe)
 

Constructor & Destructor Documentation

◆ ContactWrenchEvaluator() [1/3]

◆ ContactWrenchEvaluator() [2/3]

◆ ContactWrenchEvaluator() [3/3]

ContactWrenchEvaluator ( const MultibodyPlant< AutoDiffXd > *  plant,
systems::Context< AutoDiffXd > *  context,
int  num_lambda,
const SortedPair< geometry::GeometryId > &  geometry_id_pair,
const std::string &  description 
)
protected

Each derived class should call this constructor.

Parameters
plantThe MultibodyPlant on which the contact wrench is computed. The lifetime of plant should outlive this object.
contextThe context of plant. The lifetime of context should outlive this object.
num_lambdaThe size of lambda.
geometry_id_pairThe pair of geometries for which the contact wrench is computed. Notice that the order of the geometries in the pair should match with that in SceneGraphInspector::GetCollisionCandidates().

Member Function Documentation

◆ ComposeVariableValues() [1/2]

std::enable_if_t<std::is_same_v<T, typename Derived::Scalar>, VectorX<T> > ComposeVariableValues ( const systems::Context< T > &  context,
const Derived &  lambda_value 
) const

◆ ComposeVariableValues() [2/2]

std::enable_if_t<std::is_same_v<typename DerivedQ::Scalar, typename DerivedLambda::Scalar>, VectorX<typename DerivedQ::Scalar> > ComposeVariableValues ( const Eigen::MatrixBase< DerivedQ > &  q_value,
const Eigen::MatrixBase< DerivedLambda > &  lambda_value 
) const

Overloads ComposeVariableValues with q, λ as the input instead of context, λ.

◆ context()

const systems::Context<AutoDiffXd>& context ( ) const

Getter for const context.

◆ geometry_id_pair()

const SortedPair<geometry::GeometryId>& geometry_id_pair ( ) const

Returns the pair of geometry IDs.

◆ get_mutable_context()

systems::Context<AutoDiffXd>& get_mutable_context ( )

Getter for the mutable context.

◆ lambda()

Eigen::VectorBlock<const Derived> lambda ( const Derived &  x) const
protected

Extract lambda from x (x is used in Eval(x, &y)).

◆ num_lambda()

int num_lambda ( ) const

Returns the size of lambda.

◆ operator=() [1/2]

ContactWrenchEvaluator& operator= ( ContactWrenchEvaluator &&  )
delete

◆ operator=() [2/2]

ContactWrenchEvaluator& operator= ( const ContactWrenchEvaluator )
delete

◆ plant()

const MultibodyPlant<AutoDiffXd>& plant ( ) const

◆ q()

Eigen::VectorBlock<const Derived> q ( const Derived &  x) const
protected

Extract the generalized configuration q from x (x is used in Eval(x, &y)).


The documentation for this class was generated from the following file: