[go: up one dir, main page]

WO2025217465A1 - Ball machine for providing player ratings for racquet sports and related methods - Google Patents

Ball machine for providing player ratings for racquet sports and related methods

Info

Publication number
WO2025217465A1
WO2025217465A1 PCT/US2025/024173 US2025024173W WO2025217465A1 WO 2025217465 A1 WO2025217465 A1 WO 2025217465A1 US 2025024173 W US2025024173 W US 2025024173W WO 2025217465 A1 WO2025217465 A1 WO 2025217465A1
Authority
WO
WIPO (PCT)
Prior art keywords
shot
player
ball machine
parameters
shots
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/US2025/024173
Other languages
French (fr)
Inventor
John Weinlader
Stephen Titus
Dan Weinlader
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Volley LLC
Original Assignee
Volley LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US19/060,366 external-priority patent/US20250186857A1/en
Application filed by Volley LLC filed Critical Volley LLC
Publication of WO2025217465A1 publication Critical patent/WO2025217465A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • G06V20/42Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items of sport video content
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B24/00Electric or electronic controls for exercising apparatus of preceding groups; Controlling or monitoring of exercises, sportive games, training or athletic performances
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B69/00Training appliances or apparatus for special sports
    • A63B69/40Stationarily-arranged devices for projecting balls or other bodies
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B71/00Games or sports accessories not covered in groups A63B1/00 - A63B69/00
    • A63B71/06Indicating or scoring devices for games or players, or for other sports activities
    • A63B71/0619Displays, user interfaces and indicating devices, specially adapted for sport equipment, e.g. display mounted on treadmills
    • A63B71/0669Score-keepers or score display devices
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B69/00Training appliances or apparatus for special sports
    • A63B69/40Stationarily-arranged devices for projecting balls or other bodies
    • A63B2069/402Stationarily-arranged devices for projecting balls or other bodies giving spin
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B71/00Games or sports accessories not covered in groups A63B1/00 - A63B69/00
    • A63B71/06Indicating or scoring devices for games or players, or for other sports activities
    • A63B71/0619Displays, user interfaces and indicating devices, specially adapted for sport equipment, e.g. display mounted on treadmills
    • A63B71/0622Visual, audio or audio-visual systems for entertaining, instructing or motivating the user
    • A63B2071/0625Emitting sound, noise or music
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2102/00Application of clubs, bats, rackets or the like to the sporting activity ; particular sports involving the use of balls and clubs, bats, rackets, or the like
    • A63B2102/02Tennis
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2102/00Application of clubs, bats, rackets or the like to the sporting activity ; particular sports involving the use of balls and clubs, bats, rackets, or the like
    • A63B2102/06Squash
    • A63B2102/065Racketball
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2102/00Application of clubs, bats, rackets or the like to the sporting activity ; particular sports involving the use of balls and clubs, bats, rackets, or the like
    • A63B2102/08Paddle tennis, padel tennis or platform tennis
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2102/00Application of clubs, bats, rackets or the like to the sporting activity ; particular sports involving the use of balls and clubs, bats, rackets, or the like
    • A63B2102/16Table tennis
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/05Image processing for measuring physical parameters
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/80Special sensors, transducers or devices therefor
    • A63B2220/806Video cameras
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/80Special sensors, transducers or devices therefor
    • A63B2220/807Photo cameras
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B69/00Training appliances or apparatus for special sports
    • A63B69/40Stationarily-arranged devices for projecting balls or other bodies
    • A63B69/406Stationarily-arranged devices for projecting balls or other bodies with rotating discs, wheels or pulleys gripping and propelling the balls or bodies by friction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training

