This disclosure relates generally to computer systems for use in sport, and more particularly relates to networks for the use in and tracking of games of golf.
Golf tracking technology has grown by leaps and bounds since the game came to prominence in the 15th century. Past methods of tracking a round of golf can be as simple as putting hash marks on a sheet of paper to count strokes, but this type of tracking often lacks depth and merely notes the score of the round. More recent approaches to golf tracking incorporate the use of global positioning system (GPS) data to track a position of each shot, but these data are often inaccurate. This is especially true when shots go short distances (e.g., duffs, chunks, tops, putts, etc.) or when a view of the sky is obstructed by the landscape (e.g., under trees, in the mountains, etc.). Inaccurate shot data, in turn, can then lead to inaccurate statistics (e.g., strokes gained, shot distance, fairways hit, etc.) as well as inaccurate predictions (e.g., club predictions) when collected data is used as a basis for the predictions.
Golf tracking software applications, which are oftentimes used in combination with GPS data to track a round of golf, also suffer from a number of problems. Notably, many golf tracking software applications implement clunky and hard to use graphical user interfaces (GUIs) on mobile devices for shot input. This is especially true for older golfers, who oftentimes have problems adapting to new technology. Due to the difficulty in using these GUIS, shot data can be inaccurately entered or not entered at all. This, in turn, can create and/or compound the aforementioned problems with inaccurate data. While some golf tracking software applications implement various sensors (e.g., RFID sensors) and complementary receivers to track golf shots, these sensors oftentimes further exacerbate the difficulty in tracking shots by causing a golfer to fumble with multiple devices to enter shot data. Further, the use of sensors to record golf shots increases the cost of the system beyond what a typical golfer will pay.
Therefore, in view of the above, there is a need for a golf tracking network that is more accurate and/or with an improved shot tracking method.
An improved system and method for improving one's golf game is disclosed. In various embodiments, the method and system includes a software system for measuring golf swings, hits, and analyzing a round of golf. The system and method disclosed herein can work with any number of hardware devices including a cellular phone and various electronic measuring devices.
A number of embodiments can include a system. The system can include one or more processors and one or more non-transitory computer-readable storage devices storing computing instructions. The computing instructions can be configured to run on the one or more processors and cause the one or more processors to perform receiving, from a device within a golf tracking network, a round start signal; creating, on a web server, a golf round database; storing, on the device within the golf tracking network, golf shot data; receiving, from the device within the golf tracking network, a hole advance signal; uploading a staging table comprising the golf shot data to the web server; and coordinating displaying, on a mobile electronic device within the golf tracking network, golf round data derived from the golf shot data.
Various embodiments include a method. The method can be implemented via execution of computing instructions configured to run at one or more processors and configured to be stored at non-transitory computer-readable media The method can comprise receiving, from a device within a golf tracking network, a round start signal; creating, on a web server, a golf round database; storing, on the device within the golf tracking network, golf shot data; receiving, from the device within the golf tracking network, a hole advance signal; uploading a staging table comprising the golf shot data to the web server; and coordinating displaying, on a mobile electronic device within the golf tracking network, golf round data derived from the golf shot data.
A number of embodiments can include a system. The system can comprise one or more processors and one or more non-transitory computer-readable storage devices storing computing instructions. The computing instructions can be configured to run on the one or more processors and cause the one or more processors to perform: storing, on a plurality of electronic devices within a golf network, a set of golf shots for a player; compiling, at a mobile device, the set of golf shots into a golf database stored on the mobile device; determining a recommended golf club using the set of golf shots; and facilitating communicating, via an electronic device of the plurality of electronic devices within the golf network, the recommended golf club.
Various embodiments include a method. The method can comprise storing, on a plurality of electronic devices within a golf network, a set of golf shots for a player; compiling, at a mobile device, the set of golf shots into a golf database stored on the mobile device; determining a recommended golf club using the set of golf shots; and facilitating communicating, via an electronic device of the plurality of electronic devices within the golf network, the recommended golf club.
A number of embodiments can include a system. The system can comprise one or more processors and one or more non-transitory computer-readable storage devices storing computing instructions. The computing instructions can be configured to run on the one or more processors and cause the one or more processors to perform: storing, on a plurality of electronic devices within a golf network, a set of golf shots for a player; compiling, at a mobile device, the set of golf shots into a golf database stored on the mobile device; determining a recommended golf club using the set of golf shots; and facilitating communicating, via an electronic device of the plurality of electronic devices within the golf network, the recommended golf club.
Various embodiments include a method. The method can comprise storing, on a plurality of electronic devices within a golf network, a set of golf shots for a player; compiling, at a mobile device, the set of golf shots into a golf database stored on the mobile device; determining a recommended golf club using the set of golf shots; and facilitating communicating, via an electronic device of the plurality of electronic devices within the golf network, the recommended golf club.
To facilitate further description of the embodiments, the following drawings are provided in which:
The techniques and systems described herein can provide for an improved and smoother golf tracking experience for a golfer. For example, the activities and/or elements described herein can, in combination or alone, advantageously function as a virtual caddy that records information about a golfer, a golf course, and a golf game. In many embodiments, network effects inherent in the game of golf can be leveraged to record golf data in a way that involves the least amount of change for a golfer. For example, a rangefinder can be used in combination with a voice command to record a distance from the pin and a club selection. This, in turn, can lead to more accurate and consistent recordation of golf data and more accurate downstream recommendations by the virtual caddy.
A number of embodiments can include a system. The system can include one or more processors and one or more non-transitory computer-readable storage devices storing computing instructions. The computing instructions can be configured to run on the one or more processors and cause the one or more processors to perform receiving, from a device within a golf tracking network, a round start signal; creating, on a web server, a golf round database; storing, on the device within the golf tracking network, golf shot data; receiving, from the device within the golf tracking network, a hole advance signal; uploading a staging table comprising the golf shot data to the web server; and coordinating displaying, on a mobile electronic device within the golf tracking network, golf round data derived from the golf shot data.
Various embodiments include a method. The method can be implemented via execution of computing instructions configured to run at one or more processors and configured to be stored at non-transitory computer-readable media The method can comprise receiving, from a device within a golf tracking network, a round start signal; creating, on a web server, a golf round database; storing, on the device within the golf tracking network, golf shot data; receiving, from the device within the golf tracking network, a hole advance signal; uploading a staging table comprising the golf shot data to the web server; and coordinating displaying, on a mobile electronic device within the golf tracking network, golf round data derived from the golf shot data.
Turning ahead in the drawings,
In many embodiments, method 100 can comprise an activity 101 of receiving a round start signal. Generally speaking, a round start signal can comprise an indication from one or more devices within golf tracking network 410 (
In many embodiments, method 100 can comprise an activity 102 of creating a golf round database. A golf round database can comprise a new database and/or an expansion of an existing database. Each golf round database (either a wholly new database and/or an expanded database) can be associated with a unique round ID for a golf round. Many fields in a golf round database can be populated using pre-existing data. For example, golf course data, historical user data, and/or device data can be imported into a golf round database. Golf course data can comprise a unique course ID, a course name, latitude and/or longitude of a course's boundaries, a total number of holes on a course, latitude and/or longitude of a course's tee boxes for each hole, a total length of a course, a value of strokes for par on a course, and/or male and female slope ratings for a course. Golf course data can be acquired from a number of sources. For example, golf course data can be crowd sourced, developed internally, and/or purchased from a third party and accessed through an API. Historical user data can comprise a user ID, a greens in regulation (GIR) statistic for a user, a total putts statistic for a user, and/or a total number of fairways hit or missed (e.g., to the left or right) for a user. Historical user data can be acquired from a number of sources. For example, historical user data can be imported from a storage volume (e.g., a storage device on mobile electronic device 411 (
In many embodiments, golf round database can be created and stored as an object. Creating and/or storing a golf round database as an object can provide for a number of advantages. For example, an object can be modified by a function or method, thereby allowing for the golf round database to be continually updated as a round progresses. As another example, creating and/or storing a golf round database as an object allows for identification of incomplete and/or partial rounds of golf due to incomplete, null, and/or empty fields in the golf database. A golf round database can be stored in a number of locations. For example, a golf round database can be stored on mobile electronic device 411 (
In many embodiments, method 100 can comprise an activity 103 of storing golf shot data. Generally speaking, golf shot data can comprise data gathered from one or more devices within golf tracking network 410 (
Golf shot data can be recorded in a number of ways that can depend on the device within golf tracking network 410 (
In many embodiments, method 100 can comprise an activity 104 of receiving a hole advance signal. Generally speaking, a hole advance signal can comprise an indication from one or more devices within golf tracking network 410 (
In many embodiments, method 100 can comprise an activity 105 of uploading a staging table. In some embodiments, activity 105 can be performed in response to activity 104. Generally speaking, a staging table can comprise a temporary table (e.g., a temporary database) used to hold data for future processing. In some embodiments, a staging table can be uploaded to web server 401 (
In many embodiments, method 100 can comprise an activity 105 of coordinating displaying golf shot data. Golf shot data can be displayed on a number of devices in golf tracking network 410. For example, golf shot data can be displayed on mobile electronic device 411 (
Turning now to the drawings,
In many embodiments, method 200 can comprise an activity 201 of storing a set of golf shots. Golf shot data can comprise data gathered from one or more devices within golf tracking network 410 (
Golf shot data can be recorded in a number of ways that can depend on the device within golf tracking network 410 (
In many embodiments, method 200 can comprise an activity 202 of compiling golf shots into a golf database. A club used for a golf shot can be recorded using one or more alphanumeric characters stored on an electronic device. For example, a driver can be assigned the character A, a 3 wood can be assigned the character B, a 5 wood can be assigned C. As a further example, irons can be assigned a number corresponding to their numerical identifier (e.g., a 1 iron can be assigned 1, a 3 iron can be assigned 3, a 9 iron can be assigned 9, etc.). As a final example, a putter can be assigned 0. An alphanumeric character for a club can also depend on how the club is identified by a player. For example, the term “lob wedge” can generally refer to a club with a loft of 58° to 60°. In this embodiment, if a player uses lob wedge as a club ID it can be assigned to the letter M, but if a player uses 60° wedge it can be assigned an S. In many embodiments, a string or sequence of club identifications can be paired with a shot number to create a string of alphanumeric characters. For example, on a hole where a player records driver, 9-iron, putt, putt, the alphanumeric string can comprise A, 1; 9, 2; 0, 3; 0, 4.
Golf shot data can be stored in a golf round database. In many embodiments, a golf round database can be created and/or stored (in whole or in part) on one or more devices of system 400 (
In many embodiments, golf shot data can be stored in a short term golf database. A short term golf database can be short lived and/or temporary. For example, a short term golf database can comprise a staging table. A staging table can comprise a temporary table (e.g., a temporary database) used to hold data for future processing. In some embodiments, a staging table can be uploaded to web server 401 (
A number of fields in a golf round database can be created as null and/or empty entries. For example, fields storing various statistics generated by system 400 (
In many embodiments, method 200 can comprise an activity 203 of determining a recommended golf club. In some embodiments, activity 203 can be performed in response to a club prediction request from a device within golf network 410 (
A predictive algorithm can comprise a set of steps and/or operations configured to determine a club most likely to produce a lowest score on a hole given the current conditions. A number of different predictive algorithms can be used in whole, in part, and/or in combination to produce a club recommendation. A first predictive algorithm can be useful when historical shot data for a user is sparce and/or below a predetermined threshold. A first predictive algorithm can begin by querying a golf database for historical shot data based on a player's current distance to a green (e.g., a distance to a front, back, or center of a green) within a yardage window (e.g., ±15 yards, ±10 yards, etc.). In embodiments where laser device 412 (
A second predictive algorithm can be useful when historical shot data for a user is voluminous and/or above a predetermined threshold. A second predictive algorithm can begin by querying a golf database for historical club sequences for holes and/or rounds, a score for a hole and/or a round, a value of par for a hole or a course, a player's current distance to a green (e.g., a distance to a front, back, or center of a green), a club, and/or a shot number in a sequence, for a hole, and/or for a round. Data received from a golf round database can then be used in Equation 1 below to generate a recommendation:
In these embodiments, shotNo can comprise a shot number in a sequence, for a hole, and/or for a round; clubSequence(x) can comprise a previous sequence of shots for a round and/or hole; GreenDist can comprise a distance to a green (or another target); RSS(score-par) can comprise a residual sum of squares for a current score for a hole and/or round minus par for a hole and/or round; and TSS(score-par) can comprise a total sum of squares for a current score for a hole and/or round minus par for a hole and/or round. The second predictive algorithm can return an R2 value (i.e., coefficient of determination) based on a shot number the player is hitting within a 30 yard range of their current location in relation to the pin and the best club to use in correlation with their score.
This can be accomplished by using a substring query comprising a shot number to query a position in a shot sequence string. In instances where multiple clubs are returned by the substring query, a recommended club can be chosen based on a lowest difference mean from a distance-based club recommendation and a distance to the pin. In instances where a lowest difference mean club recommendation is within 5 yards of a user's current location, the distance based recommendation will be used. In instances where a lowest difference mean club recommendation is outside of 5 yards of a player's current location, the R2 sequence-based club recommendation will be used.
In many embodiments, method 200 can comprise an activity 204 of facilitating communicating a recommended golf club. In some embodiments, a recommended golf club can be communicated to a player via one or more devices in golf network 401. For example, a golf club recommendation can be communicated to a player via wearable electronic device 412 (
Turning now to the drawings,
In many embodiments, method 300 can comprise an activity 301 of storing a set of golf shots. Golf shot data can comprise data gathered from one or more devices within golf tracking network 410 (
Golf shot data can be recorded in a number of ways that can depend on the device within golf tracking network 410 (
In many embodiments, method 300 can comprise an activity 302 of compiling golf shots into a golf database. A club used for a golf shot can be recorded using one or more alphanumeric characters stored on an electronic device. For example, a driver can be assigned the character A, a 3 wood can be assigned the character B, a 5 wood can be assigned C. As a further example, irons can be assigned a number corresponding to their numerical identifier (e.g., a 1 iron can be assigned 1, a 3 iron can be assigned 3, a 9 iron can be assigned 9, etc.). As a final example, a putter can be assigned 0. An alphanumeric character for a club can also depend on how the club is identified by a player. For example, the term “lob wedge” can generally refer to a club with a loft of 58° to 60°. In this embodiment, if a player uses lob wedge as a club ID it can be assigned to the letter M, but if a player uses 60° wedge it can be assigned an S. In many embodiments, a string or sequence of club identifications can be paired with a shot number to create a string of alphanumeric characters. For example, on a hole where a player records driver, 9-iron, putt, putt, the alphanumeric string can comprise A, 1; 9, 2; 0, 3; 0, 4.
Golf shot data can be stored in a golf round database. In many embodiments, a golf round database can be created and/or stored (in whole or in part) on one or more devices of system 400 (
In many embodiments, a golf round database can comprise a golf metric database. For example, a golf metric database can be created from and/or be a portion of a golf round database. As another example, a new golf metric database can be created from a different golf metric database. A golf metric database can take a number of forms based on a desired golf metric and/or a stage in determining the golf metric. For example, a golf metric database can comprise a baseline table. In some embodiments, a baseline table can be generated at a start of round so that data needed for real time recommendations is readily available on one or more devices in golf tracking network 410 (
In many embodiments, golf shot data can be stored in a short term golf database. A short term golf database can be short lived and/or temporary. For example, a short term golf database can comprise a staging table. A staging table can comprise a temporary table (e.g., a temporary database) used to hold data for future processing. In some embodiments, a staging table can be uploaded to web server 401 (
A number of fields in a golf round database can be created as null and/or empty entries. For example, fields storing various statistics generated by system 400 (
In many embodiments, method 300 can comprise an activity 303 of determining a golf play metric. In some embodiments, activity 303 can be performed in response to a golf play recommendation request from a device within golf network 410 (
A predictive algorithm can comprise a set of steps and/or operations configured to determine a golf play metric predictive of future golf performance. A number of different predictive algorithms can be used in whole, in part, and/or in combination to produce a variety of golf play metrics. A first predictive algorithm can be useful in identifying strong and/or weak points of a golfer's game. A first predictive algorithm can begin by calculating a difference of a golfer's score and a shot number for a hole (referred to as “shotsDiff”). In many embodiments, shotsDiff can be calculated for all shot distances captured to create a shotsDiff value for various distances to a hole for a golfer. In many embodiments, a shotsDiff for each distance can be averaged to produce an average number of strokes for a golfer to hole out from the distance. A shotsDiff value for a distance (either a specific value or an average) can be tagged and/or classified in one or more classifications. In many embodiments, an offTheTee classification can be applied to a first shot for each hole, an approach classification can be applied any shot with a distance greater than a predetermined distance (e.g., 50 yards) that is not the first shot, an aroundTheGreen classification can be applied to any shot that within the predetermined distance and having location information (e.g., GPS coordinates) that is not on a green, and an onTheGreen classification can be applied to any shot having location information that is on a green. After a round is completed, a number of shots within each classification can be summed and/or stored. Golf round data for previous rounds can be called and differences between a total number of strokes in each classification can be calculated using an equation comprising:
In many embodiments, a stroke validation procedure can be performed to determine whether strokes in a classification have been missed. Stroke validation can begin by querying a golf round database for a number of shots tracked by devices in golf tracking network 410 (
In many embodiments, a difference in strokes for each classification can be normalized to give more insight on a golfer's strengths and/or weaknesses. For example, a golfer's a difference in strokes for each classification can be normalized based on a slope rating for each course. One good method of normalization can be using a z-score configured for the golf context. A Z-Score is a statistical measurement of a score's relationship to a mean in a gro'p of scores. A Z-score can reveal to a golfer when a metric is typical for their play and when a metric is atypical. For example, a z score can identify courses and/or course conditions where a golfer plays better than an average golfer. A Z score can allow a difference in standard deviations to a golfer's classification data to be taken into account by applying it to each stroke class based on the golfer's historical play data. In many embodiments, a z-score for a round can be calculated using an equation comprising:
In these embodiments, rating can comprise a slope rating, μ can comprise an average operation, and σ can comprise a standard deviation operation. In other words, a z-score for a round can comprise a difference between a golfer's current performance and an average performance of a population of golfer's (e.g., all or a portion of golfers using a compatible system) recorded rounds divided by a standard deviation of the population of golfer's recorded rounds. In many embodiments, a z-score can have its sign flipped from negative to positive to account for harder courses having a higher slope rating. A first golf play metric can then be calculated by multiplying a z-score for a round by a standard deviation for a number of shots in each classification for a distance.
A second predictive algorithm can be useful for creating and/or managing golf tournaments. In some embodiments, a second predictive algorithm can be performed after and/or in response to completing a first predictive algorithm, as described above. In other embodiments, a second predictive algorithm can be performed independently of a first predictive algorithm. A second predictive algorithm can comprise calculating a z-score for a golfer that is normalized against a field of golfers instead of their previous performance. A z-score against a field of golfers can be calculated using an equation comprising:
In these embodiments, rating can comprise a slope rating, μ can comprise an average operation, and σ can comprise a standard deviation operation. In other words, a z-score against a field can comprise a difference between a slope rating of a current round and an average slope rating of a field of golfer's recorded rounds divided by a standard deviation of the field of a golfer's recorded rounds. A tournament golf play metric can then be calculated by multiplying a z-score for a golfer against a field by a standard deviation for a number of shots for a user. This second golf play metric can then be used as a stroke adjustment for tournament play. For example, if a golfer's final raw score on their round x was 98 and their second golf play metric was a −6.24, then their adjusted tournament score would be 91.76 against the field. A first golf play metric and a second golf play metric can be used to identify cheaters. For example, if a z-score for a round is a pre-determined number of standard deviations above a historical z-score or against a field of golfers, then a golfer can be flagged as a cheater.
A third predictive algorithm can be useful in determining whether a golfer is practicing effective course management. A third predictive algorithm can begin by summing shot distances for each hole and/or round to determine a total shot length for a hole and/or round. A difference between a length of a hole and/or course can then be determined by subtracting the total shot length from a posted hole and/or course distance. In this way, a third predictive algorithm can determine how much further and/or shorter a golfer made a hole.
In many embodiments, method 300 can comprise an activity 304 of facilitating communicating a golf play recommendation. In some embodiments, a golf play recommendation can be communicated to a player via one or more devices in golf network 401. For example, a golf play recommendation can be communicated to a player via wearable electronic device 412 (
Turning ahead in the drawings,
Generally, therefore, system 400 can be implemented with hardware and/or software, as described herein. In some embodiments, part or all of the hardware and/or software can be conventional, while in these or other embodiments, part or all of the hardware and/or software can be customized (e.g., optimized) for implementing part or all of the functionality of system 400 described herein.
In some embodiments, system 400 can include a web server 401, a mobile electronic device 411, a wearable electronic device 412, a laser device 413, a speaker device 414 and/or a microphone device 415. Web server 401, mobile electronic device 411, wearable electronic device 412, laser device 413, speaker device 414 and/or microphone device 415 can each be a computer system, such as computer system 100 (
Generally speaking, mobile electronic device 411 can comprise a portable electronic device (e.g., an electronic device easily conveyable by hand by a person of average size) with the capability to present audio and/or visual data (e.g., text, images, videos, music, etc.). For example, a mobile electronic device can comprise at least one of a digital media player, a cellular telephone (e.g., a smartphone), a personal digital assistant, a handheld digital computer device (e.g., a tablet personal computer device), a laptop computer device (e.g., a notebook computer device, a netbook computer device), a wearable user computer device, or another portable computer device with the capability to present audio and/or visual data (e.g., images, videos, music, etc.).
Thus, in many examples, a mobile electronic device can comprise a volume and/or weight sufficiently small as to permit the mobile electronic device to be easily conveyable by hand. For examples, in some embodiments, a mobile electronic device can occupy a volume of less than or equal to approximately 1790 cubic centimeters, 2434 cubic centimeters, 2876 cubic centimeters, 4056 cubic centimeters, and/or 5752 cubic centimeters. Further, in these embodiments, a mobile electronic device can weigh less than or equal to 15.6 Newtons, 17.8 Newtons, 22.3 Newtons, 31.2 Newtons, and/or 44.5 Newtons. In various embodiments, a mobile electronic device can use a display that is smaller than monitor 106 (
Exemplary mobile electronic devices can comprise (i) an iPod®, iPhone®, iTouch®, iPad®, MacBook® or similar product by Apple Inc. of Cupertino, California, United States of America, (ii) a Blackberry® or similar product by Research in Motion (RIM) of Waterloo, Ontario, Canada, (iii) a Lumia® or similar product by the Nokia Corporation of Keilaniemi, Espoo, Finland, and/or (iv) a Galaxy™ or similar product by the Samsung Group of Samsung Town, Seoul, South Korea. Further, in the same or different embodiments, a mobile electronic device can comprise an electronic device configured to implement one or more of (i) the iPhone® operating system by Apple Inc. of Cupertino, California, United States of America, (ii) the Blackberry® operating system by Research In Motion (RIM) of Waterloo, Ontario, Canada, (iii) the Palm® operating system by Palm, Inc. of Sunnyvale, California, United States, (iv) the Android™ operating system developed by the Open Handset Alliance, (v) the Windows Mobile™ operating system by Microsoft Corp. of Redmond, Washington, United States of America, or (vi) the Symbian™ operating system by Nokia Corp. of Keilaniemi, Espoo, Finland. In some embodiments, mobile electronic device 411 can be integrated and/or coupled to a golf cart.
Generally speaking, wearable electronic device 412 can comprise an electronic device with the capability to present audio and/or visual data (e.g., text, images, videos, music, etc.) that is configured to be worn by a user and/or mountable (e.g., fixed) on the user of the wearable user computer device (e.g., sometimes under or over clothing; and/or sometimes integrated with and/or as clothing and/or another accessory, such as, for example, a hat, eyeglasses, a wrist watch, shoes, etc.). In many examples, a wearable user computer device can comprise a mobile electronic device, and vice versa. However, a wearable user computer device does not necessarily comprise a mobile electronic device, and vice versa.
In specific examples, a wearable user computer device can comprise a head mountable wearable user computer device (e.g., one or more head mountable displays, one or more eyeglasses, one or more contact lenses, one or more retinal displays, etc.) or a limb mountable wearable user computer device (e.g., a smart watch). In these examples, a head mountable wearable user computer device can be mountable in close proximity to one or both eyes of a user of the head mountable wearable user computer device and/or vectored in alignment with a field of view of the user.
In more specific examples, a head mountable wearable user computer device can comprise (i) Google Glass™ product or a similar product by Google Inc. of Menlo Park, California, United States of America; (ii) the Eye Tap™ product, the Laser Eye Tap™ product, or a similar product by ePI Lab of Toronto, Ontario, Canada, and/or (iii) the Raptyr™ product, the STAR 1200™ product, the Vuzix Smart Glasses M100™ product, or a similar product by Vuzix Corporation of Rochester, New York, United States of America. In other specific examples, a head mountable wearable user computer device can comprise the Virtual Retinal Display™ product, or similar product by the University of Washington of Seattle, Washington, United States of America. Meanwhile, in further specific examples, a limb mountable wearable user computer device can comprise the iWatch™ product, or similar product by Apple Inc. of Cupertino, California, United States of America, the Galaxy Gear or similar product of Samsung Group of Samsung Town, Seoul, South Korea, the Moto 360 product or similar product of Motorola of Schaumburg, Illinois, United States of America, and/or the Zip™ product, One™ product, Flex™ product, Charge™ product, Surge™ product, or similar product by Fitbit Inc. of San Francisco, California, United States of America.
Generally speaking, laser device 413 can comprise a device configured to use a light beam to measure a distance between two or more points. In some embodiments, laser device 413 can emit one or a plurality of shorts bursts of light at an object (e.g., a flagstick marking the hole in golf). Using the speed of light and the time it takes for light beam to return, laser device 413 can determine a distance between an object and laser device 413. Laser device 413 can also be referred to as a rangefinder. In many embodiments, laser device 413 can be integrated with one or more network adapter (e.g., network adapter 507 (
Generally speaking, speaker device 414 can be configured to emit sounds in response to signals from one or more of web server 401, mobile electronic device 411, wearable electronic device 412, laser device 413, speaker device 414 and/or microphone device 415. In some embodiments, speaker device 414 can be outfitted with a display screen. In many embodiments, the display screen can be configured to display various scenes in response to signals from one or more of web server 401, mobile electronic device 411, wearable electronic device 412, laser device 413, speaker device 414 and/or microphone device 415. For example, when laser device 413 measures a distance to an object, speaker device 414 can display that distance. Generally speaking, microphone device 415 can comprise an electronic device having a microphone. In some embodiments, microphone device 415 configured to receive voice commands from a user and transmit them to mobile device 411 for processing.
In many embodiments, system 400 can comprise a graphical user interface (GUI). In the same or different embodiments, all or a part of a GUI can be part of and/or displayed by one or more of mobile electronic device 411 and/or wearable electronic device 412. In some embodiments, a GUI can comprise text and/or graphics (image) based user interfaces. In the same or different embodiments, a GUI can comprise a heads up display (“HUD”). When a GUI comprises a HUD, a GUI can be projected onto a medium (e.g., glass, plastic, etc.), displayed in midair as a hologram, or displayed on a display (e.g., monitor 106 (
In many embodiments, web server 401, mobile electronic device 411, wearable electronic device 412, laser device 413, speaker device 414 and/or microphone device 415 can each comprise one or more input devices (e.g., one or more keyboards, one or more keypads, one or more pointing devices such as a computer mouse or computer mice, one or more touchscreen displays, a microphone, etc.), one or more navigation buttons (e.g., a forward button, a back button, an up button, a down button, etc.) and/or can each comprise one or more display devices (e.g., one or more monitors, one or more touch screen displays, projectors, etc.). In these or other embodiments, one or more of the input device(s) can be similar or identical to keyboard 104 (
In some embodiments, web server 401 can be in data communication through internet 420 with mobile electronic device 411. Web server 401 can host one or more websites and/or one or more databases. For example, web server 401 can host a website for displaying golf statistics, golf play metrics, virtual tournaments, and many other elements described herein. In some embodiments, mobile electronic device 411 can also be referred to as a customer device. In some embodiments, internet 420 can be an intranet that is not open to the public. In further embodiments, internet 420 can be a mesh network of individual systems. Web Server 401 (and/or the software used by such systems) can refer to a back end of system 400 operated by an operator and/or administrator of system 400 while elements within golf tracking network 401 can refer to a front end of system 400 used by one or more users. In these or other embodiments, the operator and/or administrator of system 400 can manage system 400, the processing module(s) of system 400, and/or the memory storage module(s) of system 400 using the input device(s) and/or display device(s) of system 400.
Meanwhile, elements of golf tracking network 410 can be configured to communicate with and/or store one or more databases. The one or more databases can comprise a golf tracking database configured to store current and past data about a round of golf. For example, the one or more databases can store past (e.g., historical) rounds of golf entered into the database via one or more elements in golf tracking network 410. These rounds can be tied to a unique identifier (e.g., an IP address, an advertising ID, device ID, etc.) and/or a user account. In embodiments where a user records golf data before logging into a user account, data stored in the one or more databases that is associated with a unique identifier can be merged with and/or associated with data associated with the user account. In some embodiments, data can be deleted from a database when it becomes older than a maximum age. In many embodiments, a maximum age can be determined by an administrator of system 400. In various embodiments, data collected in real-time can be streamed to a database for storage.
In many embodiments, one or more databases can be stored on one or more memory storage modules (e.g., non-transitory memory storage module(s)), which can be similar or identical to the one or more memory storage module(s) (e.g., non-transitory memory storage module(s)) described above with respect to computer system 100 (
The one or more databases can each comprise a structured (e.g., indexed) collection of data and can be managed by any suitable database management systems configured to define, create, query, organize, update, and manage database(s). Exemplary database management systems can include MySQL (Structured Query Language) Database, PostgreSQL Database, Microsoft SQL Server Database, Oracle Database, SAP (Systems, Applications, & Products) Database, IBM DB2 Database, and/or NoSQL Database.
Meanwhile, communication between web server 401, devices in golf tracking network 410, and/or the one or more databases can be implemented using any suitable manner of wired and/or wireless communication. Accordingly, system 400 can comprise any software and/or hardware components configured to implement the wired and/or wireless communication. Further, the wired and/or wireless communication can be implemented using any one or any combination of wired and/or wireless communication network topologies (e.g., ring, line, tree, bus, mesh, star, daisy chain, hybrid, etc.) and/or protocols (e.g., personal area network (PAN) protocol(s), local area network (LAN) protocol(s), wide area network (WAN) protocol(s), cellular network protocol(s), powerline network protocol(s), etc.). Exemplary PAN protocol(s) can comprise Bluetooth, Zigbee, Wireless Universal Serial Bus (USB), Z-Wave, etc.; exemplary LAN and/or WAN protocol(s) can comprise Institute of Electrical and Electronic Engineers (IEEE) 802.3 (also known as Ethernet), IEEE 802.11 (also known as WiFi), etc.; and exemplary wireless cellular network protocol(s) can comprise Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Evolution-Data Optimized (EV-DO), Enhanced Data Rates for GSM Evolution (EDGE), Universal Mobile Telecommunications System (UMTS), Digital Enhanced Cordless Telecommunications (DECT), Digital AMPS (IS-136/Time Division Multiple Access (TDMA)), Integrated Digital Enhanced Network (iDEN), Evolved High-Speed Packet Access (HSPA+), Long-Term Evolution (LTE), WiMAX, etc. The specific communication software and/or hardware implemented can depend on the network topologies and/or protocols implemented, and vice versa. In many embodiments, exemplary communication hardware can comprise wired communication hardware including, for example, one or more data buses, such as, for example, universal serial bus(es), one or more networking cables, such as, for example, coaxial cable(s), optical fiber cable(s), and/or twisted pair cable(s), any other suitable data cable, etc. Further exemplary communication hardware can comprise wireless communication hardware including, for example, one or more radio transceivers, one or more infrared transceivers, etc. Additional exemplary communication hardware can comprise one or more networking components (e.g., modulator-demodulator components, gateway components, etc.).
Generally speaking, golf tracking network 410 can comprise electronic devices within a decentralized network architecture. In some embodiments, data processing, content delivery, and/or data storage in golf tracking network 410 can be located closer to the end-users operating one or more devices in golf tracking network 410 (referred to as being at an edge of network 400) as opposed to having these functions centralized for performance in data centers (e.g., web server 401). Generally speaking, mobile electronic device 411 can comprise a device and/or software in golf tracking network 410 that acts as a bridge between devices in golf tracking network 410 and other networks and/or devices located outside of golf tracking network 410. In many embodiments, mobile electronic device 411 can aggregate data from one or more of devices 412-415, perform some level of processing, and then transmit the processed data to devices outside of golf tracking network 410. In some embodiments, mobile electronic device 411 can provide encryption and firewall protection for devices in golf tracking network 410 as well as filtering and data reduction to reduce the amount of data transmitted through internet 420 and/or to each device 412-415. In some embodiments, golf tracking network 410 can comprise a peer to peer (i.e., P2P) network. In these embodiments, devices in golf tracking network 410 can communicate directly with each other via a wired and/or wireless communication protocol. In some embodiments, communication protocols between devices 412-415 within golf tracking network 410 can facilitate tracking of a golf round and/or a virtual caddy service.
Generally speaking, GPS 430 can be seen as a satellite based location system configured to provide location and time information. From a broad overview, GPS 430 can operate by exchanging signals with one or more devices within golf tracking network 410 and then calculating a distance between satellites in GPS 430 and the one or more devices. This distance can then be used in a process known as trilateration to determine a location of the one or more devices on Earth's surface.
Turning ahead in the drawings,
Generally speaking, system 500 can be implemented with hardware and/or software. Part or all of the hardware and/or software implemented in system 500 can be conventional or part or all of the hardware and/or software can be customized (e.g., optimized) for implementing part or all of the functionality of system 500 described herein. When implemented as software, one or more elements of system 500 can be emulated (e.g., reproduced functionally and/or by action via software). For example, a virtual machine having one or more elements described below can be instantiated on one or more elements of system 400 (
When implemented as hardware, one or more of the elements of system 500 can be coupled together using one or more chassis configured to hold one or more circuit boards and/or serial bus(es). These boards and buses allow the various elements of system 500 to communicate amongst each other to accomplish their intended purposes. While elements of system 500 are described below individually, each can also be integrated into one or more chassis, circuit boards, and/or buses of system 500. On the other hand, one or more elements of system 500 can also be removable (e.g., via a PCI slot on a motherboard and/or a USB port). One or more elements of system 500 may also be integrated and/or embedded in a different machine or manufacture. Although specific constructions of boards and buses within system 500 are not shown, it should be understood that their construction can be tied to a form factor selected for system 500.
System 500 can take a number of different form factors based on its implementation. For example, system 500 can be implemented as a desktop computer, a laptop computer, a mobile device, and/or a wearable device as described herein. Further, system 500 can comprise a single computer, a single server, a cluster or collection of computers or servers, or a cloud of computers or servers. Typically, a cluster or collection of servers can be used when the demand on 500 exceeds the reasonable capability of a single server or computer, when a distributed structure for system 500 is desired, and/or when parallel computing is desired.
In many embodiments, system 500 can comprise a processor 501, a memory storage 502, an input device 503, a graphics adapter 504, a display device 505, a graphical user interface (GUI) 506, a network adapter 507, a GPS 508, a laser 509, and/or an audio output 510.
Generally speaking, processor 501 can comprise any type of computational circuit. For example, processor 501 can comprise a microprocessor, a microcontroller, a controller, a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a graphics processor, a digital signal processor, application specific integrated circuits (ASICs), etc. Processor 501 can be configured to implement (e.g., run) computer instructions (e.g., program instructions) stored on memory devices in system 500. At least a portion of the program instructions, stored on these devices, can be suitable for carrying out at least part of the techniques and methods described herein. Architecture and/or design of processor 501 can be compliant with any of a variety of commercially distributed architecture families. Processor 501 can be configured to perform parallel computing in combination with other elements of system 500 and/or additional processors. Generally speaking, parallel computing can be seen as a technique where multiple elements of system 500 are used to perform calculations simultaneously. In this way, complex and repetitive tasks (e.g., training a predictive algorithm) can be performed faster and with less processing power than without parallel computing.
Generally speaking, memory storage 502 can comprise non-volatile memory (e.g., read only memory (ROM)) and/or volatile memory (e.g., random access memory (RAM)). The non-volatile memory can be removable and/or non-removable non-volatile memory. Meanwhile, RAM can comprise dynamic RAM (DRAM), static RAM (SRAM), or some other type of RAM. Further, ROM can include mask-programmed ROM, programmable ROM (PROM), one-time programmable ROM (OTP), erasable programmable read-only memory (EPROM), electrically erasable programmable ROM (EEPROM) (e.g., electrically alterable ROM (EAROM) and/or flash memory), or some other type of ROM. Memory storage 502 can comprise non-transitory memory and/or transitory memory. All or a portion of memory storage 502 can be referred to as memory storage module(s) and/or memory storage device(s). Memory storage 502 can have a number of form factors when used in system 500. For example, memory storage 502 can comprise a magnetic disk hard drive, a solid state hard drive, a removable USB storage drive, a RAM chip, etc.
Memory storage 502 can be encoded with a wide variety of computer code configured to operate system 500. For example, portions of memory storage 502 can be encoded with a boot code sequence suitable for restoring system 500 to a functional state after a system reset. As another example, portions of memory storage 502 can comprise microcode such as a Basic Input-Output System (BIOS) operable with elements of system 500. Further, portions of the memory storage 502 can comprise an operating system (e.g., a software program that manages the hardware and software resources of a computer and/or a computer network). The BIOS can be configured to initialize and test components of system 500 and load the operating system. Meanwhile, the operating system can perform basic tasks such as, for example, controlling and allocating memory, prioritizing the processing of instructions, controlling input and output devices, facilitating networking, and/or managing files. Exemplary operating systems can comprise software within the Microsoft® Windows®, Mac OS®, Apple® iOS®, Google® Android®, UNIX®, and/or Linux® series of operating systems.
Input device 503 can be configured to allow a user to interact and/or control elements of system 500. A number of devices and be used as input device 503 alone or in combination. For example, input device 503 can comprise a keyboard, a mouse, a touch screen, a microphone, a camera, etc. Input device 503 can be coupled to other elements of system 500 in a number of ways. For example, input device 503 can be coupled via a Universal Serial Bus (USB) port in a wired and/or wireless manner or via a specialized port (e.g, a PS/2 port) depending on the specific device. User inputs through input device 503 can come in a number of forms. For example, when input device 503 comprises a microphone, user input can be received via voice commands and/or a speech to text algorithm. As another example, when input device 503 comprises a camera, user input can be received via bodily movements that are captured and interpreted by system 500.
Generally speaking, graphics adapter 504 can be configured to receive and/or generate one or more elements for display on display device 505. Exemplary embodiments of graphics adapter 504 can comprise devices within the NVIDIA® GeForce® and/or the AMD® RX® series of video cards. In many embodiments, a chipset present on graphics adapter 504 can be configured to perform similar, simultaneous computations in a manner more efficient than other chipsets. For example, rendering a 3D scene on graphics adapter 504 can involve repeated geometric calculations performed in parallel to generate the 3D scene. As another example, repeated mathematical calculations involved in training a predictive algorithm can be performed in parallel on graphics adapter 504 more efficiently thank on processor 501. Display device 505 can receive and display signals from graphics adapter 505. A number of devices can be used as display device 505. For example, display device 505 can comprise a computer monitor, a television, a touch screen display, a heads up display (HUD) medium, etc.
Network adapter 507 can be configured to connect system 500 to a computer network by wired communication (e.g., a wired network adapter) and/or wireless communication (e.g., a wireless network adapter). Network adapter 507 can be integrated into one or more chassis, circuit boards, and/or buses or be removable (e.g., via a PCI slot on a motherboard). For example, network adapter 507 can be implemented via one or more dedicated communication chips configured to receive various protocols of wired and/or wireless communications.
GPS 508 can comprise a chipset and/or module configured to communicate with a satellite based location system configured to provide location and time information. (e.g., GPS 430 (
Although systems and methods for a golf tracking network have been described with reference to specific embodiments, it will be understood by those skilled in the art that various changes may be made without departing from the spirit or scope of the disclosure. Accordingly, the disclosure of embodiments is intended to be illustrative of the scope of the disclosure and is not intended to be limiting. It is intended that the scope of the disclosure shall be limited only to the extent required by the appended claims. For example, to one of ordinary skill in the art, it will be readily apparent that any element of
All elements claimed in any particular claim are essential to the embodiment claimed in that particular claim. Consequently, replacement of one or more claimed elements constitutes reconstruction and not repair. Additionally, benefits, other advantages, and solutions to problems have been described with regard to specific embodiments. The benefits, advantages, solutions to problems, and any element or elements that may cause any benefit, advantage, or solution to occur or become more pronounced, however, are not to be construed as critical, required, or essential features or elements of any or all of the claims, unless such benefits, advantages, solutions, or elements are stated in such claim.
Moreover, embodiments and limitations disclosed herein are not dedicated to the public under the doctrine of dedication if the embodiments and/or limitations: (1) are not expressly claimed in the claims; and (2) are or are potentially equivalents of express elements and/or limitations in the claims under the doctrine of equivalents.
This application claims priority to U.S. Provisional Application No. 63/505,347, filed May 31, 2023, and entitled SYSTEM AND METHOD FOR A GOLF TRACKING NETWORK. This application also claims priority to U.S. Provisional Application No. 63/583,182, filed Sep. 15, 2023, and entitled SYSTEM AND METHOD FOR GOLF CLUB RECORDATION AND RECOMMENDATION. This application additionally claims priority to U.S. Provisional Application No. 63/583,168, filed Sep. 15, 2023, and entitled SYSTEM AND METHOD FOR GENERATING GOLF PLAY RECOMMENDATIONS. U.S. Provisional Application No. 63/505,347, U.S. Provisional Application No. 63/583,182, and U.S. Provisional Application No. 63/583,168 are herein incorporated by this reference in their entirety.
Number | Date | Country | |
---|---|---|---|
63505347 | May 2023 | US | |
63583182 | Sep 2023 | US | |
63583168 | Sep 2023 | US |