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 >
Beziercompute_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, Safesetup_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 ( In  PointsBegin1,
In  PointsEnd1,
In  PointsBegin2,
In  PointsEnd2,
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_flag  flag 
)

◆ 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_t  num_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 Numeric  totalTime 
)

◆ 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_t  i,
const std::size_t  startVariableIndex,
const std::size_t  numVariables,
const std::size_t  Dim 
)

◆ 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_flag  costFlag 
)

◆ 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_flag  a,
constraint_flag  b 
)
inline

◆ operator&=()

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

◆ operator^()

constraint_flag ndcurves::optimization::operator^ ( constraint_flag  a,
constraint_flag  b 
)
inline

◆ operator^=()

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

◆ operator|()

constraint_flag ndcurves::optimization::operator| ( constraint_flag  a,
constraint_flag  b 
)
inline

◆ operator|=()

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

◆ operator~()

constraint_flag ndcurves::optimization::operator~ ( constraint_flag  a)
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 
)