ndcurves 2.1.0
create and manipulate spline and bezier curves.
Loading...
Searching...
No Matches
ndcurves::optimization Namespace Reference

Classes

struct  problem_data
struct  problem_definition
struct  quadratic_problem

Enumerations

enum  constraint_flag {
  INIT_POS = 0x001 , INIT_VEL = 0x002 , INIT_ACC = 0x004 , INIT_JERK = 0x008 ,
  END_POS = 0x010 , END_VEL = 0x020 , END_ACC = 0x040 , END_JERK = 0x080 ,
  ALL = 0x0ff , NONE = 0x100
}
enum  integral_cost_flag {
  DISTANCE = 0x000 , VELOCITY = 0x001 , ACCELERATION = 0x002 , JERK = 0x003 ,
  FOURTH = 0x004 , FIFTH = 0x005
}

Functions

std::size_t num_active_constraints (const constraint_flag &flag)
template<typename Numeric, typename LinearVar>
LinearVar fill_with_zeros (const LinearVar &var, const std::size_t i, const std::size_t startVariableIndex, const std::size_t numVariables, const std::size_t Dim)
template<typename Point, typename Numeric, typename Bezier, typename LinearVar>
Bezier * compute_linear_control_points (const problem_data< Point, Numeric > &pData, const std::vector< LinearVar > &linearVars, const Numeric totalTime)
template<typename Point, typename Numeric, bool Safe>
problem_data< Point, Numeric, Safe > setup_control_points (const problem_definition< Point, Numeric > &pDef)
template<typename Point, typename Numeric>
long compute_num_ineq_control_points (const problem_definition< Point, Numeric > &pDef, const problem_data< Point, Numeric > &pData)
template<typename Point, typename Numeric>
std::vector< bezier_curve< Numeric, Numeric, true, linear_variable< Numeric > > > split (const problem_definition< Point, Numeric > &pDef, problem_data< Point, Numeric > &pData)
template<typename Point, typename Numeric>
void initInequalityMatrix (const problem_definition< Point, Numeric > &pDef, problem_data< Point, Numeric > &pData, quadratic_problem< Point, Numeric > &prob)
template<typename Point, typename Numeric, typename In>
quadratic_variable< Numeric > bezier_product (In PointsBegin1, In PointsEnd1, In PointsBegin2, In PointsEnd2, const std::size_t)
constraint_flag operator~ (constraint_flag a)
constraint_flag operator| (constraint_flag a, constraint_flag b)
constraint_flag operator& (constraint_flag a, constraint_flag b)
constraint_flag operator^ (constraint_flag a, constraint_flag b)
constraint_flagoperator|= (constraint_flag &a, constraint_flag b)
constraint_flagoperator&= (constraint_flag &a, constraint_flag b)
constraint_flagoperator^= (constraint_flag &a, constraint_flag b)
template<typename Point, typename Numeric>
quadratic_variable< Numeric > compute_integral_cost_internal (const problem_data< Point, Numeric > &pData, const std::size_t num_derivate)
template<typename Point, typename Numeric>
quadratic_variable< Numeric > compute_integral_cost (const problem_data< Point, Numeric > &pData, const integral_cost_flag flag)
template<typename Point, typename Numeric, bool Safe>
quadratic_problem< Point, Numeric > generate_problem (const problem_definition< Point, Numeric > &pDef, const quadratic_variable< Numeric > &cost)
template<typename Point, typename Numeric, bool Safe>
quadratic_problem< Point, Numeric > generate_problem (const problem_definition< Point, Numeric > &pDef, const integral_cost_flag costFlag)

Enumeration Type Documentation

◆ constraint_flag

Enumerator
INIT_POS 
INIT_VEL 
INIT_ACC 
INIT_JERK 
END_POS 
END_VEL 
END_ACC 
END_JERK 
ALL 
NONE 

◆ integral_cost_flag

Enumerator
DISTANCE 
VELOCITY 
ACCELERATION 
JERK 
FOURTH 
FIFTH 

