PEP-8 compliance.

This commit is contained in:
Roger Labbe committed 2014-12-01 08:50:29 -08:00
1 parent b1ce657cca
commit 6e73cd9786
1 file changed
+153 -155
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:a78f0d79d16739c5c601c8274800d5e2241197cf7747eca727508403262be931"
"signature": "sha256:75c473df8ee167446e82e1b07397a1f60535a0ab7d37591e1626e3798a42d126"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -261,7 +261,7 @@
"output_type": "pyout",
"prompt_number": 1,
"text": [
"<IPython.core.display.HTML at 0x7fc18a3cc7b8>"
"<IPython.core.display.HTML at 0x7fa058b4a4e0>"
]
}
],
@@ -341,10 +341,10 @@
"collapsed": false,
"input": [
"pos = [4,3]\n",
"s = PosSensor1 (pos, (2,1), 1)\n",
"sensor = PosSensor1 (pos, (2,1), 1)\n",
"\n",
"for i in range (50):\n",
" pos = s.read() \n",
" pos = sensor.read() \n",
" plt.scatter(pos[0], pos[1])\n",
"plt.show()"
],
@@ -354,9 +354,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc16df405f8>"
"<matplotlib.figure.Figure at 0x7fa03c6c5550>"
]
}
],
@@ -428,13 +428,13 @@
"from filterpy.kalman import KalmanFilter\n",
"import numpy as np\n",
"\n",
"f1 = KalmanFilter(dim_x=4, dim_z=2)\n",
"tracker = KalmanFilter(dim_x=4, dim_z=2)\n",
"dt = 1. # time step\n",
"\n",
"f1.F = np.array ([[1, dt, 0, 0],\n",
" [0, 1, 0, 0],\n",
" [0, 0, 1, dt],\n",
" [0, 0, 0, 1]])"
"tracker.F = np.array ([[1, dt, 0, 0],\n",
" [0, 1, 0, 0],\n",
" [0, 0, 1, dt],\n",
" [0, 0, 0, 1]])"
],
"language": "python",
"metadata": {},
@@ -453,7 +453,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
"f1.u = 0."
"tracker.u = 0."
],
"language": "python",
"metadata": {},
@@ -509,9 +509,9 @@
"cell_type": "code",
"collapsed": false,
"input": [
"f1.H = np.array ([[1/0.3048, 0, 0, 0],\n",
" [0, 0, 1/0.3048, 0]])\n",
"print(f1.H)"
"tracker.H = np.array ([[1/0.3048, 0, 0, 0],\n",
" [0, 0, 1/0.3048, 0]])\n",
"print(tracker.H)"
],
"language": "python",
"metadata": {},
@@ -544,9 +544,9 @@
"cell_type": "code",
"collapsed": false,
"input": [
"f1.R = np.array([[5,0],\n",
" [0, 5]])\n",
"print (f1.R)"
"tracker.R = np.array([[5,0],\n",
" [0, 5]])\n",
"print(tracker.R)"
],
"language": "python",
"metadata": {},
@@ -578,8 +578,8 @@
"cell_type": "code",
"collapsed": false,
"input": [
"f1.Q = np.eye(4) * 0.1\n",
"print(f1.Q)"
"tracker.Q = np.eye(4) * 0.1\n",
"print(tracker.Q)"
],
"language": "python",
"metadata": {},
@@ -614,11 +614,11 @@
"cell_type": "code",
"collapsed": false,
"input": [
"f1.x = np.array([[0,0,0,0]]).T\n",
"f1.P = np.eye(4) * 500.\n",
"print(f1.x)\n",
"tracker.x = np.array([[0, 0, 0, 0]]).T\n",
"tracker.P = np.eye(4) * 500.\n",
"print(tracker.x)\n",
"print()\n",
"print (f1.P)"
"print (tracker.P)"
],
"language": "python",
"metadata": {},
@@ -660,39 +660,39 @@
"cell_type": "code",
"collapsed": false,
"input": [
"f1 = KalmanFilter(dim_x=4, dim_z=2)\n",
"tracker = KalmanFilter(dim_x=4, dim_z=2)\n",
"dt = 1.0 # time step\n",
"\n",
"f1.F = np.array ([[1, dt, 0, 0],\n",
" [0, 1, 0, 0],\n",
" [0, 0, 1, dt],\n",
" [0, 0, 0, 1]])\n",
"f1.u = 0.\n",
"f1.H = np.array ([[1/0.3048, 0, 0, 0],\n",
" [0, 0, 1/0.3048, 0]])\n",
"tracker.F = np.array ([[1, dt, 0, 0],\n",
" [0, 1, 0, 0],\n",
" [0, 0, 1, dt],\n",
" [0, 0, 0, 1]])\n",
"tracker.u = 0.\n",
"tracker.H = np.array ([[1/0.3048, 0, 0, 0],\n",
" [0, 0, 1/0.3048, 0]])\n",
"\n",
"f1.R = np.eye(2) * 5\n",
"f1.Q = np.eye(4) * .1\n",
"tracker.R = np.eye(2) * 5\n",
"tracker.Q = np.eye(4) * .1\n",
"\n",
"f1.x = np.array([[0,0,0,0]]).T\n",
"f1.P = np.eye(4) * 500.\n",
"tracker.x = np.array([[0,0,0,0]]).T\n",
"tracker.P = np.eye(4) * 500.\n",
"\n",
"# initialize storage and other variables for the run\n",
"count = 30\n",
"xs, ys = [],[]\n",
"pxs, pys = [],[]\n",
"\n",
"s = PosSensor1 ([0,0], (2,1), 1.)\n",
"sensor = PosSensor1 ([0,0], (2,1), 1.)\n",
"\n",
"for i in range(count):\n",
" pos = s.read()\n",
" z = np.array([[pos[0]],[pos[1]]])\n",
" pos = sensor.read()\n",
" z = np.array([[pos[0]], [pos[1]]])\n",
"\n",
" f1.predict ()\n",
" f1.update (z)\n",
" tracker.predict ()\n",
" tracker.update (z)\n",
"\n",
" xs.append (f1.x[0,0])\n",
" ys.append (f1.x[2,0])\n",
" xs.append (tracker.x[0,0])\n",
" ys.append (tracker.x[2,0])\n",
" pxs.append (pos[0]*.3048)\n",
" pys.append(pos[1]*.3048)\n",
"\n",
@@ -707,9 +707,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc16df40668>"
"<matplotlib.figure.Figure at 0x7fa03c6c55c0>"
]
}
],
@@ -730,58 +730,57 @@
"input": [
"import stats\n",
"\n",
"f1 = KalmanFilter(dim_x=4, dim_z=2)\n",
"tracker = KalmanFilter(dim_x=4, dim_z=2)\n",
"dt = 1.0 # time step\n",
"\n",
"f1.F = np.array ([[1, dt, 0, 0],\n",
" [0, 1, 0, 0],\n",
" [0, 0, 1, dt],\n",
" [0, 0, 0, 1]])\n",
"f1.u = 0.\n",
"f1.H = np.array ([[1/0.3048, 0, 0, 0],\n",
" [0, 0, 1/0.3048, 0]])\n",
"tracker.F = np.array([[1, dt, 0, 0],\n",
" [0, 1, 0, 0],\n",
" [0, 0, 1, dt],\n",
" [0, 0, 0, 1]])\n",
"tracker.u = 0.\n",
"tracker.H = np.array([[1/0.3048, 0, 0, 0],\n",
" [0, 0, 1/0.3048, 0]])\n",
"\n",
"f1.R = np.eye(2) * 5\n",
"f1.Q = np.eye(4) * .1\n",
"tracker.R = np.eye(2) * 5\n",
"tracker.Q = np.eye(4) * .1\n",
"\n",
"f1.x = np.array([[0,0,0,0]]).T\n",
"f1.P = np.eye(4) * 500.\n",
"tracker.x = np.array([[0, 0, 0, 0]]).T\n",
"tracker.P = np.eye(4) * 500.\n",
"\n",
"# initialize storage and other variables for the run\n",
"count = 30\n",
"xs, ys = [],[]\n",
"pxs, pys = [],[]\n",
"xs, ys = [], []\n",
"pxs, pys = [], []\n",
"\n",
"s = PosSensor1 ([0,0], (2,1), 1.)\n",
"sensor = PosSensor1([0,0], (2,1), 1.)\n",
"\n",
"for i in range(count):\n",
" pos = s.read()\n",
" z = np.array([[pos[0]],[pos[1]]])\n",
" pos = sensor.read()\n",
" z = np.array([[pos[0]], [pos[1]]])\n",
"\n",
" f1.predict ()\n",
" f1.update (z)\n",
" tracker.predict()\n",
" tracker.update(z)\n",
"\n",
" xs.append (f1.x[0,0])\n",
" ys.append (f1.x[2,0])\n",
" pxs.append (pos[0]*.3048)\n",
" xs.append(tracker.x[0,0])\n",
" ys.append(tracker.x[2,0])\n",
" pxs.append(pos[0]*.3048)\n",
" pys.append(pos[1]*.3048)\n",
"\n",
" # plot covariance of x and y\n",
" cov = np.array([[f1.P[0,0], f1.P[2,0]], \n",
" [f1.P[0,2], f1.P[2,2]]])\n",
" cov = np.array([[tracker.P[0,0], tracker.P[2,0]], \n",
" [tracker.P[0,2], tracker.P[2,2]]])\n",
" \n",
" #e = stats.sigma_ellipse (cov=cov, x=f1.x[0,0], y=f1.x[2,0])\n",
" #stats.plot_sigma_ellipse(ellipse=e)\n",
" stats.plot_covariance_ellipse((f1.x[0,0], f1.x[2,0]), cov=cov,\n",
" facecolor='g', alpha=0.2)\n",
" stats.plot_covariance_ellipse(\n",
" (tracker.x[0,0], tracker.x[2,0]), cov=cov,\n",
" facecolor='g', alpha=0.2)\n",
"\n",
" \n",
"p1, = plt.plot (xs, ys, 'r--')\n",
"p2, = plt.plot (pxs, pys)\n",
"plt.legend([p1,p2], ['filter', 'measurement'], loc=2)\n",
"p1, = plt.plot (xs, ys, 'r--', label='filter')\n",
"p2, = plt.plot (pxs, pys, label='measurement')\n",
"plt.legend(loc=2)\n",
"plt.show()\n",
"print(\"final P is:\")\n",
"print(f1.P)"
"print(tracker.P)"
],
"language": "python",
"metadata": {},
@@ -789,9 +788,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsIAAAFwCAYAAACy+B06AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmYnHWd7/33vdde1VW9pbuzAxIISxJMEASURWUuxGWc\nUdyeQQfh4aAPjg44jo56cHTOeDnMnJk58xzURxxE8QwgeEbxKIoExB2jAhJD1u70Vt3Vtde9388f\nRZo06XS6s5Dt+7quXOnUvf2qcl/Jp3/9vb8/ZfPmzRFCCCGEEEKcZNSjPQAhhBBCCCGOBgnCQggh\nhBDipCRBWAghhBBCnJQkCAshhBBCiJOSBGEhhBBCCHFSkiAshBBCCCFOSvqRPPng4OCRPL0QQggh\nhBDTFi9evKD9j2gQBli1atWRvoQ4jhQKBe6//34uueSSoz0UcQyR+0LMRu4LMRu5L8RsCoUCjz/+\n+IKPk9IIIYQQQghxUpIgLIQQQgghTkoShMVLTsplxGzkvhCzkftCzEbuC3G4SBAWLzn5B0zMRu4L\nMRu5L8Rs5L4Qh4sEYSGEEEIIcVI64l0jDqRcLuN53tEehniJTE1NAeD7/kGfI4oiOjo6MAzjcA1L\nCCGEECehoxqEm80mAF1dXUdzGOI4E4Yh4+PjFAoFCcNCCCGEOGhHtTSiXq+TzWaP5hDEcUhVVbq7\nu6dnl4UQQgghDsZRDcKKoqAoytEcgjhOqaoq944QQgghDok8LCeEEEIIIU5KEoSFEEIIIcRJSYLw\nIajVarz3ve9l1apVDAwMcPvtt8/YfvPNN/OWt7xln+P+5m/+hoGBAQYGBmbdLoQQQgghjjwJwofg\nrrvu4he/+AX3338/mzZt4oYbbpix/dOf/jRf+tKX9jnu1ltv5de//jXXX3/9nHWuTzzxBAMDA+ze\nvfuwj10IIYQQ4mR31PsIH8+2bdvGaaedtt8VblKp1KyvJ5NJkskkiUSCKIoOeJ357COEEEIIIRZG\nZoQPws0338zAwAD33HMPP/3pT6fLHPaURtx6662HVPqwZyb4T//0TwE4//zzp8+39+zwyMgIN9xw\nA2eeeSarV6/muuuuY2RkZMa5vvGNbzAwMMBTTz3FVVddxcqVK1m/fj1PP/30IXwCQgghhBDHPwnC\nB+G2227j17/+Na9//es577zz2LRpE5s2beL6668H4OMf//j09oNp8fXyl7+cTZs28YUvfAGA73zn\nO9PXWLRoEdBejOQtb3kLURRx33338cADDwBw7bXXzjqD/Nd//de8//3v55FHHuETn/iELEQhhBBC\niJPecVEa0dffP+vrw/upnV3o/guVTqdJp9NYloWu63R2ds7YnkqlSKVSWJZ1UGUNhmHQ2dk5vdhI\noVDY5xoPPPAA5XKZf/mXf5kOtX/7t3/L2rVr2bRpE2vWrJmx/0033cQVV1wBwJIlSxY8JiGEEEKI\nE81xEYTFvn73u99Rq9U488wzZ7yuKAq7du3aJwhv2LDhpRyeEEIIIcQx77gIwgudyT1cM7/HulNO\nOYUvf/nL+7z+4tljgEwm81IMSQghhBDiuHFcBOFj2YFqgOfankwmsW17v9v3lDz4vr/PtrPOOot7\n772XdDpNPp+f52iFEEIIIcQe8rDcIXpxDXAYhoyPjzM+Po5t27iuS7FYZHx8HM/zZux77rnn8vTT\nT7Nx40bGx8dpNBozti9btgxN03jwwQep1WozQvOb3vQmuru7ue666/jFL37Bjh07+P73v88NN9xA\nq9U6cm9YCCGEEOIEIUH4ECiKss+M7+7du1m7di1r167lP//zP3nyySdZs2YN69at41e/+tWMfc8/\n/3xuuOEG/st/+S+sXbuWz33uczO2d3V18clPfpK7776b1atXc+qpp063T4vH49x333309fXxnve8\nh8suu4xPfepTdHd3Y5rmPuMUQgghhBAzKZs3bz5iqzUMDg7ud7EJgGKxSFdX15G6vDjByf1z4igU\nCgBMTk4e5ZGIY4ncF2I2cl+I2RQKBR5//HEWL168oONkRlgIIYQQQpyUJAgLIYQQQoiTkgRhIYQQ\nQghxUpozCD/88MO89a1v5ayzzuKv/uqvpl/3PI+PfvSjrF27lle/+tU89NBDR3ygQgghhBBCHE5z\n9hHOZDL8+Z//OU888cSM1l133nknzz33HBs3buSZZ57h+uuvZ82aNfT29h7xAQshhBBCCHE4zDkj\nvH79eq644gqy2eyM17/73e/yrne9i1Qqxfr161mzZg3f//73j+hAhRBCCCGEOJzmtbLcixeN2LFj\nB8uXL+fDH/4wl156KStXrmT79u1HZIBCCCGEEEIcCfMKwi9ekKHVapFIJNiyZQurV68mmUwyOjo6\n67F7+v3NZmpqagFDFWImXdfnvL/E8WPPcuLy9yn2JveFmI3cF2I2e+6LhTqoGeF4PE6r1eLBBx8E\n4NOf/jTJZHLWY2+77bbpry+++GIuueSSgxqoEEIIIYQ4soIgpOl42G5AGEUoCmiqSsLSiZn6MbVa\n7aOPPsrGjRsB0DSNiy++eMHnOKgZ4WXLlrF161bOPPNMALZu3cpll10267E33njjjD/vvRKM7/sL\nGqwQe/N9X1YWOkHISlFiNnJfiNnIfXH4uX5AqWZTrjvYno8TOLiBSxiFKICqaFiaRdywiFs6+XSM\nXNI66qF49erVrF69GnhhZbmFmjMIh2GI53kEQUAQBLiui6qqXHnlldx11128+tWv5plnnmHTpk38\n3d/93cG9CyFeZMOGDbz1rW/lL/7iL472UIQQQogTlusHDE82KDdaVJ0qFbeKH3lYuoJpquzJuUEQ\nMdUK8euQ0JNka1kysSRd2Thd2cTRfROHaM4g/MADD/DRj350+s/f+ta3uOmmm7jhhhvYtm0bl1xy\nCdlsls985jP09PQc8cGKk8PR/g5TCCGEONGVajbDk3XGm0WqbpVETKG7YBC39h9sgzCi3nSZqI9Q\nbGpU7W4qjQwDnSli5ryKDI45c7ZPe/Ob38yzzz4749dNN92Erut85jOf4cknn+SRRx7hyiuvfKnG\ne0x44oknWLt2Le95z3tYtWoVd955J1dccQVnn302jz32GADVapVbbrmFc845h1WrVnHNNdewZcuW\n6XM899xzXHvttaxZs4YVK1ZwySWX8LWvfW3GdTzP42/+5m9Yt24dK1eu5JWvfCV33HHH9PbBwUEG\nBgbYvXv39Guf//znOf/882ec5xvf+AYDAwM89dRTXHXVVaxcuZL169fz9NNPA+C6Lp/+9KdZt24d\np556KldffTW//OUvp4/fsGED73//+znzzDN53/vex2233cZpp50245ukPde55JJLWLlyJa961av4\n+te/PmP7wMAAd999N2984xs55ZRTuOqqq3juuedmXGdgYIChoSH+4R/+gYGBAQYGBrj99tsX9Pcj\nhBBCiNlFUcSu8SpbRyfYXtmJp9RY0mvRW4gRt7Q5j9VUhWzKYElvnM68yrg9wo6pYf6wu0S16b5E\n7+DwOj7j+zGgWCxyww03sHTpUj7+8Y/zH//xHzz88MPccccdXHTRRbzrXe/CMAy+8pWvkM1m+cIX\nvsDb3vY2HnvsMRKJBKVSiTVr1nDzzTdTKBTYuHEjt956K/39/dMPFH75y1/m3nvv5Y477mD58uXs\n2LGDwcHBA45tfzOqf/3Xf8373/9+Vq1axe9+97vpJyw/+MEPsnnzZv71X/+Vvr4+7r//fq655hoe\ne+wxent7URSFjo4OvvKVr/CmN72Ja6+9lnvuuYc3vvGNfOhDH6JQKPDVr36Vz3zmM3z2s59l3bp1\n/OY3v+GDH/wgHR0dvO51r5sewxe/+EX+7u/+jkwmw4033sinPvUp7rrrLgAeeughgiDgj/7oj3jD\nG97ADTfcAEAicXz/2EUIIYQ4FkRRxM7xGsPlSYqtcTo7DNKJ2EGdKxnXiVkaE1MNBmsOYRSxoreD\nTMI8zKM+so75INz/ji8ckfPuvvu6Qzq+UCiwfv166vU63/zmNzn//PNptVr84Ac/4LHHHuPJJ5/k\nySefpKurC2h3z7j33nt5+OGHufrqq1m/fj3r16+fPt/b3/527rrrLn7wgx9MB+HBwUF6enp45Stf\nCUB/f/+8xvbiLh973HTTTVxxxRUALFmyBIBt27bx4IMP8u1vf5tzzjkHgJtvvplvfvOb3H///dMP\nO1566aWcd955FAoFLr30UtauXUuhUGBoaIhCocDtt9/OBz7wAd7whjcA7dnfjRs3cvfdd88Iwtde\ney0bNmwA4G1vexv//M//PL0tn88D7Sc/k8kknZ2d83q/QgghhDiw4VKDkUqJoj3Goi6LmDn3DPCB\naKpCT8FiouwyVNuNqiic2pcnbh3z8XLa8TPSY0wsFpv+fc/XlmVh2zZPPfUUURRx4YUXzjjGtm12\n7doFtHsx/+M//iPf//73GRsbw/M8bNue7sQB8Md//Mfcd999XHTRRVxwwQVs2LCBq666CtM8uO+2\n9gTQvT311FMA/Mmf/Mk+Y925c+e83u/ExARjY2N87nOf4x/+4R+mj/E8j8WLF88474oVK6a/zuVy\nlMvlg3ovQgghhJi/estldKrGWHOMvs5DD8F768yZjEcOo/UxYkWDU/tzx83zPsd8ED7UmduX2p7Z\n2Ewmw0MPPbTP9lwuB7RniB9//HE+/vGPs2LFCjRN433vex9hGE7ve+655/Lzn/+cxx9/nJ/85Cd8\n7GMf42tf+xr33nsvMHsJxN7Hv1gmk9nvtgceeGCfXtDpdHqOd9q29+zzf/2v/3V69noPXdfn/LMQ\nQgghjqwwjBgs1hlvjZFLa8QOUAt8MDqzJoNjDSabFTJlk96O2deXONZIKjkCzjzzTKrVKpLine truncated
"png": "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\n0aJFXHnllWPus2LFChYsWMB73vMefvazn4063tnZyS233MJpp53GwoULOfnkk3nttddG3aezs5MN\nGzbwrW99i87OTjo7O7nuuuum9PsjhBBCiC1cP6BYs6n6FTKJXb+ILZvUKTgFBsv1XX6v6dq7mr3t\nQfr7+7nggguYO3cuV111FbfffjsPPPAA119/Pccffzxnn302hmFw4403ks1m+cEPfsAnPvEJHn74\nYRKJBENDQxxxxBFceuml5PN5Vq5cyRVXXMGsWbNGFhT++Mc/5o477uD6669n3rx5vPnmm9vszrG1\nbc2ofvGLX+Tiiy9m8eLFPPfccyMrLC+77DJefvllvve979HR0cFdd93FWWedxcMPP8yMGTNQFIWm\npiZuvPFGTj/9dM455xxuvfVWTjvtND7/+c+Tz+e5+eab+ad/+ie+/vWvs2zZMp555hkuu+wympqa\nOOmkk0bG8MMf/pB//ud/JpPJcOGFF/LlL3+Zm266CYD77ruPIAj40Ic+xKmnnsoFF1wAQCKxa2uM\nhBBCiH1ZueZSdiskLGWXzgZvlkro9BdqVGwHxwswDW2X33NH7fFBeNZf/2CXXLfrlvOmdX4+n+fI\nI4+kUqlw9913c/TRR1Ov13nwwQd5+OGHeeqpp3jqqadobW0FGt0z7rjjDh544AE+8pGPcOSRR3Lk\nkUeOXO+Tn/wkN910Ew8++OBIEF6/fj3t7e0cd9xxAJMuP3lrl4/NLrroIk488UQA5syZA8Abb7zB\nvffey69+9SsOO+wwAC699FLuvvtu7rrrrpHFju973/t417veRT6f533vex9Lly4ln8+zYcMG8vk8\n1113HZdccsnIosnOzk5WrlzJLbfcMioIn3POORx11FEAfOITn+A73/nOyLHm5magsfIzmUzS0tIy\nqfcrhBBCiG2rOz5O4GAldjyQ9g45/PyBjZx32hys2PavY8ZUnMCm7voShPdFlmWN/P/mr03TxLZt\nVq9eTRRFHHvssaPOsW2bdevWAVCv1/m3f/s37r//fnp7e/E8D9u2WbJkycjrP/rRj3LnnXdy/PHH\n8xd/8RccddRRnHzyycRiO9buZHMA3drq1asBxpS32LbN2rVrJ/V+BwYG6O3t5Rvf+MaoRW6e5zF7\n9uxR150/f/7I17lcjkKhsEPvRQghhBCTU9sUhDPG1LdA9vyQu//Qw09/24XjhuTSBmf/ZeLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc16dbcb7b8>"
"<matplotlib.figure.Figure at 0x7fa03c3f2048>"
]
},
{
@@ -830,7 +829,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
"print(np.diag(f1.P))"
"print(np.diag(tracker.P))"
],
"language": "python",
"metadata": {},
@@ -856,7 +855,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
"c = f1.P[0:2,0:2]\n",
"c = tracker.P[0:2,0:2]\n",
"print(c)\n",
"stats.plot_covariance_ellipse((0,0), cov=c, facecolor='g', alpha=0.2)"
],
@@ -874,9 +873,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAssAAAF2CAYAAACYtNXtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3WuMXPddP/73ucy5z312Zi/eddz0l4uIUJKqLtBg142K\nZIlWkIoCoSZtIFwaURTRCqkiPEiittCIFFUR+oVfpbQRoEpA1QKtpbQB+0HUpKIExL9OnNixvbfZ\ny9znzLmf83+wsRs3Xnt3x96ZnXm/JCu7M3N2P9ueM+c93/M536/w2muvJSAiIiIioncQB10AERER\nEdGwYlgmIiIiItoEwzIRERER0SYYlomIiIiINsGwTERERES0CYZlIiIiIqJNMCwTEREREW2i77Bc\nrVZx7Ngx3Hnnnbjvvvvw+uuvb2m7F198ER/5yEdw11134UMf+hBeffXVfkshIiIiIrqu+g7Ljz76\nKG699Va8/PLLOHr0KB555JFrbrOwsIA/+qM/wh/+4R/iP//zP/EP//APKJfL/ZZCRERERHRd9RWW\nu90uXnzxRTz00ENQFAUPPPAAFhcXcfr06atu981vfhOHDh3C0aNHIYoiSqUSCoVCP6UQEREREV13\nfYXl8+fPQ1EUGIaB+++/HwsLC5ibm8PZs2evut1rr72GTCaDj33sY3j/+9+PP/mTP0G32+2nFCIi\nIiKi666vsOw4DkzThG3bOHPmDNrtNkzThOM4V92u0+ng+PHjeOyxx/C9730Ptm3jr//6r/sphYiI\niIjoupP72VjXddi2jcnJSbz00ksAANu2YRjGNbd7//vfj9tuuw0A8LGPfeyKYXl+fr6f8oiIiIiI\ntmx2dvYdj/UVlvfv3w/P87CysoJKpQLf93HhwgUcOHDgqtvNzc1hfX390vdJkiBJkiu+9vbbb++n\nxKFVLBbxz//8zzh8+PCgS6Ehx32FtoP7C20V9xXajnHYX06dOnXFx/tqw7AsC/fccw+eeeYZeJ6H\nZ599FjMzM7jlllsuvebYsWN48sknL9vuQx/6EE6cOIHTp0/D8zz84z/+I37u536un1KIiIiIiK67\nvqeOe+yxx3D69GkcPHgQx48fx1NPPXXZ84uLi6jVapc99t73vhcPP/wwHnzwQRw6dAiGYeDTn/50\nv6UQEREREV1XfbVhAMDk5CSee+65TZ9/4YUXrvj4gw8+iAcffLDfX7+njWqLCV1/3FdoO7i/0FZx\n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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc16db65550>"
"<matplotlib.figure.Figure at 0x7fa034824c18>"
]
}
],
@@ -953,9 +952,9 @@
" dt = 0.1\n",
" kf = KalmanFilter(dim_x=2, dim_z=2)\n",
"\n",
" kf.F = array ([[1., dt], [0., 1.]])\n",
" kf.H = array ([[1., 0.], [1., 0.]])\n",
" kf.x = array ([[0.], [1.]])\n",
" kf.F = array([[1., dt], [0., 1.]])\n",
" kf.H = array([[1., 0.], [1., 0.]])\n",
" kf.x = array([[0.], [1.]])\n",
" kf.Q *= array([[(dt**3)/3, (dt**2)/2],\n",
" [(dt**2)/2, dt ]]) * 0.02\n",
" kf.P *= 100\n",
@@ -1007,9 +1006,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAs0AAAF2CAYAAACVqqWqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VVWi/vHv2if1pCekASGBhBIIJVSpkU7sOipYwC6W\nmXGKd2b0+tOZ0fHqzL3OOKPTHBU7dlEUpEgRUIo0aYEkBEJvIZB+ztn798eBYCQQShAI7+d5fJ6z\n9157nbVgGV42a69l8vLyHERERERE5Jiss90AEREREZFznUKziIiIiEgDFJpFRERERBqg0CwiIiIi\n0gCFZhERERGRBig0i4iIiIg0QKFZRERERKQBxw3NM2bMYPTo0XTu3JmHHnqo9vwLL7zAyJEj6d69\nO5dffjkzZ86sc9+rr75K//796d27N88888yZabmIiIiIyA8k4HgXIyMjufPOO1mwYAFVVVW15wMD\nA3nuuedo27YtS5cu5a677uKjjz4iJSWFFStW8Pzzz/Pmm28SHh7OjTfeSGZmJrm5uWe8MyIiIiIi\nZ8JxnzT37t2b4cOHExUVVef8rbfeStu2bQHo3r07KSkprFmzBoCpU6cyYsQI0tPTSUxM5LrrruOz\nzz47Q80XERERETnzjvuk+TDHOfZO26WlpRQVFdWG6KKiInr16sUrr7zCjh076NGjB5MnT26c1oqI\niIiInAUn9CKgMeaY1x599FGuvvpq2rRpA0BlZSVut5vi4mI2bdpEWFgYFRUVjdNaEREREZGz4LSe\nND/zzDMcOHCA//u//6s9FxoaSkVFBY888ggA06dPx+1213t/cXHxybZXREREROSkpaSknNb9JxSa\n63vSPGHCBObPn89rr71GQMCRatLS0igsLKw9zs/Pr30KXZ/MzMyTaa80cXFxcXzwwQfk5OSc7abI\nOUJjQuqjcSH10biQ+sTFxTFv3rzTrue40zNs26a6uhqfz4fP56Ompgav18uHH37IxIkTeeGFF456\nipybm8v06dPJz89n586dvP/++1o5Q0RERETOa8d90vzRRx/x8MMP1x5//PHH/PjHP+bDDz9k9+7d\nDB06tPbavffey913302XLl24//77GTduHF6vlzFjxig0i4iIiMh5zeTl5R17aYwzrLi4WNMzpI64\nuDjWrl1LQkLC2W6KnCM0JqQ+GhdSH40Lqc/h6RmnO6dZ22jLOUd/kZLv05iQ+mhcSH00LuRMUWgW\nEREREWmAQrOIiIiISAMUmkVEREREGqDQLCIiIiLSAIVmEREREZEGKDSLiIiIiDRAoVlEREREpAEK\nzSIiIiIiDVBoFhERERFpgEKziIiIiEgDFJpFRERERBqg0CwiIiIi0gCFZhERERGRBig0i4iIiIg0\nQKFZRERERKQBCs0iIiIiIg1QaBYRERERaYBCs4iIiIhIAxSaRUREREQaoNAsIiIiItIAhWYRERER\nkQYoNIuIiIiINEChWURERESkAQrNIiIiIiINUGgWEREREWmAQrOIiIiISAMUmkVEREREGqDQLCIi\nIiLSAIVmEREREZEGKDSLiIiIiDRAoVlEREREpAEKzSIiIiIiDVBoFhERERFpgEKziIiIiEgDFJpF\nRERERBqg0CwiIiIi0gCFZhERERGRBig0i4iIiIg0QKFZRERERKQBCs0iIiIiIg1QaBYRERERaYBC\ns4iIiIhIAxSaRUREREQaoNAsIiIiItIAhWYRERERkQYcNzTPmDGD0aNH07lzZx566KHa8x6Ph4cf\nfpju3bszePBgpkyZUue+V199lf79+9O7d2+eeeaZM9NyEREREZEfSMDxLkZGRnLnnXeyYMECqqqq\nas9PmDCB/Px85s6dy5o1axg/fjzZ2dkkJSWxYsUKnn/+ed58803Cw8O58cYbyczMJDc394x3RkRE\nRETkTDjuk+bevXszfPhwoqKi6pyfOnUqY8eOJTw8nN69e5Odnc306dNrr40YMYL09HQSExO57rrr\n+Oyzz85cD0REREREzrDjPmk+zHGcOsdFRUW0bt2aBx98kCFDhpCens7GjRtrr/Xq1YtXXnmFHTt2\n0KNHDyZPntz4LRcRERER+YGcUGg2xtQ5rqysxO12s2HDBrKysggLC2PHjh11ruXn57Nt2zYGDRpE\nRUXFMeuOi4s7jeZLUxMYGAhoXMgRGhNSH40LqY/Gxdnj3VZM5afvEH7HzzHWubXOxOFxcbpO6Ulz\naGgolZWVTJo0CYAnnniCsLCw2msVFRU88sgjAEyfPh23233Muh9//PHaz4MGDSInJ+fkeiAiIiIi\nZ0XVnM8JzOpO6dMP4b70unMmMM+ZM4e5c+cC4HK5GDRo0GnXeUpPmtPS0igoKKBTp04AFBQUMHTo\n0NprhYWFtWXz8/Np06bNMeu+77776hzv3bv3xFouTdLhpwMaB3KYxoTUR+NC6qNx8cNybBtnxWKc\n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 truncated
"png": "iVBORw0KGgoAAAANSUhEUgAAAs0AAAF2CAYAAACVqqWqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4VdW9//H32ifzPJCQkIRACAkJYUYwTJFJQUFABZxw\ntrZ6ndreDlx/WmvtVXtbC23tpEgtKgoV54FBAQGZBEQIJMyEeQqBDCTnnL1/fxwIRgIBEqbweT2P\nz3P2tM5asCUfNmt/l3Ecx0FERERERE7KutAdEBERERG52Ck0i4iIiIjUQaFZRERERKQOCs0iIiIi\nInVQaBYRERERqYNCs4iIiIhIHRSaRURERETqcMrQ/N5775Gbm0tQUBB333139f4XXniBjIwMIiIi\naNeuHe+//36N68aPH09CQgIxMTGMHTv23PRcREREROQ88TvVwaioKH72s58xc+ZMysvLq/f7+/sz\nbdo02rZty4IFCxg8eDArVqygZcuWLFq0iKeffpp58+YRGRlJr1696NSpEyNHjjzngxERERERORdO\n+aQ5Ly+PESNGEBMTU2P/448/Ttu2bQHo0aMHaWlpLFu2DICpU6dy4403kpWVRbNmzbjvvvuYPHny\nOeq+iIiIiMi5d1pzmk+10nZxcTGFhYXk5OQAUFhYSGZmJuPGjeOnP/0p2dnZFBQUNExvRUREREQu\ngNMKzcaYkx574IEHuOuuu8jMzASgrKyMsLAwNm7cyPr16wkPD6e0tLRheisiIiIicgGcck7zMSd7\n0jx27FiKi4t54403qveFhoZSWlrKuHHjAJg2bRphYWG1Xj9r1qwz7a+IiIiIyBnr379/va4/rdBc\n25PmF198kRkzZjB79mz8/I43k5GRwdq1a6u38/PzadOmzUnbzsrKOpP+SiMXGxvLO++8Q15e3oXu\nilwkdE9IbXRfSG10X0htYmNjmTdvXr3bOeX0DNu2OXLkCB6PB6/XS2VlJR6Ph3/961/8/e9/5+OP\nPyY0NLTGNSNHjuSdd94hPz+f7du3M2HCBEaPHl3vjoqIiIiIXCinDM2vvfYaISEhPP/880yaNIng\n4GCeffZZnn76abZs2UJaWhrh4eGEh4fz3HPPAdCtWzeeeuop+vbtS7t27Rg9erTKzYmIiIjIJc04\npyqNcY7NmjVL0zOkhtjYWNasWUN8fPyF7opcJHRPSG10X0htdF9IbY5Nz6jvnGYtoy0XHf1FSr5P\n94TURveF1Eb3hZwrCs0iIiIiInVQaBYRERERqYNCs4iIiIhIHRSaRURERETqoNAsIiIiIlIHhWYR\nERERkTooNIuIiIiI1EGhWURERESkDgrNIiIiIiJ1UGgWEREREamDQrOIiIiISB0UmkVERERE6qDQ\nLCIiIiJSB4VmEREREZE6KDSLiIiIiNRBoVlEREREpA4KzSIiIiIidVBoFhERERGpg0KziIiIiEgd\nFJpFREREROqg0CwiIiIiUgeFZhERERGROig0i4iIiIjUQaFZRERERKQOCs0iIiIiInVQaBYRERER\nqYNCs4iIiIhIHRSaRURERETqoNAsIiIiIlIHhWYRERERkTooNIuIiIiI1EGhWURERESkDgrNIiIi\nIiJ1UGgWEREREamDQrOIiIiISB0UmkVERERE6qDQLCIiIiJSB4VmEREREZE6KDSLiIiIiNRBoVlE\nREREpA4KzSIiIiIidVBoFhERERGpg0KziIiIiEgdFJpFREREROqg0CwiIiIiUodThub33nuP3Nxc\ngoKCuPvuu6v3u91u7r33XiIiIkhNTWXKlCk1rhs/fjwJCQnExMQwduzYc9NzEREREZHzxO9UB6Oi\novjZz37GzJkzKS8vr97/4osvsnr1arZt28by5csZMmQIubm5JCcns2jRIp5++mnmzZtHZGQkvXr1\nolOnTowcOfKcD0ZERERE5Fw45ZPmvLw8RowYQUxMTI39U6ZM4ZFHHiEiIoK8vDxyc3OZNm0aAFOn\nTuXGG28kKyuLZs2acd999zF58uRzNwIRERERkXPslE+aj3Ecp8Z2YWEhmZmZ3H777QwdOpTs7GwK\nCgqqj/Xp04dx48ZRVFREr169eOONNxq+5yIiIiIi58lphWZjTI3tsrIywsLCWLVqFV26dCE8PJyi\noqIax/Lz89myZQuDBw+mtLT0pG3HxsbWo/vS2Pj7+wO6L+Q43RNSG90XUhvdFxeOZ0cRFR+9Tdi9\nj2Osi6vOxLH7or7O6klzaGgoZWVlrFixAoBHH32U8PDw6mOlpaWMGzcOgGnTphEWFnbStp955pnq\nz3369CEvL+/MRiAiIiIiF8SROZ/hn9OZkud/Sch1Iy+awDxnzhzmzp0LgMvlok+fPvVu86yeNGdk\nZLBmzRo6d+4MQH5+PsOGDas+tnbt2upz8/PzadOmzUnbfvDBB2ts79+///R6Lo3SsacDug/kGN0T\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc166081978>"
"<matplotlib.figure.Figure at 0x7fa0347fd0b8>"
]
}
],
@@ -1126,9 +1125,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc1660760f0>"
"<matplotlib.figure.Figure at 0x7fa0347d9cc0>"
]
}
],
@@ -1227,12 +1226,12 @@
" self.noise = noise\n",
" \n",
" \n",
" def step (self, dt):\n",
" self.x = rk4 (self.x, self.t, dt, fx)\n",
" self.y = rk4 (self.y, self.t, dt, fy)\n",
" def step(self, dt):\n",
" self.x = rk4(self.x, self.t, dt, fx)\n",
" self.y = rk4(self.y, self.t, dt, fy)\n",
" self.t += dt \n",
" return (self.x +random.randn()*self.noise[0], \n",
" self.y+random.randn()*self.noise[1])"
" return (self.x + random.randn()*self.noise[0], \n",
" self.y + random.randn()*self.noise[1])"
],
"language": "python",
"metadata": {},
@@ -1280,17 +1279,17 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc166065cf8>"
"<matplotlib.figure.Figure at 0x7fa03c050668>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc166065208>"
"<matplotlib.figure.Figure at 0x7fa03c050748>"
]
}
],
@@ -1407,27 +1406,26 @@
"\n",
" g = 9.8 # gravitational constant\n",
"\n",
" f1 = KalmanFilter(dim_x=5, dim_z=2)\n",
" kf = KalmanFilter(dim_x=5, dim_z=2)\n",
"\n",
"\n",
" ay = .5*dt**2\n",
"\n",
" f1.F = np.array ([[1, dt, 0, 0, 0], # x = x0+dx*dt\n",
" [0, 1, 0, 0, 0], # dx = dx\n",
" [0, 0, 1, dt, ay], # y = y0 +dy*dt+1/2*g*dt^2\n",
" [0, 0, 0, 1, dt], # dy = dy0 + ddy*dt \n",
" [0, 0, 0, 0, 1]]) # ddy = -g.\n",
" kf.F = np.array([[1, dt, 0, 0, 0], # x = x0+dx*dt\n",
" [0, 1, 0, 0, 0], # dx = dx\n",
" [0, 0, 1, dt, ay], # y = y0 +dy*dt+1/2*g*dt^2\n",
" [0, 0, 0, 1, dt], # dy = dy0 + ddy*dt \n",
" [0, 0, 0, 0, 1]]) # ddy = -g.\n",
" \n",
" # compute velocity in x and y\n",
" omega = radians(omega)\n",
" vx = cos(omega) * v0\n",
" vy = sin(omega) * v0\n",
" \n",
" f1.Q *= 0.\n",
"\n",
" f1.x = np.array([[x, vx, y, vy, -g]]).T\n",
" kf.Q *= 0.\n",
" kf.x = np.array([[x, vx, y, vy, -g]]).T\n",
" \n",
" return f1"
" return kf"
],
"language": "python",
"metadata": {},
@@ -1453,19 +1451,19 @@
"\n",
"ball = BallTrajectory2D(x0=x, y0=y, theta_deg=theta, \n",
" velocity=v0, noise=[0,0])\n",
"f1 = ball_kf(x,y,theta,v0,dt)\n",
"kf = ball_kf(x, y, theta, v0, dt)\n",
"t = 0\n",
"while f1.x[2,0] > 0:\n",
"while kf.x[2, 0] > 0:\n",
" t += dt\n",
" f1.predict() \n",
" x,y = ball.step(dt)\n",
" p1 = plt.scatter(f1.x[0,0], f1.x[2,0], \n",
" kf.predict() \n",
" x, y = ball.step(dt)\n",
" p1 = plt.scatter(kf.x[0, 0], kf.x[2, 0], \n",
" color='black', marker='+', s=75)\n",
" p2 = plt.scatter(x, y, \n",
" color='green', marker='o', s=75, \n",
" alpha=0.5)\n",
"\n",
"plt.legend([p1,p2], ['Kalman filter', 'idealized'])\n",
"plt.legend([p1, p2], ['Kalman filter', 'idealized'])\n",
"plt.show()"
],
"language": "python",
@@ -1474,9 +1472,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc165ecdc18>"
"<matplotlib.figure.Figure at 0x7fa0346450f0>"
]
}
],
@@ -1595,28 +1593,28 @@
"def ball_kf(x, y, omega, v0, dt, r=0.5, q=0.):\n",
"\n",
" g = 9.8 # gravitational constant\n",
" f1 = KalmanFilter(dim_x=5, dim_z=2)\n",
" kf = KalmanFilter(dim_x=5, dim_z=2)\n",
"\n",
" ay = .5*dt**2\n",
" f1.F = np.array ([[1, dt, 0, 0, 0], # x = x0+dx*dt\n",
" kf.F = np.array ([[1, dt, 0, 0, 0], # x = x0+dx*dt\n",
" [0, 1, 0, 0, 0], # dx = dx\n",
" [0, 0, 1, dt, ay], # y = y0 +dy*dt+1/2*g*dt^2\n",
" [0, 0, 0, 1, dt], # dy = dy0 + ddy*dt \n",
" [0, 0, 0, 0, 1]]) # ddy = -g.\n",
"\n",
" f1.H = np.array([[1, 0, 0, 0, 0],\n",
" kf.H = np.array([[1, 0, 0, 0, 0],\n",
" [0, 0, 1, 0, 0]])\n",
" \n",
" f1.R *= r\n",
" f1.Q *= q\n",
" kf.R *= r\n",
" kf.Q *= q\n",
"\n",
" omega = radians(omega)\n",
" vx = cos(omega) * v0\n",
" vy = sin(omega) * v0\n",
"\n",
" f1.x = np.array([[x, vx, y, vy, -9.8]]).T\n",
" kf.x = np.array([[x, vx, y, vy, -9.8]]).T\n",
" \n",
" return f1"
" return kf"
],
"language": "python",
"metadata": {},
@@ -1642,26 +1640,26 @@
"\n",
"ball = BallTrajectory2D(x0=x, y0=y, theta_deg=theta, velocity=v0, \n",
" noise=[.2,.2])\n",
"f1 = ball_kf(x,y,theta,v0,dt)\n",
"kf = ball_kf(x,y,theta,v0,dt)\n",
"\n",
"t = 0\n",
"xs = []\n",
"ys = []\n",
"while f1.x[2,0] > 0:\n",
"while kf.x[2,0] > 0:\n",
" t += dt\n",
" x,y = ball.step(dt)\n",
" z = np.array([[x,y]]).T\n",
" z = np.array([[x, y]]).T\n",
"\n",
" f1.update(z)\n",
" xs.append(f1.x[0,0])\n",
" ys.append(f1.x[2,0])\n",
" kf.update(z)\n",
" xs.append(kf.x[0,0])\n",
" ys.append(kf.x[2,0])\n",
" \n",
" f1.predict() \n",
" kf.predict() \n",
" \n",
" p1 = plt.scatter(x, y, color='green', marker='.', s=75, alpha=0.5)\n",
"\n",
"p2, = plt.plot (xs, ys,lw=2)\n",
"plt.legend([p2,p1], ['Kalman filter', 'Measurements'])\n",
"plt.legend([p2, p1], ['Kalman filter', 'Measurements'])\n",
"plt.show()"
],
"language": "python",
@@ -1670,13 +1668,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAs4AAAF2CAYAAAB+nR6pAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xlc1HX+wPHXzDADDDeDgAoeoOaBiKDgCXnfR7fV5mpl\nmEerHZZua7m22uaqWVnr8SvTTWvzvhOPFcVbvNAkASVQAblvBmbm9wcLK4l5AA7H+/l49Ahmvt/P\nvOfjAO/5zPvz/iqio6NNCCGEEEIIIX6X0twBCCGEEEIIURdI4iyEEEIIIcR9kMRZCCGEEEKI+yCJ\nsxBCCCGEEPdBEmchhBBCCCHugyTOQgghhBBC3AdJnIUQQgghhLgP90yc9+7dy3PPPUfHjh2ZOXNm\n+e0rVqxg0KBB+Pv7M2LECPbt21fhvNWrV9OzZ08CAwNZtGhR9UcuhBBCCCHEI2RxrwPs7e159dVX\nOXLkCIWFheW3q9VqvvjiC1q3bk1kZCQTJkxg8+bNeHp6cu7cOZYuXcratWuxtbXlhRdeoF27dgwZ\nMqRGn4wQQgghhBA15Z4rzoGBgQwYMAAHB4cKt48bN47WrVsD4O/vj6enJ5cuXQJg9+7dDBw4EG9v\nb9zc3HjmmWfYuXNnDYQvhBBCCCHEo3HPFecyJtPdr8ydlZXFtWvXyhPpa9eu0bVrV7799luSkpII\nCAhg+/btVY9WCCGEEEIIM7nvzYEKheKu982ePZsnnngCLy8vAAoKCtBqtSQkJBAfH4+NjQ35+flV\nj1YIIYQQQggzqfKK86JFi8jOzmbhwoXlt1lbW5Ofn8/7778PQFhYGFqtttLzExISHiReIYQQQggh\nHoqnp2eVzr/vxLmyFedVq1YRERHBmjVrsLD431AtWrQgLi6u/PuYmJjy1ejKtGvX7n7DEHeh0+nY\nuHEjISEh5g6lXpD5rF4yn9VH5rJ6yXxWL5nP6iNzWb10Oh2HDx+u8jj3LNUwGo0UFRVhMBgwGAzo\n9XpKSkrYtGkT33//PStWrLhjNXnIkCGEhYURExNDcnIyGzZskI4aQgghhBCiTrvnivPmzZuZNWtW\n+fdbt25lypQpbNq0iVu3btGvX7/y+15//XVee+01fH19mTx5MmPHjqWkpIQxY8ZI4iyEEEIIIeq0\neybOTz75JE8++eQdt0+ZMuV3zxs7dixjx459+MjEA5OSl+ol81m9ZD6rj8xl9ZL5rF4yn9VH5rL2\nkUtu1yPyA1a9ZD6rl8xn9ZG5rF4yn9VL5rP6yFzWPpI4CyGEEEIIcR/uu6uGEEIIIcTdZGZmkpmZ\niclkoqSkxNzh1HkZGRkAMpf3yWQy4eTkhFqtrtHHkcRZCCGEEFVSdpEzR0dHM0ciGiqj0UhKSgo6\nna5Gk2cp1RBCCCFEleTm5uLg4GDuMEQDplQqcXV1LV+pr7HHqdHRhRBCCFHvKRSKSi+UJsSjpFQq\na/x1KImzEEIIIYQQ90ESZyGEEEIIIe6DJM5CCCGEEELcB0mchRBCCCGqYPbs2Xh4eODh4cHTTz9t\n7nDu2zfffENAQACenp507979jvuPHDmCh4cH169fr3B7VFRU+fOt7P76TBJnIYQQQjRYHh4e/Pjj\nj+XfFxcX8+qrr9KrVy+SkpLua4x3332XM2fOEBoaWmc2SSYnJzN79mwmT57M6dOn2bFjxx3HdO3a\nlbNnz9K4ceMKt7dr146zZ89Wes5vBQUFsWjRomqL29ykj7MQQgghBKUXG5k0aRLR0dGsX78ed3f3\n+zrPxsYGGxsbtFotJpOphqOsHvHx8ZhMJgYMGICrq2ulx6jValxcXO64XaVS4eLiQkFBwT0fp668\nkbhfsuIshBBCiAavLGm+fPkyP/74Y4Wkec6cOYSEhODt7Y2vry9vv/022dnZ9z32Dz/8wIABAxg9\nejS+vr6sXbuW7t27ExgYyOXLlwHQ6/W8+eab9OjRAy8vLwICAvjrX/+KXq8vH2fhwoU8/fTTfPbZ\nZ3Tq1AlfX18WLFjwQM+zrPziySefBKB79+54eHhUKNU4ffp0lUsxgoKC8PDwIDExkUWLFpWPtXjx\n4grHLV26lO7du+Pt7c3AgQPZs2fPHWN5eHiwevVq3nnnHdq1a0fbtm3vGOdRkRVnIYQQQtS4pi+u\nqJFxr383ocpjGAwGpkyZws8//3xH0gxQWFjI3LlzadmyJUlJSbzzzjvMnDmTpUuX3vdjJCYmsmHD\nBj7//HPmzp3L+vXr+fLLL1m9ejXz5s2juLgYjUbDokWL8PT0JDY2lj/96U+o1WpmzpxZPs65c+fw\n8/Njy5Yt7N69m48++oj+/fvTuXPn+4qjrPzi5MmTTJgwgZ07d9KkSROUyv+tpXbq1KnCMQ9j165d\nGAwGhg4dyqhRo5g4cSIAWq22/Jj58+ezceNGPv74Y9q0acOhQ4d47bXX2LZtGx07dqww3tKlS3nu\nuefYtm0bubm5xMfHP1RcVSWJsxBCCCEatAULFpCcnMzgwYMrLc+YP39++deenp6MHTuWTz755IEe\nw9vbm/bt29OtWzcSExPp0KEDQUFBhIWFAaXlHh9//HH58U2bNmX06NHs27evQuJsb2/Pn//8ZxQK\nBRMnTmTJkiWcO3fuvhPnsvKLsis96nS6O8oxLCwsKhzzMJydnYHSsg4bG5s7HiMvL4+VK1eyZMkS\n+vXrB8ALL7zAjh07WLt2bYU5B/D19eXNN98s/97Pz++hY6sKSZyFEEIIUeOqY2W4ptjY2PD1118z\nYcIE1q1bx/PPP1/h/l27drFixQquXbtGbm4uBoOB4uLiB3oMKyur8v9bWloCYGlpSWFhYfkx3333\nHWvXriUxMZGCggKKi4tp0qRJhXGaNWtWoW7YwcGhxi8zXRN++eUXioqKmDZtWoWE+PbSlNsFBQU9\nqtB+lyTOQgghhGjQpkyZwsCBA5kyZQoffPAB3bp1o2XLlgBERkYyadIk3n33XYKDg7GxsWHTpk38\n4x//qJbHLttMuG3bNubMmcOcOXPw9/fHysqKL7/8koMHD1Y4XqVSVcvj1hbLly/H29u7wm1lbzJu\nV5XV7+okibMQQgghGrSyFdzp06ezd+9epk6dypYtW1CpVJw4cYK2bduW1+gC3Lhxo9JuETY2NhVW\nkB/E8ePHCQkJqbDanZCQUKu7UtjY2AD8bncNtVpd6ep869atsbS0JDExkb59+9ZYjNVNumoIIYQQ\nQlBa27tkyRIuXbpU3nu4VatWXLlyhbCwMOLj41m1ahU7d+6stO2cn58fFy9eJDw8nJSUFPLy8u77\nsVu1asXJkyc5duwYcXFxLF68mNOnT9+zvV1NtL/LyMggJSWFzMxMAFJTU0lJSSEnJ6fCcc7Oznh6\nerJq1Spu3LhBamrqHWN5eXkRHh7OzZs3KSwsxGAwAGBra8srr7zC3//+d/79739z7do1Tp8+zYIF\nC9i2bVu1P6fqIomzEELUIXqDnhPXTxCZEoneUHktoBDi4bVt25a3336bpUuXcvLkSfr3709oaCgz\nZsygf//+REREMG3atEpXgrt168bEiROZPHky/v7+5a3iFApF+fF3+/oPf/gDgwYN4tVXX2XYsGHc\nuHGDl19+ucLj3H787bc9rLudO2HCBPz9/XnttddQKBQMGzYMf39/PvjggzuOXbJkCREREQQFBRES\nEnLH/e+99x5KpZLg4GBatWrFZ599Vn7fzJkzmTp1Kp9//jl9+vTh5Zdf5ueff8bLy+uhn1NNU0RH\nR5u1U3dCQgLt2rUzZwj1gk6nAyAtLc3MkdQPMp/VS+bz3vQGPVFpUQD46HzQqDSVHrM6ZjXpBekU\nFhbiZOlEqG8oGpXmrudXdvv9PFZDIa/N6nHr1i0aNWpk7jCEuOtrUafTcfjwYTw9Pas0vtQ4CyHE\nI3S3RHbZ+WVkFJXujI+4HkGobyhAhWOj0qJIL0jHVmOLyqAioyiDqLQofHQ+dz3/t7eP7zCeby5+\nc8exklALIcS9SeIshBCPyN0S5AupF0hMy0KfZ09hoYJf8gu5FRPGldR4svKL0BcpMBafwNLkwM0s\nO/RFKgoL7TAabVmtPINCcYYSowaFwh2FwoRSZeJrzTrUFgoKjCrUFq5oNCbUlsUc2PcjhYoS7LRO\naLUmEqzz2Kk6SbCXH99d+fqeybsk00KIhkwSZyGEqKL7LYc4m3KB2Bs55GY4kJamIjXdyA9r/83N\n1CIK9W63jajlADcA9X//K5NLxV/bCoox/vdrZfltAPl5ZfXPt59vQRwlgO1tt1mzc8sl4BIajQY7\nO1ccHY3YOhSR8+s+slSxKG0ysLY2STIthGjwJHEWQogqqGwVeXyH8aw49w0x13O5lawmO/04xhxX\nohMzKDH8tvautI2TtbUJO/tirLVGbK3VNHN05WZRPLbWFlhamsCikJCWgQS37UpS4VWMJfn4NGqP\nWqlBX6Lnm4vfkFmUidGkwE7twHOtXkBfYmTtpR/IKMhBX6TAwmiHv1NP9l89QmZeEQX5SgrzLVEW\nOXEjPQe9XklaGqSlqQA15yITAUvAHa3WiIurnqvnd2O0TcDaOQNra6OUegghGhRJnIUQogqi0qLI\nKMrAVGRLYqKKiOsG1q37gYSblhiNtzfxTwfA0cGIo06Ps66Ypq6WvNxlNG2auqC1UlRIOqFifbKT\nlRMvdexBY9fGQLPfbGbT8KfA0EqT1r80fu2O28ca2t9xW1FJEUtOLCchNYesTAuKcm1R5Dfi5+sp\nZGWoyc9X8us1K369lgxoADfs7Y24uheReXU/wzt1IjxzPVnFUjsthKi/JHEWQohK3KtLRaHeSN4t\nHZtPJRB+wYX0tNtLIoyAAp3OgLu7AUeXAkb4BjLatxuWlncvc/B39a8QQ6hv5clwZTQqzRLine truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc16dc0b7f0>"
"<matplotlib.figure.Figure at 0x7fa0346ad2e8>"
]
}
],
"prompt_number": 22
"prompt_number": 23
},
{
"cell_type": "markdown",
@@ -1811,13 +1809,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "iVBORw0KGgoAAAANSUhEUgAAAsYAAAF2CAYAAABtSl5dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt80/Xd//9nWkIDpbRNWlQoUFDS0lXKqWUdXgUPk10b\nngaCbOgUiG4MEd0UXRmCvV0q4mFjTH+uQxlfxyVCRUCxUGHCxRQ8cHBAoWxIrQJSElAohx6S3x81\ngUJLD/mkadrH/XbzdjPpp5+8eLXQZ995H0wej8cjAAAAoI0LC3YBAAAAQEtAMAYAAABEMAYAAAAk\nEYwBAAAASQRjAAAAQBLBGAAAAJBEMAYAAAAkNTAYjx8/XldccYWio6OVlpamlStXSpJmzZols9ms\nqKgoRUVFqXfv3gEtFgAAAAgUU0MO+Pjss8+UlJSkiIgIFRQUaOTIkXK5XJo7d67279+vRYsWNUet\nAAAAQMC0a8hF/fr1kyR5PB6Vl5erU6dOMplMvucAAACAUNfgOcaTJ09Whw4dNH78eK1atUodO3aU\nyWTSqlWrFBcXpwEDBujtt98OZK0AAABAwDRoKoVXZWWlXn75ZT333HPavXu3Dhw4oC5duig6Olor\nV67UnXfeqa1bt8putweyZgAAAMBwjQrGXn379tWzzz6rn/zkJzWeHzlypEaMGKH777/f99y6dev8\nrxIAAABogOuvv77Jn9ugOcYXamyW7tu3b1NeBhew2Wx68803NWzYsGCX0irQT+PQS2PRT2PRT+PQ\nS2PRT2PZbDZt2rTJr3vUO8f466+/1oIFC/Ttt9/6plIcOXJEmZmZWr58uY4fPy6326133nlHGzZs\n0IgRI/wqCAAAAAiGekeMw8PDtXjxYj366KMqLy9XSkqKVq5cKavVqtdff1333HOPqqqq1KdPHy1Z\nsoT5xQAAAAhJ9QbjuLi4OucJL1myxPCCcGlMSzEW/TQOvTQW/TQW/TQOvTQW/WxZOBI6xPAXyFj0\n0zj00lj001j00zj00lj0s2UhGAMAAABq4q4UAAAAgVJRUaFjx475TtltrY4dOyap+pwI1M/j8Sg2\nNlZmszlgr0EwBgAALUZFRYWcTqe6dOmisDDe2MY5brdbR44ckc1mC1g45jsOAAC0GMeOHSMUo1Zh\nYWHq0qWLb6Q9IK8RsDsDAAA0kslkIhSjTmFhYQGdYsN3HgAAACCCMQAAACCJYAwAAABIIhgDAAC0\nWqNHj9ZDDz1kyL0++OADJSQk6KuvvjLkfi0R27UBAAC0UgsWLFB4eHiwywgZBGMAANDq7NsXrhdf\n7CSzWfrtb0+oSxd3sEsKiujo6GCXEFKYSgEAAELGqVMmvf9+e336qVkeT+3X/Oc/4brzTpveeCNS\nf/97pMaMscnlCvwpetOmTdPUqVM1c+ZMpaSkaNCgQVq0aFGNaw4dOqSJEycqKSlJSUlJcjgcOnLk\nSIPuf+bMGfXq1Uv//Oc/a/340KFDfa/385//XAkJCUpISNCDDz540bXPPfecRo8erXnz5iktLU39\n+vXT3Llza1xTUlKiMWPG6Morr9R1112nbdu2NajOUEYwBgAAIcHpDNMtt8TpzjttGjPGpnvvja01\nHL/0UieVlJx7U3zfPrOWLetQ6z137GinCRNiNWFCrD791P830t99910lJCTo3Xff1U033aSZM2fq\n8OHDvo9PmTJFhw8f1rJly7R06VKVlJRoypQpDbq3xWLR1Vdfre3bt1/0sePHj6u4uFjp6emSpJde\neknbtm3ToEGD6tz3d8eOHfr222+1YsUKTZ48WX/84x9rhN8pU6aooqJC77zzjmbOnKnc3NxWf0w3\nwRgAAISEnJwo7d5tlttt0pkzYXrvvQh9+GH7i65r3/7CtOxRh1py8X/+Ey6Hw6o1azpozZoO+uUv\nrSos9C8cJyUl6d5771XPnj31wAMPqLKyUjt37pQk7d27V1u2bNHs2bN19dVXq1+/fpo9e7Y++OAD\n/fvf/27Q/dPT033B+L333tMTTzwhSdq+fbuioqLUt29fSVLnzp0VHx9/yaOTO3furOzsbCUmJuqX\nv/yloqKitGPHDknSnj179Omnn2rmzJlKTk7W8OHDNWHCBHnqGqZvJQjGAAAgJJw6VTO2lJeHyeW6\nOMr89rcnlZxc/t0jjwYPLtftt5+66LolSzrqq6/OBeGDB9vp73/v6FeNvXv39v1/bGyspOrRXEn6\n/PPPJUnf+973fNd4/3///v0Nun96erpvVHfJkiVavHixjh075hsdbowePXrUGAGOjo72HbfsrTU5\nOdn3cW/obs1YfAcAAELCmDGntHlzezmd1bssXHVVha655uxF11mtbr35plNvvdVBEREe3XrraVks\nF98vPr5KYWEeud3ecOhRfHzTF+mZTKZad4AwcpR18ODBOnz4sA4dOqSdO3fqjjvu0MaNG/XZZ59p\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc166042208>"
"<matplotlib.figure.Figure at 0x7fa03c32db38>"
]
}
],
"prompt_number": 23
"prompt_number": 24
},
{
"cell_type": "markdown",
@@ -1859,7 +1857,7 @@
" self.noise = noise\n",
"\n",
"\n",
" def drag_force (self, velocity):\n",
" def drag_force(self, velocity):\n",
" \"\"\" Returns the force on a baseball due to air drag at\n",
" the specified velocity. Units are SI\n",
" \"\"\"\n",
@@ -1878,7 +1876,7 @@
"\n",
" # force due to air drag\n",
" v_x_wind = self.v_x - vel_wind\n",
" v = sqrt (v_x_wind**2 + self.v_y**2)\n",
" v = sqrt(v_x_wind**2 + self.v_y**2)\n",
" F = self.drag_force(v)\n",
"\n",
" # Euler's equations for velocity\n",
@@ -1891,7 +1889,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 24
"prompt_number": 25
},
{
"cell_type": "markdown",
@@ -1949,13 +1947,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc16603e978>"
"<matplotlib.figure.Figure at 0x7fa03c322fd0>"
]
}
],
"prompt_number": 25
"prompt_number": 26
},
{
"cell_type": "markdown",
@@ -2005,7 +2003,7 @@
" p1 = plt.scatter(x, y, color='green', marker='o', s=75, alpha=0.5)\n",
"\n",
" p2, = plt.plot (xs, ys,lw=2)\n",
" plt.legend([p1,p2], ['Measurements', 'Kalman filter'])\n",
" plt.legend([p1, p2], ['Measurements', 'Kalman filter'])\n",
" plt.show()\n",
" \n",
"plot_ball_with_q(0.01)\n",
@@ -2017,21 +2015,21 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc16d9f6b70>"
"<matplotlib.figure.Figure at 0x7fa034705b38>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc166012dd8>"
"<matplotlib.figure.Figure at 0x7fa03c0a0860>"
]
}
],
"prompt_number": 26
"prompt_number": 27
},
{
"cell_type": "markdown",
@@ -2055,21 +2053,21 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc16606d390>"
"<matplotlib.figure.Figure at 0x7fa03c3a9cc0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc165f6de10>"
"<matplotlib.figure.Figure at 0x7fa034680ac8>"
]
}
],
"prompt_number": 27
"prompt_number": 28
},
{
"cell_type": "markdown",