TITLE METHOD OF DETERMINING A FLIGHT TRAJECTORY AND EXTRACTING FLIGHT DATA FOR A TRACKABLE GOLF BALL
FIELD OF THE INVENTION The present invention is directed to a method of determining a flight trajectory and extracting certain flight data, such as spin rate, for a trackable golf ball using in real-time or substantially real time position information. Substantially real-time weather information can also be accounted for when determining the flight trajectory and extracting flight data. Additionally, the flight trajectory and flight data can be stored in a memory for later access and viewing by a user, including access from a remote location.
BACKGROUND OF THE INVENTION Various types of systems for obtaining substantially real-time information on sporting equipment are presently known in the art. Real-time information includes information that is obtained from the sporting equipment, such as a golf ball, itself. Importantly, this information does not immediately need to be used, and can be stored in a memory for later use, and still be considered real-time information. Real-time information for a golf ball may include, for example, information such as the initial and final location of the ball, ball distance, ball speed, initial and average ball spin, maximum height, distance bouncing or rolling, launch angle, trajectory curvature and deflection from a straight line trajectory, etc. While some of the prior art systems have been used to track- somewhat analogous equipment, such as soccer balls or footballs, none of the systems have been used to provide real-time information on the flight a golf ball. Also, all present systems suffer from various limitations that make them impractical or unduly limiting for use by golfers. None have been used to determine a flight trajectory for a piece of sporting equipment, and particularly a flight trajectory where the initial and ending locations for the shot track are determined by one or more of the velocity or acceleration of the sporting equipment. Moreover, none of them have been used to determine a spin rate of the sporting equipment based on the determined flight trajectory. The prior art systems and their limitations are described below.
A system for real-time tracking of a soccer ball has allegedly been developed by Cairos & Fraunhoffer, used in an Adidas soccer ball. A soccer ball having an embedded pulsed microwave transmitter in the 2.45 GHz ISM band is utilized, in connection with a series of receivers around the field, to locate the ball and to determine if the ball has crossed the goal line. The system will allegedly be in trials in March 2005 with scheduled match use in the subsequent World Cup soccer matches. While this system will primarily be used to provide position location for the soccer ball, additional information about the ball could also theoretically be obtained using such a system. However, this system is not known to be used to determine flight trajectories or spin rates of the soccer ball based on the flight trajectories. A system for providing real-time information on a hockey puck is described in Embedded Systems' website (www.embedded.com). The website indicates that the company has commercially developed a hockey puck tracking system including a puck having an embedded battery, circuit board, and infrared emitters, and sensors surrounding the rink which can be used to relay information regarding the puck, such as puck location, speed and direction, to a monitoring station. This system uses infrared emitters and receivers to provide the tracking function. Similarly, U.S. 5,564,698, the disclosure of which is incorporated herein by reference, discloses a hockey puck with an electromagnetic transmitter, which could include an infrared transmitter, ultraviolet transmitter, radar repeater, RF transmitter or other device, for transmitting information to a receiver. This information can include location information, as well as information on speed and the like. However, once again, neither of these systems are used to determine flight trajectories or spin rates based on the flight trajectories. In fact, there would be no reason to obtain any of this data in connection with a hockey puck. U.S. Patent Publication 2003/0071733 Al, the disclosure of which is incorporated herein by reference, discloses a system and method for using impulse radio technology (ultra-wideband signals/"UWB") to track the movement of athletes (as well as to enable secure communication between the athletes and their teammates, fans or coaches). The system uses the positioning capabilities of UWB to track the current position and movement of one or more moving athletes having a transmitter on his or her jersey or equipment. This system's only disclosed use is for tracking athletes and it is not known to be used to
determine flight trajectories of sporting equipment or spin rates based on the flight trajectories. U.S. 6,157,898, the disclosure of which is incorporated herein by reference, discloses a device for measuring a moveable object, such as a hockey puck or a golf ball. A network of acceleration sensors, an electronic processor circuit and a radio transmitter are attached to, or embedded within the ball or puck and interact with a monitor unit having a radio receiver, processor, input keypad and output display. The display can show various measured motion characteristics of the object such as the distance, time of flight, speed, height, spin rate or curve. While this system could be used to determine certain variables in connection with the flight of a golf ball, it is not used to determine a ball's flight trajectory, and particularly one whose initial and ending locations are defined by at least one of the ball velocity and ball acceleration. Moreover, this system does not use the flight trajectory of the ball to determine a spin rate of the ball. SUMMARY OF THE INVENTION One embodiment of the present invention is directed to a method for determining a shot trajectory of a trackable golf ball hit by a golfer, the method comprising the steps of: providing a receiver configured to receive substantially real-time position information transmitted by the trackable golf ball over a time period and a processor configured to process the location information and to determine a shot trajectory; identifying whether a shot of the golf ball by the golfer has taken place using the processor; computing a velocity value and an acceleration value for each of several portions of the time period using the processor; determining an initial location and a final location of the shot trajectory based on at least one of the acceleration values and the velocity values using the processor; and outputting the shot trajectory. Another embodiment of the present invention is directed to a method determirting a spin rate of a trackable golf ball hit by a golfer, the method comprising the steps of: providing a receiver configured to receive substantially real-time position information for the golf ball for a plurality of time periods and a processor configured to process the location information and to determine a shot trajectory; identifying whether a shot of the golf ball by the golfer has taken place using the processor; determining a profile of the shot trajectory using the processor; calculating one or more of an initial velocity, a maximum
height, an initial shot angle, a curvature of the trajectory and an in-air shot distance based on the shot trajectory using the processor and determining the spin rate based on the calculated values; and outputting the spin rate. BRIEF DESCRIPTION OF THE DRAWINGS A preferred embodiment of the invention as well as alternate embodiments are described by way of example with reference to the accompanying drawings in which like numbers correspond to like elements, and in which: FIG. la is an internal perspective view of a preferred trackable golf ball for use with the present invention;
FIG. 2 is a perspective view of a preferred sensor for use with the present invention;
FIG. 3a is a front view of a preferred stand-alone display which can be used with the present invention; I FIG. 3b is a front view of a preferred portable handset which can be used with the present invention;
FIG. 4 is flow chart illustrating a process for determining whether a ball is a new ball according to one aspect of the present invention; FIG. 5 is a flow chart illustrating a process for determining whether a ball is in play according to one aspect of the present invention;
FIG. 6 is a flow chart illustrating a process for determining a flight trajectory and extracting flight data from the trajectory according to a preferred aspect of the present invention;
FIG. 7 are sample height, velocity and acceleration graphs for a typical golf shot in accordance with one aspect of the present invention;
FIG. 8 is a graph illustrating shot profiles for sample golf shots in accordance with one aspect of the present invention; and
FIG. 9 is a graph illustrating the effect of spin rates for identical balls having the same initial velocity and launch angle in accordance with one aspect of the present invention.
DETAπjED DESCRIPTION OF THE PREFERRED EMBODIMENTS The following description is provided to enable those skilled in the art to make and use the present invention and sets forth the best mode contemplated by the inventors for carrying out their invention. Various modifications will be readily apparent to those skilled in the art and this invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Thus, these embodiments are provided by way of example only.
Core Equipment; The inventive methods disclosed herein utilize real-time or substantially real-time position information on a trackable golf ball hit by a golfer to determine a shot trajectory and/or to determine a spin rate of the ball based on the shot trajectory. The real-time information collected for use in the system can be obtained using a variety of different technologies. Preferably, the following core equipment is used in conjunction with the inventive methods: (1) transmitting ball; (2) sensors/receivers; (3) server /processor. Additionally, a stand-alone display or portable handset, and information on a golf course being played, may be used with the present invention. In lieu of a transmitting ball, one or more video cameras/optical devices may be used to track the golf ball and obtain the position information for use in the present invention, which cameras may provide this information either to the sensors/receivers, or alternatively directly to the server/processor. Such cameras may include software that converts the video image into position or location information.
Preferably, the present invention is used with golf balls having an embedded active transmitter or a embedded dual transmitter /receiver. With the latter, the balls can receive information, as well as transmit information. Tracking can further be accomplished using one or more cameras/optical systems which are focuses on, and thereby track the motion of the ball. A preferred ball is shown in FIG. 1. As shown, the ball 100 preferably includes a outer soft surlyn or balata cover 120 having multiple dimples 110 to provide better flight performance. The outer cover 120 preferably surrounds a second layer 130 of polybutadiene rubber or TPE mixed with stiffeners such as tungsten or other metal powders. The second layer 130 preferably surrounds a third inner core layer 140 that includes polybutadiene or another polymer doped to alter the compression characteristics and the elastic modulus, which dopants may include metals such as titanium powder or low density polmers. The third layer 140 preferably surrounds a polymer core 150 that includes the components used with the present system. While the components are preferably contained within the inner core 150, one or more components may be embedded within the other layers. Additionally, while the ball has been described havmg four layers, balls havmg any number of layers may be used herewith. The embedded components may include one or more counter weights 190 or low density spaces to help balance the weight and moments in the core and to ensure proper flight characteristics, a transmit antennae 170, a secondary antennae 160, a control stack including the electronic circuitry 180, and a power source, such as battery cells 195. Other components, such as an accelerometer or gyroscope (not shown), may also be included. The power source 195 may be rechargeable lithium cells, any type of non-rechargeable batteries, capacitors or part of an impact powered piezoelectric system. Also, the ball may be designed to transmit information constantly, or it may be activated so that it only transmits for shorter, discrete periods of times (e.g., 10 seconds). The balls are preferably used in conjunction with one or more sensors/receivers such that real-time data about the position and flight characteristics of the ball can be received. The transmissions from the ball are passed to sensors, which can be used individually or in a network, and can receive either a directional or a time differential signal from the balls. Possible transmitter/receiver technologies include active radio transmissions of any frequency and power, such as microwave ISM, infrared, Bluetooth, GPRS, WiMAX, WiFi and ultra-wideband ("UWB"). Additional possibilities include
passive or indirect transmissions and position determining systems, such as RFID, GPS, etc. While a variety of technologies can be used to track the ball in real-time, it is important that each ball can be uniquely identified so that its position can be individually tracked over time. For example, if the ball uses an active broadcast technology (such as UWB) each ball can broadcast a unique identification number or code. A preferred complex sensor is shown in FIG. 2. One or more sensors can be used in conjunction with the present invention. Preferably, numerous sensors/receivers are utilized across each hole of a golf course. Additionally, sensors could be included in the cup itself, as the position of the cup is typically changed frequently on many golf courses, making a static reference to pin distance unreliable.- The sensor 200 preferably includes an outer framework 210 that houses an antennae 220 for receiving the transmissions, control electronics 230, and a power cell 240. Instead of using a battery 240, the sensors can alternatively be wired for power. The framework 210 can be connected to a support leg 250, which can be further connected to a threaded base post 270 using a weather seal 260. In this way, the sensors 200 can be firmly and securely mounted in the ground. Alternatively, a much simpler antennae, such as a standard dipole, can be used as the receiver. The choice and complexity of the receiver or antennae array is primarily determined by the choice of transmitter technology. Using the signals transmitted from a ball to a sensor, the ball's flight location and/or flight characteristics can be determined. This can be accomplished using a server/processor (not shown). A directional signal can use differentials in lobe power to determine the ball's location, such as is common in mobile telephone masts, or it can use a phased array or rotating antennae that selects the angle of maximum flux though the antennae to determine position. The server/processor can use that directional information from two or more antennae to triangulate the ball's position in space, using either fixed lobe or a phased array detection scheme. In a time differential system (such as could be used with UWB or microwave), signals from a ball would arrive at the sensors/antennae at different times, allowing the position of the ball to be calculated by a server/processor. Whichever configuration is used for the server /processor, one purpose of the server /processor is to process data from the sensors and balls so that ball position and flight characteristics can be determined. Data for the ball track can be extracted using standard procedures as are known in the art. Data output can include: shot start position; initial velocity; initial launch
angle; maximum height; distance in air; time in air; ball spin rate; number of bounces; bounce distance; bounce height; roll distance; shot end position; overall distance; shot deviation from straight line; and shot trajectory. The term "display" is used herein to describe generally any type of data display device. The display may be a stand alone or wall-mounted display, or it may be a portable handset/display which may be carried around by the user. A preferred example of a standalone display is shown in FIG. 3a and a preferred example of a portable display is shown in FIG. 3b. As shown in both FIG. 3a and FIG. 3b, the display 300 preferably includes a display screen 310 and a means for data entry, such as a keyboard or data entry keys 305. The display is preferably used to display a shot trajectory, shot data, and information on a golf course being played. This information preferably includes a digital map of the course so that information about the ball trajectory can be superimposed on a map of the course, and the combined image can be displayed on the display. Method for Determining Shot Trajectory and Extracting Shot Data: Regardless of the technology used to track the golf ball, data providing the position of the ball over time is necessary for the operation of the present invention and the trajectory creation and data extraction processes cannot proceed without the location information. Additionally, filtering or data smoothing processes are preferably applied to the raw location data before it is provided for use in the present invention. Different technologies for use in data tracking, filtering and smoothing are well known to those of skill in the art. For example, tracking technology has been developed and commercially used for various other applications, most notably the air-defense radar tracking systems developed by companies such as Raytheon, General Dynamics, Honeywell, General ■ Electric, Northrop Grumman, BAE Systems, EADS and MBDA. For any system used, each sensor can describe a localized volume in space that contains the ball. If a time-domain signal is used, where distance is determined by a timing differential between a pulse arriving at multiple sensors, then each sensor area can define the object position in a thick spherical sheet. The distance of that sheet to the sensor can be determined by the timing of the signal (e.g., longer delay = far, short delay = close). The thickness of the sheet is determined by the resolution of the pulse measurement system, with allowances for errors in signal timing, noise and multi-path signal interference. With
this type of system, the volume of space containing the object can be defined by the overlap of these "sheets". The source (i.e., the transmitting golf ball) can be positioned in the volume of space defined by the overlap of the two sheets. By increasing the number of sensors, the possible resolution of the position determination can be increased. The thickness of the spherical "sheet" can represent the widow in time Δt during which the signal is sent from the ball. Other systems can define the position of the object radially (horizontal and vertical angle) from the system. Such systems would define the space of the object in terms of an angular range from the sensor. Many other techniques to identify the ball are also possible and known in the art. However, for all of these, the ball is preferably defined in a volume of space for any particular moment in time. Position volumes over time can then be combined for a track volume, with any of a number of techniques applied to correct and allow for signal error. Kalman filtering is one common process which can be used to determine the position of a moving object. Kalman filtering works by calculating a predictive position for the object. In the case of a golf ball, the four forces acting on the ball would be gravity, drag, wind deflection and lift (from spin and dimple pattern). Kalman filtering uses knowledge of the ball behavior to estimate the position and velocity of the ball. Knowing that any measurement system will have noise and errors, Kalman allows the system to smooth a track, instead of taking each position measurement at face value. - Kalman filtering is an estimation algorithm such that the following statistical conditions are deemed to hold: (1) the expected position and velocity value estimates are equal to the expected value of the state of the ball (where ball state is defined by position and velocity over time - that is, on average, the estimate of the state will equal the true state; (2) the estimation algorithm minimizes the expected value of the square of the estimation error - that is, on average, the algorithm gives the smallest possible estimation error. There are many commercially available statistical packages which are known in the art and can be used to develop an appropriate Kalman filtering system for golf ball tracking. The trajectory determination and data extraction processes of the present invention preferably begin with an input of smoothed and filtered data for position, velocity and acceleration of the ball over a discrete period of time. The period of time preferably corresponds to the period of motion of a golf ball during a golf shot hit by a golfer. This data is preferably received in real time or near real time using the core technologies.
A preferred method for determining a trajectory of a golf shot and extracting information relating to that shot is illustrated in FIGS. 4-6. While the preferred method has been described in connection with a specific number of steps, it will be appreciated that steps may be eliminated or additional ones may be added, all within the scope of the present invention. Those of skill in the art will appreciate that the specific number of steps are not relevant to the spirit of the present invention. Shown in FIG. 4, is a flow chart illustrating a process for determining if a ball to which information has been received is a new ball. This is not a decision of whether the user/golfer is bringing a new ball into play, but rather a check of whether the ball is newly recognized - e.g. the system is newly receiving signals from a ball. At step S400, a check is made whether information has previously been received from the ball. If the ball is a new ball, at step S410, the user is identified and at step S420, a ball data file is opened. Once a ball data file has been opened, position data over time can be saved. Next, at step S430, the current ball data for the ball is read, which data may include data such as position, velocity and acceleration. At step S440, the current ball data, preferably including all position points, are stored in a temporary memory cache. Next at step S450, the in-play process shown in FIG. 5 is implemented. Through this process, it is determined whether or not the ball for which information was received is in-play. If the ball is not in-play, at step S480, the ball information is not stored to a user data file. Preferably, data is recorded only for balls that are in-play, and more preferably, only for those in-play balls for which a shot has taken place. If the ball is in-play, at step S470, the trajectory determination and data extract processes shown in FIG. 6 are implemented. Following either of steps S470 or S480, and regardless of whether or not the ball is in-play, the process returns to step S430 and awaits new current ball data. It will be appreciated by those of skill in the art, that it need not be first determined whether a ball is in-play or whether a shot has taken place before determining a shot trajectory and extracting shot data. However, for efficiency sake, these factors are preferably considered and, for this reason, they are therefore described in connection with the present invention. A flow chart illustrating a preferred process for determining whether a ball is in- play is shown in FIG. 5. This process can be used to determine whether a ball is being used or not, and preferably this determination is based on three typical ways a ball can be put in-play. It will be appreciated by those of skill in the art that fewer or more
considerations can be accounted for. One elementary way for a ball to be in-play is for that ball to have been in play previously during the same game when no other ball has taken its place. The second way is for the user to manually inform the system that a new ball has been put into play, and the third way is for the ball data to indicate that the ball is in-play. For simplicity sake, preferably an assumption is made that that balls will only be brought into play off the putting green. Therefore a preferred test to determine whether a ball has been put in-play is whether it experiences an acceleration spike and a velocity that exceeds 15 mph. The velocity requirement can prevent balls from unnecessarily being tracked when carried or placed in a golf cart (which typically has a velocity less than 15 mph), when accidentally dropped (which would result in an acceleration spike but no continuing velocity) or when otherwise handled. Any ball that is brought in to play on the putting green (or that will be gently struck at speeds less than the threshold of 15 mph) can still be manually marked by the user as in-play. Further, an additional assumption is preferably made that only one ball will be in play per golfer at a time. If multiple balls are to be played by each golfer, this assumption can be eliminated and each ball can have its information stored in its own ball data file. At step S500 of the in-play process, it is first determined whether the ball for which information has been received is already marked with an in-play flag. If so, at step S510, the process returns back to the new-ball process shown in FIG. 4. If the ball does not have a current in-play flag, at step S520, it is determined whether the user has manually flagged the ball as in-play. The user can do this, for example, by entering this information in the keyboard 305. If the user has manually flagged the ball in-play, at step S530, it is determined whether the user already has another ball marked in-play. If not, the current ball is marked in-play at step S540 and, at step S510, the process returns back to the new- ball process shown in FIG. 4. If the user already has another ball marked in-play, at step S550, the user is prompted to choose the current ball as the in-play ball. At step S570, if the user chooses the current ball to be in-play, at step S5 0 the previous ball is marked with a not-in-play flag, at step S540 the current ball is marked in-play, and at step S510 the process returns to the process shown in FIG. 4. If, at step S570, the user does not choose the current ball to be in-play and wishes to retain the prior ball as in-play, at step S580 the current ball is marked not-in-play and at step S510, the process returns to the process shown in FIG. 4.
If the ball does not have a current in-play flag (step S500) and has not been manually flagged as in-play by the user (step S520), the ball data is analyzed at step S560 to determine whether the acceleration is greater than 0 and whether the velocity is greater than 15 mph for a period of time more than 2 seconds. If not, at step S580 the current ball is marked not-in-play and at step S510 the process returns to the process shown in FIG. 4. If these velocity and acceleration thresholds are met, at step S550 the user is prompted to mark the current ball as in-play. If, at step S570, the user elects not to mark the current ball as in-play, at step S580 the current ball is marked not-in-play and the process returns to the process shown in FIG. 4. If, at step S570, the user elects to mark the current ball as in- play, at step S590 any previous balls are marked not-in-play, at step S540 the current ball is marked in-play, and at step S510 the process returns to the process shown in FIG. 4. Once the in-play process shown in FIG. 5 has been implemented, the system returns back to the new-ball process shown in FIG. 4. As previously discussed, if the current ball is not in-play, at step S480 the ball information is preferably tracked but not saved, and if the current ball is in-play, at step S470 the trajectory determination and data extract processes shown in FIG. 6 are implemented. Once the ball is in-play, a shot trajectory is preferably created and the shot trajectory is preferably analyzed and profiled, such as through the use of a statistical analysis package, to extract the data from that shot and pass it to the ball data file. A preferred method for determining a shot trajectory and extracting shot data is illustrated in FIG. 6. According to a preferred aspect of the invention, a measurement of an acceleration value is used to mark the start of a shot trajectory and a zero velocity value is used to mark the end of a shot trajectory. This aspect of the invention assumes that the balls are constant transmitters. According to another aspect of the invention, the ball may have an accelerometer embedded in it. Thus, when the ball is struck, the accelerometer would activate the transmitter. The transmitter could then be active for a window of time that can be proportional to the degree of acceleration, which is equivalent to how hard the ball was struck and therefore to the distance it travels. In this way, the transmitted signals can be used to mark the stop and stop positions of the shot trajectory. As shown in FIG. 6, first, at step S600, the position data for the ball is received.
Next, at step S610, the position data is preferably split into vertical (z) and horizontal (x, y) components. Next, at step S620, the ball's height above the ground is preferably
determined. While three dimensional rectilinear Cartesian coordinates are used herein by way of example, the following calculations could also be done using polar or spherical coordinates. At step S620, the ball's height is determined by subtracting the known ground level (z) value for the ball's (x, y) horizontal position from the ball's (z) component value. Next, at step S630 and step S640, the ball's velocity and acceleration values are broken down into component directions. Velocity (i.e., change in position over time (first derivative)) and acceleration (i.e., change in velocity (second derivative of position over time)) can be determined using standard numerical methods. Rather than curve fit the position over time data and determine the velocity by differentiation of the fitted curve equation, velocity can be determined point by point by measuring the change in position. The velocity is preferably calculated to determine values for the motion in all three axes (d(x,y,z)/dt, also called dc/dt), in the vertical (dz/dt), and in the horizontal plane (d(x,y)/dt). Acceleration calculations for each of these variants can similarly be determined (d2c/dt2, d2z/dt2 , d2(x,y)/dt2). The values for dc/dt and d2c/dt2are preferably provided directly from the core technology itself. Illustrated in FIG. 7 are sample graphs showing height (z) over time, vertical velocity (dz/dt) over time, and vertical acceleration (d2z/dt2) over time. The graphs illustrate a profile measurement for the vertical z-component of a typical golf shot. "Wobble" in the velocity and acceleration charts represents imperfect data acquisition (i.e., noise and error). Once the acceleration and velocity components are determined, the data is preferably stored at step S650 in a memory buffer. While any volume of data may be stored, preferably 5 seconds of data is stored at step S650. After the data is stored in a memory buffer, it is next preferably determined whether a "shot" has occurred. It will be appreciated by those of skill in the art, that this determination need not be made and that the inventive process disclosed herein can proceed without such a determination. Data can be flagged as a "shot" when the ball is experiencing a positive spike in acceleration (d2c/dt2 > 0) and has velocity dc/dt >0 for longer than 0.2 seconds. Thus, at step S655, it is determined whether the acceleration is greater than 0, and, at step S660, it is determined whether the velocity is greater than 0 for a period of greater than 0.2 seconds. If not, the process returns to step S600 and awaits additional position data. If the acceleration and velocity parameters are met, at step S665, the start of the shot track or shot trajectory are
marked. When this occurs, a "shot track" file can be opened and data for the shot can be stored there. Once the start of the shot trajectory has been marked, a series of functions can then occur. One important function preferably includes data extraction, as shown at step S670. An additional function might include data input (step S671) through which inputs from any other relevant applications for data that might be used in subsequent data extract calculations can be received. This data could include information such as modifications to ground level data, or atmospheric and other weather data. The data extract step S670 preferably continues until the velocity reaches a value of 0 for a period of time greater than 5 seconds, a condition illustrated in step S675. Under the data extraction step, two variables which can be determined include the initial velocity and the launch angle of the ball. The initial velocity is preferably defined as the average measured velocity over the first fifth of a second (although this duration can be changed as appropriate given variations in the transmitting technology). The initial angle is preferably determined by fitting a line to the data points in that initial window. A common linear regression algorithm is then preferably used to determine the slope (m) of the line. The initial angle ψ can be determined by taking the arc tangent of the slope: initial angle(ψ) = tan"1 (m). Additionally, the maximum ball height can be determined. This is preferably determined by setting the maximum height value to the value of the z coordinate for the shot minus the z coordinate for the first strike position (first x,y coordinate in the shot trajectory). The maximum height value can be constantly updated for all z -z(start) > maximum height (in other words, if the new value is greater than the current value, the larger new value can be set to the new maximum). Further, changes in dz/dt and d2z/dt2 can be examined to determine the initial in-air distance. If z> z(ground) during the shot, then the initial in-air distance can be determined from the first point where dz/dt is zero. Of note is the fact that d2z/dt2 need not necessarily be constant through the trajectory. Ball spin is known to create lift that leads to a positive (away from the earth) acceleration in the z direction that may match or even overcome the downwards, negative acceleration due to gravity for a period of time. Where the start of the shot track commences with a spike in d2z/dt2, the peak of the trajectory (which can match the position of maximum height) can correspond to the point where dz/dt equals zero.
The in-air trajectory and the position of the first bounce can be determined by the point where dz/dt is negative (ball moving downwards) and d2z/dt2 moves from a negative to a positive value. If this does not occur where z = z(ground), then the ball can be assumed to have struck a foreign object. If a foreign object was encountered as described above, the track can continue until the conditions are met again at z = z(ground). As a result, the horizontal (x,y) distance from the start position to the end in-air position can be determined, as well as the in-air distance and time. Also, a number of times the ball has bounced can be determined. Preferably, a bounce counter (b) is first set to zero. For all positions after the end of the in-flight data, the position where dz/dt is zero can represent the bounce height; the position where d2z/dt2 changes from negative to positive (spikes), dz/dt can be negative and z = z(ground) can represent the endpoint of the first bounce. The bounce counter b can be increased by b = b + 1. This can continue until the maximum displacement is less than z = 3 centimeters. If the height does not exceed three centimeters, the bounce count can remain at zero (no bounces). The last bounce position can be defined as the last point where d2z/dt2 changes from negative to positive (spikes), dz/dt can be negative and z = z(ground), after which z can be less than 3 cm. If there are no bounces, the last bounce position can be the same as the end of the in-air position. Bounce height can be the maximum z value - z (ground) that occurs in the time between the end of the in-air data and the last bounce point with a bounce height greater than 3 cm (allowing for the possibility that the maximum height might not necessarily occur on the first bounce, e.g. the ball strikes a rock on the second bounce). Bounce distance can be defined as the horizontal distance in the (x,y) plane between the point at the end of the in-air position to the last bounce position. This can be a straight line distance, rather than a path length calculation. Further, roll distance can be determined. Roll distance is preferably a path length calculation that determines the distance the ball has traveled on the ground. Roll distance can also be used to determine where the shot track ends. Once dz/dt is zero for five seconds (or for the buffer memory duration if the system requires that to be shorter), the ball position at that time can be marked as the shot end position. Roll distance can then bet set to the sum of the point to point separation between the smoothed and filtered data points along the trajectory. This can yield the distance the ball has traveled on the ground. A
horizontal straight line distance can also be calculated by calculating the separation between the horizontal (x,y) coordinate for the last bounce and the (x,y) coordinate for the shot end position. If the shot end position has been determined, a percentage distance and percentage straight calculation can also be made. Percent distance can measure the projection of the actual path along the initial direction in the horizontal plane: % distance = 1 - b/a sin φ (where φ is the angle between the initial launch vector and the straight line from the shot start point to the shot end point). The percent straight measurement can be a measure of the angle φ between the initial launch vector and the straight line from the shot start point to the shot end point given as a percentage, where zero percent is a right angle deviation from the initial direction and one hundred percent is a perfectly straight shot. This can be calculated by : % straight = φ x 100% (where φ is in radians). Two other processes which preferably occur simultaneously (or in conjunction) with the data extract step described above include a shot profile process (shown generally at step S672) and a spin determination process (shown generally at step S673). One purpose of the profile process can be to make sure that a shot is genuine, and that the ball is not simply being carried in a pocket, dropped, or otherwise handled. Thus, a "pocket profile" or "non-shot" determination can be made by measuring the ball height above ground for 5 seconds (or for the memory buffer duration if that is less than 5 seconds). If the ball height is between 20 and 200 cm for more than 5 seconds, then the possible shot can be deemed to be a "pocket ball." Additionally, if the maximum height of the ball is less than ten meters, or if the overall distance of the shot is less than twenty meters, a shot can be deemed a "non-shot" and no further profiling need be done. For such cases, the shot file can be closed and the data need not be displayed. If a ball is not a "pocket ball" or "non-shot" and if it is an actual full shot, additional profiling calculations, including those based on the ball's in-flight characteristics, can take place. For any given distance, the ball's trajectory (given either in z vs. t, or in z vs. horizontal distance (x,y)) can be assumed to follow one of several basic shapes. For example, it can match a ballistic parabola (given by z = at2 + bt + c), it can more closely match a "pear shaped" quartic (given by b2z2 = t3 (a-t) ), or it can match a hybrid of these two. Examples of a parabolic (ballistic) profile (800) and a quartic (damped) profile (810) are shown in FIG. 8. As the in-flight profile data is collected, standard commercial curve
fitting processes can be applied to determine an equation for the ball's profile (the algorithms used in Focus, DataFit, XLFit, LabFit, XPS, Systat and many other applications are all believed to be suitable). Once an equation for the ball's profile has been determined, the shape of that profile can be used to determine the spin rate of the ball. The processor can include in a memory location, a table of shot profiles typically expected for different variations in initial shot velocity, initial shot angle, shot distance, shot height, trajectory curvature for the shot and ball spin rate. Allowances can be made for external factors such as those that might compress or extend a curve, including, for example, weather effects. Data in the table is preferably for the ball's movement relative to the air, rather than relative to fixed ground position. The data is preferably ball type specific, as variations in weight, core construction (ball compression and elasticity) and dimple pattern are known have significant impact on the profile. For any given initial velocity and initial launch angle, spin rate is known to dramatically alter the trajectory profile. A graph illustrating the effect of spin rates for identical balls with the same initial velocities and launch angles is shown in FIG. 9. Low spin rates are known to most closely approximate a parabolic trajectory (900) and have a significantly shorter carry. High spin rates are known cause the ball to "blow up", coming closer to a damped quartic curve shape (910), while moderate spin rates are known to cause the ball to carry much further but not to peak as high (920). Two preferred processes for determining spin from the trajectory profile are herein described. Ball spin rates can be determined either by direct measurement or by inference. To determine spin by direct measurement, the shape of the ball trajectory is preferably measured with particular attention to the curvature, or second derivative of the trajectory, in both space and time for the vertical and horizontal planes. For any real-time measured initial velocity and launch angle, the acceleration (curvature in z-time coordinates) can be compared with the expected vertical acceleration due to gravity. Any difference between these two vertical accelerations is deemed to be caused by lift. Spin rate can then be directly measured using known aerodynamic equations for lift and drag for spherical objects moving at the ball's real-time velocity. Horizontal components for spin can be measured in the same way by looking at the deviation from a straight-line trajectory. The net spin can
then be determined as the sum of the vertical and horizontal spin components, yielding a net spin rate and a spin axis in three dimensions. Alternatively, by looking at one or more of initial velocity, initial launch angle, in- air distance and maximum height, the ball spin can be imputed. The actual trajectory profile of the ball can be matched against a stored table of empirical shot data, with known spin values for the empirical data set. Where the real-time actual ball profile does not exactly match a save profile in the table or library of empirical shot tables (data for spin, distance, velocity, height, and shot profile), the two bounding profiles can be used to determine an implied spin rate for the actual profile. For both the direct and the imputed spin determination methods, the effect of weather on ball trajectory can be accounted for, as described further below. Both of these methods can be used for a generic ball, where the ball is assumed to meet certain flight and performance characteristics (such as size, weight and aerodynamic properties (as determined by the surface coefficients of the ball, dimple pattern/size/depth, etc.)). Alternatively, if the specific characteristics and properties of the actual ball in use are known, a more accurate spin determination can be made. Returning to the projectile determination and data extraction processes shown in FIG. 6, once the data is extracted (and shot profiled if applicable) and once the velocity value has reached 0 for a period of time greater than 5 seconds (step S675), at step S680 the end of the shot's trajectory is marked. Next, at step S685 a shot counter(s) is set to S=S + 1. At step S690, the shot data is stored in a ball data file and at step S695, the process returns to the new-ball process shown in FIG. 4.
Weather Effects on Shot Trajectory As discussed above, the effects of weather can be accounted for when determining a shot trajectory and extracting shot data, such as through the data input step shown in step S671. This weather data preferably includes real-time or near real-time wind and atmospheric data. This can be gathered from weather equipment on the golf course itself, or equipment which is provided through a nearby weather station. Preferably, the equipment includes standard anemometer for recording wind speed and direction, a barometer to measure pressure, a thermometer to measure temperature, a hygrometer (sometimes referred to as a humidity sensor or a relative humidity indicator) to measure
humidity, and a precipitation counter. The collection of such weather information is well known in the art. Regardless of how it is collected, the real time weather information can be passed from the monitoring equipment to the system described herein. This information is preferably passed through the server/processor. Preferably, the effect of wind speed, temperature, humidity and precipitation can be applied to a determined shot trajectory and spin rate to determine a weather-affected trajectory and spin. The base trajectory is preferably a zero wind, over the ground model. The frame of reference as a constant velocity can be moved, thereby allowing for deflection of the base shot as a consequence. The calculation for this can be done by taking the time of flight for the base shot, and applying a vector to the base shot calculation such that the shot moves in the direction of the wind at the speed of the wind for the duration of the shot (ignoring possible differences in ground level). The result and the net wind vector (direction and speed) can then be used within d e present inventive methods. Simple calculations can be utilized to obtain these vectors. Vector addition can be used, where Vbase is the resultant (net) velocity vector of the base shot (or the zero-wind shot) and Vwind is the net wind velocity. This can be determined by noting the distance traveled by the base shot over the flight time of the base shot. Preferably, only the "in air" portion of the shot is considered. The wind velocity vector components can then be added to this, yielding a net velocity vector. To determine the desired shot vector that would result in the ball landing with the wind in the same coordinates that the base (zero-wind) shot would land without the wind, the wind velocity vector components can be subtracted from the base vector. The result of this vector subtraction is the "actual" velocity vector required for the golf ball to land at the desired coordinates (Vactual). Mathematically, this can be represented by: Vactual = Vbase - Vwind. This equation would hold true for both the horizontal x and y components, such that: V(x)actual = V(x)base - V(x)wind and V(y)actual = V(y)base - V(y)wind. The resultant Vactual can then be used with the original time of flight for the ball to determine the desired actual distance and direction. The above process can be treated as a recursive solution. It is preferably a single iteration. Should a greater degree of accuracy be required, this process can be run though a second and third time using a root finding method such as Newton- Raphson to determine the best solution.
While the invention has been described above with respect to certain embodiments thereof, it will be apparent to those skilled in the art that variations and modifications may be made without departing from the spirit and scope of the invention.