Apollo  6.0
Open source self driving car software
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
apollo::planning::PiecewiseJerkProblem Class Referenceabstract

#include <piecewise_jerk_problem.h>

Inheritance diagram for apollo::planning::PiecewiseJerkProblem:
Inheritance graph
Collaboration diagram for apollo::planning::PiecewiseJerkProblem:
Collaboration graph

Public Member Functions

 PiecewiseJerkProblem (const size_t num_of_knots, const double delta_s, const std::array< double, 3 > &x_init)
 
virtual ~PiecewiseJerkProblem ()=default
 
void set_x_bounds (std::vector< std::pair< double, double >> x_bounds)
 
void set_x_bounds (const double x_lower_bound, const double x_upper_bound)
 
void set_dx_bounds (std::vector< std::pair< double, double >> dx_bounds)
 
void set_dx_bounds (const double dx_lower_bound, const double dx_upper_bound)
 
void set_ddx_bounds (std::vector< std::pair< double, double >> ddx_bounds)
 
void set_ddx_bounds (const double ddx_lower_bound, const double ddx_upper_bound)
 
void set_dddx_bound (const double dddx_bound)
 
void set_dddx_bound (const double dddx_lower_bound, const double dddx_upper_bound)
 
void set_weight_x (const double weight_x)
 
void set_weight_dx (const double weight_dx)
 
void set_weight_ddx (const double weight_ddx)
 
void set_weight_dddx (const double weight_dddx)
 
void set_scale_factor (const std::array< double, 3 > &scale_factor)
 
void set_x_ref (const double weight_x_ref, std::vector< double > x_ref)
 Set the x ref object and the uniform x_ref weighting. More...
 
void set_x_ref (std::vector< double > weight_x_ref_vec, std::vector< double > x_ref)
 Set the x ref object and piecewised x_ref weightings. More...
 
void set_end_state_ref (const std::array< double, 3 > &weight_end_state, const std::array< double, 3 > &end_state_ref)
 
virtual bool Optimize (const int max_iter=4000)
 
const std::vector< double > & opt_x () const
 
const std::vector< double > & opt_dx () const
 
const std::vector< double > & opt_ddx () const
 

Protected Member Functions

virtual void CalculateKernel (std::vector< c_float > *P_data, std::vector< c_int > *P_indices, std::vector< c_int > *P_indptr)=0
 
virtual void CalculateOffset (std::vector< c_float > *q)=0
 
virtual void CalculateAffineConstraint (std::vector< c_float > *A_data, std::vector< c_int > *A_indices, std::vector< c_int > *A_indptr, std::vector< c_float > *lower_bounds, std::vector< c_float > *upper_bounds)
 
virtual OSQPSettings * SolverDefaultSettings ()
 
OSQPData * FormulateProblem ()
 
void FreeData (OSQPData *data)
 
template<typename T >
T * CopyData (const std::vector< T > &vec)
 

Protected Attributes

size_t num_of_knots_ = 0
 
std::vector< double > x_
 
std::vector< double > dx_
 
std::vector< double > ddx_
 
std::array< double, 3 > x_init_
 
std::array< double, 3 > scale_factor_ = {{1.0, 1.0, 1.0}}
 
std::vector< std::pair< double, double > > x_bounds_
 
std::vector< std::pair< double, double > > dx_bounds_
 
std::vector< std::pair< double, double > > ddx_bounds_
 
std::pair< double, double > dddx_bound_
 
double weight_x_ = 0.0
 
double weight_dx_ = 0.0
 
double weight_ddx_ = 0.0
 
double weight_dddx_ = 0.0
 
double delta_s_ = 1.0
 
bool has_x_ref_ = false
 
double weight_x_ref_ = 0.0
 
std::vector< double > x_ref_
 
std::vector< double > weight_x_ref_vec_
 
bool has_end_state_ref_ = false
 
std::array< double, 3 > weight_end_state_ = {{0.0, 0.0, 0.0}}
 
std::array< double, 3 > end_state_ref_
 

Constructor & Destructor Documentation

◆ PiecewiseJerkProblem()

apollo::planning::PiecewiseJerkProblem::PiecewiseJerkProblem ( const size_t  num_of_knots,
const double  delta_s,
const std::array< double, 3 > &  x_init 
)

◆ ~PiecewiseJerkProblem()

virtual apollo::planning::PiecewiseJerkProblem::~PiecewiseJerkProblem ( )
virtualdefault

Member Function Documentation

◆ CalculateAffineConstraint()

virtual void apollo::planning::PiecewiseJerkProblem::CalculateAffineConstraint ( std::vector< c_float > *  A_data,
std::vector< c_int > *  A_indices,
std::vector< c_int > *  A_indptr,
std::vector< c_float > *  lower_bounds,
std::vector< c_float > *  upper_bounds 
)
protectedvirtual

◆ CalculateKernel()

virtual void apollo::planning::PiecewiseJerkProblem::CalculateKernel ( std::vector< c_float > *  P_data,
std::vector< c_int > *  P_indices,
std::vector< c_int > *  P_indptr 
)
protectedpure virtual

◆ CalculateOffset()

virtual void apollo::planning::PiecewiseJerkProblem::CalculateOffset ( std::vector< c_float > *  q)
protectedpure virtual

◆ CopyData()

template<typename T >
T* apollo::planning::PiecewiseJerkProblem::CopyData ( const std::vector< T > &  vec)
inlineprotected

◆ FormulateProblem()

OSQPData* apollo::planning::PiecewiseJerkProblem::FormulateProblem ( )
protected

◆ FreeData()

void apollo::planning::PiecewiseJerkProblem::FreeData ( OSQPData *  data)
protected

◆ opt_ddx()

const std::vector<double>& apollo::planning::PiecewiseJerkProblem::opt_ddx ( ) const
inline

◆ opt_dx()

const std::vector<double>& apollo::planning::PiecewiseJerkProblem::opt_dx ( ) const
inline

◆ opt_x()

const std::vector<double>& apollo::planning::PiecewiseJerkProblem::opt_x ( ) const
inline

◆ Optimize()

virtual bool apollo::planning::PiecewiseJerkProblem::Optimize ( const int  max_iter = 4000)
virtual

◆ set_dddx_bound() [1/2]

void apollo::planning::PiecewiseJerkProblem::set_dddx_bound ( const double  dddx_bound)
inline

◆ set_dddx_bound() [2/2]

void apollo::planning::PiecewiseJerkProblem::set_dddx_bound ( const double  dddx_lower_bound,
const double  dddx_upper_bound 
)
inline

◆ set_ddx_bounds() [1/2]

void apollo::planning::PiecewiseJerkProblem::set_ddx_bounds ( std::vector< std::pair< double, double >>  ddx_bounds)

◆ set_ddx_bounds() [2/2]

void apollo::planning::PiecewiseJerkProblem::set_ddx_bounds ( const double  ddx_lower_bound,
const double  ddx_upper_bound 
)

◆ set_dx_bounds() [1/2]

void apollo::planning::PiecewiseJerkProblem::set_dx_bounds ( std::vector< std::pair< double, double >>  dx_bounds)

◆ set_dx_bounds() [2/2]

void apollo::planning::PiecewiseJerkProblem::set_dx_bounds ( const double  dx_lower_bound,
const double  dx_upper_bound 
)

◆ set_end_state_ref()

void apollo::planning::PiecewiseJerkProblem::set_end_state_ref ( const std::array< double, 3 > &  weight_end_state,
const std::array< double, 3 > &  end_state_ref 
)

◆ set_scale_factor()

void apollo::planning::PiecewiseJerkProblem::set_scale_factor ( const std::array< double, 3 > &  scale_factor)
inline

◆ set_weight_dddx()

void apollo::planning::PiecewiseJerkProblem::set_weight_dddx ( const double  weight_dddx)
inline

◆ set_weight_ddx()

void apollo::planning::PiecewiseJerkProblem::set_weight_ddx ( const double  weight_ddx)
inline

◆ set_weight_dx()

void apollo::planning::PiecewiseJerkProblem::set_weight_dx ( const double  weight_dx)
inline

◆ set_weight_x()

