Not Applicable
Not Applicable
1. Technical Field
The present disclosure relates generally to tracking athletic performance, and more particularly, to systems and methods for automated golf scoring with wearable devices connectable to scorekeeping data processing devices having minimally intrusive interfaces.
2. Related Art
Golf is played recreationally and professionally worldwide by numerous individuals of both genders, across a wide range of age and skill level. The fundamental objective is to strike a ball with a club starting from the teeing ground into a hole some distance away. A golf course is comprised of multiple holes (eighteen or nine, depending on the size of the course) that are played in sequence, and scored based upon the number of strokes taken from the tee-off to the final putt in which the ball is hit into the hole. In this context, the game appears simple, but there are numerous complexities that continue to challenge players of the highest skill level.
Except for a few basic characteristics, there is a high degree of variability in the configuration of golf courses. Each “hole” or playing area of the course is generally defined by a bounded grassy area including the aforementioned teeing ground and the hole, which is positioned within a green. Between the green and the teeing ground is an area referred to as the fairway, which has short, evenly cut grass that is the most advantageous surface from which to take a subsequent shot. The fairway may extend a specified distance at a specified angle relative to the teeing ground and the green. On the outliers of the fairway but still within the course boundaries is the rough, which has longer cut grass. The distance between the tee and the hole is such that multiple strokes are necessary, and so skillfully placing each shot to different parts of the fairway are rewarded. In addition to the aforementioned grassy areas of the course, there may be various water hazards, bunkers or sand traps, and trees/vegetation that block the flight of the ball.
Besides the variable course configurations that challenge players, wind conditions, sun position, and other environmental factors may present an additional level of difficulty. Furthermore, maintaining a consistent swing is challenging even for the most practiced players, and significant deviations in power and angle may need to be made from shot to shot to account for course layout, distance, wind conditions, and the utilized club. Thus, there is a substantial element of play strategy, which further keeps the game interesting for players of all skill levels. However, with different handicaps, tee boxes, and team scoring/match play, individuals of varying skill can play and compete against each other in groups to such an extent that it can still be an enjoyable recreational activity for all.
Regardless of the specific game play variation, scoring in golf fundamentally involves counting the number of strokes a player takes from tee-off to hole-in. As a general matter, the player with the fewest number of strokes over the entire course is the winner. The task of keeping score is typically handled by the players themselves. In the simplest form, the number of strokes can be kept manually and written on paper as the player progress through the holes. Depending on the rules to which the players have agreed to adhere, adjustments to the number of strokes for the hole for penalties and the like, or limiting the number of strokes counted can likewise be made manually.
As an improvement over paper scorekeeping, various electronic devices have been developed to perform essentially the same function. The devices may include a display screen and one or more buttons to increment/decrement the strokes as they are played. Manual entry, whether electronic or paper, tends to disrupt the flow of gameplay. Specifically, after the stroke is completed, it is necessary for the player to retrieve the device from either the pocket or the golf bag which may be stowed away from the tee box in a golf bag and/or in a golf cart, activate the device, and input a stroke. This must be repeated for each stroke, though with some devices, the score for the hole may be entered upon finishing play for that hole. Regardless, the process of entering such data is tedious. It will be recognized that besides the game itself, many enjoy golf as an opportunity to socialize and/or conduct business on an informal level, and scorekeeping may be too distracting to those ends.
In order to overcome these deficiencies, automated golf scoring systems have also been developed. One existing variation of an automated scoring system is implemented on a smartphone device with an accelerometer sensor. Input profiles that correspond to typical swing motion may be pre-stored on the device, and the stroke counter may be incremented whenever actual data from the accelerometer matches that of the swing input profiles. Such systems do not account for practice swings typically taken before a shot, leading to wildly inaccurate scores unless reviewed after each hole. The necessity for this review largely eliminates the advantages of an automated scoring system, as the device must be retrieved and manipulated in order to make the corrections. Others have additionally incorporated a Global Positioning System (GPS) receiver that reports the coordinates of the location in which the device is placed. If a swing is detected within the same relative vicinity of GPS coordinates, then only the last one detected may be counted toward the score. This technique relied upon certain assumptions as to position and swing input that may not necessarily be true. One such situation could be bad first shot that requires restarting play from the tee but are nevertheless counted only as a first shot. Without additional user intervention, the score kept on the device is incorrect.
Accordingly, there is a need in the art for improved automated golf scoring. There is also a need for a more refined method for detecting golf swings based on sensor readings from a wearable device.
The present disclosure is directed to an automated golf scoring system using a combination of readings from various sensors to accurately count strokes. Generally, accelerometer data from a wearable device and location data from a mobile communication device, such as a smart phone, is utilized to assess which of possibly several accelerometer events should be deemed a shot. The need for manual intervention for scoring is minimized, while providing useful information regarding game progress to the player.
In accordance with one embodiment, there is a method for automated scoring in connection with a sensor unit wearable by the player and a data processing unit in communication therewith. The method may begin with receiving a measurement of a first swing motion by the player with an accelerometer of the sensor unit. The accelerometer may generate first acceleration data corresponding to the first swing motion. Additionally, the method may include detecting a resting state of the player with first speed data from a location positioner of the data processing unit. The first speed data may be less than a predetermined stationary speed threshold to detect the resting state of the player. There may also be a step of storing the first acceleration data for the first swing motion into a swing queue retained on the data processing unit when the resting state is detected. The method may further include a step of detecting a movement of the player with second speed data from the location positioner of the data processing unit. The second speed data may be greater the predetermined stationary speed threshold to detect the movement of the player. The method may also include incrementing a shot counter that is retained on the data processing unit upon detecting the movement of the player. This step may also depend on an evaluation of the first acceleration data in the swing queue having a higher magnitude than any existing acceleration data in the swing queue.
Certain other embodiments of the present disclosure contemplate respective computer-readable program storage media that each tangibly embodies one or more programs of instructions executable by a data processing device to perform the foregoing method.
In yet another automated golf scoring system, there may be a sensor unit and a data processing unit. The sensor unit may include an accelerometer that measures a swing motion by a player and generates acceleration data corresponding thereto. The data processing unit may be in communication with the sensor unit and is receptive to the acceleration data. Furthermore, the data processing unit may have various modules, including a geographic locator module, a swing detection module, and a stroke counter module. The geographic locator module may output speed data corresponding to the player's movement. The swing detection module may cooperate with the geographic locator module and the sensor unit to store acceleration data into a swing queue when a resting state of the player is detected. The detection of the resting state may be based upon the speed data being less than a predetermined stationary speed threshold. The stroke counter module cooperates with the swing detection module and the geographic locator module. A shot counter that is retained on the data processing unit may be incremented by the stroke counter module when a movement of the player is detected while a most recently recorded acceleration data has a highest magnitude among other acceleration data in the swing queue.
The present disclosure will be best understood by reference to the following detailed description when read in conjunction with the accompanying drawings.
These and other features and advantages of the various embodiments disclosed herein will be better understood with respect to the following description and drawings, in which:
Common reference numerals are used throughout the drawings and the detailed description to indicate the same elements.
The detailed description set forth below in connection with the appended drawings is intended as a description of the presently preferred embodiments of automated golf scoring, and is not intended to represent the only form in which the presented embodiments may be developed or utilized. It is further understood that the use of relational terms such as first and second and the like are used solely to distinguish one from another entity without necessarily requiring or implying any actual such relationship or order between such entities.
Referring now to the block diagram of
In accordance with one implementation, the wearable sensor unit 12 is a watch-type device that has an enclosure for its various functional components and a strap that is configured to wrap around the player's wrist. Furthermore, the wearable sensor unit 12 includes an accelerometer 16 that measures motion and generates a stream of acceleration/speed data. The watch form factor is envisioned as being better suited for golf. Once worn, little adjustment is necessary, and to the extent any manipulation of the inputs is required for making scoring adjustments, it is readily accessible.
Although it is possible to implement the functionality otherwise dedicated to the data processing unit 14 in the wearable sensor unit 12, for simplification purposes, they may be kept separate. To this end, the data stream from the accelerometer 16 is communicated to the data processing unit 14 over corresponding transceivers 18, 20. A wireless transmission modality is contemplated so that physical interference from cables is avoided during swings. The standard that presently has the most widely available and lowest cost components is understood to be Bluetooth, though any other suitable wireless communications may be substituted without departing from the scope of the present disclosure. In order to conserve electrical power, a low energy variant (Bluetooth LE) may also be utilized.
The functioning of the accelerometer 16 and the transceiver 18 may be managed by a processor 22, which is understood to be a conventional data processing device that executes pre-programmed instructions based on certain inputs to generate outputs in response. Such instructions, along with other data, may be stored in a memory 24. Various embodiments of the present disclosure contemplate additional input and output functionalities that go beyond simple reporting of acceleration/speed data, so the wearable sensor unit 12 may further include one or more input devices 26 and one or more output devices 28. In the context of a watch-type unit, the input devices 26 may be buttons accessible from the side of the bezel, and the output device 28 may be a display screen (liquid crystal or otherwise) that constitutes the front face of the bezel. Other input and output devices are possible, and the foregoing enumeration of components is intended to be exemplary and not limiting.
There are several existing health and activity monitoring wearable devices that have the aforementioned features, and could be incorporated into the presently contemplated automated scoring system 10. These include open platforms such as Metawatch or Pebble, or could be custom developed specifically for golf scoring.
The data processing unit 14 may be a widely owned mobile communications device such as a smartphone. A foundational aspect of such mobile communications devices is to place and receive telephone calls over a cellular network, but conventional smartphones are capable of running a variety of software applications including those that embody the contemplated methods of automated golf scoring and perform the various steps thereof. In this regard, the data processing unit 14 has a processor 30, much like the processor 22 of the wearable sensor unit 12 that executes pre-programmed instructions. Similarly, there is a memory 32 for storing these instructions and other data. On a very general level, the particular operands and execution sequence of the instructions may be governed by various input parameters provided from input devices 34, while the results of executing the instructions may be shown on an output device 36. In some variations of the data processing unit, the input device 34 and the output device 36 may be a combined touch screen display 38, though it is possible to have separate input devices such as keypads, buttons, and slide switches.
Every functional aspect of data processing unit 14 may be managed to one degree or another by the processor 30. Thus, also connected to the central processing unit is the aforementioned transceiver 18. In addition to the Bluetooth LE modality, the transceiver 20 may implement other communications modalities such as different generations of GSM (Global System for Mobile Communications), EDGE (Enhanced Data rates for GSM Evolution), UMTS (Universal Mobile Telecommunications System), HSPA (High Speed Packet Access) and others. Still further, local area wireless networking technologies such as IEEE 802.11x (WiFi) may also be implemented by the transceiver 20. Using one or more of these communications modalities, the data processing unit 14 may connect to wide area networks such as the Internet 40 to access various online services 42.
The general purpose nature of the processor 30 permits a variety of third party applications or “apps” to be run, performing various computing tasks that require functionality going beyond the typical default features of the data processing unit 14. Because smartphones are taken everywhere the user goes, much of application development has focused on location-based enhancements. Accordingly, the data processing unit 14 includes a locator 44, which is understood to be a Global Positioning System (GPS) receiver that outputs coordinate values corresponding to the current device position as reported by signals 46 from a network of GPS satellites 48. It will be recognized that from multiple position readings over time, bearing, speed, and acceleration may be ascertained. Various embodiments of the present disclosure contemplate the use of such location data to ascertain player strokes, the details of which will be considered more fully below. In addition to the enumerated components, the data processing unit 14 may also have other components 50 such as a digital camera capable of recording still images, as well as video in conjunction with the audio input device.
One embodiment of the present disclosure contemplates a system comprised of various functional components or modules, while another embodiment contemplates a method. The segregation of these modules is presented by way of example only and not of limitation, and those having ordinary skill in the art will recognize the numerous possible ways in which different functions can be associated with different modules. The following example is but one implementation. Moreover, the method may be implemented as a series of instructions executed by the processor 30 of the data processing unit 14. In so implementing the method, the application may be developed as a set of cooperating modules.
Again, with reference to the block diagram of
Referring now to the flowchart of
The graph of
There are a few moderate spikes in magnitude that represent some movement by the player beyond the noise threshold level 58, and there are several significant spikes 60, 62, 64, and 66, that may correspond to actual swings. More particularly, a swing is characterized by a material acceleration while at rest, followed by an increase in speed/distance while acceleration normalizes to baseline. In particular, the spikes 60, 62, and 64 may be practice swings, while the last spike 66 may be the actual swing. By historically viewing the plot as shown, it is easy to ascertain the last spike 66 as the actual swing. However, in reviewing the acceleration data in real-time, it is difficult to determine whether the most recent spike was the actual swing, as additional spikes may be forthcoming.
The present disclosure contemplates the use of additional time-correlated data to count golf swings, and this may be achieved by detecting the resting state of the player in accordance with a step 302. Broadly, when the actor is resting and the received acceleration data conforms to a predetermined profile of a swing, it is counted or recorded as such. In one embodiment, the resting state is detected based upon the speed data as reported by the geographic locator module 52 being less than a predetermined stationary speed threshold. As utilized herein, “less than” is also intended to encompass “less than or equal to.” Alternatively, the resting state can be detected based upon the position data as reported by geographic locator module 52, and more particularly, the coordinates as output by the locator 44. Multiple position readings are evaluated, and if, over time, the indicated positions are within a predetermined stationary distance threshold, then the player is deemed to be in a resting state. Like the data from the accelerometer 16, it is understood that there will be some degree of deviation from one position reading or another, even when stationary.
When the resting state and the acceleration data conforms to that of a swing per the foregoing, the method continues with a step 304 of storing the received first acceleration data into a swing queue 68 that is managed by the swing detection module 54. The swing queue 68 may be implemented in a variety of different ways, but in its simplest form, it is understood to be a reserved area of the memory 32 on which values can be stored and indexed for subsequent retrieval.
The part of the automated scoring method involving the detection of swings as generally described above may be more particularly implemented as a programmed logic flow of steps and conditional blocks shown in the flowchart of
This magnitude value serves as the basis for conditional block 504, which involves a comparison to a swing threshold value. In accordance with various embodiments of the present disclosure, the swing threshold value may be variable, and depend on the specific location on the course that is being reported by the geographic locator module 52. The reported location, in turn, may be compared against a map of the course, referred to herein as course data, which defines specific areas of each hole, including locations of the teeing grounds, hazards, fairway, and the green, for example. The swing threshold may be adjusted lower when the reported location is on the green, while adjusted higher when the reported location is on the teeing grounds. Further still, the swing threshold may be adjusted to some intermediate value when the reported location is on the fairway. Although such embodiment contemplates specific thresholds to be set depending on whether the reported location is within certain pre-defined bounded regions of the course, it is also possible to adjust this value based on the relative distance to the hole. The adjustment may be on a sliding distance scale. For example, a player positioned within several feet of the hole may involve a lower threshold than a player positioned on the outer limits of the green. Moreover, a player shooting the first or second stroke on the fairway may be further away (and hence involving a faster swing) than a player shooting the third or fourth stroke also on the fairway. The alternative embodiment in which the threshold is dynamically adjusted according to the distance from the hole is understood to account for this variability. The degree of adjustment necessary to account for differences in the expected acceleration data is readily ascertainable by those having ordinary skill in the art.
Continuing with the decision block 504, if the calculated magnitude value does not exceed the swing threshold value, the logic flow proceeds to a conditional block 506 to determine whether acceleration is currently being monitored. If not, the logic flow returns to the entry point until another acceleration event is detected in accordance with step 500. Otherwise, program execution continues to yet another conditional block 508 to determine whether a timeout period has expired. If not, like the previous conditional block 506, the logic flow returns to the entry point according to step 500. If the timeout period has now expired, monitoring for acceleration is stopped, and the swing queue 68 is reset in step 510. Thereafter, the program returns to wait for the detection of another acceleration event in step 500.
If the aforementioned summed acceleration data or magnitude value is greater than the predetermined swing threshold as determined in conditional block 504, logic flow continues to another conditional block 512 to determine whether the player is in a resting state. Again, this determination may involve the comparison of instantaneous speed data from the locator 44, or of two or more location coordinate values from the locator 44, and so long as such values are within a predetermined speed or distance threshold, the data processing unit 14 and hence the player is assumed to be stationary. Those having ordinary skill in the art will recognize that there are other possible techniques to ascertain movement to a greater degree of accuracy, and such techniques may be readily incorporated into the automated scoring system 10. If the player is not determined to be at rest, then the program returns to wait for the detection of another acceleration event in step 500. If the player is in the resting state, execution continues with step 514 of queuing the player location, i.e., storing the location value in the swing queue 68.
The latest captured acceleration data is compared against other acceleration data stored in the swing queue 68 in conditional block 516. If the last captured acceleration data has the highest magnitude, it is stored in the swing queue 68 according to step 518. It is possible to store only the acceleration data with the highest magnitude at any given time, with the latest captured acceleration data replacing the one previously with the highest magnitude. Alternatively, it is possible to store all received acceleration data that is time-indexed. Swing detection may be repeated to the extent there are other accelerometer events received according to step 500.
If the latest captured acceleration data does not have the highest magnitude, program flow proceeds to conditional block 520, in which it is determined whether acceleration is being monitored or not. If it is not, in step 522 the monitoring is started. Thereafter, a swing counter is incremented per step 524. The program flow then waits for another acceleration event in step 500.
Thus, the swing detection module 54 cooperates with the geographic locator module 52 and the wearable sensor unit 12 to determine a swing by the player. Acceleration data corresponding to the swing is stored in the swing queue 68 when it coincides with the resting state of the player. Again, as indicated above, this resting state is determined based upon the position data from two instances in time within a timeout period that are sufficiently proximal to each other to constitute a stationary state.
With reference again to the flowchart of
The part of the automated scoring method involving the counting of strokes as generally described above, including steps 306 and 308, may be more particularly implemented as a programmed logic flow of steps and conditional blocks shown in the flowchart of
An entry point 600 is the stroke counter module 56 being in a recording state. There are a series of chained condition blocks that evaluate various data and perform different steps depending on the outcome. A first condition block 602 involves the determination of whether acceleration is currently being monitored. As indicated above, monitoring can be initiated when the latest captured acceleration data is the maximum in the swing queue 68, and stopped when a timeout period has expired. If monitoring is ongoing, execution of the programmed logic continues to a state 603 in which no further action is taken until monitoring is stopped. Otherwise, there is a second condition block 604 to determine whether there is there are any acceleration data and location data that has been recorded. Referring back to the flowchart of
The expiration of the timeout is evaluated again in conditional block 606. If expired, as per state 607, it is understood to be outside the evaluation window. To the extent there were any values in the swing queue 68, they are discarded as stale. If it is still within the evaluation window, the next chained conditional block 608 involves an evaluation of whether the player speed is greater than a predetermined speed threshold. This evaluation and subsequent steps are based upon the assumption that following an actual stroke by the player, the player will begin moving away from where the stroke was taken, whether that be away from the teeing grounds and waiting to allow the next player to take a shot, or toward the next play position on the course. The determination of speed in the conditional block 608 may rely upon the location data as reported by the geographic locator module 52 in the same manner as discussed above in relation to a determination of the player's resting state, i.e., calculating a difference in positions over a set time period. If the player is not moving or not moving enough per state 609, execution returns to the entry point 600.
If the conditional block 608 is evaluated to determine that the player is moving, execution continues to step 610 of incrementing the shot counter, and storing the acceleration data into a stroke log. Also stored in the stroke log and associated with the acceleration data is the corresponding location data from when that acceleration was measured. The swing queues 68, along with other internal counters are reset in step 612.
Again, the aforementioned functions are understood to be implemented by the stroke counter module 56. Furthermore, these functions are achieved in cooperation with the swing detection module 54 and the geographic locator module 52. The shot counter is incremented by the stroke counter module 56 when a movement of the player is detected in conjunction with the acceleration data that exceeds the swing threshold and is the maximum amongst others that may have been previously detected.
Still referring to the flowchart of
As discussed above, each stroke is associated with a specific location, and the location at any given point during play is available from the geographic locator module 52. Accordingly, it is possible to present a wide variety of useful information about the course and/or the particular hole being played on the user interface 71. In particular, there is a hole indicator 78 that also displays the total yardage from the tee to the hole. The example of
According to another embodiment, the automated scoring system 10 may transmit the stroke count and other information to the wearable sensor unit 12 for display on the output device 28. A more condensed view in comparison to the view on the data processing unit 14 is contemplated, as shown in
Aside from the two kinds of outputs discussed above, it is also possible for the output module 70 to upload the score data to the aforementioned online services 42 for sharing with others. For example, one of the online services 42 could be a social networking site, and whenever certain achievement objectives are met, that could be announced thereon. Further competitive elements based on the recorded scores are also possible, such as challenges among players worldwide and so forth. Additionally, because each stroke is geocoded, different post-hoc visualizations of gameplay is possible.
The particulars shown herein are by way of example and for purposes of illustrative discussion of the embodiments of the disclosure only and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of automated golf scoring. In this regard, no attempt is made to show details with more particularity than is necessary for the fundamental understanding of the present disclosure, the description taken with the drawings making apparent to those skilled in the art how the several forms of the present disclosure may be embodied in practice.