SLIM COURT
20220054916 · 2022-02-24
Assignee
Inventors
Cpc classification
A63C19/02
HUMAN NECESSITIES
A63B2071/0675
HUMAN NECESSITIES
A63B2225/50
HUMAN NECESSITIES
A63B71/0605
HUMAN NECESSITIES
A63B2225/20
HUMAN NECESSITIES
A63B2210/50
HUMAN NECESSITIES
A63B69/40
HUMAN NECESSITIES
A63B2071/065
HUMAN NECESSITIES
International classification
A63B69/00
HUMAN NECESSITIES
A63B63/08
HUMAN NECESSITIES
Abstract
A basketball system is disclosed herein. In some embodiments, the system includes a rotatable hoop assembly with a hoop and backboard mounted to a support and rotatable around a vertical axis of rotation to change an angle of the hoop and the backboard relative to a particular geo-position. The system may include a programmable display device that presents a display on a surface based at least in part on the angle of the hoop and the backboard and control logic that sends commands to change the angle of the hoop and backboard relative to the particular geo-position. In some embodiments, a rebounding system is included with a ball guide that directs balls to the particular geo-position before and after a change to the angle of the hoop and the backboard.
Claims
1. A basketball system comprising: a rotatable hoop assembly including a hoop and backboard mounted to a support and rotatable around a vertical axis of rotation to change an angle of the hoop and the backboard relative to a particular geo-position; at least one programmable display device that presents a display on a surface based at least in part on the angle of the hoop and the backboard; and control logic that sends commands to change the angle of the hoop and backboard relative to the particular geo-position, wherein the display on the surface adjusts based at least in part on the angle of the hoop and the backboard.
2. The basketball system of claim 1, wherein the control logic sends the commands to change the angle of the backboard based at least in part on input received from a user.
3. The basketball system of claim 2, wherein the user input defines two or more angles and transition times between the two or more angles.
4. The basketball system of claim 1, wherein the at least one programmable display device includes a projector that projects lines onto the surface, wherein the lines projected by the projector change based at least in part on changes to the angle of the hoop and the backboard such that a player perceives shooting from different positions on a simulated basketball court without moving from the particular geo-position.
5. The basketball system of claim 1, wherein the at least one programmable display device includes a plurality of display devices embedded in or coupled to the surface.
6. The basketball system of claim 1, wherein the display on the surface further adjusts based on a virtual barrier such that lines of a simulated basketball court are not projected beyond the virtual barrier.
7. The basketball system of claim 1, wherein the particular geo-position is a position from which a player is expected to shoot basketballs.
8. The basketball system of claim 1, wherein the display on the surface includes at least one of lines of a simulated basketball court, a marked location of a virtual defender, a route for a player to take; or a position for the player to shoot.
9. The basketball system of claim 1, further comprising: a rebounding system assembly including a ball guide that directs balls to the particular geo-position before and after a change to the angle of the hoop and the backboard relative to the particular geo-position.
10. The basketball system of claim 1, further comprising: a sensor that detects a position of a player on the surface; wherein the control logic sends commands to the hoop assembly to adjust a height of the hoop and backboard based at least in part on the position of the player on the surface.
11. One or more non-transitory computer-readable media storing instructions, which when executed by one or more computing devices, cause: receiving data associated with a user of a basketball system that includes a hoop and the backboard rotatable around a vertical axis of rotation to change an angle of the hoop and the backboard relative to a particular geo-position; sending, based at least in part on the data associated with the user, commands that cause the hoop and the backboard to change the angle of the hoop and the backboard relative to a particular geo-position.
12. The one or more non-transitory computer-readable media of claim 11, wherein the instructions further cause: training a model to compute a respective angle for the hoop and the backboard relative to the particular geo-position based on user attributes; applying the model to the data associated with the user of the basketball system to determine a particular change to the angle of the hoop and the backboard relative to the particular geo-position; and wherein sending the commands causes the hoop and the backboard to rotate until the particular angle is reached relative to the particular geo-position.
13. The one or more non-transitory computer-readable media of claim 12, wherein applying the model to the data associated with the user of the basketball system includes determining a set of one or more angles that a player has a lower likelihood of making a successful shot given a set of attributes associated with the user.
14. The one or more non-transitory computer-readable media of claim 12, wherein applying the model to the data associated with the user of the basketball system includes selecting a period of time for changing the hoop and the backboard to the particular angle.
15. The one or more non-transitory computer-readable media of claim 12, wherein applying the model to the data associated with the user of the basketball system includes determining a sequence of transitions between different angles according to a particular pattern.
16. The one or more non-transitory computer-readable media of claim 11, wherein applying the model to the data associated with the user of the basketball system includes determining a set of one or more angles that a player has a lower likelihood of making a successful shot given a set of attributes associated with the user.
17. The one or more non-transitory computer-readable media of claim 11, wherein the data associated with the user includes training data input by a trainer for the user.
18. The one or more non-transitory computer-readable media of claim 11, wherein the commands are sent wirelessly by a mobile computing device to a control mechanism that controls rotation of the hoop and the backboard around the vertical axis.
19. The one or more non-transitory computer-readable media of claim 11, wherein the particular geo-position is position from which a player is expected to shoot basketballs.
20. A basketball system comprising: a rotatable hoop assembly including a hoop and backboard mounted to a support and rotatable around a vertical axis of rotation to change an angle of the hoop and the backboard relative to a particular geo-position; a rebounding system assembly mounted to the support including a plurality of arms coupled to a material for catching shots and a ball guide for directing balls to the particular geo-position, wherein the rebounding system remains fixed during rotation of the hoop and backboard such that the ball guide directs balls to the particular geo-position before and after a change to the angle of the hoop and the backboard relative to the particular geo-position.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The embodiments are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and they mean at least one. In the drawings:
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
DETAILED DESCRIPTION
[0022] In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding. One or more embodiments may be practiced without these specific details. Features described in one embodiment may be combined with features described in a different embodiment. In some examples, well-known structures and devices are described with reference to a block diagram form in order to avoid unnecessarily obscuring the present invention. [0023] 1. GENERAL OVERVIEW [0024] 2. ROTATABLE HOOP ASSEMBLY [0025] 3. ROTATABLE COURT DISPLAYS [0026] 3.1 PROJECTORS AND FLOOR-BASED DISPLAY DEVICES [0027] 3.2 LINE PROJECTIONS [0028] 3.3 OTHER DISPLAY OPTIONS [0029] 3.4 VIRTUAL BARRIERS [0030] 4. REBOUNDING SYSTEM [0031] 5. PROGRAMMED AND CUSTOMIZABLE APPLICATIONS [0032] 6. SENSOR-BASED ADJUSTMENTS [0033] 7. MACHINE-LEARNING APPLICATIONS [0034] 8. COMPUTER NETWORKS AND CLOUD APPLICATIONS [0035] 9. COMPUTER HARDWARE OVERVIEW [0036] 10. MISCELLANEOUS; EXTENSIONS
1. General Overview
[0037] Embodiments described herein include a basketball system, assembly, and apparatus that simulates shooting at different positions on a court even though the player may remain at the same geo-position. In some embodiments, a basketball system includes a rotatable hoop assembly comprising a hoop and backboard mounted to a support and rotatable around a vertical axis of rotation to change an angle of the hoop and the backboard relative to a particular geo-position. The rotatable hoop assembly may further comprise or be coupled to a motor that causes the hoop and backboard to rotate around the vertical axis of rotation responsive to receiving control signals.
[0038] In some embodiments, the basketball system includes one or more programmable display devices that present a display on a playing surface based on the angle of the hoop and the backboard. The display may simulate the lines of a basketball court that rotate or otherwise change position as the hoop assembly rotates. Additionally or alternatively, the display may include other projections, such as virtual defender positions, recommended routes for a player to take, and court locations for a player to shoot.
[0039] In some embodiments, the basketball system includes control logic that sends commands to change the angle of the rotatable hoop assembly, including the hoop and the backboard, relative to a particular geo-position. Responsive to receiving the control signals, a controller, included or coupled to the rotatable hoop assembly, may turn the rotatable hoop assembly to the specified angle relative to the particular geo-position.
[0040] In some embodiments, the basketball system includes a rebounding system assembly comprising a ball guide that directs balls to the particular geo-position before and after a change to the angle of the rotatable hoop assembly relative to the particular geo-position. Stated another way, the rebounding system assembly may be configured in some embodiments such that the direction of the rebound is not affected by the rotation of the hoop. Thus, a player may practice shots from multiple angles from the same geo-position without having to move to fetch rebounds.
[0041] In some embodiments, the basketball system includes one or more sensors to capture data useful to assessing player technique. For example, the sensors may detect if a shot is made, the angle of the shot, the arc of a shot, the speed of a shot, and/or the distance of the shot. Additionally or alternatively, the sensors may detect player attributes, such as the player height, and/or environmental characteristics, such as the slope of the court surface.
[0042] In some embodiments, the basketball system is programmable to transition between different angles at varying points in time. For example, a user may define two or more angles and transition times between the two or more angles. In response, the control logic may send commands to change the angle of the basketball hoop and backboard in accordance with the programmed transition times and angles.
[0043] In some embodiments, the basketball system uses machine learning to control the rotation of the hoop assembly and/or the display on the court. A machine learning (ML) process may include training an ML model to compute a respective angle for the hoop and backboard relative to a particular geo-position based on user attributes. Additionally or alternatively, the ML process may train the ML model to compute recommended shot locations, routes, defender positions, ball arcs, and/or other items that may be presented through the one or more display devices. The trained ML model may then be applied to data associated with a particular user of the basketball system to determine: (a) how to change the angle of the rotatable hoop assembly relative to a particular geo-position, (b) what to present via the one or more programmable display devices, and/or (c) transition times between different angles and/or displays. Based on the output of the ML model, commands may be sent at a particular time to cause the hoop and the backboard to rotate until the angle computed by the ML model is reached and/or to update the one or more programmable display devices.
[0044] In some embodiments, an ML model may be applied to optimize training routines for a particular user based on the user attributes. For example, the ML model may be applied to compute a sequence of shot angles and transition times that the ML model estimates are most likely to improve the shooter's shot percentage given the user's attributes. Additionally or alternatively, the ML model may cause the one or more programmable display devices to present recommended shot locations and/or routes that are estimated to improve the player's technique given the user's attributes.
[0045] One or more embodiments described in this Specification and/or recited in the claims may not be included in this General Overview section.
2. Rotatable Hoop Assembly
[0046] In some embodiments, a rotatable hoop assembly allows the basketball system to simulate different shooting angles relative to the same geo-position, where a geo-position may correspond to a physical location represented as a latitude, longitude, and altitude. The rotatable hoop assembly may be configured to rotate a hoop and backboard clockwise and/or counterclockwise around a vertical axis. A rotation of 180 degrees may be used to simulate a shot from any angle on a court. However, in other implementations, the full range of rotation may be greater than or less than 180 degrees.
[0047]
[0048]
[0049]
[0050]
[0051]
[0052] In some embodiments, control unit 112 includes a motor that is coupled to axle 110 and one or more hardware processors electrically coupled to the motor. A hardware processor may electrically instigate or otherwise actuate the motor to rotate clockwise or counterclockwise until hoop 102 and backboard 106 have reached a particular angle of rotation. In other embodiments, the motor may be actuated without a hardware processor. For example, a switch may be coupled to pole 118 and connected via a wire to the motor. A user may then press the switch one direction to cause the motor to rotate hoop 102 and backboard 106 clockwise and another direction to rotate the components counterclockwise.
[0053] In some embodiments, control unit 112 includes a wireless transceiver such that the rotation of rotatable hoop assembly 100 may be wirelessly controlled. A wireless transceiver or radio-frequency (RF) module may generally comprise a set of components for communicating wirelessly with another device, such as mobile phones, laptops, or other remote-control systems. Example components may include (a) an antenna for detecting and/or transmitting radio waves; (b) a receiver circuit for demodulating, decoding, and/or otherwise processing incoming wireless signals; (c) a transmitter circuit for modulating, encoding, and/or otherwise processing outbound wireless signals; and (d) an interface for communicating with a microcontroller, microprocessor, and/or other hardware processor. Responsive to receiving a wireless control signal to adjust the angle of rotation, the RF module may decode the signal to identify that angle of rotation specified. The motor may then be actuated to rotate hoop 102 and backboard 106 until the specified angle is reached. Additionally or alternatively, the RF module may transmit data to a remote system including the current angle of the hoop and performance statistics. The wireless module may implement one or more wireless communication protocols to transmit and/or receive data. Example wireless communication protocols include Wi-Fi, Bluetooth, Zigbee, and Z-Wave.
[0054] In some embodiments, rotatable hoop assembly 100 includes a set of one or more sensors (not illustrated) for capturing performance and/or environmental attributes. For example, rotatable hoop assembly 100 may include a camera, which may be embedded in backboard 106 or otherwise coupled to one or more system components. Additionally or alternatively, rotatable hoop assembly 100 may include other sensors. Examples include infrared scoring sensors under the basketball rim to track whether shots are made or missed and laser sensors to detect short arcs, ball speed, player positions, and/or other performance metrics. Control unit 112 may use the sensor measurements to compute the angle and/or height of hoop 102 and backboard 106. Additionally or alternatively, control unit 112 may send sensor measurements and/or other sensor-based information to a remote application via the RF module.
3 Rotatable Court Displays
3.1 Projectors and Floor-Based Display Devices
[0055] As previously mentioned, the basketball system may include a set of one or more programmable display devices for presenting images on a playing surface. In some embodiments, the programmable display devices include one or more projectors. A projector may generally comprise a light source, such as a set of lasers or light-emitting diodes (LEDs), an image engine for rendering the images that are displayed by the light source, and a lens for projecting and focusing the displayed image. With laser projectors, the lens may be omitted, and the image may be directly projected using lasers.
[0056] In some embodiments, a projector is coupled to or integrated into one or more components of rotatable hoop assembly 100. For example, a projector may be mounted to the top, side, or bottom of backboard 106. In other implementations, the projector may be embedded and integrated directly into backboard 106. In these example implementations, the rotation of backboard 106 causes the projector to rotate in the same direction. As a result, the projected image on the playing surface is also shifted in accordance with the angle of rotatable hoop assembly 100, thereby simulating a rotating court surface.
[0057] In other embodiments, the projector may be coupled to pole 118 or another location that does not automatically rotate with hoop 102 and backboard 106. In this case, the projector's image engine may synchronize the rotation of the projected images with the rotation of rotatable hoop assembly 100. For example, when a wireless control signal is sent to rotate the hoop, a control signal may also be sent to the projector to actuate rotation of a set of projected lines to match the angle of the hoop. A controller may be coupled to or integrated directly into the projector unit to change the display based on the control signals.
[0058] In some embodiments, the set of one or more programmable display devices includes a set of surface lights, which may be embedded directly into the playing surface. Some sports floor technologies include LEDs embedded within a playing surface composed of glass, hardwood, and/or other materials. The lines that are displayed on the court may be changed by switching individual lights on if they are part of a line and off if they are not part of a line. In some embodiments, each individual light embedded in the playing surface may be controlled wirelessly. In other embodiments, the embedded lights may be electrically coupled to a controller that switches the lights on or off.
[0059] In some embodiments, a set of lights embedded in the playing surface are synchronized to change with the rotation of rotatable hoop assembly 100. For example, lights may be switched on and off as the hoop rotates to shift the display of the basketball key, free-throw line, and/or three-point line to match the corresponding angle. Additionally or alternatively, other lines and/or images may be projected, such as base lines, court boundary lines, shot locations, shot routes, and virtual defender locations.
[0060] The manner in which the embedded lights are synchronized with the rotation of rotatable hoop assembly 100 may vary depending on the particular implementation. In some embodiments, control unit 112 may transmit signals to wirelessly switch on and off the appropriate lights based on the current angle of rotation. In other embodiments, another control unit or mobile application may coordinate the image projection with the rotation. For example, a mobile application may transmit signals to control unit 112 to adjust the angle of rotatable hoop assembly 100 and concurrently (or nearly concurrently) transmit signals to the embedded lights (or another control unit coupled thereto) to switch lights on or off based on the current angle of the hoop.
3.2 Line Projections and Other Images
[0061] In some embodiments, the one or more programmable display devices are configured to give a player the perception of shooting from different court locations when the player remains in the same geo-position. The lines that are projected may conform to regulation-size court dimensions to simulate a game-time environment. The basketball system may further allow a user to switch dimensions to simulate different regulation and/or non-regulation courts, such as National Basketball Association (NBA) court lines, National Collegiate Athletic Association (NCAA) court lines, and high school court lines. The line distances and locations may vary between different court types.
[0062]
[0063] Referring to
[0064] Referring to
[0065]
[0066] Although only seven discrete angles are shown in
[0067] In some embodiments, the display devices may project other images in addition or as an alternative to the shot lines. As previously mentioned, the other images may include recommended shot locations, virtual defender positions, and recommended dribbling routes. A shot location and/or virtual defender position may be presented with a visual indicator, such as an “X” or “O”, at the corresponding court location. Different symbols and/or colors may be used to distinguish between the two, which may be concurrently displayed. A recommended route may be presented by projecting arrows or a sequence of images charting the route. Additionally or alternatively, the display devices may be programmed to display other images on the court surface.
[0068] In some embodiments, the one or more programmable display devices may project images at surface locations determined based in part on the current angle of rotation of rotatable hoop assembly 100. For example, a virtual defender position may rotate with the hoop and rotatable court lines to maintain the same perceived location on the court. In other embodiments, the virtual defender position and/or other images may remain fixed even as the hoop and projected lines rotate to give the perception of the image changing location as the court rotates. Thus, a portion of a surface display may move while another portion remains projected at the same location.
3.3 Virtual Barriers
[0069] In some embodiments, virtual barriers may be programmed into the basketball system. A virtual barrier may define a set of one or more boundary lines that projected images should not pass. Virtual barriers may be useful to prevent the programmable display devices from projecting images in undesired locations, such as a neighbor's yard or adjacent court.
[0070] The manner in which the virtual barriers are defined may vary depending on the particular implementation. In some embodiments, a user may set virtual markers in one or more locations or walk a boundary line that is tracked via a mobile phone or other device. In other embodiments, the user may specify the location, such as through global positioning coordinates entered via a mobile application that interfaces with the basketball system.
[0071] Once a virtual barrier is defined, a projector may be configured to project images up to the virtual boundary line, but not beyond. The image engine may determine which lights map to locations beyond the virtual barrier. The projector may then disable or otherwise obscure these lights to prevent their projection. The remaining lights that do not extend past the boundary may be projected as normal.
[0072] In some embodiments, the rotation of a projected image accounts for the virtual barrier. For example, a virtual barrier may be defined on the right and/or left side of a court, preventing projection of a portion of the three-point line. As the court lines are rotated, the portion of the lines that are obscured may adjust based on the angle of rotation.
[0073]
[0074] Panel 402 depicts the effect of the two virtual barriers on a court that has been rotated fully clockwise. In this arrangement, the left part of the three-point line previously obscured by the left virtual barrier is rotated into view. In addition, a portion of the lines at the top of the key that were previously visible are blocked from projection.
[0075] Panel 404 depicts the effect of the two virtual barriers on a court that has been rotated fully counterclockwise. In this arrangement, the right part of the three-point line previously obscured by the right virtual barrier is rotated into view. In addition, a portion of the lines at the top of the key that were previously visible in panel 400 are blocked from projection.
4. Rebounding System
[0076] In some embodiments, the basketball system includes a rebounding and programmable passing system that returns balls to a particular geo-position. The rebounding and programmable passing system may be implemented without rotation ability since the player position does not need to change locations to simulate shots from different angles. As a result, the number of moving parts in the rebounding system may be small compared to a rotating assembly. The rebounding system may also be lighter and have a smaller footprint than a rotating counterpart.
[0077] The rebounding system may be coupled to, built into, or otherwise integrated into a pole or other support structure to which the rotatable basketball hoop assembly may be attached. In some embodiments, the rebounding system comprises a pole mount that attaches to basketball poles of varying diameters basketball pole. The pole mount may position and support the weight of the other components of the rebounding system.
[0078] In some embodiments, the rebounding system includes a plurality of poles that are coupled to or directly built into the pole mount. The plurality of poles may extend upward and outward from the pole mount at different angles such that the ends of the poles encircle or otherwise encompass rotatable hoop assembly 100. Netting or other material may be attached or otherwise coupled to the poles to catch made and missed shots within the vicinity of rotatable hoop assembly 100.
[0079] In some embodiments, the rebounding system includes a ball guide to direct balls back to a particular geo-position, which may generally correspond to the shooting location of a player. A ball guide may include a ramp and/or a passing machine. A ramp may be purely mechanical whereas a passing machine is an electro-mechanical motorized device. A ramp is generally lighter weight and less costly. However, a passing machine may increase the speed and consistency of rebounds.
[0080]
[0081]
[0082]
[0083]
[0084]
[0085] In some embodiments, rebounding system 500 does not couple to or otherwise touch any of the rotating components of rotatable hoop assembly 100. The distance between poles 504a-e may be set such that hoop 102 and backboard 106 may freely rotate clockwise and counterclockwise without affecting rebounding system 500. As the player simulates different court locations from the same geo-position, rebounding system 500 may remain fixed without rotating as rotatable hoop assembly 100 transitions between different angles. The user may control the passing location of rebounding system 500 independently from the control of rotatable hoop assembly 100. For example, as previously mentioned, the user may remotely control a passing machine using a mobile phone application to direct rebounds to different geo-positions. The passing machine may include a mount that allows the machine to be attached to the basketball pole, which may facilitate storage and reduce costs.
[0086] In some embodiments, the height of poles 504a-e are set above hoop 102 to force the player to arc the basketball to clear the netting and make a shot. This may help the player improve shooting technique by developing a more optimal shot arc. However, the height of poles 504a-e may vary depending on the particular implementation and be configurable by the player.
5. Programmed and Customizable Applications
[0087] In some embodiments, a player may switch the angle of rotatable hoop assembly 100 on demand. In other embodiments, a program may be run that controls the angle of rotation and transition times between different angles. The program may be run locally, such as by control unit 112 or on a remote device that sends control signals to turn rotatable hoop assembly 100 at the appropriate transition times.
[0088] In some embodiments, a user may specify a set of angles and transition times via a user interface for programming rotatable hoop assembly 100. For example, the user may input <0°, 30s; 90° clockwise, 20s; 180° counterclockwise, 20s> and run the program. In response, the rotatable court may remain in the position depicted in panel 202 for 30 seconds, followed by the position depicted in panel 226 for 20 seconds, followed by the position depicted in panel 206 for another 20 seconds. The user may be allowed to create a loop such that the program iterates through the different angles or it may be a one-time execution. Additionally or alternatively, the user may specify a stop time or runtime duration, where the program iterates through the specified angles until the end time is reached.
[0089] The user defining a program may be the player or a trainer. In the latter scenario, the trainer may share the program with one or more trainees, such as via a mobile application. The trainee may then access and run the program using the mobile application, which send the control signals to rotatable hoop assembly 100 and the one or more display devices in accordance with the specified instructions.
[0090] Additionally or alternatively, users may define visual elements to project on a court surface. For example, a trainer may define a set of one or more virtual defender locations, a dribbling route around the virtual defender locations, and a final shot location, which may be projected onto the playing surface as previously described. The trainer or another user may further define a set of different visual projections and transition times between the different projections. Thus, the visual projections may prompt the user to practice different routes around varying defender locations and take shots from different shot locations.
6. Sensor-Based Adjustments
[0091] In some embodiments, the basketball system may control rotatable hoop assembly 100 and/or the one or more display devices based on sensor measurements. For example, a camera may be integrated into the basketball system as previously described. The camera may detect whether the playing surface is sloped, which is common in driveways. Based on the angle of the slope and the distance of the player, the height of the hoop may be lowered to simulate shooting on a regulation height hoop. If the player moves closer, then the hoop may be raised as a function of the slope and player distance. If the player movers farther out, then the hoop may be lowered even further.
[0092] Additionally or alternatively, the hoop height may automatically be set based on player height or player recognition. For example, a preference may be specified for a child user to set the hoop to seven feet whereas an adult user has a preference for a height of ten feet. The camera may detect whether a child user or adult user is currently playing. In response to the sensor measurements, control unit 112 may set the height accordingly.
[0093] In some embodiments, the basketball system sensors include an arc measurement sensor. The sensor may be a camera that is placed on the side of the court. By placing the sensor on the side of the court, depth perception is not needed to accurately measure the short arc position. At the side of the court, the camera may have continuous visibility of the player and the basketball, allowing the arc measurement to be performed with image recognition without having to compute depth. As a result, image processing requirements are significantly less burdensome.
[0094] In some embodiments, the basketball system may make adjustments based on arc measurement, shot statistics, and/or other sensor measurements to optimize practice time for the player. For example, the basketball system may identify shot positions where the player has sub-optimal arc and/or a low shot percentage. The basketball system may increase the amount of time the shooter spends at these shooting locations by transitioning the angles into the player's routine more frequently and/or staying at the corresponding rotated court position for a longer period of time before transitioning away.
[0095] In some embodiments, the basketball system may generate a report based on the sensor measurements, which may be presented to the user during and/or after a training session. The report may identify statistics such as shot locations, the number of shots taken per location, the shooting percentage at each location, the average arc from each position, and/or other performance metric data. The report may identify recommended areas of practice and areas of strength in a player's game.
7. Machine-Learning Applications
[0096] In some embodiments, the basketball system may use machine learning to recommend training routines. Additionally or alternatively, the basketball system may use machine learning to control the rotatable court positioning and surface display. An ML process may include applying a trained ML model to data associated with a particular user of the basketball system to determine: (a) how to change the angle of the rotatable hoop assembly relative to a particular geo-position, (b) what to present via the one or more programmable display devices, and/or (c) transition times between different angles and/or displays. Based on the output of the ML model, commands may be sent at a particular time to cause the hoop and the backboard to rotate until the angle computed by the ML model is reached and/or to update the one or more programmable display devices to change the images projected onto the playing surface.
[0097] In some embodiments, an ML model may be applied to optimize training routines for a particular user based on the user attributes. For example, the ML model may be applied to compute a sequence of shot angles and transition times that the ML model estimates are most likely to improve the shooter's shot percentage given the user's attributes. Additionally or alternatively, the ML model may cause the one or more programmable display devices to present recommended shot locations and/or routes that are estimated to improve the player's technique given the user's attributes.
[0098]
[0099] Referring to
[0100] In some embodiments, the training process trains the ML model to compute one or more control parameters of the basketball system based on a set of user attributes and/or the current state of the system. For example, the ML model may compute the optimal next angle in a sequence of transitions as a function of (a) the user's shot percentage from different angles in the current and/or previous training sessions; (b) shot arc measurements from different shooting angles; (c) the amount of time spent practicing from different angles; (d) the current angle of rotation of the basketball hoop assembly and rotatable court; and/or (e) the sequence of preceding angles in the training session. An “optimal” angle in this context may be one that is predicted to improve one or more performance metrics relating to the player's technique, such as shot percentage and ball arc metrics. The training process may generate a set of feature vectors based on one or more of the above features for the set of training examples and use the feature vectors to train an ML model.
[0101] The training process may be unsupervised or supervised depending on the particular implementation. With unsupervised training, the set of training examples may be unlabeled. The training process may train the ML model based on derivatives in performance metrics included in the training examples. For example, the training process may train the ML model to estimate which sequence of angles yielded the greatest technique improvements or which predefined training programs yield the best performance results for a plurality of different players. With supervised training, the set of training examples are labeled, which may allow an administrator to inject domain knowledge into the system. For example, the administrator may label examples of training programs as effective or not effective. The ML model may then be trained to estimate labels based on the examples.
[0102] In some embodiments, the process further comprises generating a feature vector for a user of the basketball system (operation 604). The feature vector may comprise user attributes and/or attributes of the current session. One or more feature values may be extracted from sensor measurements for the current session, such as current shot percentages from different angles, overall shot percentage, arc measurements, and practice time spent at varying angles. User attributes such as height, age, player position, and/or other values may also be extracted based on information input into the system via a mobile application or other means. A feature vector may be formed by collating or otherwise aggregating the set of feature values into a vector. For non-numeric values, an encoding technique such as one hot encoding may be used to transform the values. Additionally or alternatively, one or more feature values may be normalized and/or scaled. The feature vector may be formed in the same manner used to generate the training set feature vectors.
[0103] In some embodiments, the process applies the trained ML model using the feature vector to compute control parameters and/or recommendations (operation 606). For example, the trained ML model may be applied to compute the next angle of rotation in a sequence and/or display parameters to project on the playing surface. As another example, the trained ML model may identify a set of training routines most likely to be helpful to the user. If a neural network is used, the ML model may be applied by inputting the feature vector into the model and performing forward propagation. In response, the cell weights, biases, and/or other parameters may be applied to compute an angle and/or other control parameters. In a cluster-based model, the feature vector may be assigned to a particular cluster corresponding to a set of control parameters based on which cluster centroid is closest to the feature vector.
[0104] In some embodiments, the process sends control signals to adjust the basketball system and/or presents recommendations to user based on the output of the ML model (operation 608). For example, the process may send control signals to control unit 112 to cause rotatable hoop assembly 100 to rotate until an angle computed by the ML model is reached. Additionally or alternatively the process may send control signals to adjust the display projected on the court surface by the one or more display devices. As another example, the process may present a set of one or more recommended training routines, such as via a mobile interface application, based on the output of the ML model. The user may then select one of the presented routines to run the program and control the operation of the basketball system.
8. Computer Networks and Cloud Applications
[0105] In some embodiments, the basketball system may be integrated with a cloud application or service. A cloud service may be deployed on one or more computer networks, examples which are described further below. A user may subscribe to a cloud service, which may authenticate the user, save user preferences, track user performance metrics, recommend training routines, run applications, and/or send control signals to the basketball system.
[0106] In some embodiments, a user may use the cloud service to schedule and/or pay for training sessions using the basketball system. Additionally or alternatively, a user may use the cloud service to unlock and enter a facility where the basketball system is deployed. For example, the facility may be managed by a company which restricts access to subscribing customers. A subscribing customer may download and install a mobile application on a smartphone and/or other network host device. The mobile application may interact with a cloud service to authenticate the user, and the user may use the mobile application to unlock the door to the training facility if scheduled for a training slot at the time. This allows for a facility to be unmanned, which reduces overall system costs. Camera-based security systems may be deployed to enforce time limits within the facility.
[0107] In some embodiments, the cloud service may recommend a set of training routines to players in the facility. The cloud service may apply machine-learning, as previously described, to match the player's attributes to a routine that is most likely to be effective for the user or that similar users are most likely to select. If the user selects the routine, then it may be run to control the rotatable hoop assembly and floor projections based on the defined logic.
[0108] In some embodiments, the cloud service is run in a computer network, where the computer network provides connectivity among a set of nodes. The nodes may be local to and/or remote from each other. The nodes are connected by a set of links. Examples of links include a coaxial cable, an unshielded twisted cable, a copper cable, an optical fiber, and a virtual link. A subset of nodes may implement a computer network. Examples of such nodes include a switch, a router, a firewall, and a network address translator (NAT). Another subset of nodes uses the computer network. Such nodes (also referred to as “hosts”) may execute a client process and/or a server process. A client process makes a request for a computing service (such as, execution of a particular application, and/or storage of a particular amount of data). A server process responds by executing the requested service and/or returning corresponding data.
[0109] A computer network may be a physical network, including physical nodes connected by physical links. A physical node is any digital device. A physical node may be a function-specific hardware device, such as a hardware switch, a hardware router, a hardware firewall, and a hardware NAT. Additionally or alternatively, a physical node may be a generic machine that is configured to execute various virtual machines and/or applications performing respective functions. A physical link is a physical medium connecting two or more physical nodes. Examples of links include a coaxial cable, an unshielded twisted cable, a copper cable, and an optical fiber.
[0110] A computer network may be an overlay network. An overlay network is a logical network implemented on top of another network (such as, a physical network). Each node in an overlay network corresponds to a respective node in the underlying network. Hence, each node in an overlay network is associated with both an overlay address (to address to the overlay node) and an underlay address (to address the underlay node that implements the overlay node). An overlay node may be a digital device and/or a software process (such as, a virtual machine, an application instance, or a thread) A link that connects overlay nodes is implemented as a tunnel through the underlying network. The overlay nodes at either end of the tunnel treat the underlying multi-hop path between them as a single logical link. Tunneling is performed through encapsulation and decapsulation.
[0111] In some embodiments, a client may be local to and/or remote from a computer network. The client may access the computer network over other computer networks, such as a private network or the Internet. The client may communicate requests to the computer network using a communications protocol, such as Hypertext Transfer Protocol (HTTP). The requests are communicated through an interface, such as a client interface (such as a web browser), a program interface, or an application programming interface (API).
[0112] In some embodiments, a computer network provides connectivity between clients and network resources. Network resources include hardware and/or software configured to execute server processes. Examples of network resources include a processor, a data storage, a virtual machine, a container, and/or a software application. Network resources are shared amongst multiple clients. Clients request computing services from a computer network independently of each other. Network resources are dynamically assigned to the requests and/or clients on an on-demand basis. Network resources assigned to each request and/or client may be scaled up or down based on, for example, (a) the computing services requested by a particular client, (b) the aggregated computing services requested by a particular tenant, and/or (c) the aggregated computing services requested of the computer network. Such a computer network may be referred to as a “cloud network.”
[0113] In some embodiments, a service provider provides a cloud network to one or more end users. Various service models may be implemented by the cloud network, including but not limited to Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a-Service (IaaS). In SaaS, a service provider provides end users the capability to use the service provider's applications, which are executing on the network resources. In PaaS, the service provider provides end users the capability to deploy custom applications onto the network resources. The custom applications may be created using programming languages, libraries, services, and tools supported by the service provider. In IaaS, the service provider provides end users the capability to provision processing, storage, networks, and other fundamental computing resources provided by the network resources. Any arbitrary applications, including an operating system, may be deployed on the network resources.
[0114] In some embodiments, various deployment models may be implemented by a computer network, including but not limited to a private cloud, a public cloud, and a hybrid cloud. In a private cloud, network resources are provisioned for exclusive use by a particular group of one or more entities (the term “entity” as used herein refers to a corporation, organization, person, or other entity). The network resources may be local to and/or remote from the premises of the particular group of entities. In a public cloud, cloud resources are provisioned for multiple entities that are independent from each other (also referred to as “tenants” or “customers”). The computer network and the network resources thereof are accessed by clients corresponding to different tenants. Such a computer network may be referred to as a “multi-tenant computer network.” Several tenants may use a same particular network resource at different times and/or at the same time. The network resources may be local to and/or remote from the premises of the tenants. In a hybrid cloud, a computer network comprises a private cloud and a public cloud. An interface between the private cloud and the public cloud allows for data and application portability. Data stored at the private cloud and data stored at the public cloud may be exchanged through the interface. Applications implemented at the private cloud and applications implemented at the public cloud may have dependencies on each other. A call from an application at the private cloud to an application at the public cloud (and vice versa) may be executed through the interface.
[0115] In some embodiments, tenants of a multi-tenant computer network are independent of each other. For example, a business or operation of one tenant may be separate from a business or operation of another tenant. Different tenants may demand different network requirements for the computer network. Examples of network requirements include processing speed, amount of data storage, security requirements, performance requirements, throughput requirements, latency requirements, resiliency requirements, Quality of Service (QoS) requirements, tenant isolation, and/or consistency. The same computer network may need to implement different network requirements demanded by different tenants.
[0116] In some embodiments, in a multi-tenant computer network, tenant isolation is implemented to ensure that the applications and/or data of different tenants are not shared with each other. Various tenant isolation approaches may be used.
[0117] In some embodiments, each tenant is associated with a tenant ID. Each network resource of the multi-tenant computer network is tagged with a tenant ID. A tenant is permitted access to a particular network resource only if the tenant and the particular network resources are associated with a same tenant ID.
[0118] In some embodiments, each tenant is associated with a tenant ID. Each application, implemented by the computer network, is tagged with a tenant ID. Additionally or alternatively, each data structure and/or dataset, stored by the computer network, is tagged with a tenant ID. A tenant is permitted access to a particular application, data structure, and/or dataset only if the tenant and the particular application, data structure, and/or dataset are associated with a same tenant ID.
[0119] As an example, each database implemented by a multi-tenant computer network may be tagged with a tenant ID. Only a tenant associated with the corresponding tenant ID may access data of a particular database. As another example, each entry in a database implemented by a multi-tenant computer network may be tagged with a tenant ID. Only a tenant associated with the corresponding tenant ID may access data of a particular entry. However, the database may be shared by multiple tenants.
[0120] In some embodiments, a subscription list indicates which tenants have authorization to access which applications. For each application, a list of tenant IDs of tenants authorized to access the application is stored. A tenant is permitted access to a particular application only if the tenant ID of the tenant is included in the subscription list corresponding to the particular application.
[0121] In some embodiments, network resources (such as digital devices, virtual machines, application instances, and threads) corresponding to different tenants are isolated to tenant-specific overlay networks maintained by the multi-tenant computer network. As an example, packets from any source device in a tenant overlay network may only be transmitted to other devices within the same tenant overlay network. Encapsulation tunnels are used to prohibit any transmissions from a source device on a tenant overlay network to devices in other tenant overlay networks. Specifically, the packets, received from the source device, are encapsulated within an outer packet. The outer packet is transmitted from a first encapsulation tunnel endpoint (in communication with the source device in the tenant overlay network) to a second encapsulation tunnel endpoint (in communication with the destination device in the tenant overlay network). The second encapsulation tunnel endpoint decapsulates the outer packet to obtain the original packet transmitted by the source device. The original packet is transmitted from the second encapsulation tunnel endpoint to the destination device in the same particular overlay network.
9. Computer Hardware Overview
[0122] According to some embodiments, the basketball system may include one or more special-purpose computing devices for implementing one or more of the previously described techniques. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or network processing units (NPUs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, FPGAs, or NPUs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
[0123] For example,
[0124] Computer system 700 also includes main memory 706, such as a random-access memory (RAM) or other dynamic storage device, coupled to bus 702 for storing information and instructions to be executed by processor 704. Main memory 706 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 704. Such instructions, when stored in non-transitory storage media accessible to processor 704, render computer system 700 into a special-purpose machine that is customized to perform the operations specified in the instructions.
[0125] Computer system 700 further includes read only memory (ROM) 708 or other static storage device coupled to bus 702 for storing static information and instructions for processor 704. Storage device 710, such as a magnetic disk or optical disk, is provided and coupled to bus 702 for storing information and instructions.
[0126] Computer system 700 may be coupled via bus 702 to display 712, such as a cathode ray tube (CRT) or light emitting diode (LED) monitor, for displaying information to a computer user. Input device 714, which may include alphanumeric and other keys, is coupled to bus 702 for communicating information and command selections to processor 704. Another type of user input device is cursor control 716, such as a mouse, a trackball, touchscreen, or cursor direction keys for communicating direction information and command selections to processor 704 and for controlling cursor movement on display 712. Input device 714 typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
[0127] Computer system 700 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 700 to be a special-purpose machine. According to some embodiments, the techniques herein are performed by computer system 700 in response to processor 704 executing one or more sequences of one or more instructions contained in main memory 706. Such instructions may be read into main memory 706 from another storage medium, such as storage device 710. Execution of the sequences of instructions contained in main memory 706 causes processor 704 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
[0128] The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 710. Volatile media includes dynamic memory, such as main memory 706. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge, content-addressable memory (CAM), and ternary content-addressable memory (TCAM).
[0129] Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 702. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
[0130] Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 704 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a network line, such as a telephone line, a fiber optic cable, or a coaxial cable, using a modem. A modem local to computer system 700 can receive the data on the network line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 702. Bus 702 carries the data to main memory 706, from which processor 704 retrieves and executes the instructions. The instructions received by main memory 706 may optionally be stored on storage device 710 either before or after execution by processor 704.
[0131] Computer system 700 also includes a communication interface 718 coupled to bus 702. Communication interface 718 provides a two-way data communication coupling to a network link 720 that is connected to a local network 722. For example, communication interface 718 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 718 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 718 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
[0132] Network link 720 typically provides data communication through one or more networks to other data devices. For example, network link 720 may provide a connection through local network 722 to a host computer 724 or to data equipment operated by an Internet Service Provider (ISP) 726. ISP 726 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the “Internet” 728. Local network 722 and Internet 728 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 720 and through communication interface 718, which carry the digital data to and from computer system 700, are example forms of transmission media.
[0133] Computer system 700 can send messages and receive data, including program code, through the network(s), network link 720 and communication interface 718. In the Internet example, a server 730 might transmit a requested code for an application program through Internet 728, ISP 726, local network 722 and communication interface 718.
[0134] The received code may be executed by processor 704 as it is received, and/or stored in storage device 710, or other non-volatile storage for later execution.
10. Miscellaneous; Extensions
[0135] Embodiments are directed to a system with one or more devices that include a hardware processor and that are configured to perform any of the operations described herein and/or recited in any of the claims below.
[0136] In some embodiments, a non-transitory computer readable storage medium comprises instructions which, when executed by one or more hardware processors, causes performance of any of the operations described herein and/or recited in any of the claims.
[0137] Any combination of the features and functionalities described herein may be used in accordance with one or more embodiments. In the foregoing specification, embodiments have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the invention, and what is intended by the applicants to be the scope of the invention, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction.