Apollo  6.0
Open source self driving car software
Public Member Functions | List of all members
apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface Class Reference

#include <piecewise_jerk_speed_nonlinear_ipopt_interface.h>

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

Public Member Functions

 PiecewiseJerkSpeedNonlinearIpoptInterface (const double s_init, const double s_dot_init, const double s_ddot_init, const double delta_t, const int num_of_points, const double s_max_, const double s_dot_max, const double s_ddot_min, const double s_ddot_max, const double s_dddot_min, const double s_dddot_max)
 
virtual ~PiecewiseJerkSpeedNonlinearIpoptInterface ()=default
 
void set_warm_start (const std::vector< std::vector< double >> &speed_profile)
 
void set_curvature_curve (const PiecewiseJerkTrajectory1d &curvature_curve)
 
void get_optimization_results (std::vector< double > *ptr_opt_s, std::vector< double > *ptr_opt_v, std::vector< double > *ptr_opt_a)
 
void set_end_state_target (const double s_target, const double v_target, const double a_target)
 
void set_reference_speed (const double s_dot_ref)
 
void set_reference_spatial_distance (const std::vector< double > &s_ref)
 
void set_speed_limit_curve (const PiecewiseJerkTrajectory1d &v_bound_f)
 
void set_safety_bounds (const std::vector< std::pair< double, double >> &safety_bounds)
 
void set_soft_safety_bounds (const std::vector< std::pair< double, double >> &soft_safety_bounds)
 
void set_w_target_state (const double w_target_s, const double w_target_v, const double w_target_a)
 
void set_w_overall_a (const double w_overall_a)
 
void set_w_overall_j (const double w_overall_j)
 
void set_w_overall_centripetal_acc (const double w_overall_centripetal_acc)
 
void set_w_reference_speed (const double w_reference_speed)
 
void set_w_reference_spatial_distance (const double w_ref_s)
 
void set_w_soft_s_bound (const double w_soft_s_bound)
 
bool get_nlp_info (int &n, int &m, int &nnz_jac_g, int &nnz_h_lag, IndexStyleEnum &index_style) override
 
bool get_bounds_info (int n, double *x_l, double *x_u, int m, double *g_l, double *g_u) override
 
bool get_starting_point (int n, bool init_x, double *x, bool init_z, double *z_L, double *z_U, int m, bool init_lambda, double *lambda) override
 
bool eval_f (int n, const double *x, bool new_x, double &obj_value) override
 
bool eval_grad_f (int n, const double *x, bool new_x, double *grad_f) override
 
bool eval_g (int n, const double *x, bool new_x, int m, double *g) override
 
bool eval_jac_g (int n, const double *x, bool new_x, int m, int nele_jac, int *iRow, int *jCol, double *values) override
 
bool eval_h (int n, const double *x, bool new_x, double obj_factor, int m, const double *lambda, bool new_lambda, int nele_hess, int *iRow, int *jCol, double *values) override
 

Solution Methods

void finalize_solution (Ipopt::SolverReturn status, int n, const double *x, const double *z_L, const double *z_U, int m, const double *g, const double *lambda, double obj_value, const Ipopt::IpoptData *ip_data, Ipopt::IpoptCalculatedQuantities *ip_cq) override
 

Constructor & Destructor Documentation

◆ PiecewiseJerkSpeedNonlinearIpoptInterface()

apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::PiecewiseJerkSpeedNonlinearIpoptInterface ( const double  s_init,
const double  s_dot_init,
const double  s_ddot_init,
const double  delta_t,
const int  num_of_points,
const double  s_max_,
const double  s_dot_max,
const double  s_ddot_min,
const double  s_ddot_max,
const double  s_dddot_min,
const double  s_dddot_max 
)

◆ ~PiecewiseJerkSpeedNonlinearIpoptInterface()

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

Member Function Documentation

◆ eval_f()

bool apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::eval_f ( int  n,
const double *  x,
bool  new_x,
double &  obj_value 
)
override

Method to return the objective value

◆ eval_g()

bool apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::eval_g ( int  n,
const double *  x,
bool  new_x,
int  m,
double *  g 
)
override

