hpp-bezier-com-traj  4.15.1
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 
9 #include <ndcurves/bezier_curve.h>
10 
11 #include <Eigen/Dense>
17 #include <hpp/centroidal-dynamics/centroidal_dynamics.hh>
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_(
37  new centroidal_dynamics::Equilibrium(*(other.contactPhase_))),
38  Kin_(other.Kin_),
39  kin_(other.kin_),
40  Ang_(other.Ang_),
41  ang_(other.ang_) {}
42 
43  ContactData(centroidal_dynamics::Equilibrium* contactPhase)
44  : contactPhase_(contactPhase),
45  Kin_(Eigen::Matrix3d::Zero()),
46  kin_(VectorX::Zero(0)),
47  Ang_(Eigen::Matrix3d::Zero()),
48  ang_(VectorX::Zero(0)) {}
50 
51  centroidal_dynamics::Equilibrium* contactPhase_;
52  MatrixX3 Kin_; // inequality kinematic constraints
54  MatrixX3 Ang_; // inequality angular momentum constraints
56 };
57 
65  : flag_(INIT_POS | INIT_VEL | END_VEL | END_POS),
66  constraintAcceleration_(false),
67  maxAcceleration_(10.),
68  reduce_h_(1e-3) {}
69 
70  Constraints(ConstraintFlag flag)
71  : flag_(flag),
72  constraintAcceleration_(false),
73  maxAcceleration_(10.),
74  reduce_h_(1e-3) {}
75 
77 
78  ConstraintFlag flag_;
81  double reduce_h_;
82 };
83 
94  : c0_(point_t::Zero()),
95  dc0_(point_t::Zero()),
96  ddc0_(point_t::Zero()),
97  j0_(point_t::Zero()),
98  c1_(point_t::Zero()),
99  dc1_(point_t::Zero()),
100  ddc1_(point_t::Zero()),
101  j1_(point_t::Zero()),
102  useAngularMomentum_(false),
103  costFunction_(ACCELERATION),
104  representation_(DOUBLE_DESCRIPTION) {}
105 
106  std::vector<ContactData> contacts_;
107  point_t c0_, dc0_, ddc0_, j0_, c1_, dc1_, ddc1_, j1_;
111  CostFunction costFunction_;
112  GIWCRepresentation representation_;
113 };
114 
116 
121 struct BEZIER_COM_TRAJ_DLLAPI ResultDataCOMTraj : public ResultData {
123  : ResultData(),
124  c_of_t_(bezier_t::zero(3)),
125  dL_of_t_(bezier_t::zero(3)),
126  dc1_(point_t::Zero()),
127  ddc1_(point_t::Zero()) {}
129 
130  bezier_t c_of_t_; // center of mass trajectory
131  bezier_t dL_of_t_; // angular momentum derivative trajectory
132  point_t dc1_; // terminal velocity
133  point_t ddc1_; // terminal acceleration
134 };
135 } // end namespace bezier_com_traj
136 
137 #endif
GIWCRepresentation representation_
Definition: data.hh:112
point_t dc1_
Definition: data.hh:132
point_t l0_
Definition: data.hh:108
point_t ddc1_
Definition: data.hh:133
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:63
#define BEZIER_COM_TRAJ_DLLAPI
Definition: local_config.hh:52
Eigen::Vector3d point_t
Definition: definitions.hh:42
MatrixX3 Kin_
Definition: data.hh:52
VectorX kin_
Definition: data.hh:53
ACCELERATION
Definition: flags.hh:13
INIT_VEL
Definition: flags.hh:21
double reduce_h_
Definition: data.hh:81
centroidal_dynamics::VectorX VectorX
Definition: definitions.hh:24
solvers::ResultData ResultData
Definition: data.hh:115
ndcurves::bezier_curve< double, double, true, point_t > bezier_t
Definition: definitions.hh:53
VectorX ang_
Definition: data.hh:55
~Constraints()
Definition: data.hh:76
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:131
~ContactData()
Definition: data.hh:49
ContactData(centroidal_dynamics::Equilibrium *contactPhase)
Definition: data.hh:43
Constraints constraints_
Definition: data.hh:110
Constraints(ConstraintFlag flag)
Definition: data.hh:70
bool constraintAcceleration_
Definition: data.hh:79
Specialized ResultData that computes the Bezier curves corresponding to the computed trajectory...
Definition: data.hh:121
Struct used to return the results of the trajectory generation problem.
Definition: solver-abstract.hpp:52
ContactData(const ContactData &other)
Definition: data.hh:35
bool useAngularMomentum_
Definition: data.hh:109
point_t j1_
Definition: data.hh:107
CostFunction costFunction_
Definition: data.hh:111
Constraints()
Definition: data.hh:64
ResultDataCOMTraj()
Definition: data.hh:122
double maxAcceleration_
Definition: data.hh:80
END_VEL
Definition: flags.hh:24
~ResultDataCOMTraj()
Definition: data.hh:128
ProblemData()
Definition: data.hh:93
Eigen::Matrix< value_type, Eigen::Dynamic, 3 > MatrixX3
Definition: definitions.hh:20
Defines all the inputs of the problem: Initial and terminal constraints, as well as selected cost fun...
Definition: data.hh:92
Definition: common_solve_methods.hh:15
INIT_POS
Definition: flags.hh:20
ConstraintFlag flag_
Definition: data.hh:78
bezier_t c_of_t_
Definition: data.hh:130
centroidal_dynamics::Equilibrium * contactPhase_
Definition: data.hh:51
std::vector< ContactData > contacts_
Definition: data.hh:106
MatrixX3 Ang_
Definition: data.hh:54
ContactData()
Definition: data.hh:28