aligator 0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Loading...
Searching...
No Matches
multibody-constraint-fwd.hpp
Go to the documentation of this file.
1
2#pragma once
3
5
7#include <pinocchio/multibody/data.hpp>
8
9#include <pinocchio/algorithm/proximal.hpp>
10#include <pinocchio/algorithm/contact-info.hpp>
11
12namespace aligator {
13namespace dynamics {
14template <typename Scalar> struct MultibodyConstraintFwdDataTpl;
15
17template <typename _Scalar>
19 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
20 using Scalar = _Scalar;
26#pragma GCC diagnostic push
27#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
28 using RigidConstraintModel = pinocchio::RigidConstraintModel;
29 using RigidConstraintData = pinocchio::RigidConstraintData;
31 PINOCCHIO_ALIGNED_STD_VECTOR(RigidConstraintModel);
33 PINOCCHIO_ALIGNED_STD_VECTOR(RigidConstraintData);
34#pragma GCC diagnostic pop
35 using ProxSettings = pinocchio::ProximalSettings;
37
42
43 const Manifold &space() const { return space_; }
44 int ntau() const { return space_.getModel().nv; }
45
46 const pinocchio::ModelTpl<Scalar> &pinModel() const {
47 return space_.getModel();
48 }
49
51 const Manifold &state, const MatrixXs &actuation,
52 const RigidConstraintModelVector &constraint_models,
53 const ProxSettings &prox_settings);
54
55 virtual void forward(const ConstVectorRef &x, const ConstVectorRef &u,
56 BaseData &data) const;
57 virtual void dForward(const ConstVectorRef &x, const ConstVectorRef &u,
58 BaseData &data) const;
59
60 shared_ptr<ContDataAbstract> createData() const;
61};
62
63template <typename Scalar>
68 using PinDataType = pinocchio::DataTpl<Scalar>;
69#pragma GCC diagnostic push
70#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
71 using RigidConstraintData = pinocchio::RigidConstraintData;
72#pragma GCC diagnostic pop
74 PINOCCHIO_ALIGNED_STD_VECTOR(RigidConstraintData);
75
80 pinocchio::ProximalSettings settings;
84};
85
86#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
89#endif
90
91} // namespace dynamics
92} // namespace aligator
Namespace for modelling system dynamics.
Main package namespace.
Defines a class representing ODEs.
The tangent bundle of a multibody configuration group.
Data struct for ContinuousDynamicsAbstractTpl.
MultibodyConstraintFwdDataTpl(const MultibodyConstraintFwdDynamicsTpl< Scalar > &cont_dyn)
PINOCCHIO_ALIGNED_STD_VECTOR(RigidConstraintData) RigidConstraintDataVector
Constraint multibody forward dynamics, using Pinocchio.
PINOCCHIO_ALIGNED_STD_VECTOR(RigidConstraintData) RigidConstraintDataVector
MultibodyConstraintFwdDynamicsTpl(const Manifold &state, const MatrixXs &actuation, const RigidConstraintModelVector &constraint_models, const ProxSettings &prox_settings)
PINOCCHIO_ALIGNED_STD_VECTOR(RigidConstraintModel) RigidConstraintModelVector
shared_ptr< ContDataAbstract > createData() const
Create a data holder instance.
virtual void forward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Evaluate the ODE vector field: this returns the value of .
const pinocchio::ModelTpl< Scalar > & pinModel() const
virtual void dForward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Evaluate the vector field Jacobians.
Base class for ODE dynamics .
Typedefs for math (Eigen vectors, matrices) depending on scalar type.
Definition math.hpp:123