spell check
This commit is contained in:
1 parent
86583251c7
commit
46085c6eb1
5 files changed
+196
-173
No files matched your search
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:cd2405175a06c2ebdde08ed8610f15c145ad09340c50cd4c69b54309d12deb44"
|
||||
"signature": "sha256:2bd183b0492298f75de42afd5f57e673cf7985d2fdbea889cc00750e85ad752c"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -259,7 +259,7 @@
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f04335466a0>"
|
||||
"<IPython.core.display.HTML at 0x7f9d97880320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -404,7 +404,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f0417074c50>"
|
||||
"<matplotlib.figure.Figure at 0x7f9d7b1475f8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -416,9 +416,9 @@
|
||||
"source": [
|
||||
"Here I have attempted to show transmitter A, drawn in red, at (-4,0) and a second one B, drawn in blue, at (4,0). The red and blue circles show the range from the transmitters to the robot, with the width illustrating the effect of the $1\\sigma$ angular error for each transmitter. Here I have given the blue transmitter more error than the red one. The most probable position for the robot is where the two circles intersect, which I have depicted with the red and blue lines. You will object that we have two intersections, not one, but we will see how we deal with that when we design the measurement function.\n",
|
||||
"\n",
|
||||
"This is a very common sensor set up. Aircraft still use this system to navigate, where it is called DME (Distance Measuring Equipment). Today GPS is a much more common navigation sytem, but I have worked on an aircraft where we integrated sensors like this into our filter along with the GPS, INS, altimeters, etc. We will tackle what is called *multi-sensor fusion* later; for now we will just address this simple configuration.\n",
|
||||
"This is a very common sensor set up. Aircraft still use this system to navigate, where it is called DME (Distance Measuring Equipment). Today GPS is a much more common navigation system, but I have worked on an aircraft where we integrated sensors like this into our filter along with the GPS, INS, altimeters, etc. We will tackle what is called *multi-sensor fusion* later; for now we will just address this simple configuration.\n",
|
||||
"\n",
|
||||
"The first step is to design our state variables. We will assume that the robot is travelling in a straight direction with constant velocity. This is unlikely to be true for a long period of time, but is acceptable for short periods of time. This does not differ from the previous problem - we will want to track the values for the robot's position and velocity. Hence,\n",
|
||||
"The first step is to design our state variables. We will assume that the robot is traveling in a straight direction with constant velocity. This is unlikely to be true for a long period of time, but is acceptable for short periods of time. This does not differ from the previous problem - we will want to track the values for the robot's position and velocity. Hence,\n",
|
||||
"\n",
|
||||
"$$\\mathbf{x} = \n",
|
||||
"\\begin{bmatrix}x\\\\v_x\\\\y\\\\v_y\\end{bmatrix}$$"
|
||||
@@ -428,7 +428,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The next step is to design the state transistion function. This also will be the same as the previous problem, so without further ado,\n",
|
||||
"The next step is to design the state transition function. This also will be the same as the previous problem, so without further ado,\n",
|
||||
"\n",
|
||||
"$$\n",
|
||||
"\\mathbf{x}' = \\begin{bmatrix}1& \\Delta t& 0& 0\\\\0& 1& 0& 0\\\\0& 0& 1& \\Delta t\\\\ 0& 0& 0& 1\\end{bmatrix}\\mathbf{x}$$\n",
|
||||
@@ -491,9 +491,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"That is pretty painful, and these are very simple equations. Computing the Jacobian can be extremely difficult or even impossible for more complicated systems. However, there is an easy way to get Python to do the work for you by using the `sympy` module [1]. `sympy` is a Python library for symbolic mathematics. The full scope of its abilities are beyond this book, but it can perform algebra, integrate and differentiate equations, find solutions to differential equations, and much more. We will use it to compute our Jabobian!\n",
|
||||
"That is pretty painful, and these are very simple equations. Computing the Jacobian can be extremely difficult or even impossible for more complicated systems. However, there is an easy way to get Python to do the work for you by using the SymPy module [1]. SymPy is a Python library for symbolic mathematics. The full scope of its abilities are beyond this book, but it can perform algebra, integrate and differentiate equations, find solutions to differential equations, and much more. We will use it to compute our Jacobian!\n",
|
||||
"\n",
|
||||
"First, a simple example. We will import sympy, initialize its pretty print functionality (which will print equations using LaTeX). We will then declare a symbol for numpy to use."
|
||||
"First, a simple example. We will import SymPy, initialize its pretty print functionality (which will print equations using LaTeX). We will then declare a symbol for NumPy to use."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -593,7 +593,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"`sympy` has a remarkable list of features, and as much as I enjoy exercising its features we cannot cover them all here. Instead, let's compute our Jacobian."
|
||||
"SymPy has a remarkable list of features, and as much as I enjoy exercising its features we cannot cover them all here. Instead, let's compute our Jacobian."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -643,11 +643,11 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"In a nutshell, the entry (0,0) contains the difference between the x coordinate of the robot and transmitter A's x coordinate divided by the distance between the robot and A. (2,0) contains the same, except for the y coordintates of the robot and transmitters. The bottom row contains the same computations, except for transmitter B. The 0 entries account for the velocity components of the state variables; naturally the range does not provide us with velocity.\n",
|
||||
"In a nutshell, the entry (0,0) contains the difference between the x coordinate of the robot and transmitter A's x coordinate divided by the distance between the robot and A. (2,0) contains the same, except for the y coordinates of the robot and transmitters. The bottom row contains the same computations, except for transmitter B. The 0 entries account for the velocity components of the state variables; naturally the range does not provide us with velocity.\n",
|
||||
"\n",
|
||||
"The values in this matrix change as the robot's position changes, so this is no longer a constant; we will have to recompute it for every time step of the filter.\n",
|
||||
"\n",
|
||||
"If you look at this you may realize that this is just a computation of x/dist and y/dist, so we can switch this to a trigometic form with no loss of generality:\n",
|
||||
"If you look at this you may realize that this is just a computation of x/dist and y/dist, so we can switch this to a trigonometic form with no loss of generality:\n",
|
||||
"\n",
|
||||
"$$\\frac{\\partial\\mathbf{h}}{\\partial\\mathbf{x}}=\n",
|
||||
"\\begin{bmatrix}\n",
|
||||
@@ -660,14 +660,14 @@
|
||||
"\n",
|
||||
"We are forced, therefore, to use the *change* in $\\mathbf{x}$ for our state variables. So we have to go back and redesign our state variables. \n",
|
||||
"\n",
|
||||
">Please note this is a completely normal occurance in designing Kalman filters. The textbooks present examples like this as *fait accompli*, as if it is trivially obvious that the state variables needed to be velocities, not positions. Perhaps once you do enough of these problems it would be trivially obvious, but at that point why are you reading a textbook? I find myself reading through a presentation multiple times, trying to figure out why they made a choice, finally to realize that it is because of the consequences of something on the next page. My presentation is longer, but it reflects what actually happens when you design a filter. You make what seem reasonable design choices, and as you move forward you discover properties that require you to recast your earlier steps. As a result, I am going to somewhat abandon my **step 1**, **step 2**, etc., approach, since so many real problems are not quite that straightforward."
|
||||
">Please note this is a completely normal occurrence in designing Kalman filters. The textbooks present examples like this as *fait accompli*, as if it is trivially obvious that the state variables needed to be velocities, not positions. Perhaps once you do enough of these problems it would be trivially obvious, but at that point why are you reading a textbook? I find myself reading through a presentation multiple times, trying to figure out why they made a choice, finally to realize that it is because of the consequences of something on the next page. My presentation is longer, but it reflects what actually happens when you design a filter. You make what seem reasonable design choices, and as you move forward you discover properties that require you to recast your earlier steps. As a result, I am going to somewhat abandon my **step 1**, **step 2**, etc., approach, since so many real problems are not quite that straightforward."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"If our state variables contain the velocities of the robot and not the position then how do we track where the robot is? We can't. Kalman filters that are linearized in this fashion use what is called a *nominal trajectory* - i.e. you assume a position and track direction, and then apply the changes in velocity and acceleration to compute the changes in that trajectory. How could it be otherwise? Recall the graphic showing the intersection of the two range circles - there are two areas of intersection. Think of what this would look like if the two transmitters were very close to each other - the intersections would be two very long cresent shapes. This Kalman filter, as designed, has no way of knowing your true position from only distance measurements to the transmitters. Perhaps your mind is already leaping to ways of working around this problem. If so, stay engaged, as later sections and chapters will provide you with these techniques. Presenting the full solution all at once leads to more confusion than insight, in my opinion. \n",
|
||||
"If our state variables contain the velocities of the robot and not the position then how do we track where the robot is? We can't. Kalman filters that are linearized in this fashion use what is called a *nominal trajectory* - i.e. you assume a position and track direction, and then apply the changes in velocity and acceleration to compute the changes in that trajectory. How could it be otherwise? Recall the graphic showing the intersection of the two range circles - there are two areas of intersection. Think of what this would look like if the two transmitters were very close to each other - the intersections would be two very long crescent shapes. This Kalman filter, as designed, has no way of knowing your true position from only distance measurements to the transmitters. Perhaps your mind is already leaping to ways of working around this problem. If so, stay engaged, as later sections and chapters will provide you with these techniques. Presenting the full solution all at once leads to more confusion than insight, in my opinion. \n",
|
||||
"\n",
|
||||
"So let's redesign our *state transition function*. We are assuming constant velocity and no acceleration, giving state equations of\n",
|
||||
"$$\n",
|
||||
@@ -681,7 +681,7 @@
|
||||
"$$\n",
|
||||
"\\mathbf{F} = \\begin{bmatrix}0 &1 & 0& 0\\\\0& 0& 0& 0\\\\0& 0& 0& 1\\\\ 0& 0& 0& 0\\end{bmatrix}$$\n",
|
||||
"\n",
|
||||
"A final complication comes from the measurements that we pass in. $\\mathbf{Hx}$ is now computing the *change* in the measurement from our nominal position, so the measurement that we pass in needs to be not the range to A and B, but the *change* in range from our measured range to our nomimal position. \n",
|
||||
"A final complication comes from the measurements that we pass in. $\\mathbf{Hx}$ is now computing the *change* in the measurement from our nominal position, so the measurement that we pass in needs to be not the range to A and B, but the *change* in range from our measured range to our nominal position. \n",
|
||||
"\n",
|
||||
"There is a lot here to take in, so let's work through the code bit by bit. First we will define a function to compute $\\frac{\\partial\\mathbf{h}}{\\partial\\mathbf{x}}$ for each time step."
|
||||
]
|
||||
@@ -824,9 +824,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAxkAAAGNCAYAAAB9i7yDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd0FdX+/vH3OemNkEB6ICSh9xKq0iKgIqAoIqgXsMBV\nUUF+CAS8gi10RbkIiKKCogIq6ldFqigCQmiBUFOogdDSCOlnfn/kGo0JTdLzvNbKMpnZM/OZNSB5\nzp69t8kwDAMREREREZFiYi7rAkREREREpHJRyBARERERkWKlkCEiIiIiIsVKIUNERERERIqVQoaI\niIiIiBQrhQwRERERESlWChkiIiIiIlKsrhky5s2bR4sWLXB1dcXV1ZVOnTrxww8/FGgzZcoU/Pz8\ncHR0pHv37hw4cKBECxYRERERkfLtmiGjVq1azJgxg927d7Nz505CQ0O577772Lt3LwDTp0/nzTff\n5L///S87duzA09OTnj17cvny5VIpXkREREREyh/Tza74XaNGDaZNm8aTTz6Jr68vzz//PGFhYQBk\nZGTg6enJrFmzGDFiRIkULCIiIiIi5dsNj8nIzc3l888/JyMjgy5duhAXF0dCQgK9evXKb2Nvb0+X\nLl3YsmVLiRQrIiIiIiLln/X1Guzbt4+OHTuSmZmJg4MDy5cvp0GDBvlBwsvLq0B7T09P4uPjC50n\nOTm5mEoWEREREZHS5OrqelPtrxsyGjZsSGRkJMnJyaxYsYJBgwaxcePGax5jMpluqggREREREak8\nrvu6lI2NDUFBQbRq1Yrw8HA6dOjAvHnz8PHxASAhIaFA+4SEBLy9vUumWhERERERKfeu25Pxd7m5\nuVgsFgIDA/H29mbNmjW0adMGyBv4vXnzZmbNmnXNc9xsd4tUTBEREQCEhISUcSVSmvTcqx4986pH\nz7zq0TOvmm5luMM1Q8aECRPo06cP/v7+pKamsmzZMjZt2sTq1asBGD16NOHh4TRs2JB69erx+uuv\n4+LiwsMPP/yPCxIRERERkYrtmiEjISGBRx99lLNnz+Lq6kqLFi1YvXo1PXv2BGDcuHGkp6czcuRI\nEhMT6dChA2vWrMHJyalUihcRERERkfLnmiHjww8/vO4JJk+ezOTJk4utIBERERERqdhueJ0MERER\nEREpPoZhcObiybIuo0QoZIiIiIiIlIG1EV8yfdlotuxfU9alFDuFDBERERGRUhYZs43/2/IJFksu\nn69/ly83vU+uJbesyyo2Nz2FbUkzDIOsrCwMwyjrUuQvTCYTtra2WmhRRERE5BadPh/Hkp/mFNi2\n4+DPdG/VD/dqnmVUVfEqVyHDYrGQmZmJra0tVlZWZV2O/EVubi4ZGRnY2dlhNqsDTEREROSfSElL\n4r3vwsnKzsjfZjZb8fg94ypNwIBy9rpUVlYW9vb2ChjlkJWVFfb29mRlZZV1KSIiIiIVUnZONh98\nP43E1PMFtg/oOpz6tZrf0DkyMjJYsGAB27ZtK4kSi025ChmAXscpx/RsRERERP4ZwzD4YsO7xJ05\nVGB75+a9ub35Xdc9PjU1lVmzZhEYGMjTTz/NlClTSqjS4lGuXpcSEREREamMNuxaxfaDGwtsa1Cr\nBfd3feKax126dIl33nmHd955h8TERABatmzJE088gWEY5fZDYIUMEREREZEStC92O99uXlJgm0d1\nXx7r/SJW5qKHCZw5c4Y333yT+fPnk5aWBsBtt93GpEmTuOuuu8ptuPiDQoaIiIiISAmJv3CMJavf\nxODPmVMd7JwY0W8SjvbOhdrHxsYyc+ZMFi9enD8W9s4772TSpEl07ty51Oq+VeVuTEZVc+zYMcxm\nMx9//HH+to8++giz2cyJEyfKsDIRERERuRWpV5J577twMv86k5TJzGN3v4iXm1+BtlFRUfzrX/+i\nfv36LFiwgOzsbB544AEiIiJYvXp1hQoYoJBRKv4IDUV9Pffcc5hMput2eS1btoy33367lCoWERER\nkVuRk5s3k9SllHMFtt/f9QkaBrTM/3nHjh3079+fpk2b8sknnwAwdOhQoqKiWLlyJW3atCnVuouL\nXpcqRa+88grBwcEFtjVo0IAvv/wSa+trP4ply5YRFRXFqFGjSrJEEREREblFhmGwfMMCYuMPFth+\nW9M76dy8N4ZhsGnTJsLDw1m7di0AdnZ2PPnkk4wdO5Y6deqUQdXFSyGjFN155520a9fuHx9fEgN8\n0tPTcXBwKPbzioiIiFRVG3d/y7YD6wtsq+ffjAe6Psn3339PeHg4W7duBcDZ2ZlnnnmGF154AW9v\n77Iot0TodakyVtSYjL/r1q0bP/zwQ37bP77+YBgGc+fOpVmzZjg4OODl5cWTTz7JxYsXC5ynTp06\n3H333axfv5727dvj4ODAjBkzSuzeRERERKqaqLgIvtlc8Pc6dxdPXNICadMmhL59+7J161bc3d15\n9dVXOXHiBNOnT69UAQMqeE/G82/fV6Lnf2fUqmI9X1JSEhcuXChy37V6KV566SXGjRvHqVOnmDNn\nTqH9Tz/9NIsXL2bYsGE8//zznDhxgrlz57J9+3Z27NiBnZ1d/jWio6N58MEHGTFiBMOHD6d27drF\nc3MiIiIiVdyZiyf5aPVsDMMCQG5OLjG7z3Fk617iYhcB4Ovry9ixYxk+fDjOzoVnl6osKnTIqGju\nuqvgao4mk4nIyMjrHtejRw98fX1JSkri4YcfLrBvy5YtvPfeeyxdupRHHnmkwLU6d+7MkiVLGD58\nOJDX4xETE8O3335Lnz59iuGORERERATgcnoK7333OplZ6WRn5hC19Ti7NkaTlpw3s1RQUBATJkxg\nyJAh+R8AV2YKGaVo7ty5NGrUqMA2e3v7Wzrn8uXLcXZ2plevXgV6SRo0aICnpycbN27MDxkAtWrV\nUsAQERERKUY5udks/n468WdOEbk5lj2bYslIy1vjomnTpoSFhTFw4MDrTvRTmVSdOy0H2rZtW2jg\n97Fjx27pnEeOHOHy5ct4eXkVuf/8+fMFfg4KCrql64mIiIjInwzD4P2vZ7FkwQoiN8eRnZkDQHDD\nAGZPe5u+ffsWGEtbVVTokFHcYyYqIovFQo0aNfjiiy+K3O/m5lbgZ80kJSIiIlI84uJiee7Ff7P6\n2w3kZueNw/CvX5N+g3oy5z8fYWNtW8YVlp0KHTKqkqsNDA8ODmbdunW0b98eJyenUq5KREREpOo5\nfPgwU16dzPIvVmDJzQsXgU29CelRjybNG/H/Bs2s0gEDNIVtheHk5ERiYmKh7YMGDcJisfDqq68W\n2pebm0tSUlJplCciIiJS6e3evZuBAwfSqFEjPl/2BYbFQv02/gwe150+T7YnoJ4vI/pNwtmhWlmX\nWubUk1FBtG3bluXLlzN69GjatWuH2Wxm0KBBdO7cmZEjRzJz5kwiIyPp1asXdnZ2REdH8+WXX/La\na68xZMiQsi5fREREpMLavHkz4eHh/PjjjwCYrcw0blebNnfUw7Vm3pskLg6uDOv9Ij41tDwAKGSU\nmptdrfvv7Z955hn27dvHJ598wty5c4G8XgzIm7WqdevWLFiwgJdeeglra2sCAgJ46KGHCA0N/cc1\niIiIiFRVhmHw008/ER4ezq+//gqAja0VTTrVoVW3YJyr/znOtXlwex4KfQYXR9eyKrfcMRmGYZTG\nhZKTk/O/d3Ut+gFkZGTc8pSuUrJu5hlFREQAEBISUpIlSTmj51716JlXPXrmVU9VeuYWi4Wvv/6a\n8PBwdu3aBYCjswNNOtWiRZcgHJz/XOPCztaBAV2fpF2j0Er5Ye6N/P5+NerJEBEREZEqLzs7m2XL\nljFt2jQOHToEQE2PGrToEkjdtp7Y2tsUaB/s25hHe42ihmvRywhUdQoZIiIiIlJlpaens3jxYmbM\nmMGJEycACAgIoFf/27H2Tcba1qpAeyuzNfd0fJjQ1vdiNlsVdUpBIUNEREREqqCUlBTmz5/Pm2++\nyblz5wBo2LAhI0Y+wWWnWM6nxAMFQ4RvjQD+dedo/DwCy6DiikUhQ0RERESqjAsXLvDOO+8wd+7c\n/Kn+W7duTVhYGM61LPy0fTm5KTkFjjFhonvre7mn48NVfv2LG6WQISIiIiKV3unTp5k9ezYLFy7k\nypUrAHTs1IFHnxhI7YYeHDy+lZPbYgod5+biwaO9RlHPv2lpl1yhKWSIiIiISKUVHR3N9OnTWLJk\nKVlZWQA0bhVMy+6B1KjtxKHUTRzaUfSx7Rp154GuT+Jg51SKFVcOChkiIiIiUmlkZmcQf+EYm37b\nwKL5H7J1404MwwAT1G3pS0iPenj4V7/mOZzsXRh0xzO0qNuxlKqufBQyRERERKRCupyewqlzsZw6\nH8up83GcOh9L5O79RKw7Qtz+swCYzSYatatN69C6uHm5XPecTQJDGHzHSKo5uZV0+ZWaQoaIiIiI\nlGuGYXAp9RynzsX9L1DEcvp8HEmXL+bvP3X0AhFrj3Dq6AUArG2saNIxgFbdg3FxcyzyvPa2jvh5\nBOL/v68A7/p4u9cqtfuqzBQyRERERKTcyLXkknDpVH6QOHU+jtPn47iSeblQW8NiEBd1loi1R0g4\nkTdTlK29Nc07B9KiSzCOLn+uzl3NyQ1/jyD8PQLx+99/a7h6YTaZS+3eqhKFDBEREREpE1nZmcRf\nPF7glaczF46TnZt1zeMsuRaO7j5NxLqjXDqbCoC9ky0tuwXT/LZA/H0D8POo879QkfdVzena4zCk\neClkiIiIiEipSLh0iv1xEfmvPJ1LjMcwLDd8fG5OLgd/P8nODUdJuZg3Da2ruzP9HrqTR/41iLq1\nG+PnEYi9rUNJ3YLcIIWMKubnn38mNDSUzz//nIEDB5Z1OSIiIlJFrNmxku+3LrupUPGHrMLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f0415d776a0>"
|
||||
"<matplotlib.figure.Figure at 0x7f9d7a114e80>"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
+11
-11
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:e79511f22a0b5746eaba827fe690183edf91655838106bfbbdbae77f6a72900e"
|
||||
"signature": "sha256:270d703c1fbe073d7501e6a1736e1bb06f2e953a07abbb6e54121b7fe2228284"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -259,7 +259,7 @@
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f63c05296a0>"
|
||||
"<IPython.core.display.HTML at 0x7f22d8ee6320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -298,7 +298,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f63a4064e10>"
|
||||
"<matplotlib.figure.Figure at 0x7f22bc7e4a90>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -308,7 +308,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"After a long period of near steady state, we have a very large change. Assume that change is larger than the aircraft's manuevering envelope. Nonetheless the Kalman filter incorporates that new measurement into the filter based on the current Kalman gain. It cannot reject the noise because the measurement could reflect the initiation of a turn. Granted it is unlikely that we are turning so abruptly, but it is impossible to say whether \n",
|
||||
"After a long period of near steady state, we have a very large change. Assume that change is larger than the aircraft's maneuvering envelope. Nonetheless the Kalman filter incorporates that new measurement into the filter based on the current Kalman gain. It cannot reject the noise because the measurement could reflect the initiation of a turn. Granted it is unlikely that we are turning so abruptly, but it is impossible to say whether \n",
|
||||
" \n",
|
||||
"* The aircraft started a turn awhile ago, but the previous measurements were noisy and didn't show the change.\n",
|
||||
" \n",
|
||||
@@ -339,7 +339,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f63a3d97080>"
|
||||
"<matplotlib.figure.Figure at 0x7f22bc79d048>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -375,7 +375,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f63a3ce79b0>"
|
||||
"<matplotlib.figure.Figure at 0x7f22bc745e48>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -385,7 +385,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Since this type of smoothing requires knowing data from \"the future\", there are some applications for the Kalman filter where these observations are not helpful. For example, if we are using a Kalman filter as our navigation filter for an aircraft we have little interest in where we have been. While we could use a smoother to create a smooth history for the plane, we probably are not interested in it. However if we can afford a bit of latency some smoothers only require a few measurements into the future prode better results. And, of course any problem where we can batch collect the data and then run the Kalman filter on the data will be able to take maximum advantage of this type of algorithm."
|
||||
"Since this type of smoothing requires knowing data from \"the future\", there are some applications for the Kalman filter where these observations are not helpful. For example, if we are using a Kalman filter as our navigation filter for an aircraft we have little interest in where we have been. While we could use a smoother to create a smooth history for the plane, we probably are not interested in it. However if we can afford a bit of latency some smoothers only require a few measurements into the future produce better results. And, of course any problem where we can batch collect the data and then run the Kalman filter on the data will be able to take maximum advantage of this type of algorithm."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -408,7 +408,7 @@
|
||||
"\n",
|
||||
"* Fixed Lag Smoothing\n",
|
||||
"\n",
|
||||
"Fixed lag smoothers introduce latency into the output. Suppose we choose a lag of 4 steps. The filter will injest the first 3 measurements but not ouput a filtered result. Then, when the 4th measurement comes in the filter will produce the output for measurement 1, taking measurments 1 through 4 into account. When the 5th measurment comes in, the filter will produce the result for measurement 2, taking measurements 2 through 5 into account.\n",
|
||||
"Fixed lag smoothers introduce latency into the output. Suppose we choose a lag of 4 steps. The filter will ingest the first 3 measurements but not output a filtered result. Then, when the 4th measurement comes in the filter will produce the output for measurement 1, taking measurements 1 through 4 into account. When the 5th measurement comes in, the filter will produce the result for measurement 2, taking measurements 2 through 5 into account.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"* Fixed Interval Smoothing\n",
|
||||
@@ -420,7 +420,7 @@
|
||||
"\n",
|
||||
"Fixed lag smoothing only requires you to store a window of data, and processing requirements are modest because only that window is processed for each new measurement. The drawback is that the filter's output always lags the input, and the smoothing is not as pronounced as is possible with fixed interval smoothing.\n",
|
||||
"\n",
|
||||
"Fixed interval smoothing produces the most smoothed output at the cost of having to be batch processed. Most algorithms use some sort of forwards/backwards algorithm that is only twice as slow as a recursive Kalamn filter. "
|
||||
"Fixed interval smoothing produces the most smoothed output at the cost of having to be batch processed. Most algorithms use some sort of forwards/backwards algorithm that is only twice as slow as a recursive Kalman filter. "
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -557,7 +557,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAyUAAAGGCAYAAABlgy72AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdY1Ff2+PH30BEQFHvvsVdUVKxRiaARNDaY2cSYXjbZ\nb8pG0/smvxQTN9UkJjsD2FGJvRsUeyP2hl1sgIAUgfn9cXWQMMAAMwyY83oensT7accRcc7ce8/R\nGI1GI0IIIYQQQghhJw72DkAIIYQQQgjx9yZJiRBCCCGEEMKuJCkRQgghhBBC2JUkJUIIIYQQQgi7\ncrJ3AOakpKTYOwQhhBBCCCFEGXh7e5f6GpkpEUIIIYQQQtiVJCVCCCGEEEIIu6qUy7fuVpbpH1E2\nO3fuBMDPz8/Okfy9yOtuH/K624e87vYhr7t9yOtuH5XudT95Enr1ghMn4B5+X1ve7RcyUyKEEEII\nIYStfPopPPnkPZ2QWEOlnykRQgghhBCiSsrJgb17ISbG3pFUepKUCCGEEEIIYQtOThAXBxqNvSOp\n9GT5lhBCCCGEELby14Tk+nX7xFHJSVIihBBCCCFERcjOhubNISnJ3pFAXh6kp9s7ChObJSUff/wx\nDg4OPP/88wXG33nnHRo2bEi1atUYPHgwBw8etFUIQgghhBBCVB4uLtCvH6xZY+9IYOdOCAiwdxQm\nNklKtm7dysyZM+ncuTOau6asPvnkE7744gv++9//smPHDurUqcOwYcNIS0uzRRhCCCGEEEJUPKOx\n6GOBgbByZcXFUpSYGBVLJWH1pCQlJQWtVsusWbOoUaOGadxoNDJ9+nSmTp1KaGgoHTp04LfffiM1\nNZXIyEhrhyGEEEIIIUTFy8yEnj0hOdn88cBAWLWq+MSlIixZAqNG2TeGu1g9KXniiScYN24cAwcO\nxHjXi33q1CkSExMZPny4aczNzY0BAwawZcsWa4chhBBCCCGqigEDIDHR3lFYx6xZ0KAB+PiYP37f\nfWrz++HDFRvX3U6fhgsXwN/fKre7efNmue9h1ZLAM2fO5OTJk6aZj7uXbl26dAmAunXrFrimTp06\nXLhwoch73unKKSqOvOb2Ia+7fcjrbh/yutuHvO72Ia978ZyvXKHD/v3sPXMGh6NHAchzdy/3fe3x\numtycuj4/vuc/PBD0ot5foPAQFI3bCDVThvNa8+di0fv3iTs2VPme+Tm5rJ7926WLVvG+vXrOX/+\nfLlislpScuTIEV5//XViY2NxdHQE1JItowVTUxqp3SyEEEII8bfkER9PWqdOoNHQ5P/9PzJatSIx\nLMzeYZVJzZUryWrYkPROnYo978ITT1RQROY53rxJ0tChZbr2+PHjLF++nBUrVnD58mWrxWS1pCQu\nLo6rV6/SoUMH01hubi5//PEHP/zwA3/++ScAiYmJNGrUyHROYmIi9erVK/K+fn5+1gpRlODOJwry\nmlcsed3tQ153+5DX3T7kdbcPed0tNHs2PPCAep3+/W+YPJnGn30GDmXbZWC31z0vD3Q6mDGj8v+Z\nlzK+CxcuEBkZicFgYN++fabxZs2aodVq0Wq15Q7JaklJaGgovXr1Mv3aaDQyefJk2rRpw7Rp02jd\nujX16tVj1apV9OjRA4DMzExiY2P57LPPrBWGEEIIIYSoSuLi4P331f/37Qvu7rBuHZTxk3y7uXIF\nBg6E+++3dyRWkZqaSnR0NHq9nrVr15pWP/n4+DBhwgS0Wi39+vUzrXhKSUkp1/OslpR4e3vj7e1d\nYKxatWrUqFGD9u3bA/Diiy/y0Ucf0bZtW1q3bs0HH3yAl5cXYVV0ik4IIYQQQpTDrVuwfz/c+WBb\no4Gnn4Zvv616SUnduvD99/aOolxycnJYvXo1BoOB6OhoMjIyAHB2dmbkyJHodDqCgoJwdXW1+rOt\nutH9rzQaTYH9Iq+++ioZGRk8++yzJCUl4e/vz6pVq/Dw8LBlGEIIIYQQojJydlZVoDw988fCw2Ha\nNDh3Du5a8i9sw2g0snv3bvR6PVFRUQX2iQQEBKDVahk3bhw1a9a0aRw2TUrWr19faOztt9/m7bff\ntuVjhRBCCCFEVeHlVfjXn34KVigzW+l9+y2EhkL9+hX+6NOnTxMREYFer+fwXeWJ27Rpg06nIyws\njBYtWlRYPDZNSoQQQgghhCi1xx6zdwQVY+NGcHODRx+tkMclf/89886dw/DHH2zatMk0Xrt2bSZO\nnIhOp8PPz88ulXElKRFCCCGEEKKs0tIKLj8rjcBAWLnSpklJdnY2y5cvR6/XE7NwIdm3N6y7ubkR\nEhKCVqtl+PDhODs72ywGS0hSIoQQQgghRFns3QuTJsHBg2qTfmkNHw6vvAK5uXC7z581GI1G4uLi\nMBgMzJkzh+vXrwOgAYYMGYJOp2PMmDFUr17das8sL0lKhBBCCCFExbt6FapVU19V1ccfw+OPly0h\nAbWRv3592LkTevcudzjHjh3DYDBgMBg4efKkabxjx47omjYlzNubRhER5X6OLUhSIoQQQgghKt6H\nH6oyuq+9Vvx5GRmqd0llc+QIrF8PP/9cvvvcWcJVxqTk6tWrzJkzB71ez7Zt20zj9evXJzw8HK1W\nS5cuXWDQIHjqqfLFakOSlAghhBBCiIoXFweffFL8OUlJ0KEDHDsGla2FxCefwHPPlX0/yR1PPw1Z\nWaW6JCMjg5iYGAwGA8uXLycnJwcADw8Pxo4di06nY/DgwTjeWRJ2/Trs3l2pGztKUiKEEEIIISpW\nZibEx4OfX/Hn1agBPXtCVFTlqsh15gwsXgzHj5f/Xq1aWXRaXl4emzZtQq/XM3/+fG7cuAGAo6Mj\nI0aMQKvVMnr0aPP9/zw91axOZZxxuk2SEiGEEEIIUbF274a2bS2b/XjmGZg6FaZMKfveDWu7dQu+\n+kolTTZ24MABDAYDERERnD171jTeo0cPtFotkyZNom7dusXfxMUFevSwcaTlI0mJEEIIIYSoWHFx\n0LevZecOGwbPPgvbt1tlM7hVtGypvmzk4sWLREVFYTAY2LNnj2m8SZMmaLVatFot7dq1s9nz7UGS\nEiGEEEIIUbHy8mDoUMvOdXBQG7S//bbyJCU2kJaWxqJFi9Dr9axZs4a8vDwAvL29GTduHDqdjoCA\nABwcHOwcqW1IUiKEEEIIISrWK6+U7vzJk+H9920Tix3l5OSwdu1aDAYD0dHRpKenA+Ds7MyoUaPQ\n6XQEBwfj5uZm50htT5ISIYQQQghRufn6wvTp9o7CKoxGI3v37kWv1xMVFcWlS5dMx/o0a4bu1VcZ\nP348vr6+1ngYJCdXyN6X8pKkRAghhBBCiJKkp8OVK9CsWZkuP3PmDJGRkej1eg4ePGgab9WqFTqd\njvCaNWm5bJkqEWwtBw5ASIh1qoTZmCQlQgghhBBClGTmTNi8GebNs/iSlJQU5s+fj8FgYOPGjRiN\nRgB8fX2ZOHEiOp2OXr16odFoVE+WadNUuWRrLddasgSCgqxzLxuTpEQIIYQQQojiZGXBZ5+p3iQl\nyM7OZuXKlej1epYsWULW7caIrq6ujB49Gq1WS2BgIC4uLgUvrFEDOnaE2FjLiwCUJCYG3nvPOvey\nMUlKhBBCCCFExcjIgNmz1cb18sjLU1W5KoperxKGInp9GI1Gtm3bhsFgYPbs2Vy7ds10bNCgQeh0\nOsaOHYu3t3fxzxk+HFautE5SkpgIhw7BwIHlv1cFkKRECCGEEEJUjJ07VWnf8iQl//2vesNdUdW4\ncnLgP/+BX34pdOjEiRMYDAYMBgPH79q30b59e3Q6HWFhYTRp0sTyZz3wgJqRsYalS1WS85cZmdxc\ntQrtk5h51HZtwq8fVI4yy5KUCCGEEEKIihEXB336lO8eQ4fCoEHw5puF3nDbxPz5UK8e9O8PwLVr\n15g7dy56vZ64uDjTaXXr1iUsLAydTkfXrl3VPpHS8vdXz7OGzEyYNAlQq8/WroWFC9U2kytXgP7H\ncOz4KT/e2oaLs/17n0hSIoQQQgghKkZcHEyYUL57tG0L7durd9gTJ1onruL07k1mixb8vmABBoOB\nZcuWcevWLQCqVavGmDFj0Ol0DBkyBCenyvPWOlX3DMuXQ/QkNWmSmvqXE+L+j9zuM3lrgZ7/THzY\nLjHerfK8ckIIIYQQ4t5lNKqkxBr9Rp55BmbMsGlSkpeXR2xsLHq9nnnz5pGSkgKAg4MDw4cPR6fT\nERISgqenp81iKK2rV9Xe9oULYfVqNUOCUybkuAJ/mbnJcYNVn/Ft9Zf4IC8cJwf7pgWSlAghhBBC\nCNtLSFCb00uzx6Ioo0fDP/8Jf/6pNqBb0aFDhzAYDERERHD69GnTeLdu3dDpdEycOJH69etb9Znl\ncfYsLFqkEpFNm1QNAMUI7RfAsFdg9adwcJzpGm9vGDkSQkPH0LFvL7snJCBJiRBCCCGEqAjOzvDJ\nJ1CWvRbm7vXqq3DypFWSksTERKKiojAYDOzatcs03rhxY8LDw9FqtXTo0KHcz7GWw4chOlp97dhh\n5oR6e+GBF6HZRvXr4a9QJ3kkoaPcGTNGbclR23E0QOMKi7s4kpQIIYQQQgjba9QIdDrr3e/FF8t1\neXp6OosXL0av17N69Wpyc3MBqO7uzrhx49BOnsyAAQNwqMjSw3ecOAHnzpnK+RqNsGtXfiJy6FAR\n17mkwvCXocdM0Bjzx31O82zE57w16A3bx15GkpQIIYQQQoi/hdzcXNatW4fBYGDhwoWkpaUB4OTk\nxKjgYHTp6Yy8ehX3Dz9USZS9HD9OznsfEfvhRqKj1fKsM2csuC7XFZdW68i+OyEBHDWOZObetE2s\nViJJiRBCCCGEuKft27cPvV5PZGQkFy9eNI337t0bnU7H+P79qf3449C0Kfz+O3h42CXOzELine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f63a3c7d710>"
|
||||
"<matplotlib.figure.Figure at 0x7f22bc6d81d0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -586,7 +586,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f63a3ca4780>"
|
||||
"<matplotlib.figure.Figure at 0x7f22bc7579e8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
+81
-82
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:ea9ba1062dc60729d48568820c87376591663e20618d16c4b408d668f2c2c117"
|
||||
"signature": "sha256:3bf6f83bd5d4f30e965f9b44f9a46ec997706fb078e51255450c6f0a00333628"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -259,7 +259,7 @@
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f93b63326a0>"
|
||||
"<IPython.core.display.HTML at 0x7fbb3c6be438>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -279,11 +279,11 @@
|
||||
"source": [
|
||||
"**author's note: this chapter is in heavy development - read it if you want, but there are bugs in the sw, a lot of stuff if being revised, text may not match the plots, etc**\n",
|
||||
"\n",
|
||||
"So far we have considered the problem of tracking objects that are well behaved in relation to our process model. For example, we can use a constant velocity model track an object moving in a straight line. So long as the object moves in a straight line at a reasonably constant speed, or varies it's track and/or velocity very slowly this filter will perform very well. Suppose instead that we are trying to track a manuevering target, by which I mean an object with control inputs, such as a car along a road, an aircraft in flight, and so on. In these situations the filters perform quite poorly. Alternatively, consider a situation such as tracking a sailboat in the ocean. Even if we model the control inputs we have no way to model the wind or the ocean currents. \n",
|
||||
"So far we have considered the problem of tracking objects that are well behaved in relation to our process model. For example, we can use a constant velocity model track an object moving in a straight line. So long as the object moves in a straight line at a reasonably constant speed, or varies it's track and/or velocity very slowly this filter will perform very well. Suppose instead that we are trying to track a maneuvering target, by which I mean an object with control inputs, such as a car along a road, an aircraft in flight, and so on. In these situations the filters perform quite poorly. Alternatively, consider a situation such as tracking a sailboat in the ocean. Even if we model the control inputs we have no way to model the wind or the ocean currents. \n",
|
||||
"\n",
|
||||
"A first order approach to this problem is just to make the process noise $\\mathbf{Q}$ larger to account for the unpredictability of the system dynamics. While this can *work* in the sense of providing a non-diverging filter, the result is typically far from optimal. The larger $\\mathbf{Q}$ results in the filter giving more emphasis to the noise in the measurements. We will see an example of this shortly.\n",
|
||||
"\n",
|
||||
"So in this chapter we will discuss the concept of an *adaptive filter*. This means about what it sounds like. The filter will *adapt* itself when it detects dynamics that the process model cannot account for. I will start with an example of the problem, and then discuss and implement various adaptive filters.\n"
|
||||
"So in this chapter we will discuss the concept of an *adaptive filter*. This means about what it sounds like. The filter will *adapt* itself when it detects dynamics that the process model cannot account for. I will start with an example of the problem, and then discuss and implement various adaptive filters."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -291,14 +291,14 @@
|
||||
"level": 2,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Manuevering Targets"
|
||||
"Maneuvering Targets"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"So let's begin by writing a simulation of a manuevering target. We are not interested in modeling anything with high fidelity, nor do we really care about 3 dimensions, so I will just implement a simple 2D model that you can provide steering inputs into. You can provide a new speed and/or direction, and it will modify its state to match."
|
||||
"So let's begin by writing a simulation of a maneuvering target. We are not interested in modeling anything with high fidelity, nor do we really care about 3 dimensions, so I will just implement a simple 2D model that you can provide steering inputs into. You can provide a new speed and/or direction, and it will modify its state to match."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -310,7 +310,7 @@
|
||||
"def angle_between(x,y):\n",
|
||||
" return min(y-x, y-x+360, y-x-360, key=abs)\n",
|
||||
"\n",
|
||||
"class ManueveringTarget(object): \n",
|
||||
"class ManeuveringTarget(object): \n",
|
||||
" def __init__(self, x0, y0, v0, heading):\n",
|
||||
" self.x = x0\n",
|
||||
" self.y = y0\n",
|
||||
@@ -356,8 +356,7 @@
|
||||
" if abs(self.vel_delta) > 0:\n",
|
||||
" self.vel_step = steps\n",
|
||||
" else:\n",
|
||||
" self.vel_step = 0\n",
|
||||
" "
|
||||
" self.vel_step = 0 "
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
@@ -407,7 +406,7 @@
|
||||
"noise_factor = 2.\n",
|
||||
"\n",
|
||||
"def generate_data(steady_count, noise_factor):\n",
|
||||
" t = ManueveringTarget(x0=0, y0=0, v0=0.3, heading=0)\n",
|
||||
" t = ManeuveringTarget(x0=0, y0=0, v0=0.3, heading=0)\n",
|
||||
" xs = []\n",
|
||||
" ys = []\n",
|
||||
"\n",
|
||||
@@ -445,7 +444,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAykAAAGxCAYAAABmwPltAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlUVeXi//HPASWGDDUDFBywcMhSSzIlc0osFVHSTMtS\ns7SbmkNmmQO2Ml3eyqummfU1NcTU0sqBCAsnAhS92tU0E+cJxAkFxQHO74975SfhLPBsDu/XWiwP\ne+9z+HDWs8AP+3n2ttntdrsAAAAAwCKcTAcAAAAAgCtRUgAAAABYCiUFAAAAgKVQUgAAAABYCiUF\nAAAAgKVQUgAAAABYCiUFAIAbWLVqlZycnNSrVy/TUQCgRKCkAEAJdOLECc2cOVOdOnVSjRo15OHh\nIU9PTzVq1EhTpkzRpUuX8j3n8n/Ur/zw8PBQxYoV1aRJEw0aNEgJCQk3neFqr3ejj/379xfk23DL\nbDab0a8PACVFKdMBAABFb+HChXrjjTfk7e2tFi1a6LnnnlNaWpqWLFmiQYMG6bvvvtMvv/wiFxeX\nfM+tVq2aevbsKUm6cOGCTpw4oU2bNunTTz/VlClT1KZNG82ePVv33XffdTP4+/trzJgxebbZ7Xa9\n//77stlsCg8Pz/ecsmXL3vb3DAAoPmzccR4ASp6VK1cqIyNDISEhec4OnDlzRs2aNdPmzZv1ySef\naPDgwbn7Vq1apZYtW6p58+aKjY3N95rJycnq3bu31q5dq0ceeUQJCQlXLTk34uTkJJvNpuzs7Nv7\n5grB5e+9Z8+e+uqrr0zHAQCHx3QvACiBWrRoofbt2+ebvlSmTBm9/fbbkv77H/Nb8cADD+inn35S\nzZo1tWnTJn3++ecFFVfSf8uLv7+/Tp8+rUGDBqlq1aoqXbq0Jk+eLEn666+/9O677yowMFD33Xef\nXF1dVa1aNb322ms6cODANV93xYoVCg0Nlbe3t1xdXVW5cmWFhIRo2bJlN8xkt9v19ttvy8nJSSEh\nIcrMzCyw7xcASjKmewEA8ihVqlSef2+Fu7u73n77bb366quKjIzUm2++WaDZzp8/rxYtWuj06dNq\n166d3N3dVblyZUnS4sWLNWPGDLVs2VJNmjSRi4uLtm7dqq+++kpLly7Vxo0b5evrm+f1wsPD9cEH\nH+juu+9Wx44dVaVKFR05ckSJiYn66quvFBISct0sPXr00MKFC/Xqq6/q888/l5MTf/sDgIJASQEA\n5DFz5kxJ0jPPPHNbz2/evLkkadOmTcrJySnQ/7inpKTo4Ycf1m+//SZXV9c8+15++WW99dZbKl26\ndJ7tK1asUJs2bTR27FhNnz49d3tMTIw++OADVatWTWvXrs1XYA4dOnTNHCdPnlTHjh21du1avf/+\n+xo1alQBfHcAgMsoKQCAXJMmTVJMTIweffRRvfLKK7f1GpUqVZIkZWdn68SJE6pQoUKB5bPZbPr4\n44/zFZQrv+7fBQcH68EHH1RMTEye7Z9++qkk6aOPPspXUCRddZsk7du3T23btlVycrJmzZqlHj16\n3Oq3AQC4AUoKAECSFBkZqbfeeku+vr5avHixnJ2db+t1rrweS0FfstfV1VUPP/zwNffPnTtXs2fP\n1u+//65Tp07lWXx/11135Tk2MTFRNptNbdq0uemv/+eff6px48Y6e/asli9frlatWt36NwEAuCFK\nCgBAX3/9tXr16qXKlSsrNjZWVapUue3XOnz4sCTJ2dlZ5cuXL6iIkiQvL69r7hs8eLAmT56sSpUq\nqU2bNvL19ZWbm5skadasWfnusXLq1Cndc889cnd3v+mv/9dff+nEiROqW7euGjRocHvfBADghigp\nAFDCffHFF3r99ddVvXr1Oy4oknIvTxwYGFjgZ1Ku9XpHjx7VlClT9PDDDys+Pl4eHh559kdGRuZ7\nTtmyZXXixAllZmbmO/5aQkNDVbNmTQ0fPlwtWrTQihUrbng/GADAreMyJABQgk2ePFmvv/66atSo\noTVr1txxQcnMzNTHH38sSerevXtBRLwpu3fvlt1uV+vWrfMVjoMHD2r37t35ntO4cWPZ7Xb99NNP\nt/S13nnnHU2ePFlbtmxRs2bNdOTIkTvKDgDIj5ICACXU+PHjNXjwYNWpU0dr1qy55sLzm5WcnKw2\nbdpo586deuyxx9SnT58CSnpj/v7+kqS1a9cqJycnd3tGRoZee+21q94YcsCAAZKkt99+WwcPHsy3\n/3pX9xowYIBmzJihv/76S02bNr3ufVgAALeO6V4AUALNmTNHI0aMkM1mU/PmzfXZZ5/lO6ZcuXIa\nOHBgvu179uzRmDFjJEkXL17UiRMntHnzZq1fv16SFBISolmzZt3WfVZul7e3t7p27ar58+erfv36\nCg4OVnp6ulasWCF3d3fVr19fmzdvzvOc4OBgjRo1Sh988IEefPBBdejQQVWqVNHRo0eVmJioBx54\n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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9399e84fd0>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1ffb5f28>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -477,9 +476,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAzQAAAGxCAYAAAC0kPM1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdcVuX/x/HXfYOAIODEPXBlau6BhlsiNfdKc2Vlppma\nZfqzXKGmltuyLJVMM8vcpmROxD0z/ZLmXpgLFyDC+f1xAkGGOABveT8fDx73zTnXOedzuF1vr3Nd\nl8UwDAMREREREREbZE3vAkRERERERB6VAo2IiIiIiNgsBRoREREREbFZCjQiIiIiImKzFGhERERE\nRMRmKdCIiIiIiIjNUqAREXnKWa1WPD0907sMERGRp5ICjYhkSFar9aG+/P3907Vei8WSrtd/VDE/\nPzs7O44dO5ZkOx8fn9i2X3/9dRpWKGnhxIkTWK1W6tWrl96liMgzyD69CxARSQ/Dhg1LEBJmz57N\nyZMn6datG0WKFIm3r2LFimlY3bPF3t6eu3fv8u233zJ69OgE+48dO8Yff/wR285Ww5skLeYz1Wcr\nIqlBgUZEMqRhw4Yl2LZu3brYQFO7du10qOrZlCNHDjw9PZkzZw6ffvopdnZ28fZ/9913ADRt2pTF\nixenR4mSygzDSO8SROQZpkfOREQeoG7dulitVo4fP87kyZMpW7YsmTNnpmXLlgBcv36d8ePHU79+\nfQoUKICjoyMeHh40a9aMrVu3Jnne4OBg3njjDTw9PXFycsLDw4MXX3yRiRMnpqiun3/+GScnJ0qU\nKME///yTZLvw8HCyZctGzpw5iYyMTLTNBx98gNVq5fvvv4/dtnnzZpo1a0bBggVxcnIid+7cVK1a\nlQ8++CBF9cWwWCy89dZbXLhwgeXLl8fbd/fuXWbPnk316tUpV65ckucIDQ1l6NChlC1bFhcXF9zc\n3KhVqxa//PJLgraRkZFMmzaNxo0bU7hwYZycnMiePTsNGzZk5cqViZ7/wIEDdOzYEU9PTzJnzkyu\nXLkoX748vXv35vr167Hthg8fjtVqZdOmTYmeJ7HHqmKO8ff3Z9WqVdSuXRs3NzeyZ88e2yY8PJzP\nP/+cypUrkyVLFrJkyULVqlUTffwu7uNbFy9epHv37uTOnZssWbLg7e1NUFAQADdu3KBfv34UKlQI\nJycnypYty6JFi5L8GS9atIiGDRuSPXt2nJycKFmyJIMHD+bGjRsJ2hYpUgSr1UpUVBSjR4+mRIkS\nODk5UahQIQYNGhTv19mcOXMoWrQoABs2bIj3KOeIESNi2y1fvpyGDRuSL18+nJycyJcvH97e3owZ\nMybJmkVEQIFGRCTF+vTpw4gRI6hUqRL9+vWjatWqABw6dIiPP/4Ye3t7mjZtyoABA/Dx8WH9+vXU\nrl2b3377LcG5Vq5cScWKFZkzZw6lS5dmwIABtGvXDnt7e0aNGvXAWiZOnEj79u2pUKECW7dupVix\nYkm2dXJy4tVXX+XKlSusWLEiwf6oqCjmzZtHlixZaNOmDQCrV6+mbt26BAYG0qBBAz744APatGlD\n1qxZmTp1KtHR0Sn9sQHQvn17XF1dmTlzZoKfw4ULF3jrrbeS/F/8s2fPUrVqVfz8/MiZMyc9e/ak\nQ4cOHD9+nHbt2sX7RzHA5cuX6devH7du3cLX15cBAwbQvHlz9u3bR9OmTfnmm2/itT9w4ADVq1dn\n2bJlVK9enffff5+OHTtSqFAh/P39uXTp0kPda1KPVf388880b96cHDly0Lt3b1q0aAGYwaNOnToM\nHDgQi8VC9+7d6d69O6Ghobzzzju8/vrriZ7v2rVrvPjiixw6dIjOnTvTpEkTtm7dio+PD/v27aNO\nnTqsXbuWVq1a0aFDB44ePUq7du3Yvn17gnP16tWLtm3bcuTIEVq3bs17771H7ty5GTt2LN7e3ty8\neTPRGjp06MC0adOoU6cOvXr1InPmzIwbN4633347tk3FihXp27cvYAah4cOHx37FhL9vvvmG5s2b\nc+jQIV555RU++OADmjVrhsVi0ZgqEXkwQ0REDMMwjDp16hgWi8XYuHFjotsLFChgnDx5MsFxoaGh\nxuXLlxNsP3PmjJEvXz6jVKlS8bb/+++/hpubm+Hg4GCsX78+0ePislgshqenp2EYhhEVFWX07dvX\nsFgsRrNmzYywsLAU3dv27dsNi8ViNG/ePMG+lStXGhaLxXj99ddjt7Vq1cqwWCzG/v37E7S/cuVK\niq4ZU3vevHkNwzCMnj17GnZ2dsapU6di9zdp0sRwc3Mzbt26ZQwbNsywWCzG119/He8cDRo0MOzs\n7IwFCxbE2379+nWjUqVKhtVqjVdnRESEcfbs2QS1hIaGGmXLljWyZ88e7+f2/vvvGxaLxVi6dGmC\nY27evGlERETEfh9T4/2/RuLeb7169eJtiznGzs7OWLNmTYJj3njjDcNisRjjxo2Ltz0iIsJo0qSJ\nYbFYjOXLl8duP378uGGxWAyLxWL07ds33jGjR482LBaL4e7ubrRp08aIjIyM3Td//nzDYrEYLVu2\njHfM3LlzDYvFYrRu3doIDw+Pt8/Pz8+wWCzGgAED4m0vXLiwYbFYjCpVqhhXr16N3X7r1i2jePHi\nhp2dnXHhwoXY7SdOnEj0ZxOjUqVKhpOTk3Hx4sUE+xL7vSUiEpd6aEREUmjgwIEUKlQowfb7Hx+K\nkT9/flq3bk1wcDBnzpyJ3e7v78+NGzfo0aMHdevWTfS4xERERNCuXTumTJlCz549WbJkCU5OTimq\nvVq1ajz//PP89ttvCXoc5syZA0C3bt0SHJfY+bNly5aia97vrbfeIjo6mlmzZgFw5swZVq9eTYcO\nHXB2dk70mD///JN169bRokUL2rdvH2+fq6srw4cPxzAM5s2bF7vdwcGBfPnyJTiXm5sbr7/+Olev\nXmXnzp0J9id2ry4uLjg4ODzUfSalefPmvPTSS/G2XblyBX9/fypVqsSHH34Yb5+Dg0Ps41Zz585N\ncL4sWbIkmGShc+fOgNnr88UXX2Bvf2+obPv27bG3t2f//v3xjpk4cSL29vZ8++23ODo6xts3aNAg\ncuTIEe/nG9fYsWPJmjVr7PfOzs689tprREdHs3v37tjtRgrG0NjZ2cWrN0Ziv7dEROLSpAAiIilU\nrVq1JPdt2bKFyZMns3XrVv7991/u3LkTb//Zs2cpUKAAANu2bQOgUaNGKb727du3adCgAUFBQYwe\nPZpBgwY9dP1du3Zl0KBBzJs3L/YRoKtXr7Js2TKKFi0abyKETp06sXjxYqpXr067du2oW7cuNWrU\nSDD728OoVKkSFStWZNasWXzyySd89913REdH89ZbbyV5zJYtWwBzDM3w4cMT7P/3338BOHz4cLzt\nf/31F+PHj2fTpk1cuHCB8PDwePvPnTsX+/7VV19lypQptGjRgtatW1O/fn1q1KhBqVKlHvVWE5XY\nr58dO3YQFRWFxWJJ9P5ixqLcf38AJUqUSBAE8+TJA0DWrFkThG+r1YqHh0e8cH379m327t1Ljhw5\nmDRpUqJ1Ozg4cP78ea5cuRIvXFgsFqpUqZKgfcyv86tXryZ6vsR06tSJAQMGULp0adq3b0+tWrWo\nWbMmefPmTfE5RCTjUqAREUmhmH8s3m/x4sW0adMGZ2dnfHx8KFasGC4uLlitVtavX8/GjRuJiIiI\nbX/t2jUg6Z6YxNy4cYM9e/bg6uqKr6/vI9XfuXNnhgwZgr+/f2yg+emnn7hz5w5dunSJ17Zly5as\nXLmSCRMm4O/vHzv2pWzZsgwfPpxWrVo9Ug1vvfUWvXr1YuXKlcyaNYsKFSpQuXLlJNtfvnwZgD/+\n+IM//vgj0TYWi4Vbt27Ffr9t2zbq169PdHQ0DRo0oEWLFri5uWG1Wtm7dy9Lly6N93lUrVqVwMBA\nRo8ezeLFi2N7I4oUKcJHH30UbzzI40js10/M/e3evTtej0Zy9xfD3d09wbaYHo7E9sXsv3v3buz3\nMaHj8uXLjBw5MsnaY2q4v7fEzc0tyRqioqKSPN/9+vfvj4eHB1999RXTp09nypQpAHh5eTFmzBjq\n1KmT4nOJSMajR85ERFIoqcHen3zyCU5OTuzatYtff/2V8ePHM3z4cIYOHUrJkiUTtI95RCfu/5Q/\nSO7cuVm5ciXR0dHUr18/0YHdD5I3b15eeukl9u3bx59//gmYj5tZrVa6du2aoH2jRo34/fffCQ0N\nZePGjQwaNIiTJ0/Stm3bJGf5epDXXnsNZ2dnevfuzenTp+nRo0ey7WP+YT5hwgSio6MT/YqKiooX\ndvz8/AgPDycgICA2lMV8Hkn1slWvXp2lS5dy7do1tm3bxqeffkpYWBjvvPNOvMe9rFbzr824oSBG\nTFBNSmK/fmLu77333kv2/pKbxe5xxFy/XLlySV4/poaCBQumSg0xXnvtNQIDA7l69Spr1qyhd+/e\n7Nmzh0aNGnHkyJFUvbaI2DYFGhGRx3T06FFKly7Nc889F297dHQ0gYGBCdrXqFEDINHZz5JTr149\n1qxZg2EY+Pj4sHnz5oeuNWaczJw5cwgODmbHjh3Url2bwoULJ3mMo6MjtWrVYvTo0Xz++ecYhsGS\nJUse+tpgjntp3749Z86cwcXFhddeey3Z9jVr1gR4qAB19OhRcuTIkehaQhs3bkz2WHt7e6pVq8aQ\nIUNip7COe68x44dOnTqV4NjExuU8iJeXV7LTQKe2LFmyULZsWQ4fPhzbW5QaYtYeSkmvTZYsWfDx\n8WHq1KkMGDCA8PDwh/69IiIZiwKNiEgKJLfCuaenJ3///Tfnz5+P3WYYBsOHD+fw4cMJju3atStu\nbm588803bNiwIcH5kuu5qVmzJmvXrsXBwYFGjRqxdu3ah7qP5s2bky1bNubNmxe7oGVikwLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9399ba8ac8>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1ffcce80>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -491,7 +490,7 @@
|
||||
"source": [
|
||||
"This may appear to be an extreme amount of noise, but it will allow us to see the effect of various design choices more easily.\n",
|
||||
"\n",
|
||||
"Now we can implement a Kalman filter to track this object. First let's implement a constant velocity filter. But let's make a simplification first. The *x* and *y* coordinates are independent, so we can track each independently. In the remainder of this chapter we will only track the *x* coordinate to keep the code and matrixes as small as possible. "
|
||||
"Now we can implement a Kalman filter to track this object. First let's implement a constant velocity filter. But let's make a simplification first. The *x* and *y* coordinates are independent, so we can track each independently. In the remainder of this chapter we will only track the *x* coordinate to keep the code and matrices as small as possible. "
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -577,9 +576,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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\nJk6ciHnz5sHOzg62trb48ccfYWRkBC8vL5GTExERERGRsoheXFJSUjB06FAkJyfDxMQETZs2xb59\n++Ds7AwAmD59OrKzs+Hn54e0tDS0adMGBw4cgKGhocjJiYiIiIhIWUQvLuvXr3/nMQEBASV66jIR\nEREREVVMKrE5n4iIiIiI6G1YXIiIiIiISOWxuBARERERkcpjcSEiIiIiIpXH4kJERERERCqPxYWI\niIiIiFQeiwsREREREak8FhciIiIiIlJ5LC5ERERERKTyWFyIiIiIiEjlsbgQEREREZHKY3EhIiIi\nIiKVx+JCRERERESlSi6Xl/p7srgQEREREVGpSUhIgL29PU6cOFGq78viQkREREREpSImJgYODg74\n66+/MGvWLAiCUGrvzeJCREREREQfLTAwEF26dMHTp0/Ro0cPREZGQiKRlNr7s7gQEREREdEHk8lk\nmD59OoYPH478/HxMmDABu3btgomJSal+jlapvhsREREREamNly9fYsiQIYiKioKWlhZWrFiBzz//\nvEw+i8WFiIiIiIje2/379+Hq6orLly/D1NQU27dvR5cuXcrs81hciIiIiIjovZw8eRLu7u5ITU1F\n/fr1ERUVBVtb2zL9TO5xISIiIiKiEtuwYQO6dOmC1NRUODs74/Tp02VeWgAWFyIiIiIiKgG5XA5/\nf3/4+PggLy8P48ePx549e1C5cmWlfD6XihERERER0VtlZmZi6NChiIiIgKamJn755ReMGzdOqRlY\nXIiIiIiI6I0SExPh6uqKixcvonLlyti2bRu6deum9BwsLkREREREVKzTp0+jb9++SElJga2tLaKi\nolC/fn1RsnCPCxERERERKdi8eTOcnJyQkpKCrl274vTp06KVFoDFhYiIiIiIXiOXyzFr1iwMGTIE\nubm5GDt2LPbu3YsqVaqImotLxYiIiIiICACQlZUFb29vhIWFQUNDA8uXL4efnx8kEonY0VhciIiI\niIgIePjwIVxdXXH+/HmYmJggNDQU3bt3FztWIRYXIiIiIiI1FxcXBzc3NyQnJ6Nu3brYtWsX7Ozs\nxI5VBPe4EBERERGpsZCQEHTq1AnJyclwcnLCmTNnVK60ACwuRERERERqSS6XIyAgAIMHD0ZOTg5G\njx6N/fv3w8zMTOxoxeJSMSIiIiIiNfPq1Sv4+vpi27Zt0NDQwJIlS/DVV1+pxCb8N2FxISLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f939996b198>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fdb8c88>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -589,7 +588,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We can see from the plot that the Kalman filter was unable to track the change in heading. Recall from the **g-h Filter** chapter that this is because the filter is not modelling acceleration, hence it will always lag the input. The filter will eventually catch up with the signal if the signal enters a steady state. Let's look at that."
|
||||
"We can see from the plot that the Kalman filter was unable to track the change in heading. Recall from the **g-h Filter** chapter that this is because the filter is not modeling acceleration, hence it will always lag the input. The filter will eventually catch up with the signal if the signal enters a steady state. Let's look at that."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -620,9 +619,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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\nWUQknb344osYhpHqErWpqVWrFiaTiU2bNj30N/xA8jtpHvabbbPZzHPPPUdgYCArVqwASL4i8yC+\nvr4ArFmzJtX6ve33xj2uZcuWER0dzTPPPEPPnj1T/ePj40N0dDQ//vgjkLZzlZaxtWvXvu+ywmmR\nXvP807Fjx4C7twf+++rZtm3buH37ttU+j/oz8k/3vp9r1661qt25c4fNmzdjMpmoXr36I88pIpIR\nFGBERNLZBx98gKOjIwMHDuTw4cNW9cTExBQfEgsUKMAbb7xBdHQ0AwYMsHr5YFxcXIrnCO4trRsV\nFWU1965du1K9teveb88f5Rmbtm3b4uHhweLFi9m4cWOK2rx589i5cyeVKlXi+eeff+hcD3LvnShB\nQUHMmjUr1T9jx44FYNasWUDazlVax7711lvs2bOHUaNGpfrB/+zZs6l+P/8pveb5p3vP//w7WFy4\ncIG+ffumus+Dfkbu580338TR0ZEZM2ZY9TdhwgTOnTvHSy+99NgvKxURSS+6hUxEchTDMBg1atR9\n31DesmXLJ/5gXq5cOebNm0f37t2pVKkSLVq0wNvbm6SkJM6cOcPmzZtJSEjg8uXLyft88sknHDhw\ngNmzZ7N+/XqaN2+Os7Mzp06dYtWqVcybN482bdoA0KxZMxYvXsy7777Lq6++ipubG/ny5aNv374s\nWLCAmTNnUqdOHcqWLYuHhwdRUVH88MMP2NvbM3jw4If27+Liwrx582jfvj1NmjShffv2lC5dmn37\n9vHzzz+TL18+FixY8ETn6N7XlT9/fjp06HDfcW3atKFgwYKsWrWKqKgoSpUqlaZzlZaxERERHD16\nlFGjRvH5559Tr149PD09iY6O5vDhw2zbto3p06fz7LPPPvBrS6957qlZsyZ16tTh+++/p06dOtSp\nU4eYmBhWrlyJj48PRYsWtfp5bty4MWazmdDQUC5dukThwoWBu7e25cmTJ9XjlCxZkvDwcN5//31q\n1KiR/BLTLVu2sGHDBkqUKMF//vOfR+pZRCRD2WTtMxERG7i3VPKDllH+9/tTHrSMspeXV6rLKN9z\n8OBBo2fPnkbp0qUNJycnI1++fEaFChWMHj16GMuXL7caHxsba0yYMMGoWrWq4eLiYuTOndsoX768\n8cEHHxhnz55NHmexWIyPP/7YeOaZZwxHR8cUPW7bts3o06ePUbVqVcPDw8NwdnY2ypYta3Line truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAzAAAAGxCAYAAAC9e1NPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd0FeX69vHv3ukJIUAooQcwEHpHei8qHhBRpKhARDiC\nJKEXwYTeAqQoCngEVEAFBUQFAemgSBMpgqAQQEioUtP3vH/4Jj/jDiWQZKdcn7VYB+eeeZ47kxzd\nV2bmGZNhGAYiIiIiIiI5gNnWDYiIiIiIiDwsBRgREREREckxFGBERERERCTHUIAREREREZEcQwFG\nRERERERyDAUYERERERHJMRRgRETu4+bNmwQGBlK+fHkcHBwwm81s374dgISEBCZMmEDFihVxdnbG\nbDazZMkSG3dsO1FRUfTp04cyZcpgZ2eH2Wzm7Nmztm4r05w5cwaz2Uzfvn1t3Uq6BQcHYzab2bZt\nm61bERFJNwUYEckzzGbzA/8kh5NkI0eOJDw8nHLlyjFmzBiCg4Px9vYGYPbs2UyYMAEPDw+GDx9O\ncHAwtWvXzvSvo2XLltkyHPTp04ePPvqIunXrMn78eIKDg/Hw8Hjo49esWZPyffj8888zsdOMZTKZ\nbN2CleSAcq9AbTKZUv6IiOQ09rZuQEQkK5lMJoKCgu5ZL1u2bKp//vrrr3F3d2fDhg3Y2dlZ1Uwm\nE9988w1FixbNlH7vJbt98IyPj2fjxo34+vqyatWqRxpj/vz5KX9fsGAB3bp1y6j28qx7/Zy8+eab\n9OjRg9KlS2dxRyIij08BRkTynLfffvuh971w4QLe3t5W4SW5BmR5eAEwDAPDMLJ83nuJiorCMAy8\nvLwe6fjIyEg2bNhAkyZNsFgsbNmyhd9//50KFSpkcKd5y71+Rjw9PfH09MzibkREMoZuIRMRSUPy\nbVrwf886mM1mWrVqRd++fTGbzZw5cwbDMFJq5cqVSzXGgQMH6N69OyVKlMDJyYkSJUrw6quv8vvv\nv6c5Z0xMDLNmzaJ+/fq4u7uTL18+fH19GTRoEOfOnQNIdZtbuXLl0pz7jz/+YMCAAfj4+ODq6kqh\nQoWoUqUKr732Wso4D+Pnn3+mW7duFCtWDCcnJ8qUKUO/fv04c+ZMqv28vb1TbqvbunVrSk/peTbk\ngw8+wGKx0LdvX/r27YthGCxcuPCe+z/MuXqUfWNjYwkJCaFu3brky5ePfPnyUb9+/VRXhx5GesZJ\n/vlq1aoVFy5cwM/Pj+LFi2Nvb8+aNWsA2L9/PwEBAdSsWRNPT09cXFyoWLEiQ4cO5fr166nGa9my\nJRMnTgRI+VlN/pN822HyLWb/vmUS/v4eduzYEU9PT5ydnalQoQJDhgzhypUrVvv26dMn5VmalStX\n0qBBA9zc3PD09KRHjx4pIV9EJCPpCoyISBr69u1Lq1atUp5xGTJkCPD3h3UPDw+8vb0JDQ3lxo0b\nBAcHA1CgQIGU45cuXUqfPn1wdnamU6dOlC5dmpMnT7J8+XLWrl3L1q1bqVmzZsr+169fp3Xr1hw6\ndIhKlSrx2muv4ezszO+//86yZcvo0KEDpUuXJigoiMWLFxMZGUlgYGDKnMn/e/HiRerXr8+tW7d4\n+umn6dq1K/Hx8URGRvLll1/Sq1evh7ptaN26dXTp0gXDMHj++eepUKEChw4d4sMPP2TVqlVs3rw5\npf8hQ4Zw5swZwsLC8Pb2pk+fPgDUqlXroc51YmIiH374IW5ubnTr1g3DMAgMDGTx4sVMnjwZe/vU\n/6l62HOV3n1v3bpF27Zt2bt3L3Xq1MHPzw+A9evX88Ybb/Djjz+yaNGiB349jzrO1atXady4MQUK\nFOCll17CYrGkXCVZuHAhq1evpmXLlrRv3x6LxcK+ffsIDQ1l3bp17N27l3z58gF//+yaTCa2bdvG\nc889l+r78KBnkj744AP69++Pm5sbL774IsWLF2fXrl2EhYWxatUqdu3aRcmSJa2OmzdvHl999RWd\nO3emVatW/Pjjj3z22WccOnSIn3/+GUdHxweeNxGRh2aIiOQRJpPJMJlMRnBwsBEUFGT1Jzg4OM1j\nypUrl+Z4ZcuWNcxms9X2kydPGk5OTsYTTzxhXLhwIVVt69athr29vVG3bt1U23v06GGYTCajf//+\nVuPFxMQY165dS/nnFi1aGCaTyYiMjLTaNzw83DCZTEZYWJhVLT4+3rh9+3aaX8s/3b592yhcuLBh\nb29vbN26NVXtf//7n2EymYzq1aun2n7mzBnDZDIZrVq1euD4/7Zq1SrDZDIZvXv3Ttn26quvGiaT\nyVixYoXV/uk5V+nZ97XXXjNMJpMxc+bMVPvFxcUZHTt2NEwmk7F27dqU7adPnzZMJpPRt2/fVPs/\n6jjJ5yApKcmq18jISMNisVhtT/5+TJ8+PdX2oKAgw2QyGUuWLLE65p/1bdu2pWw7e/as4ejoaLi7\nuxvHjh1Ltf/48eMNk8lkPPvss6m29+7d2zCZTIaHh4dx5MiRVLWePXsaJpPJ+Pzzz9PsQUTkUSnA\niEiekfwh8V5/0gojjxJghg4davUh9Z+6dOlimEymlA+J0dHRhtlsNooXL27cuXPngV/H/QJMRESE\nYTKZjPnz5z9wnHv55JNPDJPJZLz00ktp1uvWrWuYTCbjhx9+SNmW/CH8UQLMU089ZZhMplRhaevW\nrYbJZDLatWuXat/0nKv07Hv16tU0g2WyX375xTCZTEa3bt1StqUVYB5nHGdnZ+Py5cv37fPfLBaL\nkT9/fqNNmzaptj9KgJk8ebJhMpmMUaNGWe0fGxtrlChRwjCZTKlCeXKAGT9+vNUxW7ZsMUwmkzFi\nxIh0fU0iIg+iW8hEJE8xmUwkJSVl6hy7du0CYNu2bezbt8+qHh0dDcDx48epXLkye/fuxTAMmjZt\niqur62PN3alTJ8aOHcubb77J+vXrad++PY0aNaJGjRoPvXLZgQMHAGjdunWa9bZt23LgwAEOHjxI\nw4YNH6vf5If3y5UrR4sWLVK2t2jRgvLly/P9999z+vTplGd80nOu0rPvTz/9RFJSEiaTKeWWwH9K\nSEgA4Ndff820cby9vSlcuHCa4yYkJDB//nw+/fRTjh07xs2bN7FYLCn1P//88759PYz7fd+dnJxo\n2rQpK1as4ODBgxQvXjxVvV69elbHlCpVCsDqGR0RkcelACMiksGuXr0K/P2emHsxmUzcvn0bgL/+\n+gsgzWcL0qtMmTLs3buXCRMmsH79elavXg1AsWLFGDx4MKNHj05ZnOBebty4AXDPFcWStyf3/TgW\nLlyIYRj07t3bqta7d2+CgoJYuHAhU6dOTTXnw5yr9Oyb/D3bv38/+/fvT3Mfk8nEnTt3Mm2c+63g\n9tJLL7F69WoqVKhAly5d8PLywsnJCcMwCA0NJS4u7r59PYwHfd+TQ0vyfv/0z+e/kiU/u5TZvzAQ\nkbxHAUZEJIN5eHhgMpm4evVqmh/s/q1gwYJAxvwWHaBSpUosW7YMi8XC4cOH2bx5M++++y7jxo0j\nKSmJ8ePHP7B/+Htp5LRcvHgx1X6PKvnhffh7Vay0rlgALF68mIkTJ2Jvb5+uc5WefZO/Fn9/f0JD\nQx+m/Qwf515XyPbt28fq1atp164d69atSxVADcNgxowZj9zvPyX3fvHiRWrUqGFVz6jvu4jI49Iy\nyiIiGaxx48YYhpHmErVpadCgASaTiZ07dz7wN/xAyjtpHvSbbbPZTM2aNRkyZAjr1q0DSLkicz91\n69YFYPPmzWnWk7cn7/eo1q5dS1RUFE888QT9+vVL84+vry9RUVF89dVXQPrOVXr2bdiw4T2XFU6P\njBrnn06dOgX8fXvgv6+e7dmzh9jYWKtjHvZn5J+Sv59btmyxqsXFxbFr1y5MJhN16tR56DFFRDKD\nAoyISAZ78803cXR0ZNiwYZw4ccKqnpiYmOpDYuHChenRowdRUVEMHTrU6uWDMTExqZ4jSF5aNzIy\n0mrsAwcOpHlrV/Jvzx/mGZvnnnsOT09PVq5cyY4dO1LVFi9ezP79+6lWrRpPPvnkA8e6n+R3ogQF\nBbFgwYI0/0yePBmABQsWAOk7V+nd95VXXuHnn39mwoQJaX7wP3/+fJrfz3/KqHH+Kfn5n38Hi0uX\nLjFo0KA0j7nfz8i9vPzyyzg6OjJv3jyr/qZNm8aFCxd45plnHvllpSIiGUW3kIlInmIYBhMmTLjn\nG8qffvrpx/5gXrFiRRYvXkzfvn2pVq0aTz31FD4+PiQlJXHu3Dl27dpFQkIC165dSznmnXfe4ejR\noyxcuJBt27bRoUMHnJ2dOXPmDBs3bmTx4sV06tQJgPbt27Ny5Upef/11nn/+edzd3SlYsCCDBg3i\no48+Yv78+TRp0oQKFSrg6elJZGQka9aswd7enpEjRz6wf1dXVxYvXkzXrl1p27YtXbt2pVy5cvzy\nyy98++23FCxYkI8++uixzlHy11WoUCFefPHFe+7XqVMnihQpwsaNG4mMjKRs2bLpOlfp2TciIoKT\nJ08yYcIEPv74Y5o1a4aXlxdRUVGcOHGCPXv2MHfuXCpVqnTfry2jxklWv359mjRpwpdffkmTJk1o\n0qQJ0dHRrF+/Hl9fX0qUKGH189ymTRvMZjOhoaFcvXqVYsWKAX/f2pY/f/405ylTpgzh4eG88cYb\n1KtXL+Ulprt372b79u2ULl2a995776F6FhHJVDZZ+0xExAaSl0q+3zLK/35/yv2WUfb29k5zGeVk\nx44dM/r162eUK1fOcHJyMgoWLGhUqVLF8PPzM7755hur/e/evWtMmzbNqFWrluHq6mrky5fPqFy5\nsvHmm28a58+fT9nPYrEYb7/9tvHEE08Yjo6OqXrcs2ePMXDgQKNWrVqGp6en4ezsbFSoUMLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9399b9c198>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fec8e48>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -632,7 +631,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The underlying problem is that our process model is correct for the steady state sections, but incorrect for when the object is manuevering. We can try to account for this by increasing the size of Q, like so."
|
||||
"The underlying problem is that our process model is correct for the steady state sections, but incorrect for when the object is maneuvering. We can try to account for this by increasing the size of Q, like so."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -660,9 +659,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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\n+fr62qyolZbn/a70eGZk9OjRmjJlioKDgzVz5sw0P749uXPnlqQUnykCgIyGAgMADpKQkKAmTZpo\n69atqlixop599lnlzZtXbm5uMgxDH3zwgW7fvm133wIFCthsu/uv7vnz57e7j73tly9fliStXr1a\nq1evtrufyWRSbGzsfT9PoUKFJEmnT5++79wzZ85IkgoXLnzfuXczSErx/STt27dXzpw5NWvWLI0f\nP16urq5auXKlzp8/rx49esjb2ztpblqf9/QycuRIvf/++6pcubJWrVqV4tUUe+7Ovft34t/ubs+R\nI4fNmNVqlWT7rBQAZFQUGABwkIULF2rr1q168cUX9eWXXyYbO3fu3D0fnrf3y6W/v78kKTo62u4+\n9rbf/UV34sSJj/xyyLsPf69bt04Wi0UuLi4pzl21apWkv68KPYg8efJIkq5cuWJ33N3dXc8884w+\n/fRTLV26VE899VSKt4+l9Xm/Ky2fgRkyZIhGjRqlGjVqaMWKFXaLxr2UK1dO0v+ehfm3I0eOSLL/\njMzdc5w3b95UfU0AcBYKDAA4yNGjRyVJHTt2tBlbv359qo9Xvnx5eXp6au/evbpx40ZSobnL3gPz\n9erVkyT99ttvj1xgGjZsqLJly+rQoUP64osv9Morr9idd+7cOc2YMUMmkylpNbL7KVmypKS/3yyf\nkh49eujTTz9VRESEGjVqpIULF6pkyZIKCQlJNi+tz/tdafUMTP/+/RUeHq66detq+fLldm8HvJ/G\njRtL+nslMcMwkhWvmJgYbdy4UT4+PqpTp47Nvndvn7t7zgEgo2MZZQBwkLsPkt9d8vau48eP6913\n30318dzc3PTMM8/oxo0b+vDDD5ON7dq1K2klq3+qVq2aGjZsqIULF9o8H3PX4cOHk275uheTyaTP\nPvtMrq6u6tevn+bOnWsz5/Tp02rbtq2uX7+uvn37PvAVmLslZMuWLSnOqVmzpoKCgrRkyRJNmzZN\nt2/fVrdu3WzmpfV5v+vEiROyWq0P/N+aNWuS7W8Yhl577TWFh4erYcOGWrly5X3LS1xcnA4ePGjz\nwH3JkiXVokULnThxQh9//HGysWHDhunWrVt64YUX5OXlZXPMu+fY3jtpACAj4goMAKQBwzBsbl26\ny2QyacKECXryySdVunRpTZw4UXv27FGVKlV0+vRpLVmyRG3bttUPP/yQ6q87ZswYrVmzRh999JG2\nbNmi+vXr6/z58/rxxx/Vpk0bLViwwGaJ41mzZqlp06YKDQ3V1KlTVbt2beXKlUtRUVHat2+fdu7c\nqQULFjzQ6mINGzbUnDlz1K1bN3Xp0kVjx45VgwYN5OXlpcOHD2vZsmVKSEjQG2+8oY8++uiBP1fd\nunXl6+t732WXe/TooQEDBiS9eNLeFY70OO9pYfjw4Zo+fbrc3d1Vq1YtjRs3zmbOv28727x5s5o0\naaJixYrZLCLwySefqF69eurdu7dWr16tcuXKafPmzVq3bp3Kli2rkSNH2s2xYcMGmUwmNWvWLG0/\nIACkFwMA8EhMJpNhNpsNk8mU7L+728xms3Hq1CnDMAzjzJkzxnPPPWcULlzY8PLyMoKDg43x48cb\niYmJhslkMho3bpzs2GFhYYbZbDYiIiJS/PpRUVFG9+7djbx58xpeXl5G1apVjW+//daYN2+eYTKZ\njMmTJ9vsExsba4wdO9aoWbOm4efnZ3h6eholSpQwWrZsaUybNs24evVqqs7BuXPnjIEDBxpVqlQx\n/P39k52HZcuWpepYd4WGhhomk8k4ePBginPOnz9vuLq6Gmaz2ebc/VN6nPdH1aNHD8NsNtv9u3P3\nv3/nWrdunWEymYwSJUrYPeZff/1l9OzZ0yhYsKDh7u5uFC9e3OjXr59x7do1u/Nv3rxp+Pj4GE2b\nNk3zzwcA6cVkGCks8QIAyNTee+89jR49Wr/++usDv08kLb399tuaOHGiqlevrvXr1ydbGexB7Nq1\nS1WrVtXgwYM1YsSIdEqZvX377bfq0aOH5s6dq6efftrZcQDggVBgACCTO3v2bNKSxnft2bNH9erV\nk6enp6KiouTu7u7wXIZhqFOnTpo/f77atGmjhQsX2tzOdj9dunTRqlWrdPLkyYd6uB0ps1qtqly5\nstzd3bV9+3ZnxwGAB8YzMACQydWpU0fFixdXcHCwfHx8dOTIES1ZskSSNGPGDKeUF+nvZ3++++47\nTZo0SQkJCdqzZ48qV66cqmOMGTNG5cuXV3h4uN5///10Spo9zZ07V/v3709a4hoAMosscQUmpRd3\nAUB2MH78eC1evFinTp3SzZs3lSNHDtWoUUNvvvnmA6/6BQCAs6Tmxb0SBQYAAACAE6W2wPAeGAAA\nAACZRpZ7Bia1DQ4Pb9u2bZKkGjVqODlJ9sJ5dw7Ou3Nw3p2D8+4cnHfn4Lw7x6PcQcUVGALine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f939584ff98>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1ff97a20>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -701,9 +700,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAzAAAAGxCAYAAAC9e1NPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcjXXj//H3dWbfjWEMg8EYa7axjX0nQukuoYXcpaQG\nLdwk5E5SQrQpJXfl7i6FIqLIrrKkGMY+w2AsM8Y2+7l+f/Rrvp3OMYzlnFlez8ejx0PX53Nd5z2X\nHjpvn2sxTNM0BQAAAABFgMXVAQAAAADgWlFgAAAAABQZFBgAAAAARQYFBgAAAECRQYEBAAAAUGRQ\nYAAAAAAUGRQYAIDLPProoypdurQuXLjg6iglXmJiory8vDR+/HhXRwGAfFFgAKAALBaLLJb8/+hs\n3769LBaL1q5d66RUt96SJUt09913Kzw8XN7e3goJCVFMTIwmT56stLS06zrm77//rnnz5umZZ55R\nQEDATU7set99951iY2MVHR2tkJAQeXt7q3r16ho6dKiOHDlyxf1SU1M1cuRIValSRd7e3goPD9c/\n//lPJSUlFThDenq6Jk6cqJo1a8rHx0flypXTfffdp71799rNrVy5sh555BFNnz5dx48fL/BnAYCz\nGLzIEgCuncVikWEYys3NveKc9u3ba/369VqzZo3atm3rxHQ33/nz59WvXz+tWLFCgYGB6tGjh6pW\nraoLFy5o1apVio+PV2hoqL766iu1bNmyQMfu06ePVq1apRMnThS7ApORkSFfX195enqqdevWatiw\noQzD0IYNG/TTTz/J399fq1atUvPmzW32O3v2rFq1aqV9+/apU6dOatq0qfbs2aMlS5YoNDRUmzdv\nVtWqVa8pQ2Zmpjp37qyNGzeqadOm6tixoxITE/XFF1/I09NTq1evVrNmzWz2SUhIULVq1TR06FC9\n+eabN+18AMBNZQIArplhGKbFYsl3Trt27UzDMMy1a9c6KdWtkZuba3bt2tU0DMPs0qWLeebMGbs5\nM2fONC0WixkYGGju3bv3mo+dmJhourm5mf3797+ZkQuN7Oxsc/LkyWZKSord2L///W/TMAyzfv36\ndmNDhgwxDcMwn332WZvts2bNMg3DMG+//fZrzvDyyy+bhmGYffv2tdm+ZMkS0zAMs27duqbVarXb\nr127dmZgYKB58eLFa/4sAHAmCgwAFMCNFBjDMMz27ds73GfChAlXLD2ffPKJ2ahRI9PHx8cMDQ01\nH3zwQTMpKSnvcxxZvXq12atXL7NMmTKmp6enGRERYT7xxBPmyZMnr/En/eNzDcMwIyMjzUuXLl1x\n3nPPPWcahmF269btmo89adIk0zAMc8mSJTbb//vf/5qGYZhPPfWUw/2ys7PNsLAw09/fPy9TWlqa\n+eqrr5odOnQww8PDTU9PT7Ns2bJmr169zE2bNjk8jmEYZpUqVcy0tDRz+PDhZuXKlU13d3dz5syZ\n1/wzXK+cnBzTx8fHtFgsNgXnwoULpo+PjxkQEGBXHqxWqxkREWEahmEeOnToqp9htVrNypUrmxaL\nxTxy5IjdeNu2bU3DMMw1a9bYjb3zzjumYRjmvHnzCvyzAYAzcA8MADiRYRgFmv/qq6/qwQcfVEJC\nggYOHKjBgwdr9+7dat26tdLS0hweb+rUqerUqZM2b96sO+64QyNHjlTt2rX1zjvvqEmTJtd8L8V7\n770nSXr22Wfl6+t7xXljxoyRp6enVq1apYSEhGs69sqVK2UYhlq1amWzvU+fPipVqpQ+++wzZWdn\n2+333XffKTk5Wffee29epri4OI0bN07u7u7q1auXnnnmGXXp0iXvEr7ly5c7zJCZmakOHTpo2bJl\nuuOOOzR8+HBVqlTpmvLfCMMw5O7uLklyc3PL275lyxZlZGSoVatW8vPzs9vn9ttvlyStWbPmqp9x\n8OBBHT16VDVq1FBERITdePfu3SVJq1evthtr3bq1pD9+jwCgMHJ3dQAAKGpM09SLL74o8wq3EOZ3\ng3ZBHDp0SM8//7xCQkK0ffv2vC/XU6ZM0YABA/TZZ5/ZFZh169ZpzJgxatGihZYvX67AwMC8sU8+\n+UQPPfSQhg8froULF+b72Tk5OdqyZYsMw1CXLl3ynRscHKzo6Ght2bJFGzZscPiF+a8yMzP1yy+/\nqGrVqgoJCbEZ8/LyUr9+/fTuu+9q2bJluuuuu2zG58+fL0kaNGhQ3rY6deroxIkTKl26tM3cpKQk\nNWvWTE8//XTeF/a/OnnypOrVq6eNGzfK29vbZuzXX3/V4sWL8/05/u7hhx++6s8uSZ9//rkuXryo\nFi1a2Pz+xMfHS5Jq1KjhcL/q1atLkvbv33/Vz7iRY9WpU0e+vr5av379VT8HAFyBAgMA1+HFF1+8\n5Z+xYMEC5ebmatiwYXYrA6+88oo+//xzuxL1xhtvSJLmzJlj8+VYkh544AFNnz5dS5Ys0aVLl+z+\nlv+vUlJSlJ2dLcMwrmlVolKlStqyZYtOnjx51bnHjx9XVlaWKlas6HB80KBBevfdd/XRRx/ZFJjU\n1FR9/fXXqlatms3DEf7+c/4pPDxc//jHP/Tmm2/q2LFjdp9nGIamTZtmV14kaefOnZo0adJVf5a/\nHqtjx45XLTAHDhzQU089JQ8PD82YMcNm7M+nuQUFBTnc98/t586du2qeGzmWxWJR+fLldejQIWVn\nZ8vDw+OqnwcAzkSBAYACupankK1bt+6GP2fHjh2S/u+Snr+qXLmyKlWqpMTERJvtGzdulLu7u778\n8kuHqyyZmZnKzc1VfHy8oqOjbzjj3+V3Xv50+vRpSbJbMflTs2bNVLt2bS1fvlxnzpxRmTJlJEmf\nffaZsrKy9NBDD9nts3HjRr3xxhvavHmzTp8+raysLJvxpKQkuwLj7e2tevXqOcwwcOBADRw48Ko/\nS0EcO3ZM3bp1U0pKiubMmWP3BLDCJCQkRIcOHdKpU6cUHh7u6jgAYIMCAwCF1J9/i16uXDmH4+XK\nlbMrMGfPnlVubm6+K0SGYejSpUv5fnbp0qXl4eGhnJwcJSYm5l1ydCVHjx6VpGv6svvnZW9XugRP\n+mMVZvTo0VqwYIFiY2Ml/XH5mMVisSsWixYt0j333CNfX1916dJFkZGR8vPzk8Vi0Zo1a7R27Vpl\nZmbafUZoaOhVs94siYmJ6tixoxISEvT222/rkUcesZvz56rIld6r8+f2UqVKXfXzbvRYVqtVUsHv\n2QIAZ6DAAIAT5eTkONzu6FKePy+NSk5OdrhSkJycbLctKChIOTk513SZUX7c3d3VokULrVu3TqtW\nrcq3wKSkpGj79u0Ob8p35M8VlZSUlCvOefDBBzV27Fh99NFHio2N1d69e/Xzzz+rffv2dpdpvfDC\nC/L29tbWrVtVs2ZNm7GkpKQrvlA0vy/nN/MemIMHD6pTp05KSkrS3Llzbe7f+atatWpJkvbt2+dw\n/M/7Va50X8vNPNafvzdly5a96mcBgLNRYADASYKDg/NWKv7ul19+sdsWHR2txYsXa/369ercubPN\nWEJCgsNjtWzZUkuXLtVvv/2m+vXr31DeIUOGaN26dXr99dc1aNAg+fj4OJw3depUZWVlqVOnTqpS\npcpVjxseHi5PT08dO3bsinPCwsLUtWtXLV++XL///rsWLFggSQ6//B84cED16tWzKy9Wq1UbNmy4\nah5HbtY9MHv27FHnzp11+vRpffzxx+rXr98VjxETEyNvb29t3LhRFy9elL+/f96Y1WrNe3Jbhw4d\nrponMjJSlStXVnx8vI4cOWL3+/Lnk9k6duxot6/VatXJkydVoUIF7n8BUDi59inOAFC03Mh7YHr0\n6GEahmF+++23Ntvfe++9vOP+dZ+DBw+aHh4eZkhIiJmQkJC33Wq1mv3793eYZc2aNaZhGGbz5s3N\nY8eO2WVLT083169ff00/q9VqNbt162YahmF27drV7kWWVqvVnDVrlmmxWMzQ0FDz4MGD13Rc0zTN\nNm3amIZhOHw55p+++OIL0zAMc8SIEWbFihXNgIAAh++jqVWrlhkYGGgeP37cJtsLL7zg8Lya5h+/\nj1WrVr3mvNdj586dZtmyZU0vLy/zq6++uqZ9HnvsMdMwDPOZZ56x2f7GG2+YhmGY3bt3t9tnz549\n5t69e83s7Gyb7VOmTDENwzDvvfdemxdWLl682DQMw7ztttscZvjtt99MwzDM+++//5oyA4CzsQID\nAE7y3HPP6bvvvlOfPn3Ut29flS1bVtu2bdO2bdvUs2dPLV261GZ+tWrVNGnSJI0dO1YNGzbUfffd\np6CgIK1atUqpqalq0KCBfv/9d5t92rdvr9dee02jR49WVFSUevTooapVqyo9PV2JiYlat26dqlWr\npu3bt181r2EY+uKLL3TfffdpxYoVioyMVI8ePVSlShVduHBBP/zwg/bu3avIyEj997//VbVq1a75\nXHTt2lUbNmzQhg0bdOeddzqc07t3b5UuXVpvv/22srOzNWjQIIfvoxk5cqQef/xxNWrUSHfffbc8\nPDy0ceNG7dmzR7169dI333xzzblultTUVHXo0EGpqalq3bq1du7cqZ07d9rN+/tlZy+//LLWrl2r\n6dOn69dff1XTpk21Z88eff311ypXrpzeeustu2PUqVNH0h+P765cuXLe9qefflrLli3TwoUL1bx5\nc3Xs2FGJiYn64osv5Ofnpw8//NBh9j9Xra72+GwAcBlXNygAKEquZQWmffv2Dv/W3zRNc9myZWbz\n5s1NHx8fMzg42LzzzjvN3bt3mxMnTrziPh9//LHZqFEj09vb2wwNDTUffPBB8/jx42bdunXN4OBg\nhxm2bNli9u/f36xYsaLp6elplilTxqxfv7755JNPXvMKzF8tWrTIvOuuu8wKFSqYHh4epmLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f93998f0358>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fd1c320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -713,7 +712,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Manuevers imply acceleration, so let's implement a constant acceleration Kalman filter and see how it fairs with the same data."
|
||||
"Maneuvers imply acceleration, so let's implement a constant acceleration Kalman filter and see how it fairs with the same data."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -761,9 +760,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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\nuWkst2rVKmzbtg19+/ZFcHAwjhw5gl9//RWnT5/GqVOnNLb9ZykpKcGIESPwyy+/oFWrVvjjjz+0\n7jF60e2yLCtXrkRMTAz69++PTp06Ydu2bfjiiy/w4MEDhISEIDQ0FH379kWbNm2wd+9erF+/HpmZ\nmdi5c6fa4yxevBgpKSlo164devfujYKCAsTHx2POnDmIi4tDbGwsDAwMNJ5/x44d2Lp1K3r06IEx\nY8bg/Pnz2LlzJxITE5GcnPxK9po967Cw4OBg3LhxA1FRUWjWrBn69eunmnv99ddVvy9atAhTp06F\ng4MDevbsCRcXF5w+fRrffvsttm3bhiNHjmjddj7++GMkJCSgV69e6N27N6ysrCrvxRFR2aROUEQk\nnc6dO6u+8a+Iv/76S8hkMlGnTh1x9+5dtbnSb0A/+ugjtfHSbyzr1asnbt68qRovKSkRHTp0EDKZ\nTBw7dkw1PmnSJCGTycTWrVs1nj83N1dtj1Dpt6xRUVFa+713757WvUKnT58WlpaW4s0331QbL/12\nVyaTiQ8++EAolUrVXHJysjA0NBRNmjRRW2bt2rVCJpOJ2bNna+3hWbZs2SJkMpkYMWKEamz48OFC\nJpOJzZs3a9QPHjxYyGQyMXr0aI25/Px8tW/WK1L7/vvvC5lMJhYvXqxWV1hYKHr27ClkMpnYvn27\navzpdTVixAihUCg0nuPGjRtq67DU999/L2QymVi4cKHa+LPeT217YNLS0oSxsbGwsrISycnJavWf\nffaZkMlkolevXmrjpduqjY2NOHfunNrckCFDhEwmE5s2bdLawz+V7oEJCAgQISEhQiaTiZ49e4q8\nvLwyl3nR7bKsPTAODg7i6tWrqvGcnBzh6OgoDAwMhL29vTh69KhqrqioSDRt2lTIZDJx6tQptcdL\nTU3V2m/pety4caPaeOn7YWRkJGJjY9Xmpk6dqnV7Kkvpa7S1tRXh4eEaP6XP/ax1UboHRggh9u/f\nr7W21IEDB4RMJhPt2rXT2BO8fv16IZPJxNtvv602Xvr3zN3dXe25iEg3eBUyohrs7t27AAB3d/cK\nLff9998DAKZNmwYXFxe1ucWLF8PU1BRRUVEoKSnRWHbmzJlqz2dgYKC6OlBiYqJGvampqcaYhYVF\nhb4Vd3R0hIWFhca4v78/goODsX//figUCq3Ps2zZMrVveRs3box27drh4sWLlXplttKT95++UlLp\n3o/vvvtOrfbevXv49ddf4eLiguXLl2s8lqmpKezs7Cpc+/DhQ0RFRaF58+b49NNP1eqMjY2xYMEC\nAMD69es1HsfExARLly6FXK75v5W6detq/aZ81KhRsLKywp49ezTmKurHH39EcXExxo4di8aNG6vN\nTZ8+Ha6urvjjjz9U2/zTwsLC4Ovrqzb2wQcfANC+TZbn+PHj2Lt3L7y8vLB161aYmZmVWfui22VZ\nwsLCUL9+fdV/W1tbo0+fPlAqlejbty9atWqlmjMyMlJdIOLMmTNqj+Pp6an18UtPqi/r/Ro0aJDG\nVdhGjx4NoOLrMScnB3PmzNH4+fXXXyv0OMCzz3358ssvAfz9b9Da2lptbujQoWjWrBm2bt2K3Nxc\njWUnT56MunXrVrgnIno5PISMiCrsxIkTAKD1akpOTk7w8/NDYmIiLl26hCZNmqjNBwQEaCxTGmiy\nsrJUY4MGDcJXX32Ffv364e2330bnzp3Rtm1b+Pj4vFDPf/zxB1avXo2kpCQ8ePBALVzJZDLcv38f\nzs7Oast4eXlpPQyuTp06EEIgKysL5ubmL9TP00pP3vf09ETHjh1V4x07dkT9+vWxb98+XLt2TfXB\nMjExEUIIBAUFPfP5K1J77NgxKBQKyGQyzJo1S2O+uLgYAHDhwgWNOQ8PD9SqVUvr4xYXFyMiIgIb\nN25EcnIyHj16BKVSqZq/fft2uX09j/K2SRMTEwQFBWHz5s04efIkXF1d1eafd5t8Ho0aNUJhYSEu\nX76MMWPGICIiotzDnF5kuyzL04dElSr9gkHbXOl6uHXrltr4kydPVIfdXbp0Cbm5uWohoKz3qzLX\no4eHB1JTUyu0zIs6fPgwDA0N8fvvv+O3337TmC8sLIRCocClS5fQvHlztbmnQyER6Q4DDFEN5urq\niosXL+LmzZsVWi4nJwcymUxj78vTj1ta90+2trYaY6Xndzz9bXPLli0RHx+P+fPnY8uWLfj5558B\n/P3BZsqUKfjwww+fu98vv/wSEydOhL29PUJCQlC3bl2Ym5tDJpNhy5YtOH36NAoLC5+r17L6fRmR\nkZEQQmDEiBEacyNGjEB4eDgiIyMxf/58AH+fmwNA6zH5/1SR2gcPHgD4ey/C8ePHtdbIZDI8efJE\nY7ysbQEABg4ciOjoaDRo0AD9+/eHi4sLTExMIITAihUrtK77iird1l7lNvk8XF1dsX79enLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f93998cf048>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1ff8f2e8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -773,11 +772,11 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The constant acceleration model is able to track the manuever with no lag, but at the cost of very noisy output during the steady state behavior. The noisy output is due to the filter being unable to distinguish between the beginning of an manuever and just noise in the signal. Noise in the signal implies an acceleration, and so the acceleration term of the filter tracks it. \n",
|
||||
"The constant acceleration model is able to track the maneuver with no lag, but at the cost of very noisy output during the steady state behavior. The noisy output is due to the filter being unable to distinguish between the beginning of an maneuver and just noise in the signal. Noise in the signal implies an acceleration, and so the acceleration term of the filter tracks it. \n",
|
||||
"\n",
|
||||
"It seems we cannot win. A constant velocity filter cannot react quickly when the target is accelerating, but a constant acceleration filter misinterprets noise during zero acceleration regimes as legitimate acceleration.\n",
|
||||
"\n",
|
||||
"Yet there is an important insight here that will lead us to a solution. When the target is not manuevering (the acceleration is zero) the constant velocity filter performs optimally. When the target is manuevering the constant acceleration filter performs well, as does the constant velocity filter with an artificially large process noise $\\mathbf{Q}$. If we make a filter that adapts itself to the behavior of the tracked object we could have the best of both worlds."
|
||||
"Yet there is an important insight here that will lead us to a solution. When the target is not maneuvering (the acceleration is zero) the constant velocity filter performs optimally. When the target is maneuvering the constant acceleration filter performs well, as does the constant velocity filter with an artificially large process noise $\\mathbf{Q}$. If we make a filter that adapts itself to the behavior of the tracked object we could have the best of both worlds."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -785,18 +784,18 @@
|
||||
"level": 2,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Detecting a Manuever"
|
||||
"Detecting a Maneuver"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Before we discuss how to create an adaptive filter we have to ask *how do we detect a manuever?* We cannot reasonably adapt a filter to respond to manuevers if we do not know when a manuever is happening.\n",
|
||||
"Before we discuss how to create an adaptive filter we have to ask *how do we detect a maneuver?* We cannot reasonably adapt a filter to respond to maneuvers if we do not know when a maneuver is happening.\n",
|
||||
"\n",
|
||||
"We have been defining *manuever* as the time when the tracked object is accelerating, but in general we can say that the object is manuevering with respect to the Kalman filter if its behavior is different than the process model being used by the filter. \n",
|
||||
"We have been defining *maneuver* as the time when the tracked object is accelerating, but in general we can say that the object is maneuvering with respect to the Kalman filter if its behavior is different than the process model being used by the filter. \n",
|
||||
"\n",
|
||||
"What is the mathematical consequence of a manuevering object for the filter? The object will be behaving differently than predicted by the filter, so the *residual* will be large. Recall that the residual is the difference between the current prediction of the filter and the measurement. "
|
||||
"What is the mathematical consequence of a maneuvering object for the filter? The object will be behaving differently than predicted by the filter, so the *residual* will be large. Recall that the residual is the difference between the current prediction of the filter and the measurement. "
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -814,7 +813,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f93957f8e48>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fcbf7b8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -824,7 +823,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"To confirm this, let's plot the residual for the filter during the manuever. I will reduce the amount of noise in the data to make it easier to see the residual."
|
||||
"To confirm this, let's plot the residual for the filter during the maneuver. I will reduce the amount of noise in the data to make it easier to see the residual."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -868,9 +867,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f93998d2048>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fd8b320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -882,17 +881,17 @@
|
||||
"source": [
|
||||
"On the left I have plotted the noisy measurements (not the track!) against the Kalman filter output. On the right I display the residuals computed by the filter - the difference between the measurement and the predictions made by the Kalman filter. Let me emphasize this to make this clear. The plot on the right is not merely the difference between the two lines in the left plot. The left plot shows the difference between the measurements and the final Kalman filter output, whereas the right plot shows us the difference between the plot and the *predictions of the process model*. \n",
|
||||
"\n",
|
||||
"That may seem like a subtle distinction, but from the plots you see it is not. The amount of deviation in the left plot when the manuever starts is small, but the deviation in the right tells a very different story. If the tracked object was moving according to the process model the residual plot should bounce around 0.0. This is because the measurements will be obeying the equation \n",
|
||||
"That may seem like a subtle distinction, but from the plots you see it is not. The amount of deviation in the left plot when the maneuver starts is small, but the deviation in the right tells a very different story. If the tracked object was moving according to the process model the residual plot should bounce around 0.0. This is because the measurements will be obeying the equation \n",
|
||||
"\n",
|
||||
"$$measurement = process\\_model(t) + noise(t)$$.\n",
|
||||
"\n",
|
||||
"Once the target starts manuevering the predictions of the target behavior will not match the behavior as the equation will be \n",
|
||||
"Once the target starts maneuvering the predictions of the target behavior will not match the behavior as the equation will be \n",
|
||||
"\n",
|
||||
"$$measurement = process\\_model(t) + manuever\\_delta(t) + noise(t)$$.\n",
|
||||
"$$measurement = process\\_model(t) + maneuver\\_delta(t) + noise(t)$$.\n",
|
||||
"\n",
|
||||
"Therefore if the residuals diverge from a mean of 0.0 we know that a manuever has commenced.\n",
|
||||
"Therefore if the residuals diverge from a mean of 0.0 we know that a maneuver has commenced.\n",
|
||||
"\n",
|
||||
"We can see from the residual plot that we have our work cut out for us. We can clearly see the result of the manuever in the residual plot, but the amount of noise in the signal obscures the start of the manuever. This is our age old problem of extracting the signal from the noise. "
|
||||
"We can see from the residual plot that we have our work cut out for us. We can clearly see the result of the maneuver in the residual plot, but the amount of noise in the signal obscures the start of the maneuver. This is our age old problem of extracting the signal from the noise. "
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -907,7 +906,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The first approach we will consider will use a lower order model and adjust the process noise based on whether a manuever is occuring or not. When the residual gets *large* (for some reasonalbe definition of large) we will increase the process noise. This will cause the filter to favor the measurement over the process prediction and the filter will track the signal closely. When the residual is small we will then scale back the process noise.\n",
|
||||
"The first approach we will consider will use a lower order model and adjust the process noise based on whether a maneuver is occurring or not. When the residual gets *large* (for some reasonable definition of large) we will increase the process noise. This will cause the filter to favor the measurement over the process prediction and the filter will track the signal closely. When the residual is small we will then scale back the process noise.\n",
|
||||
"\n",
|
||||
"There are many ways of doing this in the literature, I will consider a couple of choices."
|
||||
]
|
||||
@@ -974,9 +973,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAzgAAAGxCAYAAACurBO7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt4VdWd//HPPrnfQ0IuhEC4KheFEiIqIAVBBKQg2tFB\nrVr51Y5FR7QdOnbUYEutWsYCtXY6j1WoU2+11krVKVUREAQBQRTkDoEkJITc75dz9u8PJgf2OSdA\nIDn75OT9eh6eJ2vtfXa+Z5EnyTdrre8yTNM0BQAAAABBwGF3AAAAAADQUUhwAAAAAAQNEhwAAAAA\nQYMEBwAAAEDQIMEBAAAAEDRIcAAAAAAEDRIcAMB5cTgcmjRpkqVv0aJFcjgcWrdunU1RdQ0TJ06U\nw8GPXADwB77bAkCAcjgc5/zn78TCMAy/fr6uojWBOXr0qM/rhmEwdgDgJ6F2BwAAaJthGMrNzW3z\nelZWlt9i2bNnj6Kjo/32+bqasyUwf/jDH1RfX+/HaACg+yLBAYAA9/jjj9sdgiTpkksusTuEgGaa\npkzT9HmtT58+fo4GALovlqgBQJBYsWKFHA6HnnjiCW3YsEGTJ09WQkKCEhISNGPGDG3fvt3rNdXV\n1Vq8eLEuv/xyJSYmKi4uTgMGDNDNN9+stWvXWu71tQfnbD7++GPdcMMNSk5OVmRkpAYOHKiHHnpI\nJ0+e9Lr37rvvlsPh0Nq1a/Xmm29qzJgxiomJUXJysubOnavCwsLz+pxPPfWUHA6Hnn32WZ/Xy8rK\nFBERoYEDB17QGPhy5lLB/v37u5cP9u/f332Prz04H3/8sRwOh7773e/q4MGD+va3v63k5GTFx8dr\n2rRp2r17tySpqKhI99xzj9LT0xUVFaUxY8a0GZfL5dILL7ygcePGKSEhQVFRUbr88sv11FNPqbm5\n+ZzvBQCCAQkOAASZzZs3a/LkyYqJidEDDzyg66+/XqtXr9b48eP16aefuu8zTVPTpk3T448/rtjY\nWM2bN0/333+/xo0bp88//1wffvih17PPdx/JCy+8oGuvvVbr1q3T7Nmz9cMf/lB9+vTRsmXLlJOT\no4KCAp+ve/755/Wd73xHAwYM0P3336/LLrtMr7/+uqZMmaKmpqZzft4777xTDodDK1eu9Hn91Vdf\nVXNzs+66664LHgNPubm57qWCCxYs0KJFi7Ro0SI99NBDlvvaGrsjR47oqquuUkVFhebNm6drrrlG\nq1ev1sSJE7Vnzx6NGTNGu3bt0u23367Zs2dr27ZtmjZtmo4dO2Z5TktLi2688Ubde++9Kisr0+23\n36777rtPYWFh+slPfqIZM2bI6XSe8/0AQJdnAgACkmEYpmEY5qJFi8zc3Fyvf4sWLbLc/9JLL7lf\n8/zzz1uu/fnPfzYNwzCHDBni7tu5c6dpGIY5Z84cn5+/tLTUK55JkyZZ+nJzc03DMMy1a9e6+44e\nPWqGh4ebcXFx5u7duy33P/bYY6ZhGObMmTMt/XfddZdpGIaZkJBgfvXVV5Zrt912m2kYhvnGG2/4\njNPT9OnTTcMwzO3bt3tdu+KKK8yQkBDzyJEjpmm2fwza8s1vftM0DMPMy8tr87rD4bD0rVmzxv3/\n9eyzz1qu3Xvvve7xWLBggeXak08+aRqGYT700EOW/p/97GemYRjmAw88YLpcLne/y+VyP+/Xv/71\neb0fAOjKSHAAIEC1/vLb1j/PX5hbE5xLLrnE5/PGjh1rGoZhbtiwwTTN07/cz50797zjOZ8EZ/Hi\nxaZhGOaPf/xjr2c0NDSYGRkZpmEYZmFhobu/NcF57LHHvF7Tmgj827/923nF+frrr5uGYZgPPvig\npX/Xrl1e76G9Y9CWi0lwBg4c6HX/+vXrTcMwzLi4OLOurs5y7ejRo6ZhGOa1117r7nM6nWbPnj3N\n9PR00+l0ej2vvLzcdDgc5pVXXnkhbw8AuhSKDABAADMMo93Liq655hqf/RMmTNCnn36qHTt2aOzY\nsRo+fLi+8Y1v6LXXXtORI0c0e/ZsjRs3Tjk5OYqMjLzgmD///HNJ0rXXXut1LSIiQuPHj9ef/vQn\nbd++Xb169bJcz8nJ8XpNZmamJKm8vPy8Pv+NN96oxMREvfLKK1qyZIlCQ0/9qGtdtnb33Xe77+2s\nMWiPkSNHevWlp6dLkgYPHqyoqCjLtdYxy8/Pd/ft27dPpaWlGjhwoH7605/6/DyRkZHufT0AEMxI\ncAAgyKSlpZ21v7KyUtKpzfEfffSRFi9erD//+c965JFHJEnR0dG69dZb9cwzzyg5Obndn7/1+a2/\npHtq/QW99b4zJSYmevW1Jijnm+iFh4dr7ty5+u1vf6v33ntPs2bNktPp1P/8z/8oNjZW3/72t933\ndtYYtEdCQoJXX+t7Ptu1M4sGlJaWSpIOHjzYZoIjcY4RgO6BIgMAEGSKi4vP2n/mL82JiYlasmSJ\nDh8+rEOHDmnFihXKycnRSy+9pFtuueWCPn/r848fP+7zemu/r1/eO0rrLM2KFSskSf/4xz90/Phx\nffvb3/Y6y6czxsDfWsdy1qxZcrlcbf6jyACA7oAEBwCCzPr1632ex9JaWnjUqFE+X9evXz/deeed\n+vDDD5WZmamPP/5Y1dXV7f78o0ePliStWbPG61pjY6M2bNggwzCUnZ3d7mefryuuuELDhg3Te++9\np9LSUp/L03y50DEICQmRdP6zTB1t6NChSkxM1ObNmykHDaDbI8EBgCCzf/9+/fa3v7X0/fnPf9am\nTZs0ZMgQXX311ZJOlSc+dOiQ1+urqqpUW1ursLAw93Ko9rjjjjsUHh6u559/Xnv37rVc+8UvfqHC\nwkLNmDGjzSVsHeXuu+9WU1OT/uu//ktvv/22BgwYoAkTJlju6agxaF3GlpeX1zHBt1NISIgefPBB\nFRcXa/78+aqvr/e65+TJk/riiy9siA4A/Is9OAAQwEzT1BNPPOFzRkaSpk+friuvvNLSd/311+vh\nhx/W+++/r8svv1z79+/XW2+9pejoaP3+979337djxw7ddNNNysnJ0dChQ5WRkaHy8nL97W9/U3l5\nuX70ox95bXA/H3379tXy5ct13333KScnR7fccovS0tK0ceNGrVu3Tn369PFKwDrDd77zHT3yyCP6\n6U9/qubmZt15551e93TUGEydOlVvvvmmvve97+mmm25SXFycevToofnz57vvaev/sKM8+uij+vLL\nL/XCCy/o3Xff1bXXXqvMzEyVlJTo4MGD2rBhg+6///42D0EFgKBhV/m2tWvXmt/61rfM3r17m4Zh\nmCtWrLBcr6ysNO+77z4zMzPTjIqKMi+99FLzV7/6leWehoYG8/777zd79uxpxsTEmLNmzTLz8/P9\n+TYAoNO0loI+W5noZcuWue9vLRP9xBNPmBs2bDCvvfZaMy4uzoyPjzenT59ufv7555bn5+fnm//x\nH/9hjhs3zuzVq5cZERFh9u7d25wyZYr55ptv+ozHs0z0okWLTIfDYSkT3eqjjz4yp0+fbiYlJZnh\n4eHmgAEDzAcffNA8ceKE17133313m885fPiwaRiG+d3vfve8x67VzJkzTcMwLGffnKm9Y9AWl8tl\nPv744+agQYPM8PBw0zAMs3///u7rEydObLNMtK/31fqePce7lefzz/Tqq6+aU6dONZOTk83w8HAz\nIyPDvPrqq81FixaZBw4cOO/3BABdlWGanfwnpTa8//772rBhg0aNGqU777xTv/3tby1/Xbvnnnu0\ndu1avfjii+rfv7/Wrl2r733ve3rhhRd0xx13SJLuu+8+vfPOO/rDH/6gpKQkPfzww6qoqNC2bdvk\ncLD6DkD3smLFCt1zzz1atGiRHn/8cbvDAQDAFrZlAdOnT9fixYt18803+0xGtmzZojvvvFPf/OY3\n1bdvX33nO9/RVVddpc8++0zSqfKiL774opYsWaLJkydr1KhRevnll7Vz50598MEH/n47AAAAAAJA\nwE5zTJ8+Xe+88477ILONGzdqx44dmjZtmiRp27Ztam5u1tSpU92vyczM1NChQ7Vx40ZbYgYAAABg\nr4AtMvD000/rzjvvVN++fd0VbJ577jnNmDFDklRUVKSQkBCvA9jS0tK8zoDwdZgcAASb+vp6GYah\nhoYGvu8BAIJGe89NC9gE50c/+pE2b96sVatWKSsrS2vXrtUPf/hDZWVl6frrr7c7PAAIOLfddptu\nu+02u8MAAMBWAZng1NbWatmyZfrLX/6iG264QZJ02WWXaceOHVqyZImuv/56paeny+l0qrS01DKL\nU1RU5HXOAQAAAIDuISATHNM0ZZqmV/EBh8PhPkdg9OjRCgsL0+rVqzV37lxJUn5+vvbs2aOxY8e2\n+ez2TnHhwm3dulWSlJOTY3Mk3Qvjbg/G3R6Muz0Yd3sw7vZg3O1xMUutbUtwamtrtX//fkmSy+VS\nXl6eduzYoeTkZPXp00eTJ0/Wv//7vys2NlZ9+/bV2rVr9fLLL+uXv/ylpFOJyrx587Rw4UKlpqa6\ny0SPHDlSU6ZMsettAQAAALCRbVXUtmzZouzsbGVnZ6uhoUG5ubnKzs5Wbm6uJOmPf/yjrrzySt1x\nxx0aPny4nnnmGS1evNhyKvTSpUs1Z84c3XrrrRo/frzi4+O1atUqGYZh19sCAAAAYCPbZnAmTpwo\nl8vV5vWUlBS98MILZ31GeHi4li9fruXLl3d0eAAAAAC6oIA9BwcAAAAA2osEBwAAAEDQIMEBAAAA\nEDRIcAAAAAAEDRIcAAAAAEGDBAcAAABA0CDBAQAAABA0SHAAAAAABA0SHAAAAABBgwQHAAAAQNAg\nwQEAAAAQNEhwAAAAAAQNEhwAAAAAQYMEBwAAAEDQIMEBAAAAEDRIcAAAAAAEDRIcAAAAAELine truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f939984e8d0>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fd8b2e8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -986,7 +985,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This plot should make clear the effect of normalizing the residual. Squaring the residual ensures that the signal is always greater than zero, and normalizing by the meausement covariance scales the signal so that we can distinguish when the residual is markedly changed relative to the measurement noise. The manuever starts at t=3 seconds, and we can see that $\\epsilon$ starts to increase rapidly not long after that. \n",
|
||||
"This plot should make clear the effect of normalizing the residual. Squaring the residual ensures that the signal is always greater than zero, and normalizing by the measurement covariance scales the signal so that we can distinguish when the residual is markedly changed relative to the measurement noise. The maneuver starts at t=3 seconds, and we can see that $\\epsilon$ starts to increase rapidly not long after that. \n",
|
||||
"\n",
|
||||
"We will want to start scaling $\\mathbf{Q}$ up once $\\epsilon$ exceeds some limit, and back down once it again falls below that limit. We multiply $\\mathbf{Q}$ by a scaling factor. Perhaps there is literature on choosing this factor analytically; I just derive it experimentally. We can be somewhat more analytical about choosing the limit for $\\epsilon$ (named $\\epsilon_{max}$) - generally speaking once the residual is greater than 3 standard deviations or so we can assume the difference is due to a real change and not to noise. However, sensors are rarely truly Gaussian and so a larger number, such as 5-6 standard deviations is used in practice.\n",
|
||||
"\n",
|
||||
@@ -1042,9 +1041,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9395841320>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb180714e0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1054,7 +1053,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The performance of this filter is markedly better than the constant velocity filter. The constant velocity filter took roughly 10 seconds to reacquire the signal after the start of the manuever. The adaptive filter takes under a second to do the same. "
|
||||
"The performance of this filter is markedly better than the constant velocity filter. The constant velocity filter took roughly 10 seconds to reacquire the signal after the start of the maneuver. The adaptive filter takes under a second to do the same. "
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1160,9 +1159,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f93957a27f0>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fcc3b38>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1194,9 +1193,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAzAAAAGxCAYAAAC9e1NPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8U+X+B/DPyWjSRYFCW1ZbCsiojLKHQNkUgQsO9la5\njKui3ouKSFkievkhiMjFSQWLgF6meinKEit7790ChbK6R9Ikz+8PbOQ0aWlLm5O0n/fr1dclzxn5\nJPXm9JtnHEkIIUBEREREROQCVEoHICIiIiIiKiwWMERERERE5DJYwBARERERkctgAUNERERERC6D\nBQwREREREbkMFjBEREREROQyWMBQmbJixQqoVCpERUUV6TiVSoUuXbqUUqrC6dGjB5544glYLBaH\nP3d4eDhUKuf4OJg4cSIqV66M+/fvKx2FiMoRJT4Hg4ODUbt2bYc81+XLl6HT6TBnzhyHPN/Drl69\nCpVKhbFjxzr8ufNKT09H1apVMWrUKKWj0GNwjr9YiEqIJEnWn4epVKpHXiTyHuNIP/30E3799VdE\nRkYW+wJamNdYkNJ4/RcuXMCHH36I7t27IzAwEDqdDn5+foiIiMDmzZvtHvPOO+8gMzMTs2fPLvE8\nREQFcfR1wN71aubMmcX6Iu5R3nrrLXh7e2PKlCnFOj73C8JZs2YVO0NpvL9bt27FK6+8gubNm8PX\n1xd6vR5169bFxIkTcfXqVZv9vby8MHXqVHz77bc4cuRIiechx2ABQ2XKwIEDcebMGQwYMMBmW0Ef\nnGfPnsU333xTmtEK9M477yAwMBDDhg17rPMoWYTZ8+677+Ktt95CQkICevfujX/+85/o1q0bduzY\ngb/97W+YOnWqzTE1a9bE8OHDsWzZMiQkJCiQmojIMbZv345ff/3V7raS/Dw/evQovv/+e0yYMAHe\n3t6PdS5nus5kZ2cjIiICn332GSpXroyxY8fi5ZdfRtWqVbF8+XI0adIE+/btszlu8uTJ8PT0xLvv\nvqtAaioJGqUDEJWkChUqoEKFCkU+7oknniiFNIUTGxuLY8eO4a233nKqC0NJ6N27N6ZOnYrmzZvL\n2k+dOoUOHTpgwYIFGDp0KMLCwmTbR44cia+//hpffvklLzBEVGYV1GsuhCix5/n0008BoESGTZVk\nrsel0Wgwd+5cTJw4EZUqVZJtmzt3LmbMmIHx48fj2LFjsm0eHh545plnsGrVKsTFxSEoKMiRsakk\nCKLHdOXKFSFJkggPDxfXr18Xw4YNE1WqVBHu7u6iZcuWYs2aNTbHWCwW8fnnn4s2bdoILy8v4eHh\nIcLCwsT//d//iZycHJv9jx07JoYOHSqCg4OFXq8XVapUEU2aNBGTJk0SKSkp1v2+/vprIUmSWLFi\nhRBCiB07dghJkuz+jBkzxnpcbv68UlNTxTvvvCPq168v9Hq9qFixoujatavYuHFjge/D3bt3xUsv\nvSQCAgKETqcToaGh4uuvv7b7/o0bN05IkiSOHTtms81gMIiPP/5YNG/eXPj6+gp3d3cRGBgoIiIi\nxH//+98ivUYhhFi9erVo3ry5cHd3F35+fmLkyJHixo0bonPnzkKlUtnNV1rGjx8vJEkSCxcutLs9\nICBABAUFOTQTETmnP/74Q0iSJPr165fvPi1atBAqlUpcvXrV2rZ9+3bRr18/UaVKFeHm5iaCgoLE\npEmTxK1bt2yOz+9zsKjXKyGEuH79unj11VdFvXr1hLu7u6hUqZJo0aKFmDFjhuyYoKAgERwcLMuQ\n3+f51atXxVtvvSUkSRJRUVF2n/fMmTNCkiTx1FNPWdsyMzOFl5eXCAsLs3vMpUuXxPjx40XdunWt\nWRs2bCjGjRsn4uPjhRBCjB49Ot9cu3btsp4rNTVVvPbaa6JGjRpCr9eLBg0aiIULF4pLly4JSZLE\n2LFj7WYoDSaTSbi7uwuVSiXu379vs/3nn38WkiSJyMhIh2WiksMeGCoxSUlJeOqpp1C5cmW8+OKL\nuH//PtauXYshQ4YgISFBNu529OjRWLVqFWrWrIkXXngBWq0WmzZtwj//+U/ExMTgxx9/hFqtBgAc\nP34cbdq0gVqtRt++fVGnTh2kp6fj8uXLiIqKwhtvvGHT65Lbk1G7dm1ERkZi1qxZ8PHxwWuvvWbd\np1mzZnaPyZWSkoKnnnoKp06dQvPmzTFlyhQkJSVh3bp1GDBgAGbNmmW3dyA5ORkdOnSATqfDoEGD\nYDAYsHbtWowbNw4qlcrmG7Bt27ahQoUKaNKkic25xowZg++++w6hoaEYMWIEPD09cePGDezfvx/r\n16/HwIEDC/0aP/roI7zxxhuoWLEiRo0ahUqVKmHr1q3o0KEDfHx87P9SS5FGo5H9b17t27fH+vXr\ncf78eUV7yIhIeW3btkWDBg3wv//9D3fu3EHVqlVl20+dOoXDhw8jPDzc+m36Bx98gLfffhu+vr54\n+umnERAQgGPHjmHZsmXYtGkT9u7dixo1ajzyuYtyvQKAgwcPonfv3rh//z46deqEZ555BtnZ2Thz\n5gzmz59vc816+NozduxYSJKEXbt2YcCAAbLP8IoVK2LixIn497//jeXLl9vtTVm+fDmAB4uh5IqN\njUVGRgaeeuopm/1v3ryJVq1aIS0tDREREXj22WdhNBoRFxeH//73vxg+fDhq1aqFgQMHIiUlBRs3\nbkR4eDjCw8Ot58h9vw0GA7p164aDBw+iSZMmGDlyJJKTkzF37lzs3Lnzke9zSZMkCRqNBgaDQfb7\nydWuXTtIkoSYmBjMnDnT4fnoMSldQZHry+15kCRJDBkyRLbt0qVLomLFikKn04m4uDghhBDfffed\nkCRJNGvWTKSlpVn3NRqNolu3bkKSJLFgwQJr++uvvy4kSbLb65Geni4MBoP1cW4PTN5vpyRJErVr\n1873NUiSJLp06SJrmzBhgpAkSbzwwguy9uvXr4tq1aoJlUolDhw4YPd9eOmll4TFYrFuO336tNBo\nNKJRo0ayc129elVIkiS6detmkyk5OVlIkiRatWolzGazzfa7d+8W+jVeuXJFaLVaUalSJXHlyhVr\nu8ViEYMGDRKSJNn95jEyMrJIPxs2bLD7/PZem7+/v9BoNOLs2bN295k/f76QJEl8/vnnhTonEZVt\nH3zwgZAkSXz00Uc22/71r3/JPvt37dolJEkS7du3l/XSCyHEypUrhSRJ4tlnn5W12+uBKer1ymAw\niODgYKFSqcTKlSttciYmJgqTyWR9HBQUZPO5HRkZWWAvS79+/YQkSeL48eOy9qysLFGpUiVRtWpV\nYTQare0zZ84UkiTZzfPxxx8LSZLE4sWLbbYZjUaRnp5ufZx7fZ01a5bdXO+9956QJEkMHDhQ1h4X\nFyeqVKlitwfmyJEjRb7OPNzDVpDVq1db/xvIT4MGDYSbm5vIysoq1DnJebCAoceW+4e7Vqu1+8Ey\nbdo0IUmSeO+994QQQnTv3l1IkiR+/vlnm32PHz8uJEkS9evXt7blFjBbt259ZJaSKmCMRqPw8PAQ\nXl5e4t69ezb7L1myREiSJP7+979b23LfBy8vL9mFLlenTp2ESqUSGRkZ1rbt27cLSZLE6NGjbfZP\nSUkRkiSJDh06FPiaC/Ma586dKyRJEtOnT7fZduXKFaFWq+0WMLmFTX5DBx7+UalUhRoeYDabxcCB\nA4UkSeLll1/Od79Vq1YJSZLEtGnTHnlOIir7EhIShEajEc2aNZO1m0wmUa1aNeHt7W39fH3mmWeE\nJEnixIkTds8VFhYmNBqN7LPaXgFT1OvV999/LyRJEn379i3UaypOAZM79Gny5Mmy9qioKCFJkvjX\nv/4lax81apSQJEns2LHD5ly517Lly5c/MuujCpi6desKtVotzp8/b7Nt9uzZdguYFStWFOr68vB1\n5uEha/m5cOGCddjgvn378t0v9/drLzM5N65CRiUmMDDQ7kS4Tp06AXiwCgoAHD58GJIk2b3vSuPG\njVG1alVcuHABmZmZAIAhQ4ZArVZjwIAB1sndZ8+eLcVX8mBVsqysLDRu3BiVK1e22d69e3cAsLsE\nY7169eDl5WXTXqtWLQghkJSUZG27c+cOANh9jgoVKqBfv36IjY1FkyZNMHPmTPzyyy9IT08v8us5\nfPgwAKBz584224KDg1GrVi27x1ksFpjNZlgslkf+mM1mfPXVVwXmEEJg0qRJ2LBhA7p06YKFCxfm\nu6+vry8A4Pbt24V9mURUhlWrVg09evTAsWPHZJOyY2JicOvWLTz33HPw8PAAAPz+++/QaDT44Ycf\nMHPmTJsfg8EAs9mM8+fPF/icRb1e7d27FwAQERFRUi/bRu/evRESEoJVq1ZZnxd4MHxMpVLh73//\nu2z/gq4z/fv3h5eXF/7xj3/gmWeewX/+8x8cO3asyBP109LScOnSJQQEBKBevXo223P/Dshr9OjR\nhbq+PHydye9cua5fv45evXrh/v37WLp0KVq3bp3vvrzOuC4WMFRi/P39C2xPSUmx/q+Pjw90Op3d\n/atVqybbv1WrVtizZw969OiB9evX44UXXkCjRo0QEhJiHe9b0nKfOyAgwO723Pbk5GSbbRUrVrR7\nTO5cD7PZbG3LHfuc38VizZo1mDVrFnJycjB79mz07NkTvr6+eO655xAXF1fIV/PX63nU76g0CSEw\nYcIEfPbZZ+jevTt+/PHHfOe/ALDe0LOsrcxGRMWXeyPEh++RkvvvMWPGWNvu3bsHk8mEWbNmYfbs\n2TY/Z86cgSRJyMjIKPD5inq9yr0mFGZuzeOYMGECUlNTsXr1agDAiRMn8Mcff6Br166oU6eObN+C\nrjOBgYE4cOAAnnvuOezcuROTJk1CWFgYqlevjnnz5hX6xsrOcI0BgPj4eISHhyMuLg6ffvLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f93998a7198>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fd527f0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1221,9 +1220,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9399982710>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fed4c88>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1249,17 +1248,17 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9391e42fd0>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb17c31908>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9391ea0a20>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fd957b8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1269,7 +1268,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"As the standard deviation limit gets smaller the computation of the velocity gets worse. Think about why this is so. If we start varying the filter so that it perfers the measurement over the prediction as soon as the residual deviates even slightly from the prediction we very quickly be giving almost all the weight towards the measurment. With no weight for the prediction we have no information from which to create the unobserved variables. So, when the limit is 0.1 std you can see that the velocity is swamped by the noise in the measurement. On the other hand, because we are favoring the measurements so much the position follows the manuver almost perfectly.\n",
|
||||
"As the standard deviation limit gets smaller the computation of the velocity gets worse. Think about why this is so. If we start varying the filter so that it prefers the measurement over the prediction as soon as the residual deviates even slightly from the prediction we very quickly be giving almost all the weight towards the measurement. With no weight for the prediction we have no information from which to create the unobserved variables. So, when the limit is 0.1 std you can see that the velocity is swamped by the noise in the measurement. On the other hand, because we are favoring the measurements so much the position follows the maneuver almost perfectly.\n",
|
||||
"\n",
|
||||
"Now let's look at the effect of various increments for the process noise. Here I have held the standard deviation limit to 2 std, and varied the increment from 1 to 10,000."
|
||||
]
|
||||
@@ -1290,41 +1289,41 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f939985dba8>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fd5fb70>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f939985d668>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fd5f8d0>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9399960048>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fcc9048>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9391d36a20>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb1fd42748>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f9391d36128>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb16384e80>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1351,11 +1350,11 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Fading memory filters are not normally classified as an adaptive filter since they do not adapt to the the input, but they do provide good performance with manuevering targets. They also have the benefit of having a very simple computational form for first, second, and third order kinematic filters (e.g. the filters we are using in this chapter). This simple form does not require the Ricatti equations to compute the gain of the Kalman filter, which drastically reduces the amount of computation. However, there is also a form that works with the standard Kalman filter. I will focus on the latter in this chapter since our focus is more on adaptive filters. Both forms of the fading memory filter are implemented in `FilterPy`.\n",
|
||||
"Fading memory filters are not normally classified as an adaptive filter since they do not adapt to the the input, but they do provide good performance with maneuvering targets. They also have the benefit of having a very simple computational form for first, second, and third order kinematic filters (e.g. the filters we are using in this chapter). This simple form does not require the Ricatti equations to compute the gain of the Kalman filter, which drastically reduces the amount of computation. However, there is also a form that works with the standard Kalman filter. I will focus on the latter in this chapter since our focus is more on adaptive filters. Both forms of the fading memory filter are implemented in `FilterPy`.\n",
|
||||
"\n",
|
||||
"The Kalman filter is recursive, but it incorporates all of the previous measurements into the current computation of the filter gain. If the target behavior is consistant with the process model than this allows the Kalman filter to find the optimal estimate for every measurement. Consider a ball in flight - we can clearly estimate the position of the ball at time t better if we take into account all the previous measurement. If we only used some of the measurements we would be less certain about the current position, and thus more influenced by the noise in the measurement. If this is still not clear, consider the worst case. Suppose we forget all but the last measurement and estimates. We would then have no confidence in the position and trajectory of the ball, and would have little choice but to weight the current measurement heavily. If the measurement is noisy, the estimate is noisy. We see this effect every time a Kalman filter is initialized. The early estimates are noisy, but then they settle down as more measurements are acquired.\n",
|
||||
"The Kalman filter is recursive, but it incorporates all of the previous measurements into the current computation of the filter gain. If the target behavior is consistent with the process model than this allows the Kalman filter to find the optimal estimate for every measurement. Consider a ball in flight - we can clearly estimate the position of the ball at time t better if we take into account all the previous measurement. If we only used some of the measurements we would be less certain about the current position, and thus more influenced by the noise in the measurement. If this is still not clear, consider the worst case. Suppose we forget all but the last measurement and estimates. We would then have no confidence in the position and trajectory of the ball, and would have little choice but to weight the current measurement heavily. If the measurement is noisy, the estimate is noisy. We see this effect every time a Kalman filter is initialized. The early estimates are noisy, but then they settle down as more measurements are acquired.\n",
|
||||
"\n",
|
||||
"However, if the target is manuevering it is not always behaving like the process model predicts. In this case remembering all of the past measurements and estimates is a liability. We can see this in all of the charts above. The target initiates a turn, and the Kalman filter continues to project movement in a straight line. This is because the filter has built a history of the target's movement, and incorrectly 'feels' confident that the target is moving in a straight line at a given heading and velocity. \n",
|
||||
"However, if the target is maneuvering it is not always behaving like the process model predicts. In this case remembering all of the past measurements and estimates is a liability. We can see this in all of the charts above. The target initiates a turn, and the Kalman filter continues to project movement in a straight line. This is because the filter has built a history of the target's movement, and incorrectly 'feels' confident that the target is moving in a straight line at a given heading and velocity. \n",
|
||||
"\n",
|
||||
"The fading memory filter accounts for this problem by giving less weight to older measurements, and greater weight to the more recent measurements. \n",
|
||||
"\n",
|
||||
@@ -1369,7 +1368,7 @@
|
||||
"\n",
|
||||
"$$ \\tilde{\\mathbf{P}} = \\alpha^2\\mathbf{FPF}^\\mathtt{T} + \\mathbf{Q}$$\n",
|
||||
"\n",
|
||||
"where $\\alpha > 1.0$. If $\\alpha == 1$ then we get the normal Kalman filter performance. $\\alpha$ is an attribute of `FilterPy`s Kalman filter class; its value defaults to 1 so the filter acts like a Kalman filter unless $\\alpha$ is assigned a value other than 1. There is no hard and fast rule for choosing $\\alpha$, but it is typically very close to 1, such as 1.01. You will need to make many runs with either simulated or real data to determine a value that responds to manuevers without causing the estimate to become too noisy due to overly weighting the noisy measurement.\n",
|
||||
"where $\\alpha > 1.0$. If $\\alpha == 1$ then we get the normal Kalman filter performance. $\\alpha$ is an attribute of `FilterPy`s Kalman filter class; its value defaults to 1 so the filter acts like a Kalman filter unless $\\alpha$ is assigned a value other than 1. There is no hard and fast rule for choosing $\\alpha$, but it is typically very close to 1, such as 1.01. You will need to make many runs with either simulated or real data to determine a value that responds to maneuvers without causing the estimate to become too noisy due to overly weighting the noisy measurement.\n",
|
||||
"\n",
|
||||
"Why does this work? If we increase the estimate error covariance the filter becomes more uncertain about it's estimate, hence it gives more weight to the measurement. \n",
|
||||
"\n",
|
||||
@@ -1472,9 +1471,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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\n3txs/ZIlS7J582YiIiJwdHTMlDaKfE6JDHX48GFlY2Oj9Hq96t69u1q1apU6f/68MhqNya6zePFi\npdPp1Pjx4y0uDw8PV3fu3DErv3LliipevLgqX7682TKdTqd0Op1q3bq1ioqKSiy/efOmKliwoCpY\nsKCKjY1NLN+zZ4/S6XSqTJkyJs8VHR2tGjZsqHQ6nfLy8sqwdrVo0UJFRkaaLAsNDVXW1taqUKFC\nKjQ0NLHcaDSqLl26KJ1Op/R6vYU9ZFmTJk2UTqdTQ4cOVXZ2dsrJyUn99ttvKa5z/vx5szKj0aje\nf/99pdPp1J9//mmyLKH84sWLJq8j4XV+/PHHJvUnT56sdDqdcnFxUZ06dTJ5D5YvX650Op3y9fU1\nWScr3v+UJLzG9u3bq4CAALOfGzdupLovevXqZbLNhPcmad2kmjdvrgwGg1qxYoVJ+YMHD1SNGjWU\nXq9X//zzT2L5tm3bEl/zmDFj0vS6hBDCkpYtWyYeT3755ReLdc6dO5dYp2LFipnWloiICBUWFmZS\ndvXqVaXT6VSzZs2UUkqFhIQonU6nRowYYbb+sGHDlE6nU+fOncu0Nor8TRKJTLBy5UpVrFixxINM\nwhfH1q1bqxUrVpglFaklEikZNGiQ0ul06vLlyyblCV+6LR08evbsqXQ6nTp+/HhiWZ8+fZROp1OL\nFi0yq79z506LicSLtOvo0aNm60ycODHZL4KhoaHKYDA8VyKR8LNkyZI0r/usv/76S+l0OjVhwgST\n8pS+PDs7O6uIiAiT+pcvX07cB89+iY6Pj1fW1taqTJkyaW5XRr3/KUl4jZZ+kn6hz6hE4ujRo0qn\n06mOHTtabM/69evNgmZCIlGsWDEVExOTptclhBCWVK5cOfEYt3XrVot1kp4wKlSokMU6H374oapX\nr166flatWpVq+0aOHKkMBoPat2+fUurpiUBLsfOzzz5TOp1OHTp0KB17QIi0k1ubMkHnzp3x9fVl\n27Zt7Nmzh8OHD7N79242bNjAhg0bWLJkCevXr8fa2jrN29yzZw+zZ89m37593Lp1i5iYGJPlV69e\nxcPDw6TMxcWFMmXKmG0r4Taie/fuJZb9/fffADRp0sSsfoMGDTAYDBnWLjs7OypXrmy2rZTa4Onp\nScmSJZ9ruNCWLVuyadMmhg0bRpUqVRKHK7Xkzp07TJ8+nQ0bNnD+/Hmzy8lXr15N8/OWK1fO7Laa\nhM7IBQsWpFSpUibL9Ho9rq6uXLlyxWxbmf3+p8WSJUtS7GydURL6GYWHh1vsIJhwr/DJkyfNllWt\nWjVd/1dCCPGspMfXpH0OkhMVFWWxfN68eRnWpgTnzp1j7ty5fPbZZ9SrVw942kZLt5ZGR0cDJN6q\nJURGk0Qik1hZWeHj44OPjw+gDSW3evVqevfuzebNm5k3bx6DBw9O07bWrFlDp06dcHBwwMfHh5df\nfhlHR0f0ej3btm1jx44diQeLpJLec/5s2wDi4+MTy8LDw9HpdLi5uZnVNxgMiX0/MqJdz3ZcS9oG\nwGIbEsqfJ5EYNWoU3t7ejBw5kmbNmrFx48bEA3BS9+/fp3bt2ly4cIG6devi5+dH4cKFsbKy4t69\ne8yePdvi60mOpT4dCfs+uf4eVlZWxMXFmZRlxfufk9y5cweArVu3mnQmTEqn0yXeH5xUekaNEkII\nS0qUKMHp06fTXL9YsWKZ2JqnoqOjee+99/jggw/4/PPPE8uLFi2a7DoJx0lLg78IkREkkcgier2e\nzp07ExISwsSJE/njjz/SnEiMHTsWOzs7Dh06xKuvvmqy7OrVqxYnXEuvhC+2N27cMDvgxMfHc+fO\nHbOz68/bruQ65Ca0ISwszOIVi7CwsLS9GAuGDx+Oo6MjgwYNokWLFqxfv96kYzvAokWLuHDhAoGB\ngWYdkfft22cyslRWyor3PydJ+BzMnDmTIUOGpGtdmZtCCPGiGjRowLZt2wC4e/euxToJJzwS6mc2\npRS9e/emZcuWZldq3dzc0Ol0Fq8yR0REoNPpEgdvESKjyfCvWSxhLGiVZPz8hNuGkjtDfPbsWSpU\nqGD2JdJoNCY7J0V61axZE6WUxS+le/bssdi2jG5XzZo1AW0oz2eFhoZy+fLldG8zqY8++oigoCAe\nP35M69at2bRpk8nys2fPAtCxY0ezdbPzy3pWvP9ZLaXPfEJQThgiVgghstL777+PXq99PTpy5IjF\nOocPHwa0kxc9evSwWOeDDz6gdu3a6fqxNAQ4aCeUKlSoYJJEJIwi6ODgQM2aNS1esT979ixly5aV\nEZtEppFEIoP9+OOP/P777xYn2rpx4wYLFy4EoHHjxonlL730EgAXL160uE0vLy9Onz7N9evXE8uU\nUgQGBnLy5MkMOQvr5+cHwOTJk03OwERHR/PZZ59lSbvee+89rK2tmTt3LqGhoYnlRqORUaLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f939994ff60>"
|
||||
"<matplotlib.figure.Figure at 0x7fbb20de64e0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1484,9 +1483,9 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The first plot shows the performance of the Kalman filter. The filter diverges when the manuever starts and does not reacquire the signal until about 10 seconds. I then made the filter track the manuever very quickly by making the process noise large, but this has the cost of making the filter estimate very noisy due to unduly weighting the noisy measurements. I then implemented a fading memory filter with $\\alpha=1.02$. The filtered estimate is very smooth, but it does take a few seconds to converge when the target regains steady state behavior. However, the time to do so is considerably smaller than for the Kalman filter, and the amount of lag is much smaller - the estimate for the fading memory is much closer to the actual track than the Kalman filter's track is. Finally, I bumped up $\\alpha$ to 1.05. Here we can see that the filter responds almost instantly to the manuever, but that the estimate is not as straight during the steady state operation because the filter is forgetting the past measurements. \n",
|
||||
"The first plot shows the performance of the Kalman filter. The filter diverges when the maneuver starts and does not reacquire the signal until about 10 seconds. I then made the filter track the maneuver very quickly by making the process noise large, but this has the cost of making the filter estimate very noisy due to unduly weighting the noisy measurements. I then implemented a fading memory filter with $\\alpha=1.02$. The filtered estimate is very smooth, but it does take a few seconds to converge when the target regains steady state behavior. However, the time to do so is considerably smaller than for the Kalman filter, and the amount of lag is much smaller - the estimate for the fading memory is much closer to the actual track than the Kalman filter's track is. Finally, I bumped up $\\alpha$ to 1.05. Here we can see that the filter responds almost instantly to the maneuver, but that the estimate is not as straight during the steady state operation because the filter is forgetting the past measurements. \n",
|
||||
"\n",
|
||||
"This is quite good performance for such a small change in code! Note that there is no 'correct' choice here. You will need to design your filter based on your needs and the characteristics of the measurement noise, process noise, and manuevering behavior of the target."
|
||||
"This is quite good performance for such a small change in code! Note that there is no 'correct' choice here. You will need to design your filter based on your needs and the characteristics of the measurement noise, process noise, and maneuvering behavior of the target."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1516,7 +1515,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"To be written - vary state order based on whether a manuever is happening."
|
||||
"To be written - vary state order based on whether a maneuver is happening."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1531,13 +1530,13 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The example I have been using in this chapter entails a target moving in a steady state, performing a manuever, and then returning to a steate state. We have been thinking of this as two models - a constant velocity model, and a constant acceleration model. Whenever you can describe the system as obeying one of a finite set of models you can use *Multiple Model (MM) Estimation*. This means what it sounds like. We use a bank multiple filters, each using a different process to describe the system, and either switch between them or blend them based on the dynamics of the tracked object. \n",
|
||||
"The example I have been using in this chapter entails a target moving in a steady state, performing a maneuver, and then returning to a steady state. We have been thinking of this as two models - a constant velocity model, and a constant acceleration model. Whenever you can describe the system as obeying one of a finite set of models you can use *Multiple Model (MM) Estimation*. This means what it sounds like. We use a bank multiple filters, each using a different process to describe the system, and either switch between them or blend them based on the dynamics of the tracked object. \n",
|
||||
"\n",
|
||||
"As you might imagine this is a broad topic, and there are many ways of designing and implementing MM estimators. But consider a simple approach for the target we have been tracking in this chapter. One idea would be to simultaneously run a constant velocity and a constant acceleration filter, and to switch between their outputs when we detect a manuever by inspecting the residuals. Even this choice gives us many options. Consider the dynamics of a turning object. For example, an automobile turns on a wheelbase - the front wheels turn, and the car pivots around the rear wheels. This is a nonlinear process, so for best results we would want to use some type of nonlinear filter (EKF, UKF, etc) to model the turns. On the other hand, a linear constant velocity filter would perform fine for the steady state portions of the travel. So our bank of filters might consist of a linear KF and an EKF filter for the turns. However, neither is particularly well suited for modelling behaviors such as accelerating and braking. So a highly performing MM estimator might contain a bank of many filters, each designed to perform best for a certain performance envelope of the tracked object.\n",
|
||||
"As you might imagine this is a broad topic, and there are many ways of designing and implementing MM estimators. But consider a simple approach for the target we have been tracking in this chapter. One idea would be to simultaneously run a constant velocity and a constant acceleration filter, and to switch between their outputs when we detect a maneuver by inspecting the residuals. Even this choice gives us many options. Consider the dynamics of a turning object. For example, an automobile turns on a wheelbase - the front wheels turn, and the car pivots around the rear wheels. This is a nonlinear process, so for best results we would want to use some type of nonlinear filter (EKF, UKF, etc) to model the turns. On the other hand, a linear constant velocity filter would perform fine for the steady state portions of the travel. So our bank of filters might consist of a linear KF and an EKF filter for the turns. However, neither is particularly well suited for modeling behaviors such as accelerating and braking. So a highly performing MM estimator might contain a bank of many filters, each designed to perform best for a certain performance envelope of the tracked object.\n",
|
||||
"\n",
|
||||
"Of course, you do not need to just base your filters on the order of the model. You can use different noise models, different adapters in each. For example, in the section above I showed many plots depicting the effects of changing parameters on the estimate of the velocity and position. Perhaps one setting works better for position, and a different setting for velocity. Put both in your bank of filters. You could then take the best estimates for the position from one filter, and the best estimate for the velocity from a different filter.\n",
|
||||
"\n",
|
||||
"I trust the idea of switching between filters to get the best performance is clear, but what mathematical foundations should we use to implement it? The problem that we face is trying to detect via noisy meaurements when a change in regime should result in a change in model. \n",
|
||||
"I trust the idea of switching between filters to get the best performance is clear, but what mathematical foundations should we use to implement it? The problem that we face is trying to detect via noisy measurements when a change in regime should result in a change in model. \n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:fb409161026d1ed0dd77233253724a3d5243888476f399fe92241d7cbe8f6d56"
|
||||
"signature": "sha256:f4b70cfb28ac903575af4e3ed759729739f9f71f6da9fd79075fdd442ab3a844"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -16,11 +16,10 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 1,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Ensemble Kalman Filters"
|
||||
"#Ensemble Kalman Filters"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -259,7 +258,7 @@
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f143cb0f6a0>"
|
||||
"<IPython.core.display.HTML at 0x7effb0335320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -310,20 +309,19 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAx0AAAGNCAYAAAB0YBz5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X18VOWZP/7Pfc4MGUggihCQ8GAIwZGIoCMJTjC1RXxo\n1eq221Jppd9ua3drt9Xu1q3tftXu19ratdZ29dfdultXKxSrtdY+WaqiSCITjMaHQCBgQB5MBEUe\nM2HOOffvj3vuOWceMwkzIcDn/Xr5MkzOnHOfk7zgvua6r/sSUkoJIiIiIiKiIjGO9QCIiIiIiOjE\nxqCDiIiIiIiKikEHEREREREVFYMOIiIiIiIqKgYdRERERERUVAw6iIiIiIioqBh0EBERERFRURU0\n6Lj//vsxZ84clJeXo7y8HOFwGH/605+Sjrn99ttRWVmJUaNG4cMf/jDWr19fyCEQEREREdEwU9Cg\nY8qUKfjhD3+IV199Fa2trfjIRz6Cq6++Gq+99hoA4K677sI999yD++67D+vWrUNFRQUWLVqEgwcP\nFnIYREREREQ0jIhidyQ/7bTT8IMf/ABf/OIXMWnSJHzta1/DLbfcAgCIRqOoqKjA3Xffjeuvv76Y\nwyAiIiIiomOkaDUdtm1jxYoViEajaGxsRFdXF3p6enDJJZckjgkEAmhsbERzc3OxhkFERERERMeY\nr9AnfOONN3DBBRegr68PI0eOxK9//WuceeaZicBiwoQJScdXVFRg165dSa/t27ev0MMiIiIiIqIh\nUF5envZawYOOYDCI119/Hfv27cNjjz2GxYsXY9WqVTnfI4Qo9DCIiIiIiGiYKPjyKr/fj+nTp+Pc\nc8/FnXfeifnz5+P+++/H6aefDgDo6elJOr6npwcTJ04s9DCIiIiIiGiYKHimI5Vt23AcB1VVVZg4\ncSJWrlyJUCgEQBWSr1mzBnfffXfW92dKzxyPXn75ZQDA+eeff4xHQscj/v7QYPF3h44Gf39osPi7\nc/LprzyioEHHt771LVxxxRWYPHkyDhw4gOXLl+OFF17A008/DQC48cYbceeddyIYDKKmpgZ33HEH\nRo8ejWuvvbaQwyAiIiIiomGkoEFHT08PPvvZz6K7uxvl5eWYM2cOnn76aSxatAgAcPPNN6O3txc3\n3HAD9u7di/nz52PlypUoLS0t5DCIiIiIiGgYKWjQ8eCDD/Z7zG233YbbbrutkJclIiIiIqJhrGh9\nOoiIiIiIiAAGHUREREREVGQMOoiIiIiIqKgYdBARERERUVEx6CAiIiIioqJi0EFEREREREXFoIOI\niIiIiIqKQQcRERERERUVgw4iIiIiIioqBh1ERERERFRUDDqIiIiIiKioGHQQEREREVFRMeggIiIi\nIqKiYtBBRERERERFxaCDiIiIiIiKikEHEREREREVFYMOIiIiIiIqKgYdRERERERUVAw6iIiIiIio\nqBh0EBERERFRUTHoICIiIiKiomLQQURERERERcWgg4iIiIiIiopBBxERERERFRWDDiIiIiIiKioG\nHUREREREVFQMOoiIiIiIqKgYdBARERERUVEx6CAiIiIioqJi0EFEREREREXFoIOIiIiIiIqKQQcR\nERERERUVgw4iIiIiIioqBh1ERERERFRUDDqIiIiIiKioGHQQEREREVFRMeggIiIiIqKiYtBBRER0\nDFmWA8tyjvUwiIiKikEHERHRMWJZDpqagKYmMPAgohMagw4iIiIiIioq37EeABER0cnK5zPQ0OAk\nviYiOlEx6CAiIjqGGGwQ0cmAf9MREREdBRaCExH1j0EHERHRILEQnIgoPww6iIiIhjlmU4joeMea\nDiIiokEaikJwnU0BgIYGhzUgRHRcYtBBRETHjP70/nieSB/PYyciGioMOoiI6JjgJ/j54ba6RHQi\nYNBBREQ0zDHYIKLjHYMOIiI6JvgJPhHRyYNBBxERHTMMNoiITg78256IiIiIiIqKQQcRER3X2MOC\niGj4Y9BBRETHLXYEJyI6PjDoICIiIiKiomIhORERHbe4A5ZyIjRZJKITG4MOIiI6rp3sE202WSSi\n4wH/ZiIiIiIioqJipoOIiOg4xiVmRHQ8YNBBRER0nGOwQUTDHf+WIiIiIiKioipY0PH9738f8+bN\nQ3l5OSoqKnDVVVehvb097bjbb78dlZWVGDVqFD784Q9j/fr1hRoCERERERENQwULOl544QV89atf\nxUsvvYTnnnsOPp8PF198Mfbu3Zs45q677sI999yD++67D+vWrUNFRQUWLVqEgwcPFmoYRERExz12\nWSeiE03BajqefvrppD//8pe/RHl5OZqbm/Gxj30MUkrce++9uOWWW3DNNdcAAB566CFUVFRg+fLl\nuP766ws1FCIiomGrv54a3AKXiE5ERfubbP/+/XAcB6eeeioAoKurCz09PbjkkksSxwQCATQ2NqK5\n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 truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAx0AAAGNCAYAAAB0YBz5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8VfWd7//XWmtvspMAEUWIcguQQCQiaDSJCU1FxU6P\nrZWpnTLSGTttjzPnOP2NnU499fS0eM6xdpzxOLY/2860c6ZjW6y36X0cS61WhECAIMotEkK4CBJB\nEQhkh6y1vuePb9a+5MLNbAnwfj4ePgw7e6/93Xu3+H3v7/fz/TjGGIOIiIiIiEiOuGd6ACIiIiIi\ncm5T6BARERERkZxS6BARERERkZxS6BARERERkZxS6BARERERkZxS6BARERERkZxS6BARERERkZzK\nWej4xje+geu6fP7zn8+6/b777mPcuHEUFBQwd+5cNm3alKshiIiIiIjIEJCT0LFy5Uq+//3vc8UV\nV+A4Tur2Bx98kIcffphHH32U1atXM2bMGObNm0dHR0cuhiEiIiIiIkPAoIeOgwcP8qlPfYof/OAH\njBo1KnW7MYZHHnmEe++9l/nz51NRUcFjjz3G4cOHefzxxwd7GCIiIiIiMkQMeui48847+cQnPsEH\nP/hBjDGp29va2mhvb+emm25K3ZZIJKivr6ehoWGwhyEiIiIiIkNEbDAv9v3vf59t27alVi4yt1bt\n3bsXgLFjx2Y9ZsyYMezZsyfrtoMHDw7msERERERE5H1SVFTU57ZBCx2vv/46X/nKV1i2bBme5wF2\nS1XmasdAMsOJiIiIiIicWwZte9WKFSvYv38/FRUVxONx4vE4S5cu5Tvf+Q7Dhg1j9OjRALS3t2c9\nrr29neLi4sEahoiIiIiIDDGDttIxf/58qqqqUn82xvBnf/ZnTJs2jf/+3/87ZWVlFBcXs2TJEior\nKwFIJpMsW7aMhx56aMDr9rc8M5SsWbMGgKuvvvoMj0R602czNOlzGZr0uQxd+myGJn0uQ5c+mzPj\nROURgxY6ioqK+gSEgoICRo0axYwZMwC4++67eeCBBygvL6esrIz777+fESNGcPvttw/WMERERERE\nZIgZ1ELy3hzHyarXuOeee+js7OSuu+7iwIED1NTUsGTJEgoLC3M5DBEREREROYNyGjpefPHFPrct\nWrSIRYsW5fJpRURERERkCMlJR3IREREREZGIQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeI\niIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiI\niOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSU\nQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeI\niIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiI\niOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSU\nQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOSUQoeIiIiIiOTUoIaOb3/728yaNYuioiKKioqora3l\n2WefzbrPfffdx7hx4ygoKGDu3Lls2rRpMIcgIiIiIiJDzKCGjgkTJvB3f/d3vPLKKzQ1NXH99ddz\n66238uqrrwLw4IMP8vDDD/Poo4+yevVqxowZw7x58+jo6BjMYYiIiIiIyBAyqKHjlltu4UMf+hBT\npkyhtLSU+++/nxEjRrBq1SqMMTzyyCPce++9zJ8/n4qKCh577DEOHz7M448/PpjDEBERERGRISRn\nNR1BEPDEE0+QTCapr6+nra2N9vZ2brrpptR9EokE9fX1NDQ05GoYIiIiIiJyhjnGGDOYF1y/fj3X\nXnstXV1d5Ofn85Of/ISbb76ZhoYG5syZw86dOxk/fnzq/p/5zGfYs2cPzz33XOq2gwcPpn5uaWkZ\nzOGJiIiIiMggKysrS/1cVFTU5/exwX7C8vJyXnvtNQ4ePMjTTz/NggULePHFF4/7GMdxBnsYIiIi\nIiIyRAx66IjH40yZMgWAK6+8ktWrV/Ptb3+br33tawC0t7dnrXS0t7dTXFw84PWuvvrqwR7ioFqz\nZg0w9Md5PtJnMzTpcxma9LkMXfpshiZ9LkOXPpszI3OnUn9y3qcjCALCMGTy5MkUFxezZMmS1O+S\nySTLli2jtrY218MQEREREZEzZFBXOr785S/zkY98hPHjx6dOpXrppZdS9Rp33303DzzwAOXl5ZSV\nlaVOt7r99tsHcxgiIiIiIjKEDGroaG9v51Of+hR79+6lqKiIWbNm8dxzzzFv3jwA7rnnHjo7O7nr\nrrs4cOAANTU1LFmyhMLCwsEchoiIiIiIDCGDGjp+8IMfnPA+ixYtYtGiRYP5tCIiIiIiMoTlvKZD\nRERERETObwodIiIiIiKSUwodIiIiQ4Tvh/h+eKaHISIy6BQ6REREhgDfD1m+HJYvR8FDRM45Ch0i\nIiIiIpJTg96RXERERE5dLOZSVxemfhYROZcodIiIiAwRChsicq7S324iIiIiIpJTCh0iIiIiIpJT\nCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0i\nIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIi\nIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iIiIiIpJTCh0iInLe8/0Q\n3w/P9DDes3PldYjIuUehQ0REzmu+H7J8OSxfzlk9YT9XXoeInJsUOkREREREJKdiZ3oAIiIiZ1Is\n5lJXF6Z+PlnRasKpPCaXTvd1iIi8HxQ6RETkvHeqk/RoKxNAXV04ZCb5Q2UcIiK96W8nERERERHJ\nKa10iIiInCJtZRIROTUKHSIiIqchV2FjqNWKiIgMBv2NJiIiMkTo2FsROVcpdIiIiIiISE5pe5WI\niMgQoVoRETlXKXSIiMh5bajVUAyVcYiIDCb9zSYiIuct1VCIiLw/FDpERERERCSnBi10fOMb3+Ca\na66hqKiIMWPGcMstt7Bx48Y+97vvvvsYN24cBQUFzJ07l02bNg3WEERERE6JraGA6mpzpociInJO\nG7TQ8dJLL/GXf/mXrFixghdeeIFYLMaNN97IgQMHUvd58MEHefjhh3n00UdZvXo1Y8aMYd68eXR0\ndAzWMERERE5ZY6OjLVYiIjk0aIXkzz33XNaff/SjH1FUVERDQwM333wzxhgeeeQR7r33XubPnw/A\nY489xpgxY3j88ce58847B2soIiJyFhtqhd0iIvLe5exv9EOHDhGGIaNGjQKgra2N9vZ2brrpptR9\nEokE9fX1NDQ05GoYIiJyFvD9MPVPLgq7o2v3J9piVVd3ckHneNcSEZH+OcaYnGxk/aM/+iNaW1tZ\ns2YNjuPQ0NDAnDlz2LlzJ+PHj0/d7zOf+Qx79uzJWik5ePBg6ueWlpZcDE9ERIYIY1w2bhyJ5zlM\nm3aEzZsLAKioOITjvPfJfXT9/q5pjA0ZJ/s8x7vWqY7pVJ5XRGSoKysrS/1cVFTU5/c56dPx13/9\n1zQ0NLBs2TIcxznh/U/mPiIicu7yPIcdO/LxfaioOIzjhDmfkA9WgDhbnldE5Ewa9NDxhS98gaee\neooXX3yRkpKS1O3FxcUAtLe3Z610tLe3p37Xn6uvvnqwhzio1qxZAwz9cZ6P9NkMTfpchqYz/bnM\nnBnQ0GDwPJerrhr8eo4rr+xbJ+L7IUePRr8/+efs71qn4lSf90x/NtI/fS5Dlz6bMyNzp1J/BjV0\n/NVf/RVPP/00L774ItOmTcv63eTJkykuLmbJkiVUVlYCkEwmWbZsGQ899NBgDkNERM4yiYRHfX3u\nCsj7u6at5Tj153yv4zvd5xUROZsNWui46667+PGPf8zPf/5zioqK2Lt3LwAjRoygsLAQx3G4++67\neeCBBygvL6esrIz777+fESNGcPvttw/WMEREpJez5TSo9zq+03mduXpPTjSW/m4/Wz4nEZHTMWih\n47vf/S6O43DDDTdk3X7ffffxta99DYB77rmHzs5O7rrrLg4cOEBNTQ1LliyhsLBwsIYhIiIZotOg\nAOrqwnN2QjuUXufpjGUojV9EJBcGLXSE4ckVwi1atIhFixYN1tOKiMg54HS/5T+TR9dqZUJE5OTl\n5PQqEREZGt6v+oHek/9Tea7T/ZY/+3H2n1N97t7XO9nHH2/Mp/Oeq85DRM51Ch0iIue4XE9iowl4\nEIR4ngM4Z2SL0Ht5vsHe3nQ6j1fYEJFzmUKHiIi8Z0EQEoamJ3ScmvdyitSZWB2IVkTe68qKiMj5\nRKFDRETeM89z8DyH6mqIxU59In66E/fBmvD3F2D6226VXhExVFfbo35FROTEFDpERGQQ2BWOkw0c\nQ7EIu/9wQSqMpBmam0O6u+G665wh9RpERIYq/U0pIiIn5PvhgCdF2VUCu93oVIqwly8/s6dPnSzf\nN6nxAlRWGoIAWlsdksmB3xcREUnTSoeIiBzXyRRZn8rqxpmWucoy0IpL5naraBUnkki4VFQYgiCk\nqck+7kwUzg/F1SIRkYEodIiIyCk5ncnuYB9ve7oyx1FdHdDY6PSMKR2IojFljq13vUddXYjvu6nH\nv9/UTFBEzjYKHSIiclzZ3/rznie7vm+Ixc58LYTvG4LA4Hkuvm8GDCD9haxYzCUW6xtGRELine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f1430666c50>"
|
||||
"<matplotlib.figure.Figure at 0x7eff933866d8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 2
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The Algorithm"
|
||||
"##The Algorithm"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -338,11 +336,10 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 3,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Initialize Step"
|
||||
"###Initialize Step"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -358,11 +355,10 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 3,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Predict Step"
|
||||
"###Predict Step"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -414,11 +410,10 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 3,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Update Step"
|
||||
"###Update Step"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -504,7 +499,7 @@
|
||||
"\n",
|
||||
"$$\\boldsymbol\\chi = \\boldsymbol\\chi + \\mathbf{K}[\\mathbf{z} -\\boldsymbol\\chi_h + \\mathbf{v}_R]$$ \n",
|
||||
"\n",
|
||||
"Here $\\mathbf{v}_R$ is the perturbation that we add to the sigmas. In Python we can implment this with\n",
|
||||
"Here $\\mathbf{v}_R$ is the perturbation that we add to the sigmas. In Python we can implement this with\n",
|
||||
"\n",
|
||||
" v_r = multivariate_normal([0]*dim_z, R, N)\n",
|
||||
" for i in range(N):\n",
|
||||
@@ -518,11 +513,10 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Implementation and Example"
|
||||
"##Implementation and Example"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -632,11 +626,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f14189316d8>"
|
||||
"<matplotlib.figure.Figure at 0x7eff8c048518>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 5
|
||||
"prompt_number": 3
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -646,20 +640,19 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Outstanding Questions"
|
||||
"##Outstanding Questions"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"All of this should be considered as *my* questions, not lingering questions in the literature. However, I am copying equations directly from well known sources in the field, and they do not address the discrepencies.\n",
|
||||
"All of this should be considered as *my* questions, not lingering questions in the literature. However, I am copying equations directly from well known sources in the field, and they do not address the discrepancies.\n",
|
||||
"\n",
|
||||
"First, in Brown [2] we have all sums multipied by $\\frac{1}{N}$, as in \n",
|
||||
"First, in Brown [2] we have all sums multiplied by $\\frac{1}{N}$, as in \n",
|
||||
"\n",
|
||||
"$$ \\hat{x} = \\frac{1}{N}\\sum_{i=1}^N\\chi_k^{(i)}$$\n",
|
||||
"\n",
|
||||
@@ -676,9 +669,9 @@
|
||||
"\\end{aligned}\n",
|
||||
" $$\n",
|
||||
"\n",
|
||||
"However, I see no justification or reason to use $N-1$ to compute the mean. If I use $N-1$ in the filter for the mean the filter does not converge and the state essentially follows the measurements without any filtering. However, I do see a reason to use it for the covariance as in Crassidis, in contrast to Brown. Again, I support my decision emperically - $N-1$ works in the implementation of the filter, $N$ does not.\n",
|
||||
"However, I see no justification or reason to use $N-1$ to compute the mean. If I use $N-1$ in the filter for the mean the filter does not converge and the state essentially follows the measurements without any filtering. However, I do see a reason to use it for the covariance as in Crassidis, in contrast to Brown. Again, I support my decision empirically - $N-1$ works in the implementation of the filter, $N$ does not.\n",
|
||||
"\n",
|
||||
"My second question relates to the use of the $\\mathbf{R}$ matrix. In Brown $\\mathbf{R}$ is added to $\\mathbf{P}_{zz}$ whereas it isn't in Crassidis and other sources. I have read on the web notes by other implementers tthat adding R helps the filter, and it certainly seems reasonable and necessary to me, so this is what I do. \n",
|
||||
"My second question relates to the use of the $\\mathbf{R}$ matrix. In Brown $\\mathbf{R}$ is added to $\\mathbf{P}_{zz}$ whereas it isn't in Crassidis and other sources. I have read on the web notes by other implementers that adding R helps the filter, and it certainly seems reasonable and necessary to me, so this is what I do. \n",
|
||||
"\n",
|
||||
"My third question relates to the computation of the covariance $\\mathbf{P}$. Again, we have different equations in Crassidis and Brown. I have chosen the implementation given in Brown as it seems to give me the behavior that I expect (convergence of $\\mathbf{P}$ over time) and it closely compares to the form in the linear KF. In contrast I find the equations in Crassidis do not seem to converge much.\n",
|
||||
"\n",
|
||||
@@ -692,15 +685,14 @@
|
||||
"\n",
|
||||
"To me the Crassidis equation seems logical, and it produces a filter that performs like the linear KF for linear problems, so that is the formulation that I have chosen. \n",
|
||||
"\n",
|
||||
"I am not comfortable saying either book is wrong; it is quite possible that I missed some point that makes each set of equations work. I can say that when I implemented them as written I did not get a filter that worked. I define \"work\" as performs essentially the same as the linear KF for linear problems. Between reading implementation notes on the web and reasoning about various issues I have chosen the implementation in this chapter, which does in fact seem to work correctly. I have yet to explore the significant amount of original literature that will likely definitively explain the discrepencies. I would like to leave this here in some form even if I do find an explanation that reconciles the various differences, as if I got confused by these books than probably others will as well."
|
||||
"I am not comfortable saying either book is wrong; it is quite possible that I missed some point that makes each set of equations work. I can say that when I implemented them as written I did not get a filter that worked. I define \"work\" as performs essentially the same as the linear KF for linear problems. Between reading implementation notes on the web and reasoning about various issues I have chosen the implementation in this chapter, which does in fact seem to work correctly. I have yet to explore the significant amount of original literature that will likely definitively explain the discrepancies. I would like to leave this here in some form even if I do find an explanation that reconciles the various differences, as if I got confused by these books than probably others will as well."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"References"
|
||||
"##References"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:4bdc568be195aa4a12705bb1ecde8c5a68b6eab796138620bf9ad7e459a003d8"
|
||||
"signature": "sha256:012b13d3e889e7a7b88e356eb4af5a1b862d7aad3511e4b9d1d606066d978bb6"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -16,11 +16,10 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 1,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Installation, Python, Numpy, and filterpy"
|
||||
"#Installation, Python, Numpy, and filterpy"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -259,7 +258,7 @@
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f098c8276a0>"
|
||||
"<IPython.core.display.HTML at 0x7f0785104438>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -273,31 +272,45 @@
|
||||
"\n",
|
||||
"Another reason I choose it is because I find that a typical textbook leaves many things opaque. For example, there might be a beautiful plot next to some pseudocode. That plot was produced by software, but software that is not available to me as a reader. I want everything that went into producing this book to be available to the reader. How do you plot a covariance ellipse? You won't know if you read most books. With IPython Notebook all you have to do is look at the source code.\n",
|
||||
"\n",
|
||||
"Even if you choose to read the book online you will want Python and the SciPy stack installed so that you can write your own Kalman filters. There are many different ways to install these libraries, and I cannot cover them all, but I will cover a few typical scenerios."
|
||||
"Even if you choose to read the book online you will want Python and the SciPy stack installed so that you can write your own Kalman filters. There are many different ways to install these libraries, and I cannot cover them all, but I will cover a few typical scenarios."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Installing the SciPy Stack\n",
|
||||
"\n",
|
||||
"This book requires IPython, NumPy, SciPy, SymPy, and Matplotlib. The SciPy stack depends on third party Fortran and C code, and is *not* trivial to install from source code - even the SciPy website strongly urges using a prebuilt installation, and I concur with this advice.\n",
|
||||
"## Installing the SciPy Stack"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This book requires IPython, NumPy, SciPy, SymPy, and Matplotlib. The SciPy stack depends on third party Fortran and C code, and is *not* trivial to install from source code - even the SciPy website strongly urges using a pre-built installation, and I concur with this advice.\n",
|
||||
"\n",
|
||||
"I use the Anaconda distribution from Continuum Analytics. This is an excellent package that combines all of the packages listed above, plus many others in one distribution. Installation is very straightforward, and it can be done alongside other Python installation you might already have on your machine. It is free to use, and Continuum Analytics will always ensure that the latest releases of all it's packages are available and built correctly for your OS. You may download it from here: http://continuum.io/downloads\n",
|
||||
"\n",
|
||||
"I strongly recommend using the latest Python 3 version that they provide; I am developing in Python 3.x, and only sporadically test that everything works in Python 2.7. However, it is my long term goal to support 2.7, and if you wish to either not be bothered with 3.x and are willing to be ocassionally frustrated with breaking check ins you may stick with Python 2.7.\n",
|
||||
"I strongly recommend using the latest Python 3 version that they provide; I am developing in Python 3.x, and only sporadically test that everything works in Python 2.7. However, it is my long term goal to support 2.7, and if you wish to either not be bothered with 3.x and are willing to be occasionally frustrated with breaking check ins you may stick with Python 2.7.\n",
|
||||
"\n",
|
||||
"I am still writing the book, so I do not know exactly what versions of each package is required. I do strongly urge you to use IPython 2.0 or later (this version number has nothing to do with Python 2 vs 3, by the way), as it provides many useful features which I will explain later. \n",
|
||||
"\n",
|
||||
"There are other choices for installing the SciPy stack. The SciPy stack provides instructions here: http://scipy.org/install.html\n",
|
||||
"There are other choices for installing the SciPy stack. The SciPy stack provides instructions here: http://scipy.org/install.html"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Manual Install of the SciPy stack"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This really isn't easy, and again I advice you to follow the advice of the SciPy website and to use a prepackaged solution. Still, I will give you one example of an install from a fresh operating system. You will have to adapt the instructions to fit your OS and OS version. I will use xubuntu, a linux distribution, because that is what I am most familiar with. I know there are pre-built binaries for Windows (link provided on the SciPy installation web page), and I have no experience with Mac and Python.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"### Manual Install of the SciPy stack\n",
|
||||
"\n",
|
||||
"This really isn't easy, and again I advice you to follow the advice of the SciPy website and to use a prepackaged solution. Still, I will give you one example of an install from a fresh operating system. You will have to adapt the instructions to fit your OS and OS version. I will use xubuntu, a linux distribution, because that is what I am most familiar with. I know there are prebuilt binaries for Windows (link provided on the SciPy installation webpage), and I have no experience with Mac and Python.\n",
|
||||
"\n",
|
||||
"I started by doing a fresh install of xubuntu 14.04 on a virtual machine. At that point there is a version of Python 2.7.6 and 3.4 preinstalled. As discussed above you may use either version; I will give the instructions for version 3.4 both because I prefer version 3 and because it can be slightly more tricky because 2.7 is the default Python that runs in xubuntu. Basically the difference is that you have to append a '3' at the end of commands. `python3` instead of `python`, `pip3` instead of `pip`, and so on.\n",
|
||||
"I started by doing a fresh install of xubuntu 14.04 on a virtual machine. At that point there is a version of Python 2.7.6 and 3.4 pre-installed. As discussed above you may use either version; I will give the instructions for version 3.4 both because I prefer version 3 and because it can be slightly more tricky because 2.7 is the default Python that runs in xubuntu. Basically the difference is that you have to append a '3' at the end of commands. `python3` instead of `python`, `pip3` instead of `pip`, and so on.\n",
|
||||
"\n",
|
||||
"First we will install pip with the following command:\n",
|
||||
"\n",
|
||||
@@ -356,10 +369,20 @@
|
||||
"If successful, it should launch a browser showing you the IPython home page.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"That was not fun. It actually goes somewhat smoother in Windows, where you can download prebuilt binaries for these packages; however, you are dependent on this being done for you in a timely manner. So, please follow the SciPy advice and use a prebuilt distribution! I will not be supporting this manual install process.\n",
|
||||
"\n",
|
||||
"## Installing/downloading and running the book\n",
|
||||
"\n",
|
||||
"That was not fun. It actually goes somewhat smoother in Windows, where you can download pre-built binaries for these packages; however, you are dependent on this being done for you in a timely manner. So, please follow the SciPy advice and use a pre-built distribution! I will not be supporting this manual install process."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Installing/downloading and running the book"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Okay, so now you have the SciPy stack installed, how do you download the book? This is easy as the book is in a github repository. From the command line type the following:\n",
|
||||
"\n",
|
||||
" git clone https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python.git\n",
|
||||
@@ -371,10 +394,20 @@
|
||||
" cd Kalman-and-Bayesian-Filters-in-Python\n",
|
||||
" ipython notebook\n",
|
||||
"\n",
|
||||
"A browser window should launch showing you all of the chapters in the book. Browse to the first chapter by clicking on it, then open the notebook in that subdirectory by clicking on the link.\n",
|
||||
"\n",
|
||||
"## Using IPython Notebook\n",
|
||||
"\n",
|
||||
"A browser window should launch showing you all of the chapters in the book. Browse to the first chapter by clicking on it, then open the notebook in that subdirectory by clicking on the link."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Using IPython Notebook"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"A complete tutorial on IPython Notebook is beyond the scope of this book. Many are available online. In short, Python code is placed in cells. These are prefaced with text like `In [1]:`, and the code itself is in a boxed area. If you press CTRL-ENTER while focus is inside the box the code will run and the results will be displayed below the box. Like this:"
|
||||
]
|
||||
},
|
||||
@@ -405,11 +438,10 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"SymPy"
|
||||
"##SymPy"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user