pinocchio  3.3.1
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
jacobian.hpp
1 //
2 // Copyright (c) 2015-2020 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_algorithm_jacobian_hpp__
6 #define __pinocchio_algorithm_jacobian_hpp__
7 
8 #include "pinocchio/multibody/model.hpp"
9 #include "pinocchio/multibody/data.hpp"
10 
11 namespace pinocchio
12 {
32  template<
33  typename Scalar,
34  int Options,
35  template<typename, int> class JointCollectionTpl,
36  typename ConfigVectorType>
40  const Eigen::MatrixBase<ConfigVectorType> & q);
41 
59  template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
63 
102  template<
103  typename Scalar,
104  int Options,
105  template<typename, int> class JointCollectionTpl,
106  typename Matrix6Like>
110  const JointIndex joint_id,
111  const ReferenceFrame reference_frame,
112  const Eigen::MatrixBase<Matrix6Like> & J);
126  template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
127  Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> getJointJacobian(
130  const JointIndex joint_id,
131  const ReferenceFrame reference_frame)
132  {
133  typedef Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> ReturnType;
134  ReturnType res(ReturnType::Zero(6, model.nv));
135 
136  getJointJacobian(model, data, joint_id, reference_frame, res);
137  return res;
138  }
139 
167  template<
168  typename Scalar,
169  int Options,
170  template<typename, int> class JointCollectionTpl,
171  typename ConfigVectorType,
172  typename Matrix6Like>
176  const Eigen::MatrixBase<ConfigVectorType> & q,
177  const JointIndex joint_id,
178  const Eigen::MatrixBase<Matrix6Like> & J);
179 
196  template<
197  typename Scalar,
198  int Options,
199  template<typename, int> class JointCollectionTpl,
200  typename ConfigVectorType,
201  typename TangentVectorType>
206  const Eigen::MatrixBase<ConfigVectorType> & q,
207  const Eigen::MatrixBase<TangentVectorType> & v);
208 
225  template<
226  typename Scalar,
227  int Options,
228  template<typename, int> class JointCollectionTpl,
229  typename Matrix6Like>
233  const JointIndex joint_id,
234  const ReferenceFrame reference_frame,
235  const Eigen::MatrixBase<Matrix6Like> & dJ);
236 
237 } // namespace pinocchio
238 
239 /* --- Details -------------------------------------------------------------------- */
240 /* --- Details -------------------------------------------------------------------- */
241 /* --- Details -------------------------------------------------------------------- */
242 
243 #include "pinocchio/algorithm/jacobian.hxx"
244 
245 #if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
246  #include "pinocchio/algorithm/jacobian.txx"
247 #endif // PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
248 
249 #endif // ifndef __pinocchio_algorithm_jacobian_hpp__
ReferenceFrame
Various conventions to express the velocity of a moving frame.
Definition: fwd.hpp:47
Main pinocchio namespace.
Definition: treeview.dox:11
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 computeJointJacobian(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const JointIndex joint_id, const Eigen::MatrixBase< Matrix6Like > &J)
Computes the Jacobian of a specific joint frame expressed in the local frame of the joint and store t...
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeJointJacobiansTimeVariation(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depen...
void getJointJacobian(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame reference_frame, const Eigen::MatrixBase< Matrix6Like > &J)
Computes the Jacobian of a specific joint frame expressed in one of the pinocchio::ReferenceFrame opt...
void getJointJacobianTimeVariation(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame reference_frame, const Eigen::MatrixBase< Matrix6Like > &dJ)
Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (r...
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > Matrix6x
The 6d jacobian type (temporary)
Definition: data.hpp:92