23 #include <adolc/adolc.h> 24 #include <adolc/adolc_openmp.h> 25 #include <adolc/adolc_sparse.h> 26 #include <adolc/adouble.h> 29 #include <coin/IpTNLP.hpp> 30 #include <coin/IpTypes.hpp> 32 #include "Eigen/Dense" 35 #include "modules/common/configs/proto/vehicle_config.pb.h" 40 #include "modules/planning/proto/planner_open_space_config.pb.h" 55 virtual bool get_nlp_info(
int& n,
int& m,
int& nnz_jac_g,
57 IndexStyleEnum& index_style) = 0;
61 double* g_l,
double* g_u) = 0;
65 double* z_L,
double* z_U,
int m,
66 bool init_lambda,
double* lambda) = 0;
69 virtual bool eval_f(
int n,
const double* x,
bool new_x,
70 double& obj_value) = 0;
73 virtual bool eval_grad_f(
int n,
const double* x,
bool new_x,
77 virtual bool eval_g(
int n,
const double* x,
bool new_x,
int m,
double* g) = 0;
80 virtual bool check_g(
int n,
const double* x,
int m,
const double* g) = 0;
86 virtual bool eval_jac_g(
int n,
const double* x,
bool new_x,
int m,
87 int nele_jac,
int* iRow,
int* jCol,
90 virtual bool eval_jac_g_ser(
int n,
const double* x,
bool new_x,
int m,
91 int nele_jac,
int* iRow,
int* jCol,
99 virtual bool eval_h(
int n,
const double* x,
bool new_x,
double obj_factor,
100 int m,
const double* lambda,
bool new_lambda,
101 int nele_hess,
int* iRow,
int* jCol,
double* values) = 0;
107 const double* x,
const double* z_L,
108 const double* z_U,
int m,
const double* g,
109 const double* lambda,
double obj_value,
110 const Ipopt::IpoptData* ip_data,
111 Ipopt::IpoptCalculatedQuantities* ip_cq) = 0;
114 Eigen::MatrixXd* state_result, Eigen::MatrixXd* control_result,
115 Eigen::MatrixXd* time_result, Eigen::MatrixXd* dual_l_result,
116 Eigen::MatrixXd* dual_n_result)
const = 0;
virtual bool check_g(int n, const double *x, int m, const double *g)=0
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
virtual 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)=0
virtual bool get_bounds_info(int n, double *x_l, double *x_u, int m, double *g_l, double *g_u)=0
virtual bool eval_jac_g_ser(int n, const double *x, bool new_x, int m, int nele_jac, int *iRow, int *jCol, double *values)=0
Planning module main class. It processes GPS and IMU as input, to generate planning info...
virtual 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)=0
Definition: distance_approach_interface.h:50
virtual 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)=0
virtual ~DistanceApproachInterface()=default
virtual 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 =0
virtual bool get_nlp_info(int &n, int &m, int &nnz_jac_g, int &nnz_h_lag, IndexStyleEnum &index_style)=0
Math-related util functions.
virtual bool eval_f(int n, const double *x, bool new_x, double &obj_value)=0
virtual bool eval_g(int n, const double *x, bool new_x, int m, double *g)=0
virtual bool eval_jac_g(int n, const double *x, bool new_x, int m, int nele_jac, int *iRow, int *jCol, double *values)=0
virtual bool eval_grad_f(int n, const double *x, bool new_x, double *grad_f)=0