10#include <rbdyn/config.hh>
12#include <SpaceVecAlg/SpaceVecAlg>
19struct MultiBodyConfig;
21using Blocks = std::vector<Block>;
34 const Eigen::Vector3d & com);
46 const Eigen::Vector3d & com,
47 const Eigen::Vector3d & comDot);
84 const Eigen::Vector3d & com,
85 const Eigen::Vector3d & comDot);
94 const Eigen::Vector3d & com,
95 const Eigen::Vector3d & comDot);
98 const Eigen::MatrixXd &
matrix()
const;
124 const Eigen::Vector3d & com,
125 const Eigen::Vector3d & comDot);
140 const Eigen::Vector3d & com,
141 const Eigen::Vector3d & comDot,
142 const std::vector<sva::MotionVecd> & normalAccB)
const;
156 const Eigen::Vector3d & com,
157 const Eigen::Vector3d & comDot);
164 const Eigen::Vector3d & com,
165 const Eigen::Vector3d & comDot);
177 const Eigen::Vector3d & com,
178 const Eigen::Vector3d & comDot);
185 const Eigen::Vector3d & com,
186 const Eigen::Vector3d & comDot,
187 const std::vector<sva::MotionVecd> & normalAccB)
const;
193 Eigen::MatrixXd cmMat_;
194 Eigen::MatrixXd cmMatDot_;
196 std::vector<Jacobian> jacVec_;
197 std::vector<Blocks> blocksVec_;
198 std::vector<Eigen::MatrixXd> jacWork_;
199 std::vector<double> bodiesWeight_;
200 std::vector<sva::MotionVecd> normalAcc_;
212 const Eigen::Vector3d & com);
221 const Eigen::Vector3d & com,
222 const Eigen::Vector3d & comDot);
void computeMatrix(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com)
sva::ForceVecd normalMomentumDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot)
sva::ForceVecd momentum(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com) const
sva::ForceVecd sMomentum(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com) const
void sComputeMatrixDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot)
CentroidalMomentumMatrix(const MultiBody &mb, std::vector< double > weight)
const Eigen::MatrixXd & matrix() const
sva::ForceVecd normalMomentumDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot, const std::vector< sva::MotionVecd > &normalAccB) const
CentroidalMomentumMatrix()
void computeMatrixAndMatrixDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot)
CentroidalMomentumMatrix(const MultiBody &mb)
void sComputeMatrixAndMatrixDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot)
sva::ForceVecd sNormalMomentumDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot, const std::vector< sva::MotionVecd > &normalAccB) const
sva::ForceVecd sNormalMomentumDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot)
void computeMatrixDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot)
void sComputeMatrix(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com)
const Eigen::MatrixXd & matrixDot() const
Definition MultiBody.h:30
RBDYN_DLLAPI sva::ForceVecd computeCentroidalMomentumDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot)
Compute the time derivative of centroidal momentum at the CoM frame.
RBDYN_DLLAPI sva::ForceVecd sComputeCentroidalMomentum(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com)
std::vector< Block > Blocks
Definition Jacobian.h:33
RBDYN_DLLAPI sva::ForceVecd computeCentroidalMomentum(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com)
RBDYN_DLLAPI sva::ForceVecd sComputeCentroidalMomentumDot(const MultiBody &mb, const MultiBodyConfig &mbc, const Eigen::Vector3d &com, const Eigen::Vector3d &comDot)
Definition MultiBodyConfig.h:24