mc_solver::KinematicsConstraint Class Reference

#include <mc_solver/KinematicsConstraint.h>

Inheritance diagram for mc_solver::KinematicsConstraint:
Collaboration diagram for mc_solver::KinematicsConstraint:

Public Member Functions

 KinematicsConstraint (const mc_rbdyn::Robots &robots, unsigned int robotIndex, double timeStep)
 
 KinematicsConstraint (const mc_rbdyn::Robots &robots, unsigned int robotIndex, double timeStep, const std::array< double, 3 > &damper, double velocityPercent=0.5)
 
- Public Member Functions inherited from mc_solver::ConstraintSet
 ConstraintSet ()
 
void addToSolver (mc_solver::QPSolver &solver)
 
virtual void update (QPSolver &)
 Update the constraint. More...
 
void removeFromSolver (mc_solver::QPSolver &solver)
 
virtual ~ConstraintSet ()
 
bool inSolver () const noexcept
 
QPSolver::Backend backend () const noexcept
 

Protected Member Functions

void addToSolverImpl (mc_solver::QPSolver &solver) override
 
void removeFromSolverImpl (mc_solver::QPSolver &solver) override
 

Protected Attributes

mc_rtc::void_ptr constraint_
 
- Protected Attributes inherited from mc_solver::ConstraintSet
QPSolver::Backend backend_
 
bool inSolver_ = false
 

Detailed Description

Holds kinematic constraints (joint limits) for the robot

Constructor & Destructor Documentation

◆ KinematicsConstraint() [1/2]

mc_solver::KinematicsConstraint::KinematicsConstraint ( const mc_rbdyn::Robots robots,
unsigned int  robotIndex,
double  timeStep 
)

Regular constraint constructor Builds a regular joint limits constraint, prefer a damped joint limits constraint in general See tasks::qp::JointLimitsConstr for detail

Parameters
robotsThe robots including the robot affected by this constraint
robotIndexThe index of the robot affected by this constraint
timeStepSolver timestep

◆ KinematicsConstraint() [2/2]

mc_solver::KinematicsConstraint::KinematicsConstraint ( const mc_rbdyn::Robots robots,
unsigned int  robotIndex,
double  timeStep,
const std::array< double, 3 > &  damper,
double  velocityPercent = 0.5 
)

Damped constraint constructor Builds a damped joint limits constraint See tasks::qp::DamperJointLimitsConstr documentation for detail

Parameters
robotsThe robots including the robot affected by this constraint
robotIndexThe index of the robot affected by this constraint
timeStepSolver timestep
damperValue of the damper {interaction distance, safety distance, offset}
velocityPercentMaximum joint velocity percentage, 0.5 is advised

Member Function Documentation

◆ addToSolverImpl()

void mc_solver::KinematicsConstraint::addToSolverImpl ( mc_solver::QPSolver solver)
overrideprotectedvirtual

◆ removeFromSolverImpl()

void mc_solver::KinematicsConstraint::removeFromSolverImpl ( mc_solver::QPSolver solver)
overrideprotectedvirtual

Member Data Documentation

◆ constraint_

mc_rtc::void_ptr mc_solver::KinematicsConstraint::constraint_
protected

Holds the constraint implementation

In Tasks backend:

  • tasks::qp::JointLimitsConstr for non-damped constraint
  • tasks::qp::DampedJointLimitsConstr for damped-constraint

In TVM backend:

  • internal implementation

The deleter carries the initial type of the constraint


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