#include <mc_solver/DynamicsConstraint.h>
Public Member Functions | |
DynamicsConstraint (const mc_rbdyn::Robots &robots, unsigned int robotIndex, double timeStep, bool infTorque=false) | |
DynamicsConstraint (const mc_rbdyn::Robots &robots, unsigned int robotIndex, double timeStep, const std::array< double, 3 > &damper, double velocityPercent=1.0, bool infTorque=false) | |
tasks::qp::MotionConstr & | motionConstr () noexcept |
mc_tvm::DynamicFunction & | dynamicFunction () |
void | addToSolverImpl (QPSolver &solver) override |
void | removeFromSolverImpl (QPSolver &solver) override |
unsigned int | robotIndex () const noexcept |
Public Member Functions inherited from mc_solver::KinematicsConstraint | |
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 Attributes | |
mc_rtc::void_ptr | motion_constr_ |
unsigned int | robotIndex_ |
Protected Attributes inherited from mc_solver::KinematicsConstraint | |
mc_rtc::void_ptr | constraint_ |
Protected Attributes inherited from mc_solver::ConstraintSet | |
QPSolver::Backend | backend_ |
bool | inSolver_ = false |
Additional Inherited Members | |
Protected Member Functions inherited from mc_solver::KinematicsConstraint | |
void | addToSolverImpl (mc_solver::QPSolver &solver) override |
void | removeFromSolverImpl (mc_solver::QPSolver &solver) override |
Holds dynamics constraints (equation of motion) for a robot
mc_solver::DynamicsConstraint::DynamicsConstraint | ( | const mc_rbdyn::Robots & | robots, |
unsigned int | robotIndex, | ||
double | timeStep, | ||
bool | infTorque = false |
||
) |
Constructor Builds a regular joint limits constraint and a motion constr depending on the nature of the robot See tasks::qp::MotionConstr for details on the latter one
robots | The robots including the robot affected by this constraint |
robotIndex | The index of the robot affected by this constraint |
timeStep | Solver timestep |
infTorque | If true, ignore the torque limits set in the robot model |
mc_solver::DynamicsConstraint::DynamicsConstraint | ( | const mc_rbdyn::Robots & | robots, |
unsigned int | robotIndex, | ||
double | timeStep, | ||
const std::array< double, 3 > & | damper, | ||
double | velocityPercent = 1.0 , |
||
bool | infTorque = false |
||
) |
Constructor Builds a damped joint limits constraint and a motion constr depending on the nature of the robot See tasks::qp::MotionConstr for details on the latter one
robots | The robots including the robot affected by this constraint |
robotIndex | The index of the robot affected by this constraint |
timeStep | Solver timestep |
damper | Value of the damper {interaction distance, safety distance, offset} |
velocityPercent | Maximum joint velocity percentage, 0.5 is advised |
infTorque | If true, ignore the torque limits set in the robot model |
|
overridevirtual |
Should take care of the actual insertion into a concrete solver
Implements mc_solver::ConstraintSet.
|
inline |
Returns the mc_tvm::DynamicFunction
Assumes the backend was TVM
|
inlinenoexcept |
Returns the tasks::qp::MotionConstr
This assumes the backend was Tasks
|
overridevirtual |
Should take care of the actual removal from a concrete solver
Implements mc_solver::ConstraintSet.
|
inlinenoexcept |
|
protected |
Holds the motion constraint implementation
In Tasks backend:
In TVM backend:
|
protected |
Robot index for the constraint