Drake
Drake C++ Documentation

Detailed Description

Implements a cost of the form (p_AP - p_AQ)ᵀ C (p_AP - p_AQ), where point P is specified relative to frame A and point Q is specified relative to frame B, and the cost is evaluated in frame A.

#include <drake/multibody/inverse_kinematics/position_cost.h>

Public Member Functions

 PositionCost (const MultibodyPlant< double > *plant, const Frame< double > &frameA, const Eigen::Ref< const Eigen::Vector3d > &p_AP, const Frame< double > &frameB, const Eigen::Ref< const Eigen::Vector3d > &p_BQ, const Eigen::Ref< const Eigen::Matrix3d > &C, systems::Context< double > *plant_context)
 Constructs PositionCost object. More...
 
 PositionCost (const MultibodyPlant< AutoDiffXd > *plant, const Frame< AutoDiffXd > &frameA, const Eigen::Ref< const Eigen::Vector3d > &p_AP, const Frame< AutoDiffXd > &frameB, const Eigen::Ref< const Eigen::Vector3d > &p_BQ, const Eigen::Ref< const Eigen::Matrix3d > &C, systems::Context< AutoDiffXd > *plant_context)
 Overloaded constructor. More...
 
 ~PositionCost () override
 
Does not allow copy, move, or assignment
 PositionCost (const PositionCost &)=delete
 
PositionCostoperator= (const PositionCost &)=delete
 
 PositionCost (PositionCost &&)=delete
 
PositionCostoperator= (PositionCost &&)=delete
 
- Public Member Functions inherited from Cost
 Cost (const Cost &)=delete
 
Costoperator= (const Cost &)=delete
 
 Cost (Cost &&)=delete
 
Costoperator= (Cost &&)=delete
 
- 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...
 
 EvaluatorBase (const EvaluatorBase &)=delete
 
EvaluatorBaseoperator= (const EvaluatorBase &)=delete
 
 EvaluatorBase (EvaluatorBase &&)=delete
 
EvaluatorBaseoperator= (EvaluatorBase &&)=delete
 

Additional Inherited Members

- Protected Member Functions inherited from Cost
 Cost (int num_vars, const std::string &description="")
 Constructs a cost evaluator. More...
 
- Protected Member Functions inherited from EvaluatorBase
 EvaluatorBase (int num_outputs, int num_vars, const std::string &description="")
 Constructs a evaluator. 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)
 

Constructor & Destructor Documentation

◆ PositionCost() [1/4]

PositionCost ( const PositionCost )
delete

◆ PositionCost() [2/4]

PositionCost ( PositionCost &&  )
delete

◆ PositionCost() [3/4]

PositionCost ( const MultibodyPlant< double > *  plant,
const Frame< double > &  frameA,
const Eigen::Ref< const Eigen::Vector3d > &  p_AP,
const Frame< double > &  frameB,
const Eigen::Ref< const Eigen::Vector3d > &  p_BQ,
const Eigen::Ref< const Eigen::Matrix3d > &  C,
systems::Context< double > *  plant_context 
)

Constructs PositionCost object.

Parameters
plantThe MultibodyPlant on which the cost is implemented. plant should be alive during the lifetime of this cost.
frameAThe frame in which point P's position is measured.
p_APThe point P.
frameBThe frame in which point Q's position is measured.
p_BQThe point Q.
CA 3x3 matrix representing the cost in quadratic form.
plant_contextA context for the plant.
Exceptions
std::exceptionif plant is nullptr.
std::exceptionif plant_context is nullptr.

◆ PositionCost() [4/4]

PositionCost ( const MultibodyPlant< AutoDiffXd > *  plant,
const Frame< AutoDiffXd > &  frameA,
const Eigen::Ref< const Eigen::Vector3d > &  p_AP,
const Frame< AutoDiffXd > &  frameB,
const Eigen::Ref< const Eigen::Vector3d > &  p_BQ,
const Eigen::Ref< const Eigen::Matrix3d > &  C,
systems::Context< AutoDiffXd > *  plant_context 
)

Overloaded constructor.

Same as the constructor with the double version (using MultibodyPlant<double> and Context<double>). Except the gradient of the cost is computed from autodiff.

◆ ~PositionCost()

~PositionCost ( )
override

Member Function Documentation

◆ operator=() [1/2]

PositionCost& operator= ( const PositionCost )
delete

◆ operator=() [2/2]

PositionCost& operator= ( PositionCost &&  )
delete

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