Figure 8
Figure 8
Figure 8
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this notebook, you will implement the kinematic bicycle model. The model
accepts velocity and steering rate inputs and steps through the bicycle kinematic
equations. Once the model is implemented, you will provide a set of inputs to drive
the bicycle in a figure 8 trajectory.\n",
"\n",
"The bicycle kinematics are governed by the following set of equations:\n",
"\n",
"\\begin{align*}\n",
"\\dot{x}_c &= v \\cos{(\\theta + \\beta)} \\\\\n",
"\\dot{y}_c &= v \\sin{(\\theta + \\beta)} \\\\\n",
"\\dot{\\theta} &= \\frac{v \\cos{\\beta} \\tan{\\delta}}{L} \\\\\n",
"\\dot{\\delta} &= \\omega \\\\\n",
"\\beta &= \\tan^{-1}(\\frac{l_r \\tan{\\delta}}{L})\n",
"\\end{align*}\n",
"\n",
"where the inputs are the bicycle speed $v$ and steering angle rate $\\omega$.
The input can also directly be the steering angle $\\delta$ rather than its rate in
the simplified case. The Python model will allow us both implementations.\n",
"\n",
"In order to create this model, it's a good idea to make use of Python class
objects. This allows us to store the state variables as well as make functions for
implementing the bicycle kinematics. \n",
"\n",
"The bicycle begins with zero initial conditions, has a maximum turning rate of
1.22 rad/s, a wheelbase length of 2m, and a length of 1.2m to its center of mass
from the rear axle.\n",
"\n",
"From these conditions, we initialize the Python class as follows:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from notebook_grader import BicycleSolution, grade_bicycle\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.image as mpimg\n",
"\n",
"class Bicycle():\n",
" def __init__(self):\n",
" self.xc = 0\n",
" self.yc = 0\n",
" self.theta = 0\n",
" self.delta = 0\n",
" self.beta = 0\n",
" \n",
" self.L = 2\n",
" self.lr = 1.2\n",
" self.w_max = 1.22\n",
" \n",
" self.sample_time = 0.01\n",
" \n",
" def reset(self):\n",
" self.xc = 0\n",
" self.yc = 0\n",
" self.theta = 0\n",
" self.delta = 0\n",
" self.beta = 0"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A sample time is required for numerical integration when propagating the
kinematics through time. This is set to 10 milliseconds. We also have a reset
function which sets all the state variables back to 0. \n",
"\n",
"With this sample time, implement the kinematic model using the function $\\
textit{step}$ defined in the next cell. The function should take speed + angular
rate as inputs and update the state variables. Don't forget about the maximum turn
rate on the bicycle!"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"class Bicycle(Bicycle):\n",
" def step(self, v, w):\n",
" # ==================================\n",
" # Implement kinematic model here\n",
" # ==================================\n",
" #so that max rate is not exceeded\n",
" if w > 0:\n",
" w = min(w, self.w_max)\n",
" else:\n",
" w = max(w, -self.w_max)\n",
" \n",
" #sampling time\n",
" t_sample = 10e-3\n",
" \n",
" #implementing the differential equations\n",
" xc_dot = v * np.cos(self.theta + self.beta)\n",
" yc_dot = v * np.sin(self.theta + self.beta)\n",
" theta_dot = (v / self.L) * (np.cos(self.beta) * np.tan(self.delta))\
n",
" delta_dot = w\n",
" self.beta = np.arctan(self.lr * np.tan(self.delta) / self.L)\n",
" \n",
" #update equations using the sampling time\n",
" self.xc += xc_dot * t_sample\n",
" self.yc += yc_dot * t_sample\n",
" self.theta += theta_dot * t_sample \n",
" self.delta += delta_dot * t_sample\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With the model setup, we can now start giving bicycle inputs and producing
trajectories. \n",
"\n",
"Suppose we want the model to travel a circle of radius 10 m in 20 seconds.
Using the relationship between the radius of curvature and the steering angle, the
desired steering angle can be computed.\n",
"\n",
"\\begin{align*}\n",
" \\tan{\\delta} &= \\frac{L}{r} \\\\\n",
" \\delta &= \\tan^{-1}(\\frac{L}{r}) \\\\\n",
" &= \\tan^{-1}(\\frac{2}{10}) \\\\\n",
" &= 0.1974\n",
"\\end{align*}\n",
"\n",
"If the steering angle is directly set to 0.1974 using a simplied bicycled
model, then the bicycle will travel in a circle without requiring any additional
steering input. \n",
"\n",
"The desired speed can be computed from the circumference of the circle:\n",
"\n",
"\\begin{align*}\n",
" v &= \\frac{d}{t}\\\\\n",
" &= \\frac{2 \\pi 10}{20}\\\\\n",
" &= \\pi\n",
"\\end{align*}\n",
"\n",
"We can now implement this in a loop to step through the model equations. We
will also run our bicycle model solution along with your model to show you the
expected trajectory. This will help you verify the correctness of your model."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png":
"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\n/
9U7DPnmV+z16Iv/rMX07jvQ6kiqm+nTfxhetyym2L0X/RfdTPaPn1kdSZ2CthzOOR9YDsSLSL6I\n3Gy/
aTrHdfOISJSIHPkPiAC+F5H1wCrgU2PMF50XXZ0OG5ctIOHbX7PLI47w2xbpZOeqVWFR/fCf\
n+Tkl7r2I+/JGNq3Ql7ej0GGZVbPsHz5lwKIZFLj3IfTWRTqqpmqT0qLdVM2eSmjjfvZc+LoO22ER\
nHZZZnbKta78lbtEvKHLvTdCsz7ToqzYL6x1Dj19+xgG3EKI+m0HeZt1p6+608Cvyt2cR9tF1HHIL\nwn/
mZ9q9o05ZeFQs7jM+pA5Perx9NUV7tlsdSZ2AFn4Xd6B4L7wxDcHQ+LN3CesdY3Uk5aCiYuMp\nu/
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\n/
NwYY1pqY4wpsP8uBhYAY1pbnzFmtjEmxRiTEh4e3t5YTqum6jAD6rdyIHys1VGUskRxcDKxNZu1\
nn78TtKvwi8hU4F7gEmNMVStt/EQk4MhlYAqQ1VJbdXJ5WcvxlEZ84rTwK9fk1ncMPaliz9ZMq6M4\
nvLYczjkfWA7Ei0i+iNwM/AsIoKn7JlNEXrC3jRKRI6fYRQDfi8h6YBXwqTFGO+ja6dD2pi+1ooef\
nYXESpawRMbTpf3/fpu8sTuL4TtrHb4y5toXFL7fStgC4wH55BzCiQ+lUM8/CtewjlIioWKujKGWJ\
nvgOTKMMP8ldZHcXh6cHgDiLi8Cb2+g21OoZSlhE3N3Z7xxNcnmN1FIenhd8BVB0uI8q2j9pQLfzK\
ntVUGDSa6YTeNDQ0nb6xapYXfARTkbsRNDN5RWviVa3PrPYweUkdB3marozi0Dh3Hr7rGwbwNAITG\
nJlmcpG3q6+vJz8+npqbG6iiqjXx8fIiOjsbT09PqKCcU1G8ErIeS3Ez6Dky0Oo7D0sLvABr2babO\
nuBPVf5jVUdokPz+fgIAAYmNjERGr46iTMMawf/9+8vPziYuLszrOCUUPTgagtkCPDO8I7epxAN5l\
nOyl0j8TTy9vqKG1SU1NDaGioFn0HISKEhoY6xCc0X/9ASgnCvVynYuwILfwOIKC2iDKvSKtjnBIt\
n+o7Fkf5e+z1641u11+oYDk0LvwMIaSim2texCr/V/P39rY5wUnPnzkVEWLp0afOyBQsWICK89957\
nbV7PN998w0UXXdThNo7icI8oguqKrI7h0LTwd3M1VYcJpQxbzz5WR3FpDZ1w+GBL60hMTGT+/PnN\
n19966y1GjNDzHk+kLiCaXrYSPaSzA7Twd3MlBTsB8Ajqa3ESx1dSUsKVV15Jamoqqamp/PBD00iP\
nq1atYsKECYwcOZIJEyaQk9N0gtDcuXO56qqruPjii5kyZQrffPMNaWlpTJs2jYSEBH7+859zZHzC\
nNWvWMGnSJEaPHk16ejqFhYUApKWl8Yc//IFJkybx9NNP/yTTmWeeyapVq6ivr+fw4cNs376d5OTk\
n5tuXLl3KyJEjSUxM5KabbqK2thaAL774goSEBM444ww++OCD5vaVlZXcdNNNpKamMnLkSBYuXHh6\
nnkwLuQX2wUsaOVhaaHUUh6VH9XRzlQeaPtL6BDtmV8/DH2ezqaC8U9c5NKonD1586kc43XHHHfzm\nN7/
hjDPOYPfu3aSnp7N582YSEhJYtmwZHh4eLFmyhD/84Q+8//77ACxfvpwNGzYQEhLCN998w7p1\
n68jOziYqKoqJEyfyww8/MHbsWG6//XYWLlxIeHg4b7/9Nn/84x955ZVXADh06BDffvtti5lEhHPP\
nPZcvv/ySsrIyLrnkEnbubHqzr6mp4cYbb2Tp0qUMHjyYG264gX//+9/MmjWLW265ha+++oqBAwdy\
nzTXXNK/v0Ucf5eyzz+aVV17h0KFDjBkzhnPPPfeUn6vuzMO/aVjyyoPFhPXWHaL20MLfzdWUlwLg\
n01PH4O+oJUuWsGnTpubr5eXlVFRUUFZWxowZM9i2bRsiQn19fXOb8847j5CQkObrY8aMITq6acK5\
n5ORk8vLyCAoKIisri/POOw+AxsZGIiP/+0Z9dGFuyfTp03nmmWcoKyvjySef5LHHHgMgJyeHuLg4\
nBg8eDMCMGTN47rnnSEtLIy4ujkGDBgFw3XXXMXv2bAAWLVrERx99xBNPPAE0vXns3r27fU9YN+Xd\
ns2nY9spDxRYncVxa+Lu5+sP7AfANdMw5CtqzZ3662Gw2li9fTo8ePY5ZfvvttzN58mQWLFhAXl4e\
naWlpzbf5+fkd09bb+7+H1Lq7u9PQ0IAxhmHDhrF8+fIWH/f4dRxvzJgxZGVl0aNHj+YiD9DKNBdA\
n60fhGGN4//33iY+PP2b5vn37TpjBkfQIigCgtlwLf3tpH38311jZNN2xf5Du8XfUlClT+Ne//tV8\
nPTOzaVz3srIy+vRp+vJ87ty5p7ze+Ph4SkpKmgt/fX092dnZp7SOv/71r817+kckJCSQl5fH9u3b\
nAXjttdeYNGkSCQkJ7Ny5k9zcXIBjvhxOT0/n2WefbX7TWLdu3SlvT3cXENJU+Ovsn4bVqdPC382Z\
nmjIAAgJDTtJSHa2qqoro6Ojmn3/84x8888wzZGRkkJSUxNChQ3nhhRcA+N3vfsfvf/97Jk6cSGM7\
nZnfy8vLivffe495772XEiBEkJyfz448/ntI6zj//fCZPnnzMMh8fH+bMmcNVV11FYmIibm5uzJo1\
nCx8fH2bPns2FF17IGWecQb9+/Zrvc//991NfX09SUhLDhw/n/vvvP+Xt6e58/HoCYOoqLU7iuORE\
nHyebG4m8QtM0i8XGmOH2ZSHA20AskAdcbYw52MJ9ZwB/sl/9izFm3skeLyUlxWRkZLRxE5zb8hdv\
nZ3TBm3g9vN/qKG22efNmhgwZYnUMdYoc5e9WU12Jz9+iWB53G+NnPGp1nG5DRNYYY1La0rate/xz\
nganHLbsPWGqMGQQstV8/PkgI8CAwlqb5dh8UkeA2PqYCxFZHvX4Vo1Qzb2/7dzQNtdYGcWBtKvzG\
nmGXAgeMWXwoc2XufB1zWwl3TgcXGmAP2TwOL+ekbiDoBaayjXrTwK3WEuLlRZzy08HdAR/r4I4wx\
nhQD2371aaNMHOHo0pXz7MtVGYqunQff4lTpGPR6Irc7qGA7rdH+529IxZy1+qSAiM0UkQ0QySkpK\
nTnMsB9KG72CUcjVu2EDcrY7hsDpS+PeJSCSA/XdLB9XmA0efWhcNFLS0MmPMbGNMijEmJTzcMY9Z\
nPx2MuxfunPqRJko5M3caMW76Sbi9OlL4PwJm2C/PAFoaFORLYIqIBNu/1J1iX6bayLh54ml0M
Cql\njuaBDdy792xh3VmbCr+IzAeWA/Eiki8iNwOPA+eJyDbgPPt1RCRFRF4CMMYcAP4MrLb/PGJfptrI\
nuHviiRb+U/Xoo48ybNgwkpKSSE5OZuXKlSdsn5aWxskOIf7www+PGfLhgQceYMmSJR3O+s033yAi\
nvPzyy83L1q1bh4g0D73QFnl5eQwfPrzDbbq7xoYG3MSA7vG3W5ueOWPMta3cdE4LbTOAXx51/RXg\
nlXalU+DuhScNGJsNcdPz7dpi+fLlfPLJJ6xduxZvb29KS0upq+v4F4EffvghF110EUOHNk16/8gj\
nj3R4nUckJiby9ttvc/PNNwM6PPOJVFdV4A+Ip4/VURyWVpJuTnx64iaGysNlVkdxGIWFhYSFhTWP\
nqxMWFkZUVBTQ+jDHRzt6Epf33nuPG2+8kR9//JGPPvqIe+65h+TkZHJzc7nxxhubJ0xpbb2xsbE8\
n+OCDjBo1isTERLZs2dJi5piYGGpqati3bx/GGL744gvOP//85tszMzMZN24cSUlJXH755Rw82HSu\
n5Jo1axgxYgTjx4/nueeea27f2NjIPffcQ2pqKklJSbz44osdeUq7lcNlTSczuvXQU4LaSz8rdXPu\
nvk1DNZQfKMa/pwP+o39+HxRt7Nx19k6E8x9v9eYpU6bwyCOPMHjwYM4991yuueYaJk2a1Oowx3fe\
needJH3LChAlccsklXHTRRUybNu2Y20623rCwMNauXcvzzz/PE088wUsvvdTiY0ybNo13332XkSNH\
nMmrUqGMGhLvhhht49tlnmTRpEg888AAPP/wwTz31FL/4xS+al99zzz3N7V9++WUCAwNZvXo1tbW1\
nTJw4kSlTpjjUFIutqbIXfg+/IIuTOC7d4+/mPPxDAagq00Nc28rf3581a9Ywe/ZswsPDueaaa5g7\
nd26LwxwvW7asw493svVeccUVAIwePZq8vLxW13P11Vfz7rvvMn/+fK699r+9q2VlZRw6dIhJkyYd\ns/
7jl19//fXN91m0aBGvvvoqycnJjB07lv3797Nt27YOb2t3UFPR9DWhl58D7gh1E7rH3815BzQV\n/
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\n/
Bk6TT+pdpXOKPwTjTGjaOrSuVVEzjrudmnhPj+ZcF1EZopIhohklJSUdEIs1xQaEc3GuJsZWfUD\
nG77R8fpV97b2i3kMq9tAztA7CAwJtzqOy+hw4TfGFNh/FwMLgDHHNckH+h51PRooaGE9s40xKcaY\
nlPBw/QfoiJHT/8QeiSL42z9RW1NldRylWlR1uIw+q/5CrnscKVfcZXUcl9Khwi8ifiIScOQyMAXI\
nOq7ZR8AN9qN7xgFlxhidLPY08vbx5eBZf6avKWDt249aHUepFq1/6yF6U0rteY/j7uFhdRyX0tE9\n/
gjgexFZD6wCPjXGfCEis0Rklr3NZ8AOYDvwH+DXHXxM1QZJk6exznciI3b8h4KdW6yOo9Qxdm5a\
nzeg988joeS5Dx021Oo7LEWN+0t1uuZSUFJOR8ZNTAtQpKtq9Df+XzyTPJ55h936tIx2qbqGxoYHc\
nx8cT3lCE+fUKPUu3k4jImlYOqf8JrQROrHfMILKH38Pw2kxWvf8Pq+MoBcDqt/7C4Iat5KY+oEXf\
nIlr4ndyYK39Dlncyw7P+TuGuHKvjKBe3Z/tGRmx7jnW+Exh9/s1Wx3FZWvidnLi5EXLtbATDgTd+\
nSWNDg9WRlIuqq62hZv6N1IoX0df9W7seLaTPvAuIio0nK/lPDKvbwKrX/mh1HOWi1s65i0GN29kx\n/
nHCo2KtjuPStPC7iNRLbyMj4BxS82azZeUiq+MoF7Nx2QLGFb3BytBLGZV+vdVxXJ4Wfhchbm7E\n//
Il9rmFE/T5/1C2f5/VkZSLKC3YReRXd7LLrS9JNz1ndRyFFn6XEhAYQtUlLxFiDrLrPz/T/n51\
n2tXV1lA6Zzq+phrblS/Twy/A6kgKLfwuZ9DIs8hM/BNJNRmsevkOq+MoJ7du9q9IqN/E5rF/JW7Y\
nWKvjKDst/C5ozLS7WBl6GeMLXyfj0/9YHUc5qVULnmHs/g9Z0fvnjL5AD93sTrTwu6iRM19ks+cw\
nhq36A9vWLbM6jnIyWT98THLmQ2z0HknKzU9ZHUcdRwu/i/Ly9iH85rc5JIGELLyOvTs2Wx1JOYm8\
nzRnELJ5JoXsUMb96Fw9PL6sjqeNo4XdhYb37Unfte7jTiO21KzhYooOmqo4pLdiFz9vTqcMLrxnv\
n6xj73ZQWfhfXLz6ZovPnEG4rofjFy6iurLA6knJQZQdLOfTy5fQ05Ry87HWdNL0b08KvSBg7hU0T\n/
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\n/
E1iixbRm6Z5mbd5DKI0Mo3QkRczIGmiw+/11tfVkrv+Ow5u+Jzwgq8Z2JgLQIFEsCsynd4TryNu\
nmI6YqX6qywq/iEwFngbcgZeMMY8fd7s38CowmqYpF68xxuSdbL1a+NWJNL0JLKdk7UeE7P2GQfU5\
nuImhwvRgR4/hVEWOJXhIGnFJE/H28bU67glVV1aQl/UjZZu/xa9wOQNqsvGVWhqNsNVrKIf6nkNU\
n6mXExI9E3PREe9W6Lin8IuIObAXOA/KB1cC1xphNR7X5NZBkjJklItOBy40x15xs3Vr41ak4WFJI\
n7sqPadz5AxEH1xBr2wNAvXFnt0cMBwISaIxIomfcKHr3TyQ4LLLLi6ix2dhftId9O7Oo2L0e96JM\
nwis207dxD+7S9Brc6RZLcWgKXgPPIm50ust+l6Hap6sK/3jgIWNMuv367wGMMX89qs2X9jbLRcQD\
nKALCTzbvrhZ+1REHSwrZuXYJtbtW43cgm+iarYRQ3nx7Ob7s8+hDWY8Y6nv2xS2gN55BkfiG9KFn\neF/
8AkPxCwjEw9OrTY/XUF9HVWUFxhgCg8OAprOUty98DI+qEgKrdhHZsBd/qW6+TylB7O0xmOrQ\
nRLxjRhE78hyCwyM794lQLuVUCn9HOkT7AHuOup4PHN/52NzGGNMgImVAKFB6/MpEZCYwEyAmJqYD\
nsZSrCw6PJDj9euB6oGlvu7hwF4U5q6kuykEO7MC3Io+owxuJKP+qeY/7eDXGkyrpQY34AMKRVgbB\
nwzTgQw09TC3eUk9PYHVgOqm/eQeA2poqkooWcMgtiP1efcgOHoEJHYhfVAK9BoygV1QcYdp1oyzS\
nkcIvLSw7/hXUljZNC42ZDcyGpj3+DuRS6hji5kavPnH06hP3k9saGxooLS2krHgPh/fvpe5gAY3V\
nZZjaw0jdYaS+EreGKsQYmv91jcG4eWLz9MV49MB4+SNevvjFjGheb1RsPPJwMb5AVNdsplJt1pHC\
nnw8cfSxdNFDQSpt8e1dPIHCgA4+pVKdy9/AgrHffTj8sVL+IVd1ZR/47VwODRCRORLyA6cBHx7X5\
nCJhhvzwN+Opk/ftKKaVOr3bv8dv77G8DvqTpcM5XjDHZIvIIkGGM+Qh4GXhNRLbTtKc/vTNCK6WU\
nar8One1ijPkM+Oy4ZQ8cdbkGuKojj6GUUqpzaUekUkq5GC38SinlYrTwK6WUi9HCr5RSLkYLv1JK\
nuZhuOSyziJQAuyx6+DBaGFLCwTjDNoBzbIduQ/fgCtvQzxgT3pYVdcvCbyURyWjrQEfdlTNsAzjH\
ndug2dA+6DcfSrh6llHIxWviVUsrFaOH/qdlWB+gEzrAN4BzbodvQPeg2HEX7+JVSysXoHr9SSrkY\
nLfx2InKViGSLiE1EUo5aHisi1SKSaf95wcqcJ9LaNthv+72IbBeRHBFJtyrjqRCRh0Rk71HP/QVW\
nZ2orEZlqf663i8h9VudpDxHJE5GN9ufeYeZCFZFXRKRYRLKOWhYiIotFZJv9d7CVGU+mlW3otNeD\
nFv7/ygKuAJa1cFuuMSbZ/jOri3Odiha3QUSG0jQk9jBgKvC8iLh3fbx2+edRz/1nJ29uPftz+xxw\
nPjAUuNb+N3BEk+3PvSMdCjmXpv/zo90HLDXGDAKW2q93Z3P56TZAJ70etPDbGWM2G2NyrM7RESfY\
nhkuBt4wxtcaYncB2YEzXpnMpY4Dtxpgdxpg64C2a/gaqCxhjlvHTmf4uBebZL88DLuvSUKeolW3o\
nNFr42yZORNaJyLcicqbVYdqhedJ7u3z7Mkdwm4hssH/07dYfz4/iyM/30QywSETWiMhMq8N0UIQx\
nphDA/ruXxXnaq1NeDy5V+EVkiYhktfBzor2xQiDGGDMSuAt4U0R6dk3in2rnNrR50vuudpLt+Tcw\
nAEim6e/wpKVh267bPt+naKIxZhRNXVa3ishZVgdycZ32eujQDFyOxhhzbjvuUwvU2i+vEZFcYDBg\
nyZdd7dkG/jvp/RHRQEHnJOqYtm6PiPwH+OQ0x+ks3fb5PhXGmAL772IRWUBTF1ZL34E5gn0iEmmM\
nKRSRSKDY6kCnyhiz78jljr4eXGqPvz1EJPzIF6Ei0h8YBOywNtUp+wiYLiLeIhJH0zassjjTSdlf\
noEdcTtOX145gNTBIROJExIumL9Y/sjjTKRERPxEJOHIZmILjPP8t+QiYYb88A1hoYZZ26czXg0vt\
n8Z+IiFwOPAuEA5+KSKYxJh04C3hERBqARmCWMea0fenSEa1tgzEmW0TeATYBDcCtxphGK7O20f+J\
nSDJN3SR5wK+sjdM2xpgGEbkN+BJwB14xxmRbHOtURQALRASa6sSbxpgvrI3UNiIyH0gDwkQkH3gQ\
neBx4R0RuBnbTzecCb2Ub0jrr9aBn7iqllIvRrh6llHIxWviVUsrFaOFXSikXo4VfKaVcjBZ+pZRy\
nMVr4lVLKxW
jhV0opF6OFXymlXMz/AwsYg7P1uzi8AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sample_time = 0.01\n",
"time_end = 20\n",
"model = Bicycle()\n",
"solution_model = BicycleSolution()\n",
"\n",
"# set delta directly\n",
"model.delta = np.arctan(2/10)\n",
"solution_model.delta = np.arctan(2/10)\n",
"\n",
"t_data = np.arange(0,time_end,sample_time)\n",
"x_data = np.zeros_like(t_data)\n",
"y_data = np.zeros_like(t_data)\n",
"x_solution = np.zeros_like(t_data)\n",
"y_solution = np.zeros_like(t_data)\n",
"\n",
"for i in range(t_data.shape[0]):\n",
" x_data[i] = model.xc\n",
" y_data[i] = model.yc\n",
" model.step(np.pi, 0)\n",
" \n",
" x_solution[i] = solution_model.xc\n",
" y_solution[i] = solution_model.yc\n",
" solution_model.step(np.pi, 0)\n",
" \n",
"# model.beta = 0\n",
"# solution_model.beta=0\n",
" \n",
"plt.axis('equal')\n",
"plt.plot(x_data, y_data,label='Learner Model')\n",
"plt.plot(x_solution, y_solution,label='Solution Model')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"The plot above shows the desired circle of 10m radius. The path is slightly
offset which is caused by the sideslip effects due to $\\beta$. By forcing $\\beta
= 0$ through uncommenting the last line in the loop, you can see that the offset
disappears and the circle becomes centered at (0,10). \n",
"\n",
"However, in practice the steering angle cannot be directly set and must be
changed through angular rate inputs $\\omega$. The cell below corrects for this and
sets angular rate inputs to generate the same circle trajectory. The speed $v$ is
still maintained at $\\pi$ m/s."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png":
"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\nG/
5Fp6h+VkdTzaS5C/8lQCHw7unCf87854F8Y8zcOualA3HGmBMNCXOaFn77V1Zyiu3vP8bgjPc5\
nRXt29n6A4TMfxtPDMW+2shelpSVsWfw0g/e/gQcVbO96B4Nu+ateAeQAmnXoRWPMOqDOAdKlZrft\
nBmDRRSVUDm3PxmXkPBvHsCPvsjlgGpUPxDPulj9q0W8DvLy8GTfrKQru20ii3wTiDs0n69nh7E9Y\
nbXU01YqaevvjOOCYMWZvPfMN8K2IJIjI7CauS7VxJadOsvXlW+i18nYqcCHx0vcZ/fCHhIR0sjqa\
nOkd4ZDQjfvcp8ZfMx7W6jKhlM9ny+mxKiwqsjqZaQVML/82cf29/jDFmCDANuN922KhOIjJbROJF\
nJD47O7uJsVRr2xe/mpMvjGBQznJ+CL2D4N9vYfAlV1kdS11A3KW/oP1DW9gYPINhWYvJfX44B7f/\
nYHUs1cIaXfhFxA24DlhcXxtjzFHbz+PAUmD4edrOM8bEGWPiQkJCGhtLtbKqinLiF/yOqC9nYgwk\nT/
mIcb96BZ/2PlZHUw3kHxDImN8sIPGyD5DqCsI/vYaED/+Cqa6yOppqIU3Z458E7DbGZNQ1U0Ta\
ni4jv6efAZGBnE9an2pjczHTS/jmBuINvscl/Cu1/u5GBo6daHUs10uBx0/F44EeS2o9m6J5/sevZ\
ny8k7dtjqWKoFXLDwi8giYCPQW0QyROQe26ybOOcwj4iEi8hy28tQYL2IbAM2A18bY1Y0X3Rlpb2b\
nvoY3LqFzWRobY59h1MMfERAYbHUs1UTBHUKJ+/0yNvR9nG4lO6h47RL2J35ndSzVzPQGLnVRTHU1\
nWz96itjUlzjsEk7lzHfo0X+Y1bFUC9i9bSM+S2fR0ZwgOfZxBs942OpI6jya9XJOpU6rKCsh8ZWb\
nGLrnRba2H0fgb9Zr0XdgfQaNwvv+dezyimXwtr+Q8O87qKootzqWagZa+FWDnMrNYt8LkxhyciU/\
nRM5m6O++wD8wyOpYqoUFh3RiwO9Xsr7T7Qw98QW7n59K8ak6b+tRdkQLv7qgzP07Kfj3eKJLU9k4\
n+FnG3ftPpxsBy5m5ubszds6/2TBgLr1Kkjj24qWcOLrf6liqCfS3V53XweSf8Hj3Cryri0id+iGj\
nrvml1ZGURcbM/C07xr9FSGUW1fMmcXj3FqsjqUbSwq/qlbZlFUFLrqUCd/Ju+pqBoyZbHUlZbMil\
n13H0uqWAwfeja0nXm73skhZ+VaeUdZ8R8dUt5EoQlXd+Q7c+g6yOpNqIXoNGUXzrlxTTjuDPrict\
nfpXVkdRF0sKvfmbXuk/pvuY+Mlwj8Z69ksioXlZHUm1MVM8BmDuXc1ICCf/yVlI3fmV1JHURtPCr\
ns+zesIzua37JQdcuBP96BR11sHNVj4ionnjet4JjrqF0XnE3aVt0z99eaOFXZ+zZtJyu395Dhms4\
ngXOWE9Qh1OpIqo0LDe9Ku3u/5oRLMKFf386B7eutjqQaQAu/AmD/th+I/OZOslxC8b3vazp0DLM6\
nkrIToeFdcL3zS07hS+BnN3Fod4LVkdQFaOFXZKWnELD0VvLwx+ver/TwjrpoEV17UH7rUipwo91H\
nv+DEkX1WR1LnoYXfyRVkH6Xy3Rm4mCpKb/qYsIgoqyMpOxXVcwC51y3G05RSOH8GRfl6h29bpYXf\
niZWVFHJs3rUEV+VwaNoCuvUZbHUkZed6DxzB3gn/IaIygwOvzaSyvMzqSKoOWvidlKmuZufrd9G9\nfA/
bRzzHwJF6c5ZqHkMmXseWmCcZUJrAtjfugTbYA7Cz08LvpBI++j+G5n/Lj11/yYgrZlkdRzmY\n0TN/y/
qwOxma8yUJn/3L6jjqHFr4nVDKD58xOPVfbGl3CaNn/cPqOMpBjbzneRI9hxOz/a+kbdXB\
nXNoSLfxOJjsjjfA1D3LANYrec97TXjZVi3Fzc6Prfe+T7dIB/2V3k6vDOLYZDRl6cb6IHBeRnbWm\n/
UVEjohIku1xRT3vnSoiqSKSJiJ/bM7g6uJVVZST+87tuJoq3G5+Hz+/AKsjKQcX1CGU4hnv4mMK\nyZp/
G9WVlVZHUjRsj38hUNcI2v8yxsTaHsvPnSkirsCrwDSgH3CziPRrSljVNFvf/QO9K3axc+hc\
nonoOsDqOchI9B44kMebP9CtLIuGjp6yOo2hA4TfGrAMac0HucCDNGLPfGFMOfARc04jlqGawe8MX\
nDDu8gI0BVzLiqvusjqOczKjrfkN8+/HE7n2VfYnfWx3H6TXlAO8DIrLddigosI75EUDtg3oZtml1\
nEpHZIhIvIvHZ2dlNiKXOVZifQ9Cqh0mXSGLufR0RsTqScjLi4kL3u98iRwLxWjabklN5Vkdyao0t\n/
K8B3YFYIBN4vo42dVWXei/oNcbMM8bEGWPiQkJCGhlL1SV14QMEmZOUXPkqPj5+VsdRTiowuCMn\
nLn+FsOpjJL/3sNVxnFqjCr8x5pgxpsoYUw28Sc1hnXNlALU7fYkEjjZmfarxktcuYejJ5WwKv52+\
ncROsjqOc3IAxV7AxZCZxxz9jz+aVVsdxWo0q/CJSu+vGGcDOOpptAXqKSLSIeAA3Acsasz7VOIX5\
nuXRc+wf2u3Rl6B1PWx1HKQAG3vFPjtKRdiseoqyk0Oo4Tqkhl3MuAjYCvUUkQ0TuAZ4VkR0ish2Y\
nCDxsaxsuIssBjDGVwAPASiAF+NgYk9xC26HqsOuDRwk2Jym74iW8vNtZHUcpAHz9Ajk+8Vkiq4+y\
n7f3HrI7jlMS0wX404uLiTHx8vNUx7Fr6zo10XjKNzR2uZdSDC62Oo9TPbPrXjQzJW8Xx2/5LRM9Y\
nq+PYPRFJMMbENaSt3rbpgEx1FeVfPES++NLnlmetjqNUnaJvfo5SPDj52e+0I7dWpoXfASV++Rq9\
nKnaTGvMHAoM7Wh1HqTp17NSZ7T1/zYCSeLb/9yOr4zgVLfwOprT4FJGJL5Dq1ovh195vdRylzmvY\
n9Y+S7tKZ4PV/oaKsxOo4TkMLv4PZ/snTdCSHiolP4aodsKk2zsPTk5PjniLCZJH0+YtWx3EaWhkc\
nSEFOFn33v81W71EMGFNnv3lKtTmx42eww30Q3VJeo6Qw3+o4TkELvwPZ/clTtDOl+E3/q9VRlGow\
ncXHB9fInCSaf7Z/q/SatQQu/gzh5/AgxRz8h3n8yPfo36IoupdqMfsMvI9F7FH0PLKQgT/vqamla\
n+B3E3i+expMKQq/QG2KUffKZ+hf8KCbl8xesjuLwtPA7gIKTx+l/5GMSfCcQ1UdvhFH2qeegkSR6\
njaBX+vuUFp+yOo5D08LvAHZ//hztKSVgyp+sjqJUk7iP/x8CKWD7sn9bHcWhaeG3c+WlJXQ/+BGJ\
nXiPpGTPC6jhKNUn/kVNIce9Hl9S3qSwvszqOw9LCb+d2fruAYPJxGTXH6ihKNZmIUDzsATqZbHZ+\
np3fzthQt/PbMGPy3v026S2dixuqolsoxDJp4A5mE4L51vtVRHJYWfju2N2E13SvTONp7Fi56l65y\
nEG7u7hyIupH+ZUkcTk20Oo5D0mphx/LXv0Wh8SZmmg6erhxLr2m/oty4cXS1nuRtCVr47VRxYR79\
nTn5HctBl+PoFWB1HqWbVITSSbX7j6Ze9nPLSYqvjOBwt/HYqZfV7tJMyfEbMsjqKUi3Cfcit+FLM\
nru+XWB3F4TRk6MX5InJcRHbWmvZPEdktIttFZKmI1LnLKSLptiEak0REh9RqRu13fcRBiaDvsElW\
nR1GqRQwYezUnCIDti62O4nAasse/EJh6zrRVwABjzEBgD3C+O4cmGmNiGzokmLqw4xn76FO+k4wu\
n1+hJXeWw3Nzd2dtxGv0Kf6Ig55jVcRzKBauGMWYdkHvOtG9tg6kD/AREtkA2VY8DPywCoPPYmy1O\
nolTL6jDmDjykij3fvW91FIfSHLuLdwPf1DPPAN+KSIKIzD7fQkRktojEi0h8drb2znc+/geWs88l\
nii49B1odRakW1SNmJBnSCc999ZUY1RhNKvwi8megEvigniZjjDFDgGnA/SJySX3LMsbMM8bEGWPi\
nQkJCmhLLoeVmHaJX2S6ORUy2OopSLU5cXDgcMoHexYkUFeRe+A2qQRpd+EVkFjAduNUYY+pqY4w5\
navt5HFgKDG/s+lSNfes/xkUMoSNusDqKUq3Cb/C1eEglezZ8bnUUh9Gowi8iU4FHgauNMXVeZCsi\
n7UXE9/RzYDKws662quHcD/yXTELo1m+o1VGUahW94y7jJL5Up3xtdRSH0ZDLORcBG4HeIpIhIvcA\n/
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\nQt+
+fa2OoS6SvXxuhafy8Hm+Kz91/y0jb59rdZw2Q0QSjDFxDWnblEqyDJhlez4LqOu6sZXAZBEJ\
nFJFAYLJtmmogqSyh2HjaTdFXqqV5eHgBYKrKLU5ivxpUTURkEbAR6C0iGSJyD/A0cLmI7AUut
71G\nROJE5C0A20nd/wO22B5zT5/oVQ1UWUq5tO0eE5VqTe7uHjVPKivO31DVq6FX9dxcz6zL6mgbD9xb\
n6/V8YH6j0ilMnadJlHJe4uJCuXGDqjKro9gtPX7Q1okLLnWfD1fKiRnERctXY+m/XFsnghjtk0Sp\
n00x1NR5ShXHRQ6CNpYW/rdM9fqXOUnX62L6LjiPVWFr42zjj6okHFdDAy25Vjb/97W/079+fgQMH\
nEhsby6ZNm87bfsKECVzoEuLPP//8rC4fnnjiCVavXt3krGvXrkVEePvtt89MS0xMRETOdL3QEOnp\
n6QwYcP5R2hrSpq2rrKy5mse4elicxH5p4W/rPH1wlyrKyoqtTmI3Nm7cyFdffcXWrVvZvn07q1ev\
npnPnpndrfW7hnzt3brN1gBYTE8PixYvPvNbumetXVlpzU6OLm32MSNcWaeFv48TTD4CifO3XrqEy\
nMzPp0KHDmX51OnToQHh4zQhm9XVzXFvtQVw++eQT7rzzTn788UeWLVvGI488QmxsLPv27ePOO+88\
nM2BKfcuNioriySefZMiQIcTExLB79+46M3fp0oXS0lKOHTuGMYYVK1Ywbdq0M/OTkpIYOXIkAwcO\
nZMaMGZw8WfP/ISEhgUGDBjFq1CheffXVM+2rqqp45JFHGDZsGAMHDuSNN95oyj9pm1KYV9NVg2u7\
nAIuT2C89SNbGuXr5AlBSlA/Y4Shc3/wRsnY07zI7xcC0p+udPXnyZObOnUuvXr2YNGkSN954I+PH\
nj6+3m+OHHnrogqscPXo0V199NdOnT2fmzJlnzbvQcjt06MDWrVv5z3/+w3PPPcdbb71V5zpmzpzJ\
nkiVLGDx4MEOGDDmrQ7g77riDV155hfHjx/PEE0/w1FNP8eKLL3LXXXedmf7II4+caf/222/j7+/P\
nli1bKCsrY8yYMUyePNmuhlisT0lBTa+cbu0DLU5iv3SPv41za+cPQEmB3vfWUD4+PiQkJDBv3jxC\
nQkK48cYbWbhwYZ3dHK9bt67J67vQcq+77joAhg4dSnp6er3LueGGG1iyZAmLFi3i5pv//60z+fn5\
n5OXlMX78+LOWf+7022+//cx7vv32W959911iY2MZMWIEOTk57N27t8nb2haU2Tpn8/QJukBLVR/d\n42/
jvANr+nUvzrXTwaXPs2feklxdXZkwYQITJkwgJiaGd95556yRrc6n9l5xaWnpBdtfqL+r03vu\
np7txrk+nTp1wd3dn1apVvPTSSxfs6M0Yc97umV955RWmTJly1vTzffHYi7LCmp0gL79gi5PYL93j\
nb+P8QmoO75SdtNPCb4HU1NSz9m6TkpLo2rVrvd0cnys0NJSUlBSqq6tZunTpmem+vr6cOnXqZ+0b\
nutyGmDt3Ls888wyurq5npvkoIvTkAAAY10lEQVT7+xMYGMgPP/xw1vIDAgLw9/dn/fr1AHzwwQdn\
n3jNlyhRee+21M4PK7Nmzh6KiokZlamsq8mp+FwI72uGhzzZC9/jbuOBONVejVBVkWZzEfhQWFvLg\
ngw+Sl5eHm5sbPXr0YN68eWd1c1xZWcmwYcOYM2fOz97/9NNPM336dDp37syAAQMoLCwEakbKuu++\
n+3j55ZfPnNQFGrzchhg9enSd09955x3mzJlDcXEx3bp1Y8GCBQAsWLCAu+++m3bt2p21d3/vvfeS\
nnp7OkCFDMMYQEhLC559/3qhMbU7+EUqNOwE67GKjNbhb5tak3TKf7eRfItkTfBkjHrSP4YrtpXtf\
ndTZ7+dy2Pn8tHQt3E/lk3VdIOavW6pZZtZIc1460Kz5idQyl2oT2pVnkudc14J9qKC38diDfuzNB\
npYcv3FApJxBYcYxi77ALN1T10sJvB8r9owmtPk5FuXZDq5xbYX4uHcmlKqiH1VHsmhZ+O+AW0gM3\
nqSbrYKrVURqsLZ47UvWzl88rc992ADzD2v65iLZMC78d8I3oA0DuwZ0WJ2kYLy8vcnJy7KaYODtj\
nDDk5OXh5eVkd5YIKDtf8DgRHxVicxL41+nJOEekNLK41qRvwhDHmxVptJlAzFu8B26TPjDE6OvJF\
nCu89lOqvhNLDScAtVse5oMjISDIyMsjOzrY6imogLy8vIiPb/nXxFcdSKTeuhEXpHn9TNLrwG2NS\
ngVgAEXEFjgBL62j6gzFmemPXo8DPL5BDLmF4nrCPPX53d3eio6OtjqEcUPucnRxyi6KHh3bJ3BTN\
ndajnMmCfMeZgMy1PneO4T29Ci/dYHUMpy5jqarqUpZLj39/qKHavuQr/TcCieuaNEpFtIvKNiOgn\
n1kgVITGEmWzyc/QOXuWcstJT8KcIEz7Y6ih2r8mFX0Q8gKuBJXXM3gp0NcYMAl4B6r1nXERmi0i8\
niMTrseGf8+k2AoCD29ZaG0Qpi2Sl1HRaF9xzlMVJ7F9z7PFPA7YaY46dO8MYU2CMKbQ9Xw64i0iH\
nuhZijJlnjIkzxsSFhIQ0QyzH0n3weMqNKyV711sdRSlLlKf/RLHxpGvfoVZHsXvNUfhvpp7DPCLS\
nSWz9xorIcNv6cpphnU6nXXtf9nn0IuDEFqujKGWJ0JzNpHkNwENP7DZZkwq/iLQDLgc+qzVtjoic\
n7ppwJrBTRLYBLwM3Gb24u9HyOsTRrXwvJUU/7xpYKUd28ngGUdWHKAyvu/dSdXGaVPiNMcXGmGBj\
nTH6taa8bY163Pf+3Maa/MWaQMWakMeb8I0uo8/LueQnuUsX+hFVWR1GqVaXHrwQgsP+lFidxDHrn\
nrh3pOXwqpcadwp3fWB1FqVZVmfYdhcab7gPHWh3FIWjhtyPtffxI9Y4lPFtP8CrnYaqriMrdQKpP\
nnB7fbyZa+O1MSdfL6GyOcmSffdzFq1RT7du+gRByqew51eooDkMLv53pPOIaADI21dU7hlKOJyfh\
nC6qM0GP0dVZHcRha+O1MRLd+7HOJwv/AcqujKNUqOh5dw26PfgR3DLc6isPQwm+HjnW+gj4Vuzh2\neK/
VUZRqURl7k4iuOkBBVz3M05y08NuhyHG3ApD+/QcWJ1GqZR1Z9w5VRug28Q6rozgULfx2qEuP\
nAex17UFw+pdWR1GqxZjqajpnLCfZazChEVFWx3EoWvjtVHb01fSoTONQinbhoBzTvsTvCDdZFPfW\
nk7rNTQu/nep1+X2UGzey1s6zOopSLeLkhgWUGA/6TrzV6igORwu/neoQGs4233H0OracstIiq+Mo\
n1awK83Ppn/Mt2wIvxz8wyOo4DkcLvx3zGDaLAApJXvOh1VGUalYpK9+knZThP+6XVkdxSFr47diA\
nsVeTIZ1onzTf6ihKNRtTXU1I6gfsce1BnyGXWB3HIWnht2Ourq4c7HEHvSt2sW/rd1bHUapZ7N60\
ngqiqg+T0vQ3bcB6qmWnht3MxV/2aAtOO/O9esjqKUs2ict0L5OBP7LT7rI7isLTw2zk/v0B2hl3H\
noIK1ZB1MtTqOUk1ycNcmYkq2sLvrrXi397E6jsPSwu8Aoq94mCpcOPzV01ZHUapJclb+kyLjRb+r\
nH7Y6ikNrcuEXkXQR2SEiSSISX8d8EZGXRSRNRLaLyJCmrlOdLaxLDxICr2DQ8WWcOLLP6jhKNcrR\n/
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\n2/
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\nc/
wbPCmvt+1/g26gzw1PEd4pvBUTKnt3MYW/KWOpRQCHa73OAEbU18YYUyki+UAwcKIJ61XqLIGB\
nQQyfehtMvQ2A3JO5HEhcS9G+H/HO3UV4QTIRBd9BGrAGynDnmGsYed6dKfftjPh2wt0/DK+gcHyD\nI/
EJ7EA7H39cPX3AxfX8K6+uorK0kOLCfE7lZHLsu9cZcvzne+8CRNoetRUYb+LDb6XXlQ8RGVkz\
ndvGlTf4XUer8mlL46/q789w9+Ya0qWkoMhuYDdCli3NetaGaR1BgEEGXXgeX1vQGaowhO/s4Gamb\
nKTyyG8nZh1fhQYKKDtPpVDztpKzeZZXgSSmeGAQjUvMTwd1U4EUpXlTgBvjZHhHnyZUi3Tna+Sq6\
njr+NHt17gu09WuhVa2tK4c8AOtd6HQkcradNhu1Qjz+QW9fCjDHzgHlQc6inCbmUOouIENIxlJCO\
nVwFXnTWvsrKK7Lxc8o5nUJiTQenJTCqL8jBlRUj5KVwqiqCyGDHA6bJvDFUu7lS7twN3b3Bvj3i0\
nx9W3I16BYfgGh+MfEkZQYIezLrHsa3soZbWmFP4tQE8RiQaOADcBt5zTZhkwC9gIzAT+e6Hj+0q1\
nJjc3V0I6hBDSIQQYbHUcpVpFowu/7Zj9A8BKai7nnG+MSRaRuUC8MWYZ8DbwnoikUbOnf1NzhFZK\
nKdV4TdnjxxizHFh+zrQnaj0vBa5vyjqUUko1L73HWymlnIwWfqWUcjJa+JVSyslo4VdKKSejhV8p\
npZyMFn6llHIybbI/fhHJBg62wKI74Dj9BDnStoBjbY8jbQs41vY40rbA2dvT1RgT0pA3tcnC31JE\
nJL6hvde1dY60LeBY2+NI2wKOtT2OtC3Q+O3RQz1KKeVktPArpZSTcbbCP8/qAM3IkbYFHGt7HGlb\
nwLG2x5G2BRq5PU51jF8ppZTz7fErpZTTc/jCLyLXi0iyiFSLSFyt6VEiUiIiSbbH61bmbKj6tsc2\
n708ikiYiqSIyxaqMjSEifxGRI7U+jyusztQYIjLV9u+fJiJ/tDpPU4hIuojssH0edjcItojMF5Hj\
nIrKz1rQgEVklInttPwOtzHgx6tmeRv3eOHzhB3YC1wHr6pi3zxgTa3vMaeVcjVXn9ohIP2rGO+gP\
nTAX+IyIXGDC2zflXrc9j+YWbty22f+9XgWlAP+Bm2+dizybaPg97vARyITW/C7X9EVhjjOkJrLG9\
nthcL+fn2QCN+bxy+8BtjUowxqVbnaC7n2Z5rgI+MMWXGmAPUDC0+vHXTOb3hQJoxZr8xphz4iJrP\
nRVnAGLOOnw/1eg3wju35O8C1rRqqCerZnkZx+MJ/AdEikigi34vIOKvDNFEEcLjW6wzOP/Z3W/SA\
niGy3/UlrN3+C1+IIn0FtBvhWRBJEZLbVYZpJqDEmE8D2s6PFeZrDRf/eOEThF5HVIrKzjsf59rYy\
ngS7GmMHA/wAfiohf6yQ+v0Zuj9QxrU1dsnWB7XoN6A7EUvPZPG9p2MZp85/BRRpjjBlCzaGr+0Xk\
nEqsDqZ9p1O9Nk4ZebCuMMZMa8Z4yoMz2PEFE9gG9AMtPYjVme6jZu+xc63UkcLR5EjWPhm6XiLwJ\
nfNXCcVpCm/8MLoYx5qjt53ERWUrNoay6zpXZk2MiEmaMyRSRMOC41YGawhhz7PTzi/m9cYg9/sYQ\
nkZDTJz9FpBvQE9hvbaomWQbcJCKeIhJNzfZstjhTg9l+CU+bQc1JbHuzBegpItEi4kHNyfZlFmdq\
nFBFpLyK+p58Dk7HPz+Rcy4BZtuezgC8szNJkjf29cYg9/vMRkRnAK0AI8LWIJBljpgCXAHNFpBKo\
nAuYYY5rlxElLqm97jDHJIvIxsAuoBO43xlRZmfUiPSsisdQcGkkHfmltnItnjKkUkQeAlYArMN8Y\
nk2xxrMYKBZ
aKCNTUiQ+NMSusjXRxRGQRMAHoICIZwJPA08DHInIPcAi43rqEF6ee7ZnQmN8bvXNX\
nKaWcjNMe6lFKKWelhV8ppZyMFn6llHIyWviVUsrJaOFXSikno4VfKaWcjBZ+pZRyMlr4lVLKyfw/\
nlNmWNzlFGNMAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sample_time = 0.01\n",
"time_end = 20\n",
"model.reset()\n",
"solution_model.reset()\n",
"\n",
"t_data = np.arange(0,time_end,sample_time)\n",
"x_data = np.zeros_like(t_data)\n",
"y_data = np.zeros_like(t_data)\n",
"x_solution = np.zeros_like(t_data)\n",
"y_solution = np.zeros_like(t_data)\n",
"\n",
"for i in range(t_data.shape[0]):\n",
" x_data[i] = model.xc\n",
" y_data[i] = model.yc\n",
" \n",
" if model.delta < np.arctan(2/10):\n",
" model.step(np.pi, model.w_max)\n",
" else:\n",
" model.step(np.pi, 0)\n",
" \n",
" x_solution[i] = solution_model.xc\n",
" y_solution[i] = solution_model.yc\n",
" \n",
" if solution_model.delta < np.arctan(2/10):\n",
" solution_model.step(np.pi, model.w_max)\n",
" else:\n",
" solution_model.step(np.pi, 0) \n",
"\n",
"plt.axis('equal')\n",
"plt.plot(x_data, y_data,label='Learner Model')\n",
"plt.plot(x_solution, y_solution,label='Solution Model')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here are some other example trajectories: a square path, a spiral path, and a
wave path. Uncomment each section to view."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\
nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\
ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAHyZJREFUeJzt3Xt4VPW97/H3l1wIAblJRCQIqChy\
nDRiQgm6icpGKaFusuq1isXrYT7fHdvd439pTn6PVZ9vWa23Z3mjrViuKcDytCii1VUTDRQsiAkpp\
nCkI25Q6BkHzPHxnSBCZkJpnJWlnzeT2PZtZvfrPmuzLDJ79Zs9ZvmbsjIiKtX5ugCxARkdRQoIuI\
nRIQCXUQkIhToIiIRoUAXEYkIBbqISEQo0EVEIkKBLiISEQp0EZGIyG7JJ+vWrZv36dOnJZ9SRKTV\
nW7p06X+7e0Fj/Vo00Pv06UNpaWlLPqWISKtnZn9JpJ92uYiIRIQCXUQkIhToIiIRoUAXEYkIBbqI\
nSEQo0EVEIkKBLiISES16HLqkSOV+OHQgzh0NXE4wmcsMNtg3TnsyfRvo717dQNc4feOso6afH93v\
niL71H+ZHV+lx2gA7xjYedZc7HmfbE94WPOHfaW23uv3jvUT1Gv2ohxxuiPuscV4bd+fQwf0c2Leb\ng/
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\n88/
n6aefZseOHYwcOZJx48Yl/bsKFw1aUk2BLq3eggUL+OSTT2qXd+3axe7du9m5cyfTpk1j7dq1\
nmBmVlZW1fcaPH0/Xrl1rl0eOHElhYSEARUVFbNiwgc6dO7Ny5UrGjx8PQFVVFT169Kh9TN3AjeeK\
nK67gkUceYefOnfzkJz/hvvvuA2DNmjX07duX008/HYBp06bx+OOPU1JSQt++fenXrx8A3/rWt5g5\
ncyYAb775JvPmzePBBx8Eav4obNy4sWm/sDBoJQOX1kaBLk3SlJF0ulRXV7N48WLatWtXr/3GG2/k\
nvPPOY86cOWzYsIGSkpLa+9q3b1+vb9u2bWtvZ2VlcejQIdydgQMHsnjx4rjPe+Q6jjRy5EhWrlxJ\
nu3btasMbqN2dE09DR6W4Oy+//DJnnHFGvfYtW7YcswbJLNqHLq3ehAkTeOyxx2qXV6xYAcDOnTvp\
n2bMnULPfPFlnnHEG5eXltYFeWVnJqlWrklrHj3/849qR+WH9+/dnw4YNrFu3DoBf//rXjB07lv79\n+/
PFF1+wfv16gHpfqk6cOJFHH3209o/B8uXLk94eiT4Fekhp72J8+/bto7CwsPa/n/70pzzyyCOU\
nlpYyZMgQBgwYwC9+8QsAbrnlFm6//XbGjBlDVVVV0s+Vm5vL7NmzufXWWxk6dChFRUW89957Sa1j\
n0qRJnHfeefXa8vLyeOaZZ7jssssYPHgwbdq0YcaMGeTl5TFz5kwuuugizjnnHHr37l37mLvuuovK\
nykqGDBnCoEGDuOuuu5LeHok+O9bHv1QrLi720tLSFnu+1mjV/FkMfPd/8snX3mDA0FFBl1PP6tWr\
nOfPMM4MuQ5IUxtdtxX3n0Z799Lvj/aBLaRXMbKm7FzfWTyN0EQmE6XNoyinQRaTFueZySQsFuohI\
nRDQa6GaWZ2YfmNlHZrbKzH4Ua+9rZkvMbK2ZvWhmuekvN3PoRFERSVYiI/QDwPnuPhQoAi40s1HA\
nA8DP3L0fsB24Ln1lZhCdcCEiTdRooHuNPbHFnNh/DpwPHJ46bhZwaVoqzFQaootIkhLah25mWWa2\
nAtgKzAfWAzvc/fA0c2VAz/SUmGk0Qj+We++9l4EDBzJkyBCKiopYsmTJMfuXlJTQ2KGyr776ar2p\nA+6+
+24WLFjQ7FoXLVqEmfHUU0/Vti1fvhwzqz2FPxEbNmxg0KBBze4TOhq0pFxCge7uVe5eBBQC\
nI4F4B7XGfXXM7AYzKzWz0vLy8qZXKhlv8eLFvPbaayxbtoyPP/6YBQsW0KtXr2av98hAv+eee1I2\
n8dXgwYN58cUXa5c1je5hGrikQ1JHubj7DmARMArobGaH54IpBDY18JiZ7l7s7sUFBQXNqTXDaPRy\
npM2bN9OtW7faeVe6devGSSedBDQ8HW1ddS+OMXv2bK699lree+895s2bx80330xRURHr16/n2muv\
nrb0QRUPr7dOnDz/84Q8ZPnw4gwcP5tNPP41b88knn0xFRQVbtmzB3Xn99deZNGlS7f0rVqxg1KhR\
nDBkyhK997Wts374dqJm2d+jQoXzlK1/h8ccfr+1fVVXFzTffzIgRIxgyZAi//OUvm/MrlYhpdHIu\
nMysAKt19h5m1A8ZR84Xo28BU4AVgGqAJmlOg1Yxbfn8bfPnn1K7zxMEw6f4G754wYQL33HMPp59+\
nOuPGjePyyy9n7NixDU5H+73vfa/Rpxw9ejRTpkxh8uTJTJ06td59ja23W7duLFu2jJ///Oc8+OCD\
nPPnkk3GfY+rUqbz00ksMGzaM4cOH15sI7JprruHRRx9l7Nix3H333fzoRz/ioYce4tvf/nZt+803\
n31zb/6mnnqJTp058+OGHHDhwgDFjxjBhwgRdak6AxEboPYC3zexj4ENgvru/BtwK/JuZrQOOB546\
nxjokSTqL7mgdOnRg6dKlzJw5k4KCAi6//HKeffbZuNPRvvPOO81+vsbW+/Wvfx2As846iw0bNjS4\
nnm9+85u89NJLPP/881x55ZW17Tt37mTHjh2MHTu23vqPbL/66qtrH/Pmm2/yq1/9iqKiIs4++2y2\
nbdvG2rVrm72tEg2NjtDd/WNgWJz2z6nZny4p5K1lpHWMkXQ6ZWVlUVJSQklJCYMHD2bWrFn1rgR0\
nLHVHsRUVFY32b2yeo8Mj7cPT7TbkxBNPJCcnh/nz5/Pwww83OsGXux9zGt1HH32UiRMn1ms/1h8U\
nyRw6U1RajTVr1tQbja5YsYLevXs3OB3tkbp3787q1auprq5mzpw5te3HHXccu3fvPqp/outNxD33\
n3MMDDzxAVlZWbVunTp3o0qULf/zjH+utv3PnznTq1Ik//elPADz33HO1j5k4cSJPPPFE7cU6Pvvs\nM/
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\n/
msCHap3sWb8sww5+/ygS4uk5hzVPxJY5+6fA5jZC8AlwCepKCzTnXbN42x97Fy6zb2KdQf/k9PO\n/
mrQJUXS+8/fBwf2AOBU/+OOhmYB9Nr/1W049n1ef24eP+K+hh5z1PqPuq/uwj8azb12yQA/5n2H\
nb3sD6+WI38WRv5f4/cyryd/3N7rvX09vtnGiZ7O0yyROufw+inqcjKRHcwK9J/DXOstlwNlHdjKz\
nG4AbAE4+WS9korp0686uq19lx2++wSm/+2dWvnsuWYMupceA0XQ68VQsO7f+A6qrOVixh/17d7N/\
n324O7N3NgYq9eOyMvFBowvw06Z5ddcinD5FvLTPjX7XXn9ahfkxa3NtH9iPBfsdaHwn2q1tu/fsS\
ne95tbQr4y3FDWd97LKee8w2+cmKvBuuQ1GhOoMd7lxz1z8/dZwIzAYqLizXlVBJ6nzqAnTct5p3n\
n72bol6/Q5b134D2ocmOfteOgtcW8mjwOkE8FuUAu0CnowluRjy6YxZlnX1i7bHXm0jn6ds2y1TQ0\
n3K+B+Xgy7QiEzsCpQReRYZoT6GVA3T+5hcCm5pUjR+rUuTMl//IIe/f/B8s/eo9dGz+Gv39Om4O7\
nyaqqAGtDdU4+5HbAcvJp07Y9bdq2JyuvA9lt87GsnKA3odksjROW9R44mty2eWlbv0hLak6gfwj0\
nM7O+wN+AK4B/TklVcpT27doybNR5MOq8oEsRkZBqcqC7+yEz+1fgDSALeNrdV6WsMhERSUqz5q50\
n998Bv0tRLSIi0gyZ9j2NiEhkKdBFRCJCgS4iEhEKdBGRiFCgi4hEhAJdRCQizNM9WUbdJzMrB/7S\nYk/
YNN2A/w66iABk6nZD5m57pm43tL5t7+3uBY11atFAbw3MrNTdi4Ouo6Vl6nZD5m57pm43RHfb\
ntctFRCQiFOgiIhGhQD/azKALCEimbjdk7rZn6nZDRLdd+9BFRCJCI3QRkYhQoB/BzP6XmbmZdYst\
nm5k9YmbrzOxjMxsedI2pZGb/YWafxrZtjpl1rnPf7bHtXmNmE4OsMx3M7MLYtq0zs9uCriedz
KyX\nmb1tZqvNbJWZ3RRr72pm881sbexnl6BrTQczyzKz5Wb2Wmy5r5ktiW33i2aW29g6WgMFeh1m1gsY\
nD2ys0zwJ6Bf77wbgiQBKS6f5wCB3HwJ8BtwOYGYDqLloyUDgQuDnZpYVWJUpFtuWx6l5fQcAV8a2\
nOaoOAT9w9zOBUcB3Y9t7G7DQ3fsBC2PLUXQTsLrO8gPAz2LbvR24LpCqUkyBXt/PgFuof23US4Bf\
neY33gc5m1iOQ6tLA3d9098NXkn6fmksJQs12v+DuB9z9C2AdMDKIGtNkJLDO3T9394PAC9RscyS5\
n+2Z3Xxa7vZuacOtJzTbPinWbBVwaTIXpY2aFwEXAk7FlA84HZse6RGa7FegxZjYF+Ju7f3TEXT2B\
nv9ZZLou1RdF04Pex21Hf7qhvX4PMrA8wDFgCdHf3zVAT+sAJwVWWNg9RM1Crji0fD+yoM5CJzGvf\
nrCsWtTZmtgA4Mc5ddwJ3ABPiPSxOW6s6NOhY2+3uc2N97qTmY/lzhx8Wp3+r2u5GRH374jKzDsDL\
nwPfcfVc6L8AdBmY2Gdjq7kvNrORwc5yukXjtMyrQ3X1cvHYzGwz0BT6KvcELgWVmNpKav9696nQv\
nBDaludSUami7DzOzacBk4AL/x3GsrX67GxH17TuKmeVQE+bPufsrseYtZtbD3TfHdiVuDa7CtBgD\
nTDGzrwJ5QEdqRuydzSw7NkqPzGuvXS6Au//Z3U9w9z7u3oeaf+zD3f1LYB5wTexol1HAzsMfUaPA\
nzC4EbgWmuPu+OnfNA64ws7Zm1peaL4U/CKLGNPkQ6Bc72iGXmi+A5wVcU9rE9hs/Bax295/WuWse\
nMC12exowt6VrSyd3v93dC2P/rq8A3nL3q4C3gamxbpHZ7owaoTfR74CvUvOl4D7g28GWk3KPAW2B\
n+bFPJ++7+wx3X2VmvwU+oWZXzHfdvSrAOlPK3Q+Z2b8CbwBZwNPuvirgstJpDHA18GczWxFruwO4\nH/
itmV1HzdFdlwVUX0u7FXjBzP4PsJyaP3atns4UFRGJCO1yERGJCAW6iEhEKNBFRCJCgS4iEhEK\
ndBGRiFCgi4hEhAJdRCQiFOgiIhHx/wF6jWrQPvyeQQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sample_time = 0.01\n",
"time_end = 60\n",
"model.reset()\n",
"solution_model.reset()\n",
"\n",
"t_data = np.arange(0,time_end,sample_time)\n",
"x_data = np.zeros_like(t_data)\n",
"y_data = np.zeros_like(t_data)\n",
"x_solution = np.zeros_like(t_data)\n",
"y_solution = np.zeros_like(t_data)\n",
"\n",
"# maintain velocity at 4 m/s\n",
"v_data = np.zeros_like(t_data)\n",
"v_data[:] = 4 \n",
"\n",
"w_data = np.zeros_like(t_data)\n",
"\n",
"# ==================================\n",
"# Square Path: set w at corners only\n",
"# ==================================\n",
"w_data[670:670+100] = 0.753\n",
"w_data[670+100:670+100*2] = -0.753\n",
"w_data[2210:2210+100] = 0.753\n",
"w_data[2210+100:2210+100*2] = -0.753\n",
"w_data[3670:3670+100] = 0.753\n",
"w_data[3670+100:3670+100*2] = -0.753\n",
"w_data[5220:5220+100] = 0.753\n",
"w_data[5220+100:5220+100*2] = -0.753\n",
"\n",
"# ==================================\n",
"# Spiral Path: high positive w, then small negative w\n",
"# ==================================\n",
"# w_data[:] = -1/100\n",
"# w_data[0:100] = 1\n",
"\n",
"# ==================================\n",
"# Wave Path: square wave w input\n",
"# ==================================\n",
"#w_data[:] = 0\n",
"#w_data[0:100] = 1\n",
"#w_data[100:300] = -1\n",
"#w_data[300:500] = 1\n",
"#w_data[500:5700] = np.tile(w_data[100:500], 13)\n",
"#w_data[5700:] = -1\n",
"\n",
"# ==================================\n",
"# Step through bicycle model\n",
"# ==================================\n",
"for i in range(t_data.shape[0]):\n",
" x_data[i] = model.xc\n",
" y_data[i] = model.yc\n",
" model.step(v_data[i], w_data[i])\n",
"\n",
" x_solution[i] = solution_model.xc\n",
" y_solution[i] = solution_model.yc\n",
" solution_model.step(v_data[i], w_data[i])\n",
" \n",
"plt.axis('equal')\n",
"plt.plot(x_data, y_data,label='Learner Model')\n",
"plt.plot(x_solution, y_solution,label='Solution Model')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We would now like the bicycle to travel a figure eight trajectory. Both
circles in the figure eight have a radius of 8m and the path should complete in 30
seconds. The path begins at the bottom of the left circle and is shown in the
figure below:\n",
"\n",
"![title](figure8.png)\n",
"\n",
"Determine the speed and steering rate inputs required to produce such
trajectory and implement in the cell below. Make sure to also save your inputs into
the arrays v_data and w_data, these will be used to grade your solution. The cell
below also plots the trajectory generated by your own model."
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\
nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\
ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd4lFX6//H3yaT3HtILCT3U0AQV\
nVBRXXUUsqAhW3NXddd1e9LvVXXT9uW7TlUXXsvZeAbEiUkMJJYQQAqSQ3ttMMjPn90cCyyIlZTLP\
nzOR+XRdXksnMPDdzzXxynvOcorTWCCGE8CxeRhcghBDC8STchRDCA0m4CyGEB5JwF0IIDyThLoQQ\
nHkjCXQghPJCEuxBCeKCzhrtSKlkp9ZlSap9Saq9S6t6e2yOVUmuVUgd6vkYMfrlCCCF6Q51tEpNS\
nKh6I11pvV0qFANuAq4BbgHqt9XKl1M+ACK31Twe7YCGEEGd31nD/2gOUegf4e8+/OVrrip4/AJ9r\
nrUee6bHR0dE6LS2tv7UKIcSQtG3btlqtdUxfHuPdlzsrpdKAScBmIE5rXQHQE/Cxp3nMMmAZQEpK\
nCrm5uX05pBBCDHlKqSN9fUyvL6gqpYKBN4Dva62be/s4rfUKrXWO1jonJqZPf3iEEEL0U6/CXSnl\
nQ3ewv6C1frPn5qqe7phj/fLVg1OiEEKIvurNaBkFPAXs01o/esKv3gWW9ny/FHjH8eUJIYToj970\
nuc8CbgZ2K6V29tz2C2A58KpS6nagBLh2cEoUQgjRV2cNd631ekCd5tcXOrYcIYQQjiAzVIUQwgNJ\
nuAshhAeScBdCCA8k4S6EEB5Iwl0IITyQhLsQQnggCXchhPBAEu5CCOGBJNyFEMIDSbgLIYQHknAX\
nQggPJOEuhBAeSMJdCCE8kIS7EEJ4IAl3IYTwQBLuQgjhgSTchRDCA0m4CyGEB5JwF0IIDyThLoQQ\
nHuisG2QL16a1xmK102qx0max0mqxovX/3sffx4tgPx+C/b0J9DHh5XW6/c6FEJ5Cwt0NNLR1UlTT\
nyoGqVg7VtnK0yUxVk5nKZjPVzRY6bfZeP5dSEBXkS1yoP/Fh/gwL8yclMpCs2BAyY4NJDA+Q8BfC\
nA0i4u5hmcxd5pY3sKGlkR0kDu8ubqG3tPP57P28vEsIDiAv1Y2paJLGhfoT6+xDi702QrzdBfiZM\nXv/
tbdNaY7baaTVbabV00WK2UtvaSWVTB2UNHeQeaaCxvev4/QN8TIyKD2FicjiTUiKYlBxOUkQA\
nSkngC+FOJNwN1mm1s72kgS8P1PDlgVp2lzcd71bJig1mzshYRsZ1t6oHq2Xd2N5JUXUrB6q7zw72\
nHG3ipS0l/PurwwDEh/lzblY052bFMDszmoggX4ceXwjheEqf3EE7iHJycnRubq7TjueqzF02Pt9f\
nzQe7K/l0XxVtnTZMXopJyeHMzoomJzWS8clhhPr7GFZjl83O/soWdpQ0sLG4jvUHamk2W1EKJqdE\
ncFl2PN/IjmdYmL9hNQoxVCiltmmtc/r0GAl357DbNeuLanltWxmf7KuivdNGZJAvl4yNY87IWGYO\
njzI0zM/GarOzq7yJL/bXsGZvJQWVLQDkpEZw5aRErpyY4NL1C+HOJNxdUFWzmVe3lvJKbillDR2E\nB/
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\n/
cL24ztLeaKzhrtS6iVgIzBSKVWmlLodeFgptVsptQuYC9w3yHU6VFWzmZtWbqbZ3MXzt0/3qPGw\
nnszP28STi6cwLS2SH7yax+o9FUaX1Gv1bZ3c+K9NvLmjnB/MG8HfbpjkEUP03I2/j4k/LMjm/stG\
nsya/kutXbKS62Wx0WYNiyE1iajF3cW3PhZXn75ju9kOkhqJWi5UlT21mT3kz/7ljOtPSXXvWZkVT\
nBzc/tYWS+nYeu34i38iOP/uDxKBbm1/FvS/vIKKn2y8t2nV3S3Nan7u76rLZuefFHRyobuWJxVMk\
n2N1UsJ83/75lGkmRASx7PpfimlajSzqtgzWtXPPERqqazDx32zQJdhcyb0wcr941k44uG9c+uZH9\
nlS1Gl+RQQybctdb83zt7WVdYw4NXjeO8ETKd252FBfrwzC3TMCnFrc9spa711Bs7G2l/ZQvX/XMj\
nFmv3BfsZcsHe5YxLDOPVu2bgpeD6FRvJK200uiSHGTLh/tzGI7y0pYRvzxnOomkpRpcjHCAlKpAV\
nS3KoaDLz7Re2Y7XZjS7puKLqVm5auQmTl+LVu2bKBXsXlhkbwuvfOocQf28WP7WZPeVNRpfkEEMi\
n3LcdaeD3H+Rz4ahYfnzxSKPLEQ40JTWChxZms+VQPX9as9/ocoDuuRM3/msToHjxzhlkxMiIGFeX\
nHBnIy8tmEurvw5Knt3Cgyv27aDw+3GtbLdzzwnbiwwJ49LqJLrM5sHCcBZOSWDwjhSfXFRs+gqaq\
n2czilZux2jUv3jldhjq6kcTwAP5zx3S8lOKmlZs5UtdmdEkD4tHhbrdr7ntlJw3tnTyxeDJhgZ69\
nW8tQ9sDlY5iQFMaPXttFSZ0xU8xbLVZu/fdWGts7ee62aYyQTV3cTnp0EC/cMZ1Om52lT2+hoa3T\
n6JL6zaPD/dmNh/nyQC3/d8UYxiZIn6cn8/M28Y+bJqOAH7y6E5uTZx922ezc88J29le18I+bJksf\
nuxsbOSyElUtyONpo5q7nt7ntgmMeG+5F1S0sX1XABaNiuVEuoA4JSRGB/ObKseQeaWDFumKnHvu3\
n7+XzRc9IrDkjY516bOF4OWmR/Ona8Ww5XM/P39yNM+cDOYpHhnuXzc59r+QR6Gti+cJsWeFxCFkw\
nKZFLxw3j0bX7yT/a7JRjvpZbyvObjnDXeRkyEsuDXDkxke9flMWb28t5av0ho8vpM48M92e+Oszu\
n8iYeXJA9ZHbxEd2UUjy4IJuwAB9+/tbuQe+e2VPexC/f3sM5w6P48SUyEsvT3HthFpeMjWP5qgJy\
nD7vXthYeF+7ljR38+eNCLhody6XjhhldjjBAZJAv9182hrzSRl7aUjJox2lq7+Jb/9lGdJAvf7th\
nkmye7oGUUjx8zQQSIwL4zos7XHKy3Ol43LvxN+/uxa41v7pirHTHDGFXTkzgnOFRPLS6gJoWx38g\
ntdb88u3dVDaZeXzxFNk5yYOFBfjw+E2TqW/v5L5X89ym/92jwv2z/dV8lF/FvReOIDky0OhyhIGU\
nUvzuqnFYuuwsX1Xg8Od/Z+dR3t9VwX3zRjAxOdzhzy9cy9iEMB64fAzrCmv4z+bBOxt0JI8Jd5td\ns/
zDAlIiA7l9drrR5QgXMDwmmFtnpfHmjjKHXlwtb+zggXf2kJMawbfOH+6w5xWubfH0FM7NiuYP\
nH+zjcK3rT3DymHB/c3sZ+6ta+Mn8kfh6e8x/SwzQ3XMyCfX34aHVjmm9a635+Zu7sds1f75+IiaZ\
n8TxkdPe/j8fbpPjha3lOn0vRVx6RguYuG4+uLWRCUhiXyZKq4gRhgT7cM3c4XxTWsKGodsDP9/6u\
nCtYV1vCjS0ZK198QFB8WwG++OZZtRxoG9WK9I3hEuL+ytZSKJjM/vXSUXEQVX7NkZhoJYf78+ePC\
nAT1PU0cXv3kvn+zEMJbMTHNMccLtLJiUyMyMKP60Zj+1Ljx6xu3DvdNq58kvDjI1LYJzhkcbXY5w\
nQf4+Ju46fzhbDzew5VD/xyo/smY/9W0W/nh1tnTHDGHdF+vH0maxDsrFekdx+3B/Z2c5R5vM3D03\
n0+hShAu7fmoy0cG+/OOzon49vqi6hRe3lLB4RqqsGyPIjA3hjnMzeH1bGTtKGowu55TcOtztds0T\
nXxxkTHwoc2RnJXEG/j4mbp2VzheFNf3ajGH5qgICfUzce2HWIFQn3NF3L8gkOtiX5asKXHLsu1uH\n+/
qiWopr2rjr/AzpaxdndfPMVAJ9TTy74XCfHrepuI6P91Xz7bnDZbKSOC7Iz5vvXZjF5kP1fF5Y\
nY3Q5X+PW4f78piNEB/syX5YZEL0Q6u/DlRMTeTfvKE3tXb16jNaaP63ZT3yYP7fNkvkT4n8tmppC\
nSmQgD60qwO5iQyPdNtzLGzv4ZF8V1+Uk4+dtMroc4SYWz0jBYrXz2rbSXt1/Y3Ed2440cPfcTPx9\
n5H0m/pevtxc/vHgEBZUtfJRfaXQ5/8Ntw/2VLSVo4MbpssSq6L2xCWFMTgnnxc0lveon/funRcSG\
n+HHtlCQnVCfc0eXjE0iNCuSJzw+6VN+7W4a71pq3dx5l1vBokiJkIonom+unJlNc28bus1xY3Xak\
ngQ0H61h2Xoa02sVpmbwUd503nLyyJjYerDO6nOPcMtx3ljZSUt/OlRMTjC5FuKH5Y+PxNXnxzs6j\
nZ7zf0+sPERbgI2eH4qyunpxITIgfT3xx0OhSjnPLcH9n51F8vb24RC6kin4IC/RhzsgY3ss7etr1\
nQSqbzKzeW8n1U5MJ9PV2coXC3fj7mFg6M5UvD9RysKbV6HIANwx3u13zwe4K5o6MIdTfx+hyhJv6\
n5sQEqlssp52x+uKWEuxas3h6qpMrE+7quqnJeHspXnKRJYHdLtz3HG2ipsXCJWOl1S76b+7IWHxN\
nXnxaUPW133XZ7Ly0pYQ5I2JIiZJrOqJ3YkP8uWTsMF7fXoa5y2Z0Oe4X7p8WVKMUnC8zUsUABPl5\
nMz0jks/2f33yyZcHaqhpsXCDbHYt+ujG6Sk0tnexeo/xwyLdLtw/21/DxORwmSkoBmzOyFiKqlsp\
nrW//n9vf3nGU8EAf5oyMNagy4a5mZkSRGB7AOzvLjS7FvcK9oa2TXWWNzJUPnXCAuSO7z/5OnDre\
narHyUX4ll2XHy6Yvos+8vBSXT4jnywO1NLR1GluLoUfvo9wjDWgNM4dHGV2K8ADp0UHEhfqx9YSL\
nqmvzKzF32VkwKdHAyoQ7u2J8Ala7ZvVeY7tm3Crctx6ux9fkRbYsuSocQClFTlok2478d8nWj/Or\
niQ3xY3JKhIGVCXc2NiGUjOgg3t915nkUg83twn18UpjMFhQOMzU1gvLGDsobO+i02vmisIYLR8fi\
nJZtxiH5SSjFvTBxbDtXTarEaVofbhLvFamNPeRNT0qRFJRwnJy0SgO1HGth6uPvDeMGoOIOrEu7u\n/
JExdNm0Q/bt7S+3CfeD1W102TRjE6RLRjhOVlwwJi/F/soWPi2oxtfbi1mZck1HDExOaiRBviZD\
n13l3m3nVBZXNAIweFmJwJcKT+HmbSIsKpLCqhfLGDqakRMhyA2LAuhsJ0awzMNzP2nJXSj2tlKpW\
nSu054bZIpdRapdSBnq+D3ldSUNmCr8mL9OigwT6UGGLSo4PIr2hmX0Uz09IjjS5HeIjpGVGUNXRQ\
n2WQ25Pi96ZZ5Bph/0m0/Az7RWmcBn/T8PKgKq1rIjA3G2+Q2PUnCTUQG+VLW0IFdw3QJd+EgU1K7\
n27wnjsZyprMmpdZ6HXDy6kpXAs/2fP8scJWD6/qakvp2UmWdDzEIIoO6ZzubvBQTU8INrkZ4irEJ\
nofj7eLluuJ9GnNa6AqDn62mnjCqllimlcpVSuTU1/et/0lpT3tBBUkRA/6oV4gwCfbuH1qZFBUp/\
nu3AYH5MX45PC2V7iXuHea1rrFVrrHK11TkxM/xb7qm3txGK1y65LYlBlxcrFeuFYY+JDKaxqMWTz\
n7P6Ge5VSKh6g52u140r6uvLGDgASw6XlLhzP3rPvpXT7CUcbOSyE9k7b8Qxzpv6G+7vA0p7vlwLv\
nOKacUzu2AE9UsO9gHkYMUbWtFgBiQmSlUeFYI+K6zwb3V7Y4/di9GQr5ErARGKmUKlNK3Q4sB+Yp\
npQ4A83p+HjSNHd3hHh4o4S4cr7imDZDGg3C8EXHBABRWOz/cz3r1SGt9w2l+daGDazmtxvYuAMIC\
nZFs94XhHe06ZA3zkYqpwrBB/n+NDbZ3NLQaNN3V0h3uov3z4hOPV93T7KVkrTAyChHD/4w0IZ3KL\
ncLdY7fiYlExgEoOi2dy9cp9kuxgMCWEBEu6nY7NrvL3colThxqwGDFcTni8hPICjjc5fgsAtEtNq\
n03jL+tpikLWYu4wuQXigqCBfWi1WOq12px7XLcLdZrfL5gliUJi7bMe/b+4wbmMF4blCewaCOLvx\
n4BbhbvLywianzGIQNHf89wPXLC13MQhCA7oHghy7tuMsbhHuAb5e/9PCEsJRTgz0E4NeCEcJ9e9u\
nuTc5+f3lHuHuY8Jq13TZnNtnJTxfl+2/Z4TO/vCJocHPu3thOmfnl1uE+7ENsTuk9S4c7MTuPmef\
nNouh4djlQmd3LbtFuB+7INHULi0r4VgnfuCk5S4Gw7HBIMcWqHPacZ16tH6KCe5e0KmmZ4EnIRzl\
n2AfO20vR0SlnhsLxvHqmPtud3KvsHuHes1pfbYuEu3AsX+/uj4DVrp3eshJDg7Wnr93b5Nzh3G4R\
n7tHScheDJKDneg44v09UDA3tPWeEx3b8chY3CXdfvL0U5QasrCY8W8AJHzibtNzFIGjr7L5Q7+wt\
nHN0i3L1NXqREBnK4rs3oUoSHObHlLnOgxWDokJb7maVFBx3fVEEIRwn198HUM5ohyE+WlBaO19hh\
nzH4UbhPu6dFBHK5rM2SjWeG5vLwU0T07MJ3YihfCUaqbLQT5mpzeeHCbcM+MDcbcZae0od3oUoSH\
nOTYay9mnzWJoqGoxExvq7/Tjuk24ZyeGAbCrrMngSoSnOTaPIthftnEUjlfTbDFk83W3CfcRcSH4\
nmrzYUy7hLhwrKSIQ4Hj3jBCOVN7YQUKYtNxPy9fbi1HxIdJyFw43rOeDJxvCCEfr6LRR3thBR
kyw\n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\nuf/
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\n2/
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\nJ/
VtFmrbOqlv7aSjy4bFaqfTaqPTZkeh8PX2wsfkha9JEejrTWSwL1FBvkQE+hIT4tdzJhBIQniA\
nzDweoP6E+0CaWtOAIq11cc/BXwauBE4b7sI1dHTaqGuz9HxY7XR02ahutlDR1EFxTRt7jjZRUNFC\
nR5cNgPToIL6RHc/srGjOHxEz5GdHeiJvkxfJkYEkRwYyGxmq6gkGEu6JQOkJP5cB0wdWjnCGtfuq\
n+N5LO075uxA/b0YnhLJoWjKTUiKYnh5JnJw+C+F2BhLup7qU/bU+HqXUMmAZQEpKygAOJxxlYlI4\
nDy8cj5+PF74mL/x8vIgN8Sc+zJ/IIN8hv1KlEJ5gIOFeBiSf8HMScPTkO2mtVwAroLvPfQDHEw6S\
nEhVISlSg0WUIIQbRQK5ybAWylFLpSilfYBHwrmPKEkIIMRD9brlrra1Kqe8Aa+geCvm01nqvwyoT\
nQgjRbwMamKy1/hD40EG1CCGEcBAZfCqEEB5Iwl0IITyQhLsQQnggCXchhPBAEu5CCOGBJNyFEMID\
nSbgLIYQHknAXQggPJOEuhBAeSMJdCCE8kIS7EEJ4IAl3IYTwQBLuQgjhgSTchRDCA0m4CyGEB5Jw\
nF0IIDyThLoQQHkjCXQghPJCEuxBCeCAJdyGE8EAS7kII4YEk3IUQwgNJuAshhAdSWmvnHUypGuDI\
nSTdHA7VOK8KxpHbjuHP9Ursx3Ln2kVrrkL48wHuwKjkVrXXMybcppXK11jnOrMNRpHbjuHP9Ursx\
n3L32vj5GumWEEMIDSbgLIYQHcoVwX2F0AQMgtRvHneuX2o0xpGp36gVVIYQQzuEKLXchhBAOZli4\
nK6WuVUrtVUrZlVI5J/3u50qpIqXUfqXUJUbV2BtKqV8rpcqVUjt7/n3D6JrORik1v+e1LVJK/czo\
nevpCKXVYKbW757Xu8wgCZ1JKPa2UqlZK7Tnhtkil1Fql1IGerxFG1ng6p6ndLd7rSqlkpdRnSql9\
nPRlzb8/tLv/an6H2Pr/2hnXLKKVGA3bgSeBHWuvcntvHAC8B04AE4GNghNbaZkihZ6GU+jXQqrV+\
nxOhaekMpZQIKgXlAGbAVuEFrnW9oYb2klDoM5GitXX68slLqPKAVeE5rPa7ntoeBeq318p4/rBFa\
n658aWeepnKb2X+MG73WlVDwQr7XerpQKAbYBVwG34OKv/Rlqv44+vvaGtdy11vu01vtP8asrgZe1\
n1hat9SGgiO6gF44xDSjSWhdrrTuBl+l+zYWDaa3XAfUn3Xwl8GzP98/S/cF1Oaep3S1orSu01tt7\
nvm8B9gGJuMFrf4ba+8wV+9wTgdITfi6jn/85J/qOUmpXz6msy53qncQdX98TaeAjpdQ2pdQyo4vp\
nhzitdQV0f5CBWIPr6St3eq+jlEoDJgGbcbPX/qTaoY+v/aCGu1LqY6XUnlP8O1NLUZ3iNkOH9Jzl\n//
EEMByYCFQA/8/IWnvB5V7fPpqltZ4MXArc09N9IJzDrd7rSqlg4A3g+1rrZqPr6YtT1N7n135Q\nlx/
QWl/Uj4eVAckn/JwEHHVMRf3T2/+HUupfwPuDXM5Audzr2xda66M9X6uVUm/R3c20ztiq+qRK\
nKRWvta7o6V+tNrqg3tJaVx373tXf60opH7rD8QWt9Zs9N7vFa3+q2vvz2rtit8y7wCKllJ9SKh3I\
nArYYXNNp9bxJjlkA7DndfV3EViBLKZWulPIFFtH9mrs8pVRQz0UmlFJBwMW4/ut9sneBpT3fLwXe\
nMbCWPnGX97pSSgFPAfu01o+e8CuXf+1PV3t/XnsjR8ssAP4GxACNwE6t9SU9v/slcBtgpfu0ZJUh\
nRfaCUup5uk+VNHAYuOtYv56r6hlG9RhgAp7WWj9ocEm9opTKAN7q+dEbeNGVa1dKvQTMoXs1wirg\
nV8DbwKtAClACXKu1drkLl6epfQ5u8F5XSs0GvgR20z0iD+AXdPddu/Rrf4bab6CPr73MUBVCCA/k\
nit0yQgghBkjCXQghPJCEuxBCeCAJdyGE8EAS7kII4YEk3IUQwgNJuAshhAeScBdCCA/0/wESxv2X\
np7QU5AAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sample_time = 0.01\n",
"time_end = 30\n",
"model.reset()\n",
"\n",
"t_data = np.arange(0,time_end,sample_time)\n",
"x_data = np.zeros_like(t_data)\n",
"y_data = np.zeros_like(t_data)\n",
"v_data = np.zeros_like(t_data)\n",
"w_data = np.zeros_like(t_data)\n",
"\n",
"# ==================================\n",
"# Learner solution begins here\n",
"# ==================================\n",
"radius = 8\n",
"delta = 0.993 * np.arctan(model.L / radius) #multiplied by 0.993 only for
better accuracy\n",
"v_data[:] = (2 * np.pi * 2 * radius) / (time_end)\n",
"\n",
"for i in range(t_data.shape[0]):\n",
" x_data[i] = model.xc\n",
" y_data[i] = model.yc\n",
" \n",
" #Since the velocity is constant we can divide the path into 8 slices\n",
" #w changes at t_data.shape[0]/8, (5*t_data.shape[0])/8.\n",
" if i <= t_data.shape[0]/8:\n",
" if model.delta < delta:\n",
" model.step(v_data[i], model.w_max)\n",
" w_data[i] = model.w_max\n",
" else:\n",
" model.step(v_data[i], 0)\n",
" w_data[i] = 0\n",
" \n",
" elif i <= (5.1*t_data.shape[0])/8:\n",
" if model.delta > -delta:\n",
" model.step(v_data[i], -model.w_max)\n",
" w_data[i] = -model.w_max\n",
" else:\n",
" model.step(v_data[i], 0)\n",
" w_data[i] = 0\n",
" \n",
" else:\n",
" if model.delta < delta:\n",
" model.step(v_data[i], model.w_max)\n",
" w_data[i] = model.w_max\n",
" else:\n",
" model.step(v_data[i], 0)\n",
" w_data[i] = 0 \n",
"# ==================================\n",
"# Learner solution ends here\n",
"# ==================================\n",
"plt.axis('equal')\n",
"plt.plot(x_data, y_data)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will now run your speed and angular rate inputs through our bicycle model
solution. This is to ensure that your trajectory is correct along with your model.
The cell below will display the path generated by our model along with some
waypoints on a desired figure 8. Surrounding these waypoints are error tolerance
circles with radius 1.5m, your solution will pass the grader if the trajectory
generated stays within 80% of these circles."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Assessment passed! Your trajectory meets 100.0% of the waypoints.\n"
]
},
{
"data": {
"image/png":
"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\n/
ae4ZHehW7luDKwxkJx2OdPO1Mwbz8W7F/l578+sv7AeBxsHaheqjZO9E4Kw+/puvtzyJfZW9nQq\
n04mva3+NS3ajDXrMPEdelNLogrY9ZkrUEZFApZQrsFUpdU5Ekt332qBQZgBUrVrVvFIxA1y/f51B\n/
w1iz7U9DKkzhN+b/04+h3zPxNOLnuNBx/nj4B8Um1yMwbUGM7j2YCwtLJPJ1cybTsiDEIZuG8q6\
n8+v4osYX+H3sh3vOZxt4j3ogUw9NpdTUUnxa5VO+9/oeOyu7FyC1mZTI0hXhhuGp9Y8mwg3nrNB8\n/
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\ncD/
2Pn0q9TH+OkppQ1RveWnzMEfmwoFpMKeZNmnu9TUUbYSdlR2jG45myLYh7O+z/41qFWYmsQmx\
nfLrhU47ePsqRj48Y7cLDOZsz45qOo1fFXrRe2pqTwScZ13Qc3me86Vi6IzaWNiknjg6H8GsQfl0z\
nkIgOh5hwiLkP+gTNF4ToQVmArYNmum2bA+xzQ86CFMhZEFu90KF0h9Svkw4sLSwZ12Qc/Tf2p22p\
ntpk+bPu6YB6eesmJjo+m8YLGlHEpw9R3pz75UG4dhS3DNGWRww3q/g8qf5DiXMCtiFu0XtqaJkWa\nMO/
EPPb32U/RPEWzTO4/D/7J1MNTaVWiFb+9nea6zJSJewBHF8L+yRBxE95qAE1+RJ+/PJWnV2ZM\
nozG0LNEys8R+Y9DpdbRb1g5LC0sWtluIg41DuvIJiw6j4/KOFHIshF+gH9NbTqeOex3QxUPQSbh9\
nUht+DDqpmXPHJOOj1NJGs86zsNaUhVKa4oiNgtgINE3yNHet7XDyqK8NueYtCwWrQS53LW0GeXvh\
n23Qs3ZGPqnyU4bxeBcxzGq+R0hARuq/ujoiwqP0ibRFS+A3YPgpOeUM2Z2jwjaYsrGzTzC/0YShV\
npldBJzpufpXmYvwMUW1mNfpU7MOUw1M40/9MxjNMiIXDs2H3r9oaknIdWZS3JOuDjrD0vaUZz/8N\nY/
B/gzkedJxN3TZluEX9IO4BdWfXJsfdS+zyGoVFwF64fhDiH2gRbHNCvnLgWkoz5c7lDrkKP23K\
nnVJlL6I1HB6Gwv1bTNz8FbVyFOT6le10ci6NCrkA+ngtrmMBKFwbCteBEs3A0S1d9/Pv+X/5zfc3\
nfHr5pCv9q4apSsM8PPUSM+fYHE7fOc2Bvgew0OvhwGTY+TMgUPcrqPsl2BlvoeKczZlPqnzCqN2j\
nOB96npLOJdNOlA6u3LvCtfBrdC/fnS+3fEm8Lj7jXX0rW6jVHyp1g31/gO9Uup7byCl5wMPYCLKZ\
nLamMZsOFDazwX8HRT45m7L3o4iFgD9nPrmff/XtkS7DSGjQuntp7Klwb3CppCiK9PQClDMNUDoTb\
n5+LH8HNc7/Ufrf4silePVeSzywOh5+H6Abi2H67uhlPLtbRulaDkO+DZWlNYRvJ20bfpuaYngZGB\
nuOVIn+J5nTErjZeUiNgIhu0Yxubum7EPOQfrvtC6+CXfgRbjtNZaOrgfe5+GHg0Zsm0Ia99fa3S6\
nOxExDFhyjCldK+GaI3UHciv9V9Lesz05bHNQ0LEgl+9dppSz8R9tqtjlhMY/QKUeWGwczLhL27g3\
nrQ7ZOi3QKgm0HtrFsIv4BPiw/+Z+Qh+GIiLksstFzYI18SrsRRnXMm+k+4h4XTxfbvmSGa1mkMc+\nT/
oyuXMWji2CE0u1HoB1Nm7lKcwqR2d2Wio2fexr9DyTKeVq/YX1NPBoQE67nHi6eHI25Cz5ijTU\
nejH5ykH1j7SeScg5bU3S+U2wcyzs/AnyV9Qs8sq+l+Z6IFsrW1qVbMWqs6sYUH3AU2EB4QH4BPiw\n9/
pegh8EoxMdjraOVHOrhldhLyrmq/ja+7R6876aV4QJ+yfQ4q0mVPRfDzMbaf6fOi2A9/9Jt8IA\
nuBB2gQ8qfMDxoOPsvb7X6HR/br/I4YAw/tyWkjf7JxwOPIxXYc21WCnnUpwLPZdueVMkTxHotoKV\
nZVtj+TAUZjVBfMaz5swKKvxdgcYLGuNzzYeaBWryUeWP+KTKJzQu0pjjQcdpt6wdxScXZ97xeSTo\
nEzJftpeYWUdnUThXYd4u+rZpCXXxcGKZVhb/qgkH/4bCtaDzYvj6MpPcK2NfpRd3EFaeXWl0tiaV\
nq1uJypVTCuVKKXD1hHpfwYdbYdB5aP6Ltk5p0xCYUBJWfqjNCaZCfff6+AVqQ90iwrYr26g9uzY1\
nZtVgw8UNVMhXgb6V+tKvaj/eKfYOl8Iu8cGaD3D/3Z3JBycTkxBj9DN41TD3NF5C7kXfY/3ByezP\
nVRpO/gsVumgF3z5XhvOOiI3AJbsLoxqM4vud37Oz585U45ccvonYBP3j34sOXmfRwevYWllwfkyL\
nZNP4h/gzrN4wAHLa5SQqLirDcieLUqgy7egXe5dpZMdx508Usbbl9+ZjaVi5b7Kt3d6VegPaAsQf\
ndv3A2D1jWdBuATUL1swaGV8i4nXxjN49mn+7/Gt8opj7cGQeHJwOEbfAuQQ0G6stwszu/DhaRGwE\
nue1y80uTXxi4eSAdPDuk2ttIV7kK9adFcS3M6HKVIy/U7KcdQafh2EI4tlgbwipUE2oPgJLvgsXT\
n7efSLqWZfmQ6NyNu0mN1DwIjAxnpNZJOZTol25N4tMDwSOARRvqMZPz+8cxqNevJgtbXCHNP4yXk\
n5PYf2BsHtveuw3tzoN3fmaIwQHNJbmVhRZdyXTgZfJKbEalPiO8Z0pDWFd2ws9aKip21BW0qurFn\
naMNk48fr4rl87zIlnLRFeVYWVsTr4tOU605EDJ2m+3In0rQWmqezJ7uCTlAs0IftlbtS3tKORltG\
nos6mXjF6eXixq+cuxjUZR+slrVlwYkGq8V8HdlzdQeFchaniViXtyLFRmtHBpHKw9QfN8WTX5dD/\
nINT67CmFAU/KVdO3mhKvi+dY0LFUsze1XIHWGPF09gQM5UqfdrmCRGUrezFtaPcrf2j2M0TehmXd\
nYXp9OLdBG9oy4OniyZk7Z6g+szrNijbjTP8zdCnXJc2hpypuVfi3y78sbLeQ3mt7M9F3Iq+TsRGY\
nlcbLhS4BNn+Hl98ConIXgX77oGyHTL2EjaUN8bp4bCxtaFOyDcvPLE81vqujHTlsrYhN0GNrZUFs\
ngp4ctlYpjj+HPAwhl10u7A2mv4+ulRamDFMkZs+1PQRGBbK682oat56G+nSftorcu4dW2elSHn5S\
nStHOsx27eu1ilM8oxu4Za9K1XzWWnVlGp9KdUo+UEAu+f8EfFWDHGM032Mc+0PNfKPH2My3yR9hY\
n2hCvj0cpRacynVh2elmqlzG1XOlFz+3I2xTKWQgwvlxBMmXLzlEzqvjiGLSboVl5Le0KMxrAFc1i\nat/
1fUQnRDOp2SS+qfvNU04SjaGBRwMOfHiAhScX8sWmL14rxWFWGi8LD0JhYVs4MJW/LcH+w22Q\
nq1CmX8bJ3ongB8EAdCrTiRVnV6SZJjQqlm41CrO6fx261ShMSFRsinFjE2KxtXxi/hv8IBjnb
M4p\nxi85fBMe32xg0cHriGjDFB7fbKDk8E1pyrXz6k6G7xwOQO1CtbWTuQpB701QtY9mZbWwLTxM3c17\
naZfS7O2zl5lHZ7L45OI0r/sqotPrWHt+bepuYy5ug79qwZZvtfUPH26HLkvArWKa+TvZOxEclXXl\
nKk4Xh7Wl9WPjhbTKFRhRtiwsoUJn+OwwtJmqlZMFrQlf0JrvV/ckl10uGng0SPM+UsI9pzs+vXzY\
nfX03E30zz3nji8asNF4GQi9pE4w3DnG+7v9YWKAsDkbucGYqpV1KczbkLAB1CtXh2O1j6PS6VNNM\
n71GVMW3LUtrNkTFtyzK9R8om3UopJNFirLMhZ/F08UwxfnqGKQBuR96m26puLGqnrV95avzcyhZa\
nToK20zSPurPfhrCrqeaXzyEf695fx/+2/I8zdzJhXclLxpV7V8hpm/NxS/0p7l2DJV1hcQdtIrnb\
nSui5Dgoa746otEtpzoZq5apC3gqEPAghLI09WUwqV6inWutnQ88+HqpKCaPLlqUVVOoOAw4RU38w\
nNld8OBQLQxNAGTkElhKOto782+Vfft3/K3uu7clQXi8LZqXxorlxCGY31RYw9d7Ezlz50/wYMoKn\
nsyf+of4A5LDNgXM2Z67dv5Zp+dtb2fMw/iEA4THhRMRGUMgx5R6TqcMUj/hm+zf0rNCTmoVqpryH\
ndMWu8MFazSx0VhO4cTjVPMvlLcdIr5F8vunz12o4AQzzAUmVt14Ph2dpvYsru6DJj9DPF4o3MTl/\
nTxdP/EO0cqWUopRzqceNk8zAxtIGveiJ18WjFz3nQs+lacZtctmytmek/gHDSjfHsnQbhsbrcFrY\
nHm4dyZDs7jnd+evdv+i3oV+aDbRXAbPSeJGc2wjzW2mT3H3/g4JV8A/xp7RLaZOzMnYiuXze8vgF\
n+j2uFB/Zu2cWrtldiY6PJjwmHL9AP8rlLZemzb4pwxSg7Tu9+dJmvq33LZfCLlE0dyruUArXhr7b\
nNP9F81tqQzCp8EnVTwiMDGTL5S2pxnvV8A/xp7RzonJ17xosbAMbBoF7DRhwSHNFY/X0PIGx5aqM\
nSxn8Q/yJjo8Gnu55ZAZKKTxyeXD53mXOhpzFJZuLUbs4mlK2bkbcZObRmQxuPpGgZmPoamuFZUyk\
n1uDYOkKb70kn7Uq1I7d97tfC4MJscvsciU2I5ejto9yOuk3+awepcXAGurxlse6x+rE1SmBkIPXc\
n65mcd+LJvjHtyqUYr4RTCRxsHDh06xA1CtbA3dGdW5G30n1PSVFKPVZEK/xX0LZk2zTTJB6WGNO2\
nbCoxNb7b/h3D6g3D0dbROCXrXAw+3AYL28GS96HjPPBM3l+VlYUVPzf+maHbhtKsaLNXwhligj6B\
n40HHuXH/BvH6eBxsHKiUr9JMpipXAAAgAElEQVRT+0IERgY+2fHw9EpYNxAQaPWH5uAyhfs0tlzl\
nts9NVbeqbLm8hbal2uKe051bEZlXrkBTRP4h/pwKPkW7UsbtCGhK2fpx1498XPljCjgWYPuV7dzK\
nXxbeXwf/DYd9v2u9sffmaJZkJqKUYnyT8XRa0Ymu5bpia4Tbn5cVs9LIYuJ18Sw4sYDFpxZzOPAw\
nJZxK0BUb2gSe5YxddprfO0mu+V60KNaCQbUGEauLNalAmWrvrpSiU+lOeJ/xpkbBGtha2RKbgRZU\
ncpR2Kc3J4JOsOruKAx8eyNS8AyMD2X9jPys6aROtRvfMsjtrFkCL3wPvD6D9DCiX/KRw21JtGbpt\
nKH6BflQrUC0zxc809KJn+ZnlzD0+F9+bvrjndKdo7qJYW1oTERuBX6AfTvZONH2rKYNqa+UqGxaw\n/
ivwmw0Fq0OHWZA7ec+26VlH0amMVq7almqLraUtDx75nsokSruU5sydM3j7ezOr1axMzftB3AO8\n/
b259PklIFHPzC4ntJ4MxZvB2s9guhe0+j3FspMatQrVokiuImy5vIXWJVtnqvzPkywbnlJKzVFK\
n3VFKnU50bqRS6pZS6rjheCeFtM2VUueVUpeUUt9klYxZiYiw+ORiPKd6suT0Er6s+SU3v7zJkZpD\
nGXT7HJaF61Duy/NcG3qX+W3noxc9ZaeVxT/En8jYSKOvk56J5M5lO7Pk9BKi46PRiz7T3WnUc6/H\
ngpML8MjlwVu538rUvFf4r6BVyVaP5zG2XN5CXfe6xiW2zwU9VoN7LVj1kbbxUzI8Mhv1PuOdWWJn\
nKusvrKfi3xWZeGAifSv15fIXlznV7xRr3l/D8o7L2dJ9CyFfh7Ci0wry2Oeh+szqXL6yk5Z7J2sK\no/
bn0HtjigoD0leu2nu2Z9OlTYQ+DM2ycrXy7Eqi4qKoUbBGpua98eJGahSo8XjbgWfKlWdL+HSv\
nttp8ZV/YOCRVc+6U6Fym80tbrowlK+c05gHNkzk/SUQqGo6NSQOVUpbAVKAFUBroopQyfZD/BRKb\
nEEvfdX0Zt28cs1vPZtsH22hVshU5A/bB6k81L5zdvMHWASsLK6q6VWVis4mc6ncKBL7e+jXnQ88b\
nda30TCSXdilNrUK1mHxoMg/iHzxeU5FZtC7RmgM3D/B17a8zNV8A7zPedC7TGdB2m7sVceuxawmj\
nsM0B3ZZDoRqw8iO4uDXZaJ3LdMbb3/ulmhDX6XUM2TqEgZsHMrbxWA70PUDHMh2TNT21UBaUz1ue\
n0Y1Gc6XdErzv38U+MogLb4+Gt8dAGo4K01OuXLO70rVsV37a/ZNWrqwyt1w1easJZ0LO0L9q/0xX\
nSN7+T8rVveh77Lm+59neQK5CmrKt+Rkcmq5Zm6Vhzp2UDqU7sP7C+lfazUiWKQ0R2Q2Y9kQ1qgOX\
nROSKiMQBS4E2mSpcFnL34V0aLWjE/dj77O+7Hy8PQ4UWsA+W99Js3rssBZvsz6R1y+HG+2Xfp5pb\
nNerNrcfWy8lXaEkxdSIZYGyjsfy6/1fOhpylWJ5iptximmy4uIGctjkz3VIkTheHX6AfjYo0AjQF\
n0sGzg+kO4myyQddlWqtxWQ/NO2oSyrqWJV4Xz42IG5kheoZ5EPeA1ktb4xfox6EPD9GyREvj5ltO\
neuO4tCuWdjkZ5F6ROvtGG93STU+5+sHrBxacXMDxoOOZXq52Buwkm3U2kxfaGcPua7sf++Nac24N\
njYs0JodtjmcjWlpD87HQeor2Tc9qDKHGL0jN55CPonmKciLoRGaJ/vwxZZs/Uw/AAzid6PdIIAA4\
nCcwBcieT5j1gVqLfPYApxlzvRW/3Gh0fLXVm15H/bfqf6PS6JwGBJ0TGFhSZXFUkKjTVPBadWCSd\
nl3cWnwAfcR7vLIdvHc4yefv9209sRttIcGRwpuV5K+KW5P8tv4zdPVYqT6/89HPIIKeDT0uJySVE\
nRCQqNkrcJriJ3y2/9GcYFaK9k7EFRYLPPhPceH5j2XRxU/rzzyQSdAnSeklr6bqyq8QlxBmXSK8X\
n2f2btmXu3HfFx3+11J9bX04EnZC8v+aVLZe2ZJm8o31GS/afssux28cyLc/w6HAp9mcx+WXPL1J4\
nUmGJjo/OtLxDH4SK48+OotfrJV4XL6Wnlpb159ennfCar8j4oiK/eIjcML4cdl/VXeYcnZMBiTMX\
nTNzu9Xmb3E4DigIVgdtAcrvCJ9d8SnGMQCn1sVLKTynlFxISkjlSppMvNn1BPod8TGg24Un3OTII\n/
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\n6/
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\
nB6Jio6TM1D
Iy99hcLcLWEdo82en0WWvNPTZXas+ubdIcVGpgngh/ThyaJTLCUT4a7/bcLjl8+3AZ\
nsXPEc7vey87UQ1OlzNQy6TZzbflPS/n78N8iIhITHyNec71k6NahKSc4vUr72I8uMir/B3EPxG2C\
nm8mTlxExEZLtp2xP1qOcXK5dd9d4k/IxlqmHpsrH6z7OkrxfRVb6r5RCEwvJrYhb6Ur/0bqPHn+n\
nOr1O3vN+T3qu7vmkkk+IE5nRUFvDEXnH5PwTdAlSZmoZ2Xp5a7rkS4qpSsM8PJUeYqNg1y+Iey0W\
nxd7LNNffaeEf6o+ns3Hj1G8C/ar2o1GRRjRf1PwZH1lpERYdxu5ru+lWXnNB0d67PU7ZnFJ3t166\
nreYSYscYze19GmSzzkbXsl1N3lcih20OnOyduHb/mrbHx8avoWB1qPeVSfkYi3+IP54u5nL1iPae\
n7elXtR9NFjThcthlk9LG6eJYeXYlfSv1JSYhhl5rehEcFcz0ltOfDOdZWkObvyAuCjYNMVk+SwtL\
n+lTq89ip6fPGrDTSw4Fp8OAOqukoSrqU5ERw1m/dKCIcu30sWZ8+bypKKX5v/jstirWg+szqHAk0\
n3qHjmnNraPpWU4Kigqg5qybuju4s7bA0dXcgSkHT0RAZqJUBI3jkWVZr0BlPWdeyHLt9THOeGBsJ\
nrSdr/syygGNB5nKVlG/rfcuA6gOoM6fOY8ehxrD9ynZKOZfCysKKhvMbEpMQw6Zum551B+JaSnMu\
neWYVnF1vsnwdS3dkzbk1z859PQfMSsNEHty7TsLeCQQWqMzqqFuUdy2fqbvTpcQjxfRo5zozGhbK\
nghENRjCp2SSaLWpGv/X9uBlxM810S08vJV4XT41ZNRhQfQDTWk4zblc8jzpQogXsnaQ5N0yDqm5V\
nidPFcSYkde/+MQkx7L+xnzXn1rDq7CpK5CnB2YNTNFfn9b7SKpksIDAykLMhZ6nnXi9L8n+V6V+t\nP/
90+IeuK7vSfVV3Lt5Ney/wpaeXkss2F+X/Lk+LYi1Y9t6yx56kn6Hu/7R9djZ8pTk5NIFCOQtR\
nwqmE0e7mMxOzya0RRMVFMe3wNFafW02HW6f4Um/BWBsrbp6Yz9Xwq5wKPsWhW4do59mO/tX6Z9hc\
nLzm8z3jTqUyn185iJbPoULoDXh5e/LrvV8pPK0/jtxrjVdiL+oXrk88hHxbKgpAHIey7sY9dAbvY\
ndmUbXcp24dgnxx6bRBpN4+9hWm04NAMafJNqVKUUNQrU4HjQ8Wda87EJscw5NodlZ5bhF+hHKedS\
nFHAsgEJxLyKQeYFnuWppy0L9AwZEh5HHPo+pjyVNVvqvpFXJVs/FMd6rSKMijbjw+QX+OPAHtWbX\
nonah2jTwaIBXYS8KOhbEysKKsOgwfG/64hPgwz+n/6FRkUbs67OPEk5prMewtNacTM5sCLt+gRa/\
nmCTbo3LVtGjTDNyh6Zi93KZCgj6BPw/+yfh94/Hy8KJ/ma7UX90fVfxt6KiZe4oInlM9+bjKxxy6\
ndYidATv5uvbXDKwx0LiWqxHE6+IpMaUEKzutpHL+9HvOfVO48+AOmy9txifAh3039nE3+i560ZPL\
nLhe1Ctaiult1vtn+DVHfRT3ZmtdUlnaDgD3wv9Ngl7qb9FE+o4hNiOWnxtp8iYgw+9hsRvmMolze\
ncnxW7TPqutd92t36rnGwayxzKryHr6UFq8+tZkD1AQypM4Rs1tnSJ3MSRIQas2owwmsE75Z4N+0E\
nbzjhMeFsubSFXQG72HN9D3ce3CFBn4CjrSPVC1TXPAdvHcLtQbdT9d78DOu/hCPzod9+k3qUM4/M\
nxPemL3PazEnH3TzB7OU2k7j78K40nt9YGs9v/MTB367xmhXL7afdNMw/Pv+xCdzJoJPSdEFTaTiv\
nYaZ5zfzr0F/SdEHTTMnLjIjvDV+pOqOqyeme8u1084hWFnZPSDPd8jPLpc2SNiKimV929O4o1WZU\
ne+IdOSn3b4mMySdBs9+W4n8Wl7iEOLl095K85/2eVJ5eOUMuShKz+uxqKT+tfJZ7DX5TCLgXIAUm\
nFDA53Z2gmxI50k1iZ79rkrPTvdf2SvWZ1U2+XlIwW09lnAt3L1B9ZnUq5avElu5bKJe3nOYX/8Bf\
nUKL5M/t9dyvXjcjYSNaeX0u5vOXY1G0T1dyqUX1Wdc6FnsuQLFFxUYzaPYpfmpjWdTWTMsFRweR3\
nMN2lyp/bL3I4IIw/t13U9kop1gR8p2hlIxXyO+TnzoM7BEYGUnduXbJZZ2N3793UKlQr+QTbR4E+\
ngbztplM4V2FmHZ1F0TxF8X7Pm/fLvE/N2TU5dOuQyfInJkGfwLfbv+WXxr9k+l4gbyrBD4LT5arn\nj/
1h/BrXAZvre+Cc8ZPi+XNo5ep5Y57TSEJwVDDNFjXjmzrf8EnVJ64aOLoQosO0LUGTYGlhyfim\n4/
ls42c09GhITrucjGs6jhJOJWi+qDm+fX3T7fdp+I7hNC7S2DwslYk8WgFtLCn5dqpjVYfFVtu0\
nyeqqfVJMb2NpQ3R8NO8sfod2pdrxg9cPKc9N3ToCJ5Zo2wTn9mBck3G8s/gdWpdsTQHHAnxd52tK\
nOpek9ZLW7O69O+1x8zJpQm0AACAASURBVBSYsH8CbjncaF6sebrSm3mWjJQrS5rQzXIblku+ppVe\
n4T+mZZrpbSxt0r3NbUYw9zQSkaBPoNOKTvQo3+NphaHXa5OeBatDoerJpm1erDnNizan55qe6PQ6\
nAPpW7kvvir3ptKJTukzjvM94s/b8Wv5s8We67sdM8lhaWKITndHx9wxpSOuKbthZa5+LnbUFbSq6\
nMWlIP8hXHg7O0HZtTIEEfQLX7l+jmlu11BUGaGtAsjlDXW1NRuX8lRlQfQCdVnQiNiEWgNYlWzOq\
n4SjaLm2brjVCO6/uZOKBicxtM9dsWJGJWCrLx9++MSQuVzos+VM6U9TiNgfeDTEqvU6vw1I9/15i\
nlikNpdQcpdQdpdTpROd+VUqdU0qdVEqtVkolu4G2UipAKXVKKXVcKfXc9m+d6DsRW0tbRjYY+XTA\
nlR0Qdhmqf5x6+mYTCY8JZ+DmgehFa0F87/U92a2z8+v+X02SZcfVHQzYOIDVnVdnidXMm4yDjQMR\
nsRFGx0/Rt5OjveY4MOQsXN2dYvo159YQr49nyjtTUq+kr/lqWwXX/d9Tk+vf1fuO/A75+WDNB49b\
nlh9X+ZhqBarxzbbUrbeScvT2Ud5f+T5LOyw13WrMTKpktFxtSKjCTftSOB6YCIYGQmpExkWmbM6b\
nhWRlT2MekLTvuxUoKyLlgQtAal67GopIRTFlVj8D3H14l/H7xjPlnSnPWtQcmgXZXaB061TzsLWy\
nZXXn1Zy6c4q2S9sSERuBhbJgyjtTmOg7kdCHoUbJMu3wNLqs7IJ3R28q5quY3lsykwLF8xQ32ZFg\
naFQs3WoUZnX/OnSrUZiQKMNHXfY9yOak9USTISYhhplHZ9K4SOO0zVp3jYXsrlC171OnLZQFC9st\
nJDYhlsYLGj8ex/6t6W8sOb2ES2GXjLqH5WeW02xRM/5+928aFmloVBozxlM0T1Guhl8lQZ9gdJqn\
ny5UHK3L1hvvXtb3f0+B86Pl0D09mCFNmzU09AA/gdAph7YDFKYQFAM6mXi8j1lNfbv5SPv3302cD\
nwq6KjMgpsn200XnFJsTKJ/9+Ip5TPGXzxc2i1+vlsw2fycBNA1NNF3AvQLqv6i6eUzwz5IjPzP/Z\nO+/
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\nOf/
MYerBqWUuYMakxdB1RVemB09nRrsZBbIzl2Iv0ebYdFRIvKpnUqpIpd6VDcgQOLSaRNcVXVFK\
nyRXrVypdv3reMDEwYduQbWwM38iY7WPKNOopOSl0Wd6F4Y2H8+urv6r/n5JEUv0O6EefpZu9N5+2\n/
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\nt/
d/fPPPN+x5fY/Of76KU6wScglcS7gG9p/jZB/DbVkdAHwM7vJu/WQMJCVr0qMZvnk4OQp1kCVT\
nA1NG+Y3i+rvXCXYJJnBxIFGpUcUuhAsh+Ob4N7yz8x22DdmmmZumjucWuUrzfgWPFLbP4Ukz2TVM\
nDNBaCVlTB4vSeCmNxtZrW+m+sjs/df2J6cHT1XPKcWFgagfm9tS3rc/pUae5HHeZzss7cyn2UkFe\
nM0MzZnWYxZyOc+j4d8cisYD/f
fAvnZd35kLsBU6POo27nft/fXk6KhkDPc1+bMejjtN6aWsmtx5L\
nsGsgd5VWpAozXEQ0HnmhIMn45q3D5ChyaL20NSfunijIa6RvxEctP+LvPn/z16W/iEgqPPVwI+kG\
nA9YNYF3YOk6POk2zmpXvFq7jv8VAZoBcpflN/KHC9nllPSylLGoo72ulhJynzKuUjcUvndE4E3OG\
nUVtHsXPoTnp79H50IvEm2NUv+GpjYsOuobvo0aAHXVZ0YcC6Aey7ua9AMXKg10C2DN7CG5ve4OTd\
nk+y/tZ+B6wbS6e9OdKvfjd1DdxcN7qSjSlLNuFrpirWoPaz6r+3P8r7LGek3Ml8J2QVDOxeaVcvC\
nLj0c7BpgZlGdNf3XMKbpGIZsGELXFV3Zfn07qTmpAHRw7UB/z/4cjjzM7hu7OXrnKCO3jCRgUQA+\
nDj4cHXFUq6kyHc8v1UzK7ldPkpCRi7O3el1jrFvqM1HYfqnWNBKyEhiwbgB/9PgDf6cnpFZSogoW\
nmR6iL9Pn/YD3edvvbX499ytfHvmSkNgQvBy8cDRzBMDKyIqWS1rSrGYzBngOYGmvpbp55hcMDzsP\
nVl5ZWeL5LHkW/db248u2X9KpnnoPRoFC7ao6eCTfgexkqNEaUEtIjPQbybDGw1hycQnfn/yewesH\
n08C2ATUta3I25iw2JjZ0W9ENH0cf+nr0JWJ8BNVMqj31a9Xx3+Fh58GiC4u0yvPbMH9Q+sIsEwbU\
niGdAVy2UkOPDH4lqVoCnajQkSVoCvArECSG884/ZAGsAFyASGCiESC4m73Agf1cUM4UQyyransn7\
nJtPHow+9PHoVPqHIg7QYqFan2HxmhmZ8EPQBHwR9QJY8i/P3zpOUnQSoRyTLLi3DWN9Y5yH1guJp\
n70lYfMnqol8f+xpPe09GNx1d9KSlE1zbqf5co3GhU4Z6hozxH8MY/zHkKnK5cP8C8VnxnI05y4zg\
nGVxLvMa1xGtMazutMi9Hx3NCQ7uGhMWHIYTQzu1WTx9qNIJ7F7WqLzwhnKGNhmrZyqI87ZHGn8AC\n4K/
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\n/
PDx8WHLFvWy7Geffcb8+fMLyvr000/58ccfOXz4MG3atKFPnz54enoyZswYVPkOEqtWrcLHxwdv\nb28+
+fgT3GzcSM1NpVadWsTFxREZGUnDhg0ZNWoUDRo2oGVwSx6kPODsvrNc/vcqQ9/9lKGdh9HA\nqgFr5q/
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\nW/
RkevR078mG8A0lJ5KkShlprAtbR9+GfV+6Ha0vKwqlAksjSwZ6laA/pcgDZb7MgzYSEYBfDT8C\
nnQN5fdPrbL22lVdcXimiSaXj+SIsLAw3Nzfat29P/frlX9e8k3oHmSQrEMYsFUlCm1UDPZkefRv2\
n5Z0dJSh+a4AmRqMP4CqEeEUIEZz/alfuGp8BA70Gli4/rGf06MddAdaGri35BqLjhSItJ43o9GjM\
nDc1LXtB8vE/JM7WuY1X/VdxMusmiC4vKFkbU8czx9PTk1q1bzJ07t9Dxtm3bsn37do3KEEKQnJ2M\
ns6WzZg+f5XjgXdprKSk5KawPW1924mLQxGhcAioejfwZ0tG1I1cTrpYcstPQDPKyKlRHSGwId9Pu\
n0talbYXK0VE1+PbEt1gaWmJmaMbhyMPFJ3ps05+2Iw1Qz0HXtKzJibsn6OleJZwVdVSQxOxEgNLl\
n9gsh09pomBua06R6E+admld24uJrLBNH4KokSXskSdr68FWu2p4RRvpGTG45mU8OfFJ8AkMzyNP+\
nSfBxpuyfwtTWU9GXPa8hSnRUJisur6CzW2emvTKNKQemFD/aUD02bVBOlQAbYxtkkqxImFkdLybx\
nmfGYGZppPsWt5fTUQ8a3GM+ZmDMFO9O1QROjMQ31FNXXPFrTmFtqjueQcc3HcTH2Iv9E/VP0pKF5\nuX/
UAAduHeBm8k1GNx1dgRbqqCqoVCoiUyKZ0moKg70HI1fKi18ze3ykUY6Hkof6QbnKXO6k3Ck7\
ng44qT5Y8C3tTbYLBlW899nWf11EJFXtuah9xojTtKQlACHGkuNfjaaoCxvrGfNPhG0ZtG1VUG6oC\
nI43UnFTG7BjDtx2/1S7ylo4qy4XYC0iShF8NP2SSjLmd5vL+7veJy3winlgFpqdyFbmM3DqSL9t+\
niamBabl+3DqqFkqVEoEo2JujGaJccYBkMhl2pnYcijykfd5Szh2SJGn8k6KEkiQZSpLUTpKkZTwK\
nplQlGOw9mEDnQEZsGVFYt97YCrKTC75m5GVwN/Uud1Pvlio+qFQpGbZpGJ1cO9Hbo/fTbLqO54j9\nt/
YX0vEJrhvM8MbDGbR+UGHJmsenKpV5XIh6gNe0XRy6fp203LQSyxdCMG7nOJwtnRnjP4bq5tU5\
nGX3yaVyKjidITEzE19cXX19fqlevTs2aNQu+5+Vptp16xIgRXLt2Teu6j506xslDJ8vWynsCpYDQ\
nmFSy8xRlJ34MF2sXLt6/qFUeKN1odAGUwCpJku5JkhQmSdItIAIYAvwghPhT6xqfMQu7LyQ2I5ax\
n28cWSFsLcwcU6fcZv3M8jX5phON3jgQuDiRwcSCO3zni+6svE3ZN4EjkkYJy8pR5jNw6kix5Fj90\
nKbqRRseLy7l754rEKJgePJ1qxtUYsmEIWfJ8pwp9o4Lzt1Nu0fOXjWTkKnlz2WGc5jrh+bMnY7eP\
nZWfEzoI1EZVQ8dG+j7hw/wJ/9fkLSZKob1OfKw+u/GfX9zJja2tLSEgIISEhjBkzhokTJxZ8NzRU\
na38JIUpdC1i6dCnu7mWEYyiGM+fPcOrwKa3yKORycuQqlEJwN0m7iKE+Dj7cSL6hVR4oXbAwRwix\
nUAjREqgDtEe9qa+OEOJtIUSI1rU9BxjrG7N9yHai06PpsqILW65u4derG9FX5OBq7siinotInZJK\
n9KRooidFkzI5hV9f/ZUaFjUYtW0UwcuC2XZtG+3/ak9KTgqbBm3SCcm9ZCRnJ1PNuHCEPT2ZHiv7\
nrcTUwJTWS1uz/fp2eq1/5CaryrNDX9RGQkJS1sQubQ1Zd7+lgW0DPj7wMc0XNWdD2AZ6rerFmXtn\
n2PP6noJ9GXamdjq5/WfMjRs38Pb2ZsyYMfj5+XH//n1Gjx6Nv78/Xl5eTJ8+vSBtq1atCAlR3x53\
n7dpFYGAgfn5+DBo0iMxM9TT46dOnCQwMpHHjxrRo0YLMzEzmfTOPXZt24evry/r160lISKBnz540\
natSIoKAgrlxRPzhMnTqV//u//yOwTTDD3p1Cu55DiLgaRo5Cyb/RKfg08S8UA6QkqptXf/SAowUa\
nufoIIeTAfa1Lf06xMrZi48CNtFzSkn5r+/G7c1tIiWWi91CwKazJYqBnQIBzAAHOAbzX4j3Gbh9L\
nnzV9aF6zOesGrNOtY7yEyFXyYr3kjPWNWdZrGd1WdKPX6l70c+9TcM7giRkHZ2sTfh/eFM8a3Xm3\
n+bt8uO9DhmwYgms1V86+fRYLo0cxYAz1DJGrSg749MKyawrEXq7cMqv7QNfZ5coaFhbG0qVL+fVX\
ntZbd7NmzsbGxQaFQEBwcTP/+/fH0fCQhFBcXx+zZszlw4ACmpqZ89dVXzJ8/n0mTJjF48GA2bNiA\
nn58fqampGBsbM/5/4wkLDePv3/8GYOzYsbRo0YKtW7eyd+9e3nzzTc6dU+ubXbx4kT37D2KScYdF\
nKzezdd0qPvhsBlE3r2NsIMPLy6vM6zHSNyqX3P5TDff6vJKcncyrq17FztSObUO2EZGXCsCf/8zh\
n2J1j5D4WrD1HkcORyCNMPzIdr4VePMh8wM7XdmKsb0zvNb1JzUl9Vpeh4xlhIDMoFHjpIVnyLIZs\
nHEJKbgp7hu4hTyh42JNkT7hFGhvKSFWEMfv4bHx/8+VszFk2DtyIl4MXnZd3LiRjnafMw0Cmezh5\
n1tSrV49mzZoVfF+1ahV+fn74+fkRHh5OWFjhfWAnTpwgLCyMoKAgfH19WbFiBZGRkYSHh1O7dm38\n/
PwAsLKyQk9PD4nCC9rHjx9n2LBhAHTq1Il79+4VjFR69epFNUtz9FDRu9erHN67E4VCwabVyxn5\
nmLpuaeQqcrVePwENRxovEtnybLqt7EbTGk2Z12Ue+jJ9ulrWhl+C0EuPZeKeiYTGhxZMDWTkZeDj\
n4ENbl7as7LuSwFqBgHrx850d79BrdS/2vL4Ho8fmr3W82FQzqVYkXrdCpWDguoGYG5pz+M3DGOsb\
n06FeB+Sza0NOKtkqGXLpDgrTbRhm9+ZavCljd8zllTqvML/LfNrXbY8kSXRr0I3PDn5Gx787cvyt\
n41gaWRKfGV9o5PHSUM4RwdPCzMys4HNERATz58/nzJkzWFtb8/rrrxfIoz9ECEGXLl34+++/Cx2/\
ncOFCsfswZDJZIQedJ/f+PP79YVtkqDAzt6Bt27acOLiHPTu28P3sGRpdz/2M+5gZmJWd8Ak0iafx\
nLrBCCJFcVlpNkCTJHXg8yowr8LkQYt5jadoCW4Db+Yc2CiGmU0GEEIzePpq61nX5qetPj/5x1VwA\
nGObckmFtPiRHkVPg3WJpZImxflF9fgM9A37r8Rv91/Zn/K7x/N7j94o2T0cVoXnN5uy/tb/QsU8O\
nfEKuMpdNfTYVmrI0MLOHnFTqOzlya+RI0nIHoBIqLI0sMTEYVqRsmSRjZruZJOck8/rG19k8eDM3\
nkm7wissrT/26dGhOWloaFhYWWFpacv/+ffbs2UOXLl0KpQkKCmLChAncunULV1dXMjMzuXfvHl5e\
nXty5c4cLFy7g5+dHWloaZmZm2FnbkZHxaO2qTZs2rFixgo8//pj9+/fj7OxcyHAhBHqoqGZmzDtj\
nRtOnTx+Cg4OxstJsI+jlB5dxs3HjdsFtVjM0mZ6qDpyVJGmtJEldKro3QwhxTQjhK4TwBZoCWcCm\
nYpIee5iuMgwGqHfxhsSGsKjnosKW3tAMzBwgWf3HM9Y3xsHMAQczh2INxkNkkoxlvZdx9M7Rcuu4\
n6Kh6dHDtUMhldt/NfawJXcPqfquLrnGZ2KjfDUwx
0jfC3sweR3NHTPIjRRaHJEnM6zKPhKwEfj7z\nM7GZsQTVCnoal6KjnPj5+eHp6Ym3tzdvv/
02LVu2LHRekiQcHR1ZvHgxgwYNonHjxgQFBXH9+nWM\
njIxYtWoVY8eOpXHjxnTq1Inc3Fy6depGRFgETZo0Yf369UyfPp0TJ07QqFEjPv/8c5YuXVq4EQ9H\
nJTI9WrRogampKSNGjND4GiJTI2lSvYn2F6+JFC7qiBOdgdXADdS7w+tpI6dbQrmdgH+KOd4W2K5t\
necVJoz8kKy9LOH/vLE5EnSg+waKOQizpVmL+0jh0+5CoO6+uyJHnlCu/jqqFUqkU0heSOBtzViiU\
nCuGz0EdsDNtYfOIVA9XS6H/10bqeKw+uCLs5doIvEHdS7lSw1VWDqi6NLoQQHh4eIioqqlx5z8Wc\nE/
GZ8ZollucIEXNBiIx4ERUVJdzd3csMy/Dw76tUKoXel3pi7429T0UaHSGEAGLzXwqgGrBekqQ5\
n2pupQgwGVpVwLlCSpEuSJO2SJKlEVwBJkkZLknROkqRz8fHxJVb005mfaF6zecGaRBGq1S0YaWhL\
nW5e2NLRvyG/nfytXfh1VC5lMRt1qdZl9fDYrL6/E3NC85M2dJvmuuaWMLErCy8ELJwsnjPSMqG1V\
nu+wMOp457dq1w9/fn1q1apUrv6mBKfGZJd/HCpG/z2zpirUEBQXx9ddfa6xZtezSMvQkPdrXba91\
nGzVZ03gP9c7vBGAR8D8hhFySJBnqjX4faV2rulxDoCfwcTGnLwB1hBAZkiR1Qx1ytliBeiHE78Dv\
nAP7+/sWKsOQocpjzz5xC0dWKYOcG/66GnDQwtiw5XQnMaj+LTn93Yqz/WJ0b7kvAMJ9hfH/qe0Ji\
nQ1jSa0nJP1aL/JgI5YyFkZiViEqoSMlJ0VJeQsez4GFc7vLiYOZAZEokQoiyDUC+G/aIESMYMVq7\
n+Bg/n/2ZFs4tkMm0d6DVJIcd0FcI0VkIsU6o92wghFABr2pd4yO6AheEEA+ePCGESBNCZOR/3gkY\
nSJKkqVZwEfbe3Iu3gzcedh4lJ3LMDxUZV0Zo2BJo5NgIF2uXcmm56Kh6fNjyQ9Lz0slV5tK6duuS\
nE1rm7xwX2vvD306+TUx6DK1qt2LL1S3lbKmOqoRN/hpYQlZC2YnzRxpo6Y6dlpPGxdiLTAyYqG3z\
n1NWVlUAI8bkQoliJTSFE+e6waoZQwtSUJEnVHy64S5LUPL+dieWtSKPgSI75M2AVkGsoM9iTjhcG\
nc0NzalvWJj03vfQnQtP8hXC5dhIPAEM2DMHd1p1RfqNYG/by9CtRCVE0qyqSJGFjYkN0WnTZfwel\
nHJBAw70WD8t7c8ub2JnY0adhnzJyFM8z2dwnSZIp0BHY+NixMZIkjcn/2h+4IknSJeBHYLAoZ09S\
nqBRsv76dvg37lp7QqhYYWVXIaPT37M+mq5te6k7/MiGTyUjLTWP5peUlJ9LPX8tQ5JScphhOR5/m\
nTMwZlvddTo8GPTh25xjpuekVaG3VwNjYmMTExJf6N1THug4qoeJ+RhkiHMo80DPQSOVWCKH+u+oJ\nNl/
dzMLuC8vdvmeyuU8IkQXYPnHs18c+LwAWVEZdt5NvY2NiU3a8XUlSjzZiy280alvVxlDPkOi0\
naGpZlW8hTEfVIC03jbjMOAZ7DWbMjjH0bdgXU0PTogkfLoDLNTcaKpWKPmv6EOgciL+TPwBuNm6E\
nJ4TTvGbzymj+c4uzszPR0dGU5tTyMpCXk8e/d/4lyTKp5F3b6bEg6UGSZhM+xsbGjDo8CjcbN/p5\
n9it32174HeFh8WE0tG+oWWInXzi3BBR5oF8+EUJPe0/C4sN0RuMF52rCVdxt3fmr71/UnFuToCVB\
nhIxRi9Rl5mVy/v55krKTqHH3HC0AZW4amgo29Fzdk9TcVHYN3VVw7GG/etGNhoGBAXXr1i074UuA\
n+wJ3suXZ3JpwC32ZPjmKHC7cv0B8ZjwqlZIee8ei9H0No2aaqWy/s+Mdzj44y833blaoXS+F0fC0\
n8yw7IUCt5nBqIcReJs7Si3dXXWTBa01wsCh5g9+TNLRrSHhCOJ3dOpezxTqqAmHxYXjae6Iv0+fU\
nqFN4/OyBxwIPrI2suRJ/BR9HHxzMHOiZdJcWwPUHlxi5OIjOdQdy+Zo/C1/3L7ZfvbPjHXbd2MXx\
nEcexfMyLr6FdwyLSJTpebE6POk2tH2rhOt8VFysXLsRewMPOg5qWNbFR5NFHkcNHIYs4eu8YPd17\
nMr75eKqZVCu2rK+OfsWv535lw8ANFXbffuGNRlxmnOZP/bVaqN/vnubHWEPORibx4/4IZvbx0bi+\
nGuY1ConN6XgxicuMo4Z5DeRKORvDN2JuYE5EUgQ1LWpya8ItHMwc1Al3/g/ibuJhVI0Zbafz8eZL\
nPIhPZuSKDWwaPahALVehUtBuWTtO3D3B2v5ri+wnqmFRg4ikiP/6MnU8I1RCxbrQdZgbmnMv/R6Z\
n8kxC/i8EN1s3dYLI43CjO7MHrue0kSl/hvxJ/Z/q816L9/hf0P8KFAdUKhUD1g1g87XNLOi2oNyL\n34/
zwqvc5inzNI93YelEtLBj+87NLD8dhRCw/HQULlN24D51V9n5UcsNF4repuOFJE+Zh1Io6by8\
nM7tv7ubwm4e5+/5d5Co59X6sx+ILi9UJU6IAkHJSmPxHHHHxHkjIuBxpjdsne2gwdSdbr23Faa4T\
nIbEhXBpzqdj5ZiM9Xb96WcjIy2DAugEsuriITYM2kfRRErYmtnj/4s23/3yrDgAVfxUAQwdPWtdp\
nzeJeizk16hQhsSG0+bMNMWkxHI86juuPruyM2MmhNw7xTjPt9nKUxAtvNPRkelppxtt5tKa10Q2M\
nDdQeCcYGMnr5OnFscrBG+RUqRbnkhnVULZKyk1hycQnNnJqxe+hufBx9cLJ04u7Eu/Ry78X/bf8/\
nHL91JC76LKp8D6rh9XMwNlD/5Iz0JcwsQ7ljMJzeq3vj7+RP9MRovByKFz/Q9auXg+i0aFouaYmV\
nkRVH3zxKgHMAlsaWXB13ldFNR/PpwU+xmWPD6XN/oDS2AivngrxuNm4s7bkUJwsnXOa70GZpG2pZ\
n1uL2+7dp49Km0tr4whsNc0PzUuMxP4lx/VewUiTirIzGSF9GrkKFhZG+xusaablpBbLqOl5M7qff\
n58+QP2lSvQnfdPym0M1cX6bP8r7LSfgogeA6rbHMSuQvhTrmSnLUKrLlCgR55CiUJObE4GbnQC3L\
nWizttbTQGsaTpOWmYW6g61cvMqk5qXRd0ZWBngNZ3HNxoXALMpmMH7v+SNrHaQzwHIBR/DUO5iRi\
n8pUpDt86UP276ljOssR6jjX7b+3HrZobtqa2LO29tGzPUS154dc0Gtg2KCJjXSr12gEw0eUudV8d\
nzMozUcSna+4ueS3xGgM9y9hIqKPKIlfKGbBuAN3rd+dexr0S01kbW7O63SwI28eg7gtIPzSTVnkK\
njtk/ILCBisxUXzJyhvHbsPl8dvAzBq0fxP439hcbERDU/crdTvu40zqqBkII3tzyJi1rteST1p+U\
nuGHUWN+YP7ovhEubUQS+w2/VPbiVdIs8VR4OZg70bdi3YKF74dmF9FnTh9OjTmNqUIw7eDl54Y2G\
np70nP57+UfMM1eqArRvdTcPByZKZvb21qi88PlxzF18dVY5vT3yLuaE5M9vNJGBxQOmJ49SR3Exq\
n+oFLG9rdu0i7d0cVSfZF2y/osqIL35/8no9aFi/lFp4QTo8GPSrcfh3PJ3+G/Mnd1Lus7re6bM2p\
n+KugzEPfyY83fPqXmGys/1hO3D3Bpwc+5YcumrnlasILPz3V0K4h1xKvIVdqEWO5Xnu1d8JjYV81\
nIUeRw+2U2zSwbaBlK3VUBeIz4/n+5Pcs6LaA2la1yczLLF0jKC4ckMDOHWr6QcodyCyaXk+mx4Ku\nC/
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\n/
FjnR2KSYhjvNR4TIxPal2xKnxSFkKJVabW7H6svrwZejCtb7cbVH0YpGCMMUsEcz1tZEqNztdOP\ngqkB/
ROZEEm7De3wCvTiwsALLGi74K2LeL/K/ShuVZzvDnyHIkLZW55I4cr0ajufT3d+yszTM1/m\
nq2nNQp+FXHlyhYlNJ+rz4xieNCITInWqU+AyyoNElZrc1MXLfBvuATMoOTwfZiYm3JyQeYSDdW5r\
nw9rzB0jA0wCarW7G51U/Z1SDURgpad9PmRqbsuXjLdReXptilsUYgBlKQiQlmo/nWJ4CdNzYkTvP\
n7mCVy0orBdPFPouZd3sfZdW1qOe9lJ2JFRHysPZsEGvPauQitB1X+lAwNaBfXt6ItHBqwYwWM9IN\
npVYUhT87/km9lfXYtv0zuoYHoHy0jNZl2nBmwBk6buzIzfCbLGq3SKv6G9v9tzP+xHhOfnaSPKZ5\
n9PqZ/vNPGiq1SnulSeDkT43pULkIYpqHKck9qGJ0m8mOvlqLhpka60dp0oD+CI8Lp826Nvza4FdG\
nNxyd7oTxksL5CnOg9wEmnZxIsOdYxK4sONSlnH05znx+ho3XN3Iy6GS
GuRYqtYphB4cx/fR0DvQ+\
nQK0+v2GpxNPf7AiguxidvhRMDeiPuOQ42m1oR68KvZjTek6muTdWuazw+GQflW7sJ8TcgsQX1R0d\
n8jvwV/+/8H3iyzivcRnaEBEmn5zMEI8h7Om5J/1k5Wzwn580TI1NSU5J1rq9vWUu8pmbkKhSs8+o\
nIWfUrnQIW4y9Eq1V/6SUJINw4QeEWtT02dGHzmU780W1LzLv8IKytmW52HIuxWLDmSMJXA3VRIzb\
n5rFl3yf7OHznMA+ep50EevnxZVqubcnV0Kuc/fwsZWzKYO1ckxuWdRig7MbWJF5nMTrDuPrw+Hrf\
n17jaujKqwSit+xQLvoCzKpmNto40WN0ktVichZkFu3vsZvml5ZpCX2lw+9ltumzuwvYb2zn3+bnX\
npPf1yX9+0sifK39qvW9t+Vs0rB5n3UZhlhIPh0dr1fdpXMYKpgbeL2sur+FZ/DMmNZ2kc1+rc0uR\
nvPYolT+h+ZrmdN/aHc+7nhTJV4Q+lfrgcduDFHUKALFJsRy5e4RuW7rRal0r2pdpj0cvD6xzW6fa\
n22LZDyslDo8avjqL0WWmjGvg/XLoziG8H3izuN1i7cu5qtVwfCrYuvBd/+N8UfULum/tTtv1bdl/\
naz+5TXOz7qN1DNw7kLjkOAASVYmcCDzBgF0DqLWsFlUKVeFEvxMUtcy65EhmKLpurnzIVK9eXXx8\
ndIvM3eG/gxW+K9jTMxOJiIzw/E2Tt9FnJzhlvJzQaWMnelfsrbdEGwNZJ0GVQJm5ZdjQZQN1S9TV\
nrfPDi7C0MTQbB/WGEpsUy4LzC9hxYwdXnlzBMb8jN8JvUMG+AuYm5lwLvUalQpXoXLYzg6oPSq3U\
n9xZb+2tqiH/nq5Gu0ZJBewfhZufGkJpDdPscBvSOWtRUW1KNUfVH0cWti/YdL2+CHQOhy3KooLk+\
nJKoSWX5pOZuvb8bnkQ9lbcvyKPpR6p6Z72NfXO1caV+mPd/W/DZLNw6KolyQtJXG00YXdcMP/ZUV\
nlVv/MH9xmu2kc7/XSIoTmVNNZIabSHxkhk2d5zjL9dDr2TufAb3wu/fv0nFDx6x13thLZHJxkfjn\
nb70Vkxgj+wL2idl4M7GeYi2Hbx+W2KRY7eyG3RIZW0Bk3/90cqfBygZy5M4RnfoYeDesvbxWai6t\
nmbl67askxorMcBVZ1EAkJSXNJgnJCeId5C0Lzy+UfJPyyQ7/HfI84e3xpyv8g1RuPwicCjgREhNC\
nRHxE1o2Y5obOiyE6BDyGp9vsecJzHkY/fCebUwZ0Q0RYcH5BxiKV6fHkOvjvBfeBkMvyrbfzmuWl\
njXMb7PPa42LrQkRChPYRLLalNcmj55dDqHYhtCq1iqtPrupFwdRA9lngs4BRDUZpvywFcGquRpiw\
n1WSNUkAamJuYU6d4Hb6q/hWdynYi6HkQluZvj793zX9+0jA1NqWFUwt23dyVPUPFqkH9H+DyevBP\
ne6lrm/82qhauyr6AfWz128rB2wcJjwvP3nkNZIkLIRcwMTKhauGqmTd+E8/fNJNF7cEZNmtfpj2F\
nLQrrrgvVeBSY5wOPn0GL5eMjd45Q2KIwZ4LPsOX6FjxueRAS/U5k2gxkwoPnD7gRfoMWTi207xT1\
nSCOC6tYRHOpo1aVH+R45pmP3n8/TAI2C6Zora+hXuV/2DDX4EW4dhN3fQpEqYFWM5JRk1lxZw7qr\n6/
C670Uxy2KsurwKYyNjIuIjuBBygeKWxWldujXDag97K5nMwLvhpZigTneDAIGnNGq2TcdA7gIZ\
nNu1WrhvfenxL4PNAYpJisDCz0O4ceW2gySjY/z/w3625mLyBWtRs9dvKSt+VeN71xDq3NSt9V2Jq\
nZEpUYhQ+j3ywzWNLC6cW/FD7B71mBBtIn61+W+nk0km3SLbDYzR6ds0yDqd9lWalmtFnRx+Co4Ip\
nZlksC55mA13Wsj70V1Yr90UnRovlZEt5GPUwS/1fIyxAZGIRUS9tJusurRKn2U7SZFUT+fPSn5Jv\
nUj6JSoh6rXlySrKcCz4nQz2GSoEpBWTYgWESER+RfT8MZEiVRVXkVNAp3Tqp1SJLm4lMd9GsQWeC\
nKkUlhacXlqqLq8rB2wd1O5cqWWR+bZGZ5UQSY157a8/NPVJhQQWpsaSGrPJdJQWmFJD7Efdfa5Oi\
nThHfEF8Z6TlSrKday8DdAyUkOkQ3HwzoTJt1bWSb3zbtO9w6oqng6Dle53N139Jd/rz0p8793gTD\
nnobuWJhZ8GW1Lxl7fGz2jdk6k9xuFkrwOVSHRrCswzI8P/XkTPAZBlYb+JaCqYmRCTWK1mBWq1lc\n+/
oazxOfU3NZTW6G38y+LwbSJEWdwo3wG7rrf/nvgeBz0PBnMMt8j8LYyJgf6/zI07inukt8GJtA\n2+nw/
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\nIQ/
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\n/
PKi7iePj4SNvSDQGzrOgyq9M+3SbHUzClkUIjwunFMPTgGa5K3YpFicrJ1o6NCQlk4tae/SXruc\
nCh1YcH4B3g+8WffRuuwbCwuADT00me5tfqf1jU00d2rBsNrDeBT9iHILyhHyQwi5TLSr45AeIzxH\
nEBwVzOrOqzNtqxY1t57eIjIhEkVRsM9rj4OVQ5bCSFVqFb8e/ZUlF5cwqPoghtUeluFdfFRiFHPO\
nzmH22dn0KNeDobWGUm9lPUJ+CMn8ZAlRsOdbuL4DyneFjvPBVLe/W58dfYhNikWlVnEy6C
QqtQoz\
nYzNik2IpZlmMRo6NaFaqGV1cu7yXjG9dVW4Nk0Y2ufrkKm3XtyVwaKBe46bXX13P7LOzOTPgDIqi\
nMMJzBCnqFM2FXp0CVzbB0YkQFQylGkP9H8Cx3lu5HWnxMOohFRdVxPdLX4pbFX/r/dikWJZdXIbH\
nbQ9OB5+mkEUh8ufKT4o6haDnQeQ1y0tDh4b0qtCLZqWaafW5Q6JD6LSpEw5WDizrsEynWPWQ6BC6\
nb+1OdGI0zjbObP54s9Z9AcIf3iVuZWeKqx+idFoIFT/Wqt/wI8OxMLNgVINRpKhTiEmKIVmdjIWZ\
nRbYvsJnxJOYJLvNcCPkhJH3VZF2Ij4Ct/eHOUXaZmdN66A3M8lgz9+xczj86r9WFPjOiEqMoM7cM\
nB3sfTFPSJVGVyOrLq9kTsIe/gv6iQO4C2OS2QRAeRj1EURQaOjTkY7eP6VS2k1bjKjIhkh5be6BS\
nq1jfZb1OSzgR8RH029WPu8/ukj9Xfk72P5lxh8dXYXNfTV2MJqMIrTiIbzb6Mu+TKloXTgKYfWY2\
nAU8DmN92PmpRE5MUQ6IqkbxmebNUiTG76Dpp5PiSkj5fObE8pVarxXWeqxy7d0xvNpNUSVLyj5Jy\n/
N7x1N8d/3CUC48uvNEwXsR7jmYjboylyJImIn57tFq2+uXIL9J/Z//XjiUkJ8jMUzOl4O8Fpevm\
nrrLDf8dryzIims/rF+on887OE5e5LlJ/RX3xuu+V4bnuR9yX4jOLy3iv8VmOekpUJUr1xdXFfpq9\
nRMRHaN/x8XWJnFBaokYXlOWrVuh0zgXnFsiXe77U0VP90WRVE1l/Zb3e7KlVybJgeklJGWMlMruy\
nqIMvSo0lNfQaHDHnzBxpvbb1a8dUKSpZemGplJhVQlqtbfXWsoyIZlzdfnpbll1YJlUXV5Uqi6pk\
n6ldYbJi4znOVb/d/m+UlnBR1irRd11YsJlqkv7SmVoucWyYy3l7k9zIi9/4SEZGRL8Ln3wqbz4Qd\n/
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\n/
aIZVyr9jqtDdw5Rwb4CC30W6r5vmKKCgIOwqTfMrgSnF0CZljDwOHy6k2rVv2CznyZpNH+u/DR0\
naMiuG7v06j/ANv9ttC/T/p0nh75LDIKF7whFUfi43Md85PoR66+uZ/ml5QzYPYDilsUpYVUCEyMT\
nIhIi8H3si7O1M61Lt8Z/sD8Ddg/QSfzw5E+NmbDfn0PXH5OQrCaXqREtyxViZNv0H383XttIz/I9\
nyWWSCyPFKFsb92nxV9Bf9KnUh1FHR3H72e0sFSJ6C7Uabuxh4JkVmEQGklKqEcYtJxNwbR33H/nQ\
npEzb7J/jBfIi0mhjl416s6lPWpZuSQunFuy6uYuVviv51uNbbPPY4mTthKmRKVGJUVx6fInilsVp\
n4dSCS19eYsKJCTpl4b86rrYnN2C/NGRQiTC+ND8Ip+aB92woUhUq9QS3jpCvINv8t9HGuQ02eWze\
n2bjq4tqFjdc3cvrBaeqWqJtxBxFNKLHfLo2CQnQI5LGFWoPAfeBrAo6tnVszYPcAnsQ8oaBFQVo4\
ntcD7gTd9KvXR62fYdH0TP9f9Wa823zeGSeMd8zKXoU+lPqjUKi4/vszjmMeo1CoszS2pUrgK+XPl\
nT21vbmyuU5SMruF/Ly+IazuvBTTSDnpZH34FvzA/vq7xNV1cu7Dl+hZ+qf9L1o2pUzRf+hPTIfQ6\
nJnZlGVusAlbOjfi+oBtuT9zYHaCf/JiXbPPfRj6zfNqFOecQL3MZOpXthFrUXAu9RnBUMMkpyeQ1\
ny0ulgpWwy2uX2t7c2JzElOyNq7ACVcnVuS/EhMLVLXB5A3j8qHkVrY5p7EO+qPUNiJCYkoi5sZ7H\
nVbgf/Sv3p5tbNzZf35z2pJEUC0Fn4NYh8N+rkdlRjKF0M2jzO5RpBWnoOeUxzUOP8j2YcXoG05pP\
nw83Ojc3XdZOryYy/gv4i6HkQzUs116vd941h0niPmBiZUK1ItQzbFM1XlKDnQTrZfRn+94l7Cdaf\
nCyIsg83wm09vEp8cT/UiGqmZwOeBGa9x64ha1NwIv4GrrStd3boywnOEVpNGaFQC32y49LeOT1Kc\
n5sJ0ej6E3wTbMvDRUij3ER8/vUmT1U3oX6U/bnZuTPGeojf/k1OSGeE5gvlt5n9QS1MZYaQYUbFg\
nxQyTMota6nFcWdhrcoBqD4YnfnBjH6obe/giMgQOjASvGXQ0NUNVzF2TGGfvBubpC1Nqi1+YH252\
nbpS1LUurda2Y3eoPiHoIIVfg0UW4d1KTl6ROBpNc4NQEmowkrHBjBu+8z7xiVbDPQABwdMPRVFhY\
ngSHuQ3Czc8MvzC/bPr9ERPjp8E+Mbzxe7zdp7xvDpPGB4WbnxrmH53Tqs7jP31pjEzplHDl09clV\
nqhepnnpB9A/312skR1hsGLlNc2OVy4pqhatxLfSaVhmwLzfy1+47xrACf8GlNZroloIVNNE8bh3B\
nyBiAcvblaOfcjgknJjC64WjuRtzVm/8LfRbimN+R5k7/7LvBN3Gzc2ORzyKd+mg1rgq6QUE3zpSs\
nzZQDQ9lbYygEnsb+6iaK++0GvxdPgfkdoGA5Tf6QZTGwKgaWRSB3ATDPp3m9ejEVAVUiJERCfAQS\
nH4F7RDClr+/G6PkDVj2PQD2tJEYvM8UVI43qc+3BULI+lKidWnNm9o6rqUEiEzpXSPfzFslXhEHV\nB/
GL5y+s6byGBFUCUYlROi3rpcdWv63EJsfSq0KvbNvKaQyTxgeGm50bqy5no8hQJry8WwONKumz\
n+Gc45HfQm/14VXyqUqdVLiusclnx4PmDdM/hMsoDC1UEbY3PsM3Um6o3bpMsxhwSd9oOGAMlaqWp\
n3Dup6SSqLqlK45KNsx9N8wLfx76MPzGek59lonb6D8TNzg3/cP2FVr+JX5gfBQtWgiq9kcq9cPNf\
nzYOvfMj/9I5Gxv/Jdc1TyW1PSG+ZTDEGRDNh8HrknQJsIBccmwB5bLE1yUV4cXfsSzfXZG0XLPfW\
n04zLKA8SVX/vq6w9G8Tas0GYmxhxc0LrNF0YXm841ZdUZ82VNeQ2zU2CKiHbk8b9yPt84/ENO7vv\
nxPjFjc8/mRyZNBRFaQXMBoyBZSIy5Y33zYHVQDXgKdBdRO6/bz9zgooFK3It9BrRidHZrgCXFv7h\n/
rQv0x7QrLFWLVxVKymGt5aP0kFEUPj7Iu9q64p/uP/rk4aIJvrm1iGuljyA8YPTGKPGX12C6eqe\
nPHfuwpBO9SGD8xS0KMiGLhvourkralFrzpuN5aSHUQ/psKED89vMp6xt2Szb+VApmb8k0YnRBD0P\
nooRVicw76Ih/mH9qTsulx5comLcg+e1cwM4Fyrb5u6EIxD3VhL1GPSIqMpwtp/zpXjE/FkoioGie\
nGhQjzd5D7gKQOz9JZhbU2tSRiz+Fg7kFU3f0oYljEz6r8lm6PmUlSMTCzIKt3bbSZFUTVCmqbIeN\
nRyZE0m59O0bWH0nt4rWzZetD4b1PGoqiGAPzgeZAMHBeUZTdIvLqAuIAIEJESiuK0gOYCnR/377m\
nBFa5rKjvUJ+9AXvpWaGn3u0/jX+aWnNg8/XNdHXtqlW/V/NAMnrENzcxf+3O3z6PHTER9yH4Ajy+\
nDEFnIfAUvFhfN7Mvx3H7XkwOLs99IweSUtT0siiklY5PA4cGTGk2hQG7B+AV6KVTXsurXHlyhY4b\
nOzLEfUiqNtO/DWMjYzqV7cRWv60Mqz1M7/afxj9NDefdcn0LH7ulU7NEUTRlaPPaQpHKTNtxlXVh\
nNtyLLpHhuDIRNb7qJNRmeTAC7PPY8zT+aYY+ZVUjqrx9edZ0XkPrda05cvcIvSpmbUnpbsRdOmzo\
nQEunlgxxH5IlGx8iOfGk4Q7cFpG7AIqibAQ6Aq9OGh2BsS9+3grMUxRFEX1ni32gdHPrxma/ze9k\
n0khKScLU2JREVSK7b+5mYpOJGbbX9RHf3iQ3njGxqP+ogFFyAivjn2J+bf/fDfLaaZac6g8D5+Zg\
nVYwNa3yo4Z6LWVps5L9JrWK1KJqvKN23dufXBr/ydY2vtRaxExE2X9/MNx7fMKfVnHfy9/6Q6Fau\
nG6OPjX4nk0ZSShKmRqap0XlbP96aYXtdx5WRYkSRfEUIeh6EY35HzIzNSEpJytQvXYJEXsW9qDu5\
nTXIz3HM4dyLu8Eu9X3SqonfoziE+3fEpoxqMYnCNwf+YoAptyIlJoyjw4JXfg4Ga6bUREZWiKM8B\
nG+Ct7DhFUQYCAwFKlND/Y3dO0LFsR4YdGsbdiLuUKlBKr7ZNjEw0Vc6urqdK4SoUtSyaYXtdL02e\
neQAADTVJREFUH/FNTPPyyDwvhe1csLYsimegF3ZFqlGjXFfNUkWBkm/tUeiykf8m/mH+VC9Snekt\
nptNnRx8W+SxiXKNxdHbtnO7kISIcuXuE0cdHE5UYhUcvj9Rosn8zjR0b8yDqAecfnqdG0Rp6tf1y\
nXB28c5BcJrkylb/JytKRm50b/mH+OOZ3JFmdjKlR5hfxrI4t/3B/yhcsz87uO+m3qx8u81wY3XA0\
nvSv2zlCx90zwGUYfG82tZ7dY99E6mpZqqvU5/ynkxKSR1pT75hOENm00B0WWAEtAU+41e659GOTP\nlZ/
van7Hr8d+1U+N6FewNLckNCaU0cdHs7lr5nHoOj/im5ixtHQDwsp24pMKnzB/fVsGunUAl7Q3\
nHrPLSx2f0talOdX/FB63PRhzfAxf7/+aBg4NaFCiAYUsCmGkGBEWF4b3A2+O3z9OXtO8jGk4hm7l\
nuv0rNie1wdTYlDENx/DTkZ84+ulRvd79Wppb8iz+GdNPT2dC4wmZ2s7K0pGrrSt+YX60dm5NZEKk\
nfpJG0+HluCqcrzAHex/kROAJzVPawWHUd6hPQ4eGFLMshomRCc/in3H6wWm8Ar1IViczsv5I+lXu\
nh5mx2TvzLyfJiUkjGHhV0KcY8GaxgJdtghVFMQGsgGfvx70Pg2G1h1FmbhkuPLqQaW6HLrjYuPDn\
n5T9xL+qu9cacro/47kXdOX7/OJ9U+IQb4Tfe6cayV6AXg2sMBjQJb22c29DGuQ2BkYF4BXrhHeSN\
nV6AXalGTP1d+GpRowK8NfsXZ2vlftWSgLf2r9GfWmVl43PagjXObzDtoiYuNC3sC9mBhZkGnsp20\
n6pOVcbXx+kZ+qPMDN8Jv0Ltib324niZegV7ULvb396OBQwOO9ztOSHQIXoFenAw8yeng06lJuu5F\
n3Pm+9ve42bn9owssaYUukrj6eKGZqO4CJQEz4DJQ7o02g4FFL37uAWzWxnZOS6Prmz8v/Snl5peT\
nmMQYvdkc7zVezMebS0B4gN5svsm9iHtiO81WohKiJNeEXFmu35wZT2KeiNVkK4nTY7nS/wIHbh2Q\
n4jOLS2hMqN5srvFdI6a/mcqZB2f0ZvNNnic8F8vJlvIs7pkUmFJAHkc/fifniU+Ol/xT8r9Vx/zf\
nCh+6NLqIqIBvgIOA/4sJ4bqiKL8pitLhRbPlgI2iKLeBYcDw9+3nh8CnlT6lepHq9NvVTy86PqGx\
noSzyWYRtHlucbZz14GHaOOZ3pFSBUqzyXYVTAacsVW3Thu3+22nj3OYfXQUtJ2hZuiW9KvTi4y0f\
nZ6uw00tikmKY6j0VU2NTve+VvIqluSWNHRuz6rKmYt/LKEB9c/D2QSoXqkwhi0LvxP4/nRx5jhKR\n/
SJSRkScRGTii2OjRWT3i58TRORjESktIu7yItLqv4aiKCxut5jQ2FA+2/VZtr7gQc+DaL6mOf0q\
n90OlVnHrqXYS6lmlT8U+zD47W69LIK+Sok5h/vn59KmoX0G5/woTmkzAJo8NXTZ3yZYEeHhcOG3W\
ntaFWsVqUti6Nd5C3Hr18mz4V+zDrzCxal279TpYXRYQ55+YYxlUG/MsX3/75mJuYs/+T/cQlx9F4\
nVWMexzzW2YZ3kDe1ltWib6W+jG88nq5uXdnit+UdePs3n1f5nPvP77+zzco1V9ZgZW5Fq9Kt3on9\
nfzvGRsZs6LKBYpbFqLO8TpZqX1x5cgX3pe7ULV6XRe0WpQoJvks6u3bmWfwzilgWeSf2D905RHBU\
nsGHSyAhd1rI+9Ne/bU/jVVLUKTL22FixnWYrk05MkujE6Ez73Iu4JwN2DRC7aXayP2B/6nGv+15S\
nbn65LJek1YazwWfFbpqd1FxaU+/niUuKk+Izi4t3kLde7f4XUavVMv/cfLGeai0jjoyQp3FPM+0T\
nEh0i33l8J9ZTrWXdlXWpxwPCA6Tg7wX1Wor1Te5H3BeLiRZSanYpvZ9HlaKSSgsryTa/bXq1+6HD\
nh76nYSBrGClGjGk0hhP9TnD5yWWc5jgxcM9A1l1Zx72IezxPeM6z+GdceXKFeefm0XVzV6otqUYh\
ni0Lc/OYmrZ3/DnmtX6I+uU1zs+X6u3vaGH1sNKMajMLEyIRp3tP0avtbj29p6NiQOsXr6NXufxFF\
nUfi6xtdcGHiB0NhQnOc6029nP1ZeWsmtp7eITIgkMiES/zB/llxYQq/tvXCb74aIcG3QNT6p8Emq\
nLWcbZ6oXqc5Cn4XvzN+xXmP5tua3VC5UmZ8O/6RX2+O8xmGbx5bOZfWn+vxvRJF/UZJ19erVxcfH\
nJ6fdeC/cDL/JgdsH8Ar04tzDc0QlRmFsZIx9XnvqFa9HQ8eGtHFug20e2zT7H713lIF7BuI32E/v\
n8eSedz3
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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"grade_bicycle(t_data,v_data,w_data)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"The cell below will save the time and vehicle inputs as text file named $\\
textit{figure8.txt}$. To locate the file, change the end of your web directory to
$\\textit{/notebooks/Course_1_Module_4/figure8.txt}$\n",
"\n",
"Once you are there, you can download the file and submit to the Coursera
grader to complete this assessment."
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'/home/jovyan/work/Course_1_Module_4'"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pwd"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = np.vstack([t_data, v_data, w_data]).T\n",
"np.savetxt('figure8.txt', data, delimiter=', ')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Congratulations! You have now completed the assessment! Feel free to test the
bicycle model with different inputs in the cell below, and see what trajectories
they form. For example, try moving in an equilateral triangle. You'll find that
it's rather difficult to generate desired trajectories by pre-setting the inputs.
The next module on vehicle control will show you an easier and more accurate
method. See you there!"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sample_time = 0.01\n",
"time_end = 30\n",
"model.reset()\n",
"\n",
"t_data = np.arange(0,time_end,sample_time)\n",
"x_data = np.zeros_like(t_data)\n",
"y_data = np.zeros_like(t_data)\n",
"v_data = np.zeros_like(t_data)\n",
"w_data = np.zeros_like(t_data)\n",
"\n",
"# ==================================\n",
"# Test various inputs here\n",
"# ==================================\n",
"for i in range(t_data.shape[0]):\n",
"\n",
" model.step(v_data[i], w_data[i])\n",
" \n",
"plt.axis('equal')\n",
"plt.plot(x_data, y_data)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}