hpp-bezier-com-traj  4.11.0
Multi contact trajectory generation for the COM using Bezier curves
data.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2018, LAAS-CNRS
3  * Author: Steve Tonneau
4  */
5 
6 #ifndef BEZIER_COM_TRAJ_LIB_DATA_H
7 #define BEZIER_COM_TRAJ_LIB_DATA_H
8 
13 #include <hpp/bezier-com-traj/solver/solver-abstract.hpp>
14 #include <ndcurves/bezier_curve.h>
15 #include <hpp/centroidal-dynamics/centroidal_dynamics.hh>
16 #include <Eigen/Dense>
17 
18 #include <vector>
19 
20 namespace bezier_com_traj {
29  : contactPhase_(0),
30  Kin_(Eigen::Matrix3d::Zero()),
31  kin_(VectorX::Zero(0)),
32  Ang_(Eigen::Matrix3d::Zero()),
33  ang_(VectorX::Zero(0)) {}
34 
35  ContactData(const ContactData& other)
36  : contactPhase_(new centroidal_dynamics::Equilibrium(*(other.contactPhase_))),
37  Kin_(other.Kin_),
38  kin_(other.kin_),
39  Ang_(other.Ang_),
40  ang_(other.ang_) {}
41 
42  ContactData(centroidal_dynamics::Equilibrium* contactPhase)
43  : contactPhase_(contactPhase),
44  Kin_(Eigen::Matrix3d::Zero()),
45  kin_(VectorX::Zero(0)),
46  Ang_(Eigen::Matrix3d::Zero()),
47  ang_(VectorX::Zero(0)) {}
49 
50  centroidal_dynamics::Equilibrium* contactPhase_;
51  MatrixX3 Kin_; // inequality kinematic constraints
53  MatrixX3 Ang_; // inequality angular momentum constraints
55 };
56 
64  : flag_(INIT_POS | INIT_VEL | END_VEL | END_POS),
65  constraintAcceleration_(false),
66  maxAcceleration_(10.),
67  reduce_h_(1e-3) {}
68 
69  Constraints(ConstraintFlag flag)
70  : flag_(flag), constraintAcceleration_(false), maxAcceleration_(10.), reduce_h_(1e-3) {}
71 
73 
74  ConstraintFlag flag_;
77  double reduce_h_;
78 };
79 
90  : c0_(point_t::Zero()),
91  dc0_(point_t::Zero()),
92  ddc0_(point_t::Zero()),
93  j0_(point_t::Zero()),
94  c1_(point_t::Zero()),
95  dc1_(point_t::Zero()),
96  ddc1_(point_t::Zero()),
97  j1_(point_t::Zero()),
98  useAngularMomentum_(false),
99  costFunction_(ACCELERATION),
100  representation_(DOUBLE_DESCRIPTION) {}
101 
102  std::vector<ContactData> contacts_;
103  point_t c0_, dc0_, ddc0_, j0_, c1_, dc1_, ddc1_, j1_;
107  CostFunction costFunction_;
108  GIWCRepresentation representation_;
109 };
110 
112 
117 struct BEZIER_COM_TRAJ_DLLAPI ResultDataCOMTraj : public ResultData {
119  : ResultData(),
120  c_of_t_(bezier_t::zero(3)),
121  dL_of_t_(bezier_t::zero(3)),
122  dc1_(point_t::Zero()),
123  ddc1_(point_t::Zero()) {}
125 
126  bezier_t c_of_t_; // center of mass trajectory
127  bezier_t dL_of_t_; // angular momentum derivative trajectory
128  point_t dc1_; // terminal velocity
129  point_t ddc1_; // terminal acceleration
130 };
131 } // end namespace bezier_com_traj
132 
133 #endif
GIWCRepresentation representation_
Definition: data.hh:108
point_t dc1_
Definition: data.hh:128
point_t l0_
Definition: data.hh:104
point_t ddc1_
Definition: data.hh:129
DOUBLE_DESCRIPTION
Definition: flags.hh:37
Used to define the constraints on the trajectory generation problem. Flags are used to constrain init...
Definition: data.hh:62
#define BEZIER_COM_TRAJ_DLLAPI
Definition: local_config.hh:52
Eigen::Vector3d point_t
Definition: definitions.hh:41
MatrixX3 Kin_
Definition: data.hh:51
VectorX kin_
Definition: data.hh:52
ACCELERATION
Definition: flags.hh:13
INIT_VEL
Definition: flags.hh:21
double reduce_h_
Definition: data.hh:77
centroidal_dynamics::VectorX VectorX
Definition: definitions.hh:23
solvers::ResultData ResultData
Definition: data.hh:111
ndcurves::bezier_curve< double, double, true, point_t > bezier_t
Definition: definitions.hh:52
VectorX ang_
Definition: data.hh:54
~Constraints()
Definition: data.hh:72
END_POS
Definition: flags.hh:23
Contact data contains all the contact information relative to a contact phase: contact points and nor...
Definition: data.hh:27
bezier_t dL_of_t_
Definition: data.hh:127
~ContactData()
Definition: data.hh:48
ContactData(centroidal_dynamics::Equilibrium *contactPhase)
Definition: data.hh:42
Constraints constraints_
Definition: data.hh:106
Constraints(ConstraintFlag flag)
Definition: data.hh:69
bool constraintAcceleration_
Definition: data.hh:75
Specialized ResultData that computes the Bezier curves corresponding to the computed trajectory...
Definition: data.hh:117
ContactData(const ContactData &other)
Definition: data.hh:35
bool useAngularMomentum_
Definition: data.hh:105
point_t j1_
Definition: data.hh:103
CostFunction costFunction_
Definition: data.hh:107
Constraints()
Definition: data.hh:63
ResultDataCOMTraj()
Definition: data.hh:118
double maxAcceleration_
Definition: data.hh:76
END_VEL
Definition: flags.hh:24
~ResultDataCOMTraj()
Definition: data.hh:124
ProblemData()
Definition: data.hh:89
Eigen::Matrix< value_type, Eigen::Dynamic, 3 > MatrixX3
Definition: definitions.hh:19
Defines all the inputs of the problem: Initial and terminal constraints, as well as selected cost fun...
Definition: data.hh:88
Definition: common_solve_methods.hh:16
INIT_POS
Definition: flags.hh:20
ConstraintFlag flag_
Definition: data.hh:74
bezier_t c_of_t_
Definition: data.hh:126
centroidal_dynamics::Equilibrium * contactPhase_
Definition: data.hh:50
std::vector< ContactData > contacts_
Definition: data.hh:102
MatrixX3 Ang_
Definition: data.hh:53
ContactData()
Definition: data.hh:28