12 #include <tasks/config.hh>
14 #include <RBDyn/CoM.h>
15 #include <RBDyn/Jacobian.h>
16 #include <RBDyn/Momentum.h>
17 #include <RBDyn/VisServo.h>
26 struct MultiBodyConfig;
36 const std::string & bodyName,
37 const Eigen::Vector3d & pos,
38 const Eigen::Vector3d & bodyPoint = Eigen::Vector3d::Zero());
46 void update(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
47 void update(
const rbd::MultiBody & mb,
48 const rbd::MultiBodyConfig & mbc,
49 const std::vector<sva::MotionVecd> & normalAccB);
50 void updateDot(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
52 const Eigen::VectorXd &
eval()
const;
53 const Eigen::VectorXd &
speed()
const;
56 const Eigen::MatrixXd &
jac()
const;
57 const Eigen::MatrixXd &
jacDot()
const;
61 sva::PTransformd point_;
65 Eigen::VectorXd eval_;
66 Eigen::VectorXd speed_;
67 Eigen::VectorXd normalAcc_;
68 Eigen::MatrixXd jacMat_;
69 Eigen::MatrixXd jacDotMat_;
75 OrientationTask(
const rbd::MultiBody & mb,
const std::string & bodyName,
const Eigen::Quaterniond & ori);
76 OrientationTask(
const rbd::MultiBody & mb,
const std::string & bodyName,
const Eigen::Matrix3d & ori);
82 void update(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
83 void update(
const rbd::MultiBody & mb,
84 const rbd::MultiBodyConfig & mbc,
85 const std::vector<sva::MotionVecd> & normalAccB);
86 void updateDot(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
88 const Eigen::VectorXd &
eval()
const;
89 const Eigen::VectorXd &
speed()
const;
92 const Eigen::MatrixXd &
jac()
const;
93 const Eigen::MatrixXd &
jacDot()
const;
100 Eigen::VectorXd eval_;
101 Eigen::VectorXd speed_;
102 Eigen::VectorXd normalAcc_;
103 Eigen::MatrixXd jacMat_;
104 Eigen::MatrixXd jacDotMat_;
111 const std::string & bodyName,
112 const sva::PTransformd & X_0_t,
113 const sva::PTransformd & X_b_p);
115 void target(
const sva::PTransformd & X_0_t);
118 void X_b_p(
const sva::PTransformd & X_b_p);
119 const sva::PTransformd &
X_b_p()
const;
121 const Eigen::VectorXd &
eval()
const;
122 const Eigen::VectorXd &
speed()
const;
125 const Eigen::MatrixXd &
jac()
const;
146 const std::string & bodyName,
147 const sva::PTransformd & X_0_t,
148 const sva::PTransformd & X_b_p = sva::PTransformd::Identity());
151 const rbd::MultiBodyConfig & mbc,
152 const std::vector<sva::MotionVecd> & normalAccB);
168 const std::string & bodyName,
169 const sva::PTransformd & X_0_t,
170 const sva::PTransformd & X_b_p = sva::PTransformd::Identity(),
171 const Eigen::Matrix3d & E_0_c = Eigen::Matrix3d::Identity());
173 void E_0_c(
const Eigen::Matrix3d & E_0_c);
174 const Eigen::Matrix3d &
E_0_c()
const;
177 const rbd::MultiBodyConfig & mbc,
178 const std::vector<sva::MotionVecd> & normalAccB);
181 Eigen::Matrix3d E_0_c_;
190 const std::string & r1BodyName,
191 const std::string & r2BodyName,
192 const sva::PTransformd & X_r1b_r1s,
193 const sva::PTransformd & X_r2b_r2s);
204 void update(
const std::vector<rbd::MultiBody> & mbs,
205 const std::vector<rbd::MultiBodyConfig> & mbcs,
206 const std::vector<std::vector<sva::MotionVecd>> & normalAccB);
208 const Eigen::VectorXd &
eval()
const;
209 const Eigen::VectorXd &
speed()
const;
212 const Eigen::MatrixXd &
jac(
int index)
const;
215 int r1Index_, r2Index_;
216 int r1BodyIndex_, r2BodyIndex_;
217 sva::PTransformd X_r1b_r1s_, X_r2b_r2s_;
218 rbd::Jacobian jacR1B_, jacR2B_;
220 Eigen::VectorXd eval_;
221 Eigen::VectorXd speed_;
222 Eigen::VectorXd normalAcc_;
223 Eigen::MatrixXd jacMat1_, jacMat2_;
224 std::vector<Eigen::MatrixXd> fullJacMat_;
231 const std::string & bodyName,
232 const Eigen::Quaterniond & ori,
233 const sva::PTransformd & X_b_s);
235 const std::string & bodyName,
236 const Eigen::Matrix3d & ori,
237 const sva::PTransformd & X_b_s);
243 void update(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
245 const rbd::MultiBodyConfig & mbc,
246 const std::vector<sva::MotionVecd> & normalAccB);
247 void updateDot(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
249 const Eigen::VectorXd &
eval()
const;
250 const Eigen::VectorXd &
speed()
const;
253 const Eigen::MatrixXd &
jac()
const;
257 Eigen::Matrix3d ori_;
260 sva::PTransformd X_b_s_;
262 Eigen::VectorXd eval_;
263 Eigen::VectorXd speed_;
264 Eigen::VectorXd normalAcc_;
265 Eigen::MatrixXd jacMat_;
266 Eigen::MatrixXd jacDotMat_;
273 const std::string & bodyName,
274 const Eigen::Vector2d & point2d,
275 double depthEstimate,
276 const sva::PTransformd & X_b_gaze,
277 const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero());
279 const std::string & bodyName,
280 const Eigen::Vector3d & point3d,
281 const sva::PTransformd & X_b_gaze,
282 const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero());
292 void error(
const Eigen::Vector2d & point2d,
const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero());
293 void error(
const Eigen::Vector3d & point3d,
const Eigen::Vector2d & point2d_ref = Eigen::Vector2d::Zero());
296 const rbd::MultiBodyConfig & mbc,
297 const std::vector<sva::MotionVecd> & normalAccB);
299 const Eigen::VectorXd &
eval()
const;
300 const Eigen::VectorXd &
speed()
const;
303 const Eigen::MatrixXd &
jac()
const;
307 std::unique_ptr<Eigen::Vector2d> point2d_;
308 std::unique_ptr<Eigen::Vector2d> point2d_ref_;
309 double depthEstimate_;
312 sva::PTransformd X_b_gaze_;
313 std::unique_ptr<Eigen::Matrix<double, 2, 6>> L_img_;
314 std::unique_ptr<Eigen::Matrix<double, 6, 1>> surfaceVelocity_;
315 std::unique_ptr<Eigen::Matrix<double, 1, 6>> L_Z_dot_;
316 std::unique_ptr<Eigen::Matrix<double, 2, 6>> L_img_dot_;
318 Eigen::VectorXd eval_;
319 Eigen::VectorXd speed_;
320 Eigen::VectorXd normalAcc_;
321 Eigen::MatrixXd jacMat_;
322 Eigen::MatrixXd jacDotMat_;
329 const std::string & bodyName,
330 const sva::PTransformd & X_t_s,
331 const sva::PTransformd & X_b_s);
341 void error(
const sva::PTransformd & X_t_s);
344 const rbd::MultiBodyConfig & mbc,
345 const std::vector<sva::MotionVecd> & normalAccB);
347 const Eigen::VectorXd &
eval()
const;
348 const Eigen::VectorXd &
speed()
const;
351 const Eigen::MatrixXd &
jac()
const;
355 sva::PTransformd X_t_s_;
356 sva::PTransformd X_b_s_;
358 Eigen::Vector3d axis_;
361 std::unique_ptr<Eigen::Matrix<double, 6, 6>> L_pbvs_;
362 std::unique_ptr<Eigen::Matrix<double, 6, 1>> surfaceVelocity_;
363 Eigen::Matrix3d omegaSkew_;
364 std::unique_ptr<Eigen::Matrix<double, 6, 6>> L_pbvs_dot_;
366 Eigen::VectorXd eval_;
367 Eigen::VectorXd speed_;
368 Eigen::VectorXd normalAcc_;
369 Eigen::MatrixXd jacMat_;
370 Eigen::MatrixXd jacDotMat_;
376 PostureTask(
const rbd::MultiBody & mb, std::vector<std::vector<double>> q);
378 void posture(std::vector<std::vector<double>> q);
379 const std::vector<std::vector<double>>
posture()
const;
381 void update(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
382 void updateDot(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
384 const Eigen::VectorXd &
eval()
const;
385 const Eigen::MatrixXd &
jac()
const;
389 std::vector<std::vector<double>> q_;
391 Eigen::VectorXd eval_;
392 Eigen::MatrixXd jacMat_;
393 Eigen::MatrixXd jacDotMat_;
399 CoMTask(
const rbd::MultiBody & mb,
const Eigen::Vector3d & com);
400 CoMTask(
const rbd::MultiBody & mb,
const Eigen::Vector3d & com, std::vector<double> weight);
402 void com(
const Eigen::Vector3d & com);
403 const Eigen::Vector3d &
com()
const;
408 void update(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
410 const rbd::MultiBodyConfig & mbc,
411 const Eigen::Vector3d & com,
412 const std::vector<sva::MotionVecd> & normalAccB);
413 void updateDot(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
415 const Eigen::VectorXd &
eval()
const;
416 const Eigen::VectorXd &
speed()
const;
419 const Eigen::MatrixXd &
jac()
const;
423 Eigen::Vector3d com_;
424 Eigen::Vector3d actual_;
425 rbd::CoMJacobian jac_;
427 Eigen::VectorXd eval_;
428 Eigen::VectorXd speed_;
429 Eigen::VectorXd normalAcc_;
430 Eigen::MatrixXd jacMat_;
431 Eigen::MatrixXd jacDotMat_;
437 MultiCoMTask(
const std::vector<rbd::MultiBody> & mbs, std::vector<int> robotIndexes,
const Eigen::Vector3d & com);
441 void com(
const Eigen::Vector3d & com);
442 const Eigen::Vector3d
com()
const;
446 void update(
const std::vector<rbd::MultiBody> & mbs,
const std::vector<rbd::MultiBodyConfig> & mbcs);
447 void update(
const std::vector<rbd::MultiBody> & mbs,
448 const std::vector<rbd::MultiBodyConfig> & mbcs,
449 const std::vector<std::vector<sva::MotionVecd>> & normalAccB);
450 void update(
const std::vector<rbd::MultiBody> & mbs,
451 const std::vector<rbd::MultiBodyConfig> & mbcs,
452 const std::vector<Eigen::Vector3d> & coms,
453 const std::vector<std::vector<sva::MotionVecd>> & normalAccB);
455 const Eigen::VectorXd &
eval()
const;
456 const Eigen::VectorXd &
speed()
const;
459 const Eigen::MatrixXd &
jac(
int index)
const;
462 void update(
const std::vector<rbd::MultiBody> & mbs,
463 const std::vector<rbd::MultiBodyConfig> & mbcs,
464 const std::vector<std::vector<sva::MotionVecd>> & normalAccB,
465 const Eigen::Vector3d & multiCoM);
467 void computeRobotsWeight(
const std::vector<rbd::MultiBody> & mbs);
470 Eigen::Vector3d com_;
471 std::vector<int> robotIndexes_;
472 std::vector<double> robotsWeight_;
473 std::vector<rbd::CoMJacobian> jac_;
475 Eigen::VectorXd eval_;
476 Eigen::VectorXd speed_;
477 Eigen::VectorXd normalAcc_;
478 std::vector<Eigen::MatrixXd> jacMat_;
489 void update(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
491 const rbd::MultiBodyConfig & mbc,
492 const std::vector<sva::MotionVecd> & normalAccB);
493 void updateDot(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
495 const Eigen::VectorXd &
eval()
const;
496 const Eigen::VectorXd &
speed()
const;
499 const Eigen::MatrixXd &
jac()
const;
503 sva::ForceVecd momentum_;
504 rbd::CentroidalMomentumMatrix momentumMatrix_;
505 Eigen::VectorXd eval_;
506 Eigen::VectorXd speed_;
507 Eigen::VectorXd normalAcc_;
508 Eigen::MatrixXd jacMat_;
509 Eigen::MatrixXd jacDotMat_;
516 const std::string & bodyName,
517 const Eigen::Vector3d & vel,
518 const Eigen::Vector3d & bodyPoint = Eigen::Vector3d::Zero());
526 void update(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
528 const rbd::MultiBodyConfig & mbc,
529 const std::vector<sva::MotionVecd> & normalAccB);
530 void updateDot(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
532 const Eigen::VectorXd &
eval()
const;
533 const Eigen::VectorXd &
speed()
const;
536 const Eigen::MatrixXd &
jac()
const;
540 Eigen::Vector3d vel_;
541 sva::PTransformd point_;
545 Eigen::VectorXd eval_;
546 Eigen::VectorXd speed_;
547 Eigen::VectorXd normalAcc_;
548 Eigen::MatrixXd jacMat_;
549 Eigen::MatrixXd jacDotMat_;
556 const std::string & bodyName,
557 const Eigen::Vector3d & bodyPoint,
558 const Eigen::Vector3d & bodyAxis,
559 const std::vector<std::string> & trackingJointsName,
560 const Eigen::Vector3d & trackedPoint);
571 void update(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
572 void updateDot(
const rbd::MultiBody & mb,
const rbd::MultiBodyConfig & mbc);
574 virtual const Eigen::MatrixXd &
jac()
const;
575 virtual const Eigen::MatrixXd &
jacDot()
const;
576 virtual const Eigen::VectorXd &
eval()
const;
579 void zeroJacobian(Eigen::MatrixXd & jac)
const;
583 sva::PTransformd bodyPoint_;
584 Eigen::Vector3d bodyAxis_;
585 std::vector<int> zeroJacIndex_;
586 Eigen::Vector3d trackedPoint_;
589 Eigen::VectorXd eval_;
590 Eigen::MatrixXd shortJacMat_;
591 Eigen::MatrixXd jacMat_;
592 Eigen::MatrixXd jacDotMat_;
599 typedef std::tuple<std::string, Eigen::Vector3d, Eigen::Vector3d>
rbInfo;
603 const double timestep,
606 const Eigen::Vector3d & u1 = Eigen::Vector3d::Zero(),
607 const Eigen::Vector3d & u2 = Eigen::Vector3d::Zero());
609 void robotPoint(
const int bIndex,
const Eigen::Vector3d & point);
610 void envPoint(
const int bIndex,
const Eigen::Vector3d & point);
611 void vector(
const int bIndex,
const Eigen::Vector3d & u);
614 const rbd::MultiBodyConfig & mbc,
615 const std::vector<sva::MotionVecd> & normalAccB);
617 const Eigen::VectorXd &
eval()
const;
618 const Eigen::VectorXd &
speed()
const;
621 const Eigen::MatrixXd &
jac()
const;
624 struct RelativeBodiesInfo
626 RelativeBodiesInfo() {}
628 RelativeBodiesInfo(
const rbd::MultiBody & mb,
const rbInfo & rbi,
const Eigen::Vector3d & fixedVector);
631 Eigen::Vector3d r_b1_p, r_0_b2p, n;
634 Eigen::Vector3d offn;
641 Eigen::VectorXd eval_;
642 Eigen::VectorXd speed_;
643 Eigen::VectorXd normalAcc_;
644 Eigen::MatrixXd jacMat_;
646 RelativeBodiesInfo rbInfo_[2];
653 const std::string & bodyName,
654 const Eigen::Vector3d & bodyVector,
655 const Eigen::Vector3d & targetVector);
658 const rbd::MultiBodyConfig & mbc,
659 const std::vector<sva::MotionVecd> & normalAccB);
663 void target(
const Eigen::Vector3d & vector);
667 const Eigen::VectorXd &
eval()
const;
668 const Eigen::VectorXd &
speed()
const;
671 const Eigen::MatrixXd &
jac()
const;
674 Eigen::Matrix3d skewMatrix(
const Eigen::Vector3d & v);
677 Eigen::Vector3d actualVector_, bodyVector_, targetVector_;
681 Eigen::VectorXd eval_;
682 Eigen::VectorXd speed_;
683 Eigen::VectorXd normalAcc_;
684 Eigen::MatrixXd jacMat_;
const Eigen::Vector3d & actual() const
const Eigen::MatrixXd & jacDot() const
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const Eigen::Vector3d &com, const std::vector< sva::MotionVecd > &normalAccB)
const Eigen::VectorXd & normalAcc() const
void updateInertialParameters(const rbd::MultiBody &mb)
const Eigen::Vector3d & com() const
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
const Eigen::VectorXd & speed() const
const Eigen::MatrixXd & jac() const
void com(const Eigen::Vector3d &com)
CoMTask(const rbd::MultiBody &mb, const Eigen::Vector3d &com)
const Eigen::VectorXd & eval() const
CoMTask(const rbd::MultiBody &mb, const Eigen::Vector3d &com, std::vector< double > weight)
void updateDot(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
const Eigen::VectorXd & normalAcc() const
GazeTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Vector3d &point3d, const sva::PTransformd &X_b_gaze, const Eigen::Vector2d &point2d_ref=Eigen::Vector2d::Zero())
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB)
GazeTask(GazeTask &&)=default
GazeTask & operator=(GazeTask &&)=default
void error(const Eigen::Vector3d &point3d, const Eigen::Vector2d &point2d_ref=Eigen::Vector2d::Zero())
GazeTask & operator=(const GazeTask &rhs)
void error(const Eigen::Vector2d &point2d, const Eigen::Vector2d &point2d_ref=Eigen::Vector2d::Zero())
GazeTask(const GazeTask &rhs)
const Eigen::VectorXd & speed() const
const Eigen::VectorXd & eval() const
const Eigen::MatrixXd & jacDot() const
GazeTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Vector2d &point2d, double depthEstimate, const sva::PTransformd &X_b_gaze, const Eigen::Vector2d &point2d_ref=Eigen::Vector2d::Zero())
const Eigen::MatrixXd & jac() const
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
const Eigen::VectorXd & normalAcc() const
void updateDot(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
LinVelocityTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Vector3d &vel, const Eigen::Vector3d &bodyPoint=Eigen::Vector3d::Zero())
const Eigen::VectorXd & eval() const
const Eigen::MatrixXd & jacDot() const
const Eigen::MatrixXd & jac() const
const Eigen::VectorXd & speed() const
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB)
void velocity(const Eigen::Vector3d &s)
void bodyPoint(const Eigen::Vector3d &point)
const Eigen::Vector3d & velocity() const
const Eigen::Vector3d & bodyPoint() const
void updateDot(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB)
const Eigen::VectorXd & speed() const
const Eigen::MatrixXd & jac() const
const sva::ForceVecd momentum() const
MomentumTask(const rbd::MultiBody &mb, const sva::ForceVecd mom)
const Eigen::VectorXd & eval() const
const Eigen::VectorXd & normalAcc() const
const Eigen::MatrixXd & jacDot() const
void momentum(const sva::ForceVecd &mom)
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
const std::vector< int > & robotIndexes() const
void updateInertialParameters(const std::vector< rbd::MultiBody > &mbs)
void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const std::vector< Eigen::Vector3d > &coms, const std::vector< std::vector< sva::MotionVecd >> &normalAccB)
void com(const Eigen::Vector3d &com)
MultiCoMTask(const std::vector< rbd::MultiBody > &mbs, std::vector< int > robotIndexes, const Eigen::Vector3d &com)
const Eigen::MatrixXd & jac(int index) const
void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs)
const Eigen::VectorXd & speed() const
const Eigen::Vector3d com() const
void update(const std::vector< rbd::MultiBody > &mbs, const std::vector< rbd::MultiBodyConfig > &mbcs, const std::vector< std::vector< sva::MotionVecd >> &normalAccB)
const Eigen::VectorXd & normalAcc() const
const Eigen::VectorXd & eval() const
const Eigen::VectorXd & eval() const
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB)
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
void orientation(const Eigen::Quaterniond &ori)
const Eigen::VectorXd & normalAcc() const
OrientationTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Matrix3d &ori)
const Eigen::Matrix3d & orientation() const
const Eigen::VectorXd & speed() const
void orientation(const Eigen::Matrix3d &ori)
const Eigen::MatrixXd & jac() const
void updateDot(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
const Eigen::MatrixXd & jacDot() const
OrientationTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Quaterniond &ori)
const Eigen::Vector3d & bodyPoint() const
void updateDot(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
const Eigen::Vector3d & bodyAxis() const
const Eigen::Vector3d & trackedPoint() const
void bodyAxis(const Eigen::Vector3d &ba)
void trackedPoint(const Eigen::Vector3d &tp)
virtual const Eigen::VectorXd & eval() const
virtual const Eigen::MatrixXd & jacDot() const
void bodyPoint(const Eigen::Vector3d &bp)
virtual const Eigen::MatrixXd & jac() const
OrientationTrackingTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Vector3d &bodyPoint, const Eigen::Vector3d &bodyAxis, const std::vector< std::string > &trackingJointsName, const Eigen::Vector3d &trackedPoint)
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
PositionBasedVisServoTask(PositionBasedVisServoTask &&)=default
const Eigen::VectorXd & eval() const
PositionBasedVisServoTask & operator=(PositionBasedVisServoTask &&)=default
PositionBasedVisServoTask(const PositionBasedVisServoTask &rhs)
const Eigen::MatrixXd & jacDot() const
const Eigen::VectorXd & speed() const
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB)
PositionBasedVisServoTask(const rbd::MultiBody &mb, const std::string &bodyName, const sva::PTransformd &X_t_s, const sva::PTransformd &X_b_s)
const Eigen::MatrixXd & jac() const
const Eigen::VectorXd & normalAcc() const
void error(const sva::PTransformd &X_t_s)
PositionBasedVisServoTask & operator=(const PositionBasedVisServoTask &rhs)
const Eigen::VectorXd & speed() const
PositionTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Vector3d &pos, const Eigen::Vector3d &bodyPoint=Eigen::Vector3d::Zero())
const Eigen::Vector3d & position() const
const Eigen::Vector3d & bodyPoint() const
const Eigen::MatrixXd & jacDot() const
const Eigen::VectorXd & normalAcc() const
const Eigen::VectorXd & eval() const
void bodyPoint(const Eigen::Vector3d &point)
const Eigen::MatrixXd & jac() const
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
void position(const Eigen::Vector3d &pos)
void updateDot(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB)
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
const Eigen::MatrixXd & jac() const
void updateDot(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
const Eigen::MatrixXd & jacDot() const
PostureTask(const rbd::MultiBody &mb, std::vector< std::vector< double >> q)
void posture(std::vector< std::vector< double >> q)
const Eigen::VectorXd & eval() const
const std::vector< std::vector< double > > posture() const
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB)
const Eigen::VectorXd & normalAcc() const
void envPoint(const int bIndex, const Eigen::Vector3d &point)
const Eigen::VectorXd & eval() const
void robotPoint(const int bIndex, const Eigen::Vector3d &point)
const Eigen::MatrixXd & jac() const
const Eigen::VectorXd & speed() const
std::tuple< std::string, Eigen::Vector3d, Eigen::Vector3d > rbInfo
Definition: Tasks.h:599
void vector(const int bIndex, const Eigen::Vector3d &u)
RelativeDistTask(const rbd::MultiBody &mb, const double timestep, const rbInfo &rbi1, const rbInfo &rbi2, const Eigen::Vector3d &u1=Eigen::Vector3d::Zero(), const Eigen::Vector3d &u2=Eigen::Vector3d::Zero())
const Eigen::MatrixXd & jac() const
void updateDot(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB)
const Eigen::VectorXd & speed() const
const Eigen::VectorXd & eval() const
void orientation(const Eigen::Quaterniond &ori)
const Eigen::VectorXd & normalAcc() const
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc)
const Eigen::MatrixXd & jacDot() const
void orientation(const Eigen::Matrix3d &ori)
const Eigen::Matrix3d & orientation() const
SurfaceOrientationTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Quaterniond &ori, const sva::PTransformd &X_b_s)
SurfaceOrientationTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Matrix3d &ori, const sva::PTransformd &X_b_s)
void bodyVector(const Eigen::Vector3d &vector)
void update(const rbd::MultiBody &mb, const rbd::MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB)
const Eigen::Vector3d & bodyVector() const
const Eigen::VectorXd & speed() const
const Eigen::VectorXd & eval() const
VectorOrientationTask(const rbd::MultiBody &mb, const std::string &bodyName, const Eigen::Vector3d &bodyVector, const Eigen::Vector3d &targetVector)
const Eigen::MatrixXd & jac() const
void target(const Eigen::Vector3d &vector)
const Eigen::Vector3d & actual() const
const Eigen::Vector3d & target() const
const Eigen::VectorXd & normalAcc() const
Definition: GenQPSolver.h:21
Definition: GenQPUtils.h:19