AUTOMATIC BALL MACHINE FOR RACQUET SPORT GAMIFICATION, SYSTEM AND RELATED METHODS

Abstract
An automatic ball machine for racquet sport gamification includes an imaging system to capture an image of the court, a ball launching system, and a controller to determine the machine's location and execute a workout routine. The routine may include launching a sequence of balls with predetermined shot types and target locations. The automatic ball machine may determine its location on the court and in response thereto, adjust the delivery of the balls to provide the appropriate shot type to the appropriate location. The imaging system may monitor and evaluate the user's returned shots, and provide a rating of their performance. The machine can replicate workout routines, enabling unbiased comparisons and competition between users.
Description
BACKGROUND

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.


SUMMARY

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).





BRIEF DESCRIPTION OF THE DRAWINGS

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.



FIG. 1 illustrates an isometric front view of an automatic ball machine in a lowered position according to example embodiments;



FIG. 2 illustrates a front view of the automatic ball machine in a lowered position according to example embodiments;



FIG. 3 illustrates an isometric rear view of the automatic ball machine in a lowered position according to example embodiments;



FIG. 4 illustrates an isometric front view of the automatic ball machine in a raised position according to example embodiments;



FIG. 5 illustrates a front view of the automatic ball machine in a raised position according to example embodiments;



FIG. 6 illustrates an isometric rear view of the automatic ball machine in a raised position according to example embodiments;



FIG. 7 illustrates a flowchart setting forth exemplary steps of executing a workout routine and shot analysis procedures with respect to a person on a court (i.e., user, player, human);



FIG. 8 illustrates a method of launching a ball based upon determined location and/or orientation of the automatic ball machine;



FIG. 9 illustrates a system including plural automatic ball machines placed on different courts to execute plural instances of a workout routine;



FIGS. 10A, 10B and 10C illustrate examples where players on the same court may compete against each other in workout sessions of the same workout routine; and



FIG. 11 illustrates an example general-purpose computer for use with the automatic ball machine according to example embodiments.





DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

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).



