9#include <rbdyn/config.hh>
15struct MultiBodyConfig;
50 Jacobian(
const MultiBody & mb,
const std::string & bodyName,
const Eigen::Vector3d & point = Eigen::Vector3d::Zero());
61 const std::string & bodyName,
62 const std::string & refBodyName,
63 const Eigen::Vector3d & point = Eigen::Vector3d::Zero());
100 const Eigen::Vector3d & vector);
112 const Eigen::Vector3d & vector);
165 const sva::PTransformd & X_b_p,
166 const sva::MotionVecd & V_b_p)
const;
195 const std::vector<sva::MotionVecd> & normalAccB,
196 const sva::PTransformd & X_b_p,
197 const sva::MotionVecd & V_b_p)
const;
208 const std::vector<sva::MotionVecd> & normalAccB)
const;
219 const std::vector<sva::MotionVecd> & normalAccB)
const;
230 const Eigen::Vector3d & point,
231 Eigen::MatrixXd & res);
242 const Eigen::Vector3d & point,
243 Eigen::MatrixXd & res);
251 void fullJacobian(
const MultiBody & mb,
const Eigen::Ref<const Eigen::MatrixXd> & jac, Eigen::MatrixXd & res)
const;
261 const Eigen::Ref<const Eigen::MatrixXd> & jac,
262 Eigen::MatrixXd & res)
const;
273 const Eigen::Ref<const Eigen::MatrixXd> & jac,
274 Eigen::MatrixXd & res)
const;
310 const Eigen::Ref<const Eigen::MatrixXd> & jac,
311 Eigen::MatrixXd & res)
const;
326 return static_cast<int>(jac_.cols());
330 const Eigen::Vector3d &
point()
const
332 return point_.translation();
336 void point(
const Eigen::Vector3d & point)
338 point_ = sva::PTransformd(point);
363 const Eigen::Vector3d & vec);
370 const Eigen::Vector3d & vec);
393 const Eigen::Vector3d & point,
394 Eigen::MatrixXd & res);
417 const sva::PTransformd & X_b_p,
418 const sva::MotionVecd & V_b_p)
const;
425 const std::vector<sva::MotionVecd> & normalAccB,
426 const sva::PTransformd & X_b_p,
427 const sva::MotionVecd & V_b_p)
const;
449 const std::vector<sva::MotionVecd> & normalAccB)
const;
456 const std::vector<sva::MotionVecd> & normalAccB)
const;
460 const sva::MotionVecd & bodyNNormalAcc,
461 const sva::PTransformd & X_b_p,
462 const sva::MotionVecd & V_b_p)
const;
463 sva::MotionVecd normalAcceleration(
const MultiBodyConfig & mbc,
const sva::MotionVecd & bodyNNormalAcc)
const;
464 sva::MotionVecd bodyNormalAcceleration(
const MultiBodyConfig & mbc,
const sva::MotionVecd & bodyNNormalAcc)
const;
467 std::vector<int> jointsPath_;
468 std::vector<double> jointsSign_;
469 sva::PTransformd point_;
471 Eigen::MatrixXd jac_;
472 Eigen::MatrixXd jacDot_;
void translateBodyJacobian(const Eigen::Ref< const Eigen::MatrixXd > &jac, const MultiBodyConfig &mbc, const Eigen::Vector3d &point, Eigen::MatrixXd &res)
const std::vector< int > & jointsPath() const
Definition Jacobian.h:318
const Eigen::Vector3d & point() const
Definition Jacobian.h:330
sva::MotionVecd sNormalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc) const
const Eigen::MatrixXd & sJacobian(const MultiBody &mb, const MultiBodyConfig &mbc, const sva::PTransformd &X_0_p)
sva::MotionVecd sNormalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB, const sva::PTransformd &X_b_p, const sva::MotionVecd &V_b_p) const
const Eigen::MatrixXd & jacobian(const MultiBody &mb, const MultiBodyConfig &mbc, const sva::PTransformd &X_0_p)
void sTranslateJacobian(const Eigen::MatrixXd &jac, const MultiBodyConfig &mbc, const Eigen::Vector3d &point, Eigen::MatrixXd &res)
sva::MotionVecd bodyNormalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB) const
const Eigen::MatrixXd & jacobianDot(const MultiBody &mb, const MultiBodyConfig &mbc)
const Eigen::MatrixXd & sBodyJacobian(const MultiBody &mb, const MultiBodyConfig &mbc)
const Eigen::MatrixXd & vectorJacobian(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &vector)
Jacobian(const MultiBody &mb, const std::string &bodyName, const Eigen::Vector3d &point=Eigen::Vector3d::Zero())
void expandAdd(const rbd::MultiBody &mb, const Eigen::Ref< const Eigen::MatrixXd > &jac, Eigen::MatrixXd &res) const
MultiBody sSubMultiBody(const MultiBody &mb) const
const Eigen::MatrixXd & sJacobian(const MultiBody &mb, const MultiBodyConfig &mbc)
Blocks compactPath(const rbd::MultiBody &mb) const
const Eigen::MatrixXd & sVectorJacobian(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &vec)
sva::MotionVecd bodyNormalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc) const
sva::MotionVecd sBodyVelocity(const MultiBody &mb, const MultiBodyConfig &mbc) const
sva::MotionVecd sNormalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB) const
void fullJacobian(const MultiBody &mb, const Eigen::Ref< const Eigen::MatrixXd > &jac, Eigen::MatrixXd &res) const
sva::MotionVecd sNormalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc, const sva::PTransformd &X_b_p, const sva::MotionVecd &V_b_p) const
Jacobian(const MultiBody &mb, const std::string &bodyName, const std::string &refBodyName, const Eigen::Vector3d &point=Eigen::Vector3d::Zero())
sva::MotionVecd sBodyNormalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB) const
void translateJacobian(const Eigen::Ref< const Eigen::MatrixXd > &jac, const MultiBodyConfig &mbc, const Eigen::Vector3d &point, Eigen::MatrixXd &res)
MultiBody subMultiBody(const MultiBody &mb) const
sva::MotionVecd normalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc) const
void point(const Eigen::Vector3d &point)
Definition Jacobian.h:336
const Eigen::MatrixXd & sVectorBodyJacobian(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &vec)
const Eigen::MatrixXd & sJacobianDot(const MultiBody &mb, const MultiBodyConfig &mbc)
sva::MotionVecd bodyVelocity(const MultiBody &mb, const MultiBodyConfig &mbc) const
sva::MotionVecd velocity(const MultiBody &mb, const MultiBodyConfig &mbc, const sva::PTransformd &X_b_p) const
int dof() const
Definition Jacobian.h:324
void addFullJacobian(const MultiBody &mb, const Eigen::Ref< const Eigen::MatrixXd > &jac, Eigen::MatrixXd &res) const
const Eigen::MatrixXd & sBodyJacobianDot(const MultiBody &mb, const MultiBodyConfig &mbc)
sva::MotionVecd normalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB) const
sva::MotionVecd normalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc, const std::vector< sva::MotionVecd > &normalAccB, const sva::PTransformd &X_b_p, const sva::MotionVecd &V_b_p) const
sva::MotionVecd sVelocity(const MultiBody &mb, const MultiBodyConfig &mbc) const
sva::MotionVecd sBodyNormalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc) const
sva::MotionVecd sVelocity(const MultiBody &mb, const MultiBodyConfig &mbc, const sva::PTransformd &X_b_p) const
void expandAdd(const Blocks &compactPath, const Eigen::Ref< const Eigen::MatrixXd > &jac, Eigen::MatrixXd &res) const
void addFullJacobian(const Blocks &compactPath, const Eigen::Ref< const Eigen::MatrixXd > &jac, Eigen::MatrixXd &res) const
const Eigen::MatrixXd & bodyJacobian(const MultiBody &mb, const MultiBodyConfig &mbc)
const Eigen::MatrixXd & vectorBodyJacobian(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &vector)
void sFullJacobian(const MultiBody &mb, const Eigen::MatrixXd &jac, Eigen::MatrixXd &res) const
sva::MotionVecd velocity(const MultiBody &mb, const MultiBodyConfig &mbc) const
Eigen::MatrixXd expand(const rbd::MultiBody &mb, const Eigen::Ref< const Eigen::MatrixXd > &jac) const
const Eigen::MatrixXd & bodyJacobianDot(const MultiBody &mb, const MultiBodyConfig &mbc)
sva::MotionVecd normalAcceleration(const MultiBody &mb, const MultiBodyConfig &mbc, const sva::PTransformd &X_b_p, const sva::MotionVecd &V_b_p) const
const Eigen::MatrixXd & jacobian(const MultiBody &mb, const MultiBodyConfig &mbc)
Definition MultiBody.h:30
std::vector< Block > Blocks
Definition Jacobian.h:33
Eigen::DenseIndex startJac
Definition Jacobian.h:28
Eigen::DenseIndex startDof
Definition Jacobian.h:26
Block(Eigen::DenseIndex startDof, Eigen::DenseIndex startJac, Eigen::DenseIndex length)
Definition Jacobian.h:21
Eigen::DenseIndex length
Definition Jacobian.h:30
Definition MultiBodyConfig.h:24