Skip to content
Permalink
master
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 447 lines (447 sloc) 117 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": 22,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\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"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"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": [
"target_data = pd.read_csv('../data/target_data.csv')\n",
"x_pos = target_data[' x position (m)']\n",
"z_pos = target_data[' y position (m)']\n",
"\n",
"x_avg = np.mean(x_pos) ; x_std = np.std(x_pos) ; x_med = np.median(x_pos)\n",
"z_avg = np.mean(z_pos) ; z_std = np.std(z_pos) ; z_med = np.median(z_pos)\n",
"\n",
"x_Q1 = np.percentile(x_pos,25) ; x_Q2 = np.percentile(x_pos,50) ; x_Q3 = np.percentile(x_pos,75)\n",
"z_Q1 = np.percentile(z_pos,25) ; z_Q2 = np.percentile(z_pos,50) ; z_Q3 = np.percentile(z_pos,75)\n",
"\n",
"plt.scatter(x_pos,z_pos,alpha=0.7,label='Data')\n",
"plt.plot(x_avg,z_avg,'o',color='r',label='Avg')\n",
"plt.title('Impact Position of Projectile')\n",
"plt.xlabel('x position (m)')\n",
"plt.ylabel('z position (m)')\n",
"plt.axvline(x=0,color='black',ls='-',lw='0.5')\n",
"plt.axhline(y=0,color='black',ls='-',lw='0.5')\n",
"plt.legend(loc='lower left',prop={'size': 10});"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Parameters: Velocity [m/s] = 10.0 < V < 12.0\n",
" Angle(z) [deg] = -7.0 < θz < 7.0\n",
"\n",
"Actual: Average = -0.04740 ; St. Dev = 0.25486 ; Median = -0.07085\n",
" Robot: Average = -0.07906 ; St. Dev = 0.22423 ; Median = -0.08263\n",
"\n",
"Actual Quartiles: Q1 = -0.21785, Q2 = -0.07085, Q3 = 0.13222\n",
" Robot Quartiles: Q1 = -0.29534, Q2 = -0.08263, Q3 = 0.08642\n"
]
},
{
"data": {
"image/png": "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Q7mrZL1Mc3MzgwYNKnc1+pRBgwZtUVOjm7+sIA3zGqidWcua5uRW4E0rmqidWQtAzZiaclbNehmfoXSvLX2/faZiBambVdeWUFqtaV5D3SxP9mrWFzmpWEEWr8g9mWtHcTPr3ZxUrCCjhozKK27Wmx122GEMGzaMdevWlbsqZeOkYgWZMmEKlQMq28UqB1QyZcKUMtXILMuiBrinGm7tlzwuKs1AksbGRh5//HEkce+99xZ9/xs2bCj6PkvBScUKUjOmhvrj66kaUoUQVUOqqD++3p301jMsaoCna2FNExDJ49O1JUksN998M+PGjeOcc85h2rRpADz55JOMHDmSlpaWtnJ33303+++/PwAbN27k8ssvZ88992TEiBGcdtppLF+e3IussbERSdxwww2MGjWKww8/HIBTTz2VkSNHMmTIED796U8zf/78tn2//fbbHH/88Wy//fYcfPDBfO973+PQQw9tW79gwQKOPPJIhg8fzl577cUdd9xR9PfBScUKVjOmhsYLG9n4g400XtjohGI9x9w6aGk/kISWNUm8yG6++WZqamqoqanhgQceYMmSJYwbN47BgwfzyCOPtJW79dZbmThxIgBXX30199xzD4899hhvvPEGw4YN4+tf/3q7/T722GO8+OKLPPDAAwAcc8wxvPzyyyxdupQDDzyQmpoP/t6+/vWvM3jwYN58802mTZvWltwAVq9ezZFHHsnEiRNZunQpt912G+eff367pFQUEdFnl4MOOijMrOd74YUXtmzDBkU0kGNRUev3+OOPR//+/WPZsmUREbHXXnvFFVdcERERdXV1ce6550ZExMqVK6OysjIaGxsjImLvvfeOhx9+uG0/b7zxRvTv3z+am5tj0aJFAcQrr7zS4XHfeeedAOLdd9+NDRs2RP/+/WPBggVt6+vq6mL8+PEREXH77bfHoYce2m772trauPTSSzvcf0fvOzAnOvheLemZiqTdJP1a0gpJKyXdJalLPbiSooPlY1nl+km6RFKjpPclzZV0SmlekZltVSo7+LrpKL6Fpk2bxlFHHcUOO+wAwMSJE9vOEiZOnMhdd93FunXruOuuuzjwwAOpqqoCoKmpiZNPPpmhQ4cydOhQ9tlnHyoqKliyZEnbvnfbbbe2f7e0tPCd73yHPffck+23357WO9e+9dZbLFu2jA0bNrQrn/nvpqYmnnrqqbZjDR06lIaGBt58882ivhclu/hRUiXwCLAOmAQEcBnwqKT9I2J1F3YzFbguK/ZS1vMfAxcBdcAzwOnAnZKOi4j7tvwVmNlW74ApSR9KZhNYRWUSL5K1a9dyxx130NLSwsiRIwFYt24d7777LnPnzuWAAw6gqqqK+++/v13TFyRf+jfeeCPjx4/fZL+NjY1A+4sQb731VmbMmMHDDz9MdXU1K1asYNiwYUQEO+64I/379+e1117jox/9KACvvvpqu2N95jOf4aGHHiraa8+llGcqXwb2AE6KiHsiYgZwAlAFfKWL+3g9Ip7MWto+HZJ2Ikkol0fEzyPi0Yj4CvAocHlxX46ZbXV2r4FD6qGyClDyeEh9Ei+Se+65h4qKCl544QWee+45nnvuOV588UU+9alPcfPNNwPJ2crVV1/N73//e0499dS2bb/61a9SV1dHU1Nyd95ly5YxY8aMDo+1atUqttlmG0aMGMGaNWv47ne/27auoqKCz3/+81x66aWsWbOGBQsWtB0f4LjjjuOll17illtuobm5mebmZv70pz/x4osvFu29gNImlROAJyNiYWsgIhYBTwAnFukYRwMDgelZ8enAGEm7F+k4Zra12r0GTmqEiRuTxyImFEiavs4991xGjRrFyJEj25YLLriAhoYGNmzYwBlnnMHs2bM5/PDD25rIACZPnswJJ5zAUUcdxXbbbce4ceN46qmnOjzW2WefTVVVFbvssgv77rsv48aNa7f+l7/8JStWrGDkyJGcddZZnHHGGWyzzTYAbLfddjz44IPcfvvtfPjDH2bkyJFcfPHFRb+mRkmfS/FJehOYkZ45ZMavAU6NiB03s30Ay4EPAS3Ak8APIuLxjDKXAxcCgyLjhUg6BHgKOC4iftvRMcaOHRtz5szJ+7WZWfd68cUX2Weffcpdja3OxRdf3DYSbEt09L5LeiYixubappRnKsOBd3LElwPDurD9dOB84AigFhgBPCLpsKxjvBubZsblGevbkVQraY6kOcuWLetCNczMtg4LFizgL3/5CxHB008/zQ033MDJJ5/crXUo9SzFuU6DujT1ZUSclfH0cUkzgOdJOvtbr+ZRvseIiHqgHpIzla7Uxcxsa7Bq1SrOOOMM3njjDXbaaSe+/e1vc+KJxept6JpSJpV3yHGmQHKWkusMplMRsUrSb4EvZoSXA8MkKetsZVjGejOzPuHggw9m4cKFmy9YQqVs/poP7Jcjvi/wwhbuM/vMZD6wDbBnjmNQwHHMzGwLlDKp3AuMk7RHa0BSNTA+XZcXSdsDx5J0wLf6HbAeyB7OcSbwfDrazMx6gY0bN5a7Cn3Klr7fpWz++hVwATBD0vdIzjB+DLxKxgWNkqqAV4AfRcSP0thFwF4k15u8QXJty0XASDISSEQslfQL4BJJq4BngS8Ah1O8YctmVmaDBw/m9ddfZ+edd2bAgAG+C2QJRQTNzc0sWbKEwYMH5719yZJKRKyWdDjwC+AWkqarWcCFEfFeRlEBFbQ/a/orcHK6DAFWklzf8sWIeDrrUHXAe8BkkqTzV+C0iJhZ9BdlZmWx66678tZbb9HU1LTVTAG/Nevfvz9Dhgxpd01NV5XsOpWtga9TMTPLX7muUzEzsz7GScXMzIrGScXMzIrGScXMzIrGScXMzIrGScUK1jCvgeorq+n3w35UX1lNw7yGclfJzMqk1BNKWi/XMK+B82acx/qW9QA0rWjivBnnAVAzprj3rTCzns9nKlaQyfdPbksorda3rGfy/ZPLVCMzKycnFSvI22vfzituZr2bk4qZmRWNk4oVZMSgEXnFzax3c1Kxgpy232l5xc2sd3NSsYLc9/J9ecXNrHdzUrGCNK1oyituZr2bk4oVpEIVecXNrHdzUrGCtERLXnEz692cVKwgVUOq8oqbWe/mpGIFGT18dF5xM+vdnFSsILMbZ+cVN+tOnuy0+3lCSSuI+1Ssp2qY10DtzFrWNK8BkhGJtTNrAU92Wko+U7GCePSX9VR1s+raEkqrNc1rqJtVV6Ya9Q1OKlaQ2oNq84qbdZfFKxbnFbficFKxglxz7DV8bezX2s5MKlTB18Z+jWuOvabMNbO+btSQUXnFrTgUEeWuQ9mMHTs25syZU+5qmFkJZPepAFQOqKT++Hr3qRRI0jMRMTbXOp+pWME8wsZ6opoxNUw6YFK7s+hJB0xyQikxJxUrSOuvwaYVTQTRNsLGicXKrWFeA9c/e33bSMSWaOH6Z6/3Z7PEnFSsIB5hYz3V5Psn07yxuV2seWOzb3VdYk4qVhCPsLGeyre6Lo+SJhVJu0n6taQVklZKukvSZodeSBorqV7SAklrJC2W1CBp9xxlGyVFjuWk0rwqy+QRNmaWqWRJRVIl8AiwNzAJOAv4CPCopMGb2fx0YD/gauAY4DvAgcAcSbvlKP8A8Ims5bEivAzbjCkTplA5oLJdrHJAJVMmTClTjcysnEo5TcuXgT2AvSJiIYCkvwAvA18Bruhk259GxLLMgKQngEXpfr+fVf6tiHiyWBW3rmsdSVM3q47FKxYzasgopkyY4hE2Vnb91I+NsTFn3EqnlEnlBODJ1oQCEBGL0uRwIp0kleyEksaaJC0DdilFZW3L1YypcRKxHucrB32Fa+dcmzNupVPKlL0f8HyO+Hxg33x3JmkfYCfgxRyrj0/7XtZJetL9KWY2ftR4hNrFhBg/anyZatQ3lDKpDAfeyRFfDgzLZ0eS+gP/BSwDbshaPRP4Z+BooAZ4H7hb0pn5VtjMeo/J908maD9jSBAeUlxipZ76PtccMMoR25xfAp8Ejo2IdokqIv653c6lu4EngZ8A0zc5uFQL1AKMGuURSma9lYcUl0cpz1TeITlbyTaM3GcwOUn6CUkSOC8iHtxc+YhoAe4EdpX0dznW10fE2IgYu+OOO3a1GtYJT9NiZq1KeaYyn6RfJdu+wAtd2YGkOpLhxN+IiFvyOHbr2VDfnS2zm/hGSNZTCW3S/NUat9Ip5ZnKvcA4SXu0BiRVA+PTdZ2S9A3gMqAuIv6jqwdN+19OBRZHxJt51tny5GlarKfKlVA6i1txlDKp/ApoBGZIOlHSCcAM4FXgutZCkqokbZD0/YzY6cCVwO+ARySNy1j2zSh3hqTbJZ0t6R/T7R4FDgIuLuFrs5SnabGeqmpIVV5xK46SJZWIWA0cDrwE3AI0kFy8eHhEvJdRVEBFVl0+m8Y/C/wxa8m8+9MikmHGPwMeJElW64DPRsTtxX9Vls3TtFhPNWXCFAZWDGwXG1gx0LM9lFhJR39FxGLglM2UaSRrRFhEnAOc04X9P0mSuKxMpkyYkvNGSP7DtZ4g+yaEffmmhN3F8xVYQXwjJOup6mbV5Zz63v19peWkYgVpmNfAtLnT2t0IadrcaR5WbGXXtKIpr7gVh5OKFcSjv8wsk5OKFcSjv8wsk5OKFWT4oFyTJnQcN+surf18XY1bcTipmFmvVHtQbV5xK45STyhpvZwn7bOe6ppjk0va6p+ppyVaqFAFtQfVtsWtNJxUzKzXuubYa5xEupmbv8zMrGicVMzMrGicVMys1/K9frqfk4oVxDPBWk/Veq+fphVNBNF2rx8nltJyUrGCTJkwhcoBle1inlDSegLP9lAeTipWkJoxNdQfX0/VkCqEqBpSRf3x9Z5Q0srOsz2Uh4cUW8FqxtQ4iViPM2rIqJyTR/peP6XlMxUrmDtDrSf63Ec+l1fcisNJxQrSMK+B82ac164z9LwZ5zmxWNndMf+OvOJWHE4qVpDJ909mfcv6drH1LeuZfP/kMtXILOEphMrDScUK4j9cM8vkpGJmvdKIQSPyiltxOKmYWa901TFXMbBiYLvYwIqBXHXMVWWqUd/gpGIFGTxgcF5xs+5SM6aGG0+8sd01VDeeeKOHv5eYk4oVZNv+2+YVN+tOTyx+gtdWvkYQvLbyNZ5Y/ES5q9Tr+eJHK8jytcvzipt1l/N/ez7Xzrm27XlLtLQ99z1WSsdnKlaQjq5O9lXLVm7XPXNdXnErDicVK4gnlLSeamNszCtuxeGkYgXxhJJmlsl9KlYwTyhpZq18pmJmZkVT0qQiaTdJv5a0QtJKSXdJ6lIPrqRtJf1M0t8krZX0R0mfzlGun6RLJDVKel/SXEmnFP/VmNnWxHclLY+SJRVJlcAjwN7AJOAs4CPAo5K6cmXcDcCXge8DxwF/Ax6Q9LGscj8GLgV+CRwDPAncKcnzW5v1YaOHj84rbsVRyj6VLwN7AHtFxEIASX8BXga+AlzR0YaSDgAmAudFxE1p7DFgPvAj4IQ0thNwEXB5RPw83fxRSaOBy4H7SvC6zGwrMLtxdl5xK45SNn+dADzZmlAAImIR8ARwYhe2bQb+O2PbDcDtwNGStknDRwMDgelZ208HxkjavaBXYF3im3RZT9QSLXnFrThKmVT2A57PEZ8P7NuFbRdFxJoc2w4ERmeUWwcszFGOLhzHCtQwr4HambXtbtJVO7PWicXKTiivuBVHKZPKcOCdHPHlwLACtm1d3/r4bkTEZsq1kVQraY6kOcuWLdtMNWxz6mbVsaa5fe5f07yGull1ZaqRWaKiX0VecSuOUg8pzv6yB7r0M0Fd3Lar5T6oUER9RIyNiLE77rhjF6pinWla0ZRX3Ky7bNi4Ia+4FUcpk8o75DhTIDlLyXUWkml5J9u2rm99HCYpO4lkl7MS6afcH6GO4mbWu5XyL38+SZ9Htn2BF7qw7e7psOTsbdfzQR/KfGAbYM8c5ejCcaxAnl/JzDKVMqncC4yTtEdrQFI1MD5dt7ltBwCnZmzbH/gC8GBErEvDvyNJMtlzhJwJPJ+ONjMzs25SyqTyK6ARmCHpREknADOAV4G2uaclVUnaIOn7rbGIeI5kOPGVkr4kaQLJcOLdgR9klFsK/AK4RNK3JB0m6VrgcOC7JXxtluGMD8GiamgZnTye8aFy18jMV9SXS8kufoyI1ZIOJ/nSv4Wk83wWcGFEvJdRVEAFmya4c4EpwGXAUGAu8NmIeDarXB3wHjAZGAn8FTgtImYW9xVZLmd8CH61MwxO//eqByTPzcpt9PDROQeM+Ir60tKmo3H7jrFjx8acOXPKXY2tWuM0UT0gR7wZqif13c+WlV//H/XPeaFjhSrY8H2PACuEpGciYmyudR6iYwUZ1cG5bkdxs+7iK+rLw0nFCrK4gx98HcXNukuFOrj4sYO4FYeTihXku2/B6qzRw6s3JnGzcqo9qDbnIJLag2rLXbVezY0UVpDb0iEX/7ZD0uS1eEOSUG57D24tb9Wsj5u4HfxDjkEkf96uvPXq7ZxUrGC3vfdBcjHrKaqb6hmc1dI1uF8Sh2vKUqe+wM1fZtYrfbhf7g75juJWHE4qZtYrvdrBYJGO4lYcTipWkH13yH3Lmo7iZt3lkg4GkVziQSQl5aRiBVmyeklecbPu8oeKKr68JLkQd2Mkj19eksStdNxRbwV5e+3becXNusvo4aO5bVHTJoNIJuzuaVpKyWcqZtYrzW6cnVfcisNJxQoyYtCIvOJm3cXTtJSHk4oV5GMjP5ZX3Ky7eJqW8nBSsYK4icF6qsOqD8srbsXhpGIFcROD9VQLly/MK27F4aRiBemn3B+hjuJm3SXXDbo6i1tx+C/fCjKo/6C84mbdxT94ysPvrhVkdfPqvOJm3WVjbMwrbsXhpGJmZkXjpGJmvZKvoSoPJxUz65WuOuYqBvQb0C42oN8ArjrmqjLVqG9wUjGzXqlmTA03nXQTVUOqEKJqSBU3nXQTNWNqyl21Xs1JxczMisazFFtBhAgiZ9ysnBrmNVA7s5Y1zWuA5PqU2pm1AD5bKSGfqVhBciWUzuJm3aVuVl1bQmm1pnkNdbPqylSjvsFJxQpSNST3DY86ipt1F19RXx5OKlaQKROmUDmgsl2sckAlUyZMKVONzKycnFSsIDVjaph0wKS26cQrVMGkAya5zdqsj3JSsYI0zGtg2txpbbMSt0QL0+ZOo2FeQ5lrZmblULKkIqmfpEskNUp6X9JcSad0YbvtJX1f0h8kvS3p3fTfJ+Uoe6mkyLHcU5pXZdncGWpmmUo5pPjHwEVAHfAMcDpwp6TjIuK+TrYbBZwP3JTuYyNwBnC3pAsi4j9zbHMokHkDj+VFqL91weIVi/OKm1nvVpKkImknkoRyeUT8PA0/Kmk0cDnQWVJZBOwREZk/fx+QtBtwMZArqTwVERuKUHXL0/BBw3l77ds542blNGLQiJyfTc/9VVqlav46GhgITM+KTwfGSNq9ow0jYnVWQmk1B/hw8apoZr2Z5/4qj1Illf2AdUD2fTvnp4/7bsE+Pzd+XnQAAA1MSURBVA0s6GDdq5JaJDVJ+qkk3yGqm+T6JdhZ3Ky7eO6v8ihVn8pw4N2IyL6sennG+i6TVAuMA87MWrUQ+A7wZyCAo4BvAgcCR3ayr1qAUaNG5VMNy6FCFTnvR986xNjM+pYuJRVJRwAPdaHoYxFxGCDIOU9H3hNCSToMuBq4JSLajVONiOzmtYckvQZcKemIiHg4e38RUQ/UA4wdO9ZziRQoV0LpLG7WXRrmNXDejPNY37IeSK6kP2/GeYDn/iqlrjZ//QHYpwvL2Wn55cAwSdlJZFjG+s2SdDBwL/AI8MUu1vW29PHgLpa3AniaFuupJt8/uS2htFrfsp7J908uU436hi6dqaQd5x31Z+QyH9gG2JP2/SqtfSkvbG4HksYADwDPAadERHMex4fcZ0pWZFMmTGk3Eyx4mhbrGdzfVx6l6qj/HbAeyD7HPBN4PiIWdbaxpI+QNLf9P+C4iFibx7Fbj/lUHtvYFqoZU0P98fXtOkPrj69384JZH1WSjvqIWCrpF8AlklYBzwJfAA4HTswsK2kWUBURo9PnO5EklIHAD4B9s1rR/hwR69KyfwZuBv5KcmZyJPDPwO8i4tFSvDbbVM2YGicR63F8nUp5lPKK+jrgPWAyMJLki/+0iJiZVa4iqx77Aq0N8v+TY7+7A43pv/8KXAD8XbqfV4AfAf9eePWtq87/7fnUP1NPS7RQoQpqD6rlmmOvKXe1rI+76pirOPuus9nIxrZYP/r5OpUSK1lSiYgW4LJ06azcYVnPZ9PFUWIRcfoWVs+K5Pzfns+1c65te94SLW3PnVis3CS1613ddOyQFZtnKbaC1D9Tn1fcrLtMvn/yJkPbW6LFo79KzEnFCuLrVKyn8uiv8nBSMTOzonFSMTOzonFSMTOzonFSsYKog4F6HcXNrHdzUrGCRAez4XQUN+suE3afkFfcisNJxQriCSWtp1q4PPt2Tp3HrTicVKwgUyZMoXJAZbuYJ5S0nmDxisV5xa04nFSsIDVjaph0wKS2m3JVqIJJB0zyXGBWdqOG5L4JX0dxKw4nFStIw7wGps2d1naxY0u0MG3uNBrmNWxmS7PS+txHPpdX3IrDScUKUjerrt29VADWNK+hblZdmWpklrhj/h15xa04nFSsIG63tp7K07SUh5OKFcTt1maWyUnFCuLRX9ZTdXQzLt+kq7ScVKwgvp2w9VRXHXMVAysGtosNrBjom3SVmCL67pXPY8eOjTlz5pS7GmZWIr4raWlIeiYixuZa5zMVM+uVGuY1cP2z17cb7n79s9d7uHuJOamYWa80+f7JNG9sbhdr3tjsOz+WmJOKmfVKHlJcHk4qZmZWNE4qZmZWNE4qVrCGeQ1UX1lNvx/2o/rKaneEWo/g61TKw0nFCtIwr4HambU0rWgiCJpWNFE7s9aJxcrutP1OyytuxeGkYgXxhJLWU9338n15xa04nFSsIE0rmvKKm3UXT3ZaHk4qVpDWm3N1NW7WXTzZaXk4qVhBWq9W7mrcrLt4stPycFKxglQNqcorbtZdPNlpeZQsqUjqJ+kSSY2S3pc0V9IpXdx2qqTIsVyZo+yhkv4gaa2kNyVdIWlQ8V+R5eJfg9aT1YypofHCRjb+YCONFzY6oXSD/iXc94+Bi4A64BngdOBOScdFRFeGXywDTsiK/S3ziaT9gYeAB4DjgN2BnwG7AF8oqPbWJa1/pHWz6li8YjGjhoxiyoQp/uM166NKMvW9pJ2AV4HLI+IHGfFZwI4Rsf9mtp8KHBERu26m3N3A3wP7RkRzGjsbmAYcFBHPdra9p743M8tfOaa+PxoYCEzPik8HxkjavdADSBoAfBa4ozWhpO4A1gMnFnoM6xpfUW9mrUqVVPYD1gELs+Lz08d9u7CPnSS9JWmDpJckXSy1G6e6J7At8HzmRhHxPvBKF49hBfIV9WaWqVRJZTjwbmzatrY8Y31nngO+DZxG0q/yGPAT4LqsYwC8k2P75R0dQ1KtpDmS5ixbtmwz1bDN8RX1ZpapSx31ko4g6RDfnMci4jBAQK7OGnXleBGRPcrrPknvARdK+mlEvJyxr7yOExH1QD0kfSpdqY91zFctm1mmro7++gOwTxfKtf5kXQ4Mk6Sss5VhGevzdRtwITAWeJnOz3qG8UFTm5XQqCGjck7J4quWzfqmLiWViFgDLMhjv/OBbUj6PTL7VVr7OV7IY1+tss9MXiHpt9mvXSFpW2AP4M4tOIblacqEKdTOrG3XBObrVMz6rlL1qfyOZARW9sUKZwLPR8SiLdjnRJKE8ieAiFifHuc0SZnJ8Z9IEtq9W3AMy5OvWjazTCW5+DEilkr6BXCJpFXAsyQXIx5O1lDf9NqVqogYnT6vAm4Bbic5y9kGOBk4B7guIl7J2PxS4I/AHZL+E6gmufjx1xHxTClem22qZkyNk4iZAaW9or4OeA+YDIwE/gqcFhEzs8pVZNVjFUl/ycXAziRnJy8C3wCuydwwIp6TdDTwU+C3wArgZuC7xX4xZma2eSW5on5r4SvqzczyV44r6s3MrA9yUjEzs6JxUjEzs6JxUjEzs6JxUjEzs6JxUrGCeep7M2tVyutUrA9onfq+dZqW1qnvAV8QadYH+UzFCuKp780sk5OKFcRT35tZJicVK0hHU9x76nuzvslJxQoyZcIUKgdUtot56nuzvstJxQriqe/NLJMnlPSEkmZmefGEkmZm1i2cVMzMrGicVMzMrGicVMzMrGicVMzMrGicVMzMrGicVMzMrGj69HUqkpYBTeWuRy+yA/BWuSthloM/m8VVFRE75lrRp5OKFZekOR1dEGVWTv5sdh83f5mZWdE4qZiZWdE4qVgx1Ze7AmYd8Gezm7hPxczMisZnKmZmVjROKmZmVjROKn2UpOslhaQrtnD7CyV9vtj1ynGcc9J6Vpf6WFZ+Gf/frct6Sa9I+jdJ227B/qZKeq3I9TuvWPvrjZxU+iBJg4BT06c1kvpvwW4uBEqeVKzPOhX4BHAs8ABwCfCzstYocQ7gpNIJJ5W+6WRge+A+YCfgs+WtjtkmnouIJyPioYg4H3gY+KIkf2f1cP4P6psmAe+Q/OpaC5ydXUDSAZLulvS2pLWS/irpknRdI1BFcpbT2kwxNV03NV2fvb/ZkmZnPN9W0i8kPS/pPUlvSpopae+iv1rrDZ4FBpFMtwKApEMkPZx+flZLmiXpkFwbS/qkpD9Jel9So6R/zlGm0/2ln9/PAOMzPvezi/1Ct3Zb0uxhWzFJHwaOAOojYpmke4DPSxoWEe+kZQ4BZgMLgW8CrwEfAfZPd3MyyVnOXODSNLYsz6psA2wHXAb8DRgOnA88KWnviHhzi16g9VbVwArgbQBJ+wOPAS+Q/DgK4DvAY5LGRcTcjG23B/4b+CnJZ/p04GpJqyJiah77Ox+YDlQAX0n3vbIkr3ZrFhFe+tACXEzyB/OJ9PnR6fOvZpT5PfAqUNnJfhqB6TniU4HGHPHZwOxO9lcBVAKrgG9mxM9J61dd7vfOS+mXjP/vvUh+9A4j6cPYAFyQUe7XwLvA0IzY9sBy4K6M2NR0f6dnHechkslklef+ZgP/W+73qScvbv7qe84GXo6IP6bPHwbeSONIqgTGAw0RsaaUFZF0mqSnJL1L8qWxGvgQyReK9W0LgGaSL/UbgOsi4pcZ6z8N/E9EvNsaiIiVwL0kTVSZWoDfZMVuB0YBu2zB/qwTTip9iKSDgX2BuyQNlTSUpAnqLuATkj5K8suwH0mTVynrcjxJk8SLwETg48DBJM1oeQ8dtV7nZJLPw+dIfvicLymz7284SbNptjdJPsOZ3omI5qzYkvSxNanksz/rhPtU+pZJ6ePF6ZLtbODfgI188MeWr/eBgTniI0jbw1OnAwsj4pzWgKQBJH/cZs9HxEIASY8AfwF+Juk3EbGa5AxmZI7tRqbrMg2TNCArseycPr6ePuazP+uEz1T6CEkDSb7InwL+McfyHHAWyWiw/wXOTK9n6cg6ktE42ZqAnSVljtLZk02btCpJmrwynUXSt2LWJiLWAf9CMvz9/DT8GHCspO1ay6X/Pj5dl6kCOCUrdjqwmA+SSlf319Hn3lJOKn3HcSRnC9dGxOzsBbiOpI35MOCitOwfJZ0l6R8lfVHSf2Ts7wXgU5KOkzQ244r3O0k6RhskHS2pBpjBpnfd+x2wdzqseIKkfwV+RNJZatZORNwL/Am4KP2x82OSL/dZkk5JZ3d4mOTHyo+yNl8F/LukC9LP5FSSEZDfj7T3PY/9vQD8vaQvpJ979/9lK/dIAS/ds5B8sa+kgxFdwBBgDTA1ff4PwEySL/m1JB2nF2eU3xt4PN0mWrdL150EPJ9uNxc4iqzRXyQ/aC4jGSSwhuTX4D+QjCrL3Nc5ePRXn1ky/r9H51h3VLrum+nzj5N88b9HMshjFnBI1jZTSfoHP0mSlN4nOZv+Ro79d2V/I0mG069K6zK73O9ZT1s89b2ZmRWNm7/MzKxonFTMzKxonFTMzKxonFTMzKxonFTMzKxonFTMzKxonFTMzKxonFTMzKxo/j/mSJsiigIv0AAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"d = 3 ; g = 9.81 ; z0 = 0.3 ; N = 54 ; zeros = np.zeros(N)\n",
"v01 = 10 ; v02 = 12\n",
"angz1 = 7*np.pi/180*-1 ; angz2 = 7*np.pi/180\n",
"\n",
"rand1 = np.random.rand(N)\n",
"rand2 = np.random.rand(N)\n",
"v0 = v01 + (v02-v01)*rand2\n",
"anglez = angz1 + (angz2-angz1)*rand1\n",
"\n",
"z_robot = d/np.cos(anglez)*(np.sin(anglez)-g*d/(2*v0**2*np.cos(anglez))) + z0\n",
"z_robot_avg = np.mean(z_robot)\n",
"z_robot_std = np.std(z_robot)\n",
"z_robot_med = np.median(z_robot)\n",
"z_robot_Q1 = np.percentile(z_robot,25) ; z_robot_Q2 = np.percentile(z_robot,50) ; z_robot_Q3 = np.percentile(z_robot,75)\n",
"\n",
"\n",
"print('Parameters: Velocity [m/s] = {:1.1f} < V < {:1.1f}'.format(v01,v02))\n",
"print(' Angle(z) [deg] = {:1.1f} < \\u03B8z < {:1.1f}'.format(angz1*180/np.pi,angz2*180/np.pi))\n",
"print()\n",
"print('Actual: Average = {:1.5f} ; St. Dev = {:1.5f} ; Median = {:1.5f}'.format(z_avg,z_std,z_med))\n",
"print(' Robot: Average = {:1.5f} ; St. Dev = {:1.5f} ; Median = {:1.5f}'.format(z_robot_avg, z_robot_std, z_robot_med))\n",
"print()\n",
"print('Actual Quartiles: Q1 = {:1.5f}, Q2 = {:1.5f}, Q3 = {:1.5f}'.format(z_Q1, z_Q2, z_Q3))\n",
"print(' Robot Quartiles: Q1 = {:1.5f}, Q2 = {:1.5f}, Q3 = {:1.5f}'.format(z_robot_Q1, z_robot_Q2, z_robot_Q3))\n",
"\n",
"plt.scatter(zeros+0.01, z_robot, color='g')\n",
"plt.scatter(zeros, z_pos, color='g')\n",
"plt.plot(0,z_avg,'o',color='orange',label='Average')\n",
"plt.plot(0.01,z_robot_avg,'o',color='orange')\n",
"\n",
"plt.xlim([-0.005, 0.015])\n",
"plt.xticks([0,0.01],['Actual','Robot'])\n",
"plt.title('Vertical Position [m]')\n",
"plt.legend(loc='best',prop={'size':12});"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 446.4x324 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(1, figsize=(6.2, 4.5))\n",
"ax = fig.add_subplot(111)\n",
"bp = ax.boxplot([z_pos, z_robot])\n",
"plt.xticks([1, 2],['Actual', 'Robot'])\n",
"plt.title('Vertical Position [m]');"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Parameters: Velocity [m/s] = 10.0 < V < 12.0\n",
" Angle(x) [deg] = -9.0 < θx < 9.0\n",
"\n",
"Actual: Average = 0.01208 ; St. Dev = 0.25716 ; Median = 0.02845\n",
" Robot: Average = -0.03013 ; St. Dev = 0.27560 ; Median = -0.00764\n",
"\n",
"Actual Quartiles: Q1 = -0.16854, Q2 = 0.02845, Q3 = 0.16709\n",
" Robot Quartiles: Q1 = -0.29511, Q2 = -0.00764, Q3 = 0.21509\n"
]
},
{
"data": {
"image/png": "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eOGFNDQ0APDCCy8wbNgwWlpa2vI99NBDHHrooQC0trbyk5/8hH322YfKykrOPfdc1qxZA0SBysy44447qKqq4vjjjwfgnHPOYdiwYQwaNIhjjz2WN998s63sDz74gDFjxrDrrrty1FFHcd1113H00Ue3bV+4cCEnnngiQ4YM4YADDmDWrFlBx0CBRUS2f69PgpZN7dNaNkXpgc2cOZO6ujrq6up48sknWbFiBSNGjKCiooJnnnmmLd8999zD+PHjAbjllluYPXs2zz77LMuWLWPw4MFcdtll7cp99tlnWbBgAU8++SQAJ598Mu+88w4rV67kiCOOoK6uri3vZZddRkVFBcuXL6ehoaEtwAFs3LiRE088kfHjx7Ny5UruvfdeJk6c2C4wdZm77/CPI4880kWk73vrrbcK27HR3BtJ87Cg7Xv++ee9pKTEV61a5e7uBxxwgN94443u7j5p0iS/6KKL3N19w4YNXl5e7k1NTe7u/rnPfc7nzJnTVs6yZcu8pKTEm5ub/b333nPA33333Yz1rl271gFft26db9u2zUtKSnzhwoVt2ydNmuQjR450d/f77rvPjz766Hb719fX++TJkzOWn2ncgXme5piqMxYR2f6VV+WXXqCGhgZOOukkdt99dwDGjx/fdrYwfvx4HnzwQbZs2cKDDz7IEUccQXV1NQCLFy9m7Nix7Lbbbuy2224ceOCBFBcXs2LFirayP/OZz7T9u6Wlhauvvpp99tmHXXfdlcT/gLt69WpWrVrFtm3b2uVP/vfixYt58cUX2+rabbfdaGxsZPny5cHGQX8rTES2f4dNia6pJC+HFZdH6YFs3ryZWbNm0dLSwrBhwwDYsmUL69at4/XXX+ewww6jurqaJ554ot0yGEQH/unTpzNy5MgO5TY1NQHtf6h4zz338PDDDzNnzhxqampYv349gwcPxt3ZY489KCkpYenSpey///4A/PWvf21X13HHHcdTTz0VrO+pdMYiItu/vevgi9OgvBqw6PmL06L0QGbPnk1xcTFvvfUWr732Gq+99hoLFizgmGOOYebMmUB01nLLLbfw3HPPcc4557Tte+mllzJp0iQWL47+p99Vq1bx8MMPZ6zrww8/ZODAgVRWVrJp0yauvfbatm3FxcWcddZZTJ48mU2bNrFw4cK2+gFOO+003n77be666y6am5tpbm7m5Zdf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3y+gPAmk7pA6po2ZRvWgagyjelB120XL1G2VZZVUllW25bvzzDuZfsb0dvtOqJ1ARWlFh3oqSiswrN3rmWfNZOqpUzPWUVlWyc4Ddm7bp7Kskgm1E9K2FWDqqVOZUDuBIivqUE8u/SnkYm3dIXU0jG1o1+ciK2JC7QTmnD8n49imG/s/FlfzatUEKK8GDMqr2elLM1m5x+h2dQ4sHgh88k09U9uz9Tfd2DaMbeDOM+9s197UOc7lPZDaluR2pLY7MZ+Z0nOZm8S8pwb41PIqyyrbzVFiWy59yFXdIXXceead7eqqLKvslxfuswl58f504GHg39z9p2b2ADAaqHb3D+M8uxBdE5nr7mfHaTOILtSPS7rGkrh+sj9Q4+6eR3lPAru7+5G59kkX70VE8pfp4n2wP+ni7o8ALwPfMbMy4N+BMuBpMzvbzM4iWjIrB36YsvuHwH+Y2eVm9pWkW5C/559EvlzLewv4vJl91cxqzeyAUH0UEZHOhf5bYdcBQ4FL3f0NYBSwAWgA7gI+Ao5L3GqcZAOf3GL8MPBl4Ap3b0hkyKO8G4Cngf8iCnS3B+2hiIhklfdS2PZIS2EiIvnr9qUwERERUGAREZHAFFhERCQoBRYREQlKgUVERIJSYBERkaAUWEREJCgFFhERCUqBRUREglJgERGRoBRYREQkKAUWEREJSoFFRESCUmAREZGgFFhERCQoBRYREQlKgUVERIJSYBERkaAUWEREJCgFFhERCUqBRUREglJgERGRoBRYREQkKAUWEREJSoFFRESCUmAREZGgFFhERCQoBRYREQlKgUVERIJSYBERkaAUWEREJCgFFhERCUqBRUREglJgERGRoBRYREQkKAUWEREJSoFFRESCUmAREZGgFFhERCQoBRYREQlKgUVERIJSYBERkaAUWEREJCgFFhERCUqBRUREglJgERGRoBRYREQkKAUWEREJSoFFRESCUmAREZGgFFhERCQoBRYREQlKgUVERIJSYBERkaAUWEREJCgFFhERCUqBRUREglJgERGRoBRYREQkKAUWEREJSoFFRESCUmAREZGgFFhERCQoBRYREQlKgUVERIJSYBERkaAUWEREJCgFFhERCUqBRUREglJgERGRoBRYREQkKAUWEREJSoFFRESCUmAREZGgFFhERCQoBRYREQlKgUVERIJSYBERkaAUWERE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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"rand3 = np.random.rand(N)\n",
"angx1 = 9*np.pi/180*-1 ; angx2 = 9*np.pi/180\n",
"anglex = angx1 + (angx2-angx1)*rand3\n",
"\n",
"v0x = v0*np.sin(anglex)\n",
"v0y = v0*np.cos(anglez)*np.cos(anglex)\n",
"x_robot = v0x / v0y * d\n",
"\n",
"x_robot_avg = np.mean(x_robot)\n",
"x_robot_std = np.std(x_robot)\n",
"x_robot_med = np.median(x_robot)\n",
"x_robot_Q1 = np.percentile(x_robot,25) ; x_robot_Q2 = np.percentile(x_robot,50) ; x_robot_Q3 = np.percentile(x_robot,75)\n",
"\n",
"print('Parameters: Velocity [m/s] = {:1.1f} < V < {:1.1f}'.format(v01,v02))\n",
"print(' Angle(x) [deg] = {:1.1f} < \\u03B8x < {:1.1f}'.format(angx1*180/np.pi,angx2*180/np.pi))\n",
"print()\n",
"print('Actual: Average = {:1.5f} ; St. Dev = {:1.5f} ; Median = {:1.5f}'.format(x_avg,x_std,x_med))\n",
"print(' Robot: Average = {:1.5f} ; St. Dev = {:1.5f} ; Median = {:1.5f}'.format(x_robot_avg, x_robot_std, x_robot_med))\n",
"print()\n",
"print('Actual Quartiles: Q1 = {:1.5f}, Q2 = {:1.5f}, Q3 = {:1.5f}'.format(x_Q1, x_Q2, x_Q3))\n",
"print(' Robot Quartiles: Q1 = {:1.5f}, Q2 = {:1.5f}, Q3 = {:1.5f}'.format(x_robot_Q1, x_robot_Q2, x_robot_Q3))\n",
"\n",
"\n",
"plt.scatter(x_robot, zeros+0.01, color='g')\n",
"plt.scatter(x_pos, zeros, color='g')\n",
"plt.plot(x_avg, 0,'o',color='orange',label='Average')\n",
"plt.plot(x_robot_avg, 0.01,'o',color='orange')\n",
"\n",
"plt.ylim([-0.005, 0.015])\n",
"plt.yticks([0,0.01],['Actual','Robot'])\n",
"plt.title('Horizontal Position [m]')\n",
"plt.legend(loc='best',prop={'size':12});"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 446.4x324 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig2 = plt.figure(1, figsize=(6.2, 4.5))\n",
"ax2 = fig2.add_subplot(111)\n",
"bp2 = ax2.boxplot([x_pos, x_robot],vert=False)\n",
"plt.yticks([1, 2],['Actual', 'Robot'])\n",
"plt.title('Horizontal Position [m]');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Actual v. Robot Impact (with random x & z coordinates)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" Horizontal Position (x) Statistics\n",
"___________________________________________________________________\n",
"Parameters: Velocity [m/s] = 10.0 < Vo < 12.0\n",
" Angle(x) [deg] = -9.0 < θx < 9.0\n",
"\n",
"Actual: Average = 0.01208 ; St. Dev = 0.25716 ; Median = 0.02845\n",
" Robot: Average = 0.03057 ; St. Dev = 0.27777 ; Median = 0.07248\n",
"\n",
"Actual Quartiles: Q1 = -0.16854, Q2 = 0.02845, Q3 = 0.16709\n",
" Robot Quartiles: Q1 = -0.23248, Q2 = 0.07248, Q3 = 0.28553\n",
"\n",
"\n",
" Vertical Position (z) Statistics\n",
"___________________________________________________________________\n",
"Parameters: Velocity [m/s] = 10.0 < Vo < 12.0\n",
" Angle(z) [deg] = -7.0 < θz < 7.0\n",
"\n",
"Actual: Average = -0.04740 ; St. Dev = 0.25486 ; Median = -0.07085\n",
" Robot: Average = -0.09921 ; St. Dev = 0.19141 ; Median = -0.12247\n",
"\n",
"Actual Quartiles: Q1 = -0.21785, Q2 = -0.07085, Q3 = 0.13222\n",
" Robot Quartiles: Q1 = -0.25576, Q2 = -0.12247, Q3 = 0.00219\n"
]
},
{
"data": {
"image/png": "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nOFkeUBmVpMjeesSJVtTXqULU1BZxNT3plL+UDkFtxdQ/lA5U99LPJN5YWEhgwYNon///px99tktkrKGI7Rchh/uvvvuqPvfeecdRIS5c+fGNG7GSfUMJ8sDMrOeJGeQz0ayNeVVujAFlSVMfW8q458fT9XWKhSlamsV458fn7CS6tChAytWrOD999+nrKyMRx55JEkS76E1BRUo9xFIbZQzpHqG00bsKGklz2x62ZryKl2YgsoSJrwygdrdLdeVa3fXMuGVxMptBDNs2DC++OILAFSV6667jv79+zNgwIDmZK0A27ZtY+zYsfTr148rr7yyORfftGnTGDBgAP379+eGG24A4MYbb2Tnzp0MGjSIijCZL1SVmTNnMmXKFF5++eXmnH033HADjz76aHO/iRMn8sADD9DU1MRVV13F0UcfzejRo/nmN7/JzJl71aZMD6me4bQRO0rayFObXjamvEoXpqCyhDVbw5fViNQeK42Njbzyyiucc845AMyaNYsVK1awcuVK5s2bx3XXXceXX34JuFpPDzzwAO+99x6ffvops2bNYt26ddxwww28+uqrrFixgqVLlzJnzhzuvffe5lna1DDFFd944w369OnDoYceyogRI3jxxRcBl1k9WCk+/fTTXHDBBcyaNYvKykree+89/vjHP7JoUQYjGFI9w2kjdpS0YTa9vMMUVJbQq0v4shqR2v0SmN10796dTZs2ceaZZwKwcOFCLr74YgoLC9l///059dRTWbp0KQBDhgyhb9++FBYWcvHFF7Nw4UKWLl3KiBEj6NGjB0VFRVRUVPD666+3ev5I5T6OPfZYvvrqK9atW8fKlSvp1q0bvXr1YuHChVxwwQUUFBRwwAEHMHLkyISuPyHSMcNpA3aUtGE2vbzDFFSWcNfpd1HarqVnTmm7Uu46Pf5yG7DHBlVVVUV9fX2zDSpaDsbQMhwiErV/JBobG3n22We54447KC8v5+qrr+Yf//hHc7b0888/n5kzZzJjxoxmJRbPeVKGzXByC7Pp5R2moLKEigEVTD57Mr279EYQenfpzeSzJ1MxILGM5gG6dOnCww8/zKRJk9i9ezennHIKM2bMoLGxkQ0bNvD6668zZMgQwC3xrV69mqamJmbMmMHw4cM54YQTWLBgARs3bqSxsZFp06Zx6qmnAtCuXTt279691znnzZvHwIED+fzz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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(x_pos,z_pos,alpha=0.7,label='Actual') ; plt.scatter(x_robot,z_robot,alpha=0.7,label='Robot')\n",
"plt.plot(x_avg,z_avg,'o',color='r',label='Actual Avg') ; plt.plot(x_robot_avg,z_robot_avg,'o',color='g',label='Robot Avg')\n",
"\n",
"plt.title('Robot vs. Actual Impact') ; plt.xlabel('x position (m)')\n",
"plt.axvline(x=0,color='black',ls='-',lw='0.5') ; plt.axhline(y=0,color='black',ls='-',lw='0.5')\n",
"plt.legend(loc='lower left',prop={'size': 10}) ; plt.ylabel('z position (m)')\n",
"\n",
"print()\n",
"print(' Horizontal Position (x) Statistics')\n",
"print('___________________________________________________________________')\n",
"print('Parameters: Velocity [m/s] = {:1.1f} < Vo < {:1.1f}'.format(v01,v02))\n",
"print(' Angle(x) [deg] = {:1.1f} < \\u03B8x < {:1.1f}'.format(angx1*180/np.pi,angx2*180/np.pi))\n",
"print()\n",
"print('Actual: Average = {:1.5f} ; St. Dev = {:1.5f} ; Median = {:1.5f}'.format(x_avg,x_std,x_med))\n",
"print(' Robot: Average = {:1.5f} ; St. Dev = {:1.5f} ; Median = {:1.5f}'.format(x_robot_avg, x_robot_std, x_robot_med))\n",
"print()\n",
"print('Actual Quartiles: Q1 = {:1.5f}, Q2 = {:1.5f}, Q3 = {:1.5f}'.format(x_Q1, x_Q2, x_Q3))\n",
"print(' Robot Quartiles: Q1 = {:1.5f}, Q2 = {:1.5f}, Q3 = {:1.5f}'.format(x_robot_Q1, x_robot_Q2, x_robot_Q3))\n",
"print()\n",
"print()\n",
"print(' Vertical Position (z) Statistics')\n",
"print('___________________________________________________________________')\n",
"print('Parameters: Velocity [m/s] = {:1.1f} < Vo < {:1.1f}'.format(v01,v02))\n",
"print(' Angle(z) [deg] = {:1.1f} < \\u03B8z < {:1.1f}'.format(angz1*180/np.pi,angz2*180/np.pi))\n",
"print()\n",
"print('Actual: Average = {:1.5f} ; St. Dev = {:1.5f} ; Median = {:1.5f}'.format(z_avg,z_std,z_med))\n",
"print(' Robot: Average = {:1.5f} ; St. Dev = {:1.5f} ; Median = {:1.5f}'.format(z_robot_avg, z_robot_std, z_robot_med))\n",
"print()\n",
"print('Actual Quartiles: Q1 = {:1.5f}, Q2 = {:1.5f}, Q3 = {:1.5f}'.format(z_Q1, z_Q2, z_Q3))\n",
"print(' Robot Quartiles: Q1 = {:1.5f}, Q2 = {:1.5f}, Q3 = {:1.5f}'.format(z_robot_Q1, z_robot_Q2, z_robot_Q3))"
]
}
],
"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
}