FIGS. 1-6 illustrate varying orientation views of an automatic ball machine 100 according to example embodiments. Referring to FIGS. 1-6, the automatic ball machine 100 may include a frame 105 onto which various components are coupled, such as a controller 110, a first camera 121, and a second camera 122 mounted inside the housing of the controller 110. Although the entirety of the second camera 122 is not illustrated in the drawings, the optical input of the second camera 122 is illustrated in the drawings above speaker 133. The automatic ball machine 100 may include a ball launching system (or ball launcher) 130 to launch (i.e., project) balls 101, a hopper 135 to store a quantity of the balls 101 prior to launch, a mobility system 175 (e.g., wheels) to move the automatic ball machine 100, and handles 136 configured to maneuver and adjust the automatic ball machine 100. The automatic ball machine 100 may be moved (pulled, pushed, carried) onto a court by a person (e.g., haulable or portable). Components of the automatic ball machine 100 may be physically connected to each other through the frame 105 of the automatic ball machine 100. For example, in this example, the first camera 121 and the second camera 122 are physically connected to the ball launching system 130 through the frame 105. The height position, in the vertical direction, of the ball launching system 130 is shown in a lowered position in FIGS. 1-3 and in a raised position in FIGS. 4-6. The height position of the ball launching system 130 may be adjusted using the height actuator 145, for example. The height position of ball launching system 130 may be adjusted and set anywhere in-between the illustrated lowered position and the illustrated raised position depending, for example, upon the trajectory needed to launch the balls 101 by the ball launching system 130. The height position of the ball launching system 130 may also range from the lowered position to the raised position during a localization operation for automatically determining the location and orientation of the automatic ball machine 100 on the court. Example structure and method for automatically determining the location and orientation of the automatic ball machine 100 on the court are detailed in U.S. patent application Ser. No. 18/097,345 (“the '345 application”) filed on Jan. 16, 2023, the entire content of which is herein incorporated by reference. The automatic ball machine 100 may further include a ball feeder 137 to feed balls 101 the ball launching system 130 to a launching position (e.g., to spinner wheels), such as from the hopper 135. The ball feeder 137 may be controlled by the controller 110 to deliver a ball to the launching position, such as controlling the timing that a ball is placed in the ball launching position to therefore control the timing that such ball is launched from the ball launching system 130.


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 FIG. 2, the spinner wheel 132a is shown as being disposed at approximately (+/−5 degrees) of the 12 o'clock position, with the spinner wheel 132c being disposed at approximately (+/−5 degrees) of the 4 o'clock position, and the spinner wheel 132b, being disposed at approximately (+/−5 degrees) of the 8 o'clock position.


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.



FIG. 7 illustrates a flowchart setting forth exemplary steps of executing a workout routine and shot analysis procedures with respect to a person on a court (i.e., user, player, human). The steps of FIG. 7 may be executed by automatic ball machine 100.


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 FIGS. 1-6 is depicted with four wheels, two of the wheels may be replaced with a fixed base (a frame or legs) that may be lifted off the ground when wheeling the automatic ball machine onto the racquet court. In some embodiments, the automatic ball machine 100 is light enough to be lifted by one or two people. The automatic ball machine 100 may be positioned anywhere on one side of the racquet court, but is preferably placed in an area where a player would typically be positioned to return a ball during normal play of the racquet sport, such as near the baseline in tennis or back court in padel and platform tennis. The automatic ball machine 100 need not be positioned precisely either in its location or in its orientation. After moving the automatic ball machine 100 onto one side of the racquet court, the automatic ball machine 100 is typically fixed in its location and orientation during subsequent operation (e.g., during execution of a workout routine), although parts of the automatic ball machine may move. For example, the wheels and frame of the automatic ball machine 100 (forming the base of the automatic ball machine 100) may be fixed in their location and orientation during execution of a workout routine, while the ball launching system 130 may rotate and/or adjust its height relative to the wheels and frame of the automatic ball machine 100. In other embodiments, the automatic ball machine 100 may include one or more motors operatively connected to drive the wheels (e.g., connected via one or more axles) to move the automatic ball machine 100 around the court during subsequent operation (e.g., under the control of controller 110 as part of execution of a workout routine).


Referring to FIG. 7, the automatic ball machine 100 determines its location and orientation on the court (S710). The imaging system 120 may obtain images of the court. Controller 110 performs feature extraction by analyzing the obtained images of the court to extract one or more features of the court, such as the orientation and location of line markings, intersections of the line markings, vanishing points corresponding to parallel line markings, structures that are a part of the playing area of the court (e.g., a net, net posts, etc.), and, when present, enclosures (e.g., walls) surrounding the playing surface. The extracted features may be identified in an image space, a two dimensional (2D) space, which may correspond to one of the images obtained by the imaging system 120, whose coordinates may correspond to pixel coordinates of the corresponding image. The controller 110 may perform a model fitting process to find a transformation from the three dimensional (3D) world coordinate system (i.e., “3D world space” or “world space”) of a court model into the 2D image space, selecting a court model with appropriate 3D transformation of magnification, location and orientation that most closely aligns with (i.e., “best fits”) the extracted features identified in the 2D image space. The controller 110 may have several such different court models stored (e.g., court models providing a 3D description of standard courts associated with padel, tennis, pickleball, platform, etc.) and a user may have identified (via a user interface) the appropriate court model (corresponding to the court on which the automatic ball machine 100 has been positioned) with which the model fitting process is then performed. The selected court model may be transformed in 3D space (magnified/shrunk, rotated, moved/shifted, such as by applying a transformation matrix to the 3D coordinates defining the selected court model) multiple times, each transformed court model being compared to the 2D image space having the extracted features to determine the best fitting transformed model. The determined best fitting transformed model may be used to determine 3D locations of the images taken by the imaging system 120. For example, pixel coordinates of the 2D image space of the images taken by the imaging system may each correspond to and identify a corresponding 3D world coordinate. When images are provided by multiple cameras of the imaging system, each camera may have a different mapping of its 2D image space to 3D world coordinates associated with the determined best fitting transformed model. The determined best fitting transformed model along with the intrinsic parameters of a camera of the imaging system 120 are used to calculate (via geometric transformation) the 3D position and orientation of the camera with respect to the court (e.g., using a fixed point on the court as the origin) and thus the location of the ball machine 100 on the court 100 (corresponding to the location of the camera) as well as any desired element of the ball machine (such as the ball launcher). Further details and alternatives of determining location and orientation of the automatic ball machine 100 on the court may be found in the '345 application and may be implemented herein.


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.


Shot Parameter Constraints and Adjustment


FIG. 8 illustrates a method of launching a ball based upon determined location and/or orientation of the automatic ball machine 100, the steps of which may be performed by the automatic ball machine 100 as part of the method of FIG. 7. In step S810, initial shot parameters of the nth shot of the workout routine may be obtained by the controller 110, such as by accessing storage (memory) of the controller 110 by a processor of the controller 110, or by accessing storage remote from the controller 110. The initial shot parameters may be the same as the stored parameters or may include shot parameters derived from the stored shot parameters (or other stored data) that describe the same shot using different parameters (or using other representations). The stored shot parameters/data and initial shot parameters (which may be the same or different set of parameters from the stored shot parameters) define the same shot (e.g., define the nth shot of the workout routine). Step S810 may correspond to step S730 of FIG. 7 and may constitute part of selecting the next shot in the sequence (where the nth shot is the next shot, such as in a sequence of N shots, where N is an integer and n is an integer between 1 and N that is incremented with each iteration of steps S730 to S770 of FIG. 7).


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 FIG. 8, in step S830, launcher settings of the ball launching system 130 are determined by controller 110 based on the targeted shot parameters obtained in step S820. In step S840, the ball is launched by the ball launching system 130 with the launcher settings obtained in S830. The launcher settings control the operation of the ball launching system 130 with the target that the ball launching system launches a ball with the targeted shot parameters.


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.


Evaluation of Returned Shots

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).


Fixed Workout Routine

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.


Substantially Fixed Workout Routine

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).


Dynamic Workout Routine

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:

    • for a set of predetermined shot types, a corresponding number or similar number of each of these different shot types provided by the automatic ball machine;
    • for a set of predetermined shot types, a corresponding aggregate or average difficulty of each of these shot types is provided by the automatic ball machine (e.g., the average difficulty of all lobs is the same or similar);
    • the same or similar movement amount of the player (e.g., shot locations are selected so that the path distance traveled by the players is within a predetermined range);
    • a minimum number of total shots and/or a corresponding minimum number of each shot type of different shot types provided by the automatic ball machine;
    • the same or a similar variety of shots (shot type and/or shot difficulty); and
    • the same or a similar variety of shot locations provided by the automatic ball machine. Similar as used in the list above may refer to a predetermined allowance of variation for each targeted criteria, e.g., +/−5% or +/−10%.


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 FIG. 7. As the set of shots for each dynamic workout routine provides a similar level of difficulty, the performance evaluation of each player in performing against the dynamic workout routine (e.g., providing a final rating of performance in S780) provides a fair comparison of player skill levels.


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.


