tsid 1.9.0
Efficient Task Space Inverse Dynamics for Multi-body Systems based on Pinocchio
Loading...
Searching...
No Matches
tsid::tasks::TaskJointPosVelAccBounds Class Reference

#include <tsid/tasks/task-joint-posVelAcc-bounds.hpp>

Inheritance diagram for tsid::tasks::TaskJointPosVelAccBounds:
Collaboration diagram for tsid::tasks::TaskJointPosVelAccBounds:

Public Types

typedef math::ConstraintBound ConstraintBound
typedef math::ConstraintInequality ConstraintInequality
typedef math::VectorXi VectorXi
typedef pinocchio::Data Data
Public Types inherited from tsid::tasks::TaskMotion
typedef trajectories::TrajectorySample TrajectorySample
Public Types inherited from tsid::tasks::TaskBase
typedef math::ConstRefVector ConstRefVector
typedef pinocchio::Data Data
typedef robots::RobotWrapper RobotWrapper

Public Member Functions

 TaskJointPosVelAccBounds (const std::string &name, RobotWrapper &robot, double dt, bool verbose=true)
int dim () const override
 Return the dimension of the task. \info should be overloaded in the child class.
const ConstraintBasecompute (double t, ConstRefVector q, ConstRefVector v, Data &data) override
const ConstraintBasegetConstraint () const override
void setTimeStep (double dt)
void setPositionBounds (ConstRefVector lower, ConstRefVector upper)
void setVelocityBounds (ConstRefVector upper)
void setAccelerationBounds (ConstRefVector upper)
const VectorgetAccelerationBounds () const
const VectorgetVelocityBounds () const
const VectorgetPositionLowerBounds () const
const VectorgetPositionUpperBounds () const
void setVerbose (bool verbose)
void setImposeBounds (bool impose_position_bounds, bool impose_velocity_bounds, bool impose_viability_bounds, bool impose_acceleration_bounds)
void isStateViable (ConstRefVector q, ConstRefVector dq, bool verbose=true)
void computeAccLimitsFromPosLimits (ConstRefVector q, ConstRefVector dq, bool verbose=true)
void computeAccLimitsFromViability (ConstRefVector q, ConstRefVector dq, bool verbose=true)
void computeAccLimits (ConstRefVector q, ConstRefVector dq, bool verbose=true)
TSID_DEPRECATED const Vectormask () const
TSID_DEPRECATED void mask (const Vector &mask)
virtual void setMask (math::ConstRefVector mask) override
Public Member Functions inherited from tsid::tasks::TaskMotion
 TaskMotion (const std::string &name, RobotWrapper &robot)
virtual const TrajectorySamplegetReference () const
virtual const VectorgetDesiredAcceleration () const
virtual Vector getAcceleration (ConstRefVector dv) const
virtual const Vectorposition_error () const
virtual const Vectorvelocity_error () const
virtual const Vectorposition () const
virtual const Vectorvelocity () const
virtual const Vectorposition_ref () const
virtual const Vectorvelocity_ref () const
virtual const VectorgetMask () const
virtual bool hasMask ()
Public Member Functions inherited from tsid::tasks::TaskBase
 TaskBase (const std::string &name, RobotWrapper &robot)
virtual ~TaskBase ()=default
const std::string & name () const
void name (const std::string &name)

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef math::Vector Vector
Public Attributes inherited from tsid::tasks::TaskMotion
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef math::Vector Vector
Public Attributes inherited from tsid::tasks::TaskBase
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef math::ConstraintBase ConstraintBase

Protected Attributes

