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"
39 template<
typename,
int>
class JointCollectionTpl,
40 typename ConfigVectorType,
41 typename TangentVectorType1,
42 typename TangentVectorType2>
46 const Eigen::MatrixBase<ConfigVectorType> & q,
47 const Eigen::MatrixBase<TangentVectorType1> & v,
48 const Eigen::MatrixBase<TangentVectorType2> & a);
69 template<
typename,
int>
class JointCollectionTpl,
70 typename Matrix6xOut1,
71 typename Matrix6xOut2>
75 const Model::JointIndex jointId,
77 const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
78 const Eigen::MatrixBase<Matrix6xOut2> & v_partial_dv);
109 template<
typename,
int>
class JointCollectionTpl,
110 typename Matrix6xOut1,
111 typename Matrix6xOut2,
112 typename Matrix6xOut3,
113 typename Matrix6xOut4>
117 const Model::JointIndex jointId,
119 const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
120 const Eigen::MatrixBase<Matrix6xOut2> & a_partial_dq,
121 const Eigen::MatrixBase<Matrix6xOut3> & a_partial_dv,
122 const Eigen::MatrixBase<Matrix6xOut4> & a_partial_da);
155 template<
typename,
int>
class JointCollectionTpl,
156 typename Matrix6xOut1,
157 typename Matrix6xOut2,
158 typename Matrix6xOut3,
159 typename Matrix6xOut4,
160 typename Matrix6xOut5>
164 const Model::JointIndex jointId,
166 const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
167 const Eigen::MatrixBase<Matrix6xOut2> & v_partial_dv,
168 const Eigen::MatrixBase<Matrix6xOut3> & a_partial_dq,
169 const Eigen::MatrixBase<Matrix6xOut4> & a_partial_dv,
170 const Eigen::MatrixBase<Matrix6xOut5> & a_partial_da);
194 template<
typename,
int>
class JointCollectionTpl,
195 typename Matrix3xOut1,
196 typename Matrix3xOut2>
200 const Model::JointIndex joint_id,
203 const Eigen::MatrixBase<Matrix3xOut1> & v_point_partial_dq,
204 const Eigen::MatrixBase<Matrix3xOut2> & v_point_partial_dv);
237 template<
typename,
int>
class JointCollectionTpl,
238 typename Matrix3xOut1,
239 typename Matrix3xOut2,
240 typename Matrix3xOut3,
241 typename Matrix3xOut4>
245 const Model::JointIndex joint_id,
248 const Eigen::MatrixBase<Matrix3xOut1> & v_point_partial_dq,
249 const Eigen::MatrixBase<Matrix3xOut2> & a_point_partial_dq,
250 const Eigen::MatrixBase<Matrix3xOut3> & a_point_partial_dv,
251 const Eigen::MatrixBase<Matrix3xOut4> & a_point_partial_da);
285 template<
typename,
int>
class JointCollectionTpl,
286 typename Matrix3xOut1,
287 typename Matrix3xOut2,
288 typename Matrix3xOut3,
289 typename Matrix3xOut4,
290 typename Matrix3xOut5>
294 const Model::JointIndex joint_id,
297 const Eigen::MatrixBase<Matrix3xOut1> & v_point_partial_dq,
298 const Eigen::MatrixBase<Matrix3xOut2> & v_point_partial_dv,
299 const Eigen::MatrixBase<Matrix3xOut3> & a_point_partial_dq,
300 const Eigen::MatrixBase<Matrix3xOut4> & a_point_partial_dv,
301 const Eigen::MatrixBase<Matrix3xOut5> & a_point_partial_da);
318 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
342 template<
typename,
int>
class JointCollectionTpl,
343 typename ConfigVectorType>
347 const Eigen::MatrixBase<ConfigVectorType> & q)
379 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
383 const Model::JointIndex joint_id,
415 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
419 const Model::JointIndex joint_id,
423 ReturnType res(6, model.nv, model.nv);
431 #include "pinocchio/algorithm/kinematics-derivatives.hxx"
433 #if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
434 #include "pinocchio/algorithm/kinematics-derivatives.txx"
ReferenceFrame
Various conventions to express the velocity of a moving frame.
Main pinocchio namespace.
void getPointVelocityDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix3xOut1 > &v_point_partial_dq, const Eigen::MatrixBase< Matrix3xOut2 > &v_point_partial_dv)
Computes the partial derivatives of the velocity of a point given by its placement information w....
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 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,...
void getJointAccelerationDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const 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...
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 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...
void getJointVelocityDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const 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 getPointClassicAccelerationDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const Model::JointIndex joint_id, const SE3Tpl< Scalar, Options > &placement, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix3xOut1 > &v_point_partial_dq, const Eigen::MatrixBase< Matrix3xOut2 > &a_point_partial_dq, const Eigen::MatrixBase< Matrix3xOut3 > &a_point_partial_dv, const Eigen::MatrixBase< Matrix3xOut4 > &a_point_partial_da)
Computes the partial derivatives of the classic acceleration of a point given by its placement inform...