25 struct MultiBodyConfig;
41 const Eigen::VectorXd & dimWeight,
44 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(alphaDBegin_, alphaDBegin_); }
48 const Eigen::VectorXd &
dimWeight()
const {
return dimWeight_; }
52 virtual const Eigen::MatrixXd &
Q()
const override;
53 virtual const Eigen::VectorXd &
C()
const override;
63 Eigen::VectorXd dimWeight_;
64 int robotIndex_, alphaDBegin_;
69 Eigen::MatrixXd preQ_;
70 Eigen::VectorXd preC_;
86 const Eigen::VectorXd & dimWeight,
93 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
94 const std::vector<rbd::MultiBodyConfig> & mbcs,
98 double stiffness_, stiffnessSqrt_;
116 const Eigen::VectorXd & dimWeight,
125 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
126 const std::vector<rbd::MultiBodyConfig> & mbcs,
130 double gainPos_, gainVel_;
131 Eigen::VectorXd errorPos_, errorVel_, refAccel_;
149 const Eigen::VectorXd & dimWeight,
153 void setGains(
const Eigen::VectorXd & stiffness,
const Eigen::VectorXd & damping);
158 void damping(
const Eigen::VectorXd & damping);
161 void refVel(
const Eigen::VectorXd & refVel);
166 void update(
const std::vector<rbd::MultiBody> & mbs,
167 const std::vector<rbd::MultiBodyConfig> & mbcs,
171 Eigen::VectorXd stiffness_, damping_;
172 Eigen::VectorXd refVel_, refAccel_;
179 PIDTask(
const std::vector<rbd::MultiBody> & mbs,
187 PIDTask(
const std::vector<rbd::MultiBody> & mbs,
193 const Eigen::VectorXd & dimWeight,
203 void error(
const Eigen::VectorXd & err);
204 void errorD(
const Eigen::VectorXd & errD);
205 void errorI(
const Eigen::VectorXd & errI);
207 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
208 const std::vector<rbd::MultiBodyConfig> & mbcs,
213 Eigen::VectorXd error_, errorD_, errorI_;
224 const Eigen::VectorXd & objDot,
232 const Eigen::VectorXd & objDot,
233 const Eigen::VectorXd & dimWeight,
239 int iter()
const {
return iter_; }
240 void iter(
int i) { iter_ = i; }
245 const Eigen::VectorXd &
objDot()
const {
return objDot_; }
246 void objDot(
const Eigen::VectorXd & o) { objDot_ = o; }
248 const Eigen::VectorXd &
dimWeight()
const {
return dimWeight_; }
249 void dimWeight(
const Eigen::VectorXd & o) { dimWeight_ = o; }
251 const Eigen::VectorXd &
phi()
const {
return phi_; }
252 const Eigen::VectorXd &
psi()
const {
return psi_; }
254 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(alphaDBegin_, alphaDBegin_); }
257 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
258 const std::vector<rbd::MultiBodyConfig> & mbcs,
261 virtual const Eigen::MatrixXd &
Q()
const override;
262 virtual const Eigen::VectorXd &
C()
const override;
269 Eigen::VectorXd objDot_;
270 Eigen::VectorXd dimWeight_;
271 int robotIndex_, alphaDBegin_;
273 Eigen::VectorXd phi_, psi_;
278 Eigen::MatrixXd preQ_;
279 Eigen::VectorXd CVecSum_, preC_;
288 const std::vector<std::string> & activeJointsName,
289 const std::map<std::string, std::vector<std::array<int, 2>>> & activeDofs = {});
293 const std::vector<std::string> & unactiveJointsName,
294 const std::map<std::string, std::vector<std::array<int, 2>>> & unactiveDofs = {});
304 const std::vector<std::string> & selectedJointsName,
305 const std::map<std::string, std::vector<std::array<int, 2>>> & activeDofs = {});
307 const std::vector<SelectedData>
selectedJoints()
const {
return selectedJoints_; }
309 virtual int dim()
override;
310 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
311 const std::vector<rbd::MultiBodyConfig> & mbcs,
314 virtual const Eigen::MatrixXd &
jac()
const override;
315 virtual const Eigen::VectorXd &
eval()
const override;
316 virtual const Eigen::VectorXd &
speed()
const override;
317 virtual const Eigen::VectorXd &
normalAcc()
const override;
320 Eigen::MatrixXd jac_;
321 std::vector<SelectedData> selectedJoints_;
338 {
damping = 2. * std::sqrt(stif); }
354 const Eigen::VectorXd & jointSelect,
360 const std::string & efName,
375 const Eigen::VectorXd & jointSelect,
383 const std::string & efName,
387 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
388 const std::vector<rbd::MultiBodyConfig> & mbcs,
391 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(0, 0); }
393 virtual const Eigen::MatrixXd &
Q()
const override {
return Q_; }
395 virtual const Eigen::VectorXd &
C()
const override {
return C_; }
397 virtual const Eigen::VectorXd &
jointSelect()
const {
return jointSelector_; }
401 int alphaDBegin_, lambdaBegin_;
403 Eigen::VectorXd jointSelector_;
413 std::vector<std::vector<double>> q,
419 void posture(std::vector<std::vector<double>> q) { pt_.posture(q); }
421 const std::vector<std::vector<double>>
posture()
const {
return pt_.posture(); }
430 void gains(
double stiffness,
double damping);
432 void jointsStiffness(
const std::vector<rbd::MultiBody> & mbs,
const std::vector<JointStiffness> & jsv);
434 void jointsGains(
const std::vector<rbd::MultiBody> & mbs,
const std::vector<JointGains> & jgv);
436 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(alphaDBegin_, alphaDBegin_); }
439 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
440 const std::vector<rbd::MultiBodyConfig> & mbcs,
443 virtual const Eigen::MatrixXd &
Q()
const override;
444 virtual const Eigen::VectorXd &
C()
const override;
446 const Eigen::VectorXd &
eval()
const;
448 inline void refVel(
const Eigen::VectorXd & refVel) noexcept { refVel_ =
refVel; }
449 inline const Eigen::VectorXd &
refVel() const noexcept {
return refVel_; }
450 inline void refAccel(
const Eigen::VectorXd & refAccel) noexcept
452 assert(refAccel.size() == refAccel_.size());
453 refAccel_ = refAccel;
455 inline const Eigen::VectorXd &
refAccel() const noexcept {
return refAccel_; }
457 inline const Eigen::VectorXd &
dimWeight() const noexcept {
return dimWeight_; }
459 inline void dimWeight(
const Eigen::VectorXd & dimW) noexcept
461 assert(dimW.size() == dimWeight_.size());
468 double stiffness, damping;
477 int robotIndex_, alphaDBegin_;
479 std::vector<JointData> jointDatas_;
483 Eigen::VectorXd alphaVec_;
484 Eigen::VectorXd refVel_, refAccel_;
485 Eigen::VectorXd dimWeight_;
493 const std::string & bodyName,
494 const Eigen::Vector3d & pos,
495 const Eigen::Vector3d & bodyPoint = Eigen::Vector3d::Zero());
499 void position(
const Eigen::Vector3d & pos) { pt_.position(pos); }
501 const Eigen::Vector3d &
position()
const {
return pt_.position(); }
503 void bodyPoint(
const Eigen::Vector3d & point) { pt_.bodyPoint(point); }
505 const Eigen::Vector3d &
bodyPoint()
const {
return pt_.bodyPoint(); }
507 virtual int dim()
override;
508 virtual void update(
const std::vector<rbd::MultiBody> & mb,
509 const std::vector<rbd::MultiBodyConfig> & mbc,
512 virtual const Eigen::MatrixXd &
jac()
const override;
513 virtual const Eigen::VectorXd &
eval()
const override;
514 virtual const Eigen::VectorXd &
speed()
const override;
515 virtual const Eigen::VectorXd &
normalAcc()
const override;
527 const std::string & bodyName,
528 const Eigen::Quaterniond & ori);
531 const std::string & bodyName,
532 const Eigen::Matrix3d & ori);
536 void orientation(
const Eigen::Quaterniond & ori) { ot_.orientation(ori); }
538 void orientation(
const Eigen::Matrix3d & ori) { ot_.orientation(ori); }
540 const Eigen::Matrix3d &
orientation()
const {
return ot_.orientation(); }
542 virtual int dim()
override;
543 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
544 const std::vector<rbd::MultiBodyConfig> & mbcs,
547 virtual const Eigen::MatrixXd &
jac()
const override;
548 virtual const Eigen::VectorXd &
eval()
const override;
549 virtual const Eigen::VectorXd &
speed()
const override;
550 virtual const Eigen::VectorXd &
normalAcc()
const override;
557 template<
typename transform_task_t>
563 const std::string & bodyName,
580 virtual int dim()
override {
return 6; }
582 virtual const Eigen::MatrixXd &
jac()
const override {
return tt_.jac(); }
584 virtual const Eigen::VectorXd &
eval()
const override {
return tt_.eval(); }
586 virtual const Eigen::VectorXd &
speed()
const override {
return tt_.speed(); }
588 virtual const Eigen::VectorXd &
normalAcc()
const override {
return tt_.normalAcc(); }
601 const std::string & bodyName,
605 virtual void update(
const std::vector<rbd::MultiBody> & mb,
606 const std::vector<rbd::MultiBodyConfig> & mbc,
616 const std::string & bodyName,
619 const Eigen::Matrix3d & E_0_c = Eigen::Matrix3d::Identity());
621 void E_0_c(
const Eigen::Matrix3d & E_0_c);
622 const Eigen::Matrix3d &
E_0_c()
const;
624 virtual void update(
const std::vector<rbd::MultiBody> & mb,
625 const std::vector<rbd::MultiBodyConfig> & mbc,
634 const std::string & bodyName,
635 const Eigen::Quaterniond & ori,
639 const std::string & bodyName,
640 const Eigen::Matrix3d & ori,
645 void orientation(
const Eigen::Quaterniond & ori) { ot_.orientation(ori); }
647 void orientation(
const Eigen::Matrix3d & ori) { ot_.orientation(ori); }
649 const Eigen::Matrix3d &
orientation()
const {
return ot_.orientation(); }
651 virtual int dim()
override;
652 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
653 const std::vector<rbd::MultiBodyConfig> & mbcs,
656 virtual const Eigen::MatrixXd &
jac()
const override;
657 virtual const Eigen::VectorXd &
eval()
const override;
658 virtual const Eigen::VectorXd &
speed()
const override;
659 virtual const Eigen::VectorXd &
normalAcc()
const override;
671 const std::string & bodyName,
672 const Eigen::Vector2d & point2d,
673 double depthEstimate,
675 const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero());
678 const std::string & bodyName,
679 const Eigen::Vector3d & point3d,
681 const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero());
685 void error(
const Eigen::Vector2d & point2d,
const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero())
686 { gazet_.error(point2d, point2d_ref); }
688 void error(
const Eigen::Vector3d & point3d,
const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero())
689 { gazet_.error(point3d, point2d_ref); }
691 virtual int dim()
override;
692 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
693 const std::vector<rbd::MultiBodyConfig> & mbcs,
696 virtual const Eigen::MatrixXd &
jac()
const override;
697 virtual const Eigen::VectorXd &
eval()
const override;
698 virtual const Eigen::VectorXd &
speed()
const override;
699 virtual const Eigen::VectorXd &
normalAcc()
const override;
711 const std::string & bodyName,
719 virtual int dim()
override;
720 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
721 const std::vector<rbd::MultiBodyConfig> & mbcs,
724 virtual const Eigen::MatrixXd &
jac()
const override;
725 virtual const Eigen::VectorXd &
eval()
const override;
726 virtual const Eigen::VectorXd &
speed()
const override;
727 virtual const Eigen::VectorXd &
normalAcc()
const override;
737 CoMTask(
const std::vector<rbd::MultiBody> & mbs,
int robotIndex,
const Eigen::Vector3d & com);
738 CoMTask(
const std::vector<rbd::MultiBody> & mbs,
740 const Eigen::Vector3d & com,
741 std::vector<double> weight);
745 void com(
const Eigen::Vector3d & com) { ct_.com(com); }
747 const Eigen::Vector3d &
com()
const {
return ct_.com(); }
749 const Eigen::Vector3d &
actual()
const {
return ct_.actual(); }
753 virtual int dim()
override;
754 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
755 const std::vector<rbd::MultiBodyConfig> & mbcs,
758 virtual const Eigen::MatrixXd &
jac()
const override;
759 virtual const Eigen::VectorXd &
eval()
const override;
760 virtual const Eigen::VectorXd &
speed()
const override;
761 virtual const Eigen::VectorXd &
normalAcc()
const override;
772 std::vector<int> robotIndexes,
773 const Eigen::Vector3d & com,
777 std::vector<int> robotIndexes,
778 const Eigen::Vector3d & com,
780 const Eigen::Vector3d & dimWeight,
785 void com(
const Eigen::Vector3d & com) { mct_.com(com); }
787 const Eigen::Vector3d
com()
const {
return mct_.com(); }
797 const Eigen::Vector3d &
dimWeight()
const {
return dimWeight_; }
799 virtual std::pair<int, int>
begin()
const override {
return {alphaDBegin_, alphaDBegin_}; }
802 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
803 const std::vector<rbd::MultiBodyConfig> & mbcs,
806 virtual const Eigen::MatrixXd &
Q()
const override;
807 virtual const Eigen::VectorXd &
C()
const override;
809 const Eigen::VectorXd &
eval()
const;
810 const Eigen::VectorXd &
speed()
const;
813 void init(
const std::vector<rbd::MultiBody> & mbs);
817 double stiffness_, stiffnessSqrt_;
818 Eigen::Vector3d dimWeight_;
819 std::vector<int> posInQ_;
823 Eigen::Vector3d CSum_;
825 Eigen::MatrixXd preQ_;
834 const std::string & r1BodyName,
835 const std::string & r2BodyName,
855 const Eigen::VectorXd &
dimWeight()
const {
return dimWeight_; }
857 virtual std::pair<int, int>
begin()
const override {
return {alphaDBegin_, alphaDBegin_}; }
860 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
861 const std::vector<rbd::MultiBodyConfig> & mbcs,
864 virtual const Eigen::MatrixXd &
Q()
const override;
865 virtual const Eigen::VectorXd &
C()
const override;
867 const Eigen::VectorXd &
eval()
const;
868 const Eigen::VectorXd &
speed()
const;
872 double stiffness_, stiffnessSqrt_;
873 Eigen::VectorXd dimWeight_;
874 std::vector<int> posInQ_, robotIndexes_;
878 Eigen::VectorXd CSum_;
880 Eigen::MatrixXd preQ_;
894 virtual int dim()
override;
895 virtual void update(
const std::vector<rbd::MultiBody> & mb,
896 const std::vector<rbd::MultiBodyConfig> & mbc,
899 virtual const Eigen::MatrixXd &
jac()
const override;
900 virtual const Eigen::VectorXd &
eval()
const override;
901 virtual const Eigen::VectorXd &
speed()
const override;
902 virtual const Eigen::VectorXd &
normalAcc()
const override;
913 :
Task(weight), contactId_(contactId), begin_(0), stiffness_(stiffness), stiffnessSqrt_(2 * std::
sqrt(stiffness)),
914 conesJac_(), error_(
Eigen::Vector3d::Zero()), errorD_(
Eigen::Vector3d::Zero()), Q_(), C_()
918 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(begin_, begin_); }
920 void error(
const Eigen::Vector3d & error);
921 void errorD(
const Eigen::Vector3d & errorD);
924 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
925 const std::vector<rbd::MultiBodyConfig> & mbcs,
928 virtual const Eigen::MatrixXd &
Q()
const override;
929 virtual const Eigen::VectorXd &
C()
const override;
935 double stiffness_, stiffnessSqrt_;
936 Eigen::MatrixXd conesJac_;
937 Eigen::Vector3d error_, errorD_;
947 :
Task(weight), contactId_(contactId), origin_(origin), axis_(axis), begin_(0), Q_(), C_()
951 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(begin_, begin_); }
954 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
955 const std::vector<rbd::MultiBodyConfig> & mbcs,
958 virtual const Eigen::MatrixXd &
Q()
const override;
959 virtual const Eigen::VectorXd &
C()
const override;
963 Eigen::Vector3d origin_;
964 Eigen::Vector3d axis_;
976 const std::string & bodyName,
977 const Eigen::Vector3d & vel,
978 const Eigen::Vector3d & bodyPoint = Eigen::Vector3d::Zero());
982 void velocity(
const Eigen::Vector3d & s) { pt_.velocity(s); }
984 const Eigen::Vector3d &
velocity()
const {
return pt_.velocity(); }
986 void bodyPoint(
const Eigen::Vector3d & point) { pt_.bodyPoint(point); }
988 const Eigen::Vector3d &
bodyPoint()
const {
return pt_.bodyPoint(); }
990 virtual int dim()
override;
991 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
992 const std::vector<rbd::MultiBodyConfig> & mbcs,
995 virtual const Eigen::MatrixXd &
jac()
const override;
996 virtual const Eigen::VectorXd &
eval()
const override;
997 virtual const Eigen::VectorXd &
speed()
const override;
998 virtual const Eigen::VectorXd &
normalAcc()
const override;
1010 const std::string & bodyName,
1011 const Eigen::Vector3d & bodyPoint,
1012 const Eigen::Vector3d & bodyAxis,
1013 const std::vector<std::string> & trackingJointsName,
1014 const Eigen::Vector3d & trackedPoint);
1020 const Eigen::Vector3d &
trackedPoint()
const {
return ott_.trackedPoint(); }
1022 void bodyPoint(
const Eigen::Vector3d & bp) { ott_.bodyPoint(bp); }
1024 const Eigen::Vector3d &
bodyPoint()
const {
return ott_.bodyPoint(); }
1026 void bodyAxis(
const Eigen::Vector3d & ba) { ott_.bodyAxis(ba); }
1028 const Eigen::Vector3d &
bodyAxis()
const {
return ott_.bodyAxis(); }
1031 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
1032 const std::vector<rbd::MultiBodyConfig> & mbcs,
1035 virtual const Eigen::MatrixXd &
jac()
const override;
1036 virtual const Eigen::VectorXd &
eval()
const override;
1037 virtual const Eigen::VectorXd &
speed()
const override;
1043 Eigen::VectorXd alphaVec_;
1044 Eigen::VectorXd speed_, normalAcc_;
1052 const double timestep,
1055 const Eigen::Vector3d & u1 = Eigen::Vector3d::Zero(),
1056 const Eigen::Vector3d & u2 = Eigen::Vector3d::Zero());
1063 rdt_.robotPoint(bIndex, point);
1068 rdt_.envPoint(bIndex, point);
1073 rdt_.vector(bIndex, u);
1077 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
1078 const std::vector<rbd::MultiBodyConfig> & mbcs,
1081 virtual const Eigen::MatrixXd &
jac()
const override;
1082 virtual const Eigen::VectorXd &
eval()
const override;
1083 virtual const Eigen::VectorXd &
speed()
const override;
1096 const std::string & bodyName,
1097 const Eigen::Vector3d & bodyVector,
1098 const Eigen::Vector3d & targetVector);
1101 void bodyVector(
const Eigen::Vector3d & vector) { vot_.bodyVector(vector); }
1102 const Eigen::Vector3d &
bodyVector()
const {
return vot_.bodyVector(); }
1103 void target(
const Eigen::Vector3d & vector) { vot_.target(vector); }
1104 const Eigen::Vector3d &
target()
const {
return vot_.target(); }
1105 const Eigen::Vector3d &
actual()
const {
return vot_.actual(); }
1108 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
1109 const std::vector<rbd::MultiBodyConfig> & mbcs,
1112 virtual const Eigen::MatrixXd &
jac()
const override;
1113 virtual const Eigen::VectorXd &
eval()
const override;
1114 virtual const Eigen::VectorXd &
speed()
const override;
int bodyIndexByName(const std::string &name) const
std::tuple< std::string, Eigen::Vector3d, Eigen::Vector3d > rbInfo
Definition: Tasks.h:599
Definition: QPTasks.h:735
void com(const Eigen::Vector3d &com)
Definition: QPTasks.h:745
virtual const Eigen::VectorXd & eval() const override
const Eigen::Vector3d & com() const
Definition: QPTasks.h:747
virtual const Eigen::MatrixXd & jac() const override
CoMTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const Eigen::Vector3d &com)
const Eigen::Vector3d & actual() const
Definition: QPTasks.h:749
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
CoMTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const Eigen::Vector3d &com, std::vector< double > weight)
tasks::CoMTask & task()
Definition: QPTasks.h:743
void updateInertialParameters(const std::vector< rbd::MultiBody > &mbs)
virtual const Eigen::VectorXd & normalAcc() const override
virtual int dim() override
virtual const Eigen::VectorXd & speed() const override
Definition: QPTasks.h:667
GazeTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const std::string &bodyName, const Eigen::Vector2d &point2d, double depthEstimate, const sva::PTransformd &X_b_gaze, const Eigen::Vector2d &point2d_ref=Eigen::Vector2d::Zero())
GazeTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const std::string &bodyName, const Eigen::Vector3d &point3d, const sva::PTransformd &X_b_gaze, const Eigen::Vector2d &point2d_ref=Eigen::Vector2d::Zero())
virtual int dim() override
void error(const Eigen::Vector2d &point2d, const Eigen::Vector2d &point2d_ref=Eigen::Vector2d::Zero())
Definition: QPTasks.h:685
virtual const Eigen::VectorXd & normalAcc() const override
virtual const Eigen::VectorXd & eval() const override
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
virtual const Eigen::VectorXd & speed() const override
void error(const Eigen::Vector3d &point3d, const Eigen::Vector2d &point2d_ref=Eigen::Vector2d::Zero())
Definition: QPTasks.h:688
tasks::GazeTask & task()
Definition: QPTasks.h:683
virtual const Eigen::MatrixXd & jac() const override
Definition: QPTasks.h:944
virtual std::pair< int, int > begin() const override
Definition: QPTasks.h:951
virtual const Eigen::VectorXd & C() const override
virtual const Eigen::MatrixXd & Q() const override
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
GripperTorqueTask(ContactId contactId, const Eigen::Vector3d &origin, const Eigen::Vector3d &axis, double weight)
Definition: QPTasks.h:946
virtual void updateNrVars(const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
Definition: QPSolver.h:303
Definition: QPTasks.h:283
virtual const Eigen::VectorXd & normalAcc() const override
virtual const Eigen::VectorXd & eval() const override
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
static JointsSelector UnactiveJoints(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hl, const std::vector< std::string > &unactiveJointsName, const std::map< std::string, std::vector< std::array< int, 2 >>> &unactiveDofs={})
const std::vector< SelectedData > selectedJoints() const
Definition: QPTasks.h:307
virtual const Eigen::VectorXd & speed() const override
virtual const Eigen::MatrixXd & jac() const override
JointsSelector(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hl, const std::vector< std::string > &selectedJointsName, const std::map< std::string, std::vector< std::array< int, 2 >>> &activeDofs={})
virtual int dim() override
static JointsSelector ActiveJoints(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hl, const std::vector< std::string > &activeJointsName, const std::map< std::string, std::vector< std::array< int, 2 >>> &activeDofs={})
Definition: QPTasks.h:972
virtual const Eigen::VectorXd & eval() const override
virtual const Eigen::VectorXd & speed() const override
const Eigen::Vector3d & bodyPoint() const
Definition: QPTasks.h:988
virtual const Eigen::MatrixXd & jac() const override
virtual int dim() override
const Eigen::Vector3d & velocity() const
Definition: QPTasks.h:984
tasks::LinVelocityTask & task()
Definition: QPTasks.h:980
void velocity(const Eigen::Vector3d &s)
Definition: QPTasks.h:982
void bodyPoint(const Eigen::Vector3d &point)
Definition: QPTasks.h:986
virtual const Eigen::VectorXd & normalAcc() const override
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
LinVelocityTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const std::string &bodyName, const Eigen::Vector3d &vel, const Eigen::Vector3d &bodyPoint=Eigen::Vector3d::Zero())
Definition: QPTasks.h:884
virtual const Eigen::VectorXd & eval() const override
virtual const Eigen::VectorXd & normalAcc() const override
const sva::ForceVecd momentum() const
Definition: QPTasks.h:892
virtual int dim() override
tasks::MomentumTask & task()
Definition: QPTasks.h:888
void momentum(const sva::ForceVecd &mom)
Definition: QPTasks.h:890
virtual void update(const std::vector< rbd::MultiBody > &mb, const std::vector< rbd::MultiBodyConfig > &mbc, const SolverData &data) override
virtual const Eigen::MatrixXd & jac() const override
virtual const Eigen::VectorXd & speed() const override
MomentumTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const sva::ForceVecd &mom)
Definition: QPMotionConstr.h:123
Definition: QPTasks.h:769
void updateInertialParameters(const std::vector< rbd::MultiBody > &mbs)
void com(const Eigen::Vector3d &com)
Definition: QPTasks.h:785
virtual const Eigen::MatrixXd & Q() const override
virtual std::pair< int, int > begin() const override
Definition: QPTasks.h:799
virtual void updateNrVars(const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
void stiffness(double stiffness)
MultiCoMTask(const std::vector< rbd::MultiBody > &mb, std::vector< int > robotIndexes, const Eigen::Vector3d &com, double stiffness, double weight)
tasks::MultiCoMTask & task()
Definition: QPTasks.h:783
const Eigen::Vector3d com() const
Definition: QPTasks.h:787
double stiffness() const
Definition: QPTasks.h:791
const Eigen::VectorXd & eval() const
void dimWeight(const Eigen::Vector3d &dim)
virtual const Eigen::VectorXd & C() const override
const Eigen::Vector3d & dimWeight() const
Definition: QPTasks.h:797
MultiCoMTask(const std::vector< rbd::MultiBody > &mb, std::vector< int > robotIndexes, const Eigen::Vector3d &com, double stiffness, const Eigen::Vector3d &dimWeight, double weight)
const Eigen::VectorXd & speed() const
Definition: QPTasks.h:523
OrientationTask(const std::vector< rbd::MultiBody > &mbs, int robodIndex, const std::string &bodyName, const Eigen::Matrix3d &ori)
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
const Eigen::Matrix3d & orientation() const
Definition: QPTasks.h:540
virtual const Eigen::VectorXd & speed() const override
virtual int dim() override
virtual const Eigen::VectorXd & eval() const override
OrientationTask(const std::vector< rbd::MultiBody > &mbs, int robodIndex, const std::string &bodyName, const Eigen::Quaterniond &ori)
void orientation(const Eigen::Quaterniond &ori)
Definition: QPTasks.h:536
void orientation(const Eigen::Matrix3d &ori)
Definition: QPTasks.h:538
virtual const Eigen::MatrixXd & jac() const override
tasks::OrientationTask & task()
Definition: QPTasks.h:534
virtual const Eigen::VectorXd & normalAcc() const override
Definition: QPTasks.h:1006
virtual const Eigen::VectorXd & normalAcc() const override
void trackedPoint(const Eigen::Vector3d &tp)
Definition: QPTasks.h:1018
const Eigen::Vector3d & bodyPoint() const
Definition: QPTasks.h:1024
const Eigen::Vector3d & trackedPoint() const
Definition: QPTasks.h:1020
virtual const Eigen::VectorXd & eval() const override
OrientationTrackingTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const std::string &bodyName, const Eigen::Vector3d &bodyPoint, const Eigen::Vector3d &bodyAxis, const std::vector< std::string > &trackingJointsName, const Eigen::Vector3d &trackedPoint)
void bodyAxis(const Eigen::Vector3d &ba)
Definition: QPTasks.h:1026
const Eigen::Vector3d & bodyAxis() const
Definition: QPTasks.h:1028
virtual const Eigen::VectorXd & speed() const override
void bodyPoint(const Eigen::Vector3d &bp)
Definition: QPTasks.h:1022
virtual int dim() override
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
virtual const Eigen::MatrixXd & jac() const override
tasks::OrientationTrackingTask & task()
Definition: QPTasks.h:1016
Definition: QPTasks.h:177
void errorI(const Eigen::VectorXd &errI)
void error(const Eigen::VectorXd &err)
PIDTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double P, double I, double D, double weight)
PIDTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double P, double I, double D, const Eigen::VectorXd &dimWeight, double weight)
void errorD(const Eigen::VectorXd &errD)
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
Definition: QPTasks.h:707
tasks::PositionBasedVisServoTask & task()
Definition: QPTasks.h:715
void error(const sva::PTransformd &X_t_s)
Definition: QPTasks.h:717
PositionBasedVisServoTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const std::string &bodyName, const sva::PTransformd &X_t_s, const sva::PTransformd &X_b_s=sva::PTransformd::Identity())
virtual const Eigen::VectorXd & eval() const override
virtual const Eigen::VectorXd & speed() const override
virtual int dim() override
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
virtual const Eigen::MatrixXd & jac() const override
virtual const Eigen::VectorXd & normalAcc() const override
Definition: QPTasks.h:489
virtual void update(const std::vector< rbd::MultiBody > &mb, const std::vector< rbd::MultiBodyConfig > &mbc, const SolverData &data) override
const Eigen::Vector3d & bodyPoint() const
Definition: QPTasks.h:505
PositionTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const std::string &bodyName, const Eigen::Vector3d &pos, const Eigen::Vector3d &bodyPoint=Eigen::Vector3d::Zero())
void bodyPoint(const Eigen::Vector3d &point)
Definition: QPTasks.h:503
tasks::PositionTask & task()
Definition: QPTasks.h:497
const Eigen::Vector3d & position() const
Definition: QPTasks.h:501
virtual int dim() override
void position(const Eigen::Vector3d &pos)
Definition: QPTasks.h:499
virtual const Eigen::MatrixXd & jac() const override
virtual const Eigen::VectorXd & normalAcc() const override
virtual const Eigen::VectorXd & eval() const override
virtual const Eigen::VectorXd & speed() const override
Definition: QPTasks.h:409
PostureTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, std::vector< std::vector< double >> q, double stiffness, double weight)
const Eigen::VectorXd & refAccel() const noexcept
Definition: QPTasks.h:455
void gains(double stiffness, double damping)
void dimWeight(const Eigen::VectorXd &dimW) noexcept
Definition: QPTasks.h:459
void stiffness(double stiffness)
const std::vector< std::vector< double > > posture() const
Definition: QPTasks.h:421
void jointsGains(const std::vector< rbd::MultiBody > &mbs, const std::vector< JointGains > &jgv)
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
virtual const Eigen::MatrixXd & Q() const override
void refVel(const Eigen::VectorXd &refVel) noexcept
Definition: QPTasks.h:448
double stiffness() const
Definition: QPTasks.h:423
tasks::PostureTask & task()
Definition: QPTasks.h:417
virtual const Eigen::VectorXd & C() const override
const Eigen::VectorXd & dimWeight() const noexcept
Definition: QPTasks.h:457
void gains(double stiffness)
virtual void updateNrVars(const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
void posture(std::vector< std::vector< double >> q)
Definition: QPTasks.h:419
virtual std::pair< int, int > begin() const override
Definition: QPTasks.h:436
void refAccel(const Eigen::VectorXd &refAccel) noexcept
Definition: QPTasks.h:450
const Eigen::VectorXd & eval() const
void jointsStiffness(const std::vector< rbd::MultiBody > &mbs, const std::vector< JointStiffness > &jsv)
double damping() const
Definition: QPTasks.h:425
const Eigen::VectorXd & refVel() const noexcept
Definition: QPTasks.h:449
Definition: QPTasks.h:1048
virtual int dim() override
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
void envPoint(const rbd::MultiBody &mb, const std::string &bName, const Eigen::Vector3d &point)
Definition: QPTasks.h:1065
virtual const Eigen::VectorXd & speed() const override
tasks::RelativeDistTask & task()
Definition: QPTasks.h:1058
virtual const Eigen::VectorXd & eval() const override
void vector(const rbd::MultiBody &mb, const std::string &bName, const Eigen::Vector3d &u)
Definition: QPTasks.h:1070
virtual const Eigen::MatrixXd & jac() const override
void robotPoint(const rbd::MultiBody &mb, const std::string &bName, const Eigen::Vector3d &point)
Definition: QPTasks.h:1060
virtual const Eigen::VectorXd & normalAcc() const override
RelativeDistTask(const std::vector< rbd::MultiBody > &mbs, const int rIndex, const double timestep, tasks::RelativeDistTask::rbInfo &rbi1, tasks::RelativeDistTask::rbInfo &rbi2, const Eigen::Vector3d &u1=Eigen::Vector3d::Zero(), const Eigen::Vector3d &u2=Eigen::Vector3d::Zero())
virtual std::pair< int, int > begin() const override
Definition: QPTasks.h:44
const Eigen::VectorXd & dimWeight() const
Definition: QPTasks.h:48
Eigen::VectorXd error_
Definition: QPTasks.h:60
void dimWeight(const Eigen::VectorXd &dim)
virtual const Eigen::MatrixXd & Q() const override
virtual const Eigen::VectorXd & C() const override
HighLevelTask * hlTask_
Definition: QPTasks.h:59
SetPointTaskCommon(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double weight)
SetPointTaskCommon(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, const Eigen::VectorXd &dimWeight, double weight)
void computeQC(Eigen::VectorXd &error)
virtual void updateNrVars(const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
SetPointTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double stiffness, double weight)
void stiffness(double stiffness)
double stiffness() const
Definition: QPTasks.h:89
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
SetPointTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double stiffness, const Eigen::VectorXd &dimWeight, double weight)
Definition: QPSolverData.h:28
Definition: QPTasks.h:630
virtual const Eigen::VectorXd & eval() const override
virtual const Eigen::VectorXd & speed() const override
const Eigen::Matrix3d & orientation() const
Definition: QPTasks.h:649
virtual int dim() override
SurfaceOrientationTask(const std::vector< rbd::MultiBody > &mbs, int robodIndex, const std::string &bodyName, const Eigen::Matrix3d &ori, const sva::PTransformd &X_b_s)
virtual const Eigen::VectorXd & normalAcc() const override
void orientation(const Eigen::Quaterniond &ori)
Definition: QPTasks.h:645
SurfaceOrientationTask(const std::vector< rbd::MultiBody > &mbs, int robodIndex, const std::string &bodyName, const Eigen::Quaterniond &ori, const sva::PTransformd &X_b_s)
tasks::SurfaceOrientationTask & task()
Definition: QPTasks.h:643
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
void orientation(const Eigen::Matrix3d &ori)
Definition: QPTasks.h:647
virtual const Eigen::MatrixXd & jac() const override
Definition: QPTasks.h:217
virtual void updateNrVars(const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
void iter(int i)
Definition: QPTasks.h:240
int nrIter() const
Definition: QPTasks.h:242
int iter() const
Definition: QPTasks.h:239
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
TargetObjectiveTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double timeStep, double duration, const Eigen::VectorXd &objDot, double weight)
virtual const Eigen::VectorXd & C() const override
TargetObjectiveTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double timeStep, double duration, const Eigen::VectorXd &objDot, const Eigen::VectorXd &dimWeight, double weight)
const Eigen::VectorXd & psi() const
Definition: QPTasks.h:252
void dimWeight(const Eigen::VectorXd &o)
Definition: QPTasks.h:249
virtual const Eigen::MatrixXd & Q() const override
void objDot(const Eigen::VectorXd &o)
Definition: QPTasks.h:246
const Eigen::VectorXd & dimWeight() const
Definition: QPTasks.h:248
void nrIter(int i)
Definition: QPTasks.h:243
const Eigen::VectorXd & objDot() const
Definition: QPTasks.h:245
const Eigen::VectorXd & phi() const
Definition: QPTasks.h:251
virtual std::pair< int, int > begin() const override
Definition: QPTasks.h:254
Definition: QPSolver.h:279
Definition: QPTasks.h:347
virtual void updateNrVars(const std::vector< rbd::MultiBody > &mbs, const SolverData &data) override
TorqueTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const Eigen::VectorXd &jointSelect, double weight)
TorqueTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, double weight)
virtual const Eigen::VectorXd & jointSelect() const
Definition: QPTasks.h:397
TorqueTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const TorqueDBound &tdb, double dt, const Eigen::VectorXd &jointSelect, double weight)
TorqueTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const TorqueDBound &tdb, double dt, const std::string &efName, double weight)
virtual std::pair< int, int > begin() const override
Definition: QPTasks.h:391
virtual const Eigen::MatrixXd & Q() const override
Definition: QPTasks.h:393
TorqueTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const std::string &efName, double weight)
TorqueTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const TorqueBound &tb, const TorqueDBound &tdb, double dt, double weight)
virtual const Eigen::VectorXd & C() const override
Definition: QPTasks.h:395
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
Definition: QPTasks.h:102
void refAccel(const Eigen::VectorXd &refAccel)
void errorPos(const Eigen::VectorXd &errorPos)
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
void errorVel(const Eigen::VectorXd &errorVel)
TrackingTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double gainPos, double gainVel, const Eigen::VectorXd &dimWeight, double weight)
void setGains(double gainPos, double gainVel)
TrackingTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double gainPos, double gainVel, double weight)
Definition: QPTasks.h:135
const Eigen::VectorXd & damping() const
void damping(const Eigen::VectorXd &damping)
void stiffness(const Eigen::VectorXd &stiffness)
void stiffness(double gainPos)
const Eigen::VectorXd & refAccel() const
void setGains(const Eigen::VectorXd &stiffness, const Eigen::VectorXd &damping)
const Eigen::VectorXd & stiffness() const
TrajectoryTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double gainPos, double gainVel, double weight)
void setGains(double gainPos, double gainVel)
void damping(double gainVel)
void refAccel(const Eigen::VectorXd &refAccel)
TrajectoryTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, HighLevelTask *hlTask, double gainPos, double gainVel, const Eigen::VectorXd &dimWeight, double weight)
void refVel(const Eigen::VectorXd &refVel)
void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
const Eigen::VectorXd & refVel() const
Definition: QPTasks.h:1092
void bodyVector(const Eigen::Vector3d &vector)
Definition: QPTasks.h:1101
virtual const Eigen::VectorXd & eval() const override
const Eigen::Vector3d & target() const
Definition: QPTasks.h:1104
void target(const Eigen::Vector3d &vector)
Definition: QPTasks.h:1103
virtual const Eigen::VectorXd & normalAcc() const override
const Eigen::Vector3d & actual() const
Definition: QPTasks.h:1105
VectorOrientationTask(const std::vector< rbd::MultiBody > &mbs, int robotIndex, const std::string &bodyName, const Eigen::Vector3d &bodyVector, const Eigen::Vector3d &targetVector)
virtual void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const SolverData &data) override
virtual int dim() override
tasks::VectorOrientationTask & task()
Definition: QPTasks.h:1100
const Eigen::Vector3d & bodyVector() const
Definition: QPTasks.h:1102
virtual const Eigen::VectorXd & speed() const override
virtual const Eigen::MatrixXd & jac() const override
Vector6< double > Vector6d
Definition: GenQPUtils.h:19
Definition: QPTasks.h:335
std::string jointName
Definition: QPTasks.h:342
JointGains(const std::string &jName, double stif)
Definition: QPTasks.h:337
double damping
Definition: QPTasks.h:343
JointGains(const std::string &jName, double stif, double damp)
Definition: QPTasks.h:340
double stiffness
Definition: QPTasks.h:343
JointGains()
Definition: QPTasks.h:336
Definition: QPTasks.h:326
JointStiffness(const std::string &jName, double stif)
Definition: QPTasks.h:328
JointStiffness()
Definition: QPTasks.h:327
std::string jointName
Definition: QPTasks.h:330
double stiffness
Definition: QPTasks.h:331
Definition: QPTasks.h:298
int dof
Definition: QPTasks.h:298