Skip to content
Permalink
1b9da1ec93
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 431 lines (431 sloc) 69.5 KB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Computational Mechanics Project #02 - Create specifications for a projectile robot\n",
"\n",
"On the first day of class, we threw $2\"\\times~2\"$ dampened paper (spitballs) at a target on the whiteboard. Now, we are going to analyze the accuracy of the class with some cool Python tools and design a robot that has the same accuracy and precision as the class, but we will have the robot move farther away from the target and use a simpler projectile i.e. a tennis ball so we don't need to worry about knuckle-ball physics. \n",
"\n",
"The goal of this project is to determine the precision of necessary components for a robot that can reproduce the class throwing distibution. We have generated pseudo random numbers using `numpy.random`, but the class target practice is an example of truly random distributions. If we repeated the exercise, there is a vanishingly small probability that we would hit the same points on the target, and there are no deterministic models that could take into account all of the factors that affected each hit on the board. \n",
"\n",
"<img src=\"../images/robot_design.png\" style=\"height: 250px;\"/>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, we ask ourselves some questions:\n",
"\n",
"1. How do we quantify the class accuracy and precision?\n",
"\n",
"2. If we design a robot, what design components can we control?\n",
"\n",
"3. How can we relate the controlled components to the class accuracy, and specify the component precision?\n",
"\n",
"The first question, we have some experience from our work in [02_Seeing_Stats](../notebooks/02_Seeing_Stats.ipynb). We can define the mean, standard deviation, measure the first, second, and third quartiles, etc. \n",
"\n",
"The second question is a physical question. We cannot control the placement of the robot or the target those are chosen for us. We cannot control temperature, mechanical vibrations, etc. We *can* control the desired initial velocity. The initial velocity will have some speed and direction, and both will be subject to random noise. Once the speed and direction are set, the location on the target is determined by kinematic equations for an object in freefall, as such\n",
"\n",
"$x_{impact} = \\frac{v_x}{v_y}d + x(0)~~~~~~~~~~~~~~~~~~~~(1.a)$\n",
"\n",
"$z_{impact} = d\\left(\\frac{v_z(0)}{v_y}-\\frac{g}{2v_y^2}d\\right)+ z(0)~~~~~(1.b)$.\n",
"\n",
"Where the location of impact is at a $y$-distance of $d$ at a point on the target with coordinates $(x_{impact},~z_{impact})$, and the initial velocity is $\\bar{v}=v_x\\hat{i}+v_y\\hat{j}+v_z(0)\\hat{k}$, the object is released at an initial location $\\bar{r}(0)=x(0)\\hat{i}+0\\hat{j}+z(0)\\hat{k}$, and the only acceleration is due to gravity, $\\bar{a}=-g\\hat{k}$. Equation (1) becomes much easier to evaluate if we assume that $v_x=0$, resulting in an evalution of the accuracy of the height of the impact, $z_{impact}$, as such\n",
"\n",
"$x_{impact} = x(0)~~~~~~~~~~~~~~~~~~~~(2.a)$\n",
"\n",
"$z_{impact} = \\frac{d}{\\cos{\\theta}}\\left(\\sin{\\theta}-\\frac{g}{2v_0^2\\cos{\\theta}}d\\right)+ z(0)~~~~~(2.b)$.\n",
"\n",
"Where $\\theta$ is the angle of the initial velocity and $v_0$ is the initial speed. Equation (2) restricts the analysis to height accuracy. You can incorporate the 2D impact analysis if you finish the 1D analysis. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The third question, is how we can relate equation (2) to the measured points of impact? For this, we can use Monte Carlo methods *(There are other methods, but Monte Carlo is one of the most straight-forward)*. Our Monte Carlo approach is as such, if we have a desired initial speed, $v_0$, and desired angle, $\\theta$, we can propagate the uncertainty of our actual speeds and angles into the $z_{impact}$ locations. Then, we can choose distributions in speed and angles that match the distributions in $z_{impact}$ locations. Here are the steps:\n",
"\n",
"1. Generate random $\\theta_i$ and $v_{0~i}$ variables\n",
"\n",
"2. Plug into eqn 2 for random $z_{impact~i}$ locations\n",
"\n",
"3. Compare to our measured $z_{impact}$ location statistics\n",
"\n",
"4. Repeat 1-3 until the predicted uncertainty matches the desired uncertainty, we can use a number of comparison metrics:\n",
" \n",
" - standard deviation\n",
" \n",
" - first, second, and third quartiles\n",
" \n",
" - visually, with box plots and histograms"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Project Deliverables\n",
"\n",
"1. Statistical analysis of class accuracy and precision (x- and z-locations) data is in the csv file [../data/target_data.csv](../data/target_data.csv) _Note: if you want to see how I turned the images into data check out the jupyter notebook [process_target_practice](./process_target_practice.ipynb)\n",
"\n",
"2. A Monte Carlo model to generate impact heights based upon uncertainty in $\\theta_0$ and $v_0$. \n",
"\n",
"3. The precision required to recreate the class accuracy and precision with a robot. \n",
"**You must show some validation of your work**\n",
"\n",
"4. [BONUS] Repeat 2-3 taking into account the variation in $x_{impact}$ due to misalignment. \n",
"\n",
"Given constants and constraints:\n",
"\n",
"- $d=$3 m, distance to target\n",
"\n",
"- $g=$9.81 m/s$^2$, acceleration due to gravity\n",
"\n",
"- $z(0)=$0.3 m, the initial height is 0.3 m above the bull's eye\n",
"\n",
"- 4 m/s$<v_0<$12 m/s, the initial velocity is always higher than 9 mph and less than 27 mph"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import math as m\n",
"\n",
"#Import rcParams to set font styles\n",
"from matplotlib import rcParams\n",
"\n",
"#Set font style and size \n",
"rcParams['font.family'] = 'sans'\n",
"rcParams['font.size'] = 16\n",
"rcParams['lines.linewidth'] = 3\n",
"\n",
"original_data = pd.read_csv('../data/target_data.csv')\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"g = 9.81\n",
"d = 3\n",
"z_o = 0.3"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the students throws z-position is -0.0474 +/- 0.2549\n",
"The mean of the students throws x-position is 0.0121 +/- 0.2572\n"
]
}
],
"source": [
"#Printing our data for x and y position mean and standard deviations\n",
"\n",
"# y position\n",
"student_z = original_data[' y position (m)']\n",
"z_st_mean = np.mean(student_z)\n",
"z_st_std = np.std(student_z)\n",
"print('The mean of the students throws z-position is', z_st_mean.round(4), \"+/-\", z_st_std.round(4))\n",
"\n",
"\n",
"# x position\n",
"student_x = original_data[' x position (m)']\n",
"x_st_mean = np.mean(student_x)\n",
"x_st_std = np.std(student_x)\n",
"print('The mean of the students throws x-position is', x_st_mean.round(4), \"+/-\", x_st_std.round(4))\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The first quartile for the students z position is -0.2179\n",
"The second quartile for the students z position is -0.0709\n",
"The third quartile for the students z position is 0.1322\n"
]
}
],
"source": [
"# For Z-position student data\n",
"\n",
"Q1_z_st = np.percentile(student_z, q=25)\n",
"Q2_z_st = np.percentile(student_z, q=50)\n",
"Q3_z_st = np.percentile(student_z, q=75)\n",
"\n",
"print('The first quartile for the students z position is {}'.format(Q1_z_st.round(4)))\n",
"print('The second quartile for the students z position is {}'.format(Q2_z_st.round(4)))\n",
"print('The third quartile for the students z position is {}'.format(Q3_z_st.round(4)))\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The first quartile for the students x position is -0.1685\n",
"The second quartile for the students x position is 0.0285\n",
"The third quartile for the students x position is 0.1671\n"
]
}
],
"source": [
"# For X-position\n",
"\n",
"Q1_x_st = np.percentile(student_x, q=25)\n",
"Q2_x_st = np.percentile(student_x, q=50)\n",
"Q3_x_st = np.percentile(student_x, q=75)\n",
"\n",
"print('The first quartile for the students x position is {}'.format(Q1_x_st.round(4)))\n",
"print('The second quartile for the students x position is {}'.format(Q2_x_st.round(4)))\n",
"print('The third quartile for the students x position is {}'.format(Q3_x_st.round(4)))\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def impact_robot(velocity, angle):\n",
" z_impact = d/np.cos(angle)*(np.sin(angle)-(g/(2*velocity**2*np.cos(angle)))*d)+z_o\n",
" return z_impact"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"velocity, angle = np.meshgrid(np.linspace(6,8, 1000), np.linspace(0, .25, 1000))\n",
"robot_plot = impact_robot(velocity, angle)\n",
"plt.contourf(velocity, angle, robot_plot)\n",
"plt.ylabel(\"angle (radians)\")\n",
"plt.xlabel(\"velocity (m/s)\")\n",
"plt.colorbar();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__The contour plot shows visually where the robot will be throwing at the target. The student mean was -0.05 so this means the robot should implament monte carlo between 0 and -0.2 to match the students__"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The mean of the robot throws z-position is -0.0411 +/- 0.2501\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAD9CAYAAAC2l2x5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAa0ElEQVR4nO3dfXxV1Z3v8c+PSSAQhBsgUARjQHwArw/QSLEoIKBQHGAovb6YFpBRi1otird6L+LVMAqMMwp4wSfGVmxhjKPQilVbdbDojKEW0bYy0coIWKEiEAGVJyNr/tgn8eTkhJyHfc5JVr7v1yuvQ/Zee6+1zj58s886e69jzjlERMQ/bXLdABERyQwFvIiIpxTwIiKeUsCLiHhKAS8i4qm8XDegVrdu3VxpaWmumyEi0qK88cYbe5xzxfHWNZuALy0tZePGjbluhohIi2Jm2xtbpyEaERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDzVbC6TFJHs2r9/P3v27OHo0aO5borE0bZtW7p160bnzp1T3ocCXqQVOnz4MLt27aJ37960b98eM8t1kySKc45Dhw7x4Ycf0q5dOwoKClLaj4ZoRFqh3bt3U1xcTIcOHRTuzZCZ0aFDB7p168bu3btT3o/O4EVy5Lrvbcp6nfevGgQEZ/Bf+9rXsl6/JOeEE05g7969KW+vM3iRVqimpoa8PJ3fNXd5eXnU1NSkvL0CXqSV0tBM85fuMVLAi4h4SgEvIuIpDcKJSD25+PA3Wu0HwdlmZsydO5e77ror7X3t27ePJUuWMGHCBAYNyk1/QGfwIiKh27dvH/PmzWPTptz+sVTAi4i3jhw5kusm5JQCXkS8UF5ejpnx9ttvM2bMGDp27Mhll12Gc47Fixdz+umn07ZtW3r27Mn111/PgQMHGuzDOcf8+fPr7vAdNmwYb731VoMyx9vftm3b6NOnDwDf//73MTPMjBUrVmT8OYilgBcRr0ycOJHhw4ezdu1aZs+ezdy5c7npppu4+OKLeeaZZ7jllltYsWIFl156KceOHau37U9/+lOee+45li1bxooVK9i1axejRo2iurq6rkxT++vZsydr1qwBYM6cOVRWVlJZWcmll16a1ecB9CGriHhm1qxZ3HDDDQBUV1czduxYLr/8cpYtWwbAmDFjKC4uZtq0afzyl79kwoQJddseOnSIF154gcLCQgC+8Y1vcOqpp7J48WLuvPNOqqurWbRoUZP7GzhwIAB9+/ZlyJAh2ex+PTqDFxGvTJo0qe7fGzZs4MiRI0ydOrVemSlTppCXl8f69evrLR83blxduAOUlpYyZMgQKisrU9pfringRcQrPXv2rPt37dBK9DIIpgDo2rVrvaEXgB49ejTYX48ePdixY0dK+8u1JgPezL5jZqvNbLuZHTKzd81soZmdEFOuyMweMbM9Zva5mb1kZmdlrukiIg1F397fpUsXAD766KN6ZWpqati7dy9du3att3zXrl0N9rdr1y569eqV0v5yLZEz+B8BXwK3AmOBB4FrgRfNrA2ABc/o2sj6HwKTgXzgZTPrnYF2i4g0aciQIbRr146Kiop6y5944glqamoYPnx4veXPPfccn3/+ed3v27ZtY8OGDZx//vlJ7a9du3ZAMKafS4l8yDreORc9IfF6M6sGHgNGAOuACcAFwEjn3MsAZlYJbAVuAWaF2WgRkUR06dKFm266iYULF1JYWMi4ceOoqqritttu44ILLmhwZUv79u255JJLuPnmmzly5Ah33HEHnTp1Yvbs2Untr0ePHnTt2pWKigrOPvtsCgsL6dOnT9bP8JsM+Jhwr/W7yGOvyOMEYGdtuEe2229mzwATUcCLtBi5miogU+bPn09xcTEPPfQQDzzwAF27dmX69OksXLiQNm3qD2JMnz6dwsJCrr/+evbs2cN5551HRUVF3dBMovtr06YNjzzyCLfeeiujR4+mpqaGRx99lBkzZmSz65hzLvmNzK4hGKo5zzm30cw2APudc2Niyt0C3A2c4Jz77Hj7LCsrcxs3bky6LSItVS6/8KOqqor+/ftnvX5JXlPHyszecM6VxVuX9FU0ZtYL+HvgJedcbSJ3AT6JU7z2I+WiZOsREZH0JBXwZtYReBqoAf4uehUQ763AcWerN7OZZrbRzDam872DIiLSUMIBb2YFBFfK9AXGOOc+jFpdTXAWH6v2zD3e2T3OueXOuTLnXFlxcXGiTRERkQQkFPBmlg+sBgYD45xzf4wpshk4M86mA4APmhp/FxGR8CVyo1MbYBUwCpjonNsQp9haoJeZDY/arhMwPrJORESyLJHr4O8H/hcwH/jczKJnzvkwMlSzFqgEVprZzQRDMnMIxuD/Mdwmi4hIIhIZovlW5HEuQYhH/1wF4Jw7Bvw18CLwAPBzgrtfL3LO/TnkNouISAISudGpNJEdOeeqgSsiPyIikmOaTVJExFMKeBERT+kbnUSknvdmV+W0/lMX53YKhfLycoYNG8bIkSMzXs+8efNIZbqYROkMXkQkyrx581i3bl2umxEKBbyIiKcU8CLS4m3ZsoVp06bRp08f2rdvT9++fbn22mv55JOGs6SsX7+eiy++mM6dO1NYWMg555zDj3/8Y+Crb4OaP38+ZoaZUV5eDsCIESMYMWJEg/2VlpbWmwZ49+7dXH311Zx22ml06NCBk046ie9+97t1X/uXTRqDF5EWb+fOnfTu3ZslS5ZQVFTE+++/z4IFCxg3blzdF2YDPP3000yePJmhQ4fy8MMP061bNzZv3sz27dsBqKys5Pzzz2fGjBlcffXVAPTundyX0lVXV1NQUMDChQspLi5m586d3HvvvQwdOpR33nmHgoKC8DreBAW8iLR4w4YNY9iwYXW/f/Ob36Rfv35ceOGFvPnmmwwcOBDnHDfccAPnnnsuL7/8ct2Xc4wePbpuuyFDghv1e/XqVffvZJ1++uncd999db9/+eWXDB06lJKSEp5//nkmTZqU0n5ToSEaEWnxjh49yoIFCzjjjDNo3749+fn5XHjhhQC8++67dY/bt2/nqquuavBNTmF78MEHOeecc+jYsSN5eXmUlJTUa0u2KOBFpMWbM2cO5eXlTJ06lWeffZbXX3+dNWvWAHD48GEA9u7dCyQ/5JKspUuX8oMf/IDRo0ezZs0aXn/9dTZs2FCvLdmiIRoRafEqKiqYPn06t912W92yzz6rP0t5t27dAFL+sLOgoIADBw40WF5dXV3v94qKCkaNGsW9995bt2zr1q0p1ZkuBbwIufl+VAnPwYMHyc/Pr7fs0Ucfrff7aaedRmlpKY888ggzZ86su2ImVtu2bTl06FCD5SeffDKrV6/m6NGjtG3bFoBXXnmFTz/9tEFbOnXqdNy2ZIsCXkRavLFjx/LYY49x1lln0a9fP9asWcNrr71Wr4yZsWTJEr797W8zcuRIrrnmGoqLi6mqquLjjz9m3rx5AAwYMIBnn32WsWPHUlRUxIknnsiJJ57IlClTWL58OVdccQUzZsxg69atLFq0iM6dOzdoy913382CBQsYPHgw69at46mnnsracxFNAS8i9eR6qoBULF26FOccc+fOBWDcuHE8/vjjDB48uF65iRMn8uKLL3LnnXdy5ZVXAnDKKadw44031pVZtmwZs2bNYvz48Rw5coQ77riD8vJyLrroIh566CHuueceVq9ezcCBA1m5ciWTJ0+uV8ftt9/Ovn37WLx4MYcPH2b48OH8+te/pm/fvhl+FhqyTM6DkIyysjK3cePGXDdDWqnWMkRz/6pBAFRVVdG/f8sL8taoqWNlZm8458rirdNVNCIinlLAi4h4SgEvIuIpBbyIiKcU8CKtVHO5wEIal+4xUsCLtEL5+flxb+aR5uXQoUMNbuBKhgJepBXq3r07O3bs4ODBgzqTb4accxw8eJAdO3bQvXv3lPejG51EWqHaW+l37tzJF198kePWSDz5+fn06NGjwbQHyVDAi7RSnTp1Sis8pPnTEI2IiKcU8CIinlLAi4h4SgEvIuIpBbyIiKcU8CIinlLAi4h4SgEvIuIpBbyIiKcU8CIinkoo4M2st5ktNbNKMztoZs7MSmPKlEaWx/v5H5lovIiINC7RuWj6AZcBbwCvApccp+xCYG3Msk+Tb5qIiKQj0YB/xTnXA8DMruL4Af++c25D2i0TEZG0JDRE45w7lumGiIhIuDLxIetCM6sxs/1mttbMzspAHSIi0oQw54M/AjwMvADsBs4AbgVeM7PBzrmqEOsSEZEmhBbwzrm/ANdELXrVzH4FbAbmAlNjtzGzmcBMgJKSkrCaIiIiZPg6eOfcn4F/B85rZP1y51yZc66suLg4k00REWl1snGjkwH6Vl8RkSzLaMCbWQkwFPhtJusREZGGEh6DN7PvRP759cjjt8xsN7DbObfezO4l+INRSfAh6+nAHOAYsCC8JouISCKS+ZD1yZjfH4g8rgdGEHyYei0wAzgB2AOsA+Y5595Nq5UiIpK0hAPeOWdNrP8J8JO0WyQiIqHQbJIiIp5SwIuIeCrMO1lFWqT3ZldxY/f2WalryceHslKPCOgMXkTEWwp4ERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDylgBcR8VRCAW9mvc1sqZlVmtlBM3NmVhqnXJGZPWJme8zsczN7yczOCrvRIiLStETP4PsBlwGfAK/GK2BmBqwFxgI/BCYD+cDLZtY7/aaKiEgyEg34V5xzPZxz44AnGykzAbgAmOace9w596vIsjbALek3VUREkpFQwDvnjiVQbAKw0zn3ctR2+4FngImpNU9ERFIV5oesZwJvx1m+GSgxs44h1iUiIk3IC3FfXYBtcZZXRx6LgM+iV5jZTGAmQElJSYhNkZbsuu9tymp9N3Zvn9X6cinbzy3A/asGZb1OCYR5Bm+Aa2R5XM655c65MudcWXFxcYhNERGRMAO+muAsPlZR5PGTEOsSEZEmhBnwmwnG4WMNAD5wzn0WZ52IiGRImAG/FuhlZsNrF5hZJ2B8ZJ2IiGRRwh+ymtl3Iv/8euTxW2a2G9jtnFtPEOKVwEozu5lgSGYOwRj8P4bXZBERSUQyV9HE3uD0QORxPTDCOXfMzP4auCeyroAg8C9yzv057ZaKiEhSEg5451yjV8NElakGroj8iIhIDmk2SRERTyngRUQ8pYAXEfGUAl5ExFMKeBERTyngRUQ8pYAXEfGUAl5ExFMKeBERTyngRUQ8FeY3OomEpjV9y5JIpugMXkTEUwp4ERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDylgBcR8ZQCXkTEU7qTVRL23uyqrNSju1hFwqEzeBERTyngRUQ8pYAXEfGUAl5ExFMKeBERTyngRUQ8pYAXEfGUAl5ExFO60UnEQ9m8WWzJx4eyVle2brYDOHVx/6zVlSk6gxcR8ZQCXkTEUwp4ERFPKeBFRDwVasCb2Qgzc3F+9oVZj4iINC1TV9HMAn4X9XtNhuoREZFGZCrgq5xzGzK0bxERSYDG4EVEPJWpgF9lZl+a2V4z+xczK8lQPSIi0oiwh2j2A/cC64EDwEDgVqDSzAY65z6OLmxmM4GZACUl+huQiOu+tylndeur9NLXGp/DMF+zrfH5S0eoAe+cexN4M2rRejN7BXid4IPX22LKLweWA5SVlbkw2yIi0tplfAzeObcJ+BNwXqbrEhGRr2TrQ1YDdIYuIpJFGQ94MysDTgN+m+m6RETkK6GOwZvZKmArsAnYR/Ah6xxgB7A0zLpEROT4wr6K5m3gb4EfAh2Aj4A1wB3OuT0h1yUiIscR9lU0C4GFYe5TRERSoztZRUQ8pYAXEfGUAl5ExFMKeBERTyngRUQ8pYAXEfGUAl5ExFMKeBERTyngRUQ8pYAXEfGUAl5ExFNhTzYmWaavMBORxugMXkTEUwp4ERFPKeBFRDylgBcR8ZQCXkTEUwp4ERFPKeBFRDylgBcR8ZRudMqA92ZXZWzfurFJmhtfX5PXfW9TUuXvXzUoQy1Jnc7gRUQ8pYAXEfGUAl5ExFMKeBERTyngRUQ8pYAXEfGUAl5ExFMKeBERT3lzo1OyNyVkkq83foi0Jsn+P07nBsdTF/dPedvj0Rm8iIinFPAiIp5SwIuIeEoBLyLiqVAD3sxOMrOnzGy/mR0wszVmVhJmHSIikpjQAt7MOgDrgDOAy4FpwKnAy2ZWGFY9IiKSmDAvk/w+0Bc43Tm3BcDM/gC8B1wNLAqxLhERaUKYQzQTgA214Q7gnNsK/AcwMcR6REQkAWEG/JnA23GWbwYGhFiPiIgkIMwhmi7AJ3GWVwNF8TYws5nAzMivn5nZu2nU3w3Yk8b2oXkgs7tvNv3MoNbQR1A/fZN6P5ekVe/Jja0Ie6oCF2eZNVrYueXA8jAqNrONzrmyMPbVnLWGfraGPoL66Zvm2M8wh2g+ITiLj1VE/DN7ERHJoDADfjPBOHysAcB/hliPiIgkIMyAXwsMMbO+tQvMrBQYGlmXaaEM9bQAraGfraGPoH76ptn105yLN2yewo6Cm5l+DxwCbiMYj78TOAE42zn3WSgViYhIQkI7g3fOfQ6MBP4E/AxYBWwFRircRUSyL7QzeBERaV6a/WySZtbGzOaY2TYzO2xmvzezyQlsV2pm7jg/U6LKljdS5heZ7V299qbUz8i2Kxppf4Ora83sAjN7zcwOmdlHZrbIzLL2FVRpHM9OZnZ7pO17zWxf5N9/E6ds1o5nOhPsmVmBmf2Tmf0lcjwqzWxYnHIpvzbCkmo/zazMzJab2TtmdtDMPjCzVWbWJ07ZbY0ctwbHOBPSPJaN5cy5MeWyeyydc836B5gPHAF+BFwEPAwcA8Y1sV07YEicn5eAw0CXqLLlBJ8ZDI0pe1pz72dk2xXAx3H6enJMubMJPiP5BTAKuIrgEtYnmns/gf8JfAQsBL4FjIn02wHXxZTNyvEEOhDMtfQ28DcEU3L8EfgvoDCB7VcB+wjmcRoFrIkcn3PDem3kup/APQTTlfwAGA58F6gC9gInxZTdBvwqzuu4qDn3MbK9Ax6N0/YOuTyWGX9xpPmkd488GfNilv8b8IcUD+IB4MmY5bWBkNcS+xkJug8TKPfzyIs4P2rZ9EjfBzXnfgKFsf9Zorb9IBfHE7gB+BLoF7WsD1AD3NTEtudE2vh3UcvygHeBtWG9NppBP4vjLDs5Emp/H7N8G7AyG30Ks4+Rsg64q4kyWT+WzX2IZgzQFlgZs3wlcFa8t3lN+DbBVT2PhdC2MIXdzwbMLB8YC/yrc+6LqFX/ChwlOxPCpdxP59znzrmDcVZtBE4Mr4lJSWeCvQnAF8ATUdvWABXAGDNrF1mc8ddGAlLup3Nud5xl24HdQK+Q25mObEyWmPVj2dwD/kyCv3hbYpZvjjwmO4nZ5QRDGb9qZP2fzexLM9tuZndncWw6jH52N7M9ZlZjZn8ys/9jZn8Vtf4UoICYCeGcc4cJ3oZmY0K4sI8nwDDgnUbWZfp4pjPB3pnA1jh/tDYThEC/qHJhP2fJCnUiQTPrT3A2WxVn9fjIWP0RM9uQrfF3wunjtZF2HzSzdWZ2YZw6snosw56LJmxdgH0u8j4mSnXU+oSYWS+Cyzjvi5wpRdsC/F/gTYK3WpcAs4FBwMUptDtZ6fbzLeANghdKATCJYKz6VIJx9uh9NDYhXMLPZRpCO55QN1ndEGBqzKpsHc+kJ9hLcNva9bWPoT1nKUqnn/WYWR7wEMEZ/I9jVj8D/I7g8uoewPXAz81smnMu9qw3bOn2cSXwS2AnwRDUzcA6M7vYOfebqDqyeiyzGvBmNhp4MYGi651zIwgmKktqArPjmEbwjqXB8EycF8+LZvYhsMTMRjvnXkqmomz30zkXe7XMc2b2GXCjmd3tnHsval9hPZ85PZ5mNgL4/8DPnHOroteFfTybkGp/En0uwvw/kI6w2rAM+CZwqXOuXqA6535Yb+dmPwc2EJysZDrgIb3/g9Oifn3VzJ4meEdwF3BB1L6yeiyzfQb/GtA/gXK1b1urgSIzs5i/ekVR6xM1HXjLOff7BMs/TjCJ53kEV94kI5f9rPU4cCNQRvDB6vHOEor46m1iMnLSTzM7j2D6i3XAlQm2NZ3j2Zh0JtirBuJdghf7XGTitZGsUCYSNLOFBNODX+6ce6Gp8s65L83sSeBuM+vpnPtLonWlINTJEp1zn5rZs9R/fWb9WGY14CPjjY2Nl8azmeByx1OoP25VO1aV0CRmkUDoT/A2PVlJ3wmWq37GiD1j/y+C8b96E8KZWQHBVy0+mWwFueinmZ0F/JpgWGpyzAfGiQjzzr50JtjbDEwysw4x4/ADCD703hJVLuzXRrLSnkjQzOYSDJvNcs79LIm6j/fOM0yZmCwx9ow9+8cy05cfpfPDV5cV3RGz/CXgj0nsZxnBFQvdk9hmduTgXNRS+hmz7X0El6KdErXsFwRTSeRFLZsa6efXm3s/CT5T+IjgyplOSdYd+vEkeIdUA/SNWlYaea397ya2PTfSnsujluURfPD4TCZfG9nsZ6TsrEhfb02y3rzIsd7e3PsYZ3+dgA8Ihidzdiwz/uII4Yn/B4Ibk24CRgAPRoJrfEy5fwO2xNk+n+BbVtYep443IwEwjuAmmkWRA/t8c+8nwQc6rxDcSHIJMB74SWTbB2O2PZfgRpo1BDfWXEnwtvDJTPcvhH52J7hOuhq4lIY3lLTL9vEkuDZ/C8ENMRMJLrX7PfA+0DHmGNUAt8dsX0Hw9v+qyPF4KvLcDIopl9BzlsFjlnI/gSmRtj4f55gNiCr3t5HnYzrBDUBTgFcJ/jBMaeZ9/BHwzwQ3cY0guFrvjwTvxC7M5bHMyn/qNJ/4vyKYnXI7wV+/PwDfiVPuN8C2OMsnRV4kk49TRwXBEMbBSB3/Cfy/6NBorv0kGDf8RWS7wwQBvongCoQ2cbYfBlRGyu4iGJducANRM+zniMhxbOynNBfHk2AcfTXBDXSfRo5FaUyZ0kgby2OWtyf44/NR5Hj8FhiR6nOW4eOWUj/56m7jeD+/iSo3hOAzlV0Ef4z3E5zZjmkBfRxPcL38nkjb9xJ8RjQ418dSk42JiHiqud/oJCIiKVLAi4h4SgEvIuIpBbyIiKcU8CIinlLAi4h4SgEvIuIpBbyIiKf+GyiNm+/je9o6AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"z1 = original_data[' y position (m)']\n",
"rand_velocity = np.random.normal(6.6, .7, 80)\n",
"rand_angle = np.random.normal(.25, 0.01, 80)\n",
"rand_impacts = impact_robot(rand_velocity, rand_angle)\n",
"\n",
"z_mean = np.mean(rand_impacts)\n",
"z_std = np.std(rand_impacts)\n",
"print('The mean of the robot throws z-position is', z_mean.round(4), \"+/-\", z_std.round(4))\n",
"\n",
"\n",
"plt.hist(rand_impacts, color = \"slateblue\", label = \"robot\", range=[-0.75, 0.5])\n",
"plt.hist(z, color = \"orchid\", label = \"actual\")\n",
"\n",
"plt.legend(loc=\"best\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__the left plot is the throws of the students, while the right plot is the robot throwing at the target. The means and standard deviations are very similar, while the robot does not exactly replicate the data due to the outilers present in the student data. The precision for the robot should be 0.6m/s for the velocity and 0.01 radians for the angle__ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# BONUS"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"#Now consider X"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def x_impact(velocity_x, velocity_z):\n",
" x_impact = d*((velocity_z/velocity_x)-((g/(2*velocity_x**2))*d))+z_o\n",
" return x_impact\n",
"\n",
"velocity_x, velocity_z = np.meshgrid(np.linspace(2,2.5, 100), np.linspace(6, 7, 100))\n",
"plot2 = x_impact(velocity_x, velocity_z)\n",
"plt.contourf(velocity_x, velocity_z, plot2)\n",
"plt.ylabel(\"velocity z (m/s)\")\n",
"plt.xlabel(\"velocity x (m/s)\")\n",
"plt.colorbar();"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean -0.0225 +/- 0.2174\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"z2 = original_data[' y position (m)']\n",
"velocity_z = np.random.normal(6.3, 0.05, 80)\n",
"velocity_x = np.random.normal(2.25, 0.05, 80)\n",
"impacts2 = x_impact(velocity_x, velocity_z)\n",
"print(\"Mean\", np.mean(impacts2).round(4),\"+/-\" ,np.std(impacts2).round(4))\n",
"plt.hist(impacts2, color = \"slateblue\", label = \"robot\")\n",
"plt.hist(z2, color = \"orchid\", label = \"actual\")\n",
"\n",
"plt.legend(loc=\"best\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"__When also considering x impact varience,the precision should be 0.05 m/s for the velocity in the x and y directions.__"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}