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> > T_matrix_x_t;
48  typedef std::vector<vector_x_t, Eigen::aligned_allocator<vector_x_t> > T_vector_x_t;
49  typedef typename T_matrix_x_t::const_iterator CIT_matrix_x_t;
50  typedef typename T_vector_x_t::const_iterator CIT_vector_x_t;
51 
52  problem_definition(const std::size_t dim)
53  : curve_constraints_t(dim),
54  flag(NONE),
55  init_pos(point_t::Zero(dim)),
56  end_pos(point_t::Zero(dim)),
57  degree(5),
58  totalTime(1.),
59  splitTimes_(vector_x_t::Zero(0)),
60  dim_(dim) {}
61 
62  problem_definition(const curve_constraints_t& parent)
63  : curve_constraints_t(parent),
64  flag(NONE),
65  init_pos(point_t::Zero(parent.dim_)),
66  end_pos(point_t::Zero(parent.dim_)),
67  degree(5),
68  totalTime(1.),
69  splitTimes_(vector_x_t::Zero(0)),
70  dim_(parent.dim_) {}
71 
73  point_t init_pos;
74  point_t end_pos;
75  std::size_t degree;
76  num_t totalTime;
77  vector_x_t splitTimes_;
78  T_matrix_x_t inequalityMatrices_; // must be of size (splitTimes_ + 1)
79  T_vector_x_t inequalityVectors_; // must be of size (splitTimes_ + 1)
80  const std::size_t dim_;
81 };
82 
83 } // namespace optimization
84 } // namespace ndcurves
85 #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:47
num_t totalTime
Definition: definitions.h:76
Numeric num_t
Definition: definitions.h:43
Definition: definitions.h:28
constraint_flag
Definition: definitions.h:20
point_t end_pos
Definition: definitions.h:74
Definition: definitions.h:41
std::vector< vector_x_t, Eigen::aligned_allocator< vector_x_t > > T_vector_x_t
Definition: definitions.h:48
const std::size_t dim_
Definition: definitions.h:80
T_vector_x_t inequalityVectors_
Definition: definitions.h:79
Definition: definitions.h:29
Definition: definitions.h:27
quadratic_variable< Numeric > cost
Definition: definitions.h:37
point_t init_pos
Definition: definitions.h:73
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:72
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:62
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:49
Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > Point
Definition: effector_spline.h:28
vector_x_t splitTimes_
Definition: definitions.h:77
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:78
problem_definition(const std::size_t dim)
Definition: definitions.h:52
Definition: fwd.h:58
Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > ineqVector
Definition: definitions.h:36
Definition: definitions.h:23
std::size_t degree
Definition: definitions.h:75
Definition: curve_constraint.h:22
T_vector_x_t::const_iterator CIT_vector_x_t
Definition: definitions.h:50
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