pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
impulse-dynamics.hpp
1//
2// Copyright (c) 2020 CNRS INRIA
3//
4#pragma once
5
6// IWYU pragma: begin_keep
7#include <cassert>
8#include <cstddef>
9#include <vector>
10
11#include <Eigen/Core>
12
13#include "pinocchio/config.hpp"
14#include "pinocchio/context.hpp"
15#include "pinocchio/macros.hpp"
16#include "pinocchio/unsupported.hpp"
17
18#include "pinocchio/spatial.hpp"
19
20#include "pinocchio/multibody.hpp"
21
22#include "pinocchio/utils/check.hpp"
23
24#include "pinocchio/constraints.hpp"
25#include "pinocchio/algorithm/check.hpp"
26#include "pinocchio/algorithm/constrained-dynamics.hpp"
27#include "pinocchio/algorithm/proximal.hpp"
28#include "pinocchio/algorithm/constraint-cholesky.hpp"
29// IWYU pragma: end_keep
30
31namespace pinocchio
32{
33
37
69 template<
70 typename Scalar,
71 int Options,
72 template<typename, int> class JointCollectionTpl,
73 typename ConfigVectorType,
74 typename TangentVectorType1,
75 class ConstraintModelAllocator,
76 class ConstraintDataAllocator>
77 PINOCCHIO_UNSUPPORTED_MESSAGE("The API will change towards more flexibility")
78 const typename DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType & impulseDynamics(
79 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
80 DataTpl<Scalar, Options, JointCollectionTpl> & data,
81 const Eigen::MatrixBase<ConfigVectorType> & q,
82 const Eigen::MatrixBase<TangentVectorType1> & v_before,
83 const std::vector<RigidConstraintModelTpl<Scalar, Options>, ConstraintModelAllocator> &
84 contact_models,
85 std::vector<RigidConstraintDataTpl<Scalar, Options>, ConstraintDataAllocator> & contact_datas,
86 const Scalar r_coeff,
87 const ProximalSettingsTpl<Scalar> & settings);
88
89} // namespace pinocchio
90
91// IWYU pragma: begin_exports
92#include "pinocchio/src/algorithm/impulse-dynamics.hxx"
93// IWYU pragma: end_exports
Main pinocchio namespace.
Definition treeview.dox:11
PINOCCHIO_UNSUPPORTED const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & impulseDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType > &v_before, const Eigen::MatrixBase< ConstraintMatrixType > &J, const Scalar r_coeff=0., const Scalar inv_damping=0.)
Compute the impulse dynamics with contact constraints. Internally, pinocchio::crba is called.