aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
angular-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
AngularAccelerationDataTpl
;
9
20
21
template
<
typename
_Scalar>
22
struct
AngularAccelerationResidualTpl
:
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
=
AngularAccelerationDataTpl<Scalar>
;
30
using
ContactMap
=
ContactMapTpl<Scalar>
;
31
32
AngularAccelerationResidualTpl
(
const
int
ndx,
const
int
nu
,
const
double
mass,
33
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
AngularAccelerationDataTpl
:
StageFunctionDataTpl
<Scalar> {
70
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
71
using
Base
=
StageFunctionDataTpl<Scalar>
;
72
using
Matrix3s
= Eigen::Matrix<Scalar, 3, 3>;
73
74
Matrix3s
Jtemp_
;
75
76
AngularAccelerationDataTpl
(
77
const
AngularAccelerationResidualTpl<Scalar>
*model);
78
};
79
80
}
// namespace aligator
81
82
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
83
#include "aligator/modelling/centroidal/angular-acceleration.txx"
84
#endif
contact-map.hpp
function-abstract.hpp
Base definitions for ternary functions.
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::AngularAccelerationDataTpl
Definition
angular-acceleration.hpp:69
aligator::AngularAccelerationDataTpl::AngularAccelerationDataTpl
AngularAccelerationDataTpl(const AngularAccelerationResidualTpl< Scalar > *model)
aligator::AngularAccelerationDataTpl::Jtemp_
Matrix3s Jtemp_
Definition
angular-acceleration.hpp:74
aligator::AngularAccelerationDataTpl::Matrix3s
Eigen::Matrix< Scalar, 3, 3 > Matrix3s
Definition
angular-acceleration.hpp:72
aligator::AngularAccelerationDataTpl::Base
StageFunctionDataTpl< Scalar > Base
Definition
angular-acceleration.hpp:71
aligator::AngularAccelerationResidualTpl
This residual returns the angular acceleration of a centroidal model with state , computed from the e...
Definition
angular-acceleration.hpp:22
aligator::AngularAccelerationResidualTpl::Base
StageFunctionTpl< Scalar > Base
Definition
angular-acceleration.hpp:27
aligator::AngularAccelerationResidualTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::AngularAccelerationResidualTpl::force_size_
int force_size_
Definition
angular-acceleration.hpp:65
aligator::AngularAccelerationResidualTpl::AngularAccelerationResidualTpl
AngularAccelerationResidualTpl(const int ndx, const int nu, const double mass, const Vector3s &gravity, const ContactMap &contact_map, const int force_size)
Definition
angular-acceleration.hpp:32
aligator::AngularAccelerationResidualTpl::Scalar
_Scalar Scalar
Definition
angular-acceleration.hpp:25
aligator::AngularAccelerationResidualTpl::contact_map_
ContactMap contact_map_
Definition
angular-acceleration.hpp:59
aligator::AngularAccelerationResidualTpl::ContactMap
ContactMapTpl< Scalar > ContactMap
Definition
angular-acceleration.hpp:30
aligator::AngularAccelerationResidualTpl::createData
shared_ptr< BaseData > createData() const
Instantiate a Data object.
Definition
angular-acceleration.hpp:55
aligator::AngularAccelerationResidualTpl::mass_
double mass_
Definition
angular-acceleration.hpp:63
aligator::AngularAccelerationResidualTpl::computeJacobians
void computeJacobians(const ConstVectorRef &, const ConstVectorRef &, BaseData &data) const
aligator::AngularAccelerationResidualTpl::evaluate
void evaluate(const ConstVectorRef &, const ConstVectorRef &u, BaseData &data) const
aligator::AngularAccelerationResidualTpl::BaseData
typename Base::Data BaseData
Definition
angular-acceleration.hpp:28
aligator::AngularAccelerationResidualTpl::gravity_
Vector3s gravity_
Definition
angular-acceleration.hpp:64
aligator::AngularAccelerationResidualTpl::nk_
size_t nk_
Definition
angular-acceleration.hpp:62
aligator::AngularAccelerationResidualTpl::Data
AngularAccelerationDataTpl< Scalar > Data
Definition
angular-acceleration.hpp:29
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
angular-acceleration.hpp
Generated by
1.17.0