U.S. patent application number 13/950682 was filed with the patent office on 2015-01-29 for automated golf scoring.
This patent application is currently assigned to ACTIVE NETWORK, LLC. The applicant listed for this patent is MARK ROEBKE. Invention is credited to MARK ROEBKE.
Application Number | 20150032237 13/950682 |
Document ID | / |
Family ID | 52391135 |
Filed Date | 2015-01-29 |
United States Patent
Application |
20150032237 |
Kind Code |
A1 |
ROEBKE; MARK |
January 29, 2015 |
AUTOMATED GOLF SCORING
Abstract
An automated golf scoring system with a sensor unit wearable by
the player and a data processing unit in communication therewith is
disclosed. First acceleration data corresponding to a first swing
motion measured with an accelerometer of the sensor unit is
received. A resting state is detected with first speed data from a
location positioner. The first acceleration data for the first
swing motion is stored in a swing queue when the resting state is
detected. A movement of the player is then detected with second
speed data. A shot counter is incremented upon detecting the
movement of the player. This depends 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.
Inventors: |
ROEBKE; MARK; (SAN DIEGO,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
ROEBKE; MARK |
SAN DIEGO |
CA |
US |
|
|
Assignee: |
ACTIVE NETWORK, LLC
SAN DIEGO
CA
|
Family ID: |
52391135 |
Appl. No.: |
13/950682 |
Filed: |
July 25, 2013 |
Current U.S.
Class: |
700/92 |
Current CPC
Class: |
G06K 9/00536 20130101;
G01P 3/00 20130101; G01P 15/00 20130101; G06K 9/00342 20130101 |
Class at
Publication: |
700/92 |
International
Class: |
A63B 71/06 20060101
A63B071/06 |
Claims
1. A method for automated golf scoring with a data processing unit
in communication with a sensor unit wearable by a player, the
method comprising the steps of: receiving a measurement of a first
swing motion by the player with an accelerometer of the sensor
unit, the accelerometer generating first acceleration data
corresponding to the first swing motion; detecting a resting state
of the player with first speed data from a location positioner of
the data processing unit, the first speed data being lower than a
predetermined stationary speed threshold to detect the resting
state of the player; 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; detecting a
movement of the player with second speed data from the location
positioner of the data processing unit, the second speed data being
greater than the predetermined stationary speed threshold to detect
the movement of the player; and incrementing a shot counter
retained on the data processing unit upon the detecting of the
movement of the player and an evaluation of the first acceleration
data in the swing queue having a higher magnitude than any existing
acceleration data in the swing queue.
2. The method of claim 1, wherein the first speed data and the
second speed data is an instantaneous value generated by the
location positioner of the data processing unit.
3. The method of claim 1, wherein: the first speed data is derived
from a first set of position data including geo-location coordinate
values measured at predetermined time intervals; the second speed
data is derived from a second set of position data including
geo-location coordinate values measured at the predetermined time
intervals; the predetermined stationary speed threshold
corresponding to a distance between geo-location coordinate values
at the predetermined time intervals.
4. The method of claim 1, further comprising: removing the first
acceleration data from the swing queue upon expiration of a timeout
period.
5. The method of claim 1, further comprising: receiving a
measurement of a second swing motion by the player with the
accelerometer, the accelerometer generating a second acceleration
data corresponding to the second swing motion.
6. The method of claim 5, further comprising: storing the second
acceleration data for the second swing motion into the swing queue
when the resting state is detected and the second acceleration data
has a higher magnitude than the first acceleration data in the
swing queue.
7. The method of claim 6, wherein the first swing motion and the
second swing motion are measured within a timeout period.
8. The method of claim 6, further comprising: incrementing the shot
counter upon detection of the movement of the player and an
evaluation of the second acceleration data in the swing queue
having a higher magnitude than the first acceleration data in the
swing queue.
9. The method of claim 1, wherein the first acceleration data is
stored in the swing queue if the first acceleration data is
evaluated as having a magnitude higher than a predetermined
magnitude threshold.
10. The method of claim 9, wherein the predetermined magnitude
threshold is variable.
11. The method of claim 10, wherein: the predetermined magnitude
threshold is based upon a comparison of a player location from the
position data to course data.
12. The method of claim 11, wherein the course data includes a
first set of location coordinates corresponding to a teeing ground
of a course hole, second sets of location coordinates corresponding
to a green of a course hole, and third sets of location coordinates
corresponding to a fairway of a course hole.
13. The method of claim 12, wherein the predetermined magnitude is
reduced for the player location being within a set vicinity of the
green of the course hole.
14. The method of claim 12, wherein the predetermined magnitude is
increased for the player location being within a set vicinity of
the teeing ground of the course hole.
15. The method of claim 10, wherein the predetermined magnitude
threshold is based upon an evaluation of a player location from the
position data along a sliding distance scale to a course hole.
16. The method of claim 1, further comprising: storing in a stroke
log the first acceleration data for the first swing motion; storing
in the stroke log position data corresponding in time with the
first acceleration data; and associating the position data to the
first acceleration data.
17. The method of claim 1, further comprising: generating a score
output on a display device of the data processing unit, the score
output corresponding to a value of the shot counter.
18. The method of claim 1, further comprising: transmitting a score
count to the sensor unit; and generating a score output on a
display device of the sensor unit, the score output corresponding
to the score count.
19. The method of claim 1, wherein the accelerometer measures the
movement in x, y, and z axes.
20. The method of claim 19, wherein the first acceleration data is
a summed magnitude of the accelerometer measurements in the x, y,
and z axes.
21. The method of claim 1, wherein the sensor unit and the data
processing unit communicate wirelessly.
22. An article of manufacture comprising a non-transitory program
storage medium readable by a user computing device, the medium
tangibly embodying one or more programs of instructions executable
by the user computing device to perform an automated golf scoring
method comprising: receiving on the user computing device a
measurement of a first swing motion by the player with an
accelerometer of a sensor unit wearable by the player and in
communication with the user computing device, the accelerometer
generating first acceleration data corresponding to the first swing
motion; detecting a resting state of the player with first speed
data from a location positioner of the user computing device, the
first speed data being lower than a predetermined stationary speed
threshold to detect the resting state of the player; storing the
first acceleration data for the first swing motion into a swing
queue retained on the user computing device when the resting state
is detected; detecting a movement of the player with second speed
data from the location positioner of the user computing device, the
second speed data being greater than the predetermined stationary
speed threshold to detect the movement of the player; and
incrementing a shot counter retained on the user computing device
upon the detecting of the movement of the player and an evaluation
of the first acceleration data in the swing queue having a higher
magnitude than any existing acceleration data in the swing
queue.
23. An automated golf scoring system, comprising: a sensor unit
including an accelerometer measuring a swing motion by a player and
generating acceleration data corresponding thereto; a data
processing unit in communication with the sensor unit and receptive
to the acceleration data, the data processing unit including: a
geographic locator module outputting speed data corresponding to a
current movement of the player; a swing detection module
cooperating 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 based upon the speed data being less than
a predetermined stationary speed threshold; a stroke counter module
cooperating with the swing detection module and the geographic
locator module, a shot counter retained on the data processing unit
being 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.
24. The system of claim 23, wherein the sensor unit and the data
processing unit each include respective transceiver modules, the
acceleration data being transmitted by the transceiver module of
the sensor unit and received by the transceiver module of the data
processing unit.
25. The system of claim 23, wherein: the sensor unit is wearable on
a wrist of the player; and the data processing unit is a mobile
communications device.
26. The system of claim 23, wherein the geographic locator module
includes a global positioning system (GPS) receiver.
27. The system of claim 23, wherein: the geographic locator module
outputs position data corresponding to a current geographic
location; and the resting state of the player is detected based
upon the position data inside a predetermined timeout period being
within a predetermined distance threshold;
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] Not Applicable
STATEMENT RE: FEDERALLY SPONSORED RESEARCH/DEVELOPMENT
[0002] Not Applicable
BACKGROUND
[0003] 1. Technical Field
[0004] 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.
[0005] 2. Related Art
[0006] 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.
[0007] 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.
[0008] 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.
[0009] 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.
[0010] 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.
[0011] 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.
[0012] 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.
BRIEF SUMMARY
[0013] 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.
[0014] 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.
[0015] 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.
[0016] 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.
[0017] The present disclosure will be best understood by reference
to the following detailed description when read in conjunction with
the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0018] 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:
[0019] FIG. 1 is a block diagram illustrating the components of an
automated golf scoring system including a wearable sensor unit and
a data processing unit;
[0020] FIG. 2 is a detailed block diagram of the automated golf
scoring system and its constituent functional modules;
[0021] FIG. 3 is a flowchart illustrating one method for automated
golf scoring in accordance with an embodiment of the present
disclosure;
[0022] FIG. 4 is a plot of acceleration magnitude data as measured
by an accelerometer of the wearable sensor unit;
[0023] FIG. 5 is a detailed flowchart illustrating one
implementation of detecting player swings;
[0024] FIG. 6 is a detailed flowchart illustrating one
implementation of counting a player stroke;
[0025] FIG. 7 is an example user interface on the data processing
unit showing game play progress and counted strokes; and
[0026] FIG. 8 is an example user interface on the wearable sensor
unit showing game play progress and counted strokes.
[0027] Common reference numerals are used throughout the drawings
and the detailed description to indicate the same elements.
DETAILED DESCRIPTION
[0028] 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.
[0029] Referring now to the block diagram of FIG. 1, an automated
scoring system 10 for golf includes a wearable sensor unit 12 and a
data processing unit 14. In general, the automated scoring system
10 is passive, in that no user intervention is necessary to keep
score during play, thus reducing distractions and heightening
enjoyment. The wearable sensor unit 12 is understood to be
attachable to one of the limbs of the player, though in one
preferred but optional embodiment, attachment to the wrist is
contemplated. Other attachment points for the wearable sensor unit
12 are possible, but it will be recognized that because the most
significant motion occurring during a golf stroke is in the arms
regardless of the type of stroke being employed, sensors taking
measurements thereof are likely to provide the most useful
information. This is not intended to preclude other devices that
attach to the pants or a belt and which may therefore be more
proximal to the hips of the player, for example.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] Again, with reference to the block diagram of FIG. 2 that
illustrates these modules, the system includes the wearable sensor
unit 12 with the accelerometer 16 that measures a swing motion by
the player. Acceleration data corresponding to that swing motion is
generated, and transmitted to the data processing unit 14. As
indicated above, the data processing unit 14 is in communication
with the wearable sensor unit 12 and is receptive to the
acceleration data. The additional details of the modules will be
described in relation to the functions performed, but as an
overview, the data processing unit includes a geographic locator
module 52, a swing detection module 54, and a stroke counter module
56, among others.
[0039] Referring now to the flowchart of FIG. 3, the method for
automated golf scoring begins with a step 300 of receiving a
measurement of a first swing motion by the player. This measurement
is made by the accelerometer 16 of the wearable sensor unit 12, and
generates first acceleration data that corresponds to the first
swing motion. It is understood that the accelerometer 16 measures
motion/acceleration along the x, y, and z axes, and the
acceleration data is given for each.
[0040] The graph of FIG. 4 is a plot 59 of the combined magnitude
values of acceleration data over an example time period t1 to t2,
along with a plot 61 of speed data over the same time period.
Predictable acceleration and speed/distance trends are expressly
contemplated as a basis for determining a played stroke. As shown,
a constant stream of data is generated and is being transmitted to
the data processing unit 14. There is a noise threshold level 58
that is inherent in all accelerometers, below which the readings
are not deemed significant. To improve detection of swings, the
acceleration data may be filtered to exclude expected noise before
further processing.
[0041] 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.
[0042] 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.
[0043] 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.
[0044] 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 FIG. 5. This may also
be referred to as a swing analysis process that involves the
detection of acceleration events of interest while the player is in
a resting state. To the extent there are any as evaluated according
to the following conditions, the data is understood to be queued
for use by the stroke counting module. The acceleration data stored
in the swing queue 68 may be deemed invalid and subject to disposal
when certain expiration and/or timeout criteria are met. The entry
point is the receipt of an accelerometer event per step 500. Next,
the x, y, and z axis values are summed into a single magnitude
value according to step 502.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] With reference again to the flowchart of FIG. 3, the method
for automated golf scoring continues with step 306 of detecting a
movement of the player. This may be based upon second speed data
or, alternatively, second position data, both or either of which
may be reported by the geographic locator module 52. In contrast
with the detecting of the resting state as discussed above,
detecting the movement is based upon either the second speed data
being greater than the stationary speed threshold, or two or more
readings of the second position data being outside the stationary
position threshold, i.e., when the location readings differ from
one time instant to another by more than a threshold amount, it is
determined that the player is moving. As utilized herein, "greater
than" is intended to encompass "greater than or equal to," as well.
When movement is detected, the method continues with step 308 of
incrementing a shot counter that is retained on the data processing
unit 14, so long as the latest acceleration data stored in the
swing queue 68 has the highest magnitude. In the alternative
embodiment in which only the highest magnitude acceleration data is
stored in the swing queue 68, the existence of a value therein may
be the second condition for incrementing the shot counter (in
addition to detecting the movement of the player). As indicated
above, it is possible for there to be no data in the swing queue 68
when a timeout occurs and the swing queue 68 is reset.
[0052] 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 FIG. 6. This may also be referred to as a stroke counting
process that analyzes motion when valid data is queued by the swing
analysis process. If the proper criteria are met, the queued values
are stored in memory and used to increment the player's score.
[0053] 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 FIG. 5, acceleration
data and location is stored in the swing queue 68 when the latest
captured acceleration data has the highest magnitude, and the
player was at rest when it was captured. As shown in the flowchart
of FIG. 6, if the swing queue 68 was reset following the expiration
of the timeout as evaluated in condition block 508, per state 605,
there is no queued data to process, and execution returns to wait
until a recording state can be resumed at entry point 600.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] Still referring to the flowchart of FIG. 6, the score
display is updated in step 614. As shown in the block diagram of
FIG, 2, the data processing unit 14 may further include an output
module 70 for performing this step. One contemplated output may be
on the data processing unit 14, and specifically on the touch
display screen 38 thereof. An exemplary user interface 71 for the
automated golf scoring apparatus is shown in FIG. 7. The data from
the shot counter, i.e., the number of strokes counted for the
current hole being played, is centrally displayed in a stroke
display section 72. In case there is a need for the player to
manually adjust the stroke count, the interface includes a stroke
increment button 74 and a stroke decrement button 76.
Notwithstanding the availability of these manual score adjustment
interface elements, it is expressly contemplated that the automated
scoring system 10 requires no user intervention, and the data
processing unit 14 may be kept in the pocket of the player or other
non-intrusive place.
[0058] 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
FIG. 7 shows that the player is currently playing hole 6, which has
a distance of 479 yards. Furthermore, there is a par indicator 80
that also includes a display of the course handicap. A graphical
overview 82 of the entire playing area of the hole is also
presented, with various stroke indicators 84 being placed thereon
corresponding to the locations of recorded strokes. The progression
of gameplay may also be visualized in a scoring table 86, which
lists each hole and its par in a first row 86a and the total
recorded strokes for each hole in a second row 86b. The
configuration of the user interface 71 is presented by way of
example only and not of limitation. Those having ordinary skill in
the art will recognized alternative layouts and different
information that could be presented to the player without departing
from the scope of the present disclosure.
[0059] 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 FIG. 8. There is a
similar hole indicator 88 that shows the current hole being played
along with its designated par number. A course distance indicator
90 shows the distance to various points of interest from the
current location. Furthermore, there is a stroke display section 92
that shows the same information as the stroke display section 72 on
the user interface 71 of the data processing unit 14. It is
possible to increment and decrement the recorded number of strokes
from the wearable sensor unit 12, and if there is a touch display
screen, tapping or otherwise interacting with the increment icon 94
and the decrement icon 96 may be operative to adjust the score.
Alternatively, the wearable sensor unit 12 may include buttons that
are positioned along the same vicinity as the icons 94, 96, and
activation of the buttons may be operative to adjust the score. The
interface of the wearable sensor unit 12 has also been presented by
way of example only and not of limitation.
[0060] 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.
[0061] 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.
* * * * *