tasks::qp::JointLimitsConstr Class Reference

#include <Tasks/QPConstr.h>

Inheritance diagram for tasks::qp::JointLimitsConstr:
Collaboration diagram for tasks::qp::JointLimitsConstr:

Public Member Functions

 JointLimitsConstr (const std::vector< rbd::MultiBody > &mbs, int robotIndex, QBound bound, double step)
 
 JointLimitsConstr (const std::vector< rbd::MultiBody > &mbs, int robotIndex, QBound bound, const AlphaDBound &aDBound, double step)
 
 JointLimitsConstr (const std::vector< rbd::MultiBody > &mbs, int robotIndex, QBound bound, const AlphaDBound &aDBound, const AlphaDDBound &aDDBound, double step)
 
virtual void updateNrVars (const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
 
virtual void update (const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
 
virtual std::string nameBound () const override
 
virtual std::string descBound (const std::vector< rbd::MultiBody > &mbs, int line) override
 
virtual int beginVar () const override
 
virtual const Eigen::VectorXd & Lower () const override
 
virtual const Eigen::VectorXd & Upper () const override
 
- Public Member Functions inherited from tasks::qp::ConstraintFunction< Bound >
virtual ~ConstraintFunction () override
 
void addToSolver (QPSolver &sol)
 
void addToSolver (const std::vector< rbd::MultiBody > &mbs, QPSolver &sol)
 
void removeFromSolver (QPSolver &sol)
 
- Public Member Functions inherited from tasks::qp::Constraint
virtual ~Constraint ()
 

Detailed Description

Avoid to reach articular position limits based on direct integration.

\[ \underline{q} \leq q + \alpha \Delta_{step} + \frac{1}{2} \dot{\alpha} \Delta_{step}^2 \leq \overline{q} \]

This constraint can be impossible to fulfill when articulation velocity is really high. Always prefer to use DamperJointLimitsConstr.

Constructor & Destructor Documentation

◆ JointLimitsConstr() [1/3]

tasks::qp::JointLimitsConstr::JointLimitsConstr ( const std::vector< rbd::MultiBody > &  mbs,
int  robotIndex,
QBound  bound,
double  step 
)
Parameters
mbsMulti-robot system.
robotIndexConstrained robot Index in mbs.
boundArticular position bounds.
stepTime step in second.

◆ JointLimitsConstr() [2/3]

tasks::qp::JointLimitsConstr::JointLimitsConstr ( const std::vector< rbd::MultiBody > &  mbs,
int  robotIndex,
QBound  bound,
const AlphaDBound aDBound,
double  step 
)
Parameters
mbsMulti-robot system.
robotIndexConstrained robot Index in mbs.
boundArticular position bounds.
aDBoundArticular acceleration bounds.
stepTime step in second.

◆ JointLimitsConstr() [3/3]

tasks::qp::JointLimitsConstr::JointLimitsConstr ( const std::vector< rbd::MultiBody > &  mbs,
int  robotIndex,
QBound  bound,
const AlphaDBound aDBound,
const AlphaDDBound aDDBound,
double  step 
)
Parameters
mbsMulti-robot system.
robotIndexConstrained robot Index in mbs.
boundArticular position bounds.
aDBoundArticular acceleration bounds.
aDDBoundArticular jerk bounds.
stepTime step in second.

Member Function Documentation

◆ beginVar()

virtual int tasks::qp::JointLimitsConstr::beginVar ( ) const
overridevirtual

◆ descBound()

virtual std::string tasks::qp::JointLimitsConstr::descBound ( const std::vector< rbd::MultiBody > &  mbs,
int  line 
)
overridevirtual

◆ Lower()

virtual const Eigen::VectorXd& tasks::qp::JointLimitsConstr::Lower ( ) const
overridevirtual

◆ nameBound()

virtual std::string tasks::qp::JointLimitsConstr::nameBound ( ) const
overridevirtual

◆ update()

virtual void tasks::qp::JointLimitsConstr::update ( const std::vector< rbd::MultiBody > &  mbs,
const std::vector< rbd::MultiBodyConfig > &  mbcs,
const SolverData data 
)
overridevirtual

Implements tasks::qp::Constraint.

◆ updateNrVars()

virtual void tasks::qp::JointLimitsConstr::updateNrVars ( const std::vector< rbd::MultiBody > &  mbs,
const SolverData data 
)
overridevirtual

Implements tasks::qp::Constraint.

◆ Upper()

virtual const Eigen::VectorXd& tasks::qp::JointLimitsConstr::Upper ( ) const
overridevirtual

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