BACKGROUNDThe present invention generally relates to golf clubs and, more particularly, to a system and method for recommending an optimal golf club grip for an individual using dynamic indicators on a smart grip.
Golfers of all skill levels have experienced times when a shot goes astray. Some lesser experienced golfers find this is the case a majority of the time. There are hundreds of elements that factor into the trajectory and distance of a shot and a significant part of those are found in the grip position of the club, i.e., the position of the user's hands holding the golf club during the swing. Golfers frequently find that there are too many dynamics and “things to remember” to affect a shot the way they want it. The way an individual holds the golf club in their hands, in particular the grip position of their hands on the golf club grip, is a significant factor that affects the flight of the ball for any given golf swing.
SUMMARYIn a first aspect of the invention, there is a method that includes: obtaining, by a computer device, ball lie data; determining, by the computer device, an optimal grip position for a golf club based on the ball lie data and historical shot data of a user; and transmitting, by the computer device, data defining the optimal grip position to a smart grip attached to a shaft of the golf club.
In another aspect of the invention, there is a computer program product that includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a computing device to cause the computing device to perform the following steps for a plurality of golf shots by a user: determine ball lie data of a respective one of the plurality of golf shots; determine a golf club used for the respective one of the plurality of golf shots; determine a grip position of a user's hands on a grip of the golf club during the respective one of the plurality of golf shots; determine a result of the respective one of the plurality of golf shots; and save an entry in a database for the respective one of the plurality of golf shots, wherein the entry contains data defining the ball lie data, the golf club, the grip position, and the result.
In another aspect of the invention, there is a smart grip system that includes: a grip material structured and arranged to fit on an end of a shaft of a golf club; a processor embedded in the grip material; an array of visual indicators connected to the grip material and operatively connected to the processor; and an array of pressure sensors connected to the grip material and operatively connected to the processor; wherein the processor is configured to selectively activate a subset of the array of visual indicators to visually indicate a suggested grip position for a user's hands on the grip material.
BRIEF DESCRIPTION OF THE DRAWINGSThe present invention is described in the detailed description which follows, in reference to the noted plurality of drawings by way of non-limiting examples of exemplary embodiments of the present invention.
FIG. 1 depicts a computing infrastructure according to an embodiment of the present invention.
FIG. 2 shows a block diagram of an exemplary system in accordance with aspects of the invention.
FIGS. 3 and 4 show exemplary grip indications in accordance with aspects of the invention.
FIGS. 5-7 show flowcharts of methods in accordance with aspects of the invention.
DETAILED DESCRIPTIONThe present invention generally relates to golf clubs and, more particularly, to a system and method for recommending an optimal golf club grip for an individual using dynamic indicators on a smart grip. According to aspects of the invention, a smart grip for a golf club includes numerous visual indicators (e.g., LED lights) below the grip material which can be programmatically lit to indicate an ideal hand/grip position for a particular type of golf swing for an individual golfer. In embodiments, the smart grip communicates with a computing device of the individual to record shot metrics. The computing device uses a database of the individual's historical shooting metrics to determine an optimal grip position for that individual in that type of approach, and then sends a signal to the indicators of the smart grip to light up and visually indicate the suggested optimal hand grip position. The database may also include historical shooting metrics for other users, which would enable the user to select another user's data (e.g., a golf instructor or professional) to have the smart grip indicate how the other user grips the club to accomplish a specific shot.
In embodiments the computing device is a mobile computing device such as a smartphone or tablet computer. The system utilizes wireless communication between the smartphone and the smart grip. An application (e.g., an app) on the smartphone records the individual's current distance to the green, lie, and the approach angle. The application has access to a database of the individual's historic shooting metrics (e.g., distance, straight, slice, hook, loft) for respective combinations of swing parameters (e.g., club, grip position, lie). The application uses the database to determine an optimal club and grip position on the club to provide the highest probability (based on this individual's historic shooting results) of achieving a shot that satisfies the current distance to the green, lie, and the approach angle. The application then causes the smartphone to send a signal to the selected club that causes a subset of the indicators in the smart grip of the selected club to light up to indicate the determined grip position. The system may be operated in a learning mode to populate the database of the individual's historic shooting metrics. The system may also accept user input of an intent for a particular shot (e.g., high loft) with a particular club (e.g., seven iron), and use the indicated intent in determining the optimal club and grip position on the club.
In additional embodiments, the system may be configured to compare the individual's current ball lie data (e.g., distance to the green, lie, and approach angle) to historical shooting metrics of other golfers who had the same (or substantially similar) ball lie data. The historical shooting metrics of other users may be used to determine an optimum grip for the current user's ball lie data by analyzing grips used by other users for historical shots for the same ball lie data, and assigning higher weight to grips that resulted in more successful historic shots and lower weight to grips that resulted in less successful historic shots. In embodiments, the historical shooting metrics of other users may be filtered by club brand and/or model, i.e., to match the club brand and/or model used by the current user.
The present invention may be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
Referring now toFIG. 1, a schematic of an example of a computing infrastructure is shown.Computing infrastructure10 is only one example of a suitable computing infrastructure and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the invention described herein. Regardless,computing infrastructure10 is capable of being implemented and/or performing any of the functionality set forth hereinabove.
Incomputing infrastructure10 there is a computer system (or server)12, which is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use withcomputer system12 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.
Computer system12 may be described in the general context of computer system executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types.Computer system12 may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.
As shown inFIG. 1,computer system12 incomputing infrastructure10 is shown in the form of a general-purpose computing device. The components ofcomputer system12 may include, but are not limited to, one or more processors or processing units (e.g., CPU)16, asystem memory28, and abus18 that couples various system components includingsystem memory28 toprocessor16.
Bus18 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.
Computer system12 typically includes a variety of computer system readable media. Such media may be any available media that is accessible bycomputer system12, and it includes both volatile and non-volatile media, removable and non-removable media.
System memory28 can include computer system readable media in the form of volatile memory, such as random access memory (RAM)30 and/orcache memory32.Computer system12 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only,storage system34 can be provided for reading from and writing to a nonremovable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected tobus18 by one or more data media interfaces. As will be further depicted and described below,memory28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the invention.
Program/utility40, having a set (at least one) ofprogram modules42, may be stored inmemory28 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment.Program modules42 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.
Computer system12 may also communicate with one or moreexternal devices14 such as a keyboard, a pointing device, adisplay24, etc.; one or more devices that enable a user to interact withcomputer system12; and/or any devices (e.g., network card, modem, etc.) that enablecomputer system12 to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces22. Still yet,computer system12 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) vianetwork adapter20. As depicted,network adapter20 communicates with the other components ofcomputer system12 viabus18. It should be understood that although not shown, other hardware and/or software components could be used in conjunction withcomputer system12. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.
FIG. 2 shows a block diagram of an exemplary system in accordance with aspects of the invention. The system includes asmart grip70 that is configured to be physically connected to agolf club72 taking the place of a conventional grip on thegolf club72. In implementations it is envisioned that a respectivesmart grip70 will be provided on each non-putter style golf club in a golfer's bag, e.g., on all the wood and irons. In embodiments, thesmart grip70 includes agrip material74, a processor76 (e.g., a computer microprocessor), a power source78 (e.g., a battery), aradio communication antenna80, an array of pressure sensors82 (indicated by hexagons inFIG. 2), and an array of indicators84 (indicated by triangles inFIG. 2). Thesmart grip70 may also include other sensors such as anaccelerometer86.
Thegrip material74 may be any conventional or later developed golf club grip material such as natural rubber or synthetic rubber. Thegrip material74 may have a hollow cylindrical shape that is configured to fit snugly on an end of a shaft of a golf club. In embodiments, theindicators84 are on, or embedded in, thegrip material74 at a plurality of defined locations around the grip. Theindicators84 may comprise light emitting diodes (LEDs) or other visual indicators that can be selectively activated and deactivated (e.g., turned on and off). In one example, theindicators84 are sandwiched between two layers of thegrip material74 with the outer layer of the grip material being sufficiently thin such that anindicator84 that is activated (e.g., emitting light) can be seen through the outer layer of the grip material. A location of eachindicator84 may be defined in a coordinate system relative to thesmart grip70 and provided to theprocessor76.
In embodiments, each of theindicators84 is operatively connected to theprocessor76 and powered by thepower source78. Theprocessor76 controls (e.g., selectively turns on and off) eachindividual indicator84 independent of the other indicators. Theprocessor76 is configured to selectively activate (e.g., turn on) a subset of theindicators84 to illuminate positions on thesmart grip70 where the user is suggested to place their fingers and thumbs. Theprocessor76 can activate different subsets of theindicators84 to indicate different grip positions. In this manner, thesmart grip70 can dynamically change different indicated grip positions on a same golf club. Moreover, pluralsmart grips70 may be used on plural golf clubs (e.g., onesmart grip70 per golf club) to create a system that can dynamically indicate an optimal grip position on a selected club for any given golf shot.
FIGS. 3 and 4 depict implementations of asmart grip70 dynamically indicating different grip positions on a golf club.FIG. 3 shows thesmart grip70 with a first subset of theindictors84′ activated to indicate a first grip position on the golf club.FIG. 4 shows the samesmart grip70 with a second subset ofindicators84″ activated to indicate a second grip position on the same golf club, the first grip position being different than the second grip position. In embodiments, the activatedindicators84 visually indicate locations where the user should place their finger tips and thumb on the surface of thesmart grip70. Eachindicator84 may be a dual color LED such that a first color light can be emitted byindicators84 for finger locations, and a second color light (different from the first color) can be emitted by anindicator84 for a thumb location.
Referring back toFIG. 2, according to aspects of the invention thesmart grip70 also includes a plurality ofpressure sensors82 on, or embedded in, thegrip material74 at a plurality of defined locations around the grip. Thepressure sensors82 may piezoelectric pressure sensors, for example. Eachpressure sensor82 is operatively connected to theprocessor76 and powered by thepower source78. The array ofpressure sensors82 is configured to detect the locations of the user's hands on thesmart grip70 when the user grips the club, e.g., during a golf swing. A location of eachpressure sensor82 may be defined in a coordinate system relative to thesmart grip70 and provided to theprocessor76.
According to aspects of the invention, thesmart grip70 communicates viaradio communication antenna80 with auser device100, which may be any suitable mobile computer device such as a smartphone or tablet computer. Theuser device100 may comprise one or more elements of thecomputer system12 as shown inFIG. 1. For example, theuser device100 may comprise aCPU16, amemory28, and adisplay24. Thememory28 may store applications including agrip app106 and amap app108 that are executed by theprocessing unit16. Thegrip app106 andmap app108 may be similar toprogram module42 ofFIG. 1. Thememory28 may also store adatabase110 of a user's historical shooting metrics. Thedisplay24 may comprise a touch screen display that outputs an electronic visual display and that receives user input via stylus and/or finger touch. Theuser device100 may also include aradio communication antenna112 and be configured for wireless communication via at least one of cellular, WiFi, Bluetooth, and near field communication (NFC). Theuser device100 may also include alocation determining module114, such as a GPS (global positioning system) receiver.
In accordance with aspects of the invention, thegrip app106 determines an optimal grip position on a golf club for the user, and transmits data to thesmart grip70 that causes theprocessor76 of thesmart grip70 to activate a subset of theindictors84 that correspond to the determined optimal grip position (e.g., as shown inFIGS. 3 and 4). In embodiments, thegrip app106 determines the optimal grip position using data that defines the golf ball lie and data of the user's historic shooting metrics.
The data that defines the golf ball lie (also called ball lie data) can include one or more of: ball location, distance from the ball location to the green, ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand). In embodiments, the ball lie data is automatically obtained via theuser device100. For example, themap app108 may store map data that defines a map of the golf course on which the user is currently playing golf. The map data may define terrain (e.g., flat lie, uphill lie, downhill lie, side hill lie) and surface (e.g., fairway, rough, sand) for locations on the golf course. The map data may also define a location of the green for each hole of the golf course. Thelocation determining module114 of theuser device100 may be used to determine a GPS location of the golf ball lie. Using this GPS location of the golf ball lie, themap app108 may use the map data to automatically determine a distance from the ball location to the green, ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand). Themap app108 may pass the determined ball lie data to thegrip app106 for use in determining the optimal grip position.
In a manual embodiment, the ball lie data may be determined manually via user input. For example, thegrip app106 may display a user interface on the display of the user device and prompt the user to manually input data that defines distance from the ball location to the green, ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand). For example, the user may tap a location on a map displayed in a user interface of theuser device100 to indicate the desired location of the golf ball on the golf course, and this location may be used as part of the ball lie data. Moreover, the user may provide input to the user interface to indicate the ball lie angle and the ball lie surface.
In a hybrid embodiment, the ball lie data may be determined automatically in the manner already described herein and then confirmed or adjusted manually via user input. For example, upon receiving the automatically determined ball lie data from themap app108, thegrip app106 may display the determined ball lie data in a user interface on a display of theuser device100. The user interface may be configured to permit the user to provide an input to confirm (e.g., accept) the determined ball lie data or to change one or more parameters of the ball lie data. For example, the automatically determined ball lie data may indicate that the ball is on a side hill lie, and this may be displayed on theuser device100. The user may determine, however, that the ball is actually on a flat lie, and provide input to theuser device100 to change the ball lie data from side hill lie to flat lie. The user may change the data for each of the ball location and the lie surface in a similar manner. When the user confirms the ball lie data including any changes, thegrip app106 then uses the user confirmed data as the ball lie data.
In embodiments, upon determining the ball lie data, thegrip app106 compares the ball lie data to the user's historical shooting metrics, which may be stored in a database on theuser device100. The database may categorize the user's own historic (past) golf shots based upon ball lie data, club data, grip position data, and resultant shot metrics. For example, the database may contain plural entries, with each respective entry corresponding to a respective historic (past) golf shot performed by this user. A respective database entry may include ball lie data for a historic golf shot, including ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand). The same entry may also include club data for the same historic golf shot, the club data indicating which club was used for the golf shot. The same entry may also include grip position data for the same historic golf shot, the grip position data indicating the locations of the user's hands on the smart grip, determined in a manner described herein. The same entry may also include resultant shot metrics data for the same historic golf shot, the resultant shot metrics data defining how far the ball traveled (shot distance) for this shot. The resultant shot metrics data may also define whether the shot was one of straight, slice, and hook. The resultant shot metrics data may also define an amount of loft for the shot, e.g., low loft, medium loft, high loft. The resultant shot metrics data may also define a strength of swing, e.g., half swing or full swing. The resultant shot metrics data may also define an amount of divot for the shot, e.g., no divot, small divot, large divot.
According to aspects of the invention, thegrip app106 is programmed to determine an optimal club and an optimal grip position based on the ball lie data and the user's historical shooting metrics. In one exemplary embodiment, thegrip app106 identifies a subset of the database entries that all have a same ball lie angle and ball lie surface as the current ball lie data. Thegrip app106 may then categorize the subset of entries into club sets according to which club was used for each historic shot, e.g., based on the club data for each entry. For example, when the current ball lie data is for a flat lie in the fairway, thegrip app106 may identify from the database all the historic shots in which the user swung a three iron from a flat lie in the fairway, all the historic shots in which the user swung a four iron from a flat lie in the fairway, all the historic shots for which the user swung a five iron from a flat lie in the fairway, and so on until all of the historic shots matching the current lie and surface are categorized according to club.
After categorizing the historic shots into club sets according to the club used for each shot, thegrip app106 may then categorize each club set into grip sets according to grip position that was used for each historic shot, e.g., based on the grip position data for each entry. For example, for the historic shots in which the user swung a three iron from a flat lie in the fairway, thegrip app106 may categorize these shots according to a first grip position, a second grip position, and a third grip position. Similarly, for the historic shots in which the user swung a four iron from a flat lie in the fairway, thegrip app106 may categorize these shots according to a fourth grip position and a fifth grip position, and so on until all the club sets have been categorized according to grip position data.
After categorizing the historic shots by club and then grip position, thegrip app106 may determine an average shot result for each grip category for each club, based on the resultant shot metrics data from the database. For example, thegrip app106 may determine an average shot distance, average shot direction (e.g., straight, slice, hook), and an average shot loft (low, medium, high) for the group of historic shots in which the user swung a three iron from a flat lie in the fairway using the first grip position. Similarly, thegrip app106 may determine an average shot distance, average shot direction, and an average shot loft for the group of historic shots in which the user swung a three iron from a flat lie in the fairway using the second grip position. Similarly, thegrip app106 may determine an average shot distance, average shot direction, and an average shot loft for the group of historic shots in which the user swung a three iron from a flat lie in the fairway using the third grip position. Similarly, thegrip app106 may determine an average shot distance, average shot direction, and an average shot loft for the group of historic shots in which the user swung a four iron from a flat lie in the fairway using the fourth grip position. Similarly, thegrip app106 may determine an average shot distance, average shot direction, and an average shot loft for the group of historic shots in which the user swung a four iron from a flat lie in the fairway using the fifth grip position. Thegrip app106 can repeat the process until an average shot distance, average shot direction, and an average shot loft are determined for each grip set for each club set.
Still referring to this exemplary embodiment, thegrip app106 then determines an optimal club and grip position for the current ball lie data based on the determined average shot distance, average shot direction, and average shot loft are for each grip set for each club set for all historic shots having the same ball lie angle and ball lie surface as the current ball lie data. For example, thegrip app106 may be programmed by default to filter out club and grip combinations that have a determined average shot direction of hook or slice. Then, from the remaining club and grip combinations that have a determined average shot direction of straight, thegrip app106 may be programmed to determine the club and grip combination that has a determined average shot distance that most closely matches the distance to green of the ball lie data for the current shot. For example, thegrip app106 may determine that for the ball lie conditions of the current shot, using the four iron with the fifth grip position is the optimal combination of club and grip.
In embodiments, the database (e.g., database110) may also include historical shooting metrics for other users different than the current user. The historical shooting metrics for other users may be categorized in the same manner as the historical shooting metrics. For example, the historical shooting metrics for other users may include ball lie data, grip position, and resultant shot metrics for shots that have been made by other users. In this manner, thegrip app106 may determine an optimal club and grip position for the current ball lie data using the other users' historical shooting metrics. When historical shooting metrics of other users is utilized in this manner, thegrip app106 may optionally be configured to only use historical shooting metrics of other users that used a same brand and/or model of golf club as the current user. An exemplary implementation of using historical shooting metrics of other users is for thegrip app106 to provide a suggested club and grip to the current user, e.g., upon request of the current user, where the suggested club and grip is determined based on how other users have successfully handled the ball lie data faced by the current user.
In embodiments, upon determining the optimal club and grip combination for the ball lie data for the current shot, thegrip app106 transmits data to thesmart grip70 of the selected club. The transmitted data causes theprocessor76 of thesmart grip70 to activate a subset of theindicators84 to light up and identify the determined optimal grip position. Continuing the example in which the four iron with the fifth grip position is the determined optimal combination of club and grip, thegrip app106 would cause theuser device100 to transmit data to thesmart grip70 on the four iron, and this data would cause theprocessor76 in thesmart grip70 on the four iron to activate a subset of theindicators84 to light up in positions that correspond to the fifth grip position. In this manner, implementations of the invention may be used to provide a suggested optimal golf club and grip position for a current ball lie, where the suggested optimal golf club and grip position are personalized to the user based on the user's own past shot history.
In accordance with additional aspects of the invention, thegrip app106 may determine an optimal grip for a user-selected club based on an intent that is input by the user. For example, the user may select their club (without a recommendation from the grip app106) and input an intent for the current shot via a user interface on theuser device100. The intent may alternatively be entered via an input mechanism on thesmart grip70, such as a series of buttons or touch sensitive inputs on the smart grip that can be used to indicate one of: hook, slice, low loft, and high loft. The intent may be, for example, high loft (e.g., to shot over a tree), low loft (e.g., to shoot under tree), slice (e.g., to curve around an obstacle), hook (e.g., to curve around an obstacle). Thegrip app106 may use the intent in the determination of the optimal grip for this user-selected club, along with the ball lie data and the historic shot data as described herein. For example, when the user selects their four iron and provides intent for a slice, thegrip app106 will analyze the historic shot metrics based on the current ball lie data to determine a hand grip for the four iron that produces a slice for the current ball lie and distance to green.
According to aspects of the invention, the database is populated with data from the user's historic (past) golf shots. In embodiments thegrip app106 is configured with a learning mode for capturing the user's historic shot data. When the user performs a shot in the learning mode, thegrip app106 first obtains the ball starting location (e.g., GPS location), ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand) in one of the manners described herein (e.g., automated, manual, hybrid). This data is saved in a database entry for this golf shot.
Thegrip app106 determines the golf club being used for the current shot. In an automated embodiment, thegrip app106 uses data from the accelerometers of all thesmart grips70 to determine which club is moving and which clubs are stationary, and determines that the moving club is the club being used for the current shot. In a manual embodiment, the user may provide input to a user interface of theuser device100 to indicate which club is being used for the current shot. This data is saved in the database entry for this golf shot.
Thegrip app106 also determines a grip position of the user's hands on the club for the current shot. In embodiments, theprocessor76 in thesmart grip70 of the club being used receives data from thepressure sensors82 in thesmart grip70 and transmits data to theuser device100. The pressure sensor data (and the defined location of each respective pressure sensor82) is used by thegrip app106 to determine a grip position of the user's hands on thesmart grip70. This data is saved in the database entry for this golf shot.
Still referring to the learning mode, when the user swings the club for the current golf shot, the data from theaccelerometer86 may be transmitted to theuser device100 and used by thegrip app106 to determine a strength of swing (e.g., half swing or full swing) and an amount of divot for the shot (e.g., no divot, small divot, large divot). Alternatively, the user may provide input, via a user interface on theuser device100, that defines the strength of swing and amount of divot. This data is saved in the database entry for this golf shot.
Still referring to the learning mode, thegrip app106 determines a distance, direction (e.g., straight, slice, hook), and loft (e.g., low, medium, high) for the current shot. These may be determined in automated or manual fashion. In a manual embodiment, the user inputs data via a user interface on theuser device100, the user input defining the distance, direction, and loft for the current shot. In an automated embodiment, the distance may be determined from the GPS starting location and GPS ending location of the ball for the current shot. The GPS starting location and the GPS ending location may be determined by theuser device100 since theuser device100 is with the user at the starting location and is also is with the user when the user travels to their ball after the shot, i.e., at the ending location. The golf ball may also be equipped with a GPS sensor and an accelerometer that communicate with theuser device100 to provide data that can be used to determine distance, direction, and loft. Starting and ending location can also be input by the user via themap app108, e.g., by the user touching a display of a map of the golf course to indicate the locations. The distance, direction, and loft data is saved in the database entry for this golf shot.
In embodiments, when there is an insufficient amount of data in the database to provide a recommendation for an optimal club and grip, thegrip app106 may determine an optimal club and grip using data associated with the user. For example, thegrip app106 may use the user's height and length of the user's golf club to calculate a grip position for the club.
FIGS. 5-7 depict exemplary methods in accordance with aspects of the invention. The steps of the methods may be performed in the system ofFIG. 2 and are described with reference to the elements and steps described with respect toFIG. 2.
FIG. 5 shows a method of capturing data in the learning mode in accordance with aspects of the invention. Atstep501, the user selects a club. Atstep502, the system (e.g., thegrip app106 running on the user device100) determines the club selected by the user. Step502 may be performed in an automated or manual manner, e.g., as described with respect toFIG. 2. For example, the user may input data to theuser device100 indicating which club is being used. Alternatively, thegrip app106 may leverage data from theaccelerometer86 in thesmart grip70 to determine which club is moving, i.e., being used.
Atstep503, the system determines the ball lie data, which may include at least one of: ball location, ball lie angle, and ball lie surface. This data may be determined automatically by the system or via user input, as described with respect toFIG. 2.
Atstep504, the system determines the user's grip location on thesmart grip70 of the club being swing during the golf shot. As described with respect toFIG. 2, theprocessor76 of thesmart grip70 of the club being swung receives data from the array ofpressure sensors82 in thesmart grip70 and transmits this data to thegrip app106 on theuser device100. Thegrip app106 can use the data from each of thepressure sensors82 and the pre-defined location of each of thepressure sensors82 in thesmart grip70 to determine a grip position of the user during the swing of the golf club.
Atstep505, the system determines results of the golf shot. The results may include at least one of distance of ball travel, direction of ball travel (e.g., straight, slice, hook), and loft of ball travel (e.g., low, medium, high) for the golf shot. The results may also include one or more of swing speed and amount of divot for the golf shot. This data may be determined in the manner described with respect toFIG. 2, e.g., in a manual or automated manner.
Atstep506, the system stores the data for this swing (e.g., the data obtained at steps502-505) as an entry in thedatabase110. In this manner, the database is populated with an entry for this swing, and this entry may be used in a subsequent determination of an optimal club and grip for a golf shot for this user.
The steps of the method ofFIG. 5 may be repeated many times at a practice facility (e.g., a driving range) to accumulate a large amount of historic shot data in the database. The steps of the method ofFIG. 5 may also be used during gameplay on a golf course. For example, every shot taken by the user on the golf course can be saved as an entry in the database.
FIG. 6 shows a method of providing an optimal grip recommendation for a user-selected club and user provided intent. Atstep601, the user selects a club. Atstep602, the system (e.g., thegrip app106 running on the user device) determines the club selected by the user. Step602 may be performed in the same manner asstep502, e.g., as described with respect toFIG. 2.
Atstep603, the user provides input of an intent of the current shot. Step603 may be performed in the manner described with respect toFIG. 2. For example, the user may provide the intent input via a user interface of theuser device100 or via an input mechanism integrated into thesmart grip70. The intent may be, for example, one of: slice, hook, low loft, and high loft.
Atstep604, the system determines the ball lie data, e.g., ball location, distance to the green, ball lie angle, and ball lie surface. This data may be determined in the manner described with respect toFIG. 2, e.g., automatically by the system or manually via user input.
Atstep605, the system determines an optimal grip position for the user-selected club. Step605 may be performed in the manner described with respect toFIG. 2, e.g., based on the ball lie data, the user-selected club, the user intent, and the database of the user's historic shot metrics. Step605 includes determining a grip position for the user-selected club and current ball lie that, based on historical shot results for this user, will achieve the desired intent.
Atstep606, theuser device100 transmits data that defines the determined optimal grip position to thesmart grip70 of the user-selected club. This may be performed by wireless communication as described herein.
Atstep607, theprocessor76 of thesmart grip70 selectively activates a subset of theindicators84 based on the data that defines the determined optimal grip position (from step606). Step607 may be performed in the manner described with respect toFIG. 2 and as depicted in the examples ofFIGS. 3 and 4.
Atstep608, theprocessor76 receives data from thepressure sensors82 of thesmart grip70 and determines whether the user has placed their hands in locations that correspond to the determined optimal grip position. In the event that the user has not placed their hands in locations that correspond to the determined optimal grip position, then the system generates a warning, such as a vibration or audible tone generated by theuser device100 and/or activating other ones of theindicators84 of the smart grip, e.g., in a blinking or all-on manner. Following the warning, the process returns to step607 where thesmart grip70 again activates a subset of theindicators84 based on the data that defines the determined optimal grip position. In the event the user has placed their hands in locations that correspond to the determined optimal grip position, then the system does not generate a warning and instead waits for the user to swing.
Atstep609 the user swings the golf club to perform the golf shot. Atstep610, the system determines the user's actual grip position during the golf swing, e.g., using thepressure sensors82 as described herein (e.g., similar to step504).
Atstep611, the system determines results of the golf shot. The results may include a distance, direction (e.g., straight, slice, hook), and loft (e.g., low, medium, high) for the golf shot. The results may also include one or more of swing speed and amount of divot for the golf shot. Step611 may be performed in a similar manner asstep505.
Atstep612, the system stores the data for this swing (e.g., the data obtained at steps602-604,610, and611) in thedatabase110. Step612 may be performed in a similar manner asstep506.
FIG. 7 shows a method of providing an optimal club and grip recommendation for a golf shot for a user. Atstep701, the system determines the ball lie data, e.g., ball location, distance to the green, ball lie angle, and ball lie surface. This data may be determined automatically by the system or manually via user input, as described with respect toFIG. 2.
Atstep702, the system determines an optimal club and grip position for the golf shot. Step605 may be performed in the manner described with respect toFIG. 2, e.g., by comparing the ball lie data to the database of the user's historic shot metrics. The comparing is used to determine a club and grip position for the current ball lie that, based on historical shot results for this user, will achieve a straight shot that travels the distance to the green.
Atstep703, theuser device100 transmits data that defines the determined grip position to thesmart grip70 of the determined club. This may be performed by wireless communication as described herein.
Atstep704, theprocessor76 of thesmart grip70 of the determined club selectively activates a subset of theindicators84 based on the data that defines the determined optimal grip position (from step702). Step704 may be performed in the manner described with respect toFIG. 2 and as depicted in the examples ofFIGS. 3 and 4.
Atstep705, theprocessor76 receives data from thepressure sensors82 of thesmart grip70 and determines whether the user has placed their hands in locations that correspond to the determined optimal grip position. In the event that the user has not placed their hands in locations that correspond to the determined optimal grip position, then the system generates a warning, such as a vibration or audible tone generated by theuser device100 and/or activating other ones of theindicators84 of the smart grip, e.g., in a blinking or all-on manner. Following the warning, the process returns to step704 where thesmart grip70 again activates a subset of theindicators84 based on the data that defines the determined optimal grip position. In the event the user has placed their hands in locations that correspond to the determined optimal grip position, then the system does not generate a warning and instead waits for the user to swing.
Atstep706 the user swings the golf club to perform the golf shot. Atstep707, the system determines the user's actual grip position during the golf swing, e.g., using thepressure sensors82 as described herein (e.g., similar to step504).
Atstep708, the system determines results of the golf shot. The results may include a distance, direction (e.g., straight, slice, hook), and loft (e.g., low, medium, high) for the golf shot. The results may also include one or more of swing speed and amount of divot for the golf shot. Step708 may be performed in a similar manner asstep505.
Atstep709, the system stores the data for this swing (e.g., the data obtained atsteps701,707, and708) in thedatabase110. Step709 may be performed in a similar manner asstep506.
In embodiments, a service provider, such as a Solution Integrator, could offer to perform the processes described herein. In this case, the service provider can create, maintain, deploy, support, etc., the computer infrastructure that performs the process steps of the invention for one or more customers. These customers may be, for example, any business that uses technology. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising content to one or more third parties.
In still additional embodiments, the invention provides a computer-implemented method, via a network. In this case, a computer infrastructure, such as computer system12 (FIG. 1), can be provided and one or more systems for performing the processes of the invention can be obtained (e.g., created, purchased, used, modified, etc.) and deployed to the computer infrastructure. To this extent, the deployment of a system can comprise one or more of: (1) installing program code on a computing device, such as computer system12 (as shown inFIG. 1), from a computer-readable medium; (2) adding one or more computing devices to the computer infrastructure; and (3) incorporating and/or modifying one or more existing systems of the computer infrastructure to enable the computer infrastructure to perform the processes of the invention.
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.