pinocchio  2.6.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
rnea.hpp
1 //
2 // Copyright (c) 2015-2020 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_algorithm_rnea_hpp__
6 #define __pinocchio_algorithm_rnea_hpp__
7 
8 #include "pinocchio/multibody/model.hpp"
9 #include "pinocchio/multibody/data.hpp"
10 
11 namespace pinocchio
12 {
29  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl, typename ConfigVectorType, typename TangentVectorType1, typename TangentVectorType2>
31  rnea(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
32  DataTpl<Scalar,Options,JointCollectionTpl> & data,
33  const Eigen::MatrixBase<ConfigVectorType> & q,
34  const Eigen::MatrixBase<TangentVectorType1> & v,
35  const Eigen::MatrixBase<TangentVectorType2> & a);
36 
55  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl, typename ConfigVectorType, typename TangentVectorType1, typename TangentVectorType2, typename ForceDerived>
57  rnea(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
58  DataTpl<Scalar,Options,JointCollectionTpl> & data,
59  const Eigen::MatrixBase<ConfigVectorType> & q,
60  const Eigen::MatrixBase<TangentVectorType1> & v,
61  const Eigen::MatrixBase<TangentVectorType2> & a,
62  const container::aligned_vector<ForceDerived> & fext);
63 
81  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl, typename ConfigVectorType, typename TangentVectorType>
83  nonLinearEffects(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
84  DataTpl<Scalar,Options,JointCollectionTpl> & data,
85  const Eigen::MatrixBase<ConfigVectorType> & q,
86  const Eigen::MatrixBase<TangentVectorType> & v);
87 
103  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl, typename ConfigVectorType>
105  computeGeneralizedGravity(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
106  DataTpl<Scalar,Options,JointCollectionTpl> & data,
107  const Eigen::MatrixBase<ConfigVectorType> & q);
108 
126  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl, typename ConfigVectorType>
128  computeStaticTorque(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
129  DataTpl<Scalar,Options,JointCollectionTpl> & data,
130  const Eigen::MatrixBase<ConfigVectorType> & q,
131  const container::aligned_vector< ForceTpl<Scalar,Options> > & fext);
132 
150  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl, typename ConfigVectorType, typename TangentVectorType>
151  inline const typename DataTpl<Scalar,Options,JointCollectionTpl>::MatrixXs &
152  computeCoriolisMatrix(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
153  DataTpl<Scalar,Options,JointCollectionTpl> & data,
154  const Eigen::MatrixBase<ConfigVectorType> & q,
155  const Eigen::MatrixBase<TangentVectorType> & v);
156 
171  template<typename Scalar, int Options, template<typename,int> class JointCollectionTpl>
172  inline const typename DataTpl<Scalar,Options,JointCollectionTpl>::MatrixXs &
173  getCoriolisMatrix(const ModelTpl<Scalar,Options,JointCollectionTpl> & model,
174  DataTpl<Scalar,Options,JointCollectionTpl> & data);
175 
176 } // namespace pinocchio
177 
178 /* --- Details -------------------------------------------------------------------- */
179 #include "pinocchio/algorithm/rnea.hxx"
180 
181 #endif // ifndef __pinocchio_algorithm_rnea_hpp__
pinocchio::computeStaticTorque
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & computeStaticTorque(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const container::aligned_vector< ForceTpl< Scalar, Options > > &fext)
Computes the generalized static torque contribution of the Lagrangian dynamics:
pinocchio::computeCoriolisMatrix
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & computeCoriolisMatrix(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the Coriolis Matrix of the Lagrangian dynamics:
pinocchio::rnea
void rnea(const int num_threads, ModelPoolTpl< Scalar, Options, JointCollectionTpl > &pool, const Eigen::MatrixBase< ConfigVectorPool > &q, const Eigen::MatrixBase< TangentVectorPool1 > &v, const Eigen::MatrixBase< TangentVectorPool2 > &a, const Eigen::MatrixBase< TangentVectorPool3 > &tau)
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques accordi...
Definition: rnea.hpp:32
pinocchio::DataTpl::TangentVectorType
VectorXs TangentVectorType
Dense vectorized version of a joint tangent vector (e.g. velocity, acceleration, etc)....
Definition: data.hpp:68
pinocchio::nonLinearEffects
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & nonLinearEffects(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the non-linear effects (Corriolis, centrifual and gravitationnal effects),...
pinocchio::getCoriolisMatrix
const DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & getCoriolisMatrix(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Retrives the Coriolis Matrix of the Lagrangian dynamics:
pinocchio::computeGeneralizedGravity
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & computeGeneralizedGravity(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the generalized gravity contribution of the Lagrangian dynamics:
pinocchio
Main pinocchio namespace.
Definition: treeview.dox:24