diff --git a/README.md b/README.md index 1ec8fef..23598ac 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,5 @@ $ pip install numpy matplotlib geopy From the root directory of this repository run ```bash -$ python -m kalman_filter -``` - -Which example is run can be changed in `kalman_filter/__main__.py` +$ python main.py +``` \ No newline at end of file diff --git a/kalman_filter/__init__.py b/examples/__init__.py similarity index 100% rename from kalman_filter/__init__.py rename to examples/__init__.py diff --git a/examples/__init__.pyc b/examples/__init__.pyc new file mode 100644 index 0000000..c08e9b9 Binary files /dev/null and b/examples/__init__.pyc differ diff --git a/kalman_filter/gps_measurement.py b/examples/gps_measurement.py similarity index 92% rename from kalman_filter/gps_measurement.py rename to examples/gps_measurement.py index 07a43d2..88ac914 100644 --- a/kalman_filter/gps_measurement.py +++ b/examples/gps_measurement.py @@ -1,6 +1,7 @@ -from .kalman_filter import * +from filter.kalman_filter import LinearKalmanFilter import matplotlib.pyplot as plt import csv +import numpy as np import geopy.distance @@ -52,11 +53,11 @@ The reset of the parameters are empirically determined """ -def simulate(): +def simulate(kalman_filter_t): # Read data x0_actual = [48.993552704, 8.371038159] - x_measurement = read_csv_lat_long('res/29_03_2022_Unterreut_8_Karlsruhe.csv') + x_measurement = read_csv_lat_long('examples/res/29_03_2022_Unterreut_8_Karlsruhe.csv') # Simulation parameter definitions @@ -90,7 +91,7 @@ def simulate(): # Simulation - f = KalmanFilter(x0, P0, H, Q, F, G) + f = kalman_filter_t(x0, P0, H, Q, F, G) for i in range(1, n_iterations): @@ -126,4 +127,4 @@ def simulate(): ax3.plot(t, x_error_measurement*1000, label="Error in measured position in m") ax3.legend() - plt.show() + plt.show() \ No newline at end of file diff --git a/examples/gps_measurement.pyc b/examples/gps_measurement.pyc new file mode 100644 index 0000000..f438252 Binary files /dev/null and b/examples/gps_measurement.pyc differ diff --git a/res/29_03_2022_Unterreut_8_Karlsruhe.csv b/examples/res/29_03_2022_Unterreut_8_Karlsruhe.csv similarity index 100% rename from res/29_03_2022_Unterreut_8_Karlsruhe.csv rename to examples/res/29_03_2022_Unterreut_8_Karlsruhe.csv diff --git a/res/29_03_2022_Unterreut_8_Karlsruhe_angle_length.csv b/examples/res/29_03_2022_Unterreut_8_Karlsruhe_angle_length.csv similarity index 100% rename from res/29_03_2022_Unterreut_8_Karlsruhe_angle_length.csv rename to examples/res/29_03_2022_Unterreut_8_Karlsruhe_angle_length.csv diff --git a/kalman_filter/second_order_system.py b/examples/second_order_system.py similarity index 89% rename from kalman_filter/second_order_system.py rename to examples/second_order_system.py index 35d91c7..68e7f8f 100644 --- a/kalman_filter/second_order_system.py +++ b/examples/second_order_system.py @@ -1,5 +1,6 @@ -from .kalman_filter import * +from filter.kalman_filter import LinearKalmanFilter import matplotlib.pyplot as plt +import numpy as np """ @@ -24,7 +25,7 @@ The reset of the parameters are empirically determined """ -def simulate(): +def simulate(kalman_filter_t): # Simulation parameter definitions n_iterations = 500 @@ -52,7 +53,7 @@ def simulate(): # Simulation - f = KalmanFilter(x0, P0, H, Q, F, G) + f = kalman_filter_t(x0, P0, H, Q, F, G) for i in range(1, n_iterations): @@ -72,5 +73,4 @@ def simulate(): plt.plot(t, x_actual[:, 0]) plt.plot(t, x_kalman[:, 0]) plt.plot(t, x_measurement[:, 0]) - plt.show() - + plt.show() \ No newline at end of file diff --git a/examples/second_order_system.pyc b/examples/second_order_system.pyc new file mode 100644 index 0000000..13edb6d Binary files /dev/null and b/examples/second_order_system.pyc differ diff --git a/filter/__init__.py b/filter/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/filter/__init__.pyc b/filter/__init__.pyc new file mode 100644 index 0000000..6f25053 Binary files /dev/null and b/filter/__init__.pyc differ diff --git a/kalman_filter/kalman_filter.py b/filter/kalman_filter.py similarity index 98% rename from kalman_filter/kalman_filter.py rename to filter/kalman_filter.py index 2ceb5de..af40a99 100644 --- a/kalman_filter/kalman_filter.py +++ b/filter/kalman_filter.py @@ -30,7 +30,7 @@ def identity_gen(A): # -class KalmanFilter: +class LinearKalmanFilter: def __init__(self, x0, P0, H, Q, F, G): self.x = x0 # Initial state self.P = P0 # Initial uncertainty diff --git a/filter/kalman_filter.pyc b/filter/kalman_filter.pyc new file mode 100644 index 0000000..f5308c6 Binary files /dev/null and b/filter/kalman_filter.pyc differ diff --git a/kalman_filter/__main__.py b/kalman_filter/__main__.py deleted file mode 100644 index 1b69c31..0000000 --- a/kalman_filter/__main__.py +++ /dev/null @@ -1,10 +0,0 @@ -from . import gps_measurement as gps -from . import second_order_system as sos - - -def main(): - gps.simulate() -# sos.simulate() - -if __name__ == '__main__': - main() diff --git a/main.py b/main.py new file mode 100644 index 0000000..4e067e6 --- /dev/null +++ b/main.py @@ -0,0 +1,11 @@ +from examples import gps_measurement as gps +from examples import second_order_system as sos +from filter.kalman_filter import LinearKalmanFilter + + +def main(): + gps.simulate(LinearKalmanFilter) + #sos.simulate(LinearKalmanFilter) + +if __name__ == '__main__': + main()