UKF chapter updated for Merwe parametization.

Chapter is not complete; checking in because I am beginning to alter
the formulation of unscented_transform in filterpy.
This commit is contained in:
Roger Labbe committed 2015-06-07 17:03:35 -07:00
1 parent 9c09133b5b
commit f8057cd917
4 files changed
+1200 -573

No files matched your search

File diff suppressed because it is too large. Load diff
+51 -37
View File
@@ -312,7 +312,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x57e9f60>"
"<matplotlib.figure.Figure at 0x751ac88>"
]
},
"metadata": {},
@@ -361,7 +361,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x57e9a58>"
"<matplotlib.figure.Figure at 0x751a710>"
]
},
"metadata": {},
@@ -436,7 +436,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAr8AAAERCAYAAABy58/tAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8jWf+//H3ObJbYo19SWppQ9TEWi0qRRequ5a2iFo6\nSlE1Rauodvqt0l9pO6PaSrXTzuj67fYtQZFB01BKjb1qT6ggBFnP/fvjGokjCQknOUnu1/Px8JDc\n514+55iptyvX57oclmVZAgAAAGzA6e0CAAAAgJJC+AUAAIBtEH4BAABgG4RfAAAA2AbhFwAAALZB\n+AUAAIBtEH4BlGtOp1Pdu3f3dhml2sqVK+V0OhUdHV2o86dNmyan06lVq1YVc2UA4HmEXwDFxul0\nuv2qUKGCqlWrphtvvFFvvvmmsrKySqQOh8NRIs+50PlAWZRf+/fvL/E6L1TYz8nhcOT8AoCyxsfb\nBQAo3xwOh6ZOnSpJysrK0t69e/XFF1/oxx9/1NKlS/XVV195ucLiERoaqmnTprkdsyxL06dPd/tM\nLlS1atUSqu7qjBo1Sv3791fDhg29XQoAFJmDHd4AFBen0ymHw6Hs7Gy347t27VJkZKTOnDmjFStW\nqFu3bsVaw80336wffvih2J5RFAV9Jt60cuVKRUVFafDgwVqwYIG3ywGAYsW0BwAlrlmzZuratask\naf369W6v7dy5UxMnTlS7du1Uq1YtBQQEqEmTJho2bJgOHDiQ7/0yMjI0Y8YMXXPNNQoICFBYWJim\nTJmi9PT0fM8/fPiwXnjhBd14442qU6eO/P39Vb9+fQ0YMEBbt27Nc/7evXtz5g4fPnxYQ4YMUd26\ndeXj4+OxkWun06nQ0FCdOnVKY8eOVePGjeXr66s5c+Zc8eciSUuXLlXfvn1Vu3ZtBQQEqGHDhurT\np4++/fbby9ZkWZYmTJggp9OpPn366MyZM5Jy5/zGxcXl+x7Onj2rCRMmqFGjRgoICFCzZs00c+bM\nAp8xZ84chYeHKzAwUA0aNNDo0aOVkpKiJk2aKDQ0tLAfIQAUCtMeAHjF+R86+fv7ux3/4osv9Pbb\nbysqKko33XST/Pz8tGXLFi1YsEDffPONfv75Z9WvX9/tPv369dPXX3+ta665RqNHj1ZGRoZiYmK0\nefPmfJ8dFxenV155RVFRUYqMjFSlSpW0c+dOff755/r666+1evVqtWnTJs91ycnJ6ty5s6pWraoH\nH3xQLpdLNWrU8Nhnkp6eru7du+vUqVPq3bu3goKCcqYWFPVzkaSpU6dqxowZqlSpku6++241atRI\niYmJio+P14IFC9SnT59L1jJo0CB98sknGjp0qObNmyen8/LjJZmZmerVq5cSExPVu3dv+fj46Msv\nv9TEiROVlpam559/3u38J554QvPmzVO9evU0fPhw+fn56ZtvvlFCQoKysrLk5+d3BZ8kAFyCBQDF\nxOFwWE6nM8/xrVu3WkFBQZbT6bQ2b97s9tqhQ4esjIyMPNfExsZaFSpUsB5//HG34x999JHlcDis\njh07WmlpaTnHT5w4YTVv3txyOBxW9+7d3a45evSolZqamucZmzZtsipVqmTddtttbsd///13y+Fw\nWA6Hwxo0aJCVnZ19+TdfgII+k/P379Wrl3Xu3Lk8rxf1c1myZInlcDis0NBQ6+DBg3muu/DYihUr\nLIfDYUVHR1uWZVnHjx+3unbtajkcDuuFF17Ic+3UqVMth8NhrVq1Kt/30Lt3b7c/i6NHj1pVq1a1\nqlatamVmZuYcj4uLsxwOh9W8eXPr5MmTOcczMjJynh8aGprn+QBwNRj5BVCsrP82eVmW5dbwlpGR\noenTpysiIsLt/Hr16uV7n549eyo8PFyxsbFux2NiYiRJL730ktsoctWqVfXcc89p0KBBee5Vq1at\nfJ/RunVrde/eXUuXLlV2drYqVKjg9rq/v79mzZpVqBHQK+FwODRr1iwFBATkea2on8sbb7whSXr1\n1VfzjAhLyveYJO3bt0933HGHdu/erZiYmHw/v8u9h7lz57r9WdSqVUt9+/bVhx9+qJ07dyo8PFyS\ntHDhQknSpEmTFBwcnHO+r6+vXn75Zd10001FejYAFAbhF0Cxmz59ep5js2bN0lNPPZXv+f/4xz/0\n/vvva9OmTTp58qRbc9jF0yQ2bNggp9OZM4f4QpdqpPvuu+80b948rV+/XsnJyW7LrjkcDh07dky1\na9d2u6ZJkyaqWbNmgfe8WgEBAXn+MXChonwu8fHxcjgcuv322wv9/O3bt+uGG27Q2bNn9d1336lH\njx5Ffg/BwcEKCwvLc/z89I0TJ07kHNu4caMk5RtyO3bsmOcfHwDgCYRfAMXqwpUN0tLSlJCQoBEj\nRmjChAmqXbu2Hn74Ybfzx40bpzlz5qhevXq6/fbbVb9+fQUGBkoyo7wXr4WbkpKi4OBg+fr65nl2\nSEhIvjXNmTNH48aNU/Xq1dWzZ081atRIQUFBcjgc+vLLL7Vp06Z8m+Xq1KlzRZ9BYRVUr1T0z+Xk\nyZOqUqWKgoKCCv38nTt36vjx42rdurXatm17Re+hoOXafHzMXzcXBvaUlBQ5HI48/8iQpAoVKnh0\nPjUAnEf4BVBiAgIC1LVrVy1evFgtW7bUn//8Z91yyy05ofLo0aOaO3euIiIitHbtWlWsWNHt+o8+\n+ijPPYODg5WSkqLMzMw8AfjIkSN5zs/KytK0adNUt25dbdiwIU/wWrNmTYH1F/emDgXd/0o+l6pV\nq+r48eM6c+ZMnvML0rdvX7Vo0UKTJk3Kmf5R0BQRT6hSpYokKSkpSZUrV3Z7LTs7W8nJyUUK7wBQ\nGCx1BqDENW7cWM8884xSU1Pduv/37Nkjy7LUq1evPIHt4MGD2rNnT557tW3bVi6XK9+tdvM7duzY\nMaWkpKhz5855gm9qaqo2bNhQ6nYuu5LP5YYbbpBlWfr++++L9KxnnnlGc+bM0a+//qpu3bopMTHx\nqmq/lMjISFmWpdWrV+d5LT4+vlSthQyg/CD8AvCKcePGqWbNmnr//fe1a9cuSWZOrST9+9//lsvl\nyjk3NTVVw4YNyzcMRUdHS5KeffZZpaWl5Rw/ceKEXnzxxTznh4SEKCgoSOvXr89Zt1YyS3SNGTNG\nycnJHnl/nnR+rduifC6jR4+WJE2YMEEHDx7M8/qhQ4cKfN7o0aP19ttva+fOneratesl1xG+GgMH\nDpQkvfzyyzp58mTO8YyMDE2ePLlYngkAhF8AXlGpUiVNnDhRWVlZmjJliiQzp/ahhx5SQkKC2rRp\no/Hjx2vo0KFq2bKl9u7dqzZt2uSsD3xe//791bdvX61bt06tWrXS+PHj9eSTTyoiIkItW7bM81yn\n06knn3xS+/btU0REhMaOHauRI0eqdevW+r//+z917949zzO8rXbt2kX+XHr27KkpU6Zo3759Cg8P\n16OPPqpnn31Ww4YNU0REhEaNGnXJZw4dOlQffPCB9u7dqy5duuQ7uny1unbtquHDh2v37t1q1aqV\nnnzySU2YMEERERFKT09XvXr1im1lDQD2xX9VAHjNyJEjVa9ePX322WfatGmTJOm9997T5MmTde7c\nOf3tb3/L2aFszZo1Cg4OzndKwqeffpqznNpbb72lb7/9VtHR0Vq0aFG+z50xY4Zmz56twMBAzZ8/\nX//7v/+rDh06KCEhQY0aNSp10x6kK/tcpk+fru+//15dunTR999/r1mzZmnJkiUKDQ3V8OHDL/vM\nAQMGaNGiRUpMTFS3bt20Y8cOSWZuclE/o4Ku+fvf/67XXntNlStX1vz58/XPf/5TvXr1UmxsrFJS\nUnLmBQOApzis0jbEAQCwvV27dqlFixbq379/vg19AHClGPkFAHjN0aNH3eYxS9LZs2c1duxYSdI9\n99zjjbIAlGMsdQYA8Jq5c+fqww8/VPfu3VWnTh0lJSVp+fLlOnTokO644w7df//93i4RQDlD+AUA\neE2PHj20ceNGxcbG6vjx4/L19VXz5s01duzYnNFfAPCkAuf8pqSklHQtAAAAgMcEBwfnOcacXwAA\nANgG4RcAAAC2Uag5v/kNGQMAAAClzeWm7jLyCwAAANsg/AIAAMA2CL8AAACwDcIvAAAAbIPwCwAA\nANsg/AIAAMA2CL8AAACwDcIvAAAAbIPwCwAAANsg/AIAAMA2CL8AAACwDcIvAAAAbIPwCwAAANsg\n/AIAAMA2CL8AAACwDcIvAAAAbIPwCwAAANsg/AIAAMA2CL8AAACwDcIvAAAAbIPwCwAAANsg/AIA\nAMA2CL8AAACwDcIvAAAAbIPwCwAAANsg/AIAAMA2CL8AAACwDcIvAAAAbIPwCwAAANsg/AIAAMA2\nCL8AAACwDcIvAAAAbIPwCwAAANsg/AIAAMA2CL8AAACwDcIvAAAAbIPwCwAAANsg/AIAAMA2CL8A\nAACwDcIvAAAAbIPwCwAAANsg/AIAAMA2CL8AAACwDcIvAAAAbIPwCwAAANsg/AIAAMA2CL8AANiA\n0yl98YX3nj9tmlS7tqnjgw+8VwdA+AUAoJzYsMGEy5tuyvtaUpLUp0/J1yRJW7ZIL7wgzZ9v6ujX\nT2rSRJo92zv1wN4IvwAAlBPvviu1by/Fx0vbt7u/FhIi+fkVfG1WVtGfl5lZuPN27za/33WXqSMg\nQHI4iv48wBMIvwAAlAPnzkn//Kc0fboUFSW995776xdOe9i713z/r3+Zc4OCzKisJC1cKEVEmIBa\np440eLD7Pf72N+nee6VKlaRnn5VcLumxx6SwMHOf5s2lV1+VLMtcM22aOf/89U6n1L27tG+fNGGC\n+b5ChWL8YICL+Hi7AAAAcPU++0wKDpZuu01KTZWeeEJ6+WXJ5xJ/00+aZKYexMSY8Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x510d2b0>"
"<matplotlib.figure.Figure at 0x445e0b8>"
]
},
"metadata": {},
@@ -772,9 +772,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x808c710>"
"<matplotlib.figure.Figure at 0x87649b0>"
]
},
"metadata": {},
@@ -782,9 +782,9 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x593d5f8>"
"<matplotlib.figure.Figure at 0x87eb828>"
]
},
"metadata": {},
@@ -792,9 +792,9 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x58c5668>"
"<matplotlib.figure.Figure at 0x86e8e80>"
]
},
"metadata": {},
@@ -897,7 +897,7 @@
"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",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAAmBAMAAAA2HDP0AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEO+Zu3ZEIokyq83d\nZlSLRjhlAAAD0ElEQVRYCcWXPWgUQRTH/5v72s19ZIlN0MiFWKa5RkQEOSEiVhrkRIRoqmihcAEr\nFbzCYAoTDkQIKBiLKCLiaSPhUC74UeqCBNIEAiJYWEREtBDjzNzO7Oz59uP8wIHczr73n//88mbC\nvaB/eAf+20gMD9voJ7af3n28ToT/RaiHJEjZ93MT/2I7wpMmsPCU0P5eKKqcNAHwNfZ2W6Z3h2lV\nOW86tCyAwNqw8HZ8DoXxEs6u0Evd6DMMVkMEqpzJOs5TOprgktky8b42iHcYx93t1EIZyw/BbMgX\n8umWswcgfxWaYOvR6TEk6zewhFlcWyKN3WByAYVPYQJeznxlH87BfE4dBE0gHHvY7o+MZbM6ELZB\n3wLSP0IEopwfMIRVoEXpQgguVhzMr1bza2PUQhkrlpD+Il+IpyjnkrWAOzDI0wohYNAxxqUarG9R\numXzBJbXC6XuTiHzIspX5GMRnF55gJlqZrFKWIbUgFAToWIt/BSIJf6QS9C32c3Y0Dz6SijoN7Fr\npz+uQa6MfOhfo0ZLTjsIMrFKodcgNYREg7CO7dRB0DvBzeYvU1eG2IaHXqO/TqRiO3UQXBBe5XRL\nPH0fQVgDlXs+nfsS4mTNHNBWdBDsFamGQZxsOd0SyZgfIU5JnNFM/ASGu0nBfTJhWopJLJn85Uk4\nYcJVZVG0vQV+gsR6O7PNuwdJpdWwVCxwQjihrNQf1QzwEwy2M8ZtT+ERaFheOmhGOHkExhNtmZ9g\nFuBN1ZapmpIIAh7UsVQ2cEI4CQLzyPV72Kodgr8G7PBEU/Vms6WsOYEI6lgqGzShnATBWG/jlbFL\n/7731SDlQDVV0psTiKCOJZOBT8pJENSzDnKb37WFimCSBXM84etR7zcfN5tOR1BbTk1pp95mc6TJ\nOvA+75K3F0uC1Ah7r7Af3lTxIVtbcQ9kUGQiPgKd2jfxFup+A0kwdXJCdFGiqeIS2dpyAhXkiagR\n6MQJMhtXUfM7SAIU2Xccy4mmikt63NaWE4hgzOYdgU6cwFg8XbHzO1fX8f4t0muH+Ubyv7bEV+Rs\nFuBDb23FKfBgvOadCYOc2qfABIVjRqtQSjm9Uw57UwSZz7ybbQ+9tU3IYLzmnamDnFCSVgetRrZu\nOtaeOosoAjy0l6WCbG3jNe/cIsoJQ6aTtQftK0aNqT2CW3OKkWxt4zXvnCDKKfNyHNbsFayt2D6C\n7Ah/F4NsbdUZSVXgM8qJ33hveDUofPaixCxm885XRjjhYln39wigf2Hpku7nXTkxguLo/u43+Vsr\nUqOHbKQnT/0tv+59MpOT+AmTXbj1s0kQCQAAAABJRU5ErkJggg==\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]$$"
],
@@ -1046,7 +1046,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8067a90>"
"<matplotlib.figure.Figure at 0x87c4a90>"
]
},
"metadata": {},
@@ -1402,12 +1402,12 @@
"source": [
"from math import sqrt\n",
"\n",
"def H_of(x, p):\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 = p[0]\n",
" py = p[1]\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",
@@ -1435,12 +1435,12 @@
"outputs": [],
"source": [
"from math import atan2\n",
"def Hx(x, p):\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 = p[0]\n",
" py = p[1]\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",
@@ -1479,7 +1479,7 @@
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": 17,
"metadata": {
"collapsed": true
},
@@ -1582,7 +1582,7 @@
},
{
"cell_type": "code",
"execution_count": 113,
"execution_count": 19,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1632,7 +1632,7 @@
},
{
"cell_type": "code",
"execution_count": 110,
"execution_count": 20,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1640,9 +1640,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa0b1550>"
"<matplotlib.figure.Figure at 0xa5e3f28>"
]
},
"metadata": {},
@@ -1652,7 +1652,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.01969482 0.02094075 0.00154535]\n"
"[ 0.0199192 0.02067011 0.00153754]\n"
]
}
],
@@ -1677,7 +1677,7 @@
},
{
"cell_type": "code",
"execution_count": 109,
"execution_count": 21,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1685,9 +1685,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x806fd30>"
"<matplotlib.figure.Figure at 0x86db438>"
]
},
"metadata": {},
@@ -1697,7 +1697,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.02126405 0.04551132 0.00022729]\n"
"[ 0.01938022 0.04634068 0.00022408]\n"
]
}
],
@@ -1716,7 +1716,7 @@
},
{
"cell_type": "code",
"execution_count": 114,
"execution_count": 22,
"metadata": {
"collapsed": false,
"scrolled": false
@@ -1724,9 +1724,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xafeb7b8>"
"<matplotlib.figure.Figure at 0x86dbf60>"
]
},
"metadata": {},
@@ -1736,7 +1736,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.26908765 0.8039095 0.00355399]\n"
"[ 0.29442198 0.82419287 0.00369511]\n"
]
}
],
@@ -1755,16 +1755,17 @@
},
{
"cell_type": "code",
"execution_count": 119,
"execution_count": 23,
"metadata": {
"collapsed": false
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtMAAAEWCAYAAACkORurAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmUXGd95//3rbq1V3X1Wr1vklpSW0a2sIwlwRgssAcF\n4sSTHJMwOSAIcQgmwSYMB/9CkH/EmJCAh+RgCEvAjgnEghnILxNwnIw3hGwjGXmRJWtttXqt3qtr\nX+69vz/a7ljI2qoXdcuf1zl1VLrP7eqnnqNT/dHt7/0+huM4DiIiIiIicsFcF3sCIiIiIiLLlcK0\niIiIiEiZFKZFRERERMqkMC0iIiIiUiaFaRERERGRMilMi4iIiIiUSWFaRERERKRMZw3T9957L1dc\ncQXRaJRoNMqWLVv4yU9+cso5d955J83NzQSDQa677joOHDiwoBMWEREREVkqzhqmW1tb+au/+iv2\n7dvHM888w9atW/nN3/xNnnvuOQC+8IUvcM899/CVr3yFPXv2EIvFuP7660mlUosyeRERERGRi8m4\n0B0Qa2pq+Mu//Es+9KEP0dTUxJ/8yZ9wxx13AJDL5YjFYnzxi1/klltuWZAJi4iIiIgsFeddM21Z\nFv/0T/9ELpfj2muvpaenh3g8zg033DB7jt/v59prr2X37t0LMlkRERERkaXEPNcJL7zwAps3byaf\nzxMIBNi5cydr1qyZDcz19fWnnB+LxRgcHFyY2YqIiIiILCHnDNNr167l+eefJ5FI8IMf/IDf+Z3f\n4dFHHz3r1xiGcdqxRCJR/ixFRERERC6yaDR62rFzlnl4PB5WrFjBhg0buPvuu9m0aRP33nsvjY2N\nAMTj8VPOj8fjNDQ0zNOURURERESWrgvuM21ZFrZt09nZSUNDAw8//PDsWC6XY9euXWzZsmVeJyki\nIiIishSdtczjU5/6FO9+97tpaWkhmUzyve99j8cff5yHHnoIgNtuu427776btWvX0tXVxV133UUk\nEuG9733vWb/pqy+R7927F4CNGzfO9b28Lmn9yqe1mxut39xo/cqntZsbrd/caP3Kt1zX7lylymcN\n0/F4nN/7vd9jeHiYaDTKFVdcwUMPPcT1118PwCc/+Umy2Sy33nork5OTbNq0iYcffphQKDR/70BE\nREREZIk6a5j+zne+c84X2LFjBzt27Ji3CYmIiIiILBcXXDMtIiIiIiIzFKZFRERERMqkMC0iIiIi\nUiaFaRERERGRMilMi4iIiIiUSWFaRERERKRMCtMiIiIiImVSmBYRERERKZPCtIiIiIhImRSmRURE\nRETKpDAtIiIiIlImhWkRERERkTIpTIuIiIiIlElhWkRERESkTArTIiIiIiJlUpgWERERESmTwrSI\niIiISJkUpkVEREREyqQwLSIiIiJSJoVpEREREZEyKUyLiIiIiJRJYVpEREREpEwK0yIiIiIiZVKY\nFhEREREpk8K0iIiIiEiZFKZFRERERMqkMC0iIiIiUiaFaRERERGRMilMi4iIiIiU6axh+vOf/zxX\nX3010WiUWCzGjTfeyIsvvnjKOdu3b8flcp3y2LJly4JOWkRERERkKThrmH788cf56Ec/ypNPPskj\njzyCaZq84x3vYHJycvYcwzC4/vrrGR4enn385Cc/WfCJi4iIiIhcbObZBh966KFT/v7AAw8QjUbZ\nvXs373rXuwBwHAev10ssFlu4WYqIiCxhBw/m6O0983h7O3R3+xdvQiKyaM4apn/V9PQ0tm1TVVU1\ne8wwDHbt2kV9fT2VlZW89a1v5XOf+xx1dXXzPlkREZGlqLcXtm07c1j+6U9zdHcv4oREZNFcUJj+\n2Mc+xoYNG9i8efPssXe+85381m/9Fp2dnfT09PDpT3+arVu38swzz+D1eud9wiIiIiIiS4XhOI5z\nPid+/OMfZ+fOnezatYuOjo4znjc0NER7ezsPPvggN9100+zxRCIx+/zIkSPlz1hERGSJ6elp5+ab\nz/wb2Z07R+nsPEsdiIgsWV1dXbPPo9HoaePndWX69ttvZ+fOnTz66KNnDdIAjY2NtLS0cPTo0Qub\nqYiIiIjIMnPOMP2xj32MH/zgBzz66KOsXr36nC84OjrKwMAAjY2NZzxn48aNs8/37t172jE5f1q/\n8mnt5kbrNzdav/ItxbUbG8uddTwSiSyZ+S7F9VtOtH7lW65r9+rqitdy1tZ4t956K/fddx//+I//\nSDQanW19l06nAUin03ziE5/gqaee4sSJEzz22GPceOON1NfXn1LiISIiIiJyKTprmP7a175GKpXi\n7W9/O01NTbOPL33pSwC43W7279/Pb/zGb7BmzRq2b99Od3c3Tz75JKFQaFHegIiIiIjIxXLWMg/b\nts/6xX6//7Re1CIiIq837e0z7e/ONi4il6YLao0nIiIip+vu9quPtMjr1FnLPERERERE5MwUpkVE\nREREyqQwLSIiIiJSJoVpEREREZEyKUyLiIiIiJRJYVpEREREpEwK0yIiIiIiZVKYFhEREREpk8K0\niIiIiEiZFKZFRERERMqkMC0iIiIiUiaFaRERERGRMilMi4iIiIiUSWFaRERERKRMCtMiIiIiImVS\nmBYRERERKZPCtIiIiIhImRSmRURERETKpDAtIiIiIlImhWkRERERkTIpTIuIiIiIlElhWkRERESk\nTArTIiIiIiJlUpgWERERESmTwrSIiIiISJkUpkVEREREyqQwLSIiIiJSJoVpEREREZEynTVMf/7z\nn+fqq68mGo0Si8W48cYbefHFF087784776S5uZlgMMh1113HgQMHFmzCIiIiIiJLhXm2wccff5yP\nfvSjXH311di2zWc+8xne8Y53cODAAaqqqgD4whe+wD333MP999/P6tWr+exnP8v111/PoUOHCIfD\ni/ImRESWg4MHc/T2zjxPJtsBGBvLzY63t0N3t/9iTE1ERMp01jD90EMPnfL3Bx54gGg0yu7du3nX\nu96F4zh8+ctf5o477uCmm24C4P777ycWi/G9732PW265ZeFmLiKyzPT2wrZtr4Tl00PzT3+ao7t7\nceckIiJzc0E109PT09i2PXtVuqenh3g8zg033DB7jt/v59prr2X37t3zO1MRERERkSXGcBzHOd+T\nb775Zo4dO8bevXsxDIPdu3fzlre8hZMnT9LS0jJ73gc/+EEGBwdPubKdSCRmnx85cmSepi8isnz0\n9LRz8811ZxzfuXOUzs7eRZyRiIicS1dX1+zzaDR62vhZyzxe7eMf/zi7d+9m165dGIZxzvPP5xwR\nERERkeXsvML07bffzs6dO3n00Ufp6OiYPd7Q0ABAPB4/5cp0PB6fHXstGzdunH2+d+/e047J+dP6\nlU9rNzdavwv36psNX0skEtF6ngf925sbrd/caP3Kt1zX7tXVFa/lnDXTH/vYx3jwwQd55JFHWL16\n9SljnZ2dNDQ08PDDD88ey+Vy7Nq1iy1btpQ5ZRERERGR5eGsV6ZvvfVWvvvd7/LjH/+YaDTK8PAw\nMHP1JBQKYRgGt912G3fffTdr166lq6uLu+66i0gkwnvf+95FeQMiIiIiIhfLWcP01772NQzD4O1v\nf/spx++8804+85nPAPDJT36SbDbLrbfeyuTkJJs2beLhhx8mFAot3KxFRJah9vaZ9ncAyWQSmLk4\n8epxERFZXs4apm3bPq8X2bFjBzt27JiXCYmIXKq6u/2zfaT37t0PLL/aQREROdUF9ZkWEREREZH/\npDAtIiIiIlImhWkRERERkTIpTIuIiIiIlElhWkRERESkTArTIiIiIiJlUpgWERERESmTwrSIiIiI\nSJkUpkVEREREyqQwLSIiIiJSprNuJy4iIrLclSybQtGiWLIoWTYul0HI78XrcV/sqYnIJUBhWkRE\nLkklyyaTK5IrWORyUCqBZYHb7WBF8tREAxiGcbGnKSLLnMK0iIhcUhzHIZ0rksmVyGahUACvaRLw\nuDH9LhLpHCXLwbIdTLfCtIjMjcK0iIhcMgpFi1S2QDrjkMuBz+OhMmTOXoF2HAcHB9MNbpeCtIjM\nncK0iIhcEtLZAulciWQSXLiJBr24fiUwF0oWpgke06USDxGZFwrTIiKyrNm2w3QmTyZrk8mA3+PF\n733tH2/ZfJFQGHxnGBcRuVD6NBERkWWrULRIZvKk0lAsGEQCPtzu1+76ms0XMT0OAb/rjGFbRORC\n6dNERESWpUyuSCKV58RAhnS2SH1lGAAXBn6f55TWd5Zlky8VqaiAkN9zsaYsIpcghWkREVl2pjMF\ndj3fx1P7h0jkkhQti4A7TG24ki2XdVBXbVNl/mfru1SuQCAAIb+Jx1R/aRGZPwrTIiKyrMSnsjz6\nfJyUe5jhzACGu4DP6yKbcmgodPDJf70SgKEPW5hug1Q2j9u0CQYMQgHvRZ69iFxqFKZFRGTZOBmf\n4qFfDnN4/CSBGof2dh9VFSFchotiyeGuZ3+LP61+jPduvQKXYZDOFbCxqIwYVAR9F3v6InIJeu27\nNERERJYQx3EYnkjyb0/3cHRsmKI5xRvWhKiJ+nj6qZkfZXc9+2F+J/o/KTgZ0tk8hZJFyS5REYFI\n0HvGGxNFROZCV6ZFRGRJs22HwfEkB3umeO7oGGnG6GpxzdY+HzwID3n+kP9349d5Zn8Sf9RLMOAl\nVyxQUTETpFUnLSILRWFaRESWrGLJYmg8xbG+DI/vHaJ/ehB/oIjtuNj1c4t/930E1kP781/n3xMF\nYrEANaEIkaCXcBgiQY96SovIgtInjIiILEnZfJHjg1P821O9vNST4OT4KH2ZPvAmKODhcd9HgJkg\n/d9/z2L/oTxtFWvpbo8RiRiEgyYBn9rgicjCUpgWEZElJ50tsOfgED/+2WH6xseZLLine truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtMAAAEWCAYAAACkORurAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4XXd97/v3WnuetLU1bEmWZFm2ZVuZjGNncmlCEpLi\nQ2/aFJ605faBMDScNrQEyuWSczg4hxNCaWkupy1QaAukAdqE3gO9h5I0FDLUdRLiTMSxk3iQJWue\nt/a09t5ruH8oUWMcT1uSJTmf1/Po8fZaS2v/1u/Rs/Xxz9/1XYbneR4iIiIiInLGzKUegIiIiIjI\nSqUwLSIiIiJSJYVpEREREZEqKUyLiIiIiFRJYVpEREREpEoK0yIiIiIiVVKYFhERERGp0knD9Je/\n/GU2b95MMpkkmUyyfft2fvSjHx1zzB133EFrayvRaJSrr76affv2LeqARURERESWi5OG6fb2dv7k\nT/6EZ599lqeffpprrrmGX//1X+f5558H4Atf+AJ33303f/mXf8lTTz1FOp3muuuuI5fLnZXBi4iI\niIgsJeNMn4BYX1/PH//xH/OhD32IVatW8Yd/+IfcfvvtAFiWRTqd5otf/CK33HLLogxYRERERGS5\nOO2aacdx+Id/+Acsy+LKK6+kp6eHkZERrr/++rljwuEwV155Jbt3716UwYqIiIiILCf+Ux3wwgsv\ncMUVV1AqlYhEItx///1s3LhxLjA3NTUdc3w6nWZwcHBxRisiIiIisoycMkxv2rSJn//852QyGb73\nve/xW7/1Wzz88MMn/R7DMI7blslkqh+liIiIiMgSSyaTx207ZZlHIBBg7dq1bNmyhbvuuovLL7+c\nL3/5y7S0tAAwMjJyzPEjIyM0Nzcv0JBFRERERJavM+4z7TgOruvS2dlJc3MzDz300Nw+y7LYtWsX\n27dvX9BBioiIiIgsRyct8/jUpz7Fr/7qr9LW1kY2m+W73/0ujz76KA8++CAAt912G3fddRebNm2i\nq6uLO++8k0QiwXve856Tvunrl8j37NkDwLZt2+Z7LW9Kmr/qae7mR/M3P5q/6mnu5kfzNz+av+qt\n1Lk7VanyScP0yMgIv/M7v8Pw8DDJZJLNmzfz4IMPct111wHwyU9+kmKxyK233srU1BSXX345Dz30\nELFYbOGuQERERERkmTppmP7mN795yhPs3LmTnTt3LtiARERERERWijOumRYRERERkVkK0yIiIiIi\nVVKYFhERERGpksK0iIiIiEiVFKZFRERERKqkMC0iIiIiUiWFaRERERGRKilMi4iIiIhUSWFaRERE\nRKRKCtMiIiIiIlVSmBYRERERqZLCtIiIiIhIlRSmRURERESqpDAtIiIiIlIlhWkRERERkSopTIuI\niIiIVElhWkRERESkSgrTIiIiIiJVUpgWEREREamSwrSIiIiISJUUpkVEREREqqQwLSIiIiJSJYVp\nEREREZEqKUyLiIiIiFRJYVpEREREpEoK0yIiIiIiVVKYFhERERGpksK0iIiIiEiVFKZFRERERKp0\n0jD9+c9/nksuuYRkMkk6neaGG27gxRdfPOaYm2++GdM0j/navn37og5aRERERGQ5OGmYfvTRR/nI\nRz7C448/zk9/+lP8fj9vf/vbmZqamjvGMAyuu+46hoeH575+9KMfLfrARURERESWmv9kOx988MFj\n/n7vvfeSTCbZvXs373znOwHwPI9gMEg6nV68UYqIiCxj+/db9PaeeH9HB3R3h8/egETkrDlpmP5F\nMzMzuK5LKpWa22YYBrt27aKpqYna2lquuuoqPve5z9HY2LjggxUREVmOenthx44Th+UHHrDo7j6L\nAxKRs+aMwvRHP/pRtmzZwhVXXDG37R3veAfvete76OzspKenh09/+tNcc801PP300wSDwQUfsIiI\niIjIcmF4nuedzoEf//jHuf/++9m1axdr1qw54XFDQ0N0dHRw3333ceONN85tz2Qyc68PHDhQ/YhF\nRESWmZ6eDm666cT/I3v//WN0dp6kDkRElq2urq6518lk8rj9p7Uy/bGPfYz777+fhx9++KRBGqCl\npYW2tjYOHjx4ZiMVEREREVlhThmmP/rRj/K9732Phx9+mA0bNpzyhGNjYwwMDNDS0nLCY7Zt2zb3\nes+ePcdtk9On+aue5m5+NH/zo/mr3nKcu/Fx66T7E4nEshnvcpy/lUTzV72VOnevr654IydtjXfr\nrbfyrW99i+985zskk8m51nf5fB6AfD7PJz7xCZ544gmOHDnCI488wg033EBTU9MxJR4iIiIiIuei\nk4bpr371q+RyOa699lpWrVo19/Vnf/ZnAPh8Pvbu3cuv/dqvsXHjRm6++Wa6u7t5/PHHicViZ+UC\nRERERESWyknLPFzXPek3h8Ph43pRi4iIvNl0dMy2vzvZfhE5N51RazwRERE5Xnd3WH2kRd6kTlrm\nISIiIiIiJ6YwLSIiIiJSJYVpEREREZEqKUyLiIiIiFRJYVpEREREpEoK0yIiIiIiVVKYFhERERGp\nksK0iIiIiEiVFKZFRERERKqkMC0iIiIiUiWFaRERERGRKilMi4iIiIhUSWFaRERERKRKCtMiIiIi\nIlVSmBYRERERqZLCtIiIiIhIlRSmRURERESqpDAtIiIiIlIlhWkRERERkSopTIuIiIiIVElhWkRE\nRESkSgrTIiIiIiJVUpgWEREREamSwrSIiIiISJUUpkVEREREqqQwLSIiIiJSJYVpEREREZEqKUyL\niIiIiFTppGH685//PJdccgnJZJJ0Os0NN9zAiy++eNxxd9xxB62trUSjUa6++mr27du3aAMWERER\nEVku/Cfb+eijj/KRj3yESy65BNd1+cxnPsPb3/529u3bRyqVAuALX/gCd999N/fccw8bNmzgs5/9\nLNdddx0vv/wy8Xj8rFyEiMhKsH+/RW/v7OtstgOA8XFrbn9HB3R3h5diaCIiUqWThukHH3zwmL/f\ne++9JJNJdu/ezTvf+U48z+NLX/oSt99+OzfeeCMA99xzD+l0mu9+97vccsstizdyEZEVprcXdux4\nLSwfH5ofeMCiu/vsjklERObnjGqmZ2ZmcF13blW6p6eHkZERrr/++rljwuEwV155Jbt3717YkYqI\niIiILDOG53ne6R580003cejQIfbs2YNhGOzevZu3vvWt9PX10dbWNnfcBz7wAQYHB49Z2c5kMnOv\nDxw4sEDDFxFZOXp6OrjppsYT7r///jE6O3vP4ohERORUurq65l4nk8nj9p+0zOP1Pv7xj7N79252\n7dqFYRinPP50jhERERERWclOK0x/7GMf4/777+fhhx9mzZo1c9ubm5sBGBkZOWZlemRkZG7fG9m2\nbdvc6z179hy3TU6f5q96mrv50fydudffbPhGEomE5vM06GdvfjR/86P5q95KnbvXV1e8kVPWTH/0\nox/lvvvu46c//SkbNmw4Zl9nZyfNzc089NBDc9ssy2LXrl1s3769yiGLiIiIiKwMJ12ZvvXWW/n2\nt7/ND37wA5LJJMPDw8Ds6kksFsMwDG677TbuuusuNm3aRFdXF3feeSeJRIL3vOc9Z+UCRERERESW\nyknD9Fe/+lUMw+Daa689Zvsdd9zBZz7zGQA++clPUiwWufXWW5mamuLyyy/noYceIhaLLd6oRURW\noI6O2fZ3ANlsFphdnHj9fhERWVlOGqZd1z2tk+zcuZOdO3cuyIBERM5V3d3huT7Se/bsBVZe7aCI\niBzrjPpMi4iIiIjIf1CYFhERERGpksK0iIiIiEiVFKZFRERERKqkMC0iIiIiUiWFaRERERGRKilM\ni4iIiIhUSWFaRERERKRKCtMiIiIiIlVSmBYRERERqZLCtIiIiIhIlfxLPQAREZHF5HkepYpDxXao\n2C4AAb9JIhpa4pGJyLlAYVpERM5JnudRLNlYZZui5VGpgG2D50Es5uAzK0TDgaUepoiscArTIiJy\nzimVbfJWhaLlUSyCz/ARDPiIhE3KtkO5XMFx3aUepoicAxSmRUTknOG6HtlCiWLJpVAAXJN4OIjf\n9x+3CLkVG58ffKZuGxKR+VOYFhGRc0LFdsgWyuTyHuWSQSQUIBQ4/tdcueKQjEEw4FuCUYrIuUZh\nWkREVryCVSFXrJDLgeH5SMaCGIZx3HFW2cYf8Aj4jWNWq0VEqqUwLSIiK9ZrZR354mxZR8gfIBJ6\n45sKXdejWC6TTEI8EjzLIxWRc5XCtIiIrEi24zKTL5HNeVTKBuHgbIi2yjYBn4nvF1ae81aZcBgi\nIR8Bv0o8RGRhKEyLiMiKU7FdMjmLkfEKY1MW8UiQcsXDseGi+2MADP1nZ66UwyrbeIZDLGpoVVpE\nFpTCtIiIrChl26F/rMCzAy9zdCxD2SljuCFqown+W/9WfnZDkUDApVS28UeCVGwHq1Kmpma2vOON\naqlFRKqlMC0iIitGsVRh90vjPH94Ejfex3R5nEjYxLbhnyY/zp3tT1O2bQKB2RVp23HJWSUSCYhH\nAurgISILTrcyi4jIipArlPjh4wf42YFRegoHCdZMseWCKBd1x/in0sf5P+v+J8P5QfpGJwmGwO8z\nyRVLxGIQj/r1tEMRWRRamRYRkWUvk7N4/tAI//ZcPwOlI6xe5dLZHmXnng8D8Lbs16hdU2FmbIaZ\nYoGAH4rlCuGIRzzqU520iCwahWkREVm2XNdjKltkYCzP9x/u5eXxg0TjJYJB/1yQvmrmqzzyKMzk\nPBpjPhIX+LEdl1jMJB4zSUQVpEVk8ShMi4jIslSxHcamC/zb8/089vQwz/QeZpzDxGIZ+vfHIA38\n8C+w32qzeXOAtjVl1sVT1CfCRKMmibhBTTSkGw5FZFEpTIuIyLJTKtsMjM3w3X99iLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x5834ac8>"
"<matplotlib.figure.Figure at 0xa642940>"
]
},
"metadata": {},
@@ -1774,7 +1775,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.00883285 0.00866094 0.00077284]\n"
"[ 0.00881439 0.0086407 0.00077058]\n"
]
}
],
@@ -1786,6 +1787,19 @@
" 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 "
]
}
],
"metadata": {
@@ -1804,7 +1818,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3"
"version": "3.4.1"
}
},
"nbformat": 4,
+73 -23
View File
@@ -4,12 +4,13 @@ Created on Tue May 27 21:21:19 2014
@author: rlabbe
"""
from filterpy.kalman import UnscentedKalmanFilter as UKF
from filterpy.kalman import MerweScaledSigmaPoints
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse,Arrow
import stats
import numpy as np
import math
from filterpy.kalman import UnscentedKalmanFilter as UKF
import numpy as np
import stats
from stats import plot_covariance_ellipse
def _sigma_points(mean, sigma, kappa):
@@ -59,8 +60,6 @@ def show_three_gps():
plt.show()
def show_four_gps():
circle1=plt.Circle((-4,2),5,color='#004080',fill=False,linewidth=20, alpha=.7)
circle2=plt.Circle((5.5,1),5,color='#E24A33', fill=False, linewidth=8, alpha=.7)
@@ -77,21 +76,24 @@ def show_four_gps():
plt.axis('equal')
plt.show()
def show_sigma_transform():
def show_sigma_transform(with_text=False):
fig = plt.figure()
ax=fig.gca()
x = np.array([0, 5])
P = np.array([[4, -2.2], [-2.2, 3]])
plot_covariance_ellipse(x, P, facecolor='b', variance=9, alpha=0.5)
S = UKF.sigma_points(x=x, P=P, alpha=.5, kappa=0)
plot_covariance_ellipse(x, P, facecolor='b', alpha=0.6, variance=9)
sigmas = MerweScaledSigmaPoints(2, alpha=.5, beta=2., kappa=0.)
S = sigmas.sigma_points(x=x, P=P)
plt.scatter(S[:,0], S[:,1], c='k', s=80)
x = np.array([15, 5])
P = np.array([[3, 1.2],[1.2, 6]])
plot_covariance_ellipse(x, P, facecolor='g', variance=9, alpha=0.5)
plot_covariance_ellipse(x, P, facecolor='g', variance=9, alpha=0.3)
ax.add_artist(arrow(S[0,0], S[0,1], 11, 4.1, 0.6))
ax.add_artist(arrow(S[1,0], S[1,1], 13, 7.7, 0.6))
@@ -102,21 +104,30 @@ def show_sigma_transform():
ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)
if with_text:
plt.text(2.5, 1.5, r"$\chi$", fontsize=32)
plt.text(13, -1, r"$\mathcal{Y}$", fontsize=32)
#plt.axis('equal')
plt.show()
def show_2d_transform():
plt.cla()
ax=plt.gca()
ax.add_artist(Ellipse(xy=(2,5), width=2, height=3,angle=70,linewidth=1,ec='k'))
ax.add_artist(Ellipse(xy=(7,5), width=2.2, alpha=0.3, height=3.8,angle=150,linewidth=1,ec='k'))
ax.add_artist(Ellipse(xy=(7,5), width=2.2, alpha=0.3, height=3.8,angle=150,fc='g',linewidth=1,ec='k'))
ax.add_artist(arrow(2, 5, 6, 4.8))
ax.add_artist(arrow(1.5, 5.5, 7, 3.8))
ax.add_artist(arrow(2.3, 4.1, 8, 6))
ax.add_artist(arrow(3.3, 5.1, 6.5, 4.3))
ax.add_artist(arrow(1.3, 4.8, 7.2, 6.3))
ax.add_artist(arrow(1.1, 5.2, 8.2, 5.3))
ax.add_artist(arrow(2, 4.4, 7.3, 4.5))
ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)
@@ -139,27 +150,34 @@ def show_3_sigma_points():
def show_sigma_selections():
ax=plt.gca()
ax.add_artist(Ellipse(xy=(2,5), alpha=0.5, width=2, height=3,angle=0,linewidth=1,ec='k'))
ax.add_artist(Ellipse(xy=(5,5), alpha=0.5, width=2, height=3,angle=0,linewidth=1,ec='k'))
ax.add_artist(Ellipse(xy=(8,5), alpha=0.5, width=2, height=3,angle=0,linewidth=1,ec='k'))
ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)
plt.scatter([1.5,2,2.5],[5,5,5],c='k', s=50)
plt.scatter([2,2],[4.5, 5.5],c='k', s=50)
x = np.array([2, 5])
P = np.array([[3, 1.1], [1.1, 4]])
plt.scatter([4.8,5,5.2],[5,5,5],c='k', s=50)
plt.scatter([5,5],[4.8, 5.2],c='k', s=50)
points = MerweScaledSigmaPoints(2, .05, 2., 1.)
sigmas = points.sigma_points(x, P)
plot_covariance_ellipse(x, P, facecolor='b', alpha=0.6, variance=[.5])
plt.scatter(sigmas[:,0], sigmas[:, 1], c='k', s=50)
plt.scatter([7.2,8,8.8],[5,5,5],c='k', s=50)
plt.scatter([8,8],[4,6],c='k' ,s=50)
x = np.array([5, 5])
points = MerweScaledSigmaPoints(2, .15, 2., 1.)
sigmas = points.sigma_points(x, P)
plot_covariance_ellipse(x, P, facecolor='b', alpha=0.6, variance=[.5])
plt.scatter(sigmas[:,0], sigmas[:, 1], c='k', s=50)
x = np.array([8, 5])
points = MerweScaledSigmaPoints(2, .4, 2., 1.)
sigmas = points.sigma_points(x, P)
plot_covariance_ellipse(x, P, facecolor='b', alpha=0.6, variance=[.5])
plt.scatter(sigmas[:,0], sigmas[:, 1], c='k', s=50)
plt.axis('equal')
plt.xlim(0,10); plt.ylim(0,10)
plt.show()
def show_sigmas_for_2_kappas():
# generate the Gaussian data
@@ -190,9 +208,41 @@ def show_sigmas_for_2_kappas():
plt.show()
def plot_sigma_points():
x = np.array([0, 0])
P = np.array([[4, 2], [2, 4]])
sigmas = MerweScaledSigmaPoints(n=2, alpha=.3, beta=2., kappa=1.)
S0 = sigmas.sigma_points(x, P)
Wm0, Wc0 = sigmas.weights()
sigmas = MerweScaledSigmaPoints(n=2, alpha=1., beta=2., kappa=1.)
S1 = sigmas.sigma_points(x, P)
Wm1, Wc1 = sigmas.weights()
def plot_sigmas(s, w, **kwargs):
min_w = min(abs(w))
scale_factor = 100 / min_w
return plt.scatter(s[:, 0], s[:, 1], s=abs(w)*scale_factor, alpha=.5, **kwargs)
plt.subplot(121)
plot_sigmas(S0, Wc0, c='b')
plot_covariance_ellipse(x, P, facecolor='g', alpha=0.2, variance=[1, 4])
plt.title('alpha=0.3')
plt.subplot(122)
plot_sigmas(S1, Wc1, c='b', label='Kappa=2')
plot_covariance_ellipse(x, P, facecolor='g', alpha=0.2, variance=[1, 4])
plt.title('alpha=1')
plt.show()
print(sum(Wc0))
if __name__ == '__main__':
show_four_gps()
#show_2d_transform()
#show_sigma_selections()
show_sigma_transform(True)
#show_four_gps()
#show_sigma_transform()
#show_sigma_selections()
+11 -21
View File
@@ -16,33 +16,23 @@ from numpy.random import randn
def normalize_angle(x, index):
def normalize(x):
if x > np.pi:
x -= 2*np.pi
if x < -np.pi:
x = 2*np.pi
return x
def normalize_angle(x):
if x > np.pi:
x -= 2*np.pi
if x < -np.pi:
x = 2*np.pi
return x
if x.ndim > 1:
for i in range(len(x)):
x[i, index] = normalize(x[i, index])
else:
x[index] = normalize(x[index])
def residual(a,b , index=1):
def residual_h(a, b):
y = a - b
normalize_angle(y, index)
y[1] = normalize_angle(y[1])
return y
def residual_h(a, b):
return residual(a, b, 1)
def residual_x(a, b):
return residual(a, b, 2)
y = a - b
y[2] = normalize_angle(y[2])
return y
def move(x, u, dt, wheelbase):