Permalink
Cannot retrieve contributors at this time
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?
compmech-project02/02_Analyze-data_project.ipynb
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executable file
449 lines (449 sloc)
61.6 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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": 43, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"import math\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" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"target_data = pd.read_csv(\"../data/target_data.csv\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Index(['throw #', ' x position (m)', ' y position (m)',\n", | |
" 'picture x position (pixel)', ' picture y position (pixel)',\n", | |
" 'target x position (pixel)', ' target y position (pixel)', ' image #'],\n", | |
" dtype='object')" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"target_data.columns" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 27, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"x_position = target_data[' x position (m)']\n", | |
"y_position = target_data[' y position (m)']\n", | |
"x_mean = np.mean(x_position)\n", | |
"y_mean = np.mean(y_position)\n", | |
"x_var = np.var(x_position)\n", | |
"y_var = np.var(y_position)\n", | |
"x_std = np.std(x_position)\n", | |
"y_std = np.std(y_position)\n", | |
"x_quartiles = np.percentile(x_position, q = [25,50,75])\n", | |
"y_quartiles = np.percentile(y_position, q = [25,50,75])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 34, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"x_mean= 0.01207963411779779\n", | |
"y_mean= -0.047397370492807414\n", | |
"x_var= 0.06613315459984903\n", | |
"y_var= 0.0649541873555106\n", | |
"x_std= 0.25716367278418045\n", | |
"y_std= 0.2548611138551949\n", | |
"first x quartile = -0.16854422326722185\n", | |
"second x quartile = 0.028452517775170515\n", | |
"third x quartile = 0.1670894539891312\n", | |
"first y quartile = -0.21785495681409592\n", | |
"second y quartile = -0.070851135369002\n", | |
"third y quartile = 0.13222390283592378\n" | |
] | |
} | |
], | |
"source": [ | |
"print('x_mean=',x_mean)\n", | |
"print('y_mean=',y_mean)\n", | |
"print('x_var=',x_var)\n", | |
"print('y_var=',y_var)\n", | |
"print('x_std=',x_std)\n", | |
"print('y_std=',y_std)\n", | |
"print('first x quartile =', x_quartiles[0])\n", | |
"print('second x quartile =', x_quartiles[1])\n", | |
"print('third x quartile =', x_quartiles[2])\n", | |
"print('first y quartile =', y_quartiles[0])\n", | |
"print('second y quartile =', y_quartiles[1])\n", | |
"print('third y quartile =', y_quartiles[2])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"d = 3\n", | |
"g = 9.81\n", | |
"z_0 = 0.3\n", | |
"# d, g, x0 given, v_initial ranges from 4 to 12 m/s\n", | |
"def zimpact(d, g, z_0):\n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 93, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"standard deviation = 0.35239717571191137\n", | |
"mean = 0.129206750523762\n" | |
] | |
} | |
], | |
"source": [ | |
"d = 3\n", | |
"g = 9.81\n", | |
"z_0 = 0.3\n", | |
"n = 53\n", | |
"def z_impact(d,theta,v_0,z_0):\n", | |
" g = 9.81\n", | |
" z_impact = (d/np.cos(theta))*(np.sin(theta)-(g*d)/(2*(v_0**2)*np.cos(theta)))+z_0\n", | |
" return z_impact\n", | |
"v_0 = np.random.normal(8,1,size=53)\n", | |
"theta = np.random.normal(math.pi/17.5,0.09,size=53)\n", | |
"z_impact = z_impact(3,theta,v_0,0.3)\n", | |
"std = np.std(z_impact)\n", | |
"mean = np.mean(z_impact)\n", | |
"print('standard deviation = ', std)\n", | |
"print('mean =',mean)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 89, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'class data')" | |
] | |
}, | |
"execution_count": 89, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"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": [ | |
"plt.hist(y_position)\n", | |
"plt.title('class data')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 88, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'robot')" | |
] | |
}, | |
"execution_count": 88, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"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": [ | |
"plt.hist(z_impact)\n", | |
"plt.title('robot')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 106, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"ename": "TypeError", | |
"evalue": "'numpy.ndarray' object is not callable", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-106-d30be23bfab3>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mv_0\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m8\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m53\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mtheta\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;36m17.5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0.09\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m53\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mz_impact\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mz_impact\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtheta\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mv_0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0.3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mz_impact\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mTypeError\u001b[0m: 'numpy.ndarray' object is not callable" | |
] | |
} | |
], | |
"source": [ | |
"v_0 = np.random.normal(8,1,size=53)\n", | |
"theta = np.random.normal(math.pi/17.5,0.09,size=53)\n", | |
"z_impact = z_impact(3,theta,v_0,0.3)\n", | |
"plt.hist(z_impact)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 90, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'whiskers': [<matplotlib.lines.Line2D at 0x7f08df15cfd0>,\n", | |
" <matplotlib.lines.Line2D at 0x7f08df15cf98>,\n", | |
" <matplotlib.lines.Line2D at 0x7f08df1a6748>,\n", | |
" <matplotlib.lines.Line2D at 0x7f08df1a6a90>],\n", | |
" 'caps': [<matplotlib.lines.Line2D at 0x7f08df1506a0>,\n", | |
" <matplotlib.lines.Line2D at 0x7f08df1509e8>,\n", | |
" <matplotlib.lines.Line2D at 0x7f08df1a6dd8>,\n", | |
" <matplotlib.lines.Line2D at 0x7f08df1a6eb8>],\n", | |
" 'boxes': [<matplotlib.lines.Line2D at 0x7f08df15cbe0>,\n", | |
" <matplotlib.lines.Line2D at 0x7f08df1a6400>],\n", | |
" 'medians': [<matplotlib.lines.Line2D at 0x7f08df150d30>,\n", | |
" <matplotlib.lines.Line2D at 0x7f08df19b4a8>],\n", | |
" 'fliers': [<matplotlib.lines.Line2D at 0x7f08df150e10>,\n", | |
" <matplotlib.lines.Line2D at 0x7f08df19b7f0>],\n", | |
" 'means': []}" | |
] | |
}, | |
"execution_count": 90, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD9CAYAAACiLjDdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAARqElEQVR4nO3df7BcZX3H8ffHhB8FCyaC0HaAQGEwEBXaYGmhVdEZHbXBH60g1YJGccRGsWoZSAeChKpjC85YtUAZbcEGrYMDKKO0kKixogRHKQGC2KCooIEEIUBCwKd/nHN12Wye7L3ck5t7837N7NzcZ5/nnO8mJ/vZ85xnd1NKQZKkLXnGRBcgSdq+GRSSpCqDQpJUZVBIkqoMCklS1fSJLqALe+21V5k1a9ZElyFJk8rNN998fyll7/72KRkUs2bNYsWKFRNdhiRNKkl+NKjdqSdJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqqbkG+40eknGNM7vM5GmPoNCQP0JP4mBIO3AnHqSJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqco33Ena7o3lkwN8k+j4MSgkbfe29KTvpwZsG049SZKqOg2KJPsl+UKSXyZ5KMmVSfYfcmzZwu2ILmuWJD1VZ1NPSXYDbgA2AicDBVgMLE3y/FLKI0Ns5jPARX1td45nnZKkui6vUbwdOAg4tJRyF0CSW4AfAO8ALhhiGz8tpdzYXYmSpK3pcuppHnDjSEgAlFJWA98Eju9wv5KkcdRlUBwO3DqgfSVw2JDbeGeSjUkeTXJDkj8dv/IkScPoMihmAusGtK8FZgwx/nLgNOBlwKnAs4Ebkrx4UOckpyZZkWTFmjVrxlaxJGkzXb+PYtAC56HeOVNKeXPPr99IchXNGcpi4NgB/S8GLgaYO3euC6slaZx0eUaxjuasot8MBp9pVJVSHga+DBz1NOuSJI1Cl0GxkuY6Rb/DgNvGuM0w+CxFktSRLoPiauDoJAeNNCSZBRzT3jcqSfYAXgV8e5zqkyQNocuguAS4G7gqyfFJ5gFXAffQ8ya6JAckeSLJ2T1t709ySZKTkrw4yck0y2r3Bf6+w5olSX06u5hdSnkkyXHAhcBlNNNG1wOnl1LW93QNMI2nhtYq4LXtbU/gIZqgmF9K+U5XNUuSNtfpqqdSyo+B12+lz930rYQqpVwDXNNdZZKkYfnpsZKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGxQ5m5syZJBnVDRhV/5kzZ07wo5Q0nqZPdAHattatW0cppdN9jISLpKnBMwpJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCknbhW3x7Yt+A+PY+A13krYL2+LbF8FvYBwLg2IHU87ZAxbt2f0+JE0ZBsUOJuc+tE2+M7ss6nQXkrYhr1FIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqOg2KJPsl+UKSXyZ5KMmVSfYfcuyuST6a5N4kjyX5VpI/67JeSdLmOguKJLsBNwDPBU4G3gwcAixNsvsQm7gUeDtwNvBq4F7gq0mO6KZiSdIgXX7W09uBg4BDSyl3ASS5BfgB8A7ggi0NTPIC4CTgraWUT7dtXwNWAh8E5nVYtySpR5dTT/OAG0dCAqCUshr4JnD8EGM3AZ/rGfsEcAXw8iS7jH+5kqRBugyKw4FbB7SvBA4bYuzqUsqjA8buDBz89MuTJA2jy6CYCawb0L4WmPE0xo7c/xRJTk2yIsmKNWvWjKpQSdKWdb08dtAXHwzz9VIZ7dhSysWllLmllLl77733sPVJkraiy6BYx4BX/jRnE4POFnqtrYwduV+StA10GRQraa419DsMuG2IsQe2S2z7xz4O3LX5EElSF7oMiquBo5McNNKQZBZwTHvf1sbuBPxlz9jpwAnAdaWUjeNdrCRpsC6D4hLgbuCqJMcnmQdcBdwDXDTSKckBSZ5IcvZIWynlezRLYz+W5G1JXkqzNPZA4JwOa5Yk9eksKEopjwDHAXcClwGfBVYDx5VS1vd0DTBtQC1vAT4NLAa+DOwHvKKU8t2uapYkba7Ld2ZTSvkx8Pqt9LmbAauZSimPAX/b3iRJE8RPj5UkVXV6RiFJwyrn7AGL9tw2+9GoGBSStgs59yFKGfQ+23HeT0JZ1PluphSnniRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqXB67A0qG+UqQsZsxY2vfSyVpMjEodjBjWaeeZJusb5e0fXLqSZJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKq/AgPSduNrj+HDPwssrEwKCRtF/wcsu2XU0+SpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVZ0FRZJnJDkzyd1JNiT5fpLXDzn2M0nKgNvHuqpXkjTY9A63fR7wfmAhcDNwIvCfSV5dSrl2iPFrgHl9bfeOb4mSpK3pJCiSPIcmJD5cSvnHtnlpkoOBDwPDBMXjpZQbu6hPm0sypvtLKV2UI2k70tXU08uBnYHL+9ovB56X5MCO9qsxKqWM6SZp6usqKA4HNgJ39bWvbH8eNsQ2npPk/iRPJLkzyRlJpo1rlZKkrerqGsVM4MGy+UvOtT3313yP5rrGSmBX4LXAh4BDgLcNGpDkVOBUgP33339sVUuSNjNUUCR5GfBfQ3T9WinlxUCAQfMS9YnwVimlf3XTtUnWA6cn+Ugp5QcDxlwMXAwwd+5c50QkaZwMe0bxP8DsIfo92v5cC8xIkr6zihk994/WEuB0YC6wWVBIkroxVFCUUh4F7hjFdlcCuwC/z1OvU4xcm7htFNsaMXI24tmCJG1DXV3M/grwOPBXfe1vAm4tpawewzZPogmJm55mbZKkUejkYnYp5RdJLgTOTPIw8F3gBOA44PjevkmuBw4opRzc/n4AcBlwBc3ZyC40F7NPAS4qpfywi5olSYN1+c7shcB64D3AvsAq4A2llGv6+k3rq+NhmmsYZwD70JxF3A68G/hkh/VKkgboLChKKU8Ci9tbrd+L+35fC7ymq7okSaPjp8dKkqoMCklSlUEhSaoyKCRJVV2uepKkcVH7GHw/Ar97BoWk7Z5P+hPLqSdJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUEiSqgwKSVKVQSFJqjIoJElVBoUkqcqgkCRVGRSSpCqDQpJUZVBIkqoMCklSlUEhSaoyKCRJVQaFJKnKoJAkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSpyqCQJFUZFJKkKoNCklRlUGiLlixZwpw5c5g2bRpz5sxhyZIlE12SpAkwfaIL0PZpyZIlLFy4kEsvvZRjjz2W5cuXM3/+fADe+MY3TnB1krallFImuoZxN3fu3LJixYqJLmNSmzNnDh//+Md5yUte8uu2pUuXsmDBAm699dYJrExSV5LcXEqZu1m7QaFBpk2bxoYNG9hpp51+3bZp0yZ23XVXnnzyyQmsTFJXthQUXqPQQLNnz2b58uVPaVu+fDmzZ8+eoIokTRSDQgMtXLiQ+fPns3TpUjZt2sTSpUuZP38+CxcunOjSJG1jXszWQCMXrBcsWMDtt9/O7NmzOf/8872QLe2AvEYhSQK8RiFJGiODQpJUZVBIkqoMCklSlUEhSaqakquekqwBfjTRdUwhewH3T3QR0gAem+PrgFLK3v2NUzIoNL6SrBi0ZE6aaB6b24ZTT5KkKoNCklRlUGgYF090AdIWeGxuA16jkCRVeUYhSaoyKCRJVQaFNpOkJFk8Ttt6VpJFSf5gPLan7VOSZUmWTXQdW9Me24vGMO6UJG/toKRJwaBQ154FnAMYFJrMTgEMCk1tSXaZ6BokTU4GxRTUTvWUJHOSfDXJeuDzabw3yaokjye5N8k/J9lj8GayMMlPkjyW5OtJjujvUNteklnA6rb7JW1NJckpHT58dSDJC5J8MckD7fGwKsmZlf67Jrkwya1J1ie5L8k1SZ7b12/fJP+W5GdJNrbH0JeSPKe9f3qS85L8MMmGJPcnWZ7k2K3UOy3J4nZ7j7ZTY4cP6HdwksuSrG4f1/8l+VSSGT19lgEvAo7pOYaXtfftneSiJHe2+7knyX8k+b3R/P1u7/wq1KntKuBS4CPAr4DzgTOBTwDXAIcB5wEvSPKiUsqvesb+NfBj4G+AXYAPAtcnOaSUsrbtU90ecC/wOuBK4EPA1e24H3byaNWJJC8ElgF3Ae8FfgIcAjy/MmwX4LeBxTTHwUzgNODGJM8tpdzX9rsMOAD4AHAPsA/wUmC39v4z2n0uBL4H7AHMbbdXswg4C7gAuK4dc/WAfr/bPp7TgXXAQe24a4E/bvucBlwOTAPe0bY91P6cCWyg+X+wpt3e+4Bvto9zw1bqnBxKKd6m2I3mP0kB3tPTNnJAf6av75vavvN62grNB63t3tM2C9gEnDea7bXjCvC2if578Tbm4+nrNE/iu1X6LAOWVe6fRvPk/zDw3p729cC7K+O+BFw5ynpntNv9l772M9pjcVFl7HTg2LbfkX2Pb/kQ+54G7NeOf+1E/9uN182pp6ntiz1/PprmVd7lfX2uAJ6gObXudW0p5ZGRX0opdwM38ptXWaPdniahJLsBxwCfLaU8Osqxb0jy7SQP0hwTjwDPBA7t6XYT8IEk70nyvCTp28xNwCuTnJ/k2CQ7D7Hr5wG7A5/va79iQI07JzkryR1JHqN5MfSN9u5D+/sPkuSdSb7fTvE+QXMmPvT4ycCgmNru7fnzzAFtlFKeAB5g81P5nw/Y3s+BkbnX0W5Pk9MMmueJn4xmUJI/Bz4H3A6cBPwRcBTN9MyuPV1PoJkS+jvgFuCnSc5OMvLc9A80q+bm0TyBP5Dk00n2quz+d9qf/cfwoGP6QzRn4JcDrwJeSDNdSl+dAyVZAHwS+O923AtpXkQNNX6y8BrF1Nb7+Swj1xX2BVaONCaZDjyb5sm91z4DtrcP8NMxbk+T0zqa61ujvTh7InBXKeWUkYYkO9H3AqKU8gvgXcC7khwKnAycSxMonyqlbKK5xvaRJPsCr6a57rAbTcgMMvLiZR96jk0GH9MnAv9eSvn1+4aSPHPIxzgy/vpSyvt6xh84ivGTgmcUO44bgY00B3avE2heMHytr/2VSXYf+aVdwXQ08K1Rbm9j+/O3xl66Jko73bQceFOS0fwb7kYzDdPrzTRz+Fva16pSylk04TRnwP33lVL+lebV+2b397iFZprrDX3t/cfqSJ2b+treMqDfRgYfw8OOn9Q8o9hBlFLWJrkAODPJIzSrOmbTrEpZDny5b8hjwHVJPkpzLeJcmpUeF45yez+nObs4McnIf+DVpRTPOCaP99ME/7eS/BPNNNRBwBGllAVbGPMV4DVJLqS5IP2HwLuBB0c6JNmT5kn/s8AdNE+4x9NMd13X9rkK+D7wXZoAORJ4BXDRlootpTzY7ndhkofbbR0FzN9CnScn+V+aVV2vA/5kQL/bgNOSnECzau/hUsqqdvwZSc4CvgMcB/zFlmqbtCb6arq38b/xm1VP0/vaQ7PUcBXwOM0p+ieAPfr6FZqlr2fRPClsoJkfPmKM23sNzX+0Te22T5novyNvoz6mjqRZAv0gzYuIO4Azeu5fRs+qJ5rZisXAz4BHaYLmSOBu2pVyNC9ALqKZHlpP80LkJuCknu28j+bs9YF2v6va43unrdQ7rd3/fe24ZTTLt5+y6onmq1SvoAmhdTShdVT/cUozxXotzaqtMvJYac4yPkUzVfYwTSge2L+fyX7zY8YlSVVeo5AkVRkUkqQqg0KSVGVQSJKqDApJUpVBIUmqMigkSVUGhSSp6v8BKvrBVjKWbXYAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.boxplot([z_impact, y_position], labels=['robot','class data'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 105, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'class data versus robot data')" | |
] | |
}, | |
"execution_count": 105, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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T0KMkAKzWYxhxKFxwwa+CqZxQ0toUghMnjyZXbt28dOf/jTXogCFkQbnJWAnzp8UzoXAe0lGrg3FKZy3UpTNMIqeDq2a0iDC0NBAhA6tmuZIIqOQyXulo6pfA5OAUSJyjYj0E5E/AicD14fXFZFZIvJx2OcDRORfInKliJwmImeLyF+AXwEPqOon2bwWwyhEWjdrTGXr8tqZTeOGDahsXV4w/px33nmHwYMH07ZtW8rLy+nevTvjx4+PWn/79u0MHz6cI488khYtWtCxY0fOPvtsPvywroFm1apVXHzxxXTu3JkmTZrQqVMnzjrrrNr1K7t27eJ3v/sdBx10EE2bNqVdu3b07t2bN954I6a8u3fvZvTo0XTq1IlmzZrRr18/li1bVq/exx9/zEUXXUS3bt0oLy/nwAMP5IorrmDDhg21dfr168ecOXOYO3cuIoKI1JoS16xZw7BhwzjkkENo1qwZ++23H0OHDq1d+JkpCiXL9A3AFlx4digNzhBVfS6iXkPqXtM3OJ/PSKADbnbzAXAVcH+GZTaMoqF1s8ZJK5lcZttesGAB/fr14+CDD2bSpEl06dKFjz76iKVLl0Zts2PHDr755pvagX/9+vXcf//9HH/88Xz44Yd07NgRgIsuuojPP/+ciRMnst9++7F69WpmzZrFtm3bALj11luZNGkSN998M9/+9rfZvHkzCxcuZP362G7osWPHcsstt3DNNddw2mmnsXDhQgYOjEyoAitXrqRLly7cddddtG7dmk8//ZRbbrmFM888k3nzXDzX/fffz4UXXsju3bt54IEHgL1ZBNavX0/Tpk0ZP348++67LytXruSOO+6gV69efPjhhzRtmqGZrKraK8br2GOPVcMoFd5///209vfM4i/10NF/1wNGPl/7OnT03/WZxV+m9TzROOmkk7RLly66devWqHX69u2rffv2jXp8165dunXrVm3RooXeeeedteXNmzfXu+++O2q7AQMG6ODBgxOSd/369dq8eXMdNmxYnfIJEyYooGPGjInatqamRl9//XUFdPHixbXlffv21V69esU9965du/S///2vAjp9+vS49eM9K8BC9RlT8968ZhhG4ZLLbNvbtm1j7ty5XHDBBTRr1iyhttOmTeO73/0uFRUVNGrUiObNm7NlyxaWL98r93HHHcfEiRO5++67effdd9GIsPLjjjuOF198kRtuuIE33niDnTt3xj3vu+++y9atWxkypO6i4/PPP79e3Z07d3LLLbdw6KGHUl5eTllZGSeddBJAHTlj8cc//pGjjz6aFi1a0KhRo9p1iUHbJ4MpHcMwMkYus21v2LCBPXv20KVLl4TaPffcc5x33nkcdthhPPnkk/z73//mrbfeYt9992X79u219aZOncrAgQO57bbb6NGjB5WVlYwbN449e1yk3/XXX8/vf/97Zs6cyUknnUTbtm35yU9+wtq1a6Oe+6uv3IqUDh061CmP/AwwatQoxo4dy4UXXsgLL7zAggULmD59OkAdOaNx7733cuWVV3Lqqacyffp0FixYwPz58wO3T5ZC8ekYhlGA5CLbdihlz6ZtQoMGDfjks/8m1H7KlCkcfPDBTJ48ubaspqamni+mffv23Hfffdx3330sX76cRx99lDFjxrDvvvtyxRVXUFZWxsiRIxk5ciSrVq3i+eef55prrmHbtm1MnTrV99ydOnUCYPXq1RxxxBG15atXr/aV88c//jGjR4+uLduyZUtC13nKKadwxx131JatWJH5NJY20zEMI2NkO9t2KGXPzt17KC9vxjHHHc9fn3ySles2Be5j27ZtNGpU9/f4Y489xu7d0VM1du/enVtuuYXWrVvz3nvv1TvesWNHLrvsMk499VTf4yF69OhB8+bNmTZtWp3yKVOm+MpZVlZWp+yRRx6pV69JkyZUV9dX/EHbpxub6RiGkTGynW07MmXPNaNv4tIfnsUpfU7i+utG0KVLFz799FPefvtt7r33Xt8+Tj/9dGbMmMHw4cM566yzWLRoEffccw8VFRW1dTZt2sSpp57KBRdcwKGHHkpZWRnPPvssGzZs4LTTTgPgnHPO4eijj+Z//ud/aN26NUuWLOGll15i2LBhUeWvqKhg+PDh3Hzzzeyzzz6cdtppvPXWW/z5z3/2lfPRRx/lqKOO4uCDD2b69Om8+eab9eodfvjh3H///UydOpWDDjqIffbZh+7du3P66adz6623csstt/Cd73yH2bNn8/TTTwe+10njF11gL4teM0qTdEevZZt3vthQ7zXl73O0z6n9tVWrVtq0aVPt3r27TpgwobZNZPTa7t279YYbbtBOnTppeXm59unTRxcvXqwHHHCAXnzxxaqqun37dr388sv18MMP1+bNm+s+++yjPXv21CeeeKK2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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"random_x=np.random.normal(0,.25,size=53)\n", | |
"plt.scatter(x_position, y_position, label='class data')\n", | |
"plt.scatter(random_x, z_impact, label='robot')\n", | |
"plt.legend()\n", | |
"plt.xlabel('x position (m)')\n", | |
"plt.ylabel('y position (m)')\n", | |
"plt.title('class data versus robot data')" | |
] | |
}, | |
{ | |
"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 | |
} |