pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
rnea.hpp
1//
2// Copyright (c) 2015-2020 CNRS INRIA
3//
4
5#pragma once
6
7// IWYU pragma: begin_keep
8#include <Eigen/Core>
9
10#include <cassert>
11#include <cstddef>
12#include <vector>
13
14#include <boost/fusion/container/vector.hpp>
15
16#include "pinocchio/macros.hpp"
17#include "pinocchio/eigen-common.hpp"
18
19#include "pinocchio/math.hpp"
20
21#include "pinocchio/spatial.hpp"
22
23#include "pinocchio/multibody.hpp"
24#include "pinocchio/multibody/joint.hpp"
25
26#include "pinocchio/algorithm/check.hpp"
27// IWYU pragma: end_keep
28
29namespace pinocchio
30{
48 template<
49 typename Scalar,
50 int Options,
51 template<typename, int> class JointCollectionTpl,
52 typename ConfigVectorType,
53 typename TangentVectorType1,
54 typename TangentVectorType2>
55 const typename DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType & rnea(
56 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
57 DataTpl<Scalar, Options, JointCollectionTpl> & data,
58 const Eigen::MatrixBase<ConfigVectorType> & q,
59 const Eigen::MatrixBase<TangentVectorType1> & v,
60 const Eigen::MatrixBase<TangentVectorType2> & a);
61
83 template<
84 typename Scalar,
85 int Options,
86 template<typename, int> class JointCollectionTpl,
87 typename ConfigVectorType,
88 typename TangentVectorType1,
89 typename TangentVectorType2,
90 typename ForceDerived>
91 const typename DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType & rnea(
92 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
93 DataTpl<Scalar, Options, JointCollectionTpl> & data,
94 const Eigen::MatrixBase<ConfigVectorType> & q,
95 const Eigen::MatrixBase<TangentVectorType1> & v,
96 const Eigen::MatrixBase<TangentVectorType2> & a,
97 const std::vector<ForceDerived> & fext);
98
117 template<
118 typename Scalar,
119 int Options,
120 template<typename, int> class JointCollectionTpl,
121 typename ConfigVectorType,
122 typename TangentVectorType>
123 const typename DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType & nonLinearEffects(
124 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
125 DataTpl<Scalar, Options, JointCollectionTpl> & data,
126 const Eigen::MatrixBase<ConfigVectorType> & q,
127 const Eigen::MatrixBase<TangentVectorType> & v);
128
145 template<
146 typename Scalar,
147 int Options,
148 template<typename, int> class JointCollectionTpl,
149 typename ConfigVectorType>
150 const typename DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType &
152 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
153 DataTpl<Scalar, Options, JointCollectionTpl> & data,
154 const Eigen::MatrixBase<ConfigVectorType> & q);
155
175 template<
176 typename Scalar,
177 int Options,
178 template<typename, int> class JointCollectionTpl,
179 typename ConfigVectorType>
180 const typename DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType &
182 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
183 DataTpl<Scalar, Options, JointCollectionTpl> & data,
184 const Eigen::MatrixBase<ConfigVectorType> & q,
185 const std::vector<ForceTpl<Scalar, Options>> & fext);
186
205 template<
206 typename Scalar,
207 int Options,
208 template<typename, int> class JointCollectionTpl,
209 typename ConfigVectorType,
210 typename TangentVectorType>
211 const typename DataTpl<Scalar, Options, JointCollectionTpl>::MatrixXs & computeCoriolisMatrix(
212 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
213 DataTpl<Scalar, Options, JointCollectionTpl> & data,
214 const Eigen::MatrixBase<ConfigVectorType> & q,
215 const Eigen::MatrixBase<TangentVectorType> & v);
216
231 template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
232 const typename DataTpl<Scalar, Options, JointCollectionTpl>::MatrixXs & getCoriolisMatrix(
233 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
234 DataTpl<Scalar, Options, JointCollectionTpl> & data);
235
236} // namespace pinocchio
237
238// IWYU pragma: begin_exports
239#include "pinocchio/src/algorithm/rnea.hxx"
240// IWYU pragma: end_exports
Main pinocchio namespace.
Definition treeview.dox:11
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & rnea(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)
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques accordi...
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:
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & computeStaticTorque(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const std::vector< ForceTpl< Scalar, Options > > &fext)
Computes the generalized static torque contribution of the Lagrangian dynamics:
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:
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:
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),...