16 #include <RBDyn/Jacobian.h>
25 struct PolyTorqueBound;
37 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
38 const std::vector<rbd::MultiBodyConfig> & mbc,
43 virtual std::string
descBound(
const std::vector<rbd::MultiBody> & mbs,
int line)
override;
48 virtual const Eigen::VectorXd &
Lower()
const override;
49 virtual const Eigen::VectorXd &
Upper()
const override;
55 int lambdaBegin, nrLambda;
60 Eigen::VectorXd XL_, XU_;
62 std::vector<ContactData> cont_;
70 void computeTorque(
const Eigen::VectorXd & alphaD,
const Eigen::VectorXd & lambda);
71 const Eigen::VectorXd &
torque()
const;
72 void torque(
const std::vector<rbd::MultiBody> & mbs, std::vector<rbd::MultiBodyConfig> & mbcs)
const;
77 void computeMatrix(
const std::vector<rbd::MultiBody> & mb,
const std::vector<rbd::MultiBodyConfig> & mbcs);
81 virtual std::string
descGenInEq(
const std::vector<rbd::MultiBody> & mbs,
int line)
override;
86 virtual const Eigen::MatrixXd &
AGenInEq()
const override;
95 const std::string & bodyName,
97 std::vector<Eigen::Vector3d> points,
98 const std::vector<FrictionCone> & cones);
119 size_t updateIter_ = 0;
134 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
135 const std::vector<rbd::MultiBodyConfig> & mbcs,
138 const Eigen::MatrixXd
matrix()
const {
return A_; }
142 const rbd::ForwardDynamics
fd()
const;
165 const std::vector<SpringJoint> & springs);
172 const std::vector<SpringJoint> & springs);
175 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
176 const std::vector<rbd::MultiBodyConfig> & mbc,
203 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
204 const std::vector<rbd::MultiBodyConfig> & mbcs,
Definition: QPSolver.h:164
Definition: QPMotionConstr.h:66
void computeTorque(const Eigen::VectorXd &alphaD, const Eigen::VectorXd &lambda)
Eigen::MatrixXd A_
Definition: QPMotionConstr.h:117
virtual void updateNrVars(const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
virtual int maxGenInEq() const override
void torque(const std::vector< rbd::MultiBody > &mbs, std::vector< rbd::MultiBodyConfig > &mbcs) const
virtual std::string nameGenInEq() const override
void computeMatrix(const std::vector< rbd::MultiBody > &mb, const std::vector< rbd::MultiBodyConfig > &mbcs)
virtual std::string descGenInEq(const std::vector< rbd::MultiBody > &mbs, int line) override
Eigen::VectorXd AL_
Definition: QPMotionConstr.h:118
virtual const Eigen::MatrixXd & AGenInEq() const override
std::vector< ContactData > cont_
Definition: QPMotionConstr.h:113
rbd::ForwardDynamics fd_
Definition: QPMotionConstr.h:111
const Eigen::VectorXd & torque() const
int alphaDBegin_
Definition: QPMotionConstr.h:110
virtual const Eigen::VectorXd & LowerGenInEq() const override
virtual const Eigen::VectorXd & UpperGenInEq() const override
Eigen::MatrixXd fullJacLambda_
Definition: QPMotionConstr.h:112
MotionConstrCommon(const std::vector< rbd::MultiBody > &mbs, int robotIndex)
Eigen::VectorXd curTorque_
Definition: QPMotionConstr.h:115
Definition: QPMotionConstr.h:123
MotionConstr(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const TorqueDBound &tdb, double dt)
Eigen::VectorXd torqueL_
Definition: QPMotionConstr.h:145
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
Eigen::VectorXd tmpL_
Definition: QPMotionConstr.h:147
MotionConstr(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb)
const rbd::ForwardDynamics fd() const
Eigen::VectorXd torqueDtL_
Definition: QPMotionConstr.h:146
Eigen::MatrixXd contactMatrix() const
const Eigen::MatrixXd matrix() const
Definition: QPMotionConstr.h:138
Use polynome in function of q to compute torque limits. BEWARE: Only work with 1 dof/param joint.
Definition: QPMotionConstr.h:198
std::vector< Eigen::VectorXd > torqueL_
Definition: QPMotionConstr.h:208
std::vector< int > jointIndex_
Definition: QPMotionConstr.h:209
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
MotionPolyConstr(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const PolyTorqueBound &ptb)
Definition: QPMotionConstr.h:160
std::vector< SpringJointData > springs_
Definition: QPMotionConstr.h:190
MotionSpringConstr(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const std::vector< SpringJoint > &springs)
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbc, const SolverData &data) override
MotionSpringConstr(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const TorqueDBound &tdb, double dt, const std::vector< SpringJoint > &springs)
Definition: QPMotionConstr.h:31
virtual int beginVar() const override
virtual std::string descBound(const std::vector< rbd::MultiBody > &mbs, int line) override
virtual const Eigen::VectorXd & Lower() const override
virtual const Eigen::VectorXd & Upper() const override
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbc, const SolverData &data) override
virtual std::string nameBound() const override
virtual void updateNrVars(const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
Definition: QPSolverData.h:28
Definition: GenQPUtils.h:19
Definition: QPMotionConstr.h:181
double C
Definition: QPMotionConstr.h:185
double O
Definition: QPMotionConstr.h:186
int posInDof
Definition: QPMotionConstr.h:183
int index
Definition: QPMotionConstr.h:182
double K
Definition: QPMotionConstr.h:184
Definition: QPMotionConstr.h:151
std::string jointName
Definition: QPMotionConstr.h:155
double C
Definition: QPMotionConstr.h:156
double K
Definition: QPMotionConstr.h:156
double O
Definition: QPMotionConstr.h:156
SpringJoint(const std::string &jName, double K, double C, double O)
Definition: QPMotionConstr.h:153
SpringJoint()
Definition: QPMotionConstr.h:152