pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
centroidal-derivatives.hpp
1//
2// Copyright (c) 2018-2021 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/eigen-common.hpp"
18#include "pinocchio/fwd.hpp"
19
20#include "pinocchio/math.hpp"
21
22#include "pinocchio/spatial.hpp"
23
24#include "pinocchio/multibody.hpp"
25#include "pinocchio/multibody/joint.hpp"
26#include "pinocchio/multibody/visitor.hpp"
27
28#include "pinocchio/algorithm/check.hpp"
29// IWYU pragma: end_keep
30
31namespace pinocchio
32{
33
66 template<
67 typename Scalar,
68 int Options,
69 template<typename, int> class JointCollectionTpl,
70 typename ConfigVectorType,
71 typename TangentVectorType1,
72 typename TangentVectorType2,
73 typename Matrix6xLike0,
74 typename Matrix6xLike1,
75 typename Matrix6xLike2,
76 typename Matrix6xLike3>
78 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
79 DataTpl<Scalar, Options, JointCollectionTpl> & data,
80 const Eigen::MatrixBase<ConfigVectorType> & q,
81 const Eigen::MatrixBase<TangentVectorType1> & v,
82 const Eigen::MatrixBase<TangentVectorType2> & a,
83 const Eigen::MatrixBase<Matrix6xLike0> & dh_dq,
84 const Eigen::MatrixBase<Matrix6xLike1> & dhdot_dq,
85 const Eigen::MatrixBase<Matrix6xLike2> & dhdot_dv,
86 const Eigen::MatrixBase<Matrix6xLike3> & dhdot_da);
112 template<
113 typename Scalar,
114 int Options,
115 template<typename, int> class JointCollectionTpl,
116 typename Matrix6xLike0,
117 typename Matrix6xLike1,
118 typename Matrix6xLike2,
119 typename Matrix6xLike3>
121 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
122 DataTpl<Scalar, Options, JointCollectionTpl> & data,
123 const Eigen::MatrixBase<Matrix6xLike1> & dh_dq,
124 const Eigen::MatrixBase<Matrix6xLike1> & dhdot_dq,
125 const Eigen::MatrixBase<Matrix6xLike2> & dhdot_dv,
126 const Eigen::MatrixBase<Matrix6xLike3> & dhdot_da);
127
128} // namespace pinocchio
129// IWYU pragma: begin_exports
130#include "pinocchio/src/algorithm/centroidal-derivatives.hxx"
131// IWYU pragma: end_exports
Main pinocchio namespace.
Definition treeview.dox:11
void getCentroidalDynamicsDerivatives(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< Matrix6xLike1 > &dh_dq, const Eigen::MatrixBase< Matrix6xLike1 > &dhdot_dq, const Eigen::MatrixBase< Matrix6xLike2 > &dhdot_dv, const Eigen::MatrixBase< Matrix6xLike3 > &dhdot_da)
Retrive the analytical derivatives of the centroidal dynamics from the RNEA derivatives....
void computeCentroidalDynamicsDerivatives(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, const Eigen::MatrixBase< Matrix6xLike0 > &dh_dq, const Eigen::MatrixBase< Matrix6xLike1 > &dhdot_dq, const Eigen::MatrixBase< Matrix6xLike2 > &dhdot_dv, const Eigen::MatrixBase< Matrix6xLike3 > &dhdot_da)
Computes the analytical derivatives of the centroidal dynamics with respect to the joint configuratio...