Compare commits

...

2 Commits

Author SHA1 Message Date
StarPilot Build Bot 44e5d0cfb9 build 2026-05-24 04:33:43 +00:00
firestarsdog 0cddc6308a Test harness box software workaround 2026-05-23 23:59:06 -04:00
39 changed files with 1356 additions and 1347 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1,2 +1,2 @@
extern const uint8_t gitversion[19]; extern const uint8_t gitversion[19];
const uint8_t gitversion[19] = "DEV-da88d20b-DEBUG"; const uint8_t gitversion[19] = "DEV-0cddc630-DEBUG";
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
DEV-da88d20b-DEBUG DEV-0cddc630-DEBUG
+342 -342
View File
@@ -45,326 +45,326 @@ const static double MAHA_THRESH_31 = 3.8414588206941227;
* * * *
* This file is part of 'ekf' * * This file is part of 'ekf' *
******************************************************************************/ ******************************************************************************/
void err_fun(double *nom_x, double *delta_x, double *out_3568804456057098654) { void err_fun(double *nom_x, double *delta_x, double *out_8308214496735031777) {
out_3568804456057098654[0] = delta_x[0] + nom_x[0]; out_8308214496735031777[0] = delta_x[0] + nom_x[0];
out_3568804456057098654[1] = delta_x[1] + nom_x[1]; out_8308214496735031777[1] = delta_x[1] + nom_x[1];
out_3568804456057098654[2] = delta_x[2] + nom_x[2]; out_8308214496735031777[2] = delta_x[2] + nom_x[2];
out_3568804456057098654[3] = delta_x[3] + nom_x[3]; out_8308214496735031777[3] = delta_x[3] + nom_x[3];
out_3568804456057098654[4] = delta_x[4] + nom_x[4]; out_8308214496735031777[4] = delta_x[4] + nom_x[4];
out_3568804456057098654[5] = delta_x[5] + nom_x[5]; out_8308214496735031777[5] = delta_x[5] + nom_x[5];
out_3568804456057098654[6] = delta_x[6] + nom_x[6]; out_8308214496735031777[6] = delta_x[6] + nom_x[6];
out_3568804456057098654[7] = delta_x[7] + nom_x[7]; out_8308214496735031777[7] = delta_x[7] + nom_x[7];
out_3568804456057098654[8] = delta_x[8] + nom_x[8]; out_8308214496735031777[8] = delta_x[8] + nom_x[8];
} }
void inv_err_fun(double *nom_x, double *true_x, double *out_1840397183166108031) { void inv_err_fun(double *nom_x, double *true_x, double *out_8999766425853420329) {
out_1840397183166108031[0] = -nom_x[0] + true_x[0]; out_8999766425853420329[0] = -nom_x[0] + true_x[0];
out_1840397183166108031[1] = -nom_x[1] + true_x[1]; out_8999766425853420329[1] = -nom_x[1] + true_x[1];
out_1840397183166108031[2] = -nom_x[2] + true_x[2]; out_8999766425853420329[2] = -nom_x[2] + true_x[2];
out_1840397183166108031[3] = -nom_x[3] + true_x[3]; out_8999766425853420329[3] = -nom_x[3] + true_x[3];
out_1840397183166108031[4] = -nom_x[4] + true_x[4]; out_8999766425853420329[4] = -nom_x[4] + true_x[4];
out_1840397183166108031[5] = -nom_x[5] + true_x[5]; out_8999766425853420329[5] = -nom_x[5] + true_x[5];
out_1840397183166108031[6] = -nom_x[6] + true_x[6]; out_8999766425853420329[6] = -nom_x[6] + true_x[6];
out_1840397183166108031[7] = -nom_x[7] + true_x[7]; out_8999766425853420329[7] = -nom_x[7] + true_x[7];
out_1840397183166108031[8] = -nom_x[8] + true_x[8]; out_8999766425853420329[8] = -nom_x[8] + true_x[8];
} }
void H_mod_fun(double *state, double *out_8921258435077713963) { void H_mod_fun(double *state, double *out_8671923853756600219) {
out_8921258435077713963[0] = 1.0; out_8671923853756600219[0] = 1.0;
out_8921258435077713963[1] = 0.0; out_8671923853756600219[1] = 0.0;
out_8921258435077713963[2] = 0.0; out_8671923853756600219[2] = 0.0;
out_8921258435077713963[3] = 0.0; out_8671923853756600219[3] = 0.0;
out_8921258435077713963[4] = 0.0; out_8671923853756600219[4] = 0.0;
out_8921258435077713963[5] = 0.0; out_8671923853756600219[5] = 0.0;
out_8921258435077713963[6] = 0.0; out_8671923853756600219[6] = 0.0;
out_8921258435077713963[7] = 0.0; out_8671923853756600219[7] = 0.0;
out_8921258435077713963[8] = 0.0; out_8671923853756600219[8] = 0.0;
out_8921258435077713963[9] = 0.0; out_8671923853756600219[9] = 0.0;
out_8921258435077713963[10] = 1.0; out_8671923853756600219[10] = 1.0;
out_8921258435077713963[11] = 0.0; out_8671923853756600219[11] = 0.0;
out_8921258435077713963[12] = 0.0; out_8671923853756600219[12] = 0.0;
out_8921258435077713963[13] = 0.0; out_8671923853756600219[13] = 0.0;
out_8921258435077713963[14] = 0.0; out_8671923853756600219[14] = 0.0;
out_8921258435077713963[15] = 0.0; out_8671923853756600219[15] = 0.0;
out_8921258435077713963[16] = 0.0; out_8671923853756600219[16] = 0.0;
out_8921258435077713963[17] = 0.0; out_8671923853756600219[17] = 0.0;
out_8921258435077713963[18] = 0.0; out_8671923853756600219[18] = 0.0;
out_8921258435077713963[19] = 0.0; out_8671923853756600219[19] = 0.0;
out_8921258435077713963[20] = 1.0; out_8671923853756600219[20] = 1.0;
out_8921258435077713963[21] = 0.0; out_8671923853756600219[21] = 0.0;
out_8921258435077713963[22] = 0.0; out_8671923853756600219[22] = 0.0;
out_8921258435077713963[23] = 0.0; out_8671923853756600219[23] = 0.0;
out_8921258435077713963[24] = 0.0; out_8671923853756600219[24] = 0.0;
out_8921258435077713963[25] = 0.0; out_8671923853756600219[25] = 0.0;
out_8921258435077713963[26] = 0.0; out_8671923853756600219[26] = 0.0;
out_8921258435077713963[27] = 0.0; out_8671923853756600219[27] = 0.0;
out_8921258435077713963[28] = 0.0; out_8671923853756600219[28] = 0.0;
out_8921258435077713963[29] = 0.0; out_8671923853756600219[29] = 0.0;
out_8921258435077713963[30] = 1.0; out_8671923853756600219[30] = 1.0;
out_8921258435077713963[31] = 0.0; out_8671923853756600219[31] = 0.0;
out_8921258435077713963[32] = 0.0; out_8671923853756600219[32] = 0.0;
out_8921258435077713963[33] = 0.0; out_8671923853756600219[33] = 0.0;
out_8921258435077713963[34] = 0.0; out_8671923853756600219[34] = 0.0;
out_8921258435077713963[35] = 0.0; out_8671923853756600219[35] = 0.0;
out_8921258435077713963[36] = 0.0; out_8671923853756600219[36] = 0.0;
out_8921258435077713963[37] = 0.0; out_8671923853756600219[37] = 0.0;
out_8921258435077713963[38] = 0.0; out_8671923853756600219[38] = 0.0;
out_8921258435077713963[39] = 0.0; out_8671923853756600219[39] = 0.0;
out_8921258435077713963[40] = 1.0; out_8671923853756600219[40] = 1.0;
out_8921258435077713963[41] = 0.0; out_8671923853756600219[41] = 0.0;
out_8921258435077713963[42] = 0.0; out_8671923853756600219[42] = 0.0;
out_8921258435077713963[43] = 0.0; out_8671923853756600219[43] = 0.0;
out_8921258435077713963[44] = 0.0; out_8671923853756600219[44] = 0.0;
out_8921258435077713963[45] = 0.0; out_8671923853756600219[45] = 0.0;
out_8921258435077713963[46] = 0.0; out_8671923853756600219[46] = 0.0;
out_8921258435077713963[47] = 0.0; out_8671923853756600219[47] = 0.0;
out_8921258435077713963[48] = 0.0; out_8671923853756600219[48] = 0.0;
out_8921258435077713963[49] = 0.0; out_8671923853756600219[49] = 0.0;
out_8921258435077713963[50] = 1.0; out_8671923853756600219[50] = 1.0;
out_8921258435077713963[51] = 0.0; out_8671923853756600219[51] = 0.0;
out_8921258435077713963[52] = 0.0; out_8671923853756600219[52] = 0.0;
out_8921258435077713963[53] = 0.0; out_8671923853756600219[53] = 0.0;
out_8921258435077713963[54] = 0.0; out_8671923853756600219[54] = 0.0;
out_8921258435077713963[55] = 0.0; out_8671923853756600219[55] = 0.0;
out_8921258435077713963[56] = 0.0; out_8671923853756600219[56] = 0.0;
out_8921258435077713963[57] = 0.0; out_8671923853756600219[57] = 0.0;
out_8921258435077713963[58] = 0.0; out_8671923853756600219[58] = 0.0;
out_8921258435077713963[59] = 0.0; out_8671923853756600219[59] = 0.0;
out_8921258435077713963[60] = 1.0; out_8671923853756600219[60] = 1.0;
out_8921258435077713963[61] = 0.0; out_8671923853756600219[61] = 0.0;
out_8921258435077713963[62] = 0.0; out_8671923853756600219[62] = 0.0;
out_8921258435077713963[63] = 0.0; out_8671923853756600219[63] = 0.0;
out_8921258435077713963[64] = 0.0; out_8671923853756600219[64] = 0.0;
out_8921258435077713963[65] = 0.0; out_8671923853756600219[65] = 0.0;
out_8921258435077713963[66] = 0.0; out_8671923853756600219[66] = 0.0;
out_8921258435077713963[67] = 0.0; out_8671923853756600219[67] = 0.0;
out_8921258435077713963[68] = 0.0; out_8671923853756600219[68] = 0.0;
out_8921258435077713963[69] = 0.0; out_8671923853756600219[69] = 0.0;
out_8921258435077713963[70] = 1.0; out_8671923853756600219[70] = 1.0;
out_8921258435077713963[71] = 0.0; out_8671923853756600219[71] = 0.0;
out_8921258435077713963[72] = 0.0; out_8671923853756600219[72] = 0.0;
out_8921258435077713963[73] = 0.0; out_8671923853756600219[73] = 0.0;
out_8921258435077713963[74] = 0.0; out_8671923853756600219[74] = 0.0;
out_8921258435077713963[75] = 0.0; out_8671923853756600219[75] = 0.0;
out_8921258435077713963[76] = 0.0; out_8671923853756600219[76] = 0.0;
out_8921258435077713963[77] = 0.0; out_8671923853756600219[77] = 0.0;
out_8921258435077713963[78] = 0.0; out_8671923853756600219[78] = 0.0;
out_8921258435077713963[79] = 0.0; out_8671923853756600219[79] = 0.0;
out_8921258435077713963[80] = 1.0; out_8671923853756600219[80] = 1.0;
} }
void f_fun(double *state, double dt, double *out_3277027219914288776) { void f_fun(double *state, double dt, double *out_3762356930851513593) {
out_3277027219914288776[0] = state[0]; out_3762356930851513593[0] = state[0];
out_3277027219914288776[1] = state[1]; out_3762356930851513593[1] = state[1];
out_3277027219914288776[2] = state[2]; out_3762356930851513593[2] = state[2];
out_3277027219914288776[3] = state[3]; out_3762356930851513593[3] = state[3];
out_3277027219914288776[4] = state[4]; out_3762356930851513593[4] = state[4];
out_3277027219914288776[5] = dt*((-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]))*state[6] - 9.8100000000000005*state[8] + stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*state[1]) + (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*state[4])) + state[5]; out_3762356930851513593[5] = dt*((-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]))*state[6] - 9.8100000000000005*state[8] + stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*state[1]) + (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*state[4])) + state[5];
out_3277027219914288776[6] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*state[4])) + state[6]; out_3762356930851513593[6] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*state[4])) + state[6];
out_3277027219914288776[7] = state[7]; out_3762356930851513593[7] = state[7];
out_3277027219914288776[8] = state[8]; out_3762356930851513593[8] = state[8];
} }
void F_fun(double *state, double dt, double *out_370955893725369602) { void F_fun(double *state, double dt, double *out_110226856445903204) {
out_370955893725369602[0] = 1; out_110226856445903204[0] = 1;
out_370955893725369602[1] = 0; out_110226856445903204[1] = 0;
out_370955893725369602[2] = 0; out_110226856445903204[2] = 0;
out_370955893725369602[3] = 0; out_110226856445903204[3] = 0;
out_370955893725369602[4] = 0; out_110226856445903204[4] = 0;
out_370955893725369602[5] = 0; out_110226856445903204[5] = 0;
out_370955893725369602[6] = 0; out_110226856445903204[6] = 0;
out_370955893725369602[7] = 0; out_110226856445903204[7] = 0;
out_370955893725369602[8] = 0; out_110226856445903204[8] = 0;
out_370955893725369602[9] = 0; out_110226856445903204[9] = 0;
out_370955893725369602[10] = 1; out_110226856445903204[10] = 1;
out_370955893725369602[11] = 0; out_110226856445903204[11] = 0;
out_370955893725369602[12] = 0; out_110226856445903204[12] = 0;
out_370955893725369602[13] = 0; out_110226856445903204[13] = 0;
out_370955893725369602[14] = 0; out_110226856445903204[14] = 0;
out_370955893725369602[15] = 0; out_110226856445903204[15] = 0;
out_370955893725369602[16] = 0; out_110226856445903204[16] = 0;
out_370955893725369602[17] = 0; out_110226856445903204[17] = 0;
out_370955893725369602[18] = 0; out_110226856445903204[18] = 0;
out_370955893725369602[19] = 0; out_110226856445903204[19] = 0;
out_370955893725369602[20] = 1; out_110226856445903204[20] = 1;
out_370955893725369602[21] = 0; out_110226856445903204[21] = 0;
out_370955893725369602[22] = 0; out_110226856445903204[22] = 0;
out_370955893725369602[23] = 0; out_110226856445903204[23] = 0;
out_370955893725369602[24] = 0; out_110226856445903204[24] = 0;
out_370955893725369602[25] = 0; out_110226856445903204[25] = 0;
out_370955893725369602[26] = 0; out_110226856445903204[26] = 0;
out_370955893725369602[27] = 0; out_110226856445903204[27] = 0;
out_370955893725369602[28] = 0; out_110226856445903204[28] = 0;
out_370955893725369602[29] = 0; out_110226856445903204[29] = 0;
out_370955893725369602[30] = 1; out_110226856445903204[30] = 1;
out_370955893725369602[31] = 0; out_110226856445903204[31] = 0;
out_370955893725369602[32] = 0; out_110226856445903204[32] = 0;
out_370955893725369602[33] = 0; out_110226856445903204[33] = 0;
out_370955893725369602[34] = 0; out_110226856445903204[34] = 0;
out_370955893725369602[35] = 0; out_110226856445903204[35] = 0;
out_370955893725369602[36] = 0; out_110226856445903204[36] = 0;
out_370955893725369602[37] = 0; out_110226856445903204[37] = 0;
out_370955893725369602[38] = 0; out_110226856445903204[38] = 0;
out_370955893725369602[39] = 0; out_110226856445903204[39] = 0;
out_370955893725369602[40] = 1; out_110226856445903204[40] = 1;
out_370955893725369602[41] = 0; out_110226856445903204[41] = 0;
out_370955893725369602[42] = 0; out_110226856445903204[42] = 0;
out_370955893725369602[43] = 0; out_110226856445903204[43] = 0;
out_370955893725369602[44] = 0; out_110226856445903204[44] = 0;
out_370955893725369602[45] = dt*(stiffness_front*(-state[2] - state[3] + state[7])/(mass*state[1]) + (-stiffness_front - stiffness_rear)*state[5]/(mass*state[4]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[6]/(mass*state[4])); out_110226856445903204[45] = dt*(stiffness_front*(-state[2] - state[3] + state[7])/(mass*state[1]) + (-stiffness_front - stiffness_rear)*state[5]/(mass*state[4]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[6]/(mass*state[4]));
out_370955893725369602[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2)); out_110226856445903204[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2));
out_370955893725369602[47] = -dt*stiffness_front*state[0]/(mass*state[1]); out_110226856445903204[47] = -dt*stiffness_front*state[0]/(mass*state[1]);
out_370955893725369602[48] = -dt*stiffness_front*state[0]/(mass*state[1]); out_110226856445903204[48] = -dt*stiffness_front*state[0]/(mass*state[1]);
out_370955893725369602[49] = dt*((-1 - (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*pow(state[4], 2)))*state[6] - (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*pow(state[4], 2))); out_110226856445903204[49] = dt*((-1 - (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*pow(state[4], 2)))*state[6] - (-stiffness_front*state[0] - stiffness_rear*state[0])*state[5]/(mass*pow(state[4], 2)));
out_370955893725369602[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1; out_110226856445903204[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1;
out_370955893725369602[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4])); out_110226856445903204[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]));
out_370955893725369602[52] = dt*stiffness_front*state[0]/(mass*state[1]); out_110226856445903204[52] = dt*stiffness_front*state[0]/(mass*state[1]);
out_370955893725369602[53] = -9.8100000000000005*dt; out_110226856445903204[53] = -9.8100000000000005*dt;
out_370955893725369602[54] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front - pow(center_to_rear, 2)*stiffness_rear)*state[6]/(rotational_inertia*state[4])); out_110226856445903204[54] = dt*(center_to_front*stiffness_front*(-state[2] - state[3] + state[7])/(rotational_inertia*state[1]) + (-center_to_front*stiffness_front + center_to_rear*stiffness_rear)*state[5]/(rotational_inertia*state[4]) + (-pow(center_to_front, 2)*stiffness_front - pow(center_to_rear, 2)*stiffness_rear)*state[6]/(rotational_inertia*state[4]));
out_370955893725369602[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2)); out_110226856445903204[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2));
out_370955893725369602[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); out_110226856445903204[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
out_370955893725369602[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); out_110226856445903204[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
out_370955893725369602[58] = dt*(-(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*pow(state[4], 2)) - (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*pow(state[4], 2))); out_110226856445903204[58] = dt*(-(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])*state[5]/(rotational_inertia*pow(state[4], 2)) - (-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])*state[6]/(rotational_inertia*pow(state[4], 2)));
out_370955893725369602[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]); out_110226856445903204[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]);
out_370955893725369602[60] = dt*(-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])/(rotational_inertia*state[4]) + 1; out_110226856445903204[60] = dt*(-pow(center_to_front, 2)*stiffness_front*state[0] - pow(center_to_rear, 2)*stiffness_rear*state[0])/(rotational_inertia*state[4]) + 1;
out_370955893725369602[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]); out_110226856445903204[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
out_370955893725369602[62] = 0; out_110226856445903204[62] = 0;
out_370955893725369602[63] = 0; out_110226856445903204[63] = 0;
out_370955893725369602[64] = 0; out_110226856445903204[64] = 0;
out_370955893725369602[65] = 0; out_110226856445903204[65] = 0;
out_370955893725369602[66] = 0; out_110226856445903204[66] = 0;
out_370955893725369602[67] = 0; out_110226856445903204[67] = 0;
out_370955893725369602[68] = 0; out_110226856445903204[68] = 0;
out_370955893725369602[69] = 0; out_110226856445903204[69] = 0;
out_370955893725369602[70] = 1; out_110226856445903204[70] = 1;
out_370955893725369602[71] = 0; out_110226856445903204[71] = 0;
out_370955893725369602[72] = 0; out_110226856445903204[72] = 0;
out_370955893725369602[73] = 0; out_110226856445903204[73] = 0;
out_370955893725369602[74] = 0; out_110226856445903204[74] = 0;
out_370955893725369602[75] = 0; out_110226856445903204[75] = 0;
out_370955893725369602[76] = 0; out_110226856445903204[76] = 0;
out_370955893725369602[77] = 0; out_110226856445903204[77] = 0;
out_370955893725369602[78] = 0; out_110226856445903204[78] = 0;
out_370955893725369602[79] = 0; out_110226856445903204[79] = 0;
out_370955893725369602[80] = 1; out_110226856445903204[80] = 1;
} }
void h_25(double *state, double *unused, double *out_8154090013633331696) { void h_25(double *state, double *unused, double *out_5646094358831955306) {
out_8154090013633331696[0] = state[6]; out_5646094358831955306[0] = state[6];
} }
void H_25(double *state, double *unused, double *out_8415923992877417251) { void H_25(double *state, double *unused, double *out_4871128394768286557) {
out_8415923992877417251[0] = 0; out_4871128394768286557[0] = 0;
out_8415923992877417251[1] = 0; out_4871128394768286557[1] = 0;
out_8415923992877417251[2] = 0; out_4871128394768286557[2] = 0;
out_8415923992877417251[3] = 0; out_4871128394768286557[3] = 0;
out_8415923992877417251[4] = 0; out_4871128394768286557[4] = 0;
out_8415923992877417251[5] = 0; out_4871128394768286557[5] = 0;
out_8415923992877417251[6] = 1; out_4871128394768286557[6] = 1;
out_8415923992877417251[7] = 0; out_4871128394768286557[7] = 0;
out_8415923992877417251[8] = 0; out_4871128394768286557[8] = 0;
} }
void h_24(double *state, double *unused, double *out_7351280482288278166) { void h_24(double *state, double *unused, double *out_7079061790558552168) {
out_7351280482288278166[0] = state[4]; out_7079061790558552168[0] = state[4];
out_7351280482288278166[1] = state[5]; out_7079061790558552168[1] = state[5];
} }
void H_24(double *state, double *unused, double *out_8301956961654820296) { void H_24(double *state, double *unused, double *out_7374582999090103633) {
out_8301956961654820296[0] = 0; out_7374582999090103633[0] = 0;
out_8301956961654820296[1] = 0; out_7374582999090103633[1] = 0;
out_8301956961654820296[2] = 0; out_7374582999090103633[2] = 0;
out_8301956961654820296[3] = 0; out_7374582999090103633[3] = 0;
out_8301956961654820296[4] = 1; out_7374582999090103633[4] = 1;
out_8301956961654820296[5] = 0; out_7374582999090103633[5] = 0;
out_8301956961654820296[6] = 0; out_7374582999090103633[6] = 0;
out_8301956961654820296[7] = 0; out_7374582999090103633[7] = 0;
out_8301956961654820296[8] = 0; out_7374582999090103633[8] = 0;
out_8301956961654820296[9] = 0; out_7374582999090103633[9] = 0;
out_8301956961654820296[10] = 0; out_7374582999090103633[10] = 0;
out_8301956961654820296[11] = 0; out_7374582999090103633[11] = 0;
out_8301956961654820296[12] = 0; out_7374582999090103633[12] = 0;
out_8301956961654820296[13] = 0; out_7374582999090103633[13] = 0;
out_8301956961654820296[14] = 1; out_7374582999090103633[14] = 1;
out_8301956961654820296[15] = 0; out_7374582999090103633[15] = 0;
out_8301956961654820296[16] = 0; out_7374582999090103633[16] = 0;
out_8301956961654820296[17] = 0; out_7374582999090103633[17] = 0;
} }
void h_30(double *state, double *unused, double *out_4292406537204830044) { void h_30(double *state, double *unused, double *out_2117170897988717135) {
out_4292406537204830044[0] = state[4]; out_2117170897988717135[0] = state[4];
} }
void H_30(double *state, double *unused, double *out_1499233651385800496) { void H_30(double *state, double *unused, double *out_2352795436261037930) {
out_1499233651385800496[0] = 0; out_2352795436261037930[0] = 0;
out_1499233651385800496[1] = 0; out_2352795436261037930[1] = 0;
out_1499233651385800496[2] = 0; out_2352795436261037930[2] = 0;
out_1499233651385800496[3] = 0; out_2352795436261037930[3] = 0;
out_1499233651385800496[4] = 1; out_2352795436261037930[4] = 1;
out_1499233651385800496[5] = 0; out_2352795436261037930[5] = 0;
out_1499233651385800496[6] = 0; out_2352795436261037930[6] = 0;
out_1499233651385800496[7] = 0; out_2352795436261037930[7] = 0;
out_1499233651385800496[8] = 0; out_2352795436261037930[8] = 0;
} }
void h_26(double *state, double *unused, double *out_7000316085453517212) { void h_26(double *state, double *unused, double *out_7183588416707059858) {
out_7000316085453517212[0] = state[7]; out_7183588416707059858[0] = state[7];
} }
void H_26(double *state, double *unused, double *out_6289316761958078141) { void H_26(double *state, double *unused, double *out_8612631713642342781) {
out_6289316761958078141[0] = 0; out_8612631713642342781[0] = 0;
out_6289316761958078141[1] = 0; out_8612631713642342781[1] = 0;
out_6289316761958078141[2] = 0; out_8612631713642342781[2] = 0;
out_6289316761958078141[3] = 0; out_8612631713642342781[3] = 0;
out_6289316761958078141[4] = 0; out_8612631713642342781[4] = 0;
out_6289316761958078141[5] = 0; out_8612631713642342781[5] = 0;
out_6289316761958078141[6] = 0; out_8612631713642342781[6] = 0;
out_6289316761958078141[7] = 1; out_8612631713642342781[7] = 1;
out_6289316761958078141[8] = 0; out_8612631713642342781[8] = 0;
} }
void h_27(double *state, double *unused, double *out_3964284714812858416) { void h_27(double *state, double *unused, double *out_3041689038023257655) {
out_3964284714812858416[0] = state[3]; out_3041689038023257655[0] = state[3];
} }
void H_27(double *state, double *unused, double *out_3673996963186225407) { void H_27(double *state, double *unused, double *out_129201365077094713) {
out_3673996963186225407[0] = 0; out_129201365077094713[0] = 0;
out_3673996963186225407[1] = 0; out_129201365077094713[1] = 0;
out_3673996963186225407[2] = 0; out_129201365077094713[2] = 0;
out_3673996963186225407[3] = 1; out_129201365077094713[3] = 1;
out_3673996963186225407[4] = 0; out_129201365077094713[4] = 0;
out_3673996963186225407[5] = 0; out_129201365077094713[5] = 0;
out_3673996963186225407[6] = 0; out_129201365077094713[6] = 0;
out_3673996963186225407[7] = 0; out_129201365077094713[7] = 0;
out_3673996963186225407[8] = 0; out_129201365077094713[8] = 0;
} }
void h_29(double *state, double *unused, double *out_3689090652528352527) { void h_29(double *state, double *unused, double *out_2884502369672128510) {
out_3689090652528352527[0] = state[1]; out_2884502369672128510[0] = state[1];
} }
void H_29(double *state, double *unused, double *out_989002307071408312) { void H_29(double *state, double *unused, double *out_1842564091946645746) {
out_989002307071408312[0] = 0; out_1842564091946645746[0] = 0;
out_989002307071408312[1] = 1; out_1842564091946645746[1] = 1;
out_989002307071408312[2] = 0; out_1842564091946645746[2] = 0;
out_989002307071408312[3] = 0; out_1842564091946645746[3] = 0;
out_989002307071408312[4] = 0; out_1842564091946645746[4] = 0;
out_989002307071408312[5] = 0; out_1842564091946645746[5] = 0;
out_989002307071408312[6] = 0; out_1842564091946645746[6] = 0;
out_989002307071408312[7] = 0; out_1842564091946645746[7] = 0;
out_989002307071408312[8] = 0; out_1842564091946645746[8] = 0;
} }
void h_28(double *state, double *unused, double *out_1914000772745856672) { void h_28(double *state, double *unused, double *out_4902986578924970) {
out_1914000772745856672[0] = state[0]; out_4902986578924970[0] = state[0];
} }
void H_28(double *state, double *unused, double *out_6071401324140938886) { void H_28(double *state, double *unused, double *out_6924963109016176320) {
out_6071401324140938886[0] = 1; out_6924963109016176320[0] = 1;
out_6071401324140938886[1] = 0; out_6924963109016176320[1] = 0;
out_6071401324140938886[2] = 0; out_6924963109016176320[2] = 0;
out_6071401324140938886[3] = 0; out_6924963109016176320[3] = 0;
out_6071401324140938886[4] = 0; out_6924963109016176320[4] = 0;
out_6071401324140938886[5] = 0; out_6924963109016176320[5] = 0;
out_6071401324140938886[6] = 0; out_6924963109016176320[6] = 0;
out_6071401324140938886[7] = 0; out_6924963109016176320[7] = 0;
out_6071401324140938886[8] = 0; out_6924963109016176320[8] = 0;
} }
void h_31(double *state, double *unused, double *out_8205050127743358283) { void h_31(double *state, double *unused, double *out_8547812156113883153) {
out_8205050127743358283[0] = state[8]; out_8547812156113883153[0] = state[8];
} }
void H_31(double *state, double *unused, double *out_8385278031000456823) { void H_31(double *state, double *unused, double *out_4840482432891326129) {
out_8385278031000456823[0] = 0; out_4840482432891326129[0] = 0;
out_8385278031000456823[1] = 0; out_4840482432891326129[1] = 0;
out_8385278031000456823[2] = 0; out_4840482432891326129[2] = 0;
out_8385278031000456823[3] = 0; out_4840482432891326129[3] = 0;
out_8385278031000456823[4] = 0; out_4840482432891326129[4] = 0;
out_8385278031000456823[5] = 0; out_4840482432891326129[5] = 0;
out_8385278031000456823[6] = 0; out_4840482432891326129[6] = 0;
out_8385278031000456823[7] = 0; out_4840482432891326129[7] = 0;
out_8385278031000456823[8] = 1; out_4840482432891326129[8] = 1;
} }
#include <eigen3/Eigen/Dense> #include <eigen3/Eigen/Dense>
#include <iostream> #include <iostream>
@@ -518,68 +518,68 @@ void car_update_28(double *in_x, double *in_P, double *in_z, double *in_R, doubl
void car_update_31(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) { void car_update_31(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea) {
update<1, 3, 0>(in_x, in_P, h_31, H_31, NULL, in_z, in_R, in_ea, MAHA_THRESH_31); update<1, 3, 0>(in_x, in_P, h_31, H_31, NULL, in_z, in_R, in_ea, MAHA_THRESH_31);
} }
void car_err_fun(double *nom_x, double *delta_x, double *out_3568804456057098654) { void car_err_fun(double *nom_x, double *delta_x, double *out_8308214496735031777) {
err_fun(nom_x, delta_x, out_3568804456057098654); err_fun(nom_x, delta_x, out_8308214496735031777);
} }
void car_inv_err_fun(double *nom_x, double *true_x, double *out_1840397183166108031) { void car_inv_err_fun(double *nom_x, double *true_x, double *out_8999766425853420329) {
inv_err_fun(nom_x, true_x, out_1840397183166108031); inv_err_fun(nom_x, true_x, out_8999766425853420329);
} }
void car_H_mod_fun(double *state, double *out_8921258435077713963) { void car_H_mod_fun(double *state, double *out_8671923853756600219) {
H_mod_fun(state, out_8921258435077713963); H_mod_fun(state, out_8671923853756600219);
} }
void car_f_fun(double *state, double dt, double *out_3277027219914288776) { void car_f_fun(double *state, double dt, double *out_3762356930851513593) {
f_fun(state, dt, out_3277027219914288776); f_fun(state, dt, out_3762356930851513593);
} }
void car_F_fun(double *state, double dt, double *out_370955893725369602) { void car_F_fun(double *state, double dt, double *out_110226856445903204) {
F_fun(state, dt, out_370955893725369602); F_fun(state, dt, out_110226856445903204);
} }
void car_h_25(double *state, double *unused, double *out_8154090013633331696) { void car_h_25(double *state, double *unused, double *out_5646094358831955306) {
h_25(state, unused, out_8154090013633331696); h_25(state, unused, out_5646094358831955306);
} }
void car_H_25(double *state, double *unused, double *out_8415923992877417251) { void car_H_25(double *state, double *unused, double *out_4871128394768286557) {
H_25(state, unused, out_8415923992877417251); H_25(state, unused, out_4871128394768286557);
} }
void car_h_24(double *state, double *unused, double *out_7351280482288278166) { void car_h_24(double *state, double *unused, double *out_7079061790558552168) {
h_24(state, unused, out_7351280482288278166); h_24(state, unused, out_7079061790558552168);
} }
void car_H_24(double *state, double *unused, double *out_8301956961654820296) { void car_H_24(double *state, double *unused, double *out_7374582999090103633) {
H_24(state, unused, out_8301956961654820296); H_24(state, unused, out_7374582999090103633);
} }
void car_h_30(double *state, double *unused, double *out_4292406537204830044) { void car_h_30(double *state, double *unused, double *out_2117170897988717135) {
h_30(state, unused, out_4292406537204830044); h_30(state, unused, out_2117170897988717135);
} }
void car_H_30(double *state, double *unused, double *out_1499233651385800496) { void car_H_30(double *state, double *unused, double *out_2352795436261037930) {
H_30(state, unused, out_1499233651385800496); H_30(state, unused, out_2352795436261037930);
} }
void car_h_26(double *state, double *unused, double *out_7000316085453517212) { void car_h_26(double *state, double *unused, double *out_7183588416707059858) {
h_26(state, unused, out_7000316085453517212); h_26(state, unused, out_7183588416707059858);
} }
void car_H_26(double *state, double *unused, double *out_6289316761958078141) { void car_H_26(double *state, double *unused, double *out_8612631713642342781) {
H_26(state, unused, out_6289316761958078141); H_26(state, unused, out_8612631713642342781);
} }
void car_h_27(double *state, double *unused, double *out_3964284714812858416) { void car_h_27(double *state, double *unused, double *out_3041689038023257655) {
h_27(state, unused, out_3964284714812858416); h_27(state, unused, out_3041689038023257655);
} }
void car_H_27(double *state, double *unused, double *out_3673996963186225407) { void car_H_27(double *state, double *unused, double *out_129201365077094713) {
H_27(state, unused, out_3673996963186225407); H_27(state, unused, out_129201365077094713);
} }
void car_h_29(double *state, double *unused, double *out_3689090652528352527) { void car_h_29(double *state, double *unused, double *out_2884502369672128510) {
h_29(state, unused, out_3689090652528352527); h_29(state, unused, out_2884502369672128510);
} }
void car_H_29(double *state, double *unused, double *out_989002307071408312) { void car_H_29(double *state, double *unused, double *out_1842564091946645746) {
H_29(state, unused, out_989002307071408312); H_29(state, unused, out_1842564091946645746);
} }
void car_h_28(double *state, double *unused, double *out_1914000772745856672) { void car_h_28(double *state, double *unused, double *out_4902986578924970) {
h_28(state, unused, out_1914000772745856672); h_28(state, unused, out_4902986578924970);
} }
void car_H_28(double *state, double *unused, double *out_6071401324140938886) { void car_H_28(double *state, double *unused, double *out_6924963109016176320) {
H_28(state, unused, out_6071401324140938886); H_28(state, unused, out_6924963109016176320);
} }
void car_h_31(double *state, double *unused, double *out_8205050127743358283) { void car_h_31(double *state, double *unused, double *out_8547812156113883153) {
h_31(state, unused, out_8205050127743358283); h_31(state, unused, out_8547812156113883153);
} }
void car_H_31(double *state, double *unused, double *out_8385278031000456823) { void car_H_31(double *state, double *unused, double *out_4840482432891326129) {
H_31(state, unused, out_8385278031000456823); H_31(state, unused, out_4840482432891326129);
} }
void car_predict(double *in_x, double *in_P, double *in_Q, double dt) { void car_predict(double *in_x, double *in_P, double *in_Q, double dt) {
predict(in_x, in_P, in_Q, dt); predict(in_x, in_P, in_Q, dt);
+21 -21
View File
@@ -9,27 +9,27 @@ void car_update_27(double *in_x, double *in_P, double *in_z, double *in_R, doubl
void car_update_29(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void car_update_29(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea);
void car_update_28(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void car_update_28(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea);
void car_update_31(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void car_update_31(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea);
void car_err_fun(double *nom_x, double *delta_x, double *out_3568804456057098654); void car_err_fun(double *nom_x, double *delta_x, double *out_8308214496735031777);
void car_inv_err_fun(double *nom_x, double *true_x, double *out_1840397183166108031); void car_inv_err_fun(double *nom_x, double *true_x, double *out_8999766425853420329);
void car_H_mod_fun(double *state, double *out_8921258435077713963); void car_H_mod_fun(double *state, double *out_8671923853756600219);
void car_f_fun(double *state, double dt, double *out_3277027219914288776); void car_f_fun(double *state, double dt, double *out_3762356930851513593);
void car_F_fun(double *state, double dt, double *out_370955893725369602); void car_F_fun(double *state, double dt, double *out_110226856445903204);
void car_h_25(double *state, double *unused, double *out_8154090013633331696); void car_h_25(double *state, double *unused, double *out_5646094358831955306);
void car_H_25(double *state, double *unused, double *out_8415923992877417251); void car_H_25(double *state, double *unused, double *out_4871128394768286557);
void car_h_24(double *state, double *unused, double *out_7351280482288278166); void car_h_24(double *state, double *unused, double *out_7079061790558552168);
void car_H_24(double *state, double *unused, double *out_8301956961654820296); void car_H_24(double *state, double *unused, double *out_7374582999090103633);
void car_h_30(double *state, double *unused, double *out_4292406537204830044); void car_h_30(double *state, double *unused, double *out_2117170897988717135);
void car_H_30(double *state, double *unused, double *out_1499233651385800496); void car_H_30(double *state, double *unused, double *out_2352795436261037930);
void car_h_26(double *state, double *unused, double *out_7000316085453517212); void car_h_26(double *state, double *unused, double *out_7183588416707059858);
void car_H_26(double *state, double *unused, double *out_6289316761958078141); void car_H_26(double *state, double *unused, double *out_8612631713642342781);
void car_h_27(double *state, double *unused, double *out_3964284714812858416); void car_h_27(double *state, double *unused, double *out_3041689038023257655);
void car_H_27(double *state, double *unused, double *out_3673996963186225407); void car_H_27(double *state, double *unused, double *out_129201365077094713);
void car_h_29(double *state, double *unused, double *out_3689090652528352527); void car_h_29(double *state, double *unused, double *out_2884502369672128510);
void car_H_29(double *state, double *unused, double *out_989002307071408312); void car_H_29(double *state, double *unused, double *out_1842564091946645746);
void car_h_28(double *state, double *unused, double *out_1914000772745856672); void car_h_28(double *state, double *unused, double *out_4902986578924970);
void car_H_28(double *state, double *unused, double *out_6071401324140938886); void car_H_28(double *state, double *unused, double *out_6924963109016176320);
void car_h_31(double *state, double *unused, double *out_8205050127743358283); void car_h_31(double *state, double *unused, double *out_8547812156113883153);
void car_H_31(double *state, double *unused, double *out_8385278031000456823); void car_H_31(double *state, double *unused, double *out_4840482432891326129);
void car_predict(double *in_x, double *in_P, double *in_Q, double dt); void car_predict(double *in_x, double *in_P, double *in_Q, double dt);
void car_set_mass(double x); void car_set_mass(double x);
void car_set_rotational_inertia(double x); void car_set_rotational_inertia(double x);
File diff suppressed because it is too large Load Diff
+13 -13
View File
@@ -5,18 +5,18 @@ void pose_update_4(double *in_x, double *in_P, double *in_z, double *in_R, doubl
void pose_update_10(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void pose_update_10(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea);
void pose_update_13(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void pose_update_13(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea);
void pose_update_14(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea); void pose_update_14(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea);
void pose_err_fun(double *nom_x, double *delta_x, double *out_3667758909157266385); void pose_err_fun(double *nom_x, double *delta_x, double *out_8958383251573640);
void pose_inv_err_fun(double *nom_x, double *true_x, double *out_3255008687637156165); void pose_inv_err_fun(double *nom_x, double *true_x, double *out_3510167321874192836);
void pose_H_mod_fun(double *state, double *out_1678148223451849404); void pose_H_mod_fun(double *state, double *out_10314592692584858);
void pose_f_fun(double *state, double dt, double *out_4390690219844123460); void pose_f_fun(double *state, double dt, double *out_3469176563342886468);
void pose_F_fun(double *state, double dt, double *out_5251920544283288288); void pose_F_fun(double *state, double dt, double *out_6053143964145098388);
void pose_h_4(double *state, double *unused, double *out_2086181486544094617); void pose_h_4(double *state, double *unused, double *out_4331217932147478278);
void pose_H_4(double *state, double *unused, double *out_141550502454447457); void pose_H_4(double *state, double *unused, double *out_3761492617151322714);
void pose_h_10(double *state, double *unused, double *out_2304974017593414723); void pose_h_10(double *state, double *unused, double *out_1904703987337421912);
void pose_H_10(double *state, double *unused, double *out_521311265061217175); void pose_H_10(double *state, double *unused, double *out_4366147958481579120);
void pose_h_13(double *state, double *unused, double *out_6563098082746675966); void pose_h_13(double *state, double *unused, double *out_9149454562438237975);
void pose_H_13(double *state, double *unused, double *out_3070723322877885344); void pose_H_13(double *state, double *unused, double *out_6973766442483655515);
void pose_h_14(double *state, double *unused, double *out_4832039927491863335); void pose_h_14(double *state, double *unused, double *out_1095581425659281568);
void pose_H_14(double *state, double *unused, double *out_3821690353885037072); void pose_H_14(double *state, double *unused, double *out_678704184855950418);
void pose_predict(double *in_x, double *in_P, double *in_Q, double dt); void pose_predict(double *in_x, double *in_P, double *in_Q, double dt);
} }
Binary file not shown.
+9
View File
@@ -218,6 +218,8 @@ void fill_panda_can_state(cereal::PandaState::PandaCanState::Builder &cs, const
} }
std::optional<bool> send_panda_states(PubMaster *pm, const std::vector<Panda *> &pandas, bool is_onroad, bool spoofing_started) { std::optional<bool> send_panda_states(PubMaster *pm, const std::vector<Panda *> &pandas, bool is_onroad, bool spoofing_started) {
static Params params;
const bool is_bolt = params.get("CarParams").find("CHEVROLET_BOLT") != std::string::npos;
bool ignition_local = false; bool ignition_local = false;
const uint32_t pandas_cnt = pandas.size(); const uint32_t pandas_cnt = pandas.size();
@@ -265,6 +267,13 @@ std::optional<bool> send_panda_states(PubMaster *pm, const std::vector<Panda *>
health.ignition_line_pkt = 0; health.ignition_line_pkt = 0;
} }
// TODO: Temporary workaround for onroad issues with a faulty harness box.
// Ignore physical ignition line for all Chevrolet Bolt varieties and rely on CAN ignition instead.
// This hardware issue will be fixed later, at which point this block can be removed.
if (is_bolt) {
health.ignition_line_pkt = 0;
}
ignition_local |= ((health.ignition_line_pkt != 0) || (health.ignition_can_pkt != 0)); ignition_local |= ((health.ignition_line_pkt != 0) || (health.ignition_can_pkt != 0));
pandaStates.push_back(health); pandaStates.push_back(health);
BIN
View File
Binary file not shown.