5 #ifndef __pinocchio_algorithm_regressor_hpp__
6 #define __pinocchio_algorithm_regressor_hpp__
8 #include "pinocchio/multibody/model.hpp"
9 #include "pinocchio/multibody/data.hpp"
19 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename Matrix6xReturnType>
21 const DataTpl<Scalar,Options,JointCollectionTpl> & data,
22 const JointIndex joint_id,
24 const SE3Tpl<Scalar,Options> & placement,
25 const Eigen::MatrixBase<Matrix6xReturnType> & kinematic_regressor);
40 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
44 const JointIndex joint_id,
49 ReturnType res(ReturnType::Zero(6,(model.njoints-1)*6));
61 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename Matrix6xReturnType>
63 const DataTpl<Scalar,Options,JointCollectionTpl> & data,
64 const JointIndex joint_id,
66 const Eigen::MatrixBase<Matrix6xReturnType> & kinematic_regressor);
79 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
83 const JointIndex joint_id,
87 ReturnType res(ReturnType::Zero(6,(model.njoints-1)*6));
99 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename Matrix6xReturnType>
101 DataTpl<Scalar,Options,JointCollectionTpl> & data,
102 const FrameIndex frame_id,
104 const Eigen::MatrixBase<Matrix6xReturnType> & kinematic_regressor);
117 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
121 const FrameIndex frame_id,
125 ReturnType res(ReturnType::Zero(6,(model.njoints-1)*6));
150 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType>
153 DataTpl<Scalar,Options,JointCollectionTpl> & data,
154 const Eigen::MatrixBase<ConfigVectorType> & q);
174 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType>
178 const Eigen::MatrixBase<ConfigVectorType> & q)
180 return ::pinocchio::computeStaticRegressor(model,data,q);
194 template<
typename MotionVelocity,
typename MotionAcceleration,
typename OutputType>
197 const MotionDense<MotionAcceleration> & a,
198 const Eigen::MatrixBase<OutputType> & regressor);
211 template<
typename MotionVelocity,
typename MotionAcceleration>
212 inline Eigen::Matrix<
typename MotionVelocity::Scalar,6,10,PINOCCHIO_EIGEN_PLAIN_TYPE(
typename MotionVelocity::Vector3)::Options>
214 const MotionDense<MotionAcceleration> & a);
232 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
235 DataTpl<Scalar,Options,JointCollectionTpl> & data,
254 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
257 DataTpl<Scalar,Options,JointCollectionTpl> & data,
283 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType,
typename TangentVectorType1,
typename TangentVectorType2>
284 inline typename DataTpl<Scalar,Options,JointCollectionTpl>::MatrixXs &
286 DataTpl<Scalar,Options,JointCollectionTpl> & data,
287 const Eigen::MatrixBase<ConfigVectorType> & q,
288 const Eigen::MatrixBase<TangentVectorType1> & v,
289 const Eigen::MatrixBase<TangentVectorType2> & a);
294 #include "pinocchio/algorithm/regressor.hxx"
296 #endif // ifndef __pinocchio_algorithm_regressor_hpp__