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

Wrapper for a robot based on pinocchio. More...

#include <tsid/formulations/inverse-dynamics-formulation-base.hpp>

Inheritance diagram for tsid::InverseDynamicsFormulationBase:
Collaboration diagram for tsid::InverseDynamicsFormulationBase:

Public Types

typedef math::Vector Vector
typedef math::RefVector RefVector
typedef math::ConstRefVector ConstRefVector
typedef tasks::TaskMotion TaskMotion
typedef tasks::TaskContactForce TaskContactForce
typedef tasks::TaskActuation TaskActuation
typedef tasks::TaskBase TaskBase
typedef contacts::MeasuredForceBase MeasuredForceBase
typedef contacts::ContactBase ContactBase
typedef solvers::HQPData HQPData
typedef solvers::HQPOutput HQPOutput
typedef robots::RobotWrapper RobotWrapper

Public Member Functions

 InverseDynamicsFormulationBase (const std::string &name, RobotWrapper &robot, bool verbose=false)
virtual ~InverseDynamicsFormulationBase ()=default
virtual Datadata ()=0
virtual unsigned int nVar () const =0
virtual unsigned int nEq () const =0
virtual unsigned int nIn () const =0
virtual bool addMotionTask (TaskMotion &task, double weight, unsigned int priorityLevel, double transition_duration=0.0)=0
virtual bool addForceTask (TaskContactForce &task, double weight, unsigned int priorityLevel, double transition_duration=0.0)=0
virtual bool addActuationTask (TaskActuation &task, double weight, unsigned int priorityLevel, double transition_duration=0.0)=0
virtual bool updateTaskWeight (const std::string &task_name, double weight)=0
virtual bool addRigidContact (ContactBase &contact, double force_regularization_weight, double motion_weight=1.0, unsigned int motion_priority_level=0)=0
 Add a rigid contact constraint to the model, introducing the associated reaction forces as problem variables.
virtual TSID_DEPRECATED bool addRigidContact (ContactBase &contact)
virtual bool updateRigidContactWeights (const std::string &contact_name, double force_regularization_weight, double motion_weight=-1.0)=0
 Update the weights associated to the specified contact.
virtual bool addMeasuredForce (MeasuredForceBase &measuredForce)=0
virtual bool removeTask (const std::string &taskName, double transition_duration=0.0)=0
virtual bool removeRigidContact (const std::string &contactName, double transition_duration=0.0)=0
virtual bool removeMeasuredForce (const std::string &measuredForceName)=0
virtual const HQPDatacomputeProblemData (double time, ConstRefVector q, ConstRefVector v)=0
virtual const VectorgetActuatorForces (const HQPOutput &sol)=0
virtual const VectorgetAccelerations (const HQPOutput &sol)=0
virtual const VectorgetContactForces (const HQPOutput &sol)=0
virtual bool getContactForces (const std::string &name, const HQPOutput &sol, RefVector f)=0
virtual unsigned int getTaskPriority (const std::string &name)=0

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef pinocchio::Data Data

Protected Attributes

std::string m_name
RobotWrapper m_robot
bool m_verbose

Detailed Description

Wrapper for a robot based on pinocchio.

Member Typedef Documentation

◆ ConstRefVector

◆ ContactBase

◆ HQPData

◆ HQPOutput

◆ MeasuredForceBase

◆ RefVector

◆ RobotWrapper

◆ TaskActuation

◆ TaskBase

◆ TaskContactForce

◆ TaskMotion

◆ Vector

Constructor & Destructor Documentation

◆ InverseDynamicsFormulationBase()

tsid::InverseDynamicsFormulationBase::InverseDynamicsFormulationBase(const std::string &name,
RobotWrapper &robot,
boolverbose = false )

◆ ~InverseDynamicsFormulationBase()

virtual tsid::InverseDynamicsFormulationBase::~InverseDynamicsFormulationBase()
virtualdefault

Member Function Documentation

◆ addActuationTask()

virtual bool tsid::InverseDynamicsFormulationBase::addActuationTask(TaskActuation &task,
doubleweight,
unsigned intpriorityLevel,
doubletransition_duration = 0.0 )
pure virtual

◆ addForceTask()

virtual bool tsid::InverseDynamicsFormulationBase::addForceTask(TaskContactForce &task,
doubleweight,
unsigned intpriorityLevel,
doubletransition_duration = 0.0 )
pure virtual

◆ addMeasuredForce()

