mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-08-25 18:23:57 +08:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f857a55f59 | |||
| 05140149fb | |||
| 6a64493512 | |||
| 9c1d39b859 | |||
| ffab4a8321 |
+51
-4
@@ -1,4 +1,5 @@
|
||||
import os
|
||||
import importlib
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
@@ -128,6 +129,41 @@ elif arch == "aarch64" and AGNOS:
|
||||
arch = "larch64"
|
||||
assert arch in ["larch64", "aarch64", "x86_64", "Darwin"]
|
||||
|
||||
# AGNOS 19.6 ships native dependencies as versioned Python packages. Link
|
||||
# Cap'n Proto statically from that managed package so release binaries don't
|
||||
# depend on the removed libcapnp-1.0.2.so system library.
|
||||
try:
|
||||
capnproto = importlib.import_module("capnproto")
|
||||
except ModuleNotFoundError:
|
||||
capnproto = None
|
||||
try:
|
||||
ffmpeg = importlib.import_module("ffmpeg")
|
||||
except ModuleNotFoundError:
|
||||
ffmpeg = None
|
||||
|
||||
capnproto_include_dirs = [capnproto.INCLUDE_DIR] if capnproto is not None else []
|
||||
capnproto_lib_dirs = [capnproto.LIB_DIR] if capnproto is not None else []
|
||||
ffmpeg_include_dirs = [ffmpeg.INCLUDE_DIR] if ffmpeg is not None else []
|
||||
ffmpeg_lib_dirs = [ffmpeg.LIB_DIR] if ffmpeg is not None else []
|
||||
|
||||
# Cross-builds install managed dependencies in /work/.venv-linux-arm64, but
|
||||
# comma devices expose the same packages from /usr/local/venv. Never embed the
|
||||
# host/container mount path in release binaries.
|
||||
ffmpeg_runtime_lib_dirs = ffmpeg_lib_dirs
|
||||
if arch == "larch64" and ffmpeg is not None:
|
||||
ffmpeg_runtime_lib_dirs = [os.path.join("/usr/local/venv", os.path.relpath(ffmpeg.LIB_DIR, sys.prefix))]
|
||||
|
||||
# The managed native-dependency packages keep their tools inside the package
|
||||
# instead of installing them into /usr/local/venv/bin. cereal invokes capnpc
|
||||
# directly while SConscript files are evaluated, so make the packaged tools
|
||||
# discoverable to both SCons actions and configure-time subprocesses.
|
||||
dependency_bin_dirs = [
|
||||
package.BIN_DIR for package in (capnproto, ffmpeg)
|
||||
if package is not None and os.path.isdir(package.BIN_DIR)
|
||||
]
|
||||
if dependency_bin_dirs:
|
||||
os.environ["PATH"] = os.pathsep.join([*dependency_bin_dirs, os.environ["PATH"]])
|
||||
|
||||
# Homebrew llvm can shadow Apple clang and break macOS SDK header resolution.
|
||||
# Use the system toolchain explicitly on macOS for reliable local builds.
|
||||
cc = '/usr/bin/clang' if arch == "Darwin" else 'clang'
|
||||
@@ -269,7 +305,10 @@ env = Environment(
|
||||
"-Wno-vla-cxx-extension",
|
||||
] + cflags + ccflags,
|
||||
|
||||
CPPPATH=cpppath + [
|
||||
# Managed dependencies must precede the compatibility sysroot. The sysroot
|
||||
# can intentionally retain legacy libraries for C3 support, but new release
|
||||
# binaries must link against the versions shipped in the managed venv.
|
||||
CPPPATH=capnproto_include_dirs + ffmpeg_include_dirs + cpppath + [
|
||||
"#",
|
||||
"#third_party/acados/include",
|
||||
"#third_party/acados/include/blasfeo/include",
|
||||
@@ -288,11 +327,11 @@ env = Environment(
|
||||
RANLIB=ranlib,
|
||||
LINKFLAGS=ldflags,
|
||||
|
||||
RPATH=rpath,
|
||||
RPATH=ffmpeg_runtime_lib_dirs + rpath,
|
||||
|
||||
CFLAGS=["-std=gnu11"] + cflags,
|
||||
CXXFLAGS=["-std=c++1z"] + cxxflags,
|
||||
LIBPATH=libpath + [
|
||||
LIBPATH=capnproto_lib_dirs + ffmpeg_lib_dirs + libpath + [
|
||||
"#msgq_repo",
|
||||
"#third_party",
|
||||
"#selfdrive/pandad",
|
||||
@@ -371,7 +410,15 @@ SConscript(['opendbc_repo/SConscript'], exports={'env': env_swaglog})
|
||||
SConscript(['cereal/SConscript'])
|
||||
|
||||
Import('socketmaster', 'msgq')
|
||||
messaging = [socketmaster, msgq, 'capnp', 'kj',]
|
||||
if capnproto is not None:
|
||||
messaging = [
|
||||
socketmaster,
|
||||
msgq,
|
||||
File(os.path.join(capnproto.LIB_DIR, "libcapnp.a")),
|
||||
File(os.path.join(capnproto.LIB_DIR, "libkj.a")),
|
||||
]
|
||||
else:
|
||||
messaging = [socketmaster, msgq, 'capnp', 'kj']
|
||||
Export('messaging')
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -21,7 +21,7 @@ fi
|
||||
export QCOM_PRIORITY=12
|
||||
|
||||
if [ -z "$AGNOS_VERSION" ]; then
|
||||
export AGNOS_VERSION="19.6.2"
|
||||
export AGNOS_VERSION="19.6.10"
|
||||
fi
|
||||
|
||||
if [ -z "$AGNOS_ACCEPTED_VERSIONS" ]; then
|
||||
|
||||
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,2 +1,2 @@
|
||||
extern const uint8_t gitversion[19];
|
||||
const uint8_t gitversion[19] = "DEV-e28f72c6-DEBUG";
|
||||
const uint8_t gitversion[19] = "DEV-46ae2472-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.
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.
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-e28f72c6-DEBUG
|
||||
DEV-46ae2472-DEBUG
|
||||
@@ -29,6 +29,11 @@ dependencies = [
|
||||
"setuptools",
|
||||
"numpy >=2.0",
|
||||
|
||||
# AGNOS 19.6 native build dependencies
|
||||
"comma-deps-capnproto; python_version >= '3.12'",
|
||||
"comma-deps-ffmpeg; python_version >= '3.12'",
|
||||
"libdatachannel-py>=2026.1.0.dev2; python_version >= '3.12'",
|
||||
|
||||
# body / webrtcd
|
||||
"aiohttp",
|
||||
"aiortc",
|
||||
|
||||
Binary file not shown.
@@ -467,6 +467,66 @@ EOF
|
||||
echo "==> larch64 scons completed in $(( $(date +%s) - started_at ))s"
|
||||
}
|
||||
|
||||
validate_larch64_artifacts() {
|
||||
local engine
|
||||
engine="$(detect_engine)"
|
||||
|
||||
echo "==> Validating larch64 runtime dependencies"
|
||||
"${engine}" run --rm --platform linux/arm64 \
|
||||
--user "${DOCKER_RUN_USER}" \
|
||||
-v "${HOST_ROOT_DIR}:/work" \
|
||||
-v "${HOST_VENV_DIR}:/work/.venv-linux-arm64:ro" \
|
||||
-v "${HOST_SYSROOT_DIR}:/opt/tici-sysroot:ro" \
|
||||
-v "${HOST_SYSROOT_DIR}/system/vendor/lib64:/system/vendor/lib64:ro" \
|
||||
-w /work \
|
||||
"${IMAGE_NAME}" bash -lc '
|
||||
set -euo pipefail
|
||||
ffmpeg_lib_dir="/work/.venv-linux-arm64/lib/python3.12/site-packages/ffmpeg/install/lib"
|
||||
target_ffmpeg_runpath="/usr/local/venv/lib/python3.12/site-packages/ffmpeg/install/lib"
|
||||
runtime_library_path="${ffmpeg_lib_dir}:/work/third_party/acados/larch64/lib:/work/third_party/libyuv/larch64/lib:/work/selfdrive/controls/lib/lateral_mpc_lib/c_generated_code:/work/selfdrive/controls/lib/longitudinal_mpc_lib/c_generated_code:/opt/tici-sysroot/usr/local/lib:/opt/tici-sysroot/lib/aarch64-linux-gnu:/opt/tici-sysroot/usr/lib/aarch64-linux-gnu:/system/vendor/lib64"
|
||||
failures=0
|
||||
|
||||
while IFS= read -r -d "" artifact; do
|
||||
if ! readelf -h "${artifact}" 2>/dev/null | grep -q "Machine:.*AArch64"; then
|
||||
continue
|
||||
fi
|
||||
|
||||
dynamic="$(readelf -d "${artifact}" 2>/dev/null || true)"
|
||||
if grep -Eq "(RPATH|RUNPATH).*\/work\/" <<<"${dynamic}"; then
|
||||
echo "ERROR: ${artifact} embeds a build-host runtime path" >&2
|
||||
failures=1
|
||||
fi
|
||||
|
||||
has_ffmpeg=0
|
||||
while IFS= read -r needed; do
|
||||
case "${needed}" in
|
||||
libavformat.so.*|libavcodec.so.*|libswresample.so.*|libavutil.so.*)
|
||||
has_ffmpeg=1
|
||||
if [[ ! -e "${ffmpeg_lib_dir}/${needed}" ]]; then
|
||||
echo "ERROR: ${artifact} links ${needed}, which is not shipped by the managed FFmpeg package" >&2
|
||||
failures=1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done < <(sed -n "s/.*Shared library: \[\([^]]*\)\].*/\1/p" <<<"${dynamic}")
|
||||
|
||||
if [[ "${has_ffmpeg}" -eq 1 ]] && ! grep -Fq "${target_ffmpeg_runpath}" <<<"${dynamic}"; then
|
||||
echo "ERROR: ${artifact} links FFmpeg without the target managed-venv RUNPATH" >&2
|
||||
failures=1
|
||||
fi
|
||||
|
||||
missing="$(LD_LIBRARY_PATH="${runtime_library_path}" ldd "${artifact}" 2>&1 | grep "not found" || true)"
|
||||
if [[ -n "${missing}" ]]; then
|
||||
echo "ERROR: ${artifact} has unresolved target dependencies:" >&2
|
||||
echo "${missing}" >&2
|
||||
failures=1
|
||||
fi
|
||||
done < <(git ls-files -z)
|
||||
|
||||
exit "${failures}"
|
||||
'
|
||||
}
|
||||
|
||||
setup_host_venv() {
|
||||
if [[ ! -f "${ROOT_DIR}/.venv/bin/activate" ]]; then
|
||||
if [[ -x "${ROOT_DIR}/tools/install_python_dependencies.sh" ]]; then
|
||||
@@ -516,6 +576,7 @@ run_larch64_build() {
|
||||
cereal/messaging/bridge \
|
||||
msgq_repo/msgq/ipc_pyx.so \
|
||||
msgq_repo/msgq/visionipc/visionipc_pyx.so
|
||||
validate_larch64_artifacts
|
||||
touch "${ROOT_DIR}/prebuilt"
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ from openpilot.starpilot.controls.starpilot_card import StarPilotCard
|
||||
REPLAY = "REPLAY" in os.environ
|
||||
OPENPILOT_LEAD_MIN_DISTANCE = 0.1
|
||||
REDNECK_DECREASE_LOOKAHEAD_POINTS = 10
|
||||
SLC_SOURCE_NONE = "None"
|
||||
EventName = log.OnroadEvent.EventName
|
||||
|
||||
# forward
|
||||
@@ -276,14 +277,19 @@ class Car:
|
||||
self.CP.openpilotLongitudinalControl and not self.CP.pcmCruise
|
||||
)
|
||||
if not preap_software_cruise:
|
||||
speed_limit_confirmation_pending = is_speed_limit_confirmation_pending(self.sm['starpilotPlan'])
|
||||
starpilot_plan = self.sm['starpilotPlan']
|
||||
speed_limit_confirmation_pending = is_speed_limit_confirmation_pending(starpilot_plan)
|
||||
slc_target_with_offset = 0.0
|
||||
if self.starpilot_toggles.speed_limit_controller and starpilot_plan.slcSpeedLimitSource != SLC_SOURCE_NONE:
|
||||
slc_target_with_offset = starpilot_plan.slcSpeedLimit + starpilot_plan.slcSpeedLimitOffset
|
||||
self.v_cruise_helper.update_v_cruise(
|
||||
CS,
|
||||
self.sm['carControl'].enabled,
|
||||
self.is_metric,
|
||||
speed_limit_confirmation_pending,
|
||||
self.starpilot_toggles,
|
||||
FPCS,
|
||||
starpilot_car_state=FPCS,
|
||||
slc_target_with_offset=slc_target_with_offset,
|
||||
)
|
||||
else:
|
||||
preap_v_cruise_kph = float(CS.cruiseState.speed * CV.MS_TO_KPH)
|
||||
|
||||
+17
-3
@@ -89,13 +89,15 @@ class VCruiseHelper:
|
||||
return bool(getattr(starpilot_car_state, "decelHardCruise", False))
|
||||
return False
|
||||
|
||||
def update_v_cruise(self, CS, enabled, is_metric, speed_limit_changed, starpilot_toggles, starpilot_car_state=None):
|
||||
def update_v_cruise(self, CS, enabled, is_metric, speed_limit_changed, starpilot_toggles, starpilot_car_state=None,
|
||||
slc_target_with_offset=0.0):
|
||||
self.v_cruise_kph_last = self.v_cruise_kph
|
||||
|
||||
if CS.cruiseState.available:
|
||||
if self.gm_cc_only or self.redneck_non_pcm or not self.CP.pcmCruise:
|
||||
# if stock cruise is completely disabled, then we can use our own set speed logic
|
||||
self._update_v_cruise_non_pcm(CS, enabled, is_metric, speed_limit_changed, starpilot_toggles, starpilot_car_state)
|
||||
self._update_v_cruise_non_pcm(CS, enabled, is_metric, speed_limit_changed, starpilot_toggles, starpilot_car_state,
|
||||
slc_target_with_offset)
|
||||
self.v_cruise_cluster_kph = self.v_cruise_kph
|
||||
self.update_button_timers(CS, enabled, starpilot_car_state)
|
||||
else:
|
||||
@@ -111,7 +113,8 @@ class VCruiseHelper:
|
||||
self.v_cruise_kph = V_CRUISE_UNSET
|
||||
self.v_cruise_cluster_kph = V_CRUISE_UNSET
|
||||
|
||||
def _update_v_cruise_non_pcm(self, CS, enabled, is_metric, speed_limit_changed, starpilot_toggles, starpilot_car_state=None):
|
||||
def _update_v_cruise_non_pcm(self, CS, enabled, is_metric, speed_limit_changed, starpilot_toggles, starpilot_car_state=None,
|
||||
slc_target_with_offset=0.0):
|
||||
# handle button presses. TODO: this should be in state_control, but a decelCruise press
|
||||
# would have the effect of both enabling and changing speed is checked after the state transition
|
||||
if not enabled:
|
||||
@@ -169,11 +172,22 @@ class VCruiseHelper:
|
||||
short_interval, long_interval = self._get_cruise_delta_intervals(starpilot_toggles)
|
||||
v_cruise_delta_interval = long_interval if long_press or button_is_hard else short_interval
|
||||
v_cruise_delta = v_cruise_delta * v_cruise_delta_interval
|
||||
previous_v_cruise_kph = self.v_cruise_kph
|
||||
if v_cruise_delta_interval % 5 == 0 and self.v_cruise_kph % v_cruise_delta != 0: # partial interval
|
||||
self.v_cruise_kph = CRUISE_NEAREST_FUNC[button_type](self.v_cruise_kph / v_cruise_delta) * v_cruise_delta
|
||||
else:
|
||||
self.v_cruise_kph += v_cruise_delta * CRUISE_INTERVAL_SIGN[button_type]
|
||||
|
||||
# Round to stored cruise-speed precision so the SLC target can be matched exactly.
|
||||
slc_target_with_offset_kph = round(slc_target_with_offset * CV.MS_TO_KPH, 1)
|
||||
# Preserve an active SLC target when an accel increment would otherwise skip it.
|
||||
crossed_slc_target = (
|
||||
button_type in ACCEL_CRUISE_BUTTONS and
|
||||
previous_v_cruise_kph < slc_target_with_offset_kph < self.v_cruise_kph
|
||||
)
|
||||
if crossed_slc_target:
|
||||
self.v_cruise_kph = slc_target_with_offset_kph
|
||||
|
||||
# If set is pressed while overriding, clip cruise speed to minimum of vEgo
|
||||
if CS.gasPressed and button_type in (ButtonType.decelCruise, ButtonType.setCruise):
|
||||
self.v_cruise_kph = max(self.v_cruise_kph, CS.vEgo * CV.MS_TO_KPH)
|
||||
|
||||
@@ -119,6 +119,47 @@ class TestVCruiseHelper:
|
||||
)
|
||||
assert pressed == (self.v_cruise_helper.v_cruise_kph == self.v_cruise_helper.v_cruise_kph_last)
|
||||
|
||||
def test_accel_stops_at_slc_target_before_crossing_it(self):
|
||||
self.starpilot_toggles.cruise_increase = 5
|
||||
self.v_cruise_helper.v_cruise_kph = 30
|
||||
self.v_cruise_helper.v_cruise_cluster_kph = 30
|
||||
slc_target_with_offset = 33 * CV.KPH_TO_MS
|
||||
|
||||
# A 30 km/h limit with a +3 km/h SLC offset should be an intermediate stop.
|
||||
for expected_kph in (33, 35, 40):
|
||||
for pressed in (True, False):
|
||||
CS = car.CarState(cruiseState={"available": True})
|
||||
CS.buttonEvents = [ButtonEvent(type=ButtonType.accelCruise, pressed=pressed)]
|
||||
self.v_cruise_helper.update_v_cruise(
|
||||
CS,
|
||||
enabled=True,
|
||||
is_metric=True,
|
||||
speed_limit_changed=False,
|
||||
starpilot_toggles=self.starpilot_toggles,
|
||||
slc_target_with_offset=slc_target_with_offset,
|
||||
)
|
||||
|
||||
assert self.v_cruise_helper.v_cruise_kph == pytest.approx(expected_kph)
|
||||
|
||||
def test_accel_uses_normal_interval_without_an_active_slc_target(self):
|
||||
self.starpilot_toggles.cruise_increase = 5
|
||||
self.v_cruise_helper.v_cruise_kph = 30
|
||||
self.v_cruise_helper.v_cruise_cluster_kph = 30
|
||||
|
||||
# Card passes zero when SLC is disabled or has no active speed-limit source.
|
||||
for pressed in (True, False):
|
||||
CS = car.CarState(cruiseState={"available": True})
|
||||
CS.buttonEvents = [ButtonEvent(type=ButtonType.accelCruise, pressed=pressed)]
|
||||
self.v_cruise_helper.update_v_cruise(
|
||||
CS,
|
||||
enabled=True,
|
||||
is_metric=True,
|
||||
speed_limit_changed=False,
|
||||
starpilot_toggles=self.starpilot_toggles,
|
||||
)
|
||||
|
||||
assert self.v_cruise_helper.v_cruise_kph == pytest.approx(35)
|
||||
|
||||
def test_hard_press_uses_long_press_interval(self):
|
||||
self.enable(52 * CV.MPH_TO_MS, False)
|
||||
initial_v_cruise_kph = self.v_cruise_helper.v_cruise_kph
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
@@ -557,6 +557,29 @@ def test_set_speed_mode_overrides_on_raise_without_gas():
|
||||
controller.shutdown()
|
||||
|
||||
|
||||
def test_set_speed_mode_waits_until_above_slc_target_with_offset():
|
||||
controller = make_controller(
|
||||
is_metric=True,
|
||||
speed_limit_controller_override_manual=False,
|
||||
speed_limit_controller_override_set_speed=True,
|
||||
speed_limit_offset2=3 * CV.KPH_TO_MS,
|
||||
)
|
||||
try:
|
||||
controller.source = "Dashboard"
|
||||
controller.target = 30 * CV.KPH_TO_MS
|
||||
controller.last_valid_limit = controller.target
|
||||
|
||||
controller.update_override(30 * CV.KPH_TO_MS, 0.0, 30 * CV.KPH_TO_MS, 0.0, make_sm(gas_pressed=False))
|
||||
controller.update_override(33 * CV.KPH_TO_MS, 0.0, 30 * CV.KPH_TO_MS, 0.0, make_sm(gas_pressed=False))
|
||||
assert not controller.override_slc
|
||||
|
||||
controller.update_override(35 * CV.KPH_TO_MS, 0.0, 30 * CV.KPH_TO_MS, 0.0, make_sm(gas_pressed=False))
|
||||
assert controller.override_slc
|
||||
assert controller.overridden_speed == pytest.approx(35 * CV.KPH_TO_MS)
|
||||
finally:
|
||||
controller.shutdown()
|
||||
|
||||
|
||||
def test_set_speed_override_clears_on_new_speed_zone():
|
||||
# Entering a new (lower) posted limit clears the override; a steady high set speed must not
|
||||
# re-arm it. Only a fresh +/- press re-arms.
|
||||
|
||||
@@ -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_8339538066892951453) {
|
||||
out_8339538066892951453[0] = delta_x[0] + nom_x[0];
|
||||
out_8339538066892951453[1] = delta_x[1] + nom_x[1];
|
||||
out_8339538066892951453[2] = delta_x[2] + nom_x[2];
|
||||
out_8339538066892951453[3] = delta_x[3] + nom_x[3];
|
||||
out_8339538066892951453[4] = delta_x[4] + nom_x[4];
|
||||
out_8339538066892951453[5] = delta_x[5] + nom_x[5];
|
||||
out_8339538066892951453[6] = delta_x[6] + nom_x[6];
|
||||
out_8339538066892951453[7] = delta_x[7] + nom_x[7];
|
||||
out_8339538066892951453[8] = delta_x[8] + nom_x[8];
|
||||
void err_fun(double *nom_x, double *delta_x, double *out_7084348270501559549) {
|
||||
out_7084348270501559549[0] = delta_x[0] + nom_x[0];
|
||||
out_7084348270501559549[1] = delta_x[1] + nom_x[1];
|
||||
out_7084348270501559549[2] = delta_x[2] + nom_x[2];
|
||||
out_7084348270501559549[3] = delta_x[3] + nom_x[3];
|
||||
out_7084348270501559549[4] = delta_x[4] + nom_x[4];
|
||||
out_7084348270501559549[5] = delta_x[5] + nom_x[5];
|
||||
out_7084348270501559549[6] = delta_x[6] + nom_x[6];
|
||||
out_7084348270501559549[7] = delta_x[7] + nom_x[7];
|
||||
out_7084348270501559549[8] = delta_x[8] + nom_x[8];
|
||||
}
|
||||
void inv_err_fun(double *nom_x, double *true_x, double *out_1869575881362213489) {
|
||||
out_1869575881362213489[0] = -nom_x[0] + true_x[0];
|
||||
out_1869575881362213489[1] = -nom_x[1] + true_x[1];
|
||||
out_1869575881362213489[2] = -nom_x[2] + true_x[2];
|
||||
out_1869575881362213489[3] = -nom_x[3] + true_x[3];
|
||||
out_1869575881362213489[4] = -nom_x[4] + true_x[4];
|
||||
out_1869575881362213489[5] = -nom_x[5] + true_x[5];
|
||||
out_1869575881362213489[6] = -nom_x[6] + true_x[6];
|
||||
out_1869575881362213489[7] = -nom_x[7] + true_x[7];
|
||||
out_1869575881362213489[8] = -nom_x[8] + true_x[8];
|
||||
void inv_err_fun(double *nom_x, double *true_x, double *out_693097121251649199) {
|
||||
out_693097121251649199[0] = -nom_x[0] + true_x[0];
|
||||
out_693097121251649199[1] = -nom_x[1] + true_x[1];
|
||||
out_693097121251649199[2] = -nom_x[2] + true_x[2];
|
||||
out_693097121251649199[3] = -nom_x[3] + true_x[3];
|
||||
out_693097121251649199[4] = -nom_x[4] + true_x[4];
|
||||
out_693097121251649199[5] = -nom_x[5] + true_x[5];
|
||||
out_693097121251649199[6] = -nom_x[6] + true_x[6];
|
||||
out_693097121251649199[7] = -nom_x[7] + true_x[7];
|
||||
out_693097121251649199[8] = -nom_x[8] + true_x[8];
|
||||
}
|
||||
void H_mod_fun(double *state, double *out_4134445094065349854) {
|
||||
out_4134445094065349854[0] = 1.0;
|
||||
out_4134445094065349854[1] = 0.0;
|
||||
out_4134445094065349854[2] = 0.0;
|
||||
out_4134445094065349854[3] = 0.0;
|
||||
out_4134445094065349854[4] = 0.0;
|
||||
out_4134445094065349854[5] = 0.0;
|
||||
out_4134445094065349854[6] = 0.0;
|
||||
out_4134445094065349854[7] = 0.0;
|
||||
out_4134445094065349854[8] = 0.0;
|
||||
out_4134445094065349854[9] = 0.0;
|
||||
out_4134445094065349854[10] = 1.0;
|
||||
out_4134445094065349854[11] = 0.0;
|
||||
out_4134445094065349854[12] = 0.0;
|
||||
out_4134445094065349854[13] = 0.0;
|
||||
out_4134445094065349854[14] = 0.0;
|
||||
out_4134445094065349854[15] = 0.0;
|
||||
out_4134445094065349854[16] = 0.0;
|
||||
out_4134445094065349854[17] = 0.0;
|
||||
out_4134445094065349854[18] = 0.0;
|
||||
out_4134445094065349854[19] = 0.0;
|
||||
out_4134445094065349854[20] = 1.0;
|
||||
out_4134445094065349854[21] = 0.0;
|
||||
out_4134445094065349854[22] = 0.0;
|
||||
out_4134445094065349854[23] = 0.0;
|
||||
out_4134445094065349854[24] = 0.0;
|
||||
out_4134445094065349854[25] = 0.0;
|
||||
out_4134445094065349854[26] = 0.0;
|
||||
out_4134445094065349854[27] = 0.0;
|
||||
out_4134445094065349854[28] = 0.0;
|
||||
out_4134445094065349854[29] = 0.0;
|
||||
out_4134445094065349854[30] = 1.0;
|
||||
out_4134445094065349854[31] = 0.0;
|
||||
out_4134445094065349854[32] = 0.0;
|
||||
out_4134445094065349854[33] = 0.0;
|
||||
out_4134445094065349854[34] = 0.0;
|
||||
out_4134445094065349854[35] = 0.0;
|
||||
out_4134445094065349854[36] = 0.0;
|
||||
out_4134445094065349854[37] = 0.0;
|
||||
out_4134445094065349854[38] = 0.0;
|
||||
out_4134445094065349854[39] = 0.0;
|
||||
out_4134445094065349854[40] = 1.0;
|
||||
out_4134445094065349854[41] = 0.0;
|
||||
out_4134445094065349854[42] = 0.0;
|
||||
out_4134445094065349854[43] = 0.0;
|
||||
out_4134445094065349854[44] = 0.0;
|
||||
out_4134445094065349854[45] = 0.0;
|
||||
out_4134445094065349854[46] = 0.0;
|
||||
out_4134445094065349854[47] = 0.0;
|
||||
out_4134445094065349854[48] = 0.0;
|
||||
out_4134445094065349854[49] = 0.0;
|
||||
out_4134445094065349854[50] = 1.0;
|
||||
out_4134445094065349854[51] = 0.0;
|
||||
out_4134445094065349854[52] = 0.0;
|
||||
out_4134445094065349854[53] = 0.0;
|
||||
out_4134445094065349854[54] = 0.0;
|
||||
out_4134445094065349854[55] = 0.0;
|
||||
out_4134445094065349854[56] = 0.0;
|
||||
out_4134445094065349854[57] = 0.0;
|
||||
out_4134445094065349854[58] = 0.0;
|
||||
out_4134445094065349854[59] = 0.0;
|
||||
out_4134445094065349854[60] = 1.0;
|
||||
out_4134445094065349854[61] = 0.0;
|
||||
out_4134445094065349854[62] = 0.0;
|
||||
out_4134445094065349854[63] = 0.0;
|
||||
out_4134445094065349854[64] = 0.0;
|
||||
out_4134445094065349854[65] = 0.0;
|
||||
out_4134445094065349854[66] = 0.0;
|
||||
out_4134445094065349854[67] = 0.0;
|
||||
out_4134445094065349854[68] = 0.0;
|
||||
out_4134445094065349854[69] = 0.0;
|
||||
out_4134445094065349854[70] = 1.0;
|
||||
out_4134445094065349854[71] = 0.0;
|
||||
out_4134445094065349854[72] = 0.0;
|
||||
out_4134445094065349854[73] = 0.0;
|
||||
out_4134445094065349854[74] = 0.0;
|
||||
out_4134445094065349854[75] = 0.0;
|
||||
out_4134445094065349854[76] = 0.0;
|
||||
out_4134445094065349854[77] = 0.0;
|
||||
out_4134445094065349854[78] = 0.0;
|
||||
out_4134445094065349854[79] = 0.0;
|
||||
out_4134445094065349854[80] = 1.0;
|
||||
void H_mod_fun(double *state, double *out_1623843232183312219) {
|
||||
out_1623843232183312219[0] = 1.0;
|
||||
out_1623843232183312219[1] = 0.0;
|
||||
out_1623843232183312219[2] = 0.0;
|
||||
out_1623843232183312219[3] = 0.0;
|
||||
out_1623843232183312219[4] = 0.0;
|
||||
out_1623843232183312219[5] = 0.0;
|
||||
out_1623843232183312219[6] = 0.0;
|
||||
out_1623843232183312219[7] = 0.0;
|
||||
out_1623843232183312219[8] = 0.0;
|
||||
out_1623843232183312219[9] = 0.0;
|
||||
out_1623843232183312219[10] = 1.0;
|
||||
out_1623843232183312219[11] = 0.0;
|
||||
out_1623843232183312219[12] = 0.0;
|
||||
out_1623843232183312219[13] = 0.0;
|
||||
out_1623843232183312219[14] = 0.0;
|
||||
out_1623843232183312219[15] = 0.0;
|
||||
out_1623843232183312219[16] = 0.0;
|
||||
out_1623843232183312219[17] = 0.0;
|
||||
out_1623843232183312219[18] = 0.0;
|
||||
out_1623843232183312219[19] = 0.0;
|
||||
out_1623843232183312219[20] = 1.0;
|
||||
out_1623843232183312219[21] = 0.0;
|
||||
out_1623843232183312219[22] = 0.0;
|
||||
out_1623843232183312219[23] = 0.0;
|
||||
out_1623843232183312219[24] = 0.0;
|
||||
out_1623843232183312219[25] = 0.0;
|
||||
out_1623843232183312219[26] = 0.0;
|
||||
out_1623843232183312219[27] = 0.0;
|
||||
out_1623843232183312219[28] = 0.0;
|
||||
out_1623843232183312219[29] = 0.0;
|
||||
out_1623843232183312219[30] = 1.0;
|
||||
out_1623843232183312219[31] = 0.0;
|
||||
out_1623843232183312219[32] = 0.0;
|
||||
out_1623843232183312219[33] = 0.0;
|
||||
out_1623843232183312219[34] = 0.0;
|
||||
out_1623843232183312219[35] = 0.0;
|
||||
out_1623843232183312219[36] = 0.0;
|
||||
out_1623843232183312219[37] = 0.0;
|
||||
out_1623843232183312219[38] = 0.0;
|
||||
out_1623843232183312219[39] = 0.0;
|
||||
out_1623843232183312219[40] = 1.0;
|
||||
out_1623843232183312219[41] = 0.0;
|
||||
out_1623843232183312219[42] = 0.0;
|
||||
out_1623843232183312219[43] = 0.0;
|
||||
out_1623843232183312219[44] = 0.0;
|
||||
out_1623843232183312219[45] = 0.0;
|
||||
out_1623843232183312219[46] = 0.0;
|
||||
out_1623843232183312219[47] = 0.0;
|
||||
out_1623843232183312219[48] = 0.0;
|
||||
out_1623843232183312219[49] = 0.0;
|
||||
out_1623843232183312219[50] = 1.0;
|
||||
out_1623843232183312219[51] = 0.0;
|
||||
out_1623843232183312219[52] = 0.0;
|
||||
out_1623843232183312219[53] = 0.0;
|
||||
out_1623843232183312219[54] = 0.0;
|
||||
out_1623843232183312219[55] = 0.0;
|
||||
out_1623843232183312219[56] = 0.0;
|
||||
out_1623843232183312219[57] = 0.0;
|
||||
out_1623843232183312219[58] = 0.0;
|
||||
out_1623843232183312219[59] = 0.0;
|
||||
out_1623843232183312219[60] = 1.0;
|
||||
out_1623843232183312219[61] = 0.0;
|
||||
out_1623843232183312219[62] = 0.0;
|
||||
out_1623843232183312219[63] = 0.0;
|
||||
out_1623843232183312219[64] = 0.0;
|
||||
out_1623843232183312219[65] = 0.0;
|
||||
out_1623843232183312219[66] = 0.0;
|
||||
out_1623843232183312219[67] = 0.0;
|
||||
out_1623843232183312219[68] = 0.0;
|
||||
out_1623843232183312219[69] = 0.0;
|
||||
out_1623843232183312219[70] = 1.0;
|
||||
out_1623843232183312219[71] = 0.0;
|
||||
out_1623843232183312219[72] = 0.0;
|
||||
out_1623843232183312219[73] = 0.0;
|
||||
out_1623843232183312219[74] = 0.0;
|
||||
out_1623843232183312219[75] = 0.0;
|
||||
out_1623843232183312219[76] = 0.0;
|
||||
out_1623843232183312219[77] = 0.0;
|
||||
out_1623843232183312219[78] = 0.0;
|
||||
out_1623843232183312219[79] = 0.0;
|
||||
out_1623843232183312219[80] = 1.0;
|
||||
}
|
||||
void f_fun(double *state, double dt, double *out_1187519494066628558) {
|
||||
out_1187519494066628558[0] = state[0];
|
||||
out_1187519494066628558[1] = state[1];
|
||||
out_1187519494066628558[2] = state[2];
|
||||
out_1187519494066628558[3] = state[3];
|
||||
out_1187519494066628558[4] = state[4];
|
||||
out_1187519494066628558[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_1187519494066628558[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_1187519494066628558[7] = state[7];
|
||||
out_1187519494066628558[8] = state[8];
|
||||
void f_fun(double *state, double dt, double *out_1622952619636770739) {
|
||||
out_1622952619636770739[0] = state[0];
|
||||
out_1622952619636770739[1] = state[1];
|
||||
out_1622952619636770739[2] = state[2];
|
||||
out_1622952619636770739[3] = state[3];
|
||||
out_1622952619636770739[4] = state[4];
|
||||
out_1622952619636770739[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_1622952619636770739[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_1622952619636770739[7] = state[7];
|
||||
out_1622952619636770739[8] = state[8];
|
||||
}
|
||||
void F_fun(double *state, double dt, double *out_638221139616797346) {
|
||||
out_638221139616797346[0] = 1;
|
||||
out_638221139616797346[1] = 0;
|
||||
out_638221139616797346[2] = 0;
|
||||
out_638221139616797346[3] = 0;
|
||||
out_638221139616797346[4] = 0;
|
||||
out_638221139616797346[5] = 0;
|
||||
out_638221139616797346[6] = 0;
|
||||
out_638221139616797346[7] = 0;
|
||||
out_638221139616797346[8] = 0;
|
||||
out_638221139616797346[9] = 0;
|
||||
out_638221139616797346[10] = 1;
|
||||
out_638221139616797346[11] = 0;
|
||||
out_638221139616797346[12] = 0;
|
||||
out_638221139616797346[13] = 0;
|
||||
out_638221139616797346[14] = 0;
|
||||
out_638221139616797346[15] = 0;
|
||||
out_638221139616797346[16] = 0;
|
||||
out_638221139616797346[17] = 0;
|
||||
out_638221139616797346[18] = 0;
|
||||
out_638221139616797346[19] = 0;
|
||||
out_638221139616797346[20] = 1;
|
||||
out_638221139616797346[21] = 0;
|
||||
out_638221139616797346[22] = 0;
|
||||
out_638221139616797346[23] = 0;
|
||||
out_638221139616797346[24] = 0;
|
||||
out_638221139616797346[25] = 0;
|
||||
out_638221139616797346[26] = 0;
|
||||
out_638221139616797346[27] = 0;
|
||||
out_638221139616797346[28] = 0;
|
||||
out_638221139616797346[29] = 0;
|
||||
out_638221139616797346[30] = 1;
|
||||
out_638221139616797346[31] = 0;
|
||||
out_638221139616797346[32] = 0;
|
||||
out_638221139616797346[33] = 0;
|
||||
out_638221139616797346[34] = 0;
|
||||
out_638221139616797346[35] = 0;
|
||||
out_638221139616797346[36] = 0;
|
||||
out_638221139616797346[37] = 0;
|
||||
out_638221139616797346[38] = 0;
|
||||
out_638221139616797346[39] = 0;
|
||||
out_638221139616797346[40] = 1;
|
||||
out_638221139616797346[41] = 0;
|
||||
out_638221139616797346[42] = 0;
|
||||
out_638221139616797346[43] = 0;
|
||||
out_638221139616797346[44] = 0;
|
||||
out_638221139616797346[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_638221139616797346[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2));
|
||||
out_638221139616797346[47] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_638221139616797346[48] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_638221139616797346[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_638221139616797346[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1;
|
||||
out_638221139616797346[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]));
|
||||
out_638221139616797346[52] = dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_638221139616797346[53] = -9.8100000000000005*dt;
|
||||
out_638221139616797346[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_638221139616797346[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2));
|
||||
out_638221139616797346[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_638221139616797346[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_638221139616797346[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_638221139616797346[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]);
|
||||
out_638221139616797346[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_638221139616797346[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_638221139616797346[62] = 0;
|
||||
out_638221139616797346[63] = 0;
|
||||
out_638221139616797346[64] = 0;
|
||||
out_638221139616797346[65] = 0;
|
||||
out_638221139616797346[66] = 0;
|
||||
out_638221139616797346[67] = 0;
|
||||
out_638221139616797346[68] = 0;
|
||||
out_638221139616797346[69] = 0;
|
||||
out_638221139616797346[70] = 1;
|
||||
out_638221139616797346[71] = 0;
|
||||
out_638221139616797346[72] = 0;
|
||||
out_638221139616797346[73] = 0;
|
||||
out_638221139616797346[74] = 0;
|
||||
out_638221139616797346[75] = 0;
|
||||
out_638221139616797346[76] = 0;
|
||||
out_638221139616797346[77] = 0;
|
||||
out_638221139616797346[78] = 0;
|
||||
out_638221139616797346[79] = 0;
|
||||
out_638221139616797346[80] = 1;
|
||||
void F_fun(double *state, double dt, double *out_7142842168519911469) {
|
||||
out_7142842168519911469[0] = 1;
|
||||
out_7142842168519911469[1] = 0;
|
||||
out_7142842168519911469[2] = 0;
|
||||
out_7142842168519911469[3] = 0;
|
||||
out_7142842168519911469[4] = 0;
|
||||
out_7142842168519911469[5] = 0;
|
||||
out_7142842168519911469[6] = 0;
|
||||
out_7142842168519911469[7] = 0;
|
||||
out_7142842168519911469[8] = 0;
|
||||
out_7142842168519911469[9] = 0;
|
||||
out_7142842168519911469[10] = 1;
|
||||
out_7142842168519911469[11] = 0;
|
||||
out_7142842168519911469[12] = 0;
|
||||
out_7142842168519911469[13] = 0;
|
||||
out_7142842168519911469[14] = 0;
|
||||
out_7142842168519911469[15] = 0;
|
||||
out_7142842168519911469[16] = 0;
|
||||
out_7142842168519911469[17] = 0;
|
||||
out_7142842168519911469[18] = 0;
|
||||
out_7142842168519911469[19] = 0;
|
||||
out_7142842168519911469[20] = 1;
|
||||
out_7142842168519911469[21] = 0;
|
||||
out_7142842168519911469[22] = 0;
|
||||
out_7142842168519911469[23] = 0;
|
||||
out_7142842168519911469[24] = 0;
|
||||
out_7142842168519911469[25] = 0;
|
||||
out_7142842168519911469[26] = 0;
|
||||
out_7142842168519911469[27] = 0;
|
||||
out_7142842168519911469[28] = 0;
|
||||
out_7142842168519911469[29] = 0;
|
||||
out_7142842168519911469[30] = 1;
|
||||
out_7142842168519911469[31] = 0;
|
||||
out_7142842168519911469[32] = 0;
|
||||
out_7142842168519911469[33] = 0;
|
||||
out_7142842168519911469[34] = 0;
|
||||
out_7142842168519911469[35] = 0;
|
||||
out_7142842168519911469[36] = 0;
|
||||
out_7142842168519911469[37] = 0;
|
||||
out_7142842168519911469[38] = 0;
|
||||
out_7142842168519911469[39] = 0;
|
||||
out_7142842168519911469[40] = 1;
|
||||
out_7142842168519911469[41] = 0;
|
||||
out_7142842168519911469[42] = 0;
|
||||
out_7142842168519911469[43] = 0;
|
||||
out_7142842168519911469[44] = 0;
|
||||
out_7142842168519911469[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_7142842168519911469[46] = -dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(mass*pow(state[1], 2));
|
||||
out_7142842168519911469[47] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_7142842168519911469[48] = -dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_7142842168519911469[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_7142842168519911469[50] = dt*(-stiffness_front*state[0] - stiffness_rear*state[0])/(mass*state[4]) + 1;
|
||||
out_7142842168519911469[51] = dt*(-state[4] + (-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(mass*state[4]));
|
||||
out_7142842168519911469[52] = dt*stiffness_front*state[0]/(mass*state[1]);
|
||||
out_7142842168519911469[53] = -9.8100000000000005*dt;
|
||||
out_7142842168519911469[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_7142842168519911469[55] = -center_to_front*dt*stiffness_front*(-state[2] - state[3] + state[7])*state[0]/(rotational_inertia*pow(state[1], 2));
|
||||
out_7142842168519911469[56] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_7142842168519911469[57] = -center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_7142842168519911469[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_7142842168519911469[59] = dt*(-center_to_front*stiffness_front*state[0] + center_to_rear*stiffness_rear*state[0])/(rotational_inertia*state[4]);
|
||||
out_7142842168519911469[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_7142842168519911469[61] = center_to_front*dt*stiffness_front*state[0]/(rotational_inertia*state[1]);
|
||||
out_7142842168519911469[62] = 0;
|
||||
out_7142842168519911469[63] = 0;
|
||||
out_7142842168519911469[64] = 0;
|
||||
out_7142842168519911469[65] = 0;
|
||||
out_7142842168519911469[66] = 0;
|
||||
out_7142842168519911469[67] = 0;
|
||||
out_7142842168519911469[68] = 0;
|
||||
out_7142842168519911469[69] = 0;
|
||||
out_7142842168519911469[70] = 1;
|
||||
out_7142842168519911469[71] = 0;
|
||||
out_7142842168519911469[72] = 0;
|
||||
out_7142842168519911469[73] = 0;
|
||||
out_7142842168519911469[74] = 0;
|
||||
out_7142842168519911469[75] = 0;
|
||||
out_7142842168519911469[76] = 0;
|
||||
out_7142842168519911469[77] = 0;
|
||||
out_7142842168519911469[78] = 0;
|
||||
out_7142842168519911469[79] = 0;
|
||||
out_7142842168519911469[80] = 1;
|
||||
}
|
||||
void h_25(double *state, double *unused, double *out_6007362445110034756) {
|
||||
out_6007362445110034756[0] = state[6];
|
||||
void h_25(double *state, double *unused, double *out_7699167154037203435) {
|
||||
out_7699167154037203435[0] = state[6];
|
||||
}
|
||||
void H_25(double *state, double *unused, double *out_5119110753731964525) {
|
||||
out_5119110753731964525[0] = 0;
|
||||
out_5119110753731964525[1] = 0;
|
||||
out_5119110753731964525[2] = 0;
|
||||
out_5119110753731964525[3] = 0;
|
||||
out_5119110753731964525[4] = 0;
|
||||
out_5119110753731964525[5] = 0;
|
||||
out_5119110753731964525[6] = 1;
|
||||
out_5119110753731964525[7] = 0;
|
||||
out_5119110753731964525[8] = 0;
|
||||
void H_25(double *state, double *unused, double *out_1899137417806179458) {
|
||||
out_1899137417806179458[0] = 0;
|
||||
out_1899137417806179458[1] = 0;
|
||||
out_1899137417806179458[2] = 0;
|
||||
out_1899137417806179458[3] = 0;
|
||||
out_1899137417806179458[4] = 0;
|
||||
out_1899137417806179458[5] = 0;
|
||||
out_1899137417806179458[6] = 1;
|
||||
out_1899137417806179458[7] = 0;
|
||||
out_1899137417806179458[8] = 0;
|
||||
}
|
||||
void h_24(double *state, double *unused, double *out_5449620096162801389) {
|
||||
out_5449620096162801389[0] = state[4];
|
||||
out_5449620096162801389[1] = state[5];
|
||||
void h_24(double *state, double *unused, double *out_5775267180984789848) {
|
||||
out_5775267180984789848[0] = state[4];
|
||||
out_5775267180984789848[1] = state[5];
|
||||
}
|
||||
void H_24(double *state, double *unused, double *out_2946461154726464959) {
|
||||
out_2946461154726464959[0] = 0;
|
||||
out_2946461154726464959[1] = 0;
|
||||
out_2946461154726464959[2] = 0;
|
||||
out_2946461154726464959[3] = 0;
|
||||
out_2946461154726464959[4] = 1;
|
||||
out_2946461154726464959[5] = 0;
|
||||
out_2946461154726464959[6] = 0;
|
||||
out_2946461154726464959[7] = 0;
|
||||
out_2946461154726464959[8] = 0;
|
||||
out_2946461154726464959[9] = 0;
|
||||
out_2946461154726464959[10] = 0;
|
||||
out_2946461154726464959[11] = 0;
|
||||
out_2946461154726464959[12] = 0;
|
||||
out_2946461154726464959[13] = 0;
|
||||
out_2946461154726464959[14] = 1;
|
||||
out_2946461154726464959[15] = 0;
|
||||
out_2946461154726464959[16] = 0;
|
||||
out_2946461154726464959[17] = 0;
|
||||
void H_24(double *state, double *unused, double *out_273512181199320108) {
|
||||
out_273512181199320108[0] = 0;
|
||||
out_273512181199320108[1] = 0;
|
||||
out_273512181199320108[2] = 0;
|
||||
out_273512181199320108[3] = 0;
|
||||
out_273512181199320108[4] = 1;
|
||||
out_273512181199320108[5] = 0;
|
||||
out_273512181199320108[6] = 0;
|
||||
out_273512181199320108[7] = 0;
|
||||
out_273512181199320108[8] = 0;
|
||||
out_273512181199320108[9] = 0;
|
||||
out_273512181199320108[10] = 0;
|
||||
out_273512181199320108[11] = 0;
|
||||
out_273512181199320108[12] = 0;
|
||||
out_273512181199320108[13] = 0;
|
||||
out_273512181199320108[14] = 1;
|
||||
out_273512181199320108[15] = 0;
|
||||
out_273512181199320108[16] = 0;
|
||||
out_273512181199320108[17] = 0;
|
||||
}
|
||||
void h_30(double *state, double *unused, double *out_2369912916856012406) {
|
||||
out_2369912916856012406[0] = state[4];
|
||||
void h_30(double *state, double *unused, double *out_940710322681338449) {
|
||||
out_940710322681338449[0] = state[4];
|
||||
}
|
||||
void H_30(double *state, double *unused, double *out_7637443712239213152) {
|
||||
out_7637443712239213152[0] = 0;
|
||||
out_7637443712239213152[1] = 0;
|
||||
out_7637443712239213152[2] = 0;
|
||||
out_7637443712239213152[3] = 0;
|
||||
out_7637443712239213152[4] = 1;
|
||||
out_7637443712239213152[5] = 0;
|
||||
out_7637443712239213152[6] = 0;
|
||||
out_7637443712239213152[7] = 0;
|
||||
out_7637443712239213152[8] = 0;
|
||||
void H_30(double *state, double *unused, double *out_8815827759297796213) {
|
||||
out_8815827759297796213[0] = 0;
|
||||
out_8815827759297796213[1] = 0;
|
||||
out_8815827759297796213[2] = 0;
|
||||
out_8815827759297796213[3] = 0;
|
||||
out_8815827759297796213[4] = 1;
|
||||
out_8815827759297796213[5] = 0;
|
||||
out_8815827759297796213[6] = 0;
|
||||
out_8815827759297796213[7] = 0;
|
||||
out_8815827759297796213[8] = 0;
|
||||
}
|
||||
void h_26(double *state, double *unused, double *out_6836290203325307661) {
|
||||
out_6836290203325307661[0] = state[7];
|
||||
void h_26(double *state, double *unused, double *out_1922794416016636561) {
|
||||
out_1922794416016636561[0] = state[7];
|
||||
}
|
||||
void H_26(double *state, double *unused, double *out_1377607434857908301) {
|
||||
out_1377607434857908301[0] = 0;
|
||||
out_1377607434857908301[1] = 0;
|
||||
out_1377607434857908301[2] = 0;
|
||||
out_1377607434857908301[3] = 0;
|
||||
out_1377607434857908301[4] = 0;
|
||||
out_1377607434857908301[5] = 0;
|
||||
out_1377607434857908301[6] = 0;
|
||||
out_1377607434857908301[7] = 1;
|
||||
out_1377607434857908301[8] = 0;
|
||||
void H_26(double *state, double *unused, double *out_1842365901067876766) {
|
||||
out_1842365901067876766[0] = 0;
|
||||
out_1842365901067876766[1] = 0;
|
||||
out_1842365901067876766[2] = 0;
|
||||
out_1842365901067876766[3] = 0;
|
||||
out_1842365901067876766[4] = 0;
|
||||
out_1842365901067876766[5] = 0;
|
||||
out_1842365901067876766[6] = 0;
|
||||
out_1842365901067876766[7] = 1;
|
||||
out_1842365901067876766[8] = 0;
|
||||
}
|
||||
void h_27(double *state, double *unused, double *out_2710474474758657570) {
|
||||
out_2710474474758657570[0] = state[3];
|
||||
void h_27(double *state, double *unused, double *out_3098231746361013839) {
|
||||
out_3098231746361013839[0] = state[3];
|
||||
}
|
||||
void H_27(double *state, double *unused, double *out_8585706290286395247) {
|
||||
out_8585706290286395247[0] = 0;
|
||||
out_8585706290286395247[1] = 0;
|
||||
out_8585706290286395247[2] = 0;
|
||||
out_8585706290286395247[3] = 1;
|
||||
out_8585706290286395247[4] = 0;
|
||||
out_8585706290286395247[5] = 0;
|
||||
out_8585706290286395247[6] = 0;
|
||||
out_8585706290286395247[7] = 0;
|
||||
out_8585706290286395247[8] = 0;
|
||||
void H_27(double *state, double *unused, double *out_6641064447497371302) {
|
||||
out_6641064447497371302[0] = 0;
|
||||
out_6641064447497371302[1] = 0;
|
||||
out_6641064447497371302[2] = 0;
|
||||
out_6641064447497371302[3] = 1;
|
||||
out_6641064447497371302[4] = 0;
|
||||
out_6641064447497371302[5] = 0;
|
||||
out_6641064447497371302[6] = 0;
|
||||
out_6641064447497371302[7] = 0;
|
||||
out_6641064447497371302[8] = 0;
|
||||
}
|
||||
void h_29(double *state, double *unused, double *out_1542363084005055587) {
|
||||
out_1542363084005055587[0] = state[1];
|
||||
void h_29(double *state, double *unused, double *out_539217781893008511) {
|
||||
out_539217781893008511[0] = state[1];
|
||||
}
|
||||
void H_29(double *state, double *unused, double *out_8147675056553605336) {
|
||||
out_8147675056553605336[0] = 0;
|
||||
out_8147675056553605336[1] = 1;
|
||||
out_8147675056553605336[2] = 0;
|
||||
out_8147675056553605336[3] = 0;
|
||||
out_8147675056553605336[4] = 0;
|
||||
out_8147675056553605336[5] = 0;
|
||||
out_8147675056553605336[6] = 0;
|
||||
out_8147675056553605336[7] = 0;
|
||||
out_8147675056553605336[8] = 0;
|
||||
void H_29(double *state, double *unused, double *out_4927701720627820269) {
|
||||
out_4927701720627820269[0] = 0;
|
||||
out_4927701720627820269[1] = 1;
|
||||
out_4927701720627820269[2] = 0;
|
||||
out_4927701720627820269[3] = 0;
|
||||
out_4927701720627820269[4] = 0;
|
||||
out_4927701720627820269[5] = 0;
|
||||
out_4927701720627820269[6] = 0;
|
||||
out_4927701720627820269[7] = 0;
|
||||
out_4927701720627820269[8] = 0;
|
||||
}
|
||||
void h_28(double *state, double *unused, double *out_7712147742419503215) {
|
||||
out_7712147742419503215[0] = state[0];
|
||||
void h_28(double *state, double *unused, double *out_822702928747961705) {
|
||||
out_822702928747961705[0] = state[0];
|
||||
}
|
||||
void H_28(double *state, double *unused, double *out_3065276039484074762) {
|
||||
out_3065276039484074762[0] = 1;
|
||||
out_3065276039484074762[1] = 0;
|
||||
out_3065276039484074762[2] = 0;
|
||||
out_3065276039484074762[3] = 0;
|
||||
out_3065276039484074762[4] = 0;
|
||||
out_3065276039484074762[5] = 0;
|
||||
out_3065276039484074762[6] = 0;
|
||||
out_3065276039484074762[7] = 0;
|
||||
out_3065276039484074762[8] = 0;
|
||||
void H_28(double *state, double *unused, double *out_154697296441710305) {
|
||||
out_154697296441710305[0] = 1;
|
||||
out_154697296441710305[1] = 0;
|
||||
out_154697296441710305[2] = 0;
|
||||
out_154697296441710305[3] = 0;
|
||||
out_154697296441710305[4] = 0;
|
||||
out_154697296441710305[5] = 0;
|
||||
out_154697296441710305[6] = 0;
|
||||
out_154697296441710305[7] = 0;
|
||||
out_154697296441710305[8] = 0;
|
||||
}
|
||||
void h_31(double *state, double *unused, double *out_6282556507394540645) {
|
||||
out_6282556507394540645[0] = state[8];
|
||||
void h_31(double *state, double *unused, double *out_6649273621392976317) {
|
||||
out_6649273621392976317[0] = state[8];
|
||||
}
|
||||
void H_31(double *state, double *unused, double *out_5149756715608924953) {
|
||||
out_5149756715608924953[0] = 0;
|
||||
out_5149756715608924953[1] = 0;
|
||||
out_5149756715608924953[2] = 0;
|
||||
out_5149756715608924953[3] = 0;
|
||||
out_5149756715608924953[4] = 0;
|
||||
out_5149756715608924953[5] = 0;
|
||||
out_5149756715608924953[6] = 0;
|
||||
out_5149756715608924953[7] = 0;
|
||||
out_5149756715608924953[8] = 1;
|
||||
void H_31(double *state, double *unused, double *out_1929783379683139886) {
|
||||
out_1929783379683139886[0] = 0;
|
||||
out_1929783379683139886[1] = 0;
|
||||
out_1929783379683139886[2] = 0;
|
||||
out_1929783379683139886[3] = 0;
|
||||
out_1929783379683139886[4] = 0;
|
||||
out_1929783379683139886[5] = 0;
|
||||
out_1929783379683139886[6] = 0;
|
||||
out_1929783379683139886[7] = 0;
|
||||
out_1929783379683139886[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_8339538066892951453) {
|
||||
err_fun(nom_x, delta_x, out_8339538066892951453);
|
||||
void car_err_fun(double *nom_x, double *delta_x, double *out_7084348270501559549) {
|
||||
err_fun(nom_x, delta_x, out_7084348270501559549);
|
||||
}
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_1869575881362213489) {
|
||||
inv_err_fun(nom_x, true_x, out_1869575881362213489);
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_693097121251649199) {
|
||||
inv_err_fun(nom_x, true_x, out_693097121251649199);
|
||||
}
|
||||
void car_H_mod_fun(double *state, double *out_4134445094065349854) {
|
||||
H_mod_fun(state, out_4134445094065349854);
|
||||
void car_H_mod_fun(double *state, double *out_1623843232183312219) {
|
||||
H_mod_fun(state, out_1623843232183312219);
|
||||
}
|
||||
void car_f_fun(double *state, double dt, double *out_1187519494066628558) {
|
||||
f_fun(state, dt, out_1187519494066628558);
|
||||
void car_f_fun(double *state, double dt, double *out_1622952619636770739) {
|
||||
f_fun(state, dt, out_1622952619636770739);
|
||||
}
|
||||
void car_F_fun(double *state, double dt, double *out_638221139616797346) {
|
||||
F_fun(state, dt, out_638221139616797346);
|
||||
void car_F_fun(double *state, double dt, double *out_7142842168519911469) {
|
||||
F_fun(state, dt, out_7142842168519911469);
|
||||
}
|
||||
void car_h_25(double *state, double *unused, double *out_6007362445110034756) {
|
||||
h_25(state, unused, out_6007362445110034756);
|
||||
void car_h_25(double *state, double *unused, double *out_7699167154037203435) {
|
||||
h_25(state, unused, out_7699167154037203435);
|
||||
}
|
||||
void car_H_25(double *state, double *unused, double *out_5119110753731964525) {
|
||||
H_25(state, unused, out_5119110753731964525);
|
||||
void car_H_25(double *state, double *unused, double *out_1899137417806179458) {
|
||||
H_25(state, unused, out_1899137417806179458);
|
||||
}
|
||||
void car_h_24(double *state, double *unused, double *out_5449620096162801389) {
|
||||
h_24(state, unused, out_5449620096162801389);
|
||||
void car_h_24(double *state, double *unused, double *out_5775267180984789848) {
|
||||
h_24(state, unused, out_5775267180984789848);
|
||||
}
|
||||
void car_H_24(double *state, double *unused, double *out_2946461154726464959) {
|
||||
H_24(state, unused, out_2946461154726464959);
|
||||
void car_H_24(double *state, double *unused, double *out_273512181199320108) {
|
||||
H_24(state, unused, out_273512181199320108);
|
||||
}
|
||||
void car_h_30(double *state, double *unused, double *out_2369912916856012406) {
|
||||
h_30(state, unused, out_2369912916856012406);
|
||||
void car_h_30(double *state, double *unused, double *out_940710322681338449) {
|
||||
h_30(state, unused, out_940710322681338449);
|
||||
}
|
||||
void car_H_30(double *state, double *unused, double *out_7637443712239213152) {
|
||||
H_30(state, unused, out_7637443712239213152);
|
||||
void car_H_30(double *state, double *unused, double *out_8815827759297796213) {
|
||||
H_30(state, unused, out_8815827759297796213);
|
||||
}
|
||||
void car_h_26(double *state, double *unused, double *out_6836290203325307661) {
|
||||
h_26(state, unused, out_6836290203325307661);
|
||||
void car_h_26(double *state, double *unused, double *out_1922794416016636561) {
|
||||
h_26(state, unused, out_1922794416016636561);
|
||||
}
|
||||
void car_H_26(double *state, double *unused, double *out_1377607434857908301) {
|
||||
H_26(state, unused, out_1377607434857908301);
|
||||
void car_H_26(double *state, double *unused, double *out_1842365901067876766) {
|
||||
H_26(state, unused, out_1842365901067876766);
|
||||
}
|
||||
void car_h_27(double *state, double *unused, double *out_2710474474758657570) {
|
||||
h_27(state, unused, out_2710474474758657570);
|
||||
void car_h_27(double *state, double *unused, double *out_3098231746361013839) {
|
||||
h_27(state, unused, out_3098231746361013839);
|
||||
}
|
||||
void car_H_27(double *state, double *unused, double *out_8585706290286395247) {
|
||||
H_27(state, unused, out_8585706290286395247);
|
||||
void car_H_27(double *state, double *unused, double *out_6641064447497371302) {
|
||||
H_27(state, unused, out_6641064447497371302);
|
||||
}
|
||||
void car_h_29(double *state, double *unused, double *out_1542363084005055587) {
|
||||
h_29(state, unused, out_1542363084005055587);
|
||||
void car_h_29(double *state, double *unused, double *out_539217781893008511) {
|
||||
h_29(state, unused, out_539217781893008511);
|
||||
}
|
||||
void car_H_29(double *state, double *unused, double *out_8147675056553605336) {
|
||||
H_29(state, unused, out_8147675056553605336);
|
||||
void car_H_29(double *state, double *unused, double *out_4927701720627820269) {
|
||||
H_29(state, unused, out_4927701720627820269);
|
||||
}
|
||||
void car_h_28(double *state, double *unused, double *out_7712147742419503215) {
|
||||
h_28(state, unused, out_7712147742419503215);
|
||||
void car_h_28(double *state, double *unused, double *out_822702928747961705) {
|
||||
h_28(state, unused, out_822702928747961705);
|
||||
}
|
||||
void car_H_28(double *state, double *unused, double *out_3065276039484074762) {
|
||||
H_28(state, unused, out_3065276039484074762);
|
||||
void car_H_28(double *state, double *unused, double *out_154697296441710305) {
|
||||
H_28(state, unused, out_154697296441710305);
|
||||
}
|
||||
void car_h_31(double *state, double *unused, double *out_6282556507394540645) {
|
||||
h_31(state, unused, out_6282556507394540645);
|
||||
void car_h_31(double *state, double *unused, double *out_6649273621392976317) {
|
||||
h_31(state, unused, out_6649273621392976317);
|
||||
}
|
||||
void car_H_31(double *state, double *unused, double *out_5149756715608924953) {
|
||||
H_31(state, unused, out_5149756715608924953);
|
||||
void car_H_31(double *state, double *unused, double *out_1929783379683139886) {
|
||||
H_31(state, unused, out_1929783379683139886);
|
||||
}
|
||||
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_8339538066892951453);
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_1869575881362213489);
|
||||
void car_H_mod_fun(double *state, double *out_4134445094065349854);
|
||||
void car_f_fun(double *state, double dt, double *out_1187519494066628558);
|
||||
void car_F_fun(double *state, double dt, double *out_638221139616797346);
|
||||
void car_h_25(double *state, double *unused, double *out_6007362445110034756);
|
||||
void car_H_25(double *state, double *unused, double *out_5119110753731964525);
|
||||
void car_h_24(double *state, double *unused, double *out_5449620096162801389);
|
||||
void car_H_24(double *state, double *unused, double *out_2946461154726464959);
|
||||
void car_h_30(double *state, double *unused, double *out_2369912916856012406);
|
||||
void car_H_30(double *state, double *unused, double *out_7637443712239213152);
|
||||
void car_h_26(double *state, double *unused, double *out_6836290203325307661);
|
||||
void car_H_26(double *state, double *unused, double *out_1377607434857908301);
|
||||
void car_h_27(double *state, double *unused, double *out_2710474474758657570);
|
||||
void car_H_27(double *state, double *unused, double *out_8585706290286395247);
|
||||
void car_h_29(double *state, double *unused, double *out_1542363084005055587);
|
||||
void car_H_29(double *state, double *unused, double *out_8147675056553605336);
|
||||
void car_h_28(double *state, double *unused, double *out_7712147742419503215);
|
||||
void car_H_28(double *state, double *unused, double *out_3065276039484074762);
|
||||
void car_h_31(double *state, double *unused, double *out_6282556507394540645);
|
||||
void car_H_31(double *state, double *unused, double *out_5149756715608924953);
|
||||
void car_err_fun(double *nom_x, double *delta_x, double *out_7084348270501559549);
|
||||
void car_inv_err_fun(double *nom_x, double *true_x, double *out_693097121251649199);
|
||||
void car_H_mod_fun(double *state, double *out_1623843232183312219);
|
||||
void car_f_fun(double *state, double dt, double *out_1622952619636770739);
|
||||
void car_F_fun(double *state, double dt, double *out_7142842168519911469);
|
||||
void car_h_25(double *state, double *unused, double *out_7699167154037203435);
|
||||
void car_H_25(double *state, double *unused, double *out_1899137417806179458);
|
||||
void car_h_24(double *state, double *unused, double *out_5775267180984789848);
|
||||
void car_H_24(double *state, double *unused, double *out_273512181199320108);
|
||||
void car_h_30(double *state, double *unused, double *out_940710322681338449);
|
||||
void car_H_30(double *state, double *unused, double *out_8815827759297796213);
|
||||
void car_h_26(double *state, double *unused, double *out_1922794416016636561);
|
||||
void car_H_26(double *state, double *unused, double *out_1842365901067876766);
|
||||
void car_h_27(double *state, double *unused, double *out_3098231746361013839);
|
||||
void car_H_27(double *state, double *unused, double *out_6641064447497371302);
|
||||
void car_h_29(double *state, double *unused, double *out_539217781893008511);
|
||||
void car_H_29(double *state, double *unused, double *out_4927701720627820269);
|
||||
void car_h_28(double *state, double *unused, double *out_822702928747961705);
|
||||
void car_H_28(double *state, double *unused, double *out_154697296441710305);
|
||||
void car_h_31(double *state, double *unused, double *out_6649273621392976317);
|
||||
void car_H_31(double *state, double *unused, double *out_1929783379683139886);
|
||||
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);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
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_8230036097863094971);
|
||||
void pose_inv_err_fun(double *nom_x, double *true_x, double *out_8741051770711475830);
|
||||
void pose_H_mod_fun(double *state, double *out_1900632188772248703);
|
||||
void pose_f_fun(double *state, double dt, double *out_3077738493587277525);
|
||||
void pose_F_fun(double *state, double dt, double *out_474426866180563475);
|
||||
void pose_h_4(double *state, double *unused, double *out_616527671886839495);
|
||||
void pose_H_4(double *state, double *unused, double *out_702684706889350599);
|
||||
void pose_h_10(double *state, double *unused, double *out_767369525646024651);
|
||||
void pose_H_10(double *state, double *unused, double *out_8347276505705953254);
|
||||
void pose_h_13(double *state, double *unused, double *out_7518652466578138352);
|
||||
void pose_H_13(double *state, double *unused, double *out_2509589118442982202);
|
||||
void pose_h_14(double *state, double *unused, double *out_7727744869207997497);
|
||||
void pose_H_14(double *state, double *unused, double *out_8183830522169091023);
|
||||
void pose_err_fun(double *nom_x, double *delta_x, double *out_2551549382290402050);
|
||||
void pose_inv_err_fun(double *nom_x, double *true_x, double *out_3575109948453160374);
|
||||
void pose_H_mod_fun(double *state, double *out_2954011976512996711);
|
||||
void pose_f_fun(double *state, double dt, double *out_4081841541460951824);
|
||||
void pose_F_fun(double *state, double dt, double *out_2326707394449301144);
|
||||
void pose_h_4(double *state, double *unused, double *out_5242858642703077087);
|
||||
void pose_H_4(double *state, double *unused, double *out_1660615060416319653);
|
||||
void pose_h_10(double *state, double *unused, double *out_8287724405821980303);
|
||||
void pose_H_10(double *state, double *unused, double *out_8634670991932313772);
|
||||
void pose_h_13(double *state, double *unused, double *out_936388540160520926);
|
||||
void pose_H_13(double *state, double *unused, double *out_4872888885748652454);
|
||||
void pose_h_14(double *state, double *unused, double *out_3784911557802666238);
|
||||
void pose_H_14(double *state, double *unused, double *out_5623855916755804182);
|
||||
void pose_predict(double *in_x, double *in_P, double *in_Q, double dt);
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user