aba-derivatives.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2018-2021 CNRS INRIA
3 //
4 
5 #ifndef __pinocchio_algorithm_aba_derivatives_hpp__
6 #define __pinocchio_algorithm_aba_derivatives_hpp__
7 
10 
11 #include <type_traits>
12 
13 namespace pinocchio
14 {
42  template<
43  typename Scalar,
44  int Options,
45  template<typename, int>
46  class JointCollectionTpl,
47  typename ConfigVectorType,
48  typename TangentVectorType1,
49  typename TangentVectorType2,
50  typename MatrixType1,
51  typename MatrixType2,
52  typename MatrixType3>
54  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
55  DataTpl<Scalar, Options, JointCollectionTpl> & data,
56  const Eigen::MatrixBase<ConfigVectorType> & q,
57  const Eigen::MatrixBase<TangentVectorType1> & v,
58  const Eigen::MatrixBase<TangentVectorType2> & tau,
59  const Eigen::MatrixBase<MatrixType1> & aba_partial_dq,
60  const Eigen::MatrixBase<MatrixType2> & aba_partial_dv,
61  const Eigen::MatrixBase<MatrixType3> & aba_partial_dtau);
90  template<
91  typename Scalar,
92  int Options,
93  template<typename, int>
94  class JointCollectionTpl,
95  typename ConfigVectorType,
96  typename TangentVectorType1,
97  typename TangentVectorType2,
98  typename MatrixType1,
99  typename MatrixType2,
100  typename MatrixType3>
102  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
103  DataTpl<Scalar, Options, JointCollectionTpl> & data,
104  const Eigen::MatrixBase<ConfigVectorType> & q,
105  const Eigen::MatrixBase<TangentVectorType1> & v,
106  const Eigen::MatrixBase<TangentVectorType2> & tau,
107  const container::aligned_vector<ForceTpl<Scalar, Options>> & fext,
108  const Eigen::MatrixBase<MatrixType1> & aba_partial_dq,
109  const Eigen::MatrixBase<MatrixType2> & aba_partial_dv,
110  const Eigen::MatrixBase<MatrixType3> & aba_partial_dtau);
111 
134  template<
135  typename Scalar,
136  int Options,
137  template<typename, int>
138  class JointCollectionTpl,
139  typename ConfigVectorType,
140  typename TangentVectorType1,
141  typename TangentVectorType2>
142  typename std::enable_if<
143  ConfigVectorType::IsVectorAtCompileTime || TangentVectorType1::IsVectorAtCompileTime
144  || TangentVectorType2::IsVectorAtCompileTime,
145  void>::type
147  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
148  DataTpl<Scalar, Options, JointCollectionTpl> & data,
149  const Eigen::MatrixBase<ConfigVectorType> & q,
150  const Eigen::MatrixBase<TangentVectorType1> & v,
151  const Eigen::MatrixBase<TangentVectorType2> & tau);
152 
177  template<
178  typename Scalar,
179  int Options,
180  template<typename, int>
181  class JointCollectionTpl,
182  typename ConfigVectorType,
183  typename TangentVectorType1,
184  typename TangentVectorType2>
186  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
187  DataTpl<Scalar, Options, JointCollectionTpl> & data,
188  const Eigen::MatrixBase<ConfigVectorType> & q,
189  const Eigen::MatrixBase<TangentVectorType1> & v,
190  const Eigen::MatrixBase<TangentVectorType2> & tau,
191  const container::aligned_vector<ForceTpl<Scalar, Options>> & fext);
192 
216  template<
217  typename Scalar,
218  int Options,
219  template<typename, int>
220  class JointCollectionTpl,
221  typename MatrixType1,
222  typename MatrixType2,
223  typename MatrixType3>
224  typename std::enable_if<
225  !(MatrixType1::IsVectorAtCompileTime || MatrixType2::IsVectorAtCompileTime
226  || MatrixType3::IsVectorAtCompileTime),
227  void>::type
229  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
230  DataTpl<Scalar, Options, JointCollectionTpl> & data,
231  const Eigen::MatrixBase<MatrixType1> & aba_partial_dq,
232  const Eigen::MatrixBase<MatrixType2> & aba_partial_dv,
233  const Eigen::MatrixBase<MatrixType3> & aba_partial_dtau);
234 
247  template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
249  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
250  DataTpl<Scalar, Options, JointCollectionTpl> & data);
251 
276  template<
277  typename Scalar,
278  int Options,
279  template<typename, int>
280  class JointCollectionTpl,
281  typename MatrixType1,
282  typename MatrixType2,
283  typename MatrixType3>
285  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
286  DataTpl<Scalar, Options, JointCollectionTpl> & data,
287  const container::aligned_vector<ForceTpl<Scalar, Options>> & fext,
288  const Eigen::MatrixBase<MatrixType1> & aba_partial_dq,
289  const Eigen::MatrixBase<MatrixType2> & aba_partial_dv,
290  const Eigen::MatrixBase<MatrixType3> & aba_partial_dtau);
291 
309  template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
311  const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
312  DataTpl<Scalar, Options, JointCollectionTpl> & data,
313  const container::aligned_vector<ForceTpl<Scalar, Options>> & fext);
314 
315 } // namespace pinocchio
316 
317 /* --- Details -------------------------------------------------------------------- */
318 #include "pinocchio/algorithm/aba-derivatives.hxx"
319 
320 #if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
321  #include "pinocchio/algorithm/aba-derivatives.txx"
322 #endif // PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
323 
324 #endif // ifndef __pinocchio_algorithm_aba_derivatives_hpp__
pinocchio::Options
Options
Definition: joint-configuration.hpp:1116
model.hpp
setup.data
data
Definition: cmake/cython/setup.in.py:48
pinocchio::python::Scalar
context::Scalar Scalar
Definition: admm-solver.cpp:29
simulation-pendulum.type
type
Definition: simulation-pendulum.py:18
forward-dynamics-derivatives.tau
tau
Definition: forward-dynamics-derivatives.py:23
data.hpp
pinocchio::q
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
Definition: joint-configuration.hpp:1117
pinocchio::v
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
Definition: joint-configuration.hpp:1118
pinocchio::container::aligned_vector
std::vector< T, Eigen::aligned_allocator< T > > aligned_vector
Definition: container/aligned-vector.hpp:21
pinocchio::computeABADerivatives
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.
pinocchio::model
JointCollectionTpl & model
Definition: joint-configuration.hpp:1116
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27


pinocchio
Author(s):
autogenerated on Tue Jun 25 2024 02:42:33