U.S. patent application number 14/843737 was filed with the patent office on 2015-12-31 for digital compass ball marker.
The applicant listed for this patent is Jack W. Peterson. Invention is credited to Jack W. Peterson.
Application Number | 20150375084 14/843737 |
Document ID | / |
Family ID | 54929446 |
Filed Date | 2015-12-31 |
![](/patent/app/20150375084/US20150375084A1-20151231-D00001.png)
![](/patent/app/20150375084/US20150375084A1-20151231-D00002.png)
![](/patent/app/20150375084/US20150375084A1-20151231-D00003.png)
![](/patent/app/20150375084/US20150375084A1-20151231-D00004.png)
![](/patent/app/20150375084/US20150375084A1-20151231-D00005.png)
![](/patent/app/20150375084/US20150375084A1-20151231-D00006.png)
![](/patent/app/20150375084/US20150375084A1-20151231-D00007.png)
![](/patent/app/20150375084/US20150375084A1-20151231-D00008.png)
![](/patent/app/20150375084/US20150375084A1-20151231-M00001.png)
![](/patent/app/20150375084/US20150375084A1-20151231-M00002.png)
![](/patent/app/20150375084/US20150375084A1-20151231-M00003.png)
View All Diagrams
United States Patent
Application |
20150375084 |
Kind Code |
A1 |
Peterson; Jack W. |
December 31, 2015 |
DIGITAL COMPASS BALL MARKER
Abstract
The present invention extends to a digital compass ball marker
that can be used to provide timely information to assist the golfer
in determining a direction and force for a golf shot on a green.
The digital compass ball marker can output this information using
minimal information input by the golfer so that the use of the ball
marker does not slow play, and in many cases, can speed play. The
information provided by the ball marker can include a force with
which to hit the shot and a direction to aim.
Inventors: |
Peterson; Jack W.; (Elk
Ridge, UT) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Peterson; Jack W. |
Elk Ridge |
UT |
US |
|
|
Family ID: |
54929446 |
Appl. No.: |
14/843737 |
Filed: |
September 2, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13737837 |
Jan 9, 2013 |
8992345 |
|
|
14843737 |
|
|
|
|
61585122 |
Jan 10, 2012 |
|
|
|
Current U.S.
Class: |
473/406 ;
473/409 |
Current CPC
Class: |
G01C 17/02 20130101;
A63B 57/353 20151001; G09B 19/0038 20130101; A63B 2220/14 20130101;
A63B 2225/50 20130101; A63B 71/0622 20130101; A63B 2220/20
20130101; A63B 2071/0694 20130101; G16H 20/30 20180101; A63B
69/3676 20130101; A63B 2220/12 20130101; A63B 2220/16 20130101;
A63B 2071/0658 20130101; A63B 2225/20 20130101; A63B 57/207
20151001; G06F 19/3481 20130101; A63B 2220/807 20130101; A63B
2209/08 20130101; G01S 19/51 20130101; G01S 19/19 20130101 |
International
Class: |
A63B 71/06 20060101
A63B071/06; A63B 57/00 20060101 A63B057/00 |
Claims
1. A digital compass ball marker for determining the location of a
ball on a green of a golf course, the ball marker comprising: a
housing containing an indication for orienting the ball marker with
respect to a hole in the green when the ball marker is placed on
the surface green proximate to a position of a ball lying on the
green, the orientation defining a line from the ball marker that
intersects the hole; a compass that determines an angle between the
line defined by the orientation and true north; an input module for
receiving user input that defines an estimated distance between the
position of the ball and the hole; a communication module that
transmits the determined angle and the input distance to a server
system and receives recommended swing parameters for putting the
ball into the hole, the recommended swing parameters being
calculated using the determined angle, the input distance, a known
position of the hole, and known topography of the green; and a
display for displaying the recommended swing parameters.
2. The digital compass ball marker of claim 1, wherein the
indication comprises an arrow.
3. The digital compass ball marker of claim 2, wherein the arrow is
displayed on the display.
4. The digital compass ball marker of claim 1, wherein the compass
comprises 3-axis tilt compensated compass.
5. The digital compass ball marker of claim 1, wherein the compass
includes circuitry for compensating for the earth's magnetic
distortions.
6. The digital compass ball marker of claim 1, wherein the input
module comprises one or more of: a touch screen; one or more
buttons; one or more wheels; or a speech input module.
7. The digital compass ball marker of claim 1, wherein the
communication module transmits the determined angle and the input
distance to a mobile computing device which routes the determined
angle and input distance to the server system.
8. The digital compass ball marker of claim 7, wherein the
communication module transmits the determined angle and input
distance via a Bluetooth connection with the mobile computing
device.
9. The digital compass ball marker of claim 1, wherein the
recommended swing parameters comprise a force with which to hit the
ball and a distance relative to the hole at which to aim.
10. The digital compass ball marker of claim 1, wherein the
recommend swing parameters include recommended swing parameters for
the input distance and for one or more other distances.
11. The digital compass ball marker of claim 1, wherein the display
comprises one or more of: a visual display, or an audible
display.
12. A method, performed by a computing device, for generating
recommended swing parameters for putting a golf ball on a green,
the method comprising: receiving, from a digital compass ball
marker that is placed on a green, proximate to a ball lying on the
green, in an orientation that defines a line between the ball
marker and a hole in the green, an angle between the line defined
by the orientation and true north; receiving an indication of a
distance between the ball and the hole; submitting the angle and
the indication of the distance to a server system; and receiving,
from the server system, recommended swing parameters for putting
the ball into the hole, the recommended swing parameters being
based on the angle, the distance, a known position of the hole, and
known topography of the green.
13. The method of claim 12, further comprising: sending the
recommended swing parameters to the digital compass ball marker for
display on the digital compass ball marker.
14. The method of claim 12, further comprising; displaying the
recommended swing parameters on the computing device.
15. The method of claim 12, wherein the indication of the distance
comprises an estimated distance input by a golfer into the digital
compass ball marker.
16. The method of claim 12, wherein the indication of the distance
comprises an estimated distance input by a golfer into the
computing device.
17. The method of claim 12, wherein the indication of the distance
comprises one or more photographs that each include either a pin in
the hole, or the ball and the pin, the method further comprising:
submitting the one or more photographs to the server system to
enable the server system to determine an estimated distance using
stereophotogrammetry.
18. The method of claim 17, wherein the one or more photographs
include: a photograph taken from behind the ball that includes the
ball and the pin that includes the ball and the pin in the vertical
field; a photograph taken from between the ball and the pin that
includes the ball and the pin in the horizontal field; or a
photograph taken from above the ball that includes the pin but not
the ball.
19. The method of claim 12, wherein the angle is received from the
digital compass ball marker via one or more Bluetooth
communications.
20. The method of claim 12, wherein the computing device is a smart
phone.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation in part of U.S. patent
application Ser. No. 13/737,837 (Attorney Docket No. 16649.6),
filed Jan. 9, 2013, and titled "Digital Compass Ball Marker," which
claims priority to U.S. Provisional Patent Application No.
61/585,122 (Attorney Docket No. 16649.5), filed Jan. 10, 2012, and
titled "Digital Compass Ball Marker".
BACKGROUND
[0002] Golf is played on golf courses that include various terrain
features, including tees, fairways, roughs, woods, water hazards,
sand traps (or bunkers), and golf greens (commonly referred to as
"the green"). The terrain of the golf course is generally varied so
as to enhance the difficulty and play experience of the golf
course. The greens further include a hole into which the golfer
attempts to place the golf ball. The object of the game is to move
a golf ball from the tee into a hole located on each green
throughout the golf course. The golf ball is moved from the tee to
the green by hitting or stroking the ball with a golf club.
Usually, more than one stroke is required to place the golf ball in
the hole.
[0003] Great skill and precision is required to successfully stroke
the golf ball onto the green and eventually into the hole. Once on
the green, various physical contours and properties of the green
must be analyzed by the player to aid the player in accurately
putting the ball into the hole. Distance to the hole, lines,
slopes, grades, wind speed, wind direction, wetness or dryness of
the grass, the length of the grass, the grain of the grass and
other variables must be taken into account when determining the
direction and swing speed of the golf club.
[0004] Some of the most important considerations when putting are
the position of the ball on the green and the distance between the
ball and the hole. A player's likelihood of success largely depends
upon the player knowing these pieces of information. Once the
position and distance has been determined, the player may adjust
his or her swing accordingly. The position of the ball and the
distance between the ball and the hole is typically gauged by
pacing or is otherwise estimated by the player. Accordingly, it is
difficult to obtain an accurate measurement.
[0005] Sometimes, a golfer employs a caddie that is familiar with a
course and can therefore offer advice on where to aim, how hard to
hit a shot, what type of shot to hit, etc. However, caddies are
generally not available for the average golfer. To address this,
technology has been used to provide digital caddies in the form of
electronics that provide much of the information generally provided
by a caddy. For example, GPS devices are available that provide a
distance to the hole or an obstacle to assist the golfer in
selecting the appropriate club, type of shot, and swing force. Such
devices are useful when hitting a drive, approach shot, or other
relatively longer distance shot where precision is less important.
However, when putting or chipping on the green, where both the
direction and force of the shot must be precisely determined, such
GPS devices provide little benefit.
[0006] Further, a key requirement of any digital caddy is that it
must provide information in a sufficiently quick manner so as to
not unacceptably slow play. GPS devices can be programmed with the
coordinates of tee blocks, fairways, greens, and other features of
a golf course so that an instant output of an important distance
can be output at any time. Accordingly, because the golfer can rely
on the distance output by the GPS device rather than relying on
other physical markers on the golf course (e.g. by stepping off a
distance from a distance marker), such devices can speed play.
However, as stated above, these devices provide little benefit once
the ball is on or in close proximity to the green.
BRIEF SUMMARY
[0007] The present invention extends to a digital compass ball
marker that can be used to provide timely information to assist the
golfer in determining a direction and force for a golf shot on a
green. The digital compass ball marker can output this information
using minimal information input by the golfer so that the use of
the ball marker does not slow play, and in many cases, can speed
play. The information provided by the ball marker can include a
force with which to hit the shot and a direction to aim.
[0008] In one embodiment, the present invention comprises a digital
compass ball marker that is used to determine the location of a
ball on a green of a golf course. The digital compass ball marker
comprises a housing containing an indication for orienting the ball
marker with respect to a hole in the green when the ball marker is
placed on the surface of the green proximate to a position of a
ball lying on the green. The orientation defines a line from the
ball marker that intersects the hole.
[0009] The ball marker also comprises: a compass that determines an
angle between the line defined by the orientation and true north;
an input module for receiving user input that defines an estimated
distance between the position of the ball and the hole; a
communication module that transmits the determined angle and the
input distance to a server system and receives recommended swing
parameters for putting the ball into the hole, the recommended
swing parameters being calculated using the determined angle, the
input distance, a known position of the hole, and known topography
of the green; and a display for displaying the recommended swing
parameters.
[0010] In another embodiment, the present invention comprises a
method for generating recommended swing parameters for putting a
golf ball on a green. An angle is received from a digital compass
ball marker that is placed on a green, proximate to a ball lying on
the green, in an orientation that defines a line between the ball
marker and a hole in the green. The angle comprises the angle
between the line defined by the orientation and true north.
[0011] An indication is then received of a distance between the
ball and the hole. The angle and the indication of the distance are
submitted to a server system. Then, recommended swing parameters
for putting the ball into the hole are received from the server
system. The recommended swing parameters are based on the angle,
the distance, a known position of the hole, and known topography of
the green.
[0012] This summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the Detailed Description. This Summary is not intended to identify
key features or essential features of the claimed subject
matter.
[0013] Additional features and advantages of the invention will be
set forth in the description which follows, and in part will be
obvious from the description, or may be learned by the practice of
the invention. The features and advantages of the invention may be
realized and obtained by means of the instruments and combinations
particularly pointed out in the appended claims. These and other
features of the present invention will become more fully apparent
from the following description and appended claims, or may be
learned by the practice of the invention as set forth
hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] In order to describe the manner in which the above-recited
and other advantages and features of the invention can be obtained,
a more particular description of the invention briefly described
above will be rendered by reference to specific embodiments thereof
which are illustrated in the appended drawings. Understanding that
these drawings depict only typical embodiments of the invention and
are not therefore to be considered to be limiting of its scope, the
invention will be described and explained with additional
specificity and detail through the use of the accompanying drawings
in which:
[0015] FIG. 1 illustrates an exemplary computer environment in
which the present invention can be implemented;
[0016] FIG. 2 illustrates an exemplary configuration of a ball
marker;
[0017] FIG. 3 illustrates a side cross-sectional view of a green on
which a ball marker is used in accordance with one or more
embodiments of the present invention;
[0018] FIG. 4 illustrates a top view of a green on which a ball
marker is used in accordance with one or more embodiments of the
present invention;
[0019] FIG. 5 illustrates an exemplary view of a display on a ball
marker that is used to receive user input of an estimated
distance;
[0020] FIGS. 6A-6B illustrate exemplary views of a display on a
ball marker that is used to display recommended swing parameters to
a golfer; and
[0021] FIG. 7 illustrates a flowchart of an exemplary method for
generating recommended swing parameters for putting a golf ball on
a green.
DETAILED DESCRIPTION
[0022] The present invention extends to a digital compass ball
marker that can be used to provide timely information to assist the
golfer in determining a direction and force for a golf shot on a
green. The digital compass ball marker can output this information
using minimal information input by the golfer so that the use of
the ball marker does not slow play, and in many cases, can speed
play. The information provided by the ball marker can include a
force with which to hit the shot and a direction to aim.
[0023] In one embodiment, the present invention comprises a digital
compass ball marker that is used to determine the location of a
ball on a green of a golf course. The digital compass ball marker
comprises a housing containing an indication for orienting the ball
marker with respect to a hole in the green when the ball marker is
placed on the surface of the green proximate to a position of a
ball lying on the green. The orientation defines a line from the
ball marker that intersects the hole.
[0024] The ball marker also comprises: a compass that determines an
angle between the line defined by the orientation and true north;
an input module for receiving user input that defines an estimated
distance between the position of the ball and the hole; a
communication module that transmits the determined angle and the
input distance to a server system and receives recommended swing
parameters for putting the ball into the hole, the recommended
swing parameters being calculated using the determined angle, the
input distance, a known position of the hole, and known topography
of the green; and a display for displaying the recommended swing
parameters.
[0025] In another embodiment, the present invention comprises a
method for generating recommended swing parameters for putting a
golf ball on a green. An angle is received from a digital compass
ball marker that is placed on a green, proximate to a ball lying on
the green, in an orientation that defines a line between the ball
marker and a hole in the green. The angle comprises the angle
between the line defined by the orientation and true north.
[0026] An indication is then received of a distance between the
ball and the hole. The angle and the indication of the distance are
submitted to a server system. Then, recommended swing parameters
for putting the ball into the hole are received from the server
system. The recommended swing parameters are based on the angle,
the distance, a known position of the hole, and known topography of
the green.
[0027] Embodiments of the present invention may comprise or utilize
special purpose or general-purpose computers including computer
hardware, such as, for example, one or more processors and system
memory, as discussed in greater detail below. Embodiments within
the scope of the present invention also include physical and other
computer-readable media for carrying or storing computer-executable
instructions and/or data structures. Such computer-readable media
can be any available media that can be accessed by a general
purpose or special purpose computer system.
[0028] Computer-readable media is categorized into two disjoint
categories: computer storage media and transmission media. Computer
storage media (devices) include RAM, ROM, EEPROM, CD-ROM, solid
state drives ("SSDs") (e.g., based on RAM), Flash memory,
phase-change memory ("PCM"), other types of memory, other optical
disk storage, magnetic disk storage or other magnetic storage
devices, or any other similarly storage medium which can be used to
store desired program code means in the form of computer-executable
instructions or data structures and which can be accessed by a
general purpose or special purpose computer. Transmission media
include signals and carrier waves.
[0029] Computer-executable instructions comprise, for example,
instructions and data which, when executed by a processor, cause a
general purpose computer, special purpose computer, or special
purpose processing device to perform a certain function or group of
functions. The computer executable instructions may be, for
example, binaries, intermediate format instructions such as
assembly language or P-Code, or even source code.
[0030] Those skilled in the art will appreciate that the invention
may be practiced in network computing environments with many types
of computer system configurations, including, personal computers,
desktop computers, laptop computers, message processors, hand-held
devices, multi-processor systems, microprocessor-based or
programmable consumer electronics, network PCs, minicomputers,
mainframe computers, mobile telephones, PDAs, tablets, pagers,
routers, switches, and the like.
[0031] The invention may also be practiced in distributed system
environments where local and remote computer systems, which are
linked (either by hardwired data links, wireless data links, or by
a combination of hardwired and wireless data links) through a
network, both perform tasks. In a distributed system environment,
program modules may be located in both local and remote memory
storage devices. An example of a distributed system environment is
a cloud of networked servers or server resources. Accordingly, the
present invention can be hosted in a cloud environment.
[0032] Exemplary Computing Environment
[0033] FIG. 1 illustrates an exemplary computing environment 100 in
which the present invention can be implemented. Computing
environment 100 represents a typical implementation of the present
invention; however, as clarified below, other implementations are
also possible.
[0034] Computing environment 100 includes a digital compass ball
marker 101 that is connected to a mobile computing device 102 (e.g.
a smart phone) via connection 104. Connection 104 can typically be
a Bluetooth connection; however, any other type of connection over
which two computing devices can communicate could be used. Mobile
computing device 102 is connected to server system 103 via
connection 105. Connection 105 can typically be a mobile network
data connection; however, any other type of connection can also be
used.
[0035] Mobile computing device 102 can be any type of computing
device that can be carried by the golfer. In a typical example,
mobile computing device 102 can be the golfer's smart phone having
an app for communicating with ball marker 101 and server system
103. Server system 103 represents any number and type of
interconnected server computing resources. For example, server
system 103 can represent a cloud of computing resources or a single
server. Accordingly, the particular architecture of mobile
computing device 102 and server system 103 is not essential to the
invention.
[0036] In typical usage, a golfer will carry ball marker 101 and
mobile computing device 102 onto the green, and use ball marker 101
to mark his ball. Ball marker 101 communicates information to
mobile computing device 102 which is routed to server system 103.
Server system 103 uses the information to calculate the force and
direction information for the shot and routes this information back
to ball marker 101 via mobile computing device 102. Ball marker 101
can then display the force and direction information to the golfer
to assist the golfer in playing the shot.
[0037] Exemplary Ball Marker
[0038] FIG. 2 illustrates ball marker 101 in further detail. As
shown, ball marker 101 can include a compass module 201, an input
module 202, and a communication module 203. Compass module 201 can
be used to determine an angle from true north at which the ball
marker is placed. The role of compass module 201 will be further
described below. Input module 202 comprises any type of logic or
circuitry for receiving user input. For example, input module 202
can comprise components for receiving user input via a touch
screen, buttons, wheels, speech, etc. Similarly, communication
module 203 can comprise any type of logic or circuitry for
communicating with another computing device such as mobile
computing device 102. For example, communication module 203 can
include components for communicating using Bluetooth, Wi-Fi,
Infrared, NFC, or any other suitable type of communication
protocol.
[0039] In some embodiments, compass module 201 can include
magneto-inductive technology that is used to determine true north.
In some embodiments, compass module 201 comprises a magnetometer
such as a 3-axis tilt compensated compass (e.g. the OS4000 Nano
Compass which is available from OceanServer Technology, Inc.).
[0040] Compass module 201 may further comprise circuitry and
components to electronically sense the difference in the Earth's
magnetic field from a disturbance caused by external elements, such
as ferromagnetic materials and any magnetic field generated by the
remaining components of ball marker 101. For example, in some
embodiments compass module 201 further comprises an embedded
microcontroller that determines and subtracts any magnetic
distortions from the stronger earth magnetic field thereby
resulting in a highly accurate true north reading.
[0041] Determining Recommended Swing Parameters Using a Ball
Marker
[0042] Referring now to FIG. 3, a cross-sectional side view of a
green 300 is shown. Green 300 generally comprises a putting surface
310 having a hole 322 marked by a flagstick or pin 320. Putting
surface 310 comprises grass that is cut very short so that a golf
ball 330 may roll for a long distance. Putting surface 310 may
further include various physical contours, such as slopes or grades
which are designed to challenge the player in placing the ball 330
into hole 322. Accordingly, a player must account for the physical
contours of putting surface 310 when putting ball 330 into hole
322.
[0043] To accurately provide swing parameters (e.g. force and
direction information) for putting ball 330 into hole 322, three
general pieces of information must be known: (1) the position of
ball 330 on green 300; (2) the position of hole 322 on green 300;
and (3) the topography of green 300 (e.g. the slope of putting
surface 310 between ball 330 and hole 322). The present invention
enables the quick determination of the required information and the
calculation of recommended swing parameters in an accurate manner
without slowing play.
[0044] Specifically, the topography of green 300 and the position
of hole 322 can be preprogrammed into server system 103 (because
the topography should remain constant and the position of hole 322
is changed relatively infrequently and can be updated accordingly).
However, the position of ball 330 is different for each golfer.
Accordingly, ball marker 101 can be used to determine the position
of ball 330 on green 300. The determination of the position of ball
330 can use two types of data: (1) the angle from true north formed
by a line between the ball 330 and the hole 322; and (2) the
distance between ball 330 and hole 322.
[0045] FIG. 4 illustrates a top view of green 300 to describe how
ball marker 101 uses compass module 201 to determine the angle 401
from true north 402 formed by a line 403 between the ball 330 and
the hole 322. Ball marker 101 can include an indication for
orienting the ball marker in the appropriate position. As shown in
FIG. 4, the indication can be an arrow 410 contained or displayed
on ball marker 101 that is aligned with hole 322 when the ball
marker is placed behind the ball. This indication can define the
line 403 between the ball and the hole. In other embodiments, ball
marker 101 can have a particular shape (e.g. a triangular shape) or
other feature that defines the indication.
[0046] When ball marker 101 is appropriately oriented behind the
ball so that the indication is pointing towards the hole, an angle
between true north 402 and the line 403 defined when the ball
marker is thus oriented can be reported by ball marker 101 to
mobile computing device 102. For example, as shown in FIG. 4, the
line 403 defines an angle of 40 degrees from true north which can
be reported by ball marker 101 to mobile computing device 102.
Although FIG. 4 shows ball 330 being left on the putting surface
during the placement of ball marker 101, in a typical scenario,
ball 330 is picked up after being marked by ball marker 101.
[0047] Next, the distance between the ball and the hole can be
obtained in various ways. In one embodiment, the distance can be
obtained from the golfer as an estimate. For example, the golfer
can view the distance, step off the distance, measure the distance
with a separate device, etc. and provide an estimate. In this
manner, the distance can be quickly and easily provided so that the
rate of play is not slowed when ball marker 101 is used. In some
embodiments, the distance can also be provided using one or more
photographs as further described below.
[0048] FIG. 5 illustrates an exemplary configuration of ball marker
101 that can be used to receive golfer input of an estimated
distance. In FIG. 5, ball marker 101 is shown as having three input
buttons 501-503 and a display 510 that displays a distance 520
(which is shown as being 59 ft.). Buttons 501-503 can be pressed to
input or modify distance 520.
[0049] For example, in one exemplary configuration, button 501 can
be pressed to switch between modes for entering distance and for
requesting an angle. Prior to placing ball marker 101 behind ball
330, the estimated distance can be input such as by using buttons
502 and 503. For example, button 502 can be used to change the
value of the most significant digit of distance 520 (5 in this
case), and button 503 can be used to change the value of the least
significant digit of distance 520 (9 in this case).
[0050] As described above, buttons 501-503 are only one way in
which input can be provided to ball marker 101, and any other type
of input device or means can also be used. For example, display 510
can be a touch display so that no buttons or other input controls
are required. In other cases, a combination of buttons or other
input controls and a touch screen call also be provided. Similarly,
ball marker 101 can be configured to accept speech input in some
embodiments. Accordingly, ball marker 101 can receive user input of
an estimated distance in any appropriate manner.
[0051] Once a distance is input, ball marker 101 can be placed
behind the ball 330, as shown in FIG. 4, after which the ball is
typically removed from the green. Referring specifically to the
example in FIG. 5, after a distance is input, button 501 can be
pressed to switch to the mode for acquiring an angle. In this mode,
ball marker 101 can use compass module 201 to determine an angle
from true north and submit the angle and the distance input by the
golfer to server system 103 via mobile computing device 102. In
some embodiments, compass module 201 can be configured to detect
the angle once ball marker 101 has been at rest for a specified
duration of time or in response to input from the golfer (which
would allow the golfer to align the indication with the hole prior
to the angle determination being made). Once the angle is
determined by compass module 201, ball marker 101 can be picked up
or otherwise removed from the putting surface.
[0052] As can be seen, in this manner ball marker 101 only requires
the golfer to input an estimated distance and then place the ball
marker behind the golf ball. Typically, a golfer is required to
mark his ball on the green with some type of ball marker, and
therefore, placing ball marker 101 behind ball 330 does not require
any additional time than would otherwise be taken by the
golfer.
[0053] Using the present invention, the only additional step
required of the golfer is the input of an estimated distance.
However, because ball marker 101 can provide recommended force and
direction information for putting the ball, which the typical
golfer would otherwise spend a significant amount of time
determining mentally, the use of ball marker 101 may not slow play,
and in many cases may even speed play.
[0054] For example, as will be more fully described below, ball
marker 101 can inform the golfer approximately how hard the put
should be hit and the approximate direction to aim. This
information can be determined and returned immediately by server
system 103 for display on ball marker 101 thereby relieving the
golfer from having to spend the time to figure out this information
on his own. The golfer only needs to view the information on ball
marker 101 and play the shot accordingly.
[0055] Using the estimated distance input by the golfer and the
angle calculated by compass module 201, server system 103 can
accurately determine the position of the ball on the green. Using
this position in combination with the known position of the hole
and the topography of the green, server system 103 can calculate
the approximate amount of force with which the ball should be hit,
and the approximate direction to hit the ball. For example, based
on the topography of the green between the position of the ball and
the hole, server system 103 can determine that the hole is four
feet uphill from the ball and that there is a rightward slope of 10
degrees. Server system 103 can therefore recommend hitting the ball
x feet to the left of the hole (to account for the break to the
right) and with a force y (to account for the uphill slope).
[0056] FIG. 6A illustrates an exemplary display of recommended
force and direction information on ball marker 101 using the
example numbers from the previous paragraph. As shown, given an
estimated distance of 59 feet and the other known parameters,
server system 103 has recommended that the putt be hit with a force
of 65 feet (i.e. with a force that would result in the ball moving
65 feet over a flat green) and at 3 feet to the left of the
hole.
[0057] In some embodiments, server system 103 can also provide
recommended force and direction information for other distances
around the estimated distance. For example, because the estimate is
likely not to be perfectly accurate, server system 103 can
calculate recommended force and direction information for distances
of 56, 57, 58, 60, 61, and 62 feet using the same determined angle.
FIG. 6B illustrates an exemplary display that includes recommended
swing parameters for multiple distances. The number of distances
for which swing parameters are recommended can be a user
configurable parameter or may vary based on the topography of the
green.
[0058] In this way, the golfer can easily see if a change in the
estimated distance will result in a significant change in the
recommended shot. For example, if a significant break existed at 60
feet from the hole but not at 58 feet from the hole (as shown in
FIG. 6B by the 11'' difference between the recommended aim for 58'
and 60'), the golfer could see the significant difference between
recommended force/distance information and adjust his shot
accordingly. However, if the force/distance information changed
essentially linearly with the estimated distance, the golfer need
not be too concerned that following recommended information for the
wrong distance will give undesirable results.
[0059] Variations in the Employed Computing Environment
[0060] The above described embodiments are generally preferred
because they minimize the chance that the use of the invention will
slow the rate of play. However, the present invention can also be
implemented with other variations.
[0061] For example, in some embodiments, ball marker 101 may not
include input or display capabilities. In such cases, mobile
computing device 102 can be used to receive the golfer's estimated
distance, and to display the recommended force/direction parameters
to the golfer. Ball marker 101 can include compass module 201 that
determines an angle as described above and communication module 203
that relays this angle to mobile computing device 102. Accordingly,
in such embodiments, the ball marker is placed in the same manner
as described above, but the golfer is required to interface with
mobile computing device 102 to input the estimated distance and to
view recommended swing parameters.
[0062] Also, even in embodiments as described above where the ball
marker includes input and display capabilities, the golfer may
choose to use either ball marker 101 or mobile computing device 102
to provide input and to view recommended swing parameters. Using
mobile computing device 102 may be less desirable because it may
tend to slow the rate of play. For example, if the golfer is
removing his cell phone from his pocket each time he desires to
input distance information or to view recommendation information,
it may slow play.
[0063] In other embodiments, ball marker 101 can include
functionality so that a separate mobile computing device 102 is not
required. In such cases, ball marker 101 can include functionality
to directly communicate with server system 103. For example, ball
marker 101 can communicate directly over a mobile data network, a
Wi-Fi network, or another type of network providing direct internet
access to server system 103. In some embodiments, a golf course may
desire to place routers or other access points within proximity of
a green to allow ball marker 101 to use Wi-Fi communications to
transfer information to and receive information from server system
103. Of course, other communication protocols could also be used in
a similar manner.
[0064] In further embodiments, it is also possible that ball marker
101 or mobile computing device 102 contain sufficient processing
power and storage to perform the functions of server system 103
described above. In such cases, ball marker 101 (or ball marker 101
in communication with mobile computing device 102) would not need
to communicate with any other computing device, but could calculate
recommended force/direction parameters using stored hole location
and topography information in conjunction with an input estimated
distance and determined angle. Although this embodiment may be
financially unfeasible due to the enormity of the data that is
processed to provide swing parameter recommendations, it is
provided to emphasize that the invention should not be limited to
any particular computer environment or architecture.
[0065] Calculating Position of Ball Using GPS Coordinates
[0066] In other variations, the calculation and provision of
recommended force/direction information can be accomplished using
only GPS data. Current GPS devices generally lack the precision
necessary to provide useful force/direction recommendations
(because an error of even a foot in detecting location can result
in relatively useless data). However, advances in GPS technology
that improve the accuracy of determining the exact location of a
ball (e.g. within inches of the exact location) would enable a ball
marker to be used that detects its position using GPS data alone.
In other words, the force/direction information could be calculated
as described above using the known location of the hole and
topography in conjunction with a position of the ball reported by
the ball marker using GPS coordinates.
[0067] Estimating Distance Using Stereophotogrammetry
[0068] In some embodiments, rather than requiring the golfer to
input an estimated distance, the distance between a ball and the
hole can be estimated using stereophotogrammetry techniques.
Stereophotogrammetry is a sophisticated technique which involves
estimating the three-dimensional coordinates of a ball and a hole
on a putting surface using a photograph that includes the ball and
the pin (or flagstick). In such embodiments, mobile computing
device 102 can be used to take a photograph with sufficient
resolution to allow server system 103 to calculate the distance
using the pixels of the photo. This calculation also employs the
angle determined using compass module 201 in the manner described
above. In some cases, GPS coordinates can also be used to enhance
this calculation.
[0069] The photograph can be taken in various ways such as: (1)
from behind the ball in approximate alignment with the pin at a
distance which captures both the pin and the ball within the
vertical field of view; (2) from between the ball and hole at a
distance which captures both the pin and the ball within the
horizontal field of view; or (3) from over top of the ball which
captures the pin but not the ball. In some embodiments, multiple
photographs can be taken and analyzed using stereophotogrammetry
techniques.
[0070] In cases where the photograph is taken of only the pin,
known parameters about the height of the camera when taking the
picture can be used in the stereophotogrammetry calculations. For
example, the golfer can take a photograph with the camera
positioned at chest level. Prior to taking the picture (e.g. when
registering an account), the golfer can specify his height or a
height at which he holds mobile computing device 102 when taking a
picture. This height can then be used in the calculation.
[0071] Other Parameters Usable in Calculating Swing Parameters
[0072] When calculating the optimal putt swing speed, it may be
desirable to compensate for the weight or "mass" of the golfer's
putter. Accordingly, in some embodiments, ball marker 101 and/or
mobile computing device 102 further comprises an input field where
the golfer is prompted to enter a value which indicates the mass of
the golfer's putter (e.g. by directly inputting the mass, by
inputting the putter model, etc.).
[0073] Ball marker 101 and/or mobile computing device 102 can also
be configured to determine or receive other variable parameters
that may affect a putt such as wind speed, grass length, humidity,
etc. In some embodiments, one or more of these additional
parameters can be reported to server system 103 and used in the
calculation of the recommended swing parameters.
[0074] Database for Storing Putt Data
[0075] In some embodiments, the systems of the present invention
further include a user database which is configured to record and
store putt data and other calculations determined by ball marker
101 and mobile computing device 102 during the golfer's round of
golf. For example, in some embodiments information received and
calculated by ball marker 101 and/or mobile computing device 102 is
uploaded to a database which is made available to the golfer for
subsequent analysis and record-keeping. For example, a golfer may
be required to register or subscribe to a database service to gain
access to the golfer's putt data. Alternatively, mobile computing
device 102 may include a database software application which is
configured to automatically store and update the golfer's putt data
in real-time. Further still, in some instances a database is
provided which is part of a social network where the golfer's putt
data (e.g. the length of putts and ball orientation) is posted and
made available for public viewing and comment. The golfer's putt
data may further be updated to a community website that is provided
for tracking a golfer's progress or activity. The golfer's putt
data may further include a topographical image of green 100,
thereby providing a visual representation of the golfer's putt
data.
[0076] In some embodiments, mobile computing device 102 (or server
system 103) analyzes the golfer's putt data to learn green 100 and
thereby modify putt instructions based upon the precise position of
a ball. Thus, mobile computing device 102 (or server system 103)
comprises learning capabilities. In some embodiments, the learning
capabilities of mobile computing device 102 further analyze and
learn the mechanics or tendencies of the golfer's club swing and
thereby modify the putt instructions to compensate for the golfer's
style and/or skills.
[0077] In some embodiments, the systems and devices of the present
invention are further used in combination with a swing speed
trainer which is designed to assist the golfer in learning and/or
adjusting his swing speed. A swing speed trainer may include a
software application and hardware which analyzes a golfer's golf
swing and swing speed in real-time during the golfer's putting
practice. For example, in some instances a swing speed trainer is
provided having portable hardware for following the golfer's swing
using six degrees of freedom to detect detailed results of each
putter stroke in real-time. As such, the swing speed trainer may
provide the golfer with practice swing information such as the
degree to which the given swing at a planned point of impact was
open, closed, forward of the putter sweet spot, behind the sweet
spot, lofted or de-lofted. This information may be used in
combination with the information derived by ball marker 101 and
mobile computing device 102 to provide the golfer with accurate and
personalized ball line and swing speed values to assist the golfer
in taking their putt stroke.
[0078] Receiving Hole Location
[0079] Golf courses often change the hole location on the greens.
Therefore, each time a hole location is moved, it is necessary to
update the known hole location used by server system 103. This can
be accomplished in various ways.
[0080] When the topography of the green is determined, the location
of one or more fixed features (e.g. sprinkler heads) around the
green can be determined and stored with the topography information.
Then, each time a new hole location is selected, a tripod (or
similar device) can be placed over top of the fixed feature and
used to identify the precise location of the new hole location.
[0081] The calculation of the new hole location can be performed in
a similar manner as described above with respect to determining the
position of the ball on the green. That is to say, the tripod can
be placed so that it aims directly at the new hole location. An
insert can be placed in the new hole location to assist in aiming
the tripod towards the new hole location. The tripod can contain a
compass module (similar to compass module 201) that determines an
angle from true north at which the tripod is placed, and can
contain a distance calculation module (e.g. a laser distance
measurement device) that accurately determines the distance between
the fixed feature and the new hole location (i.e. the insert in the
new hole location). The angle and distance can be uploaded to
server system 103 which calculates a new hole location using the
known location of the fixed feature.
[0082] Of course, this process could also be performed in reverse
by placing the insert (or its equivalent) over top of the fixed
feature and placing the tripod overtop of the new hole location.
The server system 103 could be notified of where the measurements
were taken to allow the appropriate calculation.
[0083] Alternatively, rather than placing the tripod over top of
the fixed feature each time the hole location is updated, the old
hole location can be used as the known location for calculating the
new hole location. In other words, because server system 103
already knows the old hole location, the new location can be
determined using the angle and distance parameters with respect to
the old hole location.
[0084] For example, the tripod can be placed over top of the old
hole location and positioned with respect to the new hole location
as described above (i.e. by aiming it towards the insert and
determining the distance). The angle and distance can be reported
to server system 103 which can calculate the new hole location
accordingly. Again, this process could also be performed in reverse
by placing the tripod over the new hole location and placing the
insert in the old hole.
[0085] In some embodiments, the golf course can be provided with
the option to update the hole location using any of the above
described approaches. In such cases, the tripod or other device
used to submit angle and distance information to server system 103
can include the ability to specify which locations (e.g. fixed
feature, old hole, or new hole locations) were used to obtain the
angle and distance.
[0086] In summary, the present invention employs a ball marker that
can be used to submit ball location to a server system in a quick
and efficient manner thereby allowing the quick provision of swing
parameter recommendations so that the pace of play is not slowed.
The ball marker of the present invention can therefore provide
additional enjoyment to the game of golf by assisting golfers to be
more proficient putters. Further, although the above description
has primary described the use of ball marker to determine putting
recommendations, the same techniques can be applied to provide
swing recommendations for other types of shots onto the green such
as chipping and pitching. For example, by determining the position
of a ball next to or near the green, the present invention can
provide swing parameter recommendations that account for the green
topography when the golfer is chipping or pitching onto the
green.
[0087] FIG. 7 illustrates a flowchart of an exemplary method 700
for generating recommended swing parameters for putting a golf ball
on a green. Method 700 can be implemented by a computing device
such as a golfer's smart phone or other device carried by the
golfer.
[0088] Method 700 includes an act 701 of receiving, from a digital
compass ball marker that is placed on a green, proximate to a ball
lying on the green, in an orientation that defines a line between
the ball marker and a hole in the green, an angle between the line
defined by the orientation and true north. For example, mobile
computing device 102 can receive an angle from ball marker 101 when
or after ball marker has been placed on a green.
[0089] Method 700 includes an act 702 of receiving an indication of
a distance between the ball and the hole. For example, an estimated
distance can be input to ball marker 101 and transmitted to mobile
computing device 102, can be input directly into mobile computing
device 102, or one or more photographs which include the pin and/or
ball can be taken by or provided to mobile computing device
102.
[0090] Method 700 includes an act 703 of submitting the angle and
the indication of the distance to a server system. For example,
mobile computing device 102 can submit the angle and indication of
the distance to server system 103.
[0091] Method 700 includes an act 704 of receiving, from the server
system, recommended swing parameters for putting the ball into the
hole, the recommended swing parameters being based on the angle,
the distance, a known position of the hole, and known topography of
the green. For example, mobile computing device 102 can receive
recommended swing parameters from server system 103 that can be
displayed to the golfer either on mobile computing device 102 or on
ball marker 101.
APPENDIX 1
[0092] In some embodiments, the recommended putt and/or stroke
parameters are determined by a path solver function. In some
aspects, the path solver function can be configured to find the
best path as a function of a starting angle. In other aspects, the
path solver function can be configured to use a binary search
algorithm to find an angle parameter of the recommended putt and/or
stroke parameters. In yet other aspects, the path solver function
can determine starting parameters by utilizing a physics engine and
then adjust these starting parameters to find a best path. In other
embodiments, the recommended putt and/or stroke parameters are
determined by a path solver function configured to function as
shown below in Table 1.
TABLE-US-00001 TABLE 1 Path Solver %Path Solver
Code%%%%%%%%%%%%%%%%%%%%%%%%% int main(int argc, char **argv) { int
retval = 0; const int iterations = 12; if(argc == 1 || argc == 2
&& string(argv[1]) == "--help") { print_help(argv[0]);
exit(0); } if(argc == 2 && string(argv[1]) == "--version")
{ print_version( ); exit(0); } try { PathSolver solver(argc, argv);
solver.CalculatePath( ); precise_t startAngles[2]; for(int i = 0; i
< iterations; ++i) { solver.GetPlusMinusAngles(i, startAngles);
solver.CalculatePath(startAngles[0]);
solver.CalculatePath(startAngles[1]); if(solver.is_accurate( ))
break; } cout << solver << endl; } catch(exception
&e) { cerr << "An exception occurred: " << e.what(
) << endl; retval = -1; } return retval; } %End Path Solver
Code%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[0093] In some embodiments, the recommended putt and/or stroke
parameters are determined by a path solver function using starting
parameters. Starting parameters can comprise one or more of
starting position, starting speed, and starting angle. In some
embodiments, starting position comprises a hole (or cup) position).
In some aspects, the starting position can comprise a hole (or cup)
position because the path solver function solves the path from the
position of the hole to the position of the ball.
[0094] In some embodiments, the starting speed is determined
theoretically based on a "distance past the hole" parameter and the
slope of the plane at the hole location. In some instances, an
approximation can be made by assuming that the hole lays on a
sloped planar surface. An acceleration of a sphere rolling on a
sloped planar surface in the direction of the gradient when using a
constant frictional acceleration can be used to determine a
starting speed. In some aspects the acceleration of a sphere
rolling on a sloped planar surface in the direction of the gradient
when using a constant frictional acceleration can be calculated
by:
a plane = 5 7 g ( .rho. g .+-. ( z x ) 2 + ( z y ) 2 )
##EQU00001##
In some aspects, g is the acceleration of gravity and .mu.g is the
frictional constant and the terms in the square root are
derivatives of the plane in the x and y direction. The acceleration
can be larger depending when the sphere is rolling up the gradient
(+) or smaller when the sphere is rolling down the gradient
(-).
[0095] In some embodiments, the approximate acceleration is used to
find the speed necessary for the ball to travel the desired
distance (the distance beyond the hole) in the up direction and the
down directions by using:
V.sub.up\down=( {square root over (2da.sub.plane)})
Since the speed must be between these two speeds, the speed in any
direction required to roll the desired distance past the hole can
be approximated by:
Vstart = ( V up - V down ) 2 ( 1 - cos ( .phi. - .theta. ) + V down
##EQU00002##
Where .PHI. is the angle of the gradient and .theta. is the angle
we wish to roll the sphere.
[0096] In some embodiments, the starting angle is the angle that
intersects with a current ball position. The starting angle can be
determined by a function as shown below in Table 2.
TABLE-US-00002 TABLE 2 Calculate Starting Speed and Velocity Vector
%%%Calculate Starting Speed and velocity vector code%%% void
FitData::CalculateVstart(precise_t dph, precise_t angle, precise_t
rhog) { precise_t RadianAngle = angle*PI / 180; precise_t
magicvalue = 0.714286; //----------CALCULATE LOCAL X, Y AND
ABSOLUTE XYZ---------- precise_t xL = r.x - dx*xindex; precise_t yL
= r.y - dx*yindex; r.z = fit[0] + fit[1] * xL + fit[2] * yL +
fit[3] * xL*yL + fit[4] * xL*xL + fit[5] * yL*yL;
//-------------------- DERIVATIVES-------------------- precise_t mx
= fit[1] + fit[3] * yL + 2 * fit[4] * xL; precise_t my = fit[2] +
fit[3] * xL + 2 * fit[5] * yL; //-------------------- CALCULATE
INITIAL VELOCITY -------- ------------ precise_t phi = atan2(my,
mx); //The angle of steepest ascent from the hole location
//------Calculate a up and and down steepest angle of ascent. //
Becareful to cast 5 from an int to a precise_t, otherwise we get
integer division, not floating point precise_t ae1 = magicvalue *
g*(rhog + sqrt(mx*mx + my*my)) / sqrt(1 + mx*mx + my*my); // Should
always be pos precise_t ae2 = magicvalue * g*(rhog - sqrt(mx*mx +
my*my)) / sqrt(1 + mx*mx + my*my); /* Can go negative if hole is on
a steep plane */ if (ae2 <= 0) {ae2 = magicvalue * rhog*g*.25;
//If slope acceleration is greater than friction set it to 25%
of5/7pg*g }; precise_t ve1 = sqrt(2 * ae1*dph); //v up or down (not
sure which) along phi precise_t ve2 = sqrt(2 * ae2*dph); //v be
enough to only roll (dph) inches up and down
//--------------------Estimate the magnitude of velocity in the
direction of Theta // based on this function below: precise_t vMag
= (ve1 - ve2) / 2 * (1 - cos(RadianAngle - phi)) + ve2; precise_t
vx = cos(RadianAngle); precise_t vy = sin(RadianAngle); precise_t
vz = vx*mx + vy*my; //-------------------- UPDATE v
-------------------- v.x = vMag*vx / sqrt(vx*vx + vy*vy + vz*vz);
v.y = vMag*vy / sqrt(vx*vx + vy*vy + vz*vz); v.z = vMag*vz /
sqrt(vx*vx + vy*vy + vz*vz); } %%%%Start angle code%%%%%%
startAngle = atan2((ball.y - hole.y), (ball.x - hole.x)) * 180 /
PI;
[0097] In some embodiments, output parameters comprise one or more
of aim direction, aim magnitude, initial putt speed, and/or
relative putt distance. The aim direction can comprise a distance
relative to the hole position (e.g. a distance left or right
relative to the hole position). The aim magnitude can comprise a
magnitude relative to the hole position (e.g. a magnitude in
meters). The initial putt speed can comprise an initial speed of
the ball when hit (e.g. in meters per second). The relative putt
distance can comprise a relative difference in putt length if the
putt was attempted on a flat, horizontal surface. Uphill puts can
be indicated with positive values and downhill puts can be
indicated with negative values.
[0098] In some embodiments, a path comprises a series of positions
determined by a physics engine. In other embodiments, a best path
comprises a path that comes closest to the hole position and
comprises a velocity that allows the ball to stop nearest to the
hole. In some aspects the distance between the hole and the
calculated stopping position of the ball can comprise a parameter
utilized by the path solver function.
[0099] In some embodiments, friction can be treated as a constant
that opposes the velocity (the direction of a moving golf ball).
The frictional constant .rho..sub.g is related to the green speed
.DELTA.x as shown:
.rho. g = 7 v s 2 10 g .DELTA. x ##EQU00003##
In some aspects, g is the gravitational constant 9.8 m/s 2, Vs is
the speed of the standard stimp meter speed (1.81 m/s), and
.DELTA.x is the green speed reading in meters. In other aspects,
the e frictional acceleration can be calculated by:
a f = .rho. g g 1 + I b ##EQU00004##
with .rho..sub.g representing the frictional constant and I.sub.b
representing the moment of inertia of a sphere.
[0100] In some embodiments, reverse friction is also considered.
Rather than opposing the direction of the velocity, the reverse
path can be calculated by accelerating in the direction of the
velocity. Solving by taking into account reverse friction can be
advantageous because solving the correct putt path is a function of
initial speed and direction. By starting at the hole, the speed
variable can be eliminated by setting it to a theoretical value
thereby requiring that only the angle be solved to determine the
path nearest the ball position. This in turn makes determining the
path nearest the ball position more efficient and faster. In some
cases, the path nearest the ball position can be calculated in
about 0.01 seconds.
[0101] In some embodiments, the path solver function comprises a
physics engine. The physics engine can comprise an Euler midpoint
numerical method to calculate position one step at a time. The time
at which the positions are calculated (tau) can be a parameter and
can be in the range of about 0.1 seconds to 0.00001 seconds.
[0102] In some embodiments, the physics engine comprises a
processor configured to carry out one or more of calculating local
fit, determining fit derivatives, calculating acceleration,
updating velocity, updating position, and/or any other suitable
function.
[0103] Calculate local fit can include accurately calculating the
acceleration of a sphere rolling on a curved surface by determining
the spatial derivatives and second derivatives. Because taking
direct derivatives of real world DTM typically yields jagged
discontinuous derivatives and it is required that the sphere roll
in a smooth and continuous fashion over the surface, the
derivatives can be found from a surface fit. In some aspects, the
surface fit can be found by finding about 25 neighboring rest
points among the z-axis data points (e.g. along the height) from
the DTM at the current ball position. Next, the spacing of these
points is used in a least squares fitting technique to fit the z
data points to a three dimensional parabola of form:
z=a+bx+cy+dxy+ex.sup.2+fy.sup.2
In other embodiments, calculating local fit may be accomplished as
shown below in Table 3.
TABLE-US-00003 TABLE 3 Local Fit Code void
GreenData::CalculateFit(FitData &fit) { //use x, location[0]
and y, location[1] to get xindx and yindx size_t newx =
round(fit.r.x / dx); size_t newy = round(fit.r.y / dx);
if((fit.xindex != newx) .parallel. (fit.yindex != newy)) { //If the
indexes are different the local fit will be different update:
indexes, nearest points, fit array fit.xindex = newx; fit.yindex =
newy; //use indx's to get 25 points (square matrix) and assign to
1d array for(int iy = -2; iy <= 2; ++iy) for(int ix = -2; ix
<= 2; ++ix) fit.closestZPoints[5 * (iy + 2) + (ix + 2)] =
get_item(fit.xindex + ix, fit.yindex + iy); //multiply
Fitoperator*closestZPoints to get FitArray for(int i = 0; i < 6;
++i){ fit.fit[i]=0; //Set to zero for(int j = 0; j < 25; ++j)
fit.fit[i] += FitOperator[i][j] * fit.closestZPoints[j]; } } }
[0104] Determining Fit Derivatives can be Carried Out by
Determining the Following Derivatives to Determine the
Acceleration:
.differential. 2 z .differential. x 2 , .differential. z 2
.differential. x .differential. y , .differential. 2 z
.differential. y 2 , .differential. z .differential. x ,
.differential. z .differential. y ##EQU00005##
In some embodiments determining fit derivatives may be accomplished
as outlined in Table 4 below.
TABLE-US-00004 TABLE 4 Code Derivatives //----------CALCULATE LOCAL
X,Y AND ABSOLUTE XYZ---------- precise_t xL = r.x - dx*xindex;
precise_t yL = r.y - dx*yindex; r.z = fit[0] + fit[1] * xL + fit[2]
* yL + fit[3] * xL*yL + fit[4] * xL*xL + fit[5] * yL*yL;
//-------------------- DERIVATIVES-------------------- precise_t mx
= fit[1] + fit[3] * yL + 2 * fit[4] * xL; precise_t my = fit[2] +
fit[3] * xL + 2 * fit[5] * yL;
[0105] Calculating acceleration can be carried out by considering
that the acceleration of a sphere rolling on a somewhat flat but
curved surface is a function of velocities (time derivatives in x
and y), first and second order spatial derivatives (above), g, the
moment of inertia of a sphere I.sub.b, and the acceleration due to
friction (af). In some aspects, acceleration can be calculated
by:
a x = - .differential. z .differential. x ( .differential. 2 z
.differential. x 2 ( x t ) 2 + 2 ( .differential. z 2
.differential. x .differential. y ) y t ( x t ) + .differential. 2
z .differential. y 2 ( y t ) 2 + g 1 + I b ) ( x t ) 2 + ( y t ) 2
+ 1 + a fx a y = - .differential. z .differential. y (
.differential. 2 z .differential. x 2 ( x t ) 2 + 2 (
.differential. z 2 .differential. x .differential. y ) y t ( x t )
+ .differential. 2 z .differential. y 2 ( y t ) 2 + g 1 + I b ) ( x
t ) 2 + ( y t ) 2 + 1 + a fy a z = .differential. 2 z
.differential. x 2 ( x t ) 2 + 2 ( .differential. z 2
.differential. x .differential. y ) y t ( x t ) + .differential. 2
z .differential. y 2 ( y t ) 2 + .differential. z .differential. x
( a x ) + .differential. z .differential. y ( a y ) + a fz
##EQU00006##
In some embodiments, calculating acceleration may be accomplished
as outlined in Table 5 below.
TABLE-US-00005 TABLE 5 Acceleration Code //--------------------
CALCULATE ACCELERATION ---------- c = mx*mx + my*my + 1; k = nx*v.x
* v.x + 2 * fit[3] * v.x * v.y + ny*v.y * v.y; ax = -mx*(k + g / (1
+ Ib)) / c; ay = -my*(k + g / (1 + Ib)) / c; az = k + mx*ax +
my*ay; fv.x = 1 / (1 + Ib)*rhog*g*v.x / sqrt(v.x * v.x + v.y * v.y
+ v.z * v.z); //----- FRICION FORCES X fv.y = 1 / (1 +
Ib)*rhog*g*v.y / sqrt(v.x * v.x + v.y * v.y + v.z * v.z); //-----
FRICION FORCES Y fv.z = 1 / (1 + Ib)*rhog*g*v.z / sqrt(v.x * v.x +
v.y * v.y + v.z * v.z); //----- FRICION FORCES Z //add friction for
reverse friction a.x = ax + fv.x; a.y = ay + fv.y; a.z = az +
fv.z;
[0106] Updating velocity can be carried out by:
v=v.sub.o+at
where v is the updated velocity and vo is the previous velocity. In
some embodiments updating velocity may be accomplished as outlined
in Table 6 below.
TABLE-US-00006 TABLE 6 Updating Velocity Code
//-------------------- UPDATE v -------------------- v.x = v.x +
tau*a.x; v.y = v.y + tau*a.y; v.z = v.z + tau*a.z;
[0107] Updating position can be carried out by:
r=r.sub.o+vt+1/2at.sup.2
where r is the updated position, v is the updated velocity, and a
is the net acceleration. In some embodiments, updating position may
be accomplished as outlined below in Table 7.
TABLE-US-00007 TABLE 7 Updating Position Code
//-------------------- UPDATE r ------------------------- r.x = r.x
+ tau*(2 * v.x - tau*a.x) / 2; r.y = r.y + tau*(2 * v.y - tau*a.y)
/ 2; r.z = r.z + tau*(2 * v.z - tau*a.z) / 2;
[0108] The present invention may be embodied in other specific
forms without departing from its spirit or essential
characteristics. The described embodiments are to be considered in
all respects only as illustrative and not restrictive. The scope of
the invention is, therefore, indicated by the appended claims
rather than by the foregoing description. All changes which come
within the meaning and range of equivalency of the claims are to be
embraced within their scope.
* * * * *