ConstraintInequality m_constraint
double m_dt
bool m_verbose
int m_nv
int m_na
Vector m_mask
VectorXi m_activeAxes
Vector m_qa
Vector m_dqa
double m_eps
Vector m_qMin
Vector m_qMax
Vector m_dqMax
Vector m_ddqMax
Vector m_dqMinViab
Vector m_dqMaxViab
Vector m_ddqLBPos
Vector m_ddqUBPos
Vector m_ddqLBVia
Vector m_ddqUBVia
Vector m_ddqLBVel
Vector m_ddqUBVel
Vector m_ddqLBAcc
Vector m_ddqUBAcc
Vector m_ddqLB
Vector m_ddqUB
bool m_impose_position_bounds
bool m_impose_velocity_bounds
bool m_impose_viability_bounds
bool m_impose_acceleration_bounds
Vector m_viabViol
double m_two_dt_sq
Vector m_ddqMax_q3
Vector m_ddqMin_q3
Vector m_ddqMax_q2
Vector m_ddqMin_q2
Vector m_minus_dq_over_dt
double m_dt_square
Vector m_dt_dq
Vector m_dt_two_dq
Vector m_two_ddqMax
Vector m_dt_ddqMax_dt
Vector m_dq_square
Vector m_q_plus_dt_dq
double m_two_a
Vector m_b_1
Vector m_b_2
Vector m_ddq_1
Vector m_ddq_2
Vector m_c_1
Vector m_delta_1
Vector m_c_2
Vector m_delta_2
Vector m_ub
Vector m_lb
Protected Attributes inherited from tsid::tasks::TaskMotion
Vector m_mask
Vector m_dummy
trajectories::TrajectorySample TrajectorySample_dummy
Protected Attributes inherited from tsid::tasks::TaskBase
std::string m_name
RobotWrapperm_robot
 Reference on the robot model.

Member Typedef Documentation

◆ ConstraintBound

◆ ConstraintInequality

◆ Data

◆ VectorXi

Constructor & Destructor Documentation

◆ TaskJointPosVelAccBounds()

tsid::tasks::TaskJointPosVelAccBounds::TaskJointPosVelAccBounds(const std::string &name,
RobotWrapper &robot,
doubledt,
boolverbose = true )

Member Function Documentation

◆ compute()

const ConstraintBase & tsid::tasks::TaskJointPosVelAccBounds::compute(doublet,
ConstRefVectorq,
ConstRefVectorv,
Data &data )
overridevirtual

◆ computeAccLimits()

void tsid::tasks::TaskJointPosVelAccBounds::computeAccLimits(ConstRefVectorq,
ConstRefVectordq,
boolverbose = true )

Given the current position and velocity, the bounds of position, velocity and acceleration and the control time step, compute the bounds of the acceleration such that all the bounds are respected at the next time step and can be respected in the future. ddqMax is the absolute maximum acceleration.

◆ computeAccLimitsFromPosLimits()

void tsid::tasks::TaskJointPosVelAccBounds::computeAccLimitsFromPosLimits(ConstRefVectorq,
ConstRefVectordq,
boolverbose = true )

Compute acceleration limits imposed by position bounds. Fills in m_ddqLBPos and m_ddqUBPos

◆ computeAccLimitsFromViability()

void tsid::tasks::TaskJointPosVelAccBounds::computeAccLimitsFromViability(ConstRefVectorq,
ConstRefVectordq,
boolverbose = true )

Compute acceleration limits imposed by viability. ddqMax is the maximum acceleration that will be necessary to stop the joint before hitting the position limits.

-sqrt( 2*ddqMax*(q-qMin) ) < dq[t+1] < sqrt( 2*ddqMax*(qMax-q) ) ddqMin[2] = (-sqrt(max(0.0, 2*MAX_ACC*(q[i]+DT*dq[i]-qMin))) - dq[i])/DT; ddqMax[2] = (sqrt(max(0.0, 2*MAX_ACC*(qMax-q[i]-DT*dq[i]))) - dq[i])/DT;

Fills in m_ddqLBVia and m_ddqUBVia

◆ dim()

int tsid::tasks::TaskJointPosVelAccBounds::dim()const
overridevirtual

Return the dimension of the task. \info should be overloaded in the child class.

Implements tsid::tasks::TaskBase.

◆ getAccelerationBounds()

const Vector & tsid::tasks::TaskJointPosVelAccBounds::getAccelerationBounds()const

