Methods, systems, and apparatus, including computer programs encoded on computer storage media, for a basketball training system. One method can include, while a ball delivery system is executing a workout for a user, obtaining sensor data from one or more sensors of the ball delivery system; generating a workout signature using the sensor data, the workout signature including representations of actions that occurred at different times during the workout; evaluating the generated workout signature; and providing a result of evaluating the generated workout signature using an indicator of the ball delivery system.
Legal claims defining the scope of protection, as filed with the USPTO.
. A computer-implemented method comprising:
. The method of, wherein evaluating the generated workout signature comprises:
. The method of, wherein the previously generated workout signature was previously generated during a previous workout of the user.
. The method of, wherein providing the result of evaluating the generated workout signature using the indicator of the ball delivery system comprises:
. The method of, wherein the audio file includes recorded or generated spoken words indicating the result of evaluating the workout signature.
. The method of, comprising:
. The method of, wherein generating the workout signature using the sensor data comprises:
. The method of, wherein the sensor data represents biomechanical input.
. The method of, wherein the sensor data representing the biomechanical input includes one or more images captured from a camera of the ball delivery system.
. The method of, comprising:
. The method of, wherein the sensor data includes biometric input.
. The method of, wherein obtaining the sensor data comprises:
. The method of, wherein the sensor data includes features of a shot of the user.
. The method of, wherein the sensor data includes (i) biomechanical input, (ii) biometric input, and (iii) features of a shot of the user.
. The method of, comprising:
. The method of, wherein the workout for the user includes the user shooting a basketball towards a basketball hoop of the ball delivery system.
. A system comprising one or more computers and one or more storage devices on which are stored instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:
. The system of, wherein evaluating the generated workout signature comprises:
. The system of, wherein the previously generated workout signature was previously generated during a previous workout of the user.
. One or more computer storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:
Complete technical specification and implementation details from the patent document.
This application claims the benefit of priority to U.S. Provisional Application No. 63/574,607, filed on Apr. 4, 2024, the contents of which is hereby incorporated by reference.
The game of basketball requires a player to have physical strength and conditioning, and also to have special skills. Successful development of those skills requires repetition during practice.
This specification describes technologies for a basketball training system. The basketball training system can intervene over time or during a training session to help players maximize their performance. These technologies can include prompting a user to start a particular drill or exercise. During the workout, the system can track a user while they are exercising, e.g., using sensors, to identify specific areas for improvement, evaluate and provide evaluation results, or make adjustments in a workout. Evaluation can include using previously tracked data as a baseline to evaluate a current performance—e.g., allowing players to compete with prior versions of themselves performing the same or similar workouts through previously captured sensor data.
In some cases, techniques can include generating a workout signature from sensor data obtained during a workout. Sensor data can be obtained from sensors of a ball delivery system. Sensor data can indicate biomechanical input, biometric input, features of a shot—such as an indication of a ball going through or not going through a hoop, an indication of a ball hitting a rim or backboard, or an indication of a ball not hitting a rim or backboard—among others.
In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of, while a ball delivery system is executing a workout for a user, obtaining sensor data from one or more sensors of the ball delivery system; generating a workout signature using the sensor data, the workout signature including representations of actions that occurred at different times during the workout; evaluating the generated workout signature; and providing a result of evaluating the generated workout signature using an indicator of the ball delivery system. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. In particular, one embodiment includes all the following features in combination. Feature 1: Evaluating the generated workout signature includes comparing at least a portion of the workout signature with a previously generated workout signature. Feature 2: The previously generated workout signature was previously generated during a previous workout of the user. Feature 3: Providing the result of evaluating the generated workout signature using the indicator of the ball delivery system includes activating an audio device of the ball delivery system to play an audio file. Feature 4: The audio file includes recorded or generated spoken words indicating the result of evaluating the workout signature. Feature 5: Actions include determining, using the evaluation of the generated workout signature, whether the user has improved or declined relative to a previous workout, where providing the result includes providing an indication that the user has improved or declined relative to the previous workout. Feature 6: Generating the workout signature using the sensor data includes providing the sensor data to one or more machine learning models; and generating an element of the workout signature using output of the one or more machine learning models. Feature 7: The sensor data represents biomechanical input. Feature 8: The sensor data representing the biomechanical input includes one or more images captured from a camera of the ball delivery system. Feature 9: Actions include detecting, using a trained machine learning model, human features in the one or more images; and generating, using the detected human features, the biomechanical input. Feature 10: The sensor data includes biometric input. Feature 11: Obtaining the sensor data includes obtaining the biometric input from a wearable device of the user. Feature 12: The sensor data includes features of a shot of the user. Feature 13: The sensor data includes (i) biomechanical input, (ii) biometric input, and (iii) features of a shot of the user. Feature 14: Actions include updating, during the workout of the user, the workout signature. Feature 15: The workout for the user includes the user shooting a basketball towards a basketball hoop of the ball delivery system.
The technology described in this specification can be implemented so as to realize one or more of the following advantages. For example, a training system can obtain sensor data during one or more workouts and use the obtained data to dynamically adjust training or provide evaluation results. In some cases, technologies described allow players to compete against prior recorded workouts of themselves performing the same or similar workouts. Allowing such competition can increase a rate of improvement for players. In regard to dynamic adjustments, training can be adjusted in real time by a ball delivery system or through connected devices providing recommendations. The system improves over static methods of training in that the system is able to adjust training for a user as the user improves or requires specific additional training. Training can also be improved by the system generating workout signatures. The system can provide results of evaluating the generated signatures. Results can include one or more of adjustments to subsequent workouts or drills—e.g., that are determined by the system using obtained sensor data-recommendations for technique adjustments, specific drills, progress indication, among others. In some cases, data recorded during a workout can be optimized or filtered, e.g., sensors of a system can be selectively activated during workouts. Selective activation can help to reduce storage of data that might be unused. In general, selective activation can reduce storage requirements and required bandwidth, e.g., for providing data from a sensor to a processing unit or between one or more elements of a processing device. In some cases, workout pace can be adjusted—e.g., based on sensed input from a user working out. By adjusting a pace of a workout, energy can be saved from operating a device faster or using more power than required for a particular user at a particular time.
The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
Like reference numbers and designations in the various drawings indicate like elements.
shows an environmentthat includes a ball delivery system. The ball delivery systemcan help a shooteroptimize training. In general, during a workout, the ball delivery systemcan track a shooterwhile they are exercising, e.g., using sensors, to identify specific areas for improvement, evaluate and provide evaluation results, or make adjustments in a workout. Evaluation can include using previously tracked data as a baseline to evaluate a current performance—e.g., allowing players to compete against themselves performing the same or similar workouts through previously captured sensor data.
In more detail, the ball delivery systemcan use one or more sensors, e.g., sensor(s)-, to track the shooterto provide evaluation results by, e.g., adjusting the workout, using visual or audio indicators, device notifications, starting new workouts, or the like. For example, sensorcan include sensors that track the shooterat a distance, such as a camera, electromagnetic sensor, or a combination of these among others. The sensorcan include wearable or mobile devices, such as a user smartphone, smartwatch, or a combination of these among others.
The ball delivery systemincludes an indicator, sensor(s)-, a return system, and a control unit. The indicatorcan include a display or audio device configured to provide information, e.g., to the shooter. In some cases, the indicatorincludes the return system—e.g., a pace or frequency of balls provided to the shootercan help indicate evaluation results. The sensor(s)-can include one or more sensors—e.g., a camera, motion detector, infrared sensor, LIDAR, heat sensor, heart rate monitors, glucose monitors, moisture detectors, among others. The return systemcan include a device to provide a ball to the shooter. The device can include mechanical elements configured to project a ball to a particular location for the shooterto, e.g., catch the ball and shoot. The control unitcan include one or more computers. The control unitcan include edge devices affixed to the ball delivery systemand cloud computing components communicably connected to one or more computers affixed to the ball delivery system.
The ball delivery systemstarts a workout for the shooter. The ball delivery systemcan start a workout in response to determining a current time, obtaining input from a user, such as the shooteror other user, or in response to a previous workout ending. The workout can include one or more drills—e.g., shoot a number of shots at a number of different locations over a period of time. The ball delivery systemcan cycle through drills to complete a workout. Multiple workouts can be performed in sequence.
In some implementations, the ball delivery systemdetermines a specific workout, including one or more specific drills, in response to performance of a previous workout. For example, the ball delivery systemcan perform one or more data processes, as described in this document, and use results of the data processes to generate a workout. The ball delivery systemcan then start the generated workout—e.g., by providing a ball to the shooteror indicating a start of a workout using the indicator.
shows the shootershooting a ballat a hoop of the ball delivery system. The ball delivery systemin this case has started a workout for the shooterthat involves the shootershooting from the location indicated. During execution of the workout the ball delivery systemobtains and processes sensor data from the sensor(s)-. Obtaining and processing the sensor data can be performed by the control unitof the ball delivery system.
The control unitincludes a sensor engine, a signature engine, an evaluation engine, and an action engine. The engines perform processes, e.g., using one or more computer processors, as described in reference to each respective engine.
The sensor engineof the control unitobtains sensor data from one or more of the sensor(s)-. The sensor enginecan obtain sensor data over wired or wireless networks from one or more of the sensor(s)-. The sensor enginecan perform one or more data transformations to convert sensor data from a raw type captured by one or more of the sensor(s)-to a type for processing by the control unit.
In some implementations, sensor data represents biomechanical input. For example, sensor data can include one or more images. The control unitcan generate biomechanical input using the one or more images. Biomechanical input can include motion of the shooter, such as body movement or arm movement during a shot or between shots. In some cases, biomechanical input can be represented in wearable device data obtained by the sensor engine. For example, the control unitcan generate biomechanical input using data from a wearable device, such as accelerometer data, GPS data, wideband data, among others. The control unitcan generate biomechanical input using data from one or more computer vision models—e.g., models using one or more images captured by a camera, where the one or more images include one or more representations of the shooter. The camera can include a camera, such as a smartphone or digital camera, positioned to capture images of the shooter. A camera can be affixed to a basketball hoop or situated on a tripod or other means of fixing a camera view to capture movement of the shooter.
Biomechanical input can be provided by the sensor engineto the signature engine, e.g., to be included as one or more elements of a generated signature. In general, any sensor data can be used to generate any element of a signature based on processing performed by the control unit, including processing performed by one or more machine learning models trained to predict one or more elements.
The signature enginegenerates a workout signature using sensor data obtained by the sensor engine. Example workout signatureis shown visually in. The example workout signatureincludes time varying elements collected by the sensors-over time, e.g., during a workout. In some cases, the workout signaturecan be represented as a curve that varies over time. Values along the curve can be generated by the signature engineprocessing sensor data obtained from the sensors-. In some cases, more than one curve is included in a workout signature. In some cases, a workout signature can be represented in other ways—e.g., a set of one or more values where the one or more values indicate at least a portion of sensor data obtained by the signature engine.
The signature enginecan process sensor data to determine one or more elements of a workout signature. Elements of a workout signature can include one or more of: (1) start time of workout, (2) end time of workout, (3) date of workout, (4) shots attempted, (5) shots made, (6) number of shots made in sequence without missing, (7) features of a shot—such as velocity of ball, arc, spin, among others, (8) locations from which shots are attempted—e.g., determined using sensor data, such as (i) visual recognition algorithms that detect a location of the shootershooting from image or other sensor data, (ii) processes that identify a trajectory of ball and determine location based on the trajectory, or (iii) determining shot location using sensor data from wearable device of the shooter, or (iv) based on predetermined location indicated by the workout, (9) features of pass to shooter—e.g., velocity, arc, spin of pass from the return systemto the shooter, (10) a number of shots taken at one or more locations, (11) a number of shots made at one or more locations, (12) a frequency or velocity of balls being launched from the return system, (13) location of the ball delivery system, (14) leaderboard ranking—e.g., global or local ranking corresponding to workout, drill within workout, or shooter, (15) drills or workouts previously performed, (16) number of previous days spent performing at least a part of a workout—e.g., a workout streak or a number of days within a threshold number of days where at least a part of a workout was performed, (17) heatmap data indicating attempts and made shots corresponding to location, (18) total shots attempted by the shooterusing the ball delivery system, (19) total hours spent by the shooterusing the ball delivery system, (20) achievements received or working towards, (21) goals set or completed, (22) distance of one or more passes from the return system, (23) bias of shot attempts—e.g., to which side a ball missed a target, (24) bias of made shots—e.g., use of backboard, rim hits, among others, (25) height of each player—e.g., determined using visual recognition algorithms operating on obtained image data by the ball delivery system, (26) shooting form of the shooter—e.g., using pose estimation software using one or more visual recognition algorithms, (27) an arc of one or more shots, (28) a release speed of one or more shots, (29) a path of a ball, (30) a release point of a ball, or (31) presence of lack of virtual defenders or other obstacles rendered in augmented or virtual reality.
In some implementations, the signature engineprocesses sensor data using one or more machine learning algorithms. For example, the signature enginecan process image data to detect visual elements, such as the shooteror the ball. By detecting visual elements over time, the signature enginecan generate one or more elements of a signature, such as one or more elements described in this document.
In some implementations, the ball delivery systemincludes a machine learning training system. For example, the ball delivery systemcan train one or more machine learning algorithms using ground truth data indicating sensor data for which known elements occurred. In some cases, ground truth data can indicate whether or not a shot arc corresponds to a particular angular degree, a particular velocity of a ball shot at the ball delivery system, a bias of an attempt or made shot, among others. Using such ground truth data, the ball delivery systemcan train one or more models to predict one or more elements of a signature. The predicted elements can be included in a generated workout signature, e.g., a workout signature generated for the shooter.
In some implementations, the signature enginegenerates a workout signature using attributes of the shooter. For example, the signature enginecan generate a workout signature using one or more of: workouts performed by the shooter, activities of the shooter, a determined skill level of the shooter, age of the shooter, gender of the shooter, among others. In some cases, the signature enginecan generate a signature using one or more attributes. For example, the signature enginecan increase or decrease one or more values in response to detecting one or more attributes. Some of the attributes can be used to perform categorial ranking—e.g., the signature enginecan generate one or more signatures for the shooterwith identifiers indicating attributes such as age or gender. The identifiers can then be used by a ranking engine to rank signatures based on categories, such as age or gender. For example, a shooter with a signature that indicates making X out of Y shots in Z minutes can be in the top N % of users in a specific age or gender category.
In some implementations, signatures generated by the signature engineare shared or edited. For example, the control unitcan generate one or more signatures and write data representing the one or more signatures into memory components of one or more computers of the control unit. The representative data can be manipulated automatically or using input from a user. Manipulation can include sharing the data with other devices. In some cases, data of a workout can be shared to enable competition between users. For example, competition can include a first user performing the same or similar workout as a second user and the control unitevaluating a performance of the first user in relation to the second user. In some cases, the second user is the same person as the first user—e.g., performing a workout at a different time or different location.
In some implementations, signatures include point values. For example, point values can indicate a number of shots made. In some cases, the number of shots made in a row can increase a point value for the shots made. For example, if a shot is made, a point value of a signature can increase by 1 or some other value. But if a shot is made within a sequence of one or more made shots, the point value can increase by more than the point value for a single shot—e.g., a multiple or increased value. Thus, the point value can indicate how many shots were made in a streak and help to identify consistent shooting from inconsistent shooting.
In some implementations, the signatures generated by the signature engineare baseline signatures. Baseline signatures can be used to evaluate a user of the ball delivery system, such as the shooter. Evaluation can include comparison of one or more baseline signatures and a current workout signature. Evaluation can be performed by the evaluation engine.
The example ofshows an example comparison of a baseline signatureand the example workout signature. The example workout signaturegenerated by the signature engineis compared with the previously generated workout signatureto determine whether a current user is ahead or behind—e.g., whether one or more values indicating the current workout indicate a user has improved compared to a baseline represented by the baseline workout. Instead of, or in addition to, comparing with a baseline workout, the systemcan compare with another user. In some cases, a current time can be represented as an end of the workout signature—e.g., the signature enginecan generate a signature in real time to record a user as they perform elements of a workout. The example workout signatureis above the curve of the baseline workout. In some cases, this can indicate that the current user is ahead of his personal record (PR) or another user.
In some implementations, the signature enginegenerates baseline signatures from generated workout signatures. For example, a baseline signature can include a previously generated workout signature for a user, such as the shooter. In some implementations, the signature enginegenerates baseline signatures using data from other users—e.g., from other workout sessions performed by other users. The other users can be of a same or different skill level compared with the shooter—e.g., for generating a baseline signature for the shooter. The other users can be using the ball delivery systemor another instance of the ball delivery systemor other system that provides data directly, or to one or more computers communicably coupled, to the control unitof the ball delivery system.
The evaluation engineevaluates one or more generated workout signatures. For example, the evaluation enginecan obtain one or more workout signatures, either complete or partially complete, from the signature engine. Evaluation by the evaluation enginecan include comparing one or more signature elements or values generated from one or more signature elements. Comparison can include comparisons of elements or values corresponding to a single signature or between elements or values of different signatures, where different signatures can be generated for different workouts of the same user or for different users performing the same or different workout.
In some implementations, the evaluation enginecompares a workout signature of the shooterwith a workout signature previously generated for the shooter. For example, the signature engine, or a signature engine of another system, can generate a signature that can be used as a baseline by the evaluation enginefor evaluating the shooterperforming the workout shown in. The evaluation enginecan compare elements of the current workout of the shooterwith the baseline signature. Comparisons can indicate overall performance improvement or decline—e.g., for a specific workout, drill, or across a set of workouts or drills. Performance can be measured using one or more signature elements, such as shots made, shot miss bias, shot made streak, shots attempted, among others including those described in this document. Comparison can indicate consistency—e.g., if the shooterhas consistently performed a given workout or drill over time or if the shooteris more consistent in making shots doing one drill compared to another or one workout compared to another.
In some implementations, the evaluation engineevaluates the shooterper shot. For example, the evaluation enginecan compare a shot of the shooterin a current workout to another workout—e.g., another workout performed by the same shooteror another user. One or more per shot evaluations can indicate if the particular shot indicates an improvement or decline for the shooter. In some cases, elements of the signature can be used to indicate whether one shot indicates increased performance compared to another shot—e.g., whether the shot was made or not, whether the ball entered the hoop cleanly without hitting backboard or rim, whether the ball had a particular spin or arc, among others. In some cases, the evaluation enginecan determine increased performance using time-based signature elements. For example, the evaluation enginecan obtain values indicating a number of made shots in a row per number of shots taken along a time-series of data in a signature. The evaluation enginecan determine a shooter had a streak of made shots that was longer, shorter, or the same as a previously performed workout. Based on the comparison with the previous workout—e.g., using a previously generated workout signature—the evaluation enginecan evaluate increased or decreased performance of a given shooter, e.g., for a particular workout identified using an identifier embedded within the corresponding workout signature. In some cases, in response to determining a longer streak of made shots in a current workout when comparing a current workout signature to a previous workout signature of the same or similar workout, the evaluation enginecan generate an indication for the given shooter that performance has increased.
In some implementations, the shootercompetes against themselves. For example, the evaluation enginecan obtain a signature of the shooterperforming a same drill or same workout. The signature can be generated by the signature engineor other system, e.g., during a previous workout performed by the shooter. The evaluation enginecan then evaluate the shooteragainst the previously generated signature. Evaluation can include indicating whether a previous shot was made or missed. Evaluation can include tracking one or more elements as described in this document.
Evaluation can include providing data to one or more machine learning models to determine whether a current workout is an improvement or decline compared to the previously generated signature. For example, one or more models can be trained using one or more signatures labeled with one or more values indicating an improvement or decline compared with one or more other signatures. In some cases, each signature can be represented using a vector or single value. A machine learning model can be trained to generate a vector or single value that represents a signature—e.g., provided a signature as input and output a vector or single value that is compared with labels for corresponding signatures. A distance between a vector or single value of a previously generated signature and a current workout of the shootercan then indicate an evaluation of the shooter—e.g., where a positive difference can indicate improvement and negative difference can indicate a decline.
The action engineperforms an action using a result of an evaluation. For example, the action enginecan obtain data indicating a result from the evaluation engine. In some cases, the evaluation enginecan indicate that a performance of the shooteris improved compared to one or more previously generated signatures. The action enginecan use one or more indicators to provide a result of an evaluation.
In some implementations, the action engineuses the indicatorto provide a result. For example, the action enginecan activate a display or audio device of the indicatorto provide a message to the shooter. The message can include text, colors, or other symbols. For example, the message can include an audio recording that encourages the shooterto keep going. The message can indicate a green, yellow, or red symbol indicating an evaluation with one or more previously generated signatures—e.g., where green indicates improvement, yellow indicates slight improvement, and red indicates decline, or other suitable scheme.
In some implementations, in addition to, or instead of, providing a result on the indicator, the action enginesuggests workouts or other actions using other communication means. For example, the action enginecan generate a digital message indicating specific workouts or interventions to be performed by a shooter to increase performance. The digital message can be generated and transmitted by the action engineusing various communication means, such as email, SMS, in-app notifications, or a combination of these among others. The actions suggested can be determined using output from the evaluation engine. For example, the evaluation enginecan determine that biomechanical input indicates a tightness on the right side of a shooter and, in response, the action enginecan generate a digital message suggesting that the shooter perform one or more specific stretches to alleviate the performance inhibition. The evaluation enginecan determine that movement data indicates decreased movement later in a workout and, in response, the action enginecan generate a digital message suggesting that the shooter perform cardio workouts to increase stamina or VO2 improving exercises. The action enginecan suggest or generate additional workouts or other actions (e.g., via the indicatoror other communication means). For example, the action enginecan prescribe, assign, or otherwise suggest workouts to the shooter. The workouts can include conditioning workouts based on results from the evaluation engine, the conditioning workouts can include running, exercises (e.g., pushups), skill drills (e.g., dribbling, passing, defending) before returning to a shooting drill (e.g., shooting drills, free throws, etc.). The workouts can include consequence workouts based on the results from the evaluation engine(e.g., after missed shot, the action enginecan instruct the shooter to perform exercises such as a run down and back with time tracking of run time and next shot time). The workouts (e.g., conditioning workouts, consequence workouts, or otherwise) can simulate game-like conditions for the shooter and add pressure to the shooter (e.g., physiological pressure, mental pressure).
An action suggestion can be based on one or more machine learning models trained using expert suggestions paired with determined evaluations, where the one or more models predict and are adjusted using error terms generated by comparing predicted suggestions with suggestions from experts. The suggestion can also be based on a tree of possibilities where leaves of the tree indicate suggestions and nodes within the tree indicate specific elements of a shooter's performance.
In some cases, techniques described can reduce storage or processing requirements. For example, the ball delivery systemcan remove data items based on a determination or prediction of use. In some cases, the ball delivery systemcan determine or predict that an item of recorded data or a stream from a sensor is not used or is not likely to be used, e.g., in processing or in generating a workout signature. In response to such a determination, the ball delivery systemcan not store the recorded data or data from the stream of the sensor or can initiate a turning off procedure of a sensor—e.g., by generating and sending a signal configured to turn of the sensor to the sensor.
In some cases, the ball delivery systemcan remove data previously stored. For example, the ball delivery systemcan delete a first baseline signature after an improved workout is recorded—e.g., the ball delivery systemcan maintain a single baseline signature to avoid storing data for all previously recorded workouts. In some cases, only a best workout is retained and is deleted when a subsequent workout is recorded that is better. Best and better can refer to a comparison of a workout signature indicating that values of the signature indicate an improved performance of one or more elements of a workout. In some cases, data indicating one or more portions of workouts are retained but additional data is kept only for a subset of workouts—e.g., only video or other data requiring significant storage is stored for a best, or top N number of best workouts and is deleted for workouts that fall below a top or top N number of best workouts. In this way, storage requirements for a system can be reduced. Reducing data can also reduce latency for searching or other processing—e.g., by reducing the size of datasets to be searched.
shows example indications-. Example indicationincludes a display readout. The display can include an LCD, LED, or other suitable display technology. The display can be mounted on the ball delivery systemor communicably connected to the ball delivery system—e.g., using wireless or wired signals. The display can represent features of an evaluation, e.g., an evaluation performed by the evaluation engine. In the example indication, the current number of baskets scored by the shooteris shown as 3 compared with the number of baskets, 2, scored in a previously recorded workout—e.g., by (i) the systemrecording sensor data of the shooteror another user or (ii) another system recording sensor data of the shooteror another user. The ball delivery systemcan adjust indications of the example indicationbased on a time of the workout. For example, the value of personal record (PR) can be updated to show the value previously recorded for the PR, or baseline, for that point in the previously recorded workout. In some cases, PR can show any other suitable values representing previously recorded workout data. Similarly, the value of the current workout can be adjusted based on sensor data captured of the shooter. In this way, the shootercan compete, in real time, against themselves or another user.
Example indicationincludes audio output from an audio device of the ball delivery system. The audio device can be a speaker configured to play real time or pre-recorded audio files. The example indicationcan include motivational words or updates. The example indicationcan represent updates indicating an evaluation performed by the evaluation engine—e.g., indicating whether the shooteris improving or not or beating another user or not. In some cases, the shooter, or other user, can select preferences of indications. In some cases, preferences are determined dynamically by the ball delivery system. For example, the ball delivery systemcan learn, using one or more machine learning models, which indications result in the best performance by the shooter—e.g., as measured by comparisons of one or more values recorded using obtained sensor data. In some cases, users can respond best—e.g., can achieve the most positive workout values-when indications of evaluation include positive reinforcement. In some cases, users can respond best to factual information indicating a current evaluation—e.g., movement slower than normal, form is off, score is lower than at corresponding point in previously recorded signature, among others. In some cases, the ball delivery systemcan adjust an output so that a user receives varied types of feedback. In some cases, varied feedback can help a user manage different types of feedback when playing in a real world or game environment—e.g., jeering or boos during an away game versus cheers during a home game.
In some implementations, the action engineperforms actions, e.g., one or more actions described in this document, per shot. In some implementations, the action engineperforms actions after a workout. In some implementations, the action engineprovides results as a recommendation—e.g., a personalized recommendation.
In some implementations, the action engineadjusts a current workout. For example, the action enginecan adjust a frequency or speed that the return systemprovides balls to the shooter. In some cases, the action enginecan increase a frequency of balls to the shooter, e.g., in response to a sequence of made shots without misses, in response to a heartbeat of the shootersatisfying a range or a threshold heartbeat level, among other determinations. The action enginecan decrease a frequency of balls to the shooter, e.g., in response to one or more missed shots, in response to a heartbeat satisfying a different range or a threshold heartbeat level, among other determinations.
In some implementations, the action engineprovides a custom workout—e.g., in response to evaluation data. The custom workout can include custom times for working out—e.g., times corresponding with improved performance.
In some implementations, the action engineprovides predictive data. Predictive data can include one or more of (1) a timeline for mastering one or more skills, (2) short or long term training goals, or (3) predictive optimal training loads.
In some implementations, the action engineprovides output for player or team management. For example, the action enginecan provide one or more of: (1) personalized achievements or badges for players based on what the player should strive to achieve to be the most successful, (2) predictive practice patterns or pairings for player versus player challenges, (3) personalized weekly practice plans, e.g., based on player strengths or weaknesses, (4) progress reports or recommendations to coaches, e.g., regarding team performance, (5) recommendations for optimal player groupings based on strengths and weaknesses, (6) efficiency, consistency, skill retention, quality scores or other metrics, e.g., for each session or workout, (7) optimal game shot for each player, e.g., based on workout data, (8) optimal practice lengths, (9) personalized off-season practice plans, e.g., based on workout data or game statistics, (10) a predictive best player for each position or role on the team, (11) a matched player indicating a well-known or respected professional basketball player whose workout data best matches the player's workout data, (12) an optimal starting lineup prediction, e.g., using workout data from multiple players on a team, (13) a practice plan, (14) qualitative written feedback indicating a players' improvement or decline, e.g., using one or more recorded workout signatures provided to a large language learning model.
is a flowchart of an example processfor a basketball training system. For convenience, the processwill be described as being performed by a system of one or more computers, located in one or more locations, and programmed appropriately in accordance with this specification. For example, a ball delivery system, e.g., the ball delivery systemof, appropriately programmed, can perform the process.
The processincludes obtaining sensor data from one or more sensors of a ball delivery system (). For example, obtaining sensor data can occur while a ball delivery system is executing a workout for a user, such as the shooter. The sensor enginecan obtain sensor data from one or more sensor(s)-
The processincludes generating a workout signature using the sensor data (). For example, the signature enginecan generate a workout signature for the shooter. The workout signature can include representations of actions that occurred at different times during the workout. Actions can include action taken by the shooterand actions in the environment. Actions can include prior actions recorded by the control unit.
Unknown
October 9, 2025
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.