Changed text to account for chapter reordering.
UKF and EKF chapters were reordered, and I needed to alter some text to reflect that.
This commit is contained in:
1 parent
592a354d1f
commit
9c43e01b9e
3 files changed
+143
-177
No files matched your search
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:e026652563718882b9faeec7aa237e0a595033966ec61f7289206fe0771594c5"
|
||||
"signature": "sha256:7fa61cc266df114b63dac394ff63a6d9049e48e19ccc4eb5cbff214e3be37681"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -257,13 +257,13 @@
|
||||
],
|
||||
"metadata": {},
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 2,
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f8502361cc0>"
|
||||
"<IPython.core.display.HTML at 0x7f56e751f6a0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 2
|
||||
"prompt_number": 1
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
@@ -299,22 +299,7 @@
|
||||
"\n",
|
||||
"So 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 delve into designing and implementing different kinds of nonlinear filters.\n",
|
||||
"\n",
|
||||
"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",
|
||||
"\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 technique 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",
|
||||
"\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 probabistically 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 ther is a clump of particles closely tracking your object, and a sparse clould 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",
|
||||
"\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 parallizable. If we do have the ability to use a process model that is important information that is just 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",
|
||||
"\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. "
|
||||
"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 delve into designing and implementing different kinds of nonlinear filters."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -404,13 +389,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAxoAAAGGCAYAAAD8e/dDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xlc1NX+P/DX5zM7iIAkUIDglohW5lJaobmBWpSmpZim\n8EOuSmqZmjsqhXpdyzXN7ZpSVldvVgZalnqVylvpF7luueASWCqUOvvn8/tjLiPDDIuyDMLr+Xj4\neOBnzufMmfnMwHl/zjnvI8iyLIOIiIiIiKgSie5uABERERER1T4MNIiIiIiIqNIx0CAiIiIiokrH\nQIOIiIiIiCqdsrqeqKCgoLqeioiIiIiIKpG3t/cdn8MRDSIiIiIiqnQMNIiIiIiIqNJV29Spou5m\n6IXuTYcPHwYAtG/f3s0toerCa1738JrXPbzmdROve91T0aUPHNEgIiIiIqJKx0CDiIiIiIgqHQMN\nIiIiIiKqdAw0iIiIiIio0jHQICIiIiKiSsdAg4iIiIiIKp1b0tsSERER3YtkWYbJZIIsy+5uSrUL\nDQ0FABgMBje3hCqDIAhQq9UQBKHKnoOBBhEREVE5SJIEo9EItVoNhULh7uZUO61W6+4mUCWyWq0w\nGAzQaDQQxaqZ5MSpU0RERETlYDKZoNVq62SQQbWPQqGAVquFyWSqsudgoEFERERUTlU5zYSoulX1\n55mBBhERERERVToGGkREREREVOkYaBARERERUaVjoEFERERERJWOgQYRERFRHbZx40aIoghRFHHg\nwAGXZZo1awZRFNG1a9dqbh0VdfDgQcyePRsFBQXubkq5MNAgIiIiIuh0OmzdutXpeGZmJs6cOQOt\nVsusW27GQIOIiIiI7jm9e/fGxx9/DIvF4nB869atCA8PR9OmTd3Usspx8+ZNdzeh0twrO9Mz0CAi\nIiIixMbG4tq1a0hPT7cfs1qt2LZtG15++WWn8rIsY9myZXjooYeg0+kQEBCAhIQEXL161aHcZ599\nhpiYGISEhECr1SIsLAyTJk2C0Wh0KJeXl4eEhAR7ucDAQPTp0wfZ2dn2MqIoYvbs2U5tCQsLQ1xc\nnP3/hdPB9u7di7FjxyIgIABeXl72x3/88Uf06dMHPj4+8PDwQGRkJL799luHOmfNmgVRFHH8+HEM\nGTIEPj4+aNiwIaZNmwYAuHDhAp5//nl4e3sjMDAQCxcudGqX0WjE7Nmz0bx5c2i1WgQHB2P8+PHQ\n6/UO5URRxKhRo7Bjxw60bt0aWq0WrVu3drgWs2bNwqRJkwAAjRs3tk9327dvHwDgp59+Qp8+feDv\n7w+dToewsDC88sorMBgMTu2qLkq3PTMRERER1RjBwcGIjIzE1q1b8cwzzwAA9uzZgytXriA2NhZp\naWkO5UeNGoX169dj+PDhGDt2LHJycrBs2TL88MMP+PHHH6HRaADYOv06nQ7jxo2Dt7c3Dh06hCVL\nluDChQsOdQ4YMABZWVkYM2YMGjdujCtXrmDfvn04deoUIiIi7OVcTd8SBMHl8TFjxqBBgwaYMWOG\nfbrRd999h+joaLRt2xbJyclQKpXYvHkzoqKisHv3bnTp0sWhjtjYWLRs2RLz58/HF198gblz58Lb\n2xvvv/8+evTogb///e/44IMPMGnSJLRr186+jkWWZfTr1w/79u1DYmIiIiIikJ2djZUrV+LYsWMO\nQQQAHDp0CDt37sTo0aNRr149vPvuu+jfvz9ycnLQoEED9O/fH6dOnUJaWhqWLl2K++67DwDQsmVL\n/P777+jZsyf8/f3x5ptvwtfXFzk5Odi5cydu3boFrVZbvg9BZZOrSX5+vv0f1R0//vij/OOPP7q7\nGVSNeM3rHl7zuqeuXnO9Xl8l9ebnm+X//lcvX7pklCVJqpLnKM2GDRtkQRDk77//Xn7vvfdkT09P\n+datW7Isy/LQoUPlTp06ybIsy61atZK7du0qy7Is//vf/5YFQZA/+OADh7oOHDggC4Igr1mzxn6s\nsK6iUlNTZVEU5QsXLsiyLMvXr1+XBUGQFy1aVGpbBUGQZ8+e7XQ8LCxMjouLc3pNHTt2lK1Wq/24\nJElyixYt5J49ezqcbzKZ5FatWslPPPGE/VhycrIsCIKckJBgP2a1WuWQkBBZEAQ5NTXVfjw/P1/2\n8PCQhwwZYj+2ZcsWWRRFed++fQ7PtWXLFlkQBDkjI8PhdWk0GvnXX3+1Hzt69KgsCIK8fPly+7EF\nCxbIgiDI58+fd6hzx44dsiAI8n/+8x8X71rpSvtcV7T/zqlTRERERG5y5YoZs2dLaNVKg+hoBY4c\nMbh1/v2LL74Is9mMHTt2QK/XY8eOHS6nTW3btg316tVDVFQU/vjjD/u/Fi1awN/fH3v37rWX1el0\nAABJklBQUIA//vgDTz75JGRZxs8//2wvo1arsXfvXly/fr3SXs+IESMgire7u0eOHMHJkycRGxvr\n0O6CggL06NED33//vdNUo4SEBPvPoiiiXbt2EAQB/+///T/7cW9vb7Ro0QJnz551eI8efPBBRERE\nODxX586dIQiCw3sEAF27dkWTJk3s/3/ooYdQv359hzpL4uPjAwDYuXOn0xobd+LUKSIiIiI3+eUX\nK5YssU1rycpSYNs2EQ8/LLstu5Ovry+io6PxwQcfQBRF6PV6DBw40KncyZMncePGDQQEBLis5/ff\nf7f/nJWVhUmTJuG7775zWptQOJ1Jo9Fg/vz5mDBhAgICAvD444+jT58+GDp0KIKDg+/69RRfwH7y\n5EkAcAgSihIEAVevXkVQUJD9WKNGjRzKeHt7Q6VSwd/f3+F4/fr1HV73yZMnceLECTRs2NDl8xQt\n6+p5ANv1KE/g1aVLFwwYMACzZ8/G4sWL0aVLFzz33HMYPHgwPDw8yjy/qjDQICIiInITpRIAZAC2\nwOJ/N//davDgwXjllVfw559/omfPnva1AEVJkgQ/Pz989NFHLuvw9fUFYAskunbtCi8vL6SmpqJZ\ns2bQ6XS4ePEihg8fDkmS7OeMGzcOzz//PP71r39h9+7dSElJQWpqKj7//HOndRPFlXQXX1fsDS18\nvvnz56Ndu3Yuzyn+ehUKhVOZkgLBoqNRkiShVatWeOedd1yWfeCBB8p8nuJ1lmbbtm348ccf8fnn\nn2P37t1ITEzE3LlzkZmZ6TLYqQ4MNIiIiIjcpG1bJf7+dyOWLlWjTRsr+veXHab6uMPzzz8PjUaD\ngwcPYtOmTS7LNG3aFHv27MHjjz8OT0/PEuvau3cvrl69in/+85+IjIy0H9+9e7fL8mFhYRg3bhzG\njRuHS5cuoU2bNnj77bftgYavry/y8/MdzjGZTPjtt9/K9doKRzjq1auHbt26leucu9WsWTP85z//\nqdTnKWukq0OHDujQoQNmz56Nr776Cn369MHatWsxderUSmvDneAaDSIiIiI38fFRYtw4FTIzzdi6\nFWjZUuPuJkGn02HVqlVITk5G3759XZYZNGgQJEnCnDlznB6zWq32YKDwLn3RkQtJkrB48WKHc/R6\nvdO0qqCgIDRs2NBhc7qmTZviu+++cyi3Zs0ah/pL0759ezRr1gyLFy/GjRs3nB4vPp2pJOWZ2jZw\n4EDk5eVh1apVTo8ZjUaXz1+WwqDu2rVrDsfz8/OdRj4effRRAHDr5n4c0SAiIiJyI7VagZAQ19Nm\n3GXIkCEujxd2ZiMjI5GUlIQFCxbg6NGjiIqKgkajwenTp/Hpp58iJSUFr7zyCp566in4+flh2LBh\nGDNmDJRKJT755BOnzfNOnDiBbt264aWXXkJERAQ0Gg2+/PJLHD9+HIsWLbKXS0hIwMiRIzFgwAD0\n6NEDR44cQUZGBu67775yTTESBAHr1q1Dr169EBERgfj4eAQFBeHy5cv2AOabb74ps56Snqvo8SFD\nhuCTTz5BUlISvvvuO/sC+BMnTuDjjz/GJ598gs6dO9/R83To0AEAMGXKFMTGxkKtVqN79+7YsmUL\nVqxYgRdeeAFNmjSBXq/Hhg0boFQqMWDAgDJfT1VhoEFERERUx5XnDn3xvSqWLVuGtm3bYvXq1Zg+\nfTqUSiVCQ0MxcOBA+3QhX19ffPHFF3jjjTeQnJwMLy8v9O/fHyNHjsTDDz9sr6tRo0YYMmQIvv76\na2zduhWCIKBFixb2fToKjRgxAmfPnsW6devw1VdfoXPnzti9eze6d+/u9BpKek2RkZHIzMxESkoK\nVq5ciT///BP3338/OnTo4JBhqqS9Ocp7XBAE/POf/8TSpUuxadMm/Otf/4JOp0PTpk2RlJSEhx56\nqIx33Pk1tGvXDnPnzsXKlSsRHx8PWZaxd+9ePP300zh8+DC2bduG3Nxc1K9fH23btsWKFSvswYk7\nCHI15VArOmzj7e1dHU9JNcDhw4cB2IYqqW7gNa97eM3rnrp6zQ0Gg/s2PiOqIqV9rivaf+caDSIi\nIiIiqnQMNIiIiIiIqNIx0CAiIiIiokpXrkDjt99+w7Bhw+Dv7w+dTodWrVph3759DmVmzZqFoKAg\neHh4oGvXrsjOzq6SBhMRERERUc1XZqCRn5+PJ598EoIg2NOMLV++3GHb9fnz52Px4sVYvnw5fvzx\nR/j7+6Nnz553lR+YiIiIiIjufWWmt/373/+OoKAgbNy40X4sNDTU/rMsy1i6dCmmTJmCfv36AQA2\nbdoEf39/bN26FYmJiZXfaiIiIiIiqtHKHNHYsWMHHnvsMQwcOBABAQF49NFHsWLFCvvjZ8+eRV5e\nHqKiouzHtFotOnfujIMHD1ZNq4mIiIiIqEYrc0TjzJkzWLlyJcaPH4+pU6fi559/xpgxYwAASUlJ\nyM3NBQAEBAQ4nOfv74/Lly+7rLMw/zbVHbzmdQ+ved3Da1731LVrHhoayn00qNb566+/kJLine truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f0240c093c8>"
|
||||
"<matplotlib.figure.Figure at 0x7f56cb073710>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 16
|
||||
"prompt_number": 2
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -453,13 +438,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f024135ab38>"
|
||||
"<matplotlib.figure.Figure at 0x7f56cb050860>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 2
|
||||
"prompt_number": 3
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -485,19 +470,19 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f024136f470>"
|
||||
"<matplotlib.figure.Figure at 0x7f56cb047eb8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 3
|
||||
"prompt_number": 4
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The plot labelled '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 to the upper right. 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. The output looks like a Gaussian, and is in fact a Gaussian. We can see that it is altered -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.\n",
|
||||
"The plot labelled '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 to the upper right. 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. The output looks like a Gaussian, and is in fact a Gaussian. We can see that it is altered -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.\n",
|
||||
"\n",
|
||||
"Now let's look at a nonlinear function and see how it affects the probability distribution."
|
||||
]
|
||||
@@ -511,7 +496,7 @@
|
||||
"def g(x):\n",
|
||||
" return (np.cos(4*(x/2+0.7)))*np.sin(0.3*x)-1.6*x\n",
|
||||
"\n",
|
||||
"plot_transfer_func (data, g, lims=(-4,4), num_bins=300)"
|
||||
"plot_transfer_func (data, g, lims=(-3,3), num_bins=300)"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
@@ -519,13 +504,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f023bad7208>"
|
||||
"<matplotlib.figure.Figure at 0x7f56c9477ac8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 4
|
||||
"prompt_number": 19
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -547,7 +532,7 @@
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"y=g(data)\n",
|
||||
"plot_transfer_func (y, g, lims=(-4,4), num_bins=300)"
|
||||
"plot_transfer_func (y, g, lims=(-3,3), num_bins=300)"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
@@ -555,19 +540,19 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f0259827588>"
|
||||
"<matplotlib.figure.Figure at 0x7f56c95469b0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 5
|
||||
"prompt_number": 20
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"As you can see the probability function is futher distorted from the original Gaussian. However, the graph is still somewhat symmetric around $0$, let's see what the mean is."
|
||||
"As you can see the probability function is futher distorted from the original Gaussian. However, the graph is still somewhat symmetric around x=0, let's see what the mean is."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -584,12 +569,12 @@
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"input mean, variance: -0.0013, 0.9997\n",
|
||||
"output mean, variance: -0.0259, 2.2390\n"
|
||||
"input mean, variance: 0.0013, 1.0023\n",
|
||||
"output mean, variance: -0.0296, 2.2464\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 6
|
||||
"prompt_number": 7
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -614,20 +599,20 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f0240c97588>"
|
||||
"<matplotlib.figure.Figure at 0x7f56c95cf710>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"output mean, variance: 0.0019, 2.2493\n"
|
||||
"output mean, variance: -0.0020, 2.2553\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 7
|
||||
"prompt_number": 8
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -636,6 +621,35 @@
|
||||
"Although the shapes of the output are very different, the mean and variance of each are almost the same. This may lead us to reasoning that perhaps we can ignore this problem if the nonlinear equation is 'close to' linear. To test that, we can iterate several times and then compare the results."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"out = h(data)\n",
|
||||
"out2 = g(data)\n",
|
||||
"\n",
|
||||
"for i in range(10):\n",
|
||||
" out = h(out)\n",
|
||||
" out2 = g(out2)\n",
|
||||
"print ('linear output mean, variance: %.4f, %.4f' % \n",
|
||||
" (np.average(out), np.std(out)**2))\n",
|
||||
"print ('nonlinear output mean, variance: %.4f, %.4f' % \n",
|
||||
" (np.average(out2), np.std(out2)**2))"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"linear output mean, variance: -0.1129, 7499.3714\n",
|
||||
"nonlinear output mean, variance: -2.0601, 26297.8576\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 21
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
@@ -675,11 +689,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAx0AAAGGCAYAAAAep+w6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3VmMZGd5N/B/badOnao6Sy1dvU73jD0YOySGaHxhIRIU\nFokQWRFIUWQix1zlwpbQWEjE+sAQBYTwBXeAlAuMIeTClvIFcWMwkuUEGSkzFyTENvmMx7N2V3fX\ndvb9nO+iutsePJ61q2v7/6RRT3dX9zw9p7u6/vW+z/Nm0jRNQURERERENCLZcRdARERERESzjaGD\niIiIiIhGiqGDiIiIiIhGiqGDiIiIiIhGKj+uf1jX9XH900REREREdAcURbml23Olg4iIiIiIRoqh\ng4iIiIiIRmps26ve6VaXZ2h6nT17FgBw6tSpMVdCR4XXfP7wms8nXvf5w2s+f+6kPYIrHURERERE\nNFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIM\nHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURE\nRERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERE\nNFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIM\nHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURERERENFIMHURE\nRERENFIMHURERERENFIMHURERER0S9I0RZykSNN03KXQlMiPuwAiIiIiGp0wihHFCcIoQRjFSNIU\naQokaYokSd/zZZpe531I8dsrA2SQQVbeRDabQSaTQTaTGf4duObbcrks8rksCnsv87ksCvnc3sss\nMpnMuP+7aEQYOoiIiIimTJqmByEijPdeXuP1KE4QJhGiOEKURoiTGGmaIEGKJE2Gf0/Tq96G/bCR\nJkjxjvfvvQ1IgQxwybmAFECukwXwdsDIZLLDMJLJIIPh6/tvz2ayyGfyyGVzyGVyyOfyyGdyyGeH\nbxPyeRQLORSF4UtRyKNYGP49l+MGnWnG0EFEREQ0QcIohh/GCML4PUNFFMeIkui6f+JkeJtcLoNc\n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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f84e11a1710>"
|
||||
"<matplotlib.figure.Figure at 0x7f56c9548160>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 29
|
||||
"prompt_number": 9
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -709,11 +723,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAx0AAAGGCAYAAAAep+w6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4nGd9L/zvMzPP7LtG+y7vS2I7sZ04jrM0CyEkQAiE\nJTTQ0wV6oKeFl/MCLVB6Ci+n0Pa85TqUbqchC7QkEAiBkJAEZ3diO4n3VbYlW7s0+8yzL+ePkRQr\nkneNRsv3c12+RnqeGfmWR9bM97nv3+8WbNu2QUREREREVCaOSg+AiIiIiIjmN4YOIiIiIiIqK4YO\nIiIiIiIqK4YOIiIiIiIqK1el/uJsNlupv5qIiIiIiC5BJBK5oPtzpoOIiIiIiMqKoYOIiIiIiMqq\nYsurTneh0zM0d+3cuRMAsH79+gqPhGYKn/OFh8/5wsTnfeHhc77wXEp5BGc6iIiIiIiorBg6iIiI\niIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIio\nrBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6\niIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiI\niIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIio\nrBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6iIiIiIiorBg6\niIiIiIiorBg6iIiIiOiC2LYN07Jh23alh0JzhKvSAyAiIiKi8tENE4ZpQTcs6IYJy7Zh24Bl27As\n+4y3tn2Wc7BxqDcDAQIc4T44HAIEQYBDEEofA1MeczodcDkdEEdvXU4HRJdz9NYBQRAq/c9FZcLQ\nQURERDTH2LY9HiJ0c/R2is8N04JuGTBMA4ZtwLRM2LYFCzYs2yp9bNsTjmEsbNgWbJx2fvQYYAMC\ncErqhg3AOeIA8HbAEARHKYwIAgSUPh877hAccAkuOB1OOAUnXE4XXIITLkfpmNvlgkd0wuMu3Xrd\nLnjE0sdOJxfozGUMHURERESziG6YUHUTmm6eMVQYpgnDMs76x7RK93E6BTgdAlwuAS7nWAAYm4kA\n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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f84e0fd57b8>"
|
||||
"<matplotlib.figure.Figure at 0x7f56cad58320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 43
|
||||
"prompt_number": 10
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -743,11 +757,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAx0AAAGGCAYAAAAep+w6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4nGd9L/zvM/u+abTvkuU9sZ3YzuI4iclCCAkQAmEJ\nBHq6AAd6WnjpC7RsPYVyCi3nLdehUNrTkAVaEgiEQIhJgh3HiRPbSbyvsi3Z2qXZZ55tnuX9YyTF\niiSvGo1G+n6uS9dYz3OPdMsjzcz3ue/ffQumaZogIiIiIiIqEkupO0BERERERPMbQwcRERERERUV\nQwcRERERERUVQwcRERERERWVrVTfOJVKlepbExERERHRZQgGgxfVniMdRERERERUVAwdRERERERU\nVCWbXnW2ix2eofK1e/duAMDatWtL3BOaLXzMFx4+5gsTH/eFh4/5wnM55REc6SAiIiIioqJi6CAi\nIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIi\noqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi\n6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAi\nIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIi\noqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi6CAiIiIioqJi\n6CAiIiIioqJi6CAiIiKii2KaJnTDhGmape4KlQlbqTtARERERMWT13RouoG8ZiCv6TBME6YJGKYJ\nwzCnvTXNc5yDiSO9SQgQYAn0wWIRIAgCLIJQ+Dcw5TGr1QKb1QL76K3NaoHdZh29tUAQhFL/d1GR\nMHQQERERlRnTNMdDRF4fvZ3ic003kDc0aLoGzdSgGzpM04ABE4ZpFP5tmhOOYSxsmAZMnHV+9Bhg\nAgJwRuyGCcA6YgHwZsAQBEshjAgCBBQ+HztuESywCTZYLVZYBStsVhtsghU2S+GYw2aD026F01G4\ndTlscNoL/7ZaOUGnnDF0EBEREc0heU2Hkteh5vVpQ4Wm69AM7ZwfulFoY7UKsFoE2GwCbNaxADA2\n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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f84e0fb0a20>"
|
||||
"<matplotlib.figure.Figure at 0x7f56c98ac128>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 46
|
||||
"prompt_number": 11
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -780,11 +794,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAx0AAAGGCAYAAAAep+w6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4nOV9L/zvM/u+a1+szba8gG2wzWIMOCwhZCWkZIGS\n9LSnbU7CaZM3fZu0NE1PSNMmbc7btDTpWUqAJG0gJRAaAsHEhrDaBryvki0v2jX7zLPNs7x/jCRb\naMGLRqORvp/r0iXpee6Rb3lGM/N97vv+3YJpmiaIiIiIiIhKxFLuDhARERER0cLG0EFERERERCXF\n0EFERERERCXF0EFERERERCVlK9c/nE6ny/VPExERERHRJQgGgxfUniMdRERERERUUgwdRERERERU\nUmWbXnWuCx2eocq1a9cuAMD69evL3BOaK7zPFx/e54sT7/fFh/f54nMpyyM40kFERERERCXF0EFE\nRERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERE\nRCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF\n0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFE\nRERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERE\nRCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF0EFERERERCXF\n0EFERERERCXF0EFEREREF8Q0TeiGCdM0y90VqhC2cneAiIiIiEqnoOnQdAMFzUBB02GYJkwTMEwT\nhmFO+9k0ZzgHE4d7UxAgwBLog8UiQBAEWASh+DUw5TGr1QKb1QL76Geb1QK7zTr62QJBEMr930Ul\nwtBBREREVGFM0xwPEQV99PMU32u6gYKhQdM1aKYG3dBhmgYMmDBMo/i1aU44hrGwYRowcc750WOA\nCQjAafEkTADWEQuAswFDECzFMCIIEFD8fuy4RbDAJthgtVhhFaywWW2wCVbYLMVjDpsNTrsVTkfx\ns8thg9Ne/Npq5QSdSsbQQURERDSPFDQdSkGHWtCnDRWarkMztBk/dKPYxmoVYLUIsNkE2KxjAWBs\n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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f84e0d51a20>"
|
||||
"<matplotlib.figure.Figure at 0x7f56cad76198>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 55
|
||||
"prompt_number": 12
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -795,6 +809,34 @@
|
||||
"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."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The Algorithms"
|
||||
]
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"\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 technique 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",
|
||||
"\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 probabistically 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 ther is a clump of particles closely tracking your object, and a sparse clould 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",
|
||||
"\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 parallizable. If we do have the ability to use a process model that is important information that is just 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",
|
||||
"\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. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:07d552b7c574d0e22b2d46189f6004982b2ea187162610c14413b153f2941e87"
|
||||
"signature": "sha256:0c11a3f653ab708c71e39819bb537fb47bbf046e6ebfe25b6e0a58dd7400264e"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -259,7 +259,7 @@
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f07935586a0>"
|
||||
"<IPython.core.display.HTML at 0x7fa98ef8b6a0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -269,59 +269,13 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"In the previous chapter we developed the Extended Kalman Filter (EKF) to allow us to use the Kalman filter with nonlinear problems. It is by far the most commonly used Kalman filter. However, it comes with a lot of difficulties and limitations. For example, it requires that you be able to analytically derive the Jacobian. However, for many problems this is either very difficult or impossible. Furthermore, being an approximation, the EKF can diverge. In this chapter we will use the unscented Kalman filter (UKF) to tackle these problems.\n",
|
||||
"In the last chapter we discussed the difficulties that nonlinear systems pose. This nonlinearity can appear in two places. It can be in our measurements, such as a radar that is measuring the slant range to an object. Slant range requires you to take a square root to compute the x,y coordinates:\n",
|
||||
"\n",
|
||||
"I particularly like the following way of looking at the problem, which I am borrowing from Dan Simon's *Optimal State Estimation* [1]. Consider a tracking problem where we get the range and bearing to a target, and we want to track its position. Suppose the distance is 50km, 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. That is, each time we take a reading the range will be $50\\pm\\sigma^2_{range}$ and the angle will be $90\\pm\\sigma^2_{angle}$. Given an infinite number of measurements what is the expected value of the position?\n",
|
||||
"$$x=\\sqrt{slant^2 - altitude^2}$$\n",
|
||||
"\n",
|
||||
"I have been recommending using intuition to solve problems in this book, 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 50km, and the mean of the angle will be 90$^\\circ$, that clearly the answer will be x=0 km, y=90 km.\n",
|
||||
"The nonlinearity can also occur in the process model - we may be tracking a ball travelling through the air, where the effects of gravity and air drag lead to highly nonlinear behavior. The standard Kalman filter performs poorly or not at all with these sorts of problems.\n",
|
||||
"\n",
|
||||
"Well, let's plot that and find out. Here are 300 points plotted with a normal distribution of the distance of 0.4 km, and the angle having a normal distribution of 0.35 radians. We compute the average of the all of the positions, and display it as a star. Our intutition is displayed with a triangle."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"from numpy.random import randn\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"import math\n",
|
||||
"\n",
|
||||
"xs, ys = [], []\n",
|
||||
"N = 300\n",
|
||||
"for i in range (N):\n",
|
||||
" a = math.pi / 2. + (randn() * 0.35)\n",
|
||||
" r = 50.0 + (randn() * 0.4)\n",
|
||||
" xs.append(r*math.cos(a))\n",
|
||||
" ys.append(r*math.sin(a))\n",
|
||||
"\n",
|
||||
"plt.scatter(xs, ys, label='measurements')\n",
|
||||
"plt.scatter(sum(xs)/N, sum(ys)/N, c='r', marker='*', s=200, label='mean')\n",
|
||||
"plt.scatter(0, 50, c='k', marker='v', s=200, label='intuition')\n",
|
||||
"plt.axis('equal')\n",
|
||||
"plt.legend(scatterpoints=1)\n",
|
||||
"plt.show()"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f07770b3710>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 2
|
||||
},
|
||||
{
|
||||
"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.\n",
|
||||
"\n",
|
||||
"For all these reasons there is a need for a different way to approximate the Gaussian being passed through a nonlinear transfer function. In the last chapter I showed you this plot:"
|
||||
"In the last chapter I showed you a plot like this. I have altered the equation somewhat to emphasize the effects of nonlinearity."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -335,9 +289,9 @@
|
||||
"data = normal(loc=0.0, scale=1, size=500000)\n",
|
||||
"\n",
|
||||
"def g(x):\n",
|
||||
" return (np.cos(4*(x/2+0.7)))*np.sin(0.3*x)-1.6*x\n",
|
||||
" return (np.cos(4*(x/2+0.7)))-1.3*x\n",
|
||||
"\n",
|
||||
"plot_transfer_func (data, g, lims=(-4,4), num_bins=300)"
|
||||
"plot_transfer_func (data, g, lims=(-3.5,3.5), num_bins=300)"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
@@ -345,23 +299,23 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f0777090518>"
|
||||
"<matplotlib.figure.Figure at 0x7fa97635a5c0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 3
|
||||
"prompt_number": 8
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"I generated this by taking 500,000 samples from the input, passing it through the nonlinear transform, and building a histogram of the result. From that histogram we can then compute a mean and a variance that we compared to the output of the EKF.\n",
|
||||
"I generated this by taking 500,000 samples from the input, passing it through the nonlinear transform, and building a histogram of the result. From the output histogram we can compute a mean and standard deviation which would give us an updated, albeit approximated Gaussian.\n",
|
||||
"\n",
|
||||
"It has perhaps occurred to you that this sampling process constitutes a solution to our problem. Suppose for every update we generated 500,000 points, passed them through the function, and then computed the mean and variance of the result. This is called a 'monte carlo' approach, and it used by some Kalman filter designs, such as the *Ensemble filter*. Sampling requires no specialized knowledge, and does not require a closed form solution. No matter how nonlinear or poorly behaved the transfer function is, as long as we sample with enough points we will build an accurate output distribution.\n",
|
||||
"\n",
|
||||
"\"Enough points\" is the rub. The graph above was created with 500,000 points, and the output is still not smooth. You wouldn't need to use that many points to get a reasonable estimate of the mean and variance, but it will require many points. What's worse, this is only for 1 dimension. In general, the number of points required increases by the power of the number of dimensions. If you only needed $50$ points for 1 dimension, you'd need $50^2=2,500$ for two dimensions, $50^3=125,000$ for three dimensions, and so on. So while this approach does work, it is very computationally expensive. The Unscented Kalman filter uses a somewhat similar technique but reduces the amount of computation needed by a drastic amount by using a deterministic method of choosing the points."
|
||||
"\"Enough points\" is the rub. The graph above was created with 500,000 points, and the output is still not smooth. You wouldn't need to use that many points to get a reasonable estimate of the mean and variance, but it will require many points. What's worse, this is only for 1 dimension. In general, the number of points required increases by the power of the number of dimensions. If you only needed $50$ points for 1 dimension, you'd need $50^2=2,500$ for two dimensions, $50^3=125,000$ for three dimensions, and so on. So while this approach does work, it is very computationally expensive. The Unscented Kalman filter uses a similar technique but reduces the amount of computation needed by a drastic amount by using a deterministic method of choosing the points."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -376,7 +330,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Let's look at the problem in terms of a 2D covariance ellipse (2D only because it is easy to plot, this extends on any number of dimensions)."
|
||||
"Let's look at the problem in terms of a 2D covariance ellipse. I choose 2D merely because it is easy to plot. Naturally this will extend to any number of dimensions. Assuming some arbitrary nonlinear function, we will take random points from the first covariance ellipse, pass them through the nonlinear function, and plot their new position."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -404,57 +358,20 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Here on the left we show an ellipse depicting the $1\\sigma$ distribution of two state variables. The arrows show how three randomly sampled points might be transformed by some arbitrary nonlinear function to a new distribution. The ellipse on the right is drawn semi-transparently to indicate that it is an *estimate* of the mean and variance of this collection of points - if we were to sample, say, a million points the shape of the points might be very far from an ellipse. \n",
|
||||
"\n",
|
||||
"Let's look at that by running a bunch of points through a nonlinear function."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Exercise: Plot 2D points"
|
||||
"Here on the left we show an ellipse depicting the $1\\sigma$ distribution of two state variables. The arrows show how three randomly sampled points might be transformed by some arbitrary nonlinear function to a new distribution. The ellipse on the right is drawn semi-transparently to indicate that it is an *estimate* of the mean and variance of this collection of points - if we were to sample, say, a million points the shape of the points might be very far from an ellipse. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Write a function to pass randomly generated points with a Gaussian distribution through the state transition function:\n",
|
||||
"Let's look at that by running a bunch of points through a nonlinear function. We will write a function to pass randomly generated points with a Gaussian distribution through the system\n",
|
||||
"\n",
|
||||
"$$\\mathbf{Fx} = \\begin{bmatrix}1 & 1 \\\\ .1x &y\\end{bmatrix}\\begin{bmatrix}x\\\\y\\end{bmatrix}$$ \n",
|
||||
"$$\\begin{aligned}x&=x+y\\\\\n",
|
||||
"y &= 0.1x^2 + y^2\\end{aligned}$$ \n",
|
||||
"\n",
|
||||
"for the mean $$\\mu = \\begin{bmatrix}0\\\\0\\end{bmatrix}$$ and the covariance\n",
|
||||
"$$\\Sigma=\\begin{bmatrix}32&15\\\\15&40\\end{bmatrix}$$\n",
|
||||
"\n",
|
||||
"Plot both the original points and the converted points. Plot the mean passed through the function vs the calculated value, and print the difference between the two."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"# your answer here"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 5
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 3,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Solution"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Here is my answer."
|
||||
"for the mean and covariance $$\\mu = \\begin{bmatrix}0\\\\0\\end{bmatrix}, \n",
|
||||
"\\Sigma=\\begin{bmatrix}32&15\\\\15&40\\end{bmatrix}$$"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -496,9 +413,9 @@
|
||||
"plt.subplot(122)\n",
|
||||
"plt.scatter(fxs, fys, marker='.', alpha=0.1)\n",
|
||||
"plt.scatter(mean_fx[0], mean_fx[1], \n",
|
||||
" marker='v', s=300,c='k', label='mean')\n",
|
||||
" marker='v', s=300,c='k', label='Linearized Mean')\n",
|
||||
"plt.scatter(computed_mean_x, computed_mean_y, \n",
|
||||
" marker='*',s=120,c='r', label='computed')\n",
|
||||
" marker='*',s=120,c='r', label='Computed Mean')\n",
|
||||
"plt.ylim([-10,290])\n",
|
||||
"plt.xlim([-150,150])\n",
|
||||
"plt.legend(loc='best', scatterpoints=1)\n",
|
||||
@@ -512,41 +429,33 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAykAAAGGCAYAAAB/v854AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnX1wZFWZ/7/n3O7Oe/q9k8xMJhmSTGYYX8AZkBcdcQR0\nFWRZLVGXXS11gRUVpWoBYVWwZBHdolDZYcstWRGQFVjEtXBFXF4UxjeQH8gMM3mZTCbzkpd+TzKT\npO895/fH0+f27U7ndbqTTOZ8qlLTffvec8+93XPOfc7zPN+HSSklNBqNRqPRaDQajWaFwJe7AxqN\nRqPRaDQajUbjRBspGo1Go9FoNBqNZkWhjRSNRqPRaDQajUazotBGikaj0Wg0Go1Go1lRuJa7A8VI\npVLL3QWNRqNZtXi93uXuwrKj5xmNRqMpH6WYZ7QnRaPRaDQajUaj0awotJGi0Wg0Go1Go9FoVhQr\nMtzLyWoNS3jppZcAANu2bVvmnpQPfY2rA32NqwMd3jQzep45eSnHNQpB5eM4Z/b7o0cFolEJQIIx\nhkAAiEQYXC6OkRE6LhzOP8bZxolQru9RCJnXd7UtGqXXkQib8XpKeX2A/q2uFko9z6x4I0Wj0Wg0\nGo1mqSh88OacoamJIxi00N1NnykDhR7W8/c3TYGRETouHJYle5AvNap/6jWgjBTaFgoVN0LyjZuV\ne32akx9tpGg0mpJT6lU2jUajWU44J6OEMWlvGx5WD/NqG7M9EfE4EAhMN2BWGoVjtBASQpC3yLnN\naZRoNEuFNlI0Gk1J0atsGo1mNcI5QzBIr4UQiEYBKQGfTyKVMgAAwSA94AeDckZPxEqhWAhXLMbA\nGOD3z2xgFfPAaDTlQBspGo1Go9FoNJjdC6wezslbwpDJCLhcDLEYAIjs8UA4zACwFfEAP9P1zLSY\nxDlDIEDvY7FcuFqhUbISrk2z+tFGikajKSl6lU2j0ZyMqAd3ISTCYQmXi0/7PBZj2X8Bw2Dw+yWS\nSQM+n4VYjCGZ5OjoENOOVccDSzcuCiExNETnbGig86pwLvpc7cnsbeEwIAQZKE6cx+pxXbNUaCNF\no9GUHD2JaTSakxEhJOJxgDEgEin+QK7CuRhj8PsBlwuQkoMxwDQtHD0KVFbyPA/FcoTBqmtR5wQo\njyYWoxA1pVQmBOy+NTRQ7k2xhPrZ+q/zEDXlQBspGo1Go9FoTnmUF5gx5CWOOz8PBnNhXSMjQCpl\nIBSS4JzD77fQ1QX093O0tQksdyk66u/M4V6pFODzZTA5KeDx0OeTk8WvXUqJqioU3UdKiUyGXrvd\nxY+fi5aWFgDAxMTEgo89WTjZr9Hj8YDzpf1NayNFo9FosujVQI3m1Mbl4ohEZn6wV+FeABCLSfj9\nFjg3bPUvwyBVL2fdEc7ZsoTBcs5s5TF1zkgECAQEhJDwek1UV7vhcrlQUzN3e8pIWehn86GysvLE\nGjgJOJmvUUqJiYkJVFRULKmhoo0UjUajAan0aFUyjUYzn//7QkgkkxQW1tQkbSOls1NAJc0XjidL\nPaYoo0r1QW1LJDgqKqbg9VYuyuuhOfVgjKGyshKTk5NLamxpI0WjOUXRXgONRqOZPzlvCINpMiQS\n00ObVMK8Gl9XCjkvEAAIWNbiwrI0py7L8XvRRopGs8IphzGha5lMhzHYIRr6fmg0mtnweAxs2kT5\nKcWUvJxyxctV0NEZYqb6wBglzU9OLkuXNJoFsbxZXRqNZlaUMaFkMZcDKemv1DilMFcKyxGSodFo\nViaFY9RCxmPTFJiaspZ9/FZjmkqil5KS/T2eZemORrMgtCdFozkFmW8SJ8Vdu+3XpXqA154cjUaz\nkikco9Q2VVNkakqgt5fWeTs78+uimKbAG28IxOMSfr9AOMyxXN4UjeZkRhspmlOalZ6XUU5FmJV6\nzRqNRrOSyCWgM/j9AvE4y3pHBDjneUUOhZAwTYF4HEilGE47jZS+lnu8VdcgpYDfLyHE4vuzd+9e\nvPjii4s+njGG7du3o729fdFtaE4NtJGiOWU5WVbzl7NfnDP4fJmS90NXpddoNCuZ/JyS/O1SAuk0\nh98vEAoJxOMcgEQoRHOKaQJtbVQosaHBsI2X5R7rlPHEOYPXu/jws+rqatx5553o7u5e1PEf+9jH\n8JGPfGTR59ecOuicFI1GMytU2Kz07er8D41Gs9KJxRhiMcrnUB6RYFAiGATcbjJAYjEgFiMjIBqV\n6OtjWQOF21LEy5mXouCcxvITzTFsbm7GN77xjUUdyxjDNddcg9ra2hPrhOaUQHtSNKcsy72av9JD\nzTQajUZDqHGavO8cgYAA5wDnHIEAjeUuF0cwSBXrDYOvuLGdc45QSCIUAkxz8X1jjOGcc85BR0fH\ngr0pH/3oR/G2t71t0efWnFpoT4rmlGa5VvNXgmpXqSm1Wlc51b9WorKYRqNZfpxjAy1kYVpOiZTS\n9rAAsPdxuTgaGzk2bWKIRHKqWuEwEAwutxeF+hGJsKKSyQtlMd6UpfCi3HrrreCcY+/evbjyyivh\n8/kQDodxyy23AAAGBgZw2WWXwev1orGxEf/6r/+ad/zk5CRuu+02dHR0oLKyEuvWrcP111+P48eP\n5+33wx/+EBdeeCGamppQWVmJjRs34pvf/CZkgZvqggsuwObNm7Fnzx7s2LEDNTU1WLduHb797W+X\n7R6sJrSRotGcBJTrobpU7c5ldC30PKYpMDQky2LErUYDUaPRnDjFxgbnQpZ60A+FkJckPzwsMTQk\nYJrCrjxfuPgVi7GyjTnzHV9LuSjn9KbMl6X0onzsYx+DEAJ33nknzj33XNxxxx341re+hfe85z1Y\nu3YtvvWtb6GjowM33HADnn32WQBkfF5++eX49re/jUsvvRT33HMPPvKRj2Dnzp3467/+67z2d+7c\niXXr1uHGG2/E3Xffjbe85S24+eabcfPNN+ftxxhDKpXC+9//fpxxxhm46667sGnTJtx444345S9/\nuST34mRGh3tpNMvAQkLNypXgv1TCAQs9jxAS0SgQjyMbRrGyQiY0Gs2pidNwyal8SfT0SKRSDGee\nKbB27dJ652cbXwtDip3vC1f8F4PyplxxxRVz7rvUuSjbtm3Df/zHfwAA/uEf/gGtra246aabcPvt\nt+PLX/4yADKa1qxZg/vuuw/vfve78fDDD+Opp57Cc889h3e+8515bV155ZV4+umncdFFFwEAfvOb\n36CystLe55prrsHVV1+Ne+65B7fddhs82UI0UkoMDg7iRz/6Ea688koAwKc+9Sm0tLTgBz/4Ad73\nvvctyf04WdGeFI1Gc8LMFBaxWBhjCAZL156TUvdVo9GsDmYbG5QxMDQkMTwsEY+TyhdjDD6fhNc7\n8wLMcow5hV6hcniQF+JNWepclM985jP2a845tm7dCsYYPv3pT9vbvV4vOjs70dfXBwB45JFHsHHj\nRpx++umIRqP23/bt28EYsz0uAGwDxbIsJBIJe7/x8XHs27cvry/V1dW2gQIAbrcbZ599Nvbv31+W\na19NaE+KRrMMLMS7UK4E/1K3O/sEPf/z5PYv34qkNk40Gk0xihknM6HyTCyLIxgEGhpYUa+F899S\nC6YstwDMfLwpy6HotX79+rz3Xq8XbrcbkUgkb3t9fT1GspNxV1cX9u3bh3A4PK09xpi9HwC88MIL\nuPnmm/HHP/4RU1NTefumUqm892vXrp3Wns/nw2uvvbawizoF0UaKRrMEnOjEdLI/rC/0PNqI0Gg0\ny03+YlJ+8vvICLKJ8xLpNEcgkG+IFFuEKleIbbF2ihkvzvesRLry81H6Wg5FL8Mwpm2b6ZpV6JsQ\nAlu2bMF3vvOdovutWbMGALB//35ceOGF2LRpE+6++26sX78elZWVePnll3HjjTdCCDFnX5zn1cyM\nNlI0mjJTbGJa7tUvjUaj0cyfXNV5MlZU4rwKTVXJ9GpfIZZ/bC88f7n6M5s35WSqi9LW1oY///nP\n2LFjx6z7/c///A+mpqbw85//HM3Nzfb23t7ecnfxlEPnpGg0y8RKKWY4kzKMUq7Riz0ajeZUJFe4\nMWeUqMrxqrhjJMLyZH2VMcNYzphxtrca8+Fmy01ZSXVR5vIeffSjH8XQ0BDuvffeaZ9NTk5ibGwM\nQM4z4vSYTE5O4p577ilpfzTak6LRlJ2V7DWZLSxheFgiFgMSCTf8/swy9lKj0WiWnkLviXqmdG6f\nyeBgjIEXWQZeaXNAqSjmTVlpXpSZwqvU9iuvvBKPPfYYrr32Wjz//PM4//zzIaXEvn378Oijj+Kx\nxx7D9u3b8b73vQ8ejweXXHIJrr76akxMTOCBBx5YcFiXDveaG22kaDRLwGqdmBSlTgbVaDSalUZu\n5Tv/4bLQE63yrpdzPJxrTC71A3Kx3JTl8KIwVjzfZj7bGWN4/PHHcffdd+P+++/Hz372M1RVVaGt\nrQ3XXnst3vzmNwMAOjo68MQTT+Dmm2/GDTfcgHA4jL//+7/Hu971Lrz3ve89of5o8mFyBZpyTmUE\nr9e7jD0pHy+99BIA0t9erZzq11jOB/fFtl3suJnaMk0BISReffUVMDbz91iYXHoyGiqnwm/1VBhX\nF8KpcD9Ohd91ua/RGeKl3heOcUrWlzF6+HSKQ5ViPFzoNc41JgshMTY2gfr6qhPumxMpJR599FFc\nccUVYIzhueeew/bt20t6Ds3yMjExkVcfppBSj6vak6LRLJD5GAjlLJS42LZnOq6YwQIo5ZrpbS/U\nQNJeFo1GczLjDPkqDPMqlrfnHGsbGpZ+7BNC2jVclhKnN2Xbtm0rJhdFc/JSssT5O+64A2eddRa8\nXi8ikQg++MEPYvfu3dP2u/XWW7F27VpUV1fj3e9+N/bs2VOqLmg0ZaccBbFWCvO5tmL7zKLine truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f0776b8b4a8>"
|
||||
"<matplotlib.figure.Figure at 0x7fa976479208>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"Difference in mean x=-0.002, y=43.007\n"
|
||||
"Difference in mean x=0.023, y=43.344\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 6
|
||||
"prompt_number": 10
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This plot shows the strong nonlinearity that occurs with this function, and the large error that would result if we linearized the function at (0,0). We would reasonably expect an EKF to diverge rapidly with this function."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Choosing Sigma Points (continued)"
|
||||
"This plot shows the strong nonlinearity that occurs with this function, and the large error that would result if we linearized the function at (0,0)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"In the chart above we used 5,000 points to generate this solution. While the answer is quite accurate, computing 5,000 points for every update would cause our filter to be very slow. So, what would be fewest number of sampled points that we can use, and what kinds of constraints does this problem formulation put on the points? We will assume that we have no special knowledge about the nonlinear function as we want to find a generalized algorithm that works for any function. For reasons that come clear in the next section, we will call these points *sigma points*.\n",
|
||||
"We used 5,000 points to generate this solution. While the computed mean is quite accurate, computing 5,000 points for every update would cause our filter to be very slow. So, what would be fewest number of sampled points that we can use, and what kinds of constraints does this problem formulation put on the points? We will assume that we have no special knowledge about the nonlinear function as we want to find a generalized algorithm that works for any function. For reasons that come clear in the next section, we will call these points *sigma points*.\n",
|
||||
"\n",
|
||||
"Let's consider the simplest possible case and see if it offers any insight. The simplest possible system is *identity* - the transformation does not alter the input. In mathematical notation this is just $f(x) = x$. It should be clear that if our algorithm does not work for the identity function then the filter will never converge. In other words, if the input is 1 (for a one dimensional system), the output must also be 1. If the output was different, such as 1.1, then when we fed 1.1 into the transform at the next time step, we'd get out yet another number, maybe 1.23. The filter would run away (diverge). \n",
|
||||
"\n",
|
||||
@@ -625,7 +534,7 @@
|
||||
"source": [
|
||||
"Note that while I chose the points to lie along the major and minor axis of the ellipse, nothing in the constraints above require me to do that; however, it is fairly typical to do this. Furthermore, in each case I show the points evenly spaced; again, the constraints above do not require that. However, the technique that we develop in the next section *does* do this. It is a reasonable choice, after all; if we want to accurately sample our input it makes sense to sample in a symmetric manner.\n",
|
||||
"\n",
|
||||
"There are many published ways for selecting the sigma points. For now I will stick with the original implementation by Julier and Uhlmann [2]. This method defines a constant kappa ($\\kappa$) which controls how spread out the sigma points are. Before we work through the derivation, let's just look at some examples. I will use the class UnscentedKalmanFilter from FilterPy to generate the sigma points for us. It is convention to write\n",
|
||||
"There are several published ways for selecting the sigma points. For now I will stick with the original implementation by Julier and Uhlmann [2]. This method defines a constant kappa ($\\kappa$) which controls how spread out the sigma points are. Before we work through the derivation, let's just look at some examples. I will use the class UnscentedKalmanFilter from FilterPy to generate the sigma points for us. It is convention to write\n",
|
||||
"\n",
|
||||
" import UnscentedKalmanFilter as UKF\n",
|
||||
" \n",
|
||||
|
||||
+18
-3
@@ -8,7 +8,6 @@ Created on Sun May 18 11:09:23 2014
|
||||
from __future__ import division
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from numpy.random import normal
|
||||
|
||||
|
||||
def plot_transfer_func(data, f, lims,num_bins=1000):
|
||||
@@ -16,11 +15,13 @@ def plot_transfer_func(data, f, lims,num_bins=1000):
|
||||
|
||||
#plot output
|
||||
plt.subplot(2,2,1)
|
||||
plt.hist(ys, num_bins, orientation='horizontal',histtype='step')
|
||||
plt.hist(ys, num_bins, orientation='horizontal', histtype='step', lw=3)
|
||||
plt.ylim(lims)
|
||||
plt.gca().xaxis.set_ticklabels([])
|
||||
plt.title('output')
|
||||
|
||||
plt.axhline(np.mean(ys), ls='--', lw=2)
|
||||
|
||||
# plot transfer function
|
||||
plt.subplot(2,2,2)
|
||||
x = np.arange(lims[0], lims[1],0.1)
|
||||
@@ -34,9 +35,23 @@ def plot_transfer_func(data, f, lims,num_bins=1000):
|
||||
|
||||
# plot input
|
||||
plt.subplot(2,2,4)
|
||||
plt.hist(data, num_bins, histtype='step')
|
||||
plt.hist(data, num_bins, histtype='step', lw=3)
|
||||
plt.xlim(lims)
|
||||
plt.gca().yaxis.set_ticklabels([])
|
||||
plt.title('input')
|
||||
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from numpy.random import normal
|
||||
import numpy as np
|
||||
|
||||
data = normal(loc=0.0, scale=1, size=500000)
|
||||
|
||||
def g(x):
|
||||
return (np.cos(4*(x/2+0.7)))*np.sin(0.3*x)-1.6*x
|
||||
|
||||
|
||||
plot_transfer_func (data, g, lims=(-3,3), num_bins=300)
|
||||
Reference in new issue
Block a user