Extensive copy editing.
This commit is contained in:
1 parent
7b218e7243
commit
41d8d246e0
8 files changed
+795
-740
No files matched your search
@@ -349,7 +349,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## State Space Representations of Dynamic Systems"
|
||||
"## State-Space Representations of Dynamic Systems"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -358,7 +358,7 @@
|
||||
"source": [
|
||||
"The equation $\\mathbf{v} = \\frac{d \\mathbf{x}}{d t}$ is the simplest possible differential equation. We trivially integrate it into the high school physics equation $x = vt + x_0$. Almost all other differential equations encountered in physical systems will not yield to this approach. \n",
|
||||
"\n",
|
||||
"*State space* methods became popular around the time of the Apollo missions, in no small part due to the work of Dr. Kalman. The idea is simple. First, we convert a system of $n^{th}$-order differential equations into an equivalent set of first-order differential systems. We can then represent that set of first order equations as in vector matrix form. Once in this form we use the formidable powers of linear algebra to solve the system of equations. The Kalman filter is an example of this power. "
|
||||
"*State-space* methods became popular around the time of the Apollo missions, in no small part due to the work of Dr. Kalman. The idea is simple. First, we convert a system of $n^{th}$-order differential equations into an equivalent set of first-order differential systems. We can then represent that set of first order equations as in vector matrix form. Once in this form we use the formidable powers of linear algebra to solve the system of equations. The Kalman filter is an example of this power. "
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -449,7 +449,7 @@
|
||||
"\n",
|
||||
"In other words, we need to find the inverse of $F$. This is not at all trivial, and a significant amount of coursework in a STEM education is devoted to finding tricky, analytic solutions to this problem. \n",
|
||||
"\n",
|
||||
"In the end, however, they are tricks, and many simple forms of $f(x)$ either have no closed form solution or pose extreme difficulties. Instead, the practicing engineer turns to state space methods to find solutions."
|
||||
"In the end, however, they are tricks, and many simple forms of $f(x)$ either have no closed form solution or pose extreme difficulties. Instead, the practicing engineer turns to state-space methods to find solutions."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -458,7 +458,7 @@
|
||||
"source": [
|
||||
"### Forming First Order Equations from Higher Order Equations\n",
|
||||
"\n",
|
||||
"Models of physical systems often require second or higher order equations. However, state space methods require first-order differential equations, which are equations with only first derivatives. Any higher order system of equations can be converted to a first order set of equations by defining extra variables for the first order terms and then solving. \n",
|
||||
"Models of physical systems often require second or higher order equations. However, state-space methods require first-order differential equations, which are equations with only first derivatives. Any higher order system of equations can be converted to a first order set of equations by defining extra variables for the first order terms and then solving. \n",
|
||||
"\n",
|
||||
"Let's do an example. Given the system $\\ddot{x} - 6\\dot{x} + 9x = t$ find the first order equations.\n",
|
||||
"\n",
|
||||
@@ -589,7 +589,7 @@
|
||||
"\n",
|
||||
"$$ v = \\dot{x}\\\\a=\\ddot{x} =0,$$\n",
|
||||
"\n",
|
||||
"which we can put in state space matrix form as\n",
|
||||
"which we can put in state-space matrix form as\n",
|
||||
"\n",
|
||||
"$$\\begin{bmatrix}\\dot{x} \\\\ \\ddot{x}\\end{bmatrix} =\\begin{bmatrix}0&1\\\\0&0\\end{bmatrix} \\begin{bmatrix}x \\\\ \\dot{x}\\end{bmatrix}$$\n",
|
||||
"\n",
|
||||
@@ -619,7 +619,7 @@
|
||||
"This should look very familiar to you! This is the equation we used in the **Multivariate Kalman Filter** chapter to track a moving object.\n",
|
||||
"\n",
|
||||
"$$\n",
|
||||
"{\\begin{bmatrix}x\\\\\\dot{x}\\end{bmatrix}}^- =\\begin{bmatrix}1&t \\\\ 0&1\\end{bmatrix} \\begin{bmatrix}x \\\\ \\dot{x}\\end{bmatrix}\n",
|
||||
"{\\begin{bmatrix}x\\\\\\dot{x}\\end{bmatrix}}^- =\\begin{bmatrix}1&\\Delta t \\\\ 0&1\\end{bmatrix} \\begin{bmatrix}x \\\\ \\dot{x}\\end{bmatrix}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
"We derived this equation in that chapter by using techniques that are much easier to understand. The advantage of the Taylor series expansion is that we can use it for any arbitrary set of differential equations which are time invariant. \n",
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": 14,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -30,6 +30,9 @@
|
||||
"@import url('http://fonts.googleapis.com/css?family=Arimo');\n",
|
||||
"@import url('http://fonts.googleapis.com/css?family=Fira_sans');\n",
|
||||
"\n",
|
||||
".CodeMirror pre {\n",
|
||||
" font-family: 'Source Code Pro', Consolas, monocco, monospace;\n",
|
||||
"}\n",
|
||||
" div.cell{\n",
|
||||
" width: 900px;\n",
|
||||
" margin-left: 0% !important;\n",
|
||||
@@ -49,7 +52,7 @@
|
||||
"\t\n",
|
||||
" div.input_area {\n",
|
||||
" background: #F6F6F9;\n",
|
||||
" border: 1px solid #586e75;\n",
|
||||
" border: 1px solid #586e75; \n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" .text_cell_render h1 {\n",
|
||||
@@ -108,6 +111,7 @@
|
||||
" h5 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" .text_cell_render h5 {\n",
|
||||
" font-weight: 200;\n",
|
||||
" font-style: normal;\n",
|
||||
@@ -142,7 +146,8 @@
|
||||
"}\n",
|
||||
"\n",
|
||||
" code{\n",
|
||||
" font-size: 70%;\n",
|
||||
" font-size: 6pt;\n",
|
||||
"\n",
|
||||
" }\n",
|
||||
" .rendered_html code{\n",
|
||||
" background-color: transparent;\n",
|
||||
@@ -235,7 +240,8 @@
|
||||
"<script>\n",
|
||||
" MathJax.Hub.Config({\n",
|
||||
" TeX: {\n",
|
||||
" extensions: [\"AMSmath.js\", \"autobold.js\"]\n",
|
||||
" extensions: [\"AMSmath.js\"],\n",
|
||||
" equationNumbers: { autoNumber: \"AMS\", useLabelIds: true}\n",
|
||||
" },\n",
|
||||
" tex2jax: {\n",
|
||||
" inlineMath: [ ['$','$'], [\"\\\\(\",\"\\\\)\"] ],\n",
|
||||
@@ -243,7 +249,7 @@
|
||||
" },\n",
|
||||
" displayAlign: 'center', // Change this to 'center' to center equations.\n",
|
||||
" \"HTML-CSS\": {\n",
|
||||
" scale:100,\n",
|
||||
" scale:95,\n",
|
||||
" availableFonts: [],\n",
|
||||
" preferredFont:null,\n",
|
||||
" webFont: \"TeX\",\n",
|
||||
@@ -256,7 +262,7 @@
|
||||
"<IPython.core.display.HTML object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 1,
|
||||
"execution_count": 14,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@@ -280,7 +286,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The Kalman filter that we have developed to this point is extremely good, but it is also limited. All of the equations are linear, and so the filter can only handle linear problems. But the world is nonlinear, and so the classic filter that we have been studying to this point can have very limited utility. \n",
|
||||
"The Kalman filter that we have developed uses linear equations, and so the filter can only handle linear problems. But the world is nonlinear, and so the classic filter that we have been studying to this point can have very limited utility. \n",
|
||||
"\n",
|
||||
"There can be nonlinearity in the process model. Suppose we wanted to track the motion of a weight on a spring, such as an automobile's suspension. The equation for the motion with $m$ being the mass, $k$ the spring constant, and $c$ the damping force is \n",
|
||||
"\n",
|
||||
@@ -292,17 +298,17 @@
|
||||
"\n",
|
||||
"$$x=\\sqrt{\\mathtt{slant}^2 - \\mathtt{altitude}^2}$$\n",
|
||||
"\n",
|
||||
"These facts were not lost on the early adopters of the Kalman filter. Shortly after the idea of the Kalman filter was published by Kalman people began working on how to extend the Kalman filter into nonlinear problems. \n",
|
||||
"These facts were not lost on the early adopters of the Kalman filter. Soon after Dr. Kalman published his paper people began working on how to extend the Kalman filter for nonlinear problems. \n",
|
||||
"\n",
|
||||
"It is almost true to state that the only equation we (anyone) know how to solve is $\\mathbf{Ax}=\\mathbf{b}$. We only really know how to do linear algebra. I can give you a linear equation and you can solve it. If I told you your job depended on knowing how to solve the equation $ax+3b=c$ you would trivially solve it for any values of $a$, $b$, and $c$. There is no linear equation that you cannot either solve or prove has no solution ($x+1=x$).\n",
|
||||
"It is almost true to state that the only equation anyone knows how to solve is $\\mathbf{Ax}=\\mathbf{b}$. We only really know how to do linear algebra. I can give you any linear set of equations and you can either solve it or prove that it haas no solution. \n",
|
||||
"\n",
|
||||
"Anyone with formal education in math or physics has spent years learning various analytic ways to solve integrals, differential equations and so on. Yet even trivial physical systems produce equations that cannot be solved analytically. I can take an equation that you are able to integrate, insert a $\\log$ term, and render it insolvable. It is stuff like this that leads to jokes about physicists stating the problem \"assume a spherical cow on a frictionless surface in a vacuum...\"\n",
|
||||
"Anyone with formal education in math or physics has spent years learning various analytic ways to solve integrals, differential equations and so on. Yet even trivial physical systems produce equations that cannot be solved analytically. I can take an equation that you are able to integrate, insert a $\\log$ term, and render it insolvable. It is stuff like this that leads to jokes about physicists stating \"assume a spherical cow on a frictionless surface in a vacuum...\". Without making extreme simplifications most physical problems do not have analytic solutions.\n",
|
||||
"\n",
|
||||
"How do we do things like model airflow over an aircraft in a computer, or predict weather, or track missiles with a Kalman filter? We retreat to what we know: $\\mathbf{Ax}=\\mathbf{b}$. We find some way to linearize the problem, turning it into a set of linear equations, and then use linear algebra software packages to compute an approximate solution. Linearizing a nonlinear problem gives us inexact answers, and in a recursive algorithm like a Kalman filter or weather tracking system these small errors can sometimes reinforce each other at each step, quickly causing the algorithm to spit out nonsense. \n",
|
||||
"\n",
|
||||
"What we are about to embark upon is a difficult problem. There is not one obvious, correct, mathematically optimal solution anymore. We will be using approximations, we will be introducing errors into our computations, and we will forever be battling filters that *diverge*, that is, filters whose numerical errors overwhelm the solution. \n",
|
||||
"\n",
|
||||
"In the remainder of this short chapter I will illustrate the specific problems the nonlinear Kalman filter faces. You can only design a filter after understanding the particular problems the nonlinearity in your problem causes. Subsequent chapters will then design and implement different kinds of nonlinear filters."
|
||||
"In the remainder of this short chapter I will illustrate the specific problems the nonlinear Kalman filter faces. You can only design a filter after understanding the particular problems the nonlinearity in your problem causes. Subsequent chapters will then teach you how to design and implement different kinds of nonlinear filters."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -316,33 +322,39 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"As asserted in the introduction the only math you really know how to do is linear math. Equations of the form \n",
|
||||
"As asserted in the introduction the only math you really know how to do is linear math, that is, equations of the form \n",
|
||||
"\n",
|
||||
"$$ A\\mathbf{x}=\\mathbf{b}$$\n",
|
||||
"\n",
|
||||
"That may strike you as hyperbole. After all, in this book we have integrated a polynomial to get distance from velocity and time. We know how to integrate a polynomial, for example, and so we are able to find the closed form equation for distance given velocity and time:\n",
|
||||
"That may strike you as hyperbole. After all, in this book we have integrated a polynomial to get distance from velocity and time. We know how to integrate polynomials, and so we are able to find the closed form equation for distance given velocity and time:\n",
|
||||
"\n",
|
||||
"$$\\int{(vt+v_0)}\\,dt = \\frac{a}{2}t^2+v_0t+d_0$$\n",
|
||||
"\n",
|
||||
"That's nonlinear. But it is also a very special form. You spent a lot of time, probably at least a year, learning how to integrate various terms, and you still can not integrate some arbitrary equation - no one can. We don't know how. If you took freshman Physics you perhaps remember homework involving sliding frictionless blocks on a perfect plane and other toy problems. At the end of the course you were almost entirely unequipped to solve real world problems because the real world is nonlinear, and you were taught linear, closed forms of equations. It made the math tractable, but mostly useless. \n",
|
||||
"That's a nonlinear equation that we know how to solve. But it is also a very special form. You spent a lot of time, probably at least a year, learning how to integrate various terms, and you still can not integrate some arbitrary equation - no one can. We don't know how. If you took freshman Physics you perhaps remember homework involving sliding frictionless blocks on a perfect plane and other toy problems. At the end of the course you were almost entirely unequipped to solve real world problems because the real world is nonlinear, and you were taught linear, closed forms of equations. It made the math tractable, but mostly useless. \n",
|
||||
"\n",
|
||||
"The mathematics of the Kalman filter is beautiful in part due to the Gaussian equation being so special. It is nonlinear, but when we add and multiply it using linear algebra we get another Gaussian equation as a result. That is very rare. $\\sin{x}*\\sin{y}$ does not yield a $\\sin(\\cdot)$ as an output.\n",
|
||||
"The mathematics of the Kalman filter is beautiful in part due to the Gaussian equation being so special. It is nonlinear, but when we add and multiply them using linear algebra we get another Gaussian equation as a result. That is very rare. $\\sin{x}*\\sin{y}$ does not yield a $\\sin$ as an output.\n",
|
||||
"\n",
|
||||
"> If you are not well versed in signals and systems there is a perhaps startling fact that you should be aware of. A linear system is defined as a system whose output is linearly proportional to the sum of all its inputs. A consequence of this is that to be linear if the input is zero than the output must also be zero. Consider an audio amp - if I sing into a microphone, and you start talking, the output should be the sum of our voices (input) scaled by the amplifier gain. But if amplifier outputs a nonzero signal for a zero input the additive relationship no longer holds. This is because you can say $amp(roger) = amp(roger + 0)$ This clearly should give the same output, but if amp(0) is nonzero, then\n",
|
||||
"What I mean by linearity may be obvious, but there are some subtleties. The mathematical requirements are twofold:\n",
|
||||
"\n",
|
||||
"> $$\n",
|
||||
"* additivity: $f(x+y) = f(x) + f(y)$\n",
|
||||
"* homogeneity: $f(ax) = af(x)$\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"This leads us to say that a linear system is defined as a system whose output is linearly proportional to the sum of all its inputs. A consequence of this is that to be linear if the input is zero than the output must also be zero. Consider an audio amp - if I sing into a microphone, and you start talking, the output should be the sum of our voices (input) scaled by the amplifier gain. But if amplifier outputs a nonzero signal such as a hum for a zero input the additive relationship no longer holds. This is because you linearity requires that $amp(voice) = amp(voice + 0)$ This clearly should give the same output, but if amp(0) is nonzero, then\n",
|
||||
"\n",
|
||||
"$$\n",
|
||||
"\\begin{aligned}\n",
|
||||
"amp(roger) &= amp(roger + 0) \\\\\n",
|
||||
"&= amp(roger) + amp(0) \\\\\n",
|
||||
"&= amp(roger) + non\\_zero\\_value\n",
|
||||
"amp(voice) &= amp(voice + 0) \\\\\n",
|
||||
"&= amp(voice) + amp(0) \\\\\n",
|
||||
"&= amp(voice) + non\\_zero\\_value\n",
|
||||
"\\end{aligned}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
">which is clearly nonsense. Hence, an apparently linear equation such as\n",
|
||||
">\n",
|
||||
"which is clearly nonsense. Hence, an apparently linear equation such as\n",
|
||||
"\n",
|
||||
"$$L(f(t)) = f(t) + 1$$\n",
|
||||
">\n",
|
||||
">is not linear because $L(0) = 1$! Be careful!"
|
||||
"\n",
|
||||
"is not linear because $L(0) = 1$! Be careful!"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -356,7 +368,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"I particularly like the following way of looking at the problem, which I am borrowing from Dan Simon's *Optimal State Estimation* [[1]](#[1]). Consider a tracking problem where we get the range and bearing to a target, and we want to track its position. Reported distance is 50 km, and the reported angle is 90$^\\circ$. Now, given that sensors are imperfect, assume that the errors in both range and angle are distributed in a Gaussian manner. Given an infinite number of measurements what is the expected value of the position?\n",
|
||||
"I particularly like the following way of looking at the problem, which I am borrowing from Dan Simon's *Optimal State Estimation* [[1]](#[1]). Consider a tracking problem where we get the range and bearing to a target, and we want to track its position. The reported distance is 50 km, and the reported angle is 90$^\\circ$. Assume that the errors in both range and angle are distributed in a Gaussian manner. Given an infinite number of measurements what is the expected value of the position?\n",
|
||||
"\n",
|
||||
"I have been recommending using intuition to gain insight, so let's see how it fares for this problem (hint: nonlinear problems are *not* intuitive). We might reason that since the mean of the range will be 50 km, and the mean of the angle will be 90$^\\circ$, that clearly the answer will be x=0 km, y=50 km.\n",
|
||||
"\n",
|
||||
@@ -365,16 +377,16 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": 15,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x7634c18>"
|
||||
"<matplotlib.figure.Figure at 0x859fbe0>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -404,7 +416,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We can see that out intuition failed us because the nonlinearity of the problem forced all of the errors to be biased in one direction. This bias, over many iterations, can cause the Kalman filter to diverge. But this chart should now inform your intuition for the rest of the book - linear approximations applied to nonlinear problems yields inaccurate results."
|
||||
"We can see that out intuition failed us because the nonlinearity of the problem forced all of the errors to be biased in one direction. This bias, over many iterations, can cause the Kalman filter to diverge. Even if it doesn't diverge the solution will not be optimal. Linear approximations applied to nonlinear problems yields inaccurate results."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -418,21 +430,21 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Gaussians are not closed under an arbitrary nonlinear function. Recall the equations of the Kalman filter - at each evolution (prediction) we pass the Gaussian representing the state through the process function to get the Gaussian at time $k$. Our process function was always linear, so the output was always another Gaussian. Let's look at that on a graph. I will take an arbitrary Gaussian and pass it through the function $f(x) = 2x + 1$ and plot the result. We know how to do this analytically, but lets do this with sampling. I will generate 500,000 points with a normal distribution, pass it through the function, and then plot the results. I do it this way because the next example will be nonlinear, and we will have no way to compute this analytically."
|
||||
"Gaussians are not closed under an arbitrary nonlinear function. Recall the equations of the Kalman filter - at each evolution (prediction) we pass the Gaussian representing the state through the process function to get the Gaussian at time $k$. Our process function was always linear, so the output was always another Gaussian. Let's look at that on a graph. I will take an arbitrary Gaussian and pass it through the function $f(x) = 2x + 1$ and plot the result. We know how to do this analytically, but lets use sampling. I will generate 500,000 points with a normal distribution, pass them through $f(x)$, and plot the results. I do it this way because the next example will be nonlinear, and we will have no way to compute this analytically."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": 16,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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\n+9527ffR0tJSMKa3t1dbtmzR9OnTNWXKFK1du1YXLlwoGNPd3a2NGzeqvr5e9fX1euSRRxQOhyfg\nVwRQrug93icS71LaSisS7yJRB4AiNGzCHovFdOutt+rZZ59VTU3Nt32LLzEMQ8uXL1dnZ2f+4+23\n3y4Ys3XrVr355pt6/fXX9cEHHygSiWj16tXKZrP5MRs2bNCpU6d0+PBhHTp0SCdPntTGjRsn6NcE\nUG4sy1IoElBPIup0KK5QriVBAFAKhm3ruGrVKq1atUpS32z6QLZtq6qqSj6fb9Dnh8Nhvfzyy3rl\nlVd0//33S5JeffVVzZ07V++++65WrFihM2fO6PDhw/rwww915513SpJefPFF3X333fr000910003\njfX3A1CmcgsrvZU16k0nHI7GeeVcEgQAxW7cV3DDMHT06FE1NTXp5ptv1qZNmxQMBvOPnzhxQul0\nWitWrMgfmz17thYuXKjW1lZJUmtrq6ZMmaKlS5fmx7S0tKiuri4/BgBGI9jdoVQ66XQYAACM27gT\n9pUrV+rVV1/Ve++9p3/5l3/R//7v/+q+++5TKpWSJHV2dsrj8aixsbHgeU1NTers7MyPmT59esHj\nhmHI5/PlxwDAaHRFg0p/u1FS/x1Oyx2bJwFA8Rn3Tqfr1q3Lf75o0SItXrxYc+fO1VtvvaWHHnro\nis+biBvoRx99NO7vgdLGOVK+bG+vMpmM4smYUqleZa9wzclm+45nMhmZhmdMP6uYnpvNZJVOp5RK\npXX609/KylhKxbLDP7HMcS3BSHCeYCjz588f83MnvKhxxowZmj17tj7//HNJUnNzszKZjEKhUME4\nv9+v5ubm/Jj+ZTRSX0IfCATyYwBgJKrqTFXVXbq0ReLdytokpDn9/3/EUmH1JOnGBQBuN+4Z9oGC\nwaAuXLigGTNmSJIWL16syspKHTlyROvXr5cknT9/XmfPns23f1y6dKl6enrU2tqar2NvbW1VLBa7\nrEVkf0uWLJno8FEicrMcnCPlpT3Qpo5Qm6oqvaryVMtWVqZpDDo2N7Oee9zj8Vxx7HCK8blTp05V\nNpuV11uj736Hv5Mr4VqCkeA8wUiMp135sAl7LBbTZ599JknKZrP66quvdOrUKTU2NqqhoUE7d+7U\nww8/rObmZn355ZfasWOHmpqa8uUw06ZN0+OPP67t27fL5/OpoaFB27Zt02233aZlyLine truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x76219e8>"
|
||||
"<matplotlib.figure.Figure at 0x8555278>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -456,7 +468,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": 17,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
@@ -464,9 +476,9 @@
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x86b7dd8>"
|
||||
"<matplotlib.figure.Figure at 0x833a048>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -491,24 +503,23 @@
|
||||
"> I explain how to plot Gaussians, and much more, in the Notebook *Computing_and_Plotting_PDFs* in the \n",
|
||||
"Supporting_Notebooks folder. You can also read it online [here](https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/Supporting_Notebooks/Computing_and_plotting_PDFs.ipynb)[1]\n",
|
||||
"\n",
|
||||
"The plot labeled 'input' is the histogram of the original data. This is passed through the transfer function $f(x)=2x+1$ which is displayed in the chart on the bottom left\n",
|
||||
". The red lines shows how one value, $x=0$ is passed through the function. Each value from input is passed through in the same way to the output function on the left. For the output I computed the mean by taking the average of all the points, and drew the results with the dotted blue line. A solid blue line shows the actual mean for the point $x=0$. The output looks like a Gaussian, and is in fact a Gaussian. We can see that the variance in the output is larger than the variance in the input, and the mean has been shifted from 0 to 1, which is what we would expect given the transfer function $f(x)=2x+1$ The $2x$ affects the variance, and the $+1$ shifts the mean The computed mean, represented by the dotted blue line, is nearly equal to the actual mean. If we used more points in our computation we could get arbitrarily close to the actual value.\n",
|
||||
"The plot labeled 'Input' is the histogram of the original data. This is passed through the function $f(x)=2x+1$ which is displayed in the chart on the bottom left. The red lines shows how one value, $x=0$ is passed through the function. Each value from input is passed through in the same way to the output function on the right. For the output I computed the mean by taking the average of all the points, and drew the results with the dotted blue line. A solid blue line shows the actual mean for the point $x=0$. The output looks like a Gaussian, and is in fact a Gaussian. We can see that the variance in the output is larger than the variance in the input, and the mean has been shifted from 0 to 1, which is what we would expect given the transfer function $f(x)=2x+1$ The $2x$ affects the variance, and the $+1$ shifts the mean The computed mean, represented by the dotted blue line, is nearly equal to the actual mean. If we used more points in our computation we could get arbitrarily close to the actual value.\n",
|
||||
"\n",
|
||||
"Now let's look at a nonlinear function and see how it affects the probability distribution."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": 18,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0xad12978>"
|
||||
"<matplotlib.figure.Figure at 0xa8972e8>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -530,27 +541,27 @@
|
||||
"This result may be somewhat surprising to you. The function looks \"fairly\" linear - it is pretty close to a straight line, but the probability distribution of the output is completely different from a Gaussian. Recall the equations for multiplying two univariate Gaussians:\n",
|
||||
"\n",
|
||||
"$$\\begin{aligned}\n",
|
||||
"\\mu =\\frac{\\sigma_1^2 \\mu_2 + \\sigma_2^2 \\mu_1} {\\sigma_1^2 + \\sigma_2^2}\\mbox{, } \n",
|
||||
"\\sigma = \\frac{1}{\\frac{1}{\\sigma_1^2} + \\frac{1}{\\sigma_2^2}}\n",
|
||||
"\\mu &=\\frac{\\sigma_1^2 \\mu_2 + \\sigma_2^2 \\mu_1} {\\sigma_1^2 + \\sigma_2^2} \\\\\n",
|
||||
"\\sigma &= \\frac{1}{\\frac{1}{\\sigma_1^2} + \\frac{1}{\\sigma_2^2}}\n",
|
||||
"\\end{aligned}$$\n",
|
||||
"\n",
|
||||
"These equations do not hold for non-Gaussians, and certainly do not hold for the probability distribution shown in the 'output' chart above. \n",
|
||||
"These equations do not hold for non-Gaussians, and certainly do not hold for the probability distribution shown in the 'Output' chart above. \n",
|
||||
"\n",
|
||||
"Think of what this implies for the Kalman filter algorithm of the previous chapter. All of the equations assume that a Gaussian passed through the process function results in another Gaussian. If this is not true then all of the assumptions and guarantees of the Kalman filter do not hold. Let's look at what happens when we pass the output back through the function again, simulating the next step time step of the Kalman filter."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 19,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0xade7ac8>"
|
||||
"<matplotlib.figure.Figure at 0x847a160>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -573,7 +584,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"execution_count": 20,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -582,8 +593,8 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"input mean, variance: -0.0007, 1.0005\n",
|
||||
"output mean, variance: -0.1234, 2.4021\n"
|
||||
"input mean, variance: -0.0005, 0.9999\n",
|
||||
"output mean, variance: -0.1240, 2.4029\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -605,16 +616,16 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": 21,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0xae6d828>"
|
||||
"<matplotlib.figure.Figure at 0xad2a3c8>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -624,7 +635,7 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"output mean, variance: 0.0011, 2.2510\n"
|
||||
"output mean, variance: 0.0007, 2.2498\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -648,7 +659,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"execution_count": 22,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -657,8 +668,8 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"linear output mean, variance: 0.0639, 7485.2965\n",
|
||||
"nonlinear output mean, variance: -8.9982, 30499.3277\n"
|
||||
"linear output mean, variance: 0.0404, 7481.2295\n",
|
||||
"nonlinear output mean, variance: -9.0832, 30461.4199\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -679,23 +690,23 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Unfortunately we can see that the nonlinear version is not stable. We have drifted significantly from the mean of 0, and the variance is half an order of magnitude larger.\n",
|
||||
"Unfortunately the nonlinear version is not stable. It drifted significantly from the mean of 0, and the variance is half an order of magnitude larger.\n",
|
||||
"\n",
|
||||
"And, of course, we have minimized the issue by using a function that is quite close to a straight line. What happens if our function is $y(x)=x^2$?"
|
||||
"I minimized the issue by using a function that is quite close to a straight line. What happens if the function is $y(x)=x^2$?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"execution_count": 23,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtUAAAFfCAYAAACBcDBIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VGX+NvD7nEkhdRLSSEiHACFdkgChBQWUKojYRdCV\nnwWMsMvaUGRV2MWyi65YsARFpbmAIlUIBIQAoReBkBAgpJE2KaTOnPcPXkYPkwRIJnMmk/tzXbmc\neU67DxnPfPPMM88RJEmSQERERERELSYqHYCIiIiIqL1jUU1ERERE1EosqomIiIiIWolFNRERERFR\nK7GoJiIiIiJqJRbVREREREStxKKaFJednQ1RFDF16lSloxARERG1CItqMhuCICgd4aau/wEwdOhQ\npaMQERGRGbFSOgCRr68vTp8+DbVarXSUm7pe+LeHPwCIiIjIdFhUk+KsrKzQo0cPpWPcEt6AlIiI\niBrD4R+kuMbGVE+ZMgWiKGLnzp1YvXo14uPj4eDgADc3Nzz88MPIzc012E9iYiJEUcT58+fx3nvv\noWfPnrCzs4O/vz/+9re/obKy0mCb5oZyvPnmmxBFEampqQCA5ORkBAcHAwB27NgBURT1P/PmzTPG\nPwURERG1U+ypJrPR2JCKxYsX46effsK9996LoUOHIi0tDStWrMDRo0dx5MgR2NjYGGyTlJSE3377\nDQ8++CDUajU2bNiADz74ALt370ZqaqrBNrc6lCMmJgZJSUlYtGgRAgMDMWXKFP2yxMTE2zpXIiIi\nsiwsqsmsbd68Genp6QgLC9O3Pfroo/jhhx+wbt06TJo0yWCbtLQ0HD16FL6+vgCAd955BxMnTsS6\ndevwwQcf4OWXX25RlqioKLz44ov6ovqNN95o2UkRERGRxeHwDzJrL7zwgqygBoCnn34aAHDgwIFG\nt0lKStIX1MC1IR7/+te/IAgCvvrqq1bl4ZhqIiIiagyLajJrsbGxBm3XC+bS0tJGtxkyZIhBW48e\nPeDp6YnMzExUVVUZNyQRERF1eCyqyay5uLgYtFlZXRu1pNVqG93Gy8ur2fby8nIjpSMiIiK6hkU1\nWZyCgoJm252dnWXtDQ0Nja5fVlZm3GBERERksVhUk8XZsWOHQduZM2dQUFCA7t27w8HBQd/u6uqK\nS5cuNbqfxsZsq1QqAE33khMREVHHxKKaLM6iRYtkhbJWq8VLL70EALK5sAGgX79+uHDhAjZu3Chr\nX7JkCfbu3Wsw3Z6rqysANFmIExERUcfEKfXI4gwYMADR0dF44IEH4OzsjI0bN+LEiROIj4/HX//6\nV9m6s2fPxubNmzFhwgQ88MAD8PDwwMGDB3Hw4EGMGTMG69evl63v6OiIhIQE7NmzB+PGjUNMTAys\nra0xZMgQDBo0yJSnSURERGaEPdVklgRBuOWbsty43X/+8x+88sorSElJwaJFi1BWVoZZs2Zh27Zt\nsLa2lq2fmJiIn376CdHR0Vi9ejW+/vpruLi4YN++fejTp0+jGb799luMHz8ee/fuxTvvvIO5c+ci\nJSWlxedKRERE7Z8gceJdshCJiYlITU1FdnY2/P39lY5DREREHQh7qsmitKR3m4iIiKi1WFSTReEH\nL0RERKQEFtVkMVo6DpuIiIiotUw+plqj0ZjycEREilKr1UpHICIiE2BPNRERERFRK7GoJiIiIiJq\nJUVv/mIpH4ump6cDAGJjYxVOYhw8H/PG8zF/HOZGRNTxsKeaiIiIiKiVWFQTEREREbUSi2oiIiIi\nolZiUU1ERERE1EosqomIiIiIWolFNXUI1XVVOJ61HxVXy5SOQkRERBZI0Sn1iEyhoqYUm44tRXV9\nJWysO+HvD78PT9euSsciIiIiC8KearJokiRhX+YmVNdXAgDq6muw9cCPCqciIiIiS8OimiyCJEnY\nvH8l5iX/Hz7/eT5yi7Kh02mxaf9K5JZlytbd9/t21DfUQZIk5BVfRF19rUKpiYiIyFIIkiRJpjzg\nn+80lpGRYcpDkwU7kbMHhy5sv+X1+3UbiczC47hSkQOVaIUov8Ho3bUfRIF/Z1LrhYSE6B9byp1j\niYioeRxTTe3K+SsncfLyXjjYOiPcNwEeTr7IKcm4rYIaANIyN+ofa3UNOHRhOy6XnkN3r2jka7Jh\nrbJFuG8C7G2cjH0KREREZIEU7am2lB6c9PR0AEBsbKzCSYzDXM+nSJOPd76ZDq2uQd8W3T0Bpy4c\nQl19jdGP19nZEzPuewtuai+j77s1zPX301KWdj6AZV7niIioefysm9qNA7/vkBXUAHDk3J5mC2oH\nO2cEuIViYI/xcHXyuK3jlZQXYuH3M7Fp3wpcralsUWYiIiLqGDj8g8yaJEnY/3sKLhdlY8fhn266\n/v2JT2Nw1GhU11bBSmUDaytrfU+on19X/LDtY9n6wd6hEAQBmbmnGt1fdd1VbEj7AWmntuHFSQvg\n4uiG6tqruFKWC2+3AFhbWbf+JImIiKjdY1FNZm3trq+RcgvFNAAMi52IwVGjAQB2tg4Gy/uHD4eT\nvQsuFpyDfSdHBHTpgSDvntDptFi/5ztsO7QWkqRrdN8l5YV448unEB2SgJPn01HfUAdXJw/MeuBf\nUDt2bvkJEhERkUVgUU1mJ/PySfyS9gPO5Zxocp2wwFiEBcVi26E1KK8qxV19JmBk34duuu/w4DiE\nB8fJ2kRRhXEDJ2NI9BhU1ZTDq7MfNuz9HimHf0KDtl627pGMPfrHpRVXsG73Uky+Z+ZtniERERFZ\nGhbVZFbySy5h8dp5qG+oa3a9uNBE3NFjIAZG3gOtTguVqGr1sdWOnfW9zmMHPI47+4zHFz8vaHJo\nCACkn9mJxJix8Pfq3urjExERUfvFLyqS2ahvqMfSje/ftKB26OSE8KA/epuNUVA3dZxp41676S3N\n1+5Ohq6JYSNERETUMbCnmszGut1f43JRtkG7KKrQv/cwXCjIgE7SYcKgqbCxtjVJJjtbByTd/w42\n71+JyuoKeLl2RV1DDbYdXKtf51zOCWxKW4FR/R82SSYiIiIyPyyqySzsOroBqUc3yNrsbOwxftBU\nBHTpAR/3AIWSAU72Lrg/cZqs7fKVbJy+eET/fNP+FXBxckNC+AhTxyMiIiIzwKKaFFVaUYT1e5bh\nwOkdsnZXJw+89Oi/YW/rqEywm3jorufw3vLZqKz+4yYfy7ctxqGzuxERHI/o7gmcFYSIiKgD4Zhq\nUkxh6WW8+8NfDQpqGytbPD32FbMtqIFrd1v8y5iXoRLlf5eevXQMP+78Av/6fiaKNQUKpSMiIiJT\nY1FNitBUlWDx2nmynl4AECBg8j0z4esRrFCyWxfsE4on7pkFa5WNwbLKag2+3fwfaHVaBZIRERGR\nqQmSJEmmPKBG80cRlZGRYcpDk5mQJAmbji/FlYocWbvazh1xQcPh49pNoWQtU1yZj52nV6Oytsxg\nWbT/EET6DVIgFSkpJCRE/1itViuYhIiITIVjqslkGrT1KL1agOLKfIOCOtgjAgkhYyEK7e/DEzfH\nLrj3jmeRV5aFnWd+hFbXoF929NIu+LuFwsXeXcGERERE1NYU7am2lB6c9PR0AEBsbKzCSYzD2Oej\n02mx9+SvWL9nGapqKgyW9/SPwjP3vtFm802b8vdTXlWGf36XJBvWEuIbgen3/QOCIBjlGHy9mT9L\nvM4REVHz2l+3ILUrOp0WX21YiBXbP2m0oFaJVnhg6DNtVlCbmrODCyYNlU+/l5FzHDuO/KxQIiIi\nIjIFDv+gNlFdW4UiTQEOnU3Fscx9Ta43OGoUPFy8TZis7UV3T0Av/2jZPNZrUr9C6pFfEOTTC4Mi\nRyHIu6eCCYmIiMjYWFST0RWU5GDR6tcMZva4kZuzF+6Of8BEqUxHEATcnzgN//wuCQ3aen17cXkB\nissLcDRjL2Y9uBBdPQKVC0lERERGxaKajO7Xg2saLagdOjlhxsS3UVpxBWWVxYgI7gv7TuY7F3Vr\neLr6YMrIv+GbTR+grqFWtqxeW4fkTe/hbw+9B1vrTgolJCIiImPimGoyKkmS8PuFQ40ue3T4C/Bx\nD0BYUCwGRNwNZwcXE6czrchufTHrwX/B283fYFlBSQ6+2/ohtNqGRrYkIiKi9oZFNRlVXvFFlFeV\nGrRPGPQkwoPjFEikLB/3QLz86CK8/Oh/4OXqK1t2JGMPvlj/T9Q31CmUjoiIiIyFRTUZ1ZmLR2XP\ne/hG4N8zfsTQO8YplEh5giDAxz0Qf3voXXi6+MiWncxOx6/p/1MoGRERERkLi2oyqj/PeAEAEd36\nWsx0ea1la2OHZ8fPhZvaS9aedvJXmHi6eCIiIjIyFtVkNPUNdTh3+YSsrZd/tEJpzJOb2gsvTloA\naysbfVtpZREuFWYqmIqIiIhai0U1GUVVdTk+W/eWbHywq6M7PF27KpjKPKkdOqN3wB2ytiPn9iqU\nhoiIiIxB0duUZ2RkmPLQ1Eau1lZg68nvoKkukrX37NIHfbuNVCiVecsqPI7dGetkbY6dXKC2c4OX\ncwB6ecfBSmWtUDpqrZCQEP1j3qaciKhj4DzV1Cr5mgvYk/EzKmvLZO0OtmpE+Q9WKJX58+0cAlEQ\noZN0+rbKmjJU1pThcmkmSqryMbjnfQomJCIiotuhaFEdGxur5OGNJj09HUDHOp+6hlos27wIR87t\nMVgW7BOKp0a/BCd785iH2lx/P8fyt+NUE3N6ZxedwrB+9yKyW1+DZeZ6Pi1laecDyD+RIyKijoFj\nqqlFfv7t20YL6vDgeDw/4R9mU1Cbs0FRo5pdvnrH56ipqzZRGiIiImoNDv+g25adfxapR34xaI8P\nHYqH73oeKhVfVrciLCgWfxnzCs5dPgnvzn6oa6jFjzu/0C8vqyxGyuGfMLLvgwqmJLine truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x8763048>"
|
||||
"<matplotlib.figure.Figure at 0xa8e9860>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -716,7 +727,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Despite the curve being quite smooth and reasonably straight at $x=1$ the probability distribution of the output doesn't look anything like a Gaussian and the computed mean of the output is quite different than the value computed directly. This is not an unusual function - a ballistic object moves in a parabola, and this is the sort of nonlinearity your filter will need to handle. If you recall we tried to track a ball in the previous chapter and failed miserably. This graph should give you insight into why the filter performed so poorly."
|
||||
"Despite the curve being smooth and reasonably straight at $x=1$ the probability distribution of the output doesn't look anything like a Gaussian and the computed mean of the output is quite different than the value computed directly. This is not an unusual function - a ballistic object moves in a parabola, and this is the sort of nonlinearity your filter will need to handle. If you recall we've tried to track a ball and failed miserably. This graph should give you insight into why the filter performed so poorly."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -730,21 +741,21 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"It is somewhat hard for me to look at probability distributions like this and really reason about what will happen in a real world filter. So let's think about tracking an aircraft with radar. The aircraft may have a covariance that looks like this:"
|
||||
"It is hard to look at probability distributions and reason about what will happen in a filter. So let's think about tracking an aircraft with radar. The estimate may have a covariance that looks like this:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"execution_count": 24,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtcAAAEWCAYAAACt0rvRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XtsXPWdBvxnZs5lzmXmzMUeX5M4LiklQMNuw/blUpW2\nQJdthSoqtRJ0U9DuqrsCqQ2qRJG4dUvVBamsutuG1bYiTbtUu0VtFyGxQJBoaAWrN2mbiuX2AiEh\nsT2+jOd65tzPef8Yx5Am2E489njs5yONZuacY893jmc8j3/+XWJRFEUgIiIiIqJli3e6ACIiIiKi\n9YLhmoiIiIioTRiuiYiIiIjahOGaiIiIiKhNGK6JiIiIiNqE4ZqIiIiIqE0YromIiIiI2mTBcP2D\nH/wAO3bsgGEYMAwDl19+OZ588sn3Pf7o0aOIx+OnXZ555pm2F05EREREtNYIC+3ctGkTHnzwQWzb\ntg1hGOLHP/4xPve5z+F3v/sdLr744vf9uqeffho7duyYv5/NZttXMRERERHRGhU72xUa8/k8/umf\n/gl/93d/d9q+o0ePYnR0FAcPHsRHPvKRthVJRERERNQNltznOggC/Od//idM08Tll1++4LE33HAD\n+vr6cOWVV+IXv/jFsoskIiIiIuoGC3YLAYCXXnoJl112GRzHga7r+NWvfoULL7zwjMemUil897vf\nxRVXXAFBEPD444/ji1/8Ivbt24ebbrqp7cUTEREREa0li3YL8TwPx48fR7VaxWOPPYYf/vCH+PWv\nf/2+AftP3XbbbfjNb36DP/7xj6dsr1ar5141EREREVGHGYZx2raz7nN9zTXXYMuWLfjRj360pOP3\n7duHf/iHf0Cz2TxlO8M1EREREXWzM4Xrs57nOggCuK675OMPHz6MwcHBs30YIiIiIqKus2Cf6298\n4xv47Gc/i+HhYdTrdfzsZz/DgQMH5ue6vvPOO3Hw4EE8++yzAFqt1JIk4ZJLLkE8HscTTzyBPXv2\n4MEHH1ywiDOl/nY5dOgQAGDnzp0r9hjrGc/f8vD8nTueu+Xh+Vsenr9zx3O3PDx/y7Ma52+x3hcL\nhuvJyUl86UtfQrFYhGEY2LFjB5566ilcc801AIBisYgjR47MHx+LxXD//ffj2LFjSCQSOP/887F3\n717ceOONbXgqRERERERr24Lheu/evQt+8Z/u37VrF3bt2rX8qoiIiIiIutBZ97kmIiIiIqIzY7gm\nIiIiImoThmsiIiIiojZhuCYiIiIiahOGayIiIiKiNmG4JiIiIiJqE4ZrIiIiIqI2YbgmIiIiImoT\nhmsiIiIiojZhuCYiIiIiahOGayIiIiKiNmG4JiIiIiJqE4ZrIiIiIqI2YbgmIiIiImoThmsiIiIi\nojZhuCYiIiIiahOGayIiIiKiNmG4JiIiIiJqE4ZrIiIiIqI2YbgmIiIiImoThmsiIiIiojZhuCYi\nIiIiahOGayIiIiKiNhE6XQARERF1vzCMEEYRPD8EAPhBiHgshng81uHKiFYXwzUREREhCEJ4QQjP\nD+D5c9dz94Mwmg/P772OovdsQ4QwCvH6eBkAEH9jDPFYHHG0AvbJoP2n15KQgCwJkMUEkpIAWRQY\nyKmrMVwTERGtY1EUwfUCOF4A1w/OGJ49P4QfBvBD/4yXMAoQRhGiKESIVqiOorAVrKMQEULEYq3A\nPO6cAADIZQlhFAERAMRaQTsWQ+zkNeJIxOMQ4yLEhAQpIUKMS5AECbLQCtsnQ3dKlaErUkfPI9FS\nMVwTERF1uSiK4HgBHNeH7fqt217r2vUCuIELN/DgBR780GuF5iiAH/jwIx9+4CMWiyAIcQiJGITE\n3LUcRzIRQyIemwvPCcTiMcRjaAXkudux2LstzX6zFYI/uCU9vy0MI0QAopOt3lHrdhBG8HwbrteE\n5YdwvRCuHyIRS0CMS5AFCVJChiaq0GUVaU1GWpVh6EkICQ4bo7WJ4ZqIiKhLBEEI62SAnrueD9O+\nCzdw4IYeXN+FF7YCtR96SMQBUYxDEuIQpDjkRAxaIt4K0UISQiJ2SkBut/luHkvs7uH7rZDtei5s\n18KYOYOwFoNe1aFLOjRJR0qRYWgycikFssQ4Q2sHX41ERERrkOsFaDoeLMdD0/ZguT4s14Pj23NB\n+t0w7QUuEglAFhOtEK3GoYtxiIIESUyuaHBeCYIQhyDEoSbf3eZ6AUzLQaVpYrwxjmRCgS7pyCYz\n6M3oGMjpDNm0Jiz4KvzBD36Af//3f8fRo0cBABdeeCHuuusu/NVf/dX7fs1LL72E2267DQcPHkQu\nl8NXvvIV3H333W0tmoiIaL2IogiW47dCtOPBcnw0HQ+O58L27dYlcGD7NoLIhyzGIYlxSMk4DDEB\nURQhi3LXBeizJYkJSGIC2bSMMIzQtH3UzTLeLM+gZGUxXcmjkNExkE9BEhOdLpc2sAXD9aZNm/Dg\n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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x8775ba8>"
|
||||
"<matplotlib.figure.Figure at 0xa99e438>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -760,21 +771,21 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"So what happens when we try to linearize this problem? The radar gives us a range to the aircraft. Suppose the radar is directly under the aircraft (x=10) and the next measurement states that the aircraft is 3 miles away (y=3). The positions that could match that measurement form a circle with radius 3 miles, like so."
|
||||
"What happens when we try to linearize this problem? The radar gives us a range to the aircraft. Suppose the radar is directly under the aircraft (x=10) and the next measurement states that the aircraft is 3 miles away (y=3). The positions that could match that measurement form a circle with radius 3 miles, like so."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"execution_count": 25,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtcAAADaCAYAAABtj26qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8W+Wd9/2P9l2y5H2P7Tj7BgQChCVAQhtogcK0lKUp\ndNqn0ykzHXg6M+UeWrow0ykdOnfv5yldhmlIgU4LBUppIUCAhLAmAUJC9sSxHe+LZO37OfcfTpwo\ncZzFsiXbv/frlVei6xxJl6PE+vrS7/wujaqqKkIIIYQQQohR0+Z6AkIIIYQQQkwWEq6FEEIIIYTI\nEgnXQgghhBBCZImEayGEEEIIIbJEwrUQQgghhBBZIuFaCCGEEEKILJFwLYQQQgghRJaMGK5/9rOf\nsXDhQlwuFy6Xi4svvpgXXnjhpOc3Nzej1WpP+PXyyy9nfeJCCCGEEELkG/1IB6urq3nwwQdpbGxE\nURQeffRRbrjhBt5//33mz59/0vu99NJLLFy4cOi22+3O3oyFEEIIIYTIU5oz3aGxsLCQf//3f+cr\nX/nKCceam5upr69n8+bNnHfeeVmbpBBCCCGEEBPBaddcp9Npfve73xEOh7n44otHPPfGG2+ktLSU\nSy65hKeffnrUkxRCCCGEEGIiGLEsBGD79u1cdNFFxONx7HY7zz77LHPnzh32XIfDwUMPPcTSpUvR\n6/U899xz3HzzzaxZs4bbbrst65MXQgghhBAin5yyLCSZTHLo0CH8fj9PPfUU//Vf/8X69etPGrCP\nd9ddd7Fx40Y++uijjHG/33/2sxZCCCGEECLHXC7XCWNnXHO9YsUKamtreeSRR07r/DVr1vC1r32N\nSCSSMS7hWgghhBBCTGTDhesz7nOdTqdJJBKnff7WrVupqKg406cRQgghhBBiwhmx5vpb3/oWn/rU\np6iqqiIYDPLb3/6WDRs2DPW6vvfee9m8eTPr1q0DBlepjUYjixYtQqvV8vzzz/Pwww/z4IMPjjiJ\n4VK/yA9btmwBYPHixTmeicg2eW0nN3l9Jy95bSc3eX3z36mqL0YM193d3dx+++10dXXhcrlYuHAh\na9euZcWKFQB0dXXR1NQ0dL5Go+GBBx6gpaUFnU7HzJkzWb16NbfeemsWvhQhhBBCCCHy24jhevXq\n1SPe+fjjq1atYtWqVaOflRBCCCGEEBPQGddcCyGEEEIIIYYn4VoIIYQQQogskXAthBBCCCFElki4\nFkIIIYQQIkskXAshhBBCCJElEq6FEEIIIYTIEgnXQgghhBBCZImEayGEEEIIIbJEwrUQQgghhBBZ\nIuFaCCGEEEKILJFwLYQQQgghRJZIuBZCCCGEECJLJFwLIYQQQgiRJRKuhRBCCCGEyBIJ10IIIYQQ\nQmSJhGshhBBCCCGyRJ/rCQghhBBTkaqqJFMKyVSaZPrw7ymFtKKgKCqKqg77+/6uIKgqloM9aDQa\ntFoN2uN+1+u0mAw6TAY9JoMOo0GHRqPJ9ZcsxJQg4VoIIYQYA4lkmngyRTyZJp5IZQTowUCdJq2k\nSSmp436lUVFQVBVVHfxdURVUFFSgyd8CgLbbiFajQYMGjUY7+GeNFq1Gi06jw6gzYNAZMemMGHVG\njAYdJoMOm9mIy2bCZjHm9i9IiElKwrUQQghxllJphVgiRTyRInbMr0QqTSKVJKEkSaQSJJUESSVF\nKp0ipQ7+rpBGr9Wg12vR6wZXm/VGDSadBo1Gg0bD4cAMWq0WrUaHRgMh/2BFZ3W5EUUFVVEHf1dV\nFDWFokBaUYknFYKJNImEQkpRMWiNGHUGLAYrdoMdu8mC02bCZTPjtJnQ66RSVIhsGDFc/+xnP+NX\nv/oVzc3NAMydO5f77ruPa6655qT32b59O3fddRebN2/G4/Hw1a9+lW9/+9tZnbQQQggxnlRVJZZI\nEY2niMSTRONJIrEk8VSKRDpO/HCAjqcTJNIJEqkEOh0Y9FqMBi1GoxbrkRCtN6DXGc86zOp1g+Ud\nRoPujOafSCokUwrhqJ/2cD9qQIvNb8NutGM32ikpsFNeaMegP/3HFUKcaMRwXV1dzYMPPkhjYyOK\novDoo49yww038P777zN//vwTzg8EAqxYsYJly5axZcsWdu3axZ133onNZuOee+4Zsy9CCCGEyJZ0\nWiGaSBGJHQ7R8eRgsE7GiafixFIx4ukYsVQMRU1jMuqGArTTqMVoMGDUm9Bq86fGWaPRYDLqMBl1\n2K0GShksWwlH4wxEwnSFuvBGC+nzeyh12ynz2NHJSrYQZ2XEcH3ddddl3H7ggQf4+c9/zrvvvjts\nuH7iiSeIxWKsWbMGk8nEnDlz2L17Nz/5yU8kXAshhMg7iqISiScJRxOEY4NBOppIEk8NhucjYTqW\niqPXg9mkw2zW4TbqMBut6PUTN4AaD1/o6HaaiCfS9A542dfvxRctos/voa7cjdNmyvU0hZhwTrvm\nOp1O89RTTxEOh7n44ouHPeedd97h0ksvxWQ6+p/x6quv5tvf/jYtLS3U1taOfsZCCDGFJFNp/OE4\n4WhicPX08IrqYIlCkujh32OJFIqiojIYGJtbBi9629SmotVq0AA6nRazUY/FqMdiMgz+2TT45yNj\nVrOBArt50tbfJpJpQtEE4dhgmA5HE8RSMSKpKNFklFgqRkpNYjJoMRm0mG06XEYdJqMjr1ais81k\n1FFVYiMWT9Pt7WWg308ilaKxqogCuznX0xNiQjlluN6+fTsXXXQR8Xgcu93Os88+y9y5c4c9t6ur\ni5qamoyx0tLSoWMnC9dbtmw503mLcSav0eQlr23uhGMpegMx/JEEgUiSQCSJP5okEEkQjCbxR5KE\nY6lRPcc7e3rP6n52sx6X1YjTasBhMeCyGob+XGAzUuIyYzHm9zXxqqoSTaQHf8VTRBNp4qkkcSVO\nLB0nlo6RVBLoDRwO0xpMRg1GvZYIEMn1F3AKO3ftHLPH9gZS7N+/j527yqgtcmC3GMbsucTw5Htz\n/mpsbBzx+Cm/M86aNYtt27bh9/t56qmnWLVqFevXrx82YEsPTSGEyJRMKfQGYvQGYvT4Y/QG4vT6\nB2+PNjiPpVAsRSiWot178nPsZj0lLjPFLjMlTjNFTjMlLjOFDhOGHJRLKIpKJJEiEk8TiQ9efJhQ\nEsTSMWJKnHg6jqpJDQZpswa3QYvJaEAr710n8Dj1+DQpuiLdGHx66o26SftphhDZdspwbTAYqK+v\nB+Ccc85h8+bN/Od//iePPPLICeeWlZXR1dWVMdbd3T107GQWL158RpMW4+fIT87yGk0+8tpmXyia\nYH+7lwPtXvZ3eNnf7qXLGx7mTD0Gs52CMfy0fWBgAICCgoKxexLAGwdvT4o9PSEgBIBGA+UeO9Mr\nPUyv9NBQ4aGhwp31vsqqqhKKJghGEgQjcULRBLpUFF0ijDYZQZeK4jJYKTM5MZt0WM26M+qwka+O\nrFjPmT1nzJ+rtSuETVtIRXk1NaWuMX8+Id+bJwK/3z/i8TP+TC+dTpNIJIY9dtFFF/HP//zPxOPx\nobrrV155hcrKSqm3FkJMKtF4kj2H+k8jSI+OVqPBZTNhtxiP1keb9FiMmTXTZqMe3eEd+jQaDfv3\n7wNg+vTGw/2PVVJphXgyPVirHU8RTQz+fqR+e/DCviQD4RiqevZzVlXo6A/R0R/ijW2tQ+MVhUcD\n9/RKD41VhZjPoLREVVXCsSTBSJxg5HDddCJCOBkhkogQTUUwGbVYzToKHXqs5sldJz0eSj0WWjv7\n6fN7qCp2yt+nEKdhxO9q3/rWt/jUpz5FVVUVwWCQ3/72t2zYsIEXXngBgHvvvZfNmzezbt06AG69\n9Va+973vcccdd3DfffexZ88efvSjH/Hd7353zL8QIYQYS9F4kl0tfWxv6mb7wR72t3tJK6NIoAz2\nQK4odFDqtlHotOJ2mHE7LBQ6LbgdFjwOCy6b6axaom3RD66sLF48cm3gcNJphYFQDG8wijcQxReK\n4Q1Eh253+0J0ekMkU8oZPe7xgVuv0zKjysP8+lLm15Uwq6YI03FhOxpPEgjHCRxemY4kooNhOhkm\nkoxiNIDVrMfj0WMxO9BJ+Msqk1GHwQChRIRgJI5LLm4U4pRGDNfd3d3cfvvtdHV14XK5WLhwIWvX\nrmXFihXA4EWKTU1NQ+c7nU5eeeUVvv71r7N48WI8Hg/f/OY3ufvuu8f2qxBCiCyLJVLsbu1j24Fu\nth/sZl/b2YVpjQZK3TYqCh1UFjmpLHJQWeykotBBkcualyuBOp2WQpeVQpf1pOcoikrPQJj23gAd\n/UHa+4J09AVp7wvQ64+c1sp3Kq2ws6WPnS19/P71HRj0WhorPTRUeqgpdlLithFPJQknQ4QTg2Fa\nr1exWvQU2PRUWOwSpseB2aQjno4TS6SQwhAhTm3EcL169eoR7zzc8Xnz5rFhw4bRzUoIIXKgzx9h\n0652Nu1uZ1tT9xmvzOq0GmpKXDRUuIdKH+rK3ZOizvd4Wq2GMs/gZiPnHXcslkhxsNPH/vbBcpkD\nHT4O9QRQTpK4FUUhmVYIRxXe2dHGxo+bSStp0CjUlluZ11DAwlke6susclFdDhj0WpLRJMn0mf1/\nEGKqyu8+SkIIMYZUVaWpw8d7hwP1gQ7fGd2/qtjBrOqiSR+kz5TZqGd2bTGza4uHxo4N3PvavGw/\n2MOhHj+ptEIqnSatpkkpKdJqGq1Gg16nQafT0NUfpas/yrpNndSU2Zk3vYC5DQWUF1mkQ9U4URUV\nnUYrnxIIcZokXAshphRFUfn4YA9vbm9l0+52+gPR075vZZGDBfWlzKsrYX59CW6HZQxnOrloNRqK\nXFYMeh1VxU7On1tCe38/u9q6ae7009UXIRBRMWv1nCwzt3aFaO0K8cKbbbidJuZNLLine truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x8a190b8>"
|
||||
"<matplotlib.figure.Figure at 0x78715c0>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -789,21 +800,21 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We can see by inspection that the probable position of the aircraft is somewhere near x=11.4, y=2.7 because that is where the covariance ellipse and range measurement overlap. But the range measurement is nonlinear so we have to linearize it. We haven't covered this material yet, but the EKF will linearize at the last position of the aircraft - (10,2). At x=10 the range measurement has y=3, and so we linearize at that point."
|
||||
"We can see by inspection that the probable position of the aircraft is somewhere near x=11.4, y=2.7 because that is where the covariance ellipse and range measurement overlap. But the range measurement is nonlinear so we have to linearize it. We haven't covered this material yet, but the Extended Kalman filter will linearize at the last position of the aircraft - (10,2). At x=10 the range measurement has y=3, and so we linearize at that point."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"execution_count": 26,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x7b97d30>"
|
||||
"<matplotlib.figure.Figure at 0x86f4128>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -823,16 +834,16 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"execution_count": 27,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x897f438>"
|
||||
"<matplotlib.figure.Figure at 0xa8f0668>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
@@ -849,7 +860,7 @@
|
||||
"source": [
|
||||
"That sort of error often leads to disastrous results. The error in this estimate is large. But in the next innovation of the filter that very bad estimate will be used to linearize the next radar measurement, so the next estimate is likely to be markedly worse than this one. After only a few iterations the Kalman filter will diverge, and start producing results that have no correspondence to reality.\n",
|
||||
"\n",
|
||||
"Of course that is a rather large covariance ellipse for an aircraft - it spans miles. I exaggerated the size to illustrate the difficulties of highly nonlinear systems. In real radar tracking problems the nonlinearity is usually not that bad, but the errors can still accumulate. And other systems you may be working with do have this amount of nonlinearity - this was not an exaggeration to make a point. You will always be battling divergence when working with nonlinear systems."
|
||||
"This covariance ellipse spans miles. I exaggerated the size to illustrate the difficulties of highly nonlinear systems. In real radar tracking problems the nonlinearity is usually not that bad, but the errors will still accumulate. Other systems you may be work could have this amount of nonlinearity - this was not an exaggeration only to make a point. You will always be battling divergence when working with nonlinear systems."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -863,20 +874,20 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"You may be impatient to solve a specific problem, and wondering which filter to use. So let me quickly run through the options. The subsequent chapters are somewhat independent of each other, and you can fruitfully skip around, though I recommend reading linearly if you truly want to master all of the material. \n",
|
||||
"You may be impatient to solve a specific problem, and wondering which filter to use. I will quickly survey the options. The subsequent chapters are somewhat independent of each other, and you can fruitfully skip around, though I recommend reading linearly if you truly want to master all of the material. \n",
|
||||
"\n",
|
||||
"The workhorses of nonlinear filters are the *linearized Kalman filter* and *extended Kalman filter*. These two techniques were invented shortly after Kalman published his paper and they have been the main techniques used since then. The flight software in airplanes, the GPS in your car or phone almost certainly use one of these techniques. \n",
|
||||
"The workhorses of nonlinear filters are the *linearized Kalman filter* and *extended Kalman filter* (EKF). These two techniques were invented shortly after Kalman published his paper and they have been the main techniques used since then. The flight software in airplanes, the GPS in your car or phone almost certainly use one of these techniques. \n",
|
||||
"\n",
|
||||
"However, these techniques are extremely demanding. The EKF linearizes the differential equations at one point, which requires you to find a solution to a matrix of partial derivatives (a Jacobian). This can be difficult or impossible to do analytically. If impossible, you have to use numerical techniques to find the Jacobian, but this is expensive computationally and introduces error into the system. Finally, if the problem is quite nonlinear the linearization leads to a lot of error being introduced in each step, and the filters frequently diverge. You can not throw some equations into some arbitrary solver and expect to to get good results. It's a difficult field for professionals. I note that most Kalman filtering textbooks merely gloss over the extended Kalman filter (EKF) despite it being the most frequently used technique in real world applications. \n",
|
||||
"However, these techniques are extremely demanding. The EKF linearizes the differential equations at one point, which requires you to find a solution to a matrix of partial derivatives (a Jacobian). This can be difficult or impossible to do analytically. If impossible, you have to use numerical techniques to find the Jacobian, but this is expensive computationally and introduces more error into the system. Finally, if the problem is quite nonlinear the linearization leads to a lot of error being introduced in each step, and the filters frequently diverge. You can not throw some equations into some arbitrary solver and expect to to get good results. It's a difficult field for professionals. I note that most Kalman filtering textbooks merely gloss over the EKF despite it being the most frequently used technique in real world applications. \n",
|
||||
"\n",
|
||||
"Recently the field has been changing in exciting ways. First, computing power has grown to the point that we can use techniques that were once beyond the ability of a supercomputer. These use *Monte Carlo* techniques - the computer generates thousands to tens of thousands of random points and tests all of them against the measurements. It then probabilistically kills or duplicates points based on how well they match the measurements. A point far away from the measurement is unlikely to be retained, whereas a point very close is quite likely to be retained. After a few iterations there is a clump of particles closely tracking your object, and a sparse cloud of points where there is no object.\n",
|
||||
"\n",
|
||||
"This has two benefits. First, there is no process model. You do not need to predict your system state in the next time step. This is of huge value if you do not have a good model for the behavior of the system. For example, it is hard to predict the behavior of a person in a crowd for very long. You don't know where they are going, and they are endlessly being diverted and jostled by the crowd. Second, the algorithm can track arbitrarily many objects at once - some particles will match the behavior on one object, and other particles will match other objects. So this technique is often used to track automobile traffic, people in crowds, and so on. \n",
|
||||
"This has two benefits. First, the algorithm is robust even for extremely nonlinear problems. Second, the algorithm can track arbitrarily many objects at once - some particles will match the behavior on one object, and other particles will match other objects. So this technique is often used to track automobile traffic, people in crowds, and so on. \n",
|
||||
"\n",
|
||||
"The costs should be clear. It is computationally expensive to test tens of thousands of points for every step in the filter. But modern CPUs are very fast, and this is a perfect problem for GPUs because the algorithm is highly parallelizable. If we do have the ability to use a process model that is important information that is being ignored by the filter - you rarely get better results by ignoring information. Of course, there are hybrid filters that do use a process model. Then, the answer is not mathematical. With a Kalman filter my covariance matrix gives me important information about the amount of error in the estimate. The particle filter does not give me a rigorous way to compute this. Finally, the output of the filter is a cloud of points; I then have to figure out how to interpret it. Usually you will be doing something like taking the mean of the points, but this is a difficult problem. There are still many points that do not 'belong' to a tracked object, so you first have to run some sort of clustering algorithm to first find the points that seem to be tracking an object, and then you need another algorithm to produce an state estimate from those points. None of this is intractable, but it is all quite computationally expensive. \n",
|
||||
"The costs should be clear. It is computationally expensive to test tens of thousands of points for every step in the filter. But modern CPUs are very fast, and this is a good problem for GPUs because the part of the algorithm is parallelizable. Another cost is that the answer is not mathematical. With a Kalman filter my covariance matrix gives me important information about the amount of error in the estimate. The particle filter does not give me a rigorous way to compute this. Finally, the output of the filter is a cloud of points; I then have to figure out how to interpret it. Usually you will be doing something like taking the mean and standard deviations of the points, but this is a difficult problem. There are still many points that do not 'belong' to a tracked object, so you first have to run some sort of clustering algorithm to first find the points that seem to be tracking an object, and then you need another algorithm to produce an state estimate from those points. None of this is intractable, but it is all quite computationally expensive. \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"Finally, we have a new algorithm called the *unscented Kalman filter* (UKF) that does not require you to find analytic solutions to nonlinear equations, and yet almost always performs better than the EKF. It does especially well with highly nonlinear problems - problems where the EKF has significant difficulties. Designing the filter is extremely easy. Some will say the jury is still out, but to my mind the UKF is superior in almost every way to the EKF, and should be the starting point for any implementation, especially if you are not a Kalman filter professional with a graduate degree in the relevant mathematical techniques. The main downside is that the UKF can be a few times slower than the EKF, but this really depends on whether the EKF solves the Jacobian analytically or numerically. If numerically the UKF is almost certainly faster. Finally, it has not been proven (and probably it cannot be proven) that the UKF always yields more accurate results than the EKF. In practice it almost always does, often significantly so. It is very easy to understand and implement, and I strongly suggest this technique as your starting point. "
|
||||
"Finally, we have a new algorithm called the *unscented Kalman filter* (UKF) that does not require you to find analytic solutions to nonlinear equations, and yet almost always performs better than the EKF. It does especially well with highly nonlinear problems - problems where the EKF has significant difficulties. Designing the filter is extremely easy. Some will say the jury is still out on the UKF, but to my mind the UKF is superior in almost every way to the EKF. I suggest that the UKF should be the starting point for any implementation, especially if you are not a Kalman filter professional with a graduate degree in control theory. The main downside is that the UKF can be a few times slower than the EKF, but this really depends on whether the EKF solves the Jacobian analytically or numerically. If numerically the UKF is almost certainly faster. It has not been proven (and probably it cannot be proven) that the UKF always yields more accurate results than the EKF. In practice it almost always does, often significantly so. It is very easy to understand and implement, and I strongly suggest this filter as your starting point. "
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -898,11 +909,11 @@
|
||||
"\n",
|
||||
"I get more email about the EKF than anything else; I suspect that this is because most treatments in books, papers, and on the internet use the EKF. If your interest is in mastering the field of course you will want to learn about the EKF. But if you are just trying to get good results I point you to the UKF and particle filter first. They are much easier to implement, understand, and use, and they are typically far more stable than the EKF. \n",
|
||||
"\n",
|
||||
"Some will quibble with that advice. A lot of recent publications are devoted to a comparison of the EKF, UKF, and perhaps a few other choices for a given problem. Do you not need to perform a similar comparison for your problem? If you are sending a rocket to Mars, then of course you do. You will be balancing issues such as accuracy, round off errors, divergence, mathematical proof of correctness, and the computational effort required. I can't imagine not knowing the EKF intimately. \n",
|
||||
"Some will quibble with that advice. A lot of recent publications are devoted to a comparison of the EKF, UKF, and perhaps a few other choices for a given problem. Do you not need to perform a similar comparison for your problem? If you are sending a rocket to Mars then of course you do. You will be balancing issues such as accuracy, round off errors, divergence, mathematical proof of correctness, and the computational effort required. I can't imagine not knowing the EKF intimately. \n",
|
||||
"\n",
|
||||
"On the other hand the UKF works spectacularly! I use it at work for real world applications. I mostly haven't even tried to implement an EKF for these applications because I can verify that the UKF is working fine. Is it possible that I might eke out another 0.2% of performance from the EKF in certain situations? Sure! Do I care? No! I completely understand the UKF implementation, it is easy to test and verify, I can pass the code to others and be confident that they can understand and modify it, and I am not a masochist that wants to battle difficult equations when I already have a working solution. If the UKF or particle filters start to perform poorly for some problem then I will turn other techniques, but not before then. And realistically, the UKF usually provides substantially better performance than the EKF over a wide range of problems and conditions. If \"really good\" is good enough I'm going to spend my time working on other problems. \n",
|
||||
"\n",
|
||||
"I'm belaboring this point because in most textbooks the EKF is given center stage, and the UKF is either not mentioned at all or just given a 2 page gloss that leaves you completely unprepared to use the filter. This is not due to ignorance on the writer's part. The UKF is still relatively new, and it takes time to write new editions of books. At the time many books were written the UKF was either not discovered yet, or it was just an unproven but promising curiosity. But I am writing this now, the UKF has had enormous success, and it needs to be in your toolkit. That is what I will spend most of my effort trying to teach you. "
|
||||
"I'm belaboring this point because in most textbooks the EKF is given center stage, and the UKF is either not mentioned at all or just given a 2 page gloss that leaves you completely unprepared to use the filter. The UKF is still relatively new, and it takes time to write new editions of books. At the time many books were written the UKF was either not discovered yet, or it was just an unproven but promising curiosity. But I am writing this now, the UKF has had enormous success, and it needs to be in your toolkit. That is what I will spend most of my effort trying to teach you. "
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
+300
-245
File diff suppressed because it is too large.
Load diff
+362
-382
File diff suppressed because it is too large.
Load diff
@@ -52,7 +52,6 @@ def ball_kf(x, y, omega, v0, dt, r=0.5, q=0.02):
|
||||
|
||||
|
||||
def plot_radar(xs, track, time):
|
||||
|
||||
plt.figure()
|
||||
bp.plot_track(time, track[:, 0])
|
||||
bp.plot_filter(time, xs[:, 0])
|
||||
@@ -76,6 +75,7 @@ def plot_radar(xs, track, time):
|
||||
plt.ylim((900, 1600))
|
||||
plt.show()
|
||||
|
||||
|
||||
def plot_bicycle():
|
||||
plt.clf()
|
||||
plt.axes()
|
||||
@@ -215,11 +215,11 @@ def show_radar_chart():
|
||||
|
||||
|
||||
|
||||
ax.annotate('$\Theta$', xy=(1.2, 1.1), color='b')
|
||||
ax.annotate('$\Theta$', xy=(1.2, 1.05), color='b')
|
||||
ax.annotate('Aircraft', xy=(2.04,2.), color='b')
|
||||
ax.annotate('altitude', xy=(2.04,1.5), color='k')
|
||||
ax.annotate('X', xy=(1.5, .9))
|
||||
ax.annotate('Radar', xy=(.95, 0.9))
|
||||
ax.annotate('altitude (y)', xy=(2.04,1.5), color='k')
|
||||
ax.annotate('x', xy=(1.5, .9))
|
||||
ax.annotate('Radar', xy=(.95, 0.8))
|
||||
ax.annotate('Slant\n (r)', xy=(1.5,1.62), color='r')
|
||||
|
||||
plt.title("Radar Tracking")
|
||||
@@ -229,4 +229,4 @@ def show_radar_chart():
|
||||
ax.yaxis.set_ticks([])
|
||||
|
||||
|
||||
plt.show()
|
||||
plt.show()
|
||||
+11
-14
@@ -16,6 +16,7 @@ for more information.
|
||||
from __future__ import (absolute_import, division, print_function,
|
||||
unicode_literals)
|
||||
|
||||
from filterpy.kalman import MerweScaledSigmaPoints, unscented_transform
|
||||
from filterpy.stats import multivariate_gaussian
|
||||
from matplotlib import cm
|
||||
import matplotlib.pyplot as plt
|
||||
@@ -47,10 +48,10 @@ def plot_nonlinear_func(data, f, gaussian, num_bins=300):
|
||||
#plot output
|
||||
h = np.histogram(ys, num_bins, density=False)
|
||||
plt.subplot(2,2,4)
|
||||
plt.plot(h[0], h[1][1:], lw=4, alpha=0.5)
|
||||
plt.plot(h[0], h[1][1:], lw=4, alpha=0.8)
|
||||
plt.ylim(out_lims[1], out_lims[0])
|
||||
plt.gca().xaxis.set_ticklabels([])
|
||||
plt.title('output')
|
||||
plt.title('Output')
|
||||
|
||||
plt.axhline(np.mean(ys), ls='--', lw=2)
|
||||
plt.axhline(f(x0), lw=1)
|
||||
@@ -66,16 +67,16 @@ def plot_nonlinear_func(data, f, gaussian, num_bins=300):
|
||||
print(max(norm.pdf(xs)))'''
|
||||
|
||||
# plot transfer function
|
||||
plt.subplot(2,2,3)
|
||||
plt.subplot(2, 2, 3)
|
||||
x = np.arange(in_lims[0], in_lims[1], 0.1)
|
||||
y = f(x)
|
||||
plt.plot (x,y, 'k')
|
||||
plt.plot (x, y, 'k')
|
||||
isct = f(x0)
|
||||
plt.plot([x0, x0, in_lims[1]], [out_lims[1], isct, isct], color='r', lw=1)
|
||||
plt.xlim(in_lims)
|
||||
plt.ylim(out_lims)
|
||||
#plt.axis('equal')
|
||||
plt.title('function')
|
||||
plt.title('f(x)')
|
||||
|
||||
# plot input
|
||||
h = np.histogram(data, num_bins, density=True)
|
||||
@@ -84,7 +85,7 @@ def plot_nonlinear_func(data, f, gaussian, num_bins=300):
|
||||
plt.plot(h[1][1:], h[0], lw=4)
|
||||
plt.xlim(in_lims)
|
||||
plt.gca().yaxis.set_ticklabels([])
|
||||
plt.title('input')
|
||||
plt.title('Input')
|
||||
|
||||
plt.show()
|
||||
|
||||
@@ -106,11 +107,9 @@ def plot_ekf_vs_mc():
|
||||
d_t = fx(data)
|
||||
|
||||
mean_ekf = fx(mean)
|
||||
|
||||
slope = dfx(mean)
|
||||
std_ekf = abs(slope*std)
|
||||
|
||||
|
||||
norm = scipy.stats.norm(mean_ekf, std_ekf)
|
||||
xs = np.linspace(-3, 5, 200)
|
||||
plt.plot(xs, norm.pdf(xs), lw=2, ls='--', color='b')
|
||||
@@ -126,8 +125,6 @@ def plot_ekf_vs_mc():
|
||||
print('EKF mean={:.2f}, std={:.2f}'.format(mean_ekf, std_ekf))
|
||||
|
||||
|
||||
from filterpy.kalman import MerweScaledSigmaPoints, unscented_transform
|
||||
|
||||
def plot_ukf_vs_mc(alpha=0.001, beta=3., kappa=1.):
|
||||
|
||||
def fx(x):
|
||||
@@ -159,12 +156,12 @@ def plot_ukf_vs_mc(alpha=0.001, beta=3., kappa=1.):
|
||||
|
||||
norm = scipy.stats.norm(ukf_mean, ukf_std)
|
||||
xs = np.linspace(-3, 5, 200)
|
||||
plt.plot(xs, norm.pdf(xs), ls='--', lw=1, color='b')
|
||||
plt.hist(d_t, bins=200, normed=True, histtype='step', lw=1, color='g')
|
||||
plt.plot(xs, norm.pdf(xs), ls='--', lw=2, color='b')
|
||||
plt.hist(d_t, bins=200, normed=True, histtype='step', lw=2, color='g')
|
||||
|
||||
actual_mean = d_t.mean()
|
||||
plt.axvline(actual_mean, lw=1, color='g', label='Monte Carlo')
|
||||
plt.axvline(ukf_mean, lw=1, ls='--', color='b', label='UKF')
|
||||
plt.axvline(actual_mean, lw=2, color='g', label='Monte Carlo')
|
||||
plt.axvline(ukf_mean, lw=2, ls='--', color='b', label='UKF')
|
||||
plt.legend()
|
||||
plt.show()
|
||||
|
||||
|
||||
@@ -118,6 +118,7 @@ def plot_random_pd():
|
||||
#plt.setp(plt.gca().get_yticklabels(), visible=False)
|
||||
plt.axes(xticks=[], yticks=[], frameon=False)
|
||||
plt.plot(x, y2)
|
||||
plt.ylim([0, max(y2)+.1])
|
||||
|
||||
|
||||
def plot_monte_carlo_ukf():
|
||||
|
||||
@@ -279,6 +279,17 @@ def plot_radar(xs, t, plot_x=True, plot_vel=True, plot_alt=True):
|
||||
plt.ylabel('altitude')
|
||||
plt.show()
|
||||
|
||||
|
||||
def plot_altitude(xs, t, track):
|
||||
xs = np.asarray(xs)
|
||||
|
||||
plt.plot(t, xs[:,2], label='filter', )
|
||||
plt.plot(t, track, label='Aircraft', lw=2, ls='--', c='k')
|
||||
plt.xlabel('time(sec)')
|
||||
plt.ylabel('altitude')
|
||||
plt.legend(loc=4)
|
||||
|
||||
|
||||
def print_sigmas(n=1, mean=5, cov=3, alpha=.1, beta=2., kappa=2):
|
||||
points = MerweScaledSigmaPoints(n, alpha, beta, kappa)
|
||||
print('sigmas: ', points.sigma_points(mean, cov).T[0])
|
||||
|
||||
Reference in new issue
Block a user