Compare commits

..

1 Commits

Author SHA1 Message Date
github-actions[bot] de77c89cf6 sunnypilot v2026.002.000
version: sunnypilot v2026.002.000 (staging)
date: 2026-07-21T07:44:02
master commit: 2c334ede44
2026-07-21 07:44:02 +00:00
23 changed files with 3077 additions and 3293 deletions
-17
View File
@@ -1,20 +1,3 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
# On any failure, run the fallback launcher
trap 'exec ./launch_chffrplus.sh' ERR
C3_LAUNCH_SH="./openpilot/sunnypilot/system/hardware/c3/launch_chffrplus.sh"
MODEL="$(tr -d '\0' < "/sys/firmware/devicetree/base/model")"
export MODEL
if [ "$MODEL" = "comma tici" ]; then
# Force a failure if the launcher doesn't exist
[ -x "$C3_LAUNCH_SH" ] || false
# If it exists, run it
exec "$C3_LAUNCH_SH"
fi
exec ./launch_chffrplus.sh
Binary file not shown.
+2 -1
View File
@@ -23,13 +23,14 @@ def main():
cloudlog.info("plannerd got CarParamsSP")
gps_location_service = get_gps_location_service(params)
ignore_services = ["liveMapDataSP", gps_location_service]
ldw = LaneDepartureWarning()
longitudinal_planner = LongitudinalPlanner(CP, CP_SP)
pm = messaging.PubMaster(['longitudinalPlan', 'driverAssistance', 'longitudinalPlanSP'])
sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'liveParameters', 'radarState', 'modelV2', 'selfdriveState',
'liveMapDataSP', 'carStateSP', gps_location_service],
poll='carState')
poll='carState', ignore_alive=ignore_services, ignore_avg_freq=ignore_services, ignore_valid=ignore_services)
while True:
sm.update()
@@ -45,326 +45,326 @@ const static double MAHA_THRESH_31 = 3.8414588206941227;
* *
* This file is part of 'ekf' *
******************************************************************************/
void err_fun(double *nom_x, double *delta_x, double *out_4503132331689013745) {
out_4503132331689013745[0] = delta_x[0] + nom_x[0];
out_4503132331689013745[1] = delta_x[1] + nom_x[1];
out_4503132331689013745[2] = delta_x[2] + nom_x[2];
out_4503132331689013745[3] = delta_x[3] + nom_x[3];
out_4503132331689013745[4] = delta_x[4] + nom_x[4];
out_4503132331689013745[5] = delta_x[5] + nom_x[5];
out_4503132331689013745[6] = delta_x[6] + nom_x[6];
out_4503132331689013745[7] = delta_x[7] + nom_x[7];
out_4503132331689013745[8] = delta_x[8] + nom_x[8];
void err_fun(double *nom_x, double *delta_x, double *out_1308307769420293042) {
out_1308307769420293042[0] = delta_x[0] + nom_x[0];
out_1308307769420293042[1] = delta_x[1] + nom_x[1];
out_1308307769420293042[2] = delta_x[2] + nom_x[2];
out_1308307769420293042[3] = delta_x[3] + nom_x[3];
out_1308307769420293042[4] = delta_x[4] + nom_x[4];
out_1308307769420293042[5] = delta_x[5] + nom_x[5];
out_1308307769420293042[6] = delta_x[6] + nom_x[6];
out_1308307769420293042[7] = delta_x[7] + nom_x[7];
out_1308307769420293042[8] = delta_x[8] + nom_x[8];
}
void inv_err_fun(double *nom_x, double *true_x, double *out_5519222819843562437) {
out_5519222819843562437[0] = -nom_x[0] + true_x[0];
out_5519222819843562437[1] = -nom_x[1] + true_x[1];
out_5519222819843562437[2] = -nom_x[2] + true_x[2];
out_5519222819843562437[3] = -nom_x[3] + true_x[3];
out_5519222819843562437[4] = -nom_x[4] + true_x[4];
out_5519222819843562437[5] = -nom_x[5] + true_x[5];
out_5519222819843562437[6] = -nom_x[6] + true_x[6];
out_5519222819843562437[7] = -nom_x[7] + true_x[7];
out_5519222819843562437[8] = -nom_x[8] + true_x[8];
void inv_err_fun(double *nom_x, double *true_x, double *out_2556976084631402) {
out_2556976084631402[0] = -nom_x[0] + true_x[0];
out_2556976084631402[1] = -nom_x[1] + true_x[1];
out_2556976084631402[2] = -nom_x[2] + true_x[2];
out_2556976084631402[3] = -nom_x[3] + true_x[3];
out_2556976084631402[4] = -nom_x[4] + true_x[4];
out_2556976084631402[5] = -nom_x[5] + true_x[5];
out_2556976084631402[6] = -nom_x[6] + true_x[6];
out_2556976084631402[7] = -nom_x[7] + true_x[7];
out_2556976084631402[8] = -nom_x[8] + true_x[8];
}
void H_mod_fun(double *state, double *out_99880963271144866) {
out_99880963271144866[0] = 1.0;
out_99880963271144866[1] = 0.0;
out_99880963271144866[2] = 0.0;
out_99880963271144866[3] = 0.0;
out_99880963271144866[4] = 0.0;
out_99880963271144866[5] = 0.0;
out_99880963271144866[6] = 0.0;
out_99880963271144866[7] = 0.0;
out_99880963271144866[8] = 0.0;
out_99880963271144866[9] = 0.0;
out_99880963271144866[10] = 1.0;
out_99880963271144866[11] = 0.0;
out_99880963271144866[12] = 0.0;
out_99880963271144866[13] = 0.0;
out_99880963271144866[14] = 0.0;
out_99880963271144866[15] = 0.0;
out_99880963271144866[16] = 0.0;
out_99880963271144866[17] = 0.0;
out_99880963271144866[18] = 0.0;
out_99880963271144866[19] = 0.0;
out_99880963271144866[20] = 1.0;
out_99880963271144866[21] = 0.0;
out_99880963271144866[22] = 0.0;
out_99880963271144866[23] = 0.0;
out_99880963271144866[24] = 0.0;
out_99880963271144866[25] = 0.0;
out_99880963271144866[26] = 0.0;
out_99880963271144866[27] = 0.0;
out_99880963271144866[28] = 0.0;
out_99880963271144866[29] = 0.0;
out_99880963271144866[30] = 1.0;
out_99880963271144866[31] = 0.0;
out_99880963271144866[32] = 0.0;
out_99880963271144866[33] = 0.0;
out_99880963271144866[34] = 0.0;
out_99880963271144866[35] = 0.0;
out_99880963271144866[36] = 0.0;
out_99880963271144866[37] = 0.0;
out_99880963271144866[38] = 0.0;
out_99880963271144866[39] = 0.0;
out_99880963271144866[40] = 1.0;
out_99880963271144866[41] = 0.0;
out_99880963271144866[42] = 0.0;
out_99880963271144866[43] = 0.0;
out_99880963271144866[44] = 0.0;
out_99880963271144866[45] = 0.0;
out_99880963271144866[46] = 0.0;
out_99880963271144866[47] = 0.0;
out_99880963271144866[48] = 0.0;
out_99880963271144866[49] = 0.0;
out_99880963271144866[50] = 1.0;
out_99880963271144866[51] = 0.0;
out_99880963271144866[52] = 0.0;
out_99880963271144866[53] = 0.0;
out_99880963271144866[54] = 0.0;
out_99880963271144866[55] = 0.0;
out_99880963271144866[56] = 0.0;
out_99880963271144866[57] = 0.0;
out_99880963271144866[58] = 0.0;
out_99880963271144866[59] = 0.0;
out_99880963271144866[60] = 1.0;
out_99880963271144866[61] = 0.0;
out_99880963271144866[62] = 0.0;
out_99880963271144866[63] = 0.0;
out_99880963271144866[64] = 0.0;
out_99880963271144866[65] = 0.0;
out_99880963271144866[66] = 0.0;
out_99880963271144866[67] = 0.0;
out_99880963271144866[68] = 0.0;
out_99880963271144866[69] = 0.0;
out_99880963271144866[70] = 1.0;
out_99880963271144866[71] = 0.0;
out_99880963271144866[72] = 0.0;
out_99880963271144866[73] = 0.0;
out_99880963271144866[74] = 0.0;
out_99880963271144866[75] = 0.0;
out_99880963271144866[76] = 0.0;
out_99880963271144866[77] = 0.0;
out_99880963271144866[78] = 0.0;
out_99880963271144866[79] = 0.0;
out_99880963271144866[80] = 1.0;
void H_mod_fun(double *state, double *out_6527467579721338563) {
out_6527467579721338563[0] = 1.0;
out_6527467579721338563[1] = 0.0;
out_6527467579721338563[2] = 0.0;
out_6527467579721338563[3] = 0.0;
out_6527467579721338563[4] = 0.0;
out_6527467579721338563[5] = 0.0;
out_6527467579721338563[6] = 0.0;
out_6527467579721338563[7] = 0.0;
out_6527467579721338563[8] = 0.0;
out_6527467579721338563[9] = 0.0;
out_6527467579721338563[10] = 1.0;
out_6527467579721338563[11] = 0.0;
out_6527467579721338563[12] = 0.0;
out_6527467579721338563[13] = 0.0;
out_6527467579721338563[14] = 0.0;
out_6527467579721338563[15] = 0.0;
out_6527467579721338563[16] = 0.0;
out_6527467579721338563[17] = 0.0;
out_6527467579721338563[18] = 0.0;
out_6527467579721338563[19] = 0.0;
out_6527467579721338563[20] = 1.0;
out_6527467579721338563[21] = 0.0;
out_6527467579721338563[22] = 0.0;
out_6527467579721338563[23] = 0.0;
out_6527467579721338563[24] = 0.0;
out_6527467579721338563[25] = 0.0;
out_6527467579721338563[26] = 0.0;
out_6527467579721338563[27] = 0.0;
out_6527467579721338563[28] = 0.0;
out_6527467579721338563[29] = 0.0;
out_6527467579721338563[30] = 1.0;
out_6527467579721338563[31] = 0.0;
out_6527467579721338563[32] = 0.0;
out_6527467579721338563[33] = 0.0;
out_6527467579721338563[34] = 0.0;
out_6527467579721338563[35] = 0.0;
out_6527467579721338563[36] = 0.0;
out_6527467579721338563[37] = 0.0;
out_6527467579721338563[38] = 0.0;
out_6527467579721338563[39] = 0.0;
out_6527467579721338563[40] = 1.0;
out_6527467579721338563[41] = 0.0;
out_6527467579721338563[42] = 0.0;
out_6527467579721338563[43] = 0.0;
out_6527467579721338563[44] = 0.0;
out_6527467579721338563[45] = 0.0;
out_6527467579721338563[46] = 0.0;
out_6527467579721338563[47] = 0.0;
out_6527467579721338563[48] = 0.0;
out_6527467579721338563[49] = 0.0;
out_6527467579721338563[50] = 1.0;
out_6527467579721338563[51] = 0.0;
out_6527467579721338563[52] = 0.0;
out_6527467579721338563[53] = 0.0;
out_6527467579721338563[54] = 0.0;
out_6527467579721338563[55] = 0.0;
out_6527467579721338563[56] = 0.0;
out_6527467579721338563[57] = 0.0;
out_6527467579721338563[58] = 0.0;
out_6527467579721338563[59] = 0.0;
out_6527467579721338563[60] = 1.0;
out_6527467579721338563[61] = 0.0;
out_6527467579721338563[62] = 0.0;
out_6527467579721338563[63] = 0.0;
out_6527467579721338563[64] = 0.0;
out_6527467579721338563[65] = 0.0;
out_6527467579721338563[66] = 0.0;
out_6527467579721338563[67] = 0.0;
out_6527467579721338563[68] = 0.0;
out_6527467579721338563[69] = 0.0;
out_6527467579721338563[70] = 1.0;
out_6527467579721338563[71] = 0.0;
out_6527467579721338563[72] = 0.0;
out_6527467579721338563[73] = 0.0;
out_6527467579721338563[74] = 0.0;
out_6527467579721338563[75] = 0.0;
out_6527467579721338563[76] = 0.0;
out_6527467579721338563[77] = 0.0;
out_6527467579721338563[78] = 0.0;
out_6527467579721338563[79] = 0.0;
out_6527467579721338563[80] = 1.0;
}
void f_fun(double *state, double dt, double *out_4490574509847198287) {
out_4490574509847198287[0] = state[0];
out_4490574509847198287[1] = state[1];
out_4490574509847198287[2] = state[2];
out_4490574509847198287[3] = state[3];
out_4490574509847198287[4] = state[4];
out_4490574509847198287[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_4490574509847198287[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_4490574509847198287[7] = state[7];
out_4490574509847198287[8] = state[8];
void f_fun(double *state, double dt, double *out_46405867141907835) {
out_46405867141907835[0] = state[0];
out_46405867141907835[1] = state[1];
out_46405867141907835[2] = state[2];
out_46405867141907835[3] = state[3];
out_46405867141907835[4] = state[4];
out_46405867141907835[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_46405867141907835[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_46405867141907835[7] = state[7];
out_46405867141907835[8] = state[8];
}
void F_fun(double *state, double dt, double *out_5588273031121660281) {
out_5588273031121660281[0] = 1;
out_5588273031121660281[1] = 0;
out_5588273031121660281[2] = 0;
out_5588273031121660281[3] = 0;
out_5588273031121660281[4] = 0;
out_5588273031121660281[5] = 0;
out_5588273031121660281[6] = 0;
out_5588273031121660281[7] = 0;
out_5588273031121660281[8] = 0;
out_5588273031121660281[9] = 0;
out_5588273031121660281[10] = 1;
out_5588273031121660281[11] = 0;
out_5588273031121660281[12] = 0;
out_5588273031121660281[13] = 0;
out_5588273031121660281[14] = 0;
out_5588273031121660281[15] = 0;
out_5588273031121660281[16] = 0;
out_5588273031121660281[17] = 0;
out_5588273031121660281[18] = 0;
out_5588273031121660281[19] = 0;
out_5588273031121660281[20] = 1;
out_5588273031121660281[21] = 0;
out_5588273031121660281[22] = 0;
out_5588273031121660281[23] = 0;
out_5588273031121660281[24] = 0;
out_5588273031121660281[25] = 0;
out_5588273031121660281[26] = 0;
out_5588273031121660281[27] = 0;
out_5588273031121660281[28] = 0;
out_5588273031121660281[29] = 0;
out_5588273031121660281[30] = 1;
out_5588273031121660281[31] = 0;
out_5588273031121660281[32] = 0;
out_5588273031121660281[33] = 0;
out_5588273031121660281[34] = 0;
out_5588273031121660281[35] = 0;
out_5588273031121660281[36] = 0;
out_5588273031121660281[37] = 0;
out_5588273031121660281[38] = 0;
out_5588273031121660281[39] = 0;
out_5588273031121660281[40] = 1;
out_5588273031121660281[41] = 0;
out_5588273031121660281[42] = 0;
out_5588273031121660281[43] = 0;
out_5588273031121660281[44] = 0;
out_5588273031121660281[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_5588273031121660281[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2));
out_5588273031121660281[47] = -dt*stiffness_front*state[0]/(mass*state[1]);
out_5588273031121660281[48] = -dt*stiffness_front*state[0]/(mass*state[1]);
out_5588273031121660281[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_5588273031121660281[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1;
out_5588273031121660281[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]));
out_5588273031121660281[52] = dt*stiffness_front*state[0]/(mass*state[1]);
out_5588273031121660281[53] = -9.8100000000000005*dt;
out_5588273031121660281[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_5588273031121660281[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2));
out_5588273031121660281[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
out_5588273031121660281[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
out_5588273031121660281[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_5588273031121660281[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]);
out_5588273031121660281[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_5588273031121660281[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
out_5588273031121660281[62] = 0;
out_5588273031121660281[63] = 0;
out_5588273031121660281[64] = 0;
out_5588273031121660281[65] = 0;
out_5588273031121660281[66] = 0;
out_5588273031121660281[67] = 0;
out_5588273031121660281[68] = 0;
out_5588273031121660281[69] = 0;
out_5588273031121660281[70] = 1;
out_5588273031121660281[71] = 0;
out_5588273031121660281[72] = 0;
out_5588273031121660281[73] = 0;
out_5588273031121660281[74] = 0;
out_5588273031121660281[75] = 0;
out_5588273031121660281[76] = 0;
out_5588273031121660281[77] = 0;
out_5588273031121660281[78] = 0;
out_5588273031121660281[79] = 0;
out_5588273031121660281[80] = 1;
void F_fun(double *state, double dt, double *out_3458223914096858551) {
out_3458223914096858551[0] = 1;
out_3458223914096858551[1] = 0;
out_3458223914096858551[2] = 0;
out_3458223914096858551[3] = 0;
out_3458223914096858551[4] = 0;
out_3458223914096858551[5] = 0;
out_3458223914096858551[6] = 0;
out_3458223914096858551[7] = 0;
out_3458223914096858551[8] = 0;
out_3458223914096858551[9] = 0;
out_3458223914096858551[10] = 1;
out_3458223914096858551[11] = 0;
out_3458223914096858551[12] = 0;
out_3458223914096858551[13] = 0;
out_3458223914096858551[14] = 0;
out_3458223914096858551[15] = 0;
out_3458223914096858551[16] = 0;
out_3458223914096858551[17] = 0;
out_3458223914096858551[18] = 0;
out_3458223914096858551[19] = 0;
out_3458223914096858551[20] = 1;
out_3458223914096858551[21] = 0;
out_3458223914096858551[22] = 0;
out_3458223914096858551[23] = 0;
out_3458223914096858551[24] = 0;
out_3458223914096858551[25] = 0;
out_3458223914096858551[26] = 0;
out_3458223914096858551[27] = 0;
out_3458223914096858551[28] = 0;
out_3458223914096858551[29] = 0;
out_3458223914096858551[30] = 1;
out_3458223914096858551[31] = 0;
out_3458223914096858551[32] = 0;
out_3458223914096858551[33] = 0;
out_3458223914096858551[34] = 0;
out_3458223914096858551[35] = 0;
out_3458223914096858551[36] = 0;
out_3458223914096858551[37] = 0;
out_3458223914096858551[38] = 0;
out_3458223914096858551[39] = 0;
out_3458223914096858551[40] = 1;
out_3458223914096858551[41] = 0;
out_3458223914096858551[42] = 0;
out_3458223914096858551[43] = 0;
out_3458223914096858551[44] = 0;
out_3458223914096858551[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_3458223914096858551[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2));
out_3458223914096858551[47] = -dt*stiffness_front*state[0]/(mass*state[1]);
out_3458223914096858551[48] = -dt*stiffness_front*state[0]/(mass*state[1]);
out_3458223914096858551[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_3458223914096858551[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1;
out_3458223914096858551[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]));
out_3458223914096858551[52] = dt*stiffness_front*state[0]/(mass*state[1]);
out_3458223914096858551[53] = -9.8100000000000005*dt;
out_3458223914096858551[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_3458223914096858551[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2));
out_3458223914096858551[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
out_3458223914096858551[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
out_3458223914096858551[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_3458223914096858551[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]);
out_3458223914096858551[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_3458223914096858551[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
out_3458223914096858551[62] = 0;
out_3458223914096858551[63] = 0;
out_3458223914096858551[64] = 0;
out_3458223914096858551[65] = 0;
out_3458223914096858551[66] = 0;
out_3458223914096858551[67] = 0;
out_3458223914096858551[68] = 0;
out_3458223914096858551[69] = 0;
out_3458223914096858551[70] = 1;
out_3458223914096858551[71] = 0;
out_3458223914096858551[72] = 0;
out_3458223914096858551[73] = 0;
out_3458223914096858551[74] = 0;
out_3458223914096858551[75] = 0;
out_3458223914096858551[76] = 0;
out_3458223914096858551[77] = 0;
out_3458223914096858551[78] = 0;
out_3458223914096858551[79] = 0;
out_3458223914096858551[80] = 1;
}
void h_25(double *state, double *unused, double *out_4633670035125740311) {
out_4633670035125740311[0] = state[6];
void h_25(double *state, double *unused, double *out_5649626404835719527) {
out_5649626404835719527[0] = state[6];
}
void H_25(double *state, double *unused, double *out_9153674884526169513) {
out_9153674884526169513[0] = 0;
out_9153674884526169513[1] = 0;
out_9153674884526169513[2] = 0;
out_9153674884526169513[3] = 0;
out_9153674884526169513[4] = 0;
out_9153674884526169513[5] = 0;
out_9153674884526169513[6] = 1;
out_9153674884526169513[7] = 0;
out_9153674884526169513[8] = 0;
void H_25(double *state, double *unused, double *out_1393870453252521242) {
out_1393870453252521242[0] = 0;
out_1393870453252521242[1] = 0;
out_1393870453252521242[2] = 0;
out_1393870453252521242[3] = 0;
out_1393870453252521242[4] = 0;
out_1393870453252521242[5] = 0;
out_1393870453252521242[6] = 1;
out_1393870453252521242[7] = 0;
out_1393870453252521242[8] = 0;
}
void h_24(double *state, double *unused, double *out_4147879785077922233) {
out_4147879785077922233[0] = state[4];
out_4147879785077922233[1] = state[5];
void h_24(double *state, double *unused, double *out_775491211629833659) {
out_775491211629833659[0] = state[4];
out_775491211629833659[1] = state[5];
}
void H_24(double *state, double *unused, double *out_7067361405204513541) {
out_7067361405204513541[0] = 0;
out_7067361405204513541[1] = 0;
out_7067361405204513541[2] = 0;
out_7067361405204513541[3] = 0;
out_7067361405204513541[4] = 1;
out_7067361405204513541[5] = 0;
out_7067361405204513541[6] = 0;
out_7067361405204513541[7] = 0;
out_7067361405204513541[8] = 0;
out_7067361405204513541[9] = 0;
out_7067361405204513541[10] = 0;
out_7067361405204513541[11] = 0;
out_7067361405204513541[12] = 0;
out_7067361405204513541[13] = 0;
out_7067361405204513541[14] = 1;
out_7067361405204513541[15] = 0;
out_7067361405204513541[16] = 0;
out_7067361405204513541[17] = 0;
void H_24(double *state, double *unused, double *out_778779145752978324) {
out_778779145752978324[0] = 0;
out_778779145752978324[1] = 0;
out_778779145752978324[2] = 0;
out_778779145752978324[3] = 0;
out_778779145752978324[4] = 1;
out_778779145752978324[5] = 0;
out_778779145752978324[6] = 0;
out_778779145752978324[7] = 0;
out_778779145752978324[8] = 0;
out_778779145752978324[9] = 0;
out_778779145752978324[10] = 0;
out_778779145752978324[11] = 0;
out_778779145752978324[12] = 0;
out_778779145752978324[13] = 0;
out_778779145752978324[14] = 1;
out_778779145752978324[15] = 0;
out_778779145752978324[16] = 0;
out_778779145752978324[17] = 0;
}
void h_30(double *state, double *unused, double *out_8271119563379762661) {
out_8271119563379762661[0] = state[4];
void h_30(double *state, double *unused, double *out_6641670473033171960) {
out_6641670473033171960[0] = state[4];
}
void H_30(double *state, double *unused, double *out_2376378847691765348) {
out_2376378847691765348[0] = 0;
out_2376378847691765348[1] = 0;
out_2376378847691765348[2] = 0;
out_2376378847691765348[3] = 0;
out_2376378847691765348[4] = 1;
out_2376378847691765348[5] = 0;
out_2376378847691765348[6] = 0;
out_2376378847691765348[7] = 0;
out_2376378847691765348[8] = 0;
void H_30(double *state, double *unused, double *out_3912203411759769869) {
out_3912203411759769869[0] = 0;
out_3912203411759769869[1] = 0;
out_3912203411759769869[2] = 0;
out_3912203411759769869[3] = 0;
out_3912203411759769869[4] = 1;
out_3912203411759769869[5] = 0;
out_3912203411759769869[6] = 0;
out_3912203411759769869[7] = 0;
out_3912203411759769869[8] = 0;
}
void h_26(double *state, double *unused, double *out_749423849060713781) {
out_749423849060713781[0] = state[7];
void h_26(double *state, double *unused, double *out_7244986357709649477) {
out_7244986357709649477[0] = state[7];
}
void H_26(double *state, double *unused, double *out_5412171565652113289) {
out_5412171565652113289[0] = 0;
out_5412171565652113289[1] = 0;
out_5412171565652113289[2] = 0;
out_5412171565652113289[3] = 0;
out_5412171565652113289[4] = 0;
out_5412171565652113289[5] = 0;
out_5412171565652113289[6] = 0;
out_5412171565652113289[7] = 1;
out_5412171565652113289[8] = 0;
void H_26(double *state, double *unused, double *out_2347632865621534982) {
out_2347632865621534982[0] = 0;
out_2347632865621534982[1] = 0;
out_2347632865621534982[2] = 0;
out_2347632865621534982[3] = 0;
out_2347632865621534982[4] = 0;
out_2347632865621534982[5] = 0;
out_2347632865621534982[6] = 0;
out_2347632865621534982[7] = 1;
out_2347632865621534982[8] = 0;
}
void h_27(double *state, double *unused, double *out_2801473399302960502) {
out_2801473399302960502[0] = state[3];
void h_27(double *state, double *unused, double *out_1785517029592981286) {
out_1785517029592981286[0] = state[3];
}
void H_27(double *state, double *unused, double *out_6849572625582504532) {
out_6849572625582504532[0] = 0;
out_6849572625582504532[1] = 0;
out_6849572625582504532[2] = 0;
out_6849572625582504532[3] = 1;
out_6849572625582504532[4] = 0;
out_6849572625582504532[5] = 0;
out_6849572625582504532[6] = 0;
out_6849572625582504532[7] = 0;
out_6849572625582504532[8] = 0;
void H_27(double *state, double *unused, double *out_1737440099959344958) {
out_1737440099959344958[0] = 0;
out_1737440099959344958[1] = 0;
out_1737440099959344958[2] = 0;
out_1737440099959344958[3] = 1;
out_1737440099959344958[4] = 0;
out_1737440099959344958[5] = 0;
out_1737440099959344958[6] = 0;
out_1737440099959344958[7] = 0;
out_1737440099959344958[8] = 0;
}
void h_29(double *state, double *unused, double *out_5173951242668943310) {
out_5173951242668943310[0] = state[1];
void h_29(double *state, double *unused, double *out_9200668279867682005) {
out_9200668279867682005[0] = state[1];
}
void H_29(double *state, double *unused, double *out_8912176792012229989) {
out_8912176792012229989[0] = 0;
out_8912176792012229989[1] = 1;
out_8912176792012229989[2] = 0;
out_8912176792012229989[3] = 0;
out_8912176792012229989[4] = 0;
out_8912176792012229989[5] = 0;
out_8912176792012229989[6] = 0;
out_8912176792012229989[7] = 0;
out_8912176792012229989[8] = 0;
void H_29(double *state, double *unused, double *out_4422434756074162053) {
out_4422434756074162053[0] = 0;
out_4422434756074162053[1] = 1;
out_4422434756074162053[2] = 0;
out_4422434756074162053[3] = 0;
out_4422434756074162053[4] = 0;
out_4422434756074162053[5] = 0;
out_4422434756074162053[6] = 0;
out_4422434756074162053[7] = 0;
out_4422434756074162053[8] = 0;
}
void h_28(double *state, double *unused, double *out_5994836064963036638) {
out_5994836064963036638[0] = state[0];
void h_28(double *state, double *unused, double *out_2729026882494643721) {
out_2729026882494643721[0] = state[0];
}
void H_28(double *state, double *unused, double *out_6948546520446903738) {
out_6948546520446903738[0] = 1;
out_6948546520446903738[1] = 0;
out_6948546520446903738[2] = 0;
out_6948546520446903738[3] = 0;
out_6948546520446903738[4] = 0;
out_6948546520446903738[5] = 0;
out_6948546520446903738[6] = 0;
out_6948546520446903738[7] = 0;
out_6948546520446903738[8] = 0;
void H_28(double *state, double *unused, double *out_659964260995368521) {
out_659964260995368521[0] = 1;
out_659964260995368521[1] = 0;
out_659964260995368521[2] = 0;
out_659964260995368521[3] = 0;
out_659964260995368521[4] = 0;
out_659964260995368521[5] = 0;
out_659964260995368521[6] = 0;
out_659964260995368521[7] = 0;
out_659964260995368521[8] = 0;
}
void h_31(double *state, double *unused, double *out_6352515274334922980) {
out_6352515274334922980[0] = state[8];
void h_31(double *state, double *unused, double *out_6026282442523481153) {
out_6026282442523481153[0] = state[8];
}
void H_31(double *state, double *unused, double *out_9184320846403129941) {
out_9184320846403129941[0] = 0;
out_9184320846403129941[1] = 0;
out_9184320846403129941[2] = 0;
out_9184320846403129941[3] = 0;
out_9184320846403129941[4] = 0;
out_9184320846403129941[5] = 0;
out_9184320846403129941[6] = 0;
out_9184320846403129941[7] = 0;
out_9184320846403129941[8] = 1;
void H_31(double *state, double *unused, double *out_2973840967854886458) {
out_2973840967854886458[0] = 0;
out_2973840967854886458[1] = 0;
out_2973840967854886458[2] = 0;
out_2973840967854886458[3] = 0;
out_2973840967854886458[4] = 0;
out_2973840967854886458[5] = 0;
out_2973840967854886458[6] = 0;
out_2973840967854886458[7] = 0;
out_2973840967854886458[8] = 1;
}
#include <eigen3/Eigen/Dense>
#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) {
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_4503132331689013745) {
err_fun(nom_x, delta_x, out_4503132331689013745);
void car_err_fun(double *nom_x, double *delta_x, double *out_1308307769420293042) {
err_fun(nom_x, delta_x, out_1308307769420293042);
}
void car_inv_err_fun(double *nom_x, double *true_x, double *out_5519222819843562437) {
inv_err_fun(nom_x, true_x, out_5519222819843562437);
void car_inv_err_fun(double *nom_x, double *true_x, double *out_2556976084631402) {
inv_err_fun(nom_x, true_x, out_2556976084631402);
}
void car_H_mod_fun(double *state, double *out_99880963271144866) {
H_mod_fun(state, out_99880963271144866);
void car_H_mod_fun(double *state, double *out_6527467579721338563) {
H_mod_fun(state, out_6527467579721338563);
}
void car_f_fun(double *state, double dt, double *out_4490574509847198287) {
f_fun(state, dt, out_4490574509847198287);
void car_f_fun(double *state, double dt, double *out_46405867141907835) {
f_fun(state, dt, out_46405867141907835);
}
void car_F_fun(double *state, double dt, double *out_5588273031121660281) {
F_fun(state, dt, out_5588273031121660281);
void car_F_fun(double *state, double dt, double *out_3458223914096858551) {
F_fun(state, dt, out_3458223914096858551);
}
void car_h_25(double *state, double *unused, double *out_4633670035125740311) {
h_25(state, unused, out_4633670035125740311);
void car_h_25(double *state, double *unused, double *out_5649626404835719527) {
h_25(state, unused, out_5649626404835719527);
}
void car_H_25(double *state, double *unused, double *out_9153674884526169513) {
H_25(state, unused, out_9153674884526169513);
void car_H_25(double *state, double *unused, double *out_1393870453252521242) {
H_25(state, unused, out_1393870453252521242);
}
void car_h_24(double *state, double *unused, double *out_4147879785077922233) {
h_24(state, unused, out_4147879785077922233);
void car_h_24(double *state, double *unused, double *out_775491211629833659) {
h_24(state, unused, out_775491211629833659);
}
void car_H_24(double *state, double *unused, double *out_7067361405204513541) {
H_24(state, unused, out_7067361405204513541);
void car_H_24(double *state, double *unused, double *out_778779145752978324) {
H_24(state, unused, out_778779145752978324);
}
void car_h_30(double *state, double *unused, double *out_8271119563379762661) {
h_30(state, unused, out_8271119563379762661);
void car_h_30(double *state, double *unused, double *out_6641670473033171960) {
h_30(state, unused, out_6641670473033171960);
}
void car_H_30(double *state, double *unused, double *out_2376378847691765348) {
H_30(state, unused, out_2376378847691765348);
void car_H_30(double *state, double *unused, double *out_3912203411759769869) {
H_30(state, unused, out_3912203411759769869);
}
void car_h_26(double *state, double *unused, double *out_749423849060713781) {
h_26(state, unused, out_749423849060713781);
void car_h_26(double *state, double *unused, double *out_7244986357709649477) {
h_26(state, unused, out_7244986357709649477);
}
void car_H_26(double *state, double *unused, double *out_5412171565652113289) {
H_26(state, unused, out_5412171565652113289);
void car_H_26(double *state, double *unused, double *out_2347632865621534982) {
H_26(state, unused, out_2347632865621534982);
}
void car_h_27(double *state, double *unused, double *out_2801473399302960502) {
h_27(state, unused, out_2801473399302960502);
void car_h_27(double *state, double *unused, double *out_1785517029592981286) {
h_27(state, unused, out_1785517029592981286);
}
void car_H_27(double *state, double *unused, double *out_6849572625582504532) {
H_27(state, unused, out_6849572625582504532);
void car_H_27(double *state, double *unused, double *out_1737440099959344958) {
H_27(state, unused, out_1737440099959344958);
}
void car_h_29(double *state, double *unused, double *out_5173951242668943310) {
h_29(state, unused, out_5173951242668943310);
void car_h_29(double *state, double *unused, double *out_9200668279867682005) {
h_29(state, unused, out_9200668279867682005);
}
void car_H_29(double *state, double *unused, double *out_8912176792012229989) {
H_29(state, unused, out_8912176792012229989);
void car_H_29(double *state, double *unused, double *out_4422434756074162053) {
H_29(state, unused, out_4422434756074162053);
}
void car_h_28(double *state, double *unused, double *out_5994836064963036638) {
h_28(state, unused, out_5994836064963036638);
void car_h_28(double *state, double *unused, double *out_2729026882494643721) {
h_28(state, unused, out_2729026882494643721);
}
void car_H_28(double *state, double *unused, double *out_6948546520446903738) {
H_28(state, unused, out_6948546520446903738);
void car_H_28(double *state, double *unused, double *out_659964260995368521) {
H_28(state, unused, out_659964260995368521);
}
void car_h_31(double *state, double *unused, double *out_6352515274334922980) {
h_31(state, unused, out_6352515274334922980);
void car_h_31(double *state, double *unused, double *out_6026282442523481153) {
h_31(state, unused, out_6026282442523481153);
}
void car_H_31(double *state, double *unused, double *out_9184320846403129941) {
H_31(state, unused, out_9184320846403129941);
void car_H_31(double *state, double *unused, double *out_2973840967854886458) {
H_31(state, unused, out_2973840967854886458);
}
void car_predict(double *in_x, double *in_P, double *in_Q, double dt) {
predict(in_x, in_P, in_Q, dt);
@@ -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_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_err_fun(double *nom_x, double *delta_x, double *out_4503132331689013745);
void car_inv_err_fun(double *nom_x, double *true_x, double *out_5519222819843562437);
void car_H_mod_fun(double *state, double *out_99880963271144866);
void car_f_fun(double *state, double dt, double *out_4490574509847198287);
void car_F_fun(double *state, double dt, double *out_5588273031121660281);
void car_h_25(double *state, double *unused, double *out_4633670035125740311);
void car_H_25(double *state, double *unused, double *out_9153674884526169513);
void car_h_24(double *state, double *unused, double *out_4147879785077922233);
void car_H_24(double *state, double *unused, double *out_7067361405204513541);
void car_h_30(double *state, double *unused, double *out_8271119563379762661);
void car_H_30(double *state, double *unused, double *out_2376378847691765348);
void car_h_26(double *state, double *unused, double *out_749423849060713781);
void car_H_26(double *state, double *unused, double *out_5412171565652113289);
void car_h_27(double *state, double *unused, double *out_2801473399302960502);
void car_H_27(double *state, double *unused, double *out_6849572625582504532);
void car_h_29(double *state, double *unused, double *out_5173951242668943310);
void car_H_29(double *state, double *unused, double *out_8912176792012229989);
void car_h_28(double *state, double *unused, double *out_5994836064963036638);
void car_H_28(double *state, double *unused, double *out_6948546520446903738);
void car_h_31(double *state, double *unused, double *out_6352515274334922980);
void car_H_31(double *state, double *unused, double *out_9184320846403129941);
void car_err_fun(double *nom_x, double *delta_x, double *out_1308307769420293042);
void car_inv_err_fun(double *nom_x, double *true_x, double *out_2556976084631402);
void car_H_mod_fun(double *state, double *out_6527467579721338563);
void car_f_fun(double *state, double dt, double *out_46405867141907835);
void car_F_fun(double *state, double dt, double *out_3458223914096858551);
void car_h_25(double *state, double *unused, double *out_5649626404835719527);
void car_H_25(double *state, double *unused, double *out_1393870453252521242);
void car_h_24(double *state, double *unused, double *out_775491211629833659);
void car_H_24(double *state, double *unused, double *out_778779145752978324);
void car_h_30(double *state, double *unused, double *out_6641670473033171960);
void car_H_30(double *state, double *unused, double *out_3912203411759769869);
void car_h_26(double *state, double *unused, double *out_7244986357709649477);
void car_H_26(double *state, double *unused, double *out_2347632865621534982);
void car_h_27(double *state, double *unused, double *out_1785517029592981286);
void car_H_27(double *state, double *unused, double *out_1737440099959344958);
void car_h_29(double *state, double *unused, double *out_9200668279867682005);
void car_H_29(double *state, double *unused, double *out_4422434756074162053);
void car_h_28(double *state, double *unused, double *out_2729026882494643721);
void car_H_28(double *state, double *unused, double *out_659964260995368521);
void car_h_31(double *state, double *unused, double *out_6026282442523481153);
void car_H_31(double *state, double *unused, double *out_2973840967854886458);
void car_predict(double *in_x, double *in_P, double *in_Q, double dt);
void car_set_mass(double x);
void car_set_rotational_inertia(double x);
File diff suppressed because it is too large Load Diff
@@ -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_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_err_fun(double *nom_x, double *delta_x, double *out_8799966904452395012);
void pose_inv_err_fun(double *nom_x, double *true_x, double *out_1661397671847398073);
void pose_H_mod_fun(double *state, double *out_2131008325054536789);
void pose_f_fun(double *state, double dt, double *out_884777716370448931);
void pose_F_fun(double *state, double dt, double *out_6755798908020795646);
void pose_h_4(double *state, double *unused, double *out_4561759232303120700);
void pose_H_4(double *state, double *unused, double *out_5331418226156006813);
void pose_h_10(double *state, double *unused, double *out_8855709713594721197);
void pose_H_10(double *state, double *unused, double *out_3758101988975610904);
void pose_h_13(double *state, double *unused, double *out_6255148116667054704);
void pose_H_13(double *state, double *unused, double *out_2279212982160694116);
void pose_h_14(double *state, double *unused, double *out_5422638595254952120);
void pose_H_14(double *state, double *unused, double *out_8414206658451379109);
void pose_err_fun(double *nom_x, double *delta_x, double *out_264984234156022510);
void pose_inv_err_fun(double *nom_x, double *true_x, double *out_4459356063444070539);
void pose_H_mod_fun(double *state, double *out_7005986214264108234);
void pose_f_fun(double *state, double dt, double *out_4717377945151750388);
void pose_F_fun(double *state, double dt, double *out_4729405661658211402);
void pose_h_4(double *state, double *unused, double *out_5738722976826185665);
void pose_H_4(double *state, double *unused, double *out_8862099202367372115);
void pose_h_10(double *state, double *unused, double *out_2388008800197743067);
void pose_H_10(double *state, double *unused, double *out_8909533314766452476);
void pose_h_13(double *state, double *unused, double *out_9149861557909701017);
void pose_H_13(double *state, double *unused, double *out_5649825377035039314);
void pose_h_14(double *state, double *unused, double *out_3251330187002382357);
void pose_H_14(double *state, double *unused, double *out_9149528344697295902);
void pose_predict(double *in_x, double *in_P, double *in_Q, double dt);
}
+1 -1
View File
@@ -1 +1 @@
#define SUNNYPILOT_VERSION "2026.07.20-4574"
#define SUNNYPILOT_VERSION "2026.002.000"
File diff suppressed because it is too large Load Diff
@@ -10,29 +10,29 @@ void live_update_32(double *in_x, double *in_P, double *in_z, double *in_R, doub
void live_update_13(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea);
void live_update_14(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea);
void live_update_33(double *in_x, double *in_P, double *in_z, double *in_R, double *in_ea);
void live_H(double *in_vec, double *out_285400171142782786);
void live_err_fun(double *nom_x, double *delta_x, double *out_2436896259464335423);
void live_inv_err_fun(double *nom_x, double *true_x, double *out_8871984062805370648);
void live_H_mod_fun(double *state, double *out_8228926511208625476);
void live_f_fun(double *state, double dt, double *out_4538780046133425309);
void live_F_fun(double *state, double dt, double *out_417010570473098233);
void live_h_4(double *state, double *unused, double *out_2309729505615761905);
void live_H_4(double *state, double *unused, double *out_8886506882666231613);
void live_h_9(double *state, double *unused, double *out_1348765263594904281);
void live_H_9(double *state, double *unused, double *out_8645317236036640968);
void live_h_10(double *state, double *unused, double *out_7251990229046891328);
void live_H_10(double *state, double *unused, double *out_2812694342253054382);
void live_h_12(double *state, double *unused, double *out_1162751087914723431);
void live_H_12(double *state, double *unused, double *out_3867050474634269818);
void live_h_35(double *state, double *unused, double *out_1137082034917540827);
void live_H_35(double *state, double *unused, double *out_5519844825293624237);
void live_h_32(double *state, double *unused, double *out_7169859216053261212);
void live_H_32(double *state, double *unused, double *out_7164684335004523839);
void live_h_13(double *state, double *unused, double *out_4721203745943767592);
void live_H_13(double *state, double *unused, double *out_6086407052825232130);
void live_h_14(double *state, double *unused, double *out_1348765263594904281);
void live_H_14(double *state, double *unused, double *out_8645317236036640968);
void live_h_33(double *state, double *unused, double *out_859896650697914554);
void live_H_33(double *state, double *unused, double *out_2369287820654766633);
void live_H(double *in_vec, double *out_6746369553526897517);
void live_err_fun(double *nom_x, double *delta_x, double *out_2356689388845686605);
void live_inv_err_fun(double *nom_x, double *true_x, double *out_7416532235122030660);
void live_H_mod_fun(double *state, double *out_7744797074742978621);
void live_f_fun(double *state, double dt, double *out_8063025216892748525);
void live_F_fun(double *state, double dt, double *out_1924980074135776075);
void live_h_4(double *state, double *unused, double *out_7366302340587907635);
void live_H_4(double *state, double *unused, double *out_8678952100085115055);
void live_h_9(double *state, double *unused, double *out_1116014595619586497);
void live_H_9(double *state, double *unused, double *out_2480573038359989091);
void live_h_10(double *state, double *unused, double *out_15153629602772458);
void live_H_10(double *state, double *unused, double *out_4583653000591918572);
void live_h_12(double *state, double *unused, double *out_9071809923999704409);
void live_H_12(double *state, double *unused, double *out_4748335565592474766);
void live_h_35(double *state, double *unused, double *out_7011637724721731008);
void live_H_35(double *state, double *unused, double *out_2002772533267461057);
void live_h_32(double *state, double *unused, double *out_8005805873262674095);
void live_H_32(double *state, double *unused, double *out_6269965131311088716);
void live_h_13(double *state, double *unused, double *out_7868428076142185420);
void live_H_13(double *state, double *unused, double *out_4177806446556115282);
void live_h_14(double *state, double *unused, double *out_1116014595619586497);
void live_H_14(double *state, double *unused, double *out_2480573038359989091);
void live_h_33(double *state, double *unused, double *out_5108012817780654932);
void live_H_33(double *state, double *unused, double *out_1147784471371396547);
void live_predict(double *in_x, double *in_P, double *in_Q, double dt);
}
@@ -1,3 +0,0 @@
# C3 specific hardware code
`c3` is known as `tici` and comma three by comma. Not to confuse it with `c3x` which is known as `tizi`.
@@ -1,84 +0,0 @@
[
{
"name": "xbl",
"url": "https://commadist.azureedge.net/agnosupdate/xbl-effa23294138e2297b85a5b482a885184c437b5ab25d74f2a62d4fce4e68f63b.img.xz",
"hash": "effa23294138e2297b85a5b482a885184c437b5ab25d74f2a62d4fce4e68f63b",
"hash_raw": "effa23294138e2297b85a5b482a885184c437b5ab25d74f2a62d4fce4e68f63b",
"size": 3282256,
"sparse": false,
"full_check": true,
"has_ab": true,
"ondevice_hash": "ed61a650bea0c56652dd0fc68465d8fc722a4e6489dc8f257630c42c6adcdc89"
},
{
"name": "xbl_config",
"url": "https://commadist.azureedge.net/agnosupdate/xbl_config-63d019efed684601f145ef37628e62c8da73f5053a8e51d7de09e72b8b11f97c.img.xz",
"hash": "63d019efed684601f145ef37628e62c8da73f5053a8e51d7de09e72b8b11f97c",
"hash_raw": "63d019efed684601f145ef37628e62c8da73f5053a8e51d7de09e72b8b11f97c",
"size": 98124,
"sparse": false,
"full_check": true,
"has_ab": true,
"ondevice_hash": "b12801ffaa81e58e3cef914488d3b447e35483ba549b28c6cd9deb4814c3265f"
},
{
"name": "abl",
"url": "https://commadist.azureedge.net/agnosupdate/abl-32a2174b5f764e95dfc54cf358ba01752943b1b3b90e626149c3da7d5f1830b6.img.xz",
"hash": "32a2174b5f764e95dfc54cf358ba01752943b1b3b90e626149c3da7d5f1830b6",
"hash_raw": "32a2174b5f764e95dfc54cf358ba01752943b1b3b90e626149c3da7d5f1830b6",
"size": 274432,
"sparse": false,
"full_check": true,
"has_ab": true,
"ondevice_hash": "32a2174b5f764e95dfc54cf358ba01752943b1b3b90e626149c3da7d5f1830b6"
},
{
"name": "aop",
"url": "https://commadist.azureedge.net/agnosupdate/aop-21370172e590bd4ea907a558bcd6df20dc7a6c7d38b8e62fdde18f4a512ba9e9.img.xz",
"hash": "21370172e590bd4ea907a558bcd6df20dc7a6c7d38b8e62fdde18f4a512ba9e9",
"hash_raw": "21370172e590bd4ea907a558bcd6df20dc7a6c7d38b8e62fdde18f4a512ba9e9",
"size": 184364,
"sparse": false,
"full_check": true,
"has_ab": true,
"ondevice_hash": "c1be2f4aac5b3af49b904b027faec418d05efd7bd5144eb4fdfcba602bcf2180"
},
{
"name": "devcfg",
"url": "https://commadist.azureedge.net/agnosupdate/devcfg-d7d7e52963bbedbbf8a7e66847579ca106a0a729ce2cf60f4b8d8ea4b535d620.img.xz",
"hash": "d7d7e52963bbedbbf8a7e66847579ca106a0a729ce2cf60f4b8d8ea4b535d620",
"hash_raw": "d7d7e52963bbedbbf8a7e66847579ca106a0a729ce2cf60f4b8d8ea4b535d620",
"size": 40336,
"sparse": false,
"full_check": true,
"has_ab": true,
"ondevice_hash": "17b229668b20305ff8fa3cd5f94716a3aaa1e5bf9d1c24117eff7f2f81ae719f"
},
{
"name": "boot",
"url": "https://commadist.azureedge.net/agnosupdate/boot-0191529aa97d90d1fa04b472d80230b777606459e1e1e9e2323c9519839827b4.img.xz",
"hash": "0191529aa97d90d1fa04b472d80230b777606459e1e1e9e2323c9519839827b4",
"hash_raw": "0191529aa97d90d1fa04b472d80230b777606459e1e1e9e2323c9519839827b4",
"size": 18515968,
"sparse": false,
"full_check": true,
"has_ab": true,
"ondevice_hash": "492ae27f569e8db457c79d0e358a7a6297d1a1c685c2b1ae6deba7315d3a6cb0"
},
{
"name": "system",
"url": "https://commadist.azureedge.net/agnosupdate/system-e0007afa5d1026671c1943d44bb7f7ad26259f673392dd00a03073a2870df087.img.xz",
"hash": "1468d50b7ad0fda0f04074755d21e786e3b1b6ca5dd5b17eb2608202025e6126",
"hash_raw": "e0007afa5d1026671c1943d44bb7f7ad26259f673392dd00a03073a2870df087",
"size": 5368709120,
"sparse": true,
"full_check": false,
"has_ab": true,
"ondevice_hash": "242aa5adad1c04e1398e00e2440d1babf962022eb12b89adf2e60ee3068946e7",
"alt": {
"hash": "e0007afa5d1026671c1943d44bb7f7ad26259f673392dd00a03073a2870df087",
"url": "https://commadist.azureedge.net/agnosupdate/system-e0007afa5d1026671c1943d44bb7f7ad26259f673392dd00a03073a2870df087.img",
"size": 5368709120
}
}
]
@@ -1,100 +0,0 @@
#!/usr/bin/env bash
SP_C3_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
DIR="$( cd "$SP_C3_DIR/../../../../.." >/dev/null 2>&1 && pwd )"
source "$SP_C3_DIR/launch_env.sh"
function agnos_init {
# TODO: move this to agnos
sudo rm -f /data/etc/NetworkManager/system-connections/*.nmmeta
# set success flag for current boot slot
sudo abctl --set_success
# TODO: do this without udev in AGNOS
# udev does this, but sometimes we startup faster
sudo chgrp gpu /dev/adsprpc-smd /dev/ion /dev/kgsl-3d0
sudo chmod 660 /dev/adsprpc-smd /dev/ion /dev/kgsl-3d0
if [ $(< /VERSION) != "$AGNOS_VERSION" ]; then
AGNOS_PY="$DIR/openpilot/common/hardware/tici/agnos.py"
MANIFEST="$SP_C3_DIR/agnos.json"
if $AGNOS_PY --verify $MANIFEST; then
sudo reboot
fi
$DIR/openpilot/common/hardware/tici/updater $AGNOS_PY $MANIFEST
fi
}
function launch {
# Remove orphaned git lock if it exists on boot
[ -f "$DIR/.git/index.lock" ] && rm -f $DIR/.git/index.lock
# Check to see if there's a valid overlay-based update available. Conditions
# are as follows:
#
# 1. The DIR init file has to exist, with a newer modtime than anything in
# the DIR Git repo. This checks for local development work or the user
# switching branches/forks, which should not be overwritten.
# 2. The FINALIZED consistent file has to exist, indicating there's an update
# that completed successfully and synced to disk.
if [ -f "${DIR}/.overlay_init" ]; then
find ${DIR}/.git -newer ${DIR}/.overlay_init | grep -q '.' 2> /dev/null
if [ $? -eq 0 ]; then
echo "${DIR} has been modified, skipping overlay update installation"
else
if [ -f "${STAGING_ROOT}/finalized/.overlay_consistent" ]; then
if [ ! -d /data/safe_staging/old_openpilot ]; then
echo "Valid overlay update found, installing"
LAUNCHER_LOCATION="${BASH_SOURCE[0]}"
mv $DIR /data/safe_staging/old_openpilot
mv "${STAGING_ROOT}/finalized" $DIR
cd $DIR
echo "Restarting launch script ${LAUNCHER_LOCATION}"
unset AGNOS_VERSION
exec "${LAUNCHER_LOCATION}"
else
echo "openpilot backup found, not updating"
# TODO: restore backup? This means the updater didn't start after swapping
fi
fi
fi
fi
# handle pythonpath
ln -sfn $(pwd) /data/pythonpath
export PYTHONPATH="$PWD"
# submodule package symlinks for PYTHONPATH imports on device.
# on PC these come from editable installs via pyproject.toml / uv.
ln -sfn msgq_repo/msgq msgq
ln -sfn opendbc_repo/opendbc opendbc
ln -sfn rednose_repo/rednose rednose
ln -sfn teleoprtc_repo/teleoprtc teleoprtc
ln -sfn tinygrad_repo/tinygrad tinygrad
# hardware specific init
if [ -f /AGNOS ]; then
agnos_init
fi
# write tmux scrollback to a file
tmux capture-pane -pq -S-1000 > /tmp/launch_log
# start manager
cd $DIR/openpilot/system/manager
if [ ! -f $DIR/prebuilt ]; then
./build.py
fi
./manager.py
# if broken, keep on screen error
while true; do sleep 1; done
}
launch
@@ -1,13 +0,0 @@
#!/usr/bin/env bash
export OMP_NUM_THREADS=1
export MKL_NUM_THREADS=1
export NUMEXPR_NUM_THREADS=1
export OPENBLAS_NUM_THREADS=1
export VECLIB_MAXIMUM_THREADS=1
if [ -z "$AGNOS_VERSION" ]; then
export AGNOS_VERSION="12.8"
fi
export STAGING_ROOT="/data/safe_staging"
+3 -3
View File
@@ -26037,7 +26037,7 @@ __Pyx_RefNannySetupContext("PyInit_ekf_sym_pyx", 0);
(void)__Pyx_modinit_variable_import_code(__pyx_mstate);
(void)__Pyx_modinit_function_import_code(__pyx_mstate);
/*--- Execution code ---*/
__Pyx_TraceStartFunc("PyInit_ekf_sym_pyx", __pyx_f[0], 1, 0, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
__Pyx_TraceStartFunc("PyInit_ekf_sym_pyx", __pyx_f[0], 1, 1, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
/* "View.MemoryView":100
*
@@ -26836,7 +26836,7 @@ __Pyx_RefNannySetupContext("PyInit_ekf_sym_pyx", 0);
__Pyx_GOTREF(__pyx_t_4);
if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_test, __pyx_t_4) < (0)) __PYX_ERR(0, 1, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_TraceReturnValue(Py_None, 0, 0, __PYX_ERR(0, 1, __pyx_L1_error));
__Pyx_TraceReturnValue(Py_None, 1, 0, __PYX_ERR(0, 1, __pyx_L1_error));
__Pyx_PyMonitoring_ExitScope(0);
/*--- Wrapped vars code ---*/
@@ -26846,7 +26846,7 @@ __Pyx_RefNannySetupContext("PyInit_ekf_sym_pyx", 0);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_TraceException(__pyx_lineno, 0, 0);
__Pyx_TraceExceptionUnwind(0, 0);
__Pyx_TraceExceptionUnwind(1, 0);
if (__pyx_m) {
if (__pyx_mstate->__pyx_d && stringtab_initialized) {
__Pyx_AddTraceback("init rednose.helpers.ekf_sym_pyx", __pyx_clineno, __pyx_lineno, __pyx_filename);