aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
frame-placement.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
aligator/modelling/multibody/fwd.hpp
"
4
#include "
aligator/core/unary-function.hpp
"
5
6
#include <pinocchio/multibody/model.hpp>
7
#include <pinocchio/multibody/frame.hpp>
8
9
#include "
aligator/third-party/polymorphic_cxx14.h
"
10
11
namespace
aligator
{
12
13
template
<
typename
Scalar>
struct
FramePlacementDataTpl
;
14
15
template
<
typename
_Scalar>
16
struct
FramePlacementResidualTpl
:
UnaryFunctionTpl
<_Scalar>,
frame_api
{
17
public
:
18
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
19
using
Scalar
= _Scalar;
20
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
21
ALIGATOR_UNARY_FUNCTION_INTERFACE
(
Scalar
);
22
using
BaseData
=
StageFunctionDataTpl<Scalar>
;
23
using
Model
= pinocchio::ModelTpl<Scalar>;
24
using
PolyManifold
= xyz::polymorphic<ManifoldAbstractTpl<Scalar>>;
25
using
SE3
= pinocchio::SE3Tpl<Scalar>;
26
using
Data
=
FramePlacementDataTpl<Scalar>
;
27
28
Model
pin_model_
;
29
30
FramePlacementResidualTpl
(
const
int
ndx,
const
int
nu
,
const
Model
&model,
31
const
SE3
&frame,
32
const
pinocchio::FrameIndex frame_id)
33
:
Base
(ndx,
nu
, 6)
34
,
pin_model_
(model)
35
,
p_ref_
(frame)
36
,
p_ref_inverse_
(frame.inverse()) {
37
pin_frame_id_
= frame_id;
38
}
39
40
const
SE3
&
getReference
()
const
{
return
p_ref_
; }
41
void
setReference
(
const
SE3
&p_new) {
42
p_ref_
= p_new;
43
p_ref_inverse_
= p_new.inverse();
44
}
45
46
void
evaluate
(
const
ConstVectorRef &x,
BaseData
&data)
const
;
47
48
void
computeJacobians
(
const
ConstVectorRef &x,
BaseData
&data)
const
;
49
50
shared_ptr<BaseData>
createData
()
const
{
51
return
std::make_shared<Data>(*
this
);
52
}
53
54
protected
:
55
SE3
p_ref_
;
56
SE3
p_ref_inverse_
;
57
};
58
59
template
<
typename
Scalar>
60
struct
FramePlacementDataTpl
:
StageFunctionDataTpl
<Scalar> {
61
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
62
using
Base
=
StageFunctionDataTpl<Scalar>
;
63
using
PinData
= pinocchio::DataTpl<Scalar>;
64
using
SE3
= pinocchio::SE3Tpl<Scalar>;
65
67
PinData
pin_data_
;
69
SE3
rMf_
;
71
typename
math_types<Scalar>::Matrix6s
rJf_
;
73
typename
math_types<Scalar>::Matrix6Xs
fJf_
;
74
75
FramePlacementDataTpl
(
const
FramePlacementResidualTpl<Scalar>
&model);
76
};
77
78
#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
79
extern
template
struct
FramePlacementResidualTpl<context::Scalar>
;
80
extern
template
struct
FramePlacementDataTpl<context::Scalar>
;
81
#endif
82
}
// namespace aligator
fwd.hpp
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
polymorphic_cxx14.h
aligator::FramePlacementDataTpl
Definition
frame-placement.hpp:60
aligator::FramePlacementDataTpl::PinData
pinocchio::DataTpl< Scalar > PinData
Definition
frame-placement.hpp:63
aligator::FramePlacementDataTpl::FramePlacementDataTpl
FramePlacementDataTpl(const FramePlacementResidualTpl< Scalar > &model)
aligator::FramePlacementDataTpl::Base
StageFunctionDataTpl< Scalar > Base
Definition
frame-placement.hpp:62
aligator::FramePlacementDataTpl::rJf_
math_types< Scalar >::Matrix6s rJf_
Jacobian of the error.
Definition
frame-placement.hpp:71
aligator::FramePlacementDataTpl::fJf_
math_types< Scalar >::Matrix6Xs fJf_
Jacobian of the error, local frame.
Definition
frame-placement.hpp:73
aligator::FramePlacementDataTpl::rMf_
SE3 rMf_
Placement error of the frame.
Definition
frame-placement.hpp:69
aligator::FramePlacementDataTpl::pin_data_
PinData pin_data_
Pinocchio data object.
Definition
frame-placement.hpp:67
aligator::FramePlacementDataTpl::SE3
pinocchio::SE3Tpl< Scalar > SE3
Definition
frame-placement.hpp:64
aligator::FramePlacementResidualTpl
Definition
frame-placement.hpp:16
aligator::FramePlacementResidualTpl::BaseData
StageFunctionDataTpl< Scalar > BaseData
Definition
frame-placement.hpp:22
aligator::FramePlacementResidualTpl::Scalar
_Scalar Scalar
Definition
frame-placement.hpp:19
aligator::FramePlacementResidualTpl::FramePlacementResidualTpl
FramePlacementResidualTpl(const int ndx, const int nu, const Model &model, const SE3 &frame, const pinocchio::FrameIndex frame_id)
Definition
frame-placement.hpp:30
aligator::FramePlacementResidualTpl::setReference
void setReference(const SE3 &p_new)
Definition
frame-placement.hpp:41
aligator::FramePlacementResidualTpl::p_ref_inverse_
SE3 p_ref_inverse_
Definition
frame-placement.hpp:56
aligator::FramePlacementResidualTpl::pin_model_
Model pin_model_
Definition
frame-placement.hpp:28
aligator::FramePlacementResidualTpl::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::FramePlacementResidualTpl::evaluate
void evaluate(const ConstVectorRef &x, BaseData &data) const
aligator::FramePlacementResidualTpl::computeJacobians
void computeJacobians(const ConstVectorRef &x, BaseData &data) const
aligator::FramePlacementResidualTpl::p_ref_
SE3 p_ref_
Definition
frame-placement.hpp:55
aligator::FramePlacementResidualTpl::Data
FramePlacementDataTpl< Scalar > Data
Definition
frame-placement.hpp:26
aligator::FramePlacementResidualTpl::ALIGATOR_UNARY_FUNCTION_INTERFACE
ALIGATOR_UNARY_FUNCTION_INTERFACE(Scalar)
aligator::FramePlacementResidualTpl::Model
pinocchio::ModelTpl< Scalar > Model
Definition
frame-placement.hpp:23
aligator::FramePlacementResidualTpl::PolyManifold
xyz::polymorphic< ManifoldAbstractTpl< Scalar > > PolyManifold
Definition
frame-placement.hpp:24
aligator::FramePlacementResidualTpl::createData
shared_ptr< BaseData > createData() const
Instantiate a Data object.
Definition
frame-placement.hpp:50
aligator::FramePlacementResidualTpl::getReference
const SE3 & getReference() const
Definition
frame-placement.hpp:40
aligator::FramePlacementResidualTpl::SE3
pinocchio::SE3Tpl< Scalar > SE3
Definition
frame-placement.hpp:25
aligator::StageFunctionDataTpl
Base struct for function data.
Definition
function-abstract.hpp:73
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::UnaryFunctionTpl
Represents unary functions of the form , with no control (or next-state) arguments.
Definition
unary-function.hpp:12
aligator::UnaryFunctionTpl::Base
StageFunctionTpl< Scalar > Base
Definition
unary-function.hpp:15
aligator::frame_api
Definition
fwd.hpp:9
aligator::frame_api::pin_frame_id_
pinocchio::FrameIndex pin_frame_id_
Definition
fwd.hpp:14
aligator::math_types
Typedefs for math (Eigen vectors, matrices) depending on scalar type.
Definition
math.hpp:123
unary-function.hpp
include
aligator
modelling
multibody
frame-placement.hpp
Generated by
1.17.0