aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
multibody-constraint-fwd.hpp
Go to the documentation of this file.
1
2
#pragma once
3
4
#include "
aligator/modelling/dynamics/ode-abstract.hpp
"
5
6
#include "
aligator/modelling/spaces/multibody.hpp
"
7
#include <pinocchio/multibody/data.hpp>
8
9
#include <pinocchio/algorithm/proximal.hpp>
10
#include <pinocchio/algorithm/contact-info.hpp>
11
12
namespace
aligator
{
13
namespace
dynamics
{
14
template
<
typename
Scalar>
struct
MultibodyConstraintFwdDataTpl
;
15
17
template
<
typename
_Scalar>
18
struct
MultibodyConstraintFwdDynamicsTpl
:
ODEAbstractTpl
<_Scalar> {
19
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
20
using
Scalar
= _Scalar;
21
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
22
using
Base
=
ODEAbstractTpl<Scalar>
;
23
using
BaseData
=
ContinuousDynamicsDataTpl<Scalar>
;
24
using
ContDataAbstract
=
ContinuousDynamicsDataTpl<Scalar>
;
25
using
Data
=
MultibodyConstraintFwdDataTpl<Scalar>
;
26
#pragma GCC diagnostic push
27
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
28
using
RigidConstraintModel
= pinocchio::RigidConstraintModel;
29
using
RigidConstraintData
= pinocchio::RigidConstraintData;
30
using
RigidConstraintModelVector
=
31
PINOCCHIO_ALIGNED_STD_VECTOR(
RigidConstraintModel
);
32
using
RigidConstraintDataVector
=
33
PINOCCHIO_ALIGNED_STD_VECTOR(
RigidConstraintData
);
34
#pragma GCC diagnostic pop
35
using
ProxSettings
= pinocchio::ProximalSettings;
36
using
Manifold
=
MultibodyPhaseSpace<Scalar>
;
37
38
Manifold
space_
;
39
MatrixXs
actuation_matrix_
;
40
RigidConstraintModelVector
constraint_models_
;
41
ProxSettings
prox_settings_
;
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
50
MultibodyConstraintFwdDynamicsTpl
(
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
63
template
<
typename
Scalar>
64
struct
MultibodyConstraintFwdDataTpl
:
ContinuousDynamicsDataTpl
<Scalar> {
65
using
Base
=
ContinuousDynamicsDataTpl<Scalar>
;
66
using
VectorXs
=
typename
math_types<Scalar>::VectorXs
;
67
using
MatrixXs
=
typename
math_types<Scalar>::MatrixXs
;
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
73
using
RigidConstraintDataVector
=
74
PINOCCHIO_ALIGNED_STD_VECTOR(
RigidConstraintData
);
75
76
VectorXs
tau_
;
77
MatrixXs
dtau_dx_
;
78
MatrixXs
dtau_du_
;
79
RigidConstraintDataVector
constraint_datas_
;
80
pinocchio::ProximalSettings
settings
;
81
PinDataType
pin_data_
;
82
explicit
MultibodyConstraintFwdDataTpl
(
83
const
MultibodyConstraintFwdDynamicsTpl<Scalar>
&cont_dyn);
84
};
85
86
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
87
extern
template
struct
MultibodyConstraintFwdDynamicsTpl<context::Scalar>
;
88
extern
template
struct
MultibodyConstraintFwdDataTpl<context::Scalar>
;
89
#endif
90
91
}
// namespace dynamics
92
}
// namespace aligator
multibody.hpp
aligator::dynamics
Namespace for modelling system dynamics.
Definition
centroidal-fwd.hpp:10
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
ode-abstract.hpp
Defines a class representing ODEs.
aligator::MultibodyPhaseSpace
The tangent bundle of a multibody configuration group.
Definition
multibody.hpp:118
aligator::dynamics::ContinuousDynamicsDataTpl
Data struct for ContinuousDynamicsAbstractTpl.
Definition
continuous-dynamics-abstract.hpp:64
aligator::dynamics::ContinuousDynamicsDataTpl< Scalar >::ContinuousDynamicsDataTpl
ContinuousDynamicsDataTpl(const int ndx, const int nu)
aligator::dynamics::MultibodyConstraintFwdDataTpl
Definition
multibody-constraint-fwd.hpp:64
aligator::dynamics::MultibodyConstraintFwdDataTpl::MatrixXs
typename math_types< Scalar >::MatrixXs MatrixXs
Definition
multibody-constraint-fwd.hpp:67
aligator::dynamics::MultibodyConstraintFwdDataTpl::pin_data_
PinDataType pin_data_
Definition
multibody-constraint-fwd.hpp:81
aligator::dynamics::MultibodyConstraintFwdDataTpl::constraint_datas_
RigidConstraintDataVector constraint_datas_
Definition
multibody-constraint-fwd.hpp:79
aligator::dynamics::MultibodyConstraintFwdDataTpl::RigidConstraintData
pinocchio::RigidConstraintData RigidConstraintData
Definition
multibody-constraint-fwd.hpp:71
aligator::dynamics::MultibodyConstraintFwdDataTpl::Base
ContinuousDynamicsDataTpl< Scalar > Base
Definition
multibody-constraint-fwd.hpp:65
aligator::dynamics::MultibodyConstraintFwdDataTpl::VectorXs
typename math_types< Scalar >::VectorXs VectorXs
Definition
multibody-constraint-fwd.hpp:66
aligator::dynamics::MultibodyConstraintFwdDataTpl::dtau_du_
MatrixXs dtau_du_
Definition
multibody-constraint-fwd.hpp:78
aligator::dynamics::MultibodyConstraintFwdDataTpl::RigidConstraintDataVector
PINOCCHIO_ALIGNED_STD_VECTOR(RigidConstraintData) RigidConstraintDataVector
Definition
multibody-constraint-fwd.hpp:73
aligator::dynamics::MultibodyConstraintFwdDataTpl::PinDataType
pinocchio::DataTpl< Scalar > PinDataType
Definition
multibody-constraint-fwd.hpp:68
aligator::dynamics::MultibodyConstraintFwdDataTpl::tau_
VectorXs tau_
Definition
multibody-constraint-fwd.hpp:76
aligator::dynamics::MultibodyConstraintFwdDataTpl::dtau_dx_
MatrixXs dtau_dx_
Definition
multibody-constraint-fwd.hpp:77
aligator::dynamics::MultibodyConstraintFwdDataTpl::settings
pinocchio::ProximalSettings settings
Definition
multibody-constraint-fwd.hpp:80
aligator::dynamics::MultibodyConstraintFwdDataTpl::MultibodyConstraintFwdDataTpl
MultibodyConstraintFwdDataTpl(const MultibodyConstraintFwdDynamicsTpl< Scalar > &cont_dyn)
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl
Constraint multibody forward dynamics, using Pinocchio.
Definition
multibody-constraint-fwd.hpp:18
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::Scalar
_Scalar Scalar
Definition
multibody-constraint-fwd.hpp:20
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::MultibodyConstraintFwdDynamicsTpl
MultibodyConstraintFwdDynamicsTpl(const Manifold &state, const MatrixXs &actuation, const RigidConstraintModelVector &constraint_models, const ProxSettings &prox_settings)
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::RigidConstraintModelVector
PINOCCHIO_ALIGNED_STD_VECTOR(RigidConstraintModel) RigidConstraintModelVector
Definition
multibody-constraint-fwd.hpp:30
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::ProxSettings
pinocchio::ProximalSettings ProxSettings
Definition
multibody-constraint-fwd.hpp:35
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::Base
ODEAbstractTpl< Scalar > Base
Definition
multibody-constraint-fwd.hpp:22
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::prox_settings_
ProxSettings prox_settings_
Definition
multibody-constraint-fwd.hpp:41
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::BaseData
ContinuousDynamicsDataTpl< Scalar > BaseData
Definition
multibody-constraint-fwd.hpp:23
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::createData
shared_ptr< ContDataAbstract > createData() const
Create a data holder instance.
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::forward
virtual void forward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Evaluate the ODE vector field: this returns the value of .
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::pinModel
const pinocchio::ModelTpl< Scalar > & pinModel() const
Definition
multibody-constraint-fwd.hpp:46
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::space_
Manifold space_
Definition
multibody-constraint-fwd.hpp:38
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::Data
MultibodyConstraintFwdDataTpl< Scalar > Data
Definition
multibody-constraint-fwd.hpp:25
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::constraint_models_
RigidConstraintModelVector constraint_models_
Definition
multibody-constraint-fwd.hpp:40
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::dForward
virtual void dForward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Evaluate the vector field Jacobians.
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::space
const Manifold & space() const
Definition
multibody-constraint-fwd.hpp:43
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::RigidConstraintModel
pinocchio::RigidConstraintModel RigidConstraintModel
Definition
multibody-constraint-fwd.hpp:28
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::ntau
int ntau() const
Definition
multibody-constraint-fwd.hpp:44
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::Manifold
MultibodyPhaseSpace< Scalar > Manifold
Definition
multibody-constraint-fwd.hpp:36
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::ContDataAbstract
ContinuousDynamicsDataTpl< Scalar > ContDataAbstract
Definition
multibody-constraint-fwd.hpp:24
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::RigidConstraintDataVector
PINOCCHIO_ALIGNED_STD_VECTOR(RigidConstraintData) RigidConstraintDataVector
Definition
multibody-constraint-fwd.hpp:32
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::RigidConstraintData
pinocchio::RigidConstraintData RigidConstraintData
Definition
multibody-constraint-fwd.hpp:29
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::actuation_matrix_
MatrixXs actuation_matrix_
Definition
multibody-constraint-fwd.hpp:39
aligator::dynamics::MultibodyConstraintFwdDynamicsTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::dynamics::ODEAbstractTpl
Base class for ODE dynamics .
Definition
ode-abstract.hpp:14
aligator::math_types
Typedefs for math (Eigen vectors, matrices) depending on scalar type.
Definition
math.hpp:123
include
aligator
modelling
dynamics
multibody-constraint-fwd.hpp
Generated by
1.17.0