virtual bool tsid::InverseDynamicsFormulationBase::addMeasuredForce(MeasuredForceBase &measuredForce)
pure virtual

◆ addMotionTask()

virtual bool tsid::InverseDynamicsFormulationBase::addMotionTask(TaskMotion &task,
doubleweight,
unsigned intpriorityLevel,
doubletransition_duration = 0.0 )
pure virtual

◆ addRigidContact() [1/2]

bool tsid::InverseDynamicsFormulationBase::addRigidContact(ContactBase &contact)
virtual

◆ addRigidContact() [2/2]

virtual bool tsid::InverseDynamicsFormulationBase::addRigidContact(ContactBase &contact,
doubleforce_regularization_weight,
doublemotion_weight = 1.0,
unsigned intmotion_priority_level = 0 )
pure virtual

Add a rigid contact constraint to the model, introducing the associated reaction forces as problem variables.

Parameters
contactThe contact constraint to add
force_regularization_weightThe weight of the force regularization task
motion_weightThe weight of the motion task (e.g., zero acceleration of contact points)
motion_priority_levelPriority level of the motion task
Returns
True if everything went fine, false otherwise

Implemented in tsid::InverseDynamicsFormulationAccForce.

◆ computeProblemData()

virtual const HQPData & tsid::InverseDynamicsFormulationBase::computeProblemData(doubletime,
ConstRefVectorq,
ConstRefVectorv )
pure virtual

◆ data()

virtual Data & tsid::InverseDynamicsFormulationBase::data()
pure virtual

◆ getAccelerations()

virtual const Vector & tsid::InverseDynamicsFormulationBase::getAccelerations(const HQPOutput &sol)
pure virtual

◆ getActuatorForces()

virtual const Vector & tsid::InverseDynamicsFormulationBase::getActuatorForces(const HQPOutput &sol)
pure virtual

◆ getContactForces() [1/2]

virtual const Vector & tsid::InverseDynamicsFormulationBase::getContactForces(const HQPOutput &sol)
pure virtual

◆ getContactForces() [2/2]

virtual bool tsid::InverseDynamicsFormulationBase::getContactForces(const std::string &name,
const HQPOutput &sol,
RefVectorf )
pure virtual

◆ getTaskPriority()

virtual unsigned int tsid::InverseDynamicsFormulationBase::getTaskPriority(const std::string &name)
pure virtual

◆ nEq()

virtual unsigned int tsid::InverseDynamicsFormulationBase::nEq()const
pure virtual

◆ nIn()

virtual unsigned int tsid::InverseDynamicsFormulationBase::nIn()const
pure virtual

◆ nVar()

virtual unsigned int tsid::InverseDynamicsFormulationBase::nVar()const
pure virtual

◆ removeMeasuredForce()

virtual bool tsid::InverseDynamicsFormulationBase::removeMeasuredForce(const std::string &measuredForceName)
pure virtual

◆ removeRigidContact()

virtual bool tsid::InverseDynamicsFormulationBase::removeRigidContact(const std::string &contactName,
doubletransition_duration = 0.0 )
pure virtual

◆ removeTask()

virtual bool tsid::InverseDynamicsFormulationBase::removeTask(const std::string &taskName,
doubletransition_duration = 0.0 )
pure virtual

◆ updateRigidContactWeights()

virtual bool tsid::InverseDynamicsFormulationBase::updateRigidContactWeights(const std::string &contact_name,
doubleforce_regularization_weight,
doublemotion_weight = -1.0 )
pure virtual

Update the weights associated to the specified contact.

Parameters
contact_nameName of the contact to update
force_regularization_weightWeight of the force regularization task, if negative it is not updated
motion_weightWeight of the motion task, if negative it is not update
Returns
True if everything went fine, false otherwise

Implemented in tsid::InverseDynamicsFormulationAccForce.

◆ updateTaskWeight()

virtual bool tsid::InverseDynamicsFormulationBase::updateTaskWeight(const std::string &task_name,
doubleweight )
pure virtual

Member Data Documentation

◆ Data

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef pinocchio::Data tsid::InverseDynamicsFormulationBase::Data

◆ m_name

std::string tsid::InverseDynamicsFormulationBase::m_name
protected

◆ m_robot

RobotWrapper tsid::InverseDynamicsFormulationBase::m_robot
protected

◆ m_verbose

bool tsid::InverseDynamicsFormulationBase::m_verbose
protected

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