Method to return the constraint residuals

◆ eval_grad_f()

bool apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::eval_grad_f ( int  n,
const double *  x,
bool  new_x,
double *  grad_f 
)
override

Method to return the gradient of the objective

◆ eval_h()

bool apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::eval_h ( int  n,
const double *  x,
bool  new_x,
double  obj_factor,
int  m,
const double *  lambda,
bool  new_lambda,
int  nele_hess,
int *  iRow,
int *  jCol,
double *  values 
)
override

Method to return: 1) The structure of the hessian of the lagrangian (if "values" is nullptr) 2) The values of the hessian of the lagrangian (if "values" is not nullptr)

◆ eval_jac_g()

bool apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::eval_jac_g ( int  n,
const double *  x,
bool  new_x,
int  m,
int  nele_jac,
int *  iRow,
int *  jCol,
double *  values 
)
override

Method to return: 1) The structure of the jacobian (if "values" is nullptr) 2) The values of the jacobian (if "values" is not nullptr)

◆ finalize_solution()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::finalize_solution ( Ipopt::SolverReturn  status,
int  n,
const double *  x,
const double *  z_L,
const double *  z_U,
int  m,
const double *  g,
const double *  lambda,
double  obj_value,
const Ipopt::IpoptData *  ip_data,
Ipopt::IpoptCalculatedQuantities *  ip_cq 
)
override

This method is called when the algorithm is complete so the TNLP can store/write the solution

◆ get_bounds_info()

bool apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::get_bounds_info ( int  n,
double *  x_l,
double *  x_u,
int  m,
double *  g_l,
double *  g_u 
)
override

Method to return the bounds for my problem

◆ get_nlp_info()

bool apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::get_nlp_info ( int &  n,
int &  m,
int &  nnz_jac_g,
int &  nnz_h_lag,
IndexStyleEnum &  index_style 
)
override

Method to return some info about the nlp

◆ get_optimization_results()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::get_optimization_results ( std::vector< double > *  ptr_opt_s,
std::vector< double > *  ptr_opt_v,
std::vector< double > *  ptr_opt_a 
)

◆ get_starting_point()

bool apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::get_starting_point ( int  n,
bool  init_x,
double *  x,
bool  init_z,
double *  z_L,
double *  z_U,
int  m,
bool  init_lambda,
double *  lambda 
)
override

Method to return the starting point for the algorithm

◆ set_curvature_curve()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_curvature_curve ( const PiecewiseJerkTrajectory1d curvature_curve)

◆ set_end_state_target()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_end_state_target ( const double  s_target,
const double  v_target,
const double  a_target 
)

◆ set_reference_spatial_distance()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_reference_spatial_distance ( const std::vector< double > &  s_ref)

◆ set_reference_speed()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_reference_speed ( const double  s_dot_ref)

◆ set_safety_bounds()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_safety_bounds ( const std::vector< std::pair< double, double >> &  safety_bounds)

◆ set_soft_safety_bounds()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_soft_safety_bounds ( const std::vector< std::pair< double, double >> &  soft_safety_bounds)

◆ set_speed_limit_curve()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_speed_limit_curve ( const PiecewiseJerkTrajectory1d v_bound_f)

◆ set_w_overall_a()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_w_overall_a ( const double  w_overall_a)

◆ set_w_overall_centripetal_acc()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_w_overall_centripetal_acc ( const double  w_overall_centripetal_acc)

◆ set_w_overall_j()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_w_overall_j ( const double  w_overall_j)

◆ set_w_reference_spatial_distance()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_w_reference_spatial_distance ( const double  w_ref_s)

◆ set_w_reference_speed()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_w_reference_speed ( const double  w_reference_speed)

◆ set_w_soft_s_bound()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_w_soft_s_bound ( const double  w_soft_s_bound)

◆ set_w_target_state()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_w_target_state ( const double  w_target_s,
const double  w_target_v,
const double  w_target_a 
)

◆ set_warm_start()

void apollo::planning::PiecewiseJerkSpeedNonlinearIpoptInterface::set_warm_start ( const std::vector< std::vector< double >> &  speed_profile)

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