Definitions

  • 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.
  • 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).
  • shots e.g., before or after a wall ricochet
  • 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.
  • the start rating is even more complex to assign in less typical racquet sports.
  • 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 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.).
  • the difficulty of the shots provided to the player 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.
  • 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.
  • 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.
  • 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).
  • 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.
  • 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
  • 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)).
  • 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.
  • 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).
  • 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.
  • 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.
  • 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).
  • FIG. 1 illustrates an isometric front view of an automatic ball machine in a lowered position according to example embodiments
  • FIG. 2 illustrates a front view of the automatic ball machine in a lowered position according to example embodiments
  • FIG. 3 illustrates an isometric rear view of the automatic ball machine in a lowered position according to example embodiments
  • FIG. 4 illustrates an isometric front view of the automatic ball machine in a raised position according to example embodiments
  • FIG. 5 illustrates a front view of the automatic ball machine in a raised position according to example embodiments
  • FIG. 6 illustrates an isometric rear view of the automatic ball machine in a raised position according to example embodiments
  • FIG. 7 is a flow chart for providing a start rating for a player;
  • FIGS. 8A and 8B illustrate a flowcharts setting forth exemplary steps of executing an evaluation routine of a player;
  • FIG. 9 illustrates a method of launching a ball based upon determined location and/or orientation of an automatic ball machine
  • FIG. 10 illustrates an example of a pass / fail record
  • FIG. 11 illustrates an example general-purpose computer for use with the automatic ball machine according to example embodiments.
  • ordinal numbers such as “first,” “second,” “third,” etc. may be used simply as labels of certain elements, steps, etc., to distinguish such elements, steps, etc. from one another. Terms that are not described using “first,” “second,” etc., in the specification, may still be referred to as “first” or “second” in a claim. In addition, a term that is referenced with a particular ordinal number (e.g., “first” in a particular claim) may be described elsewhere with a different ordinal number (e.g., "second” in the specification or another claim).
  • FIGS. 1-6 illustrate varying orientation views of an automatic ball machine 100 according to example embodiments.
  • 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.
  • a controller 110 such as a controller 110, a first camera 121, and a second camera 122 mounted inside the housing of the controller 110.
  • 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.
  • 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 number 18/097,345 (“the ’345 application”) filed on January 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.
  • an imaging system 120 comprises the first camera 121 and the second camera 122.
  • 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.
  • 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
  • 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.
  • 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.
  • 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.
  • 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.
  • TOF Time-Of-Flight
  • 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.
  • 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 No. 18/198,167 (“the ’ 167 application”) filed on May 16, 2023, the entire content of which is herein incorporated by reference.
  • 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 comers of the court behind the ball machine on the side of the court on which the automatic ball machine 100 is placed).
  • the ball launching system 130 may include a plurality of spinner wheels, each coupled to corresponding one of a plurality of motors, to launch the balls 101.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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).
  • 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., comers of the triangle being truncated where the ends of the net and posts of the net are positioned outside the playing boundaries, such as doubles sidelines).
  • the automatic ball machine 100 may adjust a distance the keep-out region extends from the automatic ball machine 100 based on a court location of the automatic ball machine 100.
  • additional environment sensors may be included.
  • 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.
  • LiDAR Light Detection and Ranging
  • a full 360-degree coverage around the automatic ball machine 100 may be implemented via additional environment sensors, for example, LiDAR sensors.
  • additional environment sensors may further include, for example, barometric sensors, temperature sensors, humidity sensors, anemometer sensors, and the like.
  • 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.
  • 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.
  • racquet sports such as platform tennis and padel
  • the enclosures may be a part of the playing area of the “court” as used herein.
  • the enclosure may comprise a screen (e.g., a metal mesh wall forming a fence around a platform).
  • the enclosure may comprise walls formed of a transparent or opaque material and walls composed of metal fencing.
  • Directional descriptions may be used herein with respect to a racquet court including “sideways,” referring to direction(s) perpendicular to the court sidelines / sides and parallel to the flat playing surface of the court (e.g., parallel to court baselines and/or backwalls), “lengthwise” referring to direction(s) parallel to court sidelines / sides and parallel to the flat playing surface of the court, and “vertical” referring to directions perpendicular to the court playing surface.
  • the sideways, lengthwise and vertical directions may be perpendicular to one another. Sideways and lengthwise directions may be considered horizontal directions.
  • FIGS. 7, 8 A, 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.
  • FIG. 7 is a flow chart for providing a start rating for a player. The steps of FIG.
  • 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.
  • an evaluation routine may be used to evaluate a single shot type or may be used to evaluate several shot types.
  • 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 thus provide a skill rating requiring the player to return a first shot type with respect to a second shot type launched to the player.
  • Each shot type to be evaluated with the automatic ball machine positioned on the court in a certain area of the court 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.
  • the automatic ball machine may be moved to an appropriate area on the court.
  • 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.
  • step S720 a skill rating of the player for each shot type is determined.
  • other skill ratings of the player that are not associated with a single shot type also may be determined (S730).
  • 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.
  • 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.
  • 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.
  • 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.).
  • 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.
  • 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 FIG. 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.
  • 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.
  • 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.
  • 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.
  • the wheels and frame 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.
  • 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).
  • 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.
  • 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.
  • an evaluation routine of an ith shot-type is initiated.
  • 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.
  • an evaluation routine of one or more shot-types is initiated. In the example of FIG.
  • 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.
  • Each shot may be defined by targeted shot parameters that are derived from initial shot parameters.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • a remote user device e.g., a mobile phone, smart watch, personal computer, tablet, or other mobile 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).
  • 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 types of shots i.e., shot types
  • the evaluation routine of FIG. 8 A may evaluate and provide a corresponding skill rating for a particular shot type (the shot type that should to be returned by the player).
  • one or both of the shot type and shot location may differ between the shots provided by the automatic ball machine.
  • 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).
  • 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.
  • 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.
  • 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.
  • 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.
  • 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).
  • data in storage may define initial shot parameters but may not be the initial shot parameters themselves.
  • 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).
  • 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.
  • 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).
  • 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).
  • 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 the next shot (e.g., 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.
  • 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
  • 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).
  • a ball launched with the launcher settings derived from these targeted shot 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.
  • 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.
  • 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).
  • 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.
  • a difficulty modifier (or a value proportional to the difficulty modifier) may be added or subtracted from the corresponding initial shot parameter.
  • 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.
  • 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.
  • 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%.
  • 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.
  • 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.
  • 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.
  • 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 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).
  • description regarding “baseline target parameters” is provided for better understanding and not to require any particular order of modification of the initial parameters.
  • the controller 110 uses the targeted shot parameters to generate appropriate launcher settings.
  • the launcher settings are applied (e.g., input) to the ball launching system 130 by the controller 110 to control operation of the ball launching system 130, and may include (in the form of digital commands or applied voltages), spinner wheel speeds, ball launcher height, ball launcher angle, ball launcher orientation, etc.
  • 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.
  • 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.
  • 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.
  • the player 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 differ depending on the evaluation routine, the skill of the player being evaluated, and/or the difficulty level most recently determined in S830.
  • a target location or area on the ball machine side of the court is identified indicating where the player should return the ball.
  • 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).
  • 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.
  • several objects with unique identifying indicia 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).
  • unique 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.
  • 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.
  • 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 criterial 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 and the associated with the shot provided by automatic ball machine (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. Thus, as step S850 is repeated, a pass / fail record of the player is updated.
  • the return shot 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.
  • the target location may be on a wall or on the playing surface near a wall.
  • the predetermined area may be on both the playing surface and/or one or more walls.
  • 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).
  • FIG. 10 illustrates an example of a pass / fail record.
  • the skill rating being determined is a forehand drive.
  • 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.
  • 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).
  • 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).
  • 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.
  • success criteria there are four success criteria, denoted as scl, sc2, sc3 and sc4.
  • Success criterion scl 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
  • success criterion sc4 denotes the returned shot net clearance should be no more than distance z. Failure of any of the success criteria scl to sc4 for evaluated shots results in a fail rating of the returned shot.
  • 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).
  • 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.
  • 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. [0055] 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.
  • 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.
  • the player may be first moved to the backcourt with an appropriate dummy shot (e.g., a lob provided to the backcourt).
  • Additional information may be provided with each entry, such as other evaluations (e.g., of player posture, stroke data, etc.) or video to allow further analysis of areas of weakness of the player as identified by the failed shot and/or failed criteria.
  • other evaluations e.g., of player posture, stroke data, etc.
  • video to allow further analysis of areas of weakness of the player as identified by the failed shot and/or failed criteria.
  • step S860 the determination is made whether to continue the evaluation routine based on analysis of the pass / failure record of the player as determined in S850, 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., .5, .7 or .8), it is determined to continue the evaluation routine, otherwise it is determined to end the evaluation routine.
  • a predetermined value e.g.5, .7 or .8
  • 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).
  • 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.
  • 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.
  • 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).
  • 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.
  • the most recent n returned shots of each different shot type e.g., most recent n backhand returns and most recent n forehand returns
  • the evaluation routine may end, otherwise, it may continue.
  • step S830 / S830’ the difficulty level is determined again.
  • 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). 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, 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.
  • 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.
  • the intermediate range may be increased or decreased, respectively, to include new difficulty level.
  • the magnitude of the intermediate range may decrease (shrink) as the evaluation routine continues (e g., shrink with more shots delivered).
  • the evaluation routine of FIG. 8B may evaluate both backhands and forehands, alternately providing backhand shots and forehand shots to the player.
  • the returns of the backhand shots may be associated with a first difficulty level and adjusted and evaluated with respect to backhand skill evaluation
  • returns of the forehand shots may be associated with a second difficulty level and adjusted and evaluated with respect to forehand skill evaluation.
  • 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.
  • an evaluation routine for pickleball may include a sequence of serve, third shot drop, volley, and one or more dinks.
  • 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).
  • 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.
  • 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.
  • 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.
  • 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).
  • 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).
  • a certain level of success e.g., achieved a pass / fail ratio of the previous n shots that meets or exceeds a predetermined value.
  • 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.
  • 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.
  • 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).
  • 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.
  • an evaluation routine may include 5 different segments, with each segment being defined by a different series of shots (each shot of a 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.
  • the five 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 segment to increase (or decrease) the difficulty level.
  • a segment 1 may be defined by initial shot parameters and success criteria having a difficulty level of 1.
  • Difficulty modifiers may be applied to segment 1 to provide 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.
  • 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.
  • 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.
  • segments of different difficulties may be generated by applying difficulty modifiers to segments 2, 3, 4 and 5. Note that the difficulties may be increased and/or decreased by the difficulty modifiers depending on the design.
  • 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 FIG. 8 A and 8B.
  • 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).
  • 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.
  • 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).
  • reference to location, orientation and deviations therefrom 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.).
  • 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.
  • the location and/or orientation of the automatic ball machine 100 is determined by the automatic ball machine 100.
  • the initial shot parameters are adjusted based on the determined location and/or orientation of the automatic ball machine 100 on the court.
  • 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.
  • 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.
  • 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).
  • 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).
  • one or more (or all) of the parameters that define that shot type may remain unchanged or similar (e.g., within 5%) between the initial shot parameter and the corresponding baseline targeted shot parameter.
  • 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).
  • baseline targeted net clearance also remains the same or similar to the initial shot parameter of net clearance.
  • 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
  • the baseline targeted shot spin parameters remain the same as or similar to the corresponding initial shot spin parameters.
  • 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.
  • 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.
  • 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.
  • 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.
  • step S930 difficulty modifiers are applied to the initial shot parameters based on the difficulty level of the shot (e.g., determined in S830).
  • 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.
  • 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).
  • the targeted shot parameters are obtained by applying both the tuning modifiers and the difficulty modifiers in S920 and S930.
  • step S940 launcher settings of the ball launching system 130 are determined by controller 110 based on the thus obtained targeted shot parameters.
  • 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.
  • 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).
  • 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 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).
  • overall start rating e.g., such as an average or weighted average of these skill ratings.
  • 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.
  • 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.
  • 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 • Evaluate player return shot accuracy (e.g., return shot ball net clearance, to instructed location)
  • 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) o Evaluate if the player turns with the ball (rotate body to follow ball as it bounces / ricochets around them) o Evaluate player spacing (e.g., distance between torso and ball, e.g., at racquet contact)
  • 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.
  • Evaluate the player transition between volleys and overheads e.g., time to move between ideal positions for volleys and overheads.
  • Increase difficulty level by providing very deep lobs (e.g., with landing points closer to back wall).
  • 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.
  • 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 the net. Exemplary details of monitoring of a player are set forth in U.S. Application 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.
  • the success criteria may be limited solely to evaluation of the shot returned by the player.
  • 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.
  • 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 No. 19/060,366. Shot Parameters
  • Parameters of a shot may include shot type, launch point, launch speed, launch angle (upward/downward tilt and/or left/right yaw), direction, location, spin, height (which may be net clearance, launch height or peak (maximum) height of the shot), launch interval (time since last shot) and shot trajectory.
  • Shot parameters may refer to initial shot parameters defining a shot (which may be stored shot parameters and/or derived from stored shot parameters), targeted shot parameters, and/or actual shot parameters (with respect to shots launched by the automatic ball machine 100 or with respect to shots returned by a player).
  • the desired resulting parameters of a shot delivered by the automatic ball machine 100 may deviate from the actual resulting parameters based on various factors, including environment (temperature, humidity, rain, wind, etc.), variations in ball characteristics, and variations in ball machine characteristics (e.g., spinner wheel friction, spacing, etc.).
  • Use of the word “target” herein or variations thereof e.g., “targeted shot location” may be used to acknowledge such deviations.
  • 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.
  • 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).
  • 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.
  • Shot spin of the shot refers to the direction and rotational speed of the ball after its launch from the ball machine or return from a player and prior to landing on the other side of the court.
  • Shot spin may be provided as backspin, topspin, sidespin (left and right) and a combination of sidespin with one of backspin and topspin.
  • Trajectory refers to the entire path of the ball in the air after its launch (by the automatic ball machine 100 or the player).
  • Speed refers to the initial speed of the launched ball with respect to the ground or the instantaneous speed of the ball at any point in its trajectory. Speed may be treated as constant throughout the shot to simplify analysis.
  • Ball flight direction refers to the instantaneous 3D direction of the flight of the ball at any point of its trajectory; i.e. the direction of ball velocity at a point in time. The ball flight direction may be described in different ways, such as inclination (the angle with respect to the court playing surface) and horizontal angle (or azimuth) (the angle of the ball flight with respect to a horizontal line on the court surface, such as with respect to a sideline).
  • Velocity refers to the vector quantity consisting of 3D ball flight direction and speed.
  • the launch angle of the shot refers to the ball flight direction at its launching point from the automatic ball machine 100 (or at its launching point from the racquet when the ball is returned from a player).
  • Shot height may refer to the height of the ball at some point in its trajectory and may be launch height, peak height or net clearance.
  • the launch height refers to the height of the ball at its launching point from the automatic ball machine (or return from a player).
  • Peak height refers to the maximum height the ball achieves over the playing surface during the shot (i.e., the maximum or peak height of its trajectory).
  • Net clearance refers to the height of the ball when the ball crosses the net and may be the vertical distance between the ball (e.g., bottom of the ball) and the net (actual or average net height) when the ball crosses the net or may be the vertical distance of the ball from the playing surface when the ball crosses the net.
  • 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).
  • 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.
  • 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).
  • the shot returned by the player e.g., speed and shot type
  • 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.
  • the position of the player may be detected by the automatic ball machine 100 and be used to adjust the timing of the subsequent shot (e.g., adjust the hit to launch interval). For example, a player returning the ball in the backcourt (relatively distant to the net) may result in a relatively longer hit to ball interval, while a player returning the ball relatively near the net may result in a relatively shorter hit to ball interval.
  • a shot type may be defined by a combination of various shot parameters.
  • 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.
  • 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 subcategories of other shot types.
  • 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.
  • the shot type may be defined by the targeted shot parameters (e g., a targeted shot location) that may not actually be achieved with the actual shot (e.g., because the player hits the ball before an initial bounce, the targeted shot location is not achieved, a distance requirement is not met, etc.), and thus the discussed shot parameters should be understood to be applicable to targeted shot parameters and not require the actual shot parameter to be achieved.
  • the shot type serve 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.
  • the shot type serve may also require a launch angle within a certain range (e.g., a launch angle no greater than 25 degrees) and/or a speed that exceeds a predetermined value.
  • the shot type overhead smash may be defined in the same manner as the shot type overhand serve, except that shot location and horizontal angle need not correspond to a service box or a requirement for the serve location).
  • the shot type groundstroke may be a shot having a launch height below a predetermined height (e.g., below 5 feet).
  • a groundstroke may also require a launch angle below a predetermined value (e.g., 25 degrees or less) or net clearance below a predetermined value (e.g. 4 feet or less) or height below a predetermined value (e.g. 7 feet).
  • a groundstroke When returned by a player, a groundstroke may require the ball to bounce on the playing surface. In some examples, when returned by a player, a groundstroke may require the ball to bounce on the playing surface and avoid contact with a backwall.
  • the shot type volley may be a shot having a launch height below a predetermined height (e.g., below 7 feet).
  • a volley may also require a launch angle below a predetermined value (25 degrees or less), a net clearance in a predetermined range (e.g. 0 to 3 feet) ., or a location that is in a specified range to the left or right of the player and at a specified depth (where is defined as perpendicular distance from landing point to the net); e.g. “landing point 3-5 feet to the player’s left at a depth of 10 feet”.
  • the volley shot type may require that the ball is hit by the player “out of the air” before it can bounce on the playing surface or make contact with any other surface. .
  • the shot type drive may be a shot having a net clearance below a corresponding predetermined value (e.g., 3 feet or less).
  • the shot type drive may be further defined (additionally or alternatively require) as a shot that having a launch angle below a corresponding predetermined value (e.g., 25 degrees or less), a speed over a predetermined value and/or a shot location in a specified depth range (e.g. 10 to 20 feet) from the net, where shot depth is defined as the perpendicular distance from the net to the landing point (i.e. an in-bounds shot of maximum depth lands on the baseline opposite the player).
  • a drive may be a type of groundstroke and require the shot parameters defining a groundstroke in addition to one or more of the further parameter constraints noted herein.
  • the shot type lob 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).
  • the shot type cross-court has a targeted location on the half of the court opposite the launch point.
  • the shot type, down-the-line shot has a targeted location on the same half of the court as the launch point.
  • Halves of the court in this context refers to the left or right sides of the court (such halves of the court divided by a horizontal line intersecting the net).
  • the shot type drop shot 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).
  • a predetermined distance e.g., less than 8 feet
  • a predetermined height e.g., less than 5 feet
  • the shot type drop shot may require that the ball speed of the drop shot be lower than a predetermined value. In some examples, the maximum speed for a drop shot may be 50% of the minimum speed of the drive shot type.
  • the shot type dink may be a shot that is has a shot location within a predetermined distance of the net (e.g., 5 feet or less), has a net clearance less than a predetermined value (e.g., less than 3 feet), and a speed less than a predetermined value.
  • a dink may also require a launch height to be less than a predetermined value, such as less than 5 feet, less than the height of the net, or no more than a predetermined distance above the net (e.g., no more than 6 inches or one foot above the net).
  • a dink may require an upward launch angle of at least a predetermined value.
  • a dink may be a type of a drop shot.
  • a backwall return shot type may be defined to have a hit to launch interval that corresponds to the time the returned ball (by the player) would have taken to travel a trajectory that hits the backwall; i.e. the shot is designed to hit the backwall prior to being hit by the player.
  • the backwall return shot type may have a launch location within a predetermined distance from the backwall.
  • a backwall shot type hit by a player may be determined as a launched ball that hits the backwall before the player hits the ball.
  • a sidewall return shot type may be defined to have a hit to launch interval that corresponds to the time the returned ball (by the player) would have taken to travel a trajectory that hits the sidewall; i.e. the shot is designed to hit the sidewall prior to being hit by the player.
  • the sidewall return shot type may have launch location within a predetermined distance from a sidewall.
  • a sidewall shot type hit by a player may be determined as a launched ball that hits a sidewall before the player hits the ball.
  • a double wall rebound shot type may be defined to have a hit to launch interval that corresponds to the time the returned ball (by the player) would have taken to travel a trajectory that hits both the backwall and a sidewall; i.e. the shot is designed to hit both the backwall and sidewall prior to being hit by the player.
  • the double wall rebound shot type may have launch location within a predetermined distance from a sidewall and a predetermined distance from a backwall.
  • a double wall rebound shot type hit by a player may be determined as a launched ball that hits both a backwall and sidewall before the player hits the ball.
  • Additional shot types may be defined as more specific types of the shot types described above.
  • the shot types described above may have subcategories of specific spin shot types, backhand shot types, forehand shot types, cross-court shot types, and/or down-the-line shot types.
  • Subcategories of specific spin shot types may be subcategories of a broader shot type that are defined with one or more spin shot parameters, which may be backspin, topspin and/or sidespin parameters.
  • more specific shot types of the shot type groundstroke may include a backspin groundstroke, a topspin groundstroke, a sidespin groundstroke and a flat groundstroke.
  • 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).
  • the shot type topspin groundstroke may be a groundstroke shot type that also has a predetermined amount of topspin or more (e.g., 5 rps or more of topspin).
  • Topspin may refer to the rotational component of the ball along the direction of the shot (the path or trajectory), with the bottom of the ball moving in the direction of the shot (the horizontal rotational component of the ball perpendicular to the direction of the shot may be attributed to sidespin and not be considered part of topspin).
  • the shot type flat groundstroke may be a groundstroke shot type that does not exceed a predetermined amount of spin (total or a corresponding limit of spin for each spin type of backspin, topspin , and/or sidespin).
  • a flat groundstroke may have spin limited to be within a predetermined range that encompasses zero spin.
  • a flat groundstroke may have spin (including zero spin) that does not exceed 5 rps (either of topspin, backspin or sidespin), or, for example, that has a spin from -5 rps to 5 rps of topspin, or -3 rps to 7 rps of topspin and no more than 5 rps sidespin). It should be appreciated that reference to negative value of topspin is equivalent to that value of backspin, and vice versa (i.e., reference to a negative value of backspin is equivalent to that value of topspin).
  • the shot type sidespin groundstroke may be a groundstroke shot type that also has a predetermined amount of sidespin or more (e.g., 3 rps or more).
  • Sidespin may be the rotational component of the ball in the horizontal direction perpendicular to the direction (trajectory or path) of the shot.
  • Sidespin may be the spin of the ball that is not attributable to topspin or backspin.
  • 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.
  • the spin parameter ranges defining these more specific spin shot types may differ from each other.
  • the minimum topspin defining a topspin groundstroke may be different from the minimum topspin defining a topspin lob.
  • Subcategory shot types may also include backhands and forehands of other shot types.
  • a forehand shot type may be a shot launched to the side of the player corresponding to the player’s dominant hand (when the player is facing the automatic ball machine).
  • a backhand of a shot type may be a shot launched to the side of a player corresponding to the player’s non-dominant hand side (when the player is facing the automatic ball machine 100). For example, a ball launched to a location anywhere to the left of a line extending from the automatic ball machine 100 and through the player would be a forehand for a right hand dominant (or right handed) player and a backhand for a left hand dominant (or left handed) player.
  • the automatic ball machine 100 may automatically determine the dominant hand of a player by determining (through image analysis) the hand of the player that holds the racquet and/or the hand of the player that holds the racquet while hitting the ball (e.g., returning the ball).
  • the non-dominant hand side of the player may be determined as the side of the player that is opposite to the dominant hand side of the player.
  • 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).
  • 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.
  • shot types of forehand serve 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.).
  • 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).
  • 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.
  • a shot type of forehand may be provided that represents any shot qualifying as at least one of a forehand drive, a forehand lob, a forehand dink, etc.
  • Additional shot parameters such as velocity, magnitude of spin, orientation of spin, height, launch angle, location (e.g., landing point on the court), height, trajectory, etc. may be used to further define each of the above noted shot types as well as other shot types.
  • 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.
  • shot parameters may be represented in many forms and be described relative to different elements.
  • 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.
  • 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.
  • the controller 110 of the automatic ball machine 100 is configured to calibrate operation of the ball launching system 130 to more accurately generate a shot with the desired shot parameters.
  • Such calibration may be part of a calibration routine in which the automatic ball machine launches a sequence of balls with targeted shot parameters, determines actual shot parameters (via analysis of images obtained from the imaging system 122) and adjusts control of the ball launching system 130 to address deviation (e.g., deviation larger than a corresponding predetermined value) between the targeted shot parameters and the determined actual shot parameters.
  • 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.
  • 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.).
  • speed, shot peak height e.g., peak height and/or net clearance
  • 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.
  • shot location of the shots provided by the automatic ball machine 100 is accurately achieved.
  • 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.
  • controller 110 may adjust control of the ball launching system, such as adjusting speed of the launched ball (e.g., by adjusting speed of the spinner wheels), peak height (and/or net clearance) (by adjusting launch height and/or launch trajectory, and/or spin (adding or reducing topspin or backspin). Similar adjustments may be made for other shot parameters including those discussed herein. Such adjustments may be made as part of determining appropriate launcher settings from the targeted shot parameters, and/or be made to neutral point settings of the ball launching system 130.
  • the launching of subsequent shots by the ball launching system 130 may use the optimal launching settings, which may include determining launching settings from targeted shot parameters via interpolation and/or extrapolation of the optimal launch settings associated with the calibrated shots to provide shots with shot parameters intermediate to or extended from those associated with the shots launched during calibration. It should be appreciated that such interpolation and/or extrapolation may be linear, polynomial, or other type of interpolation / extrapolation.
  • 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.”
  • 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.
  • the automatic ball machine 100 may analyze images of the ball after it bounces, determine a trajectory of the ball and extrapolate the trajectory (backwards in time and flight direction) to determine the landing point.
  • Such modeling of the return flight of the ball may use a physical model of the ball (i.e., a computer model of the physical characteristics of the ball), environmental conditions (e.g., air temperature, air pressure, humidity, etc.), and the known geography of the court as detailed in the ’345 application. Accordingly, in such an embodiment, the automatic ball machine 100 may capture the return ball flight data using the imaging system 120 in combination with the physical model.
  • the physical model of the ball may include parameters, such as friction coefficients, density, weight, coefficient of drag, material, wear, etc., corresponding to the ball.
  • the automatic ball machine 100 may also utilize a physical model of the court (i.e., a computer model of the physical characteristics of the court) in determining the position, velocity, and acceleration of the ball with respect to the court subsequent to the landing point of the ball on the court.
  • the physical model of the court may not only include elements of the court and their locations and size, but also parameters describing the physical characteristics of the court (e.g., a friction coefficient, elasticity, and hardness of the playing surface, a friction coefficient, elasticity, and hardness of an enclosure surrounding the playing surface, etc.).
  • Such modeling described herein may be used for both ball tracking as well as for determining launch settings to provide targeted shots more accurately.
  • the person detection, person identification, person tracking, and pose detection procedures detailed in the ’ 167 application may be continuously performed by the automatic ball machine 100 during the 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.
  • 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.
  • 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 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.
  • 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 .2 and 2 seconds.
  • 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.
  • 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.
  • a drive e.g., an overhead drive, a forehand drive, a backhand drive
  • a volley e.g., a forehand volley, a back
  • 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.
  • 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.
  • 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.
  • each set of videos may correspond to an individual racquet sport, such as tennis, platform tennis court, padel, pickleball, POP tennis, etc.
  • the generated stored stroke data and stored ball flight data may be racquet sport specific.
  • 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.
  • 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.
  • 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.
  • 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
  • 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
  • the International POP tennis Association e.g., Court and Equipment Guide
  • 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.
  • 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.
  • the automatic ball machine 100 may utilize stored stroke data and stored ball flight data corresponding to tennis.
  • the comparison of the captured stroke data to stroke data stored in memory, and the comparison of the captured return ball flight data to ball flight data stored in memory may be used separately or in conjunction to identify the shot type hit by the user and/or evaluate the same.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the automatic ball machine 100 may utilize the second comparison to further identify the shot type hit by the user.
  • 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.
  • 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.
  • 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.
  • the general-purpose computer 1000 is one example of the controller 110 described herein.
  • the general -purpose computer 1000 is also representative of other computers with which the controller 110 may communicate through a network 1900 (which may be network 400 in FIG. 9). As such, it will be described with the understanding that variations may be made thereto.
  • the exemplary general -purpose computer 1000 may include, but is not limited to, one or more processors, such as one or more graphics processing units (GPUs) 1100 and/ or one or more central processing units (CPUs) 1200.
  • GPUs graphics processing units
  • CPUs central processing units
  • 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.
  • ROM Read Only Memory
  • BIOS Basic Input/Output System
  • RAM Random Access Memory
  • 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.
  • 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.
  • some or all of the system bus 1210 may be communicational pathways within a single chip or package.
  • the general-purpose computer 1000 may include computer readable medias such as RAM, ROM, EEPROM, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, memory cards, solid state devices, digital video tape, DRAM, NAND, resistive RAM (e.g., RRAM, MRAM, PRAM) or any other medium which may be used to store the desired information which may be accessed by the general-purpose computer 1000.
  • FIG. l 1 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 generalpurpose computer 1000.
  • the general-purpose computer 1000 may operate in a networked environment via logical connections to one or more remote computers.
  • the logical connection depicted in FIG. 11 is a general network connection 1710 to the network 1900, which may be a local area network (LAN), a wide area network (WAN), the Internet, or other networks.
  • the computer 1000 is connected to the general network connection 1710 through a network interface or adapter 1700 that is, in turn, connected to the system bus 1210.
  • 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. I la, ac, b, g, n, or the like) or through wired (Ethernet, or the like) connections, or through other more generic network connections.
  • wireless protocols Bluetooth, 802. I la, ac, b, g, n, or the like
  • wired Ethernet, or the like
  • a cellular link may be provided (i.e., GSM, CDMA or other, utilizing 2G, 3G, 4G, and/or 5G data structures and the like).
  • the network interface 1700 is not limited to any particular protocol or type of communication.
  • the general-purpose computer 1000 may also include a user interface (such as described elsewhere herein) and wireless communication circuitry (to allow wireless communication with the general -purpose computer 1000.
  • a user interface such as described elsewhere herein
  • wireless communication circuitry to allow wireless communication with the general -purpose computer 1000.
  • the player may communicate with the automatic ball machine 100 remotely, with the ability to change functionality.
  • start rating generation may also be applicable to tennis and other racquet sports (table tennis, e.g.).

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Pinball Game Machines (AREA)

Abstract

A ball machine provides a sequence of shots to a player on a racquet court, 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, such as location, speed, height. 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, which repeats until the player is no longer successfully able to consistently return shots that meet the success criteria. At this time, the evaluation routine may be terminated, the player's skill level is assessed.

Description

BALL MACHINE FOR PROVIDING PLAYER RATINGS FOR RACQUET SPORTS AND
RELATED METHODS
RELATED APPLICATIONS
[0001] This application filed is a non-provisional of U.S. Provisional Application No. 63/632,509 filed 4/10/2024, the entire contents of which are hereby incorporated by reference. This application is a continuation-in-part of U.S. Application No. 19/060,366, filed 2/21/2025, the entire contents of which are hereby incorporated by reference. This application relates to U.S. Patent Application No. 18/083,203 filed December 16, 2022, U.S. Patent Application No.
18/097,345, filed on January 16, 2023, U.S. Patent Application No. 18/198,167, filed on May 16, 2023, and U.S. Patent No. 18/512,451, filed November 17, 2023, the entire content of each of these applications being incorporated by reference herein.
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 important 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 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
[0001] 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.
[0002] FIG. 1 illustrates an isometric front view of an automatic ball machine in a lowered position according to example embodiments;
[0003] FIG. 2 illustrates a front view of the automatic ball machine in a lowered position according to example embodiments;
[0004] FIG. 3 illustrates an isometric rear view of the automatic ball machine in a lowered position according to example embodiments;
[0005] FIG. 4 illustrates an isometric front view of the automatic ball machine in a raised position according to example embodiments;
[0006] FIG. 5 illustrates a front view of the automatic ball machine in a raised position according to example embodiments;
[0007] FIG. 6 illustrates an isometric rear view of the automatic ball machine in a raised position according to example embodiments;
[0008] FIG. 7 is a flow chart for providing a start rating for a player; [0009] FIGS. 8A and 8B illustrate a flowcharts setting forth exemplary steps of executing an evaluation routine of a player;
[0010] FIG. 9 illustrates a method of launching a ball based upon determined location and/or orientation of an automatic ball machine;
[0011] FIG. 10 illustrates an example of a pass / fail record; and
[0012] FIG. 11 illustrates an example general-purpose computer for use with the automatic ball machine according to example embodiments.
DETAILED DESCRIPTION
[0012] The present disclosure now will be described more fully hereinafter with reference to the accompanying drawings, in which various embodiments are shown. The invention may, however, be embodied in many different forms and should not be construed as limited to the example embodiments set forth herein. These example embodiments are just that - examples - and many implementations and variations are possible that do not require the details provided herein. It should also be emphasized that the disclosure provides details of alternative examples, but such listing of alternatives is not exhaustive. Furthermore, any consistency of detail between various examples should not be interpreted as requiring such detail - it is impracticable to list every possible variation for every feature described herein. The language of the claims should be referenced in determining the requirements of the invention.
[0013] 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).
[0014] 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 number 18/097,345 (“the ’345 application") filed on January 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.
[0015] 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.
[0016] 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 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 comers of the court behind the ball machine on the side of the court on which the automatic ball machine 100 is placed).
[0017] 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.
[0018] 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., comers 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).
[0019] 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.
[0020] 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.
[0021] 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.
[0022] FIGS. 7, 8 A, 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. [0023] 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 thus provide a skill rating requiring the player to return a first shot type with respect to a second shot type launched to the player.
[0024] 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.
[0025] 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. [0026] 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.
[0027] 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.
[0028] 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 FIG. 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.
[0029] 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).
[0030] At step S810 and S81 O’, 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.
[0031] In S810 of FIG. 8A, an evaluation routine of an ith shot-type is initiated. In the example of FIG. 8 A, 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. [0032] 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.
[0033] 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.
[0034] 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). [0035] 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. 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. 8 A 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).
[0036] 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.
[0037] 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.
[0038] 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).
[0039] 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 the next shot (e.g., 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.
[0040] 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).
[0041] [0042] 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.
[0043] 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. [0044] 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.
[0045] 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.
[0046] 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 differ depending on the evaluation routine, the skill of the player being evaluated, and/or the difficulty level most recently determined in S830.
[0047] 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 is identified indicating where the player should return the ball. 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 example, several objects with unique identifying indicia (e.g., different colors, shapes or markings) may be provided on the court and the ball machine may identify the location by communicating the unique identifying indicia (e.g., by broadcasting “red” or “one” (or displaying a red color or “red” or “1”) to respectively denote a red pad or a pad having the label of “1” on it). In some examples, 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.
[0048] 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 criterial 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 and the associated with the shot provided by automatic ball machine (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. Thus, as step S850 is repeated, a pass / fail record of the player is updated.
[0049] 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.
[0050] 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 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).
[0051] 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).
[0052] 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 scl, sc2, sc3 and sc4. Success criterion scl 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 scl 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).
[0053] 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.
[0054] 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. [0055] 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).
[0056] Additional information may be provided with each entry, such as other evaluations (e.g., of player posture, stroke data, etc.) or video to allow further analysis of areas of weakness of the player as identified by the failed shot and/or failed criteria.
[0057] In step S860, the determination is made whether to continue the evaluation routine based on analysis of the pass / failure record of the player as determined in S850, 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., .5, .7 or .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).
[0058] 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.
[0059] 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). 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, 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.
[0060] 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, to include 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).
[0061] 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. [0062] 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] 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.
[0067] 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 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. In this example, the five 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 segment to increase (or decrease) the difficulty level. For example, a segment 1 may be defined by initial shot parameters and success criteria having a difficulty level of 1. Difficulty modifiers may be applied to segment 1 to provide 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 segments 2, 3, 4 and 5. Note that the difficulties may be increased and/or decreased by the difficulty modifiers depending on the design.
Shot Parameter Constraints and Adjustment
[0068] 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 FIG. 8 A 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).
[0069] 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.
[0070] 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).
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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.
[0075] 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 [0076] 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.
Serve Return Evaluation Routine (automatic ball machine 100 provides serves as shot type):
• 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).
• 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 in bounds (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).
• 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.
• 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).
• 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).
• 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).
• 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).
• Increase difficulty level by increasing speed of serve. For example, provide fast serves to the player hard off the middle glass or wall.
Backcourt Evaluation Routine (automatic ball machine 100 may be relatively close to the net to replicate volley shot type):
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 • Evaluate player return shot accuracy (e.g., return shot ball net clearance, to instructed location)
• Evaluate player ability to return shots off side wall / glass (may be same as in Serve Return Evaluation)
• Evaluate player ability to return shots of back wall / glass (may be same as in Serve Return Evaluation)
• 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) o Evaluate if the player turns with the ball (rotate body to follow ball as it bounces / ricochets around them) o Evaluate player spacing (e.g., distance between torso and ball, e.g., at racquet contact)
• 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. o Evaluate if the player turns with the ball (rotate body to follow ball as it bounces / ricochets around them) o Evaluate player spacing (e.g., distance between torso and ball, e.g., at racquet contact)
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.
• Increase difficulty by increasing variance between sequential shots (e.g., slower short shot followed by hard deep shot).
• 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).
• 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
• Evaluate player return shot accuracy (e.g., to instructed location)
• Increase difficulty level by speeding up volleys (e.g., reducing launch interval).
• 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).
• Evaluate player’ s ability to hit overheads / lobs. o 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)
Evaluate the player transition between volleys and overheads (e.g., time to move between ideal positions for volleys and overheads). Increase difficulty level by providing very deep lobs (e.g., with landing points closer to back wall).
Evaluation of returned shots
[0077] 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. 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 the net. Exemplary details of monitoring of a player are set forth in U.S. Application 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.
[0078] 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 No. 19/060,366. Shot Parameters
[0079] 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.
[0080] 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.
[0081] 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.
[0082] 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.
[0083] 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.
[0084] 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.
[0085] 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 subcategories of other shot types.
[0086] The following provide exemplary shot types and exemplary shot parameters that may be used to define and determine the shot type. Unless the context indicates otherwise, each of the shot parameters discussed herein with respect to a particular shot type should be understood to be in addition to or alternative to the other shot parameters discussed with respect to that shot type. It also should be appreciated that the shot type may be defined by the targeted shot parameters (e g., a targeted shot location) that may not actually be achieved with the actual shot (e.g., because the player hits the ball before an initial bounce, the targeted shot location is not achieved, a distance requirement is not met, etc.), and thus the discussed shot parameters should be understood to be applicable to targeted shot parameters and not require the actual shot parameter to be achieved.
• The shot type serve, for example, may be defined to have a launch height above a predetermined value (i.e. overhand) or below a predetermined value (underhand), having a shot location in (or within a predetermined distance of) a service box (or other rules requirement for the location of serves) on the opposite side of the net and/or having a trajectory with horizontal angle within a certain range that results in a cross-court shot. In addition to one or more of these parameter constrictions, the shot type serve may also require a launch angle within a certain range (e.g., a launch angle no greater than 25 degrees) and/or a speed that exceeds a predetermined value. The shot type overhead smash may be defined in the same manner as the shot type overhand serve, except that shot location and horizontal angle need not correspond to a service box or a requirement for the serve location).
• The shot type groundstroke may be a shot having a launch height below a predetermined height (e.g., below 5 feet). A groundstroke may also require a launch angle below a predetermined value (e g., 25 degrees or less) or net clearance below a predetermined value (e.g. 4 feet or less) or height below a predetermined value (e.g. 7 feet). When returned by a player, a groundstroke may require the ball to bounce on the playing surface. In some examples, when returned by a player, a groundstroke may require the ball to bounce on the playing surface and avoid contact with a backwall.
• The shot type volley may be a shot having a launch height below a predetermined height (e.g., below 7 feet). A volley may also require a launch angle below a predetermined value (25 degrees or less), a net clearance in a predetermined range (e.g. 0 to 3 feet) ., or a location that is in a specified range to the left or right of the player and at a specified depth (where is defined as perpendicular distance from landing point to the net); e.g. “landing point 3-5 feet to the player’s left at a depth of 10 feet”. When returned by a player, the volley shot type may require that the ball is hit by the player “out of the air” before it can bounce on the playing surface or make contact with any other surface. .
• The shot type drive, for example, may be a shot having a net clearance below a corresponding predetermined value (e.g., 3 feet or less). The shot type drive may be further defined (additionally or alternatively require) as a shot that having a launch angle below a corresponding predetermined value (e.g., 25 degrees or less), a speed over a predetermined value and/or a shot location in a specified depth range (e.g. 10 to 20 feet) from the net, where shot depth is defined as the perpendicular distance from the net to the landing point (i.e. an in-bounds shot of maximum depth lands on the baseline opposite the player). A drive may be a type of groundstroke and require the shot parameters defining a groundstroke in addition to one or more of the further parameter constraints noted herein.
• The shot type lob, for example, is a shot that is launched high in the air and may be defined as a shot having a peak height (highest trajectory point) above a corresponding predetermined value (e.g., 10 feet or more, or 12 feet or more). The shot type lob may also require a shot location (a targeted shot location that may result in the ball contacting the playing area or may not contact the playing area when the player is able to hit the lob before the ball contacts the playing area) within a corresponding predetermined distance of the back locations of the playing area (e.g., within 5 feet of the baseline or back wall in the playing area on the opposite side of the court) and/or require a shot location behind the player or behind the player by a predetermined distance. The shot type lob may be further defined as a shot that also has an upward (tilt) launch angle greater than a corresponding predetermined value (e.g., greater than 40 degrees).
• The shot type cross-court has a targeted location on the half of the court opposite the launch point. The shot type, down-the-line shot has a targeted location on the same half of the court as the launch point. Halves of the court in this context refers to the left or right sides of the court (such halves of the court divided by a horizontal line intersecting the net).
• The shot type drop shot, for example, is a shot that is launched such that it lands across and in close proximity to the net (e.g., having a “shallow” shot location within a predetermined perpendicular horizontal distance to the net (e.g., in the playing area) on the opposite side of the court, such as within 7 feet or less from the net). The shot type drop shot may be further defined as a shot that also has backspin and/or topspin no greater than and/or no less than a predetermined value, and/or having a launch angle within a corresponding predetermined range. The shot type drop shot may require that the ball, after it initially bounces on the playing area, would travel less than a predetermined distance (e.g., less than 8 feet) and/or travel no higher than a predetermined height (e.g., less than 5 feet) before the ball contacts the court again (i.e., for its second bounce). Note, that the ball need not be required to obtain a second bounce (or even an initial bounce) to qualify as a drop shot (i.e., a targeted drop shot may be launched and the player may hit the ball before the initial or before the second bounce). The shot type drop shot may require that the ball speed of the drop shot be lower than a predetermined value. In some examples, the maximum speed for a drop shot may be 50% of the minimum speed of the drive shot type.
• The shot type dink may be a shot that is has a shot location within a predetermined distance of the net (e.g., 5 feet or less), has a net clearance less than a predetermined value (e.g., less than 3 feet), and a speed less than a predetermined value. A dink may also require a launch height to be less than a predetermined value, such as less than 5 feet, less than the height of the net, or no more than a predetermined distance above the net (e.g., no more than 6 inches or one foot above the net). A dink may require an upward launch angle of at least a predetermined value. In some examples, a dink may be a type of a drop shot.
• A backwall return shot type may be defined to have a hit to launch interval that corresponds to the time the returned ball (by the player) would have taken to travel a trajectory that hits the backwall; i.e. the shot is designed to hit the backwall prior to being hit by the player. The backwall return shot type may have a launch location within a predetermined distance from the backwall. A backwall shot type hit by a player may be determined as a launched ball that hits the backwall before the player hits the ball.
• A sidewall return shot type may be defined to have a hit to launch interval that corresponds to the time the returned ball (by the player) would have taken to travel a trajectory that hits the sidewall; i.e. the shot is designed to hit the sidewall prior to being hit by the player. The sidewall return shot type may have launch location within a predetermined distance from a sidewall. A sidewall shot type hit by a player may be determined as a launched ball that hits a sidewall before the player hits the ball.
• A double wall rebound shot type may be defined to have a hit to launch interval that corresponds to the time the returned ball (by the player) would have taken to travel a trajectory that hits both the backwall and a sidewall; i.e. the shot is designed to hit both the backwall and sidewall prior to being hit by the player. The double wall rebound shot type may have launch location within a predetermined distance from a sidewall and a predetermined distance from a backwall. A double wall rebound shot type hit by a player may be determined as a launched ball that hits both a backwall and sidewall before the player hits the ball.
[0087] 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.
[0088] Subcategories of specific spin shot types may be subcategories of a broader shot type that are defined with one or more spin shot parameters, which may be backspin, topspin and/or sidespin parameters. As one example, more specific shot types of the shot type groundstroke may include a backspin groundstroke, a topspin groundstroke, a sidespin groundstroke and a flat groundstroke. For example:
• The shot type backspin groundstroke may be a groundstroke shot type (i.e., having 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).
• The shot type topspin groundstroke may be a groundstroke shot type that also has a predetermined amount of topspin or more (e.g., 5 rps or more of topspin). Topspin may refer to the rotational component of the ball along the direction of the shot (the path or trajectory), with the bottom of the ball moving in the direction of the shot (the horizontal rotational component of the ball perpendicular to the direction of the shot may be attributed to sidespin and not be considered part of topspin).
• The shot type flat groundstroke may be a groundstroke shot type that does not exceed a predetermined amount of spin (total or a corresponding limit of spin for each spin type of backspin, topspin , and/or sidespin). For example, a flat groundstroke may have spin limited to be within a predetermined range that encompasses zero spin. For example, a flat groundstroke may have spin (including zero spin) that does not exceed 5 rps (either of topspin, backspin or sidespin), or, for example, that has a spin from -5 rps to 5 rps of topspin, or -3 rps to 7 rps of topspin and no more than 5 rps sidespin). It should be appreciated that reference to negative value of topspin is equivalent to that value of backspin, and vice versa (i.e., reference to a negative value of backspin is equivalent to that value of topspin).
• The shot type sidespin groundstroke may be a groundstroke shot type that also has a predetermined amount of sidespin or more (e.g., 3 rps or more). Sidespin may be the rotational component of the ball in the horizontal direction perpendicular to the direction (trajectory or path) of the shot. Sidespin may be the spin of the ball that is not attributable to topspin or backspin.
[0089] 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.
[0090] 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).
[0091] 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.).
[0092] 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. [0093] 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.
[0094] 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
[0095] In some embodiments, the controller 110 of the automatic ball machine 100 is configured to calibrate operation of the ball launching system 130 to more accurately generate a shot with the desired shot parameters. Such calibration may be part of a calibration routine in which the automatic ball machine launches a sequence of balls with targeted shot parameters, determines actual shot parameters (via analysis of images obtained from the imaging system 122) and adjusts control of the ball launching system 130 to address deviation (e.g., deviation larger than a corresponding predetermined value) between the targeted shot parameters and the determined actual shot parameters. For example, the calibration routine may launch several balls with the same targeted shot parameters, preferably to a targeted shot location one that is viewable by the imaging system 120 and easily identifiable by the automatic ball machine, such as a where two lines on the court intersect (e.g., a target location where the baseline intersects with a sideline, a corner of the service box, a target location where walls (screens) intersect, or a target location where walls (screens) meet the playing area). Images obtained by the imaging system 120 may be analyzed by the controller to determine actual parameters of the shots, such as shot location, speed, peak height, net clearance, shot spin, etc., and the controller 110 may adjust control of the ball launching system 130 to reduce and/or substantially eliminate deviations from the targeted shot parameters and the determined actual parameters for subsequent launches.
[0096] 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. [0097] 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.
[0098] 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
[0099] 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
[00100] 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.
[00101] 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 .2 and 2 seconds.
[00102] 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.
[00103] 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.
[00104] 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.
[00105] 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.
[00106] 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. [00107] 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
[00108] 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. [00109] 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.
[00110] 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. l 1 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 generalpurpose computer 1000.
[00111] 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. I la, 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.
[00112] 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. [00113] 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, the method being performed by an automatic ball machine on a first side of a court to a player on a second side of the court, the method comprising: 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; and determining the player rating based on the plurality of shot type skill ratings, wherein executing a first evaluation routine of the plurality of 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 one or more difficulty modifiers derived from the current difficulty level to one or more of the initial shot parameters of the shot;
(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 skill rating for at least one shot type associated with the evaluation routine based on the pass/fail record.
2. The method of claim 1, further comprising determining the location and orientation of the automatic ball machine on the court, wherein step (i) further comprises applying one or more tuning modifiers derived from the determined location and orientation of the automatic ball machine to the one or more of the initial shot parameters of the shot.
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 when a ratio of passes to fails 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 a ratio of passes to fails 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 court.
8. The method of claim 8, wherein step (d) comprises increasing the difficulty level resulting in decreasing the size of the identified area on the first side of the court.
9. The method of claim 1, wherein the success criteria comprises one or more of a 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 and a minimum spin.
10. The method claim 9, wherein the automatic ball machine communicates success criteria to the player.
11. The method 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.
12. 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; and a 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, the controller configured to execute an evaluation routine by:
(a) obtaining a first difficulty level from the memory as an initial difficulty level;
(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 one or more difficulty modifiers derived from the current difficulty level to one or more of the initial shot parameters of the shot;
(ii) launching a ball to the player with a launcher of the automatic ball machine according to the target shot parameters obtained in operation (i);
(iii) analyzing images received from the camera to monitor a returned shot by the player of the ball launched by the launcher, to determine if the returned shot meets success criteria associated with the shot, and provide 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 operation (iii) as part of a pass / fail record of the evaluation routine in the memory;
(d) updating the current difficulty level based upon the pass / fail record;
(e) repeating operations (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 skill rating for at least one shot type associated with the evaluation routine based on the pass/fail record.
13. The automatic ball machine of claim 12, wherein the controller is configured to determine the location and orientation of the automatic ball machine on the court by analyzing images received from the camera, and wherein the controller is configured to applying one or more tuning modifiers derived from the determined location and orientation of the automatic ball machine to the one or more of the initial shot parameters of the shot.
14. The automatic ball machine of claim 12, wherein the controller is configured to increase the difficulty level when a ratio of passes to fails of the most recent m shots exceeds a first predetermined value, where m is a plural integer.
15. The automatic ball machine of claim 12, wherein the controller is configured to repeat steps (c) and (d) in response to the pass/fail record having a ratio of passes to fails of the most recent n shots that exceeds a second predetermined value, where n is a plural integer greater than m.
16. The automatic ball machine of claim 12, wherein the controller is configured to apply difficulty modifiers in response to an increase in the difficulty level that increase at least one of speed and spin of a subsequent shot launched in operation (ii).
17. The automatic ball machine of claim 12, wherein the success criteria comprises the returned shot landing within an identified area on the court.
18. The method of claim 12, wherein the success criteria comprises one or more of a 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 and a minimum spin.
19. The method claim 12, wherein the automatic ball machine further comprise at least one of a display or speaker configured to communicate success criteria to the player.
20. The method claim 12, 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.
PCT/US2025/024173 2024-04-10 2025-04-10 Ball machine for providing player ratings for racquet sports and related methods Pending WO2025217465A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202463632509P 2024-04-10 2024-04-10
US63/632,509 2024-04-10
US19/060,366 US20250186857A1 (en) 2021-12-17 2025-02-21 Automatic ball machine for racquet sport gamification, system and related methods
US19/060,366 2025-02-21

Publications (1)

Publication Number Publication Date
WO2025217465A1 true WO2025217465A1 (en) 2025-10-16

Family

ID=97350384

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2025/024173 Pending WO2025217465A1 (en) 2024-04-10 2025-04-10 Ball machine for providing player ratings for racquet sports and related methods

Country Status (1)

Country Link
WO (1) WO2025217465A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210379446A1 (en) * 2019-11-10 2021-12-09 Volley LLC Automatic ball machine apparatus
US20220184497A1 (en) * 2020-12-11 2022-06-16 Nintendo Co., Ltd. Storage medium, game apparatus and game control method
US20230123704A1 (en) * 2018-12-21 2023-04-20 SurfaSense LLC Adaptive tennis ball machine
US20230196770A1 (en) * 2021-12-17 2023-06-22 Huupe Inc. Performance interactive system
US20230218969A1 (en) * 2021-12-17 2023-07-13 Volley LLC Ball machine apparatus gamification

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230123704A1 (en) * 2018-12-21 2023-04-20 SurfaSense LLC Adaptive tennis ball machine
US20210379446A1 (en) * 2019-11-10 2021-12-09 Volley LLC Automatic ball machine apparatus
US20220184497A1 (en) * 2020-12-11 2022-06-16 Nintendo Co., Ltd. Storage medium, game apparatus and game control method
US20230196770A1 (en) * 2021-12-17 2023-06-22 Huupe Inc. Performance interactive system
US20230218969A1 (en) * 2021-12-17 2023-07-13 Volley LLC Ball machine apparatus gamification

Similar Documents

Publication Publication Date Title
KR102807799B1 (en) System and method for tracking sports balls
US12033332B2 (en) Systems and methods for evaluating performance of players at sporting events using trajectory predictions
US10684677B2 (en) Mixed-reality golf tracking and simulation
US10010778B2 (en) Systems and methods for tracking dribbling and passing performance in sporting environments
US9886624B1 (en) Systems and methods for tracking dribbling in sporting environments
US9358455B2 (en) Method and apparatus for video game simulations using motion capture
CN103079653B (en) Virtual golf simulation device and method
JP5835784B2 (en) Virtual golf driving range simulation apparatus and method
EP3768398B1 (en) System and method for optimizing a sports ball launch
KR102344429B1 (en) Two-environment game play system
CN103476468A (en) Apparatus and method for virtual golf driving range simulation
KR101937720B1 (en) Virtual golf system
KR101078986B1 (en) Virtual golf simulation apparatus and method
US20250205570A1 (en) Golf club fittign system and method
US20250161779A1 (en) Automatic ball machine apparatus utilizing shot identification and analysis
US20250319382A1 (en) Ball machine for providing player ratings for racquet sports and related methods
WO2025217465A1 (en) Ball machine for providing player ratings for racquet sports and related methods
US20250186857A1 (en) Automatic ball machine for racquet sport gamification, system and related methods
KR101878100B1 (en) Virtual golf system
TWI860689B (en) Method, system, and non-transitory computer-readable recording medium for providing shot information on golf balls

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25787283

Country of ref document: EP

Kind code of ref document: A1