tsid
1.8.0
Efficient Task Space Inverse Dynamics for Multi-body Systems based on Pinocchio
|
#include <tsid/formulations/inverse-dynamics-formulation-acc-force.hpp>
Public Types | |
typedef math::Vector | Vector |
typedef math::Matrix | Matrix |
typedef math::ConstRefVector | ConstRefVector |
typedef tasks::TaskBase | TaskBase |
typedef tasks::TaskMotion | TaskMotion |
typedef tasks::TaskContactForce | TaskContactForce |
typedef tasks::TaskActuation | TaskActuation |
typedef contacts::MeasuredForceBase | MeasuredForceBase |
typedef solvers::HQPOutput | HQPOutput |
![]() | |
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 | |
InverseDynamicsFormulationAccForce (const std::string &name, RobotWrapper &robot, bool verbose=false) | |
Data & | data () override |
unsigned int | nVar () const override |
unsigned int | nEq () const override |
unsigned int | nIn () const override |
bool | addMotionTask (TaskMotion &task, double weight, unsigned int priorityLevel, double transition_duration=0.0) override |
bool | addForceTask (TaskContactForce &task, double weight, unsigned int priorityLevel, double transition_duration=0.0) override |
bool | addActuationTask (TaskActuation &task, double weight, unsigned int priorityLevel, double transition_duration=0.0) override |
bool | updateTaskWeight (const std::string &task_name, double weight) override |
bool | addRigidContact (ContactBase &contact, double force_regularization_weight, double motion_weight=1.0, unsigned int motion_priority_level=0) override |
Add a rigid contact constraint to the model, introducing the associated reaction forces as problem variables. More... | |
TSID_DEPRECATED bool | addRigidContact (ContactBase &contact) override |
bool | updateRigidContactWeights (const std::string &contact_name, double force_regularization_weight, double motion_weight=-1.0) override |
Update the weights associated to the specified contact. More... | |
bool | addMeasuredForce (MeasuredForceBase &measuredForce) override |
bool | removeTask (const std::string &taskName, double transition_duration=0.0) override |
bool | removeRigidContact (const std::string &contactName, double transition_duration=0.0) override |
bool | removeMeasuredForce (const std::string &measuredForceName) override |
const HQPData & | computeProblemData (double time, ConstRefVector q, ConstRefVector v) override |
const Vector & | getActuatorForces (const HQPOutput &sol) override |
const Vector & | getAccelerations (const HQPOutput &sol) override |
const Vector & | getContactForces (const HQPOutput &sol) override |
Vector | getContactForces (const std::string &name, const HQPOutput &sol) |
bool | getContactForces (const std::string &name, const HQPOutput &sol, RefVector f) override |
template<class TaskLevelPointer > | |
void | addTask (TaskLevelPointer task, double weight, unsigned int priorityLevel) |
void | resizeHqpData () |
bool | removeFromHqpData (const std::string &name) |
bool | decodeSolution (const HQPOutput &sol) |
![]() | |
InverseDynamicsFormulationBase (const std::string &name, RobotWrapper &robot, bool verbose=false) | |
virtual | ~InverseDynamicsFormulationBase ()=default |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef pinocchio::Data | Data |
Data | m_data |
HQPData | m_hqpData |
std::vector< std::shared_ptr< TaskLevel > > | m_taskMotions |
std::vector< std::shared_ptr< TaskLevelForce > > | m_taskContactForces |
std::vector< std::shared_ptr< TaskLevel > > | m_taskActuations |
std::vector< std::shared_ptr< ContactLevel > > | m_contacts |
std::vector< std::shared_ptr< MeasuredForceLevel > > | m_measuredForces |
double | m_t |
unsigned int | m_k |
time More... | |
unsigned int | m_v |
number of contact-force variables More... | |
unsigned int | m_u |
number of acceleration variables More... | |
unsigned int | m_eq |
number of unactuated DoFs More... | |
unsigned int | m_in |
number of equality constraints More... | |
Matrix | m_Jc |
number of inequality constraints More... | |
std::shared_ptr< math::ConstraintEquality > | m_baseDynamics |
contact force Jacobian More... | |
bool | m_solutionDecoded |
Vector | m_dv |
Vector | m_f |
Vector | m_tau |
Vector | h_fext |
std::vector< std::shared_ptr< ContactTransitionInfo > > | m_contactTransitions |
sum of external measured forces More... | |
![]() | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef pinocchio::Data | Data |
Additional Inherited Members | |
![]() | |
std::string | m_name |
RobotWrapper | m_robot |
bool | m_verbose |
InverseDynamicsFormulationAccForce::InverseDynamicsFormulationAccForce | ( | const std::string & | name, |
RobotWrapper & | robot, | ||
bool | verbose = false |
||
) |
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Reimplemented from tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Add a rigid contact constraint to the model, introducing the associated reaction forces as problem variables.
contact | The contact constraint to add |
force_regularization_weight | The weight of the force regularization task |
motion_weight | The weight of the motion task (e.g., zero acceleration of contact points) |
motion_priority_level | Priority level of the motion task |
Implements tsid::InverseDynamicsFormulationBase.
void InverseDynamicsFormulationAccForce::addTask | ( | TaskLevelPointer | task, |
double | weight, | ||
unsigned int | priorityLevel | ||
) |
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
bool InverseDynamicsFormulationAccForce::decodeSolution | ( | const HQPOutput & | sol | ) |
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
Vector InverseDynamicsFormulationAccForce::getContactForces | ( | const std::string & | name, |
const HQPOutput & | sol | ||
) |
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
bool InverseDynamicsFormulationAccForce::removeFromHqpData | ( | const std::string & | name | ) |
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
void InverseDynamicsFormulationAccForce::resizeHqpData | ( | ) |
|
overridevirtual |
Update the weights associated to the specified contact.
contact_name | Name of the contact to update |
force_regularization_weight | Weight of the force regularization task, if negative it is not updated |
motion_weight | Weight of the motion task, if negative it is not update |
Implements tsid::InverseDynamicsFormulationBase.
|
overridevirtual |
Implements tsid::InverseDynamicsFormulationBase.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef pinocchio::Data tsid::InverseDynamicsFormulationAccForce::Data |
Vector tsid::InverseDynamicsFormulationAccForce::h_fext |
std::shared_ptr<math::ConstraintEquality> tsid::InverseDynamicsFormulationAccForce::m_baseDynamics |
contact force Jacobian
std::vector<std::shared_ptr<ContactLevel> > tsid::InverseDynamicsFormulationAccForce::m_contacts |
std::vector<std::shared_ptr<ContactTransitionInfo> > tsid::InverseDynamicsFormulationAccForce::m_contactTransitions |
sum of external measured forces
Data tsid::InverseDynamicsFormulationAccForce::m_data |
Vector tsid::InverseDynamicsFormulationAccForce::m_dv |
unsigned int tsid::InverseDynamicsFormulationAccForce::m_eq |
number of unactuated DoFs
Vector tsid::InverseDynamicsFormulationAccForce::m_f |
HQPData tsid::InverseDynamicsFormulationAccForce::m_hqpData |
unsigned int tsid::InverseDynamicsFormulationAccForce::m_in |
number of equality constraints
Matrix tsid::InverseDynamicsFormulationAccForce::m_Jc |
number of inequality constraints
unsigned int tsid::InverseDynamicsFormulationAccForce::m_k |
time
std::vector<std::shared_ptr<MeasuredForceLevel> > tsid::InverseDynamicsFormulationAccForce::m_measuredForces |
bool tsid::InverseDynamicsFormulationAccForce::m_solutionDecoded |
double tsid::InverseDynamicsFormulationAccForce::m_t |
std::vector<std::shared_ptr<TaskLevel> > tsid::InverseDynamicsFormulationAccForce::m_taskActuations |
std::vector<std::shared_ptr<TaskLevelForce> > tsid::InverseDynamicsFormulationAccForce::m_taskContactForces |
std::vector<std::shared_ptr<TaskLevel> > tsid::InverseDynamicsFormulationAccForce::m_taskMotions |
Vector tsid::InverseDynamicsFormulationAccForce::m_tau |
unsigned int tsid::InverseDynamicsFormulationAccForce::m_u |
number of acceleration variables
unsigned int tsid::InverseDynamicsFormulationAccForce::m_v |
number of contact-force variables