ndcurves
2.3.0
create and manipulate spline and bezier curves.
Toggle main menu visibility
Loading...
Searching...
No Matches
integral_cost.h
Go to the documentation of this file.
1
8
9
#ifndef _CLASS_QUADRATIC_COST
10
#define _CLASS_QUADRATIC_COST
11
12
#include <Eigen/Core>
13
14
#include "
ndcurves/optimization/definitions.h
"
15
#include "
ndcurves/optimization/details.h
"
16
17
namespace
ndcurves
{
18
namespace
optimization
{
19
20
enum
integral_cost_flag
{
21
DISTANCE
= 0x000,
22
VELOCITY
= 0x001,
23
ACCELERATION
= 0x002,
24
JERK
= 0x003,
25
FOURTH
= 0x004,
26
FIFTH
= 0x005
27
};
28
29
template
<
typename
Po
int
,
typename
Numeric>
30
quadratic_variable<Numeric>
compute_integral_cost_internal
(
31
const
problem_data<Point, Numeric>
& pData,
const
std::size_t num_derivate) {
32
typedef
bezier_curve<Numeric, Numeric, true, linear_variable<Numeric>
>
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
Po
int
,
typename
Numeric>
44
quadratic_variable<Numeric>
compute_integral_cost
(
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
t_point_t
std::vector< point_t, Eigen::aligned_allocator< point_t > > t_point_t
Definition
bezier_curve.h:371
cit_point_t
t_point_t::const_iterator cit_point_t
Definition
bezier_curve.h:372
definitions.h
utils for defining optimization problems
details.h
ndcurves::optimization
Definition
definitions.h:18
ndcurves::optimization::integral_cost_flag
integral_cost_flag
Definition
integral_cost.h:20
ndcurves::optimization::FIFTH
@ FIFTH
Definition
integral_cost.h:26
ndcurves::optimization::JERK
@ JERK
Definition
integral_cost.h:24
ndcurves::optimization::VELOCITY
@ VELOCITY
Definition
integral_cost.h:22
ndcurves::optimization::DISTANCE
@ DISTANCE
Definition
integral_cost.h:21
ndcurves::optimization::ACCELERATION
@ ACCELERATION
Definition
integral_cost.h:23
ndcurves::optimization::FOURTH
@ FOURTH
Definition
integral_cost.h:25
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::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::bezier_product
quadratic_variable< Numeric > bezier_product(In PointsBegin1, In PointsEnd1, In PointsBegin2, In PointsEnd2, const std::size_t)
Definition
details.h:313
ndcurves
Definition
bernstein.h:20
ndcurves::bezier_t
bezier_curve< double, double, true, pointX_t > bezier_t
Definition
fwd.h:107
ndcurves::bezier_curve
Definition
bezier_curve.h:31
ndcurves::bezier_curve< double, double, true, pointX_t >::t_point_t
std::vector< point_t, Eigen::aligned_allocator< point_t > > t_point_t
Definition
bezier_curve.h:38
ndcurves::bezier_curve::compute_derivate
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
ndcurves::optimization::problem_data
Definition
details.h:21
ndcurves::optimization::problem_data::bezier
bezier_t * bezier
Definition
details.h:38
ndcurves::optimization::problem_data::dim_
const std::size_t dim_
Definition
details.h:39
ndcurves::quadratic_variable
Definition
quadratic_variable.h:25
include
ndcurves
optimization
integral_cost.h
Generated by
1.17.0