25#include <adolc/adolc.h>
26#include <adolc/adolc_openmp.h>
27#include <adolc/adolc_sparse.h>
28#include <adolc/adouble.h>
29#include <coin/IpTNLP.hpp>
30#include <coin/IpTypes.hpp>
34#include "modules/common_msgs/config_msgs/vehicle_config.pb.h"
35#include "modules/planning/planning_open_space/proto/planner_open_space_config.pb.h"
62 IndexStyleEnum& index_style)
66 virtual bool get_bounds_info(
int n,
double* x_l,
double* x_u,
int m,
double* g_l,
double* g_u) = 0;
90 virtual bool eval_grad_f(
int n,
const double* x,
bool new_x,
double* grad_f) = 0;
93 virtual bool eval_g(
int n,
const double* x,
bool new_x,
int m,
double* g) = 0;
96 virtual bool check_g(
int n,
const double* x,
int m,
const double* g) = 0;
103 eval_jac_g(
int n,
const double* x,
bool new_x,
int m,
int nele_jac,
int* iRow,
int* jCol,
double* values)
107 eval_jac_g_ser(
int n,
const double* x,
bool new_x,
int m,
int nele_jac,
int* iRow,
int* jCol,
double* values)
121 const double* lambda,
133 Ipopt::SolverReturn status,
140 const double* lambda,
142 const Ipopt::IpoptData* ip_data,
143 Ipopt::IpoptCalculatedQuantities* ip_cq)
147 Eigen::MatrixXd* state_result,
148 Eigen::MatrixXd* control_result,
149 Eigen::MatrixXd* time_result,
150 Eigen::MatrixXd* dual_l_result,
151 Eigen::MatrixXd* dual_n_result)
const
virtual bool eval_grad_f(int n, const double *x, bool new_x, double *grad_f)=0
Method to return the gradient of the objective
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
Method to return: 1) The structure of the jacobian (if "values" is nullptr) 2) The values of the jaco...
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
Method to return: 1) The structure of the hessian of the lagrangian (if "values" is nullptr) 2) The v...
virtual bool check_g(int n, const double *x, int m, const double *g)=0
Check unfeasible constraints for further study
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
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
Method to return the starting point for the algorithm
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 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
This method is called when the algorithm is complete so the TNLP can store/write the solution
virtual bool get_bounds_info(int n, double *x_l, double *x_u, int m, double *g_l, double *g_u)=0
Method to return the bounds for my problem
virtual bool eval_f(int n, const double *x, bool new_x, double &obj_value)=0
Method to return the objective value
virtual bool eval_g(int n, const double *x, bool new_x, int m, double *g)=0
Method to return the constraint residuals
virtual bool get_nlp_info(int &n, int &m, int &nnz_jac_g, int &nnz_h_lag, IndexStyleEnum &index_style)=0
Method to return some info about the nlp
virtual ~DistanceApproachInterface()=default
Planning module main class.
Math-related util functions.