18 #ifndef __invdyn_inverse_dynamics_formulation_base_hpp__ 19 #define __invdyn_inverse_dynamics_formulation_base_hpp__ 21 #include "tsid/deprecated.hh" 36 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
46 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
56 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
68 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
85 bool verbose =
false);
89 virtual Data&
data() = 0;
91 virtual unsigned int nVar()
const = 0;
92 virtual unsigned int nEq()
const = 0;
93 virtual unsigned int nIn()
const = 0;
95 virtual bool addMotionTask(TaskMotion&
task,
double weight,
96 unsigned int priorityLevel,
97 double transition_duration = 0.0) = 0;
99 virtual bool addForceTask(TaskContactForce& task,
double weight,
100 unsigned int priorityLevel,
101 double transition_duration = 0.0) = 0;
103 virtual bool addActuationTask(TaskActuation& task,
double weight,
104 unsigned int priorityLevel,
105 double transition_duration = 0.0) = 0;
107 virtual bool updateTaskWeight(
const std::string& task_name,
121 virtual bool addRigidContact(ContactBase&
contact,
122 double force_regularization_weight,
123 double motion_weight = 1.0,
124 unsigned int motion_priority_level = 0) = 0;
126 TSID_DEPRECATED
virtual bool addRigidContact(ContactBase& contact);
137 virtual bool updateRigidContactWeights(
const std::string& contact_name,
138 double force_regularization_weight,
139 double motion_weight = -1.0) = 0;
141 virtual bool addMeasuredForce(MeasuredForceBase& measuredForce) = 0;
143 virtual bool removeTask(
const std::string& taskName,
144 double transition_duration = 0.0) = 0;
146 virtual bool removeRigidContact(
const std::string& contactName,
147 double transition_duration = 0.0) = 0;
149 virtual bool removeMeasuredForce(
const std::string& measuredForceName) = 0;
151 virtual const HQPData& computeProblemData(
double time, ConstRefVector
q,
152 ConstRefVector
v) = 0;
154 virtual const Vector& getActuatorForces(
const HQPOutput&
sol) = 0;
155 virtual const Vector& getAccelerations(
const HQPOutput& sol) = 0;
156 virtual const Vector& getContactForces(
const HQPOutput& sol) = 0;
157 virtual bool getContactForces(
const std::string&
name,
const HQPOutput& sol,
168 #endif // ifndef __invdyn_inverse_dynamics_formulation_base_hpp__ Eigen::Ref< Vector > RefVector
Base template of a Task. Each class is defined according to a constant model of a robot...
EIGEN_MAKE_ALIGNED_OPERATOR_NEW tasks::TaskBase & task
EIGEN_MAKE_ALIGNED_OPERATOR_NEW tasks::TaskContactForce & task
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
EIGEN_MAKE_ALIGNED_OPERATOR_NEW contacts::MeasuredForceBase & measuredForce
TaskLevel(tasks::TaskBase &task, unsigned int priority)
const Eigen::Ref< const Vector > ConstRefVector
std::shared_ptr< math::ConstraintBase > constraint
Wrapper for a robot based on pinocchio.
std::shared_ptr< math::ConstraintBase > constraint