Function Documentation

◆ bezier_product()

template<typename Point, typename Numeric, typename In>
quadratic_variable< Numeric > ndcurves::optimization::bezier_product(InPointsBegin1,
InPointsEnd1,
InPointsBegin2,
InPointsEnd2,
const std::size_t )

◆ compute_integral_cost()

template<typename Point, typename Numeric>
quadratic_variable< Numeric > ndcurves::optimization::compute_integral_cost(const problem_data< Point, Numeric > &pData,
const integral_cost_flagflag )

◆ compute_integral_cost_internal()

template<typename Point, typename Numeric>
quadratic_variable< Numeric > ndcurves::optimization::compute_integral_cost_internal(const problem_data< Point, Numeric > &pData,
const std::size_tnum_derivate )

◆ compute_linear_control_points()

template<typename Point, typename Numeric, typename Bezier, typename LinearVar>
Bezier * ndcurves::optimization::compute_linear_control_points(const problem_data< Point, Numeric > &pData,
const std::vector< LinearVar > &linearVars,
const NumerictotalTime )

◆ compute_num_ineq_control_points()

template<typename Point, typename Numeric>
long ndcurves::optimization::compute_num_ineq_control_points(const problem_definition< Point, Numeric > &pDef,
const problem_data< Point, Numeric > &pData )

◆ fill_with_zeros()

template<typename Numeric, typename LinearVar>
LinearVar ndcurves::optimization::fill_with_zeros(const LinearVar &var,
const std::size_ti,
const std::size_tstartVariableIndex,
const std::size_tnumVariables,
const std::size_tDim )

◆ generate_problem() [1/2]

template<typename Point, typename Numeric, bool Safe>
quadratic_problem< Point, Numeric > ndcurves::optimization::generate_problem(const problem_definition< Point, Numeric > &pDef,
const integral_cost_flagcostFlag )

◆ generate_problem() [2/2]

template<typename Point, typename Numeric, bool Safe>
quadratic_problem< Point, Numeric > ndcurves::optimization::generate_problem(const problem_definition< Point, Numeric > &pDef,
const quadratic_variable< Numeric > &cost )

◆ initInequalityMatrix()

template<typename Point, typename Numeric>
void ndcurves::optimization::initInequalityMatrix(const problem_definition< Point, Numeric > &pDef,
problem_data< Point, Numeric > &pData,
quadratic_problem< Point, Numeric > &prob )

◆ num_active_constraints()

std::size_t ndcurves::optimization::num_active_constraints(const constraint_flag &flag)
inline

◆ operator&()

constraint_flag ndcurves::optimization::operator&(constraint_flaga,
constraint_flagb )
inline

◆ operator&=()

constraint_flag & ndcurves::optimization::operator&=(constraint_flag &a,
constraint_flagb )
inline

◆ operator^()

constraint_flag ndcurves::optimization::operator^(constraint_flaga,
constraint_flagb )
inline

◆ operator^=()

constraint_flag & ndcurves::optimization::operator^=(constraint_flag &a,
constraint_flagb )
inline

◆ operator|()

constraint_flag ndcurves::optimization::operator|(constraint_flaga,
constraint_flagb )
inline

◆ operator|=()

constraint_flag & ndcurves::optimization::operator|=(constraint_flag &a,
constraint_flagb )
inline

◆ operator~()

constraint_flag ndcurves::optimization::operator~(constraint_flaga)
inline

◆ setup_control_points()

template<typename Point, typename Numeric, bool Safe>
problem_data< Point, Numeric, Safe > ndcurves::optimization::setup_control_points(const problem_definition< Point, Numeric > &pDef)

◆ split()

template<typename Point, typename Numeric>
std::vector< bezier_curve< Numeric, Numeric, true, linear_variable< Numeric > > > ndcurves::optimization::split(const problem_definition< Point, Numeric > &pDef,
problem_data< Point, Numeric > &pData )