A ball machine that projects balls at a player may be used to develop player skills, provide a fitness workout, or provide recreational activity. The ball machine may be utilized in racquet sports, such as tennis, pickleball, POP tennis, padel, platform tennis, etc. Typically, these ball machines have speed control knobs that allow an operator to adjust various motors and actuators to “dial-in” a ball launch (i.e., shot) that the player wants to practice. This “dial-in” practice can be time consuming, cumbersome and generally limited in ability to provide a variety and/or accuracy in replicating various shot scenarios.
Conventional ball machines are typically unable to identify and analyze shots hit by a user during a training routine (workout routine), nor provide ratings of the performance of a user in their session playing against the ball machine during the workout routine. Without providing a mechanism to challenge a player to improve and/or compete against others, play against a ball machine can become boring and players may eventually become disinterested in its use.
A ball machine may be placed onto one side of a racquet court. The ball machine may comprise an imaging system configured to obtain an image of the court; a ball launching system configured to launch a ball to a user on the other side of the court; and a controller configured to determine a location of the ball machine on the racquet court based upon the obtained image. The controller may execute a first instance of a workout routine to provide the user a sequence of balls. The workout routine may comprise launching the sequence of balls where each launched ball has a corresponding predetermined shot type and a corresponding targeted predetermined location in dependence on its order in the launching sequence. Based on the determined location and/or orientation of the ball machine, parameters (e.g., speed, angle, spin) of the ball launcher may be adjusted by the controller in order to deliver balls to the predetermined locations. After delivery of the balls to the user, the user may hit the balls back to the side of the court on which the ball machine is located, such as to one or more targeted locations (e.g., instructed by the ball machine or to an object on the court that is identifiable by the imaging system of the ball machine). The imaging system of the ball machine may monitor the shots returned by the user to evaluate the same and provide a rating of the user's performance of the workout session against the ball machine in responding to the execution of the workout routine. For example, the user's rating may take into consideration accuracy in returning the balls to the targeted location(s), speed in returning the balls, spin of the returned balls, shot path, shot trajectory and/or shot type of the returned balls. Additional instances of execution of this workout routine may be repeated and additional ratings may be provided. The additional instances of the execution may be performed by the same ball machine or may be performed by other ball machines similarly programmed to execute the same workout routine. The additional instances of the workout routine may be executed with respect to the same user, different users and/or different groups of users. The additional instances may be executed on the same racquet court or different racquet court (e.g., to compete at the same time at the same racquet facility or to compete remotely, such as between players in different cities). Because the ball machine(s) adjust delivery of the sequence of balls based on the determined location and orientation of the ball machine, each instance of execution of the workout routine may be faithfully replicated to provide substantially the same experience to the user(s)) (e.g., substantially the same shots to provide substantially the same difficulty). Thus, ratings of the user(s) may accurately reflect a user's (or groups of users') skill relative to others and/or performance of the workout session relative to others (or relative to the same user/groups). Various competitions between users/groups may thus be implemented with unbiased and accurate ratings. Furthermore, a player's ratings may be used to find other players of similar skill levels to play against (e.g., to play a conventional tennis game, padel game, platform tennis game, etc.) without the need to refer to official rankings (such as USTA (United States Tennis Association) rankings).
The above and other objects, features, and advantages of the inventive concept will become more apparent to those skilled in the art upon consideration of the following detailed description with reference to the accompanying drawings.
The present disclosure now will be described more fully hereinafter with reference to the accompanying drawings, in which various embodiments are shown. The invention may, however, be embodied in many different forms and should not be construed as limited to the example embodiments set forth herein. These example embodiments are just that—examples—and many implementations and variations are possible that do not require the details provided herein. It should also be emphasized that the disclosure provides details of alternative examples, but such listing of alternatives is not exhaustive. Furthermore, any consistency of detail between various examples should not be interpreted as requiring such detail—it is impracticable to list every possible variation for every feature described herein. The language of the claims should be referenced in determining the requirements of the invention.
Ordinal numbers such as “first,” “second,” “third,” etc. may be used simply as labels of certain elements, steps, etc., to distinguish such elements, steps, etc. from one another. Terms that are not described using “first,” “second,” etc., in the specification, may still be referred to as “first” or “second” in a claim. In addition, a term that is referenced with a particular ordinal number (e.g., “first” in a particular claim) may be described elsewhere with a different ordinal number (e.g., “second” in the specification or another claim).
In this example, an imaging system 120 comprises the first camera 121 and the second camera 122. According to example embodiments, the imaging system 120 may be disposed on the frame 105 of the automatic ball machine 100 to capture digital images (e.g., still images, video and/or video frames or frames). The cameras (e.g., 121 and 122) of the imaging system may be oriented (i.e., having their optical axis extending towards) in substantially the same direction as the central shot path provided by the ball launching system 130. For example, when the automatic ball machine is positioned on a baseline (a boundary of the playing area of the racquet court), from a top down perspective, the optical axes and the central shot path may each extend to intersect the opposite side of the court (e.g., such as when the automatic ball machine 100 is positioned symmetrically on the baseline). For example, the optical axes of the cameras and the central shot path may deviate from each other no more than 20 degrees. The central shot path of the ball launching system 130 may refer, with respect to a top down view, to the center of the full angular range of shots that may be provided by the ball launching system 130. The imaging system 120 may thus obtain images of the side of the court opposite to that on which the ball machine 100 is placed when the ball launching system 130 is generally oriented toward the other side of the court. Note however, as discussed further below, orientation of the automatic ball machine 100 need not be carefully aligned, nor does automatic ball machine 100 need to be carefully positioned at a particular location on the court as the orientation and location of the ball machine 100 on the court can be determined by the automatic ball machine 100 and such determinations used to adjust parameters of the ball launching system 130 to provide desired shots independent of orientation and/or location of the automatic ball machine 100. The first camera 121 and the second camera 122 may be positioned to capture digital images at two different vantage points. Information may be extracted from the digital images through computer vision/analysis. In an example embodiment, the first camera 121 and the second camera 122 of the imaging system 120 may form a stereo camera. In other embodiments, a single camera may be used as the imaging system. Stereo vision need not be implemented using multiple cameras, but may be implemented with a single camera by providing a moveable holder to move the camera to different positions, and/or a stereo camera may be used. The imaging system 120 need not be formed with two cameras and may be formed by a single camera or three or more cameras disposed on the automatic ball machine 100. In an example embodiment, first camera 121 and second camera 122 of the imaging system 120 may be replaced with or supplemented with a Time-Of-Flight (TOF) camera to detect a depth of field.
In a further example, the imaging system 120 may include cameras in addition to cameras 121 and 122 to improve the data that is being received by the controller 110. For example, the imaging system 120 may include a plurality of cameras configured to detect objects to the left of the launch direction, to the right of the launch direction, and away from the launch direction, respectively. The plurality of cameras may increase an effective field-of-view of the imaging system 120. The imaging system 120 may be used to perform person detection, person identification, person tracking, and pose estimation procedures as described in detail in U.S. patent application Ser. No. 18/198,167 (“the '167 application”) filed on May 16, 2023, the entire content of which is herein incorporated by reference. In an example embodiment, a camera of the imaging system 120 may have its optical axis extend rearwardly, in a direction away from the side of the court to which balls are launched, such as in order to locate and identify court features behind the automatic ball machine 100 (such as to locate/identify the baseline, back walls, or back corners of the court behind the ball machine on the side of the court on which the automatic ball machine 100 is placed).
The ball launching system 130 may include a plurality of spinner wheels, each coupled to corresponding one of a plurality of motors, to launch the balls 101. For example, the ball launching system 130 may include first, second, and third spinner wheels 132a, 132b, 132c, coupled to first, second, and third spinner motors, respectively. As illustrated, for example in
In addition to performing functions related to shot identification and shot tracking procedures described in further detail below, the first camera 121 may also act as an environment sensor to detect objects in a direction that balls 101 are being launched from the automatic ball machine 100. For example, the automatic ball machine 100 may use the first camera 121 as an environment sensor to monitor, via the controller 110, an area in a direction that the ball 101 is being launched, and in at least one configuration around the automatic ball machine 100 to ensure no person or unintended objects are struck by the balls 101 being launched by the automatic ball machine 100, or harmed by any automated mechanical movement of the automatic ball machine 100. The automatic ball machine 100 may establish a keep-out region, that if violated, will result in the automatic ball machine 100 stopping launching of the balls 101 and/or mechanical movement, such as the ball launching system 130, and in at least one configuration issuing a warning to a player. The warning may comprise a visual cue via, for example, a display 134 or a lighting system (not illustrated). The warning may also comprise an audio cue via, for example, a speaker 133. The display 134 may be a flat-panel display, such as an LCD display, an LED display (such as an OLED display or a QLED display), or the like. Several discrete keep-out regions may be established by the automatic ball machine automatically. For example, a keep-out region may be automatically determined by the automatic ball machine, such as by obtaining one or more images by the imaging system 120, based on the image(s), determining the location of the automatic ball machine on the court and the location of the net at the center of the court, and establishing a keep-out region comprising a triangle formed by the ball machine 100 and outer edges of the net (such as ends of the net or at posts holding the net). Such a keep-out region may be expanded from sides of the triangle or may be a smaller version of the triangle, such as ending at sidelines comprising the playing area boundaries (i.e., corners of the triangle being truncated where the ends of the net and posts of the net are positioned outside the playing boundaries, such as doubles sidelines).
The automatic ball machine 100 may adjust a distance the keep-out region extends from the automatic ball machine 100 based on a court location of the automatic ball machine 100. To vary the coverage area around the automatic ball machine 100, additional environment sensors may be included. For example, the automatic ball machine 100 may include an additional environment sensor, such as a Light Detection and Ranging (LiDAR) sensor or similar, to detect objects outside a field-of-view of the imaging system 120, and/or to provide backup or additional data for the controller 110. A full 360-degree coverage around the automatic ball machine 100 may be implemented via additional environment sensors, for example, LiDAR sensors. In other configurations, additional environment sensors may further include, for example, barometric sensors, temperature sensors, humidity sensors, anemometer sensors, and the like.
As used herein, the term “court” refers to a playing area and a flat playing surface (e.g., a ground surface on which players stand and move around while playing the racquet sport). The playing surface may include both an inbounds portion and out-of-bounds portion, or the entire playing surface may be inbounds. The inbounds portion of the playing surface may be a flat rectangular ground surface defined by line markings on the playing surface and/or enclosures surrounding the playing surface. The inbounds portion of the playing surface is also considered part of the playing area. The playing area of the court refers to the inbounds portion(s) of the court. In addition to all or some of the playing surface, the playing area may include structures and enclosures surrounding the playing surface (e.g., walls that a ball may contact and still be considered “in play”). The line markings may delineate regions within the playing area (e.g., a service box) and boundaries of the playing area (e.g., a sideline and a baseline) on the playing surface. The playing surface may extend beyond the boundaries of the playing area (i.e., where a player may move to return a ball, but where the ball would be “out” if the ball were to contact the same). Structures that may be a part of the playing area may include a net, a cord or cable suspending the net, and net posts to which the net, suspended by the cord or cable, is attached. In racquet sports such as platform tennis and padel, wherein the official rules and regulation of the games provide for a ball to be played off (i.e., come into contact with and remain in play) an enclosure surrounding the playing surface during regulation game play, the enclosures may be a part of the playing area of the “court” as used herein. With respect to platform tennis, the enclosure may comprise a screen (e.g., a metal mesh wall forming a fence around a platform). With respect to padel, the enclosure may comprise walls formed of a transparent or opaque material and walls composed of metal fencing.
Directional descriptions may be used herein with respect to a racquet court including “sideways,” referring to direction(s) perpendicular to the court sidelines/sides and parallel to the flat playing surface of the court (e.g., parallel to court baselines and/or backwalls), “lengthwise” referring to direction(s) parallel to court sidelines/sides and parallel to the flat playing surface of the court, and “vertical” referring to directions perpendicular to the court playing surface. The sideways, lengthwise and vertical directions may be perpendicular to one another. Sideways and lengthwise directions may be considered horizontal directions.
The automatic ball machine 100 may be moved onto one side of a racquet court and one or more players may position themselves on the other side of the racquet court (e.g., with a net interposed between these two sides). The automatic ball machine 100 is preferably light enough to be pulled onto the racquet court (i.e., haulable), such as by being rolled onto the court by a person. Although the automatic ball machine 100 of
Referring to
At step S720, a first instance of a workout routine is initiated by the automatic ball machine 100. A plurality of different workout routines may be stored by or accessible by the automatic ball machine 100. Each workout routine may comprise a sequence of shots, each shot being defined by targeted shot parameters that are derived from initial shot parameters. In some examples, the initial shot parameters may be predetermined, and may be either stored shot parameters (e.g., stored in a computer memory) and/or shot parameters derived from the stored shot parameters. For example, a list of shots may be stored as a table in computer memory, with each entry of the list corresponding to a shot to be provided by the automatic ball machine 100. For example, each entry of the list may identify a set of shot parameters (which may be referred to herein as “stored shot parameters”) corresponding to the shot to which the entry corresponds. Each entry may include the corresponding set of stored shot parameters or point to a secondary memory location where the stored shot parameters may be obtained (which may be helpful when the same shot is desired to be repeated in the same or different workout routines). In some examples, each list may describe a sequence of predetermined shots to be sequentially provided by the automatic ball machine.
The workout routine to be executed may be selected by a person (such as a user (player) or coach) with a user interface, such as a user interface connected to the automatic ball machine 100 or a remote user device (e.g., a mobile phone, smart watch, personal computer, tablet, or other mobile device) connected (e.g., wirelessly or wired) to the automatic ball machine 100. It should be appreciated that in implementations that allow a user to control aspects of the automatic ball machine via an application installed on a user device, the user interface of that device may be considered the user interface of the automatic ball machine 100, although such a user interface may also be shared with other applications not related to the automatic ball machine 100. The user interface may include conventional inputs and outputs of computing and mobile devices, such as one or more of a display, a touchscreen, a keyboard, a touchpad, a mouse, a microphone, a speaker, etc. The workout routine may be selected from a displayed list of predetermined workout routines stored locally with the controller 110 or stored remotely and accessible by the controller 110 of the automatic ball machine 100 via a wired or wireless connection. The user may also initiate the execution of the selected workout routine to start the launching of balls to the user with a further input, e.g., with the remote user device or with a gesture (such as waving of the hands or racquet in a predetermined pattern that is recognized by the automatic ball machine 100 via analysis of images taken by the imaging system 120).
The length (e.g., duration) of the predetermined workout routines may be defined, for example, by providing a predetermined number of shots (e.g., 30 shots), by the number of balls in the hopper 135 (e.g., until all balls in the hopper 135 have been delivered), by limiting the workout routine to a predetermined time interval (e.g., 15 minutes), or by limiting the workout routine based on user associated performance metrics. For example, the workout routine may repetitively provide a set of shots, where each subsequent set of shots become more and more difficult by alternating some of the shot parameters of each shot of the set (e.g., for each shot, by increasing shot speed, shot spin, placing shot location closer to the walls and/or providing a flatter (more horizontal) shot trajectory, etc.) while maintaining others of the shot parameters. The types of shots (i.e., shot types) included in the sequence of shots of a workout routine may be the same or may vary during the workout routine.
In step S730, the next shot in the sequence of shots of the workout routine is selected (the next shot in the sequence of shots is initially the first shot of the workout routine). As noted, each shot in the workout routine may correspond to or may be defined by a set of initial shot parameters (which may be predetermined and represented by stored data, such as stored shot parameters), such as location, speed, spin, peak height, launch height, shot type, etc.
In some examples, the initial shot parameters are stored (e.g. in computer storage or memory) and controller 110 obtains the initial shot parameters of each shot directly from computer storage (i.e., the shot parameters that are stored are the same as the initial shot parameters). In other examples, data in storage may define initial shot parameters but may not be the initial shot parameters themselves. For example, initial shot parameters and stored shot parameters may be represented with different types of shot parameters, but still describe the same shot (e.g., as Euclidean coordinates and polar coordinates may represent the same location in space, but use different data sets to do so). In some examples, a shot may be represented (e.g., in storage) with a set of parameters along with certain modifiers associated with the shot from which the initial shot parameters are derived. For example, a standard shot type of drive may be defined, and include modifiers of difficulty level, speed, shot location, etc., that define a shot, from which the initial shot parameters are derived (e.g., as data representing an object, such as a trajectory, may be modified by transformation matrices, to rotate, scale, shear, reflect, etc. the representation of the object). Thus, the shot may be represented by the initial shot parameters that are stored (for each shot, the initial shot parameters are the same as the stored shot parameters) or the shot may be represented by initial shot parameters that are defined by the stored data (which may include other types of shot parameters or other representations from which the initial shot parameters are derived).
In step S740, the ball launching system 130 launches a ball to the player on the other side of the court according to targeted shot parameters corresponding to the shot selected in S730. The targeted shot parameters may be obtained by modifying the initial shot parameters of the shot obtained in S730. Modification of the initial shot parameters may be performed by applying tuning modifiers to the initial shot parameters. The initial shot parameters also may be performed by applying game play modifiers to the initial shot parameters which will be discussed in more elsewhere.
Tuning modifiers may be applied to the initial shot parameters such that the resulting targeted shot parameters provide qualitatively the same shot as represented by the initial shot parameters. Tuning modifiers may take into consideration the position and orientation of the automatic ball machine 100, the current environment (temperature, humidity, rain, etc.), ball conditions (worn, new, hardness, etc.) and court conditions (e.g., court surface type, court surface wear, etc.). For example, depending on the location and/or orientation of the automatic ball machine determined in S710, the controller 110 generates targeted shot parameters. Some or all of the targeted shot parameters may be the same as the initial shot parameters, while others of the targeted shot parameters may be adjusted according to the determined location and/or orientation of the ball machine 100 (and may also be adjusted based on other tuning parameters).
The controller 110 uses the targeted shot parameters to generate appropriate launcher settings. The launcher settings are applied (e.g., input) to the ball launching system 130 by the controller 110 to control operation of the ball launching system 130, and may include (in the form of digital commands or applied voltages), spinner wheel speeds, ball launcher height, ball launcher angle, ball launcher orientation, etc. In general, the launcher settings may cause the ball launcher 130 to launch a ball corresponding to targeted shot parameters related to the selected shot. Different ball launching systems may have different mechanisms (e.g., spinner wheels, air gun, spring actuator, electromagnetic actuator, etc.) to obtain the generated launcher settings. Thus, the controller 110 may be configured differently to appropriately control the mechanism of the ball launching system of the ball launching system of the automatic ball machine 100. When only tuning modifiers are applied to the initial shot parameters (e.g., without also applying game play modifiers) to obtain the targeted shot parameters, the ball launched with the derived launcher settings is intended to faithfully represent the shot defined by the initial shot parameters; the tuning shot parameters are applied to modify the initial shot parameters to qualitatively provide the same shot as represented by the initial shot parameters in view of automatic ball machine location and orientation, the environment, ball conditions and/or court conditions.
Only some of the initial shot parameters of the selected shot may be targeted and reproduced by the ball launching system 130 while other initial shot parameters may be adjusted, such as in response to the determined location and/or orientation of the automatic ball machine 100 or to increase the difficulty of a workout routine (or to increase the difficulty of a set of shots that are repeated that form a workout routine). For example, consider when the automatic ball machine is placed in a forward position (e.g., relatively near the service line or net) and when the automatic ball machine is placed in a rearward position (e.g., relatively close to the back wall of the court and/or behind the baseline). When a selected shot has initial shot parameters of location, speed, ball height, ball spin, launch height and ball height, it may not be possible to reproduce all of these parameters from these different locations. For example, if speed, ball height, ball spin, launch height and ball height were to be the same for a first ball launched from the forward location and for a second ball launched from the second location, the shot locations of the first ball and the second ball would likely be different (e.g., the first ball would land in a shot location deeper in the other side of the court than that of the second ball).
Generating the appropriate launcher settings may thus include modifying the initial shot parameters to obtain the target shot parameters by maintaining a first subset of the initial shot parameters while adjusting a second subset of the initial shot parameters in order to maintain the first subset of shot parameters to be the same as those of the target shot parameters. For example, shot type and shot location of the initial shot parameters and the target shot parameters may be the same, while some or all of other shot parameters of the initial shot parameters may be adjusted (i.e., vary from those of the target shot parameters). In some examples, shot type, shot location, as well as shot speed, shot peak height (and/or net clearance) may constitute a first subset of targeted shot parameters that are not adjusted (i.e., are the same in the initial shot parameters and target shot parameters), while launch height and shot spin may be adjusted in order to achieve the targeted shot location at the targeted shot speed and shot peak height (and/or net clearance).
In some examples, adjusting initial shot parameters to obtain the targeted shot parameters may comprise constraining adjustments of an initial shot parameter within a predetermined range (e.g., +/−5% or +/−10%) so that the related targeted shot parameter is substantially the same as the initial shot parameter. In general, for ground strokes (where the player hits the ball after the ball bounces on the court), to provide shots that are perceived as substantially the same (and/or having substantially the same difficulty to a player), it is preferred that the shot location is left unadjusted. For volley shots, to provide shots that are perceived as substantially the same, the shot peak height (and/or net clearance) and speed may be left unadjusted. The launcher settings are then generated according to the obtained targeted shot parameters (e.g., with at least some, but not necessarily all, of the initial shot parameters having been adjusted to account for the determined location and/or orientation of the automatic ball machine 100). The ball is then launched by the automatic ball machine 100 with these launcher settings to provide a shot according to the targeted shot parameters). Further exemplary details of adjustments to obtain targeted shot parameters to provide a shot according to the selected shot while allowing for variations in ball machine location and/or orientation is provided below.
After launching the ball in step S740 to the player on the other side of the court from the automatic ball machine 100, the player returns (or attempts to return) the launched ball (i.e., by hitting the ball with a racquet). Preferably, a target location on the ball machine side of the court is previously identified indicating where the player should return the ball. The identified return target location may be identified on a display of the automatic ball machine 100, such as by highlighting a corresponding location on a graphical representation of a court (e.g., a court corresponding to the one being played on), such as with an “x”, a circle, colored shading or with flashing, or by displaying text or graphics (e.g., an arrow) indicating the target location. The identified return target location may be identified by an audio message from the automatic ball machine 100. The identified return target location may be identified by lighting up a portion of the court by the automatic ball machine 100 (e.g., directing a light beam, such as a laser, of the automatic ball machine 100, that is controlled by controller 110). In some examples, the identified return target location may be an object placed on the court that is identified by the automatic ball machine 100 by analysis of images taken by the imaging system 120. For example, a flat pad may be placed on the court or a bucket (e.g., trash can) to identify a target location for the player to return the ball. In some example, several objects with unique identifying indicia (e.g., different colors, shapes or markings) may be provided on the court and the ball machine may identify the location by communicating the unique identifying indicia (e.g., by broadcasting “red” or “one” (or displaying a red color or “red” or “1”) to respectively denote a red pad or a pad having the label of “1” on it). In some examples, each shot of the workout routine may include a corresponding return target location associated with the shot (e.g., associated with the initial shot parameters and/or stored with the stored shot parameters) which is then identified by the automatic ball machine 100 during the launch of that shot by the automatic ball machine 100. In some examples, a workout routine may include allowing user input to select return target location(s), such as by having the user identify via a user interface area(s) of the court as target(s). For example, a user may draw (via a touchscreen) or drag a shape on a displayed image of the court via a user interface of the automatic ball machine 100. In some examples, two or more users may interact in real time to identify and agree on return target location(s) (e.g., via selection of court areas via an application on a user interface).
In step S750, evaluation of the player's return of the shot launched by the automatic ball machine in S740 is performed. Such evaluation of the player's return may include evaluation of instances of player failure to hit the ball to the other side of the court (e.g., into the net), player failure to return the ball in bounds and/or failure to hit the launched ball at all. Evaluation of the player's returned shot also includes how well the player returned the ball to the other side of the court by evaluation of the shot parameters of the player's returned shot, which may reflect accuracy, difficulty and/or decision making (e.g., selected shot location and/or selected shot type) of the player. Exemplary details of evaluation of the player's returned shot are described below.
In step S760, based on the evaluation of the returned shot by the automatic ball machine 100 obtained in S750, an instantaneous rating may be generated. The instantaneous rating may comprise a single shot rating that is a rating of the player's return of the selected shot (i.e., the player's return or return attempt of the most recent shot launched by the automatic ball machine 100). In this instance, the instantaneous rating of the player may be the same as or based upon the evaluation value determined by the automatic ball machine 100 when evaluating the shot returned by the player in S750. The instantaneous rating of the player may also include or alternatively be an instantaneous workout session evaluating all or some of the player's returns and return attempts of all shots launched by the automatic ball machine 100 up to this point in the workout session. For example, the instantaneous rating may reflect the evaluation of only some the player's returns and return attempts (e.g., evaluation of the n most recent shots, where n is an integer, or evaluation of the last set of shots returned by the player, when a workout routine comprises a set of shots that are repeated with increased difficulty for each repeat).
At step S760, the instantaneous rating of the player is provided, such as displaying the instantaneous rating via a display of the automatic ball machine 100 or a physically separate display in communication with the automatic ball machine. The instantaneous rating may be generated and displayed in real time. When other players are simultaneously competing via execution of other instances of the workout routine (e.g., by other or the same automatic ball machine), the instantaneous rating of the other players may also be provided, such as by displaying the player's and competing player's instantaneous ratings side by side on the display of the (or each) automatic ball machine so that each of the player may recognize their relative rankings (positions) in their performance of the workout session with respect to each other in real time during their workout session.
In step S770, the controller 110 determines if the workout routine has ended or not. If the workout routine has not ended, the method returns to step S730 to select the next shot in the sequence of shots in the workout routine, to subsequently repeat steps S730 to S760 with respect to the next selected shot. If the workout routine has ended, the method proceeds to step S780.
In step S780, the final rating of the player's performance is provided. The final rating of the player's performance may correspond to the rating of the player with respect to all shots of the workout routine launched by automatic ball machine, which may be an average of all single shot instantaneous ratings described with respect to step S760 or an accumulation of all single shot instantaneous ratings (and may correspond to the last instantaneous workout session rating). The final rating of the player's performance, as well as any competitor's final rating, may be displayed by a display of the automatic ball machine 100 or by a physically separate display in communication with the automatic ball machine 100.
In step S820, targeted shot parameters are obtained. Targeted shot parameters may be obtained by applying tuning modifiers to provide qualitatively the same shot represented by the initial shot parameters. As described elsewhere, the initial shot parameters may also be subject to modification by game play modifiers to result in the targeted shot parameters providing a shot that qualitatively deviates from the shot represented by the initial shot parameters. The initial shot parameters may define a shot to be provided by the automatic ball machine 100 with respect to a first location and first orientation of the automatic ball machine 100 on the court. When the workout routine is a fixed workout routine, the initial shot parameters may correspond to targeted shot parameters if the automatic ball machine 100 were to be located at the first location and first orientation on the court. It will be appreciated that reference to location, orientation and deviations therefrom (e.g., deviations from the first location and first orientation) are relative to a court, e.g., positioning and orientation defined with respect to coordinate system defined relative to a standard court (e.g., having an origin at a predetermined location of a court, such as the center of the playing surface of the court, or center of the baseline, etc.). As described with respect to S740, the location and/or orientation of the automatic ball machine 100 is determined by the automatic ball machine 100. In step S820, the targeted shot parameters are obtained by adjusting the initial shot parameters based on the determined location and/or orientation of the automatic ball machine 100 on the court.
For example, step S820, in an offset (deviation) from the first location and the determined location of automatic ball machine 100 is determined, and, based upon the determined location offset, at least some of the initial shot parameters are adjusted to provide a targeted shot parameter that provides a shot by the automatic ball machine 100 that is similar to the shot defined by the initial shot parameters. In some examples, targeted shot parameters of shot location and shot type may be unchanged and remain the same as those of the initial shot parameters, while one or more of launch height, launch angle, shot height, shot spin and shot speed may be adjusted based on the determined positional deviation of the automatic ball machine from the first location so that the unchanged shot parameters may be achieved.
In some examples, for a particular shot type, one or more (or all) of the parameters that define that shot type (e.g., those that have been discussed herein with respect to a particular shot type) may remain unchanged or similar (e.g., within 5%) between the initial shot parameter and the corresponding target shot parameter. For example, players receiving shots intended for a ground stroke return, it is preferable that targeted shot speed also is the same as or similar to the initial shot speed parameter (i.e., the shot speed parameter is unadjusted or adjusted only slightly (e.g., adjusted by no more than a predetermined value or predetermined percentage, such as adjusted by no more than 5% or no more than 10% from the initial speed shot parameter). For players receiving shots intended for a volley return, it is preferable that targeted net clearance also remains the same or similar to the initial shot parameter of net clearance. For spin specific shot types (e.g., as described elsewhere herein, subcategories of other shot types requiring a minimal amount, or limited to a maximum amount, of topspin, backspin and sidespin), it may be preferable that the targeted shot spin parameters remain the same as or similar to the corresponding initial shot spin parameters. For a dink shot type, shot speed and net clearance shot parameters may remain the same or similar (within 5%) between the initial shot parameters and the targeted shot parameters. In some examples, the remaining targeted parameters may have limits applied to their adjustments, such as no more than +/−5% or no more than +/−10% from the values of the corresponding initial shot parameters.
Similarly, an offset (deviation) from the first orientation and the determined orientation of automatic ball machine 100 may be determined, and, based upon the determined orientation offset, at least some of the initial shot parameters are adjusted to provide targeted shot parameters to deliver a shot similar to the shot defined by the initial shot parameters. The deviation in orientation may be, but not necessarily, an additional factor in addition to the deviation from the first position in determining the targeted shot parameters. For example, initial shot parameters and targeted parameters of shot location and shot type may remain the same, while one or more of launch height, launch angle, peak height, net clearance, shot spin and shot speed may be adjusted (e.g., as described herein) based on the determined positional deviation of the automatic ball machine from the first orientation and/or location so that the unchanged initial shot parameters (those targeted shot parameters that are the same as the initial shot parameters) may be achieved.
The workout routine need not be a fixed workout routine. For example, the workout routine may be a substantially fixed workout routine or a dynamic workout routine. For a substantially fixed workout routine or a dynamic workout routine, game play modifiers may also be applied to the initial shot parameters to obtain the target shot parameters. Game play modifiers may include modifications of the initial shot parameters to increase or decrease difficulty and/or to introduce purposeful variance in a shot. For example, in a substantially fixed workout routine, further modest adjustments of the initial shot parameters may be made to obtain the target shot parameters. Such further adjustment may not be applicable to the parameter shot type, and thus shot type may remain the same (and thus the sequence of shots of a substantially fixed workout routine may provide the same sequence of shot types that may be slightly modified). As noted, the initial shot parameters may define a shot to be provided by the automatic all machine 100 when the automatic ball machine 100 is at the first position and first orientation on the court. For example, to obtain the targeted shot parameters, the initial parameters may be modified according to tuning modifiers to account for deviation of the automatic ball machine 100 from the first position and/or first orientation (as described herein), and all or some (including those that would remain unchanged in a fixed workout routine as described above) may be further modified according to game play modifiers to deviate within a corresponding predetermined range (e.g., such as by +/−5% or +/−10%). For example, to provide a less predictable workout routine (e.g., to a player who has performed against the workout routine previously), the targeted parameters may be obtained by modifying (with game play modifiers) some or all of the initial shot parameters to values within a predetermined range corresponding to that shot parameter. Whether to modify one or more parameters and the amount of the modifications (within the corresponding predetermined range) may be random and/or based on other factors, such as player position. For example, shot location may be adjusted from its initial value randomly or in response to player position within a predetermined range to obtain the targeted shot location value.
Alternatively, when the workout routine is a substantially fixed workout routine, the adjustments of the initial shot parameters by both tuning modifiers and game play modifiers to obtain targeted shot parameters may be performed in various ways and are not constrained to a particular order. For example, adjustments of initial shot parameters by tuning modifiers to account for deviations in position and/or orientation of the automatic ball machine 100 may be performed before or after additional adjustments of the initial shot parameters according to game play modifiers made in connection with a substantially fixed workout routine (as described herein).
Referring to
Steps S850, S860 and S870 describe calibration steps that the ball launching system 130 may optionally implement. As noted elsewhere herein, the actual shot parameters may undesirably deviate from the targeted shot parameters. In step S850, the imaging system 120 may obtain images of the ball launched by the ball launching system 130 in step S840. The images may be analyzed to determine actual shot parameters of the launched ball. In step S860, the determined actual shot parameters are compared to respective targeted shot parameters to evaluate the occurrence and extent of any deviations therebetween. In step S870, if such deviations are determined to constitute an error (e.g., such as being over a corresponding predetermined value), the controller 110 may make adjustments to the control of the automatic ball launching system 130. For example, tuning modifiers may be created or adjusted to take into account such deviations. For example, the process in which the launcher settings are obtained from the targeted shot parameters may be modified (e.g., weightings used to obtain launcher setting values may be adjusted). For example, a corresponding neutral point of the automatic ball launching system 130 may be adjusted by the controller 110. The neutral point of a setting may be a baseline reference point, such as before the automatic ball launching system 130 is modified by any calibration, which may be an average value of a corresponding setting for some of these launcher settings. For example, the neutral point for spin may correspond to spinner wheel relative speed settings intended to launch a ball with no spin, the neutral point for horizontal angle may correspond to orientation of the ball launching system or relative spinner wheel speed settings to launch the ball parallel to the sidelines (in the lengthwise direction of the court). In step S870, several launched balls may be evaluated to determine if deviations between the targeted shot parameters and the actual shot parameters warrant adjustments to the control of the automatic ball launching system 130 (e.g., comparing an average of the determined shot parameters of several same shots with the corresponding targeted shot parameter and determining if the deviation therebetween exceeds a predetermined threshold). Further exemplary details of calibration that may be performed are described below.
In step S750, evaluation of the player's return of the shot launched by the automatic ball machine in S740 is performed. Evaluation of the player return of the shot launched by the automatic ball machine 100 in step S750 may include, by the automatic ball machine 100, monitoring and evaluating one or more of the following evaluation factors: player position on the court, player movement, the footwork of the player (player foot (feet) location(s) on the playing surface), player pose, racquet position, racquet movement, racquet stroke, the shot returned by the player (e.g., one or more of the shot parameters of the returned shot), and the timing of these evaluation factors (e.g., such as relative to the launch of the ball). The imaging system 120 may obtain images of the player as the player gets in position to hit the ball launched by the automatic ball machine 100, images of the player as the player hits the ball and/or images of the ball being returned from the player's side of the court to the side of the court on which the automatic ball machine 100 is positioned. The controller 110 may analyze the images to determine one or more evaluation factors and evaluate the same to evaluate the performance of the player.
The evaluation of pose may include determining appropriate knee bends (bend angle of knees), arm bends (bend angle at elbow of arm holding the racquet), wrist angle (angle hand (e.g., palm or back of hand) holding racquet makes with forearm), torso bends (angle between legs and torso), torso angle (e.g., angle of spine with respect to court playing surface), torso twist (angle of hips relative to shoulders/chest) and/or head angle. The controller 110 may use the images of the imaging system to obtain a corresponding skeleton representation of the player for each of several images (e.g., for every frame or every nth frame of a video image), which may include segments for head, torso, upper arm, forearm, hands, hips, thighs, lower legs and feet. A torso may include a segment for spine and a segment for chest/shoulders. The skeleton segments may also include a segment for the racquet. The controller 110 may determine a length and orientation (e.g., angle with respect to court playing court surface). The skeleton segments may joint appropriately to each other (corresponding to normal human body connections) at joints, to thus form a 3D representation of the player and racquet (the skeleton representation of the player). Relative angles between the segments of the skeleton may be easily determined and to determine bends discussed herein. The determined skeleton segments orientations describe corresponding body part orientations of the player. The determined skeleton segments orientations and relative angles of skeleton segments (such as bends) may thus be evaluated with respect to ball position and/or player position on the racquet court. For example, by evaluating determined skeleton segment orientations and relative angles of skeleton segments with respect to ball position, a player's backswing may be evaluated with respect to timing and swing path, wrist and elbow angles may be evaluated during the backswing, at impact (when the ball contacts the racquet), and during follow through. The torso position and angle may be evaluated at impact to determine if the player is at the proper height relative to the ball and/or relative to the feet of the player. Torso bends may be evaluated (alone or relative to knee bends).
Evaluation factors of stroke (racquet swing path including racquet position and racquet orientation), racquet speed and racquet angle (e.g., racquet head angle when contacting the ball) may be evaluated by analysis of the racquet segment of the player skeleton. Alternatively, the racquet position and orientation may be determined separately from any player skeleton determination, and be used to evaluate stroke, racquet speed and racquet angle. Stroke may be evaluated as backswing and follow through, and may include evaluating combinations of racquet swing path, racquet speed, racquet angle as they relate to other evaluated factors (e.g., ball position, pose, etc.)
Shot parameters of the ball returned by the player (which may be referred to herein as “returned shot parameters”) may be determined by analysis of the images taken by the imaging system and used to evaluate the shot returned by the player and generate an overall evaluation value of the returned shot. The evaluated returned shot parameters may include any of the shot parameters discussed herein, such as shot location (landing point on court), shot spin, ball speed, ball height, net clearance, shot path, shot trajectory, shot location, shot type and shot speed. The evaluation may determine a corresponding evaluation value for each evaluated shot parameter, the aggregate of which may generate an evaluation (e.g., a rating) of the shot returned by the player, such as by adding all such evaluation values or by weighting the evaluation values with corresponding weighting values and adding all of the weighted evaluation values.
Shot location may be evaluated by comparing the determined returned shot location with the identified target shot location, and providing a corresponding location evaluation value based upon the deviation (e.g., distance) from the returned shot location to the identified target shot location (with rating scores increasing with smaller deviations receiving relatively higher rating scores). Evaluation of the returned shot location may also include determining if the returned shot location is within or outside the playing area (i.e., in bounds or out of bounds or not returned) and providing a larger location evaluation value for a returned shot within the playing area vs. a returned shot outside the playing area (e.g., weighting values applied to an evaluation value of a returned shot outside the playing area may be smaller (a fraction of or negative) as compared to that applied to a returned shot within the playing area).
Evaluation of shot location may need not be in comparison with an identified target shot location. In some examples, the shot location may be evaluated based on a determination made by the player to return the ball to a particular location and rate this returned shot location based on the difficult or ease this return shot location would create for an opposing player (e.g., a shot location in the middle of the court may be rated with a relatively lower score while shot locations at sides, baselines, or lower wall heights may be rated with a relatively higher score). Evaluation of the returned shot trajectory (or horizontal path) may similarly be made such that trajectories that would create a more difficult return for an opposing player are scored higher than those that would provide an easier return for an opposing player.
Shots may be evaluated for speed, such as providing a larger speed evaluation value for higher shot speeds. Shots may be evaluated for net clearance, such as providing a larger net clearance evaluation value for lower net clearances for certain shot types (e.g., drives, dinks, etc.).
Shot type may be evaluated by determining if the shot type of the ball returned by the player is the same as an instructed shot type provided to the player by the automatic ball machine 100 (for that individual shot or for the entire workout routine) and generating a corresponding shot type evaluation value (values) when the shot (or shots) are the same as the instructed shot type (or shot types).
Shot evaluation criteria (e.g., the shot parameters evaluated in determining the shot evaluation value) may differ when evaluating different shot types. For example, the workout routine may instruct the player the shot type the player is to hit when returning the ball (for each during the execution of the workout routine, or by associating a shot type with the entire workout routine), and the evaluation of the returned shot may include (a) determining if the returned shot type is the same as the instructed shot type, and (b) evaluating the shot based on evaluation criteria (e.g., certain set of shot parameters and/or certain weightings associated with shot certain shot parameters) according to the instructed shot type. For example, different returned shot types may be evaluated based on evaluation of different shot parameters. When evaluating a returned lob, topspin, height and/or location each may be evaluated to determine the evaluation value of the returned shot, however, speed and/or net clearance may not be evaluated in evaluating the returned lob. When evaluating a drive, location, topspin, net clearance and/or speed may be evaluated to determine the drive evaluation value of the returned shot.
In some examples, the workout routine may not provide an instructed shot type to the player, and the shot returned by the player may be determined by the automatic ball machine 100. The shot may be evaluated based on evaluating the quality of the shot based on evaluation criteria (e.g., certain set of shot parameters and/or certain weightings associated with shot certain shot parameters) specific to the determined shot type.
In addition to evaluating the quality of the shot type (based on the evaluation criteria as described herein), the returned shot may be evaluated based on the shot type itself (i.e., the “shot type decision” of the player). For example, if a player returns a lob, the automatic ball machine 100 may (a) determine that the player's returned shot type was a lob and (b) evaluate the shot returned by the player including (i) determining the quality of the shot type lob in evaluating the shot returned by the player and (ii) evaluating the player's shot type decision to return a lob (e.g., vs. some other shot type) in this situation. For example, the evaluated returned shot may be a weighted value of the determined quality of the shot type, where the weighting is determined based on the evaluated shot type decision of the player as good (e.g., a weighting of 1.1), bad (e.g., a weighting 0.9), or average (e.g., a weighting of 1).
Weighting may be determined by several factors, and each factor may have the ability to increase or decrease a weighting. For example, shot type decision evaluation may take into consideration: (1) the situation the player is addressing upon the automatic ball machine 100 launching the ball to the player, (2) whether a different shot type was more appropriate, (3) whether a player consistently avoids providing a particular shot type, (4) whether a player consistently favors a particular shot type and/or (5) the amount of variety of shot types provided by the player. The situation the player is addressing may be evaluated based on the previous ball launched by automatic ball machine 100, the location of the player, the current movement of the player, and/or the posture of the player. Evaluating the player's shot type decision may include evaluating how often the shot type is used by the player, to determine if a player unduly avoids providing a particular shot type or unduly favors a particular shot type (e.g., as compared with percentages of corresponding shot types with respect to other players having similar skill levels (e.g., other players within a predetermined range (e.g., +/−5%) of a player's rating). For example, a player who consistently avoids a backhand shot (e.g., backhand drive, backhand slice (where slice refers to a backspin subcategory of a shot type) to instead provide a forehand shot may be penalized with a poorer rating of the returned shot for the decision to provide a forehand shot type (i.e., penalized for “running around their backhand”). For example, a player who returns a relatively wider variety of shot types as compared to other players of similar skill level (e.g., within a predetermined range (e.g., +/−5%) of player's rating) may have shot type decisions described above evaluated more favorably (e.g., having a shot type decision weighting increased accordingly), while players returning the same shot type at a rate higher than other players having similar skill levels may have shot type decisions evaluated less favorably (e.g., having a shot type decision weighting reduced accordingly).
As noted, a workout routine is formed as a sequence of shots provided by the automatic ball machine. Each shot in the sequence may have one or more predetermined shot parameters, such as by having a predetermined location for the ball to land on the user side of the court, a predetermined spin (spin rate and spin direction), a predetermined speed, a predetermined launch angle, a predetermined launch height, a predetermined peak height, a predetermined net clearance, and/or a predetermined shot type (lob, drive, dink, etc.). A workout routine is considered a “fixed” workout routine when each shot in the shot sequence of a workout routine has a corresponding predetermined shot location and a corresponding predetermined shot type. For example, as described herein, each shot in a fixed workout routine may be defined by a corresponding set of initial shot parameters from which a corresponding set of targeted shot parameters are generated, where at least the shot location and shot type are the same between the set of initial shot parameters and the set of targeted shot parameters. In some examples, each shot of the shot sequence may be the same (and thus the fixed workout routine may be a sequence of providing the same shot to the player). Alternatively, the predetermined landing point and predetermined shot type may differ for at least some of the shots in the shot sequence, thus the parameters of the shot (including any initial parameters and derived target parameters) may depend on the order of the shot in the shot sequence. Each shot in a shot sequence of a fixed workout routine may also have other initial shot parameters that define the shot and that are the same or similar to the corresponding targeted shot parameters derived therefrom, as described herein.
Initial shot parameters of a fixed workout routine may describe (e.g., define) a shot with respect to a first location and first orientation of the automatic ball machine on the court. If the automatic ball machine 100 were to be placed at the first location and first orientation on the court, the stored shot parameters would correspond to targeted shot parameters, the launcher settings would be determined in order to launch a ball having shot parameters corresponding to the initial shot parameters. As noted, the initial shot parameters may be stored shot parameters and/or shot parameters derived therefrom (i.e., initial shot parameters derived from the stored shot parameters may be dependent on the stored shot parameters, and thus both the stored shot parameters and any derived initial shot parameters define the same shot). When the automatic ball machine 100 is placed in a position and/or orientation that deviates from the first position and first orientation, the only a subset of the targeted shot parameters may correspond to the initial shot parameters, while others may be adjusted so that the subset of the targeted shot parameters may be maintained without adjustment as described elsewhere herein.
Other than the position and orientation of the automatic ball machine 100, the targeted shot parameters of a fixed workout routine may be otherwise independent of real time factors (e.g., player positioning). The automatic ball machine 100 may adjust launcher settings to react to real time factors (e.g., environment, ball characteristics and/or ball machine characteristics) in order to more accurately generate a shot according to its targeted shot parameters. For example, when the automatic ball machine 100 is placed closer to the net as compared to the first position, one or more of additional topspin, reduced backspin, higher launch height and reduced launch angle may adjust initial shot parameters to obtain the corresponding target shot parameters. Thus, an automatic ball machine or several different automatic ball machines may replicate the fixed workout routine to provide a workout routine that is substantially the same, and has substantially the same difficulty despite differences in the location and orientation of the ball machine on the same or different racquet court.
In some examples, each shot in the shot sequence of a workout routine may have a corresponding predetermined range associated with one or more shot parameters corresponding to the initial shot parameters. Such a workout routine may provide substantially similar shots in the same sequence in each instance of its execution, and may be referred to herein as a substantially fixed workout routine. For example, each shot of a substantially fixed workout routine may be defined with respect to a shot type as well as additional shot parameters of shot location, spin, and speed of the shot along with respective predetermined ranges in which such additional shot parameters may vary from the initial shot parameters to the targeted shot parameters of the shot derived from the initial shot parameters. For example, a shot may have a target shot location that may be targeted to be anywhere within a predetermined area of the court, such as varying no more than a predetermined distance (e.g., no more than 3 feet) from a predetermined shot location on the court (e.g., where the predetermined shot location is the initial (e.g., stored) landing point value of the shot). For example, a shot may have a speed shot parameter that may vary within a predetermined range (e.g., +/−5%, or +/−10%, etc.) from a predetermined speed (e.g., where the predetermined speed corresponds to an initial shot speed parameter of the shot). For example, a shot may have a target spin that may vary within a predetermined range (e.g., +/−5%, or +/−10%, etc.) from a predetermined spin (e.g., where the predetermined spin corresponds to initial shot spin parameter of the shot). Similarly, other shot parameters may vary from predetermined corresponding values within a corresponding predetermined range (e.g., a launch angle that may vary within a predetermined range (e.g., +/−5%, or +/−10%, etc.) from a predetermined launch angle, a launch height that may vary within a predetermined range (e.g., +/−5%, or +/−10%, etc.) from a predetermined launch height, a shot peak height (and/or net clearance) that may vary by a predetermined range (e.g., +/−5%, or +/−10%, etc.) from a predetermined shot peak height (and/or net clearance). Such predetermined values may correspond to the initial shot parameters (e.g., obtained in step S810) (i.e., such values may be the same as the stored shot parameters or dependent upon the stored shot parameters to reproduce the stored shot parameters). Such predetermined values may also correspond to values obtained by adjusting the initial shot parameters to account for offset between the first location and/or first orientation of the automatic ball machine 100 and the determined location and orientation of the automatic ball machine 100.
Thus, a substantially fixed workout routine allows for shot parameters of the shot to vary within some constraints (e.g., within a corresponding predetermined range about an initial shot parameter). It should be appreciated that reference to varying or deviation of shot parameters refers to the modification of shot parameters to obtain a target corresponding shot parameter. As the shot parameters may be modified multiple times for different purposes, the shot parameter that is modified may be the initial shot parameter or an intermediate shot parameter that is a result of a previous modification of the initial shot parameter. For example, an initial shot parameter may be adjusted to account for the location and/orientation of the automatic ball machine to obtain a corresponding intermediate shot parameter, and this intermediate shot parameter may be adjusted again to obtain the corresponding target shot parameter based on factors described herein (e.g., with respect to a substantially fixed workout routine, such as adjusting within a predetermined range randomly and/or based on player position). Additional constraints to the variance of shot parameters may include boundaries of the playing area. For example, a targeted shot location may vary from a predetermined landing point by no more than a predetermined distance and must stay within the playing area (e.g., “in bounds”) (e.g., a targeted landing area defining an area of possible targeted landing points within the predetermined range from the predetermined landing point may be truncated by a boundary of the playing area).
In a substantially fixed workout routine, the shot parameters may be adjusted randomly or in dependence on predetermined or real time factors. Random changes to the shot parameters may be helpful to limit advantages obtained by the player predicting the next shot when the player has competed against the same workout routine previously. In some examples, shot parameters may be adjusted in dependence on the position of the player as determined by the automatic ball machine 100 prior to launch of the shot. The automatic ball machine 100 may determine player location on the court by analysis of images obtained by the imaging system 120, such as described in U.S. patent application Ser. No. 18/198,167 filed May 16, 2023, the contents of which are hereby incorporated by reference herein. For example, to provide shots easier to return by a player, the shot location may be adjusted (possibly in combination with other shot parameters) such that the ball is provided to the player to allow the player to hit the ball at a favorable spot for the player (or closest to such a favorable spot when constraints to variation of the shot parameters do not allow placing the ball at such a favorable spot) without requiring the player to move to change to player location. For example, the favorable spot may have a favorable player launch height, such as for example, a player launch height of +/−6 inches from waist height of the player, +/−12 inches from waist height of the player, or at a ball height of 2.5 feet to 3.5 feet above the playing surface. The favorable spot may also be placed to the side of the player, such as within a horizontal range from the player's foot (the same side foot as the hand holding the racquet) to 2 feet. To provide shots that are harder for the player to return, the shot location (and possibly in combination with other shot parameters) may be adjusted to provide the ball to the player outside these ranges unless the player properly moves on the playing surface into a better position.
Shot parameters may be adjusted according to the substantially fixed workout routine in dependence on predetermined factors, such as a skill level, ranking or handicap of the player. For example, the predetermined ranges of variance allowed for adjustment to a shot parameter in a substantially fixed workout routine may be selected to be larger for players of higher skill level and lower for players of lower skill level. The skill level may be input by the player to the automatic ball machine as part of selecting the workout routine, or may have been previously determined by the automatic ball machine 100 (e.g., corresponding to one or more final rankings obtained by the player in a workout session).
A workout routine may be a dynamic workout routine, where shots vary substantially throughout the routine. Shots provided with a particular dynamic workout routine need not be substantially reproduced and thus execution of different instances of a dynamic workout routine may provide sequences of shots that are different from each other. Shots need not be dependent on shot sequence, and shot types and other shot parameters may be determined/selected for a particular shot in response to real time inputs.
According to some embodiments, shots provided by the automatic ball machine 100 are determined by the automatic ball machine 100 based on evaluation of the action of the player by the automatic ball machine 100, which may include one or more of player location, player trajectory, player speed, player velocity, player path, the previously returned ball by the player (i.e., one or more of the shot parameters of the player returned ball), all or a subset of shots returned by the player during the workout routine, the distance traveled by the player during the workout routine, the previous shots provided to the player during workout routine, and the previous shots returned by the player during the workout routine.
Although a particular dynamic workout routine may not result in the same shots (or substantially the same shots) provided in the same sequence as described with respect to embodiments implementing multiple instances of fixed or substantially fixed workout routines, instances of a dynamic workout routine may be implemented to provide substantially the same difficulty and/or same sets of shots to provide a similar experience to a player (or different players) with each instance of executing the dynamic workout routine. For example, during execution of each instance of execution of a dynamic workout routine, the automatic ball machine may determine shots such that the end of the instance of the dynamic workout routine may result in one or more of the following targeted criteria:
Each instance of the dynamic routine may thus provide a set of shots that provide similar level of difficulty to a player, although not in any particular order and not constrained to provide exactly the same or substantially the same shots in each instance, nor even the same number of shots in each instance. Each player may be evaluated in their performance of the workout routine based on evaluation of each of their returned shots of this set of shots, as described elsewhere herein, such as with respect to
In some examples, although the automatic ball machine 100 may determine the shots of the dynamic workout routine in an attempt to provide the same difficulty level for each instance of the workout routine, this may not always be achieved. Thus, after completion of an instance of a dynamic workout routine, the difficulty level of the workout routine may be evaluated by the automatic ball machine, and the determined difficulty may be used to adjust the performance evaluation of the player. In some examples, a determined difficulty of an instance of a dynamic workout routine (or portions thereof) may be used to adjust an initial performance evaluation of an instance to determine the final performance evaluation of an instance. Take for example the case where an initial evaluation of the player's performance of an instance of a dynamic workout routine corresponds to an average of all single shot instantaneous ratings (e.g., as described with respect to step S760). The difficulty of the dynamic workout routine instance may also be evaluated to determine a corresponding weighting factor. For example, over a possible range of difficulties, a lookup table may provide a weighting factor for sub-ranges of such possible range. For example, the weighting factor may be calculated based on the determined difficulty. More difficult workout routine instances may correspond to higher weighting factors than those of relatively less difficult workout routines. The weighting factor may be applied (e.g., multiplied) against the initial evaluation of the player's performance (e.g., the average of all single shot instantaneous ratings) to determine the final rating of performance of the player in S780. Thus, the final ratings of several different instances of performance of a workout routine may be normalized based on the determined differences in difficulty of these instances.
As another example, a dynamic workout routine with a targeted difficulty level of 70 (on a scale of 1 to 100), may have an instance evaluated after its completion to have a difficulty level of only 65. Thus, the player's initially determined performance rating (e.g., based on standard performance evaluation of the player's returned shots) may be reduced accordingly (e.g., by 4%). Similarly, an instance resulting in a difficulty higher than 70 may result in a player's initially determined performance rating being increased accordingly. In some examples, such evaluation of difficulty after completion of an instance of a dynamic workout routine may be done on shot type by shot type basis, such that a player's performance is rated on each shot type of shots provided to the player and each of these shot type rating is adjusted based on a corresponding targeted overall (e.g., average) difficulty of each shot type of the dynamic workout routine. These adjusted shot type ratings may then be used to determine the player's final performance rating of the instance of the dynamic workout routine.
As another example, several instances of a dynamic workout routine may be performed, and each instance may be evaluated for its difficulty. Each initial performance rating of an instance of a workout routine (e.g., the average of all single shot instantaneous ratings) may be adjusted based on differences in difficulties of these instances to obtain corresponding final ratings of player performance of the instance of the workout routine. For example, difficulty determinations of 8.0, 7.4 and 6.2 (e.g., on a scale of 1 to 10) of first, second and third instances (respectively) of the dynamic workout routine may result in weighting factors of 1.3, 1.2 and 1 respectively applied to the initial performance evaluations of the first, second and third instances, respectively, to obtain final performance ratings of these instances, thus normalizing the performance evaluations based on the determined difficulties of the workout routine. Thus, even when a targeted difficulty level is not provided with a dynamic workout routine, the different difficulties of the instances of the targeted workout routine may be used to normalize the initial performance evaluations to provide final performance evaluations that are more fairly representative of differences in performances of the dynamic workout routine.
It should be noted that in some examples, in order to achieve such similarity level of difficulty with respect a set of shots provided in executing an instance of the dynamic workout routine, one or more “dummy” shots may be provided by the workout routine that are not considered part of the set of shots to be evaluated and thus the player's return of such dummy shots would not be evaluated in evaluating the player's execution of the workout routine. For example, if the dynamic workout routine requires a minimum number of lobs, a relatively easy drop shot may be provided to the player as a dummy shot to move the player to the net to then be able to provide a lob.
The method of
In some examples, the multiple instances of the same workout routine may be executed at the same time, including initiating the instances of the same workout routine by the different automatic ball machines 100 on different courts at the same time. Each automatic ball machine 100 may execute an instance of the same workout routine concurrently (e.g., according to any of the embodiments discussed herein) and thus provide player ratings in real time. Thus, the players may experience a real time competition between themselves. Alternatively, players may compete against each other at different times (i.e., instances of the first workout routine are executed at different times), and attempt to improve their performance (and increase their final ratings of their workout session) to increase their relative rankings of players who have also performed the first workout routine. Players may also compete against themselves, including executing a subsequent instance of a workout routine and comparing instantaneous and/or final ratings of the previous and subsequent corresponding workout session of the player in the same manner as with respect to a different player (with respect to executing the same workout routine at a different time) as described herein.
It should be appreciated that although
In some examples, both a local area network and the Internet may be part of the system to facilitate communications between various elements of the system. Each automatic ball machine 100 may be controlled by the player (or other person, such as a coach) on the corresponding court, such as via a smartphone, a smartwatch, a portable computer, a tablet, or other type of mobile device or by a remote controller. Commands may be provided by the player from such devices, and may be sent via network 400 or directly to the corresponding automatic ball machine. Displays 300a, 300b may be controlled by the respective automatic ball machine 100a, 100b, such as with a wireless communication link therebetween. Alternatively, the mobile device of the player may receive and display information from one or both of the automatic ball machines via network 400 and communicate with the appropriate display 300a, 300b (via the network 400 or directly (not shown)) to have the display information displayed. It will be appreciated that the elements of the system of
As illustrated in
The automatic ball machine 100 may execute the first and second instances of the workout routine simultaneously. For example, launched balls of the first instance of the workout routine may be interspersed with launched balls of the second instance of the workout routine. For example, if 1 to M balls are sequentially launched to execute the first and second instances of the workout routine (where the workout routine comprises the launching of N balls, where N is an integer, and M is an integer equal to 2×N), odd number balls in the sequence of 1 to M balls may correspond to the first instance of the workout routine, while even numbered balls in the sequence of 1 to M balls may correspond to the second instance of the workout routine. In the example illustrated in
In some examples, instances of the workout routine are repeated for each player of each group. That is, each player may play against an instance of a first portion of the workout routine. For example, players A1 and B1 may play against instances of a first portion of a workout routine constituting shots to locations 1 to 5 on corresponding sides of the court (e.g., provided by automatic ball machine 100 as discussed with respect to
Evaluation of the performance of each of the groups may be performed by the automatic ball machine 100 through the evaluation of each of the shots returned by the players (and/or other factors as described herein) and ratings of the groups may be displayed in real time during the execution of the instances of the workout routine. In addition, the automatic ball machine 100 may also evaluate the performance of each individual separately and provide a corresponding rating of each individual (e.g., an instantaneous and/or final rating of each individual in real time during execution of the instances of the workout routine). The automatic ball machine 100 may identify and track the different players so as to correctly associate evaluated performance with the correct player. Thus, shots returned by player B1 are evaluated to provide a ranking associated with player B1 and not other players. Additional details of player identification and tracking may be found U.S. application Ser. No. 18/198,167.
It will be appreciated that the implementation of the group competition described with respect to
Parameters of a shot may include shot type, launch point, launch speed, launch angle (upward/downward tilt and/or left/right yaw), direction, location, spin, height (which may be net clearance, launch height or peak (maximum) height of the shot), launch interval (time since last shot) and shot trajectory. Shot parameters may refer to initial shot parameters defining a shot (which may be stored shot parameters and/or derived from stored shot parameters), targeted shot parameters, and/or actual shot parameters (with respect to shots launched by the automatic ball machine 100 or with respect to shots returned by a player). The desired resulting parameters of a shot delivered by the automatic ball machine 100 may deviate from the actual resulting parameters based on various factors, including environment (temperature, humidity, rain, wind etc.), variations in ball characteristics, and variations in ball machine characteristics (e.g., spinner wheel friction, spacing, etc.). Use of the word “target” herein or variations thereof (e.g., “targeted shot location”) may be used to acknowledge such deviations. However, unless context indicates otherwise, it should be appreciated that general description of actions of the automatic ball machine 100 to provide a shot having particular parameters (i.e., without the use of the word “target”) will be understood to refer to targeted parameters (which may deviate from actual parameters of the resulting shot). Further details of shot parameters described below are mostly in reference to shots launched by an automatic ball machine 100, however, it should be understood that shot parameters apply to shots launched by a ball machine as well as shots returned by or initiated by a player.
The shot location is the landing point of the ball after its launch by the ball machine. The shot location may be on a playing surface (playing area or outside the playing area) or the enclosure (walls) surrounding a playing surface. A shot location generally refers to the location of the initial contact of the ball on the opposite side of the court (which may be a wall or playing surface). A shot location may also refer to locations of subsequent contact of the ball with the court which would be considered “in play” according to the rules of the racquet sport (e.g., prior to a second bounce on the playing surface). For example, in platform tennis and padel, a shot location may refer to the initial contact of the ball on a wall, or to later contact of the ball on the playing surface. Shot area may refer to a particular area on the court on which a shot location (landing point) should be confined. It should be appreciated that a targeted shot location may not be achieved in many instances when a player volleys the ball (hits the ball without letting the ball first bounce on (contact) the court), however, the targeted shot location of the shot may still be considered the shot location of this shot.
Spin of the shot refers to the direction and rotational speed of the ball after its launch from the ball machine or return from a player and prior to landing on the other side of the court. Shot spin may be provided as backspin, topspin, sidespin (left and right) and a combination of sidespin with one of backspin and topspin.
Trajectory refers to the entire path of the ball in the air after its launch (by the automatic ball machine 100 or the player). Speed refers to the initial speed of the launched ball with respect to the ground or the instantaneous speed of the ball at any point in its trajectory. Speed may be treated as constant throughout the shot to simplify analysis. Ball flight direction refers to the instantaneous 3D direction of the flight of the ball at any point of its trajectory; i.e. the direction of ball velocity at a point in time. The ball flight direction may be described in different ways, such as inclination (the angle with respect to the court playing surface) and horizontal angle (or azimuth) (the angle of the ball flight with respect to a horizontal line on the court surface, such as with respect to a sideline). Velocity refers to the vector quantity consisting of 3D ball flight direction and speed.
The launch angle of the shot refers to the ball flight direction at its launching point from the automatic ball machine 100 (or at its launching point from the racquet when the ball is returned from a player). Shot height may refer to the height of the ball at some point in its trajectory and may be launch height, peak height or net clearance. The launch height refers to the height of the ball at its launching point from the automatic ball machine (or return from a player). Peak height refers to the maximum height the ball achieves over the playing surface during the shot (i.e., the maximum or peak height of its trajectory). Net clearance refers to the height of the ball when the ball crosses the net and may be the vertical distance between the ball (e.g., bottom of the ball) and the net (actual or average net height) when the ball crosses the net or may be the vertical distance of the ball from the playing surface when the ball crosses the net.
Additionally, the shot parameters may also include various launch intervals that describe a timing of a launched ball with respect to another action, such as an inter-launch interval, a launch to bounce interval, a launch to hit interval and a hit to launch interval. The inter-launch interval may be the time interval between successive launches by the automatic ball machine 100. The launch to bounce interval may be the duration between a launch and the time the ball bounces on the playing surface (or other portion of the playing area, such as a wall). The launch to hit interval may be the duration between a launch and the time the ball is hit by the player to return the ball. The hit to launch interval may be the time between the player hitting a first ball (e.g., to return to the automatic ball machine 100) and the time the automatic ball machine 100 launches the next ball on the playing surface (or other portion of the playing area, such as a wall). In some examples, the launch interval may be an initial shot parameter and remain unadjusted when executing a workout routine. In others, a launch interval may be adjusted. For example, a hit to shot interval may be adjusted by the automatic ball machine 100 based on the shot returned by the player (e.g., speed and shot type) so that the subsequent shot is launched at a time that is more similar to actual play (e.g., a player returning a lob, or a player hitting the ball against a back wall may be detected by the automatic ball machine and cause the automatic ball machine 100 to adjust the hit to launch interval to include a time delay corresponding to the longer time a player takes to hit a successful lob, while a hard drive or dink (or other short shot) may be detected by the automatic ball machine 100 to cause the automatic ball machine 100 to adjust the hit to launch interval to decrease the time the subsequent shot is launched). In racquet sports, such as platform tennis and padel in which the ball 101 may be played off an enclosure surrounding the playing surface, the automatic ball machine 100 may adjust the hit to launch interval to include a time delay that corresponds to the ball being played off the enclosure. In addition, the position of the player may be detected by the automatic ball machine 100 and be used to adjust the timing of the subsequent shot (e.g., adjust the hit to launch interval). For example, a player returning the ball in the backcourt (relatively distant to the net) may result in a relatively longer hit to ball interval, while a player returning the ball relatively near the net may result in a relatively shorter hit to ball interval.
A shot type may be defined by a combination of various shot parameters. For example, a serve, an overhead smash, a drive, a forehand, a backhand, a dink, a drop shot, a lob, a ground stroke, a volley, a half-volley, backwall return, sidewall return, double wall rebound, cross-court, mid-court, shallow, deep, and down-the-line are each an example of a shot type and each may be defined by various corresponding predetermined ranges of location, spin, speed, launch angle, shot height (launch height, net clearance, and/or peak height) and/or other shot parameters described herein. It should be apparent that certain shot types may be a combination of other shot types (e.g., a shot type may be a deep cross-court topspin forehand drive, a shot type may be a backhand volley drop shot, etc.). It also should be apparent that certain shot types may be sub-categories of other shot types.
The following provide exemplary shot types and exemplary shot parameters that may be used to define and determine the shot type. Unless the context indicates otherwise, each of the shot parameters discussed herein with respect to a particular shot type should be understood to be in addition to or alternative to the other shot parameters discussed with respect to that shot type. It also should be appreciated that the shot type may be defined by the targeted shot parameters (e.g., a targeted shot location) that may not actually be achieved with the actual shot (e.g., because the player hits the ball before an initial bounce, the targeted shot location is not achieved, a distance requirement is not met, etc.), and thus the discussed shot parameters should be understood to be applicable to targeted shot parameters and not require the actual shot parameter to be achieved.
Additional shot types may be defined as more specific types of the shot types described above. For example, the shot types described above may have subcategories of specific spin shot types, backhand shot types, forehand shot types, cross-court shot types, and/or down-the-line shot types.
Subcategories of specific spin shot types may be subcategories of a broader shot type that are defined with one or more spin shot parameters, which may be backspin, topspin and/or sidespin parameters. As one example, more specific shot types of the shot type groundstroke may include a backspin groundstroke, a topspin groundstroke, a sidespin groundstroke and a flat groundstroke. For example:
As noted, the more specific spin shot types are not limited to the shot type groundstroke but are applicable to the other shot types described herein, such as serve, overhead, volley, drive, lob, drop shot, dink, backwall return, sidewall return, and double wall rebound, and thus each of these shot types may also have subcategories of more specific shot types of backspin, topspin, sidespin and/or flat of that shot type and be defined in a manner that is the same or similar to that described with respect to the more specific spin shot types of the groundstroke shot type. It should be appreciated that the spin parameter ranges defining these more specific spin shot types may differ from each other. For example, the minimum topspin defining a topspin groundstroke may be different from the minimum topspin defining a topspin lob.
Subcategory shot types may also include backhands and forehands of other shot types. A forehand shot type may be a shot launched to the side of the player corresponding to the player's dominant hand (when the player is facing the automatic ball machine). A backhand of a shot type may be a shot launched to the side of a player corresponding to the player's non-dominant hand side (when the player is facing the automatic ball machine 100). For example, a ball launched to a location anywhere to the left of a line extending from the automatic ball machine 100 and through the player would be a forehand for a right hand dominant (or right handed) player and a backhand for a left hand dominant (or left handed) player. The automatic ball machine 100 may automatically determine the dominant hand of a player by determining (through image analysis) the hand of the player that holds the racquet and/or the hand of the player that holds the racquet while hitting the ball (e.g., returning the ball). The non-dominant hand side of the player may be determined as the side of the player that is opposite to the dominant hand side of the player. Alternatively, the dominant hand side of the player may be input (via the user interface) to the automatic ball machine (e.g., as part of setting up the workout routine).
Shot types may thus include forehand and backhand subcategories of other shot types, such as shot types of forehand serve, overhead, volley, drive, lob, drop shot, dink, backwall return, sidewall return, and double wall rebound and shot types of back hand serve, overhead, volley, drive, lob, drop shot, dink, backwall return, sidewall return, and double wall rebound. Forehand and backhand shot types may also be subcategories of the more specific spin shot types described herein (e.g., a backhand backspin drive, a forehand backspin drive, a backhand topspin drive, a forehand topspin drive, a backhand backspin drop shot, etc.)
Although the topspin, backspin, sidespin, flat, forehand and backhand shot types are described herein with respect to subcategories of other shot types, in some examples, they may be used to provide shot types each of which also corresponds to several different shot types (i.e., they provide a generic shot type definition covering a plurality of other shot types). For example, a shot type of slice may be provided which represents any shot qualifying as at least one of a backspin drive, a backspin dink, a backspin drop shot, etc. For example, a shot type of forehand may be provided that represents any shot qualifying as at least one of a forehand drive, a forehand lob, a forehand dink, etc.
Additional shot parameters, such as velocity, magnitude of spin, orientation of spin, height, launch angle, location (e.g., landing point on the court), height, trajectory, etc. may be used to further define each of the above noted shot types as well as other shot types. As described above, some or all of the parameters of a particular shot type may be set (or defined) within a corresponding range of values (which may be an open ended range) with respect to each parameter.
It should be appreciated that the shot parameters may be represented in many forms and be described relative to different elements. For example, net clearance may be represented by reference to the vertical distance of the ball from the court playing surface (which may assume a relatively constant net height) when the ball crosses the net rather than the distance of the ball from the top of the net. Thus, although the present disclosure may refer to a particular representation of a shot parameter, the invention is not limited thereto, and such shot parameters will be understood to be able to be represented in other forms.
In some embodiments, the controller 110 of the automatic ball machine 100 is configured to calibrate operation of the ball launching system 130 to more accurately generate a shot with the desired shot parameters. Such calibration may be part of a calibration routine in which the automatic ball machine launches a sequence of balls with targeted shot parameters, determines actual shot parameters (via analysis of images obtained from the imaging system 122) and adjusts control of the ball launching system 130 to address deviation (e.g., deviation larger than a corresponding predetermined value) between the targeted shot parameters and the determined actual shot parameters. For example, the calibration routine may launch several balls with the same targeted shot parameters, preferably to a targeted shot location one that is viewable by the imaging system 120 and easily identifiable by the automatic ball machine, such as a where two lines on the court intersect (e.g., a target location where the baseline intersects with a sideline, a corner of the service box, a target location where walls (screens) intersect, or a target location where walls (screens) meet the playing area). Images obtained by the imaging system 120 may be analyzed by the controller to determine actual parameters of the shots, such as shot location, speed, peak height, net clearance, shot spin, etc., and the controller 110 may adjust control of the ball launching system 130 to reduce and/or substantially eliminate deviations from the targeted shot parameters and the determined actual parameters for subsequent launches.
Several different targeted shot parameters may be assessed and calibrated. For example, for a first targeted shot location, the parameter of shot location may be calibrated by adjusting the operation of the ball launching system 130 (e.g., speed of spinner wheels, trajectory of launch, launch height, etc.). For a first targeted shot location, speed, shot peak height (e.g., peak height and/or net clearance) and shot spin may be similarly calibrated via providing several shots and comparing targeted shot parameters with determined actual shot parameters. The process may be repeated for additional shots (e.g., with different targeted shot parameters, including shots with different targeted shot locations) until the controller has determined optimal launcher settings to control the ball launching system for a variety of shots to a variety of shot locations.
For example, it is desirable for many workout routines that shot location of the shots provided by the automatic ball machine 100 is accurately achieved. During calibration, several shots may be launched to the same location, and actual shot locations may be determined by the controller 110 analysis of images of the shot obtained by the imaging system 120. If one or more of these shots are not delivered within a predetermined distance of the targeted shot location, and/or if an average of the actual shot locations of several shots is not within a predetermined distance of the targeted shot location, controller 110 may adjust control of the ball launching system, such as adjusting speed of the launched ball (e.g., by adjusting speed of the spinner wheels), peak height (and/or net clearance) (by adjusting launch height and/or launch trajectory, and/or spin (adding or reducing topspin or backspin). Similar adjustments may be made for other shot parameters including those discussed herein. Such adjustments may be made as part of determining appropriate launcher settings from the targeted shot parameters, and/or be made to neutral point settings of the ball launching system 130.
The launching of subsequent shots by the ball launching system 130 may use the optimal launching settings, which may include determining launching settings from targeted shot parameters via interpolation and/or extrapolation of the optimal launch settings associated with the calibrated shots to provide shots with shot parameters intermediate to or extended from those associated with the shots launched during calibration. It should be appreciated that such interpolation and/or extrapolation may be linear, polynomial, or other type of interpolation/extrapolation.
Workout routines may have a variety of complexity, but it may be valuable to provide workout routines that focus on a certain skill to improve that player's skill while also allowing for a competitive experience (whether with others or with the player's previous workout routines). As a non-limiting example, a first workout routine may focus on the service return of a user. Accordingly, the shot sequence in the first workout routine may include only the shot type serve. A second workout routine may focus on the drive return (e.g., forehand drive return, backhand drive return) of a user. Accordingly, the shot sequence in the second workout routine may include only the shot type drive. A third workout routine may focus on the lob return of a user. Accordingly, the shot sequence in the third workout routine may include only the shot type lob. A fourth workout routine may focus on the drop shot return of a user. Accordingly, the shot sequence in the fourth workout routine may include only the shot type drop shot. A fifth workout routine may focus on the volley shot return of a user. Accordingly, the shot sequence in the fourth workout routine may include only the shot type volley. In the first, second, third, fourth, and fifth workout routines, although the respective shot sequences include only the same shot type (e.g., one of serve, drive, lob, drop shot, volley, etc.), the automatic ball machine 100 may adjust parameters of one or more individual shots in the respective shot sequences based on a determination (and optionally an analysis) of a shot type returned by the user as discussed in detail elsewhere. For example, the automatic ball machine 100 may adjust, for an individual shot type, parameters that include, but are not limited to velocity, magnitude of spin, orientation of spin, height, launch angle, location (e.g., landing point on the court), height, trajectory, etc.
A sixth workout routine may focus on, for example, the overall gameplay of a user or game strategy. Accordingly, the shot sequence in the sixth workout routine may include a variety of shot types (e.g., serve, drive, lob, drop shot, volley, etc.). In the sixth workout routine, the automatic ball machine 100 may not only vary the parameters of the shots from one shot type to another shot type, but the automatic ball machine 100 may also vary the parameters of individual shots in each shot type included in the sequence of shots. For example, in a sixth workout routine that includes a non-limiting example of three serves, three drives, and three lobs: the automatic ball machine 100 may vary the parameters such that a first set of parameters corresponding to the three serves, a second set of parameters corresponding to the three drives, and a third set of parameters corresponding to the three lobs are different from each other (i.e., the first, second, and third set of parameters are not the same). Additionally, in the sixth workout routine that includes the non-limiting example of three serves, three drives, and three lobs: the automatic ball machine 100 may vary the parameters of one or more of the three serves; the automatic ball machine 100 may vary parameters of one or more of the three drives; and the automatic ball machine 100 may vary the parameters of one or more of the three lobs. Each type of workout routine may have its initial shot parameters defined based on a set difficulty level. For example, initial shot parameters of a workout routine may be obtained from stored shot parameters that are adjusted based on a pre-set difficulty level. A comparison of the stored set of parameters with respect to initial shot parameters of the workout routine may reflect, for example, an increase in velocity, magnitude of spin, etc., in conjunction with an increase in the pre-set difficulty levels. Thus, the same set of stored shot parameters may be used to provide several related workout routines that differ in difficulty based on corresponding difficulty levels associated with the workout routines. The difficulty level may be selected by the user (as a user input to the automatic ball machine), determined by the rating of the player and/or determined by one or more previous ratings of workout routines previously performed by the player.
Additionally, using the imaging system 120, the automatic ball machine 100 may track the return flight of the ball hit by the user to determine position, velocity, and acceleration of the ball with respect to the court during flight as well as the landing point of the ball on the court. The tracked return flight of the ball may also include the position, velocity, and acceleration of the ball with respect to the court subsequent to the landing point of the ball on the court. The tracked return flight of the ball hit by the user may be referred to herein as “return ball flight data.” In some embodiments in which the imaging system 120 is unable to image the landing point of the ball on the court (e.g., because the view of the camera is blocked), the automatic ball machine 100 may model the return flight of the ball based on images of the ball after it is hit by a player before it bounces on the court, determine a trajectory of the ball and extrapolate the trajectory to determine the landing point. In addition to or in the alternative, the automatic ball machine 100 may analyze images of the ball after it bounces, determine a trajectory of the ball and extrapolate the trajectory (backwards in time and flight direction) to determine the landing point. Such modeling of the return flight of the ball may use a physical model of the ball (i.e., a computer model of the physical characteristics of the ball), environmental conditions (e.g., air temperature, air pressure, humidity, etc.), and the known geography of the court as detailed in the '345 application. Accordingly, in such an embodiment, the automatic ball machine 100 may capture the return ball flight data using the imaging system 120 in combination with the physical model. The physical model of the ball may include parameters, such as friction coefficients, density, weight, coefficient of drag, material, wear, etc., corresponding to the ball. The automatic ball machine 100 may also utilize a physical model of the court (i.e., a computer model of the physical characteristics of the court) in determining the position, velocity, and acceleration of the ball with respect to the court subsequent to the landing point of the ball on the court. The physical model of the court may not only include elements of the court and their locations and size, but also parameters describing the physical characteristics of the court (e.g., a friction coefficient, elasticity, and hardness of the playing surface, a friction coefficient, elasticity, and hardness of an enclosure surrounding the playing surface, etc.). Such modeling described herein may be used for both ball tracking as well as for determining launch settings to provide targeted shots more accurately.
The person detection, person identification, person tracking, and pose detection procedures detailed in the '167 application may be continuously performed by the automatic ball machine 100 during the workout routine. For example, subsequent to the automatic ball machine 100 launching the first shot to the user, the automatic ball machine 100 may continuously detect a user, identify the user, track the location of the user on the court, and detect a pose of the user. Pose detection may comprise identification of physical locations (i.e., “key points”) on the human (i.e., user) body, including hands, feet, joints, head, etc. Together, these key points determine the “pose” of the user (how their body and limbs are oriented) at a moment in time. The pose detection may be modeled as a kinematic model, a planar model, or a volumetric model, for example.
The automatic ball machine 100 may determine the pose of a user in real-time during a workout routine. For example, the automatic ball machine 100 may determine the pose of a user in real-time such that the movement of the key points of the user during a time period in which the user hits a ball (e.g., during a swing motion) may be determined. During the swing motion and in a time period directly before and after the swing motion, the movement, velocity, and position of the user with respect to the court, the movement of the key points of the user, and the position and orientation of the user's racquet (i.e., the racquet held by the user) may be referred to herein as “stroke data.” The time period directly before the swing motion and the time period directly after the swing motion may be the same duration or may be different durations. For example, the time period directly before the swing motion and the time period directly after the swing motion may have a value selected from a range between 0.2 and 2 seconds. The stroke data may then be used to evaluate the performance of the player in returning a shot during the workout session.
The automatic ball machine 100 may use the return ball flight data and the stroke data to determine a type of shot (i.e., shot type) hit (i.e., returned) by the user. For example, the automatic ball machine 100 may use the return ball flight data and the stroke data to determine that the shot type hit by the user is one of a drive (e.g., an overhead drive, a forehand drive, a backhand drive), a volley (e.g., a forehand volley, a backhand volley, a forehand half-volley, a backhand-half volley), a lob (e.g., a forehand lob and a backhand lob), a drop shot (e.g., a forehand drop shot and a backhand drop shot), etc. The automatic ball machine 100 may also use the return ball flight data and the stroke data to determine the spin (e.g., topspin, backspin or sidespin) of the shot type hit by the user. In some embodiments, to determine the shot type hit by the user, the automatic ball machine 100 may analyze the stroke data captured using the pose detection procedure (i.e., “captured stroke data”) and the return ball flight data to determine whether the captured stroke data and the return ball flight data matches previously stored stroke data (i.e., “stored stroke data” and previously stored ball flight data (i.e., “stored ball flight data”) corresponding to a shot type. For example, the automatic ball machine 100 may store a plurality of shot types in memory in association with stored stroke data and stored ball flight data corresponding to each of the plurality of shot types. The stored stroke data and stored ball flight data may be generated using machine-learning by labeling stored video and training a learning algorithm. The stored video utilized in the machine-learning may include sets of videos that are specific to different types of racquet sports. For example, each set of videos may correspond to an individual racquet sport, such as tennis, platform tennis court, padel, pickleball, POP tennis, etc. Accordingly, the generated stored stroke data and stored ball flight data may be racquet sport specific.
When the automatic ball machine 100 captures, in relation to a swing motion of a user during a workout routine, stroke data of the user and return ball flight data, the automatic ball machine 100 may compare the captured stroke data to stored stroke data stored in memory, and compare the captured return ball flight data to stored ball flight data stored in memory. For example, when the captured return ball flight data matches stored ball flight data, the automatic ball machine 100 may identify the shot type hit by the user as the shot type stored in memory that corresponds to the matched return ball flight data. In another example, when the captured stroke data matches stored stroke data, the automatic ball machine 100 may identify the shot type hit by the user as the shot type stored in memory that corresponds to the matched stored stroke data. A comparison “match” may be based on a mathematical measure of similarity or closeness. Non-limiting examples of a mathematical measure of similarity or closeness utilized by the automatic ball machine 100 may include Sum of Squared Distances (SSD), Intersection over Union, cosine similarity, etc.
As discussed above, the stored stroke data and the stored ball flight data may be racquet sport specific to thereby accurately characterize shot types in accordance with the rules of play governing different racquet sports. Certain parameters that may define how a shot type, such as “serve” is hit, may vary across different racquet sports and are defined by the rules of play adopted by the governing bodies of the respective racquet sports. For example, the International Tennis Federation (e.g., 2022 ITF Rules of Tennis) sets forth the rules of play for tennis, the American Platform Tennis Association (e.g., Official Rules of Platform Tennis) sets forth the rules of play for platform tennis, the International Padel Federation (e.g., Regulations of the Padel Game) sets forth the rules of play for padel, the International Federation of Pickleball (e.g., 2022 Official IFP Rulebook) sets forth the rules of play for pickleball, and the International POP tennis Association (e.g., Court and Equipment Guide) sets forth the rules of play for POP tennis.
As detailed in the '345 application, the automatic ball machine 100 may include settings to indicate, for example, one of a tennis court, a platform tennis court, a padel court, a pickleball court, a POP tennis court, etc. When the settings of the automatic ball machine 100 are adjusted to indicate a specific court, the automatic ball machine 100 may utilize stored stroke data and stored ball flight data corresponding to that specific racquet sport when executing the comparison of captured stroke data and return ball flight data. For example, when settings of the automatic ball machine 100 indicate a tennis court, the automatic ball machine 100 may utilize stored stroke data and stored ball flight data corresponding to tennis.
The comparison of the captured stroke data to stroke data stored in memory, and the comparison of the captured return ball flight data to ball flight data stored in memory may be used separately or in conjunction to identify the shot type hit by the user and/or evaluate the same. For example, the automatic ball machine 100 may perform a first comparison of the captured return ball flight data to stored ball flight data stored in memory to identify a first category of shot type hit by the user. The first category of shot type may include, for example, a drive, a volley, a lob, a drop shot, etc. The automatic ball machine may also perform a second comparison of the captured stroke data to stroke data stored in memory to identify a second category of shot type hit by the user. The second category of shot type may include, for example, an overhead drive, a forehand drive, a backhand drive, a forehand volley, a backhand volley, a forehand half-volley, a backhand-half volley, a forehand lob, a backhand lob, a forehand drop shot, a backhand drop shot, etc. Accordingly, when the first comparison and the second comparison are used in conjunction, the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user. For example, when the first comparison identifies the shot type hit by the user as a drive, the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user as one of an overhead drive, a forehand drive, and a backhand drive. In another example, when the first comparison identifies the shot type hit by the user as a volley, the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user as one of a forehand volley, a backhand volley, a forehand half-volley, and a backhand-half volley. Similarly, when the first comparison identifies the shot type hit by the user as a lob, the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user as one of a forehand lob and a backhand lob; and when the first comparison identifies the shot type hit by the user as a drop shot, the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user as one of a forehand drop shot and a backhand drop shot. The automatic ball machine 100 may also utilize the second comparison to confirm the accuracy of the shot type identified using the first comparison.
In yet another example, the automatic ball machine 100 may perform a first comparison of the captured stroke data to stroke data stored in memory to identify a first category of shot type hit by the user. The first category of shot type may include, for example, a forehand, a backhand, an overhead, etc. The automatic ball machine may also perform a second comparison of the captured return ball flight data to ball flight data stored in memory to identify a second category of shot type hit by the user. The second category of shot type may include, for example, a forehand drive, a forehand volley, a forehand half-volley, a forehand lob, a forehand drop shot, a backhand drive, a backhand volley, a backhand-half volley, a backhand lob, a backhand drop shot, an overhead drive (e.g., smash), etc. Accordingly, as discussed above, when the first comparison and the second comparison are used in conjunction, the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user. For example, when the first comparison identifies the shot type hit by the user as a forehand, the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user as one of a forehand drive, a forehand volley, a forehand half-volley, a forehand lob, and a forehand drop shot. In another example, when the first comparison identifies the shot type hit by the user as a backhand, the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user as one of a backhand drive, a backhand volley, a backhand-half volley, a backhand lob, and a backhand drop shot. Similarly, when the first comparison identifies the shot type hit by the user as overhand, the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user as one of an overhand drive and smash. The automatic ball machine 100 may also utilize the second comparison to confirm the accuracy of the shot type identified using the first comparison.
With reference to
The exemplary general-purpose computer 1000 may include, but is not limited to, one or more processors, such as one or more graphics processing units (GPUs) 1100 and/or one or more central processing units (CPUs) 1200. The general-purpose computer 1000 may include a system memory 1300, such as including a Read Only Memory (ROM) 1310 to store a Basic Input/Output System (BIOS) 1330 and a Random Access Memory (RAM) 1320, and a system bus 1210 that couples various system components including the system memory to the CPU(s) 1200. It should be understood that reference to a processor herein refers to a hardware circuit (such as a CPU, GPU, microprocessor, etc.) and does not refer to software, although a processor may be configured by software as is conventional. Depending on the specific physical implementation, one or more of the GPUs 1100, CPUs 1200, the system memory 1300 and other components of the general-purpose computer 1000 may be physically co-located, such as on a single chip or within a single package. In such a case, some or all of the system bus 1210 may be communicational pathways within a single chip or package.
The general-purpose computer 1000 may include computer readable medias such as RAM, ROM, EEPROM, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, memory cards, solid state devices, digital video tape, DRAM, NAND, resistive RAM (e.g., RRAM, MRAM, PRAM) or any other medium which may be used to store the desired information which may be accessed by the general-purpose computer 1000.
The general-purpose computer 1000 may operate in a networked environment via logical connections to one or more remote computers. The logical connection depicted in
The general-purpose computer 1000 may also include a user interface (such as described elsewhere herein) and wireless communication circuitry (to allow wireless communication with the general-purpose computer 1000. Advantageously, with such a configuration, the player may communicate with the automatic ball machine 100 remotely, with the ability to change functionality.
The foregoing is illustrative of example embodiments and is not to be construed as limiting thereof. Although some example embodiments have been described, those skilled in the art will readily appreciate that many different implementations and modifications are possible without departing from the novel teachings and advantages of the invention.
This application is a non-provisional application of Provisional Application No. 63/632,509, filed Apr. 10, 2024, the entire contents of which are incorporated by reference. This application is a continuation-in-part of U.S. patent application Ser. No. 18/083,203, filed Dec. 16, 2022, which is a non-provisional application of Provisional Application No. 63/291,343, filed Dec. 17, 2021, the entire contents of each of these applications being incorporated by reference. This application relates to U.S. patent application Ser. No. 18/097,345, filed on Jan. 16, 2023, U.S. patent application Ser. No. 18/198,167, filed on May 16, 2023, and U.S. patent Ser. No. 18/512,451, filed Nov. 17, 2023, the entire content of each of these applications also being incorporated by reference herein.
| Number | Date | Country | |
|---|---|---|---|
| 63632509 | Apr 2024 | US | |
| 63291343 | Dec 2021 | US |
| Number | Date | Country | |
|---|---|---|---|
| Parent | 18083203 | Dec 2022 | US |
| Child | 19060366 | US |