5 #ifndef __pinocchio_algorithm_aba_derivatives_hpp__
6 #define __pinocchio_algorithm_aba_derivatives_hpp__
8 #include "pinocchio/multibody/model.hpp"
9 #include "pinocchio/multibody/data.hpp"
11 #include <type_traits>
45 template<
typename,
int>
class JointCollectionTpl,
46 typename ConfigVectorType,
47 typename TangentVectorType1,
48 typename TangentVectorType2,
55 const Eigen::MatrixBase<ConfigVectorType> & q,
56 const Eigen::MatrixBase<TangentVectorType1> & v,
57 const Eigen::MatrixBase<TangentVectorType2> & tau,
58 const Eigen::MatrixBase<MatrixType1> & aba_partial_dq,
59 const Eigen::MatrixBase<MatrixType2> & aba_partial_dv,
60 const Eigen::MatrixBase<MatrixType3> & aba_partial_dtau);
92 template<
typename,
int>
class JointCollectionTpl,
93 typename ConfigVectorType,
94 typename TangentVectorType1,
95 typename TangentVectorType2,
102 const Eigen::MatrixBase<ConfigVectorType> & q,
103 const Eigen::MatrixBase<TangentVectorType1> & v,
104 const Eigen::MatrixBase<TangentVectorType2> & tau,
106 const Eigen::MatrixBase<MatrixType1> & aba_partial_dq,
107 const Eigen::MatrixBase<MatrixType2> & aba_partial_dv,
108 const Eigen::MatrixBase<MatrixType3> & aba_partial_dtau);
135 template<
typename,
int>
class JointCollectionTpl,
136 typename ConfigVectorType,
137 typename TangentVectorType1,
138 typename TangentVectorType2>
139 typename std::enable_if<
140 ConfigVectorType::IsVectorAtCompileTime || TangentVectorType1::IsVectorAtCompileTime
141 || TangentVectorType2::IsVectorAtCompileTime,
146 const Eigen::MatrixBase<ConfigVectorType> & q,
147 const Eigen::MatrixBase<TangentVectorType1> & v,
148 const Eigen::MatrixBase<TangentVectorType2> & tau);
177 template<
typename,
int>
class JointCollectionTpl,
178 typename ConfigVectorType,
179 typename TangentVectorType1,
180 typename TangentVectorType2>
184 const Eigen::MatrixBase<ConfigVectorType> & q,
185 const Eigen::MatrixBase<TangentVectorType1> & v,
186 const Eigen::MatrixBase<TangentVectorType2> & tau,
215 template<
typename,
int>
class JointCollectionTpl,
216 typename MatrixType1,
217 typename MatrixType2,
218 typename MatrixType3>
219 typename std::enable_if<
220 !(MatrixType1::IsVectorAtCompileTime || MatrixType2::IsVectorAtCompileTime
221 || MatrixType3::IsVectorAtCompileTime),
226 const Eigen::MatrixBase<MatrixType1> & aba_partial_dq,
227 const Eigen::MatrixBase<MatrixType2> & aba_partial_dv,
228 const Eigen::MatrixBase<MatrixType3> & aba_partial_dtau);
242 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
274 template<
typename,
int>
class JointCollectionTpl,
275 typename MatrixType1,
276 typename MatrixType2,
277 typename MatrixType3>
282 const Eigen::MatrixBase<MatrixType1> & aba_partial_dq,
283 const Eigen::MatrixBase<MatrixType2> & aba_partial_dv,
284 const Eigen::MatrixBase<MatrixType3> & aba_partial_dtau);
303 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
312 #include "pinocchio/algorithm/aba-derivatives.hxx"
314 #if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
315 #include "pinocchio/algorithm/aba-derivatives.txx"
Main pinocchio namespace.
void computeABADerivatives(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 > &tau, const Eigen::MatrixBase< MatrixType1 > &aba_partial_dq, const Eigen::MatrixBase< MatrixType2 > &aba_partial_dv, const Eigen::MatrixBase< MatrixType3 > &aba_partial_dtau)
The derivatives of the Articulated-Body algorithm.