pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
centroidal.hpp
1//
2// Copyright (c) 2015-2019 CNRS INRIA
3//
4
5#pragma once
6
7// IWYU pragma: begin_keep
8#include <Eigen/Core>
9
10#include <cassert>
11#include <type_traits>
12#include <vector>
13//
14#include <boost/fusion/container/vector.hpp>
15
16#include "pinocchio/macros.hpp"
17#include "pinocchio/fwd.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#include "pinocchio/multibody/visitor.hpp"
26
27#include "pinocchio/algorithm/check.hpp"
28#include "pinocchio/algorithm/kinematics.hpp"
29// IWYU pragma: end_keep
30
31namespace pinocchio
32{
33
48 template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
49 const typename DataTpl<Scalar, Options, JointCollectionTpl>::Force & computeCentroidalMomentum(
50 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
51 DataTpl<Scalar, Options, JointCollectionTpl> & data);
52
71 template<
72 typename Scalar,
73 int Options,
74 template<typename, int> class JointCollectionTpl,
75 typename ConfigVectorType,
76 typename TangentVectorType>
77 const typename DataTpl<Scalar, Options, JointCollectionTpl>::Force & computeCentroidalMomentum(
78 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
79 DataTpl<Scalar, Options, JointCollectionTpl> & data,
80 const Eigen::MatrixBase<ConfigVectorType> & q,
81 const Eigen::MatrixBase<TangentVectorType> & v);
82
100 template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
101 const typename DataTpl<Scalar, Options, JointCollectionTpl>::Force &
103 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
104 DataTpl<Scalar, Options, JointCollectionTpl> & data);
105
129 template<
130 typename Scalar,
131 int Options,
132 template<typename, int> class JointCollectionTpl,
133 typename ConfigVectorType,
134 typename TangentVectorType1,
135 typename TangentVectorType2>
136 const typename DataTpl<Scalar, Options, JointCollectionTpl>::Force &
138 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
139 DataTpl<Scalar, Options, JointCollectionTpl> & data,
140 const Eigen::MatrixBase<ConfigVectorType> & q,
141 const Eigen::MatrixBase<TangentVectorType1> & v,
142 const Eigen::MatrixBase<TangentVectorType2> & a);
143
163 template<
164 typename Scalar,
165 int Options,
166 template<typename, int> class JointCollectionTpl,
167 typename ConfigVectorType,
168 typename TangentVectorType>
169 const typename DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x & ccrba(
170 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
171 DataTpl<Scalar, Options, JointCollectionTpl> & data,
172 const Eigen::MatrixBase<ConfigVectorType> & q,
173 const Eigen::MatrixBase<TangentVectorType> & v);
174
190 template<
191 typename Scalar,
192 int Options,
193 template<typename, int> class JointCollectionTpl,
194 typename ConfigVectorType>
195 const typename DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x & computeCentroidalMap(
196 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
197 DataTpl<Scalar, Options, JointCollectionTpl> & data,
198 const Eigen::MatrixBase<ConfigVectorType> & q);
199
222 template<
223 typename Scalar,
224 int Options,
225 template<typename, int> class JointCollectionTpl,
226 typename ConfigVectorType,
227 typename TangentVectorType>
228 const typename DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x & dccrba(
229 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
230 DataTpl<Scalar, Options, JointCollectionTpl> & data,
231 const Eigen::MatrixBase<ConfigVectorType> & q,
232 const Eigen::MatrixBase<TangentVectorType> & v);
233
252 template<
253 typename Scalar,
254 int Options,
255 template<typename, int> class JointCollectionTpl,
256 typename ConfigVectorType,
257 typename TangentVectorType>
258 const typename DataTpl<Scalar, Options, JointCollectionTpl>::Matrix6x &
260 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
261 DataTpl<Scalar, Options, JointCollectionTpl> & data,
262 const Eigen::MatrixBase<ConfigVectorType> & q,
263 const Eigen::MatrixBase<TangentVectorType> & v);
264
265} // namespace pinocchio
266
267// IWYU pragma: begin_exports
268#include "pinocchio/src/algorithm/centroidal.hxx"
269// IWYU pragma: end_exports
Main pinocchio namespace.
Definition treeview.dox:11
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeCentroidalMap(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the Centroidal Momentum Matrix.
const DataTpl< Scalar, Options, JointCollectionTpl >::Force & computeCentroidalMomentum(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Computes the Centroidal momentum, a.k.a. the total momenta of the system expressed around the center ...
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & dccrba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the time derivative of the Centroidal Momentum Matrix according to the current configuration...
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & computeCentroidalMapTimeVariation(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the Centroidal Momentum Matrix time derivative.
const DataTpl< Scalar, Options, JointCollectionTpl >::Force & computeCentroidalMomentumTimeVariation(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data)
Computes the Centroidal momemtum and its time derivatives, a.k.a. the total momenta of the system and...
const DataTpl< Scalar, Options, JointCollectionTpl >::Matrix6x & ccrba(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v)
Computes the Centroidal Momentum Matrix, the Composite Ridig Body Inertia as well as the centroidal m...