Executing Multiple Instances of Workout Routine

The method of FIG. 7 has been described substantially with respect to executing one instance of the workout routine from which instantaneous ratings and/or a final rating may be obtained. However, the method of FIG. 7 may be repeated to execute additional instances of the same workout routine. As noted, a workout routine may be substantially duplicated by the same or different automatic ball machines 100. FIG. 9 illustrates an example where a first automatic ball machines 100a is placed on playing surface 202a (including playing area 204a with net 206a) of a first court 200a to execute a first instance of the workout routine with respect to a first player, such as according to FIG. 7. FIG. 9 illustrates a second automatic ball machines 100b is placed on playing surface 202b (including playing area 204b with net 206b) a second court 200b to execute a second instance of the workout routine with respect to a second player, such as according to FIG. 7. Courts 200a and 200b may be the same type of racquet court (e.g., a tennis court, a padel court, a platform tennis court, etc.). As illustrated in FIG. 9, the location and orientation of the first automatic ball machine 100a on the first court 200a are respectively different from the location and orientation of the second automatic ball machine 100b on the second court 200b. However, each of the automatic ball machines 100a and 100b may adjust at least some of the shot parameters of the shots of the workout routine such that others shot parameters of the shots of the workout routine are the same or only deviate within a predetermined range.



FIG. 9 illustrates an example where a first instance of executing a first workout routine by first automatic ball machine 100a provides a sequence eight shots to shot locations 1 to 8 on court 200a, and a second instance of executing the same first workout routine by the second automatic ball machine 100a provides a sequence eight shots to shot locations 1 to 8 on court 200b. As illustrated by FIG. 9, although the location and orientation of the first automatic ball machine 100a on court 200a differs from those of second automatic ball machine 100b on court 200b, the locations of shots 1 to 8 relative to court 200a are the same as those of shots 1 to 8 on court 200b. Other shot parameters may be the same or substantially similar (such as constrained to a predetermined range) as described elsewhere herein, such that the first instance of the first workout routine provide substantially the same experience (i.e., substantially the same difficulty in the workout session) to the first player as the second instance of the first workout routine provides to the second player.



FIG. 9 also illustrates an exemplary implementation of plural automatic ball machines 100 operating together as a system. The first and second automatic ball machines 100a and 100b are in communication with one another such that instantaneous and/or final ratings of the player of both automatic ball machines 100a, 100b may be displayed together (or otherwise compared) to each player. Each automatic ball machine 100a, 100b may include a display 134 (e.g., attached to the frame 105 of the automatic ball machine) which may display the ratings (instantaneous and/or final) of the players. FIG. 9 illustrates an example where the automatic ball machine 100a is in communication with a display 300a provided on (e.g., attached to a wall) or near the court 200a to display both of the first and second player's ratings to first player on court 200a during the first player's workout session. Similarly, court 200b includes a physically separate display 300b in communication with the second automatic ball machine 100b to display both the first and second player's ratings to the second player.


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 FIG. 9 illustrates only two courts and two automatic ball machines, the invention is not limited thereto, and the system of FIG. 9 may include a large number of automatic ball machines 100 on a large number of courts. If the number of player participants competing (either simultaneously or otherwise, as described herein) becomes so large that simultaneous display of all such player's ratings is undesirable or impractical, only a subset of such players' ratings may be displayed by a particular automatic ball machine 100, such as ratings of players having a ranking (with respect to an order of the ratings) within a predetermined number of the ranking of the player performing a workout session with that particular automatic ball machine 100.



FIG. 9 illustrates exemplary communication (control) links (represented by the dashed arrows) between various elements of the system of FIG. 9. The communication links are preferably wireless communication links. The automatic ball machines 100a and 100b may be in communication with each other, such as a direct wireless communication link (e.g., a Bluetooth communication link). Alternatively, the automatic ball machines 100 may communicate with each other via a network 400, such as a local area network or the Internet. When providing competitions in real time between players (as described herein), the automatic ball machines may initiate a corresponding instance of a first workout routine in response to a corresponding start command that causes each of the automatic ball machines 100 to initiate the first workout routine at substantially the same time (e.g., within a predetermined time interval, such as within 10 seconds of each other). The start command may be generated in various ways, such as by a primary automatic ball machine and communicated to the remaining automatic ball machines 100.


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 FIG. 9 may communicate with each other in a variety of ways other than those specifically described herein.



FIGS. 10A, 10B and 10C illustrate examples where players on the same court 200 may compete against each other in workout sessions of the same workout routine, however aspects of these examples also apply to implementations where players on different courts compete against each other (as well as other implementations described herein). Referring to FIG. 10A, two players may compete against each other in a workout session of the same workout routine, preferably at the same time. Automatic ball machine 100 is moved onto the playing surface 202 of court 200. A first instance of a workout routine is executed by the automatic ball machine 100 with respect to Player A launching balls to locations respective to a first geometric line LA extending in the lengthwise direction of the court 200. A second instance of the same workout routine is executed by the automatic ball machine 100 with respect to Player B, launching balls to locations respective to a second geometric line LB extending in the lengthwise direction of the court 200. Although not necessary, first and second geometric lines LA and LB are preferably spaced apart by at least a distance of half of the width of the court. FIG. 10A represents a first instance of a first workout routine that launches balls to locations 1, 2, 3, 4, and 5 (in that sequence) clustered around line LA to player A (which may be respectively referenced as 1A, 2A, 3A, 4A and 5A in this description). FIG. 10A represents also a second instance of the first workout routine that launches balls to locations 1, 2, 3, 4, and 5 (in that sequence) clustered around line LB (which may be respectively referenced as 1B, 2B, 3B, 4B and 5B in this description).


