{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Kalman Filters: From Fundamentals to Advanced Filtering\n", "\n", "This notebook provides a comprehensive, hands-on introduction to Kalman filtering using PyTCL (Python Tracker Component Library). \n", "\n", "## What You'll Learn\n", "\n", "1. **Linear Kalman Filter (KF)** - Optimal recursive estimation for linear systems\n", "2. **Extended Kalman Filter (EKF)** - First-order nonlinear approximation using Jacobians\n", "3. **Unscented Kalman Filter (UKF)** - Deterministic sigma-point methods for accurate nonlinear handling\n", "4. **Square-Root Filters** - Numerically stable variants that maintain positive definiteness\n", "5. **Interactive Parameter Tuning** - Explore how Q and R affect filter performance\n", "\n", "## Key Concepts You'll Master\n", "\n", "- **Predict-Update cycle**: How filters recursively estimate state\n", "- **Covariance matrices**: What P, Q, R represent (uncertainty)\n", "- **Belief propagation**: Combining prior knowledge with new measurements\n", "- **Filter divergence**: When and why filters fail\n", "- **Real-world tradeoffs**: Accuracy vs computational cost\n", "\n", "## Prerequisites\n", "\n", "```bash\n", "pip install nrl-tracker matplotlib numpy scipy\n", "```\n", "\n", "## Estimated Time: 30-40 minutes\n", "\n", "Try running each section sequentially, modify parameters to experiment, and attempt the exercises at the end!" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✓ PyTCL Kalman filter modules and Plotly imported successfully\n" ] } ], "source": [ "import numpy as np\n", "import plotly.graph_objects as go\n", "from plotly.subplots import make_subplots\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# Import PyTCL Kalman filter components\n", "from pytcl.dynamic_estimation.kalman import (\n", " kf_predict, kf_update,\n", " ekf_predict, ekf_update,\n", " ukf_predict, ukf_update\n", ")\n", "\n", "# Import square-root filter functions\n", "from pytcl.dynamic_estimation.kalman.square_root import (\n", " srkf_predict, srkf_update\n", ")\n", "\n", "np.random.seed(42)\n", "\n", "# Plotly dark theme template\n", "dark_template = go.layout.Template()\n", "dark_template.layout = go.Layout(\n", " paper_bgcolor='#0d1117',\n", " plot_bgcolor='#0d1117',\n", " font=dict(color='#e6edf3'),\n", " xaxis=dict(gridcolor='#30363d', zerolinecolor='#30363d'),\n", " yaxis=dict(gridcolor='#30363d', zerolinecolor='#30363d'),\n", ")\n", "\n", "print(\"✓ PyTCL Kalman filter modules and Plotly imported successfully\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Kalman Filter: Core Concepts\n", "\n", "### Why Do We Need the Kalman Filter?\n", "\n", "In the real world, we have:\n", "- **Imperfect measurements** - GPS has noise, sensors drift\n", "- **Incomplete observations** - We can't measure everything\n", "- **Dynamic systems** - Things change over time\n", "\n", "The Kalman filter **optimally combines** prior predictions with new measurements to estimate the true state.\n", "\n", "### The Two-Step Recursive Algorithm\n", "\n", "The Kalman filter alternates between:\n", "\n", "**1. PREDICT** - Where do we expect the system to be based on physics?\n", "- Uses a process model: $\\hat{x}^-_k = F \\hat{x}_{k-1}$\n", "- Tracks uncertainty growing over time: $P^-_k = F P_{k-1} F^T + Q$\n", "\n", "**2. UPDATE** - Now incorporate the new measurement, what do we believe?\n", "- Compute Kalman gain: $K_k = P^-_k H^T (H P^-_k H^T + R)^{-1}$\n", "- Blend prediction with measurement: $\\hat{x}_k = \\hat{x}^-_k + K_k (z_k - H\\hat{x}^-_k)$\n", "- Reduce uncertainty: $P_k = (I - K_k H) P^-_k$\n", "\n", "### Key Parameters to Tune\n", "\n", "| Parameter | Meaning | Effect |\n", "|-----------|---------|--------|\n", "| **Q** | Process noise covariance | How much does the model lie? |\n", "| **R** | Measurement noise covariance | How much do measurements lie? |\n", "| **F** | State transition matrix | Physics of the system |\n", "| **H** | Observation matrix | What can we measure? |\n", "\n", "**Rule of thumb:** The Kalman filter balances trust in the model (Q) vs trust in measurements (R)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Linear Kalman Filter\n", "\n", "The Kalman filter is the optimal estimator for linear Gaussian systems. It consists of two steps:\n", "\n", "**Prediction:**\n", "$$\\hat{x}_{k|k-1} = F \\hat{x}_{k-1|k-1}$$\n", "$$P_{k|k-1} = F P_{k-1|k-1} F^T + Q$$\n", "\n", "**Update:**\n", "$$K = P_{k|k-1} H^T (H P_{k|k-1} H^T + R)^{-1}$$\n", "$$\\hat{x}_{k|k} = \\hat{x}_{k|k-1} + K(z - H\\hat{x}_{k|k-1})$$\n", "$$P_{k|k} = (I - KH) P_{k|k-1}$$\n", "\n", "### Example: Tracking a Moving Object" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "State dimension: 4 (position + velocity in 2D)\n", "Measurement dimension: 2 (position only)\n", "Process noise (Q) magnitude: 0.020\n", "Measurement noise (R) magnitude: 2.000\n" ] } ], "source": [ "# System parameters\n", "dt = 0.1 # Time step [seconds]\n", "n_steps = 100 # Number of time steps\n", "\n", "# STATE DEFINITION: [x, vx, y, vy]\n", "# x, y: position in meters\n", "# vx, vy: velocity components in m/s\n", "# This is a 4-dimensional state space (constant velocity model)\n", "\n", "# STATE TRANSITION MATRIX: x_{k+1} = F @ x_k\n", "# Models constant velocity: new_pos = old_pos + velocity * dt\n", "F = np.array([\n", " [1, dt, 0, 0], # x_{k+1} = x_k + vx_k * dt\n", " [0, 1, 0, 0], # vx_{k+1} = vx_k (no acceleration)\n", " [0, 0, 1, dt], # y_{k+1} = y_k + vy_k * dt\n", " [0, 0, 0, 1] # vy_{k+1} = vy_k\n", "])\n", "\n", "# PROCESS NOISE COVARIANCE: Q\n", "# Accounts for model uncertainty (e.g., unmodeled accelerations)\n", "# Sets diagonal to larger values for more process uncertainty\n", "q = 0.1 # Process noise intensity (tune this!)\n", "Q = q * np.array([\n", " [dt**3/3, dt**2/2, 0, 0], # Higher power for position uncertainty\n", " [dt**2/2, dt, 0, 0],\n", " [0, 0, dt**3/3, dt**2/2],\n", " [0, 0, dt**2/2, dt]\n", "])\n", "\n", "# MEASUREMENT MATRIX: z_k = H @ x_k\n", "# We observe position (x, y) but NOT velocity\n", "H = np.array([\n", " [1, 0, 0, 0], # Measure x position\n", " [0, 0, 1, 0] # Measure y position\n", "])\n", "\n", "# MEASUREMENT NOISE COVARIANCE: R\n", "# Sensor uncertainty (GPS noise, radar error, etc.)\n", "# Diagonal elements are variance of measurement error\n", "R = np.eye(2) * 1.0 # 1 meter measurement standard deviation\n", "\n", "# Print diagnostics\n", "print(f\"State dimension: {F.shape[0]} (position + velocity in 2D)\")\n", "print(f\"Measurement dimension: {H.shape[0]} (position only)\")\n", "print(f\"Process noise (Q) magnitude: {np.trace(Q):.3f}\")\n", "print(f\"Measurement noise (R) magnitude: {np.trace(R):.3f}\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Generated 100 measurements\n" ] } ], "source": [ "# Generate ground truth trajectory\n", "true_state = np.array([0.0, 1.0, 0.0, 0.5]) # Start at origin, moving diagonally\n", "true_states = [true_state.copy()]\n", "measurements = []\n", "\n", "for _ in range(n_steps):\n", " # Propagate true state\n", " true_state = F @ true_state + np.random.multivariate_normal(np.zeros(4), Q)\n", " true_states.append(true_state.copy())\n", " \n", " # Generate measurement\n", " z = H @ true_state + np.random.multivariate_normal(np.zeros(2), R)\n", " measurements.append(z)\n", "\n", "true_states = np.array(true_states)\n", "measurements = np.array(measurements)\n", "\n", "print(f\"Generated {len(measurements)} measurements\")" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Final position estimate: (3.22, 14.53)\n", "Final position uncertainty (1σ): (0.363, 0.363)\n" ] } ], "source": [ "# Run Kalman filter\n", "x_est = np.array([0.0, 0.0, 0.0, 0.0]) # Initial estimate\n", "P_est = np.eye(4) * 10.0 # Initial covariance (uncertain)\n", "\n", "estimates = [x_est.copy()]\n", "covariances = [P_est.copy()]\n", "\n", "for z in measurements:\n", " # Predict\n", " pred = kf_predict(x_est, P_est, F, Q)\n", " x_pred, P_pred = pred.x, pred.P\n", " \n", " # Update\n", " upd = kf_update(x_pred, P_pred, z, H, R)\n", " x_est, P_est = upd.x, upd.P\n", " \n", " estimates.append(x_est.copy())\n", " covariances.append(P_est.copy())\n", "\n", "estimates = np.array(estimates)\n", "covariances = np.array(covariances)\n", "\n", "print(f\"Final position estimate: ({estimates[-1, 0]:.2f}, {estimates[-1, 2]:.2f})\")\n", "print(f\"Final position uncertainty (1σ): ({np.sqrt(covariances[-1, 0, 0]):.3f}, {np.sqrt(covariances[-1, 2, 2]):.3f})\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "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trX7285S2GOZ3YMPPkjDhg0BePPNN3n++eevJvR8NWjQwPj9119/NX5PTEw06pAJIURFoZSic+fOvPPOO+zdu5cLFy4Y/5hKTU1l/fr1xrL5XbOUpqJ8d0D+37GONGzY0HhtR48eJT4+3phX0PeuMxR0nedofvbYf/vtNywWi/G8ONcWjgwePNhoyfXWW2+xdetWAAYOHIi3t7exnFKKfv36sWzZMv744w9SUlKYNGkSoNcI+vnnn4u0X8CujuuoUaOMf2Y5kv217tq1y/j9wIEDpKamAnrSIyQkhPr16xvz9+3bh9VqNZ47qnWWfdsjR47M8/qxb9++RXyFcNNNN+Hj4wPo9cuy1wPNLqs3Rl6vM+fzsjq/y9OxzHlszp07V+ByJR2DEFXJVXcPBL0rzfr16+nevTt//vknZ86coVevXmzbto26detSr149Y9kvv/yS6667jsTERJ588sliB14U2eP48ccfWb58OS4uLrmaU1ckgYGBJCQkcPLkST7++GPq1atHjRo1iIyMZNiwYUart5tvvpknnniCOnXqEBcXx99//83q1at59NFH8ywwmdPmzZvp0aMHoH/gLlmyJN/lDx06xPXXX8+ZM2cAvdn1ddddx7Zt24xlGjVq5PA/erGxsfz000+cOXOGr7/+mg8//NCYN378+FLpjpZTjRo18PDwIC0tjT/++IN33nmHGjVqMGfOnEJfcLdu3ZoWLVpw4MABtmzZwogRI4yLsZiYGHbt2sXKlSuN7nz33HOP8Z5NnjyZM2fO0KFDB/777z/eeecdduzYAdj/5+ePP/5g1apVVKtWjbp161K3bl2GDh3KokWLAP24z5gxg8TERGbMmGGsV9Ti6cOHD+fJJ58kIyPDaHp93XXXERYWVqTtFEe9evU4fPgw8fHxPP/887Rq1YqFCxc6TCLec889RpHWF154AYvFQo8ePYiPj+ejjz5i0aJFdp8JoN/QrF27lmuvvZbExESefvpp6tSpY9cdobgGDBjA1KlTUUrx5ZdfMmfOHNq1a8fChQu5dOlSie1HCCFKwpkzZ+y+t7N06NABd3d3Jk6caJQACAsLw2w22xUtT09PN37P75qlNBXluyMrzujoaED/p9k111yDv79/nuUcgoOD6du3L+vXryc9PZ0777yTyZMnc/ToUd58801judIYtCRLQe9TcbVp04amTZty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VlWIcs4mSSshhBBCOJlSiocffpiVK1eyefNmIiIi7OY3b96cf//9l9jYWOrWrQvAgQMHOH/+PE2bNs1zuyEhIXYjyx8+fDjfFkuOZN1PZS+3kqXQ94gOOLoP27NnDzabjfnz5xv1nz777LMibbew+wK48cYb8fb25q233mL9+vVs3bq1wG3t37+fS5cuGcm8X375BR8fH8LCwoiPj+fQoUO8++67dOvWDdBL2hRV06ZN2blzp920X375pcjbKSpJWlUSPm4+edaUUkoZNaIqWg2jG264gRdffJFly5bRuXNnPvroIw4cOEDbtm0B8PX15bHHHmPy5MnYbDauu+46kpOT2b59O35+fowcOVLfkNkMfj56bSurhfDwcLb+uouhp0/j7u5OtWrV8owhMjKSDz/8kPbt23P+/Hkef/xx/cPAajWKuwN6Qux8Cr2ioujcuTMDBw7khRdeoFGjRpw8edIovt6+fXtmzJhBz549adCgAUOHDsVisbBu3TqmTp0K6E1Jt27dytChQ434Hn30UTp06MCcOXMYMmQIO3bs4PXXX8+3H3V2Y8eOZcKECXh7e+cakVEIUb5YgUxJWgkhhBDCicaPH88nn3zC6tWr8fX15dSpU4BenNzT05OoqCjatWvHPffcw4IFC7BYLDz00EPccMMNXHPNNXlu94YbbuD111+nc+fOWK1Wpk6dmqtVUkGeeuopWrZsyUMPPcQDDzyAm5sbmzZtYvDgwVSrVq1w94gOhIeHEx0dzb59+6hTpw6+vr40bNiQzMxMXnvtNW655Ra2b9/OokWLihRvXvvauXMnMTEx+Pj4EBQUhMlkwsXFhVGjRvHUU08RGRlZqC54GRkZjBkzhmeeeYaYmBhmzJjBhAkTMJlMBAYGEhwczDvvvEPNmjWJjY3lySefLHK8EydOpGvXrrz00ksMGDCA7777rtTrWYHUtBLlXN++fZk2bRpPPPEEHTp04MKFC4wYMcJumTlz5jBt2jTmzp1L06ZN6devH2vXrs31nwDMZr3our8fs597jpjjx2nQoEGBo1q8//77JCYm0q5dO4YPH87EiROpXr06WKyXi7tf/oA1u4DFgpaeybp167j++usZPXo0jRo1YujQoRw/fpwaNWoAEBUVxeeff87XX39NmzZtuOGGG9i1a5exz9mzZxMTE2MXX7t27fjss8/49NNPadGiBdOnT2f27NmFrk111113YTabGTp0KB4eHoVaRwjhHFakpZUQQghRFaTZ4GIZPNKuoofXW2+9RXJyMlFRUdSsWdN4rFixAtC7j61cuZLg4GCuv/56evXqRYMGDVi+fHm+250/fz5hYWF069aNu+++m8cee6zI3d8aNWrE999/z/79++nYsSOdO3dm9erVxmBehb5HzOH222+nX79+9OjRg5CQEJYvX07r1q15+eWXmTdvHi1atODjjz9m7ty5RYrXkcceewwXFxeaNWtGSEiIXX2prK6HefXMyalnz55ERkZy/fXXM2TIEG699VZmzpwJ6CV3Pv30U/bs2UOLFi2YPHkyL774YpHjvfbaa3n33XdZuHAhrVu35vvvv+eZZ54p8naKSlM5O5NWYlu3buXFF19kz549xMXFsXLlSrsWJ6NGjWLp0qV26/Tt27fA7OEbb7zBiy++yKlTp2jdujWvvfYaHTt2LHRc58+fx9/fn+TkZPz8/Aq1TlpaGtHR0URERBSYgKhoLa3KU7z5jrqYfB4yM1FmV2o1acTsp//HfXffDa6u4F+497EsZSXBdu3aRatWrfI9vvmdX1dzvgpRUZSH89titbEi+gx1a1Snm6/8b0lcYbPZOHPmDNWrV7cbnloIOTeEI3JelA95XVdfssHq85BYhuWCAk0wwA88tPJzvyUc++mnn+jZsycnTpwwGj6UhZK8Fy+pe8oq1T3w4sWLtG7dmnvvvZfbbrvN4TL9+vVj8eLFxvOchdpyWrFiBVOmTGHRokV06tSJBQsW0LdvXw4dOqS3xhEVitVm5czFM2RYM8iwZlDduzr+Hv6OF3Yxk5qYxLbf9nL6zBmaN2miF6JxKV9/VpmZmcTHx/PMM89w7bXX0q5dOywWGZZMiPIu1bk1L4UQQghRijwvJ5DKsmW1m6bvt+o0W6l40tPTOXv2LDNnzmTw4MFlmrAqr8rX3XUp69+/P/379893GXd3d0JDQwu9zZdffpn77rvPaLa3aNEi1q5dywcffHBV/USFc2maRmJaovE8w+p4hEAAPNx455OPmfPSi0y8/wE6t2mrd0EsRHH3srR9+3Z69OhBo0aN+OKLL5wdjhCikC7JBaUQQghRqXmaoPTGFBcV0fLlyxkzZgxt2rRh2bJlzg6nXJB2ojls3ryZ6tWr07hxYx588EHi4+PzXDYjI4M9e/bQq1cvY5rJZKJXr17s2LGjLMIVJcykmXA1XSkCmG/Symxm0hOPcy72BC/OnQtennqxd3P5ygVHRUWhlOLQoUO0bNnS2eEIIQpJklZCCCGEEFXLqFGjsFqt7Nmzh9q1azs7nHKhfN1dO1m/fv247bbbiIiI4OjRozz99NP079+fHTt24OLikmv5c+fOYbVaczXZq1GjBn///Xee+0lPTyc9Pd14fv78eUDvd26zFa4/iM1mQyllPAqStUxFKWHmzHjdze5kZmQCkG5Nzz8GFxfw9kJlZoKrKwoqRHvbgo5v1nnl6Jws7DkqhCiedAVWBS5SakIIIYQQQlRRkrTKZujQocbvLVu2pFWrVjRo0IDNmzfTs2fPEtvP3LlzmTVrVq7pZ8+eJS0trVDbyMzMxGazYbFYCqxPpJTCarUCVIhCe86O1wUXI5mTbkknMzMz3zicHW9RFSZei8WCzWYjPj4+1/CzFy5cKPUYhRB6wipTklZCCCGEEKIKk6RVPurXr0+1atU4cuSIw6RVtWrVcHFx4fTp03bTT58+nW9drKeeeoopU6YYz8+fP09YWBghISFFGj3wwoULmM1mY1jPguRMPpR3zorX09WT5IxkABQKzUXDbCr4GFem42s2mzGZTAQHB+ca6aGg0SqFECXDgl6cVf7ihBBCCCFEVSVJq3z8+++/xMfHU7NmTYfz3dzcuOaaa9i4cSMDBw4E9K5TGzduZMKECXlu193d3eGohCaTqdDD0ZpMJjRNMx75UUoZy1SUlkDOjNfNbF9IPdOWiatL3gkeZ8dbVIWJN+u8cnROypDJQpQNy+WWVkIIIYQQQlRVVeruMyUlhX379rFv3z4AoqOj2bdvH7GxsaSkpPD444/zyy+/EBMTw8aNGxkwYAANGzakb9++xjZ69uzJ66+/bjyfMmUK7777LkuXLuXgwYM8+OCDXLx40RhNUFQ82QuxA2RaM50UiRCiKrOosh0GWwghhBBCiPKmSrW02r17Nz169DCeZ3XRGzlyJG+99Ra///47S5cuJSkpiVq1atGnTx/mzJlj1yrq6NGjnDt3zng+ZMgQzp49y/Tp0zl16hRt2rRh/fr1uYqzi4ojZ6uqTJskrYQQZc+CtLQSQgghhBBVW5VKWkVFReU7Etx3331X4DZiYmJyTZswYUK+3QFFxWLSTLhoLliVXqzcYsu/0L0QQpSGrJpWQgghhBAiN03TWLlypVGqp6xt3ryZHj16kJiYSEBAQJ7LhYeHM2nSJCZNmlRmsVUmVap7oCgfRo0ahaZpPPDAA7nmjR8/HpPJxJgxY5wQ2RXZW1tVxO6BmqaxatUqZ4chhCgG6R4ohBBCiPJgx44duLi4cNNNNxV53fDwcBYsWFDyQZUDXbp0IS4uDn9/fwCWLFniMHn166+/Mm7cuDKOrvKQpJVwirCwMD799FMuXbpkTEtLS+OTTz6hbt26ToxMl320QIuyb2mVkZFR1uEIIaogi4KKlzIXQgghRGXz/vvv8/DDD7N161ZOnjzp7HDKDTc3N0JDQwscjCskJAQvL68yiqrwHN3XWq1WbDZbkbd1tesVhiSthFO0a9eOsLAwvvrqK2PaV199Rd26dWnbtq0xzWazMXfuXCIiIvD09KR169Z88cUXxnyr1cqYMWOM+Y0bN2bhwoV2+9q8eTMdO3bE29ubgIAAunbtyvHjxwG91VfO5qSTJk1iyM1DjOdDbx7KhAkTmDRpEtWqVTMK8x84cID+/fvj6+tLnTp1GDFihF29s6ioKB5++GEmTZpEYGAgNWrU4N133zUK9fv6+tKwYUO+/fZbu/1nbdfHx4caNWowfPjwXNudOHEiTzzxBEFBQYSGhjJz5kxjfnh4OACDBg1C0zTj+f79++nRowd+fn4EBwfTvn17du/eXdBbJYRwEqu0tBJCCCGEk6WkpLBixQoefPBBbrrpJpYsWZJrmW+++YYOHTrg4eFBtWrVGDRoEKDftxw/fpzJkyfbjXo/c+ZM2rRpY7eNBQsWGPctoLdO6t27N9WqVcPf35/u3buzd+/eIsUeFRVllPLx9/enWrVqTJs2za5kUGJiIiNGjCAwMBAvLy/69+/P4cOHjfnHjx/nlltuITAwEG9vb5o3b866desA/T5T0zSSkpLYvHkzo0ePJjk52XitWfdoOVubxcbGMmDAAHx8fPDz8+POO+/k9OnTxvys4/Phhx8SHh6Ov78/Q4cO5cKFC/m+3m3bttGtWzc8PT0JCwtj4sSJXLx40ZgfHh7OnDlzGDFiBH5+fowbN85oHfb111/TrFkzPDw8iI2NLfC45FzP3d2d2NjYIr0/hSVJq6ouIQl2/gbfbtR/JiSV2a7vvfdeFi9ebDz/4IMPco26OHfuXJYtW8aiRYv4888/mTx5Mvfccw9btmwB9KRWnTp1+Pzzz/nrr7+YPn06Tz/9NJ999hkAFouFgQMH0r17d37//Xd27NjBuHHjcmXDc5Y609CyzVMsXboUNzc3tm/fzqJFi0hKSuKGG26gbdu2/Prrr3zzzTecPn2aO++80247S5cupVq1auzatYuHH36YBx98kMGDB9OlSxf27t1Lnz59GD58OKmpqQB22929ezfr16/Pc7ve3t7s3LmTF154gdmzZ7NhwwZA/4AHWLx4MXFxccbzYcOGUadOHXbt2sUvv/zC1KlTcXW1LzovhChHNEgtnX9YCSGEEEIUymeffUaTJk1o3Lgx99xzDx988IFd0mft2rUMGjSIG2+8kd9++42NGzfSsWNHQG+UUKdOHWbPnk1cXBxxcXGF3u+FCxcYOXIk27Zt45dffiEyMpIbb7yxwMRNTkuXLsVsNrNr1y4WLlzIyy+/zHvvvWfMHzVqFLt37+brr79mx44dKKW48cYbyczU27uPHz+e9PR0tm7dyh9//MG8efPw8fHJtZ8uXbqwYMEC/Pz8jNf62GOP5VrOZrMxYMAAEhIS2LJlCxs2bODYsWMMGTLEbrmjR4+yatUq1qxZw5o1a9iyZQvPP/98nq/z6NGj9OvXj9tvv53ff/+dFStWsG3btly1t1966SVat27Nb7/9xrRp0wBITU1l3rx5vPfeexw4cIDq1aszevTofI9LzvX+/PNPqlevXoh35Coo4XTJyckKUMnJyYVe59KlS+qvv/5Sly5dKnBZm82mMjIylM1ms58Rn6jUp6uUev19pd7/WP/56Sp9eikaOXKkGjBggDpz5oxyd3dXMTExKiYmRnl4eKizZ8+qAQMGqOHDh6tLly4pLy8v9fPPP9utP2bMGHXXXXfluf3x48er22+/XSmlVHx8vALU5s2bcy2XmKjUoEEjVc+eA9RffymVdXgeeeQR1aVbF/XnmT/Vn2f+VB26dFBt27a1W3fOnDmqT58+Sqkrxzc2NlYB6tChQ0oppbp3766uu+46Yx2LxaK8vb3V8OHDjWlxcXEKUDt27Mi13SwnTpzId7tKKdWhQwc1depU4zmgVq5cabeMr6+vWrJkSd7nQzb5nV9Xc74KUVGUh/M702JVHx2OUzNPWdW3550WhiiHrFariouLU1ar1dmhiHJGzg3hiJwX5UNe19XXXKNU7dpl/7jmmnzuDx3o0qWLWrBggVJKqczMTFWtWjW1adMmY37nzp3VsGHD8ly/Xr166pVXXrGbNmPGDNW6dWu7aa+88oqqV69entuxWq3K19dXffPNN8Y0R/c82XXv3l01bdrU7nVOnTpVNW3aVCml1D///KMAtX37dmP+uXPnlKenp/rss8+UUkq1bNlSzZw50+H2N23apACVmJiolFJq8eLFyt/fP9dy2Y/B999/r1xcXFRsbKwx/88//1SA2rVrl1JKPz5eXl7q/PkrF4KPP/646tSpU56vdcyYMWrcuHF203766SdlMpmMc69evXpq4MCBdsssXrxYAWrfvn1KKf3cyIonv+OScz1HSuqeskqNHihyOBwN5+IhPAw0TW9uFHNCn96pbcHrF1NISIjRxFQpxU033US1atWM+UeOHCE1NZXevXvbrZeRkWHXhfCNN97ggw8+IDY2lkuXLpGRkWE0Nw0KCmLUqFH07duX3r1706tXL+68805q1qyJzQY2m/6yldJ/d3HRt5m9pRVA23b2x2P//v1s2rTJYZb96NGjNGrUCIBWrVoZ011cXAgODqZly5bGtBo1agBw5syZq94uQM2aNY1t5GXKlCmMHTuWDz/8kB49ejBkyBAaNmyY7zpCCOdx0SBVugcKIYQQldKpU/Dff86OIn+HDh1i165drFy5EgCz2cyQIUN4//33iYqKAmDfvn3cd999Jb7v06dP88wzz7B582bOnDmD1WolNTW1yF3Qrr32WrteNp07d2b+/PlYrVYOHjyI2WymU6dOxvzg4GAaN27MwYMHAZg4cSIPPvgg33//Pb169eL222/PdS9WFAcPHiQsLIywsDBjWrNmzQgICODgwYN06NAB0Lvy+fr6GssUdL+3f/9+fv/9dz7++GNjmlIKm81GdHQ0TZs2BaB9+/a51nVzc7N7TX///XeBx8XReqVFklZVWUICeHroCSvQf3p66NPLyL333ms0WXzjjTfs5qWkpAB6k9PatWvbzXN3dwfg008/5bHHHmP+/Pl07twZX19fXnzxRXbu3Gksu3jxYiZOnMj69etZsWIFzzzzDBs2bKBp02sxmUxG89aspFX2Jo9ZvL29c8V2yy23MG/ePJRSWCwWzGYzmqZRs2ZNY7mc3e80TbOblvUBmlW0Lvt2cypouwUVvps5cyZ33303a9as4dtvv2X27Nl8+umnRp9zIcqT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x44dY/LkyaSnp9OiRQvWrl2bV2z90KFDVl2LY2JiWLp0KU899RQTJkygXr16rFixgqZNmzrrLYiIiIiIyHVQ0kpERFzWiBEjGDFihM3XNmzYUKgtISGBhISEUo5KREREREQcQTWtRERERERERETE5ShpJSIiIiIiIiIiLkdJKxERERERERERcTlKWomIiIiIiIiIiMtR0kpERERERERERFyOklYiIiIiIiIiIuJylLQSERERERERERGXo6SViIiIiIiIiIi4HCWtRERERERERETE5ShpJSIiIiIiIiIiLkdJKxERERERERERcTkezg5AwGKxAJCZmVkq+zebzZw5cwZvb2/c3Fw/T6l4S9f1xpt7nuaetyLlSWl/HhdHWftMEcfRuSH26NwQW3ReiD06N8QeR50b1/I3pZJWLuDMmTMAhIWFOTkSkeI7c+YMfn5+zg5DpETp81hERERExDGK8zelyaLuEk5nNpv5/fff8fX1xWQylfj+MzMzCQsL4/Dhw1SpUqXE91/SFG/put54LRYLZ86cITQ0VHdmpNwp7c/j4ihrnyniODo3xB6dG2KLzguxR+eG2OOoc+Na/qZUTysX4ObmRq1atUr9OFWqVClTH0qKt3RdT7zqYSXllaM+j4ujrH2miOPo3BB7dG6ILTovxB6dG2KPI86N4v5NqW4SIiIiIiIiIiLicpS0EhERERERERERl6Ok1Q3Ay8uLp59+Gi8vL2eHUiyKt3SVtXhFbjT6Pyr26NwQe3RuiC06L8QenRtijyueGyrELiIiIiIiIiIiLkc9rURERERERERExOUoaSUiIiIiIiIiIi5HSSsREREREREREXE5SlrdAObPn094eDje3t60bduWrVu3Ojskm2bMmEGbNm3w9fWlevXq9OnTh3379jk7rGKbOXMmJpOJ0aNHOzsUu3777TcGDRpEtWrV8PHxITIyku3btzs7LBEpoKx8ZovjlPXvR3GMsnAdIo6jaz6xJScnh0mTJhEREYGPjw9169bl2WefRWWubzxfffUVvXr1IjQ0FJPJxIoVK6xet1gsTJ48mRo1auDj40N8fDz79+93SqxKWpVz77//PklJSTz99NN89913NG/enG7dunH06FFnh1bIxo0bGT58OFu2bCElJYVLly7RtWtXzp075+zQrmrbtm289tprNGvWzNmh2PXHH38QGxtLhQoVWLNmDT/++CNz5szB39/f2aGJyGVl6TNbHKcsfz+KY5SF6xBxHF3ziT2zZs1iwYIFzJs3jz179jBr1ixmz57NK6+84uzQxMHOnTtH8+bNmT9/vs3XZ8+ezcsvv8zChQv59ttvqVSpEt26dePChQsOjlSzB5Z7bdu2pU2bNsybNw8As9lMWFgYI0eOZNy4cU6OrmjHjh2jevXqbNy4kVtvvdXZ4dh19uxZWrVqxauvvsq0adNo0aIFycnJzg6rkHHjxvH111+zadMmZ4ciInaU5c9scZyy8v0ojlFWrkPEcXTNJ/b07NmT4OBg3nzzzby2vn374uPjw7vvvuvEyMSZTCYTy5cvp0+fPoDRyyo0NJTHHnuMxx9/HIDTp08THBzM4sWLueeeexwan3palWMXL15kx44dxMfH57W5ubkRHx9PamqqEyMrntOnTwMQEBDg5EiKNnz4cHr06GH1e3ZFH3/8MVFRUSQkJFC9enVatmzJ66+/7uywROSysv6ZLY5TVr4fxTHKynWIOI6u+cSemJgY1q1bx08//QTA999/z+bNm+nevbuTIxNXcuDAAdLT062+V/z8/Gjbtq1Trkk9HH5EcZjjx4+Tk5NDcHCwVXtwcDB79+51UlTFYzabGT16NLGxsTRt2tTZ4dj13nvv8d1337Ft2zZnh3JVP//8MwsWLCApKYkJEyawbds2Hn30UTw9PUlMTHR2eCI3vLL8mS2OU1a+H8UxytJ1iDiOrvnEnnHjxpGZmUnDhg1xd3cnJyeH5557jnvvvdfZoYkLSU9PB7B5TZr7miMpaSUuafjw4ezevZvNmzc7OxS7Dh8+zKhRo0hJScHb29vZ4VyV2WwmKiqK6dOnA9CyZUt2797NwoULdQEjIlJGlIXvR3GMsnYdIo6jaz6x54MPPmDJkiUsXbqUJk2akJaWxujRowkNDdW5IS5LwwPLscDAQNzd3cnIyLBqz8jIICQkxElRXd2IESP49NNP+fLLL6lVq5azw7Frx44dHD16lFatWuHh4YGHhwcbN27k5ZdfxsPDg5ycHGeHaKVGjRo0btzYqq1Ro0YcOnTISRGJSEFl9TNbHKesfD+KY5S16xBxHF3ziT1jx45l3Lhx3HPPPURGRnLfffcxZswYZsyY4ezQxIXkXne6yjWpklblmKenJ61bt2bdunV5bWazmXXr1tG+fXsnRmabxWJhxIgRLF++nPXr1xMREeHskIrUuXNndu3aRVpaWt4jKiqKe++9l7S0NNzd3Z0dopXY2NhCU6T/9NNP1KlTx0kRiUhBZe0zWxynrH0/imOUtesQcRxd84k9f/75J25u1ikAd3d3zGazkyISVxQREUFISIjVNWlmZibffvutU65JNTywnEtKSiIxMZGoqCiio6NJTk7m3LlzDB482NmhFTJ8+HCWLl3KypUr8fX1zRsv6+fnh4+Pj5OjK8zX17dQPZFKlSpRrVo1l6wzMmbMGGJiYpg+fTr9+/dn69atLFq0iEWLFjk7NBG5rCx9ZovjlLXvR3GMsnYdIo6jaz6xp1evXjz33HPUrl2bJk2asHPnTl588UX+/ve/Ozs0cbCzZ8/y3//+N2/5wIEDpKWlERAQQO3atRk9ejTTpk2jXr16REREMGnSJEJDQ/NmGHQoi5R7r7zyiqV27doWT09PS3R0tGXLli3ODskmwObjX//6l7NDK7a4uDjLqFGjnB2GXZ988omladOmFi8vL0vDhg0tixYtcnZIInKFsvKZLY5THr4fxTFc/TpEHEfXfGJLZmamZdSoUZbatWtbvL29LTfddJNl4sSJlqysLGeHJg725Zdf2ry2SExMtFgsFovZbLZMmjTJEhwcbPHy8rJ07tzZsm/fPqfEarJYLBaHZ8pERERERERERESKoJpWIiIiIiIiIiLicpS0EhERERERERERl6OklYiIiIiIiIiIuBwlrURERERERERExOUoaSUiIiIiIiIiIi5HSSsREREREREREXE5SlqJiIiIiIiIiIjLUdJKRERERERERERcjpJWkuf222+nXr16ZGVlWbXv2LEDDw8P5s2b56TIrB08eBCTycSHH36Y15acnMzq1asLrRseHs6IESMcGR4XLlwgLCyMVatWXfe+zpw5Q0BAAF9//XUJRCYiIiIiIiJSdihpJXnmz5/Pr7/+yvTp0/PacnJyePjhh2nVqhXDhg1zYnT5atSoQWpqKp06dcprs5e0Wr58OY8//rgjw2PBggX4+/vTo0eP696Xr68vI0eOZMKECSUQmYiIiEjpMZlMV30sXryYjh070rNnT2eHCxjXv23atCn2+kuWLKFRo0bk5OSUYlQiIpLLZLFYLM4OQlzHs88+y7Rp0/jhhx9o0KABycnJPP7442zbto2WLVs6Ozy7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g4O58847+fe//02XLl2KjGPKlClMmTLFqs3We/v888/Jzs6mf//+Vz2+iIiIyI0k92bn008/zeDBg7l48SK1atWic+fO3HzzzUVu269fP9asWWM1jDA2Npa3336bAwcO4ObmRmRkJJ988gmNGjXKW+ezzz7Dx8eH7t27l9r7EhERg8li669zkWu0YcMGbrvtNrZt20ZUVJSzw3GqtLQ0YmNj+fnnn23OlHitOnXqRMeOHZk8eXIJRCciIiIiAD/88AMtW7bk559/pk6dOsXeLiEhAV9fX/75z3+WYnQiIgIaHihS4lq0aEFycnKRM9YU19mzZ4mLiyvW0EwRERERKb5mzZpx5513Mnfu3GJvc+DAAVatWsXEiRNLMTIREcmlnlYiIiIiInJD2r9/PytXruTxxx8v1vqbN2/m4MGDDBo0qJQjExERUNJKRERERERERERckIYHioiIiIiIiIiIy1HSSkREREREREREXI6SViIiIiIiIiIi4nKUtBIREREREREREZejpJWIiIiIiIiIiLgcJa1ERERERERERMTlKGklIiIiIiIiIiIuR0krERERERERERFxOf8PtWv6beChKDUAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== KALMAN FILTER PERFORMANCE ===\n", "Final position: (3.22, 14.53) m\n", "Position uncertainty (1σ): (0.363, 0.363) m\n", "Average tracking error: 0.5526 m\n", "Max tracking error: 1.3005 m\n" ] } ], "source": [ "# Visualization with Plotly\n", "fig = make_subplots(\n", " rows=1, cols=2,\n", " subplot_titles=('Kalman Filter: 2D Trajectory Tracking', 'Estimation Error vs Model Confidence'),\n", " horizontal_spacing=0.12\n", ")\n", "\n", "# Calculate error and uncertainty\n", "pos_error = np.sqrt((estimates[1:, 0] - true_states[1:, 0])**2 + \n", " (estimates[1:, 2] - true_states[1:, 2])**2)\n", "pos_uncertainty = np.sqrt(covariances[1:, 0, 0] + covariances[1:, 2, 2])\n", "time = np.arange(len(pos_error)) * dt\n", "\n", "# Left plot: 2D trajectory\n", "fig.add_trace(\n", " go.Scatter(x=true_states[:, 0], y=true_states[:, 2], mode='lines',\n", " name='True trajectory', line=dict(color='#00ff88', width=2.5)),\n", " row=1, col=1\n", ")\n", "fig.add_trace(\n", " go.Scatter(x=measurements[:, 0], y=measurements[:, 1], mode='markers',\n", " name='Measurements', marker=dict(color='#ff4757', size=5, opacity=0.4)),\n", " row=1, col=1\n", ")\n", "fig.add_trace(\n", " go.Scatter(x=estimates[:, 0], y=estimates[:, 2], mode='lines',\n", " name='KF estimate', line=dict(color='#00d4ff', width=2, dash='dash')),\n", " row=1, col=1\n", ")\n", "\n", "# Right plot: Error vs Uncertainty\n", "fig.add_trace(\n", " go.Scatter(x=time, y=2*pos_uncertainty, mode='lines', fill='tozeroy',\n", " name='2σ uncertainty', line=dict(color='#00d4ff', width=0),\n", " fillcolor='rgba(0, 212, 255, 0.3)'),\n", " row=1, col=2\n", ")\n", "fig.add_trace(\n", " go.Scatter(x=time, y=pos_error, mode='lines',\n", " name='Position error', line=dict(color='#00d4ff', width=2.5)),\n", " row=1, col=2\n", ")\n", "\n", "fig.update_layout(\n", " template=dark_template,\n", " height=450,\n", " showlegend=True,\n", " legend=dict(x=0.5, y=-0.2, xanchor='center', orientation='h')\n", ")\n", "fig.update_xaxes(title_text='X position (m)', row=1, col=1)\n", "fig.update_yaxes(title_text='Y position (m)', row=1, col=1)\n", "fig.update_xaxes(title_text='Time (s)', row=1, col=2)\n", "fig.update_yaxes(title_text='Error magnitude (m)', row=1, col=2)\n", "\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Extended Kalman Filter (EKF)\n", "\n", "When the system dynamics or measurements are **nonlinear**, we must adapt the linear Kalman filter. The **Extended Kalman Filter** linearizes the nonlinear functions around the current estimate.\n", "\n", "### Nonlinear System Model\n", "\n", "$$x_{k+1} = f(x_k, w_k)$$\n", "$$z_k = h(x_k, v_k)$$\n", "\n", "where $f(\\cdot)$ and $h(\\cdot)$ are arbitrary nonlinear functions.\n", "\n", "### EKF Algorithm\n", "\n", "**Predict Step** (linearize around predicted state):\n", "$$F_k = \\left.\\frac{\\partial f}{\\partial x}\\right|_{\\hat{x}_{k-1}} \\quad \\text{(Jacobian of } f \\text{)}$$\n", "$$\\hat{x}^-_k = f(\\hat{x}_{k-1})$$\n", "$$P^-_k = F_k P_{k-1} F_k^T + Q$$\n", "\n", "**Update Step** (linearize around predicted state):\n", "$$H_k = \\left.\\frac{\\partial h}{\\partial x}\\right|_{\\hat{x}^-_k} \\quad \\text{(Jacobian of } h \\text{)}$$\n", "$$K_k = P^-_k H_k^T (H_k P^-_k H_k^T + R)^{-1}$$\n", "$$\\hat{x}_k = \\hat{x}^-_k + K_k (z_k - h(\\hat{x}^-_k))$$\n", "$$P_k = (I - K_k H_k) P^-_k$$\n", "\n", "### Limitations\n", "\n", "- Only uses **first-order** (linear) approximation\n", "- Performance degrades with high nonlinearity\n", "- Jacobian computation can be error-prone\n", "- Can diverge if linearization is poor\n", "\n", "### Example: Tracking with Range-Bearing Measurements\n", "\n", "Radar provides nonlinear measurements: $(r, \\theta) = (\\text{range}, \\text{bearing})$ instead of Cartesian position (x, y)." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# Nonlinear measurement model: range and bearing from origin\n", "def h_radar(x):\n", " \"\"\"Radar measurement: range and bearing.\"\"\"\n", " px, vx, py, vy = x\n", " r = np.sqrt(px**2 + py**2)\n", " theta = np.arctan2(py, px)\n", " return np.array([r, theta])\n", "\n", "def H_radar(x):\n", " \"\"\"Jacobian of radar measurement.\"\"\"\n", " px, vx, py, vy = x\n", " r = np.sqrt(px**2 + py**2)\n", " if r < 1e-10:\n", " r = 1e-10\n", " return np.array([\n", " [px/r, 0, py/r, 0],\n", " [-py/r**2, 0, px/r**2, 0]\n", " ])\n", "\n", "# Measurement noise for range-bearing\n", "R_radar = np.diag([0.5**2, np.radians(2)**2]) # 0.5m range, 2 deg bearing\n", "\n", "# Generate radar measurements\n", "radar_measurements = []\n", "for state in true_states[1:]:\n", " z_true = h_radar(state)\n", " z = z_true + np.random.multivariate_normal(np.zeros(2), R_radar)\n", " radar_measurements.append(z)\n", "\n", "radar_measurements = np.array(radar_measurements)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "EKF final position: (3.56, 15.06)\n", "True final position: (3.47, 15.08)\n" ] } ], "source": [ "# Run EKF with radar measurements\n", "x_ekf = np.array([1.0, 0.0, 1.0, 0.0]) # Start with offset estimate\n", "P_ekf = np.eye(4) * 10.0\n", "\n", "# Linear dynamics (constant velocity)\n", "def f_cv(x):\n", " return F @ x\n", "\n", "ekf_estimates = [x_ekf.copy()]\n", "\n", "for z in radar_measurements:\n", " # Predict (linear dynamics)\n", " pred = ekf_predict(x_ekf, P_ekf, f_cv, F, Q)\n", " x_pred, P_pred = pred.x, pred.P\n", " \n", " # Update (nonlinear measurement)\n", " upd = ekf_update(x_pred, P_pred, z, h_radar, H_radar(x_pred), R_radar)\n", " x_ekf, P_ekf = upd.x, upd.P\n", " \n", " ekf_estimates.append(x_ekf.copy())\n", "\n", "ekf_estimates = np.array(ekf_estimates)\n", "\n", "print(f\"EKF final position: ({ekf_estimates[-1, 0]:.2f}, {ekf_estimates[-1, 2]:.2f})\")\n", "print(f\"True final position: ({true_states[-1, 0]:.2f}, {true_states[-1, 2]:.2f})\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "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UVsfFxen+Pv7l/l5AUr37t0dnufx48eLlLc/VhlPt6ZXr17a4w8dOqStX7Nmjbb+iSeeUBRFUZYuXeryHNSsWbPEY5XlNf75558Vg8GgAEr79u0Vq9WqfPLJJ9rjb7/9dkVRFGX48OEu69S5c2dFURQlNTVVad68uctyr7/+unZc+3MaGxurBAQEFCn/zjvvaOWTkpKU2rVrFynTokWLIvUoa10URVH69OlTpEytWrWUyMjIUr/u9p+NRo0aObzvR44cqdhsNrdeK/vXYPPmzSXWx778888/X2R73bp1ne6vZ8+eLs9bkyZNlOzsbK1s586di/0+6Nixo8MxH3300SJlQkNDlfj4eO1+YmKioiiO7xH719b+nH3wwQdOn4+zugwdOtShLv379y9Spnbt2uV+za+55hpFr9crgPLxxx8XqevEiRO1xx05ckSpUaOGy/NsX7asnxX7Otm/7vavlbNzXJp95+XlOXxnFr499dRTDuenUaNGLst27drVoayr18/+98cZ++f1wAMPKIDi7++vJCcnK8nJydpzevDBB7Vy1157rdef04ULF5To6GiXZTdu3FjkNbB/nxc+J/k2b96srUtISFB0Ol2R1/udd97R3ouFb40aNVKSk5O1/dl/T9SvX79I+XvvvVdJSEgo9n2hKIoybNgwl8918ODBpXqtC39W7Z+rs1tiYqKyZcsWl88VUMxmc7HvH3uVFkyB+iPx9ddfO7wZn3zySa28/Y/UsGHDlA0bNiiLFy9WgoODFUCJiopSTCaToiiKkpaWpkyfPl357LPPlG+//VbZvHmzsmLFCqVBgwYKoAQHByu5ubmKohQNcK666ipl2bJlyrp165RVq1aV6nnZ32JjY5V//vnHafnCx3J2K8myZcu0si+99JK2/t5779XW7969W1EURbn99tsVQDEajcqbb76pbNq0Sfn444+V8ePHK506dSrxWPavsbNb4dd94sSJ2rZp06Yp1atXVwAlOjpaOXfunKIoinLo0CFl5cqVWrlWrVopW7duVbZu3ar8/vvviqI4/lDecsstytq1a5WlS5dqPxq+vr5asFr4nHbs2FFZs2aNMmbMGG1d27ZttTo+/fTT2vr4+Hjl008/VZYsWaJUq1bN6RdRWeqyYcMGrWxAQIAyf/58ZfXq1Urbtm3L9BoX/mzk34YMGaJYrVa3Xyt3gqmSbvb7e//995X3339fWbt2rbJlyxZl7dq1Dl+U+YGCojj+kIWEhChvvvmmsmzZMiU8PFxbv3//fkVRFOXAgQPaF79er1emTp2qfP3110WCN08EU7GxscqyZcuUN954Q/H19VUAxWAwKKmpqYqiKMo333yjlfX391fmzZunrF69WmndunW5X/PBgwcrgwcPVgClWbNmis1mcxlM2f9z1aVLF+XLL79U5s2b5/BP4c8//1zkPJTms1LeYKo0+54zZ462/rrrrlNWrVqlfP755w4BRn69FUVRXn31VeWjjz5S1q1bp2zZskX58ssvlVtuuUUru337dqevX1BQkDJv3jzl22+/Vd56661iXwP75/Xll18qMTExCqAsWLBAWbhwoQIokZGRDp9z+2DKW8/pq6++0tbdddddysaNG5XVq1crc+fOVTp37qx8//33RV6DsgZTgNKuXTtl5cqVyurVq5XvvvtOOXHihOLn56d9JhctWqR88803yn333ac95uGHH9b2Z/89ERQUpLz99tvKu+++6xCg1KhRQ1mxYoUydepUp+8L+9+GRo0aKcuXL1e++uor5brrrtPWr1ixwunzKu6zmpqaqmzdulVp1aqVVn7lypXab09OTo4yfvx4bdtLL72kbNq0SVmxYoUyadIkpWnTporFYin2/WOv0oKpli1baut//vlnbf2AAQMURVFbE/K/PGvUqKGdgK1btyoDBw7Uyn/++efafr766ivlpptuUqpVq6a1mNjf9u3bpyiK4xuwcGtYSZz9mHTt2lUL1ArzRDBlMpmUoKAgBVBat26tKIqi5Obmaj86TZo00coOGTJEAZTAwEDlu+++U9LS0kr93BSl7MFUTk6O0rRp0yLl/u///s/leSj8obdarUpERIQCaqDy3Xffaa/1I488oj1u7ty5Rfbl6+urnDlzRttPYGCgAijh4eHa/ps0aaKVX7t2rbb+nXfeKVKnstblf//7n7ZuwoQJ2r4PHTpUptfYVTBV+D84d16rsihvMHX8+HHlgQceUBISErQvZftbfguqojj+kL366qva+ocfflhbv3r1akVRFGXWrFnaujvuuEMrm5qaqr3m4Jlgyv4fKvvAZe/evYqiOL7m48eP18r+/fff5X7NBw8erPz+++/ad97nn3/uNJiy/1708/NTLly4oO3P/ofh8ccfL3IeSvNZKW8wVZp9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80yWCmD1ali0SHfqiYikk+7mE+knCgtNv6qHHoLf/94EUJmZpvVCKJTu0YmIbLyUmRLpZzweU2C+9dYQjYLjtG2pICIifUfBlEg/5venewQiIqJpPhEREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSYKCKREREZEkKJgSERERSUJGugcgkm6u6wJQXV3dJ9dzHIeamhqCwSBer/490xP6DFMj2c8x/jsT/x0S2VgpmJKNXk1NDQDFxcVpHolI/1RTU8OgQYPSPQyRtPG4+ieFbOQcx2H16tXk5eXh8Xh6/XrV1dUUFxezYsUK8vPze/16A5E+w9RI9nN0XZeamhpGjRqlDKFs1JSZko2e1+tlzJgxfX7d/Px8BQJJ0meYGsl8jspIiagAXURERCQpCqZEREREkqBgSqSPBQIBrrnmGgKBQLqH0m/pM0wNfY4iqaECdBEREZEkKDMlIiIikgQFUyIiIiJJUDAlIiIikgQFUyJ96O6772b8+PEEg0F22mknPvroo3QPqV+ZM2cOO+ywA3l5eQwbNozDDjuMpUuXpntY/d6NN96Ix+PhwgsvTPdQRPolBVMifeSJJ57g4osv5pprruHTTz9l6623Zv/996ekpCTdQ+s3FixYwOzZs/nggw+YN28esViMWbNmEQqF0j20fmvhwoXcf//9TJs2Ld1DEem3dDefSB/Zaaed2GGHHbjrrrsAs4xNcXEx559/PpdffnmaR9c/lZaWMmzYMBYsWMDMmTPTPZx+p7a2lm233ZZ77rmH3//+90yfPp077rgj3cMS6XeUmRLpA9FolE8++YR99923cZ/X62Xffffl/fffT+PI+reqqioAhgwZkuaR9E+zZ8/m4IMPbvFzKSLdp7X5RPpAWVkZtm0zfPjwFvuHDx/OkiVL0jSq/s1xHC688EJ23XVXttxyy3QPp9/517/+xaeffsrChQvTPRSRfk/BlIj0S7Nnz+bLL7/knXfeSfdQ+p0VK1ZwwQUXMG/ePILBYLqHI9LvKZgS6QOFhYX4fD7WrVvXYv+6desYMWJEmkbVf5133nn897//5a233mLMmDHpHk6/88knn1BSUsK2227buM+2bd566y3uuusuIpEIPp8vjSMU6V9UMyXSB/x+P9tttx2vv/564z7HcXj99dfZZZdd0jiy/sV1Xc477zyeeeYZ3njjDSZMmJDuIfVL++yzD4sXL2bRokWNX9tvvz0nnHACixYtUiAl0k3KTIn0kYsvvphTTjmF7bffnh133JE77riDUCjEaaedlu6h9RuzZ8/m8ccf57nnniMvL4+1a9cCMGjQILKystI8uv4jLy+vTZ1ZTk4OQ4cOVf2ZSA8omBLpI8ceeyylpaVcffXVrF27lunTpzN37tw2RenSvnvvvReAPffcs8X+Rx55hFNPPbXvByQigvpMiYiIiCRFNVMiIiIiSVAwJSIiIpIEBVMiIiIiSVAwJSIiIpIEBVMiIiIiSVAwJSIiIpIEBVMiIiIiSVAwJSIiIpIEBVMiA8wBBxzApEmTiEQiLfZ/8sknZGRkcNddd6VpZC0tX74cj8fD008/3bjvjjvu4KWXXmpz7Pjx4znvvPP6cniEw2GKi4t58cUXkz5XTU0NQ4YM4d13303ByERkQ6MO6CIDzHfffceWW27JpZdeynXXXQeAbdvstNNOeL1ePvjgA7ze9P87KhKJ8NlnnzF58mSGDBkCmKDpkEMOaRPwffbZZwwePJjx48f32fhuv/12HnnkEb744ouUnO+aa65h/vz5LFiwICXnE5ENR/r/oopISk2cOJErr7ySG2+8kaVLlwJw5513smjRIu6///4NIpACCAQC7Lzzzo2BVEe22WabPg2kXNflz3/+c0oXoT799NN56623+Pzzz1N2ThHZMGwYf1VFJKUuu+wyJkyYwDnnnMOKFSu46qqrOP/889lmm206fN38+fPxeDy89NJLHHHEEeTk5DBy5Ej+8Ic/tDn2rbfeYsaMGWRlZVFYWMjpp59OeXl5i2NuvPFGNt10U4LBIEVFRey777788MMPQNtpvvHjx/Pjjz9y99134/F48Hg8PProo43PtZ7m+89//sP06dMJBoOMGjWKiy++mHA43Oa9zJs3j+OPP568vDzGjRvHzTff3Onnt2DBApYvX85RRx3VYn98HHfccQfFxcXk5eVx6qmnEolEWLRoEbvuuis5OTnsuOOOLF68uMVrx40bx4477tj4nkRk4FAwJTIA+f1+7r33Xt58801mzpxJQUEBv/vd77r8+rPPPpuJEyfyn//8hxNPPJHf/va33HfffY3Pf/LJJ+y3337k5eXx1FNPcdNNN/HCCy9w4IEHYts2AH/729+46qqrOOOMM5g7dy4PPfQQ06dPp7q6OuE1n3nmGUaMGMFRRx3F+++/z/vvv8/BBx+c8Njnn3+eo446is0335xnn32WSy+9lPvuu48TTzyxzbG/+tWvmDx5Ms888ww/+9nPuOyyy5g7d26H7/+1116juLiY4uLiNs8999xzvPLKK9x///3MmTOHxx9/nPPPP5+TTjqJM888k6eeeor6+nqOPvpoHMdp8doZM2Ywb968Dq8tIv2QKyID1t577+0C7j/+8Y8uHf/mm2+6gHvSSSe12H/SSSe5o0ePdm3bdl3XdQ8//HB37NixbjQabTzmlVdecQH3+eefd13XdWfPnu1uu+227V7rhx9+cAH3qaeeatw3btw4d/bs2W2Obb1/m222cXfZZZcWx9x///0u4H7xxRct3ssll1zSeIzjOO748ePdM844o8PPYdasWe7BBx+ccBxjxoxxI5FI474jjzzSBdyXX365cd8LL7zgAu6iRYtavP6RRx5xPR6PW11d3eH1RaR/UWZKZID66quvePvtt/F4PMyfP79brz388MNbbB911FGsWrWKlStXAvD222/z85//nMzMzMZjZs2aRUFBAe+88w4A2267LZ999hkXX3wx77zzDrFYLLk31KC2tpZFixa1mYI79thjARqv33xccR6Ph6lTpza+j/asWbOGoqKihM/tscce+P3+xu3Jkyfj9XrZe++9W+wDWLFiRYvXFhYW4rou69at6/D6ItK/KJgSGYBc1+Wcc85h0qRJ3HXXXTz00EN88MEHXX79sGHDWmwPHz4cMEEGQEVFReO+1sfF66ZOPfVUbr/9dl555RV23313ioqKuOCCC6ivr+/p2wKgsrIS13XbXH/QoEEEAoE2dVsFBQUttv1+f4vaqkTC4TCBQCDhc4nOl5WV1SLAij9ufZ34OZP9DERkw6JgSmQAevTRR3n77be59957Oeecc9h5550555xzGuuZOlNSUtJiO55JGTlyJABDhgxpc0z8uPjdeV6vlwsuuID//e9/rFy5kquuuop77rmHW2+9NZm3RkFBAR6Pp831q6qqiEQiXbo7sDNDhgyhsrIy6fO0Fj/n0KFDU35uEUkfBVMiA8z69eu55JJLOOWUU5g5cyYej4d7772XxYsXc+edd3bpHM8880yL7aeffppRo0YxZswYAHbbbTeeffZZLMtqPGbevHlUVlay2267tTnf6NGj+c1vfsO0adP4+uuv271uV7JGubm5TJ8+vUWzT4Ann3yycWzJmjJlSuNdh6m0fPlyBg0axIgRI1J+bhFJn4x0D0BEUuuSSy4B4JZbbmnct/XWW3P++edz9dVXc8wxxzBq1KgOz/HGG29wySWXsN9++zFv3jwee+wx7r777sYeVb/97W+ZMWMGhxxyCOeffz7r1q3j8ssvZ8cdd+Sggw4C4Je//CWDBw9m5513ZvDgwbz77rt8/vnnnHvuue1ed+rUqbzxxhvMmzePwYMHM2HChIRZnGuvvZbDDjuME088kRNPPJGlS5dy5ZVXcuSRR7LVVlt1+zNrbdddd+XJJ58kFou1qAtL1scff8yMGTM2mF5fIpIa+o0WGUDefvttHn30UW666SYKCwtbPPe73/2OvLw8Lrrook7Pc//997Ns2TIOP/xwHnvsMa6//voWQdB2223Hq6++SnV1NUceeSSXXHIJBx98MC+//DI+nw8wbQDeeecdzjjjDA444AD+8Y9/cPvtt3PGGWe0e90//OEPjBkzhiOPPJIddtiBF154IeFxhx56KE899RSLFy/m5z//OTfeeCNnn302f//737vyMXXq5z//OZZldbtwvyOxWIzXXnutTeG8iPR/Wk5GRBrNnz+fvfbai4ULF7L99tunezhpdeSRRzJo0CAefvjhlJzvxRdf5Pjjj2fVqlXk5uam5JwismFQZkpEJIGrrrqKJ554ImVtDP74xz/ym9/8RoGUyACkYEpEJIHp06dzxx13tOkV1RO1tbXsscceXZpiFZH+R9N8IiIiIklQZkpEREQkCQqmRERERJKgYEpEREQkCQqmRERERJKgYEpEREQkCQqmRERERJKgYEpEREQkCQqmRERERJKgYEpEREQkCf8f24do7YK0XksAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "KF RMSE (position meas.): 0.6250 m\n", "EKF RMSE (radar meas.): 0.3773 m\n" ] } ], "source": [ "# Compare KF (with position measurements) vs EKF (with radar measurements)\n", "fig = go.Figure()\n", "\n", "# Plot trajectories\n", "fig.add_trace(\n", " go.Scatter(x=true_states[:, 0], y=true_states[:, 2], mode='lines',\n", " name='True trajectory', line=dict(color='#00ff88', width=2.5))\n", ")\n", "fig.add_trace(\n", " go.Scatter(x=estimates[:, 0], y=estimates[:, 2], mode='lines',\n", " name='KF (position meas.)', line=dict(color='#00d4ff', width=2, dash='dash'))\n", ")\n", "fig.add_trace(\n", " go.Scatter(x=ekf_estimates[:, 0], y=ekf_estimates[:, 2], mode='lines',\n", " name='EKF (radar meas.)', line=dict(color='#ff4757', width=2, dash='dot'))\n", ")\n", "\n", "# Plot radar position at origin\n", "fig.add_trace(\n", " go.Scatter(x=[0], y=[0], mode='markers', name='Radar',\n", " marker=dict(color='#ffb800', size=15, symbol='triangle-up',\n", " line=dict(color='white', width=2)))\n", ")\n", "\n", "# Plot radar measurement rays (every 10th measurement)\n", "for i in range(0, len(radar_measurements), 10):\n", " r, theta = radar_measurements[i]\n", " ray_end_x = r * np.cos(theta)\n", " ray_end_y = r * np.sin(theta)\n", " fig.add_trace(\n", " go.Scatter(x=[0, ray_end_x], y=[0, ray_end_y], mode='lines',\n", " line=dict(color='rgba(255, 183, 0, 0.15)', width=0.8),\n", " showlegend=False, hoverinfo='skip')\n", " )\n", "\n", "fig.update_layout(\n", " template=dark_template,\n", " title='Linear KF vs Extended KF: Handling Nonlinear Measurements',\n", " xaxis_title='X position (m)',\n", " yaxis_title='Y position (m)',\n", " height=550,\n", " showlegend=True,\n", " yaxis=dict(scaleanchor='x', scaleratio=1)\n", ")\n", "\n", "fig.show()\n", "\n", "# Print comparison\n", "ekf_pos_error = np.sqrt((ekf_estimates[1:, 0] - true_states[1:, 0])**2 + \n", " (ekf_estimates[1:, 2] - true_states[1:, 2])**2)\n", "kf_pos_error = np.sqrt((estimates[1:, 0] - true_states[1:, 0])**2 + \n", " (estimates[1:, 2] - true_states[1:, 2])**2)\n", "print(f\"KF RMSE (position meas.): {np.sqrt(np.mean(kf_pos_error**2)):.4f} m\")\n", "print(f\"EKF RMSE (radar meas.): {np.sqrt(np.mean(ekf_pos_error**2)):.4f} m\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Unscented Kalman Filter (UKF)\n", "\n", "The **Unscented Kalman Filter** uses a clever trick to handle nonlinearity without explicit Jacobian computation. It uses \"sigma points\" (carefully chosen sample points) to capture the mean and covariance of a nonlinear transformation.\n", "\n", "### Key Insight: The Unscented Transform\n", "\n", "Instead of linearizing (approximating the function), we **sample the function**:\n", "\n", "1. Generate 2n+1 sigma points around the current estimate\n", "2. Propagate each sigma point through the nonlinear function\n", "3. Compute mean and covariance from the transformed sigma points\n", "\n", "### Why This Works Better\n", "\n", "- **Second-order accuracy**: Captures up to 2nd-order Taylor terms (vs 1st for EKF)\n", "- **No Jacobians needed**: Purely sampling-based, numerical derivative-free\n", "- **More stable**: Works well with highly nonlinear systems\n", "- **Same computational cost** as EKF (both O(n³) due to matrix operations)\n", "\n", "### UKF Algorithm Structure\n", "\n", "```\n", "For each time step:\n", " 1. Generate sigma points from (x̂, P)\n", " 2. Predict: Propagate each sigma point through f(·)\n", " - Compute mean and covariance of predictions\n", " 3. Generate measurement sigma points\n", " 4. Update: Weight by measurement likelihood\n", " - Blend predictions with measurements using Kalman gain\n", "```\n", "\n", "### When to Use UKF vs EKF\n", "\n", "| Scenario | Choice | Reason |\n", "|----------|--------|--------|\n", "| Radar/bearing measurements | UKF | Often nonlinear, avoids Jacobian errors |\n", "| Maneuvering targets | UKF | Handles sharp turns better |\n", "| Well-behaved linear systems | KF | Simpler, lower cost |\n", "| Real-time systems | EKF or UKF | Both feasible; UKF more robust |" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "UKF final position: (3.56, 15.05)\n" ] } ], "source": [ "# Run UKF with radar measurements\n", "x_ukf = np.array([1.0, 0.0, 1.0, 0.0])\n", "P_ukf = np.eye(4) * 10.0\n", "\n", "ukf_estimates = [x_ukf.copy()]\n", "\n", "for z in radar_measurements:\n", " # Predict\n", " pred = ukf_predict(x_ukf, P_ukf, f_cv, Q)\n", " x_pred, P_pred = pred.x, pred.P\n", " \n", " # Update\n", " upd = ukf_update(x_pred, P_pred, z, h_radar, R_radar)\n", " x_ukf, P_ukf = upd.x, upd.P\n", " \n", " ukf_estimates.append(x_ukf.copy())\n", "\n", "ukf_estimates = np.array(ukf_estimates)\n", "\n", "print(f\"UKF final position: ({ukf_estimates[-1, 0]:.2f}, {ukf_estimates[-1, 2]:.2f})\")" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Time: %{x:.2f}s
Error: %{y:.4f}m", "line": { "color": "#ff6b6b", "width": 2.5 }, "mode": "lines", "name": "EKF (RMSE: 0.3773 m)", "type": "scatter", "x": { "bdata": "AAAAAAAAAACamZmZmZm5P5qZmZmZmck/NDMzMzMz0z+amZmZmZnZPwAAAAAAAOA/NDMzMzMz4z9nZmZmZmbmP5qZmZmZmek/zczMzMzM7D8AAAAAAADwP5qZmZmZmfE/NDMzMzMz8z/NzMzMzMz0P2dmZmZmZvY/AAAAAAAA+D+amZmZmZn5PzQzMzMzM/s/zczMzMzM/D9nZmZmZmb+PwAAAAAAAABAzczMzMzMAECamZmZmZkBQGdmZmZmZgJANDMzMzMzA0AAAAAAAAAEQM3MzMzMzARAmpmZmZmZBUBnZmZmZmYGQDQzMzMzMwdAAAAAAAAACEDNzMzMzMwIQJqZmZmZmQlAZ2ZmZmZmCkA0MzMzMzMLQAAAAAAAAAxAzczMzMzMDECamZmZmZkNQGdmZmZmZg5ANDMzMzMzD0AAAAAAAAAQQGdmZmZmZhBAzczMzMzMEEAzMzMzMzMRQJqZmZmZmRFAAAAAAAAAEkBnZmZmZmYSQM3MzMzMzBJANDMzMzMzE0CamZmZmZkTQAAAAAAAABRAZ2ZmZmZmFEDNzMzMzMwUQDQzMzMzMxVAmpmZmZmZFUAAAAAAAAAWQGdmZmZmZhZAzczMzMzMFkA0MzMzMzMXQJqZmZmZmRdAAAAAAAAAGEBnZmZmZmYYQM3MzMzMzBhANDMzMzMzGUCamZmZmZkZQAAAAAAAABpAZ2ZmZmZmGkDNzMzMzMwaQDQzMzMzMxtAmpmZmZmZG0AAAAAAAAAcQGdmZmZmZhxAzczMzMzMHEA0MzMzMzMdQJqZmZmZmR1AAAAAAAAAHkBnZmZmZmYeQM3MzMzMzB5ANDMzMzMzH0CamZmZmZkfQAAAAAAAACBAMzMzMzMzIEBnZmZmZmYgQJqZmZmZmSBAzczMzMzMIEAAAAAAAAAhQDMzMzMzMyFAZ2ZmZmZmIUCamZmZmZkhQM3MzMzMzCFAAAAAAAAAIkAzMzMzMzMiQGdmZmZmZiJAmpmZmZmZIkDNzMzMzMwiQAAAAAAAACNANDMzMzMzI0BnZmZmZmYjQJqZmZmZmSNAzczMzMzMI0A=", "dtype": "f8" }, "y": { "bdata": "NX/GLx455D8hOq5KtmnmP0jIJOtaIOI/PEQnbMev3z/LNYfEFzzKP9J2y7IRctU/XsG1/6fg1z9BP+aSnsncP6fn/6SL8uI/2L7X6w3t5D+c8EoBoarnP9ksWwNku+k/bP7jKMWX6T/+GKJs0cPqP5q0tc+Cfeo/oaPdocp07D/a4bl7eyvqP67vDB9jPOo/Zlh35Qpu5T+GK+PmhdvlP0EpGjCafuI/SGk79+/A3z+ejCPjrafbP5YiWRXNseI/wX4CdXOS4D9frcb1wGHRP/5/7wr848k/8kQCH8i2uz9PijUzXF3DPzYq9ThBRso/vIkSWwbExz8IHsl9guPKP6A+0y4y6cQ/DWjZwZ6mvj9uzle99ATBP3tVPwfjfbc/He/I7ryWuD/VhEx+XbDGP+rdYVqRPc0/Mq3qlAk0wT9ZcF5BP72gPx7i2AT5Oq8/q/EqOw/VxD/+k/liNgbCP3IzG1eMsKY/DeUJPlhmsz8WGGUnUWTDP4ji8Q/XDrE/mYsdIbn7vD8XPYJ0i4nEP3NDsRZ91rk/b8cCskWsyT8Ays5s51jQP6SfJFK0yNM/hVtmfSaI3j9NxJbsLa/aPwUrafYJENw/MB2LhLoC2z96m3UaYvDXP1HxVafsENg/1r4pd9+J0z/hnv81kPvYP0HIgrQBrNQ/qnAdJ7dN0T8WHI1WZ+/RP+mUMitiI9A/m524g4PL0T+rsdpXD5bIP8QtQClYIL4/0tb9W6BVzT9BQMc8GiC/PwA28aWJgbg/gorpqsoCxj+9NBpFfo3LP7cD0hNhFc4/pNr8E2wn0D/KXm28yNK9P8leRj43kMU/yCMDWjMSxj9g7nG5DObPP7un0dfcINE/g5SJ8vBwzj9TLx47y3vPP/jkV2VIA9Q/fnlh3WQ52T+ylckzIAjVP9/XRc3xPNg/i975YnJ1zj9DoGl+C7PDP9q1oaVQxsc/FEp9vPsRrT+AK2ZdyIG0PzfUDlw6X8E/pNCJ6L/5wj/VNaZqOeSoP5essfRborI/B1WXqxh/yT8nw6WLXR69P7wF9kBPBLI/lSGxZLyutz8=", "dtype": "f8" } }, { "hovertemplate": "Time: %{x:.2f}s
Error: %{y:.4f}m", "line": { "color": "#4ecdc4", "width": 2.5 }, "mode": "lines", "name": "UKF (RMSE: 1.0151 m)", "type": "scatter", "x": { "bdata": "AAAAAAAAAACamZmZmZm5P5qZmZmZmck/NDMzMzMz0z+amZmZmZnZPwAAAAAAAOA/NDMzMzMz4z9nZmZmZmbmP5qZmZmZmek/zczMzMzM7D8AAAAAAADwP5qZmZmZmfE/NDMzMzMz8z/NzMzMzMz0P2dmZmZmZvY/AAAAAAAA+D+amZmZmZn5PzQzMzMzM/s/zczMzMzM/D9nZmZmZmb+PwAAAAAAAABAzczMzMzMAECamZmZmZkBQGdmZmZmZgJANDMzMzMzA0AAAAAAAAAEQM3MzMzMzARAmpmZmZmZBUBnZmZmZmYGQDQzMzMzMwdAAAAAAAAACEDNzMzMzMwIQJqZmZmZmQlAZ2ZmZmZmCkA0MzMzMzMLQAAAAAAAAAxAzczMzMzMDECamZmZmZkNQGdmZmZmZg5ANDMzMzMzD0AAAAAAAAAQQGdmZmZmZhBAzczMzMzMEEAzMzMzMzMRQJqZmZmZmRFAAAAAAAAAEkBnZmZmZmYSQM3MzMzMzBJANDMzMzMzE0CamZmZmZkTQAAAAAAAABRAZ2ZmZmZmFEDNzMzMzMwUQDQzMzMzMxVAmpmZmZmZFUAAAAAAAAAWQGdmZmZmZhZAzczMzMzMFkA0MzMzMzMXQJqZmZmZmRdAAAAAAAAAGEBnZmZmZmYYQM3MzMzMzBhANDMzMzMzGUCamZmZmZkZQAAAAAAAABpAZ2ZmZmZmGkDNzMzMzMwaQDQzMzMzMxtAmpmZmZmZG0AAAAAAAAAcQGdmZmZmZhxAzczMzMzMHEA0MzMzMzMdQJqZmZmZmR1AAAAAAAAAHkBnZmZmZmYeQM3MzMzMzB5ANDMzMzMzH0CamZmZmZkfQAAAAAAAACBAMzMzMzMzIEBnZmZmZmYgQJqZmZmZmSBAzczMzMzMIEAAAAAAAAAhQDMzMzMzMyFAZ2ZmZmZmIUCamZmZmZkhQM3MzMzMzCFAAAAAAAAAIkAzMzMzMzMiQGdmZmZmZiJAmpmZmZmZIkDNzMzMzMwiQAAAAAAAACNANDMzMzMzI0BnZmZmZmYjQJqZmZmZmSNAzczMzMzMI0A=", "dtype": "f8" }, "y": { "bdata": "cvpF/xYX3z/OL8yQfsPlP0LvdtaVNdg/r0SzmzPIuz9OEQPI1tvcPxwh0mX7QfY/ccj8sLd5BkCjVJuIABANQGEJNFmLpg5AhTUqSGhcDkAoRZtPDJkLQLXMRniY8glAJ/ccTFIwB0DEpe+gx0cCQCiHgdq6Wv0/gNKU0m089D/pLTUulpjvPzXCFJwYIeQ/6yQaZI7C3j+/caPMxZPDP93KOC553Ko/ykscquRQwT8D5mWi76zQP4cdMMnHx+I/7ZVy1Xil5D+YPnfNFp7fP1r1WeIoH+A/GX1ITuJG0D93UXbPtK/QPzWdVYExxM4/pIPi/HyS0j8vk6psvX7SP9AyEVT1adU/uIpzPlaW1T+MEtAfkFLiP7FS9Lgxodk/aojxTFvt2T/sg19GqCzgP3qaXRd+8+E/vWVUXFO52z/DFRLw3+jSP5jo/Ev3Z9M/Asbf+nQJ2D8Ev8UeYfXUP2qMhqggMso/6hNA7FzxyT+erutsiNnQPzyhfG/SlMQ/3hBsHOKmwj8QTGkirmjCP9jOBZXMpLs/Ek4gHOdHyz9UiVrUFJLRP8OxP/hDrdQ/2kAPO0Xl3j9dGimYQKnaP/g+eREetds/i0t1kLVe2j/1oEDqgBrXPzkxVIbHF9c/rXxXHi6Q0j+Vt341M+LXP0KYxFFSktM/DKFet0Yz0D+AB+unAfrQP4Qm7Zlu784/LxtaN82Z0T8KX0TH5DLJPyWixHj4UcA/019sCF78zj/kbyjtsKzAP0VS6MwWDro/f5ll9t7yxj+q73Brf2LMP6nei06Mmc4/vPbo8WhE0D+r4moZSKO9PwnQYe95QcU/bBlrkVD4xT+wiVTRNsrPPwJIRhiqFtE/ZpLntLp6zj+ZIuQLSH3PP4HHH1ZQAdQ/RE0S0ZY62T/yEO6EwwXVP1jaSl4ZOdg/yUrGb9Rbzj+85OELNrPDP0Exw7AK18c/hiCWtPvQrT88MsnUvMW0P9yAO9qjZ8E/dgCk39Xgwj+Q3RYlrj6oPyOkPAjSNLI/LrYDJOBeyT8rhXq/0EK9P5qZJTClJ7I/AkdpKAyytz8=", "dtype": "f8" } }, { "fill": "tozeroy", "fillcolor": "rgba(76, 175, 80, 0.2)", "hoverinfo": "skip", "line": { "color": "rgba(78, 205, 196, 0)" }, "name": "UKF advantage", "type": "scatter", "x": { "bdata": "AAAAAAAAAACamZmZmZm5P5qZmZmZmck/NDMzMzMz0z+amZmZmZnZPwAAAAAAAOA/NDMzMzMz4z9nZmZmZmbmP5qZmZmZmek/zczMzMzM7D8AAAAAAADwP5qZmZmZmfE/NDMzMzMz8z/NzMzMzMz0P2dmZmZmZvY/AAAAAAAA+D+amZmZmZn5PzQzMzMzM/s/zczMzMzM/D9nZmZmZmb+PwAAAAAAAABAzczMzMzMAECamZmZmZkBQGdmZmZmZgJANDMzMzMzA0AAAAAAAAAEQM3MzMzMzARAmpmZmZmZBUBnZmZmZmYGQDQzMzMzMwdAAAAAAAAACEDNzMzMzMwIQJqZmZmZmQlAZ2ZmZmZmCkA0MzMzMzMLQAAAAAAAAAxAzczMzMzMDECamZmZmZkNQGdmZmZmZg5ANDMzMzMzD0AAAAAAAAAQQGdmZmZmZhBAzczMzMzMEEAzMzMzMzMRQJqZmZmZmRFAAAAAAAAAEkBnZmZmZmYSQM3MzMzMzBJANDMzMzMzE0CamZmZmZkTQAAAAAAAABRAZ2ZmZmZmFEDNzMzMzMwUQDQzMzMzMxVAmpmZmZmZFUAAAAAAAAAWQGdmZmZmZhZAzczMzMzMFkA0MzMzMzMXQJqZmZmZmRdAAAAAAAAAGEBnZmZmZmYYQM3MzMzMzBhANDMzMzMzGUCamZmZmZkZQAAAAAAAABpAZ2ZmZmZmGkDNzMzMzMwaQDQzMzMzMxtAmpmZmZmZG0AAAAAAAAAcQGdmZmZmZhxAzczMzMzMHEA0MzMzMzMdQJqZmZmZmR1AAAAAAAAAHkBnZmZmZmYeQM3MzMzMzB5ANDMzMzMzH0CamZmZmZkfQAAAAAAAACBAMzMzMzMzIEBnZmZmZmYgQJqZmZmZmSBAzczMzMzMIEAAAAAAAAAhQDMzMzMzMyFAZ2ZmZmZmIUCamZmZmZkhQM3MzMzMzCFAAAAAAAAAIkAzMzMzMzMiQGdmZmZmZiJAmpmZmZmZIkDNzMzMzMwiQAAAAAAAACNANDMzMzMzI0BnZmZmZmYjQJqZmZmZmSNAzczMzMzMI0A=", "dtype": "f8" }, "y": { "bdata": "cvpF/xYX3z/OL8yQfsPlP0LvdtaVNdg/r0SzmzPIuz/LNYfEFzzKP9J2y7IRctU/XsG1/6fg1z9BP+aSnsncP6fn/6SL8uI/2L7X6w3t5D+c8EoBoarnP9ksWwNku+k/bP7jKMWX6T/+GKJs0cPqP5q0tc+Cfeo/oaPdocp07D/a4bl7eyvqPzXCFJwYIeQ/6yQaZI7C3j+/caPMxZPDP93KOC553Ko/ykscquRQwT8D5mWi76zQP5YiWRXNseI/wX4CdXOS4D9frcb1wGHRP/5/7wr848k/8kQCH8i2uz9PijUzXF3DPzYq9ThBRso/vIkSWwbExz8IHsl9guPKP6A+0y4y6cQ/DWjZwZ6mvj9uzle99ATBP3tVPwfjfbc/He/I7ryWuD/VhEx+XbDGP+rdYVqRPc0/Mq3qlAk0wT9ZcF5BP72gPx7i2AT5Oq8/q/EqOw/VxD/+k/liNgbCP3IzG1eMsKY/DeUJPlhmsz8WGGUnUWTDP4ji8Q/XDrE/mYsdIbn7vD8QTGkirmjCP3NDsRZ91rk/b8cCskWsyT8Ays5s51jQP6SfJFK0yNM/hVtmfSaI3j9dGimYQKnaP/g+eREetds/i0t1kLVe2j/1oEDqgBrXPzkxVIbHF9c/rXxXHi6Q0j+Vt341M+LXP0KYxFFSktM/DKFet0Yz0D+AB+unAfrQP4Qm7Zlu784/LxtaN82Z0T+rsdpXD5bIP8QtQClYIL4/0tb9W6BVzT9BQMc8GiC/PwA28aWJgbg/gorpqsoCxj+9NBpFfo3LP7cD0hNhFc4/pNr8E2wn0D+r4moZSKO9PwnQYe95QcU/bBlrkVD4xT+wiVTRNsrPPwJIRhiqFtE/g5SJ8vBwzj9TLx47y3vPP4HHH1ZQAdQ/fnlh3WQ52T/yEO6EwwXVP1jaSl4ZOdg/yUrGb9Rbzj9DoGl+C7PDP9q1oaVQxsc/FEp9vPsRrT+AK2ZdyIG0PzfUDlw6X8E/dgCk39Xgwj+Q3RYlrj6oPyOkPAjSNLI/LrYDJOBeyT8nw6WLXR69P7wF9kBPBLI/lSGxZLyutz8=", "dtype": "f8" } } ], "layout": { "height": 500, "hovermode": "x unified", "legend": { "bgcolor": "rgba(0,0,0,0.5)", "x": 0.5, "xanchor": "center", "y": 1, "yanchor": "top" }, "template": { "layout": { "font": { "color": "#e6edf3" }, "paper_bgcolor": "#0d1117", "plot_bgcolor": "#0d1117", "xaxis": { "gridcolor": "#30363d", "zerolinecolor": "#30363d" }, "yaxis": { "gridcolor": "#30363d", "zerolinecolor": "#30363d" } } }, "title": { "text": "Extended Kalman Filter vs Unscented Kalman Filter" }, "xaxis": { "title": { "text": "Time (s)" } }, "yaxis": { "title": { "text": "Position Error (m)" } } } } }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== FILTER COMPARISON ===\n", "EKF mean error: 0.3055 m, RMSE: 0.3773 m\n", "UKF mean error: 0.5632 m, RMSE: 1.0151 m\n", "UKF improvement: -169.0% better RMSE\n" ] } ], "source": [ "# Compare EKF vs UKF\n", "ekf_error = np.sqrt((ekf_estimates[1:, 0] - true_states[1:, 0])**2 + \n", " (ekf_estimates[1:, 2] - true_states[1:, 2])**2)\n", "ukf_error = np.sqrt((ukf_estimates[1:, 0] - true_states[1:, 0])**2 + \n", " (ukf_estimates[1:, 2] - true_states[1:, 2])**2)\n", "\n", "ekf_rmse = np.sqrt(np.mean(ekf_error**2))\n", "ukf_rmse = np.sqrt(np.mean(ukf_error**2))\n", "\n", "# Plotly visualization\n", "fig = go.Figure()\n", "\n", "time_vec = np.arange(len(ekf_error)) * dt\n", "\n", "# Add EKF error\n", "fig.add_trace(go.Scatter(\n", " x=time_vec, y=ekf_error,\n", " mode='lines',\n", " name=f'EKF (RMSE: {ekf_rmse:.4f} m)',\n", " line=dict(color='#ff6b6b', width=2.5),\n", " hovertemplate='Time: %{x:.2f}s
Error: %{y:.4f}m'\n", "))\n", "\n", "# Add UKF error\n", "fig.add_trace(go.Scatter(\n", " x=time_vec, y=ukf_error,\n", " mode='lines',\n", " name=f'UKF (RMSE: {ukf_rmse:.4f} m)',\n", " line=dict(color='#4ecdc4', width=2.5),\n", " hovertemplate='Time: %{x:.2f}s
Error: %{y:.4f}m'\n", "))\n", "\n", "# Add UKF advantage region (where UKF performs better)\n", "ukf_better = np.where(ukf_error <= ekf_error, ukf_error, ekf_error)\n", "fig.add_trace(go.Scatter(\n", " x=time_vec, y=ukf_better,\n", " fill='tozeroy',\n", " name='UKF advantage',\n", " line=dict(color='rgba(78, 205, 196, 0)'),\n", " fillcolor='rgba(76, 175, 80, 0.2)',\n", " hoverinfo='skip'\n", "))\n", "\n", "fig.update_layout(\n", " template=dark_template,\n", " title='Extended Kalman Filter vs Unscented Kalman Filter',\n", " xaxis_title='Time (s)',\n", " yaxis_title='Position Error (m)',\n", " height=500,\n", " hovermode='x unified',\n", " legend=dict(x=0.5, y=1.0, xanchor='center', yanchor='top', bgcolor='rgba(0,0,0,0.5)')\n", ")\n", "\n", "fig.show()\n", "\n", "print(f\"\\n=== FILTER COMPARISON ===\")\n", "print(f\"EKF mean error: {np.mean(ekf_error):.4f} m, RMSE: {ekf_rmse:.4f} m\")\n", "print(f\"UKF mean error: {np.mean(ukf_error):.4f} m, RMSE: {ukf_rmse:.4f} m\")\n", "print(f\"UKF improvement: {(1 - ukf_rmse/ekf_rmse)*100:.1f}% better RMSE\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Square-Root Kalman Filter (SR-KF)\n", "\n", "The **Square-Root KF** works with the **Cholesky factor** $S$ where $P = S S^T$ instead of the covariance matrix $P$ directly.\n", "\n", "### Why Square-Root Form?\n", "\n", "**Standard KF Problem**: \n", "- Covariance matrix $P$ can become non-positive-definite due to numerical errors\n", "- Computing $P^{-1}$ amplifies round-off errors\n", "- Can diverge or produce negative variances\n", "\n", "**SR-KF Solution**:\n", "- Work with $S$ (Cholesky decomposition) instead\n", "- Guaranteed positive semi-definiteness: $P = SS^T > 0$ (always)\n", "- Better numerical conditioning\n", "- Smaller numerical errors propagate better\n", "\n", "### Mathematics\n", "\n", "Instead of updating $P_k$, update $S_k$ using specialized algorithms:\n", "- **QR-decomposition-based updates** (Givens rotations)\n", "- **Cholesky updates** (rank-1 and rank-2 updates)\n", "- Result: Same covariance but computed more reliably\n", "\n", "### When to Use SR Filters\n", "\n", "- **Ill-conditioned problems**: Stiff systems, large state dimensions\n", "- **Long-running simulations**: Numerical drift accumulates over time\n", "- **Baseline measurements**: Guarantees positive-definite estimate\n", "- **Production systems**: More robust than standard KF" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== SQUARE-ROOT KF COMPARISON ===\n", "Standard KF position RMSE: 5.3819\n", "Square-Root KF position RMSE: 5.3819\n", "Difference: 0.000000 (should be very small - demonstrates equivalence)\n" ] } ], "source": [ "# Run Square-Root KF\n", "# Note: SR-KF works with Cholesky factors of covariances, not covariances directly\n", "x_sr = np.array([0.0, 0.0, 0.0, 0.0])\n", "P_sr_init = np.eye(4) * 10.0\n", "S_sr = np.linalg.cholesky(P_sr_init) # Cholesky factor of initial covariance\n", "\n", "# Compute Cholesky factors of Q and R\n", "S_Q = np.linalg.cholesky(Q) # Cholesky factor of process noise\n", "S_R = np.linalg.cholesky(R) # Cholesky factor of measurement noise\n", "\n", "sr_estimates = [x_sr.copy()]\n", "\n", "for z in measurements:\n", " # Predict: Pass Cholesky factors instead of covariances\n", " pred = srkf_predict(x_sr, S_sr, F, S_Q)\n", " x_pred, S_pred = pred.x, pred.S\n", " \n", " # Update: Pass Cholesky factors instead of covariances\n", " upd = srkf_update(x_pred, S_pred, z, H, S_R)\n", " x_sr, S_sr = upd.x, upd.S\n", " \n", " sr_estimates.append(x_sr.copy())\n", "\n", "sr_estimates = np.array(sr_estimates)\n", "\n", "# Compare with standard KF\n", "kf_rmse = np.sqrt(np.mean((estimates[1:, :2] - true_states[1:, [0, 2]])**2))\n", "sr_rmse = np.sqrt(np.mean((sr_estimates[1:, :2] - true_states[1:, [0, 2]])**2))\n", "\n", "print(f\"\\n=== SQUARE-ROOT KF COMPARISON ===\")\n", "print(f\"Standard KF position RMSE: {kf_rmse:.4f}\")\n", "print(f\"Square-Root KF position RMSE: {sr_rmse:.4f}\")\n", "print(f\"Difference: {abs(kf_rmse - sr_rmse):.6f} (should be very small - demonstrates equivalence)\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Parameter Tuning: Interactive Exploration\n", "\n", "The Kalman filter's performance is highly sensitive to the noise covariances **Q** and **R**. Let's explore how they affect tracking quality." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "colorbar": { "title": { "text": "RMSE (m)" } }, "colorscale": [ [ 0, "rgb(0,104,55)" ], [ 0.1, "rgb(26,152,80)" ], [ 0.2, "rgb(102,189,99)" ], [ 0.3, "rgb(166,217,106)" ], [ 0.4, "rgb(217,239,139)" ], [ 0.5, "rgb(255,255,191)" ], [ 0.6, "rgb(254,224,139)" ], [ 0.7, "rgb(253,174,97)" ], [ 0.8, "rgb(244,109,67)" ], [ 0.9, "rgb(215,48,39)" ], [ 1, "rgb(165,0,38)" ] ], "customdata": [ [ "Q mult: 0.01
R mult: 0.1
RMSE: 0.4017m", "Q mult: 0.01
R mult: 0.5
RMSE: 0.4762m", "Q mult: 0.01
R mult: 1.0
RMSE: 0.4972m", "Q mult: 0.01
R mult: 2.0
RMSE: 0.5081m" ], [ "Q mult: 0.1
R mult: 0.1
RMSE: 0.2543m", "Q mult: 0.1
R mult: 0.5
RMSE: 0.3658m", "Q mult: 0.1
R mult: 1.0
RMSE: 0.4017m", "Q mult: 0.1
R mult: 2.0
RMSE: 0.4357m" ], [ "Q mult: 1.0
R mult: 0.1
RMSE: 0.1337m", "Q mult: 1.0
R mult: 0.5
RMSE: 0.2311m", "Q mult: 1.0
R mult: 1.0
RMSE: 0.2543m", "Q mult: 1.0
R mult: 2.0
RMSE: 0.3087m" ], [ "Q mult: 10.0
R mult: 0.1
RMSE: 0.1391m", "Q mult: 10.0
R mult: 0.5
RMSE: 0.0557m", "Q mult: 10.0
R mult: 1.0
RMSE: 0.1337m", "Q mult: 10.0
R mult: 2.0
RMSE: 0.1924m" ] ], "hovertemplate": "%{customdata}", "text": { "bdata": "7nw/NV662T8QWDm0yHbePwIrhxbZzt8/qMZLN4lB4D+oxks3iUHQPwaBlUOLbNc/7nw/NV662T+BlUOLbOfbP/T91HjpJsE/xSCwcmiRzT+oxks3iUHQPy2yne+nxtM/mG4Sg8DKwT956SYxCKysP/T91HjpJsE/+n5qvHSTyD8=", "dtype": "f8", "shape": "4, 4" }, "textfont": { "size": 10 }, "texttemplate": "%{text:.3f}", "type": "heatmap", "x": [ "0.1", "0.5", "1.0", "2.0" ], "y": [ "0.01", "0.10", "1.00", "10.00" ], "z": { "bdata": "hIie/Nm12T9c0xbFqXrePzBa1Xzf0t8/1ud632hC4D88JEgcOUfQP8CfoG3Gadc/wMf3ADa22T/suDmrsOLbPzD0X9e8G8E/8N/bjUWVzT+oHO7BOEfQPwAbP3BNwdM/iPsKODnNwT9AM20LkYesP2jUYNe8G8E/OMCfQ4mfyD8=", "dtype": "f8", "shape": "4, 4" } } ], "layout": { "height": 450, "template": { "layout": { "font": { "color": "#e6edf3" }, "paper_bgcolor": "#0d1117", "plot_bgcolor": "#0d1117", "xaxis": { "gridcolor": "#30363d", "zerolinecolor": "#30363d" }, "yaxis": { "gridcolor": "#30363d", "zerolinecolor": "#30363d" } } }, "title": { "text": "Kalman Filter Tuning: Final Position RMSE (lower is better)" }, "width": 700, "xaxis": { "title": { "text": "Measurement Noise Multiplier (R)" } }, "yaxis": { "title": { "text": "Process Noise Multiplier (Q)" } } } } }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== TUNING GUIDANCE ===\n", "Best Q multiplier: 10.0\n", "Best R multiplier: 0.5\n", "Minimum RMSE: 0.0557 m\n", "\n", "Tuning Rule: Balance Q (trust model) vs R (trust sensors)\n", "Too high Q → filter ignores model → sluggish\n", "Too low Q → filter trusts model too much → diverges\n" ] } ], "source": [ "# Parameter tuning: Grid search over Q and R values\n", "q_values = [0.01, 0.1, 1.0, 10.0]\n", "R_multiplier = [0.1, 0.5, 1.0, 2.0]\n", "\n", "results = np.zeros((len(q_values), len(R_multiplier)))\n", "\n", "for i, q_test in enumerate(q_values):\n", " for j, r_mult in enumerate(R_multiplier):\n", " # Adjust process and measurement noise\n", " Q_test = q_test * Q / 0.1 # Normalize relative to default\n", " R_test = R * r_mult\n", " \n", " # Run filter\n", " x_tune = np.array([0.0, 0.0, 0.0, 0.0])\n", " P_tune = np.eye(4) * 10.0\n", " \n", " for z in measurements:\n", " pred = kf_predict(x_tune, P_tune, F, Q_test)\n", " x_pred, P_pred = pred.x, pred.P\n", " upd = kf_update(x_pred, P_pred, z, H, R_test)\n", " x_tune, P_tune = upd.x, upd.P\n", " \n", " # Compute RMSE\n", " pos_error = np.sqrt((np.array([x_tune[0], x_tune[2]]) - \n", " np.array([true_states[-1, 0], true_states[-1, 2]]))**2)\n", " results[i, j] = np.mean(pos_error)\n", "\n", "# Create heatmap with Plotly\n", "hover_text = []\n", "for i in range(len(q_values)):\n", " row = []\n", " for j in range(len(R_multiplier)):\n", " row.append(f\"Q mult: {q_values[i]}
R mult: {R_multiplier[j]}
RMSE: {results[i, j]:.4f}m\")\n", " hover_text.append(row)\n", "\n", "fig = go.Figure(data=go.Heatmap(\n", " z=results,\n", " x=[f'{r:.1f}' for r in R_multiplier],\n", " y=[f'{q:.2f}' for q in q_values],\n", " colorscale='RdYlGn_r',\n", " text=np.round(results, 3),\n", " texttemplate='%{text:.3f}',\n", " textfont={\"size\": 10},\n", " hovertemplate='%{customdata}',\n", " customdata=hover_text,\n", " colorbar=dict(title='RMSE (m)')\n", "))\n", "\n", "fig.update_layout(\n", " template=dark_template,\n", " title='Kalman Filter Tuning: Final Position RMSE (lower is better)',\n", " xaxis_title='Measurement Noise Multiplier (R)',\n", " yaxis_title='Process Noise Multiplier (Q)',\n", " height=450,\n", " width=700\n", ")\n", "\n", "fig.show()\n", "\n", "print(\"\\n=== TUNING GUIDANCE ===\")\n", "best_idx = np.unravel_index(np.argmin(results), results.shape)\n", "print(f\"Best Q multiplier: {q_values[best_idx[0]]}\")\n", "print(f\"Best R multiplier: {R_multiplier[best_idx[1]]}\")\n", "print(f\"Minimum RMSE: {results[best_idx]:.4f} m\")\n", "print(f\"\\nTuning Rule: Balance Q (trust model) vs R (trust sensors)\")\n", "print(f\"Too high Q → filter ignores model → sluggish\")\n", "print(f\"Too low Q → filter trusts model too much → diverges\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. Filter Comparison Summary\n", "\n", "### Performance Characteristics\n", "\n", "| Filter | Linearity | Order | Jacobian | Stability | Cost | Best For |\n", "|--------|-----------|-------|----------|-----------|------|----------|\n", "| **KF** | Linear | - | N/A | Good | Low | GPS, simple dynamics |\n", "| **EKF** | Nonlinear | 1st | Yes | Moderate | Low | Radar, mild nonlinearity |\n", "| **UKF** | Nonlinear | 2nd | No | Better | Low | Nonlinear sensors, maneuvering |\n", "| **SR-KF** | Linear | - | N/A | Excellent | Low | Long-running, ill-conditioned |\n", "| **SR-UKF** | Nonlinear | 2nd | No | Excellent | Low | Non-linear + numerical robustness |\n", "| **IMM** | Multi-model | Varies | Depends | Good | High | Target maneuvering modes |\n", "\n", "### Decision Tree for Filter Selection\n", "\n", "**Q: Are your system dynamics nonlinear?**\n", "- No → Use **Kalman Filter** ✓\n", "- Yes → Go to next question\n", "\n", "**Q: Do you need high accuracy or have ill-conditioned problems?**\n", "- Yes → Use **SR-UKF** (best robustness)\n", "- No → Go to next question\n", "\n", "**Q: Can you easily compute Jacobians?**\n", "- Yes → Use **EKF** (simpler, lower cost)\n", "- No → Use **UKF** (no Jacobians needed)\n", "\n", "### Key Tuning Parameters Across All Filters\n", "\n", "| Parameter | Effect | How to Tune |\n", "|-----------|--------|------------|\n", "| **Q** (Process noise) | ↑Q = trust model less | Start with 0.01 of state variance |\n", "| **R** (Measurement noise) | ↑R = trust sensors less | Use sensor specs, iterate if needed |\n", "| **P₀** (Initial covariance) | High = start uncertain | Use 10-100× expected error |\n", "| **α** (UKF spreading) | Affects sigma points | Typical: 0.001-0.01 for nearly linear |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercises & Challenges\n", "\n", "### Exercise 1: Process Noise Sensitivity ⭐️\n", "**Objective**: Understand how process noise (Q) affects tracking performance\n", "\n", "**Task**: \n", "1. Increase `q` from 0.1 to 0.5, 1.0, and 5.0\n", "2. Run the KF for each value\n", "3. Plot convergence speed vs final estimate accuracy\n", "4. **Question**: What happens to the filter's responsiveness to target maneuvers?\n", "\n", "---\n", "\n", "### Exercise 2: Measurement Outlier Rejection ⭐️⭐️\n", "**Objective**: Make the filter robust to sensor failures\n", "\n", "**Task**:\n", "1. Inject 5 large outliers in `measurements` (e.g., 10× normal noise)\n", "2. Implement **Chi-squared gating**: Reject measurements where $(z - h(\\hat{x}))^T (HPH^T + R)^{-1} (z - h(\\hat{x})) > \\chi^2_{0.95}$\n", "3. Compare filter performance with/without gating\n", "4. **Challenge**: Can you make it adaptive (learn outlier statistics)?\n", "\n", "---\n", "\n", "### Exercise 3: Maneuvering Target Tracking ⭐️⭐️⭐️\n", "**Objective**: Handle nonlinear trajectories (circles, spirals)\n", "\n", "**Task**:\n", "1. Create ground truth that performs a **circular maneuver** (constant turn rate)\n", "2. Use coordinated turn rate model: $\\dot{x} = v \\cos(\\psi), \\dot{\\psi} = \\omega_z$\n", "3. Implement tracking with UKF vs EKF\n", "4. **Metric**: RMSE during turn vs straight-line segments\n", "5. **Deep dive**: Why does UKF outperform EKF here?\n", "\n", "---\n", "\n", "### Exercise 4: Consistency Check (NEES) ⭐️⭐️⭐️⭐️\n", "**Objective**: Verify the filter is consistent (uncertainty estimates match actual errors)\n", "\n", "**Task**:\n", "1. Compute the Normalized Estimation Error Squared (NEES): \n", " $$\\epsilon_k = (x_k - \\hat{x}_k)^T P_k^{-1} (x_k - \\hat{x}_k)$$\n", "2. Ideally, $\\epsilon_k \\sim \\chi^2_4$ (4-dimensional)\n", "3. Run a Monte Carlo simulation (100 trials of the full scenario)\n", "4. Plot histogram of NEES values; check if it matches $\\chi^2$ distribution\n", "5. **Interpretation**: If filter is under-confident, NEES ≫ 4; if over-confident, NEES ≪ 4\n", "\n", "---\n", "\n", "### Exercise 5: Multi-Sensor Fusion ⭐️⭐️⭐️⭐️\n", "**Objective**: Combine multiple sensors with different noise profiles\n", "\n", "**Task**:\n", "1. Create a **GPS sensor** (slow, accurate): $R_{GPS} = 1.0$ (1m std)\n", "2. Create a **dead-reckoning system** (fast, drifts): $R_{DR} = 10.0$ (10m std) \n", "3. Implement a filter that accepts measurements from both at different rates\n", "4. **Bonus**: Use an Interacting Multiple Model (IMM) filter to handle GPS outages\n", "5. **Real-world scenario**: GPS loss in tunnel → rely on dead-reckoning during gap\n", "\n", "---\n", "\n", "## Key Takeaways\n", "\n", "✅ **Kalman filters are optimal for linear-Gaussian systems** \n", "✅ **EKF extends to nonlinear systems via linearization** \n", "✅ **UKF better handles highly nonlinear systems without Jacobians** \n", "✅ **Square-root variants improve numerical stability** \n", "✅ **Filter tuning (Q, R) is an art—validate with real data** \n", "✅ **Consistency checks (NEES) verify filter correctness** \n", "\n", "## Next Steps\n", "\n", "→ Explore **covariance intersection** for decentralized fusion \n", "→ Study **particle filters** for non-Gaussian distributions \n", "→ Implement **IMM filters** for maneuvering target tracking" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References & Further Reading\n", "\n", "### Core Textbooks\n", "1. **Bar-Shalom, Y., Li, X. R., & Kirubarajan, T.** (2001). *Estimation with Applications to Tracking and Navigation: Theory, Algorithms and Software*. Wiley. \n", " - **Coverage**: The definitive reference, covers KF, EKF, measurement-to-track association\n", " - **Best for**: Advanced practitioners, comprehensive theory\n", "\n", "2. **Simon, D.** (2006). *Optimal State Estimation: Kalman, H∞, and Nonlinear Approaches*. John Wiley & Sons.\n", " - **Coverage**: KF, EKF, UKF, H∞ filtering, practical implementation\n", " - **Best for**: Engineers wanting both theory and practical guidance\n", "\n", "3. **Welch, G., & Bishop, G.** (2006). *An Introduction to the Kalman Filter*. UNC Chapel Hill (free PDF).\n", " - **Coverage**: Gentle introduction, intuitively explained\n", " - **Best for**: Students, beginners\n", "\n", "### Advanced Topics\n", "4. **Sarkka, S.** (2013). *Bayesian Filtering and Smoothing*. Cambridge University Press.\n", " - **Coverage**: Probabilistic interpretation, sequential filtering, GPU-friendly algorithms\n", " - **Best for**: Researchers, particle filters, GPU implementation\n", "\n", "5. **Kleeman, L.** (1995). *Understanding and Applying Kalman Filtering*. \n", " - **Coverage**: EKF applications, real-world tuning advice\n", " - **Best for**: Practitioners in robotics/navigation\n", "\n", "### Key Papers\n", "- **Julier, S. J., & Uhlmann, J. K.** (2004). \"Unscented Filtering and Nonlinear Estimation.\" *Proceedings of the IEEE*, 92(3), 401-422.\n", "- **Bierman, G. J.** (1977). \"Factorization Methods for Discrete Sequential Estimation.\" Academic Press.\n", " - **Note**: Foundational work on square-root filters\n", "\n", "### PyTCL Library Documentation\n", "- **Dynamic Estimation Module**: See `pytcl.dynamic_estimation` for available filter implementations\n", "- **API Reference**: Full documentation at [NRL Tracker GitHub](https://github.com/nrl-ai/nrl-tracker)\n", "- **Example Gallery**: Additional examples in `examples/` directory\n", "\n", "### Online Resources\n", "- **MIT OpenCourseWare**: 6.041 Probabilistic Systems Analysis (free lectures on Bayesian inference)\n", "- **Andrew Ng's Machine Learning Course**: Covers HMMs and Kalman filters intuitively\n", "- **MATLAB Documentation**: Excellent visual guides on Kalman filter concepts\n", "\n", "### Recommended Learning Path\n", "\n", "```\n", "1. Week 1: Linear Kalman Filter\n", " → Read: Welch & Bishop introduction\n", " → Code: Constant velocity 1D tracking\n", " → Exercise 1: Tune Q and R by hand\n", "\n", "2. Week 2: Extended Kalman Filter\n", " → Read: Simon Ch. 6 on EKF\n", " → Code: Nonlinear radar measurements\n", " → Exercise 3: Compare EKF vs UKF\n", "\n", "3. Week 3: Unscented Kalman Filter\n", " → Read: Julier & Uhlmann paper\n", " → Code: Highly nonlinear system\n", " → Exercise: Verify NEES consistency\n", "\n", "4. Week 4: Applications\n", " → Read: Real-world case studies\n", " → Code: Multi-sensor fusion (Exercise 5)\n", " → Project: Your own tracking application\n", "```" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.0" } }, "nbformat": 4, "nbformat_minor": 4 }