mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-08-24 01:33:46 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0cb46873f9 | |||
| 7d3723a1db | |||
| ceadca17a3 |
@@ -23,13 +23,30 @@ CAMERA_CANCEL_DELAY_FRAMES = 10
|
||||
MIN_STEER_MSG_INTERVAL_MS = 15
|
||||
|
||||
|
||||
def get_lka_steering_cmd_counter(counter, CS):
|
||||
if CS.loopback_lka_steering_cmd_updated:
|
||||
return (CS.loopback_lka_steering_cmd_counter + 1) % 4
|
||||
|
||||
if CS.loopback_lka_steering_cmd_ts_nanos == 0 and counter < 0:
|
||||
return (CS.pt_lka_steering_cmd_counter + 1) % 4
|
||||
|
||||
return counter % 4
|
||||
|
||||
|
||||
def get_stock_cc_active_for_cancel(CP, CS):
|
||||
if CS.out.accFaulted:
|
||||
return False
|
||||
|
||||
stock_cc_active = CS.out.cruiseState.enabled or CS.pcm_acc_status != AccState.OFF
|
||||
if CP.carFingerprint == CAR.CHEVROLET_BOLT_ACC_2022_2023_PEDAL:
|
||||
return CS.out.cruiseState.enabled
|
||||
return stock_cc_active
|
||||
|
||||
|
||||
def should_send_stock_long_cancel(cancel_counter, CS):
|
||||
return cancel_counter > CAMERA_CANCEL_DELAY_FRAMES and not CS.out.accFaulted
|
||||
|
||||
|
||||
def use_interceptor_sng_launch(CP, CS, maneuver_mode=False):
|
||||
# Restrict the fixed standstill-launch gas to actual near-zero motion
|
||||
# so higher accel requests can take over once the car has started moving.
|
||||
@@ -112,7 +129,7 @@ class CarController(CarControllerBase):
|
||||
self.last_button_frame = 0
|
||||
self.cancel_counter = 0
|
||||
|
||||
self.lka_steering_cmd_counter = 0
|
||||
self.lka_steering_cmd_counter = -1
|
||||
self.lka_icon_status_last = (False, False)
|
||||
|
||||
self.params = CarControllerParams(self.CP)
|
||||
@@ -396,16 +413,12 @@ class CarController(CarControllerBase):
|
||||
if CS.loopback_lka_steering_cmd_ts_nanos == 0 or out_of_sync:
|
||||
steer_step = self.params.STEER_STEP
|
||||
|
||||
self.lka_steering_cmd_counter += 1 if CS.loopback_lka_steering_cmd_updated else 0
|
||||
self.lka_steering_cmd_counter = get_lka_steering_cmd_counter(self.lka_steering_cmd_counter, CS)
|
||||
|
||||
# Avoid GM EPS faults when transmitting messages too close together: skip this transmit if we
|
||||
# received the ASCMLKASteeringCmd loopback confirmation too recently
|
||||
last_lka_steer_msg_ms = (now_nanos - CS.loopback_lka_steering_cmd_ts_nanos) * 1e-6
|
||||
if (self.frame - self.last_steer_frame) >= steer_step and last_lka_steer_msg_ms > MIN_STEER_MSG_INTERVAL_MS:
|
||||
# Initialize ASCMLKASteeringCmd counter using the camera until we get a msg on the bus
|
||||
if CS.loopback_lka_steering_cmd_ts_nanos == 0:
|
||||
self.lka_steering_cmd_counter = CS.pt_lka_steering_cmd_counter + 1
|
||||
|
||||
if CC.latActive:
|
||||
new_torque = int(round(actuators.torque * self.params.STEER_MAX))
|
||||
apply_torque = apply_driver_steer_torque_limits(new_torque, self.apply_torque_last, CS.out.steeringTorque, self.params)
|
||||
@@ -418,8 +431,10 @@ class CarController(CarControllerBase):
|
||||
|
||||
self.last_steer_frame = self.frame
|
||||
self.apply_torque_last = apply_torque
|
||||
idx = self.lka_steering_cmd_counter % 4
|
||||
idx = self.lka_steering_cmd_counter
|
||||
can_sends.append(gmcan.create_steering_control(self.packer_pt, CanBus.POWERTRAIN, apply_torque, idx, CC.latActive))
|
||||
# Keep the counter moving even if panda stops returning loopback confirmations.
|
||||
self.lka_steering_cmd_counter = (idx + 1) % 4
|
||||
|
||||
if should_spoof_ecm_cruise_status(self.CP) and self.frame % 4 == 0:
|
||||
can_sends.append(gmcan.create_ecm_cruise_control_command(
|
||||
@@ -551,7 +566,12 @@ class CarController(CarControllerBase):
|
||||
if self.CP.enableGasInterceptorDEPRECATED:
|
||||
can_sends.append(create_gas_interceptor_command(self.packer_pt, interceptor_gas_cmd, idx))
|
||||
if self.CP.carFingerprint not in CC_ONLY_CAR:
|
||||
friction_brake_bus = CanBus.CHASSIS
|
||||
volt_gateway_alt_brake = (
|
||||
self.CP.carFingerprint == CAR.CHEVROLET_VOLT and
|
||||
self.CP.networkLocation == NetworkLocation.gateway and
|
||||
bool(self.CP.flags & GMFlags.NO_ACCELERATOR_POS_MSG.value)
|
||||
)
|
||||
friction_brake_bus = CanBus.POWERTRAIN if volt_gateway_alt_brake else CanBus.CHASSIS
|
||||
# GM Camera exceptions
|
||||
# TODO: can we always check the longControlState?
|
||||
if self.CP.networkLocation == NetworkLocation.fwdCamera:
|
||||
@@ -638,10 +658,10 @@ class CarController(CarControllerBase):
|
||||
self.cancel_counter = self.cancel_counter + 1 if CC.cruiseControl.cancel else 0
|
||||
|
||||
# Stock longitudinal, integrated at camera
|
||||
if self.CP.carFingerprint == CAR.CHEVROLET_MALIBU_HYBRID_CC and self.cancel_counter > CAMERA_CANCEL_DELAY_FRAMES:
|
||||
if self.CP.carFingerprint == CAR.CHEVROLET_MALIBU_HYBRID_CC and should_send_stock_long_cancel(self.cancel_counter, CS):
|
||||
malibu_cancel_requested = True
|
||||
elif (self.frame - self.last_button_frame) * DT_CTRL > 0.04:
|
||||
if self.cancel_counter > CAMERA_CANCEL_DELAY_FRAMES:
|
||||
if should_send_stock_long_cancel(self.cancel_counter, CS):
|
||||
self.last_button_frame = self.frame
|
||||
sdgm_stock_cancel_pt = (
|
||||
self.CP.carFingerprint in SDGM_CAR and
|
||||
|
||||
@@ -26,6 +26,7 @@ TransmissionType = structs.CarParams.TransmissionType
|
||||
NetworkLocation = structs.CarParams.NetworkLocation
|
||||
|
||||
STANDSTILL_THRESHOLD = 10 * 0.0311
|
||||
VOLT_EBCM_BRAKE_PRESSED_THRESHOLD = 6 / 0xd0
|
||||
|
||||
BUTTONS_DICT = {CruiseButtons.RES_ACCEL: ButtonType.accelCruise, CruiseButtons.DECEL_SET: ButtonType.decelCruise,
|
||||
CruiseButtons.MAIN: ButtonType.mainCruise, CruiseButtons.CANCEL: ButtonType.cancel}
|
||||
@@ -46,6 +47,7 @@ class CarState(CarStateBase):
|
||||
self.cluster_min_speed = CV.KPH_TO_MS / 2.
|
||||
|
||||
self.loopback_lka_steering_cmd_updated = False
|
||||
self.loopback_lka_steering_cmd_counter = 0
|
||||
self.loopback_lka_steering_cmd_ts_nanos = 0
|
||||
self.pt_lka_steering_cmd_counter = 0
|
||||
self.cam_lka_steering_cmd_counter = 0
|
||||
@@ -119,6 +121,7 @@ class CarState(CarStateBase):
|
||||
# Variables used for avoiding LKAS faults
|
||||
self.loopback_lka_steering_cmd_updated = len(loopback_cp.vl_all["ASCMLKASteeringCmd"]["RollingCounter"]) > 0
|
||||
if self.loopback_lka_steering_cmd_updated:
|
||||
self.loopback_lka_steering_cmd_counter = loopback_cp.vl["ASCMLKASteeringCmd"]["RollingCounter"]
|
||||
self.loopback_lka_steering_cmd_ts_nanos = loopback_cp.ts_nanos["ASCMLKASteeringCmd"]["RollingCounter"]
|
||||
if self.CP.networkLocation == NetworkLocation.fwdCamera and not self.CP.flags & GMFlags.NO_CAMERA.value:
|
||||
self.pt_lka_steering_cmd_counter = pt_cp.vl["ASCMLKASteeringCmd"]["RollingCounter"]
|
||||
@@ -153,7 +156,9 @@ class CarState(CarStateBase):
|
||||
else:
|
||||
ret.brake = pt_cp.vl["ECMAcceleratorPos"]["BrakePedalPos"]
|
||||
|
||||
if self.CP.carFingerprint in {CAR.CHEVROLET_MALIBU_CC} or (self.CP.carFingerprint == CAR.CHEVROLET_BLAZER and not no_accel_pos):
|
||||
if self.CP.carFingerprint == CAR.CHEVROLET_VOLT and no_accel_pos:
|
||||
ret.brakePressed = ret.brake >= VOLT_EBCM_BRAKE_PRESSED_THRESHOLD
|
||||
elif self.CP.carFingerprint in {CAR.CHEVROLET_MALIBU_CC} or (self.CP.carFingerprint == CAR.CHEVROLET_BLAZER and not no_accel_pos):
|
||||
ret.brakePressed = ret.brake >= 8
|
||||
elif (self.CP.flags & GMFlags.FORCE_BRAKE_C9.value) or ((self.CP.networkLocation == NetworkLocation.fwdCamera) and (self.CP.carFingerprint != CAR.CHEVROLET_BLAZER)):
|
||||
ret.brakePressed = pt_cp.vl["ECMEngineStatus"]["BrakePressed"] != 0
|
||||
|
||||
@@ -620,6 +620,9 @@ class CarInterface(CarInterfaceBase):
|
||||
|
||||
if ACCELERATOR_POS_MSG not in fingerprint[CanBus.POWERTRAIN]:
|
||||
ret.flags |= GMFlags.NO_ACCELERATOR_POS_MSG.value
|
||||
if candidate == CAR.CHEVROLET_VOLT and ret.networkLocation == NetworkLocation.gateway:
|
||||
# Reuse the no-camera safety bit as an ASCM Volt selector for the alternate EBCM brake path.
|
||||
ret.safetyConfigs[0].safetyParam |= GMSafetyFlags.FLAG_GM_NO_CAMERA.value
|
||||
|
||||
try:
|
||||
remote_start_boots_comma = params.get_bool("RemoteStartBootsComma")
|
||||
|
||||
@@ -103,6 +103,7 @@ class TestGMInterface:
|
||||
starpilot_toggles=_test_starpilot_toggles())
|
||||
|
||||
assert car_params.flags & GMFlags.NO_ACCELERATOR_POS_MSG.value
|
||||
assert car_params.safetyConfigs[0].safetyParam & GMSafetyFlags.FLAG_GM_NO_CAMERA.value
|
||||
|
||||
pt_parser = CarInterface.CarState.get_can_parsers(car_params)[Bus.pt]
|
||||
assert "ECMAcceleratorPos" not in pt_parser.vl
|
||||
|
||||
@@ -84,6 +84,23 @@ class TestCanFingerprint:
|
||||
|
||||
assert candidate == "CHEVROLET_VOLT_CAMERA"
|
||||
|
||||
def test_gm_stored_candidate_fallback_demotes_volt_camera_with_only_camera_diag_msg(self):
|
||||
fingerprints = {0: {190: 6, 201: 8, 209: 7, 211: 2, 241: 6}, 2: {0x24B: 8}}
|
||||
|
||||
candidate = _get_gm_stored_candidate_fallback(fingerprints, "CHEVROLET_VOLT_CAMERA", None)
|
||||
|
||||
assert candidate == "CHEVROLET_VOLT"
|
||||
|
||||
def test_gm_stored_candidate_fallback_keeps_volt_when_bus2_only_has_forwarded_pt_core_msgs(self):
|
||||
fingerprints = {
|
||||
0: {190: 6, 201: 8, 209: 7, 211: 2, 241: 6},
|
||||
2: {201: 8, 209: 7, 211: 2, 241: 6},
|
||||
}
|
||||
|
||||
candidate = _get_gm_stored_candidate_fallback(fingerprints, "CHEVROLET_VOLT", None)
|
||||
|
||||
assert candidate == "CHEVROLET_VOLT"
|
||||
|
||||
def test_gm_stored_candidate_fallback_ignores_non_gm_fingerprint(self):
|
||||
fingerprints = {0: {1: 1, 2: 2, 3: 3, 4: 4}}
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ static bool gm_force_brake_c9 = false;
|
||||
static bool gm_panda_3d1_sched = false;
|
||||
static bool gm_panda_paddle_sched = false;
|
||||
static bool gm_bolt_2022_pedal = false;
|
||||
static bool gm_alt_brake = false;
|
||||
|
||||
static bool gm_cc_long = false;
|
||||
static bool gm_has_acc = true;
|
||||
@@ -246,10 +247,14 @@ static void gm_rx_hook(const CANPacket_t *msg) {
|
||||
brake_pressed = GET_BIT(msg, 40U);
|
||||
}
|
||||
|
||||
if ((msg->addr == 0xBEU) && ((gm_hw == GM_ASCM) || gm_sdgm || gm_ascm_int)) {
|
||||
if ((msg->addr == 0xBEU) && (((gm_hw == GM_ASCM) && !gm_alt_brake) || gm_sdgm || gm_ascm_int)) {
|
||||
brake_pressed = msg->data[1] >= 8U;
|
||||
}
|
||||
|
||||
if ((msg->addr == 0xF1U) && gm_alt_brake) {
|
||||
brake_pressed = msg->data[1] >= 6U;
|
||||
}
|
||||
|
||||
if ((msg->addr == 0xC9U) && (gm_hw == GM_CAM) && !gm_force_brake_c9) {
|
||||
brake_pressed = GET_BIT(msg, 40U);
|
||||
}
|
||||
@@ -546,6 +551,12 @@ static safety_config gm_init(uint16_t param) {
|
||||
{0x1E1, 0, 7, .check_relay = false},
|
||||
{0xBD, 0, 7, .check_relay = false},
|
||||
{0x1F5, 0, 8, .check_relay = false}}; // pt bus
|
||||
static const CanMsg GM_ASCM_ALT_BRAKE_TX_MSGS[] = {{0x180, 0, 4, .check_relay = true}, {0x409, 0, 7, .check_relay = false}, {0x40A, 0, 7, .check_relay = false}, {0x2CB, 0, 8, .check_relay = true}, {0x370, 0, 6, .check_relay = false}, {0x315, 0, 5, .check_relay = true}, // pt bus
|
||||
{0xA1, 1, 7, .check_relay = false}, {0x306, 1, 8, .check_relay = false}, {0x308, 1, 7, .check_relay = false}, {0x310, 1, 2, .check_relay = false}, // obs bus
|
||||
{0x200, 0, 6, .check_relay = false},
|
||||
{0x1E1, 0, 7, .check_relay = false},
|
||||
{0xBD, 0, 7, .check_relay = false},
|
||||
{0x1F5, 0, 8, .check_relay = false}}; // pt bus
|
||||
|
||||
|
||||
static const LongitudinalLimits GM_CAM_LONG_LIMITS = {
|
||||
@@ -660,6 +671,7 @@ static safety_config gm_init(uint16_t param) {
|
||||
gm_remote_start_boots_comma = GET_FLAG(param, GM_PARAM_REMOTE_START_BOOTS_COMMA);
|
||||
gm_panda_3d1_sched = GET_FLAG(param, GM_PARAM_PANDA_3D1_SCHED) && gm_pedal_long && !gm_has_acc && !gm_bolt_2022_pedal;
|
||||
gm_panda_paddle_sched = GET_FLAG(param, GM_PARAM_PANDA_PADDLE_SCHED) && gm_pedal_long && enable_gas_interceptor;
|
||||
gm_alt_brake = GET_FLAG(param, GM_PARAM_NO_CAMERA) && (gm_hw == GM_ASCM) && !gm_sdgm && !gm_ascm_int;
|
||||
|
||||
gm_3d1_spoof_valid = false;
|
||||
gm_3d1_internal_tx = false;
|
||||
@@ -726,6 +738,8 @@ static safety_config gm_init(uint16_t param) {
|
||||
ret = BUILD_SAFETY_CFG(gm_rx_checks, GM_CAM_TX_MSGS);
|
||||
}
|
||||
}
|
||||
} else if (gm_alt_brake) {
|
||||
ret = BUILD_SAFETY_CFG(gm_rx_checks, GM_ASCM_ALT_BRAKE_TX_MSGS);
|
||||
} else {
|
||||
ret = BUILD_SAFETY_CFG(gm_rx_checks, GM_ASCM_TX_MSGS);
|
||||
}
|
||||
|
||||
@@ -196,7 +196,15 @@ class TestGmAscmSafety(GmLongitudinalBase, TestGmSafetyBase):
|
||||
|
||||
|
||||
class TestGmAscmEVSafety(TestGmAscmSafety, TestGmEVSafetyBase):
|
||||
pass
|
||||
EXTRA_SAFETY_PARAM = GMSafetyFlags.FLAG_GM_NO_CAMERA
|
||||
TX_MSGS = [[0x180, 0], [0x409, 0], [0x40A, 0], [0x2CB, 0], [0x370, 0], [0x200, 0], [0x1E1, 0], [0xBD, 0], [0x1F5, 0], [0x315, 0],
|
||||
[0xA1, 1], [0x306, 1], [0x308, 1], [0x310, 1]]
|
||||
RELAY_MALFUNCTION_ADDRS = {0: (0x180, 0x2CB, 0x315)}
|
||||
BRAKE_BUS = 0
|
||||
|
||||
def _user_brake_msg(self, brake):
|
||||
values = {"BrakePedalPosition": 6 if brake else 0}
|
||||
return self.packer.make_can_msg_panda("EBCMBrakePedalPosition", 0, values)
|
||||
|
||||
|
||||
class TestGmCameraSafetyBase(TestGmSafetyBase):
|
||||
|
||||
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-9d2a8050-DEBUG";
|
||||
const uint8_t gitversion[19] = "DEV-59e50715-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-9d2a8050-DEBUG
|
||||
DEV-59e50715-DEBUG
|
||||
@@ -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_2689391300508487509) {
|
||||
out_2689391300508487509[0] = delta_x[0] + nom_x[0];
|
||||
out_2689391300508487509[1] = delta_x[1] + nom_x[1];
|
||||
out_2689391300508487509[2] = delta_x[2] + nom_x[2];
|
||||
out_2689391300508487509[3] = delta_x[3] + nom_x[3];
|
||||
out_2689391300508487509[4] = delta_x[4] + nom_x[4];
|
||||
out_2689391300508487509[5] = delta_x[5] + nom_x[5];
|
||||
out_2689391300508487509[6] = delta_x[6] + nom_x[6];
|
||||
out_2689391300508487509[7] = delta_x[7] + nom_x[7];
|
||||
out_2689391300508487509[8] = delta_x[8] + nom_x[8];
|
||||
void err_fun(double *nom_x, double *delta_x, double *out_1836217441218094185) {
|
||||
out_1836217441218094185[0] = delta_x[0] + nom_x[0];
|
||||
out_1836217441218094185[1] = delta_x[1] + nom_x[1];
|
||||
out_1836217441218094185[2] = delta_x[2] + nom_x[2];
|
||||
out_1836217441218094185[3] = delta_x[3] + nom_x[3];
|
||||
out_1836217441218094185[4] = delta_x[4] + nom_x[4];
|
||||
out_1836217441218094185[5] = delta_x[5] + nom_x[5];
|
||||
out_1836217441218094185[6] = delta_x[6] + nom_x[6];
|
||||
out_1836217441218094185[7] = delta_x[7] + nom_x[7];
|
||||
out_1836217441218094185[8] = delta_x[8] + nom_x[8];
|
||||
}
|
||||
void inv_err_fun(double *nom_x, double *true_x, double *out_7177783815062799236) {
|
||||
out_7177783815062799236[0] = -nom_x[0] + true_x[0];
|
||||
out_7177783815062799236[1] = -nom_x[1] + true_x[1];
|
||||
out_7177783815062799236[2] = -nom_x[2] + true_x[2];
|
||||
out_7177783815062799236[3] = -nom_x[3] + true_x[3];
|
||||
out_7177783815062799236[4] = -nom_x[4] + true_x[4];
|
||||
out_7177783815062799236[5] = -nom_x[5] + true_x[5];
|
||||
out_7177783815062799236[6] = -nom_x[6] + true_x[6];
|
||||
out_7177783815062799236[7] = -nom_x[7] + true_x[7];
|
||||
out_7177783815062799236[8] = -nom_x[8] + true_x[8];
|
||||
void inv_err_fun(double *nom_x, double *true_x, double *out_3664144515047539542) {
|
||||
out_3664144515047539542[0] = -nom_x[0] + true_x[0];
|
||||
out_3664144515047539542[1] = -nom_x[1] + true_x[1];
|
||||
out_3664144515047539542[2] = -nom_x[2] + true_x[2];
|
||||
out_3664144515047539542[3] = -nom_x[3] + true_x[3];
|
||||
out_3664144515047539542[4] = -nom_x[4] + true_x[4];
|
||||
out_3664144515047539542[5] = -nom_x[5] + true_x[5];
|
||||
out_3664144515047539542[6] = -nom_x[6] + true_x[6];
|
||||
out_3664144515047539542[7] = -nom_x[7] + true_x[7];
|
||||
out_3664144515047539542[8] = -nom_x[8] + true_x[8];
|
||||
}
|
||||
void H_mod_fun(double *state, double *out_8221602802744378233) {
|
||||
out_8221602802744378233[0] = 1.0;
|
||||
out_8221602802744378233[1] = 0.0;
|
||||
out_8221602802744378233[2] = 0.0;
|
||||
out_8221602802744378233[3] = 0.0;
|
||||
out_8221602802744378233[4] = 0.0;
|
||||
out_8221602802744378233[5] = 0.0;
|
||||
out_8221602802744378233[6] = 0.0;
|
||||
out_8221602802744378233[7] = 0.0;
|
||||
out_8221602802744378233[8] = 0.0;
|
||||
out_8221602802744378233[9] = 0.0;
|
||||
out_8221602802744378233[10] = 1.0;
|
||||
out_8221602802744378233[11] = 0.0;
|
||||
out_8221602802744378233[12] = 0.0;
|
||||
out_8221602802744378233[13] = 0.0;
|
||||
out_8221602802744378233[14] = 0.0;
|
||||
out_8221602802744378233[15] = 0.0;
|
||||
out_8221602802744378233[16] = 0.0;
|
||||
out_8221602802744378233[17] = 0.0;
|
||||
out_8221602802744378233[18] = 0.0;
|
||||
out_8221602802744378233[19] = 0.0;
|
||||
out_8221602802744378233[20] = 1.0;
|
||||
out_8221602802744378233[21] = 0.0;
|
||||
out_8221602802744378233[22] = 0.0;
|
||||
out_8221602802744378233[23] = 0.0;
|
||||
out_8221602802744378233[24] = 0.0;
|
||||
out_8221602802744378233[25] = 0.0;
|
||||
out_8221602802744378233[26] = 0.0;
|
||||
out_8221602802744378233[27] = 0.0;
|
||||
out_8221602802744378233[28] = 0.0;
|
||||
out_8221602802744378233[29] = 0.0;
|
||||
out_8221602802744378233[30] = 1.0;
|
||||
out_8221602802744378233[31] = 0.0;
|
||||
out_8221602802744378233[32] = 0.0;
|
||||
out_8221602802744378233[33] = 0.0;
|
||||
out_8221602802744378233[34] = 0.0;
|
||||
out_8221602802744378233[35] = 0.0;
|
||||
out_8221602802744378233[36] = 0.0;
|
||||
out_8221602802744378233[37] = 0.0;
|
||||
out_8221602802744378233[38] = 0.0;
|
||||
out_8221602802744378233[39] = 0.0;
|
||||
out_8221602802744378233[40] = 1.0;
|
||||
out_8221602802744378233[41] = 0.0;
|
||||
out_8221602802744378233[42] = 0.0;
|
||||
out_8221602802744378233[43] = 0.0;
|
||||
out_8221602802744378233[44] = 0.0;
|
||||
out_8221602802744378233[45] = 0.0;
|
||||
out_8221602802744378233[46] = 0.0;
|
||||
out_8221602802744378233[47] = 0.0;
|
||||
out_8221602802744378233[48] = 0.0;
|
||||
out_8221602802744378233[49] = 0.0;
|
||||
out_8221602802744378233[50] = 1.0;
|
||||
out_8221602802744378233[51] = 0.0;
|
||||
out_8221602802744378233[52] = 0.0;
|
||||
out_8221602802744378233[53] = 0.0;
|
||||
out_8221602802744378233[54] = 0.0;
|
||||
out_8221602802744378233[55] = 0.0;
|
||||
out_8221602802744378233[56] = 0.0;
|
||||
out_8221602802744378233[57] = 0.0;
|
||||
out_8221602802744378233[58] = 0.0;
|
||||
out_8221602802744378233[59] = 0.0;
|
||||
out_8221602802744378233[60] = 1.0;
|
||||
out_8221602802744378233[61] = 0.0;
|
||||
out_8221602802744378233[62] = 0.0;
|
||||
out_8221602802744378233[63] = 0.0;
|
||||
out_8221602802744378233[64] = 0.0;
|
||||
out_8221602802744378233[65] = 0.0;
|
||||
out_8221602802744378233[66] = 0.0;
|
||||
out_8221602802744378233[67] = 0.0;
|
||||
out_8221602802744378233[68] = 0.0;
|
||||
out_8221602802744378233[69] = 0.0;
|
||||
out_8221602802744378233[70] = 1.0;
|
||||
out_8221602802744378233[71] = 0.0;
|
||||
out_8221602802744378233[72] = 0.0;
|
||||
out_8221602802744378233[73] = 0.0;
|
||||
out_8221602802744378233[74] = 0.0;
|
||||
out_8221602802744378233[75] = 0.0;
|
||||
out_8221602802744378233[76] = 0.0;
|
||||
out_8221602802744378233[77] = 0.0;
|
||||
out_8221602802744378233[78] = 0.0;
|
||||
out_8221602802744378233[79] = 0.0;
|
||||
out_8221602802744378233[80] = 1.0;
|
||||
void H_mod_fun(double *state, double *out_6584291372032100099) {
|
||||
out_6584291372032100099[0] = 1.0;
|
||||
out_6584291372032100099[1] = 0.0;
|
||||
out_6584291372032100099[2] = 0.0;
|
||||
out_6584291372032100099[3] = 0.0;
|
||||
out_6584291372032100099[4] = 0.0;
|
||||
out_6584291372032100099[5] = 0.0;
|
||||
out_6584291372032100099[6] = 0.0;
|
||||
out_6584291372032100099[7] = 0.0;
|
||||
out_6584291372032100099[8] = 0.0;
|
||||
out_6584291372032100099[9] = 0.0;
|
||||
out_6584291372032100099[10] = 1.0;
|
||||
out_6584291372032100099[11] = 0.0;
|
||||
out_6584291372032100099[12] = 0.0;
|
||||
out_6584291372032100099[13] = 0.0;
|
||||
out_6584291372032100099[14] = 0.0;
|
||||
out_6584291372032100099[15] = 0.0;
|
||||
out_6584291372032100099[16] = 0.0;
|
||||
out_6584291372032100099[17] = 0.0;
|
||||
out_6584291372032100099[18] = 0.0;
|
||||
out_6584291372032100099[19] = 0.0;
|
||||
out_6584291372032100099[20] = 1.0;
|
||||
out_6584291372032100099[21] = 0.0;
|
||||
out_6584291372032100099[22] = 0.0;
|
||||
out_6584291372032100099[23] = 0.0;
|
||||
out_6584291372032100099[24] = 0.0;
|
||||
out_6584291372032100099[25] = 0.0;
|
||||
out_6584291372032100099[26] = 0.0;
|
||||
out_6584291372032100099[27] = 0.0;
|
||||
out_6584291372032100099[28] = 0.0;
|
||||
out_6584291372032100099[29] = 0.0;
|
||||
out_6584291372032100099[30] = 1.0;
|
||||
out_6584291372032100099[31] = 0.0;
|
||||
out_6584291372032100099[32] = 0.0;
|
||||
out_6584291372032100099[33] = 0.0;
|
||||
out_6584291372032100099[34] = 0.0;
|
||||
out_6584291372032100099[35] = 0.0;
|
||||
out_6584291372032100099[36] = 0.0;
|
||||
out_6584291372032100099[37] = 0.0;
|
||||
out_6584291372032100099[38] = 0.0;
|
||||
out_6584291372032100099[39] = 0.0;
|
||||
out_6584291372032100099[40] = 1.0;
|
||||
out_6584291372032100099[41] = 0.0;
|
||||
out_6584291372032100099[42] = 0.0;
|
||||
out_6584291372032100099[43] = 0.0;
|
||||
out_6584291372032100099[44] = 0.0;
|
||||
out_6584291372032100099[45] = 0.0;
|
||||
out_6584291372032100099[46] = 0.0;
|
||||
out_6584291372032100099[47] = 0.0;
|
||||
out_6584291372032100099[48] = 0.0;
|
||||
out_6584291372032100099[49] = 0.0;
|
||||
out_6584291372032100099[50] = 1.0;
|
||||
out_6584291372032100099[51] = 0.0;
|
||||
out_6584291372032100099[52] = 0.0;
|
||||
out_6584291372032100099[53] = 0.0;
|
||||
out_6584291372032100099[54] = 0.0;
|
||||
out_6584291372032100099[55] = 0.0;
|
||||
out_6584291372032100099[56] = 0.0;
|
||||
out_6584291372032100099[57] = 0.0;
|
||||
out_6584291372032100099[58] = 0.0;
|
||||
out_6584291372032100099[59] = 0.0;
|
||||
out_6584291372032100099[60] = 1.0;
|
||||
out_6584291372032100099[61] = 0.0;
|
||||
out_6584291372032100099[62] = 0.0;
|
||||
out_6584291372032100099[63] = 0.0;
|
||||
out_6584291372032100099[64] = 0.0;
|
||||
out_6584291372032100099[65] = 0.0;
|
||||
out_6584291372032100099[66] = 0.0;
|
||||
out_6584291372032100099[67] = 0.0;
|
||||
out_6584291372032100099[68] = 0.0;
|
||||
out_6584291372032100099[69] = 0.0;
|
||||
out_6584291372032100099[70] = 1.0;
|
||||
out_6584291372032100099[71] = 0.0;
|
||||
out_6584291372032100099[72] = 0.0;
|
||||
out_6584291372032100099[73] = 0.0;
|
||||
out_6584291372032100099[74] = 0.0;
|
||||
out_6584291372032100099[75] = 0.0;
|
||||
out_6584291372032100099[76] = 0.0;
|
||||
out_6584291372032100099[77] = 0.0;
|
||||
out_6584291372032100099[78] = 0.0;
|
||||
out_6584291372032100099[79] = 0.0;
|
||||
out_6584291372032100099[80] = 1.0;
|
||||
}
|
||||
void f_fun(double *state, double dt, double *out_7651705913211861388) {
|
||||
out_7651705913211861388[0] = state[0];
|
||||
out_7651705913211861388[1] = state[1];
|
||||
out_7651705913211861388[2] = state[2];
|
||||
out_7651705913211861388[3] = state[3];
|
||||
out_7651705913211861388[4] = state[4];
|
||||
out_7651705913211861388[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_7651705913211861388[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_7651705913211861388[7] = state[7];
|
||||
out_7651705913211861388[8] = state[8];
|
||||
void f_fun(double *state, double dt, double *out_775091494716029244) {
|
||||
out_775091494716029244[0] = state[0];
|
||||
out_775091494716029244[1] = state[1];
|
||||
out_775091494716029244[2] = state[2];
|
||||
out_775091494716029244[3] = state[3];
|
||||
out_775091494716029244[4] = state[4];
|
||||
out_775091494716029244[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_775091494716029244[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_775091494716029244[7] = state[7];
|
||||
out_775091494716029244[8] = state[8];
|
||||
}
|
||||
void F_fun(double *state, double dt, double *out_97859790539154602) {
|
||||
out_97859790539154602[0] = 1;
|
||||
out_97859790539154602[1] = 0;
|
||||
out_97859790539154602[2] = 0;
|
||||
out_97859790539154602[3] = 0;
|
||||
out_97859790539154602[4] = 0;
|
||||
out_97859790539154602[5] = 0;
|
||||
out_97859790539154602[6] = 0;
|
||||
out_97859790539154602[7] = 0;
|
||||
out_97859790539154602[8] = 0;
|
||||
out_97859790539154602[9] = 0;
|
||||
out_97859790539154602[10] = 1;
|
||||
out_97859790539154602[11] = 0;
|
||||
out_97859790539154602[12] = 0;
|
||||
out_97859790539154602[13] = 0;
|
||||
out_97859790539154602[14] = 0;
|
||||
out_97859790539154602[15] = 0;
|
||||
out_97859790539154602[16] = 0;
|
||||
out_97859790539154602[17] = 0;
|
||||
out_97859790539154602[18] = 0;
|
||||
out_97859790539154602[19] = 0;
|
||||
out_97859790539154602[20] = 1;
|
||||
out_97859790539154602[21] = 0;
|
||||
out_97859790539154602[22] = 0;
|
||||
out_97859790539154602[23] = 0;
|
||||
out_97859790539154602[24] = 0;
|
||||
out_97859790539154602[25] = 0;
|
||||
out_97859790539154602[26] = 0;
|
||||
out_97859790539154602[27] = 0;
|
||||
out_97859790539154602[28] = 0;
|
||||
out_97859790539154602[29] = 0;
|
||||
out_97859790539154602[30] = 1;
|
||||
out_97859790539154602[31] = 0;
|
||||
out_97859790539154602[32] = 0;
|
||||
out_97859790539154602[33] = 0;
|
||||
out_97859790539154602[34] = 0;
|
||||
out_97859790539154602[35] = 0;
|
||||
out_97859790539154602[36] = 0;
|
||||
out_97859790539154602[37] = 0;
|
||||
out_97859790539154602[38] = 0;
|
||||
out_97859790539154602[39] = 0;
|
||||
out_97859790539154602[40] = 1;
|
||||
out_97859790539154602[41] = 0;
|
||||
out_97859790539154602[42] = 0;
|
||||
out_97859790539154602[43] = 0;
|
||||
out_97859790539154602[44] = 0;
|
||||
out_97859790539154602[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_97859790539154602[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2));
|
||||
out_97859790539154602[47] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_97859790539154602[48] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_97859790539154602[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_97859790539154602[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1;
|
||||
out_97859790539154602[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]));
|
||||
out_97859790539154602[52] = dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_97859790539154602[53] = -9.8100000000000005*dt;
|
||||
out_97859790539154602[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_97859790539154602[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2));
|
||||
out_97859790539154602[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_97859790539154602[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_97859790539154602[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_97859790539154602[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]);
|
||||
out_97859790539154602[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_97859790539154602[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_97859790539154602[62] = 0;
|
||||
out_97859790539154602[63] = 0;
|
||||
out_97859790539154602[64] = 0;
|
||||
out_97859790539154602[65] = 0;
|
||||
out_97859790539154602[66] = 0;
|
||||
out_97859790539154602[67] = 0;
|
||||
out_97859790539154602[68] = 0;
|
||||
out_97859790539154602[69] = 0;
|
||||
out_97859790539154602[70] = 1;
|
||||
out_97859790539154602[71] = 0;
|
||||
out_97859790539154602[72] = 0;
|
||||
out_97859790539154602[73] = 0;
|
||||
out_97859790539154602[74] = 0;
|
||||
out_97859790539154602[75] = 0;
|
||||
out_97859790539154602[76] = 0;
|
||||
out_97859790539154602[77] = 0;
|
||||
out_97859790539154602[78] = 0;
|
||||
out_97859790539154602[79] = 0;
|
||||
out_97859790539154602[80] = 1;
|
||||
void F_fun(double *state, double dt, double *out_1373692616022552200) {
|
||||
out_1373692616022552200[0] = 1;
|
||||
out_1373692616022552200[1] = 0;
|
||||
out_1373692616022552200[2] = 0;
|
||||
out_1373692616022552200[3] = 0;
|
||||
out_1373692616022552200[4] = 0;
|
||||
out_1373692616022552200[5] = 0;
|
||||
out_1373692616022552200[6] = 0;
|
||||
out_1373692616022552200[7] = 0;
|
||||
out_1373692616022552200[8] = 0;
|
||||
out_1373692616022552200[9] = 0;
|
||||
out_1373692616022552200[10] = 1;
|
||||
out_1373692616022552200[11] = 0;
|
||||
out_1373692616022552200[12] = 0;
|
||||
out_1373692616022552200[13] = 0;
|
||||
out_1373692616022552200[14] = 0;
|
||||
out_1373692616022552200[15] = 0;
|
||||
out_1373692616022552200[16] = 0;
|
||||
out_1373692616022552200[17] = 0;
|
||||
out_1373692616022552200[18] = 0;
|
||||
out_1373692616022552200[19] = 0;
|
||||
out_1373692616022552200[20] = 1;
|
||||
out_1373692616022552200[21] = 0;
|
||||
out_1373692616022552200[22] = 0;
|
||||
out_1373692616022552200[23] = 0;
|
||||
out_1373692616022552200[24] = 0;
|
||||
out_1373692616022552200[25] = 0;
|
||||
out_1373692616022552200[26] = 0;
|
||||
out_1373692616022552200[27] = 0;
|
||||
out_1373692616022552200[28] = 0;
|
||||
out_1373692616022552200[29] = 0;
|
||||
out_1373692616022552200[30] = 1;
|
||||
out_1373692616022552200[31] = 0;
|
||||
out_1373692616022552200[32] = 0;
|
||||
out_1373692616022552200[33] = 0;
|
||||
out_1373692616022552200[34] = 0;
|
||||
out_1373692616022552200[35] = 0;
|
||||
out_1373692616022552200[36] = 0;
|
||||
out_1373692616022552200[37] = 0;
|
||||
out_1373692616022552200[38] = 0;
|
||||
out_1373692616022552200[39] = 0;
|
||||
out_1373692616022552200[40] = 1;
|
||||
out_1373692616022552200[41] = 0;
|
||||
out_1373692616022552200[42] = 0;
|
||||
out_1373692616022552200[43] = 0;
|
||||
out_1373692616022552200[44] = 0;
|
||||
out_1373692616022552200[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_1373692616022552200[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2));
|
||||
out_1373692616022552200[47] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_1373692616022552200[48] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_1373692616022552200[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_1373692616022552200[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1;
|
||||
out_1373692616022552200[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]));
|
||||
out_1373692616022552200[52] = dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_1373692616022552200[53] = -9.8100000000000005*dt;
|
||||
out_1373692616022552200[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_1373692616022552200[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2));
|
||||
out_1373692616022552200[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_1373692616022552200[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_1373692616022552200[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_1373692616022552200[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]);
|
||||
out_1373692616022552200[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_1373692616022552200[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_1373692616022552200[62] = 0;
|
||||
out_1373692616022552200[63] = 0;
|
||||
out_1373692616022552200[64] = 0;
|
||||
out_1373692616022552200[65] = 0;
|
||||
out_1373692616022552200[66] = 0;
|
||||
out_1373692616022552200[67] = 0;
|
||||
out_1373692616022552200[68] = 0;
|
||||
out_1373692616022552200[69] = 0;
|
||||
out_1373692616022552200[70] = 1;
|
||||
out_1373692616022552200[71] = 0;
|
||||
out_1373692616022552200[72] = 0;
|
||||
out_1373692616022552200[73] = 0;
|
||||
out_1373692616022552200[74] = 0;
|
||||
out_1373692616022552200[75] = 0;
|
||||
out_1373692616022552200[76] = 0;
|
||||
out_1373692616022552200[77] = 0;
|
||||
out_1373692616022552200[78] = 0;
|
||||
out_1373692616022552200[79] = 0;
|
||||
out_1373692616022552200[80] = 1;
|
||||
}
|
||||
void h_25(double *state, double *unused, double *out_1747255377487496462) {
|
||||
out_1747255377487496462[0] = state[6];
|
||||
void h_25(double *state, double *unused, double *out_1913811324090937931) {
|
||||
out_1913811324090937931[0] = state[6];
|
||||
}
|
||||
void H_25(double *state, double *unused, double *out_7588584345949747189) {
|
||||
out_7588584345949747189[0] = 0;
|
||||
out_7588584345949747189[1] = 0;
|
||||
out_7588584345949747189[2] = 0;
|
||||
out_7588584345949747189[3] = 0;
|
||||
out_7588584345949747189[4] = 0;
|
||||
out_7588584345949747189[5] = 0;
|
||||
out_7588584345949747189[6] = 1;
|
||||
out_7588584345949747189[7] = 0;
|
||||
out_7588584345949747189[8] = 0;
|
||||
void H_25(double *state, double *unused, double *out_3061310722042608422) {
|
||||
out_3061310722042608422[0] = 0;
|
||||
out_3061310722042608422[1] = 0;
|
||||
out_3061310722042608422[2] = 0;
|
||||
out_3061310722042608422[3] = 0;
|
||||
out_3061310722042608422[4] = 0;
|
||||
out_3061310722042608422[5] = 0;
|
||||
out_3061310722042608422[6] = 1;
|
||||
out_3061310722042608422[7] = 0;
|
||||
out_3061310722042608422[8] = 0;
|
||||
}
|
||||
void h_24(double *state, double *unused, double *out_3070396560078381804) {
|
||||
out_3070396560078381804[0] = state[4];
|
||||
out_3070396560078381804[1] = state[5];
|
||||
void h_24(double *state, double *unused, double *out_8648690320250273547) {
|
||||
out_8648690320250273547[0] = state[4];
|
||||
out_8648690320250273547[1] = state[5];
|
||||
}
|
||||
void H_24(double *state, double *unused, double *out_7300234128957481291) {
|
||||
out_7300234128957481291[0] = 0;
|
||||
out_7300234128957481291[1] = 0;
|
||||
out_7300234128957481291[2] = 0;
|
||||
out_7300234128957481291[3] = 0;
|
||||
out_7300234128957481291[4] = 1;
|
||||
out_7300234128957481291[5] = 0;
|
||||
out_7300234128957481291[6] = 0;
|
||||
out_7300234128957481291[7] = 0;
|
||||
out_7300234128957481291[8] = 0;
|
||||
out_7300234128957481291[9] = 0;
|
||||
out_7300234128957481291[10] = 0;
|
||||
out_7300234128957481291[11] = 0;
|
||||
out_7300234128957481291[12] = 0;
|
||||
out_7300234128957481291[13] = 0;
|
||||
out_7300234128957481291[14] = 1;
|
||||
out_7300234128957481291[15] = 0;
|
||||
out_7300234128957481291[16] = 0;
|
||||
out_7300234128957481291[17] = 0;
|
||||
void H_24(double *state, double *unused, double *out_496614876759714714) {
|
||||
out_496614876759714714[0] = 0;
|
||||
out_496614876759714714[1] = 0;
|
||||
out_496614876759714714[2] = 0;
|
||||
out_496614876759714714[3] = 0;
|
||||
out_496614876759714714[4] = 1;
|
||||
out_496614876759714714[5] = 0;
|
||||
out_496614876759714714[6] = 0;
|
||||
out_496614876759714714[7] = 0;
|
||||
out_496614876759714714[8] = 0;
|
||||
out_496614876759714714[9] = 0;
|
||||
out_496614876759714714[10] = 0;
|
||||
out_496614876759714714[11] = 0;
|
||||
out_496614876759714714[12] = 0;
|
||||
out_496614876759714714[13] = 0;
|
||||
out_496614876759714714[14] = 1;
|
||||
out_496614876759714714[15] = 0;
|
||||
out_496614876759714714[16] = 0;
|
||||
out_496614876759714714[17] = 0;
|
||||
}
|
||||
void h_30(double *state, double *unused, double *out_2594165583737162996) {
|
||||
out_2594165583737162996[0] = state[4];
|
||||
void h_30(double *state, double *unused, double *out_537139063672349691) {
|
||||
out_537139063672349691[0] = state[4];
|
||||
}
|
||||
void H_30(double *state, double *unused, double *out_8339826769252555800) {
|
||||
out_8339826769252555800[0] = 0;
|
||||
out_8339826769252555800[1] = 0;
|
||||
out_8339826769252555800[2] = 0;
|
||||
out_8339826769252555800[3] = 0;
|
||||
out_8339826769252555800[4] = 1;
|
||||
out_8339826769252555800[5] = 0;
|
||||
out_8339826769252555800[6] = 0;
|
||||
out_8339826769252555800[7] = 0;
|
||||
out_8339826769252555800[8] = 0;
|
||||
void H_30(double *state, double *unused, double *out_3190649669185848492) {
|
||||
out_3190649669185848492[0] = 0;
|
||||
out_3190649669185848492[1] = 0;
|
||||
out_3190649669185848492[2] = 0;
|
||||
out_3190649669185848492[3] = 0;
|
||||
out_3190649669185848492[4] = 1;
|
||||
out_3190649669185848492[5] = 0;
|
||||
out_3190649669185848492[6] = 0;
|
||||
out_3190649669185848492[7] = 0;
|
||||
out_3190649669185848492[8] = 0;
|
||||
}
|
||||
void h_26(double *state, double *unused, double *out_1234538052727793168) {
|
||||
out_1234538052727793168[0] = state[7];
|
||||
void h_26(double *state, double *unused, double *out_8588046903789292966) {
|
||||
out_8588046903789292966[0] = state[7];
|
||||
}
|
||||
void H_26(double *state, double *unused, double *out_3847081027075690965) {
|
||||
out_3847081027075690965[0] = 0;
|
||||
out_3847081027075690965[1] = 0;
|
||||
out_3847081027075690965[2] = 0;
|
||||
out_3847081027075690965[3] = 0;
|
||||
out_3847081027075690965[4] = 0;
|
||||
out_3847081027075690965[5] = 0;
|
||||
out_3847081027075690965[6] = 0;
|
||||
out_3847081027075690965[7] = 1;
|
||||
out_3847081027075690965[8] = 0;
|
||||
void H_26(double *state, double *unused, double *out_6802814040916664646) {
|
||||
out_6802814040916664646[0] = 0;
|
||||
out_6802814040916664646[1] = 0;
|
||||
out_6802814040916664646[2] = 0;
|
||||
out_6802814040916664646[3] = 0;
|
||||
out_6802814040916664646[4] = 0;
|
||||
out_6802814040916664646[5] = 0;
|
||||
out_6802814040916664646[6] = 0;
|
||||
out_6802814040916664646[7] = 1;
|
||||
out_6802814040916664646[8] = 0;
|
||||
}
|
||||
void h_27(double *state, double *unused, double *out_4784041428931829147) {
|
||||
out_4784041428931829147[0] = state[3];
|
||||
void h_27(double *state, double *unused, double *out_5342332393002513778) {
|
||||
out_5342332393002513778[0] = state[3];
|
||||
}
|
||||
void H_27(double *state, double *unused, double *out_886124704021714080) {
|
||||
out_886124704021714080[0] = 0;
|
||||
out_886124704021714080[1] = 0;
|
||||
out_886124704021714080[2] = 0;
|
||||
out_886124704021714080[3] = 1;
|
||||
out_886124704021714080[4] = 0;
|
||||
out_886124704021714080[5] = 0;
|
||||
out_886124704021714080[6] = 0;
|
||||
out_886124704021714080[7] = 0;
|
||||
out_886124704021714080[8] = 0;
|
||||
void H_27(double *state, double *unused, double *out_5365412980986273403) {
|
||||
out_5365412980986273403[0] = 0;
|
||||
out_5365412980986273403[1] = 0;
|
||||
out_5365412980986273403[2] = 0;
|
||||
out_5365412980986273403[3] = 1;
|
||||
out_5365412980986273403[4] = 0;
|
||||
out_5365412980986273403[5] = 0;
|
||||
out_5365412980986273403[6] = 0;
|
||||
out_5365412980986273403[7] = 0;
|
||||
out_5365412980986273403[8] = 0;
|
||||
}
|
||||
void h_29(double *state, double *unused, double *out_2407507683923682649) {
|
||||
out_2407507683923682649[0] = state[1];
|
||||
void h_29(double *state, double *unused, double *out_4607750999443297846) {
|
||||
out_4607750999443297846[0] = state[1];
|
||||
}
|
||||
void H_29(double *state, double *unused, double *out_3571119360136531175) {
|
||||
out_3571119360136531175[0] = 0;
|
||||
out_3571119360136531175[1] = 1;
|
||||
out_3571119360136531175[2] = 0;
|
||||
out_3571119360136531175[3] = 0;
|
||||
out_3571119360136531175[4] = 0;
|
||||
out_3571119360136531175[5] = 0;
|
||||
out_3571119360136531175[6] = 0;
|
||||
out_3571119360136531175[7] = 0;
|
||||
out_3571119360136531175[8] = 0;
|
||||
void H_29(double *state, double *unused, double *out_2680418324871456308) {
|
||||
out_2680418324871456308[0] = 0;
|
||||
out_2680418324871456308[1] = 1;
|
||||
out_2680418324871456308[2] = 0;
|
||||
out_2680418324871456308[3] = 0;
|
||||
out_2680418324871456308[4] = 0;
|
||||
out_2680418324871456308[5] = 0;
|
||||
out_2680418324871456308[6] = 0;
|
||||
out_2680418324871456308[7] = 0;
|
||||
out_2680418324871456308[8] = 0;
|
||||
}
|
||||
void h_28(double *state, double *unused, double *out_7679778805471580716) {
|
||||
out_7679778805471580716[0] = state[0];
|
||||
void h_28(double *state, double *unused, double *out_1728151616350094306) {
|
||||
out_1728151616350094306[0] = state[0];
|
||||
}
|
||||
void H_28(double *state, double *unused, double *out_5534749631701857426) {
|
||||
out_5534749631701857426[0] = 1;
|
||||
out_5534749631701857426[1] = 0;
|
||||
out_5534749631701857426[2] = 0;
|
||||
out_5534749631701857426[3] = 0;
|
||||
out_5534749631701857426[4] = 0;
|
||||
out_5534749631701857426[5] = 0;
|
||||
out_5534749631701857426[6] = 0;
|
||||
out_5534749631701857426[7] = 0;
|
||||
out_5534749631701857426[8] = 0;
|
||||
void H_28(double *state, double *unused, double *out_6285569348784196606) {
|
||||
out_6285569348784196606[0] = 1;
|
||||
out_6285569348784196606[1] = 0;
|
||||
out_6285569348784196606[2] = 0;
|
||||
out_6285569348784196606[3] = 0;
|
||||
out_6285569348784196606[4] = 0;
|
||||
out_6285569348784196606[5] = 0;
|
||||
out_6285569348784196606[6] = 0;
|
||||
out_6285569348784196606[7] = 0;
|
||||
out_6285569348784196606[8] = 0;
|
||||
}
|
||||
void h_31(double *state, double *unused, double *out_5023579848862854474) {
|
||||
out_5023579848862854474[0] = state[8];
|
||||
void h_31(double *state, double *unused, double *out_7827544350761686304) {
|
||||
out_7827544350761686304[0] = state[8];
|
||||
}
|
||||
void H_31(double *state, double *unused, double *out_3220872924842339489) {
|
||||
out_3220872924842339489[0] = 0;
|
||||
out_3220872924842339489[1] = 0;
|
||||
out_3220872924842339489[2] = 0;
|
||||
out_3220872924842339489[3] = 0;
|
||||
out_3220872924842339489[4] = 0;
|
||||
out_3220872924842339489[5] = 0;
|
||||
out_3220872924842339489[6] = 0;
|
||||
out_3220872924842339489[7] = 0;
|
||||
out_3220872924842339489[8] = 1;
|
||||
void H_31(double *state, double *unused, double *out_3030664760165647994) {
|
||||
out_3030664760165647994[0] = 0;
|
||||
out_3030664760165647994[1] = 0;
|
||||
out_3030664760165647994[2] = 0;
|
||||
out_3030664760165647994[3] = 0;
|
||||
out_3030664760165647994[4] = 0;
|
||||
out_3030664760165647994[5] = 0;
|
||||
out_3030664760165647994[6] = 0;
|
||||
out_3030664760165647994[7] = 0;
|
||||
out_3030664760165647994[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_2689391300508487509) {
|
||||
err_fun(nom_x, delta_x, out_2689391300508487509);
|
||||
void car_err_fun(double *nom_x, double *delta_x, double *out_1836217441218094185) {
|
||||
err_fun(nom_x, delta_x, out_1836217441218094185);
|
||||
}
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_7177783815062799236) {
|
||||
inv_err_fun(nom_x, true_x, out_7177783815062799236);
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_3664144515047539542) {
|
||||
inv_err_fun(nom_x, true_x, out_3664144515047539542);
|
||||
}
|
||||
void car_H_mod_fun(double *state, double *out_8221602802744378233) {
|
||||
H_mod_fun(state, out_8221602802744378233);
|
||||
void car_H_mod_fun(double *state, double *out_6584291372032100099) {
|
||||
H_mod_fun(state, out_6584291372032100099);
|
||||
}
|
||||
void car_f_fun(double *state, double dt, double *out_7651705913211861388) {
|
||||
f_fun(state, dt, out_7651705913211861388);
|
||||
void car_f_fun(double *state, double dt, double *out_775091494716029244) {
|
||||
f_fun(state, dt, out_775091494716029244);
|
||||
}
|
||||
void car_F_fun(double *state, double dt, double *out_97859790539154602) {
|
||||
F_fun(state, dt, out_97859790539154602);
|
||||
void car_F_fun(double *state, double dt, double *out_1373692616022552200) {
|
||||
F_fun(state, dt, out_1373692616022552200);
|
||||
}
|
||||
void car_h_25(double *state, double *unused, double *out_1747255377487496462) {
|
||||
h_25(state, unused, out_1747255377487496462);
|
||||
void car_h_25(double *state, double *unused, double *out_1913811324090937931) {
|
||||
h_25(state, unused, out_1913811324090937931);
|
||||
}
|
||||
void car_H_25(double *state, double *unused, double *out_7588584345949747189) {
|
||||
H_25(state, unused, out_7588584345949747189);
|
||||
void car_H_25(double *state, double *unused, double *out_3061310722042608422) {
|
||||
H_25(state, unused, out_3061310722042608422);
|
||||
}
|
||||
void car_h_24(double *state, double *unused, double *out_3070396560078381804) {
|
||||
h_24(state, unused, out_3070396560078381804);
|
||||
void car_h_24(double *state, double *unused, double *out_8648690320250273547) {
|
||||
h_24(state, unused, out_8648690320250273547);
|
||||
}
|
||||
void car_H_24(double *state, double *unused, double *out_7300234128957481291) {
|
||||
H_24(state, unused, out_7300234128957481291);
|
||||
void car_H_24(double *state, double *unused, double *out_496614876759714714) {
|
||||
H_24(state, unused, out_496614876759714714);
|
||||
}
|
||||
void car_h_30(double *state, double *unused, double *out_2594165583737162996) {
|
||||
h_30(state, unused, out_2594165583737162996);
|
||||
void car_h_30(double *state, double *unused, double *out_537139063672349691) {
|
||||
h_30(state, unused, out_537139063672349691);
|
||||
}
|
||||
void car_H_30(double *state, double *unused, double *out_8339826769252555800) {
|
||||
H_30(state, unused, out_8339826769252555800);
|
||||
void car_H_30(double *state, double *unused, double *out_3190649669185848492) {
|
||||
H_30(state, unused, out_3190649669185848492);
|
||||
}
|
||||
void car_h_26(double *state, double *unused, double *out_1234538052727793168) {
|
||||
h_26(state, unused, out_1234538052727793168);
|
||||
void car_h_26(double *state, double *unused, double *out_8588046903789292966) {
|
||||
h_26(state, unused, out_8588046903789292966);
|
||||
}
|
||||
void car_H_26(double *state, double *unused, double *out_3847081027075690965) {
|
||||
H_26(state, unused, out_3847081027075690965);
|
||||
void car_H_26(double *state, double *unused, double *out_6802814040916664646) {
|
||||
H_26(state, unused, out_6802814040916664646);
|
||||
}
|
||||
void car_h_27(double *state, double *unused, double *out_4784041428931829147) {
|
||||
h_27(state, unused, out_4784041428931829147);
|
||||
void car_h_27(double *state, double *unused, double *out_5342332393002513778) {
|
||||
h_27(state, unused, out_5342332393002513778);
|
||||
}
|
||||
void car_H_27(double *state, double *unused, double *out_886124704021714080) {
|
||||
H_27(state, unused, out_886124704021714080);
|
||||
void car_H_27(double *state, double *unused, double *out_5365412980986273403) {
|
||||
H_27(state, unused, out_5365412980986273403);
|
||||
}
|
||||
void car_h_29(double *state, double *unused, double *out_2407507683923682649) {
|
||||
h_29(state, unused, out_2407507683923682649);
|
||||
void car_h_29(double *state, double *unused, double *out_4607750999443297846) {
|
||||
h_29(state, unused, out_4607750999443297846);
|
||||
}
|
||||
void car_H_29(double *state, double *unused, double *out_3571119360136531175) {
|
||||
H_29(state, unused, out_3571119360136531175);
|
||||
void car_H_29(double *state, double *unused, double *out_2680418324871456308) {
|
||||
H_29(state, unused, out_2680418324871456308);
|
||||
}
|
||||
void car_h_28(double *state, double *unused, double *out_7679778805471580716) {
|
||||
h_28(state, unused, out_7679778805471580716);
|
||||
void car_h_28(double *state, double *unused, double *out_1728151616350094306) {
|
||||
h_28(state, unused, out_1728151616350094306);
|
||||
}
|
||||
void car_H_28(double *state, double *unused, double *out_5534749631701857426) {
|
||||
H_28(state, unused, out_5534749631701857426);
|
||||
void car_H_28(double *state, double *unused, double *out_6285569348784196606) {
|
||||
H_28(state, unused, out_6285569348784196606);
|
||||
}
|
||||
void car_h_31(double *state, double *unused, double *out_5023579848862854474) {
|
||||
h_31(state, unused, out_5023579848862854474);
|
||||
void car_h_31(double *state, double *unused, double *out_7827544350761686304) {
|
||||
h_31(state, unused, out_7827544350761686304);
|
||||
}
|
||||
void car_H_31(double *state, double *unused, double *out_3220872924842339489) {
|
||||
H_31(state, unused, out_3220872924842339489);
|
||||
void car_H_31(double *state, double *unused, double *out_3030664760165647994) {
|
||||
H_31(state, unused, out_3030664760165647994);
|
||||
}
|
||||
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_2689391300508487509);
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_7177783815062799236);
|
||||
void car_H_mod_fun(double *state, double *out_8221602802744378233);
|
||||
void car_f_fun(double *state, double dt, double *out_7651705913211861388);
|
||||
void car_F_fun(double *state, double dt, double *out_97859790539154602);
|
||||
void car_h_25(double *state, double *unused, double *out_1747255377487496462);
|
||||
void car_H_25(double *state, double *unused, double *out_7588584345949747189);
|
||||
void car_h_24(double *state, double *unused, double *out_3070396560078381804);
|
||||
void car_H_24(double *state, double *unused, double *out_7300234128957481291);
|
||||
void car_h_30(double *state, double *unused, double *out_2594165583737162996);
|
||||
void car_H_30(double *state, double *unused, double *out_8339826769252555800);
|
||||
void car_h_26(double *state, double *unused, double *out_1234538052727793168);
|
||||
void car_H_26(double *state, double *unused, double *out_3847081027075690965);
|
||||
void car_h_27(double *state, double *unused, double *out_4784041428931829147);
|
||||
void car_H_27(double *state, double *unused, double *out_886124704021714080);
|
||||
void car_h_29(double *state, double *unused, double *out_2407507683923682649);
|
||||
void car_H_29(double *state, double *unused, double *out_3571119360136531175);
|
||||
void car_h_28(double *state, double *unused, double *out_7679778805471580716);
|
||||
void car_H_28(double *state, double *unused, double *out_5534749631701857426);
|
||||
void car_h_31(double *state, double *unused, double *out_5023579848862854474);
|
||||
void car_H_31(double *state, double *unused, double *out_3220872924842339489);
|
||||
void car_err_fun(double *nom_x, double *delta_x, double *out_1836217441218094185);
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_3664144515047539542);
|
||||
void car_H_mod_fun(double *state, double *out_6584291372032100099);
|
||||
void car_f_fun(double *state, double dt, double *out_775091494716029244);
|
||||
void car_F_fun(double *state, double dt, double *out_1373692616022552200);
|
||||
void car_h_25(double *state, double *unused, double *out_1913811324090937931);
|
||||
void car_H_25(double *state, double *unused, double *out_3061310722042608422);
|
||||
void car_h_24(double *state, double *unused, double *out_8648690320250273547);
|
||||
void car_H_24(double *state, double *unused, double *out_496614876759714714);
|
||||
void car_h_30(double *state, double *unused, double *out_537139063672349691);
|
||||
void car_H_30(double *state, double *unused, double *out_3190649669185848492);
|
||||
void car_h_26(double *state, double *unused, double *out_8588046903789292966);
|
||||
void car_H_26(double *state, double *unused, double *out_6802814040916664646);
|
||||
void car_h_27(double *state, double *unused, double *out_5342332393002513778);
|
||||
void car_H_27(double *state, double *unused, double *out_5365412980986273403);
|
||||
void car_h_29(double *state, double *unused, double *out_4607750999443297846);
|
||||
void car_H_29(double *state, double *unused, double *out_2680418324871456308);
|
||||
void car_h_28(double *state, double *unused, double *out_1728151616350094306);
|
||||
void car_H_28(double *state, double *unused, double *out_6285569348784196606);
|
||||
void car_h_31(double *state, double *unused, double *out_7827544350761686304);
|
||||
void car_H_31(double *state, double *unused, double *out_3030664760165647994);
|
||||
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_9191542510053319957);
|
||||
void pose_inv_err_fun(double *nom_x, double *true_x, double *out_3004969772891744590);
|
||||
void pose_H_mod_fun(double *state, double *out_7359357434108742810);
|
||||
void pose_f_fun(double *state, double dt, double *out_729710836783527414);
|
||||
void pose_F_fun(double *state, double dt, double *out_8499021045100499940);
|
||||
void pose_h_4(double *state, double *unused, double *out_1075969755128808186);
|
||||
void pose_H_4(double *state, double *unused, double *out_5239304832848850085);
|
||||
void pose_h_10(double *state, double *unused, double *out_4050058798394118968);
|
||||
void pose_H_10(double *state, double *unused, double *out_3614267989921698938);
|
||||
void pose_h_13(double *state, double *unused, double *out_9106371473023855959);
|
||||
void pose_H_13(double *state, double *unused, double *out_8451578658181182886);
|
||||
void pose_h_14(double *state, double *unused, double *out_4347596682095509082);
|
||||
void pose_H_14(double *state, double *unused, double *out_9202545689188334614);
|
||||
void pose_err_fun(double *nom_x, double *delta_x, double *out_8885455317417923135);
|
||||
void pose_inv_err_fun(double *nom_x, double *true_x, double *out_7818671957054169652);
|
||||
void pose_H_mod_fun(double *state, double *out_6824361727259051753);
|
||||
void pose_f_fun(double *state, double dt, double *out_1755259086508631527);
|
||||
void pose_F_fun(double *state, double dt, double *out_4099616348303124892);
|
||||
void pose_h_4(double *state, double *unused, double *out_2755321730925237079);
|
||||
void pose_H_4(double *state, double *unused, double *out_3052554517415144181);
|
||||
void pose_h_10(double *state, double *unused, double *out_5342072843391651998);
|
||||
void pose_H_10(double *state, double *unused, double *out_7744556233743894871);
|
||||
void pose_h_13(double *state, double *unused, double *out_2174293281027337494);
|
||||
void pose_H_13(double *state, double *unused, double *out_6886309980717668205);
|
||||
void pose_h_14(double *state, double *unused, double *out_7883954814799996171);
|
||||
void pose_H_14(double *state, double *unused, double *out_6135342949710516477);
|
||||
void pose_predict(double *in_x, double *in_P, double *in_Q, double dt);
|
||||
}
|
||||
Binary file not shown.
Reference in New Issue
Block a user