As illustrated in FIG. 10A, the locations of 1A, 2A, 3A, 4A and 5A with respect to a first coordinate system are the same as locations 1B, 2B, 3B, 4B and 5B with respect to a second coordinate system. The first coordinate system may have the same orientation but shifted sideways on the court 200 by an amount equal to the distance between LA and LB. For example, the first coordinate system may have an origin at the intersection of LA and the baseline near players A and B (with horizontal axes of LA and the baseline) while the second coordinate system may have an origin at the intersection of LB and the baseline near players A and B (with horizontal axes of LB and the baseline). As should be appreciated, the origin of a coordinate system may be randomly selected—the specific coordinate systems are exemplary and are specified for ease of communication.


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 FIG. 10A, consider that N equals 5, M thus equals 10, and thus, the sequence of balls 1 to M launched by the automatic ball machine 100 would be to locations 1A, 1B, 2A, 2B, 3A, 3B, 4A, 4B, 5A and 5B in that order. However, the launched balls of the first and second instances of the workout routine may be interspersed differently. For example, three in a row for the first instance, followed by three in a row for the second instance, followed by three in a row for the first instance, followed by three in a row for the second instance, etc. The instantaneous rating (as well as final rating) of players A and B may be determined as described elsewhere herein and displayed together (e.g., side by side) via display 134 and/or display 300.



FIG. 10A also illustrates the use of targets (i.e., identified locations) TA and TB to which player A and player B should respectively attempt to hit or get close to in returning all of some of the shots of the corresponding instance of the workout routine. For example, the targets may be pads or other objects placed on the playing surface 202 of the court 200. For example, the targets may be area(s) of the court identified by the workout routine or may be return target locations provided in other manners, such as described elsewhere herein. The returned shots of the players may be evaluated as described herein, and may include evaluations of the returned shots hitting their respective target location or how close their returned shots are to their respective target location as described elsewhere herein. Other aspects of the execution of the first and second instances of the workout routine of the example of FIG. 10A may be the same as described elsewhere.



FIG. 10B illustrates a variation to the implementation of same court competition by the automatic ball machine 100 described with respect to FIG. 10A, although such variation may also be applied to any other implementation of competitions between players as described herein. The execution of the first and second instances of the same workout routine may be performed in the same manner as described with respect to FIG. 10A, however, the ball locations of the first instance of the workout routine (e.g., ball locations 1 to 5 clustered about geometric line LA launched to player A) may be mirror symmetric to the ball locations of the second instance of the workout routine (e.g., ball locations 1 to 5 clustered about geometric line LB launched to player B). Such mirror symmetry may be helpful to reproduce the workout routine with the same experience/same level of difficulty to players having different dominant hands. The example in FIG. 10B illustrates Player A being right handed (holding a racquet in the right hand) and Player B being left handed. Implementing instances of the same workout routine with mirror symmetric ball locations of the launched balls of the workout routine may also be applied to other implementations described herein, such as executing different instances of the same workout routine at different times to Players A and B on the same court, or executing different instances of the same workout routine to Players A and B at different times or simultaneously with different automatic workout machines and Players A and B on different courts (e.g., as described with respect to FIG. 9).



FIG. 10C illustrates a variation to the implementation of same court competition by the automatic ball machine 100 described with respect to FIG. 10A, although such variation may also be applied to any other implementation of competitions between players as described herein. In the example of FIG. 10C, groups of players may compete against each other. Each group may have their shots evaluated and rated as a group by the automatic ball machine 100. In the example of FIG. 10C, a first group A comprises players A1, A2 and A3 and a second group B comprises players B1, B2 and B3. A first instance of a workout routine may be provided to group A and a second instance of a workout routine may be provided to group B, and the returned shots of each group may be evaluated and rated in the same manner as an individual player as described herein. The instantaneous ratings and final ratings of each group may be provided and displayed together by display 134 and/or display 300. For example, players A1 and B1 may perform against a first portion of the different instances of the workout routine (e.g., in the same manner as described with respect to FIG. 10A), then players A2 and B2 may subsequently perform against a second portion of the different instances of the workout routine (e.g., in the same manner as described with respect to FIG. 10A), then players A3 and B3 may subsequently perform against a third portion of the different instances of the workout routine (e.g., in the same manner as described with respect to FIG. 10A). Alternatively, a player of a group may perform against an instance of a workout routine until the player achieves some goal or fails to achieve some goal. For example, a player may perform against an instance of a workout routine until a certain instantaneous score is achieved (e.g., the sum of evaluation values of each of the shots returned by the player). For example, a player may perform against an instance of a workout routine so long as shots are returned within a specified distance of an identified target. After the player achieves or fails to achieve the corresponding goal, the next player of the group replaces the previous player to perform against the workout routine.


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 FIG. 10A or FIG. 10B). Then players A2 and B2 may replace players A1 and B1, and players A2 and B2 may play against instance of the first portion of the workout routine (repeated by the automatic ball machine to provide shots to locations 1 to 5 to the corresponding sides of the court), which may be subsequently repeated again for players A3 and B3 (and any remaining members of groups A and B). Then, instances of a second portion of a workout routine may be executed for players A1 and B1, and repeated for players A2 and B2, players A3 and B3, etc.


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 FIG. 10C may be implemented as described with respect to other embodiments, such as with respect to groups on different courts against different automatic ball machines 100 (e.g., as described with respect to FIG. 10A) or by providing mirror symmetric ball locations for players of different handedness (as described with respect to FIG. 10B), or with a group competing against itself by executing a subsequent instance of the workout routine. In general, the group competition may be implemented the same as any of the embodiments described herein with respect to individual players, with additional aspects described with respect to FIG. 10C being implemented.


