pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
aba.hpp
1//
2// Copyright (c) 2016-2018 CNRS
3// Copyright (c) 2018-2024 INRIA
4//
5
6#pragma once
7
8// IWYU pragma: begin_keep
9#include <Eigen/Core>
10
11#include <cassert>
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#include "pinocchio/multibody/visitor.hpp"
26
27#include "pinocchio/algorithm/check.hpp"
28// IWYU pragma: end_keep
29
30namespace pinocchio
31{
52 template<
53 typename Scalar,
54 int Options,
55 template<typename, int> class JointCollectionTpl,
56 typename ConfigVectorType,
57 typename TangentVectorType1,
58 typename TangentVectorType2>
59 const typename DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType & aba(
60 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
61 DataTpl<Scalar, Options, JointCollectionTpl> & data,
62 const Eigen::MatrixBase<ConfigVectorType> & q,
63 const Eigen::MatrixBase<TangentVectorType1> & v,
64 const Eigen::MatrixBase<TangentVectorType2> & tau,
65 const Convention convention = Convention::LOCAL);
66
89 template<
90 typename Scalar,
91 int Options,
92 template<typename, int> class JointCollectionTpl,
93 typename ConfigVectorType,
94 typename TangentVectorType1,
95 typename TangentVectorType2,
96 typename SpatialForce,
97 typename SpatialForceAllocator>
98 const typename DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType & aba(
99 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
100 DataTpl<Scalar, Options, JointCollectionTpl> & data,
101 const Eigen::MatrixBase<ConfigVectorType> & q,
102 const Eigen::MatrixBase<TangentVectorType1> & v,
103 const Eigen::MatrixBase<TangentVectorType2> & tau,
104 const std::vector<SpatialForce, SpatialForceAllocator> & fext,
105 const Convention convention = Convention::LOCAL);
106
120 template<
121 typename Scalar,
122 int Options,
123 template<typename, int> class JointCollectionTpl,
124 typename ConfigVectorType>
125 const typename DataTpl<Scalar, Options, JointCollectionTpl>::RowMatrixXs & computeMinverse(
126 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
127 DataTpl<Scalar, Options, JointCollectionTpl> & data,
128 const Eigen::MatrixBase<ConfigVectorType> & q);
129
143 template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
144 const typename DataTpl<Scalar, Options, JointCollectionTpl>::RowMatrixXs & computeMinverse(
145 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
146 DataTpl<Scalar, Options, JointCollectionTpl> & data);
147
148 PINOCCHIO_DEFINE_ALGO_CHECKER(ABA);
149
150} // namespace pinocchio
151
152// IWYU pragma: begin_exports
153#include "pinocchio/src/algorithm/aba.hxx"
154// IWYU pragma: end_exports
Main pinocchio namespace.
Definition treeview.dox:11
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & aba(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 Convention convention=Convention::LOCAL)
The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given t...
const DataTpl< Scalar, Options, JointCollectionTpl >::RowMatrixXs & computeMinverse(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the inverse of the joint space inertia matrix using Articulated Body formulation.