The system, apparatuses, and methods described herein generally relate to projectile analytics and, in particular, to methods and devices for analyzing golf ball trajectories.
Golf as we know it today originated from a game played on the eastern coast of Scotland in the Kingdom of Fife during the 15th century. Players would hit a pebble around a natural course of sand dunes, rabbit runs, and tracks using a stick or primitive club. Wooden golf balls were the first man-made golf balls, invented in the 1400s. These original wooden golf balls were inefficient at best and likely made of hardwoods such as Beech or Boxroot. The first “real” golf ball was known as a “feathery” golf ball. Basically, the feathery was a leather sack filled with boiled goose feathers, then stitched up and painted. These golf balls were used from the 1400s until the 1840s. In 1848, Rev. Dr. Robert Adams began creating golf balls out of Gutta Percha “Gutty”. The Gutty golf ball was created from the dried sap of the Sapodilla tree. It had a rubber-like feel and was formed into ball shapes by heating it up and shaping it while hot. It was soon discovered that dinged balls traveled further than new, smooth balls, and golf ball manufacturers added dimples to the golf balls.
In the late 1800s, the inside of the golf ball changed to a solid rubber core, high tension rubber thread wrapped around the core, and a Gutta Percha cover. Various other cores were incorporated over the following years, with liquid, steel, lead, and glycerin used at various times. Today, two-piece solid Syrlin or Balata cover rubber cored balls are used. Recent rule changes (United States Golf Association (USGA)) for standard golf balls have allowed for balls with hollow steel spheres surrounded with rubber. With the improved designs in golf balls, the balls travel further. However, this means that the golf ball can travel further out of sight of the golfer and are more often lost than they were in the 1800s.
On average, most golfers lose four balls per round, adding a total of 20 minutes of play just searching for their ball. This means that tens of millions of golf balls are lost each year, leading to millions of dollars in extra cost to golfers. And the 20-minute delay searching for lost golf balls slows down play on the course, leading to lost revenues for the country clubs.
There is a need for the technology of finding golf balls to catch up to the materials technology that has allowed for longer golf ball drives. The extreme number of lost golf balls creates a significant problem for golfers both in terms of cost and the inability of golfers to analyze their round. Golf balls can easily be lost in bushes and trees. They give the golfer no easy way to track golf ball movements and statistics.
There is a need for technology inside the balls to allow them to be found quickly through proximity and sound. However, each golf ball may undergo 15,000 G’s of force when the golf club hits the ball. Off of the club, the ball may spin at 9000 RPMs and travel at 180 miles per hour, so the technology must be hardened to the extreme physical forces. There is also a need for a software application to give a golfer helpful analytical data.
This document describes a system for monitoring a golfer’s performance. The system is made up of two components, a golf ball, and a central interrogator.
The golf ball has embedded electronics. The golf ball comprises a processor electrically connected to golf ball communications circuitry, memory, and a spin detector electrically connected to the processor. The spin detector directs data regarding the rotation of the spin detector to the processor. The processor converts the data regarding the rotation of the spin detector into a rotation speed and a rotation direction, the rotation speed determined by a frequency of the data and said rotation direction determined by a magnitude of the data. The processor converts the data through a calculation and stores said rotation speed and said rotation direction in the memory. The golf ball mechanically encompasses the processor and the spin detector.
The central interrogator comprises a central interrogator processor, central interrogator communications circuitry electronically connected to the central interrogator processor, the central interrogator communications circuitry wirelessly connected to the golf ball communications circuitry, and a display screen electrically connected to the central interrogator processor. Application software executes on the central interrogator processor, said application software interrogates the golf ball through the central interrogator communications circuitry for the rotation speed and said rotation direction regarding the rotation of the spin detector. The application software derives analytics on the golfer’s performance from the rotation speed and the rotation direction for display on the display screen.
In some embodiments, the spin detector in the golf ball is a Magnetoresistive sensor or a gyroscope, or an accelerometer. The central interrogator could be a smartphone.
The data sent by the golf ball to the central interrogator could comprises hang time, exit velocity, launch angle, and/or carry distance. The golf ball could also include a electrically connected to the processor. The central interrogator processor could wirelessly transmits an instruction to the golf ball to activate the buzzer. The central interrogator could further comprise locator software that interrogates an RSSI signal from the golf ball communications circuitry as detected by the central interrogator communications circuitry, compares a location of the central interrogator to the RSSI signal, and calculates a location of the golf ball based on a plurality of central interrogator location and RSSI signal data pairs.
A method for analyzing the performance of a game of golf is also described. The method comprises (1) detecting an impact with an accelerometer, (2) measuring rotation with a spin detector, said spin detector sending a rotation signal to a microprocessor located inside of a golf ball, said microprocessor electrically connected to a communications interface, (3) measuring acceleration with the accelerometer, said accelerometer sending an acceleration signal to the microprocessor, (4) converting the rotation signal into a rotation speed and a rotation direction, said rotation speed determined by a frequency of the rotation signal and said rotation direction determined by a magnitude of the rotation signal, through a calculation in the microprocessor, (5) storing the rotation speed, the rotation direction, and the acceleration signal in a memory electrically connected to the microprocessor; and (6) sending the rotation speed, the rotation direction, and the acceleration signal to the communications interface for transmission to a central interrogator for analysis on a golfer’s performance.
A timestamp could be stored in addition to the rotation speed and the acceleration signal. The timestamp could be sent to the communications interface.
A golf ball with embedded electronics is also described here. The golf ball is made of an accelerometer, a processor electrically connected to the accelerometer, a spin director, communications circuitry, and memory, wherein the processor stores accelerometer data from the accelerometer in the memory. The spin detector directs rotation data regarding rotation of the spin detector to the processor, where the processor converts the rotation data regarding the rotation of the spin detector into a rotation speed and a rotation direction. The rotation speed is determined by the frequency of the rotation data and the rotation direction is determined by the magnitude of the rotation data. This determination is made through a calculation and the rotation speed and said rotation direction are stored in the memory. The communications circuitry is configured to communicate the accelerometer data, the rotation direction, and the rotation speed to a central interrogator for analysis of a golfer’s performance.
In some embodiments, the spin detector is an accelerometer. The communications circuitry could be further configured to communicate exit velocity as calculated by the processor to the central interrogator.
A system is also described here, where the system includes artificial grass with a launch location for a golf ball; a plurality of wide-angle distance optical sensors, mechanically connected to the artificial grass at a known angle to the ground, positioned such that a field of measurement of each wide-angle distance optical sensors intersects; and a central processing unit. The central processing unit is connected to the wide-angle distance optical sensors. The central processing unit is configured to collect distance measurements from the wide-angle distance optical sensors and to determine a velocity of a trajectory of the golf ball from the launch location to the intersection of the field of measurement of each of the wide-angle distance optical sensors given a distance between the plurality of the wide-angle distance optical sensors, a distance between the plurality of the wide-angle distance optical sensors and the launch location, and the distance measurements from the plurality of the wide-angle distance optical sensors. The central processing unit transmits the velocity of the trajectory of the golf ball.
In some embodiments, the central processing unit transmits the velocity of the trajectory of the golf ball to a smartphone. The launch location could be a golf tee. The central processing unit could be configured to calculate a vertical launch angle and/or configured to calculate a horizontal launch angle. The plurality of the wide-angle distance optical sensors could send pulses of light and detect a reflection of the pulses of the light.
A method is also described here, where the method includes the steps of (1) configuring a central processing unit and a memory with a first distance between a first wide-angle distance optical sensor and a second wide-angle distance optical sensor, a second distance between the first wide-angle distance optical sensor, the second wide-angle distance optical sensor, and a launch location; (2) measuring a third distance between the first wide-angle distance optical sensor and a golf ball in flight, and a fourth distance between the second wide-angle distance optical sensor the golf ball in flight; (3) calculating a velocity of a trajectory of the golf ball from the launch location to an intersection of a field of measurement of the first wide-angle distance optical sensor and the second wide-angle distance optical sensor given the first distance, the second distance, the third distance and the fourth distance; and (4) sending the velocity of the trajectory of the golf ball to a display device.
In some embodiments, the display device is a central interrogator. The velocity of the trajectory of the golf ball could be wirelessly sent to the display device. The launch location could be a golf tee. The launch location could be on artificial grass. the first wide-angle distance optical sensor and the second wide-angle distance optical sensor could be mechanically connected to the artificial grass. The first wide-angle distance optical sensor and the second wide-angle distance optical sensor could be electrically connected to the central processing unit. The first wide-angle distance optical sensor could send pulses of light and detect a reflection of the pulses of the light.
The method could further include the step of (3a) calculating a vertical launch angle given the first distance, the second distance, the third distance, and the fourth distance. The method could further include the step of (3b) calculating a horizontal launch angle given the first distance, the second distance, the third distance, and the fourth distance.
A method is described here, the method including the steps of (1) configuring a central processing unit and a memory with a first distance between a first wide-angle distance optical sensor and a second wide-angle distance optical sensor, a second distance between the first wide-angle distance optical sensor, the second wide-angle distance optical sensor, and a launch location; (2) measuring a third distance between the first wide-angle distance optical sensor and a golf ball in flight, and a fourth distance between the second wide-angle distance optical sensor the golf ball in flight; (3) a means for calculating a velocity of a trajectory of the golf ball from the launch location to an intersection of a field of measurement of the first wide-angle distance optical sensor and the second wide-angle distance optical sensor; and (4) sending the velocity of the trajectory of the golf ball to a display device.
The display device could be a laptop computer. The method could further include the step of (3a) a means for calculating a vertical launch angle. The method could further include the step of (3a) a means for calculating a horizontal launch angle.
In some aspects, the techniques described herein relate to a method for determining a spin rate and a spin axes of a golf ball including: collecting a user magnetometer frame of reference vector from a user magnetometer; collecting a user accelerometer frame of reference vector from a user accelerometer; collecting a ball magnetometer frame of reference vector from a ball magnetometer on the golf ball at rest; collecting a ball accelerometer frame of reference vector from a ball accelerometer on the golf ball at rest; calculating frame of rotation coefficients from the user magnetometer frame of reference vector, the user accelerometer frame of reference vector, the ball magnetometer frame of reference vector, and the ball accelerometer frame of reference vector using a Kabsch Algorithm; collecting a ball magnetometer time series matrix from the ball magnetometer as the ball is in flight; processing the ball magnetometer time series through a Rodrigues Rotation Formula using the frame rotation coefficients to create a rotation vector; calculating a prior vector difference and a second prior vector difference; calculating the spin axes by multiplying the prior vector difference by the second prior vector difference; calculating a Theta vector by taking an arccosine of a dividend of a product of the prior vector difference multiplied by the second prior vector difference divided by a product of an absolute value of the prior vector difference multiplied by an absolute value of the second prior vector difference; calculating the spin rate by dividing a change in Theta by the change in time; and displaying the spin rate and the spin axes on a display device.
In some aspects, the techniques described herein relate to a method further includes processing the ball magnetometer time series matrix through an infinite impulse response filter.
In some aspects, the techniques described herein relate to a method further includes processing the spin axes through an infinite impulse response filter.
In some aspects, the techniques described herein relate to a method further includes processing the spin rate through an infinite impulse response filter.
In some aspects, the techniques described herein relate to a method wherein the display device is a central interrogator.
In some aspects, the techniques described herein relate to a method wherein the spin axes and the spin rate are wirelessly sent to the display device.
In some aspects, the techniques described herein relate to a method wherein the user magnetometer is located on a ground near a golf tee.
In some aspects, the techniques described herein relate to a computing apparatus with non-transitory machine-readable media programmed to: collect a user magnetometer frame of reference vector from a user magnetometer; collect a user accelerometer frame of reference vector from a user accelerometer; collect a ball magnetometer frame of reference vector from a ball magnetometer on a golf ball at rest; collect a ball accelerometer frame of reference vector from a ball accelerometer on the golf ball at rest; calculate frame of rotation coefficients from the user magnetometer frame of reference vector, the user accelerometer frame of reference vector, the ball magnetometer frame of reference vector, and the ball accelerometer frame of reference vector using a Kabsch Algorithm; collect a ball magnetometer time series matrix from the ball magnetometer as the ball is in flight; process the ball magnetometer time series through a Rodrigues Rotation Formula using the frame rotation coefficients to create a rotation vector; calculate a prior vector difference and a second prior vector difference; calculate a spin axes by multiplying the prior vector difference by the second prior vector difference; calculate a Theta vector by taking an arccosine of a dividend of a product of the prior vector difference multiplied by the second prior vector difference divided by a product of an absolute value of the prior vector difference multiplied by an absolute value of the second prior vector difference; calculate a spin rate by dividing a change in Theta by the change in time; and display the spin rate and the spin axes on a display device connected to the computing apparatus.
In some aspects, the techniques described herein relate to a computing apparatus further programmed to process the ball magnetometer time series matrix through an infinite impulse response filter.
In some aspects, the techniques described herein relate to a computing apparatus further programmed to process the spin axes through an infinite impulse response filter.
In some aspects, the techniques described herein relate to a computing apparatus further programmed to process the spin rate through an infinite impulse response filter.
In some aspects, the techniques described herein relate to a computing apparatus wherein the display device is a smartphone.
In some aspects, the techniques described herein relate to a computing apparatus wherein the spin axes and the spin rate are wirelessly sent to the display device.
In some aspects, the techniques described herein relate to a computing apparatus wherein the user magnetometer is located on artificial grass, the artificial grass including a launch location for the golf ball.
In some aspects, the techniques described herein relate to a system including: artificial grass including a launch location for a golf ball, a user magnetometer, and a user accelerometer; the golf ball including a wireless interface, a ball magnetometer, and a ball accelerometer; a central processing unit connected to the user magnetometer and the user accelerometer, the central processing unit further including a wireless transceiver wirelessly connected to the wireless interface, wherein the central processing unit creates frame rotation coefficients from data collected from the ball magnetometer, the ball accelerometer, the user magnetometer, and the user accelerometer using a Kabsch Algorithm; where the central processing unit uses a Rodrigues Rotation Formula on the frame rotation coefficients and ball magnetometer data after the golf ball is hit by a golf club, to produce a prior vector difference vector and a second prior vector difference vector; where the central processing unit uses the prior vector difference vector and the second prior vector difference vector to determine a spin axes and a spin rate; and a display device connected to the central processing unit, the display device receives the spin axes and the spin rate from the central processing unit, and displays the spin axes and the spin rate.
In some aspects, the techniques described herein relate to a system where the launch location is a golf tee.
In some aspects, the techniques described herein relate to a system wherein the central processing unit resides in a smartphone.
In some aspects, the techniques described herein relate to a system wherein the spin axes and the spin rate are wirelessly sent to a smartphone.
In some aspects, the techniques described herein relate to a system wherein the ball magnetometer data includes a matrix of X, Y, and Z coordinate data over time.
In some aspects, the techniques described herein relate to a system including: artificial grass including a launch location for a golf ball, a user magnetometer, and a user accelerometer; the golf ball including a wireless interface, a ball magnetometer, and a ball accelerometer; a central processing unit connected to the user magnetometer and the user accelerometer, the central processing unit further including a wireless transceiver wirelessly connected to the wireless interface, wherein the central processing unit includes a means for creating frame rotation coefficients from data collected from the ball magnetometer, the ball accelerometer, the user magnetometer, and the user accelerometer; where the central processing unit includes a means for producing a prior vector difference vector and a second prior vector difference vector from the frame rotation coefficients and ball magnetometer data after the golf ball is hit by a golf club; where the central processing unit includes a means for determining a spin axes and a spin rate from the prior vector difference vector and the second prior vector difference vector; and a display device connected to the central processing unit, the display device receives the spin axes and the spin rate from the central processing unit, and displays the spin axes and the spin rate.
The present inventions describe several embodiments for an improved golf ball, where the gold ball includes hardened electronics and the golf ball comprises an improved material to protect the electronics from the extreme forces that occur when the ball is hit by the club. A software application accompanies the improved golf ball to provide the golfer with an interface to the golf ball data. As stated above, the extreme number of lost golf balls and the inability of golfers to analyze their round impinges on the golfer’s enjoyment of the game. The inventions described here solve this problem.
A golfer’s ball can be found using proximity and tracking using sound. A golfer can view detailed analytics taken from the accelerometer and displayed on a phone via Bluetooth. The technology inside the balls allows them to be found quickly through proximity and sound, and the app gives a golfer helpful analytical data. While Bluetooth is used throughout this document, other communication techniques could be used in place of Bluetooth and BLE.
The primary spherical core 102 is a polymer matrix composite, metal matrix composite, or carbon matrix composite. The diameter of the spherical core 102 may be any diameter from about 10 mm (0.39 inches) to about 38 mm (1.50 inches), including all values and ranges in-between. For example, USGA legal golf balls with stiff cores have a core diameter less than or equal to 0.9 inches. In an example, the spherical core 102 of the golf ball 101 has a diameter of less than about 31.75 mm (1.25 inches), including all values and ranges in-between. In another example, the spherical core 102 of the golf ball 101 has a diameter less than or equal to about 22.86 mm (0.90 inches). In yet another example, the spherical core 102 has a diameter from approximately 0.9 inches to approximately 0.25 inches. In one embodiment, the spherical core 102 is hollow, providing space to insert a printed circuit board (pc board) 106. In another embodiment, the pc board 106 in the spherical core 102 is surrounded by material 301, such as a polymer urethane visco-elastic material such as Sorbathane to absorb the impact of the golf club striking the golf ball. Sobathane is described in a series of patents awarded to Dr. Maurice Hiles, including US U.S. Pat. 4,101,704, U.S. Pat. 4,346,205, U.S. Pat. 4,476,258, and U.S. Pat. 4,808,469, each of these patents incorporated herein by reference. In other embodiments, the Sorbathane could be replaced with Silicone, Neoprene, Norsorex, Rubber, Deflex, Gelmec, Microsorb, Memory foam, Acoustic foam, or other similar material.
The second layer 104 is a polymer material, such as one or more of ethylene (meth)acrylic acid ionomers (such as DuPont’s HPFTM resin), polyether block amide (such as the material sold under the trade name PEBAX® made by the Arkema Group), polybutadiene, or other materials known the art that are used in golf balls. The second layer 104 can be of molded construction. The second layer 104 generally has an outside diameter of about 1.52 to 1.60 inches (3.86 to 4.06 centimeters) and a thickness of 0.05 to 0.65 inches (0.13 to 1.65 centimeters), including all values and ranges in-between. In another example, the second layer 104 has an outside diameter of about 0.21 to 0.55 inches (0.53 to 1.4 centimeters).
Another embodiment of the improved golf ball 101 is illustrated in
Looking at
The pc board 106 includes a BLE (Bluetooth Low Energy) Chip 302 such as a Nordic nRF52832 or a Cyprus Semiconductor PSOC BLE chip; a QI Wireless Charger chip 307 such as an Analog Devices LTC4124, an Accelerometer 303 such as a 1428-1060-2-ND; one or two Magnetoresistive (MR) Sensors 305, such as a TIDRV5053CAQLPGM; a Battery 306 such as a PD521417 with a power control module and cables; and a Buzzer 304, such as a 102-3746-1-ND. Each of these components are soldered into the PC Board, in one embodiment. The BLE Chip 302 includes memory, communications circuitry, and a microprocessor (BLE processor), as well as circuitry for interfacing with various sensors. In another embodiment, the BLE chip 302 has the power control module, the wireless charger 307, the accelerometer 303, and the MR sensors 305 integrated into a single integrated circuit, either as an ASIC or as a custom chip. Any combination or integration within an integrated circuit and separate components could be used without deviating from the inventions herein. In one embodiment, the components are surface mounted to the pc board, and the board could also be encased in epoxy or silicon to increase its resistance to shock.
The BLE chip 302 is electrically connected to the accelerometer 303 and the MR sensors 305 as is the buzzer 304. The buzzer 304 is optional. The BLE chip 302 includes a processor, a Bluetooth PHY, radio and transponders, RAM and Flash RAM, analog and digital IO interfaces, and power management operations to operate in Bluetooth Lower Energy mode. A BLE antenna is also electrically and mechanically attached to the BLE chip 302 to transmit and receive the BLE signals. This allows the BLE chip 302 to communicate wirelessly with other devices.
The battery 306 is electrically connected to the BLE chip 302 and supplies the appropriate power to the BLE Chip 302. A QI wireless charging chip 307 is also electrically attached to the battery 306. An antenna is also electrically and mechanically attached to the QI chip 307 to receive power signals from a QI charger. Anytime that the antenna receives a usable voltage, the signal is sent to the QI chip 307 for conversion to the appropriate signal levels for recharging the battery. This power signal is then sent to the battery 306.
When the accelerometer 303 detects that the golf ball 402 is moving, the accelerometer 303 signals the BLE chip 302, located inside of the golf ball 402, to wake up. In an alternative embodiment, the golf ball 402 wakes up when a certain transmission is received on the communications circuitry. In some cases, this movement is the impact of a golf club. In some embodiments, the extent of movement of the golf ball 402 could be calibrated to detect impacts of a golf club but not movement from transportation in a golf bag. Once awake, the golf ball’s 402 BLE chip 302 will stay awake for 30-60 minutes, listening for requests from a smartphone 401. While awake, the BLE chip 302 also monitors the MR sensors 305 and the accelerometer 303 for an indication that the golf ball 402 has been hit by a golf club.
The accelerometer 303 and the MR sensors 305 send signals to the BLE chip 302 which records data from the golf ball 402 from the moment that it is hit until the ball comes to rest. In some embodiments, the signals are sampled at 1 kHz. The accelerometer 303 sends the velocity and acceleration data regarding the activity of the ball. Timers in the BLE chip 302 are used to time the flight of the golf ball. The accelerometer 303 also notes changes in direction from bounces off of the ground or other objects. The MR sensors 305 detect gravity by changing resistance as the gravity changes. The MR sensor signals (data) are sent to the BLE chip 302. This allows the spin of the golf ball to be measured. The frequency of the resistive signal from the MR sensor 305 is the rotational speed, and the magnitude is the direction in which the ball is spinning (rotation direction). A very small magnitude indicates that the spin is almost parallel to the earth, and a high magnitude shows that the spin is perpendicular to the earth. There is a point where the ball is spinning absolutely parallel to the earth where spin cannot be detected. In some embodiments, a second MR sensor 305 is used, where the second MR sensor is mounted 90 degrees offset from the first MR sensor to allow detection of the golf ball spin when the first sensor is spinning parallel to the earth. During flight, the processor in the BLE chip 302 stores the data from the sensors at an interval, perhaps every 100 msec, into a data array. In many embodiments, the data is timestamped with information from the BLE chip 302 timers. Data could be stored internally on the pc board 106 (possibly in the memory of the BLE chip 302) in the form of instantaneous acceleration readings, directly or calculated, from the accelerometer 303 in the x, y, and z directions.
In some embodiments, the accelerometer 303 component blacks out when the golf ball 402 velocity exceeds about 85 miles per hour, making it impossible to calculate its exit velocity through basic physics (v = v0 + at), given that a golf ball 402 may travel 150-200 miles per hour in flight. The data in the period where the accelerometer 303 is blacked out could be ignored (although the timestamps are retained) and extrapolated using available data. A portion of this data comes from the free fall equation. Upon the user indicating that the ball 402 is found, the phone 401 will attempt to connect to the ball 402 and pull the stored data from it.
The raw data is processed, either by the BLE chip 302 in the golf ball 402 of by the phone 401, to remove any erroneous readings due to the accelerometer’s read-ceiling; the accelerometer can only read values to a certain point, once this ceiling is hit, the readings will all be the same until they become lower than the maximum possible read value. This is done by removing any identical readings at the beginning of the array. The original start time is retained, so that the hang time is accurate and so that the initial values can be extrapolated once the best-fit lines are calculated.
Another characteristic of the raw data are outliers on the trendline. Periodically, the accelerometer will produce a reading that is significantly different from the points surrounding it. This isn’t due to an action on the ball, but rather the device sensitivity, environmental factors, etc. surrounding the pc board 106. To reduce the effect of these readings, every 10 data points are averaged out.
From here, any data at the tail end of the array is eliminated if they are deemed to be too similar to each other (for example, having the (x,y,z) reading being within 10 units of each other), indicative of the ball coming to a stop at the end of the shot. The data is also all shifted down to a starting point of (x: 0, y: 0, z: 0, t: 0) for ease of the calculations. Then, from the raw acceleration data, the velocity at each data point is captured using a simple area-under-the-curve calculation.
A linear regression is run on the x, y, and z components of the velocity readings. The regression algorithm comes from “regression-js [,] a JavaScript module containing a collection of linear least-squares fitting methods for simple data analysis. The regression algorithm converts the data into a linear equation
These regression equations are the basis of the analytics calculations. The equations of the analytics are based on a regression package for node.js [1]. Specifically, the analytics are based on the linear least-squares fitting model on the velocity data points. The algorithm starts with the data formatted as an array of pairs of independent and dependent data (i.e.: [[1,1], [2,2], [3,3]...]). Therefore, the velocity data points (originally in the form of {x,y,z,t}) are split into parameters -- resulting in an array of all x values, all y values, all z values, and all t values. The x,y,z arrays are then paired with t and passed to the regression algorithm in succession. The algorithm returns the x-coefficient and the y-intercept of the fitted line, which gets stored as part of the velocity equation for its respective location vector.
Displacement equations are calculated for the x, y, and z vectors by integrating the velocity values following the power rule for integrals.
These two equations are used to calculate all of the following analytics in the x, y, and/or z directions. The resultant vectors are then combined when necessary.
After the parametric equations are calculated from the linear regression, the individual statistics about the shot are calculated using a combination of algebra, trigonometry, and calculus. The velocity equations are integrated to find the displacement equations, and the combination of these equations produce all the analytics shown to the user.
Hang Time. This is just the last reading’s timestamp minus the first reading’s timestamp.
Exit Velocity. This is taken from the velocity parametric equations. The instantaneous velocity is taken from time 0 and they are combined to get the resultant velocity vector.
Launch Angle. This is calculated by combining the x and y parametric equations and then using trigonometry to calculate the launch angle between the XY-plane and the Z-plane.
Apex Height. Since the XY-plane is the vertical plane (if the ball stays in the correct orientation), the apex height is either the x or y displacement curve’s vertex or a combination of the two if the ball doesn’t land with one of those axes ending up vertical.
Carry Distance. Calculated by doing a Reimann sum on the z-plane displacement vector. The accuracy of this is also dependent on the ball remaining in the correct orientation.
The Bluetooth chip 302 transmits this data (the data array) to a smartphone app. The app translates these data points into actionable insights. The app also features a “lost mode” which uses the Bluetooth chip to find proximity and direction to the ball, as well as play a sound with the buzzer. The pieces communicate with a smartphone app via Bluetooth to translate the data into actionable analytical points.
An app located on a cellphone 401 is used to communicate over Bluetooth to the golf ball 402. One aspect of the app is to assist in the location of golf balls 402 after they are hit. Initially, the golfer needs to locate the ball 402 within the range of the Bluetooth signal. While BLE claims an outdoor range of 1000 meters, obstacles could decrease the range. For instance, a golf ball 402 at the bottom of a 5-foot deep water hazard will have difficulty pushing the Bluetooth signal through the water. So the golfer needs to walk in the general direction and distance that the ball 402 was hit. Once the app receives the Bluetooth signal from the golf ball 402, the golfer can instruct the ball 402 to activate the buzzer 304, in one embodiment. The golfer could then follow the sound to the golf ball.
In an alternative embodiment (or in combination with the previous embodiment), the app uses a sweeping motion 403 to create multiple points to use to triangulate the location of the golf ball 402. The sweeping cellphone 401 embodiment describes a method used to locate objects using a cellphone 401. The method relies upon a mobile central interrogator, such as a smartphone 401, and objects 402 with Bluetooth LE (BLE) networking abilities. See
The user holds the central interrogator 401 in his hands and rotates (“sweeps”) 403 it about his body. Using the algorithm in
The central interrogator 401 could be a smartphone, a cell phone, a smartwatch, a tablet, a laptop computer, a notebook computer, smart glasses, an augmented reality device, a custom device, or any similar device. In still another embodiment, the central interrogator 401 could be built into a golf cart and display the location information on the windshield of the golf cart. The central interrogator 401 has a processor, a Bluetooth PHY, radio and transponders, RAM and Flash RAM, and a display screen. The central interrogator 401 may have cellular and WiFi capabilities.
RSSI: Received Signal Strength Indicator. A value reported by a device that denotes the current strength of a received radio signal 405 such as Bluetooth Low Energy (BLE). This signal has a range of -100 to -26 decibels (dB).
Signal Pool: A rolling average of RSSI values that keeps track of the lowest and highest values received as well as the difference between the two.
Facing: Facing is the angle of the device relative to a starting position 403. Facing is determined by means of angle data from the device’s 401 gyroscope. When initiated, the gyroscope calibrates its current orientation as the origin (0,0,0) 602. Only the y value (yaw) is taken into consideration when the facing is updated. The facing is used to determine the circle sector to which a particular RSSI reading can be attributed. See
Heading: The predicted direction in which the user should turn in order to face the signal being tracked. This value is intended to only influence the device’s current yaw value and therefore the user’s Facing direction.
Movement: A change in the user’s position, detected by parsing the weighted moving average of the dot product of each accelerometer readout and the previous readout. The weighted moving average is a normalized value which is calculated as follows:
When the user logs into the app and begins a session, whether on- or off-field, they will arrive at a screen prompting them to connect to their golf ball 402. Upon the user’s command, the central interrogator 401 starts broadcasting a beacon to all nearby devices that match the golf ball’s SSID. All available balls are listed, and the user must select their ball 402. Once the selection is made, the central interrogator 401 attempts to connect to the ball 402 via Bluetooth. Post-connection, the user is prompted to tap the button indicating they are ready to play, when they are ready. This prevents the ball from collecting false data from the player setting up to swing.
In
The area surrounding a user is visualized as a circle in
In
The direction of the tracked item is indicated to the user as follows. A circle is drawn with a gradient from Red to Green, with red representing the lowest RSSI values with the largest RSSI difference, and green representing the highest RSSI values with the smallest RSSI difference. Colors on a gradient from red to green are drawn at other circle segments representing the relative RSSI values of the surrounding segments.
Heading arrows are displayed when the user’s facing does not fall within the circle segment with the highest RSSI and lowest signal difference. The direction of the arrow is determined by the dot product of the vector representing the circle segment determined to be the direction of the tag (
When movement is detected, the signal pools 501-516 are reset so both the highest and lowest RSSI values are the highest values for that pool.
A golfer opens our app on their phone 401 after or during a round of to view analytics and insights of their game. They have the ability to see which aspects of their game need the most work and how best to improve it. Golfers can also locate their ball during their round using the app by playing a sound and finding it through proximity and direction.
In some embodiments, once the golfer indicates that they’re ready to take the shot, the phone 401 sends a key code to the ball 402 to start recording accelerometer data. This key code is received by the communications circuitry in the BLE processor 302 on the golf ball 402, and is used to wake up the BLE processor 302.
The initial screen for the app can be seen in
In one embodiment, the rotation of the golf ball is calculated using a gyroscope located inside of the accelerometer 303 mounted on the pc board 106 inside of the golf ball 402. The data from the accelerometer 303 is collected and stored in the memory of the BLE chip 302. Typically, an accelerometer chip 303 with a gyroscope will return the number of degrees of rotation per second in each axis that the gyroscope detects. In some accelerometer chips 303 (the ST Microelectronics LSM6DS3), this number can be detected up to a maximum of 2000 degrees per second, or about 360 rpm. Other accelerometer chips 303 may have larger ranges. Because the accelerometer chip 303 returns the spin in the x, y, and z-axis, the data provides the direction of spin as well.
In a second embodiment, the magnetoresistant sensor (MR) 305 is used to measure changes in the resistivity of a ferromagnetic material carrying a current due to a magnetic field. This technique allows for rotation rates in the tens of thousands of RPMs. The MR sensor returns an analog signal that is the frequency of rotation. This signal could be inputted to a pin on the BLE chip 302 that is configured as a counter to count the number of cycles, a number that corresponds to the rotation of the golf ball 402. The signal from the MR sensor could also be sent to an analog pin on the BLE chip 302 to measure the magnitude of the signal, indicating the direction of spin. By utilizing the Chirp Z-Transform time-frequency domain analysis method based on the rolling window of a Blackman window function we can accurately measure the spin rate of a high g force high spin projectile. This has been tested and proven on 155 mm artillery projectiles. This method is especially effective for high spin & high g projectile launch environments. The MR sensor and the gyroscope, as well as other solutions for detecting and measuring rotation, are referred to as spin detectors 305.
Looking at
The Ball Locator works as follows: the user can’t find the ball, and selects the ball finding tab. Based on the metrics we can calculate, we suggest a distance and direction to search. Once within the range of Bluetooth, the user can attempt to “search” for the ball. This triggers the app to attempt a Bluetooth connection with the ball. If it is successful, we can give the user a more precise description of the direction and distance to the ball, using the sweeping algorithm described above. The user could then “ping” the ball when they are near it, which would trigger the sound if the ball is lost in tall grass etc. If the ball cannot be connected via Bluetooth in the original search, then the user is informed they are not close enough to the ball. This shouldn’t occur too often as the Bluetooth should be able to function from a pretty good distance (about ~200 yards).
The app will aggregate and analyze data from a round to diagnose symptoms of a user’s golf game and provide concise and actionable feedback. Each shot and the corresponding data is labeled with the club that was used. At the completion of a session, all of the shots are sorted by club type. Within each club type, every shot is analyzed for both performance (further distance is better, a 6 iron has an expected spin rate of around 6000 rpm, etc.) and consistency with all of the other shots the user hit with that club. Clubs with the lowest performance and/or consistency ratings are collected along with the top factors that indicate the low performance or consistency. Each data point along with the specific nature of the error is pre-mapped to general feedback about what is likely going wrong and why. The concluding analysis of a session may appear on the screen as follows:
The app may also compute a combined career score based on usage and improvement over time. The user starts at a score of 0 and gains points with each session and challenge completed. Each session awards points based on the number of strokes hit times a multiplier based on how much the user improved an aspect of their game during that time. For example, 100 strokes hit * 1.2 multiplier for correcting the approximate launch angle of the 5 iron = 120 points. Each challenge is assigned a point value in advance. For example, completing a round with under 2.5 putts per hole might be worth 100 points. These scores will then be displayed on a user’s profile and will be used to establish a leaderboard within the social media aspects of the mobile application.
In an alternative set of embodiments, the characteristics of the flight of a golf ball could be calculated using optical sensors and time of flight. Some of these embodiments are seen in
The accuracy of the input data affects the accuracy of the results. For a full swing, if the exit velocity is less than or equal to 100 m/s (223.7 MPH), then a ±5% or ±5 m/s(11.18 MPH) variance results in a ±5% variance in the results or about between ±50 to ± 25 yards variation assuming a fixed launch angle and spin rate. With a spin rate less than or equal to 10,000 RPM (±5% or ±500 RPM), the ±5% variance results in very little variation in the carry distance. The spin direction (axes of rotation) of ±2° results in about ± 3 yards of left or right variation at 200 yards. The variance is negligible for putting.
The optical time of flight mechanism can be used for full swing and putting applications. The flight sensor 1301 sends a light pulse 1313 and golf ball 1304 reflects reflections 1314 back. The time that it takes the light pulses 1313 and reflections 1314 to return is measured and distance 1305 is calculated. Using at least two samples of distance 1305 we can then calculate velocity Vb1310, given the incline angle 1307. This device can measure both the club and the ball velocity.
Once the first distance dx 1403 and second distance dy 1404 are known the ball can be located within the 2D plane (the ground 1315). If the distance 1305 calculated by the flight sensor 1301 is also included in the calculation (and flight sensor 1301, first wide-angle distance optical sensor 1401, and second wide-angle distance optical sensor 1402 are not in the same plane as the trajectory 1312), then the location of the golf ball 1304 can be determined at a point in time, and over a plurality of location calculations, the launch angle of the golf ball 1304 can be determined from the launch location 1306.
In some embodiments, the angle of the first wide-angle distance optical sensor 1401 and the second wide-angle distance optical sensor 1402 is 45 degrees, although the angle can be varied, provided that the angle is known.
In some embodiments, the flight sensor 1301, the first wide-angle distance optical sensor 1401, the second wide-angle distance optical sensor 1402, and the external magnetometer sensor 1501 are installed on a section of artificial grass (such as AstroTurf). A golfer installs the artificial grass and drives the golf ball 1304 from a launch location 1306 on the artificial grass. The systems of sensors then calculates the golf ball 1304 trajectory, launch velocities, angle, spin rate, spin angle, and travel distance.
The distance dBLX between the launch location 1306 and the second wide-angle distance optical sensor 1402 is measured as an input parameter. Given the launch angle LAv the angle φ is calculated by subtracting from 90°, and the distance dBL(XZ) that the ball travels can also be calculated. These figures are used to calculate the golf ball 1304 velocity VB(XZ), the vertical velocity VBZ, and the horizontal velocity VBX.
First of all, the setup input variables 1901 are input. These values are constants and determined by measurement at the setup of the system. An example is seen in TABLE 5.
Next, the first wide-angle distance optical sensor 1401, and the second wide-angle distance optical sensor 1402 take the distance measurements and the sensor peak differences 1902. An example is seen in TABLE 6.
The next step is to calculate the distance between the ball and the sensor 1903. The formula is:
And the resulting data is seen in TABLE 7:
The following step calculates the golf ball’s vertical heights using the following formulas 1904Eric Goo:
The results from the data set used in the example above can be seen in TABLE 8.
The fifth step calculates the plane angles aBS(Lor R)1905.
Giving the results seen in TABLE 9:
Then the ball to sensor X distances are calculated 1906:
And the results are seen in TABLE 10:
Step 1907 calculates the horizontal launch angle and azimuth. Note that in these calculations a positive number is to the left of the center line and a negative number is to the right of the center line. Golf standards typically use the opposite of this convention, and the sign of the results may need to be reversed for user display.
In the example above, these formulas provide the following results (TABLE 11).
Next, in step 1908, the vertical launch angle is calculated:
This gives the results in TABLE 12:
Given all of the above calculations and results, the ball velocities can now be calculated in step 1909.
This provides the final results in TABLE 13:
The results of these calculations are then displayed on the screen for the golfer to review, on a screen similar to the one shown in
The input of the golfer 2201 frame of reference 2121 vector 2125 from the external magnetometer sensor 1501 before the golf ball 1304 is hit 2303 for a period of time n. The golfer 2201 frame of reference 2121 vector 2125 from an accelerometer on the artificial grass for the golf ball 1304 at rest 2304 is also input. The golfer 2201 vector 2125 is an array of the external magnetometer sensor 1501 values and the grass accelerometer values.
These input vectors 2115,2125 are then run through the Kabsch Algorithm 2305 to define the relationship of the golf ball frame of reference 2111 to the golfer frame of reference 2121. The Kabsch algorithm 2305 is a method for calculating the optimal rotation matrix that minimizes the RMSD (root mean squared deviation) between two paired sets of points. The Kabsch algorithm 2305 works in three steps: a translation, the computation of a covariance matrix, and the computation of the optimal rotation matrix.
The specific Kabash algorithm 2305 takes the sum over the number of samples n of the product of a weight assigned to each vector pair wi multiplied by the square of the absolute value of the vector element from the difference of the first frame ai and the product of the rotational matrix C and the second frame bi. In one embodiment, each value in the weight vector w is set to one. a and b can be any number of vectors, in one embodiment, two vectors per frame are used: the vectors for the magnetometer and acceleration. These vectors could be mapped to:
The Kabsch algorithm 2305 produces K, the frame rotation axis vector 2312, and θK, the frame rotation angle 2311. L(C) is the rotation matrix, a rotational matrix, and could be represented in a few forms, matrix form (3 × 3 rot matrix) or as a rotation vector. A rotational vector is a vector whose direction (or unit vector) forms the axis of rotation and the magnitude represents the amount of rotation. The rotational vector L(C) is represented as K 2312, the unit vector representing the axis of rotation, and θK2311, the magnitude of that rotation.
Once the golf ball 1304 is hit, the ball magnetometer 305 time series data 2314 is run through a low pass IIR filter 2307 to produce the filtered time series vector MBf 2313. The time series data 2314 is taken 2308 from the ball MR sensors 305 as an XR2315, YR2316, and ZR2317 array. An IIR Filter is an infinite impulse response filter.
The ball magnetometer 305 time series data 2314, frame rotation axis vector 2312, and θK2311, and the frame rotation angle 2311 are processed by the Rodrigues’ Rotation Formula 2306. The Rodrigues’ Rotation Formula 2306 is an efficient algorithm for rotating a vector in space, given an axis and angle of rotation (see
Turning to
The spin detection determines the prior vector difference 2321 by subtracting Vn-1 from Vn to get Vprior2331. The second prior vector difference 2322 is also calculated by subtracting Vn-2 from Vn-1 to get V2nd_prior2332.
The rotation axes calculation 2323 is determined by multiplying Vprior by V2nd_prior to get the vector S 2334. In post-processing 2340, S 2334 passes through a low-pass IIR filter 2341 to get the filtered spin axes vector Sf2351. The final results 2360 provide the spin axes 2361.
The spin rate is calculated by finding the change ΔθS2335 in the Theta Calculation 2324 (see
The filtered change in Theta ΔθSf2352 is converted using an angular velocity calculation 2342 by dividing ΔθSf2352 by the change in time Δt to produce the angular velocity ώ 2352. Angular velocity ώ 2352 is converted to the spin rate 2362 as either a revolutions per minute value or a degrees per second value.
The spin rate and spin direction are then displayed on a screen, perhaps on the smartphone 401 In some embodiments, the display could look like the app in
While the above invention specifies a golf ball, the same circuitry and software could be used to analyze a baseball, a hockey puck, a polo ball, a basketball, a football, a Frisbee, a softball, a soccer ball, a volleyball, a tennis ball, a handball, a rugby ball, a table tennis ball, a badminton birdie, a bowling ball, a field hockey ball, a cricket ball, a lacrosse ball, a curling rock, or a bocce ball. In many of these sports, the precise location of the ball is important to scoring, and the location of the BLE chip could be used with beacons to determine precisely whether, for instance, a hockey puck (or soccer ball, etc) has crossed into the net. It could also be used in volleyball or tennis to determine if the ball is in or out of bounds. The algorithms described herein could also be used for determining the characteristics of a bullet or other artillery as well as where it hit the target (allowing automatic scoring). The printed circuit board and its software could be used to analyze the spinning of bearings for bicycle tires, automotive wheels (and other rotating components), and in other devices with rotating components.
The foregoing devices and operations, including their implementation, will be familiar to, and understood by, those having ordinary skill in the art. All sizes used in this description could be scaled up or down without impacting the scope of these inventions. All angles have a tolerance of ± 10 degrees.
The above description of the embodiments, alternative embodiments, and specific examples, are given by way of illustration and should not be viewed as limiting. Further, many changes and modifications within the scope of the present embodiments may be made without departing from the spirit thereof, and the present invention includes such changes and modifications.
This patent application is a continuation-in-part of U.S. Pat. Application 17/953,231, “Golf Ball Analytic Measurement Device and Method”, filed on Sep. 26, 2022. U.S. Pat. Application 17/953,231 is a continuation-in-part of U.S. Pat. Application 17/121,586, “Bluetooth Enabled Ball Analyzer and Locator”, filed on Dec. 14, 2020, now U.S. Pat. 11,452,919. U.S. Pat. application 17/121,586 is a continuation-in-part of U.S. Pat. Application 16/438,412, “Bluetooth Enabled Ball Analyzer and Locator”, filed on Jun. 11, 2019, now U.S. Pat. 10,864,410. U.S. Pat. Application 16/438,412 is a non-provisional patent application claiming priority to U.S. Pat. Provisional Pat. Application 62/824,820, “A Bluetooth chip designed to track proximity and play a sound, along with an accelerometer, that is embedded inside of a golf ball”, filed on Mar. 27, 2019, by inventors Aaron Shapiro and Mike Eberle. The disclosures of the provisional and non-provisional patent applications are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
62824820 | Mar 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17953231 | Sep 2022 | US |
Child | 18108589 | US | |
Parent | 17121586 | Dec 2020 | US |
Child | 17953231 | US | |
Parent | 16438412 | Jun 2019 | US |
Child | 17121586 | US |