◆ getConstraint()

const ConstraintBase & tsid::tasks::TaskJointPosVelAccBounds::getConstraint()const
overridevirtual

◆ getPositionLowerBounds()

const Vector & tsid::tasks::TaskJointPosVelAccBounds::getPositionLowerBounds()const

◆ getPositionUpperBounds()

const Vector & tsid::tasks::TaskJointPosVelAccBounds::getPositionUpperBounds()const

◆ getVelocityBounds()

const Vector & tsid::tasks::TaskJointPosVelAccBounds::getVelocityBounds()const

◆ isStateViable()

void tsid::tasks::TaskJointPosVelAccBounds::isStateViable(ConstRefVectorq,
ConstRefVectordq,
boolverbose = true )

Check if the state is viable, otherwise it returns a measure of the violation of the violated inequality. Fills in m_viabViol , if the state of joint i is viable m_viabViol[i] = 0

◆ mask() [1/2]

const Vector & tsid::tasks::TaskJointPosVelAccBounds::mask()const

◆ mask() [2/2]

void tsid::tasks::TaskJointPosVelAccBounds::mask(const Vector &mask)

◆ setAccelerationBounds()

void tsid::tasks::TaskJointPosVelAccBounds::setAccelerationBounds(ConstRefVectorupper)

◆ setImposeBounds()

void tsid::tasks::TaskJointPosVelAccBounds::setImposeBounds(boolimpose_position_bounds,
boolimpose_velocity_bounds,
boolimpose_viability_bounds,
boolimpose_acceleration_bounds )

◆ setMask()

void tsid::tasks::TaskJointPosVelAccBounds::setMask(math::ConstRefVectormask)
overridevirtual

Reimplemented from tsid::tasks::TaskMotion.

◆ setPositionBounds()

void tsid::tasks::TaskJointPosVelAccBounds::setPositionBounds(ConstRefVectorlower,
ConstRefVectorupper )

◆ setTimeStep()

void tsid::tasks::TaskJointPosVelAccBounds::setTimeStep(doubledt)

◆ setVelocityBounds()

void tsid::tasks::TaskJointPosVelAccBounds::setVelocityBounds(ConstRefVectorupper)

◆ setVerbose()

void tsid::tasks::TaskJointPosVelAccBounds::setVerbose(boolverbose)

Member Data Documentation

◆ m_activeAxes

VectorXi tsid::tasks::TaskJointPosVelAccBounds::m_activeAxes
protected

◆ m_b_1

Vector tsid::tasks::TaskJointPosVelAccBounds::m_b_1
protected

◆ m_b_2

Vector tsid::tasks::TaskJointPosVelAccBounds::m_b_2
protected

◆ m_c_1

Vector tsid::tasks::TaskJointPosVelAccBounds::m_c_1
protected

◆ m_c_2

Vector tsid::tasks::TaskJointPosVelAccBounds::m_c_2
protected

◆ m_constraint

ConstraintInequality tsid::tasks::TaskJointPosVelAccBounds::m_constraint
protected

◆ m_ddq_1

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddq_1
protected

◆ m_ddq_2

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddq_2
protected

◆ m_ddqLB

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqLB
protected

◆ m_ddqLBAcc

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqLBAcc
protected

◆ m_ddqLBPos

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqLBPos
protected

◆ m_ddqLBVel

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqLBVel
protected

◆ m_ddqLBVia

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqLBVia
protected

◆ m_ddqMax

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqMax
protected

◆ m_ddqMax_q2

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqMax_q2
protected

◆ m_ddqMax_q3

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqMax_q3
protected

◆ m_ddqMin_q2

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqMin_q2
protected

◆ m_ddqMin_q3

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqMin_q3
protected

◆ m_ddqUB

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqUB
protected

◆ m_ddqUBAcc

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqUBAcc
protected

◆ m_ddqUBPos

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqUBPos
protected

◆ m_ddqUBVel

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqUBVel
protected

