SYSTEM AND METHOD FOR TRACKING A PROJECTILE
20210052964 ยท 2021-02-25
Inventors
- John Alan Davey (Hartford, CT, US)
- Robert J. Dyer (Concord, MA, US)
- Andrew Robert Nota (Jamestown, RI, US)
Cpc classification
G06T7/246
PHYSICS
A63B43/008
HUMAN NECESSITIES
A63B69/40
HUMAN NECESSITIES
A63B2220/62
HUMAN NECESSITIES
A63B2071/0638
HUMAN NECESSITIES
A63B61/003
HUMAN NECESSITIES
A63B2071/0675
HUMAN NECESSITIES
International classification
A63B61/00
HUMAN NECESSITIES
Abstract
An apparatus comprising a practice device for practice of hitting a tennis ball includes a server configured for serving the tennis ball to a user, a net disposed to intercept a flight of the tennis ball after the tennis bell has been hit by the user using a racket and to direct the captured tennis ball back towards the server to be served again to the user, an image detector configured to observe the tennis ball as the tennis ball hurtles towards the net, and a processor. The processor determines, based at least in part on image frames received from the image detector, data indicative of the tennis ball's virtual landing spot. This virtual landing spot is an estimate of where the tennis ball would have landed on an opposing court had the tennis ball not been intercepted by the net.
Claims
1. An apparatus comprising a practice device, said practice device comprising a launcher, an image detector, and a processor, wherein said launcher is configured for propelling a projectile away from said practice device, wherein said image detector is configured to and positioned relative to said launcher for observing said projectile as said projectile is returned to said practice device, and wherein said processor is configured to calculate and store data concerning motion of said projectile based at least in part on frames received from said image detector.
2. The apparatus of claim 1, wherein said processor is configured to calculate said data based at least in part on a characteristic of said projectile.
3. The apparatus of claim 1, wherein said processor is configured to calculate said data based at least in part on environmental conditions.
4. The apparatus of claim 1, wherein said data includes data indicative of velocity of said projectile.
5. The apparatus of claim 1, wherein said data includes data indicative of spin of said projectile.
6. (canceled)
7. The apparatus of claim 1, wherein said image detector comprises a camera.
8. The apparatus of claim 7, wherein said camera is a constituent of a smart phone.
9. The apparatus of claim 1, wherein said image detector comprises a CCD.
10. The apparatus of claim 1, wherein said launcher comprises a catapult.
11. The apparatus of claim 1, wherein said launcher comprises a docking station configured to receive said image detector.
12. The apparatus of claim 1, wherein said processor is configured to trigger said image detector based on an event.
13. The apparatus of claim 12, wherein said event is detection of a flag on said launcher.
14. The apparatus of claim 12, wherein said event is detection of an audio signal associated with launch of said projectile.
15. The apparatus of claim 1, further comprising a graphic overlay.
16. A method for use with a practice device that launches a projectile away from said practice device, said method comprising detecting launch of said projectile, recording data indicative of movement of said projectile, computing trajectory characteristics of said projectile based on said data, and displaying data associated with a trajectory of said projectile.
17. The method of claim 16, wherein recording said data comprises recording data indicative of movement of said projectile back towards said practice device.
18. The method of claim 16, further comprising calibrating said practice device.
19. The method of claim 18, wherein calibrating said practice device comprises aligning an image detector of said practice device with a feature in a field of view of said image detector.
Description
DESCRIPTION OF DRAWINGS
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
DETAILED DESCRIPTION
[0040] Referring to
[0041] The tennis player 112 hits the ball 111, thus sending it into a net 113. After having received the ball 111, the net 113 directs the ball into a chute 118 that leads back to the server 110 so that the ball 111 can be launched once again.
[0042] Referring to
[0043] The camera 114 is disposed at a location at which it has a good view of the ball 111. In some embodiments, the camera is at the server 110 and views the ball 111 as it proceeds towards the player 112, as shown in
[0044] However, in other embodiments, the camera 114 is located behind the player 112 so that it is looking towards the net 113. In that case, the player 112 is between the camera 114 and the net 113.
[0045] It is particularly useful if the camera 114 is placed such that the expected direction of the ball's velocity vector is coincident with the camera's focal axis. This enables the processing system 120 to measure the ball's velocity more accurately. In some cases, whether the camera 114 is oriented horizontally or vertically makes a difference. It has been found that a horizontal orientation yields a sharper image.
[0046] The practice device 100 also features a processing system 120 that includes a memory 117 for storing information concerning the position and orientation of the camera 114 as well as the camera's inherent properties, for example, the focal length of its lens. The tennis player 112 would typically provide this information through a user interface 122 as part of setting up the practice device 100 for use.
[0047] The camera 114 provides the acquired images to the processing system 120. The processing system 120 then identifies those portions of each image associated with the moving tennis ball 111. After having done so, it filters out remaining portions of each image. These remaining portions include the background and any objects that are not relevant to the tennis ball 111.
[0048] The processing system 120 generates and stores data associated with the moving tennis ball 111. It then retrieves the location information from storage and uses it as a basis for applying a transform to account for the position and properties of the camera 114. This results in transformed data.
[0049] The processing system 120 then processes the transformed data to determine various dynamic properties of the moving tennis ball 111. These characteristics include the tennis ball's translational velocity and its angular velocity, the latter resulting from any spin associated with the tennis ball 111. This defines the ball's observed trajectory in three-dimensional space between the tennis racket 115 and a net that ultimately receives the tennis ball 111 and directs it into a chute 118 so that it can be launched again.
[0050] This observed trajectory also provides a basis for determining a virtual trajectory. The virtual trajectory is an estimate of where the tennis ball 111 would have traveled had it not been intercepted in mid-flight by the net 113. This virtual trajectory includes a virtual landing spot, which is where the tennis ball 111 would have landed in an opposing court had it traversed the virtual trajectory.
[0051] In some embodiments, the virtual trajectory is based at least in part on an observation of the ball's rotation. The ball's rotation is defined by an axis of rotation and an angular velocity about that axis. Observing the movement of markings on a ball provides a way to estimate spin. These markings can include a manufacturer's logo, gaps between the felt areas of a tennis ball 111, or stitching.
[0052] A difficulty that arises is that the relationship between frame rate and spin rate may lead to aliasing. To promote the processing system's ability to obtain the ball's rotation, it is useful to provide a ball 111 with suitable marks 131, such as a line pattern with perpendicular elements arranged around the ball 111 or a dot pattern.
[0053] Preferably, the ball 111 has marks 131 that are defined by the intersections of the ball's surface with the positive and negative axes of a Cartesian coordinate system that has its origin at the ball's center. In the three-dimensional space of the ball 111, there are six such intersections.
[0054] The marks 131 can be any shape so long as they are clearly visible to the camera 114.
[0055] A particularly useful feature of racket sports, such as tennis, is that it is often possible to infer the rotation direction by careful inspection of frames that were obtained during a brief interval around when the racket 115 hits the ball 111. This point can be determined by a trajectory measurement, and in particular, by seeing when the ball 111 abruptly changes its motion direction. If at this instant one were to inspect the pixels around the ball 111 for movement from one frame to the next, it is possible to determine whether the racket was moving up, down, or forward at the moment of impact. Under these circumstances, an upward movement of the racket 115 implies top spin and a downward movement of the racket 115 implies back spin.
[0056] To promote the ability to detect the direction of the rotation axis without having to resort to observing the racket 115, it is useful for the marks 131 to be of different colors. Such marks 131 can be provided at the time of manufacture or added after manufacture by affixing decals to appropriate points on the ball 111.
[0057]
[0058] The predicted trajectory can be used to determine where the ball 111 would have landed had its flight not been interrupted. For example, the predicted trajectory can be used to determine where the ball 111 would have landed in an opponent's court had the ball 111 been struck in the same way on an actual tennis court.
[0059] In some embodiments, the processing system 120 includes inputs for receiving additional data that affects the tennis ball's trajectory. These can be provided by the tennis player 112 or downloaded from suitable web sites. Examples of such factors that are known to affect the ball's flight are humidity, temperature, and altitude.
[0060] The processing system 120 also includes a display 124 that provides relevant feedback to the tennis player 112. In some embodiments, the display 124 shows the trajectory and flight path data in a number of presentation formats, such as graphically or numerically. In other embodiments, the display 124 provides information about observed velocity and spin.
[0061] It is important for successful operation that the camera's position be established and known by the processing system 120. The processing system 120 uses this data to transform the two-dimensional image that it acquires from the camera into a prediction about the tennis ball's trajectory, both real and virtual, as it moves through three-dimensional space as well as to obtain other information that may be of interest. Examples of such information include maximum ball speed and the ball's height as it clears the virtual net.
[0062] As shown in
[0063] In
[0064] In some cases the player 112 may want an arbitrary angle and position of the camera 114. In this case a user interface 122 would allow for selection of points to indicate the critical features of the court, such as the net. The player 112 would select points on the display 124 that correspond to the required features. The processing system 120 would then use these selected points and the known dimensions of those to determine the angle and position of the camera 114. From that point the processing system 120 can use this information in determining the ball's trajectory.
[0065] Since many smart phones already come with a camera 114 in intimate association with a processing system, a particularly useful embodiment is one in which the processing system 120 and the camera 114 are constituents of a smart phone that is placed in a holder on the server 110 in such a way as to direct the camera's field-of-view to cover a zone through which the ball 111 is expected to pass. In such cases, suitable application software is used to configure the smart phone to carry out the relevant data-processing tasks, essentially causing the smart phone to function as the processing system 120.
[0066] In such a case, it is useful to have the camera 114 and the display 124 facing in opposite directions. To provide the player 112 with suitable feedback with each volley, it is particularly useful to configure the processing system 120 to communicate useful information about the volley with the player 112. This can be carried out by using a synthesized voice or by flashing the camera's built-in flash according to a set of pre-determined patterns, each of which has a meaning.
[0067] In an alternative embodiment, a reflector reflects an image of the display 124 back to the player 112. In such an embodiment, it is useful for the processing system 120 to invert the image on the display 124 to account for the unavoidable inversion that results from such a reflection.
[0068] In another embodiment, the ball server 110, the processing system 120 and the camera 114 can all be integrated into a single unit.
[0069] As shown in
[0070] Additionally, the practice device 100 maintains the real feel of hitting a ball 111 with a racket 115 since, after all, the player 112 is, in fact, hitting the ball 111 with a racket 115.
[0071] Referring to
[0072]
[0073]
[0074] Referring to
[0075] In many implementations, the tennis player 112 seeks feedback on individual returns. Thus, the processing system 120 is configured to record and process each return of a launched tennis ball 111.
[0076] The processing system 120 segments the training into individual shots. Each shot is recorded and processed, after which the processing system 120 returns to waiting for the next shot. It is therefore useful to signal the processing system 120 that service has occurred and that the next shot should be recorded.
[0077] To that end, the camera 114 is configured to detect a launch (step 220) and to record individual frames associated with the ball's return (step 230).
[0078] The step of detecting that a ball has been served (step 220) and thus triggering the camera 114 can be accomplished using a variety of techniques.
[0079] In some examples, detection of service is achieved by detecting a vibration, for example using the smart phone's built-in accelerometer, or detecting a characteristic launch sound, using the smart phone's built-in microphone. It is also possible to detect a launch (step 220) by observing a ball in the camera's field-of-view.
[0080] In some cases, processing power is insufficient to record and process data at a rate that is acceptable to detect service of a ball. This is particularly true for contemporary smart phones, which often lack such processing power. It is therefore useful, when detecting service, to set the camera to low resolution, thus enabling image data to be quickly be processed.
[0081] The processing system 120 detects service by comparing frames and looking for color information that would indicate a ball's presence. Due to the camera's proximity to the server, this change will be quite large and therefore easily detected.
[0082] To further promote detection, it is useful for the processing system 120 to average each of several vertical segments of the field-of-view. When the color matches the color set for detection in a particular strip, the processing system 120 assumes that it has detected a ball in that strip. When enough lines indicate that a ball is present the processing system 120 signals that a ball has been served. This method eliminates background balls as they are too small to trigger a vertical segment.
[0083] Other methods of service detection are useful when the camera 114 is part of a smart phone, as shown in
[0084] In some embodiments, the sound of the ball 111 hitting the racket 115 provides a signal to start recording.
[0085] In other embodiments, the timing between recording events is predictable. In such cases, a timer signals the processing system 120 to start and end recording at particular intervals.
[0086] Where processing power is adequate, it is useful to have the camera 114 record continuously and to have the processing system 120 continuously analyze the scene to identify triggering events. Examples of triggering events that would trigger image processing include characteristic motion of objects. For example, a player's sudden movement in response to service provides a triggering event.
[0087] Other methods of detecting service include providing the server 110 with a mechanical flag 128, as shown in
[0088] Another embodiment, shown in
[0089] Because it is only the return of the tennis ball 111 that is of interest, it is useful to delay the onset of the camera's image acquisition based on the launch characteristics, such as angle and velocity, until such time as the player 112 is expected to hit the ball 111. In other embodiments, recording begins at the time of launch. In these embodiments, the processing system 120 simply ignores frames that were acquired before the ball 111 has been struck.
[0090] The processing system 120 receives the recorded frames and proceeds to compute trajectory characteristics (step 240).
[0091] The trajectory characteristics are then provided to the tennis player or to a tennis coach through the user interface 122 on a display 124 (step 250).
[0092] In some embodiments, the server 110 includes a catapult and a power source. The power source can be a DC power source, such as a battery, or an AC power. The server's service frequency is adjustable. To simulate the experience of playing tennis, it is useful to have a service frequency of approximately fifteen serves per minute.
[0093] In some embodiments, the server 110 serves to a fixed location. However, in other embodiments, the server 110 serves to different locations. In other embodiments, the server 110 serves to a location defined by a random variable having a particular probability distribution. In some cases, the distribution depends on where the server 110 has served previously. In yet other embodiments, the server 110 features a camera that views the player's location and serves to a location that depends at least in part on that location. Since the location depends on an initial velocity vector, servers that serve to different locations are inherently serving with different initial velocity vectors.
[0094] Finally, although configuration and operation of the practice device 100 has been described in the context of tennis, and in particular, in terms of determining trajectory characteristics of a returned tennis ball, the practice device 100 is applicable to other fast- moving objects including balls used in other sports.
[0095] Having described the invention and a preferred embodiment thereof, what is claimed as new and secured by letters patent is: