Apollo
6.0
Open source self driving car software
|
#include <distance_approach_ipopt_cuda_interface.h>
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 |
![]() | |
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) |
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 | ||
) |
|
virtualdefault |
|
virtual |
Check unfeasible constraints for further study
Implements apollo::planning::DistanceApproachInterface.
bool apollo::planning::DistanceApproachIPOPTCUDAInterface::eval_constraints | ( | int | n, |
const T * | x, | ||
int | m, | ||
T * | g | ||
) |
Template to compute constraints
|
overridevirtual |
Method to return the objective value
Implements apollo::planning::DistanceApproachInterface.
|
overridevirtual |
Method to return the constraint residuals
Implements apollo::planning::DistanceApproachInterface.
|
overridevirtual |
Method to return the gradient of the objective
Implements apollo::planning::DistanceApproachInterface.
bool apollo::planning::DistanceApproachIPOPTCUDAInterface::eval_grad_f_hand | ( | int | n, |
const double * | x, | ||
bool | new_x, | ||
double * | grad_f | ||
) |
|
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.
|
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.
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 | ||
) |
|
virtual |
Implements apollo::planning::DistanceApproachInterface.
bool apollo::planning::DistanceApproachIPOPTCUDAInterface::eval_obj | ( | int | n, |
const T * | x, | ||
T * | obj_value | ||
) |
Template to return the objective value
|
overridevirtual |
This method is called when the algorithm is complete so the TNLP can store/write the solution
Implements apollo::planning::DistanceApproachInterface.
void apollo::planning::DistanceApproachIPOPTCUDAInterface::generate_tapes | ( | int | n, |
int | m, | ||
int * | nnz_h_lag | ||
) |
Method to generate the required tapes by ADOL-C
|
overridevirtual |
Method to return the bounds for my problem
Implements apollo::planning::DistanceApproachInterface.
|
overridevirtual |
Method to return some info about the nlp
Implements apollo::planning::DistanceApproachInterface.
|
virtual |
Implements apollo::planning::DistanceApproachInterface.
|
overridevirtual |
Method to return the starting point for the algorithm
Implements apollo::planning::DistanceApproachInterface.