Shot Parameters

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.

    • The shot type serve, for example, may be defined to have a launch height above a predetermined value (i.e. overhand) or below a predetermined value (underhand), having a shot location in (or within a predetermined distance of) a service box (or other rules requirement for the location of serves) on the opposite side of the net and/or having a trajectory with horizontal angle within a certain range that results in a cross-court shot. In addition to one or more of these parameter constrictions, the shot type serve may also require a launch angle within a certain range (e.g., a launch angle no greater than 25 degrees) and/or a speed that exceeds a predetermined value.
    • The shot type overhead smash may be defined in the same manner as the shot type overhand serve, except that shot location and horizontal angle need not correspond to a service box or a requirement for the serve location).
    • The shot type groundstroke may be a shot having a launch height below a predetermined height (e.g., below 5 feet). A groundstroke may also require a launch angle below a predetermined value (e.g., 25 degrees or less) or net clearance below a predetermined value (e.g. 4 feet or less) or height below a predetermined value (e.g. 7 feet). When returned by a player, a groundstroke may require the ball to bounce on the playing surface. In some examples, when returned by a player, a groundstroke may require the ball to bounce on the playing surface and avoid contact with a backwall.
    • The shot type volley may be a shot having a launch height below a predetermined height (e.g., below 7 feet). A volley may also require a launch angle below a predetermined value (25 degrees or less), a net clearance in a predetermined range (e.g. 0 to 3 feet), or a location that is in a specified range to the left or right of the player and at a specified depth (where is defined as perpendicular distance from landing point to the net); e.g. “landing point 3-5 feet to the player's left at a depth of 10 feet”. When returned by a player, the volley shot type may require that the ball is hit by the player “out of the air” before it can bounce on the playing surface or make contact with any other surface.
    • The shot type drive, for example, may be a shot having a net clearance below a corresponding predetermined value (e.g., 3 feet or less). The shot type drive may be further defined (additionally or alternatively require) as a shot that having a launch angle below a corresponding predetermined value (e.g., 25 degrees or less), a speed over a predetermined value and/or a shot location in a specified depth range (e.g. 10 to 20 feet) from the net, where shot depth is defined as the perpendicular distance from the net to the landing point (i.e. an in-bounds shot of maximum depth lands on the baseline opposite the player). A drive may be a type of groundstroke and require the shot parameters defining a groundstroke in addition to one or more of the further parameter constraints noted herein.
    • The shot type lob, for example, is a shot that is launched high in the air and may be defined as a shot having a peak height (highest trajectory point) above a corresponding predetermined value (e.g., 10 feet or more, or 12 feet or more). The shot type lob may also require a shot location (a targeted shot location that may result in the ball contacting the playing area or may not contact the playing area when the player is able to hit the lob before the ball contacts the playing area) within a corresponding predetermined distance of the back locations of the playing area (e.g., within 5 feet of the baseline or back wall in the playing area on the opposite side of the court) and/or require a shot location behind the player or behind the player by a predetermined distance. The shot type lob may be further defined as a shot that also has a upward (tilt) launch angle greater than a corresponding predetermined value (e.g., greater than 40 degrees).
    • The shot type cross-court has a targeted location on the half of the court opposite the launch point. The shot type, down-the-line shot has a targeted location on the same half of the court as the launch point. Halves of the court in this context refers to the left or right sides of the court (such halves of the court divided by a horizontal line intersecting the net).
    • The shot type drop shot, for example, is a shot that is launched such that it lands across and in close proximity to the net (e.g., having a “shallow” shot location within a predetermined perpendicular horizontal distance to the net (e.g., in the playing area) on the opposite side of the court, such as within 7 feet or less from the net). The shot type drop shot may be further defined as a shot that also has backspin and/or topspin no greater than and/or no less than a predetermined value, and/or having a launch angle within a corresponding predetermined range. The shot type drop shot may require that the ball, after it initially bounces on the playing area, would travel less than a predetermined distance (e.g., less than 8 feet) and/or travel no higher than a predetermined height (e.g., less than 5 feet) before the ball contacts the court again (i.e., for its second bounce). Note, that the ball need not be required to obtain a second bounce (or even an initial bounce) to qualify as a drop shot (i.e., a targeted drop shot may be launched and the player may hit the ball before the initial or before the second bounce). The shot type drop shot may require that the ball speed of the drop shot be lower than a predetermined value. In some examples, the maximum speed for a drop shot may be 50% of the minimum speed of the drive shot type.
    • The shot type dink may be a shot that is has a shot location within a predetermined distance of the net (e.g., 5 feet or less), has a net clearance less than a predetermined value (e.g., less than 3 feet), and a speed less than a predetermined value. A dink may also require a launch height to be less than a predetermined value, such as less than 5 feet, less than the height of the net, or no more than a predetermined distance above the net (e.g., no more than 6 inches or one foot above the net). A dink may require an upward launch angle of at least a predetermined value. In some examples, a dink may be a type of a drop shot.
    • A backwall return shot type may be defined to have a hit to launch interval that corresponds to the time the returned ball (by the player) would have taken to travel a trajectory that hits the backwall; i.e. the shot is designed to hit the backwall prior to being hit by the player. The backwall return shot type may have a launch location within a predetermined distance from the backwall. A backwall shot type hit by a player may be determined as a launched ball that hits the backwall before the player hits the ball.
    • A sidewall return shot type may be defined to have a hit to launch interval that corresponds to the time the returned ball (by the player) would have taken to travel a trajectory that hits the sidewall; i.e. the shot is designed to hit the sidewall prior to being hit by the player. The sidewall return shot type may have launch location within a predetermined distance from a sidewall. A sidewall shot type hit by a player may be determined as a launched ball that hits a sidewall before the player hits the ball.
    • A double wall rebound shot type may be defined to have a hit to launch interval that corresponds to the time the returned ball (by the player) would have taken to travel a trajectory that hits both the backwall and a sidewall; i.e. the shot is designed to hit both the backwall and sidewall prior to being hit by the player. The double wall rebound shot type may have launch location within a predetermined distance from a sidewall and a predetermined distance from a backwall. A double wall rebound shot type hit by a player may be determined as a launched ball that hits both a backwall and sidewall before the player hits the ball.


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:

    • The shot type backspin groundstroke may be a groundstroke shot type (i.e., having target shot parameters that correspond to those defining a groundstroke shot type such as described herein) that also has a predetermined amount of backspin or more (e.g., 5 rotations per second (rps) or more of backspin). Backspin may refer to the rotational component of the ball along the direction of the shot (the path or trajectory), with the bottom of the ball moving in a direction opposite the direction of the shot (the horizontal rotational component of the ball perpendicular to the direction of the shot may be attributed to sidespin and not be considered part of backspin).
    • The shot type topspin groundstroke may be a groundstroke shot type that also has a predetermined amount of topspin or more (e.g., 5 rps or more of topspin). Topspin may refer to the rotational component of the ball along the direction of the shot (the path or trajectory), with the bottom of the ball moving in the direction of the shot (the horizontal rotational component of the ball perpendicular to the direction of the shot may be attributed to sidespin and not be considered part of topspin).
    • The shot type flat groundstroke may be a groundstroke shot type that does not exceed a predetermined amount of spin (total or a corresponding limit of spin for each spin type of backspin, topspin, and/or sidespin). For example, a flat groundstroke may have spin limited to be within a predetermined range that encompasses zero spin. For example, a flat groundstroke may have spin (including zero spin) that does not exceed 5 rps (either of topspin, backspin or sidespin), or, for example, that has a spin from −5 rps to 5 rps of topspin, or −3 rps to 7 rps of topspin and no more than 5 rps sidespin). It should be appreciated that reference to negative value of topspin is equivalent to that value of backspin, and vice versa (i.e., reference to a negative value of backspin is equivalent to that value of topspin).
    • The shot type sidespin groundstroke may be a groundstroke shot type that also has a predetermined amount of sidespin or more (e.g., 3 rps or more). Sidespin may be the rotational component of the ball in the horizontal direction perpendicular to the direction (trajectory or path) of the shot. Sidespin may be the spin of the ball that is not attributable to topspin or backspin.


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.


