26 struct PolyTorqueBound;
38 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
39 const std::vector<rbd::MultiBodyConfig> & mbc,
44 virtual std::string
descBound(
const std::vector<rbd::MultiBody> & mbs,
int line)
override;
49 virtual const Eigen::VectorXd &
Lower()
const override;
50 virtual const Eigen::VectorXd &
Upper()
const override;
56 int lambdaBegin, nrLambda;
61 Eigen::VectorXd XL_, XU_;
63 std::vector<ContactData> cont_;
71 std::optional<Eigen::VectorXd> externalTorque = std::nullopt);
73 void computeTorque(
const Eigen::VectorXd & alphaD,
const Eigen::VectorXd & lambda);
74 const Eigen::VectorXd &
torque()
const;
75 void torque(
const std::vector<rbd::MultiBody> & mbs, std::vector<rbd::MultiBodyConfig> & mbcs)
const;
80 void computeMatrix(
const std::vector<rbd::MultiBody> & mb,
const std::vector<rbd::MultiBodyConfig> & mbcs);
84 virtual std::string
descGenInEq(
const std::vector<rbd::MultiBody> & mbs,
int line)
override;
89 virtual const Eigen::MatrixXd &
AGenInEq()
const override;
103 const std::string & bodyName,
105 std::vector<Eigen::Vector3d> points,
106 const std::vector<FrictionCone> & cones);
129 size_t updateIter_ = 0;
138 std::optional<Eigen::VectorXd> externalTorque = std::nullopt);
145 std::optional<Eigen::VectorXd> externalTorque = std::nullopt);
148 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
149 const std::vector<rbd::MultiBodyConfig> & mbcs,
152 const Eigen::MatrixXd
matrix()
const {
return A_; }
179 const std::vector<SpringJoint> & springs,
180 std::optional<Eigen::VectorXd> externalTorque = std::nullopt);
187 const std::vector<SpringJoint> & springs,
188 std::optional<Eigen::VectorXd> externalTorque = std::nullopt);
191 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
192 const std::vector<rbd::MultiBodyConfig> & mbc,
219 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
220 const std::vector<rbd::MultiBodyConfig> & mbcs,
Definition: QPSolver.h:171
Definition: QPMotionConstr.h:67
void computeTorque(const Eigen::VectorXd &alphaD, const Eigen::VectorXd &lambda)
Eigen::MatrixXd A_
Definition: QPMotionConstr.h:127
virtual void updateNrVars(const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
virtual int maxGenInEq() const override
std::optional< Eigen::VectorXd > extTorque_
Definition: QPMotionConstr.h:125
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:128
virtual const Eigen::MatrixXd & AGenInEq() const override
std::vector< ContactData > cont_
Definition: QPMotionConstr.h:121
rbd::ForwardDynamics fd_
Definition: QPMotionConstr.h:119
const Eigen::VectorXd & torque() const
int alphaDBegin_
Definition: QPMotionConstr.h:118
virtual const Eigen::VectorXd & LowerGenInEq() const override
void setExternalTorques(const Eigen::VectorXd &torques)
virtual const Eigen::VectorXd & UpperGenInEq() const override
Eigen::MatrixXd fullJacLambda_
Definition: QPMotionConstr.h:120
void clearExternalTorques()
MotionConstrCommon(const std::vector< rbd::MultiBody > &mbs, int robotIndex, std::optional< Eigen::VectorXd > externalTorque=std::nullopt)
Eigen::VectorXd curTorque_
Definition: QPMotionConstr.h:123
Definition: QPMotionConstr.h:133
MotionConstr(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const TorqueDBound &tdb, double dt, std::optional< Eigen::VectorXd > externalTorque=std::nullopt)
Eigen::VectorXd torqueL_
Definition: QPMotionConstr.h:159
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:161
const rbd::ForwardDynamics fd() const
Eigen::VectorXd torqueDtL_
Definition: QPMotionConstr.h:160
Eigen::MatrixXd contactMatrix() const
MotionConstr(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, std::optional< Eigen::VectorXd > externalTorque=std::nullopt)
const Eigen::MatrixXd matrix() const
Definition: QPMotionConstr.h:152
Use polynome in function of q to compute torque limits. BEWARE: Only work with 1 dof/param joint.
Definition: QPMotionConstr.h:214
std::vector< Eigen::VectorXd > torqueL_
Definition: QPMotionConstr.h:224
std::vector< int > jointIndex_
Definition: QPMotionConstr.h:225
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:174
MotionSpringConstr(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const TorqueDBound &tdb, double dt, const std::vector< SpringJoint > &springs, std::optional< Eigen::VectorXd > externalTorque=std::nullopt)
MotionSpringConstr(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const std::vector< SpringJoint > &springs, std::optional< Eigen::VectorXd > externalTorque=std::nullopt)
std::vector< SpringJointData > springs_
Definition: QPMotionConstr.h:206
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbc, const SolverData &data) override
Definition: QPMotionConstr.h:32
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:197
double C
Definition: QPMotionConstr.h:201
double O
Definition: QPMotionConstr.h:202
int posInDof
Definition: QPMotionConstr.h:199
int index
Definition: QPMotionConstr.h:198
double K
Definition: QPMotionConstr.h:200
Definition: QPMotionConstr.h:165
std::string jointName
Definition: QPMotionConstr.h:169
double C
Definition: QPMotionConstr.h:170
double K
Definition: QPMotionConstr.h:170
double O
Definition: QPMotionConstr.h:170
SpringJoint(const std::string &jName, double K, double C, double O)
Definition: QPMotionConstr.h:167
SpringJoint()
Definition: QPMotionConstr.h:166