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 
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 
75  std::size_t degree;
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
ndcurves::optimization::problem_definition::end_pos
point_t end_pos
Definition: definitions.h:74
ndcurves::optimization::constraint_flag
constraint_flag
Definition: definitions.h:20
ndcurves::optimization::END_JERK
@ END_JERK
Definition: definitions.h:28
ndcurves::optimization::problem_definition::inequalityMatrices_
T_matrix_x_t inequalityMatrices_
Definition: definitions.h:78
ndcurves::optimization::ALL
@ ALL
Definition: definitions.h:29
ndcurves::curve_constraints
Definition: curve_constraint.h:22
ndcurves::optimization::problem_definition::num_t
Numeric num_t
Definition: definitions.h:43
bezier_curve.h
class allowing to create a Bezier curve of dimension 1 <= n <= 3.
ndcurves::optimization::problem_definition::totalTime
num_t totalTime
Definition: definitions.h:76
ndcurves::optimization::INIT_POS
@ INIT_POS
Definition: definitions.h:21
ndcurves::optimization::INIT_ACC
@ INIT_ACC
Definition: definitions.h:23
ndcurves::optimization::problem_definition::point_t
Point point_t
Definition: definitions.h:42
ndcurves::optimization::problem_definition::init_pos
point_t init_pos
Definition: definitions.h:73
ndcurves::optimization::problem_definition::flag
constraint_flag flag
Definition: definitions.h:72
ndcurves::optimization::INIT_JERK
@ INIT_JERK
Definition: definitions.h:24
ndcurves::curve_constraints::point_t
Point point_t
Definition: curve_constraint.h:23
ndcurves::optimization::problem_definition::CIT_matrix_x_t
T_matrix_x_t::const_iterator CIT_matrix_x_t
Definition: definitions.h:49
ndcurves::optimization::quadratic_problem::ineqMatrix
Eigen::Matrix< Numeric, Eigen::Dynamic, Eigen::Dynamic > ineqMatrix
Definition: definitions.h:35
ndcurves::optimization::quadratic_problem::cost
quadratic_variable< Numeric > cost
Definition: definitions.h:37
linear_variable.h
storage for variable points of the form p_i = B_i x + c_i
ndcurves::optimization::END_POS
@ END_POS
Definition: definitions.h:25
ndcurves::optimization::problem_definition::matrix_x_t
Eigen::Matrix< num_t, Eigen::Dynamic, Eigen::Dynamic > matrix_x_t
Definition: definitions.h:46
quadratic_variable.h
storage for variable points of the form p_i = x' A_i x + B_i x + c_i
ndcurves::optimization::problem_definition::curve_constraints_t
curve_constraints< point_t > curve_constraints_t
Definition: definitions.h:44
ndcurves::optimization::problem_definition::T_matrix_x_t
std::vector< matrix_x_t, Eigen::aligned_allocator< matrix_x_t > > T_matrix_x_t
Definition: definitions.h:47
ndcurves::optimization::problem_definition::inequalityVectors_
T_vector_x_t inequalityVectors_
Definition: definitions.h:79
ndcurves::optimization::problem_definition::T_vector_x_t
std::vector< vector_x_t, Eigen::aligned_allocator< vector_x_t > > T_vector_x_t
Definition: definitions.h:48
ndcurves
Definition: bernstein.h:20
ndcurves::optimization::END_VEL
@ END_VEL
Definition: definitions.h:26
ndcurves::optimization::problem_definition::splitTimes_
vector_x_t splitTimes_
Definition: definitions.h:77
ndcurves::optimization::problem_definition::vector_x_t
Eigen::Matrix< num_t, Eigen::Dynamic, 1 > vector_x_t
Definition: definitions.h:45
ndcurves::optimization::problem_definition::problem_definition
problem_definition(const std::size_t dim)
Definition: definitions.h:52
ndcurves::optimization::NONE
@ NONE
Definition: definitions.h:30
ndcurves::quadratic_variable
Definition: fwd.h:58
curve_constraint.h
struct to define constraints on start / end velocities and acceleration on a curve
ndcurves::optimization::problem_definition::dim_
const std::size_t dim_
Definition: definitions.h:80
ndcurves::helpers::Point
Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > Point
Definition: effector_spline.h:28
ndcurves::optimization::problem_definition::degree
std::size_t degree
Definition: definitions.h:75
ndcurves::optimization::END_ACC
@ END_ACC
Definition: definitions.h:27
ndcurves::optimization::quadratic_problem::ineqVector
Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > ineqVector
Definition: definitions.h:36
ndcurves::optimization::problem_definition
Definition: definitions.h:41
ndcurves::optimization::problem_definition::problem_definition
problem_definition(const curve_constraints_t &parent)
Definition: definitions.h:62
ndcurves::optimization::problem_definition::CIT_vector_x_t
T_vector_x_t::const_iterator CIT_vector_x_t
Definition: definitions.h:50
ndcurves::optimization::INIT_VEL
@ INIT_VEL
Definition: definitions.h:22
ndcurves::optimization::quadratic_problem
Definition: definitions.h:34
ndcurves::helpers::Numeric
double Numeric
Definition: effector_spline.h:26