40 size_t horizon,
double ts,
const Eigen::MatrixXd& ego,
41 const Eigen::MatrixXi& obstacles_edges_num,
const size_t obstacles_num,
42 const Eigen::MatrixXd& obstacles_A,
const Eigen::MatrixXd& obstacles_b,
43 const Eigen::MatrixXd& xWS,
49 Eigen::MatrixXd* n_warm_up,
50 Eigen::MatrixXd* s_warm_up)
const;
54 void assembleP(std::vector<c_float>* P_data, std::vector<c_int>* P_indices,
55 std::vector<c_int>* P_indptr);
58 std::vector<c_int>* A_indices,
59 std::vector<c_int>* A_indptr);
61 void assembleA(
const int r,
const int c,
const std::vector<c_float>& P_data,
62 const std::vector<c_int>& P_indices,
63 const std::vector<c_int>& P_indptr);
66 const Eigen::MatrixXd& n_warm_up);
68 void printMatrix(
const int r,
const int c,
const std::vector<c_float>& P_data,
69 const std::vector<c_int>& P_indices,
70 const std::vector<c_int>& P_indptr);
75 int num_of_variables_;
76 int num_of_constraints_;
80 int lambda_horizon_ = 0;
82 int slack_horizon_ = 0;
85 Eigen::MatrixXd l_warm_up_;
86 Eigen::MatrixXd n_warm_up_;
87 Eigen::MatrixXd slacks_;
92 std::vector<double> g_;
94 Eigen::MatrixXi obstacles_edges_num_;
96 int obstacles_edges_sum_;
98 double min_safety_distance_;
101 int l_start_index_ = 0;
104 int n_start_index_ = 0;
107 int s_start_index_ = 0;
110 Eigen::MatrixXd obstacles_A_;
113 Eigen::MatrixXd obstacles_b_;
116 Eigen::MatrixXd xWS_;
119 Eigen::MatrixXf constraint_A_;
126 size_t horizon,
double ts,
const Eigen::MatrixXd& ego,
127 const Eigen::MatrixXi& obstacles_edges_num,
const size_t obstacles_num,
128 const Eigen::MatrixXd& obstacles_A,
const Eigen::MatrixXd& obstacles_b,
129 const Eigen::MatrixXd& xWS,
DualVariableWarmStartSlackOSQPInterface(size_t horizon, double ts, const Eigen::MatrixXd &ego, const Eigen::MatrixXi &obstacles_edges_num, const size_t obstacles_num, const Eigen::MatrixXd &obstacles_A, const Eigen::MatrixXd &obstacles_b, const Eigen::MatrixXd &xWS, const DualVariableWarmStartConfig &dual_variable_warm_start_config)