Basketball training system
12508485 ยท 2025-12-30
Assignee
Inventors
- Adam T. Pan (Elko New Market, MN, US)
- Douglas Brad Campbell (Loretto, MN, US)
- Kevin Knutson (Bloomington, MN, US)
- Eric Drommerhausen (Bloomington, MN, US)
- Justin Royer (Maricopa, AZ, US)
Cpc classification
A63B2071/065
HUMAN NECESSITIES
A63B71/03
HUMAN NECESSITIES
A63B2024/0068
HUMAN NECESSITIES
A63B24/0062
HUMAN NECESSITIES
A63B2024/0081
HUMAN NECESSITIES
A63B71/0605
HUMAN NECESSITIES
International classification
A63B69/00
HUMAN NECESSITIES
A63B24/00
HUMAN NECESSITIES
A63B69/40
HUMAN NECESSITIES
Abstract
A basketball training system can include a basketball training machine and additional features such as a user interface, a controller, and programming for using the basketball training machine.
Claims
1. A computer-implemented method comprising: obtaining, by one or more radar sensors that are associated with a basketball delivery machine, radar sensor data indicating one or more parameters of a player's movement while the player is performing a drill using the basketball delivery machine, the radar sensor data indicating one or more impacts of a basketball on a rim before the basketball passes through the rim; obtaining, by a basketball delivery machine, predefined ball delivery location data or predefined shot location data that is associated with the drill that is performed using the basketball delivery machine; analyzing, by the basketball delivery machine, (i) the predefined ball delivery location data or the predefined shot location data that is associated with the drill that is performed using the basketball delivery machine, and (ii) the radar sensor data indicating the one or more parameters of the player's movement while the player is performing the drill using the basketball delivery machine; generating, by the basketball delivery machine and based at least on analyzing both (i) the predefined ball delivery location data or the predefined shot location data that is associated with the drill that is performed using the basketball delivery machine, and (ii) the radar sensor data indicating the one or more parameters of the player's movement, feedback data that compares the player's movement to an idealized movement; and providing, by the basketball delivery machine, a representation of the feedback data for output to the player, the feedback data comprising a wire-frame representation of waypoints that are associated with an idealized shooting form.
2. The method of claim 1, comprising: obtaining, by one or more cameras of the basketball delivery machine, image data indicating the one or more parameters of the player's movement while the player is performing the drill using the basketball delivery machine, the image data also indicating one or more of the impacts of the basketball on the rim before the basketball passes through the rim; and analyzing, by the basketball delivery machine, the image data indicating the one or more parameters of the player's movement while the player is performing the drill using the basketball delivery machine, wherein the feedback data is generated based at least on analyzing the radar sensor data and analyzing the image data.
3. The method of claim 1, comprising: obtaining, by one or more LIDAR sensors of the basketball delivery machine, LIDAR data indicating the one or more parameters of the player's movement while the player is performing the drill using the basketball delivery machine, the LIDAR data indicating one or more of the impacts of the basketball on a rim before the basketball passes through the rim; and analyzing, by the basketball delivery machine, the LIDAR data indicating the one or more parameters of the player's movement while the player is performing the drill using the basketball delivery machine, wherein the feedback data is generated based at least on analyzing the radar sensor data and analyzing the LIDAR data.
4. The method of claim 1, comprising generating an assessment of the player based on the feedback data, the assessment including one or more recommended workout programs that are available to the basketball delivery machine.
5. The method of claim 1, comprising controlling collection of sensor data by sensors that are associated with the basketball delivery machine based on the feedback data.
6. The method of claim 1, wherein the sensor data indicates the one or more parameters of the player's movement at different shot locations throughout the drill.
7. The method of claim 1, further comprising: receiving, by the basketball delivery machine, profile data entered by the player into the basketball delivery machine, and generating animated top-down renderings of the drill based on the profile data, wherein the feedback data is generated further based on the profile data that is entered by the player into the basketball delivery machine.
8. The method of claim 1, wherein the feedback data is generated further based on one or more benchmarks of the player's previous performance in comparison with other players on a same team.
9. The method of claim 1, wherein the feedback data pertains to an apex of the basketball ball.
10. The method of claim 1, wherein the one or more radar sensors are not incorporated into the basketball delivery machine.
11. The method of claim 1, wherein the feedback data comprises a visual rendering of the player's movement along with a video rendering of the idealized movement, as well as shot make or miss information associated with the player's movement.
12. The method of claim 1, wherein the feedback data is generated on the basketball delivery machine without transmitting the sensor data over an internet connection.
13. The method of claim 1, comprising: obtaining, by the basketball delivery machine, accelerometer data from a smart basketball, the accelerometer data indicating one or more impacts of the smart basketball on the rim before the smart basketball passes through the rim; and analyzing, by the basketball delivery machine, the accelerometer data, wherein the feedback data is generated based at least on analyzing the radar sensor data and analyzing the accelerometer data.
14. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: obtaining, by one or more radar sensors that are associated with a basketball delivery machine, radar sensor data indicating one or more parameters of a player's movement while the player is performing a drill using the basketball delivery machine, the radar sensor data indicating one or more impacts of a basketball on a rim before the basketball passes through the rim; obtaining, by a basketball delivery machine, predefined ball delivery location data or predefined shot location data that is associated with the drill that is performed using the basketball delivery machine; analyzing, by the basketball delivery machine, (i) the predefined ball delivery location data or the predefined shot location data that is associated with the drill that is performed using the basketball delivery machine, and (ii) the radar sensor data indicating the one or more parameters of the player's movement while the player is performing the drill using the basketball delivery machine; generating, by the basketball delivery machine and based at least on analyzing both (i) the predefined ball delivery location data or the predefined shot location data that is associated with the drill that is performed using the basketball delivery machine, and (ii) the radar sensor data indicating the one or more parameters of the player's movement, feedback data that compares the player's movement to an idealized movement; and providing, by the basketball delivery machine, a representation of the feedback data for output to the player, the feedback data comprising a wire-frame representation of waypoints that are associated with an idealized shooting form.
15. A basketball delivery machine comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: obtaining, by one or more radar sensors that are associated with a basketball delivery machine, radar sensor data indicating one or more parameters of a player's movement while the player is performing a drill using the basketball delivery machine, the radar sensor data indicating one or more impacts of a basketball on a rim before the basketball passes through the rim; obtaining, by a basketball delivery machine, predefined ball delivery location data or predefined shot location data that is associated with the drill that is performed using the basketball delivery machine; analyzing, by the basketball delivery machine, (i) the predefined ball delivery location data or the predefined shot location data that is associated with the drill that is performed using the basketball delivery machine, and (ii) the radar sensor data indicating the one or more parameters of the player's movement while the player is performing the drill using the basketball delivery machine; generating, by the basketball delivery machine and based at least on analyzing both (i) the predefined ball delivery location data or the predefined shot location data that is associated with the drill that is performed using the basketball delivery machine, and (ii) the radar sensor data indicating the one or more parameters of the player's movement, feedback data that compares the player's movement to an idealized movement; and providing, by the basketball delivery machine, a representation of the feedback data for output to the player, the feedback data comprising a wire-frame representation of waypoints that are associated with an idealized shooting form.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION
(12)
(13) Ball collection system 12 includes net 16, net frame 18, base 20, shots made counter 22 (which, in this embodiment, includes made shots funnel 24, shots made sensor 26, and counter support frame 28), and upper ball feeder 30. When machine 10 is used for shooting practice, net 16 is positioned in front of a basketball backboard (not shown) so that the basketball hoop and net (not shown) are immediately above shots made counter 22. The size of net 16 is large enough so that missed shots (which do not go through the basketball hoop and net and through shots made counter 22) will still be collected by net 16 and funneled down to upper ball feeder 30.
(14) Ball delivery system 14 includes ball delivery machine 32, main ball feeder 34, and ball ready holder 36. The inlet of main ball feeder 34 is positioned immediately below the outlet of upper ball feeder 30. Ball delivery machine 32 is pivotally mounted on base 20. Ball delivery machine 32 is pivotable about an axis that is aligned with the inlet of main ball feeder 34 and the outlet of upper ball feeder 30. Balls drop out of upper ball feeder 30 into main ball feeder 34. Balls are delivered one at a time from main ball feeder 34 into ball ready holder 36 at the front of ball delivery machine 32. Launch arm 38 (shown in
(15) As is further described below, ball delivery system 14 is responsive to a graphical user interface that receives user input to define a workout program that includes selected ball delivery locations desired by a user. The graphical user interface presents graphical control elements that enable user interaction to define the workout program. The graphical user interface can be managed by a server device, communicatively coupled with ball delivery system 14 or a separate computing device, to receive the workout program including machine workout instructions executed by ball delivery system 14 and player workout instructions presented to the user. In some examples, the graphical user interface presents a visual representation of at least a portion of a basketball court that is free of indicia representing predetermined ball delivery locations on the basketball court, such as visual markings, buttons, lights, or other physical or graphically-rendered indications of predetermined ball delivery (or shot) locations. In such examples, the graphical user interface enables a greater range of ball delivery locations and player movement that can help to simulate game-like scenarios and increase an effectiveness of training.
(16) The graphical user interface is configured to receive inputs (e.g., gesture input at a touch-sensitive and/or presence-sensitive device, input from a mouse, keyboard, voice command, or other input) relative to the visual representation of the basketball court that identify the selected ball delivery locations. A control system (shown in
(17)
(18) Balls that are collected by ball collection system 12 enter the upper end of main ball feeder 34 and are directed downward and forward to toggle arm 54, which stops further ball movement. When toggle arm 54 is actuated, it pivots to release a single ball to travel further downward and forward into ball ready holder 36. As shown in
(19) Rotation of ball delivery machine 32 relative to base 20 is driven by a gear motor responsive to commands from the control system of ball delivery machine 32 that causes bottom platform 40 to rotate relative to base 20 to cause ball delivery machine 32 to deliver balls, in sequence, to selected ball delivery locations. A direction of rotational movement of bottom platform 40 relative to base 20 is determined and managed by the control system based on an angular distance between sequentially-consecutive ball delivery locations.
(20) In certain examples, one or more portions of ball delivery machine 32 can rotate along a vertical axis of ball delivery machine 32 (i.e., tilt) to adjust a vertical trajectory (i.e., exit angle) of balls delivered out of ball delivery machine 32 and ball ready holder 36. For instance, launching mechanisms of ball delivery machine 32 (e.g., including launch arm 38 and ball ready holder 36) can be pivotally mounted to tilt within ball delivery machine 32 relative to the vertical axis of ball delivery machine 32. Trajectories of delivered balls can be controlled (e.g., via tilt commands from a control system) to account for a distance between ball delivery machine 32 and a selected ball delivery location. For instance, a higher trajectory having a larger arc (e.g., a larger vertical angle of exit trajectory with respect to a horizontal axis extending along base 40) can be determined (and ball delivery machine 32 vertically rotated to provide such trajectory) for longer distances between ball delivery machine 32 and a selected ball delivery location. Similarly, a lower trajectory having a smaller arc (e.g., a smaller vertical angle of exit trajectory with respect to the horizontal axis extending along base 40) can be determined for shorter distances between ball delivery machine 32 and a selected ball delivery location. The trajectory can be determined based on both the ball delivery speed and a selected ball delivery height. As such, ball delivery machine 32 can control ball delivery speed in conjunction with the trajectory of ball delivery to deliver balls to account for varying distances between different selected ball delivery locations and a position of ball delivery machine 32.
(21) In certain examples, a trajectory (i.e., exit angle) of balls launched from ball delivery machine 32 can be determined (or user selected) to account for user height. For instance, a higher trajectory having a larger exit angle with respect to the horizontal axis extending along base 40 (or the ground) can be selected to deliver balls to, e.g., taller users to enable such users to catch the ball at an elevation that is between the user's waist and the user's head. Similarly, a lower trajectory having a smaller exit angle with respect to the horizontal axis can be selected to delivery balls to, e.g., shorter users to enable such users to catch the ball at an elevation that is between the shorter user's waist and head. In certain examples, the trajectory of balls launched from ball delivery machine 32 can be determined (or user selected) to provide a type of pass, such as a bounce pass configured to bounce the ball prior to reaching the ball delivery location, a lob pass configured to have a large arcing trajectory toward the ball delivery location, or other types of passes. Indications of user selected height and/or type of pass can be received at a user interface operatively connected to the controller, as is further described below.
(22) Accordingly, ball delivery machine 32 can be controlled (e.g., by a control system) to pivot both horizontally to deliver balls to a plurality of selected ball delivery locations and vertically (i.e., tilt) to adjust the trajectory of the delivered balls. As such, ball delivery machine 32 can be automatically controlled to enable training of game-like scenarios where a user may receive passes at varying locations and distances on the court as well as varying types of passes (e.g., chest passes, bounce passes, lob passes, or other types of passes) and passes having varying delivery speeds and delivery elevations. Ball delivery machine 32, therefore, can help to better simulate such game-like scenarios than a ball delivery machine that is limited to, e.g., fixed trajectories and ball delivery speeds at predetermined ball delivery locations, such as at locations spaced around the three-point line.
(23)
(24) As illustrated in
(25) In some examples, a delivery speed of balls driven by launch arm 38 (i.e., a speed at which launch arm 38 propels balls out of ball delivery machine 32) is set by a ball delivery speed adjustment actuator (shown in
(26) The ball delivery speed can be determined by the control system based on a distance between ball delivery machine 32 and a ball delivery location. For example, the control system can determine a physical distance between ball delivery machine 32 and one or more selected ball delivery locations based on a relative distance between graphically-rendered locations of ball delivery machine 32 and the one or more selected ball delivery locations on a visual representation of at least a portion of a basketball court, as is further described below. The control system can determine the ball delivery speed based on (e.g., proportional to) the determined physical distances.
(27) In some examples, the control system can modify the ball delivery speed for each selected ball delivery location. In other examples, the control system can determine the ball delivery speed for groups of selected ball delivery locations within threshold distances from ball delivery machine 32. In yet other examples, the control system can determine a single ball delivery speed based on an average of the distances between ball delivery machine 32 and each of the ball delivery locations, a maximum of the distances, a minimum of the distances, or other aggregations of the distances between ball delivery machine 32 and the selected ball delivery locations. In some examples, the control system may not modify the ball delivery speed. Rather, in such examples, the ball delivery speed may be manually adjusted via ball distance adjustment knob 60 (and ball distance pre-select plate 62).
(28)
(29) Controller 94 is a processor-based controller that coordinates the operation of components of the control system. Controller 94 includes one or more processors and computer-readable memory encoded with instructions that, when executed by the one or more processors, cause controller 94 to operate in accordance with techniques described herein. Examples of one or more processors of controller 94 can include any one or more of a microprocessor, a controller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other equivalent discrete or integrated logic circuitry.
(30) Computer-readable memory of controller 94 can be configured to store information within controller 94 during operation. Computer-readable memory of controller 94, in some examples, is described as computer-readable storage media. In some examples, a computer-readable storage medium can include a non-transitory medium. The term non-transitory can indicate that the storage medium is not embodied in a carrier wave or a propagated signal. In certain examples, a non-transitory storage medium can store data that can, over time, change (e.g., in RAM or cache). In some examples, the computer-readable memory is a temporary memory, meaning that a primary purpose of the computer-readable memory is not long-term storage. Computer-readable memory, in some examples, includes volatile memory that does not maintain stored contents when electrical power to controller 94 is removed. Examples of volatile memories can include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories. In some examples, computer-readable memory of controller 94 is used to store program instructions for execution by the one or more processors of controller 94. For instance, computer-readable memory of controller 94, in some examples, is used by software or applications running on controller 94 to temporarily store information during program execution.
(31) Computer-readable memory of controller 94, in some examples, also includes one or more computer-readable storage media that can be configured to store larger amounts of information than volatile memory. In some examples, computer-readable memory of controller 94 includes non-volatile storage elements. Examples of such non-volatile storage elements can include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories.
(32) Sensors 26, 66, 68, and 72 are used by controller 94 in coordinating and controller the operation of motors 78, 80, 82, as well as ball speed adjustment actuator 76 and tilt adjustment actuator 77. Calibration sensors 70 are used by controller 94 during setup to provide calibration of the signal from potentiometer 74, which is used to determine the rotational position of ball delivery machine 32.
(33) Controller 94 utilizes communication device(s) 84 to communicate with external devices via one or more wired or wireless communication networks, or both. Communication device(s) 84 can include any one or more communication devices, such as network interface cards (e.g., Ethernet cards), optical transceivers, radio frequency transceivers, Bluetooth transceivers, 3G or 4G transceivers, and WiFi radio computing devices.
(34) In operation, controller 94 communicates with, e.g., a remote computing device to receive a workout program including indications of positions of selected ball delivery locations, ball delivery timing (e.g., tempo) information, a number of balls delivered per location, a type of pass (e.g., chest pass, bounce pass, lob pass, or other type of pass), a selected ball delivery height, and position information of ball delivery machine 32 relative to a visual representation of at least a portion of a basketball court presented by a graphical user interface executed by, e.g., a remote server device. As is further described below, controller 94 controls operation of components of the control system, such as ball speed adjustment actuator 76, tilt adjustment actuator 77, ball feeder toggle motor 78, rotation motor 80, and launch drive motor 82 to deliver balls to the selected ball delivery locations according to the received information. In certain examples, controller 94 controls operation of projection system 83 to project optical indications on the basketball court. For example, projection system 83 can include one or more light sources (e.g., LEDs, halogen or incandescent light bulbs, or other light sources) configured to be angularly controlled to emit visible light at locations and/or patterns on the basketball court. The one or more light sources can be colored light sources (or controllable to emit a determined light color). Controller 94 can control operation of projection system 83 to project optical indications, such as colored or uncolored light spots on the basketball court to visually indicate, e.g., one or more of a next selected ball delivery location, a next user shot location, or other indications, as is further described below.
(35) As such, controller 94 controls operation of components of the control system of ball delivery machine 32 to deliver balls to selected ball delivery locations according to, e.g., user instructions received via a graphical user interface that presents a visual representation of at least a portion of a basketball court.
(36)
(37) Server 98, as illustrated in
(38) Database 104 can be a relational database, hierarchical database, multidimensional database, or other type of database capable of storing information in an organized manner for later retrieval by, e.g., workout module 100 and/or website 102. Database 104, as illustrated in
(39) In certain examples, accounts 106 associates any one or more of the plurality of accounts with one or more account groups. Account groups are groupings of individual accounts that may be commonly associated via e.g., a team, a school, a peer group, or other common association. For instance, account groups can include team accounts, school accounts, trainer group accounts, coach group accounts, or other group accounts. Accounts 106 can associate individual user accounts with any one or more account groups. For instance, accounts 106 can simultaneously associate a particular user account with one of a plurality of school account groups, one of a plurality of team account groups, and one of a plurality of skill level account groups. Account groups of accounts 106 can be hierarchical in nature, such that account groups can be associated with one or more higher level parent (or other ancestral) account groups and/or one or more child (or other descendant) accounts (or account groups). For instance, each team account group can be hierarchically related as a child account group of a school account group that represents the parent account group to the team account group. Similarly, member accounts (or account groups) of the team account group can be considered child accounts (or account groups) of the team account, and therefore hierarchically related to each of the ancestral team account group and school account groups. As such, user accounts and account groups can be affiliated via ancestral and descendant relationships to provide a hierarchical relationship of user accounts and/or account groups.
(40) Workouts 108 store workout programs that include machine workout instructions that are executed by basketball training machine 10 to deliver basketballs to selected ball delivery locations as well as player workout instructions that represent player activity (e.g., player movement, skill development activities such as dribbling or other ball handling maneuvers, exercise activities such as pushups or sit-ups, or other player activity). Workouts 108 are associated with attributes, such as a workout skill level, workout intensity level, workout time, workout type (e.g., offensive skills development, long range shooting development, short range shooting development, free throw shooting development, agility development, strength development, ball handling development, physical conditioning development, or other workout type), or other attributes. Attributes of workout programs included in workouts 108 can indicate whether a particular workout program (or grouping of workout programs included in, e.g., a workout library) is user-modifiable. For instance, a workout program can be specified (e.g., during creation) as non-modifiable. Non-modifiable workout programs can be executed by players at basketball training machine 10 but not modified by the player prior to execution, thereby providing a common workout program that can be executed (without modification) by multiple players associated with multiple user accounts to enable benchmarking or other comparisons of player skill and/or conditioning, as is further described below.
(41) Workout programs stored at workouts 108 can be associated with any one or more accounts and/or account groups stored in database 104 at accounts 106. For instance, a particular workout program can be associated with (e.g., assigned to) an account group corresponding to a team, and therefore also associated with each individual user account that is a member of the team account group through the hierarchical relationship between the parent team account group and the child user accounts. Workout programs stored at workouts 108 can be associated with a single account of accounts 106 or multiple accounts of accounts 106. As such, workout programs can be generated and stored at workouts 108 of database 104 and utilized by a single user account or shared between multiple user accounts or account groups.
(42) Analytics 110 of database 104 store analytics data (e.g., statistics) associated with any one or more accounts stored at accounts 106 and/or workout programs stored at workouts 108. Examples of analytics data include shooting percentage data, a number of attempted shots, a usage time of basketball training machine 10, user heart rate data during any one or more workout programs (e.g., sensed by a heart rate monitor or other physical monitoring device worn by a player during a workout program), shooting percentage relative to heart rate, movement, position on the basketball court, or other analytics data. Analytics data stored at analytics 110 of data base 104 can be associated with a workout program, such that each user account that executes a particular workout program contributes to shared analytics corresponding to the executed workout program. In general, analytics 110 can store any statistical or other analytical data that corresponds to user accounts, user account groups (e.g., team account groups), and workout programs to enable comparison of performance between user accounts, between user accounts and benchmark performance criteria, between time-separated performances of a single user account (or account group), or other comparisons. As such, analytics data stored at analytics 110 can enable a coach, player, or other user to track performance of a single player or group of players over time, to compare performances between players or groups of players, and to track progress of skill development and conditioning of players or groups of players.
(43) As illustrated in
(44) Basketball training machine 10 is communicatively coupled with server 98 to access website 102 via any one or more wired or wireless communication networks, such as a cellular communication network, local area network (LAN), wide area network (WAN) such as the Internet, wireless LAN (WLAN), or other type of communication network. Basketball training machine 10, as illustrated in
(45) In operation, a user accesses website 102 via the interface of basketball training machine 10 to select a workout program stored at workouts 108 and/or create a new workout program via the interface provided by website 102 and managed by workout module 100. Server 98 transmits the selected or created workout program to basketball training machine 10. The workout program includes both machine workout instructions for execution by basketball training machine 10 and player workout instructions representing player activity during workout program. Basketball training machine 10 executes the machine workout instructions by delivering basketballs to identified ball delivery locations at a selected tempo (i.e., relative timing) and tracking made and missed shots via shots made sensor 26. Basketball training machine 10 presents the player instructions for review prior to execution of the workout program and, in certain examples, presents the player instructions during execution of the workout program via a display, speakers, or other output device. Results of the workout program corresponding to made and missed shots, duration of one or more portions of the workout program, or other analytics data can be transmitted by basketball training machine 10 to workout module 100 of server 98 via website 102 (e.g., automatically transmitted or transmitted in response to user input to upload the results to server 98). Accordingly, system 96 enables a user to select one or more workout programs stored at workouts 108 of database 104, create a new workout program that can optionally be stored in workouts 108, and execute the workout program to enable effective training for the player.
(46)
(47) In operation, a player utilizes player computing device 112 (e.g., a smartphone) to execute an application (e.g., an app) that interfaces with workout module 100 or to access website 102 via a web browser that presents a graphical user interface managed by workout module 100. The graphical user interface presents a login screen that enables the player to provide account login information, such as username and passcode. Workout module 100 accesses the account stored in accounts 106 associated with the login information (or enables the player to create a new account) and presents the user with graphical control elements to either select a workout program stored at workouts 108 of database 104 or create a new workout program, as is further described below.
(48) In response to receiving a selection via player computing device 112 of a stored workout program or creation of a new workout program, server 98 transmits the selected or created workout program including the machine workout instructions and the player workout instructions to basketball training machine 10 via, e.g., website 102 or a separate communicative connection between server 98 and basketball training machine 10. Basketball training machine 10 executes the workout program and generates analytics data in the form of workout results (e.g., made and missed shots, workout timing, or other results) and transmits the results to server 98. Server 98 transmits the results to player computing device 112 which presents the results to the player via a display or other output device of player computing device 112. In some examples, workout module 100 can automatically store the workout results at analytics 110 of database 104 and associate the results with the corresponding user account in accounts 106. In other examples, workout module 100 can store the workout results only in response to received user input via the graphical user interface provided at player computing device 112 to store (e.g., upload) the results to server 98. Accordingly, player computing device 112 can provide a graphical user interface and communication connection that enables user interaction with basketball training machine 10 via server 98. In addition, player computing device 112 can enable player interaction with server 98 to upload results, view and/or create workout programs, or otherwise interact with server 98 whenever player computing device 112 has a communicative connection with server 98 (e.g., via an Internet connection), thereby enabling player interaction from locations that may be remote from basketball training machine 10.
(49)
(50) In the example of
(51)
(52) In operation, a coach (or other user) accesses website 102 via coach computing device 114, which may be located remotely from basketball training machine 10 (e.g., in a coach's office or other remote location) to create a workout program via the user interface presented by website 102 and managed by workout module 100. In some examples, coach computing device 114 can assign a created or stored workout program to one or more accounts and/or account groups stored at accounts 106 of database 104. In certain examples, coach computing device 114 can modify a stored workout program prior to assigning the workout program to one or more accounts within database 104.
(53) As illustrated in
(54) Coach computing device 114 can access and/or modify goals and practice plans, managed by workout module 100 and stored at database 104 and associated with one or more of accounts 106. For example, workout module 100 can present graphical control elements via, e.g., website 102 to enable a coach or other user to create and assign goals to one or more of accounts 106. Examples of goals include number of attempted shots goals, number of made shots goals, total training time goals, shooting percentage goals, or other goals. Practice plans can include one or more workout programs assigned to the one or more of accounts 106 that can be designed to help a player achieve a desired level of performance, such as one or more goals associated with a player account.
(55) In some examples, coach computing device 114 can access and modify scheduling corresponding to a time schedule of the use of basketball training machine 10 associated with one or more of accounts 106. For instance, workout module 100 can present graphical control elements, such as graphical calendaring control elements, via website 102 to enable a coach or other user to schedule workout times during which a corresponding account is designated for use of basketball training machine 10. Accordingly, scheduling controls managed by workout module 100 can enable the coach or other user (e.g., player) to assign workout times to one or more accounts (or account groups) to enable effective scheduling and use of basketball training machine 10 which may be utilized by multiple players associated with multiple accounts. In some examples, the coach or other user can assign a workout time to an account within accounts 106. In response, workout module 100 can transmit a notification to the corresponding account (e.g., via a notification on an app executing on player computing device 112) indicating the scheduled workout time. In certain examples, a player or other user can reserve a workout time via, e.g., player computing device 112. In response, calendaring controls managed by workout module 100 can associate the reserved time with the corresponding account and can indicate to other accessing accounts that the time is reserved.
(56) Accordingly, basketball training system 96 including coach computing device 114 that interfaces with workout module 100 via, e.g., website 102, enables coach (or other third party) interaction with workout module 100 to create new workout programs, access and/or modify stored workout programs, assign workout programs, goals, and/or workout programs to individual and/or group accounts, schedule use of basketball training machine 10 among multiple accounts, and track progress of the corresponding players via coach computing device 114. Such remote access via coach computing device 114 can enable the coach or other user to, e.g., setup workout routines for a team or tailored to individual players at times and locations that may be more convenient than during a practice session at a basketball facility where basketball training machine 10 is located. Moreover, the coach or other user can access and review training results corresponding to the workout programs at any time or location that the coach or other user can access server 98 via a communicative connection between coach computing device 114 and server 98, such as during non-practice hours. As such, basketball training system 96 that enables remote access to server 98 via coach computing device 114 provides greater flexibility for coaches or other users to generate workout programs and review workout results than other systems that may require colocation of the coach or other user with basketball training machine 10 to access such workout program generation and review operations.
(57)
(58) As illustrated in
(59) In some examples, administrator computing device 116 can designate any one or more workout programs as non-modifiable. Non-modifiable workout programs can be selected by coach computing device 114 and/or player computing device 112 for execution by basketball training machine 10, but are not modifiable via non-administrator accounts. Administrator accounts are those accounts that are associated with an administrative entity that accesses server 98 via, e.g., administrator computing device 116. Such non-modifiable workout programs can be executed by multiple players and/or coaches to compare workout performance among the multiple players. Accordingly, an administrator or other entity accessing server 98 via an administrator account (e.g., via administrator computing device 116) can provide common workout programs that can be selected (e.g., by coaches) and performed by multiple players, the results of which serve as an objective measure of the players' abilities to perform the workout programs. In this way, the common workout programs can help a coach in selecting players for game-time performance and in helping coaches to guide players to improve performance.
(60) In certain examples, the non-modifiable workout programs can include benchmark criteria, such as benchmark shot performance criteria (e.g., a number of made shots, a number of shots taken in a given time duration, a percentage of made shots, or other benchmark shot performance criteria). In some examples, the benchmark criteria can correspond to performance of the non-modifiable workout program by a particular player, such as a particular professional player. In such examples, players (e.g., high school players) executing the workout program can compare their workout results to those of the benchmark player (e.g., professional player), thereby providing a reference for comparison and a performance goal to achieve.
(61) As described above, those workout programs not designated as non-modifiable can be modified via, e.g., coach computing device 114 and/or player computing device 112. For instance, database 104 can store a library of modifiable workout programs at workouts 108. A coach or other user accessing workouts 108 via coach computing device 114 or a player accessing workouts 108 via player computing device 112 can select one of the workout programs and modify any one or more aspects of the workout program prior to transmitting the workout program to basketball training machine 10 for execution.
(62) Accordingly, basketball training system 96 can enable an administrator or other entity to provide workout programs that can be selected by coaches and/or players for execution by basketball training machine 10. The workout programs can be modifiable or non-modifiable to enable both modifiable templates of workout programs as well as non-modifiable workout programs that can be used for benchmarking or other comparisons of player performance.
(63)
(64) In the example of
(65) A basketball training system implementing techniques described herein can therefore enable players, coaches, teams, or other entities to generate workout programs for execution by basketball training machine 10 using a graphical user interface managed by workout module 100 and presented via website 102 or other graphical interface. The workout programs can be stored at server 98 (or other computing device accessible by server 98) to enable later retrieval and possible sharing of workout programs among multiple user accounts. The user accounts can be associated with any one or more user groups, thereby facilitating such sharing of workout programs among affiliated users. Workout results, stored by database 104 as analytics 110 and associated with any one or more accounts 106 and/or workouts 108, can be retrieved by any computing device communicatively coupled with server 98 and having access to a corresponding one of accounts 106. In this way, analytics data corresponding to workout results can be reviewed, shared, and analyzed by coaches, players, or other users to facilitate the efficient and effective training of players. The ability of workout module 100 to automatically modify workout programs in response to graphical control elements that select a corresponding skill level or duration of the workout program enables users (e.g., players, coaches, or other users) to efficiently utilize training time for active training with basketball training machine 10, rather than spending such time modifying workout programs to fit the timing constraints or skill level of the player. Moreover, libraries of workout programs generated by an administrator or training expert can enable the coach and/or player to select stored workout programs designed by training experts to draw from their expertise without having direct affiliation (e.g., time spent with) the particular training expert. Accordingly, system 96 implementing workout module 100 to generate workout programs for execution by basketball training machine 10 can significantly enhance the effectiveness and efficiency of the training experience using basketball training machine 10.
Animated Drill Previews
(66)
(67) In some aspects, the ball delivery system 34 includes more than one display. For example, the ball delivery system can include two or more displays. A first display may be implemented and used for programming drills as described herein in reference to user interfaces 120, 220, 320, 420, 520, 620. The first display can be the front display 46, or the first display can be another display separate from the front display 46. For example,
(68) A second display may be implemented and used for displaying instructions to a user/player who is performing a drill and/or workout with ball delivery system 34. The second display can be the front display 46 or another display (e.g. user mobile device, mounted screen, or other display visible to the user), where the second display can illustrate instructions, drill previews, drill feedback, drill prescriptions and/or assessments, next shot locations, among other drill information to inform the user of what the ball delivery system 34 is going to do next.
(69) For purposes of clarity and ease of discussion, the screenshots of
(70) As illustrated in
(71) Animated delivery machine 126 includes a pass direction zone 130 that extends from a throwing end of the animated delivery machine 126 to illustrate the direction a pass would be thrown by the animated delivery machine 126 based on the direction the animated delivery machine 126 is facing. The pass direction zone 130 includes three lines that extend to illustrate an area that the pass would be delivered, the two outer lines extend away from the animated delivery machine 126 at equal non-parallel angles and the center line is normal to the animated delivery machine and extends between the two outer lines. The pass direction zone 130 rotates with the animated delivery machine 126 to illustrate the projected pass delivery area based on the rotational position of the animated delivery machine 126.
(72) Graphical user interface 120 includes one or more ball delivery locations 128 (e.g. ball delivery locations 128a, 128b) positioned at locations on the representative basketball court 124. Ball delivery locations 128a, 128b graphically represent candidate ball delivery locations to which ball delivery machine 10 will deliver basketballs during execution of the workout program. Each of ball delivery locations 128a, 128b including a number corresponding a sequential order of ball delivery to the ball delivery locations. That is, ball delivery location 128a illustrates the numeral 1 corresponding to a first order of ball delivery, and ball delivery location 128b illustrates the numeral 2 corresponding to a second order of ball delivery.
(73) Ball delivery locations 128 include pass indicators that illustrate that a pass is delivered to the ball delivery locations 128 in the sequential order. For example, the ball delivery locations 128 can blink, light up, fill in, or otherwise animate to indicate that a pass from animated delivery machine 126 is being delivered to ball delivery location 128 along pass direction zone 130.
(74) As shown in
(75) As shown in
(76) User interface 120 includes a training overview area 140 that includes instructions associated with the drill animated in the drill preview area 122. Training overview area 140 includes a readable description of the selected drill, the selected drill is also indicated in the drill label 142 which is positioned above the drill preview area 122.
(77) User interface 120 includes a show animations button 144 that can be toggled on and off, where in the on position the user interface will automatically preview the selected drill by displaying the animations in the drill preview area 122 as shown in
(78) User interface 120 includes a start button 146 that is selectable by a user to begin the drill on basketball training system 96.
(79) The user interface 120 can be implemented by a system (e.g. basketball training system 96) that includes a basketball delivery machine, one or more processors, and a computer-readable medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations comprising receiving user inputs for programming a drill; generating a drill preview based on the user inputs for programming the drill; outputting the drill preview to a display; and controlling the basketball delivery machine to execute the drill.
(80) In some aspects, the preview can be displayed prior to the basketball delivery machine is executing the drill. The drill preview can be displayed while the basketball delivery machine is executing the drill. The drill preview can illustrate where a user should be for a current shot and where a user should be for a next shot between shots of the drill executed by the basketball delivery machine.
(81) In some aspects, the drill preview includes animations that demonstrate the drill. The drill preview includes a plurality of icons that move with respect to a representation of a portion of a basketball court. The drill preview is generated based on meta data from the user inputs for programming the drill. The drill preview includes an animated avatar of the user. The operations can include selecting a non-shooting move animation from a library of non-shooting moves based upon the drill programmed by user inputs, and outputting the non-shooting move animation as part of the drill preview. The drill preview illustrates passes from the basketball delivery machine to multiple locations. The drill preview illustrates a pass from the basketball delivery machine to a first location and illustrates movement from the first location to a second location.
(82) While the user interfaces shown here are of a top down view of a basketball court, other interfaces may show other views. For example, an interface may show a first person view of the basketball court. For example, the first-persona interface may show an animation of a view from the perspective of the location at which the player will be receiving the ball, moving, taking a shot, etc. This first-person interface may be rendered on a stationary screen (e.g., of a desktop computer) or on a screen with movement-detection (e.g., on a phone or augmented-reality display headset, or via smart glasses). By showing the first-person interface, the viewer of the interface may be presented with a view of the drill that is more natural or intuitive to understand. While many experienced players may be able to quickly interpret the top down view, new athletes may have a comparatively harder time understanding the drill in the top down interface and may be aided by the first person interface.
(83) In some cases, when the first person interface is rendered on a screen with motion detection, the point of view of the first-person interface changes in line with the change in location and orientation of the screen. For example, the first-person interface may begin rendering a drill's animation. Then, as the animation is being played, movements of the screen can be provided as input to the renderer of the drill animation, and the point of view from which the animation is rendered can be moved to match the movement of the screen. In such a way, the screen can provide an augmented reality view of the drill to the user, where the user's phone or head-worn display can visually act as a view window into the 3D animation.
(84) In some cases, the interfaces include elements (e.g., buttons) allowing the user to specify a command to switch between top-down and first-person. For example, a drill may be initially shown in a top-down interface to introduce the drill to the user, allow the user to edit the drill, etc. Then, the user may press a button to change to a first-person interface that shows the selected, and possibly edited, drill to the user. In some implementations, the first-person interface can allow for editing of the drill. For example, a user may be able to click-and-drag a marker on the floor of the first-person animation to edit the drill. In some implementations, the first-person interface does not permit editing of the drill. For example, the trainer may not want the player to edit a drill, and in such a configuration the first-person view would not allow editing of the drill.
(85) The animation for the first-person interface may in some cases be pre-rendered. The animation for the first-person interface may in some cases be rendered on-the-fly. For example, when a drill is created and finalized (e.g., when a user presses a save button), an animation and rendering process may be initiated. In this animation and rendering process, a 3D geometric environment is created in the processor and memory (but possibly not displayed at this time). The environment is populated with shapes for a hoop, a ball, and/or any other items to be shown in the animation such as a travel path or waypoint marker. A virtual camera is defined based on the location and orientation which the player should be in through the course of the drill, and the environment can be animated according to the logic of the drill (e.g., moving a ball to a destination along a parabola to mimic the flight-path of a real ball in a real environment). This animation may then be rendered to produce a video that includes sequence of 2D images from the perspective of the virtual camera in the 3D environment. This video may then be stored at rest in computer memory until a later time in which it is needed to be played in a first-person interface.
(86) However, in addition to or in the alternative the pre-rendering described here, an on-the-fly rendering may be performed. For example, when using a motion tracked screen (e.g., phone), the 3D environment and movement of objects in the environment may be pre-generated, but the actual rendering may take place as the user is viewing the first-person interface. In such a scenario, the location and orientation of the virtual camera may be set to track the real-world location and orientation of the screen. In such a way, a dynamic first-person interface may be provided that tracks the real-world location and orientation of a screen, even when that location and orientation is not known. In still another configuration, a dynamic first-person interface may be provided in which a user moves the camera with a joystick, touch-screen gesture, mouse movement, or other input with an input device. Here too, the rendering may be performed as the input is being received, providing the user with an interface that they may be familiar with from video games and other computer applications.
(87) As previously mentioned, various objects can be shown in the first-person interface. In some cases, these objects are analogs to real-world objects that are part of the drill. For example, a virtual ball can be generated, animated, and rendered in an environment with court markers such as a free-throw line, a three-point line, key, etc. In addition or in the alternative, virtual objects with no real-world analog may be generated, animated, and rendered. For example, waypoints indicating where a player should catch a ball, move to, and shoot from may be used. These can take the visual form, for example, of illuminated spots on the court, wire-frame boxes in space, arrows, or animated players. Further, visual guides such as an ideal shooting arc can be shown before or after a shot, recordings of previous drills can be shown with full or partial opacity so that the view can see how others have performed the drill, etc.
(88) In one or both of the top-down and first-person view, elements of the drill are shown to a viewer in various configurations. For example, personalized settings may be created for each user, and those settings may be used to creating the interface. In one example, one player may save settings indicating a preference for a top-down view of a drill using an animated ball while another player may save settings indicating a preference for a first-person view with an animated players. When the first player views drill information, the system can access that player's profile data and determine to render the top-down view with the animated ball, in response, the drill is rendered to the first player as a top-down view with an animated ball. In this system, when displaying to the second player, the system can access the second players profile data and determine to render the first-person view of the same drill using an animated player. In this way, the same drill is presented to different players in different ways based on preferences associated with the players.
(89) For drills with interactions between two or more players, visual elements may be used to show the actions that should be taken by each player. Consider a drill in which a passing player receives the ball from the machine, passes the ball to a shooting player, and the shooting player takes a shot. This drill may also have instructions for the players to move on the court with or without the ball, perform athletic movements (e.g., provide a pick to the other player), or take other steps. In such a case, the dill may be shown with static or animated elements showing the actions required for both players. This display can be configured to show both information to both players simultaneouslyfor example a top-down view can show an animated ball and two animated players working together to perform the drill. In some cases, the drill may be showed to each player sequentially. For example, in a first-person view, the view of a first player is shown and then after this the view of the second player may be shown.
(90) In some cases, the basketball training machine can execute drills that are uploaded from a drill playbook (e.g. an offensive and/or defensive playbook) that includes one or more drills that train players how to play within a basketball system as chosen and/or designed by a coach or a trainer. The drill playbook may be uploaded and converted from drill sketches recorded in computer memory that include data specifying player locations, player movement paths, shot locations, pass locations, etc. into executable drill instructions for the basketball training machine. The basketball training machine can collect and track the shot location(s) based on programmed drill and associated movement within the drill. For example, a shot location may differ from a pass location or a ball delivery location. The basketball training machine can display relevant metrics for each drill, the relevant metrics may be consistent or may change based on the user, and the relevant metrics can include at least a number of made shots, a number of missed shots, a field goal percentage, biometric feedback (e.g. heart rate, distance traveled, peak speed, jump height, calories burned, etc.), and form feedback (e.g. an image and/or video overlay of the shots taken by the user during the drill with an indication of a make or miss along with an indication of proper or improper form).
(91) In some aspects, the drill preview is created as a function of definitions assigned to the drill. For example, a user may input text in the form of definitions describing a drill. The system can be configured to process the input text from the user and perform an analysis of the input text from the user. The analysis can include identification of words or phrases in the user input text that correspond to programmed drills and/or drill elements that can be used to create a visual animation based on the input text.
(92) In some cases, the basketball training machine can work in conjunction with a client device (e.g., a mobile phone) to capture and provide video of a newly created drill. For example, a trainer may design a new drill that the trainer wishes to have one or more players perform. The trainer can design the drill using the interface of the basketball training machine. Upon completion, the basketball training machine can send a message, over a data network, to the phone of the trainer (e.g., using profile information associated with the trainer to select identify a recipient address for the message). An application running on the phone can receive the message and launch a notification. When the trainer brings up and selects the notification, the application can prompt the trainer to record execution of the drill. The trainer can then use their phone to record themselves or a player performing the drill from one or more points of view. Upon completion, the phone can send, to the basketball training machine, the recorded video or videos. As will be appreciated, this system can also use one or more cloud services to mediate this operation. For example, a cloud service may store the trainer's profile data, may serve and stream the video to the basketball training machine, etc. Once finished, any player wishing to start the drill can then access the videos created by the trainer. In such a way, this technology can advantageously allow for the customization of drills with instructions specified by the drill creator and provided to drill users with whatever details the trainer feels are important to include in the instructions. This provides an advantage over, for example, other systems with more rigid and pre-defined drill explanation systems which may not be able to cope with new and changing requirements from a cutting edge trainer working on new drills that were not considered by the creators of the basketball training machine.
Live Mode and Edit Drills on the Fly
(93)
(94) Live mode via user interface 220 allows a user (e.g. coach, player, admin) to control a ball delivery machine (e.g. basketball training machine 10) remotely via a mobile computing device (e.g. player computing device 112, coach computing device 114, administrator computing device 116, and/or expert computing device 118). Live mode via user interface 220 utilizes the connection between the user device (e.g. player computing device 112, coach computing device 114, administrator computing device 116, and/or expert computing device 118) and the ball delivery machine (e.g. basketball training machine 10) to allow for customized workouts in real-time. For example, a drill is a preprogrammed drill with a plurality of preprogrammed ball delivery locations, wherein the basketball delivery machine is configured to deliver a basketball to a different ball delivery location that is different than the preprogrammed ball delivery location during the drill in response to receiving the user inputs at the user interface 220 in real time during the drill. The basketball delivery machine can be configured to change the preprogrammed drill during the drill in response to receiving the user inputs at the user interface 220 in real time during the drill.
(95) User interface 220 can present a preview area 222 that includes representation of a portion of a basketball court 224 and a representative ball delivery machine 226. Animated delivery machine 226 includes a pass direction zone 230 that extends from a throwing end of the animated delivery machine 226 to illustrate the direction a pass would be thrown by the animated delivery machine 226 based on the direction the animated delivery machine 226 is facing. Pass direction zone 230 can share the features of pass direction zone 130 described above.
(96) User interface 220 includes a user-moveable control element 225 positioned within control bar 227 that extends across the user interface 220, the control bar 227 defines the area that the moveable control element 225 can move and/or slide within responsive to user input or other data. User inputs (e.g. user placing their finger on the screen and sliding across the surface of the screen with that finger) to moveable control element 225 move and/or slide the moveable control element 225 within the control bar 227, the position of the moveable control element 225 controls both rotational position of the representative ball delivery machine 226 and the ball delivery machine (e.g. basketball training machine 10). That is, user interface 220 updates preview area 222 to indicate the direction the representative ball delivery machine 226 is facing based on the position of the moveable control element 225 and the basketball training machine 10 also moves and/or rotates to the rotational positon selected by the moveable control element 225. Live mode therefore maps the rotational position of both the representative ball delivery machine 226 and the basketball training machine 10 in real time based on user inputs at the moveable control element 225. User interface 220 can also receive user inputs in the preview area 222 where the user can select the court and choose where the machine will rotate to in real time. For example, the user my select various pass locations on the court in real time. Each of
(97) User interface 220 includes a pass button 246 that is user-selectable (e.g., a user placing their finger over the button, removing their finger, holding their finger for a threshold period of time) to cause the basketball training machine 10 to throw a pass in the rotational direction determined by the moveable control element 225. The pass button 246 can use a visual indication that the pass button 246 has been selected by blinking, lighting up, fill in, or otherwise animating to indicate that a pass will be or is being delivered by basketball training machine 10. For example,
(98) User interface 220 includes a statistics tracking area 260 that tracks and displays the results of the user's performance (e.g., success in making shots, number of attempts) during the live mode session. Statistics tracking area 260 includes a number of shots made 262, a number of shots taken 264, and a field goal percentage 266. Statistics tracking area 260 can be in communication with shots made counter 22 described above.
(99) User interface 220 includes a tempo selection area 270 that includes selectable buttons to set the tempo or pace at which the basketball training system 96 operates. The tempo selection area 270 includes a tempo increase button 272 that increases the tempo of the basketball training system 96 response to a user input, and a tempo decrease button 274 that decreases the tempo of the basketball training system 96 in response to a user input.
(100) In the future this real time control could be done by a trainer not located in the same physical space. Imagine a picture in picture on the display of a trainer giving feedback to the player based on a video feed coming from the machine to the trainer. The trainer could tell the player to take shots from the wing now and they could move the machine for them.
(101) In some aspects, the user interface 220 may be used while the basketball delivery machine is executing a drill. While the basketball delivery machine is executing the drill, a user can modify the drill based upon user inputs and executing a modified version of the drill. In some aspects, the real time control of the system can pause a drill in progress while changes are being made to the drill, or the drill can continue while modifications are being made to the drill. The drill can be a preprogrammed drill with a plurality of preprogrammed ball delivery locations, and the basketball delivery machine is configured to deliver a basketball to a different ball delivery location that is different than the preprogrammed ball delivery location during the drill in response to receiving the user inputs in real time during the drill. The drill can be a preprogrammed drill and the basketball delivery machine is configured to change the preprogrammed drill during the drill in response to receiving the user inputs in real time during the drill.
(102) In some configurations, a user's phone may be used to display these interfaces described in this document, along with other user interfaces for other input and output. Matching a user's device to a corresponding machine can be accomplished with a variety of techniques.
(103) In some cases, the user may download and install an application on their phone. This application includes authentication features such as a username and password system, biometric sensing, 3.sup.rd party identity service, etc., to identify and authenticate a user. This application can be used with data stored in a user profile such as described elsewhere in this document and to store user information such as settings, history, etc. As part of this, the authenticated user can use the application to send input and receive output related to one or more ball delivery machines associated with the user (e.g., because the user purchased the machine, because the user has been granted access by the machine's owner).
(104) Some or all of the interface controls associated with the ball delivery machine may be presented to the user on the user's phone via the application. In addition to those interfaces described elsewhere, other types of interfaces may be provided. Some such interfaces can include lower level control of the ball-throwing machine. For example, the application can provide interface elements that, when interacted with by the user, cause the ball delivery machine to turn on or off, to rotate so as to aim ball delivery at a different point of the court, to deliver a single ball, or to otherwise engage or initiate any of the mechanical or electrical operations of the ball delivery machine. In addition to this low-level control, the application can also permit higher level control of the ball-throwing machine. For example, the application can provide interface elements that, when interacted with by the user, cause the ball delivery machine to engage routines made up of multiple or sequential low-level activities. Such routines include, but are not limited to, running one or more drill programs. In such a way, the technology allows a user to provide the same or substantially similar control directives to a ball delivery device from a remote location. This provides for a technical advantage over other machines which require a user to be close enough to touch the machine to access some of the control inputs. For example, a trainer can turn on a machine without having to cross a court that is being used by a player for warm-ups, thus allowing the trainer to avoid interrupting a player preparing to go through drills with the ball delivery machine. In another example, user safety is improved, as a trainer can modify a drill or otherwise control the ball delivery machine without standing near the machinewhich could otherwise put the trainer at risk of being struck by a delivered ball, errant pass, or player going in for a rebound or layup. In another example, users with limited physical abilities (e.g., manual dexterity deficit, a prosthetic limb that is not trackable with conventional touchscreens) can use whatever accessibilities are built into their client device and access this technology on an equal footing with typically-abled users that are able to use the default touchscreen of the ball delivery machine or their typical phone.
(105) Communication between a client device such as a phone and the ball delivery machine uses one or more links in a data network. For example, the client device and the ball delivery machine may directly communicate (e.g., over BLUETOOTH) via a network that allows for direct end-to-end communications. In some examples, the client device and the ball delivery machine may communicate indirectly (e.g., over the internet) via a network that allows for intermediary routing and/or heterogeneous subnetworks.
Virtual Group Training
(106) The technology described in this document can be used to allow a single remote trainer to train a variety of players that are geographically separated. For example, a trainer working in a gym in Minnesota, USA, can run a live or recorded virtual, group training class for students in other parts of Minnesota, other states in the USA, and in other countries. In another example, the trainer may be in one location, and a team of players may all be located another location in a training facility with a series of bays that each have a ball delivery machine and hoop. In this way, a single trainer can reach the general public anywhere in the world or a geographically remote team without the players or the trainers having to take the time and expense of travel.
(107) The trainer can be provided with a trainer-dashboard interface allowing the trainer to run a live and ad-hoc training class. For example, the trainer can control a queue of drills to be performed. The drill at the head of the queue can be performed generally simultaneously (e.g., after accounting for network lag and other technical limitations) by each ball delivery machine enrolled in the class. As the drill is completed, the drill can be removed from the queue and the next drill can be promoted to the head of the queue, at which point the ball delivery machines can transition to the new drill. This dashboard can include interface elements to control the queue, the active drill, and other drills that are queued up. This can include queue controls to add and remove drills, reorder drills, etc. in the queue. Drill controls can be provided to modify one or more parameters of a drilleither the live drill currently being run or other drills queued up for the future. These parameters can include tempo, number of shots to be made, early termination of a drill, repeating portions of a drill, etc.
(108) The dashboard can be provided to the trainer. In some cases, the trainer may be using a computing device and the dashboard is rendered for trainer to see. In some cases, the trainer may be on a court, going through the class with the players, and may be using a producer to listen for the trainer's instructions and interact with the dashboard. The use of the producer while the trainer completes the drills can allow, for example, a trainer to in some cases act as a class leader, with their machine acting as an imitator and each player's machine acting as a follower that mimics or replicates the actions of the trainer's machine. This can advantageously allow the player to play along with the trainer and make a personal connection with the trainer, even though the player and trainer are far apart. The use of the trainer interacting directly with the dashboard can also allow, for example, a trainer that is mentally expert but not as physically fit or gifted as the players (e.g., an older coach working with world-class athletes of prime age) to push the players at the appropriate level regardless of the coaches physical abilities.
(109) The trainer (e.g., in any setup) can be recorded with a camera having audio and video recording capabilities to be transmitted to the players that are taking part of the class. For example, one or more video cameras can be incorporated into the trainer's ball delivery machine or around the trainer. Data from those cameras can then be streamed to the players for display on a screen on or near their basketball delivery machine.
(110) While the class is in progress, information from the players can be provided to the trainer leading the class. For example, a display for the trainer can show a running set of statistics for each player, including shots taken, made, field goal percentage, etc. In addition or in the alternative, aggregated statistics can be displayed for the trainer. For example, a count or percentage of players that are behind in a drill (e.g., due to pausing to collect and errant ball or take a water break) can be shown to the trainer. In addition or in the alternative, outlier players can be identified for the trainer. For example, if one player is on a hot-streak of made shots, cold-streak of missed shots, or is leading or lagging the class in field goal percentage by a predetermined threshold, that player can be uniquely identified in the display. With this information, the trainer is able to advantageously control the class using player feedback, even though the trainer is not able to completely monitor each player all at the same time due to geography and complexity of doing so. For example, the trainer can observe the running statistics for each player to see if the class is generally able to complete the drills at a satisfactory rate or if the difficulty should be adjusted on-the-fly. In another example, the trainer can use the aggregated statistics to see if a sufficient portion of the class if behind and call a pause to let every player catch up before starting a next drill. In another example, the trainer can use the outlier display to acknowledge a well-performing player or note a lagging player that may need additional support.
(111) In some aspects, virtual group training can be achieved by providing a system that includes a plurality of basketball delivery machines, one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations. The operations include controlling operation of each of the plurality of basketball delivery machines in real time. The operations can include controlling each of the plurality of basketball delivery machines to perform the same drill at the same time. Each of the plurality of basketball delivery machines are controlled to throw basketballs to a plurality of locations.
(112) The operations can include delivering audio and video to each of the plurality of basketball delivery machines in real time.
(113) In some aspects, the plurality of basketball delivery machines are incapable of executing drills without control from a master controller. The master controller comprises the one or more processors and the computer-readable storage medium. Each of the plurality of basketball delivery machines includes a controller capable of controlling an individual one of the basketball delivery machines in response to a master controller and also controlling the individual one of the basketball delivery machines independent of control from the master controller.
(114) In some aspects, virtual group training can be achieved by providing a first basketball delivery machine having a user interface, a plurality of basketball delivery machines, one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations. The operations include controlling operation of the plurality of basketball delivery machines as a function of inputs received on the user interface of the first basketball delivery machine. The first basketball delivery machine is configured to operate in an instructor mode while the plurality of the other delivery machines operate in a participant mode, wherein the instructor mode includes operations to send, to basketball delivery machines operating in participant mode, instructions to perform actions to mimic actions of the first basketball delivery machine.
(115) In some aspects, virtual group training can be achieved by providing a system that has a first basketball delivery machine having a user interface, a plurality of basketball delivery machines, one or more processors, and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations. The operations include receiving, at the first basketball delivery machine, statistics sensed by each the plurality of basketball delivery machines performing drills, and displaying, on the user interface of the first basketball delivery machine, the statistics, wherein the statistics are displayed on the user interface of the first basketball delivery machine during the drills.
(116) In some aspects, virtual group training can be achieved by controlling operation of each of a plurality of basketball delivery machines in real time. The operations can include controlling each of the plurality of basketball delivery machines to perform the same drill at the same time. Each of the plurality of basketball delivery machines are controlled to throw basketballs to a plurality of locations. The operations can include delivering audio and video to each of the plurality of basketball delivery machines in real time. The plurality of basketball delivery machines are incapable of executing drills without control from a master controller. The master controller comprises the one or more processors and the computer-readable storage medium. Each of the plurality of basketball delivery machines includes a controller capable of controlling an individual one of the basketball delivery machines in response to a master controller and also controlling the individual one of the basketball delivery machines independent of control from the master controller.
Drill Templates
(117)
(118) User interface 330 includes a build a drill area 332 that can include a bar that extends across user interface 330. The build a drill area 332 is user-selectable, and selection of the build a drill area 332 opens a drill builder interface that can be free of indicia and allows a user to build a custom drill without suggested locations from a template. In some aspects, the drill builder interface can include one or more of the interfaces described herein in reference to
(119) User interface 330 includes a my training area 334 that can include a bar that extends across user interface 330. The my training area 334 is user-selectable, and selection of the my training area 334 opens a personalized interface for the user logged into the ball delivery machine. The personalized interface can include favorited workouts, assigned/recommended workouts, and custom workouts built by the user or selected by the user and saved to the personalized interface. The personalized interface can include locations available to the user based on the user's court layout. For example, in a training facility, baseline shots may not available due to limited space. In a driveway of a user, a house or other structure may block certain shooting locations. The personalized interface can track the limitations of the user's court and can store, recommend, and/or recommend drills that the user can perform at their court.
(120) This technology can be used to prompt a user to design or use drills based on the personal needs and skills of a particular user. That is, the technology can record information about a user, determine the strengths and weaknesses of that user, and provide recommendations unique and specific to the skills of the user and/or as a function of the historical performance of the user. The historical performance of the user can include a sensed shooting percentage and/or one or more drills that have been previously performed.
(121) In one example, the technology can index users based on one or more parameters of their demonstrated skills and/or fitness level. This can include ranking players in order and/or based on their position in a series of players (e.g., first, second, third), assigning a metric to each player (e.g., free-throw percentage, shooting accuracy), categorizing each player into one of a plurality of possible categories (e.g., beginner, novice, intermediate, expert). Then, based on the indexing, one or more drills may be recommended and/or customized. For example, the system may maintain a collection of drills each tagged with one or more category (e.g., beginner, novice . . . ). A player classified into a category can then be presented with a prompt to try one of these drills. In some cases, the drill may be modified based on the strengths and weaknesses compared to other players in the same category. For example, an intermediate player that has shown better-than-typical accuracy at three-point shots for an intermediate may be prompted with a drill with extra short-range shooting, while a different intermediate player with poor long-range accuracy may be prompted with the same drill with extra long-range shooting.
(122) In some cases, actual game data may be used by the system to create the personalized drill prompts. For example, video recording, motion capture, and/or play-by-play data for a player may be supplied by the system. The system can parse this data to extract one or more measures of player performance. For example, video recording can be subject to image recognition to identify a player and their actions in a game. Motion capture data can be compared to ideal shot form data to identify shots where the player is exhibiting more or less ideal form. Play-by-play data can be parsed to identify shooting percentage or other measures of performance. With this information, drills may be prompted or modified as described.
(123) Data from peripheral sensors may also be used. For example, one or more sensors may be used that measure player or ball movement when a player is using the ball return device or when the player is in a game or practice environment without the ball return device. These sensors can include, but are not limited to, computer vision (e.g., video camera, stereoscopic cameras, depth-sensors such as LIDAR or radar), accelerometers in the ball, and body worn sensors (e.g., on a wrist or arm-sleeve). These sensors can be used to generate parameters of player motion or ball motion such as player acceleration, balance, top-end speed, form (shooting, running, etc.) and jump information (height, hang time) as well as ball motion such as arc, rotation, speed, spin axis, impacts on the hoop before passing through the hoop, etc. With this data, the system can identify strengths and weaknesses for a player to prompt and/or modify drills.
(124) User interface 330 includes selectable categories 340 that are user-selectable and control the drills displayed in the drill template area 342. Selectable categories 340 group drill templates based on drill type, the categories can include all drills, 2 point drills, 3 point drills, recent drills, and saved drills. The selectable categories control the templates shown and the categories can, once selected, be scrollable, to show additional templates within selected category.
(125) The drill template area 342 can be dynamically updated based on serval variables including what users of various basketball delivery machines are doing, drills the user has been performing recently. The drill template area 342 may present templates that are available by and recommended for the ability level of the user, and templates that are recommended by trainers, coaches, and professional players. The drill template area 342 can include a template marketplace where users can create and publish drills and drill templates, and the published templates can be voted up and down by other users. Drill template area 342 can include drill templates that involve exercises beyond shooting, for example, shooting with ball handling, ball handling, conditioning, shooting with conditioning, etc.
(126) In some aspects, drill templates may be combined to build another drill. For example, a second drill template may be presented on the user interface, and user inputs can be received that customize the second drill template. A second drill can be created based on the second template and user inputs. The second drill and the first drill (e.g. a drill that has already been created) can be combined and saved as a new drill that includes the parameters of both drills. The parameters of both drills can be combined to create a workout, which can be a collection of drills. They may be all shooting drills or some may be non-shooting drills.
(127) Selection of one or more of the drill templates opens a template interface where a user can make changes to the template and customize a drill program based off of the template. The drill template may be customized by changing the ball delivery locations, the shot locations, the number of shots, the number of delivery locations, the order of the delivery locations, the tempo of the ball delivery machine (e.g. the tempo could be slower at first as a warm up and then increase at the middle during the peak of the program, and decrease towards the end as a cool down), player movement, drill goals, and game-like scenarios (including additional passers, obstacles, marks, etc.). Users may share a template with other users (e.g. within the application, outside of the application). Users may annotate templates (e.g. labeling based on shot locations, pass locations, obstacles, etc.). In some aspects, the basketball delivery machine may import a playbook from a coach or a trainer, and convert the playbook into templates (e.g. a dribble drive play). The system may highlight drill templates based on the time of year (e.g. pre-season, in season, post season, off season) or based on the progress a user has made through a workout regimen (e.g. finished a beginner regimen, finished an age regiment, advanced to a better team, etc.).
Build a Drill
(128)
(129)
(130) Each of the graphical user interfaces described herein may implement a heat map of the user's statistics to guide the user to create a drill that will optimize their performance. The heat map can be implemented by presenting a user interface having statistics presented on a portion of an image of a basketball court, generating a drill based on user inputs received while presenting the user interface having statistics presented on the portion of the image of the basketball court, and controlling the basketball delivery machine to execute the drill.
(131) Graphical user interface 420 includes one or more ball delivery locations 428 (e.g. ball delivery locations 428a, 428b, 428c, 428d, 428e) positioned at locations on the representative basketball court 424. Ball delivery locations 428a, 428b graphically represent candidate ball delivery locations to which ball delivery machine 10 will deliver basketballs during execution of the workout program. Each of ball delivery locations 428a, 428b, 428c, 428d, 428e include a number corresponding a sequential order of ball delivery to the ball delivery locations. That is, ball delivery location 128a illustrates the numeral 1 corresponding to a first order of ball delivery, and ball delivery location 128b illustrates the numeral 2 corresponding to a second order of ball delivery. While the order of ball delivery locations 1 through 5 and/or 482a through 428e may be employed, a custom order of ball delivery locations may be implemented where the user can choose any order of ball delivery locations (e.g. left to right, right to left, or a custom order as chosen by the user selecting the order of locations).
(132) User interface 420 that includes a moveable control element 425 positioned within control bar 427 that extends across the user interface 420, the control bar 427 defines the area that the moveable control element 425 can move and/or slide within. User inputs (e.g. user placing their finger on the screen and sliding across the surface of the screen with that finger) to moveable control element 425 move and/or slide the moveable control element 425 within the control bar 427, the position of the moveable control element 425 controls the rotational position of representative ball delivery machine 426. That is, user interface 420 updates preview area 422 to indicate the direction the representative ball delivery machine 226 is facing based on the position of the moveable control element 225.
(133) User interface 420 includes a two point value button 440 and a three point value button 442, the two point value button 440 and the three point value button 442 are user-selectable (e.g. by a user touching one of the buttons 440, 442), and selection of one of the buttons 440, 442 indicates a distance for the ball delivery machine to throw the pass. For example, if the two point value button 440 is selected at pass location 428a, ball delivery machine will deliver the pass within the three-point arc so the user can shoot a two-point shot. If the three point value button 442 is selected at pass location 428a, ball delivery machine will deliver the pass outside of the three-point arc so the user can shoot a three-point shot.
(134) User interface 420 includes a drill variables area 460 that is separate from the drill preview area 422. The drill variables area 460 includes selectable variables that the user can attribute to the custom drill program. The drill variables area 460 includes a number of balls per location area 462 that allows a user to select the number of balls that will be delivered to each selected pass location. The balls per location area 462 can include increase and decrease buttons that are user-selectable to add or subtract the number of passes that are delivered to each location. The drill variables area 460 includes a tempo area 464 that allows a user to select the tempo at which the ball delivery machine will deliver balls to each selected pass location. The tempo area 464 can include increase and decrease buttons that are user-selectable to speed up or slow down the tempo of passes that are delivered to each location.
(135) Drill variables area 460 includes user-selectable rotation direction buttons that include an around the arc and across the baseline button 466 and an around the arc and back button 467. The around the arc and across the baseline button 466 can be selected to choose a player movement option where the player progresses through the drill around the arc and runs across the baseline once the player reaches the end of the arc. The around the arc and back button 467 can be selected to choose a player movement option where the player progresses through the drill around the arc and retraces the arc on the way back to the beginning of the drill.
(136) Drill variables area 460 includes a save drill area 470, an undo button 471, and a start shooting button 472. The save drill area 470 is user-selectable and allows a user to save a drill created on the user interface 420, the drill can be saved to a user account, to the ball delivery machine, to a drill database, and can be shared with other users. The undo button 471 can undo a most recent selection or action at user interface 420. For example, a user may select the undo button 471 to remove a selection of a ball delivery location. The user may select the undo button consecutively, and the most recent action will be removed with each selection of the undo button 471. The start shooting button 472 sends the drill instructions to the basketball delivery machine to begin the custom drill.
(137)
(138) User interface can include an under hoop selection area 480 that is user-selectable and allows a user to select options for what objects or actions the player can take under the hoop. The under hoop selection area 480 allows the user to position the machine under the basket or away from the basket. The under hoop selection area 480 can also allow the user to change the court layout and what pass locations a user can choose.
(139)
(140) User interface 520 includes a moveable control element 525 positioned within control arc 527 that reflects ball delivery positions along an arc 523 of preview area 522. The control arc 527 defines the area that the moveable control element 525 can move and/or slide within. User inputs (e.g. user placing their finger on the screen and sliding across the surface of the screen with that finger) to moveable control element 525 move and/or slide the moveable control element 525 within the control arc 527. Moveable control element 525 controls the position of the selectable ball delivery location via select location button 529. For example, moveable control element 525 can be positioned in the left corner as shown in
(141) User interface 520 includes a point value button 540, the point value button 540 is user-selectable (e.g. by a user touching the button 540, and selection of the button 540 selects a distance for the ball delivery machine to throw the pass. For example, if the point value button 540 is selected in a two point position and a user selects the select location button 529, the ball delivery position (e.g. 528) will be positioned as a two-point shot, and ball delivery machine will deliver the pass within the three-point arc so the user can shoot a two-point shot. If the point value button 542 is selected in a three-point position at pass location 528, ball delivery machine will deliver the pass outside of the three-point arc so the user can shoot a three-point shot.
(142)
(143)
(144)
(145)
Recomdations and Assessments
(146) The basketball training machines, user interfaces, and data processing described in this document can be used to analyze and assess the performance of players and to utilize the analyzed performance to recommend training programs, workout programs, drills, and schedules to players to improve their performance. A user can input metrics to determine an appropriate assessment, the metrics can include a player's age, height, weight, position, and/or team level. A player assessment can be given to establish a current performance level of a player, and additional assessments can be planned or scheduled based on the time the first assessment was given and performed. For example, assessments could be given at the beginning and end of each practice, once a week, at the beginning and end of each season, throughout the course of a season, throughout the course of a training camp, etc. After each assessment, the performance of the player is evaluated to determine their current performance level, and to determine a practice plan and training regimen to improve the player's performance. The current performance of the player can be compared to thresholds or benchmarks for players of similar age, similar skill level, on the same team, or benchmarks of the current player's previous performance.
(147) The assessment can be performed using a sensor system that tracks several parameters including the player's movement, the ball position throughout the drill, the ball delivery location, the shot location, the trajectory of the shot, a make and/or miss, and the number of shots taken. The sensor system can include one or more cameras, shots made sensors, shot location sensors, Doppler sensors, wearable sensors (e.g. shoe sensor, wrist sensor, arm sensor, heart rate sensor), potentiometers, ball sensors, and combinations thereof. The parameters tracked by the sensor system can be analyzed to complete the assessment and provide the player, a coach, a trainer, or a parent feedback regarding the player's performance. For example, the feedback can include information such as a number of shots made, a number of shots missed, a number of shots missed left, a number of shots missed right, a number of shots missed long, a number of shots missed short, shot trajectory feedback, distance traveled, average heart rate, and video and audio feedback to illustrate proper form vs. their form.
(148) In response to a completed and analyzed assessment, the system can recommend workouts including tailored drills, conditioning, and form review exercises to the player based on the analysis of the assessment. The player can complete the recommended workouts and return for another assessment. The assessment can be a part of the recommended workouts, and can re-assess the skills addressed in the previous assessment, or may assess different skills than the previous assessment. This process may be repeated so that the player is consistently challenged and improves with each practice session.
(149) Data processing described in this document can be performed in a variety of configurations. For example, processing operations can be performed on a ball return device, on a user's phone, on a user's computer (e.g., desktop or laptop device), on a cloud server (e.g., a physical server, virtual server, or hosted application). Various configurations can be used to realize various advantages. For example, by performing processing operations on a ball return device, the ball return device can have access to the resulting data products no matter what kind of network access is or is not available. This may be advantageous, for example, when a user is generating a new drill and the system begins creating a new animation to show the drill to the user. If the rendering or animation is performed by the ball return device, the rendered animation can be accessible even if the ball return device is not connected to a data network at that time.
(150) However, some configurations of a ball return device may not have sufficient computational resources (e.g., processing power, memory) to perform some of the operations needed for this or other use cases. In such scenarios, some or all of various processing operations may take place on other devices. For example, a cloud service-which will often have cheaper computational resources than a manufactured consumer devicecan be used to perform operations that the ball delivery device is not capable of or not programed to perform. In addition to potential lower costs, this can allow for ease of upgradability. For example, if an algorithm processed by a cloud service is updated, one central implementation of the algorithm can be pushed to the cloud service instead of pushing an update to the thousands or millions of ball return devices in the network.
(151) In some cases, user devices (e.g., phones, laptops, desktops, tablets) may be used to perform some of the operations described in this document. In some cases, this configuration may advantageously allow for reduced network traffic compared to other configurations. For example, in the case where a user records video with their phone, the video may be processed by the phone to reduce file size (e.g., lower bitrate or framerate) before the video is transmitted. Similarly, this can move processing operations to the edge of the networkthat is, in the client devices instead of cloud services. As will be appreciated, each new user can introduce additional computational requirements on the system as a whole. By moving computations to the user's device, the system can scale to large numbers of users because while each user brings computational demands, they would also bring computational resources to balance out those demands.
(152) In some aspects, a basketball training system is provided that includes a computing device comprising one or more processors and computer memory storing instructions that, when executed by the processors, cause the processors to perform operations. The operations include storing performance measures for each of a plurality of users, receiving a request for a requested drill for a particular user, generating a drill for the particular user based on the user based on performance metrics for the user, the drill specifying at least an activity and at least a first parameter that defines a property of the activity. The system includes a basketball delivery machine configured to execute the drill for the particular user according to the first parameter, including delivering the basketball for the user in accordance with the drill and measuring the performance of the particular user.
(153) The operations can include receiving a report of the performance of the particular user, modifying the performance metrics for the user based on the received report, receiving a second request for a requested drill for the particular user after the performance metrics for the user have been modified, generating a second drill for the particular user based on the modified performance metrics for the user, the drill specifying at least the one activity and at least a second parameter that differs from the first parameter in relation to the difference between the performance metrics and the modified performance metrics. The basketball delivery machine can be configured to execute the second drill for the particular user according to the second parameter such that the second drill has been modified by use of the second parameter to account for change in the skill level of the particular user.
(154) The operations can include classifying each of the plurality of users into one of a plurality of skill groups, generating the first parameter based on the particular user being classified into a first skill group, modifying the performance metrics for the user based on the received report by reclassifying the particular user into a second skill group, and generating the second parameter based on the particular user being classified into the second skill group.
(155) In some aspects, the first parameter is a shot percentage, and the measuring of the performance of the particular user is a record that records a record of the user meeting or failing to meet the shot percentage in the drill. In some aspects, the first parameter is a number of shots to be taken in the drill and the second parameter is a second number of shots to be taken in the drill that is different than the first number of shots. The ball delivery machine is configured to deliver the ball a number of times in the drill according based on the parameter used when executing the drill.
Drill Review
(156) The basketball training machines, user interfaces, and data processing described in this document can be used to review a completed workout program or drill after a player completes the drill. The drill review can be performed using a sensor system that tracks several parameters including the player's movement, the ball position throughout the drill, the ball delivery location, the shot location, the trajectory of the shot, a make and/or miss, and the number of shots taken. The sensor system can include one or more cameras, shots made sensors, shot location sensors, Doppler sensors, wearable sensors (e.g. shoe sensor, wrist sensor, arm sensor, heart rate sensor), potentiometers, ball sensors, and combinations thereof. The parameters tracked by the sensor system can be analyzed to complete the assessment and provide the player, a coach, a trainer, or a parent feedback regarding the player's performance. For example, the feedback can include information such as a number of shots made, a number of shots missed, a number of shots missed left, a number of shots missed right, a number of shots missed long, a number of shots missed short, shot trajectory feedback, distance traveled, average heart rate, and video and audio feedback to illustrate proper form vs. their form.
(157) The drill review can include a time series of the workout program can be shown to the player, coach, or trainer after the workout program is completed, the time series can be a video (e.g. sped up video), picture, graphical chart, or an animation that illustrates the player's performance during the workout program. The drill review can incorporate biometric data from the wearable sensor(s) and/or the camera system to provide feedback on the player's form and shot outcomes. For example, the drill review can provide an illustration of a player's form for each or all of the made shots vs. an illustration of the player's form for each or all of the missed shots. This feedback from the drill review can illustrate the differences in form when a user makes a shot and misses a shot, and can provide feedback about the player's consistency.
Remote Screen
(158)
(159) One or more cameras can be in communication with, connected to, and/or incorporated within the basketball shooting machine to record a video of a user performing the drill. The video can capture the shooting form of the user for each shot the user takes during the drill. Shooting form can refer to the mechanics of the user while the user shoots the ball. The mechanics of the user can include the grip, the stance, the release, the jump height, the timing, the angles of the arms, legs, elbow, wrist, fingers, the release height, the velocity of the ball, the arc of the ball, the apex of the ball, and combinations thereof.
(160) Another network connected device can connect to the cloud where the data and/or videos are stored, and the network connected device can stream the data on the internet connected device in real time and/or in near real time such that the network connected device is actively displaying the updated data and videos sent from the basketball shooting machine, cameras, and sensors that communicate data and videos to the user interface 620 (e.g. via a network and/or the cloud). In real time can refer to the ability of the network connected device to display the statistics and video of a user performing a drill while the user is performing the same drill. For example, the statistics of number of shots made, number of shots missed, number of shots taken, number of shots made in a row can be illustrated to the user while the user is performing the drill. Similarly, video of the user performing the drill can be displayed to the user while the user is performing the drill. For example, the user can take a plurality of consecutive shots during a drill, and there are recorded videos of each shot taken. The system can display videos of every shot the user has taken and illustrate if each shot was made or missed, along with analysis of the user's shooting form including their mechanics. The system can also display individual feedback for each shot taken. For example, a user could take a shot during a drill and could watch the video of their shot along with the analysis of their form before taking another shot.
(161) The network connected device can be a computer, a TV, a phone, a tablet, or a scoreboard. User interface 620 can be used to show multiple streams of data from multiple ball delivery machines. This information can be displayed to the user to allow them to compete against each other or better understand how they rank real time against another player forcing pressure situations to be more game like.
(162) The techniques described herein enable a user (e.g., player, coach, administrator, training expert, or other user) to select desired ball delivery locations relative to a visual representation of a basketball court that are not limited by indications of predetermined ball delivery locations. Basketball training machine 10 can adjust a ball delivery speed and/or trajectory of delivered balls to automatically adjust for varying distances between basketball training machine 10 and selected ball delivery locations, as well as differing types and/or elevations of passes at any one or more of the ball delivery locations. Moreover, the ability to position basketball training machine 10 away from the basketball goal and to easily select ball delivery locations (and, in some instances, separate user shot locations), specify player movement, player maneuvers, and identify goals associated with such locations can enable the user to better simulate game-like conditions where passes are most frequently received from a location other than beneath the basketball goal. This ability to better simulate game-like player movement as well as pass delivery and receipt locations at varying locations and distances from the basketball goal without limiting such locations via predefined indicia can increase an effectiveness of the time spent training to prepare the user to effectively respond to game-like conditions.
(163) While the invention has been described with reference to an exemplary embodiment(s), it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment(s) disclosed, but that the invention will include all embodiments falling within the scope of the appended claims.