Calibration

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.


Additional Examples of Workout Routines

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.


Ball Tracking

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.


Stroke Data

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.


Computer/Controller

With reference to FIG. 11, an exemplary general-purpose computer 1000 is illustrated. The general-purpose computer 1000 is one example of the controller 110 described herein. The general-purpose computer 1000 is also representative of other computers with which the controller 110 may communicate through a network 1900 (which may be network 400 in FIG. 9). As such, it will be described with the understanding that variations may be made thereto.


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. FIG. 11 illustrates an example of a non-volatile memory interface 1400 and a connector 1410 to allow for the addition of a removable memory, such as a memory card, USB stick, etc. which may also form part of the general purpose computer 1000. The memory interface 1400 is connected to the system bus 1210 to allow communication between the removable memory and other components of 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 FIG. 11 is a general network connection 1710 to the network 1900, which may be a local area network (LAN), a wide area network (WAN), the Internet, or other networks. The computer 1000 is connected to the general network connection 1710 through a network interface or adapter 1700 that is, in turn, connected to the system bus 1210. In a networked environment, program modules depicted relative to the general-purpose computer 1000, or portions or peripherals thereof, may be stored in the memory of one or more other computers that are communicatively coupled to the general-purpose computer 1000 through the general network connection 1710. The network interface 1700 may be configured to couple into an existing network, through wireless protocols (Bluetooth, 802.11a, ac, b, g, n, or the like) or through wired (Ethernet, or the like) connections, or through other more generic network connections. In still other configurations, a cellular link may be provided (i.e., GSM, CDMA or other, utilizing 2G, 3G, 4G, and/or 5G data structures and the like). The network interface 1700 is not limited to any particular protocol or type of communication.


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.

