MOBILE PHONE SYSTEM AND METHOD FOR SELF-CADDY
A mobile phone incorporates a positioning system to calculate a user's distance from a golf hole. Based on the distance, the mobile phone recommends a golf club to use.
This application claims priority of and incorporates by reference U.S. Patent Application No. 60/824,277 filed Aug. 31, 2006 entitled “GPS-Enabled Mobile Phone Application System for Golfers to Self-Caddy,” by inventor Frank Nguyen.
TECHNICAL FIELDThis invention relates generally to mobile phones, and more particularly, but not exclusively, provides a system and method to enable golfers to self-caddy using a mobile phone.
BACKGROUNDGolfing requires precision execution of every stroke play. Reading the accurate yardage of every stroke, selecting the right club for play based on one's ability and statistics are essential for a golfer. Some of these critical decisions or help come from a golfer's assistant, such as a caddie. In reality, a caddie is only available for tour professional players or at expensive golf clubs. In most cases, golfers rely on themselves.
Accordingly, a new system and method are needed that enable self-caddying.
SUMMARYMobile phones have become more of a Personal Digital Assistant (PDA) for the average person, performing more advanced tasks than just simply making and receiving phone calls. Among the new advanced technologies enabled for mobile phones is built-in GPS (Global Positioning System) chipset into the mobile phone. Combining this GPS capability with other available technology in the mobile device such as Internet connection via mobile wireless network, digitized global map, and the community-driven Internet website, such a mobile phone software application can be developed to help thousands of global golfers to improve their game on and off the golf course. The key is the ability to pin point the exact location of every golf ball at rest during the game play, relatively to the digitized location (longitude and latitude) of every hole of the golf course. The data then can be stored, analyzed, and utilized intelligently by the system to enable golfers to improve their game.
In an embodiment, a method comprises: determining a stroke location of a golfer using global positioning system data received by a mobile phone carried by the golfer; determining a hole location; calculating a difference between the two determined locations; determining a club to use based on the difference; and presenting the determination of club.
In an embodiment, a mobile phone comprises a global positioning system chipset; a hole engine; a distance engine; a club recommendation engine; and a club presentation engine. The global positioning system chipset determines a stroke location of a golfer. The hole engine determines a hole location. The distance engine, which is communicatively coupled to the chipset and the hole engine, calculates a difference between the two determined locations. The club recommendation engine, which is communicatively coupled to the distance engine, determines a club to use based on the difference. The club presentation engine, which is communicatively coupled to the club recommendation engine, presents the determination of club.
Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
The following description is provided to enable any person having ordinary skill in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the embodiments will be readily apparent to those skilled in the art, and the principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles, features and teachings disclosed herein.
-
- Mobile Phone 170 which includes a friendly, graphical user interface software application for golfers to run on their mobile phone environment. The software enables golfer to search for nearest golf clubs within vicinity based on current location, assist a golfer during play to make wise decisions based on the yardage from the ball to the center of green or based on historical statistics, record game scores and strokes data for future game improvement.
- Hosting System (Server) 140: a centralized, hosting computer system that stores all users, golf clubs, data and provide a central intelligent interface for mobile phone application, web site access, and internal back-end tools as well as third party software integration.
- Community Internet Web Site 130 where users can search for golf course information and perform golf community activities like sharing experience tips, rating, etc. Users can have their own account to review their golf rounds play history, reports, analysis, rounds play with stroke by stroke displayed on a digital map format. Other features include online tee time booking, online golf lesson, local golf clubs news, special discounts, e-coupons, and other golf related-information. The website also allows community users to digitize local golf courses GPS locations of the pins and upload onto the hosting system for community users to share.
Other components of the system 100 include GPS satellites 110, and towers 120. The satellites provide GPS signals to the phone 170 so that it can determine its position, which should coincide with a golf ball location 150 and therefore calculate a distance from the golf ball location 150 to a golf center of green location (hole) 160. The towers 120 provide wireless signals to the phone 170.
In an embodiment:
(1) The golf community (or others) 200 digitize golf course map and pin locations and store data into the hosting system 140 from the web site 130 via an Internet connection.
(2) Golfer downloads digitized course map and pin locations from the hosting system 140 to his/her mobile phone 170 via the wireless mobile network. This data is used by the phone 170 with GPS capability to improve golfer's game.
(3) Upon completion, golfer uploads his/her game scores, GPS location data, or new golf course data to the hosting system 140 via the wireless mobile network for future analysis, references, and other users to share.
(4) Golfer can access his/her game scores, game plan, statistics, etc. from the Internet web site 130.
(5) Golfer can send game plan, data, etc. directly to his/her mobile phone 170 via Internet/mobile wireless network.
In an embodiment, an application sits in the phone 170 and has a small footprint, client software application written for mobile phone environment. It runs within the mobile phone operating system, utilizing mobile system interfaces provided by the mobile network carriers or mobile phone manufacturers. Some sample system interfaces are memory storage, network connection, hardware interface like GPS capability, native mobile phone features, etc. The application can be distributed by users 200 downloading it from the Internet via wireless mobile network from the mobile carrier network, or pre-installed with other mobile network carrier's applications when the phone is available for commercially used. Upon successful installation, a user can run the application directly on the mobile phone 170 with screen display, interactive keypad control, and sound from the mobile phone 170 via a menu, as shown in
In an embodiment, the mobile application communicates with the hosting system 140 by a set of command protocols. All requests are made by the mobile phone application. The commands are in text format. They are sent and received using TCP/IP protocol. To perform a certain task that needs the data from the hosting server 140, the mobile application sends an encoded command along with its parameters to the server using TCP/IP connection. At the hosting server 140, there is a mapping function (see
In an embodiment, the following tables are internal data structures used in mobile application memory for all operations. The data structures are somewhat one-on-one mapping to database tables residing in the hosting system 140. In most cases, these data structures are populated by the data downloaded from the golf course text file from the hosting server upon user's selection on the golf club 510, golf course 540 to use (see
Find a Golf Club (610) is a command (
As a result for the Find A Golf Club (610) command, a list of matched golf clubs are returned to the mobile application from the host system as shown in example
A user can view and navigate through the list of matched golf clubs. The user then selects (620) a desired golf course. The mobile phone 170 sends a GET_CLUB_INFO command (
Upon receiving the club record, the mobile phone 170 displays the club information such as general description, address, contact phone numbers, type (public, private, etc.), weekend/weekday rates, course description, course par, tees (men/women), slope ratings, user rating, special promotion, ads, etc. as in example
After viewing the golf club course details, if users decide to play a golf round leveraging the phone 170 to assist in playing, then they can select command Download Golf Club/course (
A golf course details file (see
Due to the nature of mobile phone usage where user can close and open a clam shell any time during the play, it's important to have the downloaded file and any other critical data in application memory stored instantly on a persistent local storage. In this case, the mobile local data storage is a simple text file. In an embodiment, the screen sample after a successful download may resemble
Upon successful download, a user can select Play A Round menu item 1610 (
New Round command (1620) saves current round and starts a new round. Upload command (1640) uploads user's round of golf data to the hosting system for future use in golf club recommendation and records tracking, as will be discussed further below. After a round is created, user is ready to start playing a round.
A user can select the menu item Play A Hole 1650 from the Play A Round screen (
Record Pin command (1820): This command is available only if the golf course is being created by the user in the case that the golf course file does not exit in the hosting system (see Create a Golf Course, FIG. 3—Main Menu). User can position him/herself at the center of the green of the hole and run this command to record the GPS coordinates of the center of the green for later upload to the hosting system.
The pin (or center of green) coordinates are saved to the mobile application internal data structures as well as the persistent text file on the device. The Record Pin screen (
Recommend command (1830) to display a hint text (and/or image), usually provided by the local club professional on the strategy and how to play on this hole. Data is available during the course download (see Internal Data Structure, Hole table, and Download Course).
When a round is completed, either 9 or 18 holes, a user can choose Complete Round command (1850) to view the completed round information and prepare to upload the data to the hosting system.
To start playing stroke and record its data, a user can select the Play A Stroke command (1840). The function Play A Stroke (1840) is to assist user to manage every stroke play of any given hole. Upon being selected, the Play A Stroke screen (
For New Stroke command (2250;
To determine stroke position (670) a Distance to Pin (2220) command from the Play A Stroke screen is used. It is to assist user to determine the distance in yards from the current location of the ball to the pin using built-in GPS capability in the mobile phone 170 at any given hole. When user selects the Distance to Pin command, given that the current hole number is known, the mobile phone 170 calls function Get_Pin_Location(Current_Hole_Number) to get the Location structure. See
Afterwards, a Get_Distance(Get_Pin_Location(Current_Hole_Number)) (
Then Display_GPS_Info( ) displays the ball position to the pin on the LCD as in the sample screen as shown in
To recommend a stroke (680), a user selects a Recommendation command from the Play A Stroke screen (
Profile: recommending a golf club based on the current distance and the preset user's profile on clubs distances. For example, if the distance is 110 yard and user's iron 9 club preset distance in the My Profile is 115 yards, then iron 9 club is recommended.
Most Accurate: recommending a golf club based on user's history of plays and statistics. For a given distance, it suggests the club used in the past that the result distance of a required yardage and yardage made is minimal. This rule is applied for all user's past strokes that have distance within +15 yards from a given distance.
For Example: For a shot that needs a distance of 135 yards; the system will pull up all stroke plays of that user in the database that has the Distance field +15 yards from 135 yards. (See Stroke table in FIG. 5—Database and internal application data structures and tables.) Among these strokes, the one that has Delta Yardage −5 yards is the closest one. Therefore, the iron club 8 is recommended. See FIG. 28—Example of Get Club Most Accurate Function below.
Most Frequently Used: recommending a golf club based on user's history of plays and statistics. For a given distance, it suggests the club mostly used in the past that the result distances are within +/−10 yards of a given distance.
For Example: For a shot that needs a distance of 135 yards; the system will pull up all stroke plays of that user in the database that has the YardMade field +/−10 yards from 135 yards. (See Stroke table in FIG. 5—Database and internal application data structures and tables.) Among these strokes, club iron 9 has been used to the most. Therefore, the iron club 9 is recommended. See
By calling Display_Suggestion_Info( ) to display the golf club recommendation, the screen sample looks like
After finishing the last stroke of the hole, user can select a Complete Hole (
When a round of golf is completed, user has the option to upload the round play (690) to the hosting system for future statistics and game improvement. A sample screen of completed round is shown in
If the round played is the new golf course created by the user, it can be uploaded into the hosting system for others to share with the mobile phone application as well. Upon successful upload a round to the hosting system the sample screen looks like that shown in
Finally, user can press Complete A Round (
The hosting server system 140 is a central hosting system that houses the database 3460 and all the intelligent business logic 3440 to serve mobile phone application 3410, web site 3420, and all internal back-end tools 3430. The database 3460 stores all users, golf club, golf courses, holes, rounds, shots, billing plan, promotion, ads, actions, and others. The intelligent business logic 3440 performs all server tasks like user authentication, service rendered to clients based on subscription plan, sophisticated and heavy computing like shots statistics, golf course search, and many others. Result is sent to the client side via a proprietary client/server protocol via the Internet. In another embodiment, the database 3460 is stored in the mobile phone 170 so that a user does not need to access a network to perform the above-mentioned methods.
The website 3420 is another system portal for users to interface with the system. From the website, users can do several functions, such as golf course search; golf course creation; and participate in a golf forum.
The golf course search is similar to the mobile phone application feature. The website provides an intuitive, simple, real-time search capability for users to look up any golf course available in the host system. The system provides many search criteria that can be used singly or combined with others to narrow the search. User can search:
-
- a. By Name: golf courses that match a given name. Wild card characters are acceptable.
- b. By Zip Code: golf courses that match a zip code.
- c. By City: golf courses that match a city name
If a golf course is not available from the system, a user can use a web-based tool to create a golf course data it in the hosting system database for mobile phone application to use. The golf club, golf course(s), and hole tables from the FIG. 5—Database and internal application data structures and tables are populated by the web-based tool.
Method 1:
-
- Use Google Map to find the golf course satellite map by entering the address.
- Locate every green from the map.
- Enter the center of the green locations; i.e. longitude and latitude provided by Google Map into the tool entry fields accordingly.
- Save the data.
Method 2:
-
- In the case that Hosting system administrator does not know the hole from the satellite map, he/she posts the map with holes' labels to the website community and asks for local golfers to help identify the hole's number with the label.
- User identify the holes' numbers and reply accordingly with the labels for the hosting system admin can record the greens' GPS locations as above.
The golf forum is a public forum for golfers to post any golf-related discussions, blogs, images, experiences, thoughts, etc. One of the most important features of the forum is allow users to rate a golf course for references based on certain criteria. The golf course rating can be used later by the system to mobile phone application.
The GPS receiver 3540 receives radio signals from GPS satellites orbiting the Earth. Based on the received signals, the receiver 3540 can calculate its position and altitude. The GPS receiver 3540 can then forward that data to processor 3550 for processing. The term GPS refers to any generic global positioning system and not just satellite based. For example, the GPS receiver 3540 can use a Loran-C, GLONASS, Galileo, triangulation between cell phone towers or other location determination system.
The transceiver 210 can wirelessly transmit and receive data, including text messages, such as SMS messages or other data formats, and voice, via wireless networks, such as Cellular Digital Packet Data (CDPD) and ARDIS. The transceiver 3510 comprises a transmitter 3520 for transmitting data and a receiver 3530 for receiving data.
The processor 3550 executes engines stored in memory 3560 to transmit and receive SMS text messages (or data in other formats) and to run the golf functions discussed above. The display 3580 comprises a LCD display or other device for displaying data. The input 3590 includes a keyboard and/or other input device.
The hole engine 3610 determines a hole location (e.g., pin) The hole engine 3610 may use the function Get_Pin_Location to get the pin location from a database stored in the memory 3560 and/or stored at another site. The distance engine 3620 calculates a difference between the hole and current golfer position using the Get_Distance function. The club recommendation engine 3630 determines a club to use based on the difference. Functions used by the engine 3630 may include the Get_Club_Profile (Distance) function, the Get_Club_Most_Accurate function and the Get_Club_Most_Used function. The club presentation engine 3640 presents the determination of club on a screen.
The golf course engine 3650 receives golf course data including hole locations, either from a local database or from a database stored at another site. The storage engine 3660 stores round play data locally and/or at another site. The map engine 3670 shows stored data in a map format. That is, the map engine 3670 displays a map of the golf course (or section thereof) and round(s) played so that a user can improve his/her golf game by reviewing the strokes. In an embodiment, the map engine 3670 displays the map and data on the mobile phone 170. In another embodiment, the map engine 3670 is resident on the server 140, which displays the map either on the mobile phone 170 (when downloaded) or on a user's computer when a website is accessed.
The foregoing description of the illustrated embodiments of the present invention is by way of example only, and other variations and modifications of the above-described embodiments and methods are possible in light of the foregoing teaching. Further, components of this invention may be implemented using a programmed general purpose digital computer, using application specific integrated circuits, or using a network of interconnected conventional components and circuits. Connections may be wired, wireless, modem, etc. The embodiments described herein are not intended to be exhaustive or limiting. The present invention is limited only by the following claims.
Claims
1. A method, comprising:
- determining a stroke location of a golfer using global positioning system data received by a mobile phone carried by the golfer;
- determining a hole location;
- calculating a difference between the two determined locations;
- determining a club to use based on the difference; and
- presenting the determination of club.
2. The method of claim 1, wherein the determining the hole location comprises:
- receiving golf course data including hole locations; and
- selecting a hole location, by a user's selection or by automatic hole detection algorithm, to the determined stroke location.
3. The method of claim 2, wherein the receiving golf course data comprises:
- transmitting a request from a mobile phone to a server; and
- receiving the golf course data from the server.
4. The method of claim 1, wherein the determining the stroke location comprises:
- determining a location of a mobile phone carried by the golfer.
5. The method of claim 1, further comprising storing round play data.
6. The method of claim 5, wherein the determining the club comprises:
- looking up clubs and associated average range for the golfer from stored round play data; and
- selecting the club having an average range closest to the calculated difference.
7. The method of claim 5, wherein the determining the club comprises:
- looking up clubs and associated distance to hole when used based on stored round play data; and
- selecting the club having the associated distance to hole closest to the calculated difference.
8. The method of claim 5, further comprising displaying round play data overlaid on a map.
9. The method of claim 1, wherein the determining the club comprises:
- looking up clubs and associated preset distances; and
- selecting the club having the associated preset distance closest to the calculated difference.
10. A system, comprising:
- means for determining a stroke location of a golfer using global positioning system data received by a mobile phone carried by the golfer;
- means for determining a hole location;
- means for calculating a difference between the two determined locations;
- means for determining a club to use based on the difference; and
- means for presenting the determination of club.
11. A computer-readable medium having stored thereon a program that causes a computer to execute a method, the method comprising:
- determining a stroke location of a golfer using global positioning system data received by a mobile phone carried by the golfer;
- determining a hole location;
- calculating a difference between the two determined locations;
- determining a club to use based on the difference; and
- presenting the determination of club.
12. A mobile phone, comprising:
- a global positioning system chipset for determining a stroke location of a golfer;
- a hole engine for determining a hole location;
- a distance engine, communicatively coupled to the chipset and the hole engine, for calculating a difference between the two determined locations;
- a club recommendation engine, communicatively coupled to the distance engine, for determining a club to use based on the difference; and
- a club presentation engine, communicatively coupled to the club recommendation engine, for presenting the determination of club.
13. The system of claim 12, further comprising a golf course engine for receiving golf course data including hole locations; and wherein the hole engine selects a hole location, by a user's selection or by an automatic hole detection algorithm, to the determined stroke location.
14. The system of claim 13, wherein the golf course engine transmits a request from a mobile phone to a server; and receives the golf course data from the server.
15. The system of claim 12, wherein the GPS chipset determines the stroke location by determining the location of the mobile phone, which is carried by the golfer.
16. The system of claim 12, further comprising a storage engine for storing round play data.
17. The system of claim 16, wherein the club recommendation engine determines the club by looking up clubs and associated average range for the golfer from stored round play data; and selecting the club having an average range closest to the calculated difference.
18. The system of claim 16, wherein the club recommendation engine determine the club by looking up clubs and associated distance to hole when used based on stored round play data; and selecting the club having the associated distance to hole closest to the calculated difference.
19. The system of claim 16, further comprising a map engine for displaying round play data overlaid on a map.
20. The system of claim 12, wherein the club recommendation engine determines the club by looking up clubs and associated preset distances; and selecting the club having the associated preset distance closest to the calculated difference.
21. A method, comprising:
- using a global positioning system chipset in a mobile phone to determine a golf course hole location; and
- transmitting the golf course hole location to a database for storage so that other users can access the golf course hole location.
Type: Application
Filed: Aug 27, 2007
Publication Date: Mar 6, 2008
Inventor: Frank T. Nguyen (Saratoga, CA)
Application Number: 11/845,769
International Classification: A63B 57/00 (20060101);