5 #ifndef __pinocchio_kinematics_derivatives_hpp__ 6 #define __pinocchio_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 DataTpl<Scalar,Options,JointCollectionTpl> & data,
58 const Model::JointIndex jointId,
59 const ReferenceFrame rf,
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 DataTpl<Scalar,Options,JointCollectionTpl> & data,
87 const Model::JointIndex jointId,
88 const ReferenceFrame rf,
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 DataTpl<Scalar,Options,JointCollectionTpl> & data,
120 const Model::JointIndex jointId,
121 const ReferenceFrame rf,
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>
196 const Model::JointIndex joint_id,
197 const ReferenceFrame rf,
221 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
225 const Model::JointIndex joint_id,
226 const ReferenceFrame rf)
229 ReturnType res(6,model.
nv,model.
nv); res.setZero();
236 #include "pinocchio/algorithm/kinematics-derivatives.hxx" 238 #endif // ifndef __pinocchio_kinematics_derivatives_hpp__ void getJointVelocityDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex jointId, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xOut1 > &v_partial_dq, const Eigen::MatrixBase< Matrix6xOut2 > &v_partial_dv)
Computes the partial derivaties of the spatial velocity of a given with respect to the joint configur...
void getJointAccelerationDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex jointId, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xOut1 > &v_partial_dq, const Eigen::MatrixBase< Matrix6xOut2 > &a_partial_dq, const Eigen::MatrixBase< Matrix6xOut3 > &a_partial_dv, const Eigen::MatrixBase< Matrix6xOut4 > &a_partial_da)
Computes the partial derivaties of the spatial acceleration of a given with respect to the joint conf...
int nv
Dimension of the velocity vector space.
void computeForwardKinematicsDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a)
Computes all the terms required to compute the derivatives of the placement, spatial velocity and acc...
void computeJointKinematicHessians(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Computes all the terms required to compute the second order derivatives of the placement information...
Main pinocchio namespace.
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeJointJacobians(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame...
void getJointKinematicHessian(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex joint_id, const ReferenceFrame rf, Tensor< Scalar, 3, Options > &kinematic_hessian)
Retrieves the kinematic Hessian of a given joint according to the values aleardy computed by computeJ...