mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-08-25 18:23:57 +08:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 632db8bfd3 |
+4
-51
@@ -1,5 +1,4 @@
|
||||
import os
|
||||
import importlib
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
@@ -129,41 +128,6 @@ 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'
|
||||
@@ -305,10 +269,7 @@ env = Environment(
|
||||
"-Wno-vla-cxx-extension",
|
||||
] + cflags + ccflags,
|
||||
|
||||
# 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 + [
|
||||
CPPPATH=cpppath + [
|
||||
"#",
|
||||
"#third_party/acados/include",
|
||||
"#third_party/acados/include/blasfeo/include",
|
||||
@@ -327,11 +288,11 @@ env = Environment(
|
||||
RANLIB=ranlib,
|
||||
LINKFLAGS=ldflags,
|
||||
|
||||
RPATH=ffmpeg_runtime_lib_dirs + rpath,
|
||||
RPATH=rpath,
|
||||
|
||||
CFLAGS=["-std=gnu11"] + cflags,
|
||||
CXXFLAGS=["-std=c++1z"] + cxxflags,
|
||||
LIBPATH=capnproto_lib_dirs + ffmpeg_lib_dirs + libpath + [
|
||||
LIBPATH=libpath + [
|
||||
"#msgq_repo",
|
||||
"#third_party",
|
||||
"#selfdrive/pandad",
|
||||
@@ -410,15 +371,7 @@ SConscript(['opendbc_repo/SConscript'], exports={'env': env_swaglog})
|
||||
SConscript(['cereal/SConscript'])
|
||||
|
||||
Import('socketmaster', 'msgq')
|
||||
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']
|
||||
messaging = [socketmaster, msgq, 'capnp', 'kj',]
|
||||
Export('messaging')
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -238,6 +238,9 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
|
||||
{"CommunityFavorites", {PERSISTENT, STRING, "", "", 1}},
|
||||
{"ConditionalChill", {PERSISTENT, BOOL, "0", "0", 1}},
|
||||
{"ConditionalExperimental", {PERSISTENT, BOOL, "1", "0", 1, SETTINGS_SIMPLE}},
|
||||
{"HybridExpBias", {PERSISTENT, FLOAT, "0", "0", 1}},
|
||||
{"HybridExperimental", {PERSISTENT, BOOL, "0", "0", 1}},
|
||||
{"HybridVisionBrakeSensitivity", {PERSISTENT, FLOAT, "1", "1", 1}},
|
||||
{"CurvatureData", {PERSISTENT | DONT_LOG, JSON, "{}", "{}"}},
|
||||
{"CurveSpeedController", {PERSISTENT, BOOL, "1", "0", 1, SETTINGS_SIMPLE}},
|
||||
{"CurveSpeedControllerNoLead", {PERSISTENT, BOOL, "0", "0", 1, SETTINGS_SIMPLE}},
|
||||
|
||||
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.10"
|
||||
export AGNOS_VERSION="19.6.2"
|
||||
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-46ae2472-DEBUG";
|
||||
const uint8_t gitversion[19] = "DEV-e28f72c6-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-46ae2472-DEBUG
|
||||
DEV-e28f72c6-DEBUG
|
||||
@@ -29,11 +29,6 @@ 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,66 +467,6 @@ 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
|
||||
@@ -576,7 +516,6 @@ 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"
|
||||
}
|
||||
|
||||
|
||||
+11
-7
@@ -298,17 +298,21 @@ class Car:
|
||||
self.v_cruise_helper.v_cruise_cluster_kph = preap_v_cruise_kph
|
||||
slc_force_speed = self.params_memory.get_float("SLCForceCruiseSpeed")
|
||||
if slc_force_speed > 0:
|
||||
if self.is_metric:
|
||||
new_cruise_kph = round(slc_force_speed * CV.MS_TO_KPH)
|
||||
else:
|
||||
new_cruise_kph = round(slc_force_speed * CV.MS_TO_MPH) * IMPERIAL_INCREMENT
|
||||
self.v_cruise_helper.v_cruise_kph = max(min(new_cruise_kph, V_CRUISE_MAX), V_CRUISE_MIN)
|
||||
self.v_cruise_helper.v_cruise_cluster_kph = self.v_cruise_helper.v_cruise_kph
|
||||
# Do not apply an adoption queued before SLC was switched off.
|
||||
if self.starpilot_toggles.speed_limit_controller:
|
||||
if self.is_metric:
|
||||
new_cruise_kph = round(slc_force_speed * CV.MS_TO_KPH)
|
||||
else:
|
||||
new_cruise_kph = round(slc_force_speed * CV.MS_TO_MPH) * IMPERIAL_INCREMENT
|
||||
self.v_cruise_helper.v_cruise_kph = max(min(new_cruise_kph, V_CRUISE_MAX), V_CRUISE_MIN)
|
||||
self.v_cruise_helper.v_cruise_cluster_kph = self.v_cruise_helper.v_cruise_kph
|
||||
self.params_memory.remove("SLCForceCruiseSpeed")
|
||||
|
||||
if self.sm['carControl'].enabled and not self.CC_prev.enabled and not preap_software_cruise:
|
||||
# Use CarState w/ buttons from the step selfdrived enables on
|
||||
desired_speed_limit = self.sm['starpilotPlan'].slcSpeedLimit + self.sm['starpilotPlan'].slcSpeedLimitOffset
|
||||
desired_speed_limit = self.sm['starpilotPlan'].slcSpeedLimit
|
||||
if self.starpilot_toggles.speed_limit_controller:
|
||||
desired_speed_limit += self.sm['starpilotPlan'].slcSpeedLimitOffset
|
||||
self.v_cruise_helper.initialize_v_cruise(
|
||||
self.CS_prev,
|
||||
self.experimental_mode,
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
@@ -9,6 +9,7 @@ from openpilot.common.filter_simple import FirstOrderFilter
|
||||
from openpilot.common.realtime import DT_MDL
|
||||
from openpilot.selfdrive.modeld.constants import ModelConstants
|
||||
from openpilot.starpilot.common.model_versions import is_tinygrad_model_version
|
||||
from openpilot.starpilot.controls.lib.hybrid_experimental_mode import HybridExperimentalMode
|
||||
from openpilot.selfdrive.controls.lib.longcontrol import LongCtrlState
|
||||
from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import LongitudinalMpc
|
||||
from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import desired_follow_distance
|
||||
@@ -596,6 +597,7 @@ class LongitudinalPlanner:
|
||||
self.duplicate_vision_comfort_lead_source = None
|
||||
self.prev_experimental_mode = None
|
||||
self.experimental_release_accel_until = 0.0
|
||||
self.hybrid_controller = HybridExperimentalMode()
|
||||
|
||||
if self.is_preap:
|
||||
try:
|
||||
@@ -1936,6 +1938,7 @@ class LongitudinalPlanner:
|
||||
self.a_desired = np.clip(sm['carState'].aEgo, accel_limits[0], accel_limits[1])
|
||||
self.model_allow_throttle = True
|
||||
self.model_allow_throttle_transition_t = 0.0
|
||||
self.hybrid_controller.reset(float(self.a_desired))
|
||||
|
||||
# Prevent divergence, smooth in current v_ego
|
||||
self.v_desired_filter.x = max(0.0, self.v_desired_filter.update(v_ego))
|
||||
@@ -2284,26 +2287,42 @@ class LongitudinalPlanner:
|
||||
model_launch_accel = self.get_model_launch_accel(model_launch_v, model_launch_a, action_t, scene_v_ego)
|
||||
|
||||
if classic_model:
|
||||
output_a_target, output_should_stop = get_accel_from_plan_classic(
|
||||
output_a_target_mpc, output_should_stop_mpc = get_accel_from_plan_classic(
|
||||
self.CP, self.v_desired_trajectory, self.a_desired_trajectory, starpilot_toggles.vEgoStopping)
|
||||
elif tinygrad_model:
|
||||
output_a_target_mpc, output_should_stop_mpc = get_accel_from_plan(
|
||||
self.v_desired_trajectory, self.a_desired_trajectory,
|
||||
action_t=action_t, vEgoStopping=starpilot_toggles.vEgoStopping)
|
||||
output_a_target_e2e = sm['modelV2'].action.desiredAcceleration
|
||||
output_should_stop_e2e = sm['modelV2'].action.shouldStop
|
||||
|
||||
if self.mode == 'acc' or self.generation == 'v9':
|
||||
output_a_target = output_a_target_mpc
|
||||
output_should_stop = output_should_stop_mpc
|
||||
else:
|
||||
output_a_target = min(output_a_target_mpc, output_a_target_e2e)
|
||||
output_should_stop = output_should_stop_e2e or output_should_stop_mpc
|
||||
else:
|
||||
output_a_target, output_should_stop = get_accel_from_plan(
|
||||
output_a_target_mpc, output_should_stop_mpc = get_accel_from_plan(
|
||||
self.v_desired_trajectory, self.a_desired_trajectory,
|
||||
action_t=action_t, vEgoStopping=starpilot_toggles.vEgoStopping)
|
||||
|
||||
if bool(getattr(starpilot_toggles, "hybrid_experimental_mode", False)):
|
||||
self.hybrid_controller.set_tuning(
|
||||
getattr(starpilot_toggles, "hybrid_exp_bias", 0.0),
|
||||
getattr(starpilot_toggles, "hybrid_vision_brake_sensitivity", 1.0),
|
||||
)
|
||||
output_a_target_e2e = sm['modelV2'].action.desiredAcceleration
|
||||
output_should_stop_e2e = sm['modelV2'].action.shouldStop
|
||||
output_a_target = self.hybrid_controller.update(
|
||||
v_ego=scene_v_ego,
|
||||
v_cruise=v_cruise,
|
||||
lead_one=self.lead_one,
|
||||
model_v2=sm['modelV2'],
|
||||
a_chill=output_a_target_mpc,
|
||||
a_exp=output_a_target_e2e,
|
||||
)
|
||||
output_should_stop = output_should_stop_mpc or output_should_stop_e2e
|
||||
elif tinygrad_model and self.mode != 'acc' and self.generation != 'v9':
|
||||
output_a_target_e2e = sm['modelV2'].action.desiredAcceleration
|
||||
output_should_stop_e2e = sm['modelV2'].action.shouldStop
|
||||
output_a_target = min(output_a_target_mpc, output_a_target_e2e)
|
||||
output_should_stop = output_should_stop_e2e or output_should_stop_mpc
|
||||
else:
|
||||
output_a_target = output_a_target_mpc
|
||||
output_should_stop = output_should_stop_mpc
|
||||
|
||||
comfort_output_accel_min = get_vehicle_min_accel(self.CP, v_ego) if experimental_mlsim else accel_limits_turns[0]
|
||||
vision_cap_accel_min = min(comfort_output_accel_min, get_vehicle_min_accel(self.CP, v_ego))
|
||||
output_accel_min = comfort_output_accel_min
|
||||
|
||||
@@ -514,6 +514,46 @@ def test_experimental_mlsim_uses_vehicle_min_accel_floor(model_version):
|
||||
assert planner.output_a_target < comfort_min_accel
|
||||
|
||||
|
||||
def test_hybrid_mode_shields_unconfirmed_vision_braking():
|
||||
v_ego = 20.0
|
||||
desired_accel = -2.0
|
||||
CP = CarInterface.get_non_essential_params(CAR.HONDA_CIVIC)
|
||||
|
||||
# Hybrid mode clamps unconfirmed vision braking to a gentle coast (no lead,
|
||||
# model not predicting a stop), instead of passing the raw E2E target.
|
||||
hybrid_toggles = SimpleNamespace(**vars(make_toggles("v11")), hybrid_experimental_mode=True)
|
||||
planner_hybrid = LongitudinalPlanner(CP, init_v=v_ego)
|
||||
sm = make_sm(v_ego, desired_accel, -2.0, experimental_mode=False)
|
||||
planner_hybrid.update(sm, hybrid_toggles)
|
||||
assert planner_hybrid.mode == "acc"
|
||||
assert planner_hybrid.output_a_target >= -0.6
|
||||
|
||||
# Without the hybrid shield, experimental mode lets the raw E2E target through.
|
||||
planner_exp = LongitudinalPlanner(CP, init_v=v_ego)
|
||||
sm_exp = make_sm(v_ego, desired_accel, -2.0, experimental_mode=True)
|
||||
planner_exp.update(sm_exp, make_toggles("v11"))
|
||||
assert planner_exp.output_a_target <= -1.5
|
||||
|
||||
|
||||
def test_hybrid_mode_arbitrates_vision_braking_with_lead():
|
||||
v_ego = 20.0
|
||||
CP = CarInterface.get_non_essential_params(CAR.HONDA_CIVIC)
|
||||
hybrid_toggles = SimpleNamespace(**vars(make_toggles("v11")), hybrid_experimental_mode=True)
|
||||
|
||||
# With a tracked lead, the hybrid grants full E2E braking authority.
|
||||
planner = LongitudinalPlanner(CP, init_v=v_ego)
|
||||
sm = make_sm(
|
||||
v_ego,
|
||||
desired_accel=-2.0,
|
||||
min_accel=-2.0,
|
||||
experimental_mode=False,
|
||||
tracking_lead=True,
|
||||
lead_one=make_lead(status=True, d_rel=30.0, v_lead=10.0),
|
||||
)
|
||||
planner.update(sm, hybrid_toggles)
|
||||
assert planner.output_a_target < 0.0
|
||||
|
||||
|
||||
def test_gm_pedal_vehicle_min_accel_uses_brand_when_car_name_is_missing():
|
||||
CP = SimpleNamespace(
|
||||
carName=None,
|
||||
|
||||
@@ -175,6 +175,23 @@ def test_lateral_resume_delay_ignores_signal_cycles_that_never_slow_enough(monke
|
||||
planner.shutdown()
|
||||
|
||||
|
||||
def test_hybrid_mode_runs_continuous_controller(monkeypatch):
|
||||
planner = make_planner(monkeypatch)
|
||||
monkeypatch.setattr(planner.starpilot_cem, "update", lambda *args, **kwargs: None)
|
||||
|
||||
try:
|
||||
toggles = make_toggles(hybrid_experimental_mode=True)
|
||||
|
||||
planner.update(0.0, False, make_sm(planner, frame=1, v_ego=20.0, left_blinker=False), toggles)
|
||||
|
||||
assert planner.hybrid_controller is not None
|
||||
assert planner.hybrid_acceleration != 0.0
|
||||
assert planner.starpilot_ccm.experimental_mode is False
|
||||
assert planner.starpilot_cem.experimental_mode is False
|
||||
finally:
|
||||
planner.shutdown()
|
||||
|
||||
|
||||
def test_radarless_follow_hold_applies_to_tracked_vision_lead(monkeypatch):
|
||||
planner = StarPilotPlanner(Path("/tmp/nonexistent"), DummyThemeManager())
|
||||
|
||||
|
||||
@@ -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_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 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 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 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 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 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 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_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_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 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 h_25(double *state, double *unused, double *out_7699167154037203435) {
|
||||
out_7699167154037203435[0] = state[6];
|
||||
void h_25(double *state, double *unused, double *out_6007362445110034756) {
|
||||
out_6007362445110034756[0] = state[6];
|
||||
}
|
||||
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_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_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_5449620096162801389) {
|
||||
out_5449620096162801389[0] = state[4];
|
||||
out_5449620096162801389[1] = state[5];
|
||||
}
|
||||
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_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_30(double *state, double *unused, double *out_940710322681338449) {
|
||||
out_940710322681338449[0] = state[4];
|
||||
void h_30(double *state, double *unused, double *out_2369912916856012406) {
|
||||
out_2369912916856012406[0] = state[4];
|
||||
}
|
||||
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_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_26(double *state, double *unused, double *out_1922794416016636561) {
|
||||
out_1922794416016636561[0] = state[7];
|
||||
void h_26(double *state, double *unused, double *out_6836290203325307661) {
|
||||
out_6836290203325307661[0] = state[7];
|
||||
}
|
||||
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_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_27(double *state, double *unused, double *out_3098231746361013839) {
|
||||
out_3098231746361013839[0] = state[3];
|
||||
void h_27(double *state, double *unused, double *out_2710474474758657570) {
|
||||
out_2710474474758657570[0] = state[3];
|
||||
}
|
||||
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_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_29(double *state, double *unused, double *out_539217781893008511) {
|
||||
out_539217781893008511[0] = state[1];
|
||||
void h_29(double *state, double *unused, double *out_1542363084005055587) {
|
||||
out_1542363084005055587[0] = state[1];
|
||||
}
|
||||
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_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_28(double *state, double *unused, double *out_822702928747961705) {
|
||||
out_822702928747961705[0] = state[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_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_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_31(double *state, double *unused, double *out_6649273621392976317) {
|
||||
out_6649273621392976317[0] = state[8];
|
||||
void h_31(double *state, double *unused, double *out_6282556507394540645) {
|
||||
out_6282556507394540645[0] = state[8];
|
||||
}
|
||||
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;
|
||||
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;
|
||||
}
|
||||
#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_7084348270501559549) {
|
||||
err_fun(nom_x, delta_x, out_7084348270501559549);
|
||||
void car_err_fun(double *nom_x, double *delta_x, double *out_8339538066892951453) {
|
||||
err_fun(nom_x, delta_x, out_8339538066892951453);
|
||||
}
|
||||
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_inv_err_fun(double *nom_x, double *true_x, double *out_1869575881362213489) {
|
||||
inv_err_fun(nom_x, true_x, out_1869575881362213489);
|
||||
}
|
||||
void car_H_mod_fun(double *state, double *out_1623843232183312219) {
|
||||
H_mod_fun(state, out_1623843232183312219);
|
||||
void car_H_mod_fun(double *state, double *out_4134445094065349854) {
|
||||
H_mod_fun(state, out_4134445094065349854);
|
||||
}
|
||||
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_1187519494066628558) {
|
||||
f_fun(state, dt, out_1187519494066628558);
|
||||
}
|
||||
void car_F_fun(double *state, double dt, double *out_7142842168519911469) {
|
||||
F_fun(state, dt, out_7142842168519911469);
|
||||
void car_F_fun(double *state, double dt, double *out_638221139616797346) {
|
||||
F_fun(state, dt, out_638221139616797346);
|
||||
}
|
||||
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_6007362445110034756) {
|
||||
h_25(state, unused, out_6007362445110034756);
|
||||
}
|
||||
void car_H_25(double *state, double *unused, double *out_1899137417806179458) {
|
||||
H_25(state, unused, out_1899137417806179458);
|
||||
void car_H_25(double *state, double *unused, double *out_5119110753731964525) {
|
||||
H_25(state, unused, out_5119110753731964525);
|
||||
}
|
||||
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_5449620096162801389) {
|
||||
h_24(state, unused, out_5449620096162801389);
|
||||
}
|
||||
void car_H_24(double *state, double *unused, double *out_273512181199320108) {
|
||||
H_24(state, unused, out_273512181199320108);
|
||||
void car_H_24(double *state, double *unused, double *out_2946461154726464959) {
|
||||
H_24(state, unused, out_2946461154726464959);
|
||||
}
|
||||
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_2369912916856012406) {
|
||||
h_30(state, unused, out_2369912916856012406);
|
||||
}
|
||||
void car_H_30(double *state, double *unused, double *out_8815827759297796213) {
|
||||
H_30(state, unused, out_8815827759297796213);
|
||||
void car_H_30(double *state, double *unused, double *out_7637443712239213152) {
|
||||
H_30(state, unused, out_7637443712239213152);
|
||||
}
|
||||
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_6836290203325307661) {
|
||||
h_26(state, unused, out_6836290203325307661);
|
||||
}
|
||||
void car_H_26(double *state, double *unused, double *out_1842365901067876766) {
|
||||
H_26(state, unused, out_1842365901067876766);
|
||||
void car_H_26(double *state, double *unused, double *out_1377607434857908301) {
|
||||
H_26(state, unused, out_1377607434857908301);
|
||||
}
|
||||
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_2710474474758657570) {
|
||||
h_27(state, unused, out_2710474474758657570);
|
||||
}
|
||||
void car_H_27(double *state, double *unused, double *out_6641064447497371302) {
|
||||
H_27(state, unused, out_6641064447497371302);
|
||||
void car_H_27(double *state, double *unused, double *out_8585706290286395247) {
|
||||
H_27(state, unused, out_8585706290286395247);
|
||||
}
|
||||
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_1542363084005055587) {
|
||||
h_29(state, unused, out_1542363084005055587);
|
||||
}
|
||||
void car_H_29(double *state, double *unused, double *out_4927701720627820269) {
|
||||
H_29(state, unused, out_4927701720627820269);
|
||||
void car_H_29(double *state, double *unused, double *out_8147675056553605336) {
|
||||
H_29(state, unused, out_8147675056553605336);
|
||||
}
|
||||
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_7712147742419503215) {
|
||||
h_28(state, unused, out_7712147742419503215);
|
||||
}
|
||||
void car_H_28(double *state, double *unused, double *out_154697296441710305) {
|
||||
H_28(state, unused, out_154697296441710305);
|
||||
void car_H_28(double *state, double *unused, double *out_3065276039484074762) {
|
||||
H_28(state, unused, out_3065276039484074762);
|
||||
}
|
||||
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_6282556507394540645) {
|
||||
h_31(state, unused, out_6282556507394540645);
|
||||
}
|
||||
void car_H_31(double *state, double *unused, double *out_1929783379683139886) {
|
||||
H_31(state, unused, out_1929783379683139886);
|
||||
void car_H_31(double *state, double *unused, double *out_5149756715608924953) {
|
||||
H_31(state, unused, out_5149756715608924953);
|
||||
}
|
||||
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_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_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_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_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_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_predict(double *in_x, double *in_P, double *in_Q, double dt);
|
||||
}
|
||||
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