hpp-constraints 6.0.0
Definition of basic geometric constraints for motion planning
|
#include <hpp/constraints/explicit.hh>
Public Member Functions | |
virtual ImplicitPtr_t | copy () const |
Copy object and return shared pointer to copy. | |
DifferentiableFunctionPtr_t | explicitFunction () const |
const segments_t & | outputConf () const |
Get output configuration variables. | |
const segments_t & | outputVelocity () const |
Get output degrees of freedom. | |
const segments_t & | inputConf () const |
Get input configuration variables. | |
const segments_t & | inputVelocity () const |
Get input degrees of freedom. | |
virtual void | outputValue (LiegroupElementRef result, vectorIn_t qin, LiegroupElementConstRef rhs) const |
virtual void | jacobianOutputValue (vectorIn_t qin, LiegroupElementConstRef g_value, LiegroupElementConstRef rhs, matrixOut_t jacobian) const |
![]() | |
bool | operator== (const Implicit &other) const |
Operator equality. | |
virtual | ~Implicit () |
const ComparisonTypes_t & | comparisonType () const |
Return the ComparisonType. | |
void | comparisonType (const ComparisonTypes_t &comp) |
Set the comparison type. | |
const segments_t & | activeRows () const |
bool | checkAllRowsActive () const |
Check if all rows are active (no inactive rows) | |
const Eigen::RowBlockIndices & | equalityIndices () const |
Get indices of constraint coordinates that are equality. | |
void | setInactiveRowsToZero (vectorOut_t error) const |
DifferentiableFunction & | function () const |
Return a reference to function ![]() | |
const DifferentiableFunctionPtr_t & | functionPtr () const |
Return a reference to function ![]() | |
virtual std::pair< JointConstPtr_t, JointConstPtr_t > | doesConstrainRelPoseBetween (DeviceConstPtr_t robot) const |
void | rightHandSideFromConfig (ConfigurationIn_t config, LiegroupElementRef rhs) |
bool | checkRightHandSide (LiegroupElementConstRef rhs) const |
size_type | parameterSize () const |
size_type | rightHandSideSize () const |
void | rightHandSideFunction (const DifferentiableFunctionPtr_t &rhsF) |
const DifferentiableFunctionPtr_t & | rightHandSideFunction () const |
vectorIn_t | rightHandSideAt (const value_type &s) |
Static Public Member Functions | |
static ExplicitPtr_t | create (const LiegroupSpacePtr_t &configSpace, const DifferentiableFunctionPtr_t &function, const segments_t &inputConf, const segments_t &outputConf, const segments_t &inputVelocity, const segments_t &outputVelocity, const ComparisonTypes_t &comp=ComparisonTypes_t(), std::vector< bool > mask=std::vector< bool >()) |
static ExplicitPtr_t | createCopy (const ExplicitPtr_t &other) |
Create a copy and return shared pointer. | |
![]() | |
static ImplicitPtr_t | create (const DifferentiableFunctionPtr_t &func, ComparisonTypes_t comp, std::vector< bool > mask=std::vector< bool >()) |
static ImplicitPtr_t | createCopy (const ImplicitPtr_t &other) |
Create a copy and return shared pointer. | |
Protected Member Functions | |||
Explicit (const LiegroupSpacePtr_t &configSpace, const DifferentiableFunctionPtr_t &function, const segments_t &inputConf, const segments_t &outputConf, const segments_t &inputVelocity, const segments_t &outputVelocity, const ComparisonTypes_t &comp, std::vector< bool > mask) | |||
Explicit (const DifferentiableFunctionPtr_t &implicitFunction, const DifferentiableFunctionPtr_t &function, const segments_t &inputConf, const segments_t &outputConf, const segments_t &inputVelocity, const segments_t &outputVelocity, const ComparisonTypes_t &comp, std::vector< bool > mask) | |||
(const LiegroupSpacePtr_t&, constDifferentiableFunctionPtr_t&, const segments_t& inputConf, constsegments_t& outputConf, const segments_t& inputVelocity, constsegments_t&, const ComparisonTypes_t&);
| |||
Explicit (const Explicit &other) | |||
Copy constructor. | |||
bool | isEqual (const Implicit &other, bool swapAndTest) const | ||
void | init (const ExplicitWkPtr_t &weak) | ||
Explicit () | |||
![]() | |||
Implicit (const DifferentiableFunctionPtr_t &function, ComparisonTypes_t comp, std::vector< bool > mask) | |||
Implicit (const Implicit &other) | |||
Copy constructor. | |||
void | init (const ImplicitWkPtr_t &weak) | ||
Implicit () | |||
Protected Attributes | |
DifferentiableFunctionPtr_t | inputToOutput_ |
segments_t | inputConf_ |
segments_t | outputConf_ |
segments_t | inputVelocity_ |
segments_t | outputVelocity_ |
Explicit numerical constraint
An explicit numerical constraint is a constraint such that some configuration variables called output are function of the others called input.
Let
Recall that degrees of freedom refer to velocity vectors.
Let us notice that
Then the differential function is of the form
It is straightforward that an equality constraint with this function can solved explicitely:
If function
where
Considered as a Implicit instance, the expression of the Jacobian of the DifferentiableFunction above depends on the output space of function
for any index
|
protected |
Constructor
configSpace | Configuration space on which the constraint is defined, |
function | relation between input configuration variables and output configuration variables, |
inputConf | set of integer intervals defining indices ![]() |
outputConf | set of integer intervals defining indices ![]() |
inputVelocity | set of integer defining indices ![]() |
outputVelocity | set of integer defining indices ![]() |
mask | mask defining which components of the error are taken into account to determine whether the constraint is satisfied (See parent class for details). |
|
protected |
(const LiegroupSpacePtr_t&, constDifferentiableFunctionPtr_t&, const segments_t& inputConf, constsegments_t& outputConf, const segments_t& inputVelocity, constsegments_t&, const ComparisonTypes_t&);
implicitFunction |
Constructor
configSpace | Configuration space on which the constraint is defined, |
function | relation between input configuration variables and output configuration variables, |
inputConf | set of integer intervals defining indices ![]() |
outputConf | set of integer intervals defining indices ![]() |
inputVelocity | set of integer defining indices ![]() |
outputVelocity | set of integer defining indices ![]() |
mask | mask defining which components of the error are taken into account to determine whether the constraint is satisfied (See parent class for details). (const LiegroupSpacePtr_t&, constDifferentiableFunctionPtr_t&, const segments_t& inputConf, constsegments_t& outputConf, const segments_t& inputVelocity, constsegments_t&, const ComparisonTypes_t&); |
implicitFunction | differentiable function of the implicit formulation if different from default expression
|
|
protected |
Copy constructor.
|
inlineprotected |
|
virtual |
Copy object and return shared pointer to copy.
Reimplemented from hpp::constraints::Implicit.
Reimplemented in hpp::constraints::explicit_::ConvexShapeContact, hpp::constraints::explicit_::RelativePose, and hpp::constraints::LockedJoint.
|
static |
Create instance and return shared pointer
configSpace | Configuration space on which the constraint is defined, |
function | relation between input configuration variables and output configuration variables, |
inputConf | set of integer intervals defining indices ![]() |
outputConf | set of integer intervals defining indices ![]() |
inputVelocity | set of integer defining indices ![]() |
outputVelocity | set of integer defining indices ![]() |
mask | mask defining which components of the error are taken into account to determine whether the constraint is satisfied (See parent class for details). |
|
static |
Create a copy and return shared pointer.
|
inline |
Function that maps input to output
|
protected |
|
inline |
Get input configuration variables.
|
inline |
Get input degrees of freedom.
|
protectedvirtual |
Test equality with other instance
other | object to copy |
swapAndTest | whether we should also check other == this |
Reimplemented from hpp::constraints::Implicit.
Reimplemented in hpp::constraints::LockedJoint.
|
virtual |
Compute Jacobian of output value
qin | vector of input variables, |
g_value | ![]() |
rhs | right hand side (of implicit formulation). |
Reimplemented in hpp::constraints::explicit_::ConvexShapeContact, and hpp::constraints::explicit_::RelativePose.
|
inline |
Get output configuration variables.
|
virtual |
Compute the value of the output configuration variables
qin | input configuration variables, |
rhs | right hand side of constraint |
The default implementation computes
Reimplemented in hpp::constraints::explicit_::ConvexShapeContact, and hpp::constraints::explicit_::RelativePose.
|
inline |
Get output degrees of freedom.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |