Loading...
Searching...
No Matches
integral_cost.h
Go to the documentation of this file.
1
9#ifndef _CLASS_QUADRATIC_COST
10#define _CLASS_QUADRATIC_COST
11
12#include <Eigen/Core>
13
16
17namespace ndcurves {
18namespace optimization {
19
21 DISTANCE = 0x000,
22 VELOCITY = 0x001,
23 ACCELERATION = 0x002,
24 JERK = 0x003,
25 FOURTH = 0x004,
26 FIFTH = 0x005
27};
28
29template <typename Point, typename Numeric>
31 const problem_data<Point, Numeric>& pData, const std::size_t num_derivate) {
34 typedef typename bezier_t::t_point_t t_point_t;
35 typedef typename t_point_t::const_iterator cit_point_t;
36 bezier_t acc = pData.bezier->compute_derivate(num_derivate);
37 const t_point_t& wps = acc.waypoints();
38 quadratic_variable<Numeric> res(bezier_product<Point, Numeric, cit_point_t>(
39 wps.begin(), wps.end(), wps.begin(), wps.end(), pData.dim_));
40 return res;
41}
42
43template <typename Point, typename Numeric>
45 const problem_data<Point, Numeric>& pData, const integral_cost_flag flag) {
46 std::size_t size = (std::size_t)(flag);
47 return compute_integral_cost_internal<Point, Numeric>(pData, size);
48}
49
50} // namespace optimization
51} // namespace ndcurves
52#endif //_CLASS_QUADRATIC_COST
utils for defining optimization problems
integral_cost_flag
Definition: integral_cost.h:20
@ FIFTH
Definition: integral_cost.h:26
@ JERK
Definition: integral_cost.h:24
@ VELOCITY
Definition: integral_cost.h:22
@ DISTANCE
Definition: integral_cost.h:21
@ ACCELERATION
Definition: integral_cost.h:23
@ FOURTH
Definition: integral_cost.h:25
quadratic_variable< Numeric > compute_integral_cost(const problem_data< Point, Numeric > &pData, const integral_cost_flag flag)
Definition: integral_cost.h:44
quadratic_variable< Numeric > compute_integral_cost_internal(const problem_data< Point, Numeric > &pData, const std::size_t num_derivate)
Definition: integral_cost.h:30
Definition: bernstein.h:20
bezier_curve< double, double, true, pointX_t > bezier_t
Definition: fwd.h:99
Definition: bezier_curve.h:31
std::vector< point_t, Eigen::aligned_allocator< point_t > > t_point_t
Definition: bezier_curve.h:38
bezier_curve_t compute_derivate(const std::size_t order) const
Compute the derived curve at order N. Computes the derivative order N, of bezier curve of parametric...
Definition: bezier_curve.h:206
Definition: details.h:21
bezier_t * bezier
Definition: details.h:38
const std::size_t dim_
Definition: details.h:39
Definition: quadratic_variable.h:25