Basketball training system
The basketball training system uses rim-mounted sensors to generate and analyze shot signatures, offering real-time feedback and dynamic training adjustments, thereby enhancing training effectiveness.
Patent Information
- Application Number
- PCT/US2025/023228
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-11-25
- Filing Date
- 2025-04-04
- Publication Date
- 2025-10-09
AI Technical Summary
Existing basketball training systems lack the ability to provide real-time feedback and dynamic adjustments based on player performance data, limiting the effectiveness of training regimens.
A basketball training system equipped with sensors mounted on the rim, including accelerometers and other sensors, generates shot signatures and evaluation signatures to provide real-time feedback and adjust training regimens dynamically, using a control unit to process and analyze sensor data.
Enhances training efficiency by providing real-time feedback and allowing for dynamic adjustments, improving player performance through targeted training adjustments.
Smart Images

Figure US2025023228_09102025_PF_FP_ABST
Abstract
Description
BASKETBALL TRAINING SYSTEMCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] . This application claims the benefit of priority to U.S. Provisional Application No. 63 / 574,581, filed on April 04, 2024, to U.S. Provisional Application No. 63 / 654,426, filed on May 31, 2024, to U.S. Provisional Application No.63 / 659, 020, filed on June 12, 2024, and to U.S. Provisional Application No.63 / 724, 475, filed on November 25, 2024, the contents of which are all hereby incorporated by reference.BACKGROUND
[0002] 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.SUMMARY
[0003] This specification describes technologies for a basketball training system. The basketball training system can track and determine player data over time or during a training session to help players maximize their performance. These technologies can include determining shot locations, made shots, missed shots, and shot location biases. During player workouts, 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 adjust a training regimen or workouts. Evaluation can include using data tracked during the current training session or previously tracked data to evaluate a current performance — e.g., allowing players to practice with feedback regarding positional biases of the player’s shooting performance through captured sensor data.
[0004] 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.
[0005] In general, one innovative aspect of the subject matter described in this specification can be embodied in a basketball training system that includes a basketball rim having one or more sensors mounted on the basketball rim. The basketball training system also includes one or more computers housed in the basketball rim 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. The operations include obtaining sensor data from one or more sensors of the basketball training system, generating one or more shot signatures using the sensor data, the one or more shot signatures including a representative position of each of plurality of basketball shots in relation to the basketball rim, evaluating each of the generated shot signatures, generating an evaluation signature using the evaluated shot signatures, and providing a result of evaluating the generated evaluation signature using an indicator of the basketball training system.
[0006] 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. In some implementations, the one or more sensors include: a first sensor mounted to a first side of the basketball rim; a second sensor mounted to a second side of the basketball rim, the second side of the basketball rim being opposite the first side; and a third sensor mounted to a front of the basketball rim. In some implementations, the first, second, and third sensors are three-axis accelerometers. In some implementations, the one or more storage devices are housed within the basketball rim. In some implementations, the operations further include determining sensor data for made basketball shots and missed basketball shots and separately indexing the sensor data for the made basketball shots and the missed basketball shots. In some implementations, the result includes a representative miss position of a plurality of missed basketball shots. In some implementations, the result includes a representative make position of a plurality of made basketball shots. In some implementations, the basketball rim is a flexible rim may include a ball and socket and a spring at a base of the rim. In some implementations, the basketball rim is a flexible breakaway rim.
[0007] In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of, obtaining sensor data from one or more sensors of a basketball training system, generating one or more shot signatures usingthe sensor data, the one or more shot signatures including a representative position of each of plurality of basketball shots in relation to a basketball rim, evaluating each of the generated shot signatures, generating an evaluation signature using the evaluated shot signatures, providing a result of evaluating the generated evaluation signature using an indicator of the basketball training 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.
[0008] 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. In some implementations, the actions include determining sensor data for made basketball shots and missed basketball shots; and indexing the sensor data for the made basketball shots and the missed basketball shots separately. In some implementations, the result includes a representative miss position of a plurality of missed basketball shots. In some implementations, the result includes a representative make position of a plurality of made basketball shots. In some implementations, the sensor data represents basketball impacts at various positions around the basketball rim. In some implementations, the sensor data representing the basketball impacts includes three-axis acceleration data captured from the one or more sensors. In some implementations, the actions include updating, during a workout of a user, the evaluation signature. In some implementations, evaluating the generated evaluation signature includes comparing at least a portion of the evaluation signature with a previously generated evaluation signature. In some implementations, the previously generated evaluation signature was previously generated during a previous workout of a user. In some implementations, the result is provided as a visual indication.
[0009] 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 determine and output evaluation results to a user for training adjustments. In some cases, technologies described allow players to actively receive shooting feedback that facilitates adjustments in shooting practices to improve results. Allowing such feedback can increase a rate of improvement for players. In regard to dynamic adjustments, training can be adjusted in realtime by a ball training 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.
[0010] 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.BRIEF DESCRIPTION OF THE DRAWINGS
[0011] FIG. 1 shows an environment that includes an example ball training system.
[0012] FIG. 2 is a bottom view of the ball training system of FIG. 1 .
[0013] FIG. 3 shows an example sensor detection grid for the ball training system of FIG. 1.
[0014] FIG. 4 shows an example array of shot signatures captured by the ball training system of FIG. 1.
[0015] FIG. 5 is a flowchart of an example process for a basketball training system.
[0016] FIG. 6 shows an environment that includes an example ball training system.
[0017] FIG. 7 shows a side view of the ball training system of FIG. 6.
[0018] FIG. 8 shows the ball training system of FIG. 6 with example sensors and example fields of view for the respective sensors.
[0019] FIG. 9 shows a side view of the ball training system of FIG. 8.
[0020] FIG. 10 shows a front view of the ball training system of FIG. 8 with the intersection area of the example sensors.
[0021] FIG. 11 shows a side view of the ball training system of FIG. 8 with the field of view of one of the example sensors.
[0022] FIG. 12 shows a front view of the ball training system of FIG. 11.
[0023] FIG. 13 shows an environment that includes an example ball training system.
[0024] Like reference numbers and designations in the various drawings indicate like elements.DETAILED DESCRIPTION
[0025] FIG. 1 shows an environment 100 that includes the ball training system 106. The ball training system 106 can facilitate training in ball sports (e.g., basketball). Generally, the ball training system 106 can capture data, e.g., using sensors, at a basketball rim 110 related to a user shooting a basketball. The data can include makes, misses, shot location, shooter location, or a combination of these among others. The ball training system 106 can be used to capture, analyze, and evaluate a user’s performance of shooting basketballs at the basketball rim 110. The analysis and evaluation can include the identification of specific areas for improvement, including determining and providing a user with performance data capturing user’s shot trends and locations around the rim where the user misses shots most frequently. Additionally, the ball training system can determine and provide the user with an average miss bias in relation to the basketball rim 110.
[0026] The shooter 102 is illustrated shooting a ball 104 at a rim 110 of the ball training system 106. The ball training system 106 in this case is monitoring shooting activities (e.g., workouts) of the shooter 102 that involves the shooter 102 taking one or more basketball shots of the basketball 104 towards the rim 110. During execution of the workout the ball training system 106 obtains and processes sensor data from the sensor(s) 109a-e. Obtaining and processing the sensor data can be performed by the control unit 112 of the ball training system 106.
[0027] In more detail, the ball training system 106 can use one or more sensors, e.g., sensor(s) 109a-e, to detect various features of a workout, such as makes, misses, shot characteristics, player location, player movement, or a combination of these among others. Sensors can be used to track the impact of one or more basketball shots at the rim 110 to provide evaluation results by, e.g., using visual or audio indicators, device notifications, recommending or starting new workouts, or the like. One or more of the sensor(s) 109a-ecan detect a location of the shooter 102. For example, the sensors 109a-e can be housed within the rim 110 at various positions to detect forces that result from basketball impacting the rim 110, the backboard 111, or the net 113. The sensors 109a-e can include sensors that track forces impacting the rim 110, resulting movement of the rim 110, and a combination of the impact forces at the rim 110 and the rim movement 110. Additionally, one or more of the sensors 109a-e can operate together to detect impact forces and movement at various positions around the rim 110.
[0028] The ball training system 106 includes an indicator 108, sensor(s) 109a-e, the rim 110, and a control unit 112. The indicator 108 can include a display or audio device configured to provide information, e.g., to the shooter 102. In some cases, the indicator 108 includes a visual or audio output e.g., an overall miss bias provided to the shooter 102 that can help indicate evaluation results. The sensor(s) 109a-e can include one or more sensors — e.g., accelerometers, gyroscopes, camera, cameras, ultrasonic sensors, matrix pressure sensors, an array of proximity sensors, time of flight sensors, lidar sensors, infrared depth mapping, inductive sensors, vibration sensors, air pressure sensors, capacitive sensors, light curtains, photo diodes, among others. The rim 110 is configured to be connected to the backboard111, and the rim 110 can house the indicator 108, the sensors 109a-e, and the control unit112. The control unit 112 can include one or more computers. The control unit 112 can include edge devices affixed to the ball training system 106 and cloud computing components communicably connected to one or more computers affixed to the ball training system 106.
[0029] The rim 110 can be a basketball rim that is configured to deflect in various directions in response to external forces at the rim 110 (e.g., impact forces from basketballs hitting the rim and / or the backboard 111). For example, the rim 110 can include a hinge and one or more springs (see, e.g., FIG.2) that facilitate deflection of the rim 110 in multiple degrees of freedom. In some embodiments, the rim 110 can be a breakaway rim that can bend and flex in response to impacts and forces at the rim 110 and returns to a resting horizontal position after the impact or force is released. In some embodiments, the rim 110 is a flexible rim that includes a ball and socket and at least one spring. Some examples include a gimbal instead of a ball and socket. Some examples can include one spring, two springs, or three springs. The ball and socket and one or more springs can be positioned in or near a base of the rim.The ball and socket and at least one spring can facilitate a connection between a fixed portion of the rim (e.g., at an interface with a backboard) and a flexible portion of the rim (e.g., extending from the backboard).
[0030] The rim 110 houses the indicator 108, the sensors 109a-e, and the control unit 112. Each of the sensors 109a-e and any optional physical connectors such as wired connections 117 to the control unit 112 are embedded within, attached within, or otherwise integral with the body of the rim 110. In this way, the rim 110 facilitates the analysis and evaluation of one or more player’s shooting results while not impeding the operation of the rim 110 for basketball activities (e.g., shooting, dunking, etc.). In addition, the ball training system 106 is suitable for indoor and outdoor use. The rim 110 protects the integrated components such as the sensors 109a-e, any optional physical connections 117, the indicator 108, and the control unit 112 from the outdoor elements and the impacts of basketball use. The rim 110 is removably attachable to the backboard 111. In some embodiments, the ball training system 106 is removeable from the backboard 111 along with the rim 110. In this way, the ball training system 106 is housed by the rim 110.
[0031] The one or more sensors 109a-e can be spaced apart at various positions around the rim 110. In some embodiments, the one or more sensors 109a-e can include an array of the same or similar sensors (e.g., three-axis accelerometers, gyroscopes, or combinations thereof). In some embodiments, the sensors 109a-e can include different types of sensors (e g., one or more accelerometers, one or more gyroscopes, cameras, ultrasonic sensors, matrix pressure sensors, an array of proximity sensors, time of flight sensors, lidar sensors, infrared depth mapping, inductive sensors, vibration sensors, air pressure sensors, capacitive sensors, light curtains, photo diodes, among others).
[0032] While five sensors 109a-e are illustrated, the ball training system 106 can include various numbers of sensors 109a-e in different configurations. For example, the ball training system 106 can include one sensor (e.g., any one of the sensors 109a-e), two sensors (e.g., any two of the sensors 109a-e), three sensors (e.g., any three of the sensors 109a-e), four sensors (e.g., any four of the sensors 109a-e), five sensors (e.g., each of the sensors 109a-e), or five or more sensors (e.g., at the same or different positions of the sensors 109a-e). Additionally, any of the variations in the number of sensors 109a-e can also be arranged atvarious positions around the rim 110 and are not limited to the positions illustrated in FIGS. 1-3.
[0033] In addition to the sensors 109a-e, the ball training system 106 can include other sensors. For example, the ball training system 106 can optionally include a sensor 115 that can be a camera that captures imaging data of basketball shots at the rim 110 and backboard 111. In some embodiments, the sensor 115 captures images of basketballs and facilitates a determination of made and missed shots. The sensor 115 can also capture imaging data capturing the ball flight and trajectory of each basketball shot. The camera can include a camera, such as a smartphone or digital camera, positioned to capture images of the shooter 102. 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 102.
[0034] In addition to the sensors 109a-e and optionally the sensor 115, the ball training system 106 can include additional sensor(s) — e.g., a camera, motion detector, infrared sensor, LIDAR, heat sensor, one or more accelerometers, one or more gyroscopes, conductive paint, laser sensors, cameras, ultrasonic sensors, matrix pressure sensors, an array of proximity sensors, time of flight sensors, lidar sensors, infrared depth mapping, inductive sensors, vibration sensors, air pressure sensors, capacitive sensors, light curtains, photo diodes, among others. For example, the net 113 can include one or more sensors attached to the net 113 or otherwise integrated within the net 113. In some embodiments, the net 113 can include wiring throughout the net 113 that operates as a sensor to detect impacts of balls passing through the net 113.
[0035] In some implementations, any combination of the sensors 109a-e and the sensor 115 can include one or more hardware devices capable of receiving input from the environment and converting that input into data accessible by computing elements. For example, the sensors 109a-e and the sensor 115 can capture image data, point cloud data, or another format of data capturing two-dimensional (2D) or three-dimensional (3D) information of the training environment, e.g., including a player. The sensors 109a-e and the sensor 115 capture temporal data of the training environment, e.g., to capture shot actions performed by a player over time.
[0036] The basketball training system 106 can include and / or be in data communication with one or more signal sources, e.g., source 122. The source 122 can generate electromagneticradiation in one or more frequency bands. The electromagnetic radiation can be directed into the training environment, e.g., localized, and the reflections off of surfaces of the training environment, e.g., off of the player’s body, the basketball, the floor, etc., can be detectable by sensor 120 to capture information about a training environment surrounding the basketball training machine. For example, the reflections detected by the sensor 120 can be used to extract pose information of a player within the training environment.
[0037] Source 122 can be, for example, a radio frequency (RF) source, microwave source, acoustic signal source, laser sources, e g., for LIDAR, or another non-visible electromagnetic radiation source. For example, a source 122 can be a millimeter (mmWave) frequency source, e.g., between about 3-30 GHz. In another example, a source 122 can be a Wi-Fi frequency source, e.g., between about 2.5-6 GHz. The source 122 can be configured to generate low power signals, e.g., lOOOx lower than Wi-Fi signals, or otherwise be compatible with the training environment, e.g., low-harm to humans present in the training environment. The source 122 can be mounted to, housed within, or otherwise incorporated or attached to the rim 110. For example, source 122 can be positioned at the front of the rim 110 (e.g., at or near sensor 109b). Source 122 can also be housed within the rim 110 at the base of the rim 110 where the rim 110 connects to the backboard. A frequency band of the source 122 can be selected based in part on a distance of detection, e.g., distance of player to the basketball training machine, a degree of precision of the detection, a type of the sensors 109a-e or sensor 115 performing the detection, compatibility with the environment, or other design considerations.
[0038] In some implementations, source 122 can be configured to scan the training environment around the basketball training system 106. The source 122 can be configured to emit electromagnetic radiation signal in a localized direction and to scan over a range of positions in the training environment, e.g., in an arc sweeping the area surrounding the basketball training system 106. For example, the source 122 can be a laser source of a LIDAR system coupled to a scanner such that the laser is scanned across the training environment and reflected signal from the training environment is captured by one or more of the sensors 109a-e, 115. In another example, the source 122 is a mmWave source coupled to a scanner, e.g., a mechanical positioning apparatus, such that the mmWave frequencies are scanned about the training environment and reflected from the training environment iscaptured by one or more of the sensors 109a-e, 115. In such cases, the collected sensor data can include both temporal and spatial resolution.
[0039] In some implementations, sensor 120 and source 122 can be integrated into a subsystem, e.g., a sensing subsystem where the sensing subsystem can transmit frequencies into the training environment surrounding the basketball training machine 10. The sensing subsystem can detect a spatial resolution of the reflections as well as a temporal resolution of the detected reflections, e.g., measure intensity, direction, etc., of the reflected signal, to generate point cloud data representing a state of the training environment.
[0040] In some implementations, one or more of the sensors 109a-e and sensor 115 can be a camera, e.g., CMOS, CCD, or other device capable of capturing image data and / or video data. The sensor 120 can be configured to capture image data and / or video data in visible wavelengths, infrared wavelengths, or other spectra.
[0041] In some implementations, one or more of the sensors 109a-e, 115, 122, 609a-d, 1309 can be a detector capable of capturing non-visible electromagnetic radiation signal data, e.g., point cloud data. One or more of the sensors 109a-e, 115 (and sensors 609a-e, 809 shown in FIGS. 6-13) can be a detector configured to capture signal in one or more frequency bands, including, for example, millimeter wave (mmWave), radio frequency (RF), Wi-Fi signal bands (2.4 GHz), frequency modulated continuous wave (FMCW) radar (77-81 GHz), or other frequency bands. For example, one or more of the sensors 109a-e, 115 can be capable of capturing signal data reflected from (and / or transmitted through) a player’s body and capturing a player’s position, pose information of the player, player gestures (e.g., start / stop ball launch, continue with a drill, among others), form data, location of a basketball shot, shot trajectory of a basketball shot from the player, player movements such as athletic movements including pro agility drills, sprints, defensive slides, vertical testing (e g., jump height and reach), baseline-to-baseline speed, lateral quickness, ball handling skills, dribbling skills (e.g., counting a number of dribbles in a time period), post moves, accountability in shooting on the move (e.g., disqualifying repetitions based on player conformance with drill instructions), consequence workouts (e.g., missed shot, shooter must run down and back with time tracking of run time and next shot time), recognition of player position in relation to a 3 point line and assigning point values to shots based on player position, among others. Signal data reflected from (and / or transmitted through) a player’s body can be captured from adevice, e.g., operated by a shooter. The device can be a smartphone. The device can transmit signal data that is captured by one or more sensors of a system, such as the system 106, and used by the system 106 for processing or providing output of a training session.
[0042] In some embodiments, the position of the player can be determined based on a position of the basketball captured using point cloud data or frequency bands as discussed above. A position can be determined using a detection of a frequency or based on processing and parsing data encoded within one or more frequency bands — e.g., a signal generated by a device that encodes position data of a player within a frequency encoded for wireless communication. Frequency bands can be emitted by one or more devices, such as a radar sensor, ultrasonic sensor, RF sensor, smartphone, or a combination of these among others. A player position can be determined using one or more sensors of the training system 106. Sensors, such as the sensors 109a-e, can include an ultrasonic sensor, millimeter wave (mmWave) radar, or a combination of these among others. Additionally, the sensors, such as sensors 109a-e, 115, and source 122 can also include one or more sensors 609a-d and sensor 809 (see e.g., FIGS. 6- 13). Sensors can be used to determine a player position, e.g., in relation to a court or other workout area.
[0043] In some implementations, the position of a player can be determined when a shooting gesture or pose is identified. In some embodiments, the position of the player can be provided by a player or another user (e.g., a coach) that provides the training system 106 with an input that identifies the player shot location(s). Position data can be provided using one or more devices communicably connected to the system 106, e.g., a smartphone that is paired to one or more sensors of the system 106. Graphical user interfaces, text input, speech input, or a combination of these can be used to obtain position data from one or more persons. Obtained data can be provided to the system 106, e g., using one or more sensors, such as the sensors 109a-e. The basketball training system 106 can also instruct a ball shooting machine or ball launching machine to pass a ball to a user based on a detection of a player gesture indicating the player is ready for a pass (e.g., two hands forward).
[0044] In some implementations, one or more sensors, such as the sensors 109a-e, 115, 122, 115, 609a-d, 809 can be an acoustic sensor capable of capturing acoustic signal data. For example, one or more of the sensors 109a-e, 115 can be an ultrasonic sensor configured to capture ultrasonic frequencies reflected from a player’s body and capturing pose information,which can include position data, of the player using the reflected ultrasonic frequencies. An ultrasonic source 122, e.g., an ultrasonic transducer, can be used to detect objects at distance of detection, e.g., up to about 25 meters away from the source. In some examples, an ultrasonic sensor can be integrated with a source, where the transducer of the source functions as a microphone to receive and send the ultrasonic waves, and measures the distance to a target by measuring a time lapse (e.g., time of flight) between sending / receiving the ultrasonic pulse. Ultrasonic waves can have the advantage of being able to detect clear or transparent objects, e.g., liquids, and can be stable over a large array of surface finish, material, and color. Ultrasonic-based sensing subsystems can be insensitive to ambient lighting conditions. In some examples, a narrow beam ultrasonic sensor can be used to provide increased resolution within a distance range useful for the training environment. In another example, sensor 120 can be configured to capture low-level acoustic signals reflected from and / or transmitted through a player’s body and capturing pose information, which can include position data, of the player using the low-level acoustic signals. The control unit 112 includes a sensor engine 114, a signature engine 116, an evaluation engine 118, and an action engine 120. The engines perform processes, e.g., using one or more computer processors, as described in reference to each respective engine.
[0045] In some implementations, one or more sensors, such as the sensors 109a-e, 122, 115, 609a-d, 809 can include ultrasonic, mmWave sensors, or a combination of these. Sensors, including ultrasonic or mmWave sensors, can be used to detect various features of a training session — e.g., detecting makes or misses, detecting a location of a shooter, or a combination of these. In some implementations, sensors, including ultrasonic or mmWave sensors, can be used to detect when to engage a defender as part of a workout or drill. For example, one or more sensors, such as the sensors 109a-e, 122, 115, 609a-d, 809 can track a position of the shooter 102 throughout a workout and determine when to send instructions to engage a virtual defender with the shooter 102, which can include instructions regarding maneuvers, shot patterns, movement directions, speed changes, shot types, among other player movements. The one or more sensors can additional track and analyze the shooter’s ability to respond to defensive pressure and track the shooting performance in response to different virtual defender prompts.
[0046] In some cases, one or more sensors can be used to determine a player location. For example, an application operating on a smartphone, a mmWave sensor, an ultrasonic sensor, a rim-mounted accelerometer, or a combination of one or more of these can be used to determine a player location, such as the shooter 102. A player may make noise or speak during a training session. Sound data from the player can be used by the system, e.g., operating acoustic sensors and processing acoustic sensor data from one or more sensors, to determine a location.
[0047] In some cases, accelerometers can be used to determine a location. Accelerometers can be used by themselves or combined with one or more other sensors. Accelerometers can be used to obtain data for determining features of a training session which can include data of one or more shots. Data of shots can include a make, miss, trajectory, player location, ball release, spin, arc of release, or a combination of these among others.
[0048] In some cases, a smartphone can be used to determine features of a training session, such as positional data input by a user either by a user interacting with a touch screen or other interface or autonomously by the device sending location or other signals to one or more sensors of the system 106 that can be detected and used by the system 106 to determine features of a training session. Features of a training session can include player position, makes, misses, shot trajectory, miss bias (e.g., location on the rim where the shot was missed), spin rate, ball rotation, shot location on the court, types of misses (e.g., airballs, short miss, long miss, right miss, left miss), type of made shot (e.g., a swish, bank shot, high arcing bank shot, among others), or a combination of these among others.
[0049] A training system can be paired with one or more devices. For example, the system 106 can be paired with a smartphone, such as a smartphone of the shooter 102. The smartphone may be in the pocket of the shooter, affixed to an arm of the shooter 102, or be left in a bag, chair, or other place not on the person. Information can be provided by a user of a paired device to the system 106. For example, the shooter 102 can provide a location using a smartphone that is paired with the system 106. Via the pairing, the smartphone can transmit data to the system 106, e.g., where the sensor engine 114 obtains sensor data indicating information transmitted by the smartphone. Pairing can include Bluetooth pairing, Wi-Fi pairing, or other forms of wireless pairing to ensure a communication channel between a device and a receiving sensor of a training system, such as the system 106. Data providedby the device can include positional data determined through triangulation involving a device as a third of three transmitters or using an image sensor, e.g., on the device, that captures images of a player and uses the images to detect a location that can be transmitted to the system 106 or used on the device for processing of training session output.
[0050] Data provided by a paired device to a training system can be entered manually by a user or provided autonomously. For example, an interface on a device can enable a user to enter details using a keyboard, speech detection, graphical user interface, or a combination of these among others. A device can send signals autonomously, e.g., after a user configures autonomous data sending. A device can send signals indicating a player location or other features of a training session to the system 106. Data can include a position of the player taking one or more shots. The system 106 can use data obtained from one or more paired devices to process and provide output to a user indicating a training session, e g., data indicating makes or misses at one or more locations, most common shooting locations, areas of improvement, training or technique suggestions, or a combination of these among others.
[0051] In some implementations, acoustic sensors can be used to identify one or more sound sources in a training environment. Acoustic sensors can include ultrasonic sensors, microphones, or a combination of these. In some cases, acoustic sensors are used to detect human speech. For example, a person can speak and the system 106 can use sensors to detect the human speech. Human speech can describe elements of a training session, such as specific drills to perform, time constraints, movements of the system or player, player location, or a combination of these among others. Human speech can be used to control operation of one or more elements of the system 106.
[0052] Acoustic sensors can be used to detect made or missed shots. Acoustic sensors can transmit acoustic signals and use interference of objects, such as a basketball, to detect a make or a miss or other features of a shot. In some cases, an acoustic sensor can transmit acoustic signals across a plane of a shot trajectory. As a basketball intersects the plane, an acoustic sensor can register the ball location based on the interference in reflected sound signals caused by the ball. Using reflected sound signals, the system 106 can determine features of a training session, such as shot characteristics which can include whether or not a shot was a make or a miss.
[0053] The system 106 can obtain acoustic data using one or more acoustic sensors and process the received sensor data to determine various features of an environment. The features can include language detection, e.g., where information is obtained from processing language received in acoustic sensor data. The features can include a location of one or more sound sources, e g., by using one or more acoustic sensors to determine a distance from a sensor to a sound source. In some cases, multiple acoustic sensors can be used to triangulate a position of a sound source, such as a player. Features can include a player’s location determined using one or more microphones where the player is a sound source — e g., making sound that is detected by sensors, e.g., before, during, or after a drill. A location of a player, or other person or object, can be determined from sound detection or from detected speech, e.g., a person speaking and the system using language detection processes to interpret human speech of “Top of the key!” as a location within a training environment.
[0054] In some implementations, a rim includes a memory component. For example, the rim 110 can include a memory component that is connected to or mounted on or within the rim 110. A memory component, such as a memory component of the rim 110, can store data related to a training session, such as data indicating shots made, missed, player locations, features of a training session, or a combination of these among others. Data stored in a memory component can be used to calculate values related to a training session, such as made or missed shot statistics. Values can be calculated by a computing element of a rim, such as the rim 110, that is connected to or mounted on or within the rim. Values can be calculated by engines, such as engines of the control unit 112, including the signature engine 116 and the evaluation engine 118.
[0055] In some implementations, a rim coordinates with other elements to calculate values related to a training session. For example, the rim 110 can receive sensor data from one or more sensors, such as the sensors 109a-e. A computing element of the rim 110, such as the control unit 112, can process the received sensor data. Received sensor data can include received shot location data from a ball delivery machine. Received sensor data can include image captured using a camera. A camera can be mounted on a rim or backboard or be located elsewhere with a view of a player, such as on a sideline of a court. A computing element of a rim can receive workout information and use the workout information to calculate one or more values. For example, workout information can be programmed using agraphical user interface of a computer or mobile device. The workout information can include, e.g., a set of one or more shots or movements to be attempted in a training session. The computing element can obtain the workout information and use the information to generated values related to a training session. Values can represent aspects of training, such as a made or missed shot percentage, average speed of movement, overall quality score (e.g., by comparing to other training sessions by the same or different user), or a combination of these among others. Information can be obtained from a mobile device or computer. Information can be obtained from a workout machine, such as a ball delivery machine. Ball delivery machines can be programmed with workout information that, e.g., programs the machine where or when to provide basketballs to a basketball player involved in a training session.
[0056] In some implementations, a rim identifies which of several players performed an action, such as making or missing a shot. For example, the rim 110 can obtain sensor data from one or more sensors, such as the sensors 109a-e, 122, 115, 609a-d, 809. Sensor data can indicate a ball being shot at the rim 110. A computing element, such as the control unit 112, can process the sensor data to determine various features of the shot. Features can include rotation of the ball, flight path, whether the shot was a make or a miss, or a combination of these among others. Features can include which player, of one or more players, shot the ball. For example, the control unit 112 can process sensor data that represents a ball being shot at the rim 110 with a trajectory tracked through one or more images. By tracking the ball from a beginning of a trajectory, or by inferring a previous trajectory based on a sensed impact of a ball, the control unit 112 can determine an origin location of a shot. The control unit 112 can use the origin location of the shot to determine which player, of one or more players, likely took the shot. In some cases, workout information can indicate multiple players and specific shots to be taken by specific players. The control unit 112 can reference workout information to determine which player took which shot. In some cases, image recognition processes can be used by the control unit 112 to identify individuals within a playing area. A location of each identified individual can be detected and stored by the control unit 112. A determined origin location of a shot can be compared, by the control unit 112, to one or more detected locations of identified individuals.By using such a comparison, the control unit 112 can determine which player of one or more players took a shot.
[0057] In some implementations, people provide additional data when prompted by system 106. For example, the system 106 can estimate one or more features. Estimated features can include any feature of a training session, such as a make or miss by a player, a type of shot detected, player movement, or a combination of these among others. If a confidence value associated with an estimated feature does not satisfy a threshold, the system 106 can prompt one or more users for additional data. For example, the system 106 can activate a light, speaker, screen, mobile notification, or other alert to notify a user that a confidence value does not satisfy a threshold. Users can perform actions in response to provide additional data. For example, the system 106 can attribute a shot attempted to a player A with a first confidence value rather than player B or C. The first confidence value can be any value, such as 55%. A computing element of the system 106, such as the control unit 112, can compare the confidence value to a threshold, e.g., 55% to 75%. In response to determining that the confidence value does not satisfy a threshold, the system 106 can activate an element to prompt one or more users for additional information. Information can be obtained using one or more sensors, such as the sensors 109a-e, or using a connected device, such as a mobile device or computer. In some cases, the system 106 can generate a signal to activate an element to alert a user and the user can, in response, perform an action, hand gesture, or speak in a language to provide additional data. The system 106 can capture additional data and use the additional data to revise detections or increase a confidence value. For example, a user action can include raising a hand. The system 106 can detect the action. The action can indicate which player made the most recent shot in response to the system 106 detecting who attempted a shot with a confidence value that did not satisfy a confidence threshold.
[0058] The sensor engine 114 of the control unit 112 obtains sensor data from one or more of the sensor(s) 109a-e, 122, 115, 609a-d, 809. The sensor engine 114 can obtain sensor data over wired or wireless networks from one or more of the sensor(s) 109a-e, 122, 115, 609a-d, 809. The sensor engine 114 can perform one or more data transformations to convert sensor data from a raw type captured by one or more of the sensor(s) 109a-e, 122, 115, 609a-d, 809 to a type for processing by the control unit 112.
[0059] In some implementations, sensor data represents mechanical inputs from various impacts of basketballs on the rim 110, backboard 111, and / or net 113. For example, sensor data can include three-axis force data (e.g., X, Y, and Z axis) and three-axis rotational data (x-gyro, y-gyro, z-gyro). Mechanical input can be provided by the sensor engine 114 to the signature engine 116, 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 112, including processing performed by one or more machine learning models trained to predict one or more elements.
[0060] The signature engine 116 generates shot signatures using sensor data obtained by the sensor engine 114. The shot signatures include positional elements for each basketball shot detected by the sensor(s) 109a-e. For example, each shot detected by the ball training system 106 includes impact data collected by the sensor(s) 109a-e. The shot signatures for each shot represent a location of impact in relation to the rim 110 for each shot based on the sensor data received from the sensor engine (see e.g., FIG. 4). In some cases, the shot signatures can be represented as a point or an area representative of a center of a basketball for each detected shot. Values of each shot signature can be generated by the signature engine 116 processing sensor data obtained from the sensors 109a-e. In some cases, shot signatures 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 116. In some embodiments, the shot signatures can be represented as a heat map of shot locations positioned in relation to the rim. The heat map can include calculated shot positions of basketballs based on the sensor data that includes impact data from each basketball shot. The heat map can display makes, misses, or both makes and misses together to illustrate a heat map of the user’s shot locations in relationship to the rim.
[0061] The signature engine 116 can 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) shot position relative to the rim (e.g., shot location on a court); (2) shots attempted; (3) shots made; (4) shots missed; (5) number of shots made in sequence without missing, (6) features of a shot — such as velocity of ball, arc, spin, ball rotation, among others, (7) total shots attempted by the shooter 102 using the ball training system 106, (8) bias of shot attempts — e g., an overall calculated miss bias for a plurality of basketball shots based on a determinedcenter of a basketball from sensor data for each basketball shot impact, a calculated location based on a plurality of missed basketball shots, or to which side a ball missed a target, (9) bias of made shots — e.g., use of backboard (e.g., bank shots), rim hits, among others, (10) an arc of one or more shots, (11) a release speed, release point (how far above the ground the ball was released), and / or release time of one or more shots, or (12) a path of a ball.
[0062] In some implementations, the signature engine 116 processes sensor data using one or more machine learning algorithms. For example, the signature engine 116 can process mechanical data to detect ball position, such as the position of the ball when the ball impacts the rim 110, backboard 111, or net 113. By detecting ball position over time, the signature engine 116 can generate one or more elements of a signature, such as one or more elements described in this document.
[0063] In some implementations, the ball training system 106 includes a machine learning training system. For example, the ball training system 106 can 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 training system 106, a bias of an attempt or made shot, among others. Using such ground truth data, the ball training system 106 can 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 102.
[0064] In some implementations, signatures generated by the signature engine 116 are shared or edited. For example, the control unit 112 can 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 112. 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 unit 112 evaluating 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.
[0065] 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.
[0066] The evaluation engine 118 evaluates one or more generated shot signatures. For example, the evaluation engine 118 can obtain one or more shot signatures, either complete or partially complete, from the signature engine 116. Evaluation by the evaluation engine 118 can 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 shots of the same user or for the same user performing the same or different workout.
[0067] In some implementations, the evaluation engine 118 compares shot signatures of the shooter 102 with other shot signatures generated for the shooter 102. For example, the signature engine 116, or a signature engine of another system, can generate a plurality of shot signatures for a shooter 102 while the shooter completes a workout. The shot signatures can be used by the evaluation engine 118 for evaluating the shooter 102 performing the workout shown in FIG. 1. The evaluation engine 118 can compare elements of the shot signatures with other shot signatures of the shooter 102. 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 shooter 102 has consistently performed a given workout or drill over time or if the shooter 102 is more consistent in making shots doing one drill compared to another or one workout compared to another. Comparison can also indicate consistency while the user is biometrically stressed — e g., the shooter 102 has or is wearing a heart rate monitor or other biometric tracking device.The consistency can indicate if the shooter 102 has consistently performed a given workout or drill over time and based on biometric stress factors (e.g., increased heart rate, sleep data, fatigue, lactic acid levels, respiratory rate, or other biological or physiological characteristics) or if the shooter 102 is more consistent in making shots doing one drill compared to another or one workout compared to another. Additionally, while the system is tracking biometric stress factors in real-time (e.g., while the shooter 102 is performing a workout), the system can detect fatigue patterns within the biometric stress factors and adjust the intensity of the workout program (e.g., decrease frequency of balls launched to the shooter, increase a time allowed for the shooter to move from a pass location to a shoot location, increase an amount of time between shots, etc.). The system can additionally suggest (E.g., via audio, visual, haptic, or other feedback) personalized recovery intervals for the shooter based on the biometric stress factors.
[0068] In some implementations, the evaluation engine 118 evaluates the shooter 102 for each shot. For example, the evaluation engine 118 can compare each shot signature to the other shot signature for that shooter 102 during one specific workout, compared to a previous workout, or for all of the shooter’s workouts. For example, the evaluation engine 118 can determine the bias of shot attempts from the shot signatures — e.g., bias of made shots and bias of missed shots, overall shot bias, to which side a ball missed or made a target, bias of made shots — e g., use of backboard, rim hits, among others.
[0069] In some implementations, the evaluation engine 118 evaluates the shooter 102 per shot. For example, the evaluation engine 118 can compare a shot of the shooter 102 in a current workout to another workout — e.g., another workout performed by the same shooter 102 or another user. One or more per shot evaluations can indicate if the particular shot indicates an improvement or decline for the shooter 102. 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 missed the hoop cleanly without hitting the backboard or rim (i.e., airball), whether the ball had a particular spin or arc, among others. In some cases, the evaluation engine 118 can determine increased performance using time-based signature elements. For example, the evaluation engine 118 can obtain values indicating a number of made shots in a row per number of shots takenalong a time-series of data in a signature. The evaluation engine 118 can 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 engine 118 can 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 engine 118 can generate an indication for the given shooter that performance has increased.
[0070] In some implementations, the shooter 102 is practicing improving shooting, such as by altering a miss-bias location. For example, the evaluation engine 118 can obtain a signature of the shooter 102 performing a same drill or same workout. The signature can be generated by the signature engine 116 or other system, e.g., during a previous workout performed by the shooter 102. The evaluation engine 118 can then evaluate the shooter 102 against the previously generated signature. Evaluation can include indicating whether a previous shot was made or missed, the position and / or positional bias of the most recent shot compared to an overall positional bias, a make position bias, or a miss position bias. Evaluation can include tracking one or more elements as described in this document.
[0071] 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 shooter 102 can then indicate an evaluation of the shooter 102 — e.g., where a positive difference can indicate improvement and negative difference can indicate a decline.
[0072] The action engine 120 performs an action using a result of an evaluation. For example, the action engine 120 can obtain data indicating a result from the evaluation engine 118. In some cases, the evaluation engine 118 can indicate a performance of the shooter 102 compared to one or more previously generated signatures. The action engine 120 can use one or more indicators to provide a result of an evaluation.
[0073] In some implementations, the action engine 120 uses the indicator 108 to provide a result. For example, the action engine 120 can activate a display or audio device of the indicator 108 to provide a message to the shooter 102, to a coach (e.g., near the shooter or at a remote location geographically distant from the shooter), to a trainer (e.g., near the shooter or at a remote location geographically distant from the shooter), or to another user (e.g., near the shooter or at a remote location geographically distant from the shooter). The message can include text, colors, audio, or other symbols. For example, the message can include an audio recording that expresses a miss bias location (e.g., “short left”, “long right”, etc.), encouragement or coaching based on the missed location, a comparison of the missed shot location to the overall miss bias or the make bias location, among others. 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. The message can include an uploaded audio file from the user that includes indications of makes, misses, and specific audio for specific miss locations of the user. The message can display a visual indication of an impact location of the ball where the ball impacted the rim immediately after the shot (e.g., on a user device such as a smartphone, wearable device, tablet, or external display). The message can include a results summary that includes a map of makes and misses and an overall miss bias. The results summary can be communicated to the user electronically in addition to or in the place of the indicator 108. For example, the results summary can be communicated to the user via an electronic message, electronic mail, text message (e.g., via SMS protocol or other text message protocols), user-device notifications (e.g., in-app notifications), among other communication methods.
[0074] In some implementations, in addition to, or instead of, providing a result on the indicator 108, the action engine 120 suggests workouts or other actions using other communication means. For example, the action engine 120 can generate a digital messageindicating specific workouts or interventions to be performed by a shooter to increase performance. The digital message can be generated and transmitted by the action engine 120 using 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 118. For example, the evaluation engine 118 can determine that shot signatures and / or evaluation signatures indicate a trend of miss biases drifting to the right side of a rim, in response, the action engine 120 can generate a digital message suggesting that the shooter perform one or more specific drills or physical activities (e.g., stretches, release point adjustments, etc.) to improve the shooter’s performance. The evaluation engine 118 can determine that movement data indicates decreased movement later in a workout and, in response, the action engine 120 can generate a digital message suggesting that the shooter perform cardio workouts to increase stamina or VO2 improving exercises.
[0075] In some embodiments, the indicator 108 can output an indication as a display readout. The display can include an LCD, LED, or other suitable display technology. The display can be mounted on the ball training system 106 or communicably connected to the ball training system 106 — e.g., using wireless or wired signals. The display can represent features of an evaluation, e.g., an evaluation performed by the evaluation engine 118. For example, the indicator can output a top-view image of a basketball rim with an average miss bias and an average make bias location illustrated on the rim. The ball training system 106 can adjust indications of the example indication based on a time of the workout. For example, the location of the miss bias can be updated to show the value previously recorded for the PR, or changed with each shot recorded by the ball training system 106.
[0076] In some embodiments, the indicator 108 can output audio outputs from an audio device of the ball training system 106. The audio device can be a speaker configured to play real time or pre-recorded audio files. The audio indications can include motivational words or updates. The audio indications can represent updates indicating an evaluation performed by the evaluation engine 118 — e.g., indicating whether the shooter 102 is improving or not or beating another user or not. In some cases, the shooter 102, or other user, can select preferences of indications. In some cases, preferences are determined dynamically by the ball training system 106. For example, the ball training system 106 can learn, using one ormore machine learning models, which indications result in the best performance by the shooter 102 — 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., changes in the miss bias position, numbers of missed shots, numbers of made shots, among others. In some cases, the ball training system 106 can 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.
[0077] 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.
[0078] In some implementations, the action engine 120 performs actions, e.g., one or more actions described in this document, per shot. In some implementations, the action engine 120 performs actions after a workout. In some implementations, the action engine 120 provides results as a recommendation — e g., a personalized recommendation.
[0079] In some implementations, the action engine 120 provides 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.
[0080] In some implementations, the action engine 120 provides output for player or team management. For example, the action engine 120 can 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.
[0081] In some cases, techniques described can reduce storage or processing requirements. For example, the ball training system 106 can remove data items based on a determination or prediction of use. In some cases, the ball training system 106 can 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 shot signature or an evaluation signature. In response to such a determination, the ball training system 106 can 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 off the sensor to the sensor.
[0082] In some cases, the ball training system 106 can remove data previously stored. For example, the ball training system 106 can delete shot signatures after the evaluation signature is generated based on the shot signatures — e.g., the ball training system 106 can maintain a single evaluation 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.
[0083] FIG. 2 shows a bottom view of the ball training system 106 including the rim 110. The rim 110 can deflect in various directions in response to external forces at the rim 110(e g., impact forces from basketballs hitting the rim and / or the backboard 1 11). For example, the rim 110 can include a hinge 130 and one or more springs 132 that facilitate deflection of the rim 110 in multiple degrees of freedom. In some embodiments, the rim 110 can be a breakaway rim that can bend and flex in response to impacts and forces at the rim 110 and returns to a resting horizontal position after the impact or force is released.
[0084] The flexibility of the rim 110 facilitates additional reaction forces on the rim 110 in response to basketball shots impacting the rim 110, backboard 111, or net 113. In this way, the rim 110 is not significantly mechanically restrained in any degree of freedom. The flexibility of the rim 110 in multiple degrees of freedom can reduce the frequency of vibrations that occur throughout the rim 110 in response to impacts from basketballs. The reduction in the frequency of vibrations facilitates improved sensor data acquired by the sensor(s) 109a-e. For example, the sensor data includes less vibrational noise, which improved the processing efficiency of the sensor engine 114. While the rim 110 includes flexibility, the rim 110 provides a balance of flexibility with rigidity to perform in a basketball environment that facilitates comfortable rebounding feel to a user.
[0085] Each of the sensors 109a-e and any optional physical connectors such as wired connections 117 to the control unit 112 are embedded within, attached within, or otherwise integral with the body of the rim 110. For example, the rim 110 can include a slot within the body of the rim where the sensor(s) 109a-e are housed and mounted within. The sensors 109a-e are secured at their respective positions within the rim 110 and held in place. In some embodiments, the sensor(s) 109a-e can be secured within the rim 110 using epoxy immersion, sealed electronic box(es), adhesives, fasteners, among other attachment mechanisms.
[0086] The sensors 109a-e are aligned in a similar orientation with at least one degree of freedom shared between each of the sensors 109a-e. For example, each of the sensors 109a-e can be aligned in the X-axis, the Y-axis, or the Z-axis (see, e.g., FIG. 3). In some embodiments, the sensors 109a-e can be aligned in two degrees of freedom or three degrees of freedom. In some embodiments, the Z axis of the sensors 109a-e is oriented perpendicular to a normal plane of the rim 110.
[0087] In some embodiments, the ball training system 106 can include different arrangements and number of the sensors 109a-e. For example, the ball training system 106can include each of the sensors 109a-e. The sensor 109a can be positioned at a right side of the rim 110 — e.g., at approximately 3:00, with a center of the base 110a of the rim being 12:00. The sensor 109b can be at a front of the rim 110 (e.g., at about 6:00), and the sensor 109c can be at a left side of the rim (e.g., at about 9:00). The sensor 109d can be at a left side of the base 110a of the rim 110, and the sensor 109e can be at a right side of the base 110a of the rim 110. In some embodiments, the ball training system 106 can include three sensors. For example, the ball training system can include the sensors 109a-c, with sensors positioned at 3:00, 6:00, and 9:00. In some embodiments, the ball training system 106 can include a single sensor, e.g. sensor 109b positioned at the front of the rim 110. Some embodiments can include any combination of the sensors 109a-e. Responsive to each ball impact, each of the sensors 109a-e generate signal data that is communicated to the sensor engine 114. The sensor engine 114 processes the signal data from each of the sensor(s) 109a-e for each ball impact at the rim 110. The signal data from each sensor 109a-e can include differing signal strength, signal quality, signal shape, and raw signal differential timing that the sensor engine 114 and the signature engine 116 can utilize to create a fingerprint of the impact point on the rim.
[0088] In some embodiments, the fingerprint of the impact point for each basketball shot can be determined using the sensor data. For example, each of the sensors 109a-c can be accelerometers with six degrees of freedom (x, y, z, x-gyro, y-gyro, z-gyro). Each of the sensors 109a-c (or e.g., sensors 109a-e) can output an instantaneous acceleration value between 5000-10,000 times per second (e.g., or around 6000 times per second, or about 6666 times per second). The sum of the instantaneous acceleration values are compared to a threshold value to determine whether a trigger event has occurred. In some embodiments, responsive to the sum of the instantaneous acceleration values meeting or exceeding a threshold, a trigger event is set. Responsive to a trigger event, the control unit 112 triggers a data recording for a period before and after the trigger event (e.g., two seconds before and two seconds after for a four second band of data acquisition around each trigger event, or one second before and one second after for a two second band of data). In some embodiments, for each ball impact event, the system can collect six degrees of freedom for each of the sensors 109a-e, can sample each at around 6000 samples per second, and store the values in one ormore memories. The matrix of values for each ball impact are utilized by the signature engine 116 and the evaluation engine to determine the ball position of each impact.
[0089] The arrangement of sensors 109a-e (or other combinations thereof such as sensors 109a-c) can be equally distributed around the rim 110. In some embodiments, an equal distribution of sensors facilitates data collection at all positions around the rim 110 in response to ball impacts at any location around the rim 110, backboard 111, and net 113. The distribution of sensors positions one or more sensors at locations to register data at the point of impact, regardless of where the ball contacts the rim, facilitating strong signal collection.
[0090] In some embodiments, the ball training system 106 includes physical connections 117 between the sensors 109a-e and the control unit 112. The physical connections 117 are also housed within the rim 110. Some embodiments include routing the physical connections 117 through a machined channel on the bottom surface of the rim 110. The channel on the bottom surface of the rim 110 can be filled with a resin (E.g., epoxy resin) or silicone to fill the channel and secure the physical connections 117 in position. Some embodiments can include a rubber dust and liquid tight seal to protect the physical connections 117. In some embodiments, the physical connections 117 can be routed on the surface of the rim 110 (e.g., the bottom surface) and adhered with mechanical means or adhesives such as epoxy or silicone. The physical connections 117 can be electromagnetic field (EMF) shielded wires that extend from each of the sensors 109a-e to the control unit 112. Some embodiments of the physical connectors 117 can include twisted pairs of wires. The physical connectors 117 can also include flat shielded ribbon cables to connect to a printed circuit board (PCB) and to provide power and signal transfer back to the control unit 112. For example, each of the sensors 109a-e can include a PCB that facilitate processing of the sensor data before the sensor data is sent to the control unit 112 or concurrently with the processing of the sensor data at the control unit 112.
[0091] In some embodiments, the ball training system 106 includes wireless connections that transmit signals from the sensors 109a-e to the control unit 112. In such examples, one or more power sources can be positioned with each sensor 109a-e. Power sources can include one or more batteries, solar panels, thermal energy harvesting devices, and / or vibration energy harvesting devices.
[0092] FIG. 3 illustrates an example sensor grid 160 representing the positions of each of the sensors 109a-e along with shot zones within the rim 110 and net 113 (with the rim 110 and net 113 removed from view). The sensors 109a-e are aligned in a similar orientation with at least one degree of freedom shared between each of the sensors 109a-e. For example, each of the sensors 109a-e can be aligned in the X-axis 121a-e, the Y-axis 123a-e, or the Z-axis 125 a-e. In some embodiments, the Z axis 125a-e of the sensors 109a-e is oriented perpendicular to a normal plane of the rim 110.
[0093] In some embodiments, the sensors 109a-e can create a sensor grid 160 within the rim 110 that corresponds to ball placements for each shot. The sensor grid 160 is generated and populated with each shot based on the actions of the sensor engine 114 and the signature engine 116. The sensor grid 160 can include multiple zones including an outer zone “A”, a middle zone “B”, an inner zone “C”, and a center zone. The signature engine 116 can position basketball shots based on the determined zone for each shot. For example, the signature engine 116 can utilize the sensor data to determine a location of each shot within the sensor grid 160 before providing the shot signatures to the evaluation engine 118. Additionally, the ball training system 106 can include additional sensors (e g., light sensors, light curtains, laser sensors, cameras, among others) that capture shots that pass through the center zone without generating strong enough signal through the net 113. In some implementations, shots that pass through the net 113 without impacting the rim 110 can generate signal data from the resistance of the net 113 and the connection between the net 113 and the rim 110.
[0094] FIG. 4 shows an example array 170 of shot signatures 171a-n generated by the signature engine 116. Each of the shot signatures 171a-n represent a calculated center of a basketball shot for each set of sensor data for each shot. The shot signatures 171a-n include positional elements for each basketball shot detected by the sensor(s) 109a-e . For example, the shot signatures 171a-n represent a location of impact of each shot in relation to the rim 110 for each shot based on the sensor data received from the sensor engine. Values of each shot signature can be generated by the signature engine 116 processing sensor data obtained from the sensors 109a-e. In some cases, shot signatures 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 116.
[0095] FIG. 5 is a flowchart of an example process 500 for a basketball training system. For convenience, the process 500 will 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 training system 106 of FIG. 1, appropriately programmed, can perform the process 500.
[0096] The process 500 includes obtaining sensor data from one or more sensors of a ball delivery system (502). For example, obtaining sensor data can occur while a user, such as the shooter 102, is performing a workout using the ball training system 106. The sensor engine 114 can obtain sensor data from one or more sensor(s) 109a-e.
[0097] The process 500 includes generating one or more shot signatures using the sensor data (504). For example, the signature engine 116 can generate one or more shot signatures for each shot that the ball training system 106 detects for the shooter 102. The shot signatures can include representations of impact positions for each detected shot during the workout.
[0098] The process 500 includes evaluating each of the generated shot signatures (506). For example, the evaluation engine 118 can evaluate the shot signatures generated by the signature engine 116. Evaluation can include comparing the shot signatures to each other to determine positional information for each of the shot signatures, and whether each shot signature was a made shot or a missed shot.
[0099] The process 500 includes generating an evaluation signature using the evaluated shot signatures (508). For example, the evaluation engine 118 can generate an evaluation signature based on the evaluated shot signatures generated by the signature engine 116 and the evaluation engine 118. Evaluation can include comparing the shot signatures to each other to determine positional information such as a make bias, a miss bias, and an overall shot position bias for a user. The evaluation can include comparing the shot signatures to previously generated signatures representing a similar workout or drill performed either by the shooter 102 or another user.
[0100] The process 500 includes providing a result of evaluating the generated evaluation signature using an indicator of the ball delivery system (510). For example, the ball training system 106 can include the indicator 108 that provides information. The indicator 108 can include a screen, audio device, or other means for providing information.The information can include a representation of the evaluation — e.g., an indication of whether or not the shooter 102 is performing well or poorly compared to goal values or compared to previously generated workout signatures. Indications can include audio, visual, or other cues. The indicator 108 can be configured with appropriate mechanisms to provide indications, such as an audio device or digital screen.
[0101] FIG. 6 shows an environment 600 that includes the ball training system 606. The ball training system 606 can share features with ball training system 106. For example, ball training system 606 can facilitate training in ball sports (e g., basketball). Generally, the ball training system 606 can capture data, e.g., using sensors, at a basketball rim 610 and backboard 611 related to a user shooting a basketball. The data can include makes, misses, shot location, shooter location, or a combination of these among others. The ball training system 606 can be used to capture, analyze, and evaluate a user’s performance of shooting basketballs at the basketball rim 610. The analysis and evaluation can include the identification of specific areas for improvement, including determining and providing a user with performance data capturing user’s shot trends and locations around the rim where the user misses shots most frequently. Additionally, the ball training system can determine and provide the user with an average miss bias in relation to the basketball rim 610.
[0102] The ball training system 606 can share features with the ball training system 106. For example, the basketball rim 610 can share features with the basketball rim 110, and the backboard 611 can share features with the backboard 111. Additionally, the ball training system 606 can include one or more of the sensors such as sensors 109a-e, 115, 122, the sensor engine 114, the signature engine 116, the evaluation engine 118, and the action engine 120. The system 106 can include one or more features of the system 606. For example, the system 106 can include one or more of the sensors 609a-d, and the system 601 can include one or more of the sensors 109a-e, 115, 122.
[0103] The ball training system 606 can include one or more sensors 609a-d that detect various features of a training session — e.g., detecting makes or misses, detecting a location of a shooter, detecting a trajectory of a ball shot towards the rim, detecting a spin rate of a ball, or a combination of these. In some implementations, sensors 609 a-d can include ultrasonic, mmWave sensors, or a combination of these. Sensors, includingultrasonic or mmWave sensors, can be used to detect various features of a training session — e.g., detecting makes or misses, detecting a location of a shooter, or a combination of these.
[0104] FIGS. 6 and 7 show the sensors 609a-d of the ball training system 601 positioned in relation to the rim 610 and the backboard 611. In some implementations, the sensors 609a-d are connected to a frame 619. The frame 619 can be separate from the backboard 611. In some implementations, the frame 619 can be separate from the rim 610 and the backboard 611. In some implementations, the frame 619 positions the sensors 609a-d with respect to the rim 610 and the backboard 611. For example, the frame 619 can extend to position the sensors 609a-d at each corner of the backboard 611 (e.g., top right, top left, bottom right, bottom left). Each of the sensors 609a-d, while positioned near the comers of the backboard 611, can be connected to the frame 619 and not directly connected to the backboard 611.
[0105] In some implementations, the frame 619 can extend along the top and bottom of the backboard 611 to position the sensors 609a-d at each respective corner of the backboard 611. The frame 619 can extend over a base of the rim 610, downward toward a bottom of the backboard 611 and outward along the bottom of the backboard 611 to the ends where the sensors 609c, d are positioned. The frame 619 can also extend from below the base of the rim 611 on each respective side of the rim backwards and behind the backboard 611. At a backside of the backboard 611 (e.g., the side of the backboard 611 that the rim 610 is not extending from), the frame 619 can extend vertically towards the top of the backboard 611. The frame 619 can extend over a top of the backboard 611 toward the front of the backboard 611 and along the top of the backboard outwards to each end where the sensors 609a, b are positioned. The system 606 can include four sensors 609a-d, one positioned near each comer of the backboard 611. In some implementations, the system 606 can include one, two, three, four, or more of the sensors 609a-d either in the positions illustrated or in other positions. For example, a sensor (e.g., a mmWave sensor like sensors 609a-d) can be positioned behind the glass of the backboard 611 and behind the rim 610 such that the sensor is in the center of the square on the backboard. In some implementations, the system can include a sensor (Either a single sensor or in combination with one or more of the sensors described herein)
[0106] FIGS. 8, 9, and 10 show the ball training system 606 with the sensors 609a-d and illustrate example fields of view for each of the respective sensors. Each of the sensors 609a-d can be oriented in a direction towards the rim 610 (e.g., at least towards a portion of the rim 610). As mentioned above, each of the sensors 609a-d can be a mmWave sensor that each have a field of view 624a-d. The field of view 624a-d can be the angular extent of the area that each sensor 609a-d can detect and track targets. In some implementations, each sensor 609a-d can have a field of view that extends outwardly from the sensor and covers an area in front of the backboard 611 including the rim 610, an area above the rim 610, and an area 610 in front of the rim (e.g., towards a playing area where a user is shooting balls from).
[0107] Each sensor 609a-d has a focal point 627a-d based on the orientations of each of the sensors 609a-d. In some implementations, the focal points 627a-d are at different positions in relation to the rim 610. The focal points 627a-d can be positioned above the rim 610 and in front of the backboard 611. In some implementations, each respective focal point 627a-d has an independent location that is spaced apart from the other focal points. In some implementations, the focal points 627a and 627b are aligned horizontally, focal points 627c and 627d are aligned horizontally, focal points 627a and 627c are aligned vertically, focal points 627b and 627d are aligned vertically.
[0108] In some implementations, the sensors 609a-d have overlapping fields of view 624a-d, including an intersection area 631 (see FIGS. 9 and 10) where the fields of view 624a-d all overlap. The intersection area 631 can be positioned over and through the rim 611 and extend between the backboard 611 and in front of the rim 610.
[0109] The fields of view intersecting and overlapping with each other can facilitate increased accuracy and precision of the system. For example, the overlapping fields of view facilitate redundancies where multiple sensors can detect a shot passing through the fields of view to determine shot parameters (e.g., location, trajectory, speed, spin rate, make / miss, player location, among others).
[0110] In some implementations, the system 600 can include the sensors 606a-d and can include rim 110 that includes sensors 109a-e. The rim 610 can be the rim 110. The system 600 (e.g., via sensor engine 114, signature engine 116, evaluation engine 118, and action engine 120 described above) can analyze the data from the sensors 609a-d, sensors 109a-e, and all sensors of systems 106, 606. For example, the engines perform processes,e g., using one or more computer processors, as described in reference to each respective engine. The engines and respective processes can facilitate coordination of data from sensors 609a-d and sensors 109a-e, including generating shot signatures, evaluation signatures, fingerprints, results, among others.
[0111] FIGS. 11 and 12 show the ball training system 606 with the field of view 624a of sensor 609a. Each field of view 609a-d can include a same or similar shape to the field of view 624a. In some implementations, the field of view 624a can extend from sensor 609a and higher than a top of the backboard 611, in front of the back board 611, intersect with at least a portion of the rim 610 (e.g., a front and right side of the rim 610), extend below the rim 610, and extend in front of the rim 610.
[0112] FIG. 13 shows an environment 1300 that includes the ball training system 1306. The ball training system 1306 can share features with ball training systems 106, 606. For example, ball training system 1306 can facilitate training in ball sports (e.g., basketball). Generally, the ball training system 1306 can capture data, e.g., using sensors, at a basketball rim 1310 and backboard 1311 related to a user shooting a basketball. The data can include makes, misses, shot location, shooter location, or a combination of these among others. The ball training system 1306 can be used to capture, analyze, and evaluate a user’s performance of shooting basketballs at the basketball rim 1310. The analysis and evaluation can include the identification of specific areas for improvement, including determining and providing a user with performance data capturing user’s shot trends and locations around the rim where the user misses shots most frequently. Additionally, the ball training system can determine and provide the user with an average miss bias in relation to the basketball rim 1310.
[0113] The ball training system 1306 can share features with the ball training systems 106, 606. For example, the basketball rim 1310 can share features with the basketball rims 110, 610 and the backboard 1311 can share features with the backboards 111, 611. Additionally, the ball training system 606 can include one or more of the sensors such as sensors 109a-e, 115, 122, sensors 609a-d, the sensor engine 114, the signature engine 116, the evaluation engine 118, and the action engine 120.
[0114] The ball training system 1306 can include a sensor 1309 that detects various features of a training session — e.g., detecting makes or misses, detecting a location of a shooter, detecting a trajectory of a ball shot towards the rim, detecting a spin rate of a ball, ora combination of these. In some implementations, sensor 1309 can include ultrasonic, mmWave sensors, or a combination of these. Sensors, including ultrasonic or mmWave sensors, can be used to detect various features of a training session — e.g., detecting makes or misses, detecting a location of a shooter, or a combination of these.
[0115] The ball training system 1306 can share features of the ball training system 606, For example, the ball training system 1306 can include a sensor 1309 positioned above the rim 1310 and the backboard 1311. The sensor 1309 can be oriented forward and downward to capture an area above and in front of the rim 1310. The sensor 1309 can share features with one or more of the sensors 609a-d. The sensor 1309 can be connected to a frame 1319 that can share features with the frame 619. The sensor 1309 can be positioned above the rim, below the rim, left of the rim, right of the rim. While illustrated positioning the sensor 1309 above the rim, the frame 1319 can extend below the rim to position the sensor 1309 below the rim and facing upward to capture an area below, in front, and above the rim 1310. In some embodiments, the sensor 1309 can be connected to and extend from an extension pole to have a field of view over the top of the rim. The sensor 1309 can be connected to the extension pole that is mounted to the vertical support column (e.g., the column that supports the rim and backboard off of the ground).
[0116] In some embodiments, any one of the systems 106, 606, 1306 can include multiple rims. For example, the systems can include a first rim (e.g., rim 110, 610, 1310) at a first portion of a basketball court and a second rim (e g., another rim 110, 610, 1310) at a second portion of the basketball court. The system with two rims can include each of the features of the systems 106, 606, 1306 such that the system includes sensor capabilities at multiple locations. In some embodiments, the engines (e.g., the sensor engine 114, the signature engine 116, the evaluation engine 118, and the action engine 120) can be shared between the multiple rims, or each rim can include their own respective engines (the sensor engine 114, the signature engine 116, the evaluation engine 118, and the action engine 120). In some implementations, the sensors (e.g., sensors 109a-e, 609a-d, 1309) can utilize mmWave radar to detect activity in the play area, such as an area or court the rims are positioned. For example, the sensors 109a-e, 609a-d, 1309 can detect balls in play, passes between players, ball speed, shots towards either rim, makes / misses, player location, playermovement, game score (e.g., points scored at either rim based on shot locations detected by the one or more sensors), among others.
[0117] Although techniques and technologies are described in reference to basketball, the same techniques or technologies can be applied, with suitable adjustments, to various sports or activities. Other ball sports, such as ping-pong, bowling, tennis, golf, among others, can be aided by systems similar to the basketball implementation of the training system and techniques shown and described. For example, a training system described in this document can be applied to other ball sports by using similar sensor methods and an appropriate ball delivery system for the sport — e.g., a golfball distributor located near a golf club swinger connected to one or more sensors and a control unit, similar to the ball training system 106. A training system for a ball sport can include elements shown in FIG. 1 including sensors, a control unit, and a return system. Such a training system can obtain sensor data to generate a signature and use the generated signature for evaluation of a user based on elements of the signature — e.g., golf swing, tennis swing, bowling stroke, or the like. Such a training system can provide results to a user with appropriate notifications, such as audio or visual notifications, mobile device notifications, haptic notifications (e.g., haptic feedback via a wearable device) or the like.
[0118] In this specification, the term “engine” or “software engine” refers to a software implemented input / output system that provides an output that is different from the input. An engine can be an encoded block of functionality, such as a library, a platform, a software development kit (“SDK”), or an object. Each engine can be implemented on any appropriate type of computing device, e.g., servers, mobile phones, tablet computers, notebook computers, music players, e-book readers, laptop or desktop computers, PDAs, smart phones, or other stationary or portable devices, that includes one or more processors and computer readable media. Additionally, two or more of the engines may be implemented on the same computing device, or on different computing devices.
[0119] The subject matter and the actions and operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The subject matter and the actions and operations described in this specification can beimplemented as or in one or more computer programs, e.g., one or more modules of computer program instructions, encoded on a computer program carrier, for execution by, or to control the operation of, data processing apparatus. The carrier can be a tangible non- transitory computer storage medium. Alternatively or in addition, the carrier can be an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be or be part of a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them. A computer storage medium is not a propagated signal.
[0120] The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. Data processing apparatus can include special-purpose logic circuitry, e.g., an FPGA (field programmable gate array), an ASIC (application-specific integrated circuit), or a GPU (graphics processing unit). The apparatus can also include, in addition to hardware, code that creates an execution environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[0121] A computer program can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages; and it can be deployed in any form, including as a stand-alone program, e.g., as an app, or as a module, component, engine, subroutine, or other unit suitable for executing in a computing environment, which environment may include one or more computers interconnected by a data communication network in one or more locations.
[0122] A computer program may, but need not, correspond to a file in a file system. A computer program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub-programs, or portions of code.
[0123] The processes and logic flows described in this specification can be performed by one or more computers executing one or more computer programs to perform operations by operating on input data and generating output. The processes and logic flows can also be performed by special-purpose logic circuitry, e.g., an FPGA, an ASIC, or a GPU, or by a combination of special-purpose logic circuitry and one or more programmed computers.
[0124] Computers suitable for the execution of a computer program can be based on general or special-purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for executing instructions and one or more memory devices for storing instructions and data. The central processing unit and the memory can be supplemented by, or incorporated in, special-purpose logic circuitry.
[0125] Generally, a computer will also include, or be operatively coupled to, one or more mass storage devices, and be configured to receive data from or transfer data to the mass storage devices. The mass storage devices can be, for example, magnetic, magnetooptical, or optical disks, or solid state drives. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few.
[0126] To provide for interaction with a user, the subject matter described in this specification can be implemented on one or more computers having, or configured to communicate with, a display device, e.g., a LCD (liquid crystal display) monitor, or a virtual- reality (VR) or augmented-reality (AR) display, for displaying information to the user, and an input device by which the user can provide input to the computer, e.g., a keyboard and a pointing device, e.g., a mouse, a trackball or touchpad. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback and responses provided to the user can be any form of sensory feedback, e.g., visual, auditory, speech, or tactile feedback or responses; and input from the user can be received in any form, including acoustic, speech, tactile, or eye tracking input, including touch motion or gestures, or kinetic motion or gestures or orientation motion or gestures. In addition, a computer can interactwith a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user’s device in response to requests received from the web browser, or by interacting with an app running on a user device, e.g., a smartphone or electronic tablet. Also, a computer can interact with a user by sending text messages or other forms of message to a personal device, e.g., a smartphone that is running a messaging application, and receiving responsive messages from the user in return.
[0127] This specification uses the term “configured to” in connection with systems, apparatus, and computer program components. That a system of one or more computers is configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. That one or more computer programs is configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions. That special -purpose logic circuitry is configured to perform particular operations or actions means that the circuitry has electronic logic that performs the operations or actions.
[0128] The subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface, a web browser, or an app through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
[0129] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In someimplementations, a server transmits data, e.g., an HTML page, to a user device, e.g., for purposes of displaying data to and receiving user input from a user interacting with the device, which acts as a client. Data generated at the user device, e.g., a result of the user interaction, can be received at the server from the device.
[0130] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of what is being claimed, which is defined by the claims themselves, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially be claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claim may be directed to a sub combi nation or variation of a subcombination.
[0131] Similarly, while operations are depicted in the drawings and recited in the claims in a particular order, this by itself should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0132] Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.
[0133] What is claimed is:
Claims
CLAIMS1. A basketball training system comprising: a basketball rim having one or more sensors mounted to the basketball rim; one or more computers housed in the basketball rim 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: obtaining sensor data from one or more sensors of the basketball training system; generating one or more shot signatures using the sensor data, the one or more shot signatures including a representative position of each of plurality of basketball shots in relation to the basketball rim; evaluating each of the generated shot signatures; generating an evaluation signature using the evaluated shot signatures; and providing a result of evaluating the generated evaluation signature using an indicator of the basketball training system.
2. The basketball training system of claim 1, wherein the one or more sensors comprises: a first sensor mounted to a first side of the basketball rim; a second sensor mounted to a second side of the basketball rim, the second side of the basketball rim being opposite the first side; and a third sensor mounted to a front of the basketball rim.
3. The basketball training system of claim 2, wherein the first, second, and third sensors are three-axis accelerometers.
4. The basketball training system of claim 1, wherein the one or more storage devices are housed within the basketball rim.
5. The basketball training system of claim 1, wherein the one or more storage devices are housed on the basketball rim.
6. The basketball training system of claim 1, wherein the operations further include determining sensor data for made basketball shots and missed basketball shots and separately indexing the sensor data for the made basketball shots and the missed basketball shots.
7. The basketball training system of claim 6, wherein the result includes a representative miss position of a plurality of missed basketball shots.
8. The basketball training system of claim 6, wherein the result includes a representative make position of a plurality of made basketball shots.
9. The basketball training system of claim 1, wherein the basketball rim is a flexible rim comprising a ball and socket and a spring at a base of the rim.
10. The basketball training system of claim 1, wherein the basketball rim is a flexible breakaway rim.
11. A computer-implemented method comprising: obtaining sensor data from one or more sensors of a basketball training system; generating one or more shot signatures using the sensor data, the one or more shot signatures including a representative position of each of plurality of basketball shots in relation to a basketball rim; evaluating each of the generated shot signatures; generating an evaluation signature using the evaluated shot signatures; and providing a result of evaluating the generated evaluation signature using an indicator of the basketball training system.
12. The method of claim 11, comprising: determining sensor data for made basketball shots and missed basketball shots; and indexing the sensor data for the made basketball shots and the missed basketball shots separately.
13. The method of claim 12, wherein the result includes a representative miss position of a plurality of missed basketball shots.
14. The method of claim 12, wherein the result includes a representative make position of a plurality of made basketball shots.
15. The method of claim 11, wherein the sensor data represents basketball impacts at various positions around the basketball rim.
16. The method of claim 15, wherein the sensor data representing the basketball impacts includes three-axis acceleration data captured from the one or more sensors.
17. The method of claim 11, comprising: updating, during a workout of a user, the evaluation signature.
18. The method of claim 11, wherein evaluating the generated evaluation signature comprises: comparing at least a portion of the evaluation signature with a previously generated evaluation signature.
19. The method of claim 18, wherein the previously generated evaluation signature was previously generated during a previous workout of a user.
20. The method of claim 11, wherein the result is provided as a visual indication.
21. 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: obtaining sensor data from one or more sensors of a basketball training system; generating one or more shot signatures using the sensor data;evaluating each of the generated shot signatures; generating an evaluation signature using the evaluated shot signatures; and providing a result of evaluating the generated evaluation signature using an indicator of the basketball training system.
22. The media of claim 21, wherein generating the one or more shot signatures comprises: generating a representative position of each of plurality of basketball shots in relation to the basketball rim.
23. The basketball training system of claim 1, wherein generating the one or more shot signatures using the sensor data comprises: determining whether a shot was made or missed.
24. The basketball training system of claim 1, wherein generating the one or more shot signatures using the sensor data comprises: determining shot statistics for one or more shot locations.
25. The basketball training system of claim 24, wherein determining the shot statistics for one or more shot locations comprises: detecting a location of a player that shot a basketball as a shot location.
26. The basketball training system of claim 1, wherein the one or more storage devices are configured to store data of a training session.
27. The basketball training system of claim 26, wherein storing data of the training session comprises storing shots made histories.
28. The basketball training system of claim 27, wherein storing shots made histories comprises storing an indication of a make or a miss for one or more attempted shots.
29. The basketball training system of claim 26, wherein generating the one or more shot signatures using the sensor data comprises: generating the one or more shot signatures using the sensor data stored on the one or more storage devices.
30. The basketball training system of claim 1, wherein the one or more sensors of the basketball training system include at least one of an ultrasonic sensor or a millimeter wave (mmWave) radar sensor.
31. The basketball training system of claim 30, wherein at least one of the ultrasonic sensor or the mmWave radar sensor is configured to obtain sensor data indicating whether or not a shot was made or missed.
32. The basketball training system of claim 30, wherein at least one of the ultrasonic sensor or the mmWave radar sensor is configured to monitor an area bounded by the basketball rim.
33. The basketball training system of claim 1, wherein a representative position of a basketball shot in relation to the basketball rim indicates whether the basketball shot was made or missed.
34. The basketball training system of claim 1, wherein generating the one or more shot signatures using the sensor data comprises: determining one or more player locations.
35. The basketball training system of claim 34, wherein determining the one or more player locations comprises: determining the one or more player locations using sensor data obtained from at least one of an application, a mmWave sensor, an ultrasonic sensor, or rim-mounted accelerometer.
36. The basketball training system of claim 35, wherein the application is a smartphone application operating on a smartphone.
37. The basketball training system of claim 1, wherein obtaining the sensor data comprises: obtaining audio data from a microphone.
38. The basketball training system of claim 37, wherein obtaining audio data from the microphone comprises: obtaining spoken words from a player or coach indicating a player’s location.
39. The basketball training system of claim 1, wherein obtaining the sensor data comprises: obtaining audio data from at least two microphones, wherein generating the one or more shot signatures using the sensor data comprises: determining a player location using the obtained audio data from the at least two microphones.
40. The basketball training system of claim 39, wherein determining the player location using the obtained audio data from the at least two microphones comprises triangulating using known positions of the two microphones.
41. The basketball training system of claim 1, wherein obtaining the sensor data from one or more sensors of the basketball training system comprises: obtaining workout information from an element of the basketball training system, wherein generating the one or more shot signatures using the sensor data comprises: generating shot statistics using the workout information.
42. The basketball training system of claim 41, wherein obtaining the workout information from the element of the basketball training system comprises: obtaining a shot location from a ball delivery machine.
43. The basketball training system of claim 1, wherein generating the one or more shot signatures using the sensor data comprises: identifying one or more players in a playing area.
44. The basketball training system of claim 43, wherein identifying the one or more players in the playing area comprises: detecting that a first player in the playing area attempted a first shot and that a second player in the playing area did not attempt the first shot.
45. The basketball training system of claim 44, wherein the operations comprise: in response to the detection, storing features of the first shot in data associated with the first player and not the second player.
46. The basketball training system of claim 45, wherein storing the features comprises storing data in the one or more storage devices, and wherein the one or more storage devices are attached to the basketball rim.
47. The basketball training system of claim 46, wherein the one or more storage devices are within the basketball rim.
Citation Information
Patent Citations
Operations with instrumented game ball
US20170144030A1
System and methods for providing a user key performance indicators for basketball
US20200009443A1
Interactive basketball system
US20230181987A1
Basketball goal sensor for detecting shots attempted and made
US6389368B1
Sports training machine
US9724584B1