Drake
Constraint Class Reference

A constraint is a function + lower and upper bounds. More...

#include <drake/solvers/constraint.h>

Inheritance diagram for Constraint:
Collaboration diagram for Constraint:

Public Member Functions

Does not allow copy, move, or assignment
 Constraint (const Constraint &)=delete
 
Constraintoperator= (const Constraint &)=delete
 
 Constraint (Constraint &&)=delete
 
Constraintoperator= (Constraint &&)=delete
 
- Public Member Functions inherited from EvaluatorBase
template<typename DerivedLB , typename DerivedUB >
 EvaluatorBase (size_t num_constraints, int num_vars, const Eigen::MatrixBase< DerivedLB > &lb, const Eigen::MatrixBase< DerivedUB > &ub)
 
template<typename DerivedLB , typename DerivedUB >
 EvaluatorBase (size_t num_constraints, int num_vars, const Eigen::MatrixBase< DerivedLB > &lb, const Eigen::MatrixBase< DerivedUB > &ub, const std::string &description)
 
virtual ~EvaluatorBase ()
 
void Eval (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::VectorXd &y) const
 
void Eval (const Eigen::Ref< const AutoDiffVecXd > &x, AutoDiffVecXd &y) const
 
bool CheckSatisfied (const Eigen::Ref< const Eigen::VectorXd > &x, const double tol=1E-6) const
 Return whether this constraint is satisfied by the given value, x. More...
 
bool CheckSatisfied (const Eigen::Ref< const AutoDiffVecXd > &x, const double tol=1E-6) const
 
Eigen::VectorXd const & lower_bound () const
 
Eigen::VectorXd const & upper_bound () const
 
size_t num_constraints () const
 
template<typename Derived >
void UpdateLowerBound (const Eigen::MatrixBase< Derived > &new_lb)
 
template<typename Derived >
void UpdateUpperBound (const Eigen::MatrixBase< Derived > &new_ub)
 
void set_description (const std::string &description)
 
const std::string & get_description () const
 
template<typename DerivedL , typename DerivedU >
void set_bounds (const Eigen::MatrixBase< DerivedL > &lower_bound, const Eigen::MatrixBase< DerivedU > &upper_bound)
 Set the upper and lower bounds of the constraint. More...
 
int num_vars () const
 Getter for the number of variables in the constraint, namely the number of rows in x, as used in Eval(x, y). More...
 
 EvaluatorBase (const EvaluatorBase &)=delete
 
EvaluatorBaseoperator= (const EvaluatorBase &)=delete
 
 EvaluatorBase (EvaluatorBase &&)=delete
 
EvaluatorBaseoperator= (EvaluatorBase &&)=delete
 

Additional Inherited Members

- Protected Member Functions inherited from EvaluatorBase
virtual void DoEval (const Eigen::Ref< const Eigen::VectorXd > &x, Eigen::VectorXd &y) const =0
 
virtual void DoEval (const Eigen::Ref< const AutoDiffVecXd > &x, AutoDiffVecXd &y) const =0
 
virtual bool DoCheckSatisfied (const Eigen::Ref< const Eigen::VectorXd > &x, const double tol) const
 
virtual bool DoCheckSatisfied (const Eigen::Ref< const AutoDiffVecXd > &x, const double tol) const
 
 EvaluatorBase (size_t num_constraints, int num_vars)
 Constructs a constraint which has num_constraints rows, with input variables to Eval a num_vars x 1 vector. More...
 

Detailed Description

A constraint is a function + lower and upper bounds.

Solver interfaces must acknowledge that these constraints are mutable. Parameters can change after the constraint is constructed and before the call to Solve().

Some thoughts: It should support evaluating the constraint, adding it to an optimization problem, and have support for constraints that require slack variables (adding additional decision variables to the problem). There should also be some notion of parameterized constraints: e.g. the acceleration constraints in the rigid body dynamics are constraints on vdot and f, but are "parameterized" by q and v.

Constraint is not copyable, nor movable.

Constructor & Destructor Documentation

Constraint ( const Constraint )
delete
Constraint ( Constraint &&  )
delete

Member Function Documentation

Constraint& operator= ( const Constraint )
delete
Constraint& operator= ( Constraint &&  )
delete

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