Loading...
Searching...
No Matches
definitions.h
Go to the documentation of this file.
1
9#ifndef _CLASS_DEFINITIONS_H
10#define _CLASS_DEFINITIONS_H
11
16
17namespace ndcurves {
18namespace 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
33template <typename Point, typename Numeric>
35 Eigen::Matrix<Numeric, Eigen::Dynamic, Eigen::Dynamic> ineqMatrix;
36 Eigen::Matrix<Numeric, Eigen::Dynamic, 1> ineqVector;
38};
39
40template <typename Point, typename Numeric>
41struct 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)
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
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
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
bool isApprox(const T a, const T b, const T eps=1e-6)
Definition curve_abc.h:25
storage for variable points of the form p_i = x' A_i x + B_i x + c_i
Definition curve_constraint.h:20
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
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
Definition quadratic_variable.h:25