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 = {});
306 const std::vector<std::string> & selectedJointsName,
307 const std::map<std::string, std::vector<std::array<int, 2>>> & activeDofs = {});
309 const std::vector<SelectedData>
selectedJoints()
const {
return selectedJoints_; }
311 virtual int dim()
override;
312 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
313 const std::vector<rbd::MultiBodyConfig> & mbcs,
316 virtual const Eigen::MatrixXd &
jac()
const override;
317 virtual const Eigen::VectorXd &
eval()
const override;
318 virtual const Eigen::VectorXd &
speed()
const override;
319 virtual const Eigen::VectorXd &
normalAcc()
const override;
322 Eigen::MatrixXd jac_;
323 std::vector<SelectedData> selectedJoints_;
340 {
damping = 2. * std::sqrt(stif); }
356 const Eigen::VectorXd & jointSelect,
362 const std::string & efName,
377 const Eigen::VectorXd & jointSelect,
385 const std::string & efName,
389 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
390 const std::vector<rbd::MultiBodyConfig> & mbcs,
393 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(0, 0); }
395 virtual const Eigen::MatrixXd &
Q()
const override {
return Q_; }
397 virtual const Eigen::VectorXd &
C()
const override {
return C_; }
399 virtual const Eigen::VectorXd &
jointSelect()
const {
return jointSelector_; }
403 int alphaDBegin_, lambdaBegin_;
405 Eigen::VectorXd jointSelector_;
415 std::vector<std::vector<double>> q,
421 void posture(std::vector<std::vector<double>> q) { pt_.posture(q); }
423 const std::vector<std::vector<double>>
posture()
const {
return pt_.posture(); }
432 void gains(
double stiffness,
double damping);
434 void jointsStiffness(
const std::vector<rbd::MultiBody> & mbs,
const std::vector<JointStiffness> & jsv);
436 void jointsGains(
const std::vector<rbd::MultiBody> & mbs,
const std::vector<JointGains> & jgv);
438 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(alphaDBegin_, alphaDBegin_); }
441 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
442 const std::vector<rbd::MultiBodyConfig> & mbcs,
445 virtual const Eigen::MatrixXd &
Q()
const override;
446 virtual const Eigen::VectorXd &
C()
const override;
448 const Eigen::VectorXd &
eval()
const;
450 inline void refVel(
const Eigen::VectorXd & refVel) noexcept { refVel_ =
refVel; }
451 inline const Eigen::VectorXd &
refVel() const noexcept {
return refVel_; }
452 inline void refAccel(
const Eigen::VectorXd & refAccel) noexcept
454 assert(refAccel.size() == refAccel_.size());
455 refAccel_ = refAccel;
457 inline const Eigen::VectorXd &
refAccel() const noexcept {
return refAccel_; }
459 inline const Eigen::VectorXd &
dimWeight() const noexcept {
return dimWeight_; }
461 inline void dimWeight(
const Eigen::VectorXd & dimW) noexcept
463 assert(dimW.size() == dimWeight_.size());
470 double stiffness, damping;
479 int robotIndex_, alphaDBegin_;
481 std::vector<JointData> jointDatas_;
485 Eigen::VectorXd alphaVec_;
486 Eigen::VectorXd refVel_, refAccel_;
487 Eigen::VectorXd dimWeight_;
495 const std::string & bodyName,
496 const Eigen::Vector3d & pos,
497 const Eigen::Vector3d & bodyPoint = Eigen::Vector3d::Zero());
501 void position(
const Eigen::Vector3d & pos) { pt_.position(pos); }
503 const Eigen::Vector3d &
position()
const {
return pt_.position(); }
505 void bodyPoint(
const Eigen::Vector3d & point) { pt_.bodyPoint(point); }
507 const Eigen::Vector3d &
bodyPoint()
const {
return pt_.bodyPoint(); }
509 virtual int dim()
override;
510 virtual void update(
const std::vector<rbd::MultiBody> & mb,
511 const std::vector<rbd::MultiBodyConfig> & mbc,
514 virtual const Eigen::MatrixXd &
jac()
const override;
515 virtual const Eigen::VectorXd &
eval()
const override;
516 virtual const Eigen::VectorXd &
speed()
const override;
517 virtual const Eigen::VectorXd &
normalAcc()
const override;
529 const std::string & bodyName,
530 const Eigen::Quaterniond & ori);
533 const std::string & bodyName,
534 const Eigen::Matrix3d & ori);
538 void orientation(
const Eigen::Quaterniond & ori) { ot_.orientation(ori); }
540 void orientation(
const Eigen::Matrix3d & ori) { ot_.orientation(ori); }
542 const Eigen::Matrix3d &
orientation()
const {
return ot_.orientation(); }
544 virtual int dim()
override;
545 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
546 const std::vector<rbd::MultiBodyConfig> & mbcs,
549 virtual const Eigen::MatrixXd &
jac()
const override;
550 virtual const Eigen::VectorXd &
eval()
const override;
551 virtual const Eigen::VectorXd &
speed()
const override;
552 virtual const Eigen::VectorXd &
normalAcc()
const override;
559 template<
typename transform_task_t>
565 const std::string & bodyName,
566 const sva::PTransformd & X_0_t,
567 const sva::PTransformd &
X_b_p = sva::PTransformd::Identity())
574 void target(
const sva::PTransformd & X_0_t) {
tt_.target(X_0_t); }
576 const sva::PTransformd &
target()
const {
return tt_.target(); }
580 const sva::PTransformd &
X_b_p()
const {
return tt_.X_b_p(); }
582 virtual int dim()
override {
return 6; }
584 virtual const Eigen::MatrixXd &
jac()
const override {
return tt_.jac(); }
586 virtual const Eigen::VectorXd &
eval()
const override {
return tt_.eval(); }
588 virtual const Eigen::VectorXd &
speed()
const override {
return tt_.speed(); }
590 virtual const Eigen::VectorXd &
normalAcc()
const override {
return tt_.normalAcc(); }
603 const std::string & bodyName,
604 const sva::PTransformd & X_0_t,
605 const sva::PTransformd & X_b_p = sva::PTransformd::Identity());
607 virtual void update(
const std::vector<rbd::MultiBody> & mb,
608 const std::vector<rbd::MultiBodyConfig> & mbc,
618 const std::string & bodyName,
619 const sva::PTransformd & X_0_t,
620 const sva::PTransformd & X_b_p = sva::PTransformd::Identity(),
621 const Eigen::Matrix3d & E_0_c = Eigen::Matrix3d::Identity());
623 void E_0_c(
const Eigen::Matrix3d & E_0_c);
624 const Eigen::Matrix3d &
E_0_c()
const;
626 virtual void update(
const std::vector<rbd::MultiBody> & mb,
627 const std::vector<rbd::MultiBodyConfig> & mbc,
636 const std::string & bodyName,
637 const Eigen::Quaterniond & ori,
638 const sva::PTransformd & X_b_s);
641 const std::string & bodyName,
642 const Eigen::Matrix3d & ori,
643 const sva::PTransformd & X_b_s);
647 void orientation(
const Eigen::Quaterniond & ori) { ot_.orientation(ori); }
649 void orientation(
const Eigen::Matrix3d & ori) { ot_.orientation(ori); }
651 const Eigen::Matrix3d &
orientation()
const {
return ot_.orientation(); }
653 virtual int dim()
override;
654 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
655 const std::vector<rbd::MultiBodyConfig> & mbcs,
658 virtual const Eigen::MatrixXd &
jac()
const override;
659 virtual const Eigen::VectorXd &
eval()
const override;
660 virtual const Eigen::VectorXd &
speed()
const override;
661 virtual const Eigen::VectorXd &
normalAcc()
const override;
673 const std::string & bodyName,
674 const Eigen::Vector2d & point2d,
675 double depthEstimate,
676 const sva::PTransformd & X_b_gaze,
677 const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero());
680 const std::string & bodyName,
681 const Eigen::Vector3d & point3d,
682 const sva::PTransformd & X_b_gaze,
683 const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero());
687 void error(
const Eigen::Vector2d & point2d,
const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero())
688 { gazet_.error(point2d, point2d_ref); }
690 void error(
const Eigen::Vector3d & point3d,
const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero())
691 { gazet_.error(point3d, point2d_ref); }
693 virtual int dim()
override;
694 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
695 const std::vector<rbd::MultiBodyConfig> & mbcs,
698 virtual const Eigen::MatrixXd &
jac()
const override;
699 virtual const Eigen::VectorXd &
eval()
const override;
700 virtual const Eigen::VectorXd &
speed()
const override;
701 virtual const Eigen::VectorXd &
normalAcc()
const override;
713 const std::string & bodyName,
714 const sva::PTransformd & X_t_s,
715 const sva::PTransformd & X_b_s = sva::PTransformd::Identity());
719 void error(
const sva::PTransformd & X_t_s) { pbvst_.error(X_t_s); }
721 virtual int dim()
override;
722 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
723 const std::vector<rbd::MultiBodyConfig> & mbcs,
726 virtual const Eigen::MatrixXd &
jac()
const override;
727 virtual const Eigen::VectorXd &
eval()
const override;
728 virtual const Eigen::VectorXd &
speed()
const override;
729 virtual const Eigen::VectorXd &
normalAcc()
const override;
739 CoMTask(
const std::vector<rbd::MultiBody> & mbs,
int robotIndex,
const Eigen::Vector3d & com);
740 CoMTask(
const std::vector<rbd::MultiBody> & mbs,
742 const Eigen::Vector3d & com,
743 std::vector<double> weight);
747 void com(
const Eigen::Vector3d & com) { ct_.com(com); }
749 const Eigen::Vector3d &
com()
const {
return ct_.com(); }
751 const Eigen::Vector3d &
actual()
const {
return ct_.actual(); }
755 virtual int dim()
override;
756 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
757 const std::vector<rbd::MultiBodyConfig> & mbcs,
760 virtual const Eigen::MatrixXd &
jac()
const override;
761 virtual const Eigen::VectorXd &
eval()
const override;
762 virtual const Eigen::VectorXd &
speed()
const override;
763 virtual const Eigen::VectorXd &
normalAcc()
const override;
774 std::vector<int> robotIndexes,
775 const Eigen::Vector3d & com,
779 std::vector<int> robotIndexes,
780 const Eigen::Vector3d & com,
782 const Eigen::Vector3d & dimWeight,
787 void com(
const Eigen::Vector3d & com) { mct_.com(com); }
789 const Eigen::Vector3d
com()
const {
return mct_.com(); }
799 const Eigen::Vector3d &
dimWeight()
const {
return dimWeight_; }
801 virtual std::pair<int, int>
begin()
const override {
return {alphaDBegin_, alphaDBegin_}; }
804 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
805 const std::vector<rbd::MultiBodyConfig> & mbcs,
808 virtual const Eigen::MatrixXd &
Q()
const override;
809 virtual const Eigen::VectorXd &
C()
const override;
811 const Eigen::VectorXd &
eval()
const;
812 const Eigen::VectorXd &
speed()
const;
815 void init(
const std::vector<rbd::MultiBody> & mbs);
819 double stiffness_, stiffnessSqrt_;
820 Eigen::Vector3d dimWeight_;
821 std::vector<int> posInQ_;
825 Eigen::Vector3d CSum_;
827 Eigen::MatrixXd preQ_;
836 const std::string & r1BodyName,
837 const std::string & r2BodyName,
838 const sva::PTransformd & X_r1b_r1s,
839 const sva::PTransformd & X_r2b_r2s,
857 const Eigen::VectorXd &
dimWeight()
const {
return dimWeight_; }
859 virtual std::pair<int, int>
begin()
const override {
return {alphaDBegin_, alphaDBegin_}; }
862 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
863 const std::vector<rbd::MultiBodyConfig> & mbcs,
866 virtual const Eigen::MatrixXd &
Q()
const override;
867 virtual const Eigen::VectorXd &
C()
const override;
869 const Eigen::VectorXd &
eval()
const;
870 const Eigen::VectorXd &
speed()
const;
874 double stiffness_, stiffnessSqrt_;
875 Eigen::VectorXd dimWeight_;
876 std::vector<int> posInQ_, robotIndexes_;
880 Eigen::VectorXd CSum_;
882 Eigen::MatrixXd preQ_;
888 MomentumTask(
const std::vector<rbd::MultiBody> & mbs,
int robotIndex,
const sva::ForceVecd & mom);
892 void momentum(
const sva::ForceVecd & mom) { momt_.momentum(mom); }
894 const sva::ForceVecd
momentum()
const {
return momt_.momentum(); }
896 virtual int dim()
override;
897 virtual void update(
const std::vector<rbd::MultiBody> & mb,
898 const std::vector<rbd::MultiBodyConfig> & mbc,
901 virtual const Eigen::MatrixXd &
jac()
const override;
902 virtual const Eigen::VectorXd &
eval()
const override;
903 virtual const Eigen::VectorXd &
speed()
const override;
904 virtual const Eigen::VectorXd &
normalAcc()
const override;
915 :
Task(weight), contactId_(contactId), begin_(0), stiffness_(stiffness), stiffnessSqrt_(2 * std::sqrt(stiffness)),
916 conesJac_(), error_(Eigen::Vector3d::Zero()), errorD_(Eigen::Vector3d::Zero()), Q_(), C_()
920 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(begin_, begin_); }
922 void error(
const Eigen::Vector3d & error);
923 void errorD(
const Eigen::Vector3d & errorD);
926 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
927 const std::vector<rbd::MultiBodyConfig> & mbcs,
930 virtual const Eigen::MatrixXd &
Q()
const override;
931 virtual const Eigen::VectorXd &
C()
const override;
937 double stiffness_, stiffnessSqrt_;
938 Eigen::MatrixXd conesJac_;
939 Eigen::Vector3d error_, errorD_;
949 :
Task(weight), contactId_(contactId), origin_(origin), axis_(axis), begin_(0), Q_(), C_()
953 virtual std::pair<int, int>
begin()
const override {
return std::make_pair(begin_, begin_); }
956 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
957 const std::vector<rbd::MultiBodyConfig> & mbcs,
960 virtual const Eigen::MatrixXd &
Q()
const override;
961 virtual const Eigen::VectorXd &
C()
const override;
965 Eigen::Vector3d origin_;
966 Eigen::Vector3d axis_;
978 const std::string & bodyName,
979 const Eigen::Vector3d & vel,
980 const Eigen::Vector3d & bodyPoint = Eigen::Vector3d::Zero());
984 void velocity(
const Eigen::Vector3d & s) { pt_.velocity(s); }
986 const Eigen::Vector3d &
velocity()
const {
return pt_.velocity(); }
988 void bodyPoint(
const Eigen::Vector3d & point) { pt_.bodyPoint(point); }
990 const Eigen::Vector3d &
bodyPoint()
const {
return pt_.bodyPoint(); }
992 virtual int dim()
override;
993 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
994 const std::vector<rbd::MultiBodyConfig> & mbcs,
997 virtual const Eigen::MatrixXd &
jac()
const override;
998 virtual const Eigen::VectorXd &
eval()
const override;
999 virtual const Eigen::VectorXd &
speed()
const override;
1012 const std::string & bodyName,
1013 const Eigen::Vector3d & bodyPoint,
1014 const Eigen::Vector3d & bodyAxis,
1015 const std::vector<std::string> & trackingJointsName,
1016 const Eigen::Vector3d & trackedPoint);
1022 const Eigen::Vector3d &
trackedPoint()
const {
return ott_.trackedPoint(); }
1024 void bodyPoint(
const Eigen::Vector3d & bp) { ott_.bodyPoint(bp); }
1026 const Eigen::Vector3d &
bodyPoint()
const {
return ott_.bodyPoint(); }
1028 void bodyAxis(
const Eigen::Vector3d & ba) { ott_.bodyAxis(ba); }
1030 const Eigen::Vector3d &
bodyAxis()
const {
return ott_.bodyAxis(); }
1033 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
1034 const std::vector<rbd::MultiBodyConfig> & mbcs,
1037 virtual const Eigen::MatrixXd &
jac()
const override;
1038 virtual const Eigen::VectorXd &
eval()
const override;
1039 virtual const Eigen::VectorXd &
speed()
const override;
1045 Eigen::VectorXd alphaVec_;
1046 Eigen::VectorXd speed_, normalAcc_;
1054 const double timestep,
1057 const Eigen::Vector3d & u1 = Eigen::Vector3d::Zero(),
1058 const Eigen::Vector3d & u2 = Eigen::Vector3d::Zero());
1062 void robotPoint(
const rbd::MultiBody & mb,
const std::string & bName,
const Eigen::Vector3d & point)
1064 int bIndex = mb.bodyIndexByName(bName);
1065 rdt_.robotPoint(bIndex, point);
1067 void envPoint(
const rbd::MultiBody & mb,
const std::string & bName,
const Eigen::Vector3d & point)
1069 int bIndex = mb.bodyIndexByName(bName);
1070 rdt_.envPoint(bIndex, point);
1072 void vector(
const rbd::MultiBody & mb,
const std::string & bName,
const Eigen::Vector3d & u)
1074 int bIndex = mb.bodyIndexByName(bName);
1075 rdt_.vector(bIndex, u);
1079 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
1080 const std::vector<rbd::MultiBodyConfig> & mbcs,
1083 virtual const Eigen::MatrixXd &
jac()
const override;
1084 virtual const Eigen::VectorXd &
eval()
const override;
1085 virtual const Eigen::VectorXd &
speed()
const override;
1098 const std::string & bodyName,
1099 const Eigen::Vector3d & bodyVector,
1100 const Eigen::Vector3d & targetVector);
1103 void bodyVector(
const Eigen::Vector3d & vector) { vot_.bodyVector(vector); }
1104 const Eigen::Vector3d &
bodyVector()
const {
return vot_.bodyVector(); }
1105 void target(
const Eigen::Vector3d & vector) { vot_.target(vector); }
1106 const Eigen::Vector3d &
target()
const {
return vot_.target(); }
1107 const Eigen::Vector3d &
actual()
const {
return vot_.actual(); }
1110 virtual void update(
const std::vector<rbd::MultiBody> & mbs,
1111 const std::vector<rbd::MultiBodyConfig> & mbcs,
1114 virtual const Eigen::MatrixXd &
jac()
const override;
1115 virtual const Eigen::VectorXd &
eval()
const override;
1116 virtual const Eigen::VectorXd &
speed()
const override;
std::tuple< std::string, Eigen::Vector3d, Eigen::Vector3d > rbInfo
Definition: Tasks.h:599
Definition: QPTasks.h:737
void com(const Eigen::Vector3d &com)
Definition: QPTasks.h:747
virtual const Eigen::VectorXd & eval() const override
const Eigen::Vector3d & com() const
Definition: QPTasks.h:749
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:751
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:745
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:669
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:687
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:690
tasks::GazeTask & task()
Definition: QPTasks.h:685
virtual const Eigen::MatrixXd & jac() const override
Definition: QPTasks.h:946
virtual std::pair< int, int > begin() const override
Definition: QPTasks.h:953
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:948
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:309
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:974
virtual const Eigen::VectorXd & eval() const override
virtual const Eigen::VectorXd & speed() const override
const Eigen::Vector3d & bodyPoint() const
Definition: QPTasks.h:990
virtual const Eigen::MatrixXd & jac() const override
virtual int dim() override
const Eigen::Vector3d & velocity() const
Definition: QPTasks.h:986
tasks::LinVelocityTask & task()
Definition: QPTasks.h:982
void velocity(const Eigen::Vector3d &s)
Definition: QPTasks.h:984
void bodyPoint(const Eigen::Vector3d &point)
Definition: QPTasks.h:988
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:886
virtual const Eigen::VectorXd & eval() const override
virtual const Eigen::VectorXd & normalAcc() const override
const sva::ForceVecd momentum() const
Definition: QPTasks.h:894
virtual int dim() override
tasks::MomentumTask & task()
Definition: QPTasks.h:890
void momentum(const sva::ForceVecd &mom)
Definition: QPTasks.h:892
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:771
void updateInertialParameters(const std::vector< rbd::MultiBody > &mbs)
void com(const Eigen::Vector3d &com)
Definition: QPTasks.h:787
virtual const Eigen::MatrixXd & Q() const override
virtual std::pair< int, int > begin() const override
Definition: QPTasks.h:801
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:785
const Eigen::Vector3d com() const
Definition: QPTasks.h:789
double stiffness() const
Definition: QPTasks.h:793
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:799
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:525
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:542
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:538
void orientation(const Eigen::Matrix3d &ori)
Definition: QPTasks.h:540
virtual const Eigen::MatrixXd & jac() const override
tasks::OrientationTask & task()
Definition: QPTasks.h:536
virtual const Eigen::VectorXd & normalAcc() const override
Definition: QPTasks.h:1008
virtual const Eigen::VectorXd & normalAcc() const override
void trackedPoint(const Eigen::Vector3d &tp)
Definition: QPTasks.h:1020
const Eigen::Vector3d & bodyPoint() const
Definition: QPTasks.h:1026
const Eigen::Vector3d & trackedPoint() const
Definition: QPTasks.h:1022
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:1028
const Eigen::Vector3d & bodyAxis() const
Definition: QPTasks.h:1030
virtual const Eigen::VectorXd & speed() const override
void bodyPoint(const Eigen::Vector3d &bp)
Definition: QPTasks.h:1024
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:1018
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:709
tasks::PositionBasedVisServoTask & task()
Definition: QPTasks.h:717
void error(const sva::PTransformd &X_t_s)
Definition: QPTasks.h:719
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:491
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:507
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:505
tasks::PositionTask & task()
Definition: QPTasks.h:499
const Eigen::Vector3d & position() const
Definition: QPTasks.h:503
virtual int dim() override
void position(const Eigen::Vector3d &pos)
Definition: QPTasks.h:501
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:411
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:457
void gains(double stiffness, double damping)
void dimWeight(const Eigen::VectorXd &dimW) noexcept
Definition: QPTasks.h:461
void stiffness(double stiffness)
const std::vector< std::vector< double > > posture() const
Definition: QPTasks.h:423
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:450
double stiffness() const
Definition: QPTasks.h:425
tasks::PostureTask & task()
Definition: QPTasks.h:419
virtual const Eigen::VectorXd & C() const override
const Eigen::VectorXd & dimWeight() const noexcept
Definition: QPTasks.h:459
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:421
virtual std::pair< int, int > begin() const override
Definition: QPTasks.h:438
void refAccel(const Eigen::VectorXd &refAccel) noexcept
Definition: QPTasks.h:452
const Eigen::VectorXd & eval() const
void jointsStiffness(const std::vector< rbd::MultiBody > &mbs, const std::vector< JointStiffness > &jsv)
double damping() const
Definition: QPTasks.h:427
const Eigen::VectorXd & refVel() const noexcept
Definition: QPTasks.h:451
Definition: QPTasks.h:1050
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:1067
virtual const Eigen::VectorXd & speed() const override
tasks::RelativeDistTask & task()
Definition: QPTasks.h:1060
virtual const Eigen::VectorXd & eval() const override
void vector(const rbd::MultiBody &mb, const std::string &bName, const Eigen::Vector3d &u)
Definition: QPTasks.h:1072
virtual const Eigen::MatrixXd & jac() const override
void robotPoint(const rbd::MultiBody &mb, const std::string &bName, const Eigen::Vector3d &point)
Definition: QPTasks.h:1062
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:632
virtual const Eigen::VectorXd & eval() const override
virtual const Eigen::VectorXd & speed() const override
const Eigen::Matrix3d & orientation() const
Definition: QPTasks.h:651
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:647
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:645
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:649
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:349
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:399
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:393
virtual const Eigen::MatrixXd & Q() const override
Definition: QPTasks.h:395
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:397
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:1094
void bodyVector(const Eigen::Vector3d &vector)
Definition: QPTasks.h:1103
virtual const Eigen::VectorXd & eval() const override
const Eigen::Vector3d & target() const
Definition: QPTasks.h:1106
void target(const Eigen::Vector3d &vector)
Definition: QPTasks.h:1105
virtual const Eigen::VectorXd & normalAcc() const override
const Eigen::Vector3d & actual() const
Definition: QPTasks.h:1107
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:1102
const Eigen::Vector3d & bodyVector() const
Definition: QPTasks.h:1104
virtual const Eigen::VectorXd & speed() const override
virtual const Eigen::MatrixXd & jac() const override
Definition: GenQPSolver.h:21
Definition: GenQPUtils.h:19
Definition: QPTasks.h:337
std::string jointName
Definition: QPTasks.h:344
JointGains(const std::string &jName, double stif)
Definition: QPTasks.h:339
double damping
Definition: QPTasks.h:345
JointGains(const std::string &jName, double stif, double damp)
Definition: QPTasks.h:342
double stiffness
Definition: QPTasks.h:345
JointGains()
Definition: QPTasks.h:338
Definition: QPTasks.h:328
JointStiffness(const std::string &jName, double stif)
Definition: QPTasks.h:330
JointStiffness()
Definition: QPTasks.h:329
std::string jointName
Definition: QPTasks.h:332
double stiffness
Definition: QPTasks.h:333
Definition: QPTasks.h:298
int dof
Definition: QPTasks.h:299