aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
centroidal-acceleration.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
aligator/core/function-abstract.hpp
"
4
#include "
aligator/modelling/contact-map.hpp
"
5
6
namespace
aligator
{
7
8
template
<
typename
Scalar>
struct
CentroidalAccelerationDataTpl
;
9
20
21
template
<
typename
_Scalar>
22
struct
CentroidalAccelerationResidualTpl
:
StageFunctionTpl
<_Scalar> {
23
24
public
:
25
using
Scalar
= _Scalar;
26
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
27
using
Base
=
StageFunctionTpl<Scalar>
;
28
using
BaseData
=
typename
Base::Data
;
29
using
Data
=
CentroidalAccelerationDataTpl<Scalar>
;
30
using
ContactMap
=
ContactMapTpl<Scalar>
;
31
32
CentroidalAccelerationResidualTpl
(
const
int
ndx,
const
int
nu
,
33
const
double
mass,
const
Vector3s &gravity,
34
const
ContactMap
&contact_map,
35
const
int
force_size)
36
:
Base
(ndx,
nu
, 3)
37
,
contact_map_
(contact_map)
38
,
nk_
(size_t(
nu
) / size_t(force_size))
39
,
mass_
(mass)
40
,
gravity_
(gravity)
41
,
force_size_
(force_size) {
42
if
(contact_map.
size_
!=
nk_
) {
43
ALIGATOR_DOMAIN_ERROR(
44
"Contact ids and nk should be the same ({:d} and {:d})."
,
45
contact_map.size_, nk_);
46
}
47
}
48
49
void
evaluate
(
const
ConstVectorRef &,
const
ConstVectorRef &u,
50
BaseData
&data)
const
;
51
52
void
computeJacobians
(
const
ConstVectorRef &,
const
ConstVectorRef &,
53
BaseData
&data)
const
;
54
55
shared_ptr<BaseData>
createData
()
const
{
56
return
std::make_shared<Data>(
this
);
57
}
58
59
ContactMap
contact_map_
;
60
61
protected
:
62
size_t
nk_
;
63
double
mass_
;
64
Vector3s
gravity_
;
65
int
force_size_
;
66
};
67
68
template
<
typename
Scalar>
69
struct
CentroidalAccelerationDataTpl
:
StageFunctionDataTpl
<Scalar> {
70
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
71
using
Base
=
StageFunctionDataTpl<Scalar>
;
72
73
CentroidalAccelerationDataTpl
(
74
const
CentroidalAccelerationResidualTpl<Scalar>
*model);
75
};
76
77
}
// namespace aligator
78
79
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
80
#include "aligator/modelling/centroidal/centroidal-acceleration.txx"
81
#endif
contact-map.hpp
function-abstract.hpp
Base definitions for ternary functions.
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::CentroidalAccelerationDataTpl
Definition
centroidal-acceleration.hpp:69
aligator::CentroidalAccelerationDataTpl::Base
StageFunctionDataTpl< Scalar > Base
Definition
centroidal-acceleration.hpp:71
aligator::CentroidalAccelerationDataTpl::CentroidalAccelerationDataTpl
CentroidalAccelerationDataTpl(const CentroidalAccelerationResidualTpl< Scalar > *model)
aligator::CentroidalAccelerationResidualTpl
This residual returns the linear acceleration of a centroidal model with state , computed from the ex...
Definition
centroidal-acceleration.hpp:22
aligator::CentroidalAccelerationResidualTpl::Data
CentroidalAccelerationDataTpl< Scalar > Data
Definition
centroidal-acceleration.hpp:29
aligator::CentroidalAccelerationResidualTpl::mass_
double mass_
Definition
centroidal-acceleration.hpp:63
aligator::CentroidalAccelerationResidualTpl::ContactMap
ContactMapTpl< Scalar > ContactMap
Definition
centroidal-acceleration.hpp:30
aligator::CentroidalAccelerationResidualTpl::Scalar
_Scalar Scalar
Definition
centroidal-acceleration.hpp:25
aligator::CentroidalAccelerationResidualTpl::CentroidalAccelerationResidualTpl
CentroidalAccelerationResidualTpl(const int ndx, const int nu, const double mass, const Vector3s &gravity, const ContactMap &contact_map, const int force_size)
Definition
centroidal-acceleration.hpp:32
aligator::CentroidalAccelerationResidualTpl::Base
StageFunctionTpl< Scalar > Base
Definition
centroidal-acceleration.hpp:27
aligator::CentroidalAccelerationResidualTpl::nk_
size_t nk_
Definition
centroidal-acceleration.hpp:62
aligator::CentroidalAccelerationResidualTpl::gravity_
Vector3s gravity_
Definition
centroidal-acceleration.hpp:64
aligator::CentroidalAccelerationResidualTpl::contact_map_
ContactMap contact_map_
Definition
centroidal-acceleration.hpp:59
aligator::CentroidalAccelerationResidualTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::CentroidalAccelerationResidualTpl::createData
shared_ptr< BaseData > createData() const
Instantiate a Data object.
Definition
centroidal-acceleration.hpp:55
aligator::CentroidalAccelerationResidualTpl::BaseData
typename Base::Data BaseData
Definition
centroidal-acceleration.hpp:28
aligator::CentroidalAccelerationResidualTpl::force_size_
int force_size_
Definition
centroidal-acceleration.hpp:65
aligator::CentroidalAccelerationResidualTpl::computeJacobians
void computeJacobians(const ConstVectorRef &, const ConstVectorRef &, BaseData &data) const
aligator::CentroidalAccelerationResidualTpl::evaluate
void evaluate(const ConstVectorRef &, const ConstVectorRef &u, BaseData &data) const
aligator::ContactMapTpl
Contact map for centroidal costs and dynamics.
Definition
contact-map.hpp:8
aligator::ContactMapTpl::size_
std::size_t size_
Definition
contact-map.hpp:80
aligator::StageFunctionDataTpl< Scalar >::StageFunctionDataTpl
StageFunctionDataTpl(const int ndx, const int nu, const int nr)
aligator::StageFunctionTpl::nu
const int nu
Control dimension.
Definition
function-abstract.hpp:21
aligator::StageFunctionTpl< Scalar >::Data
StageFunctionDataTpl< Scalar > Data
Definition
function-abstract.hpp:16
aligator::StageFunctionTpl::StageFunctionTpl
StageFunctionTpl(const int ndx, const int nu, const int nr)
include
aligator
modelling
centroidal
centroidal-acceleration.hpp
Generated by
1.17.0