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 
17 namespace ndcurves {
18 namespace optimization {
19 
21  DISTANCE = 0x000,
22  VELOCITY = 0x001,
23  ACCELERATION = 0x002,
24  JERK = 0x003,
25  FOURTH = 0x004,
26  FIFTH = 0x005
27 };
28 
29 template <typename Point, typename Numeric>
31  const problem_data<Point, Numeric>& pData, const std::size_t num_derivate) {
33  bezier_t;
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 
43 template <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
ndcurves::optimization::ACCELERATION
@ ACCELERATION
Definition: integral_cost.h:23
ndcurves::bezier_curve
Definition: bezier_curve.h:31
ndcurves::optimization::FOURTH
@ FOURTH
Definition: integral_cost.h:25
ndcurves::optimization::compute_integral_cost_internal
quadratic_variable< Numeric > compute_integral_cost_internal(const problem_data< Point, Numeric > &pData, const std::size_t num_derivate)
Definition: integral_cost.h:30
ndcurves::optimization::compute_integral_cost
quadratic_variable< Numeric > compute_integral_cost(const problem_data< Point, Numeric > &pData, const integral_cost_flag flag)
Definition: integral_cost.h:44
ndcurves::optimization::integral_cost_flag
integral_cost_flag
Definition: integral_cost.h:20
ndcurves::optimization::VELOCITY
@ VELOCITY
Definition: integral_cost.h:22
ndcurves::optimization::DISTANCE
@ DISTANCE
Definition: integral_cost.h:21
ndcurves::bezier_curve::t_point_t
std::vector< point_t, Eigen::aligned_allocator< point_t > > t_point_t
Definition: bezier_curve.h:38
ndcurves
Definition: bernstein.h:20
definitions.h
utils for defining optimization problems
ndcurves::optimization::problem_data
Definition: details.h:21
ndcurves::optimization::problem_data::bezier
bezier_t * bezier
Definition: details.h:38
ndcurves::quadratic_variable
Definition: fwd.h:66
details.h
ndcurves::optimization::FIFTH
@ FIFTH
Definition: integral_cost.h:26
ndcurves::optimization::JERK
@ JERK
Definition: integral_cost.h:24
ndcurves::bezier_t
bezier_curve< double, double, true, pointX_t > bezier_t
Definition: fwd.h:107
ndcurves::optimization::problem_data::dim_
const std::size_t dim_
Definition: details.h:39