5 #ifndef __pinocchio_algorithm_kinematics_derivatives_hpp__
6 #define __pinocchio_algorithm_kinematics_derivatives_hpp__
8 #include "pinocchio/multibody/model.hpp"
9 #include "pinocchio/multibody/data.hpp"
11 #include "pinocchio/algorithm/jacobian.hpp"
33 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType,
typename TangentVectorType1,
typename TangentVectorType2>
35 DataTpl<Scalar,Options,JointCollectionTpl> & data,
36 const Eigen::MatrixBase<ConfigVectorType> & q,
37 const Eigen::MatrixBase<TangentVectorType1> & v,
38 const Eigen::MatrixBase<TangentVectorType2> & a);
55 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename Matrix6xOut1,
typename Matrix6xOut2>
57 const DataTpl<Scalar,Options,JointCollectionTpl> & data,
58 const Model::JointIndex jointId,
60 const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
61 const Eigen::MatrixBase<Matrix6xOut2> & v_partial_dv);
84 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename Matrix6xOut1,
typename Matrix6xOut2,
typename Matrix6xOut3,
typename Matrix6xOut4>
86 const DataTpl<Scalar,Options,JointCollectionTpl> & data,
87 const Model::JointIndex jointId,
89 const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
90 const Eigen::MatrixBase<Matrix6xOut2> & a_partial_dq,
91 const Eigen::MatrixBase<Matrix6xOut3> & a_partial_dv,
92 const Eigen::MatrixBase<Matrix6xOut4> & a_partial_da);
117 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename Matrix6xOut1,
typename Matrix6xOut2,
typename Matrix6xOut3,
typename Matrix6xOut4,
typename Matrix6xOut5>
119 const DataTpl<Scalar,Options,JointCollectionTpl> & data,
120 const Model::JointIndex jointId,
122 const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
123 const Eigen::MatrixBase<Matrix6xOut2> & v_partial_dv,
124 const Eigen::MatrixBase<Matrix6xOut3> & a_partial_dq,
125 const Eigen::MatrixBase<Matrix6xOut4> & a_partial_dv,
126 const Eigen::MatrixBase<Matrix6xOut5> & a_partial_da);
142 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
145 DataTpl<Scalar,Options,JointCollectionTpl> & data);
162 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl,
typename ConfigVectorType>
166 const Eigen::MatrixBase<ConfigVectorType> & q)
192 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
195 const DataTpl<Scalar,Options,JointCollectionTpl> & data,
196 const Model::JointIndex joint_id,
198 Tensor<Scalar,3,Options> & kinematic_hessian);
221 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
222 inline Tensor<Scalar,3,Options>
225 const Model::JointIndex joint_id,
229 ReturnType res(6,model.nv,model.nv); res.setZero();
236 #include "pinocchio/algorithm/kinematics-derivatives.hxx"
238 #endif // ifndef __pinocchio_algorithm_kinematics_derivatives_hpp__