◆ m_ddqUBVia

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ddqUBVia
protected

◆ m_delta_1

Vector tsid::tasks::TaskJointPosVelAccBounds::m_delta_1
protected

◆ m_delta_2

Vector tsid::tasks::TaskJointPosVelAccBounds::m_delta_2
protected

◆ m_dq_square

Vector tsid::tasks::TaskJointPosVelAccBounds::m_dq_square
protected

◆ m_dqa

Vector tsid::tasks::TaskJointPosVelAccBounds::m_dqa
protected

◆ m_dqMax

Vector tsid::tasks::TaskJointPosVelAccBounds::m_dqMax
protected

◆ m_dqMaxViab

Vector tsid::tasks::TaskJointPosVelAccBounds::m_dqMaxViab
protected

◆ m_dqMinViab

Vector tsid::tasks::TaskJointPosVelAccBounds::m_dqMinViab
protected

◆ m_dt

double tsid::tasks::TaskJointPosVelAccBounds::m_dt
protected

◆ m_dt_ddqMax_dt

Vector tsid::tasks::TaskJointPosVelAccBounds::m_dt_ddqMax_dt
protected

◆ m_dt_dq

Vector tsid::tasks::TaskJointPosVelAccBounds::m_dt_dq
protected

◆ m_dt_square

double tsid::tasks::TaskJointPosVelAccBounds::m_dt_square
protected

◆ m_dt_two_dq

Vector tsid::tasks::TaskJointPosVelAccBounds::m_dt_two_dq
protected

◆ m_eps

double tsid::tasks::TaskJointPosVelAccBounds::m_eps
protected

◆ m_impose_acceleration_bounds

bool tsid::tasks::TaskJointPosVelAccBounds::m_impose_acceleration_bounds
protected

◆ m_impose_position_bounds

bool tsid::tasks::TaskJointPosVelAccBounds::m_impose_position_bounds
protected

◆ m_impose_velocity_bounds

bool tsid::tasks::TaskJointPosVelAccBounds::m_impose_velocity_bounds
protected

◆ m_impose_viability_bounds

bool tsid::tasks::TaskJointPosVelAccBounds::m_impose_viability_bounds
protected

◆ m_lb

Vector tsid::tasks::TaskJointPosVelAccBounds::m_lb
protected

◆ m_mask

Vector tsid::tasks::TaskJointPosVelAccBounds::m_mask
protected

◆ m_minus_dq_over_dt

Vector tsid::tasks::TaskJointPosVelAccBounds::m_minus_dq_over_dt
protected

◆ m_na

int tsid::tasks::TaskJointPosVelAccBounds::m_na
protected

◆ m_nv

int tsid::tasks::TaskJointPosVelAccBounds::m_nv
protected

◆ m_q_plus_dt_dq

Vector tsid::tasks::TaskJointPosVelAccBounds::m_q_plus_dt_dq
protected

◆ m_qa

Vector tsid::tasks::TaskJointPosVelAccBounds::m_qa
protected

◆ m_qMax

Vector tsid::tasks::TaskJointPosVelAccBounds::m_qMax
protected

◆ m_qMin

Vector tsid::tasks::TaskJointPosVelAccBounds::m_qMin
protected

◆ m_two_a

double tsid::tasks::TaskJointPosVelAccBounds::m_two_a
protected

◆ m_two_ddqMax

Vector tsid::tasks::TaskJointPosVelAccBounds::m_two_ddqMax
protected

◆ m_two_dt_sq

double tsid::tasks::TaskJointPosVelAccBounds::m_two_dt_sq
protected

◆ m_ub

Vector tsid::tasks::TaskJointPosVelAccBounds::m_ub
protected

◆ m_verbose

bool tsid::tasks::TaskJointPosVelAccBounds::m_verbose
protected

◆ m_viabViol

Vector tsid::tasks::TaskJointPosVelAccBounds::m_viabViol
protected

◆ Vector

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef math::Vector tsid::tasks::TaskJointPosVelAccBounds::Vector

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