definitions.h
Go to the documentation of this file.
1 
9 #ifndef _CLASS_DEFINITIONS_H
10 #define _CLASS_DEFINITIONS_H
11 
12 #include <ndcurves/bezier_curve.h>
16 
17 namespace ndcurves {
18 namespace optimization {
19 
21  INIT_POS = 0x001,
22  INIT_VEL = 0x002,
23  INIT_ACC = 0x004,
24  INIT_JERK = 0x008,
25  END_POS = 0x010,
26  END_VEL = 0x020,
27  END_ACC = 0x040,
28  END_JERK = 0x080,
29  ALL = 0x0ff,
30  NONE = 0x100
31 };
32 
33 template <typename Point, typename Numeric>
35  Eigen::Matrix<Numeric, Eigen::Dynamic, Eigen::Dynamic> ineqMatrix;
36  Eigen::Matrix<Numeric, Eigen::Dynamic, 1> ineqVector;
38 };
39 
40 template <typename Point, typename Numeric>
41 struct problem_definition : public curve_constraints<Point> {
42  typedef Point point_t;
43  typedef Numeric num_t;
45  typedef Eigen::Matrix<num_t, Eigen::Dynamic, 1> vector_x_t;
46  typedef Eigen::Matrix<num_t, Eigen::Dynamic, Eigen::Dynamic> matrix_x_t;
47  typedef std::vector<matrix_x_t, Eigen::aligned_allocator<matrix_x_t> >
49  typedef std::vector<vector_x_t, Eigen::aligned_allocator<vector_x_t> >
51  typedef typename T_matrix_x_t::const_iterator CIT_matrix_x_t;
52  typedef typename T_vector_x_t::const_iterator CIT_vector_x_t;
53 
54  problem_definition(const std::size_t dim)
55  : curve_constraints_t(dim),
56  flag(NONE),
57  init_pos(point_t::Zero(dim)),
58  end_pos(point_t::Zero(dim)),
59  degree(5),
60  totalTime(1.),
61  splitTimes_(vector_x_t::Zero(0)),
62  dim_(dim) {}
63 
65  : curve_constraints_t(parent),
66  flag(NONE),
67  init_pos(point_t::Zero(parent.dim_)),
68  end_pos(point_t::Zero(parent.dim_)),
69  degree(5),
70  totalTime(1.),
71  splitTimes_(vector_x_t::Zero(0)),
72  dim_(parent.dim_) {}
73 
77  std::size_t degree;
80  T_matrix_x_t inequalityMatrices_; // must be of size (splitTimes_ + 1)
81  T_vector_x_t inequalityVectors_; // must be of size (splitTimes_ + 1)
82  const std::size_t dim_;
83 };
84 
85 } // namespace optimization
86 } // namespace ndcurves
87 #endif //_CLASS_DEFINITIONS_H
class allowing to create a Bezier curve of dimension 1 <= n <= 3.
struct to define constraints on start / end velocities and acceleration on a curve
storage for variable points of the form p_i = B_i x + c_i
Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > Point
Definition: effector_spline.h:28
double Numeric
Definition: effector_spline.h:26
constraint_flag
Definition: definitions.h:20
@ INIT_ACC
Definition: definitions.h:23
@ NONE
Definition: definitions.h:30
@ INIT_JERK
Definition: definitions.h:24
@ END_POS
Definition: definitions.h:25
@ ALL
Definition: definitions.h:29
@ END_ACC
Definition: definitions.h:27
@ END_JERK
Definition: definitions.h:28
@ INIT_POS
Definition: definitions.h:21
@ INIT_VEL
Definition: definitions.h:22
@ END_VEL
Definition: definitions.h:26
Definition: bernstein.h:20
storage for variable points of the form p_i = x' A_i x + B_i x + c_i
Definition: curve_constraint.h:20
Point point_t
Definition: curve_constraint.h:21
Definition: definitions.h:41
problem_definition(const std::size_t dim)
Definition: definitions.h:54
num_t totalTime
Definition: definitions.h:78
point_t end_pos
Definition: definitions.h:76
std::vector< vector_x_t, Eigen::aligned_allocator< vector_x_t > > T_vector_x_t
Definition: definitions.h:50
problem_definition(const curve_constraints_t &parent)
Definition: definitions.h:64
point_t init_pos
Definition: definitions.h:75
std::size_t degree
Definition: definitions.h:77
T_vector_x_t::const_iterator CIT_vector_x_t
Definition: definitions.h:52
T_vector_x_t inequalityVectors_
Definition: definitions.h:81
T_matrix_x_t inequalityMatrices_
Definition: definitions.h:80
std::vector< matrix_x_t, Eigen::aligned_allocator< matrix_x_t > > T_matrix_x_t
Definition: definitions.h:48
Numeric num_t
Definition: definitions.h:43
const std::size_t dim_
Definition: definitions.h:82
vector_x_t splitTimes_
Definition: definitions.h:79
Eigen::Matrix< num_t, Eigen::Dynamic, 1 > vector_x_t
Definition: definitions.h:45
curve_constraints< point_t > curve_constraints_t
Definition: definitions.h:44
constraint_flag flag
Definition: definitions.h:74
T_matrix_x_t::const_iterator CIT_matrix_x_t
Definition: definitions.h:51
Point point_t
Definition: definitions.h:42
Eigen::Matrix< num_t, Eigen::Dynamic, Eigen::Dynamic > matrix_x_t
Definition: definitions.h:46
Definition: definitions.h:34
Eigen::Matrix< Numeric, Eigen::Dynamic, Eigen::Dynamic > ineqMatrix
Definition: definitions.h:35
quadratic_variable< Numeric > cost
Definition: definitions.h:37
Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > ineqVector
Definition: definitions.h:36