5 #ifndef __pinocchio_algorithm_constrained_dynamics_hpp__
6 #define __pinocchio_algorithm_constrained_dynamics_hpp__
8 #include "pinocchio/algorithm/contact-info.hpp"
10 #include "pinocchio/algorithm/proximal.hpp"
32 template<
typename,
int>
33 class JointCollectionTpl,
37 const
ModelTpl<Scalar, Options, JointCollectionTpl> & model,
38 DataTpl<Scalar, Options, JointCollectionTpl> & data,
83 template<typename,
int>
84 class JointCollectionTpl,
85 typename ConfigVectorType,
86 typename TangentVectorType1,
87 typename TangentVectorType2,
88 class ConstraintModelAllocator,
89 class ConstraintDataAllocator>
93 const
ModelTpl<Scalar, Options, JointCollectionTpl> & model,
94 DataTpl<Scalar, Options, JointCollectionTpl> & data,
95 const Eigen::MatrixBase<ConfigVectorType> & q,
96 const Eigen::MatrixBase<TangentVectorType1> & v,
97 const Eigen::MatrixBase<TangentVectorType2> & tau,
141 template<typename,
int>
142 class JointCollectionTpl,
143 typename ConfigVectorType,
144 typename TangentVectorType1,
145 typename TangentVectorType2,
146 class ConstraintModelAllocator,
147 class ConstraintDataAllocator>
151 const
ModelTpl<Scalar, Options, JointCollectionTpl> & model,
152 DataTpl<Scalar, Options, JointCollectionTpl> & data,
153 const Eigen::MatrixBase<ConfigVectorType> & q,
154 const Eigen::MatrixBase<TangentVectorType1> & v,
155 const Eigen::MatrixBase<TangentVectorType2> & tau,
161 return constraintDynamics(model, data, q, v, tau, contact_models, contact_datas, settings);
167 template<
typename,
int>
168 class JointCollectionTpl,
169 typename ConfigVectorType,
170 typename TangentVectorType1,
171 typename TangentVectorType2,
172 class ModelAllocator,
176 typename DataTpl<Scalar, Options, JointCollectionTpl>::TangentVectorType & contactABA(
177 const ModelTpl<Scalar, Options, JointCollectionTpl> & model,
178 DataTpl<Scalar, Options, JointCollectionTpl> & data,
179 const Eigen::MatrixBase<ConfigVectorType> & q,
180 const Eigen::MatrixBase<TangentVectorType1> & v,
181 const Eigen::MatrixBase<TangentVectorType2> & tau,
182 const std::vector<RigidConstraintModelTpl<Scalar, Options>, ModelAllocator> & contact_models,
183 std::vector<RigidConstraintDataTpl<Scalar, Options>, DataAllocator> & contact_data)
185 ProximalSettingsTpl<Scalar> settings = ProximalSettingsTpl<Scalar>();
187 model, data, q.derived(), v.derived(), tau.derived(), contact_models, contact_data, settings);
192 #include "pinocchio/algorithm/constrained-dynamics.hxx"
194 #if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
195 #include "pinocchio/algorithm/constrained-dynamics.txx"
Main pinocchio namespace.
struct PINOCCHIO_UNSUPPORTED_MESSAGE("The API will change towards more flexibility") ContactCholeskyDecompositionTpl
Contact Cholesky decomposition structure. This structure allows to compute in a efficient and parsimo...
const DataTpl< Scalar, Options, JointCollectionTpl >::TangentVectorType & constraintDynamics(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 std::vector< RigidConstraintModelTpl< Scalar, Options >, ConstraintModelAllocator > &contact_models, std::vector< RigidConstraintDataTpl< Scalar, Options >, ConstraintDataAllocator > &contact_datas, ProximalSettingsTpl< Scalar > &settings)
Computes the forward dynamics with contact constraints according to a given list of contact informati...
void initConstraintDynamics(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const std::vector< RigidConstraintModelTpl< Scalar, Options >, Allocator > &contact_models)
Init the forward dynamics data according to the contact information contained in contact_models.
Structure containing all the settings parameters for the proximal algorithms.