aligator
0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
fly-high.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
aligator/core/unary-function.hpp
"
4
#include "
./fwd.hpp
"
5
#include <proxsuite-nlp/modelling/spaces/multibody.hpp>
6
#include <pinocchio/algorithm/frames-derivatives.hpp>
7
8
namespace
aligator
{
9
11
template
<
typename
_Scalar>
12
struct
FlyHighResidualTpl
:
UnaryFunctionTpl
<_Scalar>,
frame_api
{
13
using
Scalar
= _Scalar;
14
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
15
static
constexpr
int
NR
= 2;
16
17
using
Base
= UnaryFunctionTpl<Scalar>;
18
using
BaseData
= StageFunctionDataTpl<Scalar>;
19
using
PhaseSpace
= proxsuite::nlp::MultibodyPhaseSpace<Scalar>;
20
21
struct
Data
;
22
23
FlyHighResidualTpl
(shared_ptr<PhaseSpace> space,
24
const
pinocchio::FrameIndex frame_id,
Scalar
slope,
25
int
nu
);
26
27
void
evaluate
(
const
ConstVectorRef &x,
BaseData
&data)
const
;
28
void
computeJacobians
(
const
ConstVectorRef &x,
BaseData
&data)
const
;
29
30
shared_ptr<BaseData>
createData
()
const
{
31
return
allocate_shared_eigen_aligned<Data>(*
this
);
32
}
33
34
const
auto
&
getModel
()
const
{
return
pmodel_; }
35
36
Scalar
slope_
;
37
38
private
:
39
pinocchio::ModelTpl<Scalar> pmodel_;
40
};
41
42
template
<
typename
Scalar>
43
using
FlyHighResidualDataTpl
=
typename
FlyHighResidualTpl<Scalar>::Data
;
44
45
template
<
typename
Scalar>
46
struct
FlyHighResidualTpl
<
Scalar
>::
Data
:
StageFunctionDataTpl
<Scalar> {
47
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
48
using
BaseData::ndx1
;
49
using
BaseData::nr
;
50
using
BaseData::nu
;
51
52
Data
(
FlyHighResidualTpl
const
&model)
53
:
BaseData
(model.
ndx1
, model.
nu
, model.
ndx2
, model.
nr
),
54
pdata_(model.pmodel_), d_dq(6, model.pmodel_.nv),
55
d_dv(6, model.pmodel_.nv), l_dnu_dq(6, model.pmodel_.nv),
56
l_dnu_dv(6, model.pmodel_.nv), o_dv_dq(3, model.pmodel_.nv),
57
o_dv_dv(3, model.pmodel_.nv), vxJ(3, model.pmodel_.nv) {
58
d_dq.setZero();
59
d_dv.setZero();
60
l_dnu_dq.setZero();
61
l_dnu_dv.setZero();
62
o_dv_dq.setZero();
63
o_dv_dv.setZero();
64
vxJ.setZero();
65
}
66
67
pinocchio::DataTpl<Scalar>
pdata_
;
68
Matrix6Xs
d_dq
, d_dv;
69
Matrix6Xs
l_dnu_dq
, l_dnu_dv;
70
Matrix3Xs
o_dv_dq
, o_dv_dv, vxJ;
71
Scalar
ez
;
72
};
73
74
}
// namespace aligator
75
76
#include "aligator/modelling/multibody/fly-high.hxx"
77
78
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
79
#include "./fly-high.txx"
80
#endif
fwd.hpp
aligator
Main package namespace.
Definition
action-model-wrap.hpp:12
aligator::FlyHighResidualDataTpl
typename FlyHighResidualTpl< Scalar >::Data FlyHighResidualDataTpl
Definition
fly-high.hpp:43
aligator::FlyHighResidualTpl::Data
Definition
fly-high.hpp:46
aligator::FlyHighResidualTpl::Data::d_dq
Matrix6Xs d_dq
Definition
fly-high.hpp:68
aligator::FlyHighResidualTpl::Data::l_dnu_dq
Matrix6Xs l_dnu_dq
Definition
fly-high.hpp:69
aligator::FlyHighResidualTpl::Data::Data
Data(FlyHighResidualTpl const &model)
Definition
fly-high.hpp:52
aligator::FlyHighResidualTpl::Data::pdata_
pinocchio::DataTpl< Scalar > pdata_
Definition
fly-high.hpp:67
aligator::FlyHighResidualTpl::Data::ez
Scalar ez
Definition
fly-high.hpp:71
aligator::FlyHighResidualTpl::Data::o_dv_dq
Matrix3Xs o_dv_dq
Definition
fly-high.hpp:70
aligator::FlyHighResidualTpl
A port of sobec's ResidualModelFlyHighTpl.
Definition
fly-high.hpp:12
aligator::FlyHighResidualTpl::NR
static constexpr int NR
Definition
fly-high.hpp:15
aligator::FlyHighResidualTpl::FlyHighResidualTpl
FlyHighResidualTpl(shared_ptr< PhaseSpace > space, const pinocchio::FrameIndex frame_id, Scalar slope, int nu)
aligator::FlyHighResidualTpl::PhaseSpace
proxsuite::nlp::MultibodyPhaseSpace< Scalar > PhaseSpace
Definition
fly-high.hpp:19
aligator::FlyHighResidualTpl::evaluate
void evaluate(const ConstVectorRef &x, BaseData &data) const
aligator::FlyHighResidualTpl::slope_
Scalar slope_
Definition
fly-high.hpp:36
aligator::FlyHighResidualTpl::computeJacobians
void computeJacobians(const ConstVectorRef &x, BaseData &data) const
aligator::FlyHighResidualTpl::Scalar
_Scalar Scalar
Definition
fly-high.hpp:13
aligator::FlyHighResidualTpl::getModel
const auto & getModel() const
Definition
fly-high.hpp:34
aligator::FlyHighResidualTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::FlyHighResidualTpl::createData
shared_ptr< BaseData > createData() const
Instantiate a Data object.
Definition
fly-high.hpp:30
aligator::StageFunctionDataTpl< Scalar >
aligator::StageFunctionDataTpl< Scalar >::nu
const int nu
Definition
function-abstract.hpp:93
aligator::StageFunctionDataTpl< Scalar >::nr
const int nr
Definition
function-abstract.hpp:95
aligator::StageFunctionDataTpl< Scalar >::Scalar
Scalar Scalar
Definition
function-abstract.hpp:88
aligator::StageFunctionDataTpl< Scalar >::ndx1
const int ndx1
Definition
function-abstract.hpp:92
aligator::StageFunctionTpl::ndx2
const int ndx2
Next state dimension.
Definition
function-abstract.hpp:28
aligator::StageFunctionTpl::nu
const int nu
Control dimension.
Definition
function-abstract.hpp:26
aligator::StageFunctionTpl::ndx1
const int ndx1
Current state dimension.
Definition
function-abstract.hpp:24
aligator::StageFunctionTpl::nr
const int nr
Function codimension.
Definition
function-abstract.hpp:30
aligator::UnaryFunctionTpl
Represents unary functions of the form , with no control (or next-state) arguments.
Definition
unary-function.hpp:12
aligator::frame_api
Definition
fwd.hpp:7
unary-function.hpp
include
aligator
modelling
multibody
fly-high.hpp
Generated by
1.10.0