Extraordination of trajectory and origin determination, and sensor coverage determination for objects tracked during flight.
The system uses sensor data and computational methods to estimate errors in golf ball trajectory, enabling accurate and real-time identification of launch positions for multiple golf balls, addressing the challenges of simultaneous tracking and reducing sensor redundancy.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- TOPGOLF SWEDEN AB
- Filing Date
- 2025-05-26
- Publication Date
- 2026-06-30
Smart Images

Figure 0007883022000020 
Figure 0007883022000021 
Figure 0007883022000022
Abstract
Description
[Technical Field]
[0001] This specification relates to tracking objects in flight, such as golf balls, using data acquired from cameras, radar, and / or other sensor devices. [Background technology]
[0002] U.S. Patent No. 5,413,345 describes a golf shot tracking and analysis system in which distance cameras and locator cameras are positioned to view golf balls when they are struck or after they are in flight. As described in U.S. Patent No. 5,413,345, the locator camera observes the golf shot as it leaves the tee area, while the distance camera observes the shot from a position roughly perpendicular to its intended flight path. Furthermore, even if the cameras cannot "see" the ball on the tee, the specific tee box origin of the ball in flight can be determined. In addition, U.S. Patent Publication No. 20180011183 describes a system for tracking multiple projectiles using radar, in which one or more radar devices are positioned to maximize the field of view (beam coverage) of the radar device(s) [Overview of the Initiative]
[0003] This specification describes techniques for tracking objects in flight, such as golf balls, using data acquired from cameras, radar, and / or other sensor devices, and specifically, techniques related to trajectory extrapolation and origin determination during full-flight three-dimensional (3D) tracking.
[0004] Generally, one or more aspects of the subject matter described herein can be embodied in one or more systems including two or more defined physical locations from which a golf ball is driven into three-dimensional physical space, one or more golf ball sensors positioned with respect to three-dimensional physical space to detect the golf ball in flight after it has been driven into three-dimensional physical space from the two or more defined physical locations, and one or more computers communicably coupled to the one or more golf ball sensors, wherein the one or more computers include at least one hardware processor and at least one memory device coupled to at least one hardware processor, the at least one memory device encoding instructions configured to cause at least one hardware processor to perform operations including determining a three-dimensional trajectory for the golf ball in three-dimensional physical space based on initial observations of the golf ball by one or more golf ball sensors, extrapolating the three-dimensional trajectory of the golf ball backward in time to generate an extrapolated trajectory, calculating distance measures between the extrapolated trajectory and the two or more defined physical locations, and waiting for additional observations of the golf ball by one or more golf ball sensors if none of the distance measures satisfy a threshold distance. If only one of the distance measures satisfies the threshold distance, an error measure is formed for one of two or more defined physical locations corresponding to only one of the distance measures from the systematic error estimated for at least one of the initial observations of the golf ball by one or more golf ball sensors and the estimated stochastic error associated with at least one of the initial observations of the golf ball by one or more golf ball sensors. If the error measure satisfies a predefined criterion, one of the two or more defined physical locations is identified as the origin for the golf ball. If the error measure does not satisfy the predefined criterion, one or more golf ball sensors await additional observations of the golf ball.If two distance measures satisfy a threshold distance, a first error measure is formed from estimated systematic errors and estimated stochastic errors for the first of two or more defined physical locations corresponding to two of the first distance measures; a second error measure is formed from estimated systematic errors and estimated stochastic errors for the second of two or more defined physical locations corresponding to two of the second distance measures; if the first error measure satisfies a predefined criterion and the second error measure does not, the first of two or more defined physical locations is identified as the starting point for the golf ball; if the second error measure satisfies a predefined criterion and the first error measure does not, the second of two or more defined physical locations is identified as the starting point for the golf ball, and neither the first nor the second error measure satisfies a predefined criterion, one or more golf ball sensors await additional observations of the golf ball. These and other embodiments may optionally include one or more of the following features:
[0005] The operation may include presenting golf ball tracking data on a display device associated with a defined physical location identified as the origin of the golf ball, and the presentation may include selectively presenting one or more metrics for the golf ball in flight in three-dimensional physical space based on estimated systematic error, estimated stochastic error, or both estimated systematic error and estimated stochastic error.
[0006] Selectively presenting one or more metrics may include calculating a measure of error for ball velocity using estimated stochastic errors, and displaying the calculated ball velocity value for the three-dimensional trajectory of the golf ball on a display device if the measure of error for ball velocity falls below a threshold. Selectively presenting one or more metrics may include calculating a measure of error for the ball spin vector using estimated systematic errors and estimated stochastic errors, and displaying the calculated ball spin value for the three-dimensional trajectory of the golf ball on a display device if the measure of error for the ball spin vector falls below a threshold. Selectively presenting one or more metrics may include calculating a measure of error for launch angle using estimated systematic errors and estimated stochastic errors, and displaying the calculated launch angle for the three-dimensional trajectory of the golf ball on a display device if the measure of error for launch angle falls below a threshold.
[0007] Presenting golf ball tracking data on a display device associated with a defined physical location identified as the origin of the golf ball may involve presenting one or more metrics at a time different from presenting a golf shot animation or ball trace overlay for a golf ball in flight in three-dimensional physical space.
[0008] Calculating distance measures may involve checking the intersection of an extrapolated trajectory with geometric shapes representing two or more defined physical locations. The operation may also involve determining the striking positions for two or more golfers to define two or more physical locations from which a golf ball is driven into three-dimensional physical space, and using those striking positions to specify the positions of the geometric shapes.
[0009] Determining the hitting position may include using input from at least one electronic positioning system communicating with the mobile devices of two or more golfers. Furthermore, determining the hitting position may include using at least one electronic positioning system to locate the position of a given golfer's mobile device, offsetting the position of the mobile device in a first direction in response to the given golfer being right-handed to determine the hitting position relative to the given golfer, and offsetting the position of the mobile device in a second direction opposite to the first direction in response to the given golfer being left-handed to determine the hitting position relative to the given golfer.
[0010] One or more aspects of the subject matter described herein can be embodied in one or more ways and / or in one or more tangible computer-readable media (e.g., at least one memory device) to encode instructions configured to cause at least one hardware processor to perform the aforementioned operations.
[0011] In addition, one or more embodiments of the subject matter described herein can be embodied in one or more methods and / or one or more tangible computer-readable media (e.g., at least one memory device) and can encode instructions configured to cause at least one hardware processor to perform operations including: determining at least one three-dimensional trajectory for at least one golf ball driven into three-dimensional physical space based on observations by at least one golf ball sensor placed adjacent to that three-dimensional physical space; calculating systematic and stochastic errors for at least one three-dimensional trajectory according to the launch position of the golf ball, variations in position relative to at least one golf ball sensor, or both; and presenting a report outlining the calculated systematic and stochastic errors to indicate a preferred striking position, a different position relative to at least one golf ball sensor, or both. These and other embodiments may optionally include one or more of the following features:
[0012] The calculation may include calculating systematic and stochastic errors for at least one three-dimensional trajectory according to the variation in position relative to at least one golf ball sensor, the method / operation may include identifying at least one different position relative to at least one golf ball sensor that produces lower systematic and stochastic errors, and the presentation may include presenting a report outlining the systematic and stochastic errors calculated to indicate at least one different position relative to at least one golf ball sensor.
[0013] This method / operation may involve moving at least one golf ball sensor to at least one different location. The calculation may involve calculating systematic and stochastic errors according to the variation in parameters for at least one golf ball sensor. The at least one golf ball sensor may be at least two golf ball sensors placed adjacent to each other in three-dimensional physical space, and this method / operation may involve preparing a report for each available tee position using the lowest values of systematic and stochastic errors calculated for at least two golf ball sensors.
[0014] The parameters may include the field of view, and the method / operation may include identifying different fields of view for at least two golf ball sensors, which are variations in the initial field of view that result in low systematic and stochastic errors, and presenting may include presenting a report outlining the systematic and stochastic errors calculated to show the different fields of view for at least two golf ball sensors. The method / operation may include adjusting the initial fields of view for at least two golf ball sensors to different fields of view.
[0015] At least one golf ball sensor may include a camera, and calculating the systematic error may include estimating an intrinsic calibration error based on the camera's focal length. The camera may be a stereo camera, and estimating the intrinsic calibration error may include calculating the parallax relative to the stereo camera based on the distance between the stereo camera and the first observation, and calculating the systematic error may include estimating the stereo calibration error relative to the stereo camera as the estimated error in the calibrated rotation of the stereo camera. Furthermore, calculating the stochastic error may include estimating the aggregate random parallax error for the extrapolated trajectory, and adjusting the measure of the error from the aggregate random parallax error based on the distance from the initial observation to the baseline relative to the stereo camera. Finally, one or more embodiments of the subject matter described herein can be embodied in one or more systems and / or apparatus that implement the aforementioned methods / operations.
[0016] Various embodiments of the subject matter described herein can be implemented to achieve one or more of the following advantages: The starting point of the tracked golf ball can be identified quickly, yet accurately, even when the golf ball tracking system is used to track golf balls launched from multiple different golf bays (or other defined physical locations) simultaneously, thus reducing the number of golf shots that are assigned to incorrect launch positions and / or cannot be assigned to a launch position until well after the golf shot has been struck. This can occur if the golf ball tracking system starts tracking the golf ball at an angle that causes slower-than-usual tracking and more errors (e.g., parallax errors in a stereo camera system that translate into errors when selecting the correct launch position).
[0017] To address this problem, an error associated with a first point within each trajectory for a detected golf shot can be estimated, and an evaluation can be performed regarding how that error affects the shot location selection. This can involve estimating two types of errors in the extrapolated trajectory from a point within each trajectory: (1) a systematic error that affects the position error in the same way as for the first point with respect to the extrapolated point back to the shot location, and (2) a probabilistic error that affects the angle of the extrapolated trajectory resulting from points within each trajectory, which has a random position error. The systematic error can be calculated by estimating the vector value error of the first observed position of the trajectory, and projecting this value back onto the selected shot location to determine how much this error affects the shot location selection can affect the shot location selection. The probabilistic error can be calculated by estimating the angular error of the first observation of the trajectory to determine how much this error can affect the backward extrapolation algorithm, and multiplying this error by the distance to the selected shot location to determine how much this error can affect the shot location selection. Considering these two types of errors, the number of golf shots inaccurately assigned to a starting point can be significantly reduced without increasing the delay (e.g., waiting for more data and / or a new version of the trajectory) before the golf shot is presented to the golfer.
Advantages of the Invention
[0018] In addition, the systematic and probabilistic error calculations can be used to improve the performance of an object tracking system in an unstructured environment. For example, in the case of a grass tee line on an open field or driving range, the systematic and probabilistic error calculations can be used to identify the starting points of golf shots hit by multiple golfers standing very close to each other on the tee line. Moreover, the systematic and probabilistic error calculations can be used to improve the golfer's experience and / or improve the object tracking system setup, thereby facilitating the deployment of an effective system using a minimum number of sensors for a given range.
[0019] Furthermore, a separate, dedicated golf ball tracking system is not required for each hitting position, which reduces costs in a system where multiple golfers hit golf balls simultaneously. Using fewer golf ball tracking systems at a site, such as a golf driving range, can reduce the work required to manage the system and correct hardware errors or repair malfunctions. Moreover, a wider field of view can be achieved, for example, within a golf bay, where fewer components need to be placed near the golfer. For example, there is no requirement for a golf ball tracking system that uses the systems and techniques detailed in this disclosure to install tracking units within each golf bay of a golf entertainment facility. Moreover, fewer tracking systems reduce the overall complexity of the system from a software perspective, especially when a golf facility is completely covered by only a single system.
[0020] Details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the following description. Other features, aspects, and advantages of the invention will become apparent from the description, the drawings, and the claims.
Brief Description of the Drawings
[0021] [Figure 1] An example of a system that performs 3D tracking of a golf ball during flight through three-dimensional space is shown. [Figure 2A] A schematic diagram of two golf bays, one of which is identified as the origin of a golf shot by a golf ball sensor system. [Figure 2B] A schematic diagram of a data processing system that identifies one golf bay as the origin of a golf shot among two or more golf bays. [Figure 3A] A flowchart showing an example of a process for determining the physical position of a hit golf ball detected and tracked during flight. [Figure 3B] An example of systematic errors caused by errors in the calibration of a tracking device and / or tracking system is shown. [Figure 3C]This example illustrates how systematic errors can affect the error in estimating whether Golf Bay is the starting point of a golf shot. [Figure 3D] This shows an example of a probabilistic error caused by noise in sensor readings. [Figure 3E] This example illustrates how stochastic error affects the error in estimating whether a golf bay is the starting point of a golf shot. [Figure 4A] Here is another example of a system that performs 3D tracking of a golf ball in flight through a three-dimensional space. [Figure 4B] This shows an example of a system that performs 3D tracking of a golf ball in flight with respect to its layout relative to the golf bay, which can be used with the system shown in Figure 4A. [Figure 5A] This flowchart shows another example of the process for determining the launching physical location of a golf ball that was detected and tracked during flight. [Figure 5B] This example shows a system that performs 3D tracking of a golf ball in flight using a personal mobile device for golfers. [Figure 6A] This flowchart shows another example of the process for determining the launching physical location of a golf ball that was detected and tracked during flight. [Figure 6B] This flowchart shows another example of the process for determining the launching physical location of a golf ball that was detected and tracked during flight. [Figure 6C] Here is another example of a system that performs 3D tracking of a golf ball in flight using a personal mobile device for golfers. [Figure 7] This flowchart shows an example of a process for selectively presenting measurement criteria for golf shots. [Figure 8A] This flowchart shows an example of the process for determining the effective coverage of one or more sensors in an object tracking system. [Figure 8B] An example of an error map for a deployed object tracking system is shown. [Modes for carrying out the invention]
[0022] Similar reference numbers and designations in various drawings refer to the same elements.
[0023] Figure 1 shows an example of a system 100 that performs 3D tracking of a golf ball in flight through three-dimensional space. In this example, system 100 is part of a golf facility that includes a target 120 on a golf driving range 110 and a building 115 that includes a golf bay 130. Note that in Figure 1, the building 115 is shown as a rectangle, but in a typical embodiment, there is a curved portion of the building facing the golf driving range 110, so that the golf bay forms a crescent shape. The target 120 may include an RFID tag questioner that reads the RFID tags attached to golf balls struck from the golf bay 130, which is positioned in two or more tiers on the building 115. Furthermore, one or more of the targets 120 may include discrete portions of a network that feed the golf balls into their respective RFID reader boxes associated with different sections. However, in some embodiments, the golf ball sensor systems 140, 150 can be used to track a golf ball in flight and identify where the golf ball landed, without using such an RFID system, thus eliminating the need for such RFID tags or RFID tag interrogators.
[0024] In the example in Figure 1, the three-dimensional space through which the golf ball is tracked is the golf driving range 110, which can be of various shapes and sizes, but is typically 300-500 feet wide and 600-900 feet long. The golf driving range 110 may be flat or may include small hills or one or more slopes, and may also include hazards such as ponds and bunkers. Note that such hazards do not need to contain actual water or sand, but can simply be colored to appear as if they do. The golf driving range 110 may be made of real grass or artificial turf. Furthermore, the targets can be categorized to roughly represent their distance from the building 115, and the targets may have various shapes, such as the circular shape of the main target and the rectangular shape of the groove targets at the edge of the driving range 110, as well as distinct colors for each target 120 or group of targets 120. Other shapes and sizes for the targets 120, as well as different numbers of targets 120 than those shown, are also possible. However, in some embodiments, no specific target is required in three-dimensional space, and / or no building is required. For example, the golf ball sensor systems 140, 150 can be installed on an open field or inside a sports stadium or arena.
[0025] Generally, the golf ball sensor systems 140, 150 are used to identify from which of a plurality of defined physical locations 130 a golf ball was struck. The golf ball sensor systems 140, 150 include at least one golf ball sensor 140 and at least one computer 150 communicably coupled to the golf ball sensor 140. The golf ball sensor 140 can be one or more sensors of one or more different types. For example, the golf ball sensor(s) 140 can be an optical sensor (e.g., one stereo camera or two cameras operating together to provide stereoscopic view of the golf ball in flight), a radar sensor, or a combination thereof. In some embodiments, two or more stereo cameras 140 are used to track the golf ball in flight in three-dimensional space. In some embodiments, at least one golf ball sensor 140 is a sensor unit integrating a radar device and a camera to track a golf ball in three dimensions, in which case the camera is used to provide angular information relative to the golf ball in a two-dimensional plane, and the radar device is used (in combination with the camera) to provide depth information relative to the golf ball in a dimension perpendicular to the plane for each camera observation during the flight of a golf shot, for example, and the radial distance to the golf ball is used to calculate the depth distance to the ball based on the camera angle relative to the camera observation during the flight (using a pinhole camera model, trigonometry, and a known separation distance between the camera and the radar device, where the distance may be zero). Other sensor types and combinations of sensor data are also possible, such as one or more phased array radar devices for determining the angle and distance relative to the ball, or two or more radar devices for constructing a 3D flight trajectory by combining their measured data.
[0026] The golf ball sensor(s) 140 is positioned with respect to the three-dimensional physical space to detect the golf ball in flight after it has been struck into the three-dimensional physical space from a defined physical position 130. In some embodiments, the golf ball sensor(s) 140 is positioned such that it does not allow the sensor to observe the golf ball at the moment of its strike from the defined physical position 130. For example, the golf ball sensor(s) 140 can be mounted on the sunshade at the upper front of the golf bay 130, which can provide a wider field of view for the golf ball sensor(s) 140, but the systems and techniques detailed in this disclosure do not require the tracking unit to be included inside the golf bay.
[0027] In some embodiments, the golf ball sensor(s) 140 are positioned to allow the sensor to observe the golf balls at the moment of their launch from a defined physical position 130. However, as can be seen, even with such positioning, each individual golf ball may not be detected until after the launch has already occurred, and therefore sensor observation of golf balls near the launch point may often be unavailable. Thus, regardless of whether the golf ball sensor(s) 140 can observe the tee position, the systems and techniques detailed in this disclosure can be used to determine the ball trajectory and to identify the position 130 from which each ball was launched.
[0028] The golf ball sensor(s) 140 are communicatively coupled to one or more computers 150. This can be a wired connection enabling the golf ball sensor(s) 140 to provide data to the computers 150, a wireless connection enabling the golf ball sensor(s) 140 to provide data to the computers 150, or a combination thereof, and these connections can be unidirectional, duplex, or half-duplex. In some embodiments, at least one computer 150 is connected to or integrated with each of two or more sensors 140 to create a discrete sensor system that detects and tracks golf balls individually / separately in three-dimensional space and, as a result, provides individual trajectory predictions based on separate observations of the same golf ball flying through three-dimensional space. Hereinafter, “observation” is the identification of sensor data indicating a golf ball based on predefined criteria, regardless of the type of sensor(s) used.
[0029] Such discrete golf ball sensor systems may also be communicatively coupled to a central computer system 150, for example, one or more server computer systems, which integrates trajectory predictions received from the discrete golf ball sensor systems to make a final decision on which of the defined physical locations 130 should be identified and reported as the origin for a particular golf ball being tracked. Note that the central computer(s) 150 may be part of a computer system (e.g., for a golf facility) that manages a golf game and transmits information about golf shots (e.g., simulated golf shot animations in a virtual golf game and / or ball trace overlays in an augmented reality golf shop viewer) to display devices associated with the physical locations 130. In either case, the computer(s) 150 includes at least one hardware processor and at least one memory device coupled to the at least one hardware processor, which is constructed and / or programmed to perform the operations detailed in this disclosure.
[0030] Furthermore, the defined physical location 130 may be a golf bay, a teeing position within a golf bay, or a teeing position in general. In some embodiments, the three-dimensional space is not a golf driving range, as illustrated. Thus, the defined physical location 130 from which the golf ball is launched may be a designated hitting position, such as one marked on the ground by chalk, tape, or rope, and the three-dimensional space may be any safe location within a sports stadium or arena, or an open field reserved for a golf event, where it is safe to hit a golf ball. For example, in some embodiments, the three-dimensional space may be a wide open grassy area, and the defined physical location 130 may be a location along a teeing line chosen by an individual golfer. In this specification, references to “golf bay” should be understood to include teeing areas or teeing positions in general, unless explicitly described as an embodiment limited to a golf bay having two or more teeing areas within a golf bay.
[0031] Figure 2A is a schematic diagram of two golf bays 220A and 220B, one of which is identified by the golf ball sensor system 200 as the starting point of a golf shot. The golf ball sensor system 200 is an example of the golf ball sensor systems 140 and 150 from Figure 1. The golf ball sensor system 200 detects a golf ball 210 in flight after it has been struck from one of the two or more golf bays. From this initial observation of the golf ball and one or more subsequent observations of the golf ball, the system 200 determines a three-dimensional trajectory 212 (note that for clarity of explanation, the figure represents only two dimensions). The three-dimensional trajectory 212 is then extrapolated backward in time to generate an extrapolated trajectory 214, which intersects both golf bays 220A and 220B. Therefore, from the initial observation, it is not immediately possible to determine which of the two golf bays 220A and 220B should be identified as the starting point of the golf shot.
[0032] Measuring and estimating the trajectory of a golf ball is useful in numerous applications to enhance the golf experience. One example is a golf driving range, where such processing of golf ball observations by sensors (one or more) is used to provide golfers with feedback and metrics. However, such processing is also useful for recreational purposes, such as playing virtual golf courses and other games. In any case, if, for example, one golf ball sensor system 200 is used to track golf balls launched from two or more golf bays 220A, 220B, to save the costs associated with having a dedicated sensor system for each golf bay, the trajectory estimating system should be able to handle multiple golfers simultaneously and thus distinguish which shot was hit by which golfer. In the example shown in Figure 2A, system 200 can wait for more observations of golf balls 210 to improve the accuracy of the estimated trajectory, but this would delay the identification of the launching golf bay. Conversely, the earlier the system 200 identifies the launching golf bay for a golf shot, the higher the probability of misidentifying which of golf bays 220A or 220B is the launching golf bay, which is unacceptable from the user's perspective. This creates an undesirable trade-off between (1) unnecessarily delaying the identification of the launching golf bay for golf shots with trajectories that can be easily tracked backward to a single bay, even when only a few observations are being made, and (2) misidentifying the launching golf bay for golf shots with trajectories that are more difficult to distinguish as originating from one of two adjacent golf bays. The system and technology described herein make it possible to eliminate this undesirable trade-off, and thus both (1) and (2) can be avoided.
[0033] Figure 2B is a schematic diagram of a data processing system including a data processing unit 250 that identifies one golf bay as the starting point of a golf shot among two or more golf bays. The data processing unit 250 can be connected to one or more computers 290, a display device 290, or both, via a network 280. Although only one computer is shown as the data processing unit 250 in Figure 2A, multiple computers can be used. Thus, one or more of the golf ball sensor systems 140, 150, 200, 410, 420, 490, and 500 from Figures 1, 2A, 4A, 4B, 5, and 6C can be implemented using the data processing unit 250.
[0034] The data processing unit 250 may include various software modules, which can be distributed between the application layer and the operating system. These may include executable and / or interpretable software programs or libraries, which may include program 270 operating as a 3D object flight tracking system. The number of software modules used may vary from implementation to implementation, and the software modules can be distributed across one or more data processing units connected by one or more computer networks or other suitable communication networks. Furthermore, in some cases, the functions described are implemented (partially or completely) in the firmware and / or hardware of the data processing unit 250 to improve operating speed. Thus, the program(s) and / or circuit 270 can be used to implement a ball detector, tracker, and trajectory determination & ball origin identification system, as detailed in this disclosure.
[0035] The ball detector & tracker and trajectory determination & ball origin identification program / circuit 270 employs a physical model for golf ball flight to extrapolate portions of the trajectory that are outside the sensor's field of view or missed by the sensor for other reasons. The data processing unit 250 may include hardware or firmware devices, including one or more hardware processors 252, one or more additional devices 254, a computer-readable medium 256, a communication interface 258, and one or more user interface devices 260. Each processor 252 is capable of processing instructions for execution within the data processing unit 250. In some embodiments, the processors 252 are single or multithreaded processors. Each processor 252 is capable of processing instructions stored on the computer-readable medium 256 or on a storage device such as one of the additional devices 254. The data processing unit 250 uses its communication interface 258 to communicate with one or more computer / display devices 290, for example, via a network 280. Therefore, in various embodiments, the described processes can be executed in parallel or sequentially on single or multi-core computing machines and / or on computer clusters / clouds, etc.
[0036] Examples of user interface devices 260 include display devices, touchscreen display devices, cameras, speakers, microphones, haptic feedback devices, keyboards, and mice. The data processing device 250 may store instructions for implementing the operations detailed in this disclosure on, for example, a computer-readable medium 256 or one or more additional devices 254, such as one or more floppy disk drives, hard disk drives, optical disk drives, tape drives, and solid-state memory devices. Generally, the computer-readable medium 256 and the one or more additional devices 254 storing the instructions are examples of at least one memory device encoding instructions configured to cause at least one hardware processor to perform the operations detailed in this disclosure.
[0037] The additional devices (one or more) 254 may also include one or more sensors 140, 410, for example, when the sensors and computer are integrated together within a built-in golf ball sensor system, such as systems 200, 490, 500, 660. The one or more sensors 140, 410 may also be located far from the data processing device 250, and data from such sensors (one or more) 140, 410 can be obtained using one or more communication interfaces 258, such as interfaces for wired or wireless technology. Such communication interfaces 258 can also be used to transmit extrapolated trajectories, proposed launch golf bays, measures of confidence (one or more error measures) for the proposed launch golf bays, and / or other data to another computer system. For example, two or more data processing devices 250 could be a discrete golf ball sensor system that tracks golf balls individually in a three-dimensional physical space and reports their results to another data processing device 250, which then determines which results to use and which golf bays 220A, 220B should be identified as the launching golf bays. This information can be transmitted to a computer / display device 290, which could be a disk device placed in the identified golf bay or a data processing device 250 (e.g., a smartphone or tablet computer) held by a person inside the identified golf bay.
[0038] Figure 3A is a flowchart illustrating an example of the process for determining the launch physical position of a golf ball detected and tracked in flight. It should be noted that this is just one example, and the operations described can be performed in a different order, still achieving the desired results. The observation of the golf ball is identified within the sensor data (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) (300). This involves processing data received from one or more sensors (e.g., sensors 140, 200, 410, 490, 500, 660) to find data indicating the golf ball based on predefined criteria for the sensor type(s). For example, for radar data, a ball velocity criterion can be used according to a known velocity range for the golf ball, corresponding to the expected velocity for a golf shot that has just been struck or was previously detected and is currently being tracked. As another example, camera data can be processed in real time (for example, using an object classifier) to identify various objects within the video stream, such as candidate golf balls, as part of the image data stream.
[0039] Observations of golf balls are associated with previously detected golf shots, and new golf shots are detected (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) (302). Note that detection & association 302 and identification 300 can be performed together as soon as sensor data of a golf ball in flight is received. This may involve simultaneous and / or concurrent processing using parallel processing or multitasking processor architectures. For camera data, a golf shot can be detected if a set of candidate balls across a set of video frames satisfies or exceeds one or more established criteria for a golf shot (302). In some embodiments, analysis of image data involves automatic adjustment of one or more thresholds (e.g., pixel-optimized thresholds) to maximize sensitivity to objects of interest (e.g., objects that look like golf balls) and real-time filtering to enable detection of golf shots before all image data of the golf shot is received.
[0040] A ball speed criterion can be used for radar data so that the radar time series can only begin within a certain speed range corresponding to the possible speed range for a golf ball (e.g., 10 to 250 miles per hour). Similarly, if range data is directly available from the radar sensor, objects detected outside a predefined range can be ignored. Since a series of radar measurements are received in real time, additional criteria can be used across those measurements. For example, a series of radar measurements of a golf shot should show a decrease in speed over time, and this fact can be used to identify the golf shot within the radar data. Thus, golf balls detected at unexpected distances or speeds, as well as other objects such as birds and airplanes, can be easily ignored.
[0041] Furthermore, when two or more sensor types are used, data from different sensor types can be used to enhance golf shot detection and tracking. For example, if a golf shot is identified in radar data, a signal can be sent to trigger adjustments to one or more criteria used in the analysis of image data from a camera. This allows the analysis to help select a set of object identifications corresponding to the golf shot, thus increasing the likelihood of identifying the golf shot. It should be noted that the exchange of data between different sensor types (e.g., data from radar and camera devices) can be done both ways to improve the robustness of shot detection. By implementing two or more such matchings of data from different sensor types, the system can be made even more robust for golf driving ranges (or golf-themed recreational venues) with multiple golfers.
[0042] When radar is used in combination with optical tracking, for example, the use of the depth distance calculation described above, it should be noted that associating radar ball velocity with correct optical tracking may involve designing or programming (e.g., by mode setting) the radar device to report the velocities of multiple objects along with all measurements. Thus, rather than selecting the fastest velocity (or the strongest reflection) and transmitting only that velocity, the radar device can be configured to report the velocity of the fastest object or the object with the strongest radar reflection. Using such an operating mode, some robustness for multiple balls in the air can be achieved in the following way: (1) identifying the correct radar time series based on correlation in time; (2) for each new set of radar measurements, testing all received velocities against the velocities predicted by the model; and (3) if any of the reported velocities fall within the threshold distance of the predicted ball velocities in the existing radar time series model, the value is added to the sequence, the model is updated, and the system awaits the next set of measurements. Nevertheless, in some embodiments, only one sensor type, for example, a system of two or more stereo cameras, is used.
[0043] The process continues to receive and analyze incoming sensor data to identify ball observations (300) while there are no unassociated observations remaining in the current sensor data (304). If ball observations are identified (300) but cannot be associated with previously detected golf shots (302), these ball observations are still considered to be attempting to detect new golf shots (302), and the process continues to receive and analyze incoming sensor data to identify ball observations (300) while there are unassociated observations remaining in the current sensor data (304) but new golf shots are still being detected (306). In addition, if new golf shots are detected (306), a separate process can be generated to determine the origin of those new golf shots. This separate process operates even while new sensor data is being received and analyzed to identify additional golf ball observations (300) and associate the new ball observations with newly detected golf shots that may or may not have a determined origin for those golf shots (302). In other words, golf shot detection, golf shot origin determination, and golf ball flight tracking can all be performed simultaneously and in real time for multiple golf balls while the golf ball is still in flight and additional golf balls are being hit.
[0044] When a new golf shot is detected, the three-dimensional trajectory of the golf ball in three-dimensional physical space is determined (for example, by a computer (single or multiple) 150, 200, 250, 420, 490, 500, 660) based on the initial observation of the identified golf ball (300) (310). This may involve using a physical model for the flight of the golf ball applied to the three-dimensional coordinates in three-dimensional physical space, as determined from the initial observation of the golf ball. Thus, the effects of gravity (e.g., drag, lift, and gravity) are taken into account, and other physical parameters such as wind speed and direction, estimated ball spin, etc., may also be taken into account.
[0045] In some embodiments, physical modeling and extrapolation of the trajectory are performed before associating different shots. The physical model can be determined from all observations of the golf ball, not just the initial(s) or more. The physical model may include modeling the forces that affect the golf ball throughout the flight, including gravity, drag, and lift, and these forces depend on the environment, the physical properties of the golf ball, wind speed and direction, and the ball speed and spin of the golf ball.
[0046] The three-dimensional trajectory of the golf ball is extrapolated in time backward (and potentially forward) (312) by a computer (one or more) 150, 200, 250, 420, 490, 500, 660 to generate an extrapolated trajectory. However, rather than simply finding the intersections between the extrapolated trajectory and the geometry representing the golf bay, which could be two intersections as shown in Figure 2A, one or more distance measures are calculated between the extrapolated trajectory and two or more defined physical locations (314) by a computer (one or more) 150, 200, 250, 420, 490, 500, 660. For example, each intersection between the extrapolated trajectory and one or more geometric shapes representing one or more golf bays (e.g., square, rectangle, annular sector, cube, box, cuboid, 3D annular sector, etc.) can be calculated, and the distance between these intersections (one or more) and the center point of each golf bay (or a predefined tee area within a golf bay, or the main launch position within a golf bay or tee area) can be calculated as a distance measure (one or more) (314).
[0047] As another example, the minimum distance between the extrapolated trajectory and the outside of a geometry representing the golf bay (or a predefined teeing area within the golf bay, or the main hitting position within the golf bay or teeing area), or between the extrapolated trajectory and the center points of these geometric shapes can be calculated (314). Other distance measures are also possible, including combinations of two or more measurements, such as the average of the shortest distances between (1) the trajectory and the outside of the geometric shape, and (2) the trajectory and the center points of the geometric shape. The distance measure(s) may also take into account the geometric relationships of the golf bay (or teeing area, or hitting position) with respect to the current golf shot, such as when the last intersecting geometry (from the modeled launch point of the golf shot) is considered to take precedence over the first intersecting geometry.
[0048] Next, a measure of certainty for the calculated distance measure(s) can be determined for use in deciding whether and when to identify the golf bay as the starting point of a golf shot, in order to address errors in trajectory observation and in extrapolating the trajectory back to the golf bay's location. This can be particularly important when the extrapolated trajectory of a golf shot intersects both bays at similar distances to their center points, as shown in Figure 2A, especially if there are two or more tracking systems at the site and another tracking system may soon provide better results, as it may be better not to display the shot at all rather than to display it to the wrong user. Thus, for example, an estimate of the error in the extrapolated trajectory at the point where it intersects the golf bay can be calculated to estimate the level of certainty regarding the starting golf bay, and the system may choose not to display the golf shot to the user if there is too much uncertainty regarding its starting point.
[0049] It should be noted that the error measure generated for a calculated (314) distance measure does not need to use that distance measure as input, although in some embodiments it can. For example, a first distance measure can be calculated to determine which golf bay should be considered a possible launch bay, and a second distance measure can be calculated for use in generating an error measure for that selected golf bay. Furthermore, one or more error measures can be calculated based on the geometric relationship between (1) at least one of the initial observations and the extrapolated trajectory, and (2) one or more of two or more defined physical positions.
[0050] The error in the extrapolated trajectory varies depending on the various characteristics of the tracking sensor, but in order to facilitate the construction of an effective system that can rapidly generate information estimates, the extrapolated trajectory error can be reduced to two types of errors: (1) systematic errors that affect the observed ball position, and (2) stochastic errors that affect the angle of the trajectory determined from the observed ball position. Furthermore, this system can estimate these two types of errors separately. The systematic error for at least one of the initial observations of the golf ball by one or more golf ball sensors can be estimated (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) (316), and the stochastic error associated with at least one of the initial observations of the golf ball by one or more golf ball sensors can be estimated (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) (318). For example, one or more golf ball sensors may include a stereo camera (one or more cameras), and estimating systematic errors may include estimating an intrinsic calibration error based on the focal length of the cameras and the parallax relative to the stereo camera, and estimating a stereo calibration error relative to the stereo camera as an estimated error in the calibrated rotation of the stereo camera.
[0051] Figure 3B shows an example of systematic error caused by errors in the calibration of tracking devices and / or tracking systems. Systematic error can arise from errors when calibrating the sensors themselves or when the system is set up, for example, when the sensor system is calibrated together. For example, in the case of a stereo camera sensor system, systematic error can also arise from the individual calibration of each camera and from the stereo calibration of each stereo system.
[0052] Systematic errors generally act as a kind of offset, similarly affecting two consecutive sensor readings. This means that the error in one observation is roughly equal to the error in the previous observation. Thus, as shown in Figure 3B, the error between the actual position 316BO of the ball observed by the sensor and the observed position 316SO remains constant, including the extrapolated portion of the trajectory. Thus, this position error remains the same all the way back to the golf bay 316GB between the unobserved actual position 316BE of the ball and the extrapolated ball position 316SE. Furthermore, while systematic errors can be estimated for any observation 316SO of the golf ball, all that is needed is the estimation of the error vector e1 for the first observation of the golf ball, and this error vector e1 is essentially the same as the error vector e bay Equally, the systematic error in the first (or later) golf ball observation causes similar size and orientation errors in the golf bay, so it is the systematic position error in the golf bay 316GB, i.e., this error is independent of extrapolation back to the golf bay 316GB.
[0053] Therefore, the systematic error can be estimated using the first, second, third, fourth, or later observations of the golf ball to determine the error vector, which can be estimated to be the same as the error vector of the ball's position in the bay. This error vector can then be projected onto a direction vector pointing along a row of adjacent golf bays to determine how it affects the selection of a golf bay as the launching golf bay for a golf shot. Thus, the geometric relationship between the golf bay and the current golf shot is taken into account.
[0054] A detailed example of this in the context of a stereo camera tracking system is provided here. Note that in a stereo camera system, positional errors can be influenced by the following source errors: (1) errors in intrinsic calibration, and (2) errors in stereo calibration. Errors in intrinsic calibration can be understood as having the following effects in a stereo camera system: (1) errors in focal length, which increase linearly from zero to a reasonably large amount of error at the principal point of the image as the person moves toward the edge (an error proportional to the distance r to the principal point of the image); and (2) errors in distortion coefficient, which show a polynomial increase from zero to a reasonably large amount of error at the principal point of the image (r 2 +r 4 (3) Error proportional to (x,y), and (4) Error in the distortion model, which increases and / or decreases nonlinearly from zero at the principal points of the image to some other amount of error (error proportional to f(x,y)). Given these factors influencing the error, in order to simplify the error model, the second and third of these two factors (polynomial increase and nonlinear increase / decrease) can be ignored, and it can be assumed that the error in the intrinsic calibration is zero in the middle of the image and increases linearly as it moves toward the edges of the image. Note that the system can employ a distortion model that attempts to eliminate all of these errors. However, the distortion model and the attempt to eliminate distortion are not perfect, and some of this residual error is more significant than other parts of this residual error, so some residual error is likely to remain in the system.
[0055] Furthermore, errors in stereo calibration can be understood to have the following effects in a stereo camera system: (1) errors in the calibrated rotation of the camera, which are roughly equal to the distance from the camera to the point multiplied by the angle of rotation error; and (2) errors in the calibrated position of the camera, which directly lead to position errors of the points. It should be noted that the second of these is likely to be very small and has little effect on the position error in a given stereo camera embodiment. Therefore, the second of these effects can be ignored without issue. It is the more important part of the residual errors that needs to be addressed in terms of their effect on the selection of the golf bay as the starting point for a golf shot.
[0056] In the detailed example below, bolded variables are vectors, the "hat" (^) symbol indicates a direction (unit) vector of length 1, |x| indicates the absolute value of x, ||a|| indicates the vector norm of a, × indicates the cross product between two vectors, and · indicates the scalar (dot) product between two vectors. The systematic error vector e1 for one or more observations of the golf ball can be calculated according to the following formula:
number
number
number
[0057] The extent to which the error vector e1 influences the error in the golf bay estimation is determined by the direction of the error vector e1 compared to the (hit) direction, as shown in Figure 3C. In Figure 3C, e is the error vector e that influences the golf bay selection. bay It is part of this. This is:
number
number
[0058] Figure 3D shows an example of a stochastic error caused by noise in sensor readings. Stochastic errors can arise from errors in tracking a golf ball, for example, from noise present in different tracking operations. For example, a stereo camera tracking system may have small random errors in a two-dimensional (2D) tracking operation, causing pixel errors in the image coordinates of the golf ball observations, parallax errors, and affecting the error in the estimated depth (distance) relative to the golf ball, e_disp, and / or the error in the estimated direction relative to the golf ball, e_dir. This results in an angular error between the first and last observation points, which causes the physical model to perform a slightly incorrect extrapolation to the posterior.
[0059] Therefore, stochastic errors affect different parts of the observed trajectory differently, and the error in each observation of the golf ball is independent of the error in previous observations. As shown in the example in Figure 3D, the error between the actual position 316BO of the ball observed by the sensor and the observed position 318SO is inconsistent. The extrapolation algorithm used to determine the trajectory of the golf ball is based on the physical forces acting on the golf ball, and therefore the algorithm attempts to estimate the changes in the state of the golf ball between time steps. This means that it is more susceptible to relative errors between data points. Thus, this position error between the unobserved actual position 316BE of the ball in golf bay 316GB and the extrapolated ball position 318SE can differ significantly from the position error between any given actual ball position 316BO and its observation 318SO.
[0060] Similar to systematic errors, stochastic error estimation can begin from the first (or later) observation point. Generally, stochastic errors can be estimated for any point in the trajectory, but in many embodiments, the accuracy and usefulness of the data likely decrease as you move further away from the first observation of the golf ball, so stochastic error estimation begins from the first point in the trajectory. In any case, to understand how this error affects the error of the extrapolated point in Golfbay 316GB, this error is converted to an angular error, since the extrapolation algorithm is more affected by the angular error at the first (or later) point than by the offset (position error). Moreover, the stochastic error is an "angle" in the sense that this error causes an error in the position of Golfbay 316GB, which increases with the extrapolation distance.
[0061] In some embodiments, this angular error is estimated in the following way: the magnitude M of the error vector e1 is calculated for the first observation of the golf ball to determine the length L (either in time or space) over which the golf ball is observed; a function f(L) of L is constructed, which may be nonlinear, to account for the fact that observations beyond a certain point are no longer useful for extrapolation; and then the angle a of the triangle with sides M, f(L), and f(L) is calculated. For example, f(L) = x * L / (y * (time of last observation - time of first observation))), where x and y are experimentally determined variables.
[0062] This angle a is the angular error of the first (or later) observation point. This angle is then multiplied by the distance between the first (or later) observation point and Golf Bay 316GB to obtain the effect of this error on the extrapolated position in Golf Bay 316GB. The direction of this error can be estimated to be orthogonal to the direction of the golf ball's movement at the first (or later) observation position. Thus, this error vector e bayFurthermore, to determine how much this error affects the golf bay selection, it is also projected onto a vector orthogonal to the general hitting direction from the golf bay 316GB. Thus, the geometric relationship between the golf bay and the current golf shot is taken into consideration.
[0063] Referring to Figure 3D, the stochastic error vector e1 for the first observation of the golf ball can be calculated according to the following formula:
number
number
number
[0064] Regarding systematic errors, these errors are converted into positional errors via the parallax equation, and since these errors are also caused by parallax errors, the direction of the errors is the same; see equation (7). Furthermore, random pixel errors can also affect the positional error in a direction perpendicular to the parallax. In this case, it is a directional error, and the size of this error is proportional to the distance from the baseline and can be calculated using the pinhole camera equation; see equation (8).
[0065] As mentioned above, the portion of the error of interest is the part perpendicular to the direction of impact. This can be calculated as follows:
number
Number
Number
[0066] Note that the probabilistic error estimation does not have to start exactly at the first observed position of the golf ball; rather, it can start from the second, third, fourth or later observed positions. In general, the probabilistic error estimation can be calculated using two or more of the first, second, third, fourth, and later observations of the golf ball (or using all observations currently associated with the identified golf shot). In other words, it is also possible to take into account several observation points. In that case, the angle β is not calculated with respect to p0 and p1, but between p0 and p n where n is determined by the number of available observations. Moreover, the error can also be added to p0 instead of p1, and the angle β at p1 can be calculated, which gives very similar results. Therefore, the total random parallax error can be estimated, where it is assumed that only the error in 2D tracking is the source of this error.
[0067] Another way to estimate how angle β may affect the stochastic error in Bay is to construct a function f(β,r) that describes how the angular error β and the extrapolation distance r affect the error in Bay. For example, f(a) = sin(β)*(r+z*r*r), where z is the quadratic factor of the angular error. The component sin(β)*z*r*r is a way to capture some of the nonlinear effects that extrapolation may have with respect to the error, in which case the value of z is determined experimentally. Other approaches are also possible to approximate how extrapolation is affected by the angular error. However, it should be noted that the relationship is not linear, i.e., it is not simply angle multiplied by distance, but rather a more generalized function of (angular) error and extrapolation distance.
[0068] Other modifications are also possible. The calculated error measure(s) can be adjusted based on the effective area of the golf bay, which can vary based on the direction from the golf bay to the observation point and the geometry of the golf bay. For example, if the geometry representing the golf bay is a rectangle, the effective width of that rectangle is reduced when this shape is viewed from the field of view. This can be taken into account by comparing the direction of the golf shot to the direction of the bay-rectangle and scaling the error accordingly:
number
number
[0069] However, generally, the separate handling of systematic errors versus stochastic errors (same error versus increasing error at bay position) results in improved system performance, despite the specific source of errors identified in a given golf bay geometry and embodiment. When using different types of sensors, e.g., radar sensors versus stereo camera sensors, the formulas for calculating the actual errors differ, but how different types of errors affect bay selection is generally the same. For example, with FMCW (Frequency Modulated Continuous Wave) radar, the expected errors are similar to those of a stereo camera pair. Systematic errors in angle and distance (range) relative to the ball are expected. Furthermore, stochastic errors in angle and distance are also expected. This applies to all data points in the trajectory measured by the radar. Thus, the same or very similar error propagation can be used to determine bay errors in radar-based systems.
[0070] Referring again to Figure 3A, estimated systematic errors and estimated stochastic errors can be combined (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) to form one or more error measures for one or more distance measures (320). For example, estimated systematic errors and estimated stochastic errors can be summed. Other combinations are possible. Summing two errors is a way of estimating a “worst-case” scenario, i.e., both errors affect the observation / measure in the same direction. If it can be shown that this is not the case, the errors can be combined differently. In addition, the combination(320) can take into account (1) the geometric relationship between at least one of the initial observations and the extrapolated trajectory, and (2) the geometric relationship between one or more of the two or more defined physical locations, as well as the geometry and / or layout of the golf bay and / or the tee positions(s) within it.
[0071] A check is performed (for example, by a computer (single or multiple) 150, 200, 250, 420, 490, 500, 660) to see if one or more error measures satisfy a predefined criterion (322). If one or more error measures do not satisfy a predefined criterion (322), the process can wait for additional observations of the golf ball by one or more golf ball sensors. Thus, the process can go back to update the three-dimensional trajectory of the golf ball in three-dimensional physical space based on the new observations of the golf shot (310). For example, if the total error is higher than a certain threshold, and the same (or another, redundant) system provides a new version of that golf shot with a lower error within a short time frame, the first version can be discarded without issue, so the identified golf shot is not immediately displayed to the user. Figure 3A shows that systematic and stochastic errors are recalculated similarly (316, 318), but it should be noted that in some embodiments, one or both of the systematic and stochastic errors do not need to be recalculated for the updated trajectory, depending on the specifications of how these error measures are calculated in a given embodiment.
[0072] For example, as mentioned above, the systematic error may be the same as previously calculated, and therefore if the systematic error does not change in the updated trajectory, an updated calculation is not required. In contrast, the stochastic error can be recalculated for second and any subsequent error estimates for the updated trajectory, since this part of the error can change significantly when new ball observations are received from the sensor(s)(1 or more)(318). In some embodiments, the length of the complete observed trajectory can be used as input to the error formula, and therefore information from additional observations is also used. Thus, each recalculation(318) can use information about the entire trajectory to calculate the complete, combined(320) error of the ball's starting position in the golf bay.
[0073] In addition, the predetermined criteria to be checked (322) can be a single criterion, such as a single error threshold, or two or more criteria. For example, if two error measures are determined for each of two golf bays, and both of these error measures are below the error threshold, the two error measures can be compared to identify the golf bay corresponding to the lower error measure as the origin of the golf shot (322). As another example, in a multi-detector system, after a certain period in which other detection systems have not picked up the golf shot, the first detector of the golf shot can check its tracked trajectory against a more generous error threshold to increase the likelihood of identifying the launching golf bay for the golf shot.
[0074] For example, using the combined error calculated by equation (12), the first version of a golf shot detected by a stereo camera golf ball tracking system can be compared to a threshold of 0.15, while second and subsequent versions of the golf shot detected by the same stereo camera golf ball tracking system can be compared to a threshold of 0.25. As another example, a stricter threshold (e.g., 0.15) may be applied only to the truly first version of a golf shot detected by any of two or more golf ball tracking systems, while a more generous threshold (e.g., 0.25) may be applied to all subsequent versions of the golf shot (detected by any of two or more golf ball tracking systems). The use of such two levels of criteria in 322 allows the first version of a golf shot (e.g., from a non-primary system of that golf bay rather than from a primary system of that golf bay) to be acceptable only when the error in golf bay selection is very low, thus further reducing the latency for golf bay selection in some cases without risking incorrect golf bay selection in more typical cases.
[0075] Figure 4A shows an example of a system 400 that performs 3D tracking of a golf ball in flight through a three-dimensional space. Two or more sensors 410 are communicatively coupled to a computer system 420 (wired (one or more), wireless (one or more), or both). The number of sensors 410 used varies with the size of the three-dimensional space covered, but generally, a set of sensors 410 is installed to cover the entire three-dimensional space (e.g., the entire golf driving range). In addition, the number of sensors 410 can be increased to provide coverage redundancy for that space, for example, having at least two sensors 410 to cover each golf bay. In the example in Figure 4A, only two sensors 410A and 410B are shown to clarify this explanation, and each sensor 410 covers all the golf bays 430 arranged in three tiers.
[0076] As shown in the figure, the golf bay 430 is a 3D space within a building, for example, building 115 in Figure 1. Since it is a 3D structure, the geometry representing the golf bay 430 in the golf ball tracking system can also be three-dimensional (with width and height) to allow for the identification of launch golf bays on different floors of the building. Furthermore, each sensor 410 (or a combination of sensors 410A and 410B) tracks all golf balls within its field of view, and a physical model of the golf ball flight (operating within the computer system 420) is used to extrapolate portions of the trajectory that are outside the field of view or missed by the sensor for other reasons. Note that a single sensor 410A may have two optical sensors within it but output one signal, and similarly, a single sensor 410A may have multiple sensor components, as in the case of a stereo camera. In addition, even if multiple sensors 410A, 410B do not have dedicated processing hardware, but share computer hardware 420 (as shown in the figure), the sensor-computer combinations 410A, 420 and 410B, 420 can be a discrete sensor system that identifies golf shots individually, extrapolates each identified golf shot both forward and backward in time, and attempts to determine the launching golf bay based on the backward extrapolation of the golf shot. An orchestration process, which can be run on computer 420 or another computer, can acquire data from these discrete sensor systems and make a final decision regarding which golf bay should be identified as the starting point of a particular golf shot.
[0077] Using extrapolated trajectories, the system calculates the physical position from which each golf ball was struck so that the 3D tracking of the golf ball can be displayed to the correct person in the correct golf bay. For example, the first discrete golf ball sensor systems 410A, 420 can identify the initial observation of a golf shot 412 and detect the golf shot 412, but are not confident enough in the initially identified launch bay to display the golf shot 412 in one of the golf bays 430 (the first error threshold is not satisfied). Subsequently, additional observations of the golf shot 412 can be obtained by the first discrete golf ball sensor systems 410A, 420 before the second discrete golf ball sensor systems 410B, 420 even detect the golf shot 412. Therefore, updating the 3D trajectory based on additional observations, extrapolating this updated trajectory backward in time, calculating the updated distance measure(s), any updated error estimation (e.g., updating the stochastic error using the entirety of the currently observed trajectory), and the integration of estimated systematic errors and estimated stochastic errors to form the updated error measure(s) for the updated distance measure(s), can all occur before the second discrete golf ball sensor systems 410B, 420 detect the golf shot 412.
[0078] Following this update, the first discrete golf ball sensor systems 410A, 420 can identify the golf bay 432 as the origin for the golf shot 412 if the updated error measure(s) satisfies a predefined criterion, for example, a second, simpler error threshold (used for the first check). Using such a simpler error threshold is advantageous in this case, as the second discrete golf ball sensor systems 410B, 420 would never actually detect the golf shot 412. Furthermore, even if subsequent versions of the golf shot 412 acquired by the first discrete golf ball sensor systems 410A, 420 do not show a significant improvement in the error measure(s), those subsequent versions are reconsidered with a more generous threshold to help ensure that the launching golf bay is identified for all golf shots. In other words, if additional observations are not available within a certain predefined period, the initial observations (along with any additional observations) can be processed and compared to another (less stringent) predefined criterion. In some embodiments, three or more thresholds are used over a predetermined planned period.
[0079] In some embodiments, multiple systems track a golf ball simultaneously and deliver new versions at specified intervals. A stricter threshold is used for the first version of a detected golf shot, meaning that a second tracking system has time to deliver its first version before a first tracking system delivers its second version of the golf shot. Only if the first version from the system passes the stricter threshold is that version of the golf shot used to determine the launch golf bay. This facilitates minimizing waiting times and, at the same time, ensures that bay selection is not based on an inaccurate shot version if a better shot version is available immediately.
[0080] For example, the first systems 410A and 420 can identify the initial observation of a golf shot 414 and detect the golf shot 414, but are not confident enough in the first identified launch bay to display the golf shot 414 in one of the golf bays 430 (the first error threshold is not satisfied). Subsequently, additional observations of the golf shot 414 can be obtained by the second systems 410B and 420, and the same golf shot 414 can be detected by the second systems 410B and 420, while the first systems 410A and 420 continue to track the golf shot 414. The second systems 410B, 420 determine the discrete 3D trajectory of the golf ball in a three-dimensional physical space based on additional observations, extrapolate the discrete 3D trajectory of the golf ball backward in time, calculate discrete distance measures (one or more) between the discrete extrapolated trajectory and golf bays 434 and 436, estimate discrete systematic errors and discrete stochastic errors, integrate the discrete estimated systematic errors and discrete estimated stochastic errors to form discrete error measures (one or more) for the discrete distance measures (one or more), and if the first error threshold is satisfied, one of the golf bays 434 and 436 can be identified as the starting point for the golf shot 414.
[0081] Therefore, while the first systems 410A and 420 are detecting the golf shot 414 and then using a less stringent error threshold to determine whether the golf bay 434 or golf bay 436 is the starting point for the golf shot 414, the second systems 410B and 420 can detect the golf shot 414 and also accurately identify golf bay 434 as the launching golf bay based on its position relative to the ball's trajectory. Furthermore, it should be noted that while this is happening, a parallel process may occur in which the second system 410B, 420 first detects the golf shot 416 but is not confident enough to identify one of the golf bays 434 and 436 as the origin, but then the first system 410A, 420 also subsequently detects the golf shot 416, and the error affecting the selection of the golf bay for the golf shot 416 is small (due to the geometric relationship between the trajectory of the golf shot 416, the position of sensor 410A, and the positions of golf bays 434, 436), so that the first system 410A, 420 can quickly identify golf bay 436 as the origin for the golf shot 416.
[0082] Referring again to Figure 3A, if one or more error measures satisfy a predefined criterion (322), one of two or more defined physical locations is identified (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) as the origin for the golf ball (324). The identified origin is then used (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) as input for further processing, such as by using the identified origin to facilitate further tracking of the golf ball in flight, and / or by presenting the golf ball tracking data on a display device associated with the identified launch location (326). Various types of display devices can be used and can be placed in different physical locations, for example, in various golf bays within a building.
[0083] Furthermore, each golf bay within the building, for example, building 115 in Figure 1, may be identical, or there may be different levels of accommodation for different types of golf bays, as well as different shapes, sizes, and layouts. A golf bay on the first level may have direct access to the golf driving range, while a golf bay on a higher level typically has a safety net extending horizontally away from the building to prevent injury in case a person accidentally falls from the front of the bay. In addition, each golf bay may include one or more tee-off positions.
[0084] Figure 4B shows an example of a system that performs 3D tracking of a golf ball in flight in relation to an example layout for two golf bays 440A, 440B, as can be used with the system in Figure 4A. The golf bays 440A, 440B may include furniture 445, such as benches and tables, to facilitate eating and conversation during the game. As can be seen, many layouts are possible for the furniture 445, and the furniture 445 and layout within the golf bays 440A, 440B can be designed to provide flexibility in how the golf bays 440A, 440B are allocated for one or more groups of people to play together or separately.
[0085] Each of the golf bays 440A and 440B may include two tee-off positions, each including a tee area 450 and a golf ball dispenser 455. Each golf ball dispenser 455 can be directly connected to a pneumatic tube system so that golf balls can be automatically received from the target and returned to the player without human intervention. Alternatively, golf balls can be collected from a central position within a building, for example, building 115 in Figure 1, and manually dispensed into containers within the golf ball dispenser 455.
[0086] The two golf bays 440A and 440B may share an electronic hub, which may include various power lines and cables to support separate display devices for each golf bay, such as a display device 470, which may include a computer processor that is communicatively coupled (wired, wirelessly, or both) to a computer processor that controls what is presented on each display device, or it may be a dumb terminal. In some embodiments, there is no shared electronic hub, and the display devices are individually associated with each golf bay 440A, 440B, each tee area 450 or dispenser 455 within each golf bay 440A, 440B, and / or each person within each golf bay 440A, 440B, such as a portable electronic device 475, e.g., a smartphone or tablet computer. Each display device may include a touchscreen device that connects to a central computer system for a building, e.g., building 115 in Figure 1, to provide players with direct control over their gameplay, including selecting the type of game they are playing and the current player.
[0087] In any case, one or more players enter their respective teeing areas 450, obtain a golf ball from their respective dispenser 455, and then hit their respective balls. The golf ball sensor system 490 is an example of the golf ball sensor systems 140, 150 from Figure 1 and includes both a computer (e.g., a data processing unit 250) and a sensor (e.g., a stereo camera 254 integrated with the data processing unit 250). The system 490 detects the golf ball 460 in flight after it has been struck from one of the four teeing areas 450. From this initial observation of the golf ball 460 and one or more subsequent observations of the golf ball 460, the system 490 determines a three-dimensional trajectory 464 (note that for clarity of illustration, the figure shows only two dimensions). The three-dimensional trajectory 464 is then extrapolated backward in time to generate an extrapolated trajectory 462, which intersects with both tee area 450A in golf bay 440A and tee area 450B in golf bay 440B. Therefore, from the initial observation, it is not readily apparent which golf bay 440A, 440B and which tee area 450A, 450B should be identified as the physical launch position of the golf shot.
[0088] Therefore, the system 490 needs to determine which of the tee areas 450A and 450B should be considered the potential launch tee area. In some embodiments, the system 490 generates one or more error measures for each tee area 450A, 450B and compares them. In some embodiments, the error measures for adjacent tee areas 450A, 450B (or golf bays) have very similar values, and therefore such a comparison may not be useful, even if the error measure for either of these adjacent tee areas 450A, 450B (or golf bays) is very useful in determining when it is time to confirm the starting point of the golf shot. Therefore, in some embodiments, the system 490 selects only one of the tee areas 450A, 450B based on one or more calculated distance measures and generates one or more error measures for only the selected tee area with respect to the current extrapolated trajectory 462. For example, system 490 can determine which of tee areas 450A and 450B to consider as the potential starting point for a golf shot, based on the distance between the intersections of the extrapolated trajectory 462 with the geometric shapes representing tee areas 450A and 450B, and predefined points within tee areas 450A and 450B. A detailed example is provided below, but as mentioned above, various distance measures can be used in various combinations.
[0089] In some embodiments, system 490 compares the distances DA and DB between (1) the intersection of the extrapolated trajectory 462 with tee areas 450A and 450B and (2) the midpoint or center point of tee areas 450A and 450B. Since it can be inferred that a golfer will not hit the golf ball through each other's golf bays or tee areas, system 490 can also use the last golf bay or tee area that the extrapolated trajectory 462 intersects as it moves forward as a distance measure. Thus, in the example of intersections shown in Figure 4B, tee area 450B can be shown as the launch tee area.
[0090] Furthermore, system 490 can use other predefined (or improvised) locations within the golf bay or tee area to measure the distance from there. For example, system 490 can compare the distance between (1) the intersection of the extrapolated trajectory 462 with tee areas 450A and 450B and (2) the distance between the respective hitting positions HA and HB within tee areas 450A and 450B. These hitting positions HA and HB can be predefined within the system based on information about the typical stance taken by a player while playing golf, or by details of the tee area, such as the tee position in the tee-up system. These hitting positions HA and HB can also be determined based on input to the system. For example, if it is known that the current golfer assigned to a tee area is left-handed, the hitting position can be adjusted accordingly, or if a camera image from the tee area shows where the ball will be placed before the golf shot, the hitting position for that tee area can be updated improvised based on the camera image.
[0091] In some embodiments, system 490 checks whether the extrapolated trajectory 462 is within a predefined distance of the striking positions HA and HB relative to the tee areas 450A and 450B. If so, the golf shot is considered to have struck that tee. If the extrapolated trajectory hits only one tee, this tee can be selected by system 490 to determine the error measure and potential identification as the launch tee. If the extrapolated trajectory hits two or more tees based on the predefined distances, system 490 can select the last intersecting tee area, for example, tee 450B in the example of Figure 4B. If the extrapolated trajectory does not hit any tees based on the predefined distances, system 490 can similarly select the last intersecting tee area. Note that this process can also be applied to golf bays, such as when each golf bay has only one tee area (or is only one tee area).
[0092] In addition, the tee area and / or golf bay selection is used to identify a display device on which to display golf shot renderings or animations within the virtual golf game, which may include information about golf shots, such as golf shot statistics and / or representations of the golf course or other virtual game features. For example, if tee area 450A is selected as the golf shot source and the error measure provides sufficient accuracy, the golf shot information will be displayed on display device 470 associated with golf bay 440A or tee area 450A. As another example, if tee area 450B is selected as the golf shot source and the error measure provides sufficient accuracy, the golf shot information can be displayed on display device 475 associated with golf bay 440B or tee area 450B or a person associated with golf bay 440B or tee area 450B.
[0093] Furthermore, as mentioned above, multiple versions of each golf shot can be generated by the same golf ball sensor system 490 and / or by other golf ball sensor systems (one or more) observing golf ball strikes from the same golf bays 440A, 440B. Figure 5A is a flowchart illustrating another example of the process for determining the launch physical position of a golf ball detected and tracked in flight. The strike position can be determined (for example, by a computer (one or more) 150, 200, 250, 420, 490, 500, 660) within a geometry representing a defined physical position (for example, relative to a golf bay, tee area, or other physical position) (560). These strike positions can be predefined for the system or determined dynamically, and the geometry can be three-dimensional.
[0094] As mentioned above, the input to the system used to dynamically determine the hitting position may be information about the current golfer or camera image of the tee area. Furthermore, in some embodiments, the input to the system used to dynamically determine the hitting position may be input from an electronic positioning system, including a mobile device and communication system associated with the golfer, such as a Global Navigation Satellite System (GNSS), e.g., the Global Positioning System (GPS), a cellular network, or another wireless network, e.g., a Wi-Fi network. Figure 5B shows an example of a system that performs 3D tracking of a golf ball in flight with respect to a personal mobile device associated with the golfer.
[0095] The example in Figure 5B is similar to the example in Figure 4B in that it can be used within the system of Figure 4A, and the golf ball sensor system 500 is similar to the golf ball sensor system 490 described above. Regions 510A and 510B may be golf bays or tee areas, or areas simply estimated for the golfer, for example, areas designated along the tee line. In any case, regions 510A and 510B may generally be called golf bays 510A and 510B, and may have geometric shapes that represent them, so that the intersections of the extrapolated trajectory with these geometric shapes can be easily identified.
[0096] System 500 detects the golf ball 540 in flight after it has been struck from one of the golf bays 510A or 510B. From this initial observation of the golf ball 540 and one or more subsequent observations of the golf ball 540, System 500 determines a three-dimensional trajectory 546 (note that for clarity of illustration, the figure represents only two dimensions). The three-dimensional trajectory 546 is then extrapolated backward in time to produce an extrapolated trajectory 542, which intersects both golf bays 510A and 510B. Thus, System 500 needs to decide which of regions 510A or 510B to consider as the potential launch region.
[0097] To assist in this decision, signals from mobile devices 520A, 520B, associated with golfers in their respective golf bays / areas 510A, 510B, can be acquired to determine the associated hitting positions 530A, 530B for each golfer. For example, the mobile devices 520A, 520B could be GPS devices or smartphones or tablet computers communicating over a wireless network that enables triangulation or other device positioning services, as shown in Figure 5B. In some embodiments, the hitting positions 530A, 530B are set for each golfer based on sensor data acquired by the system 500 for one or more test shots by each golfer, and position data from their respective associated mobile devices 520A, 520B. These hitting positions 530A, 530B can then be used as described above or further detailed below in relation to Figure 5A. Note that the mobile devices 520A, 520B can also be display devices to which golf shot information is transmitted, once the origin of the golf shot has been confirmed.
[0098] Referring again to Figure 5A, one or more golf shot versions are generated or received (for example, by one or more computers 150, 200, 250, 420, 490, 500, 660) (562). For example, in some embodiments, each of the sensors 410A, 410B in Figure 4A has dedicated computer hardware that processes sensor data using a physical model of the golf ball flight, extrapolates portions of the trajectory that are out of field of view (or missed by the sensor for other reasons), and performs error measure evaluation, thereby forming discrete sensor systems 410A, 410B which can receive results from these discrete sensor systems 410A, 410B and report those results to a central computer system 420 that makes a final decision on which golf bay 430 should be identified as the origin of a particular golf shot. Therefore, the central computer 420 can receive different versions of golf shots from each of the golf ball sensor systems 410A and 410B, as well as two or more versions of golf shots from the same golf ball sensor system 410A and 410B.
[0099] In some embodiments, as soon as a golf ball sensor system within a larger system begins tracking a golf ball, it periodically generates versions of that golf shot. The first version includes the first portion of the trajectory, and the second version includes the first version plus all observations from additional new observations. In some embodiments, later versions inherit the golf bay assigned to the first version. In some embodiments, the assigned golf bay is determined again for each new version of the golf shot. In any case, the versioning process can reduce the waiting time before the system begins displaying the trajectory to the golfer.
[0100] The intersections between the extrapolated trajectory and geometric shapes representing two or more defined physical locations (e.g., the intersection of the extrapolated trajectory 542 and regions 510A, 510B) are identified (e.g., by a computer (single or multiple) 150, 200, 250, 410, 490, 500) (564), and the distances between the extrapolated trajectory and the hitting positions within each geometric shape (e.g., hitting positions 530A, 530B) are determined (e.g., by a computer (single or multiple) 150, 200, 250, 410, 490, 500) (564). In some embodiments, the intersections will be roughly found, except for the extrapolated trajectories around two ends of a complete set of golf bays in some cases, as shown in Figure 5B. Thus, the distance calculation may be between the intersections and the defined hitting positions. In situations where there is no intersection between the extrapolated trajectory and a given golf bay, the distance calculation can be the length of a line that intersects the hitting position and is perpendicular to the extrapolated trajectory.
[0101] The calculated distance to the hitting position can be compared to a threshold (566), which can be experimentally set for a given implementation, for example, 40 centimeters. If only one of these calculated distances to the hitting position passes the threshold (i.e., falls below the threshold), the golf bay containing that hitting position is selected (e.g., by computer(s) 150, 200, 250, 410, 490, 500) to estimate systematic and stochastic errors (568). If both of these calculated distances to the hitting position pass the threshold, or if neither of these calculated distances to the hitting position passes the threshold, the golf bay that last intersected along the extrapolated trajectory (in the direction of the initial observation of the golf ball) is selected (e.g., by computer(s) 150, 200, 250, 410, 490, 500) to estimate systematic and stochastic errors (570).
[0102] Next, one or more error measures are calculated / updated (for example, by computer(s) 150, 200, 250, 410, 490, 500) (572). This may involve operations 316, 318, and 320, as previously described with respect to Figure 3A. A check is performed (for example, by computer(s) 150, 200, 250, 410, 490, 500) to determine whether one or more error measures satisfy a predefined criterion (574). This may involve the operation described above for check 322 in relation to Figure 3A. Therefore, if one or more error measures do not satisfy a predefined criterion (574), the process may await additional observations of the golf ball by one or more golf ball sensors and thus await the next set of one or more versions of golf shots generated (562) and received (562) (562) by computers (single or multiple) 150, 200, 250, 410, 490, 500.
[0103] For example, the central computer 420 can receive different versions of a golf shot from each golf ball sensor system 410A, 410B, each having a different perspective of the same golf shot. Each received version of the golf shot may include both an extrapolated trajectory and a confidence measure (one or more error measures) of the launch golf bay for the golf shot. Thus, each golf ball sensor system 410A, 410B can perform its own independent calculation of all parameters for each golf ball shot trace it finds and pass the results of that independent calculation to the central computer 420. The central computer 420 can compare the trajectory data to determine whether the two golf ball sensor systems 410A, 410B are observing the same golf ball in flight, and the central computer 420 can then use the best set of trajectory data from the two sensor systems 410A, 410B according to the received confidence measures provided by the two sensor systems 410A, 410B.
[0104] This process can then be repeated, and as previously stated, the criteria may change with each check 574. Furthermore, if one or more error measures satisfy the predefined criteria (574), the selected golf bay is identified (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) as the origin of the golf shot (576). The identified origin is then used as input for further processing (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660), such as using the identified origin to facilitate further tracking of the golf ball in flight, and / or by presenting golf shot information on a display device associated with the identified launch position, as described in detail above.
[0105] In addition, as mentioned above, the defined physical location can be a tee position in general, and the golf ball sensor system can be set up in a sports stadium or arena, or on an open field, so the defined physical location can be a point along the tee line selected by the individual golfer. In such embodiments, there may not be a clearly designated area or region for each individual golfer, and golfers may select positions that are very close to each other. In such cases, it may not be reasonable from the perspective of the golf ball sensor system to assume that golfers will not hit the ball through each other's "tee area," and therefore it is desirable to form one or more error measures (from estimated systematic error and estimated stochastic error) for each of the two different physical locations.
[0106] Figures 6A and 6B are flowcharts illustrating another example of the process for determining the launch physical position of a golf ball detected and tracked in flight. When a new golf shot is detected, the three-dimensional trajectory of that golf ball in three-dimensional physical space is determined (e.g., by a computer (single or multiple) 150, 200, 250, 420, 490, 500, 660) based on initial observations of the identified golf ball (600), and the three-dimensional trajectory of the golf ball is extrapolated (602) temporally backward (and potentially forward) (e.g., by a computer (single or multiple) 150, 200, 250, 420, 490, 500, 660) to generate an extrapolated trajectory. This may involve performing the aforementioned physical modeling and trajectory extrapolation, for example, in relation to Figure 3A.
[0107] Distance measures between the extrapolated trajectory and two or more defined physical locations are calculated (for example, by a computer (single or multiple) 150, 200, 250, 420, 490, 500, 660) (604). This may involve finding the intersections between the extrapolated trajectory and the geometric shapes representing two or more defined physical locations, as described above, for example in relation to Figure 3A, and / or determining the distance to the estimated strike location (e.g., the center point) within those geometric shapes. In some embodiments, distance measures are compared (for example, by a computer (one or more) 150, 200, 250, 420, 490, 500, 660) with one or more threshold distances (606), and the process decision flow changes based on checks 608, 610, 622 regarding whether (1) neither the first nor the second distance measure satisfies one or more threshold distances, (2) only the first or only the second distance measure satisfies one or more threshold distances, or (3) both the first and second distance measures satisfy one or more threshold distances.
[0108] In addition, in some embodiments, process operations 604, 606, 608, 610, 622 that determine which physical location is potentially the origin of the golf shot involve checking the intersection of the extrapolated trajectory with geometric shapes representing two or more defined physical locations (e.g., square, rectangle, annular sector, circle, cube, box, cuboid, 3D annular sector, cylinder, sphere, etc.). Figure 6C shows another example of a system that performs 3D tracking of a golf ball in flight with respect to a personal mobile device for a golfer.
[0109] The example in Figure 6C is similar to the example in Figure 5B in that it can be used within the system in Figure 4A, and the golf ball sensor system 660 is similar to the golf ball sensor system 490 described above. However, in this example, there is no estimated area relative to the golfer. Rather, two or more physical locations from which the golf ball is driven into three-dimensional physical space define the impact positions 670C, 675C relative to the golfer, for example, along the tee line of the grass (for example, by a computer (single or multiple) 150, 200, 250, 420, 490, 500, 660). To assist in this determination, signals from mobile devices 670A, 675A associated with the golfer can be obtained to determine the impact positions 670C, 675C associated with that golfer. For example, mobile devices 670A and 675A may be GPS devices, smartphones, or tablet computers that communicate over a wireless network enabling triangulation or other device positioning services, such as triangulation using WiFi and / or Bluetooth beacons installed at a golf driving range to triangulate the position of a user device, as shown in Figure 6C.
[0110] In some embodiments, the location of each mobile device 670A, 675A is determined using data from an electronic location system (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660), for example, using WiFi and / or Bluetooth technology, and the striking positions 670C, 675C are then set based on the locations of the mobile devices 670A, 675A (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660). It should be noted that each striking position 670C, 675C may be offset somewhat from the location of each respective mobile device 670A, 675A based on other information. For example, determining the hitting positions 670C and 675C relative to a golfer may involve offsetting the position of the mobile device in a first direction in response to a given right-handed golfer, for example, hitting position 675C being offset to the right (with respect to the hitting position relative to the golfer) from the position of the mobile device 675A, since it is known that the mobile device 675A is associated with a right-handed golfer; and offsetting the position of the mobile device in a second direction opposite to the first direction in response to a given left-handed golfer, for example, hitting position 670C being offset to the left (with respect to the hitting position relative to the golfer) from the position of the mobile device 670A, since it is known that the mobile device 670A is associated with a left-handed golfer.
[0111] Other systems and technologies can also be used to determine the hitting positions 670C and 675C associated with the golfer. In some embodiments, the hitting positions 670C and 675C are determined for each golfer based on sensor data acquired by system 660 for one or more test shots by each golfer, and optionally using position data from the respective mobile devices 670A and 675A associated with the golfer. As mentioned above, the mobile devices 670A and 675A can also be display devices to which golf shot information is transmitted once the origin of the golf shot is confirmed, and it should be noted that these mobile devices 670A and 675A can also be used in the test shot process to determine the hitting positions 670C and 675C.
[0112] For example, in some embodiments, a golfer hits one or more shots that satisfy a criterion, such as having a launch angle greater than NN degrees, for example, greater than 18 degrees. All shots hit from the same grass tee can be displayed to the user in a 3D view looking down from the grass tee and the driving range. The user selects their shot(s) within this view. The client application determines the launch position of these shots and sends this position back to the server requesting a new shot to match this position, and the server temporarily stores this position in memory. The new shots hit from the grass tee can then be checked for intersections with a sphere (or similar geometric shape) centered on the position stored in memory, and the golf shot can be sent to any client having a matching position (i.e., where the trajectory intersects or is sufficiently close to the geometric shape around that position) if it satisfies the following criterion: systematic error and stochastic error are sufficiently small, and these errors are determined using the striking position, which is used as “bay position” in the formula as in this disclosure.
[0113] In some embodiments, the geometric shapes 670B, 675B change along with the striking positions 670C, 675C, which are determined by where each golfer happens to choose to stand when hitting the golf ball, and are therefore stored only in temporary memory (e.g., on a client-side device in a golf ball tracking system). Furthermore, the determination of the striking positions 670C, 675C can be done using one or more test shots at once, as described above, and / or continuously by tracking the movement of each golfer's mobile device and / or by using each new golf shot from the golfer to update the striking position for that golfer. In any case, once the striking positions 670C and 675C are determined, the positions of the geometric shapes 670B and 675B are specified using the determined striking positions 670C and 675C (for example, by computer(s) 150, 200, 250, 420, 490, 500, 660), and each geometric shape can be a circle, cylinder, or sphere with the striking position at its center. Once the positions of these geometric shapes 670B and 675B are specified, it is easy to identify which of these geometric shapes 670B and 675B are intersected by the extrapolated trajectory.
[0114] System 660 detects the golf ball 665 in flight after it has been struck. From this initial observation of the golf ball 665 and one or more subsequent observations of the golf ball 665, System 660 determines the three-dimensional trajectory 665B (note that for clarity in the illustration, the figure represents only two dimensions). The three-dimensional trajectory 665B is then extrapolated backward in time to generate the extrapolated trajectory 665A. In the example shown, the extrapolated trajectory 665B intersects both geometric shapes 670B and 675B. However, this is not always the case. In some situations, only one of geometric shapes 670B or 675B will be intersected by the extrapolated trajectory 665B. In some situations, neither geometric shape 670B nor 675B will be intersected by the extrapolated trajectory 665B, and further ball observations will be required to determine which of the striking positions 670C or 675C is the launch position for the golf shot.
[0115] Referring again to Figure 6A, in some embodiments, finding the intersection between the extrapolated trajectory and one or more geometric shapes (e.g., a sphere in three dimensions or a circle in two dimensions) around one or more strike locations constitutes process operations 604, 606, 608, 610, and 622, since the size of the geometric shape can be set according to a threshold (e.g., the radius is equal to the threshold). In some embodiments, process operations 604, 606, 608, 610, and 622 involve calculating and checking one or more distance measures, more generally, for example, as described in this disclosure, first checking the intersection and then checking different distance measures, for example, checking the distance between the intersection and the estimated strike location.
[0116] In response to the determination that neither of the first and second distance measures(s) satisfies one or more thresholds, the process awaits additional observations of the golf ball by one or more golf ball sensors (612). Thus, the process returns to update the three-dimensional trajectory of the golf ball in three-dimensional physical space based on the new observations of the golf shot (600). As more observations are made, the trajectory is updated and the extrapolated trajectory becomes more accurate until the distance measure(s)(s) satisfy at least one of the defined physical positions, e.g., positions 670B, 675B.
[0117] In response to the determination that a first distance measure(s) does not satisfy one or more thresholds, but a second distance measure(s) satisfies one or more thresholds, an error measure for a second physical location is formed (e.g., by a computer(s) 150, 200, 250, 420, 490, 500, 660) (614) from an estimated systematic error for at least one of the initial observations of the golf ball and a stochastic error associated with at least one of the initial observations of the golf ball, the systematic and stochastic errors are calculated as described above. Also, as described above, one or more error measures for a second physical location defined are compared to a predefined criterion (for example, by a computer (single or multiple) 150, 200, 250, 420, 490, 500, 660) (616). If one or more error measures do not satisfy the predefined criterion (618), the process waits for additional observations of the golf ball by one or more golf ball sensors (612), and the process returns to update the three-dimensional trajectory of the golf ball in three-dimensional physical space based on the new observations of the golf shot (600). Furthermore, if one or more error measures satisfy the predefined criterion (618), the process identifies the second physical location defined as the origin of the golf shot.
[0118] In response to the determination that a first distance measure(s) satisfies one or more thresholds, but a second distance measure(s) does not, an error measure for the first defined physical position is formed (e.g., by a computer(s) 150, 200, 250, 420, 490, 500, 660) (624) from the estimated systematic error for at least one of the initial observations of the golf ball and the stochastic error associated with at least one of the initial observations of the golf ball, the systematic and stochastic errors are calculated as described above. Also, as described above, one or more error measures for the first defined physical location are compared to a predefined criterion (for example, by computer(s) 150, 200, 250, 420, 490, 500, 660) (626). If one or more error measures do not satisfy the predefined criterion (628), the process waits for additional observations of the golf ball by one or more golf ball sensors (612), and the process returns to update the three-dimensional trajectory of the golf ball in three-dimensional physical space based on the new observations of the golf shot (600). Furthermore, if one or more error measures satisfy the predefined criterion (628), the process identifies the first defined physical location as the origin of the golf shot (630).
[0119] In response to the determination that both the first distance measure (single or multiple) and the second distance measure (single or multiple) satisfy one or more thresholds, an error measure is formed for each of the first and second defined physical locations from the estimated systematic error for at least one initial observation of the golf ball and the stochastic error associated with at least one initial observation of the golf ball (e.g., by computer (single or multiple) 150, 200, 250, 420, 490, 500, 660) (632), the systematic and stochastic errors being calculated as described above. Furthermore, one or more error measures for each of the first and second defined physical locations are compared to a predefined criterion (e.g., by computer (single or multiple) 150, 200, 250, 420, 490, 500, 660) (634). If one or more error measures for either the first or second defined physical location do not satisfy a predefined criterion (636), the process waits for additional observations of the golf ball by one or more golf ball sensors (612), and the process returns to update the three-dimensional trajectory of the golf ball in three-dimensional physical space based on the new observations of the golf shot (600). If one or more error measures for the first defined physical location satisfy a predefined criterion (636), the process identifies the first of the defined physical locations as the origin of the golf shot (638). If one or more error measures for the second defined physical location satisfy a predefined criterion (636), the process identifies the second of the defined physical locations as the origin of the golf shot (640).
[0120] In some embodiments, the error measure(s) are calculated in such a way that it is not possible to simultaneously satisfy a predefined criterion for both the first and second positions. For example, check 636 may involve comparing the error measure(s) for the first and second positions with each other so that only the position with the best error measure(s) is selected as the starting point. Thus, the predefined criterion(s) to be checked (618, 628, 636) can be a single criterion, e.g., a single error threshold, or two or more criteria, as described above.
[0121] In any case, once the launch position for a golf shot is determined, the process presents the golf ball tracking data on a display device associated with a defined physical position identified as the origin for the golf ball (e.g., by a computer (one or more) 150, 200, 250, 420, 490, 500, 660), for example, on one display device of a mobile device 670A, 675A. Referring to Figure 6B, the process first presents the golf ball tracking data representing the currently determined trajectory of the golf shot (642). This may include presenting a golf shot animation or ball trace overlay on the golf ball in flight (on a live video of the golf shot). Following this initial presentation of the golf shot trajectory, which can be updated in real time as new ball observations are made, the presentation of the golf ball tracking data on the display device may be accompanied by a selective presentation of one or more metrics for the golf ball in flight in three-dimensional physical space, based on estimated systematic error, estimated stochastic error, or both estimated systematic error and estimated stochastic error.
[0122] One or more golf shot metrics (e.g., ball velocity, ball spin, launch angle, etc.) are calculated based on sensor observations (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) (644). One or more error measures for one or more golf shot metrics are calculated (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) using estimated systematic errors and / or stochastic errors (646), and these error measures(s) for the metrics are compared (e.g., by computer(s) 150, 200, 250, 420, 490, 500, 660) (648) to determine whether those thresholds(s) are satisfied (650). For each metric whose error measure(s) is satisfied, the metric is presented on the display device (652) before the process updates the trajectory data shown to the user of the display device (642) by updating the 3D trajectory based on additional sensor observations (654). Thus, one or more different golf shot metrics are presented to the user at different times with respect to each other, and with respect to the shown animation and / or trace overlay, depending on the different error measures that integrate systematic and probabilistic error calculations for the ball trajectory determined from observations of the ball in flight.
[0123] In other words, in cases where error estimation is used to display metrics, they use somewhat different error measures and different thresholds, so the golf shot itself can be displayed to the user first while waiting for one or more metrics to be displayed. For example, a predetermined threshold for stochastic error may differ for each metric, and therefore it corresponds to the difficulty of determining the correct value for a metric based on the available data.
[0124] Furthermore, depending on the metric, either systematic or stochastic errors, or both, can be used. For example, if the metric is calculated as the difference between multiple observation points (such as with respect to ball velocity), then stochastic errors can be used because the metric of interest compares subsequent trajectory points, and therefore the systematic errors for subsequent points cancel each other out. Since systematic errors are the same for adjacent points, when two numbers are subtracted from each other, they will cancel each other out. For example, if the system has a systematic error that places all observations one inch to the right of their true positions, the velocity will not be affected by this. However, if the metric depends on the absolute position of the ball, then systematic errors may also be taken into consideration.
[0125] Figure 7 is a flowchart illustrating an example of a process for selectively presenting a metric for a golf shot (e.g., performed by a computer (one or more) 150, 200, 250, 420, 490, 500, 660). A measure of error for ball velocity is calculated using an estimated stochastic error (700). In some embodiments, this involves using components of an error vector for ball velocity in the direction of impact with respect to three-dimensional physical space. The measure of error for ball velocity is compared to a threshold (702), and in response to a satisfied threshold (704), the calculated ball velocity value for the three-dimensional trajectory of the golf ball is presented on a display device (706).
[0126] In some embodiments, the actual error in velocity e_spd in the first observation (e.g., based on the stochastic error relative to the first observation) is propagated back to the physical location along with the extrapolation distance: e_spd_location = e_spd * ||p0 - a||. Note that the systematic and stochastic errors in the first observation are the errors in the ball's position at that point. Similarly, the error in the ball's velocity relative to the first observation can be determined by using a regular formula for calculating the ball's velocity relative to the first observation twice: once when the systematic and stochastic errors are zero, and once when it is an estimated value relative to the point in which the calculation was performed, and then comparing the difference in ball velocities.
[0127] When we do this, systematic errors do not affect the error in ball velocity because they are the same for two adjacent points (and therefore cancel each other out when we subtract the positions of the two adjacent points to obtain the ball velocity), whereas stochastic errors do not, as we cannot assume they act in the same direction for two adjacent points. The ball velocity is the norm obtained by dividing the difference between the first two observations, p1 and p0, by the time difference between these points:
number
number
number
[0128] A measure of error for the ball spin vector is calculated using estimated systematic errors and estimated stochastic errors (708). The measure of error for ball spin is compared to a threshold (710), and in response to a satisfied threshold (712), the calculated ball spin value for the three-dimensional trajectory of the golf ball is presented on the display device (714).
[0129] In some embodiments, the spin vector error, e_spin, in the first observation is relatively constant when extrapolated, except for a small spin damping factor that increases the spin in this case, since the trajectory extrapolation is backward. Furthermore, a method similar to that described above for ball velocity can be used for ball spin, namely, calculating the number of spins without assuming an error in position, and then comparing the result with the number obtained when the error is included. Generally, let x be the time series of observations of the golf ball, and let ω=f(x) be a function that estimates the spin vector for all observations of the ball, with one vector for each time step at x. Then, apply the function g to stochastic noise and the function h to systematic noise on the time series x, thereby for each step x i ha:x i =p i +e i sto +e i sys It can be expressed as ω and ω ~ The difference between =h(g(x)) and |ω0-ω1 can then be calculated. ~ This can be used as an estimate of the error in the spin vector in the first observation. To obtain the error in the spin vector relative to the launch of the shot, this number can be multiplied by the aforementioned spin damping factor together with the extrapolation distance.
[0130] A measure of error for the launch angle is calculated using estimated systematic errors and estimated stochastic errors (716). The measure of error for the launch angle is compared to a threshold (718), and in response to the satisfied threshold (720), the calculated launch angle for the three-dimensional trajectory of the golf ball is presented on the display device (722). In some embodiments, a first component of the error vector for the launch angle in the direction of impact with respect to three-dimensional physical space is checked against a first threshold, and a second component of the error vector for the launch angle on the vertical axis, which is perpendicular to the direction of impact, is checked against a second threshold. In some embodiments, only the angle between the launch direction of the shot and the ground is checked against a single threshold.
[0131] In some embodiments, the actual launch angle error in the first observation, e_la, is already an angular error, so it can be assumed that e_la does not increase with extrapolation, just like e_spd. As mentioned above, the systematic and stochastic errors in the first observation are the errors in the ball's position at that point. Similarly, the launch angle error can be determined by using a regular formula for calculating the launch angle twice: once when the systematic and stochastic errors are zero, and once when they are in the estimated value, and then comparing the difference in launch angles. The launch angle is generally:
number
[0132] It should be noted that, due to the assumption that the extrapolation continues in roughly the same direction as indicated by the last (or first, if extrapolating backward) point, this error does not increase with the extrapolation distance. Therefore, if there is an error in the angle, the error in position increases during extrapolation, but the error in the angle itself remains the same.
[0133] In addition, systematic and stochastic error calculations can be used to enhance the effectiveness of the object tracking system, regardless of whether shot measurement criteria are selectively presented or not. Figure 8A is a flowchart illustrating an example of the process for determining the effective coverage of one or more sensors in an object tracking system (e.g., performed by a computer (one or more) 150, 200, 250, 420, 490, 500, 660). One or more three-dimensional trajectories for one or more ball strikes into a three-dimensional physical space (adjacent to the sensor system) are determined based on observations by at least one golf ball sensor positioned adjacent to that three-dimensional physical space (800).
[0134] Systematic and stochastic errors are calculated for one or more three-dimensional trajectories according to variations in the golf ball launch position and / or sensor parameters (802). In some embodiments, a grid search pattern is used to determine which errors may be for different ranges of impact positions and shot trajectories. In some embodiments, calculation 802 involves calculating systematic and stochastic errors for at least one three-dimensional trajectory according to variations in position for at least one golf ball sensor. A similar grid search pattern can be used to determine which errors may be for different ranges of sensor positions and shot trajectories. Furthermore, one or more other variations in parameters for at least one golf ball sensor can be used in calculation 802.
[0135] Generally, sensor parameters include position and field of view. Certain sensor types have additional parameters that affect the field of view, such as beamwidth for radar devices. For example, a camera-based sensor has a focal length parameter, which, along with camera orientation (rotation), principal point and distortion parameters, different lens characteristics, and image capture element characteristics such as resolution, affects the field of view. Different sensor parameters (e.g., different positions and / or different fields of view) can be identified that improve systematic and stochastic errors for a sensor system (804). For example, at least one different position for at least one golf ball sensor can be identified that produces lower systematic and stochastic errors (804). As another example, different fields of view for one or more golf ball sensors can be identified (804), and these different fields of view are variations in their initial fields of view that produce lower systematic and stochastic errors than the initial field of view.
[0136] The report is prepared, for example, using the lowest values of systematic and stochastic errors for available tee positions (806). In some embodiments, the prepared report shows different, improved sensor parameters. For example, the report can be prepared to show a summary of systematic and stochastic errors calculated to indicate at least one different position for at least one golf ball sensor. Furthermore, if there are two or more sensors in the system, the report can be prepared for each available tee position using the lowest values of systematic and stochastic errors calculated for at least two golf ball sensors (806).
[0137] The report is presented to indicate the desired hitting position and / or to show different, improved sensor parameters that can be used with the sensor system (808). Figure 8B shows an example of an error map 850 for a deployed object tracking system. Map 850 shows the estimated sum of systematic and stochastic errors for a typical golf shot when struck from different positions on a grass tee. It is a view looking down from above the grass tee, and each position is colored (or otherwise indicated) according to the error, as defined by the horizontal bars 855. This map 850 can be used by a golfer choosing a tee position, and this map 50 can also be used by a person deciding where the sensors (one or more) of the object tracking system should be placed. In the latter case, that person can input camera positions and rotations, and a new map may be generated. This map can then be used to determine whether the sensor placement is good enough and whether the entire grass tee is covered by the planned system, and different sensor positions and rotations can be examined in this regard.
[0138] This example displays the expected error value for a given position on a grass tee, which allows the driving range owner to physically mark areas on the grass tee that are more reliable, or allows customers to select hitting positions with better expected reliability, or both. This map can be calculated by dividing the grass tee into smaller areas and calculating the "Bay error" for a "typical shot" for each of these areas, taking into account when these shots come into the field of view of each sensor when struck from this position, in order to determine the parameters that go into the formula for calculating systematic and probabilistic errors. If there are two or more tracking systems with different sensors, the error can be calculated for each system, and the lowest of those values can be used on the map.
[0139] In map 850, arrows 860 and 865 indicate the current camera position, used to determine the launch position error for each location. The length of the arrow indicates the camera's focal length—longer arrows mean a longer focal length (and shorter field of view). The orientation of arrows 860 and 865 indicates the direction each camera is pointed. The base of the arrow is the camera position. Dots 880 indicate measured positions on the grass tee. When measuring the grass tee, the number of points to be measured to determine its shape and geometry can be defined within it. Rectangles 870 visualize the area on the grass tee to represent the main area within which each camera system is expected to track. It should be noted that these features are included to help the user navigate the map and put it into context. If other landmarks are measured, they may also be added to the map to help understand the situation.
[0140] It should be noted that a similar error map can be generated using variations in sensor placement, as opposed to variations in impact position. Thus, this type of map can be used to virtually try different sensor positions and orientations to understand the advantages and disadvantages of different sensor mounting positions from the expected launch position error. In this case, different maps for different sensor positions and orientations can be created, for example, in dynamic mapping and sensor reconfiguration processes. Therefore, a driving range owner can be guided on how many sensors should be deployed at specific locations for an object tracking system in relation to a given unstructured environment (e.g., a grass tee), thereby improving coverage in that environment, reducing the cost of the deployed system (by reducing the number of sensors required) in relation to the reliability achieved, or both.
[0141] Referring again to Figure 8A, the sensor system can be modified to use one or more different sensor parameters (810). For example, at least one golf ball sensor can be moved to at least one different position indicated by the report (810). As another example, the initial field of view(s) of the golf ball sensor can be adjusted to be a different field of view (810). Inspecting and modifying the sensor system in this manner (to minimize probabilistic and systematic errors) can improve the reliability and coverage of the object tracking system, for example, for a grass tee area. This applies whether the object tracking system uses camera sensors and / or other types of sensor devices, such as radar devices.
[0142] Embodiments and functional operations of the subject matter described herein can be implemented in digital electronic circuits, or in computer software, firmware, or hardware, or in one or more combinations thereof, including structures disclosed herein and equivalent structures. Embodiments of the subject matter described herein can be implemented using one or more modules of computer program instructions encoded on a computer-readable medium for execution by a data processing device or for controlling its operation. The computer-readable medium may be a product or embedded system, such as a hard drive or optical disc in a computer system sold through retail channels. The computer-readable medium may be acquired separately and subsequently encoded in one or more modules of computer program instructions, such as by distribution of one or more modules of computer program instructions over a wired or wireless network. The computer-readable medium may be a machine-readable storage device, a machine-readable storage board, a memory device, or one or more combinations thereof.
[0143] The term "data processing device" encompasses all devices, equipment, and machines for processing data, including, for example, programmable processors, computers, or multiprocessors or computers. In addition to hardware, a device may include code that creates the execution environment for the computer program in question, such as processor firmware, protocol stacks, database management systems, operating systems, code that constitutes the runtime environment, or one or more of these. Furthermore, a device can employ a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
[0144] A computer program (also known as a program, software, software application, script, or code) can be written in any suitable programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any suitable form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored within a markup language document), in a single file dedicated to the program in question, or in multiple coordinating files (e.g., a file containing one or more modules, subprograms, or portions of code). A computer program can be deployed to run on one computer, or on multiple computers located in one site, or distributed across multiple sites and interconnected by a communication network.
[0145] The processes and logic flows described herein can be executed by one or more programmable processors that perform functions by executing one or more computer programs to act on input data and produce outputs. The processes and logic flows can also be executed by dedicated logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits), and the devices can also be implemented as dedicated logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits).
[0146] Processors suitable for executing computer programs include, for example, both general-purpose and dedicated microprocessors. Generally, a processor receives instructions and data from read-only memory, random-access memory, or both. Essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or is operationally coupled for receiving data from them, transferring data to them, or both. However, a computer does not necessarily have such devices. Moreover, a computer can be embedded in another device, for example, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a Universal Serial Bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electronically Erasable Programmable Read-Only Memory), and flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, and CD-ROMs and DVD-ROMs. Processors and memory may be complemented by or incorporated into dedicated logic circuits.
[0147] To provide interaction with the user, embodiments of the subject matter described herein can be implemented on a computer having a display device for displaying information to the user, such as an LCD (liquid crystal display), OLED (organic light-emitting diode), or other monitor, as well as a keyboard and pointing device, such as a mouse or trackball, by which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user, for example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and input from the user may be received in any form, including acoustic, speech, or tactile input.
[0148] A computing system may include clients and servers. Clients and servers are generally geographically distant from each other and typically communicate through a communication network. The client-server relationship arises from computer programs running on each computer that have a client-server relationship with each other. Embodiments of the subject matter described herein can be implemented in a computing system that includes a backend component, for example, as a data server, or a middleware component, for example, as an application server, or a frontend component, for example, a client component having a graphical user interface or a web browser through which a user can interact with the embodiment of the subject matter described herein, or any combination of one or more such backend, middleware, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication, for example, a communication network. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad-hoc peer-to-peer networks).
[0149] This specification includes many details of embodiments, which should not be construed as limitations on the scope of the invention or what can be claimed, but rather as descriptions of features specific to particular embodiments of the invention. Certain features described herein in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment can be implemented separately in multiple embodiments, or in any suitable partial combination. Furthermore, features may be described herein as operating in a certain combination and may even be initially claimed as such, but one or more features from a claimed combination can, in some cases, be implemented from that combination, and the claimed combination may be subject to partial combinations or variations of partial combinations. Thus, unless otherwise specified or clearly indicated by the knowledge of those skilled in the art, any of the features of the aforementioned embodiments can be combined with any of the other features of the aforementioned embodiments.
[0150] Similarly, although operations are shown in a specific order in the drawings, this should not be understood as requiring that such operations be performed in a specific illustrated order or sequence, or that all illustrated operations be performed, in order to achieve the desired result. In some situations, multitasking and / or parallel processing may be advantageous. Furthermore, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together into a single software product or packaged into multiple software products.
[0151] Accordingly, specific embodiments of the present invention have been described. Other embodiments are within the scope of the following claims and / or teachings of this application. For example, while the foregoing description focuses on tracking a golf ball shot, the systems and techniques described are also applicable to tracking other types of objects / projectiles, such as for baseball or skeet shooting, as well as to non-sports applications. In addition, the operations enumerated in the claims can be performed in different orders and still achieve the desired results.
Claims
1. It is a method, The determination of at least one three-dimensional trajectory for at least one golf ball driven into a three-dimensional physical space, based on observations by at least one golf ball sensor positioned adjacent to the three-dimensional physical space, The systematic and probabilistic errors for the at least one three-dimensional trajectory are calculated according to the variation in the golf ball launch position, the position relative to the at least one golf ball sensor, or both. To indicate a preferred striking position, different positions relative to at least one golf ball sensor, or both, a report outlining the calculated systematic and probabilistic errors shall be presented. Methods that include...
2. The method according to claim 1, wherein the calculation comprises calculating systematic and stochastic errors for the at least one three-dimensional trajectory according to the variation in position relative to the at least one golf ball sensor, the method comprises identifying at least one different position relative to the at least one golf ball sensor that results in lower systematic and stochastic errors, and the presentation comprises presenting a report outlining the calculated systematic and stochastic errors to indicate the at least one different position relative to the at least one golf ball sensor.
3. The method according to claim 2, comprising moving the at least one golf ball sensor to the at least one different position.
4. The method according to claim 2, wherein the calculation includes calculating the systematic and probabilistic errors in accordance with the variation in the parameters for the at least one golf ball sensor.
5. The method according to claim 4, wherein the at least one golf ball sensor is at least two golf ball sensors arranged adjacent to each other in the three-dimensional physical space, and the method comprises preparing the report for each available tee position using the lowest values of the systematic and probabilistic errors calculated for the at least two golf ball sensors.
6. The method according to claim 5, wherein the parameter includes a field of view, the method includes identifying different fields of view for the at least two golf ball sensors which are variations in the initial field of view that result in lower systematic and stochastic errors, and the presentation includes presenting a report outlining the calculated systematic and stochastic errors to show the different fields of view for the at least two golf ball sensors.
7. The method according to claim 6, comprising adjusting the initial fields of view of at least two golf ball sensors to the different fields of view.
8. The method according to claim 1, wherein the at least one golf ball sensor includes a camera, and calculating the systematic error includes estimating an intrinsic calibration error based on the focal length of the camera.
9. The method according to claim 8, wherein the camera is a stereo camera, and estimating the intrinsic calibration error includes calculating the parallax to the stereo camera based on the distance between the stereo camera and a first observation, and calculating the systematic error includes estimating the stereo calibration error to the stereo camera as an estimated error in the calibrated rotation of the stereo camera.
10. The method according to claim 9, wherein calculating the aforementioned stochastic error includes estimating an aggregate random parallax error for an extrapolated trajectory and adjusting the measure of the error from the aggregate random parallax error based on the distance from the initial observation to the baseline relative to the stereo camera.
11. It is a system, At least one hardware processor, At least one computer-readable medium tangibly encoding a computer program that can be operated to cause the at least one hardware processor to perform an operation according to any one of claims 1 to 10, A system that includes these features.
12. It is a method, The method involves evaluating the estimated error for each of two or more golf shots using the trajectory determined for each of the two or more golf shots from ball observations made using at least one golf ball sensor, wherein each of the errors affects the identification of the launch position for the golf shot detected through a first value and a second value, the first value being projected back onto the launch position, the second value being multiplied by the distance to the launch position, and the evaluation being performed in accordance with the variation in at least one position relative to the at least one golf ball sensor. To provide a map showing at least one preferred position for the at least one golf ball sensor for use when installing an object tracking system using the at least one golf ball sensor, wherein the at least one preferred position is one of the variations selected based on the error evaluated according to the variation, Methods that include...
13. The method according to claim 12, wherein the evaluation is performed according to variations in the launch position of the golf ball, and the map shows a preferred hitting position.
14. The method according to claim 13, wherein the evaluation includes using signals from a mobile device associated with the golfer to determine the striking position for the two or more golf shots.
15. The method according to claim 12, wherein the evaluation is performed according to variations in sensor parameters, and the map shows different fields of view for the at least one golf ball sensor.
16. The method according to claim 12, comprising using a grid search pattern to determine errors for different sensor positions and ranges of shot trajectories.