Claims
  • 1. A method of operating at least a first moveable automatic ball machine within a playing area of a first racquet court, the first moveable automatic ball machine comprising a ball launcher, a hopper to store a plurality of balls, an imaging system, and a controller, the method comprising: by the imaging system, obtaining an image of the first racquet court;by the controller, determining the location of the first moveable automatic ball machine on the first racquet court based upon the image of the first racquet court obtained by the imaging system;executing a first instance of a first workout routine to provide a sequence of N shots to a first player on the first racquet court, where N is an integer greater than 1, the execution of the first instance of the first workout routine including, for each of the N shots in the sequence of shots:obtaining a set of initial shot parameters,adjusting the set of initial shot parameters to obtain a set of target shot parameters, including adjusting the set of initial shot parameters based on the determined location of the first moveable automatic ball machine,determine launcher settings based on the set of target shot parameters, andlaunching a ball with the ball launcher with the launcher settings;by the imaging system, monitoring returns of the first player of the sequence of shots launched according to the first workout routine; andevaluating the returns of the first player based upon the monitoring of the returns by the imaging system and providing a rating of the performance of the first player based on the evaluated returns of the first player.
  • 2. The method of claim 1, wherein for each of the N shots in the sequence of shots: the set of initial shot parameters includes an initial shot type and an initial shot location,the set of target shot parameters includes a target shot type and a target shot location,the target shot type is the same as the initial shot type, andthe target shot location is the same as or substantially the same as the initial shot location.
  • 3. The method of claim 2, further comprising executing a second instance of the first workout routine with respect to a second player, evaluating returns of the second player, providing a rating of the performance of the second player based on the evaluated returns of the second player and communicating a comparison of the rating of the first player and the rating of the second player.
  • 4. The method of claim 3, wherein executing the second instance of the first workout routine with respect to the second player and rating returns of the second player is performed by a second moveable automatic ball machine provided on a second racquet court, andwherein the corresponding target shot locations of the first instance of the first workout routine are the same with respect to the first racquet court as the corresponding target shot locations of the second instance of the first workout routine with respect to the second racquet court.
  • 5. The method of claim 4, wherein at least a portion of the first instance of the first workout routine is executed at the same time the second instance of the first workout routine is executed.
  • 6. The method of claim 5, wherein the communicating the comparison includes communicating the rating of the second player from the second moveable automatic ball machine to the first moveable automatic ball machine.
  • 7. The method of claim 6, wherein the communicating the comparison includes communicating the rating of the second player via the Internet.
  • 8. The method of claim 5, wherein the rating of the first player and rating of the second player are determined and displayed by a display in real time.
  • 9. The method of claim 8, wherein each of the first and second moveable automatic ball machine includes a display to display an instantaneous rating of the player performance of the first workout routine and a final rating of the player performance of the first workout routine of each of the first player and second player, the instantaneous rating of player performance being a rating of the performance of the corresponding player provided prior to completion of the first workout routine, the final rating of player performance being a rating of the corresponding player provided after completion of the first workout routine.
  • 10. The method of claim 3, wherein the first instance of the first workout routine and the second instance of the first workout routine are executed concurrently and are each executed by the first moveable automatic ball machine while the first player and the second player are on a first side of the first racquet court and the first moveable automatic ball machine is on a second side of the first racquet court that is opposite the first side, wherein the first side and the second side of the first racquet court are separated by a net.
  • 11. The method of claim 10, wherein the sequence of shots launched to the first player by the first moveable automatic ball machine as part of the first instance of the first workout routine that is provided to the first player are interspersed with the sequence of shots launched to the second player by the first moveable automatic ball machine as part of the second instance of the first workout routine that is provided to the second player.
  • 12. The method of claim 11, wherein executing the first instance of the first workout routine and the second instance of the first workout routine comprises the first moveable automatic ball machine interleaving the launch of the balls to the first player and the second player.
  • 13. The method of claim 10, wherein the target shot locations of the first instance of the first workout routine are within a first half of the first side of the first racquet court, andwherein the target shot locations of the sequence of shots of the second instance of the first workout routine are within a second half of the first side of the first racquet court.
  • 14. The method of claim 13, wherein the target shot locations of the first instance of the first workout routine are relative to a first coordinate system having a first origin with respect to the first racquet court and the target shot location of the second instance of the first workout routine are relative to a second coordinate system having a second origin, different from the first origin, with respect to the first racquet court.
  • 15. The method of claim 13, wherein the target shot locations of the first instance of the first workout routine are mirror symmetric with respect to target shot locations of the second instance of the first workout routine.
  • 16. The method of claim 2, wherein for each of the N shots of the sequence of shots, the target shot location deviates from the initial shot location and has a distance from the initial shot location that is no more than set value.
  • 17. The method of claim 16, wherein executing the first instance of the first workout routine comprises determining the location of first player, andwherein, for at least some of the N shots in the sequence of shots, the target shot location is determined in real time based upon the determined location of the first player.
  • 18. The method of claim 17, wherein, for at least some of the N shots in the sequence of shots, the target shot location is determined to be a determined distance away from the first player.
  • 19. The method of claim 18, wherein the determined distance away from the first player is determined based upon a skill level of the first player obtained by the controller prior to executing the first instance of the first workout routine.
  • 20. The method of claim 18, wherein the determined distance away from the first player is determined based upon an instantaneous rating of the performance of the first player prior to completion of the first workout routine.
  • 21. The method of claim 2, wherein, for each of the N shots of the sequence of shots, the set of initial shot parameters includes speed and spin, andthe set of target shot parameters includes speed and spin that deviate within a corresponding confined range from the respective initial speed shot parameter and the initial spin shot parameter.
  • 22. The method of claim 21, wherein the confined ranges within which the target shot speed shot parameter and target spin shot parameters are determined by the controller based upon a player skill level obtained by the controller.
  • 23. The method of claim 22, wherein, prior to executing the first workout routine, the skill level is obtained by the controller and the confined ranges are determined by the controller.
  • 24. The method of claim 1, wherein evaluating returns of the first player comprises, for each of the N shots, determining the accuracy of the location of the returns of the first player of the sequence of shots launched with the first workout routine.
  • 25. The method of claim 24, wherein determining the accuracy of the location of the returns of the first player comprises, for each return of each of the N shots, determining a distance between the landing point of the return of the launched ball and a corresponding landing point instructed by the first moveable automatic ball machine.
  • 26. The method of claim 24, wherein determining the accuracy of the location of the returns of the first player comprises, for each return each of the N shots, determining whether the landing point of the return of the launched ball was in the boundaries of the playing area.
  • 27. The method of claim 1, wherein evaluating returns of the first player comprises, for each return of each of the N shots, determining the speed of the return of the launched ball.
  • 28. The method of claim 1, wherein evaluating returns of the first player comprises, for each return of each of the N shots, determining the spin of the return of the launched ball.
  • 29. The method of claim 1, wherein evaluating returns of the first player comprises, for each return of each of the N shots, determining the trajectory of the return of the launched ball.
  • 30. The method of claim 1, wherein evaluating returns of the first player comprises, for each return of each of the N shots, determining if the shot type of the return of the launched ball corresponds to a shot type instructed by the first moveable automatic ball machine.
  • 31. The method of claim 3, wherein the first instance of the first workout routine is executed to launch balls to a first group of players that includes the first player, and the second instance of the first workout routine is executed to launch balls to a second group of players that includes the second player,wherein, in executing the first instance of the first workout routine, the imaging system monitors returns of the first group of players, the controller evaluates the returns of the first group of players and provides a rating of the performance of the first group of players,wherein, in executing the second instance of the first workout routine, the performance of the second group of players is evaluated to provide a rating of the performance of the second group of players, andwherein the method further comprises displaying by a display of the first moveable automatic ball machine the rating of the first group of players and the rating of the second group of players.
  • 32. The method of claim 31, wherein executing the second instance of the first workout routine is performed by a second moveable automatic ball machine on a second racquet court.
  • 33. The method of claim 32, wherein the method further comprises displaying, by a display of the second moveable automatic ball machine, the rating of the first group of players and the rating of the second group of players.
  • 34. The method of claim 31, wherein executing the second instance of the first workout routine is performed by the first moveable automatic ball machine on the first racquet court.
  • 35. The method of claim 4, further comprising: manually transporting the first moveable automatic ball machine onto the first racquet court and manually transporting the second moveable automatic ball machine onto a second racquet court; andby the second moveable automatic ball machine, determining the location of the second moveable automatic ball machine on the second racquet court,wherein executing the second instance of the first workout routine includes, for each of the N shots in the sequence of shots of the second instance of the first workout routine:obtaining the set of initial shot parameters,adjusting the set of initial shot parameters to obtain a second set of target shot parameters, including adjusting the set of initial shot parameters based on the determined location of the second moveable automatic ball machine,determine second launcher settings based on the second set of target shot parameters, andlaunching a ball with a ball launcher of the second moveable automatic ball machine with the second launcher settings.
  • 36. The method of claim 35, wherein executing the first instance of the first workout routine includes adjusting the set of initial shot parameters based on a determined orientation of the first moveable automatic ball machine with respect to the first racquet court,wherein executing the second instance of the first workout routine includes adjusting the set of initial shot parameters based on a determined orientation of the first moveable automatic ball machine with respect to the second racquet court, andwherein at least one of the position and the orientation of the first moveable automatic ball machine with respect to the first racquet court differs from that of the second moveable automatic ball machine with respect to the second racquet court.
  • 37. The method of claim 1, wherein the sequence of shots of the first workout routine each have the same shot type.
  • 38. The method of claim 37, wherein the shot type is one of drive, lob, and dink.
  • 39. The method of claim 1, wherein evaluating the returns of the first player is based upon, for each of the returns of the first player, determining a distance between the landing point of the return of the launched ball and a first point identified on the first racquet court.
  • 40. The method of claim 3, wherein communicating a comparison of the rating of the first player and the rating of the second player comprises providing a ladder of a plurality of players, including the first player and the second player, that lists the plurality of players in an order of rating of performances of the plurality of players with respect to the first workout routine.
  • 41. The method of claim 1, wherein the first moveable automatic ball machine executes the first instance of the first workout routine without moving from its location on the first racquet court.
  • 42. The method of claim 1, wherein one or more of the targeted shot locations are at one or more walls of the first racquet court.
  • 43. The method of claim 42, wherein all of the targeted shot locations are at a first location on a wall of the first racquet court.
  • 44. The method of claim 43, wherein evaluating the returns of the first player is based upon, for each of the returns of the first player, determining a distance between the landing point of the return of the launched ball and a first point identified on the first racquet court.
RELATED APPLICATIONS

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.

Provisional Applications (2)
Number Date Country
63632509 Apr 2024 US
63291343 Dec 2021 US
Continuation in Parts (1)
Number Date Country
Parent 18083203 Dec 2022 US
Child 19060366 US