I have been working lately on solving the aerodynamics problem presented with launching a ball in this year’s game. After a ton of math and help from the community, especially Nathan from AURA, I would like to present the first version of my own Ball Trajectory “Calculator”
What it does:
It allows a user to input known initial parameters of the ball (initial height, angle of launcher, etc.) and/or the final range. Then, it reports back all of the possible solutions to the remaining undefined parameters that will result in a trajectory that makes it into the high goal, if any.
How it works:
Using Google Sheets, the user enters in any known conditions at the initial launch time such as angle of launcher or initial height. The Sheet then queries a Google Fusion Table that is already filled with solutions to various initial parameters. The Table responds back with all the possible conditions that will result in a ball trajectory into the high goal. The user can then select one of these trajectories to plot in order to verify it’s integrity.
MATLAB is used to numerical solve for the trajectory of the ball. It iterates over all the possible initial conditions at predefined step sizes.
Why is calculator quoted?
Because this isn’t really a calculator. It is a glorified lookup program. All the calculation has been done already before hand, courteous of my university’s server
Instructions:
Log into your Google Account
Open up the Google Sheet
Go to the menu File/Make a Copy
On the copy of the sheet, enter in any known data to the left
The right side will list all possible results where the ball hits the goal
One can enter an x in the corrisponding column to the left of the list in order to plot the trajectory. Note that if there are multiple x’s, it will plot the first one.
One may change the error percent on the left in order to show more or less accurate results to your entered parameters
Notes:
This is just the first version and there are still quite a few things to do. The data is not very fine (V0 has a step size of 1 m/s, Theta0 has a step size of 1 degree, etc.). As is with this rough version I had around a million cells of data if you include the trajectory plots. This came to a .csv file size of about 64 MB. In addition, it took about an hour to simulate this data. I plan on reducing the step size, but by doing so I will greatly increase the simulation time and size. Before doing so, I would like to work out any kinks if possible. Please let me know any problems you find.
If you enter in parameters such that the ball won’t go high enough to make it into the goal, there will be no results listed. This is intentional. Also, there are no listed trajectories such that the ball is rising when it goes into the goal. Again, this is intentional because it wouldn’t be physically possible.
V0 (initial speed) iterates from 1 to 10 in 1 m/s steps.
Theta0 (initial angle) iterated from 0 to 90 in 1 degree steps.
Spin iterates from -40 to 40 in 5 rad/s steps.
Y0 (initial height) iterates from 0 to 0.4572 (18in) in 0.1 m steps.
Known Issues:
There are a few null trajectories that got past my filter. I need to figure out how they did and correct it.
There are some trajectories in which the ball curves so much that it is moving backwards (in the x direction) when it goes into the goal. Seeing as how this wouldn’t be possible (it would hit the bar on the goal) I need to figure out how to remove these.
If you don’t enter in enough initial parameters there will be no results. This is because Google Fusion Tables limits the query response size to 10MB.
Please let me know what you think. If there are any problems or additional features you would like to see tell me! I was considering iterating the ball mass over the tolerance range but didn’t know if anyone would be interested in that.
How fine of results are people looking for? Is it good enough to increment the initial angle in whole degrees? How about the initial velocity? Let me know.
I plan on going into more detail as to how it actually works at a later time.
One final thing. Google Fusion Tables allows for 25,000 requests per day before it will 404 and it allows for 30 requests per minute so if it gets busy you may have to keep trying for the query to work. Please don’t write a script that feeds off of this calculator and shuts it down. Instead, I will send you the data itself if you want it.