Ball machine for providing player ratings for racquet sports and related methods
A ball machine evaluates player skills in racquet sports by adjusting shot difficulty and court interaction, addressing rating system inefficiencies and skill mismatches, providing rapid and accurate player ratings for balanced competitions.
Patent Information
- Authority / Receiving Office
- US · United States
- Patent Type
- Applications(United States)
- Current Assignee / Owner
- VOLLEY LLC
- Filing Date
- 2026-02-10
- Publication Date
- 2026-06-25
AI Technical Summary
Existing racquet sports rating systems are time-consuming and inconsistent, particularly for determining initial player ratings, and do not account for unique skills in non-tennis sports like pickleball, platform tennis, and padel, leading to imbalanced competitions and difficulty in matching players of similar skill levels.
A ball machine is used to evaluate player skills by launching balls with varying difficulty levels, monitoring returns, and adjusting shot parameters based on court location and orientation, providing an accurate start rating through multiple evaluation routines that consider different shot types and court features.
The system quickly and accurately determines player ratings by replicating challenging shots across different racquet sports, ensuring fair competition by matching players of similar skill levels without the need for extensive matches or subjective evaluations.
Smart Images

Figure US20260175107A1-D00000_ABST
Abstract
Description
RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. application Ser. No. 19 / 176,074, filed Apr. 10, 2025, which is a non-provisional of U.S. Provisional Application No. 63 / 632,509, filed Apr. 10, 2024, the entire contents of each of these applications being incorporated by reference. U.S. application Ser. No. 19 / 176,074 application is a continuation-in-part of U.S. application Ser. No. 19 / 060,366, filed Feb. 21, 2025, the entire contents of which are hereby incorporated by reference. This application relates to U.S. patent application Ser. No. 18 / 083,203, filed Dec. 16, 2022, 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 being incorporated by reference.BACKGROUND
[0002] Rating systems in racquet sports are desirable not only for providing competition between expert players, but desirable for beginners and intermediate players as well. Racquet sports competition between players of imbalanced skill levels results in shorter rallies, which is not fun for any of the players. Without a proper rating system in place, organizing a game with groups of players at equivalent skill levels becomes much harder.
[0003] Most rating systems in racquet sports are based on player performance in matches over time. Some use the last 30 matches, others use a rolling scoring system taking into account the strength compared to your opponent(s). With so many matches to be played, such rating systems take a significant amount of time to find an appropriate rating for a player.
[0004] In addition, an inherent problem with these rating systems is determining a start rating (an initial rating) for players. When people are mis-ranked—for example a college tennis player being marked as a beginner-they will dominate their opponents. The result of the match will be an adjustment in the player's rankings to more accurately reflect the performance on the court. However, in this scenario, a person who has lost to a very good tennis player (e.g., a college level player) may have had their ranking unfairly adjusted in a negative way.
[0005] Start ratings can be very important. Ratings are used to select similarly skilled players for practice and competition matches. Currently, start ratings are generally assigned by pros / coaches who evaluate performance of individuals to determine a start rating of a player. The problem with this approach is that the criteria to evaluate a player varies from pro to pro, which leads to inconsistent ratings.
[0006] With tennis being the dominant racquet sport today, criteria for determining a player's start rating tends to be based on skills that are important in tennis. Thus, providing accurate player ratings becomes exacerbated for non-tennis racquet sports, as the evaluation criteria may be based on criteria that may be less important to alternative racquet sports than such criteria are to tennis. Further, there may be shots uniquely important to such alternative racquet sports but not important or relevant to tennis. For example, topspin groundstrokes do not have the same importance to pickleball as in tennis, as the plastic pickleball does not achieve the same speed as a tennis ball. In addition, tennis rankings evaluation criteria would not include evaluation of the accuracy of a dink shot that is highly important in pickleball. Similarly, because platform tennis and padel are both able to be played off walls, there are numerous variety of shots (e.g., before or after a wall ricochet), and different types of ball spin becomes significantly more important to the shot (e.g., backspin to a backwall to provide a soft bounce off the wall to provide a more difficult return shot). Experienced tennis players may have great ground strokes, but may be unable to play off the walls effectively as such wall play is completely new to them. Thus, the start rating is even more complex to assign in less typical racquet sports.SUMMARY
[0007] A ball machine may be placed onto one side of a racquet court to provide shots to a player on the other side of the court and evaluate the player's ability in returning the shots. The ball machine may comprise an imaging system configured to obtain an image of 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 first evaluation routine to provide the user a sequence of shots, where each shot corresponds to a predefined shot described by initial parameters that may be modified by difficulty modifiers. The returned shot of the player is monitored and evaluated by the ball machine to determine if the returned shot meets various success criteria (e.g., location, speed, height, etc.).
[0008] When the player returns one or a certain amount of shots meeting the success criteria, the difficulty of the shots provided to the player is increased. As the difficulty of the evaluation routine is increased, a player is expected to no longer be able to successfully complete a segment of an evaluation routine or the player's performance may plateau. At this time, the evaluation routine may be terminated, the player's skill level is assessed (based on aggregating the player's skill ratings) to obtain a start rating for that player.
[0009] Several different types of evaluation routines may be executed by the ball machine to determine skill ratings of the player with respect to different shot types, the aggregate of which may be used to determine an overall rating (e.g., start rating) of the player, such as a start rating of the player. For example, the workout routines may include a serve return workout routine, backcourt workout routine, and a frontcourt workout routine to assess skills of the player relating to different aspects of the walled racquet court game (e.g., padel or platform tennis). As part of these routines, the ball machine may provide shots that interact with the racquet court walls (e.g., the ball trajectory of the shot would ricochet off the wall while still in play or the wall could interfere with player with inappropriate positioning) and evaluate the player's skill in returning such shots.
[0010] Additional instances of execution of the evaluation routine may be repeated for other players and to obtain ratings for additional players. The additional instances of the execution of the evaluation routines may be performed by the same ball machine or may be performed by other ball machines similarly programmed to execute the same evaluation routines (e.g., such ball machines may be located on different racquet courts that have the same layout (e.g., same dimensions)).
[0011] The ball machine(s) may adjust delivery of the shots based on the determined location and orientation of the ball machine on the racquet court. Thus, each instance of execution of a particular evaluation routine may be faithfully replicated to provide the same experience to each player (e.g., substantially the same shots to in an attempt to provide the same difficulty in performing against the evaluation routine). In each instance of execution of a particular evaluation routine, shots are provided with set shot parameters (e.g., predetermined for a particular difficulty level)—the ball machine may provide qualitatively the same shots with shot parameters faithfully replicated (or made substantially the same) between the different instances. Thus, evaluation of the player's execution of the evaluation routines may accurately reflect a player's skill relative to others to provide an accurate rating of the player. A player's ratings may be used to find other players of similar skill levels to play against (e.g., to play a conventional game without the ball machine). Thus, a player may obtain a rating relatively quickly, without the need to obtain ratings by playing a multitude of matches or be based on subjective ratings of a pro (which may be based on less relevant criteria).BRIEF DESCRIPTION OF THE DRAWINGS
[0012] 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.
[0013] FIG. 1 illustrates an isometric front view of an automatic ball machine in a lowered position according to example embodiments;
[0014] FIG. 2 illustrates a front view of the automatic ball machine in a lowered position according to example embodiments;
[0015] FIG. 3 illustrates an isometric rear view of the automatic ball machine in a lowered position according to example embodiments;
[0016] FIG. 4 illustrates an isometric front view of the automatic ball machine in a raised position according to example embodiments;
[0017] FIG. 5 illustrates a front view of the automatic ball machine in a raised position according to example embodiments;
[0018] FIG. 6 illustrates an isometric rear view of the automatic ball machine in a raised position according to example embodiments;
[0019] FIG. 7 is a flow chart for providing a start rating for a player;
[0020] FIGS. 8A and 8B illustrate a flowcharts setting forth exemplary steps of executing an evaluation routine of a player;
[0021] FIG. 9 illustrates a method of launching a ball based upon determined location and / or orientation of an automatic ball machine;
[0022] FIG. 10 illustrates an example of a pass / fail record; and
[0023] FIG. 11 illustrates an example general-purpose computer for use with the automatic ball machine according to example embodiments.DETAILED DESCRIPTION
[0024] 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—examplesand 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.
[0025] 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).
[0026] 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.
[0027] 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.
[0028] 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).
[0029] 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.
[0030] 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).
[0031] 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.
[0032] 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.
[0033] 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.
[0034] FIGS. 7, 8A, 8B and 9 provide exemplary details of determining a player's start rating (or other rating) including evaluation by the automatic ball 100 machine in the player's ability to properly return different shot types delivered by the automatic ball machine 100. The automatic ball machine 100 may provide a plurality of shots of each shot type. For each shot type, the automatic ball machine 100 may increase the difficulty level of the delivered shots until the player is no longer able to adequately return the shot of that shot type. A skill rating for each shot type is generated. Other skill ratings that may not be associated with a shot type may also be generated. The player's start rating is determined based on aggregating these skill ratings.
[0035] FIG. 7 is a flow chart for providing a start rating for a player. The steps of FIG. 7 may be executed by automatic ball machine 100. In step S710, for each of m shot types, the automatic ball machine 100 performs a corresponding evaluation routine to provide a corresponding skill rating of the player's ability to deliver that shot type. Note that an evaluation routine may be used to evaluate a single shot type or may be used to evaluate several shot types. In addition, the delivery of a shot type by a player may be evaluated in combination with a shot type delivered by the automatic ball machine (e.g., how well does the player return lobs, dinks, wall shots, etc.). The evaluation routine may provide a skill rating requiring the player to return a first shot type with respect to a second shot type launched to the player.
[0036] Each shot type to be evaluated with the automatic ball machine positioned on the court in a certain area of the court. For example, evaluating the shot type serve return may have the automatic ball machine positioned near the baseline, where evaluating the shot type dink or volley may have the automatic ball machine moved closer to the net or near the kitchen. Thus, between various evaluation routines, the automatic ball machine may be moved to an appropriate area on the court. However, as discussed elsewhere herein, the automatic ball machine need not be placed with precision (either with a precise location or with a precise orientation) as the automatic ball machine may determine its location and orientation on the court and adjust the shots it delivers appropriately.
[0037] In step S720, a skill rating of the player for each shot type is determined. In some examples, other skill ratings of the player that are not associated with a single shot type also may be determined (S730). For example, a skill rating of agility or a skill rating of court coverage may be determined by evaluating the player's movement in one or more of the evaluation routines.
[0038] In step S740, the player's start rating is determined based on aggregating the determined skill ratings (determined in S720 (and S730 if applicable)). The player's start rating may be an average or a weighted average of the determined skill ratings.
[0039] In step S750, a report may be provided to the player. The report may provide the individual skill rating of the m shot types determined in S720 and thus provide insight to the player into areas that should be improved. In addition, the report may identify criteria the player struggled to achieve with respect to a certain skill rating and identify the difficulty factors that were more problematic to a player than others (e.g., the player experienced a relatively higher rate of failure when difficulty level was increased by adding spin vs speed, e.g.). In addition, the report may provide analysis outside of shot parameters of the returned shot. For example, relatively high failure rates (of success criteria described herein) and / or relatively low skill ratings may be correlated with separate analysis of stroke data, footwork, posture to provide possible reasons for such high failures and / or relatively low skill ratings.
[0040] FIGS. 8A and 8B illustrate a flowcharts setting forth exemplary steps of executing an evaluation routine of a player (which may also be referred to herein as a “user”). The steps of FIGS. 8A and 8B may be executed by automatic ball machine 100. As the evaluation routines of FIGS. 8A and 8B are similar, and either / both may be used to determine one or more skill ratings for determining a start rating of a player in S740), the evaluation routines of FIGS. 8A and 8B will be described together with certain differences noted as applicable.
[0041] The automatic ball machine 100 may be moved onto one side of a racquet court and a player may position themself 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 an evaluation 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 an evaluation 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 to execute another evaluation routine).
[0042] At step S810 and S810′, a first instance of an evaluation routine is initiated by the automatic ball machine 100. A plurality of different evaluation routines may be stored by or accessible by the automatic ball machine 100. An evaluation routine may comprise a single shot type that is repetitively provided to the player by the automatic ball machine 100 to the same location with different difficulty levels. Alternatively, an evaluation routine may comprise a sequence of different shots (shots of different shot types and / or launched to different locations), where the sequence of different shots are repeated with different difficulty levels.
[0043] The initiation of the evaluation routine may be triggered based on determining that the player is in a predetermined location on the court. For example, a player starting location area of interest (AOI) may be provided with the evaluation routine that denotes an area in which the player should be located before the evaluation routine is started. For example, the feet of the player, the center of the player or another point identifying the location of the player should be within the starting location AOI. The automatic ball machine may locate the player and identify if the player is within the starting location AOI. Additional criteria may also be required before initiating the evaluation routine, such as the player providing a starting signal to the automatic ball machine to denote the player is ready (e.g., a predetermined body movement, such as tapping the racket above the player's head, a wave, etc.) or a verbal command (e.g., voicing the word “start”). Additional criteria may include confirming other people or obstacles are not located on predetermined restricted areas of the court (e.g., between the automatic ball machine and the player's side of the court, between the automatic ball machine and the inbounds portions of the playing area on the player's side of the court, etc.). Upon initiation of the evaluation routine, the automatic ball machine may provide a signal to the player (e.g., an audio and / or visual message or cue) to let the player know the evaluation routine is starting.
[0044] In S810 of FIG. 8A, an evaluation routine of an ith shot-type is initiated. In the example of FIG. 8A, an evaluation routine may repetitively provide a shot of the same shot type to the same location to the player (e.g., to repetitively provide this shot to a player, albeit with certain shot parameters adjusted to provide this otherwise “same” shot at different difficulty levels). The evaluation routine of FIG. 8A is suited to evaluate the player with respect to a single shot type.
[0045] In S810′ of FIG. 8B, an evaluation routine of one or more shot-types is initiated. In the example of FIG. 8B, an evaluation routine may repeat a sequence of different shots (with different shot types and / or different shot locations), where the sequences are provided with different difficulty levels. The evaluation routine of FIG. 8B may evaluate a single shot type or may be used to evaluate several different shot types and thus provide skill ratings for one or more shot types.
[0046] Each shot may be 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 evaluation routines). An evaluation routine executed according to the steps of FIG. 8A may comprise repetitively providing one shot of the list of shots provided with different difficulty levels. An evaluation routine executed according to the steps of FIG. 8B may comprise a repetitively providing a sequence of all or a subset of the list of shots with different difficulty levels.
[0047] The evaluation 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 evaluation routine may be selected from a displayed list of predetermined evaluation 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 evaluation 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).
[0048] The duration of each evaluation routine may be based on user associated performance metrics. For example, the evaluation routine may repetitively provide shots that become more and more difficult by altering some of the shot parameters of the shots (e.g., 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 evaluation routine may increase and / or decrease in difficulty depending on the success or failure of the player to return the shot according to various success criteria. For example, the evaluation routine may continue to increase in difficulty until the player can no longer maintain a success rate (of a certain number of previous shots) over a predetermined value. For example, the evaluation routine may fluctuate its difficulty level to converge the difficulty level of the evaluation routine to obtain a success rate of the player within a predetermined range.
[0049] In the evaluation routine executed according to FIG. 8A, the types of shots (i.e., shot types) (as well as the shot locations) of the shots provided by the automatic ball machine may be the same. In addition, the evaluation routine of FIG. 8A may evaluate and provide a corresponding skill rating for a particular shot type (the shot type that should to be returned by the player). In the evaluation routine executed according to FIG. 8B, one or both of the shot type and shot location may differ between the shots provided by the automatic ball machine. In addition, the evaluation routine of FIG. 8B may evaluate one shot type, or may evaluate more than one shot type (to respectively provide a corresponding skill rating for one shot type or multiple shot types). The shot type(s) to be evaluated may be with respect to the shot(s) delivered by the automatic ball machine, the shot(s) returned by the player or both.
[0050] In step S820, the automatic ball machine 100 determines its location and orientation on the court. 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.
[0051] In steps S830 and S830′, the difficulty level of the next shot in the evaluation routine is determined. Note that the first time steps S830 and S830′ are performed in executing the evaluation routine, the next shot is simply the first shot of the evaluation routine. Also, the first time steps S830 and S830′ are performed, the difficulty level may be predetermined or it may be based on a user input of an estimated skill level of the player. When step S830′ is performed subsequently, S830′ selects this next shot as the next shot in the repetitive sequence of different shots being performed by the evaluation routine of FIG. 8B. The set of initial shot parameters corresponding to this next shot in the evaluation routine may be obtained (e.g., loaded from memory) at this time if appropriate. The set of initial shot parameters for a shot may be predetermined and represented by stored data (which may be referenced as stored shot parameters), and may include shot parameters such as location, speed, spin, peak height, launch height, shot type, etc.
[0052] 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).
[0053] In step S840, 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 this next shot (e.g., the shot just identified in S830 / S830′). The targeted shot parameters may be obtained by modifying the initial shot parameters of this next shot. Modification of the initial shot parameters may be performed by applying tuning modifiers and difficulty modifiers to the initial shot parameters.
[0054] Tuning modifiers may be applied to the initial shot parameters such that, without applying additional modifiers, 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, the location and / or orientation of the automatic ball machine determined in S820 are used by the controller 110 to generate targeted shot parameters. If targeted shot parameters are obtained by applying only tuning modifiers to initial shot parameters (e.g., without additional modification, e.g., without applying difficulty modifiers or other modifiers to the initial shot parameters), the launcher settings are derived in order to launch a ball having these targeted shot parameters (i.e., obtaining the targeted shot parameters is the goal). Furthermore, a ball launched with the launcher settings derived from these targeted shot parameters (obtained by applying only the tuning modifiers to the initial parameters) is intended to faithfully represent the shot defined by the initial shot parameters; the tuning modifiers 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. For facilitating understanding, such targeted shot parameters may be referred to as “baseline targeted parameters” when subject to possible further modification, such as by difficulty modifiers-(not to be confused with the baseline of a court) these baseline targeted parameters represent a baseline, or starting point, of a shot qualitatively the same as the shot represented by the initial shot parameters, taking into consideration the current situation of the automatic ball machine, such as one or more of location of the ball machine, orientation of the ball machine, environmental factors, court conditions, ball conditions and the ball machine conditions. For example, the controller may first generate baseline targeted shot parameters and then apply difficulty modifiers to obtain the target shot parameters which are then used to obtain launcher settings. Some or all of the baseline targeted shot parameters may be the same as the initial shot parameters, while others of the baseline targeted shot parameters may be adjusted according to the determined location and / or orientation of the ball machine 100 (as well as other tuning parameters as described herein).
[0055] Difficulty modifiers may be applied to the initial shot parameters such that the resulting targeted shot parameters provide qualitatively a more difficult or less difficult shot than that represented by the initial shot parameters. More than one shot parameter may be modified by a corresponding difficulty modifier (which parameters are adjusted may depend on the shot type of the shot). The difficulty modifiers may be identified by the difficulty level. The magnitude of a difficulty modifier may correlate to the determined difficulty in S830, such as being proportional to the determined difficulty level or inversely proportional to the determined difficulty. In some examples, a difficulty modifier (or a value proportional to the difficulty modifier) may be added or subtracted from the corresponding initial shot parameter. In some examples, a look up table may be used to store difficulty modifiers, and the determined difficulty level may be used to identify the set of difficulty modifiers in the look up table to be applied to the initial shot parameters. It should also be appreciated that different sets of difficulty modifiers may be identified by the difficulty level depending on the shot type of the shot. Thus, for a repetitive series of different shots (e.g. with different shot types), different sets of difficulty modifiers may be applied to the initial parameters of the different shots. For example, a difficulty level of 5 determined in S830 may result in modifying the speed shot parameter to increase by 50% as compared to the speed represented by the initial shot parameters of the shot, a difficulty level of 6 may modify the speed shot parameter to increase by 60%, etc. For example, incrementing or decrementing the difficulty of a shot or segment (a set of sequential shots) of the evaluation routine, may cause one or more of the shot parameters of landing point, spin, speed, etc. to be adjusted (e.g., increased or decreased) by a corresponding predetermined amount (e.g., for each difficulty level), such as by 5%. In addition, ball trajectory may be similarly adjusted by a predetermined amount such that the ball is moved further from or closer to a strike zone (an optimum spot for hitting the ball) of the player for a particular shot type the player should return. For example, the strike zone may have a favorable player launch height (the height when the ball is launched from the player's racquet), 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 strike zone may be located 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 the strike zone by an amount proportional to the difficulty level (unless the player properly moves on the playing surface into a better position). Further discussion of modification based on difficulty modifiers is discussed below.
[0056] It should be appreciated that the initial shot parameters may be modified by the tuning modifiers and the difficulty modifiers in any order (i.e., first modified by the tuning modifiers and then modified by the difficulty modifiers, or first modified by the difficulty modifiers and then by the tuning modifiers) or simultaneously. The description of modifiers being “applied to” the initial shot parameters (or similar description) will be understood to encompass modifications of the initial shot parameters in any order (i.e., to reference modification of unadjusted initial shot parameters, to reference further modification of previously modified initial shot parameters or to reference modifications of the initial shot parameters simultaneously with other adjustments made by other modifiers). Similarly, it should be understood that description regarding “baseline target parameters” is provided for better understanding and not to require any particular order of modification of the initial parameters.
[0057] 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.
[0058] In S840, 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 and adjusted according to the determined difficulty level in S830 (if appropriate)). 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.
[0059] After launching the ball in step S840 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). The returned shot must meet certain criteria for being considered a successful return (which may be referred to herein as “success criteria”). The success criteria may be communicated to the player by the automatic ball machine 100 (e.g., the user interface, such as the display, other visual indicators, or a speaker of the automatic ball machine 100). The success criteria may include one or more the shot parameters discussed herein, such as one or more of a target shot location / area, shot type, a minimum speed, a maximum speed, a maximum peak height, a minimum peak height, a maximum net clearance and a minimum spin, for example. The success criteria may include a duration between ball strike and ball landing and a duration between ball launch and ball strike being either above corresponding predetermined values or being below corresponding predetermined values. The success criteria may include a duration associated with a requirement regarding one or more player location area of interest(s) (AoI(s)) (e.g., the time it took a player to move to, move out or move between corresponding AoI(s)) is below a corresponding predetermined value The success criteria may differ depending on the evaluation routine, the skill of the player being evaluated, and / or the difficulty level most recently determined in S830.
[0060] Prior to the first launched ball of an evaluation routine, or after a returned ball by the player, a target location or area on the ball machine side of the court may be identified indicating where the player should return the ball. In some examples, a target return location of a shot may simply be returning the ball inbounds to the other side of the court, in other examples, a particular portion of the other side of the court may be identified as a return target location. For example, an 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 examples, 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, different shots of the evaluation routine may have corresponding success criteria with a different return target location. The different target locations may be identified ahead of time (e.g., at the same time with instructions to the player as to which shot return should be provided to which target location), or may be identified by the automatic ball machine 100 during the launch of the corresponding shot by the automatic ball machine 100 that is associated with the target location. In some examples, an evaluation routine may be created by allowing user input (e.g., by a coach) 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.
[0061] In some examples, the player may be required to be located within an area of interest (AoI) associated with the shot (which may be referenced herein as a “player location AoI”). An area of interest (AoI) may be a defined area of the court or other defined location of the court. For example, an area of interest (AoI) may be a confined area (a rectangular, circular or other geometric shaped area) on the playing surface (which may be inbounds or out of bounds or both), or an unconfined area on the playing surface (e.g., behind the baseline, to the right of the right sideline). The area of interest (AoI) may be an area defined (in whole or in part) by standard lines on the court playing surface or standard regions of the court playing surface (e.g., service box) which may be delineated by the standard lines on the court playing surface. The area of interest (Ao) may be defined as one or more of the structures of the court (e.g., the net, the sidewall, the backwall) (or portions thereof) or be defined as one or more lines on the court playing surface (or portions thereof). The area of interest (AoI) may be defined with respect to identifying a restricted area of the court (e.g., the AoI may be any portion of the court outside the identified restricted area).
[0062] The player may be required to touch the AoI, have a particular body part (e.g., foot, hand, torso, head, etc.) touch or enter the AoI, fully enter the AoI, and / or have a centroid of the player enter the AoI. When the AoI is defined as an area on the playing surface, it will be understood that a player / player body part is considered within the AoI when there is a vertical overlap of the player / player body part and the area of the playing surface corresponding to the AoI (i.e., the player / player body part is above the area of the playing surface that corresponds to the AoI).
[0063] For example, all or some of the shots of the shot sequence may include a corresponding AoI that the player must be within as part of execution of the shot. Timing constraints may also be associated with the corresponding player location AoI. Thus, the player location AoI associated with the shot and the timing constraints may denote a success criteria of the shot, such that failure of the player to be located within the player location AoI corresponding to the shot as dictated by the timing constraint would constitute a failure in returning the shot (as described herein with respect to other success criteria). For example, a player location AoI of a shot may be “behind the baseline” and thus require the player to have a hand touch the court behind the baseline, have one or both feet contact a location behind the baseline, or have a center of the person located behind the baseline. For example, a player location AoI of a shot may be “touch the backwall,”“touch the side wall,”“touch the net,”“touch the service box,”“enter service box,”“touch right [left] boundary line,”“enter out of bounds of court on right [left] side,” etc. The AoI may thus be defined with respect to being near, touching or a positional relationship with standard court lines, standard court structures and / or standard enclosures of the court.
[0064] The player location AoI may be identified and communicated to the player in the same manner as the identification and communication of the return target location as discussed herein.
[0065] The player location AoI may require the player to meet the AoI locational requirements before the shot is launched, during the return of the shot by the player, or after the player has returned the shot. In addition, several player location AoI may be provided with respect to a shot to instruct a player to move from a first AoI to a second AoI, for example
[0066] The automatic ball machine may identify the player location AoI to the player in the same way as a return target location is identified (as described herein), such as using visual and / or audio messages / indicators, pads, etc.
[0067] Timing constraints may, but need not be associated with the AoI. In some examples, the shot may be launched at a predetermined time (a time not associated with the AoI and / or with the shot) and it is up to the player to both satisfy the player location AoI criteria and other criteria associated with the shot. For example, when evaluating a player's ability to return drop shots, the drop shot provided by the automatic ball machine may also require the player to have been “behind the baseline” at any time between the player's return of the previous shot and the player's return of the drop shot. In some examples, predetermined timing constraints may also be provided with respect to the AoI associated with the shot. For example, the player is required to stay “behind the baseline” until the drop shot is launched by the automatic ball machine. For example, the player is required to reach the position of “behind the baseline” within a certain duration after returning the previous shot (e.g., execute “behind the baseline” within 4 seconds after returning the previous shot). The predetermined timing constraints associated with a player location AoI may be adjusted in accordance with adjustment of the difficulty level of the shot in a manner as described elsewhere herein. For example, initial shot parameters of a drop shot to be provided by the automatic ball machine (e.g., to evaluate the player's skill in returning a drop shot) may include an initial shot parameters of player location AoI of “behind the baseline” associated with a timing constraint of within “4 second after returning the previous shot.” An increase in difficulty of this drop shot may result in the timing constraint being reduced (e.g., to 3.5 second) and a decrease in difficulty of this drop shot may result in the timing constraint being increased (e.g., to 5 seconds).
[0068] Timing constraints with respect to player location AoI may be a minimum duration with respect to the previous returned shot (when the ball was hit or when it landed) (e.g. the player needs to meet the player location AoI requirement within the minimum duration). In addition, when several player location AoIs are provided with respect to a shot, timing constraints may indicate a minimum time for the player to transition from the first player location AoI to the second player location AoI.
[0069] In some examples, a player entering or leaving a player location AoI may trigger or otherwise affect shot timing. For example, the timing constraints may indicate the time to launch the shot after a triggering event occurs, where the triggering event is a player interacting with a player location AoI, such as establishing the player location AoI (touching, or entering the player location AoI or ending the player location AoI (releasing contact with or leaving the player location AoI). For example, when evaluating a player's return of drop shots, a player may be required to retreat from a location close to the net and touch or enter an area behind the base line (or touch a back wall, e.g.). In these examples, the triggering event would be the player touching the court behind the baseline, crossing into the area behind the baseline or touching the back wall. In response to the triggering event, the automatic ball machine launches the next drop shot for the player to return after the timing constraint associated with the drop shot (e.g., after 0.5, 1 or 1.5 seconds of the triggering event).
[0070] By having shot evaluation criteria include evaluation of player position AoI with respect to a shot, players may be forced to include similar movement in returning a shot of the evaluation routine. In the example above, each player is required to move from behind the baseline to a location near the net to return the drop shot. In other examples, player position AoI requirements may require a player to be at or close to the net to evaluate overheads or returns of lobs, or require a player to be at one side of the court to evaluate court coverage, hitting the ball with movement, or sidewall returns, etc. Thus, the difficulty level of each shot may be substantially replicated for different instances of an evaluation routine (even for different players that may have different tendencies for court positioning).
[0071] In step S850, the automatic ball machine 100 monitors the player's return of the shot launched by the automatic ball machine in S840 and determines if the return shot meets the success criteria. If the returned shot meets all of the success criteria, the returned shot is considered to have passed. If any of the success criteria of the returned shot is not met, the returned shot is considered to have failed. The passing or failing of the shot is recorded (stored in memory), along with the difficulty level associated with the shot provided by automatic ball machine 100 (e.g., the shot number in the evaluation routine and the shot parameters of the shot). The success criteria that was not met may also be recorded when the returned shot was determined as a failed return. In addition, for each success criteria that was not met, indicating the deviation of the returned shot from the success criteria (e.g., indicating how close the returned shot was from passing the success criteria) may be recorded and associated with the failed success criteria. Thus, as step S850 is repeated, a pass / fail record of the player is updated.
[0072] When evaluating whether the returned shot meets a success criteria of target location, the return shot need not land at the point corresponding to the identified target location, but may be considered to pass when the returned shot lands within a target area associated with the target location, such as within predetermined distance from the target location, or a predetermined area defined around the target location. The difficulty level associated with the shot may adjust the predetermined distance or predetermined area such that relatively higher difficulty levels result in smaller predetermined distances and smaller predetermined areas as compared to relatively lower difficulty levels.
[0073] When evaluating a player's skill with respect to walled racquet sports, the target location may be on a wall or on the playing surface near a wall. In such a case, the predetermined area may be on both the playing surface and / or one or more walls. For example, a predetermined area may be defined around the target location as a projection onto the court of landing points of hypothetical shots surrounding an ideal returned shot (or standard return shot at the current difficulty level) that vary no more than a predetermined deviation (e.g., no more than a predetermined angle) from the ideal return shot (where these hypothetical shots have the same shot type and same or similar speed and same or similar shot height).
[0074] FIG. 10 illustrates an example of a pass / fail record. In this example, the skill rating being determined is a forehand drive. In this example, 24 shots have been provided by the automatic ball machine to the player, each shot being assigned a shot number corresponding to the sequence of their delivery. As a forehand drive skill is to be evaluated, the ball launcher launches balls to the player's forehand (in this case, also as a forehand drive-entered in column 2) with a corresponding difficulty level (entered in column 3). Note that while the pass / fail record of FIG. 10 indicates the shot type of the launched ball is entered into the table in column 2, all of the target shot parameters and / or initial shot parameters may be stored in an entry of the pass / fail record (or other information (e.g., a pointer) to access such information).
[0075] The player's return is analyzed to determine if the player's return shot meets the success criteria for the shot type being evaluated by this evaluation routine and receives a pass (p) if all success criteria are met or a fail (f) if one or more of the success criteria is not met. In the example of FIG. 10, there are four success criteria, denoted as sc1, sc2, sc3 and sc4. Success criterion sc1 denotes the returned shot should qualify as a forehand drive, success criterion sc2 denotes the returned shot location should be within distance x of an identified shot location, success criterion sc3 denotes the returned shot speed should be greater than speed y, and success criterion sc4 denotes the returned shot net clearance should be no more than distance z. Failure of any of the success criteria sc1 to sc4 for evaluated shots results in a fail rating of the returned shot. Note that during the evaluation routine, the values of x, y and z may remain fixed, or may be adjusted based on the difficulty level (e.g., in this example, relatively lower difficulty levels providing relatively higher values for x and z and lower values for y as compared to relatively higher difficulty levels).
[0076] The pass / fail record of FIG. 10 also includes a column to indicate a shot should be ignored and not considered when determining the skill rating. For example, shots 1-5 are flagged to be ignored for skill rating calculations since the initial part of the evaluation routine may not be representative of the player's skill. Shots that are not ignored and used to determine skill ratings may be referenced as evaluated shots.
[0077] Shots may be determined as statistical outliers and thus be considered as not representative of a player's skill (and thus may be ignored in determining a player's skill rating). For example, statistical analysis may determine that certain failed shots were “unlucky” and / or certain passed shots were “lucky” and ignore such shots in determining skill ratings. For example, when a pass / fail record of an evaluation routine (or multiple evaluation routines) may show that a player has a relatively high percentage (e.g., over a predetermined percentage of a predetermined minimum number of shots) of passed returned shots of a particular shot type at a particular difficulty level (or range), a shot that failed at that difficulty level or a lower difficulty level may be considered “unlucky” and that shot may be flagged to be ignored. Similarly, when a pass / fail record of an evaluation routine (or multiple evaluation routines) reveals that a player has a low percentage of passed returned shots of a particular shot type at a particular difficulty level (or range), a shot that passed at that difficulty level (or range) or at a higher difficulty level may be considered “lucky” and ignored (at least initially). Thus, a predetermined number of passed shots of similar difficulty and type (e.g., within a predetermined range of difficulty levels) may be required so that a passed shot of similar difficulty is not considered lucky and thus not flagged as ignored.
[0078] The initial part of the evaluation routine may also include providing instructions to the player regarding the success criteria to be met, and provide several shots to confirm the player understands the success criteria. If any of the success criteria is not met during this initial portion of the evaluation routine, the automatic ball machine may provide feedback to indicate what success criterion was not met (e.g., an audio recording of “you need to hit it harder” if the speed is too slow, or “you need to hit it lower” if the net clearance is too high). Visual feedback may also be given (instead or in addition to audio) to indicate what success criterion was not met.
[0079] The pass / fail record also flags “dummy” shots to be ignored and not considered when determining the skill rating. Dummy shots may be inserted into an evaluation routine for various reasons, such as to move a player to an appropriate location on the court so that the subsequent shots to be evaluate are provided with the player at or near that position. For example, when evaluating a forehand drive, continuous shots provided to the forehand of the player may cause the player to drift in the player's forehand direction (away from a desired location of the player) and a backhand dummy shot may be provided to move the player toward the desired location. For example, if returning a drop shot is to be evaluated, the player may be first moved to the backcourt with an appropriate dummy shot (e.g., a lob provided to the backcourt).
[0080] Additional information may be provided with each entry, such as other evaluations (e.g., of player posture, stroke data, etc.) or video of the player executing the evaluation routine to allow further analysis of areas of weakness of the player as identified by the failed shot and / or failed criteria. In some examples, the video of the player may include a merged video of a video clip of the player executing the evaluation routine with respect to a certain skill (e.g., a volley, an overhead, a wall shot, etc.) and a corresponding video clip of another player (e.g., a professional) executing the same skill having the same relative timing with respect to hitting the corresponding ball. Thus, the player may compare the form (e.g., footwork, stroke, etc.) of the player with the form of the professional with respect to a particular skill. The video clip of the player and the professional may be side by side on the merged video, or overlayed. Preferably, the point of view of the two video clips are made to coincide as much as possible.
[0081] In step S860, the determination is made whether to continue or complete the evaluation routine based on analysis of the pass / failure record of the player as determined in S850 by statistically analyzing the ensemble of all previous shot results and deciding if there is sufficient confidence in a statistical sense (e.g. based on a 95% confidence interval, etc.) that the current assessment score is a sufficiently accurate estimate of the player's true skill level; i.e. the routine may be completed once the assessment score has statistically “converged”. For example, an analysis of the passing or failing of the most recent n shots returned by the player (where n is an integer, e.g., 5, 8, 10, 15, etc.). For example, if the most recent n shots have a ratio of passed shots to failed shots (referenced herein as a pass / fail ratio) that exceeds a predetermined value (e.g., 0.5, 0.7 or 0.8), it is determined to continue the evaluation routine, otherwise it is determined to end the evaluation routine. In some examples, the evaluation routine may use the initial shots of the routine to quickly estimate the skill level of the player so as to provide shots with a difficulty level more appropriate for the player to better estimate the skill of the player (i.e., around the appropriate difficulty level). Thus, during this initial portion of the evaluation routine, failing to return shots with significantly higher difficulty levels than the current difficulty level may be ignored and excluded from analysis of the pass / failure record of the player. The pass / fail record of FIG. 10 shows the difficulty levels reduced from 5 (in shots 1 and 2) to 4 in shot 3 after the returns fail the success criteria. As the returns of shots 4 and 5 pass, the skill level analysis may start with shot 6 with a difficulty level of 3 that may be a closer match to the player's skill. In some examples, the most recent n shots used to determine the ratio of passed shots to failed shots may be the most recent n shots that do not exceed the current difficulty level by a predetermined value (e.g., a fixed value, or a percentage of the current difficulty level).
[0082] When the same evaluation routine is evaluating different shot types of a player (e.g., by providing alternating forehands and backhands to the player), all of the different shot types may be evaluated separately in determining whether to continue or end the routine. Thus, the most recent n returned shots of each different shot type (e.g., most recent n backhand returns and most recent n forehand returns) may be evaluated in the same manner (comparing the ratio of passed shots to failed shots to a corresponding predetermined value (where such predetermined values may be different or the same). When all of the determined pass / fail ratios for these different shot types are less than the corresponding predetermined valued, the evaluation routine may end, otherwise, it may continue.
[0083] When the evaluation routine continues, the method proceeds to step S830 / S830′. At this time, the difficulty level is determined again. In addition, in S830′, the next shot is selected as the subsequent shot in the repeated sequence (and if the previous shot was the last shot in the sequence, the next shot is selected as the first shot of the sequence to start the sequence of shots over again). The next shot difficulty level, like the continue / complete logic mentioned above, is determined by applying statistical methods so that the assessment score converges to a statistically accurate estimator of player skill level. For example, if the pass / fail ratio of the last m shots (where m is an integer that may be 1 or a plural number) is greater than a predetermined value (implying the past shots were not sufficiently challenging to test the player's true limitations) the difficulty level may be increased. If the pass / fail ratio of the last m shots is less than the predetermined value, the difficulty level may be decreased. The integer m may be less than the integer n.
[0084] In some examples, if the pass / fail ratio falls within an intermediate range (e.g., between a lower value and a higher value), the difficulty level may be maintained, and if higher than the intermediate range (i.e., higher than the higher value), the difficulty level may increase, and if lower than the intermediate range (i.e., lower than the lower value), the difficulty level may decrease. In addition, when the difficulty level is increased or decreased, the intermediate range may be increased or decreased, respectively, such that the intermediate range includes the new difficulty level. Furthermore, the magnitude of the intermediate range may decrease (shrink) as the evaluation routine continues (e.g., shrink with more shots delivered).
[0085] With respect to the evaluation routine of FIG. 8B, several difficulty levels may be provided and adjusted accordingly, each difficulty level being associated with a different skill being evaluated. For example, the evaluation routine may evaluate both backhands and forehands, alternately providing backhand shots and forehand shots to the player. Thus, the returns of the backhand shots may be associated with a first difficulty level and adjusted and evaluated with respect to backhand skill evaluation, and returns of the forehand shots may be associated with a second difficulty level and adjusted and evaluated with respect to forehand skill evaluation. As another example, an evaluation routine may include a sequence of forehand drive, volley, and overhead smash, associated with first, second and third difficulty levels, respectively, to adjust subsequent such shots and evaluate such skills. As another example, an evaluation routine for pickleball may include a sequence of serve, third shot drop, volley, and one or more dinks.
[0086] In the method of FIG. 8A, when step S860 determines that the evaluation routine is to end, the skill rating for the ith shot type (the shot type being evaluated by the evaluation routine) is determined in S870. The skill rating for the ith shot type may be the same as or based upon the highest difficulty level successfully passed by the player. For example, this may be the second to last difficulty level (e.g., the difficulty level at the time the pass / fail ratio in S860 was greater that than the predetermined value to allow the evaluation routine to continue in S860). Alternatively, the passing or failing of all or additional shots returned by the player may be evaluated to determine an appropriate skill rating for the ith shot type.
[0087] In the method of FIG. 8B, when step S860′ determines that the evaluation routine is to end, skill ratings for several different shot types may be determined separately. Each of these different skill ratings may be determined in the same manner as described with respect to step S860 (for the ith shot type) based upon the difficulty level and the returned shots associated with the shot type of that skill rating.
[0088] The skill rating of the shot type(s) 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.
[0089] Other procedures and analysis may be adopted to determine whether or not to continue or end the routine (S860), determining when and how to adjust the difficulty level (S830) and determining the skill rating of the shot type for the player (S870). For example, rather than use of a pass / fail ratio, a pass / fail difference may be used (e.g., the number of passes minus the number of fails of the most recent n evaluated shots). For example, after establishing a base difficulty level from the initial shots provided in the beginning of the evaluation routine, the evaluation routine may continue (repeating steps 830 to S870) by incrementing the difficulty of the shots (in S830) for each subsequent shot or set of shots so long as the player has shown a certain level of success (e.g., achieved a pass / fail ratio of the previous n shots that meets or exceeds a predetermined value). When the player does not achieve this level of success (e.g., a pass / fail ratio of the previous n shots is below the predetermined value), rather than ending the evaluation routine, the evaluation routine may still continue, but decrement the difficulty level of the shots (in S830) to be provided. The evaluation routine may continue repeating steps S830 to S860, with the difficulty level increasing or decreasing in this way to generate a plot (i.e., data) of the difficulty level over time (e.g., shot number of the evaluation routine). The evaluation routine may end (S860) when the difficulty level oscillates within a predetermined range, e.g. The difficulty level plot may be analyzed to determine the skill rating associated with the difficulty (S870), such as identifying the difficulty level about which the difficulty level plot oscillates at the end of the difficulty routine and providing a corresponding skill rating of the appropriate shot type based on the identified difficulty level.
[0090] In some examples, an evaluation routine may be organized into different segments, with each segment comprising a series of shots that are associated with a different difficulty level. For example, upon successful completion of a first segment of an evaluation routine, a more difficult segment of the evaluation routine may be executed to evaluate the player's performance. This more difficult segment of the evaluation routine may correspond to applying difficulty modifiers to a particular segment. For example, the first segment and a second segment of the evaluation routine may be generated by applying different difficulty modifiers to a baseline segment of a series of shots (with each shot of this baseline segment defined by initial shot parameters and corresponding success criteria) to provide different difficulties to the firsts and second segments (tuning modifiers may also be applied to the baseline segment of a series of shots as described herein). Alternatively, different segments having of the evaluation routine may each correspond to a different baseline segment describing a different series of shots (with each shot of a baseline segment defined by initial shot parameters and corresponding success criteria), where these different segments have different difficulties from one another.
[0091] In some examples, both of these approaches may be implemented. For example, an evaluation routine may include 5 different segments, with each segment being defined by a different series of shots (each shot of a baseline segment being defined by corresponding initial shot parameters and corresponding success criteria). The different series of shots of the segments may include the same shot type(s) so that the segments evaluate the same shot type(s) as each other.
[0092] In this example, the five baseline segments (without modification by difficulty modifiers) have been determined to have difficulty levels of 1, 2, 3, 4 and 5, respectively. Difficulty modifiers may be applied to each baseline segment to increase (or decrease) the difficulty level of that baseline segment. For example, a baseline segment 1 may be defined by initial shot parameters and success criteria having a difficulty level of 1. Difficulty modifiers may be applied to baseline segment 1 to generate segments 1-1, 1-2, 1-3 and 1-4 with difficulty levels of 1.2, 1.4, 1.6 and 1.8, respectively. For example, difficulty modifiers of 1.05, 1.1, 1.15 and 1.2 may be applied to the initial shot parameter speed (e.g., of each shot of segment 1) to increase shot speed by 5%, 10%, 15% and 20%, respectively, for segments 1-1, 1-2, 1-3 and 1-4 (as compared to segment 1). Other shot parameters may be similarly adjusted. In addition, success criteria may be adjusted based upon difficulty modifiers if desired. If desired, finer adjustments may be made to the difficulty modifiers to create segments with intermediate difficulty levels of those described. Of course, segments with larger or smaller difficulty levels may also be provided. Similarly, segments of different difficulties may be generated by applying difficulty modifiers to baseline segments 2, 3, 4 and 5. Note that the difficulties may be increased and / or decreased by the difficulty modifiers depending on the design.
[0093] For example, an evaluation routine may include evaluation of an overhead return of a player. A first baseline segment may have low difficulty (e.g., difficulty 1) and comprise a series of shots of a single with the same shot height to the same location on the court. A second baseline segment of difficulty 2 may comprise three lobs that vary in height and locations. A third baseline segment of difficulty 3 may include a series of shots comprising a first lob that lands on the service line, a second lob that lands in the back court, a drop shot, a drive (to be returned as a volley), and a third lob on the non-dominant side of the player. Segments of harder difficulties of different series of shots may also be provided. The evaluation routine may include executing segment 1 several times with increasing difficulty (e.g., moving the lob away from the player's sweet spot to a location behind the non-dominant hand side of the player). After a certain level of success in executing segment 1, segment 2 may be executed, again with increasing difficulty as the player successfully meets the success criteria of segment 2 shots. After a certain level of success of executing segment 2, segment 3 may be executed, increasing with difficulty as the player successfully meets the success criteria of segment 3 shots. The process may continue with the addition of harder baseline segments (and increasing the difficulty of the same in repeated execution of the segments) until the player no longer is sufficiently successful and / or the difficulty level is adjusted / converges to an appropriate level that reflects the skill level of the player in returning lobs.
[0094] In the example above, only lobs were noted as being evaluated. However, as noted herein, additional skills may be evaluated in the same evaluation routine. For example, volley shots skills or the return of drop shots skills may be evaluated in addition to evaluation of lobs. When evaluating several skills in a single evaluation routine, it may be helpful to modify a segment of a sequence of shots to provide additional shots of a particular shot type (or a particular series of shots) to obtain more data to assist in evaluating a skill associated with that shot type. Consider the above example where it is desired to evaluate both lob shots and volley shots. A player may execute segment 3 successfully with respect to volley shots but unsuccessfully with respect to lob shots. The less difficult segment 2 may be thus selected (due to the player's failure to maintain a certain level of success with respect to segment 3). At this stage, it may be possible to obtain a skill rating of lob returns, but information for determining the skill rating for volleys may be unavailable. However, segment 2 (according to the example above) would not result in any volley returns to evaluate.
[0095] Thus, after execution of the evaluation routine for some period of time, the evaluation routine may have collected sufficient information (or is on course to collect sufficient information) to determine a skill level for a first skill (e.g., a first shot type) of a player but not enough information (or not on course to collect sufficient information) to determine a skill level for a second skill (e.g., a second shot type) of the player. Thus, the evaluation routine may deviate from its normal execution (e.g., deviate from a sequential series of shots) to provide additional shots (e.g., to evaluate the second skill, or second shot type (e.g., volley in this example)). The additional shots may be provided sequentially without interruption by other shots of segment(s), or may be added by interspersing these additional shots into the sequence of shots of the segment(s).Shot Parameter Constraints and Adjustment
[0096] FIG. 9 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 FIGS. 8A and 8B. In step S910, initial shot parameters of the nth shot of the evaluation 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 evaluation routine). Step S910 may correspond to step S830 of FIG. 8A and / or may constitute part of selecting the next shot in the repetitive sequence of step S830′ of FIG. 8B (where the nth shot is the next shot, such as in a repetitive 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 S830′ to S860′ of FIG. 8B (reset to 1 after n=N).
[0097] In step S920, as part of obtaining targeted shot parameters, tuning modifiers are applied to the initial shot parameters. Tuning modifiers are applied to provide qualitatively the same shot represented by the initial shot parameters despite differences in the location and orientation of the automatic ball machine 100 as well as other factors, such as environment (heat, humidity), the ball machine and / or balls. For example, 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. 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 (assuming there is no need to provide other tuning modifiers and no difficulty modifiers have been applied). 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 S820, the location and / or orientation of the automatic ball machine 100 is determined by the automatic ball machine 100. In step S920, the initial shot parameters are adjusted based on the determined location and / or orientation of the automatic ball machine 100 on the court.
[0098] For example, step S920, if 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 baseline targeted shot parameter (unadjusted by difficulty modifiers) 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, baseline 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 with tuning modifiers 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, baseline targeted shot parameters of shot type, shot location, as well as at least one of shot speed and shot peak height (and / or net clearance) may constitute a first subset of baseline targeted shot parameters that are not adjusted based on tuning modifiers (i.e., are the same in the initial shot parameters and target shot parameters), while initial parameters of launch height and shot spin may be adjusted in order to achieve the baseline targeted shot location at the targeted shot speed and shot peak height (and / or net clearance). In some examples, in addition to baseline targeted shot parameters of shot type and shot location being unadjusted, the baseline targeted shot parameters that define the shot type may be unadjusted (or made similar, such as being constrained to be within a predetermined range, such as varying no more than 5%, with respect to the corresponding initial shot parameters).
[0099] In some examples of S920, 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 baseline targeted shot parameter. For example, players receiving shots intended for a ground stroke return, it is preferable that baseline 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 baseline 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 baseline 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 baseline targeted shot parameters. In some examples, the remaining baseline 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.
[0100] Similarly, in S920, 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 baseline 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 baseline targeted shot parameters. For example, initial shot parameters and baseline 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.
[0101] In step S930, difficulty modifiers are applied to the initial shot parameters based on the difficulty level of the shot (e.g., determined in S830). To facilitate understanding, the description of S920 and S930 refers to tuning modifiers being applied to the initial shot parameters to obtain baseline targeted shot parameters, which are then modified by difficulty modifiers. As noted, the order in which the difficulty modifiers and tuning modifiers are applied to the initial parameters may be switched (or the difficulty modifiers and tuning modifiers may be applied simultaneously (e.g., different weighting factors applied against an initial shot parameter). Thus, the targeted shot parameters are obtained by applying both the tuning modifiers and the difficulty modifiers in S920 and S930.
[0102] In step S940, launcher settings of the ball launching system 130 are determined by controller 110 based on the thus obtained targeted shot parameters. In step S950, the ball is launched by the ball launching system 130 with the launcher settings obtained in S940. The launcher settings control the operation of the ball launching system 130 with the target that the ball launching system launches a ball having the targeted shot parameters.
[0103] Additional instances of execution of the evaluation routine(s) may be repeated for other players and to obtain ratings for additional players. The additional instances of the execution may be performed by the same ball machine or may be performed by other automatic ball machines similarly programmed to execute the same evaluation routine (e.g., such automatic ball machines may be located on different walled racquet courts that have the same layout (e.g., same dimensions)). The additional instances of the evaluation routines may be executed with respect to different players or with respect to the same players (e.g., to challenge the players to obtain a higher rating). As the evaluation routines may be faithfully replicated by the automatic ball machines (i.e., providing qualitatively the same shots at various difficulty levels), the evaluation routines may provide player start ratings in an unbiased manner without requiring subjective analysis.Example Evaluation Routines to Test Different Skills of Player
[0104] Different evaluation routines may be executed to test different skills of a player. Each of these skill targeted evaluation routines may be evaluated to obtain a corresponding skill rating for a player (the aggregate of which may be used to determine a player's overall start rating (e.g., such as an average or weighted average of these skill ratings). For example, the following evaluation routines may focus on serves, backcourt play, and frontcourt play. It will be appreciated that the description of the modification of difficulty in the examples below are applicable to other shot types and may be applied to modifying difficulty based on changes in difficulty levels in other examples described herein.
[0105] Serve Return Evaluation Routine (automatic ball machine 100 provides serves as shot type):
[0106] Replicate a serve to the side wall (e.g., side glass) and determine if the player is able to return the serve. The serve may bounce on the playing surface and have a trajectory to ricochet off a sidewall. The player also may be evaluated on whether the player allows the ball to bounce of the side wall (e.g., pass) or intercepts the ball before the ball hits the sidewall (e.g., fail).
[0107] Replicate a serve to the back wall (e.g., back glass) and evaluate player ability to return the serve. The serve may bounce on the playing surface and have a trajectory to ricochet off the backwall. Evaluate if the player's return shot is inbounds (pass). The player also may be evaluated on whether the player allows the ball to bounce of the back wall (e.g., pass) or intercepts the ball before the ball hits the back wall (e.g., fail).
[0108] The player return of the serves may be evaluated based on footwork, technique, positioning, accuracy, and / or consistency. For example, a distance between the player's torso and the ball may be evaluated to determine if the ball is too close to the player, too far from the player or correctly positioned. For example, the number of serves successfully returned may be evaluated.
[0109] Increase difficulty level by providing both serves to a side wall and serves to the backwall and evaluate the same (e.g. with above noted criteria).
[0110] Increase difficulty level by increasing sidespin and / or backspin and evaluate the same (e.g. with above noted criteria). For example, increased backspin provides a lower ball height in the bounce of the back wall. For example, increased sidespin may cause jamming or reaching (poor distancing of the player from the ball).
[0111] Provide serves with different landing points on the court surface having different distances from the sidewall or backwall. Increase difficulty level by providing the landing point on the court surface closer to the sidewall or backwall (generally, the closer to the wall, the harder and more difficult the serve is to return).
[0112] Instruct the player as to a target return location (e.g., where the optimum return shot would be) and determine how successful they are able to return the ball to that location (e.g., distance of returned shot from target return location).
[0113] Increase difficulty level by increasing speed of serve. For example, provide fast serves to the player hard off the middle glass or wall.
[0114] Backcourt Evaluation Routine (automatic ball machine 100 may be relatively close to the net to replicate volley shot type):
[0115] Evaluate player ability to hit forehand and backhand drives off the bounce, lobs off the bounce, drives off the wall / glass, and lobs off the wall / glass
[0116] Evaluate player return shot accuracy (e.g., return shot ball net clearance, to instructed location)
[0117] Evaluate player positioning (e.g., player returns to identified player position AoI (e.g., preferred home position on court) after each return shot (before next shot is launched, or within a certain time period)
[0118] Evaluate player ability to return shots off side wall / glass (may be same as in Serve Return Evaluation)
[0119] Evaluate player ability to return shots of back wall / glass (may be same as in Serve Return Evaluation)
[0120] Evaluate Side / Back combination. Provide shots having a trajectory that bounces off of playing surface into side wall, ricochets off of side wall to strike back wall before being returned by player. Evaluate player ability to return such shots (may be same as in Serve Return Evaluation)
[0121] Evaluate if the player turns with the ball (rotate body to follow ball as it bounces / ricochets around them)
[0122] Evaluate player spacing (e.g., distance between torso and ball, e.g., at racquet contact)
[0123] Evaluate Back / Side combination. Provide shots having a trajectory that bounces off of playing surface into back wall, ricochets off of back wall to strike side wall before being returned by player.
[0124] Evaluate if the player turns with the ball (rotate body to follow ball as it bounces / ricochets around them)
[0125] Evaluate player spacing (e.g., distance between torso and ball, e.g., at racquet contact)
[0126] Increase difficulty level by adding ball spin and ball speed. When more complex spins and speeds are provided, the evaluation routine difficulty level may increase because the ball may not bounce as high, may land closer to the back wall, and / or may kick when it hits the back wall / glass.
[0127] Increase difficulty by increasing variance between sequential shots (e.g., slower short shot followed by hard deep shot).
[0128] Increase difficulty by determining player's position on the court and by providing shots further away from player's forehand or backhand strike zone, such as at feet, to the body, outside of the reach of the player (without movement).
[0129] Increase difficulty by increasing distance between shot locations of sequential shots and / or distance player must move between sequential shots.Frontcourt Evaluation Routine:Evaluate player's ability to hit forehand and backhand volleys
[0131] Evaluate player return shot accuracy (e.g., to instructed location)
[0132] Increase difficulty level by speeding up volleys (e.g., reducing launch interval).
[0133] Increase difficulty level by moving volleys further away from player (e.g., to determine range of player for returning volley shots) or by providing shots to the body or feet).
[0134] Evaluate player's ability to hit overheads / lobs.
[0135] Evaluate player ability to return shot to a specific location and / or player ability to hit different types of overheads (e.g., overheads with different spins and shot locations)
[0136] Evaluate the player transition between volleys and overheads (e.g., time to move between ideal positions for volleys and overheads).
[0137] Increase difficulty level by providing very deep lobs (e.g., with landing points closer to back wall).Evaluation of Returned Shots
[0138] As discussed herein, in step S850, the player's return of the shot launched by the automatic ball machine in S840 is evaluated as a pass or a fail, depending if the ball returned by the player meets the success criteria (e.g., one or more the shot parameters discussed herein, such as one or more of a target shot location or a target shot area, shot type, a minimum speed, a maximum speed, a maximum peak height, a minimum peak height, a maximum net clearance and a minimum spin, for example). Success criteria may also include player position AoI associated with a shot (with or without associated timing constraints). Success criteria may also include time (duration) of the shot returned by the player (e.g., time from striking the ball to the time the ball lands on the court) (which may indicate how hard the player returned the shot). The success criteria may differ depending on the evaluation routine, the skill of the player being evaluated, and / or the current difficulty level as most recently determined in S830. Success criteria may also include evaluating the player to determine whether the actions of the player fall outside the rules of the racquet sport (associated with the starting rating that is being determined for the player). For example, evaluation of the stroke performed by the player may determine whether a serve was provided underhand as required by pickleball. For example, player foot location may be evaluated to determine if a player illegally stepped in the kitchen when delivering a volley in pickleball. For example, the player and the player's racquet may be monitored for illegal contact with the net. Exemplary details of monitoring of a player are set forth in U.S. application Ser. No. 19 / 060,366. Thus, in addition to the success criteria of the returned ball, the success criteria may also include the player performance not violating one or more rules of the racquet sport.
[0139] In embodiments described herein, the success criteria may be limited solely to evaluation of the shot returned by the player. In some example, the success criteria may also take into consideration evaluations (e.g., of the player or the player's racquet) to determine whether the actions of the player fall outside the rules of the racquet sport. That is, the success criteria used to determine a skill rating of the player (and the start rating) may be limited to evaluation of whether the player was able to return the ball with the appropriate constraints and not evaluate how this was achieved by the player (or optionally, so long as the player actions did not violate a rule of the racquet sport). However, additional evaluating criteria may be used in some examples. For example, in addition to evaluating the shot returned by the player, evaluation by the automatic ball machine 100 in step S850 may include one or more of the following evaluation factors: player position on the court, player movement, player foot (feet) location(s) on the playing surface), player pose, racquet position, racquet movement, racquet stroke and the timing of these evaluation factors (e.g., such as relative to the launch of the ball by the automatic ball machine 100). 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. Note that such evaluation may be used for determining a skill rating of a shot type in S720 or an additional skill rating in S730. Alternatively or in addition, such evaluation may be performed for the purpose of providing a report to the player in S750 and may be used to identify possible problems associated with failed returned shots (e.g., the reason that the returned failed appears to be that the player is too close to the ball, the player does not rotate with the ball as it bounces off the wall, the player's pose is incorrect for overheads, etc.). Exemplary details of such monitoring are set forth in U.S. application Ser. No. 19 / 060,366.Shot Parameters
[0140] 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 both shots launched by a ball machine as well as shots returned by or initiated by a player.
[0141] 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 of a shot launched by the automatic ball machine 100 may not be achieved in many instances, such as 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 for various analysis purposes.
[0142] 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.
[0143] 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.
[0144] 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.
[0145] 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 an evaluation 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.
[0146] 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.
[0147] 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.
[0148] 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.
[0149] 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).
[0150] 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.
[0151] 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.
[0152] 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.
[0153] 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 an upward (tilt) launch angle greater than a corresponding predetermined value (e.g., greater than 40 degrees).
[0154] 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).
[0155] 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.
[0156] 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.
[0157] 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.
[0158] 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.
[0159] 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.
[0160] 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.
[0161] 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:
[0162] The shot type backspin groundstroke may be a groundstroke shot type (i.e., having targeted 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).
[0163] 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).
[0164] 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).
[0165] 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.
[0166] 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.
[0167] 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 evaluation routine).
[0168] 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.).
[0169] 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.
[0170] 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.
[0171] 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
[0172] 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 system122) 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.
[0173] 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.
[0174] For example, it is desirable for the evaluation 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.
[0175] 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.Ball Tracking
[0176] 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
[0177] 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 evaluation routine. For example, subsequent to the automatic ball machine 100 launching the first shot to the user (i.e., player), 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.
[0178] The automatic ball machine 100 may determine the pose of a user in real-time during an evaluation 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.
[0179] 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.
[0180] When the automatic ball machine 100 captures, in relation to a swing motion of a user (i.e., player) during an evaluation 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.
[0181] 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.
[0182] 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.
[0183] 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.
[0184] 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
[0185] 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.
[0186] 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.
[0187] 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.
[0188] 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.
[0189] 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.
[0190] 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 modifications are possible in the example embodiments without materially departing from the novel teachings and advantages of the example embodiments. For example, although the present embodiments provide certain advantages of providing start ratings less typical racquet sports, (e.g., walled racquet sports, such as padel and platform tennis, or pickle ball), the start rating generation described herein may also be applicable to tennis and other racquet sports (table tennis, e.g.).
Claims
1. A method for determining a player rating for a racquet sport, comprising:by an automatic ball machine on a first side of a racquet court to a first player on a second side of the court, the method comprising:a first instance of executing evaluation routines to determine a skill rating for each of a plurality of shot types to obtain a plurality of shot type skill ratings of the first player; anddetermining a player rating of the first player based on the plurality of shot type skill ratings of the first player,wherein executing a first evaluation routine of the evaluation routines comprises:(a) providing a current difficulty level by obtaining a first difficulty level from memory;(b) obtaining sets of initial shot parameters for N shots, where N is an integer equal to one or more, each set of initial shot parameters defining a shot;(c) for each of the N shots:(i) obtaining target shot parameters by applying, to one or more of the initial shot parameters of the shot, one or more difficulty modifiers derived from the current difficulty level and one or more tuning modifiers derived from a determined location and a determined orientation of the automatic ball machine;(ii) launching a ball to the player with a launcher of the automatic ball machine according to the target shot parameters obtained in step (i);(iii) monitoring a returned shot by the player of the ball launched by the launcher, determining if the returned shot meets success criteria associated with the shot, and providing a determination of pass for the returned shot when it is determined the returned shot meets success criteria and otherwise providing a determination of fail for the returned shot; and(iv) storing the determination of pass or fail of step (iii) as part of a pass / fail record of the evaluation routine;(d) updating the current difficulty level based upon the pass / fail record;(e) repeating steps (c) and (d) until the pass / fail record indicates a limitation of success of the player to provide returned shots meeting the associated success criteria with respect to one or more difficulty levels; and(f) determining a shot type skill rating for at least one shot type associated with the evaluation routine based on the pass / fail record, the shot type skill rating being one of the plurality of shot type skill ratings.
2. The method of claim 1, further comprising, by the automatic ball machine, determining the location and orientation of the automatic ball machine on the racquet court.
3. The method of claim 2, wherein the automatic ball machine remains in a corresponding location during the execution of each evaluation routine.
4. The method of claim 1, wherein step (d) comprises increasing the difficulty level based upon determining the number of passes in (c) (iii) of the most recent m shots exceeds a first predetermined value, where m is a plural integer.
5. The method of claim 4, wherein step (e) comprises repeating steps (c) and (d) until the number of fails in (c) (iii) of the most recent n shots exceeds a second predetermined value, where n is a plural integer greater than m.
6. The method of claim 1, wherein step (d) comprises increasing the difficulty level resulting in increasing at least one of speed and spin of the shot by the difficulty modifiers in step (i).
7. The method of claim 1, wherein the success criteria comprises the returned shot landing within an identified area on the first side of the racquet court.
8. The method of claim 7, wherein step (d) comprises decreasing the size of the identified area on the first side of the racquet court increase the difficulty level.
9. The method of claim 1, wherein the success criteria comprises one or more of a maximum distance from target shot location, a target shot area, shot type, a minimum speed, a maximum speed, a maximum peak height, a minimum peak height, a maximum net clearance, a minimum spin, a maximum duration of player movement to and / or from one or more identified locations and a maximum deviation of player movement from.
10. The method of claim 9, wherein the success criteria comprises shot type.
11. The method of claim 10, wherein the shot type success criteria comprises forehand or backhand.
12. The method of claim 10, wherein the shot type success criteria comprises at least one of volley, dink, lob, drop shot, overhead, slice and serve.
13. The method of claim 9, wherein the automatic ball machine communicates at least some of the success criteria to the player.
14. The method of claim 1, wherein N equals one and (e) repeating steps (c) and (d) results in repetitively performing step (ii) to provide sequential shots to the player of the same shot type.
15. The method of claim 1, wherein the determining of the shot type skill rating for at least one shot type is based on only the pass / fail record.
16. The method of claim 1, wherein for each of the N 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.
17. The method of claim 16, further comprising, with respect to a second player:a second instance of executing the evaluation routines, including a second instance of executing the first evaluation routine,based on the executing of the evaluation routines, determining a skill rating for each of the plurality of shot types to obtain a plurality of shot type skill ratings of the second player, anddetermining a player rating of the second player based on the plurality of shot type skill ratings of the second player.
18. The method of claim 17,wherein executing the first instance of the evaluation routines with respect to the first player is performed by a first moveable automatic ball machine provided on a first racquet court, andwherein executing the second instance of the evaluation routines with respect to 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 executing the evaluation routines are the same with respect to the first racquet court as the corresponding target shot locations of the second instance executing the evaluation routines with respect to the second racquet court.
19. The method of claim 1,wherein the success criteria comprises a player location success criteria defined by a first area of interest (AoI) of the court that is associated with the shot to denote a locational requirement of the player as part of execution of the shot, andwherein the automatic ball machine monitors the player to determine if the locational requirement is met by the player during execution of the shot to determine if the returned shot meets the success criteria associated with the shot.
20. The method of claim 19, wherein the locational requirement of the player comprises the player touching the first AoI.
21. The method of claim 19, wherein the locational requirement of the player comprises the player entering the first AoI.
22. The method of claim 19, wherein the player location success criteria requires meeting the locational requirement within a set period of time associated with the shot prior to (c) (ii) launching the ball to the player in order to have the player location success criteria be determined as a pass in step (c) (iii).
23. The method of claim 22, wherein the set period of time is set based on the current difficulty level.
24. The method of claim 19, wherein (c) (ii) launching a ball to the player is responsive to a determination that the locational requirement of the player location success criteria has been met.
25. The method of claim 19, wherein the player location success criteria requires meeting the locational requirement within a set period of time after a predefined occurrence of a return of the previous shot has occurred in order to have the player location success criteria be determined as a pass in step (c) (iii).
26. The method of claim 19, wherein the player location success criteria is defined by a second AoI of the court and a set time, wherein the locational requirement of the player comprises the player to move from the first AoI to the second AoI within the set time in order to have the player location success criteria be determined as a pass in step (c) (iii).
27. An automatic ball machine for a racquet sport comprising:a hopper to store a plurality of balls;a launcher to launch a sequence of balls received from the hopper;a camera;memory; anda controller configured to control the launcher with launcher settings to provide a shot to a player with targeted shot parameters, and configured to analyze images received from the camera to determine the location and orientation of the automatic ball machine on a racquet court and determine shot parameters of a ball returned by a player after the ball was launched to the player by the launcher,wherein the controller is configured to determine a player rating reflecting player skill in the racquet sport by executing evaluation routines to determine a skill rating of player for each of a plurality of shot types to obtain a plurality of shot type skill ratings and aggregate the plurality of shot type skill ratings to determine the player rating,wherein the controller is configured to determine a first location and first orientation of the automatic ball machine on a first racquet court and is configured to execute an evaluation routine by the automatic ball machine on the first racquet court by:(a) providing a current difficulty level by obtaining a first difficulty level from memory;(b) obtaining sets of initial shot parameters for N shots, where Nis an integer equal to one or more, each set of initial shot parameters defining a shot;(c) for each of the N shots:(i) obtaining target shot parameters by applying, to one or more of the initial shot parameters of the shot, one or more difficulty modifiers derived from the current difficulty level and one or more tuning modifiers derived from a determined location and a determined orientation of the automatic ball machine;(ii) launching a ball to the player with a launcher of the automatic ball machine according to the target shot parameters obtained in step (i);(iii) monitoring a returned shot by the player of the ball launched by the launcher, determining if the returned shot meets success criteria associated with the shot, and providing a determination of pass for the returned shot when it is determined the returned shot meets success criteria and otherwise providing a determination of fail for the returned shot; and(iv) storing the determination of pass or fail of step (iii) as part of a pass / fail record of the evaluation routine;(d) updating the current difficulty level based upon the pass / fail record;(e) repeating steps (c) and (d) until the pass / fail record indicates a limitation of success of the player to provide returned shots meeting the associated success criteria with respect to one or more difficulty levels; and(f) determining a shot type skill rating for at least one shot type associated with the evaluation routine based on the pass / fail record, the shot type skill rating being one of the plurality of shot type skill ratings.
28. The automatic ball machine of claim 27, wherein the controller is configured to increase the difficulty level based on determining that the number of passes of the most recent m shots exceeds a first predetermined value, where m is a plural integer.
29. The automatic ball machine of claim 28, wherein the controller is configured to repeat steps (c) and (d) in response to the pass / fail record having the number of passes of the most recent n shots exceeding a second predetermined value, where n is a plural integer greater than m.
30. The automatic ball machine of claim 27, wherein the controller is configured to increase the difficulty level based upon determining the number of passes in (c) (iii) of the most recent m shots exceeds a first predetermined value, where m is a plural integer.
31. The automatic ball machine of claim 30, wherein the controller is configured to end repeating of steps (c) and (d) in response to the number of fails in (c) (iii) of the most recent n shots exceeding a second predetermined value, where n is a plural integer greater than m.
32. The automatic ball machine of claim 27, wherein the controller is configured to apply difficulty modifiers in response to an increase in the difficulty level that increases at least one of speed and spin of a subsequent shot launched in operation (ii).
33. The automatic ball machine of claim 27, wherein the success criteria comprises the returned shot landing within an identified area on the racquet court.
34. The automatic ball machine of claim 33, wherein the controller is configured to decrease the size of the identified area to increase the difficulty level.
35. The automatic ball machine of claim 27, wherein the success criteria comprises one or more of a maximum distance from target shot location, a target shot area, shot type, a minimum speed, a maximum speed, a maximum peak height, a minimum peak height, a maximum net clearance, a minimum spin, a maximum duration of player movement to and / or from one or more identified locations and a maximum deviation of player movement from an optimal path.
36. The automatic ball machine of claim 35, wherein the success criteria comprises shot type.
37. The automatic ball machine of claim 36, wherein the shot type success criteria comprises forehand or backhand.
38. The automatic ball machine of claim 36, wherein the shot type success criteria comprises at least one of volley, dink, lob, drop shot, overhead, slice and serve.
39. The automatic ball machine of claim 27, wherein the automatic ball machine further comprises at least one of a display or speaker configured to communicate at least some of the success criteria to the player.
40. The automatic ball machine of claim 27, wherein N equals one and the controller is configured to (e) repeat steps (c) and (d) to repetitively provide sequential shots to the player of the same shot type.
41. The automatic ball machine of 27, wherein the determining of the shot type skill rating for at least one shot type is based on only the pass / fail record.
42. The automatic ball machine of 27, wherein for each of the N 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.
43. The automatic ball machine of claim 27,wherein the success criteria comprises a player location success criteria defined by a first area of interest (AoI) of the court that is associated with the shot to denote a locational requirement of the player as part of execution of the shot, andwherein the controller is configured to determine if the locational requirement is met by the player during execution of the shot to determine if the returned shot meets the success criteria associated with the shot.
44. The automatic ball machine of claim 43, wherein the locational requirement of the player comprises the player touching the first AoI.
45. The automatic ball machine of claim 43, wherein the locational requirement of the player comprises the player entering the first AoI.
46. The automatic ball machine of claim 43, wherein the player location success criteria requires meeting the locational requirement within a set period of time associated with the shot prior to (c) (ii) launching the ball to the player in order to have the player location success criteria be determined as a pass in step (c) (iii).
47. The automatic ball machine of claim 46, wherein the set period of time is set based on the current difficulty level.
48. The automatic ball machine of claim 43, wherein the controller is configured to control the launcher to launch a ball to the player in response to determining that the locational requirement of the player location success criteria has been met.
49. The automatic ball machine of claim 43, wherein the player location success criteria requires meeting the locational requirement within a set period of time after a predefined occurrence of a return of the previous shot has occurred.
50. The automatic ball machine of claim 43, wherein the player location success criteria is defined by a second AoI of the court and a set time, wherein the locational requirement of the player comprises the player to move from the first AoI to the second AoI within the set time in order to have the player location success criteria be determined as a pass in step (c) (iii).