aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
quad-state-cost.hpp
Go to the documentation of this file.
1
4
#pragma once
5
6
#include "
aligator/modelling/state-error.hpp
"
7
#include "
aligator/modelling/costs/quad-residual-cost.hpp
"
8
9
namespace
aligator
{
10
12
template
<
typename
Scalar>
13
struct
QuadraticStateCostTpl
:
QuadraticResidualCostTpl
<Scalar> {
14
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
15
using
Base
=
QuadraticResidualCostTpl<Scalar>
;
16
using
StateError
=
StateErrorResidualTpl<Scalar>
;
17
using
Manifold
=
ManifoldAbstractTpl<Scalar>
;
18
using
StageFunction
=
StageFunctionTpl<Scalar>
;
19
20
// StateError's space variable holds a pointer to the state manifold
21
QuadraticStateCostTpl
(
const
StateError
&resdl,
const
MatrixXs &weights)
22
:
Base
(resdl.space_, xyz::polymorphic<
StageFunction
>(resdl), weights) {}
23
24
QuadraticStateCostTpl
(xyz::polymorphic<Manifold>
space
,
const
int
nu
,
25
const
ConstVectorRef &target,
const
MatrixXs &weights)
26
:
QuadraticStateCostTpl
(
StateError
(std::move(
space
),
nu
, target),
27
weights) {}
28
29
template
<
typename
U,
30
typename
= std::enable_if_t<!is_polymorphic_of_v<Manifold, U>>>
31
QuadraticStateCostTpl
(U &&
space
,
const
int
nu
,
const
ConstVectorRef &target,
32
const
MatrixXs &weights)
33
:
QuadraticStateCostTpl
(
StateError
(std::forward<U>(
space
),
nu
, target),
34
weights) {}
35
36
void
setTarget
(
const
ConstVectorRef target) {
residual
().target_ = target; }
37
ConstVectorRef
getTarget
()
const
{
return
residual
().target_; }
38
39
protected
:
40
StateError
&
residual
() {
return
static_cast<
StateError
&
>
(*this->
residual_
); }
41
const
StateError
&
residual
()
const
{
42
return
static_cast<
const
StateError
&
>
(*this->
residual_
);
43
}
44
};
45
46
template
<
typename
Scalar>
47
struct
QuadraticControlCostTpl
:
QuadraticResidualCostTpl
<Scalar> {
48
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
49
using
Base
=
QuadraticResidualCostTpl<Scalar>
;
50
using
Manifold
=
ManifoldAbstractTpl<Scalar>
;
51
using
ControlError
=
ControlErrorResidualTpl<Scalar>
;
52
using
StageFunction
=
StageFunctionTpl<Scalar>
;
53
54
QuadraticControlCostTpl
(xyz::polymorphic<Manifold>
space
,
55
const
ControlError
&resdl,
const
MatrixXs &weights)
56
:
Base
(std::move(
space
), xyz::polymorphic<
StageFunction
>(resdl),
57
weights) {}
58
59
QuadraticControlCostTpl
(xyz::polymorphic<Manifold>
space
,
int
nu
,
60
const
ConstMatrixRef &weights)
61
:
QuadraticControlCostTpl
(
space
,
ControlError
(
space
->
ndx
(),
nu
),
62
weights) {}
63
64
QuadraticControlCostTpl
(xyz::polymorphic<Manifold>
space
,
65
const
ConstVectorRef &target,
66
const
ConstMatrixRef &weights)
67
:
QuadraticControlCostTpl
(
space
,
ControlError
(
space
->
ndx
(), target),
68
weights) {}
69
70
void
setTarget
(
const
ConstVectorRef &target) {
residual
().target_ = target; }
71
ConstVectorRef
getTarget
()
const
{
return
residual
().target_; }
72
73
protected
:
74
ControlError
&
residual
() {
75
return
static_cast<
ControlError
&
>
(*this->
residual_
);
76
}
77
const
ControlError
&
residual
()
const
{
78
return
static_cast<
const
ControlError
&
>
(*this->
residual_
);
79
}
80
};
81
82
}
// namespace aligator
83
84
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
85
#include "./quad-state-cost.txx"
86
#endif
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
quad-residual-cost.hpp
state-error.hpp
aligator::ControlErrorResidualTpl
Definition
state-error.hpp:159
aligator::CostAbstractTpl< Scalar >::space
xyz::polymorphic< Manifold > space
Definition
cost-abstract.hpp:20
aligator::CostAbstractTpl< Scalar >::nu
int nu
Definition
cost-abstract.hpp:22
aligator::CostAbstractTpl< Scalar >::ndx
int ndx() const
Definition
cost-abstract.hpp:25
aligator::ManifoldAbstractTpl
Base class for manifolds, to use in cost funcs, solvers...
Definition
manifold-base.hpp:11
aligator::QuadraticControlCostTpl::setTarget
void setTarget(const ConstVectorRef &target)
Definition
quad-state-cost.hpp:70
aligator::QuadraticControlCostTpl::Base
QuadraticResidualCostTpl< Scalar > Base
Definition
quad-state-cost.hpp:49
aligator::QuadraticControlCostTpl::residual
ControlError & residual()
Definition
quad-state-cost.hpp:74
aligator::QuadraticControlCostTpl::QuadraticControlCostTpl
QuadraticControlCostTpl(xyz::polymorphic< Manifold > space, const ControlError &resdl, const MatrixXs &weights)
Definition
quad-state-cost.hpp:54
aligator::QuadraticControlCostTpl::StageFunction
StageFunctionTpl< Scalar > StageFunction
Definition
quad-state-cost.hpp:52
aligator::QuadraticControlCostTpl::residual
const ControlError & residual() const
Definition
quad-state-cost.hpp:77
aligator::QuadraticControlCostTpl::QuadraticControlCostTpl
QuadraticControlCostTpl(xyz::polymorphic< Manifold > space, const ConstVectorRef &target, const ConstMatrixRef &weights)
Definition
quad-state-cost.hpp:64
aligator::QuadraticControlCostTpl::getTarget
ConstVectorRef getTarget() const
Definition
quad-state-cost.hpp:71
aligator::QuadraticControlCostTpl::Manifold
ManifoldAbstractTpl< Scalar > Manifold
Definition
quad-state-cost.hpp:50
aligator::QuadraticControlCostTpl::QuadraticControlCostTpl
QuadraticControlCostTpl(xyz::polymorphic< Manifold > space, int nu, const ConstMatrixRef &weights)
Definition
quad-state-cost.hpp:59
aligator::QuadraticControlCostTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::QuadraticControlCostTpl::ControlError
ControlErrorResidualTpl< Scalar > ControlError
Definition
quad-state-cost.hpp:51
aligator::QuadraticResidualCostTpl< Scalar >::Scalar
Scalar Scalar
Definition
quad-residual-cost.hpp:19
aligator::QuadraticResidualCostTpl< Scalar >::residual_
xyz::polymorphic< StageFunction > residual_
Definition
quad-residual-cost.hpp:28
aligator::QuadraticResidualCostTpl< Scalar >::QuadraticResidualCostTpl
QuadraticResidualCostTpl(xyz::polymorphic< Manifold > space, xyz::polymorphic< StageFunction > function, const ConstMatrixRef &weights)
aligator::QuadraticStateCostTpl::StageFunction
StageFunctionTpl< Scalar > StageFunction
Definition
quad-state-cost.hpp:18
aligator::QuadraticStateCostTpl::QuadraticStateCostTpl
QuadraticStateCostTpl(const StateError &resdl, const MatrixXs &weights)
Definition
quad-state-cost.hpp:21
aligator::QuadraticStateCostTpl::Manifold
ManifoldAbstractTpl< Scalar > Manifold
Definition
quad-state-cost.hpp:17
aligator::QuadraticStateCostTpl::residual
StateError & residual()
Definition
quad-state-cost.hpp:40
aligator::QuadraticStateCostTpl::getTarget
ConstVectorRef getTarget() const
Definition
quad-state-cost.hpp:37
aligator::QuadraticStateCostTpl::QuadraticStateCostTpl
QuadraticStateCostTpl(xyz::polymorphic< Manifold > space, const int nu, const ConstVectorRef &target, const MatrixXs &weights)
Definition
quad-state-cost.hpp:24
aligator::QuadraticStateCostTpl::residual
const StateError & residual() const
Definition
quad-state-cost.hpp:41
aligator::QuadraticStateCostTpl::StateError
StateErrorResidualTpl< Scalar > StateError
Definition
quad-state-cost.hpp:16
aligator::QuadraticStateCostTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::QuadraticStateCostTpl::QuadraticStateCostTpl
QuadraticStateCostTpl(U &&space, const int nu, const ConstVectorRef &target, const MatrixXs &weights)
Definition
quad-state-cost.hpp:31
aligator::QuadraticStateCostTpl::setTarget
void setTarget(const ConstVectorRef target)
Definition
quad-state-cost.hpp:36
aligator::QuadraticStateCostTpl::Base
QuadraticResidualCostTpl< Scalar > Base
Definition
quad-state-cost.hpp:15
aligator::StageFunctionTpl
Class representing ternary functions .
Definition
function-abstract.hpp:12
aligator::StateErrorResidualTpl
State error .
Definition
state-error.hpp:152
include
aligator
modelling
costs
quad-state-cost.hpp
Generated by
1.17.0