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 
64  problem_definition(const curve_constraints_t& parent)
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 
75  point_t init_pos;
76  point_t end_pos;
77  std::size_t degree;
78  num_t totalTime;
79  vector_x_t splitTimes_;
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
Definition: bernstein.h:20
Definition: definitions.h:21
std::vector< matrix_x_t, Eigen::aligned_allocator< matrix_x_t > > T_matrix_x_t
Definition: definitions.h:48
num_t totalTime
Definition: definitions.h:78
Numeric num_t
Definition: definitions.h:43
Definition: definitions.h:28
constraint_flag
Definition: definitions.h:20
point_t end_pos
Definition: definitions.h:76
Definition: definitions.h:41
std::vector< vector_x_t, Eigen::aligned_allocator< vector_x_t > > T_vector_x_t
Definition: definitions.h:50
const std::size_t dim_
Definition: definitions.h:82
T_vector_x_t inequalityVectors_
Definition: definitions.h:81
Definition: definitions.h:29
Definition: definitions.h:27
quadratic_variable< Numeric > cost
Definition: definitions.h:37
point_t init_pos
Definition: definitions.h:75
Eigen::Matrix< num_t, Eigen::Dynamic, Eigen::Dynamic > matrix_x_t
Definition: definitions.h:46
Eigen::Matrix< Numeric, Eigen::Dynamic, Eigen::Dynamic > ineqMatrix
Definition: definitions.h:35
constraint_flag flag
Definition: definitions.h:74
class allowing to create a Bezier curve of dimension 1 <= n <= 3.
Point point_t
Definition: definitions.h:42
problem_definition(const curve_constraints_t &parent)
Definition: definitions.h:64
Eigen::Matrix< num_t, Eigen::Dynamic, 1 > vector_x_t
Definition: definitions.h:45
Definition: definitions.h:26
Definition: definitions.h:25
T_matrix_x_t::const_iterator CIT_matrix_x_t
Definition: definitions.h:51
Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > Point
Definition: effector_spline.h:28
vector_x_t splitTimes_
Definition: definitions.h:79
struct to define constraints on start / end velocities and acceleration on a curve ...
storage for variable points of the form p_i = x&#39; A_i x + B_i x + c_i
Definition: definitions.h:22
double Numeric
Definition: effector_spline.h:26
T_matrix_x_t inequalityMatrices_
Definition: definitions.h:80
problem_definition(const std::size_t dim)
Definition: definitions.h:54
Definition: fwd.h:63
Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > ineqVector
Definition: definitions.h:36
Definition: definitions.h:23
std::size_t degree
Definition: definitions.h:77
Definition: curve_constraint.h:20
T_vector_x_t::const_iterator CIT_vector_x_t
Definition: definitions.h:52
curve_constraints< point_t > curve_constraints_t
Definition: definitions.h:44
storage for variable points of the form p_i = B_i x + c_i
Definition: definitions.h:34
Definition: definitions.h:24
Definition: definitions.h:30