{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The Extended Kalman Filter" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#format the book\n", "%matplotlib inline\n", "%load_ext autoreload\n", "%autoreload 2\n", "from __future__ import division, print_function\n", "import book_format\n", "book_format.load_style()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this point in the book we have developed the theory for the linear Kalman filter. Then, in the last two chapters we broached the topic of using Kalman filters for nonlinear problems. I chose to start off with the Unscented Kalman filter, which probably felt like quite a departure from the linear Kalman filter math. It was also a departure from the historical development of the Kalman filter.\n", "\n", "Shortly after Dr. Kálmán published his paper on the Kalman filter people recognized that his theory was limited to linear problems and immediately began work on extending the theory to work with nonlinear problems. As I have said elsewhere the only equation we really know how to solve is $\\mathbf{Ax} = \\mathbf{b}$. That is a slight exaggeration. Many of us have spent years at school learning sophisticated tricks and techniques to handle equations that are not linear. Yet after all that work the vast majority of equations that arise from simple physical systems remain intractable. Certainly there is no way to find general analytic solutions to the Kalman filter equations for nonlinear systems. \n", "\n", "In this chapter we will learn the Extended Kalman filter (EKF). The EKF handles nonlinearity by linearizing the system at the point of the current estimate, and then the usual Kalman filter is used to filter this linearized system. It was one of the very first techniques used for nonlinear problems, and it remains the most common technique. Most filters in real world use are EKFs. \n", "\n", "The EKF provides significant mathematical challenges to the designer of the filter; this is the most challenging chapter of the book. To be honest, I do everything I can to avoid the EKF in favor of other techniques that have been developed to filter nonlinear problems. However, the topic is unavoidable; all classic papers and a majority of current papers in the field use the EKF. Even if you do not use the EKF in your own work you will need to be familiar with the topic to be able to read the literature. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linearizing the System Model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The extended Kalman filter (EKF) works by linearizing the system model for each update. For example, consider the problem of tracking a cannonball in flight. Obviously it follows a curved flight path. However, if our update rate is small enough, say 1/10 second, then the trajectory over that time is nearly linear. If we linearize that short segment we will get an answer very close to the actual value, and we can use that value to perform the prediction step of the filter. There are many ways to linearize a set of nonlinear differential equations, and the topic is somewhat beyond the scope of this book. In practice, a Taylor series approximation is frequently used with EKFs, and that is what we will use. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider the function $f(x)=x^2−2x$. We want a linear approximation of this function so that we can use it in the Kalman filter. We will see how it is used in the Kalman filter in the next section, so don't worry about that yet. We can see that there is no single linear function (line) that gives a close approximation of this function. However, during each innovation (update) of the Kalman filter we know its current state, so if we linearize the function at that value we will have a close approximation. For example, suppose our current state is $x=1.5$. What would be a good linearization for this function?\n", "\n", "We can use any linear function that passes through the curve at (1.5,-0.75). For example, consider using f(x)=8x−12.75 as the linearization, as in the plot below." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ncePG6aWXXtK2bds0b948XXfddXr22Wd7acbobd09R9q1tLTosssu0+mnn05DpQHgcM6ThQsX6okn\nntCKFSu0fft2vfnmmzr99NN7Ybbwle6eJ7t379bMmTN1xhlnaMuWLXr77bfV1NSkGTNm9NKM4Qvv\nvfeefvnLX2rz5s165513FBAQoLPPPluVlZUHPeawc6zhZyIiIoz169d3us/q1auN6Ohoo6mpyT12\n7733Gunp6T09PfiJrpwnB3LJJZcYs2bN6oEZwd905xy56aabjGuuucZYt26dERER0cMzgz/pynmy\nfft2IzAw0Ni+fXsvzQr+pivnyYsvvmjYbDbD6XS6x9555x3DYrEY5eXlPT1F+Im6ujrDZrMZr7/+\n+kH3Odwc6xdX2rtr8+bNOvXUUxUcHOwemzp1qgoLC5Wbm+vDmcHfVVdXKy4uztfTgB9544039MYb\nb+ixxx6TwVd8cACvvPKKhg4dqg0bNmjo0KEaMmSI5syZo9LSUl9PDX5kypQpioiI0B//+Ec5HA7V\n1tZq3bp1OvHEE/m9M4DU1NTI6XS675x4IIebY/tkaLfb7UpOTu4w1l7vf3caYH+vv/663nnnHV13\n3XW+ngr8RGFhoa677jo988wzCgsL8/V04KdycnKUm5urF154QX/961/11FNPafv27Tr//PP5Dz24\npaamasOGDVqyZIlCQkIUExOjbdu2dbiLHvq/+fPn6/jjj9ekSZMOus/h5tg+GdpZc4ru+uijj3Tl\nlVfqscce45aicLv66qs1b948nXDCCb6eCvyY0+lUc3OznnrqKZ1yyik65ZRT9NRTT+l///ufsrOz\nfT09+ImcnBzNnDlTc+fOVXZ2tjZt2qTIyEhdcskl/MfdALFw4UJ9/PHHeumllzrNqoebY/tkaE9J\nSfnef4kUFxe7XwP29+GHH2rGjBlatmyZfv7zn/t6OvAj7777rpYuXarAwEAFBgbqpz/9qerr6xUY\nGKg//elPvp4e/ERqaqoCAgI0fPhw99jw4cNls9m0b98+H84M/uQPf/iDMjMztXz5co0bN06nnnqq\nnn76ab333nvavHmzr6eHHrZgwQI9//zzeueddzR48OBO9z3cHNsnQ/ukSZP0wQcfqLm52T22ceNG\npaenKysry4czg795//33NWPGDC1dulQ33nijr6cDP/PVV19p69at7sc999yj0NBQbd26VT/+8Y99\nPT34iVNOOUVtbW3Kyclxj+Xk5MjhcPA7B26GYchq7Rir2mun0+mLKaGXzJ8/3x3YR44cecj9DzfH\n+kVor6+v15YtW7RlyxY5nU7l5uZqy5YtysvLkyQtXrxYZ599tnv/K664QmFhYZozZ462bduml19+\nWcuXL9fChQt99SOgF3T3PNm0aZOmT5+uefPm6fLLL5fdbpfdbufLY/1Yd8+RMWPGdHikpaXJarVq\nzJgxiomJ8dWPgR7W3fPk7LPP1vjx43XNNddoy5Yt+vzzz3XNNdfo5JNPZrldP9bd8+SCCy7QZ599\npmXLlmnXrl367LPPNHfuXA0aNEgTJkzw1Y+BHnbDDTdo3bp1euaZZxQdHe3OGvX19e59vJZjvXJ/\nmyP07rvvGhaLxbBYLIbVanU/nzt3rmEYhjFnzhxjyJAhHY758ssvjdNOO80ICQkx0tLSjHvuuccX\nU0cv6u55MmfOnA77tT++ey6h/zicf0v2t3btWiMyMrK3pgsfOZzzpKioyLj44ouNyMhIIykpybjq\nqquMkpISX0wfveRwzpMXX3zRmDBhghEREWEkJSUZF154ofHNN9/4YvroJd89P9ofS5cude/jrRxr\nMQy+HQEAAAD4M79YHgMAAADg4AjtAAAAgJ8jtAMAAAB+jtAOAAAA+DlCOwAAAODnCO0AAACAnyO0\nAwAAAH6O0A4AAAD4OUI7AAAA4Of+HyfFkOGO0XN/AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "xs = np.arange(0, 2, 0.01)\n", "ys = [x**2 - 2*x for x in xs]\n", "\n", "def y(x): \n", " return 8*x - 12.75\n", "\n", "plt.plot(xs, ys)\n", "plt.plot([1.25, 1.75], [y(1.25), y(1.75)])\n", "plt.xlim(1, 2)\n", "plt.ylim([-1.5, 1]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is not a good linearization for $f(x)$. It is exact for $x=1.5$, but quickly diverges when $x$ varies by a small amount.\n", "\n", "A much better approach is to use the slope of the function at the evaluation point as the linearization. We find the slope by taking the first derivative of the function:\n", "\n", "$$f(x) = x^2 -2x \\\\\n", "\\frac{df}{dx} = 2x - 2$$, \n", " \n", "so the slope at 1.5 is $2*1.5-2=1$. Let's plot that." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n3CePPPKInn/+eT311FM6evSofvWrX+mGG25Ygt5iuZzpfdLS0qLbb79dN954ow4ePKg333xTExMT\nuvXWW5eox1gOb7/9tv7qr/5KBw4c0FtvvaW0tDTdfPPNGhkZmbdN0jnWMJnc3Fzj5ZdfXvCc5557\nzigoKDAmJiYSx5544gmjoqLiXHcPJrGY+2Qud911l3HHHXecgx7BbM7kHnn44YeN+++/33jppZeM\n3Nzcc9wzmMli7pOjR48a6enpxtGjR5eoVzCbxdwnP/3pTw2bzWZEo9HEsbfeesuwWCzG0NDQue4i\nTMLn8xk2m834xS9+Me85yeZYU4y0n6kDBw7ouuuuk91uTxzbvn27ent71dHRsYw9g9l5PB4VFRUt\ndzdgIr/85S/1y1/+Ut/73vdkUOKDOfzXf/2X6urq9Prrr6uurk61tbW69957NTAwsNxdg4lcc801\nys3N1T//8z8rEolobGxML730kq644gr+vXMe8Xq9ikajiZUT55Jsjl2Rod3lcqmsrGzWsan3M1en\nAWb6xS9+obfeeksPPPDAcncFJtHb26sHHnhAr776qrKzs5e7OzCp1tZWdXR06Cc/+Yn+7d/+Ta+8\n8oqOHj2qT3/60/yHHhKcTqdef/117dq1S5mZmSosLNSRI0dmraKH1e+hhx7SpZdeqm3bts17TrI5\ndkWGduac4kz97ne/0xe/+EV973vfY0lRJHz5y1/Wgw8+qMsvv3y5uwITi0ajCgaDeuWVV3Tttdfq\n2muv1SuvvKL//d//VVNT03J3DybR2tqq22+/Xffdd5+ampq0f/9+5eXl6a677uI/7s4TjzzyiN59\n91299tprC2bVZHPsigztDofjlP8Scbvdic+AmX7729/q1ltv1eOPP66//Mu/XO7uwER+/etfa/fu\n3UpPT1d6err+4i/+Qn6/X+np6fqXf/mX5e4eTMLpdCotLU0NDQ2JYw0NDbLZbOrs7FzGnsFM/umf\n/klVVVV68skntXnzZl133XX6wQ9+oLffflsHDhxY7u7hHNuxY4d+/OMf66233tK6desWPDfZHLsi\nQ/u2bdv0m9/8RsFgMHFs3759qqioUE1NzTL2DGbzzjvv6NZbb9Xu3bv19a9/fbm7A5P54IMPdOjQ\nocT22GOPKSsrS4cOHdKf//mfL3f3YBLXXnutwuGwWltbE8daW1sViUT4dw4SDMOQ1To7Vk29j0aj\ny9ElLJGHHnooEdjXr19/2vOTzbGmCO1+v18HDx7UwYMHFY1G1dHRoYMHD6qrq0uStHPnTt18882J\n8++++25lZ2fr3nvv1ZEjR/Qf//EfevLJJ/XII48s10/AEjjT+2T//v365Cc/qQcffFBf+MIX5HK5\n5HK5KB5bxc70Htm0adOsrby8XFarVZs2bVJhYeFy/QycY2d6n9x8883asmWL7r//fh08eFB/+MMf\ndP/99+uqq65iut0qdqb3yW233ab3339fjz/+uJqbm/X+++/rvvvuU3V1tS677LLl+hk4x772ta/p\npZde0quvvqqCgoJE1vD7/YlzUpZjU7K+zVn69a9/bVgsFsNisRhWqzXx+r777jMMwzDuvfdeo7a2\ndlabw4cPG9dff72RmZlplJeXG4899thydB1L6Ezvk3vvvXfWeVPbyfcSVo9k/lky0969e428vLyl\n6i6WSTL3SV9fn3HnnXcaeXl5RmlpqfGlL33J6O/vX47uY4kkc5/89Kc/NS677DIjNzfXKC0tNT7z\nmc8YH3300XJ0H0vk5Ptjatu9e3finFTlWIthUB0BAAAAmJkppscAAAAAmB+hHQAAADA5QjsAAABg\ncoR2AAAAwOQI7QAAAIDJEdoBAAAAkyO0AwAAACZHaAcAAABMjtAOAAAAmNz/Awro3yhqTpZTAAAA\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def y(x): \n", " return x - 2.25\n", "\n", "plt.plot(xs, ys)\n", "plt.plot([1, 2], [y(1), y(2)])\n", "plt.xlim(1, 2)\n", "plt.ylim([-1.5, 1]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we can see that this linearization is much better. It is still exactly correct at $x=1.5$, but the errors are very small as x varies. Compare the tiny error at $x=1.4$ vs the very large error at $x=1.4$ in the previous plot. This does not constitute a formal proof of correctness, but this sort of geometric depiction should be fairly convincing. Certainly it is easy to see that in this case if the line had any other slope the errors would accumulate more quickly. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linearizing the Kalman Filter\n", "\n", "To implement the extended Kalman filter we will leave the linear equations as they are, and use partial derivatives to evaluate the system matrix $\\mathbf{F}$ and the measurement matrix $\\mathbf{H}$ at the state at time t ($\\mathbf{x}_t$). In other words we linearize the equations at time t by finding the slope (derivative) of the equations at that time. Since $\\mathbf{F}$ also depends on the control input vector $\\mathbf{u}$ we will need to include that term:\n", "\n", "$$\n", "\\begin{aligned}\n", "F \n", "&\\equiv {\\frac{\\partial{f}}{\\partial{x}}}\\biggr|_{{x_t},{u_t}} \\\\\n", "H &\\equiv \\frac{\\partial{h}}{\\partial{x}}\\biggr|_{x_t} \n", "\\end{aligned}\n", "$$\n", "\n", "All this means is that at each update step we compute $\\mathbf{F}$ as the partial derivative of our function $f()$ evaluated at x. We then use a computational technique, such as Taylor expansion, to turn this into a set of linear equations.\n", "\n", "For nonlinear problems our function $f()$ is a set of differential equations. Modeling physical systems with differential equations is well outside the scope of this book. You will need to be reasonably well versed in this branch of applied mathematics to successfully implement the EKF for your problem. If you have not read it yet, please read the section **Modeling Dynamic Systems** in the **Kalman Filter Math** chapter as it contains the math that you will need to complete this chapter.\n", "\n", "I think the easiest way to understand the EKF is to start off with an example. Perhaps the reason for some of my mathematical choices will not be clear, but trust that the end result will be an EKF." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example: Tracking a Flying Airplane" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will start by simulating tracking an airplane by using ground based radar. Radars work by emitting a beam of radio waves and scanning for a return bounce. Anything in the beam's path will reflects some of the signal back to the radar. By timing how long it takes for the reflected signal to get back to the radar the system can compute the *slant distance* - the straight line distance from the radar installation to the object.\n", "\n", "For this example we want to take the slant range measurement from the radar and compute the horizontal position (distance of aircraft from the radar measured over the ground) and altitude of the aircraft, as in the diagram below." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import ekf_internal\n", "ekf_internal.show_radar_chart()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As discussed in the introduction, our measurement model is the nonlinear function $x=\\sqrt{slant^2 - altitude^2}$. Therefore we will need a nonlinear \n", "\n", "Predict step:\n", "\n", "$$\n", "\\begin{array}{ll}\n", "\\textbf{Linear} & \\textbf{Nonlinear} \\\\\n", "x = Fx & x = \\underline{f(x)} \\\\\n", "P = FPF^T + Q & P = FPF^T + Q\n", "\\end{array}\n", "$$\n", "\n", "Update step:\n", "\n", "$$\n", "\\begin{array}{ll}\n", "\\textbf{Linear} & \\textbf{Nonlinear} \\\\\n", "K = PH^T(HPH^T + R)^{-1}& K = PH^T(HPH^T + R)^{-1}\\\\\n", "x = x + K(z-Hx) & x = x + K(z-\\underline{h(x)}) \\\\\n", "P = P(I - KH) & P = P(I - KH)\\\\\n", "\\end{array}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see there are two minor changes to the Kalman filter equations, which I have underlined. The first change replaces the equation $\\mathbf{x} = \\mathbf{Fx}$ with $\\mathbf{x} = f(\\mathbf{x})$. In the Kalman filter, $\\mathbf{Fx}$ is how we compute the new state based on the old state. However, in a nonlinear system we cannot use linear algebra to compute this transition. So instead we hypothesize a nonlinear function $f()$ which performs this function. Likewise, in the Kalman filter we convert the state to a measurement with the linear function $\\mathbf{Hx}$. For the extended Kalman filter we replace this with a nonlinear function $h()$, giving $\\mathbf{z}_x = h(\\mathbf{x})$.\n", "\n", "The only question left is how do we implement and use $f()$ and $h()$ in the Kalman filter if they are nonlinear? We reach for the single tool that we have available for solving nonlinear equations - we linearize them at the point we want to evaluate the system. For example, consider the function $f(x) = x^2 -2x$.\n", "\n", "The rest of the equations are unchanged, so $f()$ and $h()$ must produce a matrix that approximates the values of the matrices $\\mathbf{F}$ and $\\mathbf{H}$ at the current value for $\\mathbf{x}$. We do this by computing the partial derivatives of the state and measurements functions:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Design the State Variables" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So we want to track the position of an aircraft assuming a constant velocity and altitude, and measurements of the slant distance to the aircraft. That means we need 3 state variables - horizontal distance, velocity, and altitude.\n", "\n", "$$\\mathbf{x} = \\begin{bmatrix}distance \\\\velocity\\\\ altitude\\end{bmatrix}= \\begin{bmatrix}x_{pos} \\\\x_{vel}\\\\ x_{alt}\\end{bmatrix}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Design the System Model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will model this as a set of differential equations. So we need an equation in the form \n", "$$\\dot{\\mathbf{x}} = \\mathbf{Ax} + \\mathbf{w}$$\n", "\n", "where $\\mathbf{w}$ is the system noise. \n", "\n", "Let's work out the equation for each of the rows in $\\mathbf{x}.$\n", "\n", "The first row is $\\dot{x}_{pos}$, which is the velocity of the airplane. So we can say \n", "\n", "$$\\dot{x}_{pos} = x_{vel}$$\n", "\n", "The second row is $\\dot{x}_{vel}$, which is the acceleration of the airplane. We assume constant velocity, so the acceleration equals zero. However, we also assume system noise due to things like buffeting winds, errors in control inputs, and so on, so we need to add an error $w_{acc}$ to the term, like so\n", "\n", "$$\\dot{x}_{vel} = 0 + w_{acc}$$\n", "\n", "The final row contains $\\dot{x}_{alt}$, which is the rate of change in the altitude. We assume a constant altitude, so this term is 0, but as with acceleration we need to add in a noise term to account for things like wind, air density, and so on. This gives us\n", "\n", "$$\\dot{x}_{alt} = 0 + w_{alt}$$\n", "\n", "We turn this into matrix form with the following:\n", "\n", "$$\\dot{\\mathbf{x}} = \\begin{bmatrix} 0 & 1 & 0 \\\\ 0& 0& 0 \\\\ 0&0&0\\end{bmatrix}\n", "\\begin{bmatrix}x_{pos} \\\\x_{vel}\\\\ x_{alt}\\end{bmatrix} + \\begin{bmatrix}0 \\\\w_{vel}\\\\ w_{alt}\\end{bmatrix}\n", "$$\n", "\n", "Now we have our differential equations for the system we can somehow solve for them to get our familiar Kalman filter state equation\n", "\n", "$$ \\mathbf{x}=\\mathbf{Fx}$$\n", "\n", "Solving an arbitrary set of differential equations is beyond the scope of this book, however most Kalman filters are amenable to Taylor-series expansion which I will briefly explain here without proof. The section **Modeling Dynamic Systems** in the **Kalman Filter Math** chapter contains much more information on this technique.\n", "\n", "Given the partial differential equation \n", "\n", "$$\\mathbf{F} = \\frac{\\partial f(\\mathbf{x})}{\\partial x}$$\n", "\n", "the solution is $e^{\\mathbf{F}t}$. This is a standard answer learned in a first year partial differential equations course, and is not intuitively obvious from the material presented so far. However, we can compute the exponential matrix $e^{\\mathbf{F}t}$ using a Taylor-series expansion in the form:\n", "\n", "$$\\Phi = \\mathbf{I} + \\mathbf{F}\\Delta t + \\frac{(\\mathbf{F}\\Delta t)^2}{2!} + \\frac{(\\mathbf{F}\\Delta t)^3}{3!} + \\ldots$$\n", "\n", "You may expand that equation to as many terms as required for accuracy, however many problems only use the first term\n", "\n", "$$\\Phi \\approx \\mathbf{I} + \\mathbf{F}\\Delta t$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can then compute the system matrix by substituting $\\Phi$ in $x(t_k) = \\Phi(\\Delta t)x(t_{k-1})$. Thus, $\\Phi$ is our system matrix.\n", "\n", "We cannot use Greek symbols in Python, so the code uses the symbol `F` for $\\Phi$. This is admittedly confusing. In the math above $\\mathbf{F}$ represents the system of partial differential equations, and $\\Phi$ is the system matrix. In the Python the partial differential equations are not represented in the code, and the system matrix is `F`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Design the Measurement Model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The measurement function for our filter needs to take the filter state $\\mathbf{x}$ and turn it into a slant range distance. This is nothing more than the Pythagorean theorem.\n", "\n", "$$h(\\mathbf{x}) = \\sqrt{x_{pos}^2 + x_{alt}^2}$$\n", "\n", "The relationship between the slant distance and the position on the ground is nonlinear due to the square root term.\n", "So what we need to do is linearize the measurement function at some point. As we discussed above, the best way to linearize an equation at a point is to find its slope, which we do by taking its derivative.\n", "\n", "$$\n", "\\mathbf{H} \\equiv \\frac{\\partial{h}}{\\partial{x}}\\biggr|_x \n", "$$\n", "\n", "The derivative of a matrix is called a Jacobian, which in general takes the form \n", "\n", "$$\\frac{\\partial \\mathbf{h}}{\\partial \\mathbf{x}} = \n", "\\begin{bmatrix}\n", "\\frac{\\partial h_1}{\\partial x_1} & \\frac{\\partial h_1}{\\partial x_2} &\\dots \\\\\n", "\\frac{\\partial h_2}{\\partial x_1} & \\frac{\\partial h_2}{\\partial x_2} &\\dots \\\\\n", "\\vdots & \\vdots\n", "\\end{bmatrix}\n", "$$\n", "\n", "In other words, each element in the matrix is the partial derivative of the function $h$ with respect to the variables $x$. For our problem we have\n", "\n", "$$\\mathbf{H} = \\begin{bmatrix}\\frac{\\partial h}{\\partial x_{pos}} & \\frac{\\partial h}{\\partial x_{vel}} & \\frac{\\partial h}{\\partial x_{alt}}\\end{bmatrix}$$\n", "\n", "where $h(x) = \\sqrt{x_{pos}^2 + x_{alt}^2}$ as given above.\n", "\n", "Solving each in turn:\n", "\n", "$$\\begin{aligned}\n", "\\frac{\\partial h}{\\partial x_{pos}} &= \\\\ &=\\frac{\\partial}{\\partial x_{pos}} \\sqrt{x_{pos}^2 + x_{alt}^2} \\\\ &= \\frac{x_{pos}}{\\sqrt{x^2 + x_{alt}^2}}\n", "\\end{aligned}$$\n", "\n", "and\n", "\n", "$$\\begin{aligned}\n", "\\frac{\\partial h}{\\partial x_{vel}} &=\\\\\n", "&= \\frac{\\partial}{\\partial x_{vel}} \\sqrt{x_{pos}^2 + x_{alt}^2} \\\\ \n", "&= 0\n", "\\end{aligned}$$\n", "\n", "and\n", "\n", "$$\\begin{aligned}\n", "\\frac{\\partial h}{\\partial x_{alt}} &=\\\\ &= \\frac{\\partial}{\\partial x_{alt}} \\sqrt{x_{pos}^2 + x_{alt}^2} \\\\ &= \\frac{x_{alt}}{\\sqrt{x_{pos}^2 + x_{alt}^2}}\n", "\\end{aligned}$$\n", "\n", "giving us \n", "\n", "$$\\mathbf{H} = \n", "\\begin{bmatrix}\n", "\\frac{x_{pos}}{\\sqrt{x_{pos}^2 + x_{alt}^2}} & \n", "0 &\n", "&\n", "\\frac{x_{alt}}{\\sqrt{x_{pos}^2 + x_{alt}^2}}\n", "\\end{bmatrix}$$\n", "\n", "This may seem daunting, so step back and recognize that all of this math is doing something very simple. We have an equation for the slant range to the airplane which is nonlinear. The Kalman filter only works with linear equations, so we need to find a linear equation that approximates $\\mathbf{H}$ As we discussed above, finding the slope of a nonlinear equation at a given point is a good approximation. For the Kalman filter, the 'given point' is the state variable $\\mathbf{x}$ so we need to take the derivative of the slant range with respect to $\\mathbf{x}$. \n", "\n", "To make this more concrete, let's now write a Python function that computes the Jacobian of $\\mathbf{H}$. The `ExtendedKalmanFilter` class will be using this to generate `ExtendedKalmanFilter.H` at each step of the process." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from math import sqrt\n", "def HJacobian_at(x):\n", " \"\"\" compute Jacobian of H matrix for state x \"\"\"\n", "\n", " horiz_dist = x[0]\n", " altitude = x[2]\n", " denom = sqrt(horiz_dist**2 + altitude**2)\n", " return array ([[horiz_dist/denom, 0., altitude/denom]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, let's provide the code for $h(\\mathbf{x})$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def hx(x):\n", " \"\"\" compute measurement for slant range that would correspond \n", " to state x.\n", " \"\"\"\n", " \n", " return (x[0]**2 + x[2]**2) ** 0.5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now lets write a simulation for our radar." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from numpy.random import randn\n", "import math\n", "\n", "class RadarSim(object):\n", " \"\"\" Simulates the radar signal returns from an object flying \n", " at a constant altityude and velocity in 1D. \n", " \"\"\"\n", " \n", " def __init__(self, dt, pos, vel, alt):\n", " self.pos = pos\n", " self.vel = vel\n", " self.alt = alt\n", " self.dt = dt\n", " \n", " def get_range(self):\n", " \"\"\" Returns slant range to the object. Call once for each\n", " new measurement at dt time from last call.\n", " \"\"\"\n", " \n", " # add some process noise to the system\n", " self.vel = self.vel + .1*randn()\n", " self.alt = self.alt + .1*randn()\n", " self.pos = self.pos + self.vel*self.dt\n", " \n", " # add measurement noise\n", " err = self.pos * 0.05*randn()\n", " slant_dist = math.sqrt(self.pos**2 + self.alt**2)\n", " \n", " return slant_dist + err" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can implement our filter. I have not yet designed $\\mathbf{R}$ and $\\mathbf{Q}$ which is required to get optimal performance. However, we have already covered a lot of confusing material and I want you to see concrete examples as soon as possible. Therefore I will use 'reasonable' values for $\\mathbf{R}$ and $\\mathbf{Q}$.\n", "\n", "The `FilterPy` library provides the class `ExtendedKalmanFilter`. It works very similar to the `KalmanFilter` class we have been using, except that it allows you to provide functions that compute the Jacobian of $\\mathbf{H}$ and the function $h(\\mathbf{x})$. We have already written the code for these two functions, so let's get going.\n", "\n", "We start by importing the filter and creating it. There are 3 variables in `x` and only 1 measurement. At the same time we will create our radar simulator.\n", "\n", " from filterpy.kalman import ExtendedKalmanFilter\n", "\n", " rk = ExtendedKalmanFilter(dim_x=3, dim_z=1)\n", " radar = RadarSim(dt, pos=0., vel=100., alt=1000.)\n", " \n", "We will initialize the filter near the airplane's actual position\n", "\n", " rk.x = array([radar.pos, radar.vel-10, radar.alt+100])\n", " \n", "We assign the system matrix using the first term of the Taylor series expansion we computed above.\n", "\n", " dt = 0.05\n", " rk.F = eye(3) + array([[0, 1, 0],\n", " [0, 0, 0],\n", " [0, 0, 0]])*dt\n", " \n", "After assigning reasonable values to $\\mathbf{R}$, $\\mathbf{Q}$, and $\\mathbf{P}$ we can run the filter with a simple loop\n", "\n", " for i in range(int(20/dt)):\n", " z = radar.get_range()\n", " rk.update(array([z]), HJacobian_at, hx)\n", " rk.predict()\n", " \n", "Putting that all together along with some boilerplate code to save the results and plot them, we get" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n4MEIDg5Gv3798O9//xszZsxodTlRFNu97ezs7Havg+h24LFKXQ2PWepKeLxSV+Dr69uu5c12mFBT\nvXr1go+PD37++WcAgLe3N+rq6lBSUqKod/HiRXh7e8t1Gg8tAqRkoaioSK5DRERERGSpzLZnoKni\n4mJcuHABvXr1AgAEBwfD1tYWmZmZiI6OBgDk5+fj1KlT8i1IQ0JCUFFRAa1WK183oNVqodfrm92m\ntLHhw4d38t4QtU/92Soeq9RV8JilroTHK3Ul7b1lvsmSAb1ejzNnzgAADAYD8vLykJOTAw8PD7i7\nuyMpKQkzZ86Et7c3zp07h+XLl8PLy0seIuTq6orFixcjMTERGo0G7u7uWLZsGQIDAxEWFgYA8Pf3\nR0REBOLi4pCcnAxRFBEXF4dp06a1u0uFiIiIiKirM9kwoaysLAQFBSEoKAiVlZVISkpCUFAQkpKS\nYG1tjePHjyMqKgqDBg3CggUL5LsEOTk5yetYv349ZsyYgdmzZ2PMmDFwcXHBrl27FM8s2Lp1KwID\nAzFlyhRERERg2LBhSEtLM8UuExERERGZFUHsiCtuu4HGXSyurq4mbAnRjbELm7oaHrPUlfB4pa6k\nvb9hu8wFxERERERE1LGYDBARERERWSgmA0REREREForJABERERGRhWIyQERERERkoZgMEBERERFZ\nKCYDREREREQWislAC2pr+egFIiIiIur+mAy0oKrG1C0gIiIiIup8TAZaUFlt6hYQEREREXU+JgMt\nqGIyQEREREQWgMlAC9gzQERERESWgMlAC5gMEBEREZElYDLQAl5ATERERESWgMlAC9gzQERERESW\ngMlACyqrTN0CIiIiIqLOx2SgBewZICIiIiJLwGSgBbxmgIiIiIgsAZOBFrBngIiIiIgsAZOBFvCa\nASIiIiKyBEwGWsCeASIiIiKyBEwGWsBrBoiIiIjIEjAZaAF7BoiIiIjIEpgsGThw4ACmT58OHx8f\nWFlZITU1tdW6cXFxsLKywl//+lfF/KqqKsTHx8PT0xMqlQpRUVG4cOGCok5paSliYmKgVquhVqsR\nGxsLnU7XZtuYDBARERGRJTBZMqDX6xEQEIANGzbA0dERgiC0WG/79u3IyspC7969m9VJSEhAeno6\ntm3bhoMHD6K8vByRkZEwGAxynblz5yInJwcZGRnYvXs3jh49ipiYmDbbxguIiYiIiMgS2Jhqw1On\n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\nbLWOWq02+sd/U+wZICIiIqLuzOiegXfffRcvvvgi5s2bh48//lhx1x5PT0/88Y9/xPbt2zulkaai\n05u6BUREREREncfoZGDjxo2YOXMmkpOTMWHChGblQ4cOxcmTJzu0cabGB48RERERUXdmdDJw9uxZ\n+cLclri5ueHy5csd0ihzwZ4BIiIiIurOjE4G1Go1ioqKWi0/efIkevXq1SGNMhfsGSAiIiKi7szo\nZCAyMhLJyckoKSlpVnbs2DG89957iIqK6tDGmVo5ewaIiIiIqBszOhl46aWXIAgChgwZguXLlwMA\ntmzZgtmzZ2PEiBHw9vbGiy++2GkNNQXeWpSIiIiIujOjk4FevXohKysLkZGR+PTTTwFI9/DfvXs3\n5s+fj++//x49e/bstIaaAm8tSkRERETd2U09Z0Cj0SA5ORmbN29GcXExDAYDPD09YW1t3VntMyn2\nDBARERFRd3ZTyUA9QRCg0Wg6ui1mhz0DRERERNSdtZoMrF69GoIg3PQKV65c2a4GmRPeWpSIiIiI\nurM2k4Fb0R2SAUEARBHQXwNqakXY2tx8UkREREREZO5avYDYYDAoXufPn8eQIUMQExODrKwslJWV\noaysDD/88ANiYmIQEBCA33777Xa2vdO4qhqm+awBIiIiIuqujL6b0NKlSzFo0CCkpqYiODgYLi4u\ncHFxwfDhw5GamgpfX18sXbq0M9t623i5NUxfLDVdO4iIiIiIOpPRycD+/fsxYcKEVssnTJiAvXv3\ndkijTK13ozukFhSbrh1ERERERJ3J6GTA3t4e3333Xavl3333HRwcHDqkUabWy6NhuuCS6dpBRERE\nRNSZjE4G5s+fj48++ghPPPEETp06hdraWtTW1iI3NxdLly7F1q1bMW/evM5s623Tq3HPAJMBIiIi\nIuqmjH7OwGuvvYZLly7hnXfewTvvvCPfdlQURQBAdHQ0Xn/99c5p5W3WeJjQ7yWmawcRERERUWcy\nOhmwt7dHWloann32WXz55ZfIy8sDAPTr1w/3338/AgMDO62Rt5siGWDPABERERF1Uzf9BOLAwMBu\n9cO/Jb05TIiIiIiILIDR1wxYEl4zQERERESWwOieASsrKwiCIF8j0Fj9fEEQUFdX16ENNIXGdxP6\nvQTyvhERERERdSdGJwMrV65sNq+urg55eXnYsWMHBg0ahGnTpnVo40zFyVGAq0qErgKoqQVKdEBP\n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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from filterpy.kalman import ExtendedKalmanFilter\n", "from numpy import eye, array, asarray\n", "\n", "dt = 0.05\n", "rk = ExtendedKalmanFilter(dim_x=3, dim_z=1)\n", "radar = RadarSim(dt, pos=0., vel=100., alt=1000.)\n", "\n", "# make an imperfect starting guess\n", "rk.x = array([radar.pos-100, radar.vel+100, radar.alt+1000])\n", "\n", "\n", "rk.F = eye(3) + array([[0, 1, 0],\n", " [0, 0, 0],\n", " [0, 0, 0]])*dt\n", "\n", "rk.R = radar.alt * 0.05 # 5% of distance\n", "rk.Q = array([[0, 0, 0],\n", " [0, 1, 0],\n", " [0, 0, 1]]) * 0.001\n", "rk.P *= 50\n", "\n", "xs = []\n", "track = []\n", "for i in range(int(20/dt)):\n", " z = radar.get_range()\n", " track.append((radar.pos, radar.vel, radar.alt))\n", " \n", " rk.update(array([z]), HJacobian_at, hx)\n", " xs.append(rk.x)\n", " rk.predict()\n", "\n", "xs = asarray(xs)\n", "track = asarray(track)\n", "time = np.arange(0, len(xs)*dt, dt)\n", "ekf_internal.plot_radar(xs, track, time)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using SymPy to compute Jacobians" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Depending on your experience with derivatives you may have found the computation of the Jacobian above either fairly straightforward, or quite difficult. Even if you found it easy, a slightly more difficult problem easily leads to very difficult computations.\n", "\n", "As explained in Appendix A, we can use the SymPy package to compute the Jacobian for us. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAAmBAMAAAA2HDP0AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEO+Zu3ZEIokyq83d\nZlSLRjhlAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD0ElEQVRYCcWXPWgUQRTH/5v72s19ZIlN0MiF\nWKa5RkQEOSEiVhrkRIRoqmihcAErFbzCYAoTDkQIKBiLKCLiaSPhUC74UeqCBNIEAiJYWEREtBDj\nzNzO7Oz59uP8wIHczr73n//88mbCvaB/eAf+20gMD9voJ7af3n28ToT/RaiHJEjZ93MT/2I7wpMm\nsPCU0P5eKKqcNAHwNfZ2W6Z3h2lVOW86tCyAwNqw8HZ8DoXxEs6u0Evd6DMMVkMEqpzJOs5TOprg\nktky8b42iHcYx93t1EIZyw/BbMgX8umWswcgfxWaYOvR6TEk6zewhFlcWyKN3WByAYVPYQJeznxl\nH87BfE4dBE0gHHvY7o+MZbM6ELZB3wLSP0IEopwfMIRVoEXpQgguVhzMr1bza2PUQhkrlpD+Il+I\npyjnkrWAOzDI0wohYNAxxqUarG9RumXzBJbXC6XuTiHzIspX5GMRnF55gJlqZrFKWIbUgFAToWIt\n/BSIJf6QS9C32c3Y0Dz6SijoN7Frpz+uQa6MfOhfo0ZLTjsIMrFKodcgNYREg7CO7dRB0DvBzeYv\nU1eG2IaHXqO/TqRiO3UQXBBe5XRLPH0fQVgDlXs+nfsS4mTNHNBWdBDsFamGQZxsOd0SyZgfIU5J\nnNFM/ASGu0nBfTJhWopJLJn85Uk4YcJVZVG0vQV+gsR6O7PNuwdJpdWwVCxwQjihrNQf1QzwEwy2\nM8ZtT+ERaFheOmhGOHkExhNtmZ9gFuBN1ZapmpIIAh7UsVQ2cEI4CQLzyPV72Kodgr8G7PBEU/Vm\ns6WsOYEI6lgqGzShnATBWG/jlbFL/7731SDlQDVV0psTiKCOJZOBT8pJENSzDnKb37WFimCSBXM8\n4etR7zcfN5tOR1BbTk1pp95mc6TJOvA+75K3F0uC1Ah7r7Af3lTxIVtbcQ9kUGQiPgKd2jfxFup+\nA0kwdXJCdFGiqeIS2dpyAhXkiagR6MQJMhtXUfM7SAIU2Xccy4mmikt63NaWE4hgzOYdgU6cwFg8\nXbHzO1fX8f4t0muH+Ubyv7bEV+RsFuBDb23FKfBgvOadCYOc2qfABIVjRqtQSjm9Uw57UwSZz7yb\nbQ+9tU3IYLzmnamDnFCSVgetRrZuOtaeOosoAjy0l6WCbG3jNe/cIsoJQ6aTtQftK0aNqT2CW3OK\nkWxt4zXvnCDKKfNyHNbsFayt2D6C7Ah/F4NsbdUZSVXgM8qJ33hveDUofPaixCxm885XRjjhYln3\n9wigf2Hpku7nXTkxguLo/u43+VsrUqOHbKQnT/0tv+59MpOT+AmTXbj1s0kQCQAAAABJRU5ErkJg\ngg==\n", "text/latex": [ "$$\\left[\\begin{matrix}\\frac{x_{pos}}{\\sqrt{x_{alt}^{2} + x_{pos}^{2}}} & 0 & \\frac{x_{alt}}{\\sqrt{x_{alt}^{2} + x_{pos}^{2}}}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ x_pos x_alt ⎤\n", "⎢──────────────────── 0 ────────────────────⎥\n", "⎢ _________________ _________________⎥\n", "⎢ ╱ 2 2 ╱ 2 2 ⎥\n", "⎣╲╱ x_alt + x_pos ╲╱ x_alt + x_pos ⎦" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sympy\n", "sympy.init_printing()\n", "\n", "x_pos, x_vel, x_alt = sympy.symbols('x_pos, x_vel x_alt')\n", "\n", "H = sympy.Matrix([sympy.sqrt(x_pos**2 + x_alt**2)])\n", "\n", "state = sympy.Matrix([x_pos, x_vel, x_alt])\n", "H.jacobian(state)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This result is the same as the result we computed above, and at much less effort on our part!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Designing Q" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**author's note: ignore this, it to be revised - noise in position and altitude is independent, not dependent**\n", "\n", "Now we need to design the process noise matrix $\\mathbf{Q}$. From the previous section we have the system equation\n", "\n", "$$\\dot{\\mathbf{x}} = \\begin{bmatrix} 0 & 1 & 0 \\\\ 0& 0& 0 \\\\ 0&0&0\\end{bmatrix}\n", "\\begin{bmatrix}x_{pos} \\\\x_{vel}\\\\ x_{alt}\\end{bmatrix} + \\begin{bmatrix}0 \\\\w_{vel}\\\\ w_{alt}\\end{bmatrix}\n", "$$\n", "\n", "where our process noise is\n", "\n", "$$w = \\begin{bmatrix}0 \\\\w_{vel}\\\\ w_{alt}\\end{bmatrix}$$\n", "\n", "We know from the Kalman filter math chapter that \n", "\n", "$$\\mathbf{Q} = E(ww^T)$$\n", "\n", "where $E(\\bullet)$ is the expected value. We compute the expected value as\n", "\n", "$$\\mathbf{Q} = \\int_0^{dt} \\Phi(t)\\mathbf{Q}\\Phi^T(t) dt$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Rather than do this by hand, let's use sympy." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$\\left[\\begin{matrix}\\frac{\\Delta{t}^{3} w_{vel}^{2}}{3} & \\frac{\\Delta{t}^{2} w_{vel}^{2}}{2} & \\frac{w_{alt} w_{vel}}{2} \\Delta{t}^{2}\\\\\\frac{\\Delta{t}^{2} w_{vel}^{2}}{2} & \\Delta{t} w_{vel}^{2} & \\Delta{t} w_{alt} w_{vel}\\\\\\frac{w_{alt} w_{vel}}{2} \\Delta{t}^{2} & \\Delta{t} w_{alt} w_{vel} & \\Delta{t} w_{alt}^{2}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 3 2 2 2 2 ⎤\n", "⎢ \\Delta{t} ⋅w_vel \\Delta{t} ⋅w_vel \\Delta{t} ⋅w_alt⋅w_vel⎥\n", "⎢ ───────────────── ───────────────── ──────────────────────⎥\n", "⎢ 3 2 2 ⎥\n", "⎢ ⎥\n", "⎢ 2 2 ⎥\n", "⎢ \\Delta{t} ⋅w_vel 2 ⎥\n", "⎢ ───────────────── \\Delta{t}⋅w_vel \\Delta{t}⋅w_alt⋅w_vel ⎥\n", "⎢ 2 ⎥\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎢\\Delta{t} ⋅w_alt⋅w_vel 2 ⎥\n", "⎢────────────────────── \\Delta{t}⋅w_alt⋅w_vel \\Delta{t}⋅w_alt ⎥\n", "⎣ 2 ⎦" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sympy\n", "from sympy import Matrix\n", "sympy.init_printing(use_latex='mathjax')\n", "w_vel, w_alt, dt = sympy.symbols('w_vel w_alt \\Delta{t}')\n", "w = Matrix([[0, w_vel, w_alt]]).T\n", "phi = Matrix([[1, dt, 0], [0, 1, 0], [0,0,1]])\n", "\n", "q = w*w.T\n", "\n", "sympy.integrate(phi*q*phi.T, (dt, 0, dt))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Robot Localization\n", "\n", "So, time to try a real problem. I warn you that this is far from a simple problem. However, most books choose simple, textbook problems with simple answers, and you are left wondering how to implement a real world solution. \n", "\n", "We will consider the problem of robot localization. We already implemented this in the **Unscented Kalman Filter** chapter, and I recommend you read that first. In this scenario we have a robot that is moving through a landscape with sensors that give range and bearings to various landmarks. This could be a self driving car using computer vision to identify trees, buildings, and other landmarks. Or, it might be one of those small robots that vacuum your house. It could be a search and rescue device meant to go into dangerous areas to search for survivors. It doesn't matter too much. \n", "\n", "Our robot is wheeled, which means that it manuevers by turning it's wheels. When it does so, the robot pivots around the rear axle while moving forward. This is nonlinear behavior which we will have to account for. The robot has a sensor that gives it approximate range and bearing to known targets in the landscape. This is nonlinear because computing a position from a range and bearing requires square roots and trigonometry. \n", "\n", "### Robot Motion Model" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\nPnxY06dPr9I5Q0ND9be//a3MYzExMfrggw+0e/duff3119ZVi7y8PE2fPl2pqanasWOHvLy8yrzl\n1MvLq9z3Lf2QLP3fl19+WXFxcWXODQ4Otpk7fvx4PfXUU2XODQgIKPc9q+v69evq37+/8vLy9OKL\nL6pHjx5q2LChLBaL3n77bbt9O5YuXaqEhARt3rxZycnJevfdd/XWW29p4cKF+qd/+ifrzxAZGakF\nCxaU+74hISE235f++oSGhlZYL4ECAFBl0dHReu+997R+/XoVFhZaGy9jYmL08ssvW+8oKGvFoCzd\nu3e3XkL5pQEDBsgwDG3fvl179+61njMyMlIhISHavn27kpKS1LNnTwUFBdXo5+nUqZMkyWKxVFrz\n3XffLcMwlJ+fX+WfrzxHjx5VfHy83Zj095WV7du368KFC0pMTLQLMK+++mqZ5+3WrZu6deuml19+\nWVlZWerdu7dmzpxpDRSdOnVSRkaGBg4cWOWNv06ePCnp1q9VRbjkAQCosujoaJWUlOjNN99UeHi4\n2rVrZx3Pz8/XO++8Ix8fH/Xv379K5xs4cKBycnL0ww8/2B0LCQlRjx49tHHjRu3fv9/6IV7an7Fq\n1SodPXrUoQ/3++67T927d9eiRYtsLjWUKioq0rVr1yTdulwydOhQrVmzxqZ/oZRpmnaXC8rz/vvv\n29wRkpWVpUWLFik4ONi62lK6wlJSUmLz2i1bttjcuSFJ165ds5vXqFEjRUREKC8vz9oXMWHCBF28\neLHcFYpLly7ZjaWmpsrHx0d9+/at8GdihQIAUGWlqwbHjh3TxIkTreNdunRR8+bNdfToUT300ENq\n0KBBlc43evRovfLKK9q0aZO6detmdzw6OloLFy6UYRg2wSE6Otq674SjqwUff/yxoqOjFRkZqWee\neUZdu3bVjRs3dPLkSa1du1bvvPOOdeOt999/Xw8//LC1ZyEqKkolJSX6+eeftX79ej311FP6/e9/\nX+l7hoaGqnfv3po4caJM01RiYqLOnz+vJUuWyN/fX9KtTaVatGih6dOn6/Tp02rdurUOHTqkFStW\nqEePHjpy5Ij1fMuWLdMf//hHPfroo+rQoYN8fHy0a9cu6z4Wfn5+kqTnn39eW7duVUJCgrUHJigo\nSGfPntX27dsVEBBgcwuwaZr68ssvFRcXZ9MgWqYK7wEBAHikij4e7r//ftNisZgrVqywGf+Hf/gH\n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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ekf_internal.plot_bicycle()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At a first approximation n automobile steers by turning the front tires while moving forward. The front of the car moves in the direction that the wheels are pointing while pivoting around the rear tires. This simple description is complicated by issues such as slippage due to friction, the differing behavior of the rubber tires at different speeds, and the need for the outside tire to travel a different radius than the inner tire. Accurately modelling steering requires an ugly set of differential equations. For Kalman filtering, especially for lower speed robotic applications a simpler *bicycle model* has been found to perform well. \n", "\n", "I have depicted this model above. Here we see the front tire is pointing in direction $\\alpha$. Over a short time period the car moves forward and the rear wheel ends up further ahead and slightly turned inward, as depicted with the blue shaded tire. Over such a short time frame we can approximate this as a turn around a radius $R$. If you google bicycle model you will find that we can compute the turn angle $\\beta$ with\n", "\n", "$$\\beta = \\frac{d}{w} \\tan{(\\alpha)}$$\n", "\n", "and the turning radius R is given by \n", "\n", "$$R = \\frac{d}{\\beta}$$\n", "\n", "where the distance the rear wheel travels given a forward velocity $v$ is $d=v\\Delta t$.\n", "\n", "If we let $\\theta$ be our current orientation then we can compute the position $C$ before the turn starts as\n", "\n", "$$ C_x = x - R\\sin(\\theta) \\\\\n", "C_y = y + R\\cos(\\theta)\n", "$$\n", "\n", "After the move forward for time $\\Delta t$ the new position and orientation of the robot is\n", "\n", "$$\\begin{aligned} x &= C_x + R\\sin(\\theta + \\beta) \\\\\n", "y &= C_y - R\\cos(\\theta + \\beta) \\\\\n", "\\theta &= \\theta + \\beta\n", "\\end{aligned}\n", "$$\n", "\n", "Once we substitute in for $C$ we get\n", "\n", "$$\\begin{aligned} x &= x - R\\sin(\\theta) + R\\sin(\\theta + \\beta) \\\\\n", "y &= y + R\\cos(\\theta) - R\\cos(\\theta + \\beta) \\\\\n", "\\theta &= \\theta + \\beta\n", "\\end{aligned}\n", "$$\n", "\n", "You don't really need to understand this math in detail, as it is already a simplification of the real motion. The important thing to recognize is that our motion model is nonlinear, and we will need to deal with that with our Kalman filter." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Design the State Variables\n", "\n", "For our robot we will maintain the position and orientation of the robot:\n", "\n", "$$\\mathbf{x} = \\begin{bmatrix}x \\\\ y \\\\ \\theta\\end{bmatrix}$$\n", "\n", "I could include velocities into this model, but as you will see the math will already be quite challenging.\n", "\n", "Our control input $\\mathbf{u}$ is the velocity and steering angle\n", "\n", "$$\\mathbf{u} = \\begin{bmatrix}v \\\\ \\alpha\\end{bmatrix}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Design the System Model\n", "\n", "In general we model our system as a nonlinear motion model plus noise.\n", "\n", "$$x^- = x + f(x, u) + \\mathcal{N}(0, Q)$$\n", "\n", "Using the motion model for a robot that we created above, we can expand this to\n", "\n", "$$\\begin{bmatrix}x\\\\y\\\\\\theta\\end{bmatrix}^- = \\begin{bmatrix}x\\\\y\\\\\\theta\\end{bmatrix} + \n", "\\begin{bmatrix}- R\\sin(\\theta) + R\\sin(\\theta + \\beta) \\\\\n", "R\\cos(\\theta) - R\\cos(\\theta + \\beta) \\\\\n", "\\beta\\end{bmatrix}$$\n", "\n", "We linearize this with a taylor expansion at $x$:\n", "\n", "$$f(x, u) \\approx \\mathbf{x} + \\frac{\\partial f(x, u)}{\\partial x}$$\n", "\n", "We replace $f(x, u)$ with our state estimate $\\mathbf{x}$, and the derivative is the Jacobian of $f$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Jacobian $\\mathbf{F}$ is\n", "\n", "$$\\mathbf{F} = \\frac{\\partial f(x, u)}{\\partial x} =\\begin{bmatrix}\n", "\\frac{\\partial \\dot{x}}{\\partial x} & \n", "\\frac{\\partial \\dot{x}}{\\partial y} &\n", "\\frac{\\partial \\dot{x}}{\\partial \\theta}\\\\\n", "\\frac{\\partial \\dot{y}}{\\partial x} & \n", "\\frac{\\partial \\dot{y}}{\\partial y} &\n", "\\frac{\\partial \\dot{y}}{\\partial \\theta} \\\\\n", "\\frac{\\partial \\dot{\\theta}}{\\partial x} & \n", "\\frac{\\partial \\dot{\\theta}}{\\partial y} &\n", "\\frac{\\partial \\dot{\\theta}}{\\partial \\theta}\n", "\\end{bmatrix}\n", "$$\n", "\n", "When we calculate these we get\n", "\n", "$$\\mathbf{F} = \\begin{bmatrix}\n", "1 & 0 & -R\\cos(\\theta) + R\\cos(\\theta+\\beta) \\\\\n", "0 & 1 & -R\\sin(\\theta) + R\\sin(\\theta+\\beta) \\\\\n", "0 & 0 & 1\n", "\\end{bmatrix}$$\n", "\n", "We can double check our work with SymPy." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "text/latex": [ "$$\\left[\\begin{matrix}1 & 0 & - \\frac{w \\cos{\\left (\\theta \\right )}}{\\tan{\\left (a \\right )}} + \\frac{w}{\\tan{\\left (a \\right )}} \\cos{\\left (\\frac{t v}{w} \\tan{\\left (a \\right )} + \\theta \\right )}\\\\0 & 1 & - \\frac{w \\sin{\\left (\\theta \\right )}}{\\tan{\\left (a \\right )}} + \\frac{w}{\\tan{\\left (a \\right )}} \\sin{\\left (\\frac{t v}{w} \\tan{\\left (a \\right )} + \\theta \\right )}\\\\0 & 0 & 1\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ ⎛t⋅v⋅tan(a) ⎞⎤\n", "⎢ w⋅cos⎜────────── + θ⎟⎥\n", "⎢ w⋅cos(θ) ⎝ w ⎠⎥\n", "⎢1 0 - ──────── + ─────────────────────⎥\n", "⎢ tan(a) tan(a) ⎥\n", "⎢ ⎥\n", "⎢ ⎛t⋅v⋅tan(a) ⎞⎥\n", "⎢ w⋅sin⎜────────── + θ⎟⎥\n", "⎢ w⋅sin(θ) ⎝ w ⎠⎥\n", "⎢0 1 - ──────── + ─────────────────────⎥\n", "⎢ tan(a) tan(a) ⎥\n", "⎢ ⎥\n", "⎣0 0 1 ⎦" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sympy import symbols\n", "a, x, y, v, w, theta, time = symbols('a, x, y, v, w, theta, t')\n", "d = v*time\n", "beta = (d/w)*sympy.tan(a)\n", "R = w/sympy.tan(a)\n", "\n", "fxu = Matrix([[x-R*sympy.sin(theta)+R*sympy.sin(theta+beta)],\n", " [y+R*sympy.cos(theta)-R*sympy.cos(theta+beta)],\n", " [theta+beta]])\n", "\n", "fxu.jacobian(Matrix([x, y, theta]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can turn our attention to the noise. Here, the noise is in our control input, so it is in *control space*. In other words, we command a specific velocity and steering angle, but we need to convert that into errors in $x, y, \\theta$. In a real system this might vary depending on velocity, so it will need to be recomputed for every prediction. I will chose this as the noise model; for a real robot you will need to choose a model that accurately depicts the error in your system. \n", "\n", "$$\\mathbf{M} = \\begin{bmatrix}0.01 vel^2 & 0 \\\\ 0 & \\sigma_\\alpha^2\\end{bmatrix}$$\n", "\n", "If this was a linear problem we would convert from control space to state space using the by now familiar $\\mathbf{FMF}^\\mathsf{T}$ form. Since our motion model is nonlinear we do not try to find a closed form solution to this, but instead linearize it with a Jacobian which we will name $\\mathbf{V}$. \n", "\n", "$$\\mathbf{V} = \\frac{\\partial f(x, u)}{\\partial u} \\begin{bmatrix}\n", "\\frac{\\partial \\dot{x}}{\\partial v} & \\frac{\\partial \\dot{x}}{\\partial \\alpha} \\\\\n", "\\frac{\\partial \\dot{y}}{\\partial v} & \\frac{\\partial \\dot{y}}{\\partial \\alpha} \\\\\n", "\\frac{\\partial \\dot{\\theta}}{\\partial v} & \\frac{\\partial \\dot{\\theta}}{\\partial \\alpha}\n", "\\end{bmatrix}$$\n", "\n", "Let's compute that with SymPy:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$\\left[\\begin{matrix}t \\cos{\\left (\\frac{t v}{w} \\tan{\\left (a \\right )} + \\theta \\right )} & \\frac{t v}{\\tan{\\left (a \\right )}} \\left(\\tan^{2}{\\left (a \\right )} + 1\\right) \\cos{\\left (\\frac{t v}{w} \\tan{\\left (a \\right )} + \\theta \\right )} - \\frac{w \\sin{\\left (\\theta \\right )}}{\\tan^{2}{\\left (a \\right )}} \\left(- \\tan^{2}{\\left (a \\right )} - 1\\right) + \\frac{w}{\\tan^{2}{\\left (a \\right )}} \\left(- \\tan^{2}{\\left (a \\right )} - 1\\right) \\sin{\\left (\\frac{t v}{w} \\tan{\\left (a \\right )} + \\theta \\right )}\\\\t \\sin{\\left (\\frac{t v}{w} \\tan{\\left (a \\right )} + \\theta \\right )} & \\frac{t v}{\\tan{\\left (a \\right )}} \\left(\\tan^{2}{\\left (a \\right )} + 1\\right) \\sin{\\left (\\frac{t v}{w} \\tan{\\left (a \\right )} + \\theta \\right )} + \\frac{w \\cos{\\left (\\theta \\right )}}{\\tan^{2}{\\left (a \\right )}} \\left(- \\tan^{2}{\\left (a \\right )} - 1\\right) - \\frac{w}{\\tan^{2}{\\left (a \\right )}} \\left(- \\tan^{2}{\\left (a \\right )} - 1\\right) \\cos{\\left (\\frac{t v}{w} \\tan{\\left (a \\right )} + \\theta \\right )}\\\\\\frac{t}{w} \\tan{\\left (a \\right )} & \\frac{t v}{w} \\left(\\tan^{2}{\\left (a \\right )} + 1\\right)\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ ⎛ 2 ⎞ ⎛t⋅v⋅tan(a) ⎞ \n", "⎢ t⋅v⋅⎝tan (a) + 1⎠⋅cos⎜────────── + θ⎟ ⎛ 2 \n", "⎢ ⎛t⋅v⋅tan(a) ⎞ ⎝ w ⎠ w⋅⎝- tan (a) -\n", "⎢t⋅cos⎜────────── + θ⎟ ───────────────────────────────────── - ──────────────\n", "⎢ ⎝ w ⎠ tan(a) 2 \n", "⎢ tan (a\n", "⎢ \n", "⎢ ⎛ 2 ⎞ ⎛t⋅v⋅tan(a) ⎞ \n", "⎢ t⋅v⋅⎝tan (a) + 1⎠⋅sin⎜────────── + θ⎟ ⎛ 2 \n", "⎢ ⎛t⋅v⋅tan(a) ⎞ ⎝ w ⎠ w⋅⎝- tan (a) -\n", "⎢t⋅sin⎜────────── + θ⎟ ───────────────────────────────────── + ──────────────\n", "⎢ ⎝ w ⎠ tan(a) 2 \n", "⎢ tan (a\n", "⎢ \n", "⎢ ⎛ 2 \n", "⎢ t⋅tan(a) t⋅v⋅⎝tan (a\n", "⎢ ──────── ───────────\n", "⎣ w w \n", "\n", " ⎛ 2 ⎞ ⎛t⋅v⋅tan(a) ⎞⎤\n", " ⎞ w⋅⎝- tan (a) - 1⎠⋅sin⎜────────── + θ⎟⎥\n", " 1⎠⋅sin(θ) ⎝ w ⎠⎥\n", "────────── + ─────────────────────────────────────⎥\n", " 2 ⎥\n", ") tan (a) ⎥\n", " ⎥\n", " ⎛ 2 ⎞ ⎛t⋅v⋅tan(a) ⎞⎥\n", " ⎞ w⋅⎝- tan (a) - 1⎠⋅cos⎜────────── + θ⎟⎥\n", " 1⎠⋅cos(θ) ⎝ w ⎠⎥\n", "────────── - ─────────────────────────────────────⎥\n", " 2 ⎥\n", ") tan (a) ⎥\n", " ⎥\n", " ⎞ ⎥\n", ") + 1⎠ ⎥\n", "────── ⎥\n", " ⎦" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fxu.jacobian(Matrix([v, a]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "**authors note: explain FPF better**\n", "\n", "This gives us the final form of our prediction equations:\n", "\n", "$$\\begin{aligned}\n", "\\mathbf{x}^- &= \\mathbf{x} + \n", "\\begin{bmatrix}- R\\sin(\\theta) + R\\sin(\\theta + \\beta) \\\\\n", "R\\cos(\\theta) - R\\cos(\\theta + \\beta) \\\\\n", "\\beta\\end{bmatrix}\\\\\n", "\\mathbf{P}^- &=\\mathbf{FPF}^{\\mathsf{T}} + \\mathbf{VMV}^{\\mathsf{T}}\n", "\\end{aligned}$$\n", "\n", "One final point. This form of linearization is not the only way to predict $\\mathbf{x}$. For example, we could use a numerical integration technique like *Runge Kutta* to compute the position of the robot in the future. In fact, if the time step is relatively large you will have to do that. As I am sure you are realizing, things are not as cut and dried with the EKF as it was for the KF. For a real problem you have to very carefully model your system with differential equations and then determine the most appropriate way to solve that system. The correct approach depends on the accuracy you require, how nonlinear the equations are, your processor budget, and numerical stability concerns. These are all topics beyond the scope of this book." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Design the Measurement Model\n", "\n", "Now we need to design our measurement model. For this problem we are assuming that we have a sensor that receives a noisy bearing and range to multiple known locations in the landscape. The measurement model must convert the state $\\begin{bmatrix}x & y&\\theta\\end{bmatrix}^\\mathsf{T}$ into a range and bearing to the landmark. Using $p$ be the position of a landmark, the range $r$ is\n", "\n", "$$r = \\sqrt{(p_x - x)^2 + (p_y - y)^2}$$\n", "\n", "We assume that the sensor provides bearing relative to the orientation of the robot, so we must subtract the robot's orientation from the bearing to get the sensor reading, like so:\n", "\n", "$$\\phi = \\arctan(\\frac{p_y - y}{p_x - x}) - \\theta$$\n", "\n", "\n", "Thus our function is\n", "\n", "\n", "$$\\begin{aligned}\n", "\\mathbf{x}& = h(x,p) &+ \\mathcal{N}(0, R)\\\\\n", "&= \\begin{bmatrix}\n", "\\sqrt{(p_x - x)^2 + (p_y - y)^2} \\\\\n", "\\arctan(\\frac{p_y - y}{p_x - x}) - \\theta \n", "\\end{bmatrix} &+ \\mathcal{N}(0, R)\n", "\\end{aligned}$$\n", "\n", "This is clearly nonlinear, so we need linearize $h(x, p)$ at $\\mathbf{x}$ by taking its Jacobian. We compute that with SymPy below." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$\\left[\\begin{matrix}\\frac{- px + x}{\\sqrt{\\left(px - x\\right)^{2} + \\left(py - y\\right)^{2}}} & \\frac{- py + y}{\\sqrt{\\left(px - x\\right)^{2} + \\left(py - y\\right)^{2}}} & 0\\\\- \\frac{- py + y}{\\left(px - x\\right)^{2} + \\left(py - y\\right)^{2}} & - \\frac{px - x}{\\left(px - x\\right)^{2} + \\left(py - y\\right)^{2}} & -1\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ -px + x -py + y ⎤\n", "⎢────────────────────────── ────────────────────────── 0 ⎥\n", "⎢ _______________________ _______________________ ⎥\n", "⎢ ╱ 2 2 ╱ 2 2 ⎥\n", "⎢╲╱ (px - x) + (py - y) ╲╱ (px - x) + (py - y) ⎥\n", "⎢ ⎥\n", "⎢ -(-py + y) -(px - x) ⎥\n", "⎢ ───────────────────── ───────────────────── -1⎥\n", "⎢ 2 2 2 2 ⎥\n", "⎣ (px - x) + (py - y) (px - x) + (py - y) ⎦" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "px, py = symbols('px, py')\n", "z = Matrix([[sympy.sqrt((px-x)**2 + (py-y)**2)],\n", " [sympy.atan2(py-y, px-x) - theta]])\n", "z.jacobian(Matrix([x, y, theta]))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Now we need to write that as a Python function. For example we might write:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from math import sqrt\n", "\n", "def H_of(x, landmark_pos):\n", " \"\"\" compute Jacobian of H matrix where h(x) computes the range and\n", " bearing to a landmark for state x \"\"\"\n", "\n", " px = landmark_pos[0]\n", " py = landmark_pos[1]\n", " hyp = (px - x[0, 0])**2 + (py - x[1, 0])**2\n", " dist = sqrt(hyp)\n", "\n", " H = array(\n", " [[-(px - x[0, 0]) / dist, -(py - x[1, 0]) / dist, 0],\n", " [ (py - x[1, 0]) / hyp, -(px - x[0, 0]) / hyp, -1]])\n", " return H" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "We also need to define a function that converts the system state into a measurement." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from math import atan2\n", "def Hx(x, landmark_pos):\n", " \"\"\" takes a state variable and returns the measurement that would\n", " correspond to that state.\n", " \"\"\"\n", " px = landmark_pos[0]\n", " py = landmark_pos[1]\n", " dist = sqrt((px - x[0, 0])**2 + (py - x[1, 0])**2)\n", "\n", " Hx = array([[dist],\n", " [atan2(py - x[1, 0], px - x[0, 0]) - x[2, 0]]])\n", " return Hx" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Design Measurement Noise\n", "\n", "This is quite straightforward as we need to specify measurement noise in measurement space, hence it is linear. It is reasonable to assume that the range and bearing measurement noise is independent, hence\n", "\n", "$$R=\\begin{bmatrix}\\sigma_{range}^2 & 0 \\\\ 0 & \\sigma_{bearing}^2\\end{bmatrix}$$\n", "\n", "### Implementation\n", "\n", "We will use `FilterPy`'s `ExtendedKalmanFilter` class to implment the filter. The prediction of $\\mathbf{x}$ is nonlinear, so we will have to override the method `predict()` to implement this. I'll want to also use this code to simulate the robot, so I'll add a method `move()` that computes the position of the robot which both `predict()` and my simulation can call. You would not need to do this for a real robot, of course.\n", "\n", "The matrices for the prediction step are quite large; while trying to implement this I made several errors before I finally got it working. I only found my errors by using SymPy's `evalf` function, which allows you to evaluate a SymPy `Matrix` for specific values of the variables. I decided to demonstrate this technique, and to eliminate a possible source of bugs, by using SymPy in the Kalman filter. You'll need to understand a couple of points.\n", "\n", "First, `evalf` uses a dictionary to pass in the values you want to use. For example, if your matrix contains an x and y, you can write\n", "\n", " M.evalf(subs={x:3, y:17})\n", " \n", "to evaluate the matrix for `x=3` and `y=17`. \n", "\n", "Second, `evalf` returns a `sympy.Matrix` object. You can convert it to a numpy array with `numpy.array(m)`, but the result uses type `object` for the elements in the array. You can convert the array to an array of floats with ``numpy.array(m).astype(float)`.\n", "\n", "So, here is the code:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from filterpy.kalman import ExtendedKalmanFilter as EKF\n", "from numpy import dot, array, sqrt\n", "class RobotEKF(EKF):\n", " def __init__(self, dt, wheelbase, sigma_vel, sigma_steer):\n", " EKF.__init__(self, 3, 2, 2)\n", " self.dt = dt\n", " self.wheelbase = wheelbase\n", " self.sigma_vel = sigma_vel\n", " self.sigma_steer = sigma_steer\n", "\n", " a, x, y, v, w, theta, time = symbols('a, x, y, v, w, theta, t')\n", " d = v*time\n", " beta = (d/w)*sympy.tan(a)\n", " r = w/sympy.tan(a)\n", " \n", " self.fxu = Matrix([[x-r*sympy.sin(theta)+r*sympy.sin(theta+beta)],\n", " [y+r*sympy.cos(theta)-r*sympy.cos(theta+beta)],\n", " [theta+beta]])\n", "\n", " self.F_j = self.fxu.jacobian(Matrix([x, y, theta]))\n", " self.V_j = self.fxu.jacobian(Matrix([v, a]))\n", "\n", " # save dictionary and it's variables for later use\n", " self.subs = {x: 0, y: 0, v:0, a:0, time:dt, w:wheelbase, theta:0}\n", " self.x_x, self.x_y, self.v, self.a, self.theta = x, y, v, a, theta\n", "\n", " def predict(self, u=0):\n", " self.x = self.move(self.x, u, self.dt)\n", "\n", " self.subs[self.theta] = self.x[2, 0]\n", " self.subs[self.v] = u[0]\n", " self.subs[self.a] = u[1]\n", "\n", " F = array(self.F_j.evalf(subs=self.subs)).astype(float)\n", " V = array(self.V_j.evalf(subs=self.subs)).astype(float)\n", "\n", " # covariance of motion noise in control space\n", " M = array([[self.sigma_vel*u[0]**2, 0], [0, self.sigma_steer**2]])\n", "\n", " self.P = dot(F, self.P).dot(F.T) + dot(V, M).dot(V.T)\n", "\n", " def move(self, x, u, dt):\n", " h = x[2, 0]\n", " v = u[0]\n", " steering_angle = u[1]\n", "\n", " dist = v*dt\n", "\n", " if abs(steering_angle) < 0.0001:\n", " # approximate straight line with huge radius\n", " r = 1.e-30\n", " b = dist / self.wheelbase * tan(steering_angle)\n", " r = self.wheelbase / tan(steering_angle) # radius\n", " sinh = sin(h)\n", " sinhb = sin(h + b)\n", " cosh = cos(h)\n", " coshb = cos(h + b)\n", " return x + array([[-r*sinh + r*sinhb],\n", " [r*cosh - r*coshb],\n", " [b]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have another issue to handle. The residual is notionally computed as $y = z - h(x)$ but this will not work because our measurement contains an angle in it. Suppose z has a bearing of $1^\\circ$ and $h(x)$ has a bearing of $359^\\circ$. Naively subtracting them would yield a bearing difference of $-358^\\circ$, which will throw off the computation of the Kalman gain. The correct angle difference in this case is $-2^\\circ$. So we will have to write code to correctly compute the bearing residual." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def residual(a,b):\n", " \"\"\" compute residual between two measurement containing [range, bearing]. Bearing\n", " is normalized to [0, 360)\"\"\"\n", " y = a - b\n", " if y[1] > np.pi:\n", " y[1] -= 2*np.pi\n", " if y[1] < -np.pi:\n", " y[1] += 2*np.pi\n", " return y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The rest of the code runs the simulation and plots the results, and shouldn't need too much comment by now. I create a variable `landmarks` that contains the coordinates of the landmarks. I update the simulated robot position 10 times a second, but run the EKF only once. This is for two reasons. First, we are not using Runge Kutta to integrate the differental equations of motion, so a narrow time step allows our simulation to be more accurate. Second, it is fairly normal in embedded systems to have limited processing speed. This forces you to run your Kalman filter only as frequently as absolutely needed." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [], "source": [ "from filterpy.stats import plot_covariance_ellipse\n", "from math import sqrt, tan, cos, sin, atan2\n", "dt = 1.0\n", "\n", "def run_localization(landmarks, sigma_vel, sigma_steer, sigma_range, sigma_bearing):\n", " ekf = RobotEKF(dt, wheelbase=0.5, sigma_vel=sigma_vel, sigma_steer=sigma_steer)\n", " ekf.x = array([[2, 6, .3]]).T\n", " ekf.P = np.diag([.1, .1, .1])\n", " ekf.R = np.diag([sigma_range**2, sigma_bearing**2])\n", "\n", " sim_pos = ekf.x.copy() # simulated position\n", " u = array([1.1, .01]) # steering command (vel, steering angle radians)\n", "\n", " plt.scatter(landmarks[:, 0], landmarks[:, 1], marker='s', s=60)\n", " for i in range(200):\n", " sim_pos = ekf.move(sim_pos, u, dt/10.) # simulate robot\n", " plt.plot(sim_pos[0], sim_pos[1], ',', color='g')\n", "\n", " if i % 10 == 0:\n", " ekf.predict(u=u)\n", "\n", " plot_covariance_ellipse((ekf.x[0,0], ekf.x[1,0]), ekf.P[0:2, 0:2], std=6,\n", " facecolor='b', alpha=0.08)\n", "\n", " x, y = sim_pos[0, 0], sim_pos[1, 0]\n", " for lmark in landmarks:\n", " d = np.sqrt((lmark[0] - x)**2 + (lmark[1] - y)**2) \n", " a = atan2(lmark[1] - y, lmark[0] - x) - sim_pos[2, 0]\n", " z = np.array([[d + randn()*sigma_range], [a + randn()*sigma_bearing]])\n", "\n", " ekf.update(z, HJacobian=H_of, Hx=Hx, residual=residual,\n", " args=(lmark), hx_args=(lmark))\n", "\n", " plot_covariance_ellipse((ekf.x[0,0], ekf.x[1,0]), ekf.P[0:2, 0:2], std=6,\n", " facecolor='g', alpha=0.4)\n", " plt.axis('equal')\n", " plt.show()\n", " return ekf" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\nERFRkf4fnzAUoT/vFlsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[ 0.02377444 0.04284596 0.00222157]\n" ] } ], "source": [ "landmarks = array([[5, 10], [10, 5], [15, 15], [20, 5]])\n", "landmarks = array([[5, 10], [10, 5], [15, 15]])\n", "\n", "ekf = run_localization(landmarks, sigma_vel=0.1, sigma_steer=np.radians(1),\n", " sigma_range=0.3, sigma_bearing=0.1)\n", "print(ekf.P.diagonal())" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtMAAAEWCAYAAACkORurAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmUXWd55/vvHs881ak6NVdJliVbtpHByNhAADNbYV3n\nJlnkhiGy0/cCCXaCE9IMiySi0w4JYGi8YieLJA04QPqSm9sJQ0PafTGWQ0ywhJHB8qCpNNZcdcZ9\n9rzf+0dJsmRNtgZbw/NZS8vls/fZ+62z9qnzq7ee/byaUkohhBBCCCGEeMH0l3oAQgghhBBCXKgk\nTAshhBBCCHGaJEwLIYQQQghxmiRMCyGEEEIIcZokTAshhBBCCHGaJEwLIYQQQghxmiRMCyGEEEII\ncZpOGqb/7M/+jOuvv55SqUStVuOWW25h69atx+z3yU9+kuHhYbLZLG984xt58sknz9mAhRBCCCGE\nOF+cNExv3LiRO+64gx/96Ec8+OCDmKbJW97yFur1+uF9Pv3pT/P5z3+ee++9l02bNlGr1XjrW99K\np9M554MXQgghhBDipaS9kBUQHcehVCrxzW9+k3e84x0opRgaGuJ3f/d3+fjHPw6A53nUajXuvvtu\n3v/+95+zgQshhBBCCPFSe0E1061WiyRJqFQqAExMTDAzM8Pb3va2w/uk02le//rX88gjj5zdkQoh\nhBBCCHGeeUFh+kMf+hCveMUrePWrXw3A9PQ0AP39/UftV6vVDm8TQgghhBDiYmU+3x1///d/n0ce\neYQf/vCHaJp2yv2fu0+z2XzhoxNCCCGEEOI8USqVjnnsec1M/97v/R7f+MY3ePDBB1m2bNnhxwcG\nBgCYmZk5av+ZmZnD24QQQgghhLhYnTJMf+hDHzocpFetWnXUtuXLlzMwMMADDzxw+DHP8/jhD3/I\na17zmrM/WiGEEEIIIc4jJy3zuP322/na177GP//zP1MqlQ7XQRcKBXK5HJqmceedd/KpT32KK6+8\nkpUrV3LXXXdRKBR497vffcLjHm+KXJzY5s2bAVi7du1LPBJxvpBrQhxJrgfxXHJNiOeSa+L0napU\n+aRh+q/+6q/QNI03v/nNRz3+yU9+kj/+4z8G4CMf+Qiu63L77bdTr9e58cYbeeCBB8jlcmc4dCGE\nEEIIIc5vJw3TSZI8r4Ns2LCBDRs2nJUBCSGEEEIIcaF4Qa3xhBBCCCGEEM+SMC2EEEIIIcRpkjAt\nhBBCCCHEaZIwLYQQQgghxGmSMC2EEEIIIcRpkjAthBBCCCHEaZIwLYQQQgghxGmSMC2EEEIIIcRp\nkjAthBBCCCHEaZIwLYQQQgghxGmSMC2EEEIIIcRpkjAthBBCCCHEaZIwLYQQQgghxGmSMC2EEEII\nIcRpkjAthBBCCCHEaZIwLYQQQgghxGk6ZZh++OGHueWWWxgZGUHXde6///6jtrdaLT74wQ8yOjpK\nNpvlyiuv5Atf+MI5G7AQQgghhBDnC/NUOziOw5o1a7j11ltZv349mqYdtf3OO+9k48aNfO1rX2P5\n8uVs3LiR973vffT29vLe9773nA1cCCGEEEKIl9opZ6bXrVvHXXfdxa/+6q+i68fuvmnTJtavX88b\n3vAGxsbG+I3f+A1uvPFGHn300XMyYCGEEEIIIc4XZ1wzvW7dOr71rW+xf/9+AB555BG2bNnCzTff\nfMaDE0IIIYQQ4nymKaXU8925UChw3333sX79+sOPKaVYv349X//61zHNpaqRe++9l/e///1HPbfZ\nbB7+evv27Wc6biGEEEIIIc65lStXHv66VCods/2UNdOn8gd/8Af8+Mc/5tvf/jbj4+Ns3LiRD3/4\nw4yPj/P2t7/9TA8vhBBCCCHEeeuMwrTjONxzzz380z/9E+94xzsAuOaaa9iyZQt33333CcP02rVr\nz+S0l5zNmzcD8rqJZ8k1IY4k14N4LrkmxHPJNXH6jqyuOJ4zCtNKKZRSx9yYqOs6L6B6RAghhBDn\niThOCOOEJFGHP8s1TSNlGRiGLE8hxHM9r9Z4h2qckyRhz549bNmyhWq1yujoKG9+85v52Mc+Rj6f\nZ2xsjI0bN/LVr36Vz372s+d88EIIIYQ4c34QEUQxYZQQxYowhDiGQ/Niug6pVIhlauTSNrZlvLQD\nFuI8cspfMTdt2sR1113Hddddh+d5bNiwgeuuu44NGzYA8PWvf50bbriB9773vVx99dV85jOf4a67\n7uL2228/54MXQgghxOlJEoXjBiy2XBZbAQv1mIVFRaupEfomWmKhKwsDmyQyaTY06g1Fo+PjBdFL\nPXwhzhunnJm+6aabSJLkhNv7+vr427/927M6KCGEEEKcG0mi6Pohnh/heuD7oKNjWybZrIGua8d9\nXi4Nrh/SaoXoWoBl6FL2IQRnoZuHEEIIIc5/SilcP8L1Q7oueB5YhkkhbT7vUJxJWcSJwvUisumY\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[ 0.0196241 0.02072659 0.00153628]\n" ] } ], "source": [ "landmarks = array([[5, 10], [10, 5], [15, 15], [20, 5]])\n", "\n", "ekf = run_localization(landmarks, sigma_vel=0.1, sigma_steer=np.radians(1),\n", " sigma_range=0.3, sigma_bearing=0.1)\n", "print(ekf.P.diagonal())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I have plotted the landmarks as solid squares. The path of the robot is drawn with a dashed line, which is admittedly hard to see. The covariance after the predict step is drawn in a very light shade of blue, and the covariance after all of the landmark measurements are incorporated are shown in green. To make them visible at this scale I have set the ellipse boundary at 6$\\sigma$.\n", "\n", "From this we can see that there is a lot of uncertainty added by our motion model, and that most of the error in in the direction of motion. We can see that from the shape of the blue ellipses. After a few steps we can see that the filter incorporates the landmark measurements. \n", "\n", "We can see the fantastic effect that multiple landmarks has on our uncertainty by only using the first two landmarks." ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[ 0.02078393 0.04508807 0.00022516]\n" ] } ], "source": [ "ekf = run_localization(landmarks[0:2], sigma_vel=1.e-10, sigma_steer=1.e-10,\n", " sigma_range=1.4, sigma_bearing=.05)\n", "print(ekf.P.diagonal())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see that the covariance gets smaller as it passes through the landmarks but quickly expands once past them. Let's see what happens with only one landmark" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "image/png": "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\nPJ/YOukwl2+x2egwNrazVqVSCG9Vp49fTmEe1HFkPEDUGmHuJqPvnA4tKu0GmXqFMzNZDHotTz4c\nYdw5QizRoNns7y+/NgnkairPQqZ6Kz8KIcRd5l3D9OrqKocOHeLP/uzPGBgYQFGUvuuKovCZz3yG\nXC63/fHCCy98YDcshBDizrAa9QxoBxgwKJiHWswW4vzz2YXtNozxoB2XyUG13u07oCTs1xOvJjh5\ntVedfmjYjc/sIZfffXqhx6MhXktx8kqq1+ph9bC8rLC63t+z3FfJvpzmo3uDhG1+6nWFlbWdtXNz\nWxXyYK86fepqGo/NyL6QF8+gj1hqd++0z61jkyUWC3kmFwp8dH+Ab6T/a/6+/FW+uv9/2b3eA9m1\nHGems2xsNjkw7GZ/0I9zwMt8vL/d4/oTGn98Kb6rhUUIce951zD98z//83z961/nl3/5l1Gpdi/v\ndrvodDrcbvf2h9Vq/UBuVgghxJ1jMRkwaPSsb3YYHzZQ3MgwFc9sT+sYMhoIOKyYNCYqS/3V6Y5m\njXi5V50+MOzGb3Hv2ogIEPLpKK4XuJoqsLLWYG/Yhc/sI529eXW6vFFiJl1geX2TQ6NeAmY/8eum\naczP9wK126Glq1knVs5xfj7Hk4fCRO1BSqXOrqCuUilEgr1DX05cSaHe+rfv94Zf6lWbbxiVZzEp\n6AYaLJbTnLraa3355KNRxhwRqlVluz1k5z3qWW1XmM/1+riFEPe2990zrSgKx44dw+PxsGfPHr7w\nhS9QLBZvx70JIYS4i9hMBga0A6xvdNFqFaIhHfOVRU5Mpbcr0aN+Gw6jnVKlP0CGfXoStRSnZzJo\nNSr2hJy4b7IRUadV4XGqSVbTnLiS4siEj4DFS6Hc3t7YeI1W2zsVMbGU5u2raT66N0DEFqBeV5ic\navPSS/Dyy73xd3NzvVnSiVqSM9MZrCYDh0Z8+M0BYond1elrGxe/cOYImq+r6T7fZW/Ah03vvmk1\n2++GxFKKM7MZVtcbOK1GPrI3xLB9mNnFjb4KtErV67Wer8Q4PpWi1Wrvej0hxL1D835f4Od+7uf4\n5V/+ZYaHh1lcXORrX/san/zkJzlz5gw6ne6mX3P69On3+23veg/Ce7xbybO/s+T53zkf9LNfXm9Q\nK1ZIL5dwmBW6XSjUurx5UcNAu8qegIXVlQaN2gbztSJGnYprnYHdLuQqHU5e0mFT6gwaNHSXW0yn\n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\nbNuaMMrs+wF+YIAjYdrCtiwFaBERmVEK0yIyLziOjTP9e7uIiIhMSjsViIiIiIhMkcK0iIiIiMgU\nKUyLiIiIiEyRwrSIiIiIyBQpTIuIiIiITJHCtIiIiIjIFClMi4iIiIhMkcK0iIiIiMgUKUyLiIiI\niEyRwrSIiIiIyBQpTIuIiIiITJHCtIiIiIjIFClMi4iIiIhMkcK0iIiIiMgUKUyLiIiIiEyRwrSI\niIiIyBQpTIuIiIiITJHCtIiIiIjIFClMi4iIiIhMkcK0iIiIiMgUKUyLiIiIiEyRwrSIiIiIyBQp\nTIuIiIiITJHCtIiIiIjIFClMi4iIiIhMkcK0iIiIiMgUTVuYfuihh2hpaSEajbJ+/Xq2bt06XacW\nERERETktTUuYfuqpp7jtttu466672LFjB62trVx55ZW0tbVNx+lFRERERE5L0xKmf/SjH3HDDTfw\nta99jRUrVvDTn/6U+vp6fv7zn0/H6UVERERETkunHKYLhQJvvPEGGzdunHB848aNbNu27VRPLyIi\nIiJy2jrlMN3b24vv+9TW1k44XlNTQ2dn56meXkRERETktBWaiycdHByci6edFcuWLQPm92s8Xan2\nc0v1nzuq/dxS/eeW6j93VPsxpzwyXV1djeM4dHV1TTje1dVFfX39qZ5eREREROS0dcph2nVdzj33\nXJ599tkJx5977jlaW1tP9fQiIiIiIqetaZnmcccdd7Bp0ybOP/98Wltb+cUvfkFnZyff+MY3xtuk\nUqnpeCoRERERkdPGtITpL33pS/T19XHvvffS0dHBmjVr2LJlC01NTdNxehERERGR05JljDFz3QkR\nERERkY+jadtO/EzW39/PLbfcwqpVq4jFYixcuJBvfvObHD58+Jh2mzZtory8nPLycq699toz/grY\n6fLII49w6aWXUl5ejm3bHDx48Jg2qv/Meeihh2hpaSEajbJ+/Xq2bt06112al15++WWuvvpqGhsb\nsW2bxx577Jg2mzdvZsGCBcRiMS699FL27NkzBz2df+6//37OO+88UqkUNTU1XH311ezevfuYdqr/\nzHjwwQc555xzSKVSpFIpWltb2bJly4Q2qv3suP/++7Ftm1tuuWXC8TO5/grT06C9vZ329nb+4z/+\ng127dvGb3/yGl19+mWuuuWZCu6985Svs2LGDP/3pT/zxj3/kjTfeYNOmTXPU6/klm81yxRVXcM89\n95ywjeo/M5566iluu+027rrrLnbs2EFraytXXnklbW1tc921eWdkZIS1a9fyk5/8hGg0imVZE+7/\n4Q9/yI9+9CN+9rOf8dprr1FTU8Pll19OJpOZox7PHy+99BI333wz27dv5/nnnycUCvHpT3+a/v7+\n8Taq/8xpamrigQce4G9/+xt//etfueyyy/j85z/Pzp07AdV+trz66qs8+uijrF27dsL3zxlffyMz\nYsuWLca2bTM8PGyMMWbPnj3Gsiyzbdu28TZbt241lmWZt99+e666Oe+89tprxrIsc+DAgQnHVf+Z\nc/7555sbb7xxwrFly5aZb3/723PUozNDIpEwjz322PjvQRCYuro6c999940fy2azpqyszDz88MNz\n0cV5LZPJGMdxzDPPPGOMUf3nQmVlpXnkkUdU+1kyMDBglixZYl588UVzySWXmFtuucUYo8++McZo\nZHqGDA4O4nkesVgMgO3bt5NIJNiwYcN4m9bWVuLxONu3b5+rbp4xVP+ZUSgUeOONN9i4ceOE4xs3\nbmTbtm1z1Ksz0/79++nq6prwXkQiES666CK9FzNgaGiIIAioqKgAVP/Z5Ps+Tz75JLlcjosuuki1\nnyU33ngjX/ziF7n44osxR11up/rP0Q6I893AwADf/e53ufHGG7Htsb9XOjs7SafTE9pZlqVt12eJ\n6j8zent78X2f2traCcdV19l3pN7Hey/a29vnokvz2q233sq6devG/0BX/Wfe3//+dzZs2EA+nyca\njfL000+zYsWK8cCm2s+cRx99lH379vHEE08ATJjioc++5kxP6q677sK27UlvL7/88oTHZDIZrrrq\nqvH5XTJ1U6m/iBzrg3Or5dTccccdbNu2jd///vcfqbaq//RYuXIlb775Jn/5y1+4+eab+fKXv8zr\nr78+6WNU+1P39ttv853vfIfHH38cx3EAMMZMGJ0+kTOl/hqZnsTtt9/OtddeO2mbo9fSzmQyfPaz\nn8W2bZ555hlc1x2/r66ujp6engmPNcbQ3d1NXV3d9HZ8njjZ+k9G9Z8Z1dXVOI5DV1fXhONdXV3U\n19fPUa/OTEc+x11dXTQ2No4f7+rq0md8Gt1+++08/fTTvPDCCyxatGj8uOo/88LhMIsXLwZg3bp1\nvPbaazz44IN873vfA1T7mbJ9+3Z6e3s566yzxo/5vs8rr7zCww8/zK5du4Azu/4amZ5EVVUVy5cv\nn/QWjUYBGB4e5oorrsAYw5YtW8bnSh+xYcMGMpnMhPm527dvZ2RkRNuun8DJ1P/DqP4zw3Vdzj33\nXJ599tkJx5977jnVdZa1tLRQV1c34b3I5XJs3bpV78U0ufXWW3nqqad4/vnnWb58+YT7VP/Z5/s+\nQRCo9jPsC1/4Art27WLnzp3s3LmTHTt2sH79eq655hp27NjBsmXLzvj6O5s3b9481534uBseHmbj\nxo0MDQ3x5JNPAmOj1JlMBs/zcByHdDrNn//8Z5544gnWrVtHW1sbX//617nwwgu56aab5vgVfPx1\ndnayd+9e3nrrLf7whz9w+eWXMzIygud5RKNR1X8GJZNJ7r77bhoaGohGo9x7771s3bqVX/3qV6RS\nqbnu3rwyMjLCnj176Ozs5Je//CVr1qwhlUpRLBZJpVL4vs8PfvADVqxYge/73HHHHXR1dfHII49M\n+JcyOXk33XQTv/71r/nd735HY2Pj+He8ZVm4rotlWar/DLrzzjuJRCIEQUBbWxs//vGPeeKJJ3jg\ngQdYsmSJaj+DIpEI6XR6/FZTU8Pjjz9Oc3Mz1113nT77oKXxpsMLL7xgLMsytm0by7LGb7Ztm5de\nemm8XX9/v/nqV79qksmkSSaTZtOmTWZwcHAOez5/3H333RPqfuS/Ry8dpvrPnIceesgsWrTIeJ5n\n1q9fb1555ZW57tK8dOS75oPfNzfccMN4m82bN5v6+noTiUTMJZdcYnbv3j2HPZ4/jvcdb1mWueee\neya0U/1nxvXXX2+am5uN53mmpqbGXH755ebZZ5+d0Ea1nz1HL413xJlcf20nLiIiIiIyRZozLSIi\nIiIyRQrTIiIiIiJTpDAtIiIiIjJFCtMiIiIiIlOkMC0iIiIiMkUK0yIiIiIiU6QwLSIiIiIyRQrT\nIiIiIiJTpDAtIiIiIjJF/x8f9nklTVo0AwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[ 0.27514883 0.81044168 0.00360299]\n" ] } ], "source": [ "ekf = run_localization(landmarks[0:1], sigma_vel=1.e-10, sigma_steer=1.e-10,\n", " sigma_range=1.4, sigma_bearing=.05)\n", "print(ekf.P.diagonal())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you probably suspected, only one landmark produces a very bad covariance. What is worse, the filter starts to diverge from the robot's path. On the other hand, a large number of landmarks allows us to make very accurate estimates." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtMAAAEWCAYAAACkORurAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8XGd97/vPWjNr7qPRdXSXLNuyrSQ4NwccFwIJOK1L\nG5pDN23ZPcTc0tMdaAKHssne2TilEAoHsuklocAuxQ2kxJSS0xYSwj4JAddJsROcxLHj2I4s27pf\nR6O5r8v5Q0TEOJadkayL/X2/Xnp5tJ6lNc88L71mvn70rN9jeJ7nISIiIiIir5m52B0QEREREVmu\nFKZFRERERMqkMC0iIiIiUiaFaRERERGRMilMi4iIiIiUSWFaRERERKRMCtMiIiIiImWaNUzfc889\nXHrppSQSCRKJBJs2beIHP/jBSefceeedNDc3E4lEuPbaa9m/f/857bCIiIiIyFIxa5hubW3l85//\nPD//+c956qmnuO666/id3/kdnnnmGQA+97nPcffdd/M3f/M37N69m2QyyebNm5mamlqQzouIiIiI\nLCbjte6AWFNTw1/8xV/wgQ98gKamJv7kT/6E22+/HYB8Pk8ymeQLX/gCN9988znpsIiIiIjIUnHW\na6Ydx+Hb3/42+Xyea665hu7ubgYHB7n++utnzgmFQlxzzTXs2rXrnHRWRERERGQp8Z/phOeee46r\nr76aQqFAOBxmx44drF27diYw19fXn3R+Mpmkr6/v3PRWRERERGQJOWOYXrduHc8++yypVIrvfOc7\n/P7v/z6PPfbYrD9jGMYpx1KpVPm9FBERERFZZIlE4pRjZ1zmYVkWK1eu5PLLL+euu+5i48aN3HPP\nPTQ2NgIwODh40vmDg4M0NDTMU5dFRERERJau11xn2nEcXNelo6ODhoYGHnnkkZm2fD7Pzp072bRp\n07x2UkRERERkKZp1mccnPvEJfuu3fouWlhbS6TT3338/jz/+OA8//DAAt912G3fddRfr1q2js7OT\nT3/608Tjcd797nfP+qSvnCLfs2cPABs2bJjra7kgafzKp7GbG43f3Gj8yqexmxuN39xo/Mq3XMfu\nTEuVZw3Tg4OD/OEf/iEDAwMkEgkuvfRSHn74YTZv3gzAxz/+cXK5HLfccgvj4+Ns3LiRRx55hGg0\nOn+vQERERERkiZo1TP/93//9GS+wbds2tm3bNm8dEhERERFZLl7zmmkREREREZmmMC0iIiIiUiaF\naRERERGRMilMi4iIiIiUSWFaRERERKRMCtMiIiIiImVSmBYRERERKZPCtIiIiIhImRSmRURERETK\npDAtIiIiIlImhWkRERERkTIpTIuIiIiIlElhWkRERESkTArTIiIiIiJlUpgWERERESmTwrSIiIiI\nSJkUpkVEREREyqQwLSIiIiJSJoVpEREREZEyKUyLiIiIiJRJYVpEREREpEwK0yIiIiIiZVKYFhER\nEREpk8K0iIiIiEiZFKZFRERERMqkMC0iIiIiUiaFaRERERGRMilMi4iIiIiUSWFaRERERKRMs4bp\nz372s1x11VUkEgmSySQ33HADzz///EnnbN26FdM0T/ratGnTOe20iIiIiMhSMGuYfvzxx/nQhz7E\nE088waOPPorf7+dtb3sb4+PjM+cYhsHmzZsZGBiY+frBD35wzjsuIiIiIrLY/LM1Pvzwwyd9f999\n95FIJNi1axdvf/vbAfA8j0AgQDKZPHe9FBERWcIOHMjT03P69vZ26OoKLVyHRGTBzBqmf9Xk5CSu\n61JVVTVzzDAMdu7cSX19PZWVlbz5zW/mM5/5DHV1dfPeWRERkaWopwe2bDl9WH7ooTxdXQvYIRFZ\nMK8pTN96661cfvnlXH311TPHfuM3foN3vvOddHR00N3dzR133MF1113HU089RSAQmPcOi4iIiIgs\nFYbned7ZnPjRj36UHTt2sHPnTlasWHHa8/r7+2lvb+eBBx7gxhtvnDmeSqVmHh86dKj8HouIiCwx\n3d3tvOtdp/+L7I4dw3R0zLIORESWrM7OzpnHiUTilPazmpn+yEc+wo4dO3jsscdmDdIAjY2NtLS0\ncPjw4dfWUxERERGRZeaMYfrWW2/lO9/5Do899hhr1qw54wWHh4fp7e2lsbHxtOds2LBh5vGePXtO\nOSZnT+NXPo3d3Gj85kbjV76lOHYjI/lZ2+Px+JLp71Icv+VE41e+5Tp2r1xd8WpmLY13yy238I1v\nfINvfetbJBKJmdJ3mUwGgEwmw8c+9jGefPJJjh49yo9//GNuuOEG6uvrT1riISIiIiJyPpo1TH/5\ny19mamqKt771rTQ1Nc18ffGLXwTA5/Oxb98+3vGOd7B27Vq2bt1KV1cXTzzxBNFodEFegIiIiIjI\nYpl1mYfrurP+cCgUOqUWtYiIyIWmvX26/N1s7SJyfnpNpfFERETkVF1dIdWRFrlAzbrMQ0RERERE\nTk9hWkRERESkTArTIiIiIiJlUpgWERERESmTwrSIiIiISJkUpkVEREREyqQwLSIiIiJSJoVpERER\nEZEyKUyLiIiIiJRJYVpEREREpEwK0yIiIiIiZVKYFhEREREpk8K0iIiIiEiZFKZFRERERMqkMC0i\nIiIiUiaFaRERERGRMilMi4iIiIiUSWFaRERERKRMCtMiIiIiImVSmBYRERERKZPCtIiIiIhImRSm\nRURERETKpDAtIiIiIlImhWkRERERkTIpTIuIiIiIlElhWkRERESkTArTIiIiIiJlUpgWERERESnT\nrGH6s5/9LFdddRWJRIJkMskNN9zA888/f8p5d955J83NzUQiEa699lr2799/zjosIiIiIrJU+Gdr\nfPzxx/nQhz7EVVddheu6fPKTn+Rtb3sb+/fvp6qqCoDPfe5z3H333Wzfvp01a9bwqU99is2bN3Pw\n4EFisdiCvAgRkeXgwIE8PT3Tj9PpdgBGRvIz7e3t0NUVWoyuiYhImWYN0w8//PBJ3993330kEgl2\n7drF29/+djzP40tf+hK33347N954IwDbt28nmUxy//33c/PNN5+7nouILDM9PbBly8th+dTQ/NBD\nebq6FrZPIiIyN69pzfTk5CSu687MSnd3dzM4OMj1118/c04oFOKaa65h165d89tTEREREZElxvA8\nzzvbk9/1rndx5MgR9uzZg2EY7Nq1ize+8Y0cO3aMlpaWmfPe97730dfXd9LMdiqVmnl86NCheeq+\niMjy0d3dzrveVXfa9h07huno6FnAHomIyJl0dnbOPE4kEqe0z7rM45U++tGPsmvXLnbu3IlhGGc8\n/2zOERERERFZzs4qTH/kIx9hx44dPPbYY6xYsWLmeENDAwCDg4MnzUwPDg7OtL2aDRs2zDzes2fP\nKcfk7Gn8yqexmxuN32v3ypsNX008Htd4ngX97s2Nxm9uNH7lW65j98rVFa/mjGumb731Vh544AEe\nffRR1qxZc1JbR0cHDQ0NPPLIIzPH8vk8O3fuZNOmTWV2WURERERkeZh1ZvqWW27hm9/8Jg8++CCJ\nRIKBgQFgevYkGo1iGAa33XYbd911F+vWraOzs5NPf/rTxONx3v3udy/ICxARERERWSyzhukvf/nL\nGIbBW9/61pOO33nnnXzyk58E4OMf/zi5XI5bbrmF8fFxNm7cyCOPPEI0Gj13vRYRWYba26fL3wGk\n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\nERERUYj+B6dexFXzMIhhAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "[ 0.00893881 0.00851516 0.00077139]\n" ] } ], "source": [ "landmarks = array([[5, 10], [10, 5], [15, 15], [20, 5], [15, 10], \n", " [10,14], [23, 14], [25, 25], [10, 20]])\n", "\n", "ekf = run_localization(landmarks, sigma_vel=0.1, sigma_steer=np.radians(1),\n", " sigma_range=0.3, sigma_bearing=0.1)\n", "print(ekf.P.diagonal())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Discussion\n", "\n", "I said that this was a 'real' problem, and in some ways it is. I've seen alternative presentations that used robot motion models that led to much easier Jacobians. On the other hand, my model of a automobile's movement is itself simplistic in several ways. First, it uses the *bicycle model* to compute how it moves. A real car has two sets of tires, and each travels on a different radius. The wheels do not grip the surface perfectly. I also assumed that the robot was able to instaneously respond to my control input changes. In fact, I didn't even bother changing the control input during the run. Sebastian Thrun writes in *Probabalistic Robots* that simplied models are justified because the filters perform well when used to track real vehicles. The lesson here is that while you have to have a reasonably accurate nonlinear model, it does not need to be perfect to operate well. As a designer you will need to balance the fidelity of your model with the difficulty of the math and the computation required to implement the equations. \n", "\n", "Another way in which this problem was simplistic is that we assumed that we knew the correspondance between the landmarks and measurements. But suppose we are using radar - how would we know that a specific signal return corresponded to a specific building in the local scene? This question hints at SLAM algorithms - simultaneous localization and mapping. SLAM is not the point of this book, so I will not elaborate on this topic. \n", "\n", "However, this example should underscore how difficult EKFs can be. EKF have a well deserved reputation for difficulty. Especially when the problem is highly nonlinear you must design " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## UKF vs EKF\n", "\n", "I implemented this tracking problem using and unscented Kalman filter in the previous chapter. The difference in implementation should be very clear. Computing the Jacobians for the state and measurement models was not trivial and we used a very rudimentary model for the motion of the car. I am justified in using this model because the research resulting from the DARPA car challenges has shown that it works well in practice. Nonetheless, a different problem, such as an aircraft or rocket will yield a very difficult to impossible to compute Jacobian. In contrast, the UKF only requires you to provide a function that computes the system motion model and another for the measurement model. This is will always be easier than deriving a Jacobian analytically. In fact, there are many physical processes for which we cannot find an analytical solution. It is beyond the scope of this book, but in that case you have to design a numerical method to compute the Jacobian. That is a very nontrivial undertaking, and you will spend a significant portion of a master's degree at a STEM school learning various techniques to handle such situations. Even then you'll likely only be able to solve problems related to your field - an aeronautical engineer learns a lot about Navier Stokes equations, but not much about modelling chemical reaction rates. \n", "\n", "So, UKFs are easy. Are they accurate? Everything I have read states that there is no way to prove that a UKF will always perform as well or better than an EKF. However, in practice, they do perform better. You can search and find any number of research papers that prove that the UKF outperforms the EKF in various problem domains. It's not hard to understand why this would be true. The EKF works by linearizing the system model and measurement model at a single point. \n", "\n", "Let's look at a specific example. I will take the function $f(x) = x^3$ as our nonlinear function and pass a Gaussian distribution through it. I will compute an accurate answer using a monte carlo simulation. I do this by generating 50,000 points distributed according to the Gaussian, passing each point through the function, and then computing the mean and variance of the result. \n", "\n", "First, let's see how the EKF fairs. The EkF linearizes the function by taking the derivative and evaluating it the mean $x$ to get the slope tangent to the function at that point. This slope becomes the linear function that we use to transform the Gaussian. Here is a plot of that." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "actual mean=1.30, std=1.13\n", "EKF mean=1.00, std=0.95\n" ] } ], "source": [ "import nonlinear_plots\n", "nonlinear_plots.plot_ekf_vs_mc()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can see from both the graph and the print out at the bottom that the EKF has introduced quite a bit of error.\n", "\n", "In contrast, here is the performance of the UKF evaluated with the same Gaussian and function.b" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nykbFt4gNnD0Lo0ZBZqbRSaqmy6PfMTFw4YLRaUREREpPxbeIDbz8MvTsCddfb3SSqqtrV/j0U3B2\nNjqJiIhI6WmpQRErO3kSXnoJtm41OknF8Nb2t1iYvBCAJt5N8jfmsYYbbrBaUyIiInah4lvEyl54\nAQYMgJYtjU5irJErR7IvfR9/Zv5Jr6Be9G/VnyeSnjA6loiIiKFUfItY0fnz8P778N13Rie5Ruum\nw3TrNPVz6s880vkRgn2CaeTZiAtmTc4WERFR8S1iRe7usG+f5Z+V0oZoqzbXoUEHbvC3zA3Zl77P\nqm2LiIhURnrgUsTKKm3hbSVnLpzh7R/fJu18ml3v++9/w5Ejdr2liIhIman4FhGrqeVci9uDb2fT\noU30CupFPbd6drv3mTMwY4bdbiciInJNNO1ERKzG18OXt+94+6rvm86aGPPpGACie0YT4B1gtXs/\n8QQEB8OkSdC8udWaFRERsapSj3zHxsYSGBiIm5sbISEhbNq06arnrl+/njvuuIOGDRvi4eFBhw4d\niI+Pt0pgEamc6nvU56U+LxEWEMbaP9ZyKvuUVduvVw8eewymW+mBUREREVsoVfG9fPlyxo8fz7Rp\n09ixYwdhYWFERkZy+PDhIs/funUrHTp04KOPPmL37t1ERUXxwAMPsGzZMquGF6kIvvkGRo82OoWV\n9Ii2WdPert6MuWEMY24YQ123uja5x/jxkJQEO3fapHkREZFyK1XxPW/ePEaNGsWYMWMIDg5mwYIF\n+Pv7ExcXV+T5U6dO5bnnnuPGG2+kWbNmjB07lrvuuouPPvrIquFFjJaXB1OnWnazrBLCY4xOUC6e\nnpb/Hl9+aXQSERGRopVYfOfk5LB9+3YiIiIKHI+IiGDLli2lvlFGRgZ169pmtEvEKKtWwenTMGyY\n0Ukqn25vd6PuC3WJ/926U9IefRSmTLFqkyIiIlZT4gOXaWlpmM1m6tevX+C4n58fJpOpVDf54osv\n+Prrr4st1rdt21aqtqT01KfWk5aWRuO6jYEr/Wo2w/jxbYmKOsqPP542Mp5V2eP7ZsH1CzDnmXk3\n5d38zXf0/Wob6lfbUL/ajvrWNtSv1tWyHNtY23y1k82bNzNs2DBeeeUVQkJCbH07EbtZu7Yu7u65\n3Hxz1Sm87aVWzVoAuDq5Ys41G5xGRETEfkosvn18fHByciI1NbXA8dTUVPz9/Yu9dtOmTfTr149/\n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\njh1gNkOnTkYnEaP9e8O/eeend8jIzsC1hitTu00FYOT1I/Fw9ij22ho14N134cYbISICWre2R2IR\nEalqShz5TktLw2w2U79+/QLH/fz8MJlMNgsmYg3nzsHgwfDbb0YnqSTWTTc6gU2lZ6UzpN0Qlg5Y\nSp/mfdhzYg+TEydzJudMqa5v0cKy7fzo0aBf6ImIyLWoMM/ub9u2zegIVY76FGbNakKLFo60aHGA\n8nRHWloajes2Bqp4v26INuzz2fK+OTk5TFk5hZ2ndxLRMIK6XnWJahQFwH+d/suOHTvwcS16056/\n69QJatd244cfsmyW15qq9PergdSvtqO+tQ31q3W1LMcWyCUW3z4+Pjg5OZGamlrgeGpqKv7+/td8\nYxFb27ChNt9+68377+82OooYbFjgMM5dOsdNvjfRvnb5tq50cIAWLSpH4S0iIhVPicW3s7MznTp1\nIiEhgQEDBuQfT0xMZKAV9+YOCQmxWlvV3eW/3VbnPj1wAGbPhk8+gbCwG8rdns8RH/jfKhdVvV/t\n/fns8f1aXNs119fk+d+ex8XJhXGdx3Fn6zttlsOe9HPANtSvtqO+tQ31q21kZGRc87WlmnYyceJE\nhg8fTufOnQkLC2PRokWYTCbGjh0LwNSpU0lOTiYpKSn/mj179pCTk0NaWhpnz57lp59+Ii8vj+uv\nv/6aw4qU1r59MH06hIUZnUQquhUDV5BjzuGV71/hz8w/C7z3zNfPcO7iOQDubns3YQH6hhIRkfIp\nVfE9aNAg0tPTmTFjBseOHaN9+/asXr2agIAAAEwmEykpKQWu6devHwcPHgTAwcGBjh074uDggNl8\n7RtdiJRWRITlJVKSm5veDMDKvStJOZXClsNb8HLxop1fO+K2xfFol0f58vcvaVWv1VWL719/heBg\ne6YWEZHKqtQPXEZFRREVFVXke/Hx8YWO7d+//9pTiYgxekRTXbeXD6wdyEe/fMTaP9bi6+7L+pHr\nAXgo9KFiN+jJyrL8RW/+fPjXv+wUVkREKq1Sby8vItVAeIzRCQzzeNjjbBmzhYW3LuTcxXPsObGH\nS7mXSrzOzQ0+/BAeeAD27LFDUBERqdRUfEuVoC2/xVrca7pzLuccd6+4m4aeDXFycCrxmtBQmDMH\n7rwTTp+2Q0gREam0Ksw63yLXKjsb+vaFuXO1i6WUX+dGndnzcNmHsEeOhO3bYdgw+OwzcCq5ZhcR\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "actual mean=1.30, std=1.13\n", "UKF mean=1.30, std=1.08\n" ] } ], "source": [ "nonlinear_plots.plot_ukf_vs_mc(alpha=0.001, beta=3., kappa=1.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we can see that the computation of the UKF's mean is accurate to 2 decimal places. The standard deviation is slightly off, but you can also fine tune how the UKF computes the distribution by using the $\\alpha$, $\\beta$, and $\\gamma$ parameters for generating the sigma points. Here I used $\\alpha=0.001$, $\\beta=3$, and $\\gamma=1$. Feel free to modify them in the function call to see the result - you should be able to get better results than I did. However, ovoid overtuning the UKF for a specific test - it may perform better for your test case, but worse in general.\n", "\n", "This is one contrived example, but as I said the literature is filled with detailed studies of real world problems that exhibit similar performance differences between the two filters." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.3" } }, "nbformat": 4, "nbformat_minor": 0 }