mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-07-26 20:32:04 +08:00
yeet
This commit is contained in:
@@ -571,9 +571,9 @@ class CarInterface(CarInterfaceBase):
|
||||
ret.openpilotLongitudinalControl = not disable_openpilot_long
|
||||
|
||||
volt_test_tune_active = (
|
||||
testing_ground.use_2 and
|
||||
ret.openpilotLongitudinalControl and
|
||||
candidate in VOLT_LONG_TEST_TUNE_CARS and
|
||||
(testing_ground.use_2 or not ret.enableGasInterceptorDEPRECATED)
|
||||
candidate in VOLT_LONG_TEST_TUNE_CARS
|
||||
)
|
||||
if volt_test_tune_active:
|
||||
# Volt long can still fall back to an all-I tune on both the interceptor and
|
||||
|
||||
@@ -60,41 +60,38 @@ class TestGMInterface:
|
||||
|
||||
assert car_params.minSteerSpeed == pytest.approx(7 * CV.MPH_TO_MS)
|
||||
|
||||
def test_volt_testing_ground_tune_sets_nonzero_p_and_starting_state(self, monkeypatch):
|
||||
@parameterized.expand([
|
||||
("interceptor", True),
|
||||
("ascm_int", False),
|
||||
])
|
||||
def test_volt_testing_ground_tune_sets_nonzero_p_and_starting_state(self, _name, pedal_present):
|
||||
CarInterface = interfaces[CAR.CHEVROLET_VOLT_ASCM]
|
||||
fingerprint = _empty_fingerprint()
|
||||
fingerprint[0][0x201] = 8 # pedal detected
|
||||
if pedal_present:
|
||||
fingerprint[0][0x201] = 8 # pedal detected
|
||||
fingerprint[0][0x2FF] = 8 # SASCM detected
|
||||
|
||||
monkeypatch.setattr(gm_interface, "testing_ground", SimpleNamespace(use_2=True), raising=False)
|
||||
old_testing_ground = gm_interface.testing_ground
|
||||
gm_interface.testing_ground = SimpleNamespace(use_2=True)
|
||||
|
||||
car_params = CarInterface.get_params(CAR.CHEVROLET_VOLT_ASCM, fingerprint, [], alpha_long=False, is_release=False, docs=False,
|
||||
starpilot_toggles=_test_starpilot_toggles())
|
||||
try:
|
||||
car_params = CarInterface.get_params(CAR.CHEVROLET_VOLT_ASCM, fingerprint, [], alpha_long=False, is_release=False, docs=False,
|
||||
starpilot_toggles=_test_starpilot_toggles())
|
||||
finally:
|
||||
gm_interface.testing_ground = old_testing_ground
|
||||
|
||||
assert list(car_params.longitudinalTuning.kpV) == pytest.approx([0.10, 0.072, 0.05, 0.04])
|
||||
assert list(car_params.longitudinalTuning.kiV) == pytest.approx([0.025, 0.03, 0.04, 0.055])
|
||||
assert car_params.startingState
|
||||
assert car_params.startAccel == pytest.approx(1.15)
|
||||
|
||||
@parameterized.expand([
|
||||
("volt_2019", CAR.CHEVROLET_VOLT_2019, True),
|
||||
("volt_ascm", CAR.CHEVROLET_VOLT_ASCM, True),
|
||||
])
|
||||
def test_non_pedal_volt_alpha_long_uses_volt_tune_by_default(self, _name, car_model, needs_sascm):
|
||||
CarInterface = interfaces[car_model]
|
||||
fingerprint = _empty_fingerprint()
|
||||
if needs_sascm:
|
||||
fingerprint[0][0x2FF] = 8 # SASCM detected
|
||||
|
||||
car_params = CarInterface.get_params(car_model, fingerprint, [], alpha_long=True, is_release=False, docs=False,
|
||||
starpilot_toggles=_test_starpilot_toggles())
|
||||
|
||||
assert car_params.openpilotLongitudinalControl
|
||||
assert not car_params.enableGasInterceptorDEPRECATED
|
||||
assert list(car_params.longitudinalTuning.kpV) == pytest.approx([0.10, 0.072, 0.05, 0.04])
|
||||
assert list(car_params.longitudinalTuning.kiV) == pytest.approx([0.025, 0.03, 0.04, 0.055])
|
||||
assert car_params.startingState
|
||||
assert car_params.startAccel == pytest.approx(1.15)
|
||||
if pedal_present:
|
||||
assert list(car_params.longitudinalTuning.kpV) == pytest.approx([0.10, 0.072, 0.05, 0.04])
|
||||
assert list(car_params.longitudinalTuning.kiV) == pytest.approx([0.025, 0.03, 0.04, 0.055])
|
||||
assert car_params.startingState
|
||||
assert car_params.startAccel == pytest.approx(1.15)
|
||||
else:
|
||||
assert not car_params.openpilotLongitudinalControl
|
||||
assert not car_params.enableGasInterceptorDEPRECATED
|
||||
assert list(car_params.longitudinalTuning.kpV) == [0.0]
|
||||
assert list(car_params.longitudinalTuning.kiV) == [0.5, 0.5]
|
||||
assert not car_params.startingState
|
||||
assert car_params.startAccel == pytest.approx(0.0)
|
||||
|
||||
def test_volt_cc_sparse_fingerprint_without_camera_sets_no_camera(self):
|
||||
CarInterface = interfaces[CAR.CHEVROLET_VOLT_CC]
|
||||
|
||||
@@ -45,8 +45,10 @@ IONIQ_6_DYNAMIC_LOWER_JERK_BP = [-2.0, -1.5, -1.0, -0.25, -0.1, -0.025, -0.01, -
|
||||
IONIQ_6_DYNAMIC_LOWER_JERK_V = [3.3, 1.5, 1.0, 0.8, 0.7, 0.65, 0.55, 0.5]
|
||||
IONIQ_6_LAUNCH_HOLD_SPEED_BP = [0.0, 0.6, 1.25, 2.5]
|
||||
IONIQ_6_LAUNCH_HOLD_SPEED_V = [0.75, 0.6, 0.4, 0.0]
|
||||
IONIQ_6_STOP_HOLD_SPEED_BP = [0.0, 0.25, 0.6, 1.2]
|
||||
IONIQ_6_STOP_HOLD_SPEED_V = [-0.12, -0.10, -0.05, 0.0]
|
||||
IONIQ_6_STOP_HOLD_SPEED_BP = [0.0, 0.08, 0.25, 0.6, 1.2]
|
||||
IONIQ_6_STOP_HOLD_SPEED_V = [-0.09, -0.095, -0.10, -0.05, 0.0]
|
||||
IONIQ_6_STOP_HOLD_JERK_BP = [0.0, 0.15, 0.6, 1.2]
|
||||
IONIQ_6_STOP_HOLD_JERK_V = [0.35, 0.40, 0.52, 0.65]
|
||||
IONIQ_6_STOP_RELEASE_JERK_BP = [0.0, 0.15, 0.5]
|
||||
IONIQ_6_STOP_RELEASE_JERK_V = [3.6 * IONIQ_6_RESPONSE_MULTIPLIER,
|
||||
4.2 * IONIQ_6_RESPONSE_MULTIPLIER,
|
||||
@@ -136,7 +138,7 @@ def update_ioniq_6_longitudinal_tuning(state: Ioniq6LongitudinalTuningState, acc
|
||||
|
||||
if state.stopping:
|
||||
state.desired_accel = float(np.interp(v_ego, IONIQ_6_STOP_HOLD_SPEED_BP, IONIQ_6_STOP_HOLD_SPEED_V))
|
||||
state.jerk_upper = min(state.jerk_upper, float(np.interp(v_ego, [0.0, 1.2], [0.45, 0.65])) * IONIQ_6_RESPONSE_MULTIPLIER)
|
||||
state.jerk_upper = min(state.jerk_upper, float(np.interp(v_ego, IONIQ_6_STOP_HOLD_JERK_BP, IONIQ_6_STOP_HOLD_JERK_V)) * IONIQ_6_RESPONSE_MULTIPLIER)
|
||||
else:
|
||||
state.desired_accel = float(np.clip(accel_cmd, CarControllerParams.ACCEL_MIN, CarControllerParams.ACCEL_MAX))
|
||||
if state.launch_active:
|
||||
|
||||
@@ -4,7 +4,7 @@ from types import SimpleNamespace
|
||||
import pytest
|
||||
|
||||
from opendbc.can import CANPacker, CANParser
|
||||
from opendbc.car import Bus, ButtonType, gen_empty_fingerprint
|
||||
from opendbc.car import Bus, ButtonType, gen_empty_fingerprint, structs
|
||||
from opendbc.car.structs import CarControl, CarParams
|
||||
from opendbc.car.fw_versions import build_fw_dict, match_fw_to_car
|
||||
from opendbc.car.hyundai.carcontroller import Ioniq6LongitudinalTuningState, GenesisG90LongitudinalTuningState, \
|
||||
@@ -366,6 +366,17 @@ class TestHyundaiFingerprint:
|
||||
long_control_state=LongCtrlState.starting, long_active=True)
|
||||
assert state.actual_accel == pytest.approx(0.312)
|
||||
|
||||
def test_ioniq_6_longitudinal_tuning_helper_softens_final_stop_hold(self):
|
||||
state = Ioniq6LongitudinalTuningState(actual_accel=-0.12, accel_last=-0.12,
|
||||
stopping=True, stopping_count=25,
|
||||
long_control_state_last=LongCtrlState.stopping)
|
||||
|
||||
state = update_ioniq_6_longitudinal_tuning(state, accel_cmd=-1.8, v_ego=0.0, a_ego=0.0,
|
||||
long_control_state=LongCtrlState.stopping, long_active=True)
|
||||
assert state.desired_accel == pytest.approx(-0.09)
|
||||
assert state.jerk_upper == pytest.approx(0.42)
|
||||
assert state.actual_accel == pytest.approx(-0.099)
|
||||
|
||||
def test_genesis_g90_longitudinal_tuning_softens_final_stop_hold(self):
|
||||
state = GenesisG90LongitudinalTuningState()
|
||||
|
||||
|
||||
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,2 +1,2 @@
|
||||
extern const uint8_t gitversion[19];
|
||||
const uint8_t gitversion[19] = "DEV-016e657e-DEBUG";
|
||||
const uint8_t gitversion[19] = "DEV-95fa880b-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 @@
|
||||
DEV-016e657e-DEBUG
|
||||
DEV-95fa880b-DEBUG
|
||||
@@ -46,10 +46,12 @@ def get_civic_bosch_modified_pid_output_alpha(desired_angle_deg: float, desired_
|
||||
onset = min(max((abs_angle - 3.0) / 5.0, 0.0), 1.0)
|
||||
cutoff = min(max((22.0 - abs_angle) / 8.0, 0.0), 1.0)
|
||||
band_weight = onset * cutoff
|
||||
large_turn_weight = min(max((abs_angle - 16.0) / 6.0, 0.0), 1.0)
|
||||
transition_weight = min(abs(desired_angle_delta_deg) / 0.35, 1.0)
|
||||
sign_change_weight = 1.0 if (output_torque * prev_output_torque) < 0.0 else 0.0
|
||||
|
||||
smoothing = band_weight * (0.36 + (0.22 * speed_weight) + (0.12 * transition_weight) + (0.12 * sign_change_weight))
|
||||
smoothing *= 1.0 - (0.50 * large_turn_weight)
|
||||
return min(max(1.0 - smoothing, 0.18), 1.0)
|
||||
|
||||
|
||||
|
||||
@@ -226,8 +226,8 @@ IONIQ_6_TURN_IN_FRICTION_BOOST_LEFT = 0.18
|
||||
IONIQ_6_TURN_IN_FRICTION_BOOST_RIGHT = 0.34
|
||||
IONIQ_6_UNWIND_FRICTION_REDUCTION_LEFT = 1.86
|
||||
IONIQ_6_UNWIND_FRICTION_REDUCTION_RIGHT = 4.55
|
||||
IONIQ_6_CENTER_TAPER_MAX = 0.046
|
||||
IONIQ_6_CENTER_TAPER_LAT = 0.18
|
||||
IONIQ_6_CENTER_TAPER_MAX = 0.056
|
||||
IONIQ_6_CENTER_TAPER_LAT = 0.22
|
||||
IONIQ_6_CENTER_TAPER_LAT_WIDTH = 0.02
|
||||
IONIQ_6_CENTER_TAPER_SPEED = 18.0
|
||||
IONIQ_6_CENTER_TAPER_SPEED_WIDTH = 2.5
|
||||
|
||||
@@ -332,6 +332,48 @@ def test_slow_lead_holds_through_tracking_flap_for_high_confidence_vision_lead()
|
||||
assert cem.slow_lead_detected
|
||||
|
||||
|
||||
def test_tracked_highway_mild_closing_lead_does_not_trigger_raw_slow_lead():
|
||||
v_ego = 65 * CV.MPH_TO_MS
|
||||
cem = make_cem(
|
||||
model_length=v_ego * 5.0,
|
||||
tracking_lead=True,
|
||||
lead_status=True,
|
||||
lead_d_rel=46.0,
|
||||
lead_v_lead=v_ego - 1.4,
|
||||
lead_model_prob=1.0,
|
||||
)
|
||||
toggles = SimpleNamespace(conditional_slower_lead=True, conditional_stopped_lead=False)
|
||||
|
||||
cem.slow_lead_filter.x = 0.0
|
||||
cem.slow_lead_detected = False
|
||||
cem.starpilot_planner.starpilot_following.slower_lead = False
|
||||
for _ in range(12):
|
||||
cem.slow_lead(toggles, v_ego)
|
||||
|
||||
assert not cem.slow_lead_detected
|
||||
|
||||
|
||||
def test_tracked_following_slower_lead_still_triggers_slow_lead():
|
||||
v_ego = 65 * CV.MPH_TO_MS
|
||||
cem = make_cem(
|
||||
model_length=v_ego * 5.0,
|
||||
tracking_lead=True,
|
||||
lead_status=True,
|
||||
lead_d_rel=36.0,
|
||||
lead_v_lead=v_ego - 3.0,
|
||||
lead_model_prob=1.0,
|
||||
)
|
||||
toggles = SimpleNamespace(conditional_slower_lead=True, conditional_stopped_lead=False)
|
||||
|
||||
cem.slow_lead_filter.x = 0.0
|
||||
cem.slow_lead_detected = False
|
||||
cem.starpilot_planner.starpilot_following.slower_lead = True
|
||||
for _ in range(24):
|
||||
cem.slow_lead(toggles, v_ego)
|
||||
|
||||
assert cem.slow_lead_detected
|
||||
|
||||
|
||||
def test_slow_lead_does_not_linger_at_crawl_when_stopped_lead_disabled():
|
||||
v_ego = 1.5
|
||||
cem = make_cem(
|
||||
|
||||
@@ -279,7 +279,7 @@ class TestLatControl:
|
||||
assert get_ioniq_6_center_taper_scale(0.0, 10.0) < get_ioniq_6_center_taper_scale(0.0, 30.0)
|
||||
assert get_ioniq_6_center_taper_scale(0.0, 30.0) < get_ioniq_6_center_taper_scale(0.2, 30.0)
|
||||
assert get_ioniq_6_center_taper_scale(0.0, 12.0) < get_ioniq_6_center_taper_scale(0.25, 12.0)
|
||||
assert abs(get_ioniq_6_center_taper_scale(0.2, 30.0) - 1.0) < 1.3e-2
|
||||
assert abs(get_ioniq_6_center_taper_scale(0.2, 30.0) - 1.0) < 4.2e-2
|
||||
|
||||
def test_kia_ev6_ff_scale_curve(self):
|
||||
assert get_kia_ev6_ff_scale(0.0, 0.0, 20.0) == 1.0
|
||||
|
||||
@@ -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_3321760492551468366) {
|
||||
out_3321760492551468366[0] = delta_x[0] + nom_x[0];
|
||||
out_3321760492551468366[1] = delta_x[1] + nom_x[1];
|
||||
out_3321760492551468366[2] = delta_x[2] + nom_x[2];
|
||||
out_3321760492551468366[3] = delta_x[3] + nom_x[3];
|
||||
out_3321760492551468366[4] = delta_x[4] + nom_x[4];
|
||||
out_3321760492551468366[5] = delta_x[5] + nom_x[5];
|
||||
out_3321760492551468366[6] = delta_x[6] + nom_x[6];
|
||||
out_3321760492551468366[7] = delta_x[7] + nom_x[7];
|
||||
out_3321760492551468366[8] = delta_x[8] + nom_x[8];
|
||||
void err_fun(double *nom_x, double *delta_x, double *out_760253992355356602) {
|
||||
out_760253992355356602[0] = delta_x[0] + nom_x[0];
|
||||
out_760253992355356602[1] = delta_x[1] + nom_x[1];
|
||||
out_760253992355356602[2] = delta_x[2] + nom_x[2];
|
||||
out_760253992355356602[3] = delta_x[3] + nom_x[3];
|
||||
out_760253992355356602[4] = delta_x[4] + nom_x[4];
|
||||
out_760253992355356602[5] = delta_x[5] + nom_x[5];
|
||||
out_760253992355356602[6] = delta_x[6] + nom_x[6];
|
||||
out_760253992355356602[7] = delta_x[7] + nom_x[7];
|
||||
out_760253992355356602[8] = delta_x[8] + nom_x[8];
|
||||
}
|
||||
void inv_err_fun(double *nom_x, double *true_x, double *out_3697485090417495632) {
|
||||
out_3697485090417495632[0] = -nom_x[0] + true_x[0];
|
||||
out_3697485090417495632[1] = -nom_x[1] + true_x[1];
|
||||
out_3697485090417495632[2] = -nom_x[2] + true_x[2];
|
||||
out_3697485090417495632[3] = -nom_x[3] + true_x[3];
|
||||
out_3697485090417495632[4] = -nom_x[4] + true_x[4];
|
||||
out_3697485090417495632[5] = -nom_x[5] + true_x[5];
|
||||
out_3697485090417495632[6] = -nom_x[6] + true_x[6];
|
||||
out_3697485090417495632[7] = -nom_x[7] + true_x[7];
|
||||
out_3697485090417495632[8] = -nom_x[8] + true_x[8];
|
||||
void inv_err_fun(double *nom_x, double *true_x, double *out_4983548601721046404) {
|
||||
out_4983548601721046404[0] = -nom_x[0] + true_x[0];
|
||||
out_4983548601721046404[1] = -nom_x[1] + true_x[1];
|
||||
out_4983548601721046404[2] = -nom_x[2] + true_x[2];
|
||||
out_4983548601721046404[3] = -nom_x[3] + true_x[3];
|
||||
out_4983548601721046404[4] = -nom_x[4] + true_x[4];
|
||||
out_4983548601721046404[5] = -nom_x[5] + true_x[5];
|
||||
out_4983548601721046404[6] = -nom_x[6] + true_x[6];
|
||||
out_4983548601721046404[7] = -nom_x[7] + true_x[7];
|
||||
out_4983548601721046404[8] = -nom_x[8] + true_x[8];
|
||||
}
|
||||
void H_mod_fun(double *state, double *out_4190227621087458402) {
|
||||
out_4190227621087458402[0] = 1.0;
|
||||
out_4190227621087458402[1] = 0.0;
|
||||
out_4190227621087458402[2] = 0.0;
|
||||
out_4190227621087458402[3] = 0.0;
|
||||
out_4190227621087458402[4] = 0.0;
|
||||
out_4190227621087458402[5] = 0.0;
|
||||
out_4190227621087458402[6] = 0.0;
|
||||
out_4190227621087458402[7] = 0.0;
|
||||
out_4190227621087458402[8] = 0.0;
|
||||
out_4190227621087458402[9] = 0.0;
|
||||
out_4190227621087458402[10] = 1.0;
|
||||
out_4190227621087458402[11] = 0.0;
|
||||
out_4190227621087458402[12] = 0.0;
|
||||
out_4190227621087458402[13] = 0.0;
|
||||
out_4190227621087458402[14] = 0.0;
|
||||
out_4190227621087458402[15] = 0.0;
|
||||
out_4190227621087458402[16] = 0.0;
|
||||
out_4190227621087458402[17] = 0.0;
|
||||
out_4190227621087458402[18] = 0.0;
|
||||
out_4190227621087458402[19] = 0.0;
|
||||
out_4190227621087458402[20] = 1.0;
|
||||
out_4190227621087458402[21] = 0.0;
|
||||
out_4190227621087458402[22] = 0.0;
|
||||
out_4190227621087458402[23] = 0.0;
|
||||
out_4190227621087458402[24] = 0.0;
|
||||
out_4190227621087458402[25] = 0.0;
|
||||
out_4190227621087458402[26] = 0.0;
|
||||
out_4190227621087458402[27] = 0.0;
|
||||
out_4190227621087458402[28] = 0.0;
|
||||
out_4190227621087458402[29] = 0.0;
|
||||
out_4190227621087458402[30] = 1.0;
|
||||
out_4190227621087458402[31] = 0.0;
|
||||
out_4190227621087458402[32] = 0.0;
|
||||
out_4190227621087458402[33] = 0.0;
|
||||
out_4190227621087458402[34] = 0.0;
|
||||
out_4190227621087458402[35] = 0.0;
|
||||
out_4190227621087458402[36] = 0.0;
|
||||
out_4190227621087458402[37] = 0.0;
|
||||
out_4190227621087458402[38] = 0.0;
|
||||
out_4190227621087458402[39] = 0.0;
|
||||
out_4190227621087458402[40] = 1.0;
|
||||
out_4190227621087458402[41] = 0.0;
|
||||
out_4190227621087458402[42] = 0.0;
|
||||
out_4190227621087458402[43] = 0.0;
|
||||
out_4190227621087458402[44] = 0.0;
|
||||
out_4190227621087458402[45] = 0.0;
|
||||
out_4190227621087458402[46] = 0.0;
|
||||
out_4190227621087458402[47] = 0.0;
|
||||
out_4190227621087458402[48] = 0.0;
|
||||
out_4190227621087458402[49] = 0.0;
|
||||
out_4190227621087458402[50] = 1.0;
|
||||
out_4190227621087458402[51] = 0.0;
|
||||
out_4190227621087458402[52] = 0.0;
|
||||
out_4190227621087458402[53] = 0.0;
|
||||
out_4190227621087458402[54] = 0.0;
|
||||
out_4190227621087458402[55] = 0.0;
|
||||
out_4190227621087458402[56] = 0.0;
|
||||
out_4190227621087458402[57] = 0.0;
|
||||
out_4190227621087458402[58] = 0.0;
|
||||
out_4190227621087458402[59] = 0.0;
|
||||
out_4190227621087458402[60] = 1.0;
|
||||
out_4190227621087458402[61] = 0.0;
|
||||
out_4190227621087458402[62] = 0.0;
|
||||
out_4190227621087458402[63] = 0.0;
|
||||
out_4190227621087458402[64] = 0.0;
|
||||
out_4190227621087458402[65] = 0.0;
|
||||
out_4190227621087458402[66] = 0.0;
|
||||
out_4190227621087458402[67] = 0.0;
|
||||
out_4190227621087458402[68] = 0.0;
|
||||
out_4190227621087458402[69] = 0.0;
|
||||
out_4190227621087458402[70] = 1.0;
|
||||
out_4190227621087458402[71] = 0.0;
|
||||
out_4190227621087458402[72] = 0.0;
|
||||
out_4190227621087458402[73] = 0.0;
|
||||
out_4190227621087458402[74] = 0.0;
|
||||
out_4190227621087458402[75] = 0.0;
|
||||
out_4190227621087458402[76] = 0.0;
|
||||
out_4190227621087458402[77] = 0.0;
|
||||
out_4190227621087458402[78] = 0.0;
|
||||
out_4190227621087458402[79] = 0.0;
|
||||
out_4190227621087458402[80] = 1.0;
|
||||
void H_mod_fun(double *state, double *out_8995833010704521871) {
|
||||
out_8995833010704521871[0] = 1.0;
|
||||
out_8995833010704521871[1] = 0.0;
|
||||
out_8995833010704521871[2] = 0.0;
|
||||
out_8995833010704521871[3] = 0.0;
|
||||
out_8995833010704521871[4] = 0.0;
|
||||
out_8995833010704521871[5] = 0.0;
|
||||
out_8995833010704521871[6] = 0.0;
|
||||
out_8995833010704521871[7] = 0.0;
|
||||
out_8995833010704521871[8] = 0.0;
|
||||
out_8995833010704521871[9] = 0.0;
|
||||
out_8995833010704521871[10] = 1.0;
|
||||
out_8995833010704521871[11] = 0.0;
|
||||
out_8995833010704521871[12] = 0.0;
|
||||
out_8995833010704521871[13] = 0.0;
|
||||
out_8995833010704521871[14] = 0.0;
|
||||
out_8995833010704521871[15] = 0.0;
|
||||
out_8995833010704521871[16] = 0.0;
|
||||
out_8995833010704521871[17] = 0.0;
|
||||
out_8995833010704521871[18] = 0.0;
|
||||
out_8995833010704521871[19] = 0.0;
|
||||
out_8995833010704521871[20] = 1.0;
|
||||
out_8995833010704521871[21] = 0.0;
|
||||
out_8995833010704521871[22] = 0.0;
|
||||
out_8995833010704521871[23] = 0.0;
|
||||
out_8995833010704521871[24] = 0.0;
|
||||
out_8995833010704521871[25] = 0.0;
|
||||
out_8995833010704521871[26] = 0.0;
|
||||
out_8995833010704521871[27] = 0.0;
|
||||
out_8995833010704521871[28] = 0.0;
|
||||
out_8995833010704521871[29] = 0.0;
|
||||
out_8995833010704521871[30] = 1.0;
|
||||
out_8995833010704521871[31] = 0.0;
|
||||
out_8995833010704521871[32] = 0.0;
|
||||
out_8995833010704521871[33] = 0.0;
|
||||
out_8995833010704521871[34] = 0.0;
|
||||
out_8995833010704521871[35] = 0.0;
|
||||
out_8995833010704521871[36] = 0.0;
|
||||
out_8995833010704521871[37] = 0.0;
|
||||
out_8995833010704521871[38] = 0.0;
|
||||
out_8995833010704521871[39] = 0.0;
|
||||
out_8995833010704521871[40] = 1.0;
|
||||
out_8995833010704521871[41] = 0.0;
|
||||
out_8995833010704521871[42] = 0.0;
|
||||
out_8995833010704521871[43] = 0.0;
|
||||
out_8995833010704521871[44] = 0.0;
|
||||
out_8995833010704521871[45] = 0.0;
|
||||
out_8995833010704521871[46] = 0.0;
|
||||
out_8995833010704521871[47] = 0.0;
|
||||
out_8995833010704521871[48] = 0.0;
|
||||
out_8995833010704521871[49] = 0.0;
|
||||
out_8995833010704521871[50] = 1.0;
|
||||
out_8995833010704521871[51] = 0.0;
|
||||
out_8995833010704521871[52] = 0.0;
|
||||
out_8995833010704521871[53] = 0.0;
|
||||
out_8995833010704521871[54] = 0.0;
|
||||
out_8995833010704521871[55] = 0.0;
|
||||
out_8995833010704521871[56] = 0.0;
|
||||
out_8995833010704521871[57] = 0.0;
|
||||
out_8995833010704521871[58] = 0.0;
|
||||
out_8995833010704521871[59] = 0.0;
|
||||
out_8995833010704521871[60] = 1.0;
|
||||
out_8995833010704521871[61] = 0.0;
|
||||
out_8995833010704521871[62] = 0.0;
|
||||
out_8995833010704521871[63] = 0.0;
|
||||
out_8995833010704521871[64] = 0.0;
|
||||
out_8995833010704521871[65] = 0.0;
|
||||
out_8995833010704521871[66] = 0.0;
|
||||
out_8995833010704521871[67] = 0.0;
|
||||
out_8995833010704521871[68] = 0.0;
|
||||
out_8995833010704521871[69] = 0.0;
|
||||
out_8995833010704521871[70] = 1.0;
|
||||
out_8995833010704521871[71] = 0.0;
|
||||
out_8995833010704521871[72] = 0.0;
|
||||
out_8995833010704521871[73] = 0.0;
|
||||
out_8995833010704521871[74] = 0.0;
|
||||
out_8995833010704521871[75] = 0.0;
|
||||
out_8995833010704521871[76] = 0.0;
|
||||
out_8995833010704521871[77] = 0.0;
|
||||
out_8995833010704521871[78] = 0.0;
|
||||
out_8995833010704521871[79] = 0.0;
|
||||
out_8995833010704521871[80] = 1.0;
|
||||
}
|
||||
void f_fun(double *state, double dt, double *out_6456348943274406543) {
|
||||
out_6456348943274406543[0] = state[0];
|
||||
out_6456348943274406543[1] = state[1];
|
||||
out_6456348943274406543[2] = state[2];
|
||||
out_6456348943274406543[3] = state[3];
|
||||
out_6456348943274406543[4] = state[4];
|
||||
out_6456348943274406543[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_6456348943274406543[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_6456348943274406543[7] = state[7];
|
||||
out_6456348943274406543[8] = state[8];
|
||||
void f_fun(double *state, double dt, double *out_4562655195590537984) {
|
||||
out_4562655195590537984[0] = state[0];
|
||||
out_4562655195590537984[1] = state[1];
|
||||
out_4562655195590537984[2] = state[2];
|
||||
out_4562655195590537984[3] = state[3];
|
||||
out_4562655195590537984[4] = state[4];
|
||||
out_4562655195590537984[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_4562655195590537984[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_4562655195590537984[7] = state[7];
|
||||
out_4562655195590537984[8] = state[8];
|
||||
}
|
||||
void F_fun(double *state, double dt, double *out_4201765287475637381) {
|
||||
out_4201765287475637381[0] = 1;
|
||||
out_4201765287475637381[1] = 0;
|
||||
out_4201765287475637381[2] = 0;
|
||||
out_4201765287475637381[3] = 0;
|
||||
out_4201765287475637381[4] = 0;
|
||||
out_4201765287475637381[5] = 0;
|
||||
out_4201765287475637381[6] = 0;
|
||||
out_4201765287475637381[7] = 0;
|
||||
out_4201765287475637381[8] = 0;
|
||||
out_4201765287475637381[9] = 0;
|
||||
out_4201765287475637381[10] = 1;
|
||||
out_4201765287475637381[11] = 0;
|
||||
out_4201765287475637381[12] = 0;
|
||||
out_4201765287475637381[13] = 0;
|
||||
out_4201765287475637381[14] = 0;
|
||||
out_4201765287475637381[15] = 0;
|
||||
out_4201765287475637381[16] = 0;
|
||||
out_4201765287475637381[17] = 0;
|
||||
out_4201765287475637381[18] = 0;
|
||||
out_4201765287475637381[19] = 0;
|
||||
out_4201765287475637381[20] = 1;
|
||||
out_4201765287475637381[21] = 0;
|
||||
out_4201765287475637381[22] = 0;
|
||||
out_4201765287475637381[23] = 0;
|
||||
out_4201765287475637381[24] = 0;
|
||||
out_4201765287475637381[25] = 0;
|
||||
out_4201765287475637381[26] = 0;
|
||||
out_4201765287475637381[27] = 0;
|
||||
out_4201765287475637381[28] = 0;
|
||||
out_4201765287475637381[29] = 0;
|
||||
out_4201765287475637381[30] = 1;
|
||||
out_4201765287475637381[31] = 0;
|
||||
out_4201765287475637381[32] = 0;
|
||||
out_4201765287475637381[33] = 0;
|
||||
out_4201765287475637381[34] = 0;
|
||||
out_4201765287475637381[35] = 0;
|
||||
out_4201765287475637381[36] = 0;
|
||||
out_4201765287475637381[37] = 0;
|
||||
out_4201765287475637381[38] = 0;
|
||||
out_4201765287475637381[39] = 0;
|
||||
out_4201765287475637381[40] = 1;
|
||||
out_4201765287475637381[41] = 0;
|
||||
out_4201765287475637381[42] = 0;
|
||||
out_4201765287475637381[43] = 0;
|
||||
out_4201765287475637381[44] = 0;
|
||||
out_4201765287475637381[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_4201765287475637381[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2));
|
||||
out_4201765287475637381[47] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_4201765287475637381[48] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_4201765287475637381[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_4201765287475637381[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1;
|
||||
out_4201765287475637381[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]));
|
||||
out_4201765287475637381[52] = dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_4201765287475637381[53] = -9.8100000000000005*dt;
|
||||
out_4201765287475637381[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_4201765287475637381[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2));
|
||||
out_4201765287475637381[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_4201765287475637381[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_4201765287475637381[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_4201765287475637381[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]);
|
||||
out_4201765287475637381[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_4201765287475637381[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_4201765287475637381[62] = 0;
|
||||
out_4201765287475637381[63] = 0;
|
||||
out_4201765287475637381[64] = 0;
|
||||
out_4201765287475637381[65] = 0;
|
||||
out_4201765287475637381[66] = 0;
|
||||
out_4201765287475637381[67] = 0;
|
||||
out_4201765287475637381[68] = 0;
|
||||
out_4201765287475637381[69] = 0;
|
||||
out_4201765287475637381[70] = 1;
|
||||
out_4201765287475637381[71] = 0;
|
||||
out_4201765287475637381[72] = 0;
|
||||
out_4201765287475637381[73] = 0;
|
||||
out_4201765287475637381[74] = 0;
|
||||
out_4201765287475637381[75] = 0;
|
||||
out_4201765287475637381[76] = 0;
|
||||
out_4201765287475637381[77] = 0;
|
||||
out_4201765287475637381[78] = 0;
|
||||
out_4201765287475637381[79] = 0;
|
||||
out_4201765287475637381[80] = 1;
|
||||
void F_fun(double *state, double dt, double *out_6423431565507769528) {
|
||||
out_6423431565507769528[0] = 1;
|
||||
out_6423431565507769528[1] = 0;
|
||||
out_6423431565507769528[2] = 0;
|
||||
out_6423431565507769528[3] = 0;
|
||||
out_6423431565507769528[4] = 0;
|
||||
out_6423431565507769528[5] = 0;
|
||||
out_6423431565507769528[6] = 0;
|
||||
out_6423431565507769528[7] = 0;
|
||||
out_6423431565507769528[8] = 0;
|
||||
out_6423431565507769528[9] = 0;
|
||||
out_6423431565507769528[10] = 1;
|
||||
out_6423431565507769528[11] = 0;
|
||||
out_6423431565507769528[12] = 0;
|
||||
out_6423431565507769528[13] = 0;
|
||||
out_6423431565507769528[14] = 0;
|
||||
out_6423431565507769528[15] = 0;
|
||||
out_6423431565507769528[16] = 0;
|
||||
out_6423431565507769528[17] = 0;
|
||||
out_6423431565507769528[18] = 0;
|
||||
out_6423431565507769528[19] = 0;
|
||||
out_6423431565507769528[20] = 1;
|
||||
out_6423431565507769528[21] = 0;
|
||||
out_6423431565507769528[22] = 0;
|
||||
out_6423431565507769528[23] = 0;
|
||||
out_6423431565507769528[24] = 0;
|
||||
out_6423431565507769528[25] = 0;
|
||||
out_6423431565507769528[26] = 0;
|
||||
out_6423431565507769528[27] = 0;
|
||||
out_6423431565507769528[28] = 0;
|
||||
out_6423431565507769528[29] = 0;
|
||||
out_6423431565507769528[30] = 1;
|
||||
out_6423431565507769528[31] = 0;
|
||||
out_6423431565507769528[32] = 0;
|
||||
out_6423431565507769528[33] = 0;
|
||||
out_6423431565507769528[34] = 0;
|
||||
out_6423431565507769528[35] = 0;
|
||||
out_6423431565507769528[36] = 0;
|
||||
out_6423431565507769528[37] = 0;
|
||||
out_6423431565507769528[38] = 0;
|
||||
out_6423431565507769528[39] = 0;
|
||||
out_6423431565507769528[40] = 1;
|
||||
out_6423431565507769528[41] = 0;
|
||||
out_6423431565507769528[42] = 0;
|
||||
out_6423431565507769528[43] = 0;
|
||||
out_6423431565507769528[44] = 0;
|
||||
out_6423431565507769528[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_6423431565507769528[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2));
|
||||
out_6423431565507769528[47] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_6423431565507769528[48] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_6423431565507769528[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_6423431565507769528[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1;
|
||||
out_6423431565507769528[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]));
|
||||
out_6423431565507769528[52] = dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_6423431565507769528[53] = -9.8100000000000005*dt;
|
||||
out_6423431565507769528[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_6423431565507769528[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2));
|
||||
out_6423431565507769528[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_6423431565507769528[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_6423431565507769528[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_6423431565507769528[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]);
|
||||
out_6423431565507769528[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_6423431565507769528[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_6423431565507769528[62] = 0;
|
||||
out_6423431565507769528[63] = 0;
|
||||
out_6423431565507769528[64] = 0;
|
||||
out_6423431565507769528[65] = 0;
|
||||
out_6423431565507769528[66] = 0;
|
||||
out_6423431565507769528[67] = 0;
|
||||
out_6423431565507769528[68] = 0;
|
||||
out_6423431565507769528[69] = 0;
|
||||
out_6423431565507769528[70] = 1;
|
||||
out_6423431565507769528[71] = 0;
|
||||
out_6423431565507769528[72] = 0;
|
||||
out_6423431565507769528[73] = 0;
|
||||
out_6423431565507769528[74] = 0;
|
||||
out_6423431565507769528[75] = 0;
|
||||
out_6423431565507769528[76] = 0;
|
||||
out_6423431565507769528[77] = 0;
|
||||
out_6423431565507769528[78] = 0;
|
||||
out_6423431565507769528[79] = 0;
|
||||
out_6423431565507769528[80] = 1;
|
||||
}
|
||||
void h_25(double *state, double *unused, double *out_9136101134851125551) {
|
||||
out_9136101134851125551[0] = state[6];
|
||||
void h_25(double *state, double *unused, double *out_8281489855210528984) {
|
||||
out_8281489855210528984[0] = state[6];
|
||||
}
|
||||
void H_25(double *state, double *unused, double *out_7713208271076950079) {
|
||||
out_7713208271076950079[0] = 0;
|
||||
out_7713208271076950079[1] = 0;
|
||||
out_7713208271076950079[2] = 0;
|
||||
out_7713208271076950079[3] = 0;
|
||||
out_7713208271076950079[4] = 0;
|
||||
out_7713208271076950079[5] = 0;
|
||||
out_7713208271076950079[6] = 1;
|
||||
out_7713208271076950079[7] = 0;
|
||||
out_7713208271076950079[8] = 0;
|
||||
void H_25(double *state, double *unused, double *out_257722837092792508) {
|
||||
out_257722837092792508[0] = 0;
|
||||
out_257722837092792508[1] = 0;
|
||||
out_257722837092792508[2] = 0;
|
||||
out_257722837092792508[3] = 0;
|
||||
out_257722837092792508[4] = 0;
|
||||
out_257722837092792508[5] = 0;
|
||||
out_257722837092792508[6] = 1;
|
||||
out_257722837092792508[7] = 0;
|
||||
out_257722837092792508[8] = 0;
|
||||
}
|
||||
void h_24(double *state, double *unused, double *out_8665340836537612490) {
|
||||
out_8665340836537612490[0] = state[4];
|
||||
out_8665340836537612490[1] = state[5];
|
||||
void h_24(double *state, double *unused, double *out_5654195456743599601) {
|
||||
out_5654195456743599601[0] = state[4];
|
||||
out_5654195456743599601[1] = state[5];
|
||||
}
|
||||
void H_24(double *state, double *unused, double *out_7175610203830278401) {
|
||||
out_7175610203830278401[0] = 0;
|
||||
out_7175610203830278401[1] = 0;
|
||||
out_7175610203830278401[2] = 0;
|
||||
out_7175610203830278401[3] = 0;
|
||||
out_7175610203830278401[4] = 1;
|
||||
out_7175610203830278401[5] = 0;
|
||||
out_7175610203830278401[6] = 0;
|
||||
out_7175610203830278401[7] = 0;
|
||||
out_7175610203830278401[8] = 0;
|
||||
out_7175610203830278401[9] = 0;
|
||||
out_7175610203830278401[10] = 0;
|
||||
out_7175610203830278401[11] = 0;
|
||||
out_7175610203830278401[12] = 0;
|
||||
out_7175610203830278401[13] = 0;
|
||||
out_7175610203830278401[14] = 1;
|
||||
out_7175610203830278401[15] = 0;
|
||||
out_7175610203830278401[16] = 0;
|
||||
out_7175610203830278401[17] = 0;
|
||||
void H_24(double *state, double *unused, double *out_2483430621071661070) {
|
||||
out_2483430621071661070[0] = 0;
|
||||
out_2483430621071661070[1] = 0;
|
||||
out_2483430621071661070[2] = 0;
|
||||
out_2483430621071661070[3] = 0;
|
||||
out_2483430621071661070[4] = 1;
|
||||
out_2483430621071661070[5] = 0;
|
||||
out_2483430621071661070[6] = 0;
|
||||
out_2483430621071661070[7] = 0;
|
||||
out_2483430621071661070[8] = 0;
|
||||
out_2483430621071661070[9] = 0;
|
||||
out_2483430621071661070[10] = 0;
|
||||
out_2483430621071661070[11] = 0;
|
||||
out_2483430621071661070[12] = 0;
|
||||
out_2483430621071661070[13] = 0;
|
||||
out_2483430621071661070[14] = 1;
|
||||
out_2483430621071661070[15] = 0;
|
||||
out_2483430621071661070[16] = 0;
|
||||
out_2483430621071661070[17] = 0;
|
||||
}
|
||||
void h_30(double *state, double *unused, double *out_4641549406917500638) {
|
||||
out_4641549406917500638[0] = state[4];
|
||||
void h_30(double *state, double *unused, double *out_8438676523561658129) {
|
||||
out_8438676523561658129[0] = state[4];
|
||||
}
|
||||
void H_30(double *state, double *unused, double *out_3185511940949341881) {
|
||||
out_3185511940949341881[0] = 0;
|
||||
out_3185511940949341881[1] = 0;
|
||||
out_3185511940949341881[2] = 0;
|
||||
out_3185511940949341881[3] = 0;
|
||||
out_3185511940949341881[4] = 1;
|
||||
out_3185511940949341881[5] = 0;
|
||||
out_3185511940949341881[6] = 0;
|
||||
out_3185511940949341881[7] = 0;
|
||||
out_3185511940949341881[8] = 0;
|
||||
void H_30(double *state, double *unused, double *out_7174413178584409263) {
|
||||
out_7174413178584409263[0] = 0;
|
||||
out_7174413178584409263[1] = 0;
|
||||
out_7174413178584409263[2] = 0;
|
||||
out_7174413178584409263[3] = 0;
|
||||
out_7174413178584409263[4] = 1;
|
||||
out_7174413178584409263[5] = 0;
|
||||
out_7174413178584409263[6] = 0;
|
||||
out_7174413178584409263[7] = 0;
|
||||
out_7174413178584409263[8] = 0;
|
||||
}
|
||||
void h_26(double *state, double *unused, double *out_2793594027511200175) {
|
||||
out_2793594027511200175[0] = state[7];
|
||||
void h_26(double *state, double *unused, double *out_1419904868343052079) {
|
||||
out_1419904868343052079[0] = state[7];
|
||||
}
|
||||
void H_26(double *state, double *unused, double *out_3971704952202893855) {
|
||||
out_3971704952202893855[0] = 0;
|
||||
out_3971704952202893855[1] = 0;
|
||||
out_3971704952202893855[2] = 0;
|
||||
out_3971704952202893855[3] = 0;
|
||||
out_3971704952202893855[4] = 0;
|
||||
out_3971704952202893855[5] = 0;
|
||||
out_3971704952202893855[6] = 0;
|
||||
out_3971704952202893855[7] = 1;
|
||||
out_3971704952202893855[8] = 0;
|
||||
void H_26(double *state, double *unused, double *out_3562248806853593109) {
|
||||
out_3562248806853593109[0] = 0;
|
||||
out_3562248806853593109[1] = 0;
|
||||
out_3562248806853593109[2] = 0;
|
||||
out_3562248806853593109[3] = 0;
|
||||
out_3562248806853593109[4] = 0;
|
||||
out_3562248806853593109[5] = 0;
|
||||
out_3562248806853593109[6] = 0;
|
||||
out_3562248806853593109[7] = 1;
|
||||
out_3562248806853593109[8] = 0;
|
||||
}
|
||||
void h_27(double *state, double *unused, double *out_5860253322103668962) {
|
||||
out_5860253322103668962[0] = state[3];
|
||||
void h_27(double *state, double *unused, double *out_1905364559686504598) {
|
||||
out_1905364559686504598[0] = state[3];
|
||||
}
|
||||
void H_27(double *state, double *unused, double *out_5409106012133285098) {
|
||||
out_5409106012133285098[0] = 0;
|
||||
out_5409106012133285098[1] = 0;
|
||||
out_5409106012133285098[2] = 0;
|
||||
out_5409106012133285098[3] = 1;
|
||||
out_5409106012133285098[4] = 0;
|
||||
out_5409106012133285098[5] = 0;
|
||||
out_5409106012133285098[6] = 0;
|
||||
out_5409106012133285098[7] = 0;
|
||||
out_5409106012133285098[8] = 0;
|
||||
void H_27(double *state, double *unused, double *out_4999649866783984352) {
|
||||
out_4999649866783984352[0] = 0;
|
||||
out_4999649866783984352[1] = 0;
|
||||
out_4999649866783984352[2] = 0;
|
||||
out_4999649866783984352[3] = 1;
|
||||
out_4999649866783984352[4] = 0;
|
||||
out_4999649866783984352[5] = 0;
|
||||
out_4999649866783984352[6] = 0;
|
||||
out_4999649866783984352[7] = 0;
|
||||
out_4999649866783984352[8] = 0;
|
||||
}
|
||||
void h_29(double *state, double *unused, double *out_5585059259819163073) {
|
||||
out_5585059259819163073[0] = state[1];
|
||||
void h_29(double *state, double *unused, double *out_3005304846354827708) {
|
||||
out_3005304846354827708[0] = state[1];
|
||||
}
|
||||
void H_29(double *state, double *unused, double *out_3695743285263734065) {
|
||||
out_3695743285263734065[0] = 0;
|
||||
out_3695743285263734065[1] = 1;
|
||||
out_3695743285263734065[2] = 0;
|
||||
out_3695743285263734065[3] = 0;
|
||||
out_3695743285263734065[4] = 0;
|
||||
out_3695743285263734065[5] = 0;
|
||||
out_3695743285263734065[6] = 0;
|
||||
out_3695743285263734065[7] = 0;
|
||||
out_3695743285263734065[8] = 0;
|
||||
void H_29(double *state, double *unused, double *out_7684644522898801447) {
|
||||
out_7684644522898801447[0] = 0;
|
||||
out_7684644522898801447[1] = 1;
|
||||
out_7684644522898801447[2] = 0;
|
||||
out_7684644522898801447[3] = 0;
|
||||
out_7684644522898801447[4] = 0;
|
||||
out_7684644522898801447[5] = 0;
|
||||
out_7684644522898801447[6] = 0;
|
||||
out_7684644522898801447[7] = 0;
|
||||
out_7684644522898801447[8] = 0;
|
||||
}
|
||||
void h_28(double *state, double *unused, double *out_6187449234192033508) {
|
||||
out_6187449234192033508[0] = state[0];
|
||||
void h_28(double *state, double *unused, double *out_8832630219803516209) {
|
||||
out_8832630219803516209[0] = state[0];
|
||||
}
|
||||
void H_28(double *state, double *unused, double *out_1386655731805796509) {
|
||||
out_1386655731805796509[0] = 1;
|
||||
out_1386655731805796509[1] = 0;
|
||||
out_1386655731805796509[2] = 0;
|
||||
out_1386655731805796509[3] = 0;
|
||||
out_1386655731805796509[4] = 0;
|
||||
out_1386655731805796509[5] = 0;
|
||||
out_1386655731805796509[6] = 0;
|
||||
out_1386655731805796509[7] = 0;
|
||||
out_1386655731805796509[8] = 0;
|
||||
void H_28(double *state, double *unused, double *out_1796111877155097255) {
|
||||
out_1796111877155097255[0] = 1;
|
||||
out_1796111877155097255[1] = 0;
|
||||
out_1796111877155097255[2] = 0;
|
||||
out_1796111877155097255[3] = 0;
|
||||
out_1796111877155097255[4] = 0;
|
||||
out_1796111877155097255[5] = 0;
|
||||
out_1796111877155097255[6] = 0;
|
||||
out_1796111877155097255[7] = 0;
|
||||
out_1796111877155097255[8] = 0;
|
||||
}
|
||||
void h_31(double *state, double *unused, double *out_2365265908500774615) {
|
||||
out_2365265908500774615[0] = state[8];
|
||||
void h_31(double *state, double *unused, double *out_6225098197673216166) {
|
||||
out_6225098197673216166[0] = state[8];
|
||||
}
|
||||
void H_31(double *state, double *unused, double *out_7743854232953910507) {
|
||||
out_7743854232953910507[0] = 0;
|
||||
out_7743854232953910507[1] = 0;
|
||||
out_7743854232953910507[2] = 0;
|
||||
out_7743854232953910507[3] = 0;
|
||||
out_7743854232953910507[4] = 0;
|
||||
out_7743854232953910507[5] = 0;
|
||||
out_7743854232953910507[6] = 0;
|
||||
out_7743854232953910507[7] = 0;
|
||||
out_7743854232953910507[8] = 1;
|
||||
void H_31(double *state, double *unused, double *out_7334398087604609761) {
|
||||
out_7334398087604609761[0] = 0;
|
||||
out_7334398087604609761[1] = 0;
|
||||
out_7334398087604609761[2] = 0;
|
||||
out_7334398087604609761[3] = 0;
|
||||
out_7334398087604609761[4] = 0;
|
||||
out_7334398087604609761[5] = 0;
|
||||
out_7334398087604609761[6] = 0;
|
||||
out_7334398087604609761[7] = 0;
|
||||
out_7334398087604609761[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_3321760492551468366) {
|
||||
err_fun(nom_x, delta_x, out_3321760492551468366);
|
||||
void car_err_fun(double *nom_x, double *delta_x, double *out_760253992355356602) {
|
||||
err_fun(nom_x, delta_x, out_760253992355356602);
|
||||
}
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_3697485090417495632) {
|
||||
inv_err_fun(nom_x, true_x, out_3697485090417495632);
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_4983548601721046404) {
|
||||
inv_err_fun(nom_x, true_x, out_4983548601721046404);
|
||||
}
|
||||
void car_H_mod_fun(double *state, double *out_4190227621087458402) {
|
||||
H_mod_fun(state, out_4190227621087458402);
|
||||
void car_H_mod_fun(double *state, double *out_8995833010704521871) {
|
||||
H_mod_fun(state, out_8995833010704521871);
|
||||
}
|
||||
void car_f_fun(double *state, double dt, double *out_6456348943274406543) {
|
||||
f_fun(state, dt, out_6456348943274406543);
|
||||
void car_f_fun(double *state, double dt, double *out_4562655195590537984) {
|
||||
f_fun(state, dt, out_4562655195590537984);
|
||||
}
|
||||
void car_F_fun(double *state, double dt, double *out_4201765287475637381) {
|
||||
F_fun(state, dt, out_4201765287475637381);
|
||||
void car_F_fun(double *state, double dt, double *out_6423431565507769528) {
|
||||
F_fun(state, dt, out_6423431565507769528);
|
||||
}
|
||||
void car_h_25(double *state, double *unused, double *out_9136101134851125551) {
|
||||
h_25(state, unused, out_9136101134851125551);
|
||||
void car_h_25(double *state, double *unused, double *out_8281489855210528984) {
|
||||
h_25(state, unused, out_8281489855210528984);
|
||||
}
|
||||
void car_H_25(double *state, double *unused, double *out_7713208271076950079) {
|
||||
H_25(state, unused, out_7713208271076950079);
|
||||
void car_H_25(double *state, double *unused, double *out_257722837092792508) {
|
||||
H_25(state, unused, out_257722837092792508);
|
||||
}
|
||||
void car_h_24(double *state, double *unused, double *out_8665340836537612490) {
|
||||
h_24(state, unused, out_8665340836537612490);
|
||||
void car_h_24(double *state, double *unused, double *out_5654195456743599601) {
|
||||
h_24(state, unused, out_5654195456743599601);
|
||||
}
|
||||
void car_H_24(double *state, double *unused, double *out_7175610203830278401) {
|
||||
H_24(state, unused, out_7175610203830278401);
|
||||
void car_H_24(double *state, double *unused, double *out_2483430621071661070) {
|
||||
H_24(state, unused, out_2483430621071661070);
|
||||
}
|
||||
void car_h_30(double *state, double *unused, double *out_4641549406917500638) {
|
||||
h_30(state, unused, out_4641549406917500638);
|
||||
void car_h_30(double *state, double *unused, double *out_8438676523561658129) {
|
||||
h_30(state, unused, out_8438676523561658129);
|
||||
}
|
||||
void car_H_30(double *state, double *unused, double *out_3185511940949341881) {
|
||||
H_30(state, unused, out_3185511940949341881);
|
||||
void car_H_30(double *state, double *unused, double *out_7174413178584409263) {
|
||||
H_30(state, unused, out_7174413178584409263);
|
||||
}
|
||||
void car_h_26(double *state, double *unused, double *out_2793594027511200175) {
|
||||
h_26(state, unused, out_2793594027511200175);
|
||||
void car_h_26(double *state, double *unused, double *out_1419904868343052079) {
|
||||
h_26(state, unused, out_1419904868343052079);
|
||||
}
|
||||
void car_H_26(double *state, double *unused, double *out_3971704952202893855) {
|
||||
H_26(state, unused, out_3971704952202893855);
|
||||
void car_H_26(double *state, double *unused, double *out_3562248806853593109) {
|
||||
H_26(state, unused, out_3562248806853593109);
|
||||
}
|
||||
void car_h_27(double *state, double *unused, double *out_5860253322103668962) {
|
||||
h_27(state, unused, out_5860253322103668962);
|
||||
void car_h_27(double *state, double *unused, double *out_1905364559686504598) {
|
||||
h_27(state, unused, out_1905364559686504598);
|
||||
}
|
||||
void car_H_27(double *state, double *unused, double *out_5409106012133285098) {
|
||||
H_27(state, unused, out_5409106012133285098);
|
||||
void car_H_27(double *state, double *unused, double *out_4999649866783984352) {
|
||||
H_27(state, unused, out_4999649866783984352);
|
||||
}
|
||||
void car_h_29(double *state, double *unused, double *out_5585059259819163073) {
|
||||
h_29(state, unused, out_5585059259819163073);
|
||||
void car_h_29(double *state, double *unused, double *out_3005304846354827708) {
|
||||
h_29(state, unused, out_3005304846354827708);
|
||||
}
|
||||
void car_H_29(double *state, double *unused, double *out_3695743285263734065) {
|
||||
H_29(state, unused, out_3695743285263734065);
|
||||
void car_H_29(double *state, double *unused, double *out_7684644522898801447) {
|
||||
H_29(state, unused, out_7684644522898801447);
|
||||
}
|
||||
void car_h_28(double *state, double *unused, double *out_6187449234192033508) {
|
||||
h_28(state, unused, out_6187449234192033508);
|
||||
void car_h_28(double *state, double *unused, double *out_8832630219803516209) {
|
||||
h_28(state, unused, out_8832630219803516209);
|
||||
}
|
||||
void car_H_28(double *state, double *unused, double *out_1386655731805796509) {
|
||||
H_28(state, unused, out_1386655731805796509);
|
||||
void car_H_28(double *state, double *unused, double *out_1796111877155097255) {
|
||||
H_28(state, unused, out_1796111877155097255);
|
||||
}
|
||||
void car_h_31(double *state, double *unused, double *out_2365265908500774615) {
|
||||
h_31(state, unused, out_2365265908500774615);
|
||||
void car_h_31(double *state, double *unused, double *out_6225098197673216166) {
|
||||
h_31(state, unused, out_6225098197673216166);
|
||||
}
|
||||
void car_H_31(double *state, double *unused, double *out_7743854232953910507) {
|
||||
H_31(state, unused, out_7743854232953910507);
|
||||
void car_H_31(double *state, double *unused, double *out_7334398087604609761) {
|
||||
H_31(state, unused, out_7334398087604609761);
|
||||
}
|
||||
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_3321760492551468366);
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_3697485090417495632);
|
||||
void car_H_mod_fun(double *state, double *out_4190227621087458402);
|
||||
void car_f_fun(double *state, double dt, double *out_6456348943274406543);
|
||||
void car_F_fun(double *state, double dt, double *out_4201765287475637381);
|
||||
void car_h_25(double *state, double *unused, double *out_9136101134851125551);
|
||||
void car_H_25(double *state, double *unused, double *out_7713208271076950079);
|
||||
void car_h_24(double *state, double *unused, double *out_8665340836537612490);
|
||||
void car_H_24(double *state, double *unused, double *out_7175610203830278401);
|
||||
void car_h_30(double *state, double *unused, double *out_4641549406917500638);
|
||||
void car_H_30(double *state, double *unused, double *out_3185511940949341881);
|
||||
void car_h_26(double *state, double *unused, double *out_2793594027511200175);
|
||||
void car_H_26(double *state, double *unused, double *out_3971704952202893855);
|
||||
void car_h_27(double *state, double *unused, double *out_5860253322103668962);
|
||||
void car_H_27(double *state, double *unused, double *out_5409106012133285098);
|
||||
void car_h_29(double *state, double *unused, double *out_5585059259819163073);
|
||||
void car_H_29(double *state, double *unused, double *out_3695743285263734065);
|
||||
void car_h_28(double *state, double *unused, double *out_6187449234192033508);
|
||||
void car_H_28(double *state, double *unused, double *out_1386655731805796509);
|
||||
void car_h_31(double *state, double *unused, double *out_2365265908500774615);
|
||||
void car_H_31(double *state, double *unused, double *out_7743854232953910507);
|
||||
void car_err_fun(double *nom_x, double *delta_x, double *out_760253992355356602);
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_4983548601721046404);
|
||||
void car_H_mod_fun(double *state, double *out_8995833010704521871);
|
||||
void car_f_fun(double *state, double dt, double *out_4562655195590537984);
|
||||
void car_F_fun(double *state, double dt, double *out_6423431565507769528);
|
||||
void car_h_25(double *state, double *unused, double *out_8281489855210528984);
|
||||
void car_H_25(double *state, double *unused, double *out_257722837092792508);
|
||||
void car_h_24(double *state, double *unused, double *out_5654195456743599601);
|
||||
void car_H_24(double *state, double *unused, double *out_2483430621071661070);
|
||||
void car_h_30(double *state, double *unused, double *out_8438676523561658129);
|
||||
void car_H_30(double *state, double *unused, double *out_7174413178584409263);
|
||||
void car_h_26(double *state, double *unused, double *out_1419904868343052079);
|
||||
void car_H_26(double *state, double *unused, double *out_3562248806853593109);
|
||||
void car_h_27(double *state, double *unused, double *out_1905364559686504598);
|
||||
void car_H_27(double *state, double *unused, double *out_4999649866783984352);
|
||||
void car_h_29(double *state, double *unused, double *out_3005304846354827708);
|
||||
void car_H_29(double *state, double *unused, double *out_7684644522898801447);
|
||||
void car_h_28(double *state, double *unused, double *out_8832630219803516209);
|
||||
void car_H_28(double *state, double *unused, double *out_1796111877155097255);
|
||||
void car_h_31(double *state, double *unused, double *out_6225098197673216166);
|
||||
void car_H_31(double *state, double *unused, double *out_7334398087604609761);
|
||||
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_6247163002975687744);
|
||||
void pose_inv_err_fun(double *nom_x, double *true_x, double *out_2784495282432373016);
|
||||
void pose_H_mod_fun(double *state, double *out_662979392671356586);
|
||||
void pose_f_fun(double *state, double dt, double *out_5358842043988680887);
|
||||
void pose_F_fun(double *state, double dt, double *out_6970610951587922797);
|
||||
void pose_h_4(double *state, double *unused, double *out_3613363558024225199);
|
||||
void pose_H_4(double *state, double *unused, double *out_8770780261124510538);
|
||||
void pose_h_10(double *state, double *unused, double *out_7325246586980236980);
|
||||
void pose_H_10(double *state, double *unused, double *out_8143750738918534214);
|
||||
void pose_h_13(double *state, double *unused, double *out_4440237870440636920);
|
||||
void pose_H_13(double *state, double *unused, double *out_5558506435792177737);
|
||||
void pose_h_14(double *state, double *unused, double *out_854572314087465107);
|
||||
void pose_H_14(double *state, double *unused, double *out_4807539404785026009);
|
||||
void pose_err_fun(double *nom_x, double *delta_x, double *out_7113141565155944071);
|
||||
void pose_inv_err_fun(double *nom_x, double *true_x, double *out_4273806753012627861);
|
||||
void pose_H_mod_fun(double *state, double *out_4327706851715669235);
|
||||
void pose_f_fun(double *state, double dt, double *out_497730658810754078);
|
||||
void pose_F_fun(double *state, double dt, double *out_6088738551748760158);
|
||||
void pose_h_4(double *state, double *unused, double *out_2742355909746826294);
|
||||
void pose_H_4(double *state, double *unused, double *out_3203571547522250360);
|
||||
void pose_h_10(double *state, double *unused, double *out_5392750946095808839);
|
||||
void pose_H_10(double *state, double *unused, double *out_6832887606116687430);
|
||||
void pose_h_13(double *state, double *unused, double *out_7827281880185644605);
|
||||
void pose_H_13(double *state, double *unused, double *out_8702277810082441);
|
||||
void pose_h_14(double *state, double *unused, double *out_3917682265727873259);
|
||||
void pose_H_14(double *state, double *unused, double *out_759669308817234169);
|
||||
void pose_predict(double *in_x, double *in_P, double *in_Q, double dt);
|
||||
}
|
||||
Binary file not shown.
@@ -223,8 +223,10 @@ class ConditionalExperimentalMode:
|
||||
|
||||
slower_lead = starpilot_toggles.conditional_slower_lead and self.starpilot_planner.starpilot_following.slower_lead
|
||||
stopped_lead = starpilot_toggles.conditional_stopped_lead and lead_speed < 1
|
||||
allow_raw_vision_slow_lead = not self.starpilot_planner.tracking_lead
|
||||
raw_vision_slow_lead = bool(
|
||||
starpilot_toggles.conditional_slower_lead and
|
||||
allow_raw_vision_slow_lead and
|
||||
lead_status and
|
||||
lead_prob >= self.SLOW_LEAD_CONTINUITY_MIN_MODEL_PROB and
|
||||
lead_distance < max(40.0, v_ego * self.SLOW_LEAD_CONTINUITY_MAX_DISTANCE_TIME) and
|
||||
|
||||
Reference in New Issue
Block a user