Aikido
aikido::constraint::Differentiable Class Referenceabstract

A differentiable constraint. More...

#include <aikido/constraint/Differentiable.hpp>

Inheritance diagram for aikido::constraint::Differentiable:
aikido::constraint::dart::FrameDifferentiable aikido::constraint::dart::FramePairDifferentiable aikido::constraint::dart::TSR aikido::constraint::DifferentiableIntersection aikido::constraint::DifferentiableSubspace aikido::constraint::Satisfied aikido::constraint::uniform::RBoxConstraint< N >

Public Member Functions

virtual ~Differentiable ()=default
 Destructor. More...
 
virtual statespace::ConstStateSpacePtr getStateSpace () const =0
 Gets the StateSpace that this constraint operates on. More...
 
virtual std::vector< ConstraintTypegetConstraintTypes () const =0
 Returns a vector of constraints' types, i-th element correspoinding to the type of i-th constraint. More...
 
virtual std::size_t getConstraintDimension () const =0
 Size of constraints. More...
 
virtual void getValue (const statespace::StateSpace::State *_s, Eigen::VectorXd &_out) const =0
 Get the value of constraints at _s. More...
 
virtual void getJacobian (const statespace::StateSpace::State *_s, Eigen::MatrixXd &_out) const =0
 Get the jacobian of constraints evaluated at _s, expressed in the frame each state space is expressed in). More...
 
virtual void getValueAndJacobian (const statespace::StateSpace::State *_s, Eigen::VectorXd &_val, Eigen::MatrixXd &_jac) const
 Get both Value and Jacobian. More...
 

Detailed Description

A differentiable constraint.

Contains n constraints that can be evaluated in real-value.

Constructor & Destructor Documentation

◆ ~Differentiable()

virtual aikido::constraint::Differentiable::~Differentiable ( )
virtualdefault

Destructor.

Member Function Documentation

◆ getConstraintDimension()

◆ getConstraintTypes()

virtual std::vector<ConstraintType> aikido::constraint::Differentiable::getConstraintTypes ( ) const
pure virtual

◆ getJacobian()

virtual void aikido::constraint::Differentiable::getJacobian ( const statespace::StateSpace::State _s,
Eigen::MatrixXd &  _out 
) const
pure virtual

Get the jacobian of constraints evaluated at _s, expressed in the frame each state space is expressed in).

Parameters
_sState to be evaluated at.
[out]_outJacobian matrix. The dimension should be the following: SO3 StateSpace : m x 3 SO2 : m x 1 SE2 : m x 3 SE3 : m x 6 Rn : m x n CartesianProduct: m x k (k = sum of all state jacobian cols) If Matrix of incorrect dimension is given, false will be returned.

Implemented in aikido::constraint::dart::TSR, aikido::constraint::uniform::RBoxConstraint< N >, aikido::constraint::Satisfied, aikido::constraint::dart::FramePairDifferentiable, aikido::constraint::dart::FrameDifferentiable, aikido::constraint::DifferentiableSubspace, and aikido::constraint::DifferentiableIntersection.

◆ getStateSpace()

◆ getValue()

virtual void aikido::constraint::Differentiable::getValue ( const statespace::StateSpace::State _s,
Eigen::VectorXd &  _out 
) const
pure virtual

Get the value of constraints at _s.

Should be 0 to satisfy equality constraints. Should be <=0 to satisfy inequality constraints.

Parameters
_sState to be evaluated at.
[out]_outVector to store the value. Length should match the number of constraints.

Implemented in aikido::constraint::dart::TSR, aikido::constraint::uniform::RBoxConstraint< N >, aikido::constraint::Satisfied, aikido::constraint::dart::FramePairDifferentiable, aikido::constraint::dart::FrameDifferentiable, aikido::constraint::DifferentiableSubspace, and aikido::constraint::DifferentiableIntersection.

◆ getValueAndJacobian()

virtual void aikido::constraint::Differentiable::getValueAndJacobian ( const statespace::StateSpace::State _s,
Eigen::VectorXd &  _val,
Eigen::MatrixXd &  _jac 
) const
virtual

Get both Value and Jacobian.

Parameters
_sState to be evaluated.
[out]_valValue of constraints.
[out]_jacJacoiban of constraints.

Reimplemented in aikido::constraint::dart::FrameDifferentiable, aikido::constraint::dart::FramePairDifferentiable, aikido::constraint::DifferentiableSubspace, and aikido::constraint::DifferentiableIntersection.