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

#include <distance_approach_ipopt_cuda_interface.h>

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

Public Member Functions

 DistanceApproachIPOPTCUDAInterface (const size_t horizon, const double ts, const Eigen::MatrixXd &ego, const Eigen::MatrixXd &xWS, const Eigen::MatrixXd &uWS, const Eigen::MatrixXd &l_warm_up, const Eigen::MatrixXd &n_warm_up, const Eigen::MatrixXd &x0, const Eigen::MatrixXd &xf, const Eigen::MatrixXd &last_time_u, const std::vector< double > &XYbounds, const Eigen::MatrixXi &obstacles_edges_num, const size_t obstacles_num, const Eigen::MatrixXd &obstacles_A, const Eigen::MatrixXd &obstacles_b, const PlannerOpenSpaceConfig &planner_open_space_config)
 
virtual ~DistanceApproachIPOPTCUDAInterface ()=default
 
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_grad_f_hand (int n, const double *x, bool new_x, double *grad_f)
 
bool eval_g (int n, const double *x, bool new_x, int m, double *g) override
 
bool check_g (int n, const double *x, int m, const double *g)
 
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_jac_g_ser (int n, const double *x, bool new_x, int m, int nele_jac, int *iRow, int *jCol, double *values)
 
bool eval_jac_g_par (int n, const double *x, bool new_x, int m, int nele_jac, int *iRow, int *jCol, double *values)
 
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
 
- Public Member Functions inherited from apollo::planning::DistanceApproachInterface
virtual ~DistanceApproachInterface ()=default
 

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
 
void get_optimization_results (Eigen::MatrixXd *state_result, Eigen::MatrixXd *control_result, Eigen::MatrixXd *time_result, Eigen::MatrixXd *dual_l_result, Eigen::MatrixXd *dual_n_result) const
 
template<class T >
bool eval_obj (int n, const T *x, T *obj_value)
 
template<class T >
bool eval_constraints (int n, const T *x, int m, T *g)
 
void generate_tapes (int n, int m, int *nnz_h_lag)
 

Constructor & Destructor Documentation

◆ DistanceApproachIPOPTCUDAInterface()

apollo::planning::DistanceApproachIPOPTCUDAInterface::DistanceApproachIPOPTCUDAInterface ( const size_t  horizon,
const double  ts,
const Eigen::MatrixXd &  ego,
const Eigen::MatrixXd &  xWS,
const Eigen::MatrixXd &  uWS,
const Eigen::MatrixXd &  l_warm_up,
const Eigen::MatrixXd &  n_warm_up,
const Eigen::MatrixXd &  x0,
const Eigen::MatrixXd &  xf,
const Eigen::MatrixXd &  last_time_u,
const std::vector< double > &  XYbounds,
const Eigen::MatrixXi &  obstacles_edges_num,
const size_t  obstacles_num,
const Eigen::MatrixXd &  obstacles_A,
const Eigen::MatrixXd &  obstacles_b,
const PlannerOpenSpaceConfig &  planner_open_space_config 
)

◆ ~DistanceApproachIPOPTCUDAInterface()

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

Member Function Documentation

◆ check_g()

bool apollo::planning::DistanceApproachIPOPTCUDAInterface::check_g ( int  n,
const double *  x,
int  m,
const double *  g 
)
virtual

Check unfeasible constraints for further study

Implements apollo::planning::DistanceApproachInterface.

◆ eval_constraints()

template<class T >
bool apollo::planning::DistanceApproachIPOPTCUDAInterface::eval_constraints ( int  n,
const T *  x,
int  m,
T *  g 
)

Template to compute constraints

◆ eval_f()

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

Method to return the objective value

Implements apollo::planning::DistanceApproachInterface.

◆ eval_g()

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

Method to return the constraint residuals

Implements apollo::planning::DistanceApproachInterface.

◆ eval_grad_f()

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

Method to return the gradient of the objective

Implements apollo::planning::DistanceApproachInterface.

◆ eval_grad_f_hand()

bool apollo::planning::DistanceApproachIPOPTCUDAInterface::eval_grad_f_hand ( int  n,
const double *  x,
bool  new_x,
double *  grad_f 
)

◆ eval_h()

bool apollo::planning::DistanceApproachIPOPTCUDAInterface::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 
)
overridevirtual

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)

Implements apollo::planning::DistanceApproachInterface.

◆ eval_jac_g()

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

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

Implements apollo::planning::DistanceApproachInterface.

◆ eval_jac_g_par()

bool apollo::planning::DistanceApproachIPOPTCUDAInterface::eval_jac_g_par ( int  n,
const double *  x,
bool  new_x,
int  m,
int  nele_jac,
int *  iRow,
int *  jCol,
double *  values 
)

◆ eval_jac_g_ser()

bool apollo::planning::DistanceApproachIPOPTCUDAInterface::eval_jac_g_ser ( int  n,
const double *  x,
bool  new_x,
int  m,
int  nele_jac,
int *  iRow,
int *  jCol,
double *  values 
)
virtual

◆ eval_obj()

template<class T >
bool apollo::planning::DistanceApproachIPOPTCUDAInterface::eval_obj ( int  n,
const T *  x,
T *  obj_value 
)

Template to return the objective value

◆ finalize_solution()

void apollo::planning::DistanceApproachIPOPTCUDAInterface::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 
)
overridevirtual

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

Implements apollo::planning::DistanceApproachInterface.

◆ generate_tapes()

void apollo::planning::DistanceApproachIPOPTCUDAInterface::generate_tapes ( int  n,
int  m,
int *  nnz_h_lag 
)

Method to generate the required tapes by ADOL-C

◆ get_bounds_info()

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

Method to return the bounds for my problem

Implements apollo::planning::DistanceApproachInterface.

◆ get_nlp_info()

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

Method to return some info about the nlp

Implements apollo::planning::DistanceApproachInterface.

◆ get_optimization_results()

void apollo::planning::DistanceApproachIPOPTCUDAInterface::get_optimization_results ( Eigen::MatrixXd *  state_result,
Eigen::MatrixXd *  control_result,
Eigen::MatrixXd *  time_result,
Eigen::MatrixXd *  dual_l_result,
Eigen::MatrixXd *  dual_n_result 
) const
virtual

◆ get_starting_point()

bool apollo::planning::DistanceApproachIPOPTCUDAInterface::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 
)
overridevirtual

Method to return the starting point for the algorithm

Implements apollo::planning::DistanceApproachInterface.


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