14 #include <rbdyn/config.hh>
21 struct MultiBodyConfig;
29 RBDYN_DLLAPI Eigen::Vector3d
computeCoM(
const MultiBody & mb,
const MultiBodyConfig & mbc);
37 RBDYN_DLLAPI Eigen::Vector3d
computeCoMVelocity(
const MultiBody & mb,
const MultiBodyConfig & mbc);
77 inline const Eigen::MatrixXd &
jacobian() const noexcept
115 Eigen::MatrixXd jac_;
116 Eigen::MatrixXd jacDot_;
117 Eigen::MatrixXd jacFull_;
119 std::vector<Jacobian> jacVec_;
121 std::vector<double> bodiesWeight_;
146 void updateInertialParameters(
const MultiBody & mb);
149 const std::vector<double> & weight()
const;
152 void weight(
const MultiBody & mb, std::vector<double> w);
166 inline const Eigen::MatrixXd &
jacobian() const noexcept
211 Eigen::Vector3d normalAcceleration(
const MultiBody & mb,
213 const std::vector<sva::MotionVecd> & normalAccB)
const;
220 void sUpdateInertialParameters(
const MultiBody & mb);
226 void sWeight(
const MultiBody & mb, std::vector<double> w);
251 Eigen::Vector3d sNormalAcceleration(
const MultiBody & mb,
253 const std::vector<sva::MotionVecd> & normalAccB)
const;
259 Eigen::MatrixXd jac_;
260 Eigen::MatrixXd jacDot_;
262 std::vector<double> bodiesCoeff_;
265 std::vector<sva::PTransformd> bodiesCoM_;
266 std::vector<std::vector<int>> jointsSubBodies_;
269 std::vector<sva::PTransformd> bodiesCoMWorld_;
270 std::vector<sva::MotionVecd> bodiesCoMVelB_;
272 std::vector<sva::MotionVecd> normalAcc_;
274 std::vector<double> weight_;
284 RBDYN_DLLAPI Eigen::Vector3d
sComputeCoM(
const MultiBody & mb,
const MultiBodyConfig & mbc);
291 RBDYN_DLLAPI Eigen::Vector3d
sComputeCoMVelocity(
const MultiBody & mb,
const MultiBodyConfig & mbc);