void apollo::planning::PiecewiseJerkProblem::set_weight_x ( const double  weight_x)
inline

◆ set_x_bounds() [1/2]

void apollo::planning::PiecewiseJerkProblem::set_x_bounds ( std::vector< std::pair< double, double >>  x_bounds)

◆ set_x_bounds() [2/2]

void apollo::planning::PiecewiseJerkProblem::set_x_bounds ( const double  x_lower_bound,
const double  x_upper_bound 
)

◆ set_x_ref() [1/2]

void apollo::planning::PiecewiseJerkProblem::set_x_ref ( const double  weight_x_ref,
std::vector< double >  x_ref 
)

Set the x ref object and the uniform x_ref weighting.

Parameters
weight_x_refuniform weighting for x_ref
x_refobjective value of x

◆ set_x_ref() [2/2]

void apollo::planning::PiecewiseJerkProblem::set_x_ref ( std::vector< double >  weight_x_ref_vec,
std::vector< double >  x_ref 
)

Set the x ref object and piecewised x_ref weightings.

Parameters
weight_x_ref_vecpiecewised x_ref weightings
x_refobjective value of x

◆ SolverDefaultSettings()

virtual OSQPSettings* apollo::planning::PiecewiseJerkProblem::SolverDefaultSettings ( )
protectedvirtual

Member Data Documentation

◆ dddx_bound_

std::pair<double, double> apollo::planning::PiecewiseJerkProblem::dddx_bound_
protected

◆ ddx_

std::vector<double> apollo::planning::PiecewiseJerkProblem::ddx_
protected

◆ ddx_bounds_

std::vector<std::pair<double, double> > apollo::planning::PiecewiseJerkProblem::ddx_bounds_
protected

◆ delta_s_

double apollo::planning::PiecewiseJerkProblem::delta_s_ = 1.0
protected

◆ dx_

std::vector<double> apollo::planning::PiecewiseJerkProblem::dx_
protected

◆ dx_bounds_

std::vector<std::pair<double, double> > apollo::planning::PiecewiseJerkProblem::dx_bounds_
protected

◆ end_state_ref_

std::array<double, 3> apollo::planning::PiecewiseJerkProblem::end_state_ref_
protected

◆ has_end_state_ref_

bool apollo::planning::PiecewiseJerkProblem::has_end_state_ref_ = false
protected

◆ has_x_ref_

bool apollo::planning::PiecewiseJerkProblem::has_x_ref_ = false
protected

◆ num_of_knots_

size_t apollo::planning::PiecewiseJerkProblem::num_of_knots_ = 0
protected

◆ scale_factor_

std::array<double, 3> apollo::planning::PiecewiseJerkProblem::scale_factor_ = {{1.0, 1.0, 1.0}}
protected

◆ weight_dddx_

double apollo::planning::PiecewiseJerkProblem::weight_dddx_ = 0.0
protected

◆ weight_ddx_

double apollo::planning::PiecewiseJerkProblem::weight_ddx_ = 0.0
protected

◆ weight_dx_

double apollo::planning::PiecewiseJerkProblem::weight_dx_ = 0.0
protected

◆ weight_end_state_

std::array<double, 3> apollo::planning::PiecewiseJerkProblem::weight_end_state_ = {{0.0, 0.0, 0.0}}
protected

◆ weight_x_

double apollo::planning::PiecewiseJerkProblem::weight_x_ = 0.0
protected

◆ weight_x_ref_

double apollo::planning::PiecewiseJerkProblem::weight_x_ref_ = 0.0
protected

◆ weight_x_ref_vec_

std::vector<double> apollo::planning::PiecewiseJerkProblem::weight_x_ref_vec_
protected

◆ x_

std::vector<double> apollo::planning::PiecewiseJerkProblem::x_
protected

◆ x_bounds_

std::vector<std::pair<double, double> > apollo::planning::PiecewiseJerkProblem::x_bounds_
protected

◆ x_init_

std::array<double, 3> apollo::planning::PiecewiseJerkProblem::x_init_
protected

◆ x_ref_

std::vector<double> apollo::planning::PiecewiseJerkProblem::x_ref_
protected

The documentation for this class was generated from the following file: