hpp-constraints
4.9.1
Definition of basic geometric constraints for motion planning
|
#include <hpp/constraints/implicit.hh>
Static Public Member Functions | |
static ImplicitPtr_t | create (const DifferentiableFunctionPtr_t &function) |
static ImplicitPtr_t | create (const DifferentiableFunctionPtr_t &function, ComparisonTypes_t comp) |
static ImplicitPtr_t | create (const DifferentiableFunctionPtr_t &function, ComparisonTypes_t comp, vectorIn_t rhs) |
static ImplicitPtr_t | createCopy (const ImplicitPtr_t &other) |
Create a copy and return shared pointer. More... | |
Protected Member Functions | |
Implicit (const DifferentiableFunctionPtr_t &function, ComparisonTypes_t comp) | |
Implicit (const DifferentiableFunctionPtr_t &function, ComparisonTypes_t comp, vectorIn_t rhs) | |
Implicit (const Implicit &other) | |
Copy constructor. More... | |
virtual bool | isEqual (const Implicit &other, bool swapAndTest) const |
void | init (const ImplicitWkPtr_t &weak) |
Friends | |
class | ImplicitConstraintSet |
This class represents a parameterizable numerical constraint that compares the output of a function \(h\) to a right hand side vector.
Let
\[ \Delta = h (\mathbf{q}) - rhs \in \mathbf{R}^{n_v}, \]
for each component \(i\in\{0,\cdots,n_v-1\}\),
\[ rhs = \exp\left(\begin{array}{c}\lambda_1 \\ 0 \\ 0 \\ \lambda_2 \\ \vdots \end{array}\right) \ \ \ \ \mathbf{c} = \left(\begin{array}{c}\mathbf{Equality} \\ \mathbf{EqualToZero} \\ \mathbf{Inferior} \\ \mathbf{Equality} \\ \vdots \end{array}\right) \]
To retrieve the size of vector \(\lambda\), call method Implicit::parameterSize (). To set and get the right hand side value, use method Implicit::rightHandSide.The right hand side of the constraint may depend on time, for instance if the constraint is associated to a trajectory following task. In this case, the right hand side is a function from \(\mathbf{R}\) to \(\mathbf{L}\).
To set or get a time varying right hand side, use methods Implicit::rightHandSideFunction, Implicit::rightHandSideFromConfig. To get the value of the right hand side for a given time, use method Implicit::rightHandSideAt.
|
inlinevirtual |
|
protected |
Constructor
function | the differentiable function |
comp | vector of comparison \(\mathbf{c}\). size of comp should be equal to size of tangent space to function output space \(\mathbf{L}\). |
|
protected |
Constructor
function | the differentiable function, |
comp | vector of comparison \(\mathbf{c}\), |
rhs | the right hand side of the equation. size of comp and size of rhs should be equal to size of tangent space to function output space \(\mathbf{L}\). |
|
protected |
Copy constructor.
const ComparisonTypes_t& hpp::constraints::Implicit::comparisonType | ( | ) | const |
Return the ComparisonType.
void hpp::constraints::Implicit::comparisonType | ( | const ComparisonTypes_t & | comp | ) |
Set the comparison type.
bool hpp::constraints::Implicit::constantRightHandSide | ( | ) | const |
Whether right hand side is constant
|
virtual |
Copy object and return shared pointer to copy.
Reimplemented in hpp::constraints::Explicit, hpp::constraints::LockedJoint, hpp::constraints::explicit_::RelativePose, and hpp::constraints::implicit::RelativePose.
|
static |
Create a shared pointer to a new instance.
|
static |
Create a shared pointer to a new instance.
|
static |
Create a shared pointer to a new instance.
|
static |
Create a copy and return shared pointer.
|
inline |
Return a reference to function \(h\).
|
inline |
Return a reference to function \(h\).
|
inlineprotected |
|
protectedvirtual |
Test equality with other instance
other | object to copy |
swapAndTest | whether we should also check other == this |
Reimplemented in hpp::constraints::LockedJoint.
vectorOut_t hpp::constraints::Implicit::nonConstRightHandSide | ( | ) |
Return a modifiable reference to right hand side of equation.
|
inline |
Operator equality.
size_type hpp::constraints::Implicit::parameterSize | ( | ) | const |
Get size of parameter defining the right hand side of the constraint
See class documentation for details.
size_type hpp::constraints::Implicit::rhsSize | ( | ) | const |
Return the dimension of the left hand side function tangent output space
void hpp::constraints::Implicit::rightHandSide | ( | vectorIn_t | rhs | ) |
Set the right hand side of the equation.
rhs | the right hand side. |
vectorIn_t hpp::constraints::Implicit::rightHandSide | ( | ) | const |
Return the right hand side of the equation.
vectorOut_t hpp::constraints::Implicit::rightHandSide | ( | ) |
Return a modifiable reference to right hand side of equation.
vectorIn_t hpp::constraints::Implicit::rightHandSideAt | ( | const value_type & | s | ) |
Evaluate and set right hand side at given time
s | time |
void hpp::constraints::Implicit::rightHandSideFromConfig | ( | ConfigurationIn_t | config | ) |
Set the right hand side from a configuration
in such a way that the configuration satisfies the numerical constraints
config | the input configuration. |
void hpp::constraints::Implicit::rightHandSideFunction | ( | const DifferentiableFunctionPtr_t & | rhsF | ) |
Set time-varying right hand side
rhsF | Mapping from \(\mathbf{R}\) to output space \(\mathbf{L}\) of \(h\) defining the variation along time of the right hand side. |
|
inline |
Get time-varying right hand side
size_type hpp::constraints::Implicit::rightHandSideSize | ( | ) | const |
Get size of right hand side of the constraint
This is the dimension (nq) of the output space of the function
|
friend |