All Shot
The All Shot Dynamic Basketball Shooting and Diagnostic Room is an automated, computer controlled athletic training system (see FIG. 1). The first embodiment allows a basketball shooter to shoot every shot on a basketball half court without moving to create distance or angle. The basket assembly (rim/net, backboard, shot cameras and attached sensors) move via computer generated instructions while the shooter remains stationary; the assembly moves in three dimensions and rotates within an enclosure. The predictability of the shooters position allows for diagnostic devices to focus on particular aspects of the shooter's mechanics. Additionally, the system includes a ball collection and return system connected to two mobile ball ejectors, which permit the shooter to receive passes in a programmable manner. A second embodiment allows a slanted floor used in the first embodiment to aid the collection process to be leveled to support close in training activity (see FIG. 5).
This application claims the benefit of PPA Ser. No. 61/936,475, filed 2014 Feb. 6 by the present inventors, which is incorporated by reference.
This application claims the benefit of PPA Ser. No. 62/115,416, filed 2015 Feb. 12 by the present inventors, which is incorporated by reference.
PRIOR ARTSoon after Doctor James Naismith invented the game of basketball in 1891, the concept of basketball skill training came into existence. Initially the process consisted of human(s) chasing rebounds and providing feedback on the shot. Of course this basic approach to training had limitations that made training less effective and inaccessible to most individuals. In response to these issues, a number of inventors have developed devices, many of them contraptions, proposed to improve training, particularly as it relates to ball gathering and return, shot practice, and skills evaluation.
Since those early days of basketball training and skills evaluation, some inventors have introduced inventions that have moderately mitigated the severity of aforementioned problems, while causing new problems.
The netting type system shown in
On the other hand, problems caused or unsolved by these netting type systems have greatly hampered or limited the training experience. Among the problems created or remaining are: 1) diagnostics remained difficult to conduct due to the disperse shooting patterns, 2) netting makes the shot unrealistic (it is alien to the actual game of basketball), 3) netting limits the types of shots, 4) netting prevents smaller or weaker shooter from practicing a natural or full range of shots, 5) limited useful close-in work for shooter, 6) passes come from a fixed point under the rim (this pass rarely occurs in basketball), and 7) restriction on executable shot types (no turn and locate passes or shallow fall away shots).
ADVANTAGESThe All shot changes the dynamic of the shot training process as compared to netting based and other training systems. It solves the problems that the netting type system addressed and more by eliminating the need for a net or a stationary ejector, while improving ball capture amount and shot taking rates.
By removing the netting, mobilizing the ejector(s), and creating shots by moving the rim and backboard rather than the player, the All Shot allows more efficient and realistic training conditions. Among the advantages of the All Shot are: 1) shots are unobstructed by netting, 2) small and weaker shooters can access the rim with a more form-correct shot, 3) shallow arch shots possible, 4) more efficient ball collection, 5) varied passing positions (not just from under the rim), 6) nearly 180 degree pass to play to rim relationships are possible (pass turn locate or turn fall away shots possible), and rapid fire shots with greater shot to shot distance disparity.
Additionally the variety and sophistication of diagnostics is greater and easier to administer. This is due to the shot rending process which moves the rim and backboard to create any shot in the range of the All Shot relative to a single specified location. The training sessions are fast, more efficient, more informative, and conducted under more realistic basketball conditions.
235 Activity Area
The area between Interior Containment Walls where athletic activity is conducted.
245 Arm Slot
A slot (gap) in the Interior Containment Wall that allows components in the Machinery Area access to the Activity Area, and vice versa.
105 Backboard
A basketball backboard.
159 Ball Carriage
A ball holder with a handle used to hold balls as part of the lift process.
165 Ball Carriage Handle
The part of the Ball Carriage use to aid in maintaining alignment as the carriage travels up and down in the Slide Tower.
191 Ball Catch
A channel-shaped surface used to help contain and lift balls that roll down the Side Ball Channel.
187 Ball Catch Frame Support
A frame used to support the Ball Catch in the catching of balls that roll down the Side Ball Channel. Also supports the travel of the Catch up and down the Side Ball Channel.
163 Ball Claw
The Ball Claw is used to dislodge balls from the cradle of Ball Carriages within a lift tower.
111 Ball Collector
A receptacle used to receive rolling balls and funnel them to align single file towards an exit in the rear of the collector.
161 Ball Cradle
The part of the Ball Carriage where the ball rests for the lift process.
137 Ball Dejammer
The Ball Dejammer is used to disrupt jammed balls in the Collector in order to aid the alignment process.
139 Ball Dejammer Sensor
A sensor used to detect ball jams in the collector.
403 Ball Ejector Linear Encoder
An encoder used to read the linear position of the ball ejector assembly.
405 Ball Ejector Rotational Encoder
An encoder used to read the rotational position of the ejector.
109 Ball Ejector Assembly
The Ball Ejector Mount Assembly is used to position and orient the Ejector, as well as positioning the Ball Catch Frame Support.
135 Ball Guide
A shaped panel used to guide balls to the center of the Collector.
207 Ball Load Shunt
Shaped tubing for directing the flow of balls.
255 Ball Load Shunt Stabilizer
A stabilizer used to hold the Ball Load Shunt in a stationary position in relation to the Ejector Stabilization Arm and Ball Shunt.
205 Ball Shunt
Shaped tubing for directing the flow of balls.
203 Ball Shunt Stand
A support for the Ball Shunt.
199 Ball Stop
A leaver connected to a Motion Control System used to hold balls in a particular position.
231 Base Support Beam
Plank like support beams connected to enclosure beam structure.
181 Support Beam
A Support used to support various parts of the All Shot, including the Interior Containment Wall.
103 Basketball Rim
A basketball rim, normally with a net.
225 Brake Rail
A rail used for brakes to lock onto.
215 Carriage and Structure Support Frame
An I-Beam support system for the Forward Backward Carriage and other support components.
189 Carriage Well
The area at the bottom of the Lift Tower where Ball Carriages are stacked.
141 Catch Frame Rail
A pair of plate surfaces used for the sliders of the Ball Catch Frame Support to ride on.
201 Catch Lift Actuator
Catch Lift Actuators are a pair of synchronized actuators used to lift the Ball Catch out of the Side Ball Channel.
185 Catch Support
A support used to support the catch components.
147 Channel Hub
A connector between the Upper Channel, and the lower right and left lift Channels.
149 Channel Select Guide
A motion control system with a select panel attached to the motor shaft.
197 Clamp Actuator
A multi-position actuator used to position the Solenoid Driven Clamp in relation to Ball Carriage Handles.
227 Clamp Lift Motor
A Transverse System used to help lift ball carriages in the lift tower.
195 Clamp Logic Controller
A programmable logic controller used to control the movements of the solenoid driven clamp.
157 Collect Channel Support
A support used to maintain the positions of components, namely the Collector, Upper Channel, Hub, Left Lift Channel, and Right Lift Channel, relative to one another and the Foundation.
101 Controller
The computer system used to interface and control various components of the All Shot.
131 Dead Spot
The Dead Spot is a ball damping slanted surface used to de-energize balls on the Slant Floor while providing support for the Hatch (when the Hatch is closed).
113 Ejector
A device used to shoot (pass) balls at a targeted position (where a player is expected to stand).
241 Ejector Base Support
The Ejector Base Support is a support base for the Ejector, as well as other components.
277 Ejector Motion Platform
The Ejector Motion Platform is an anchored platform that has a rack (track) attached that the pinion (gear) of the Ejector Propulsion System rides on.
249 Ejector Platform
A platform to hold and control the Ejector.
253 Ejector Propulsion Motor
The Ejector Propulsion Motor is used to move the Ball Pass Assembly.
257 Ejector Rotation Motor
A Motion Control System with an attached gear used to aid in positioning the Ejector rotationally.
247 Ejector Stabilization Arm
A stabilization plate used to connect components in the Activity Area and Machinery Area across the Interior Containment Wall.
427 Flap Frame
A frame used to support and assist in the movement of other support members.
433 Flap Slot
A u-shaped bracket used in the support of the Slant Floor Base Frame.
431 Flap Support
A support with a base and a rotating support plate used to help stabilize the Slant Floor at level position.
459 Flap Support Motor
a motion control system used to rotate the Flap Support.
269 Forward Backward Carriage
A platform that travels on sliders on top of support beams forwards and backwards, referenced from a shooter facing the Forward Wall.
229 Forward Backward Carriage Brake
An electromagnetic brake that helps to stabilize the Forward Backward Carriage.
407 Forward Backward Linear Encoder
Used to read the position of the forward backward carriage.
273 Forward Backward Platform
A platform that mounts the rack (track) that the Forward Backward Carriage travels on via the Forward Backward Propulsion System.
271 Forward Backward Propulsion System
A Transverse System used to move the Forward Backward Platform.
125 Forward Slant Support
Square stock material strong enough to support and maintain the Slant Floor at full slant (the specified max slant angle.)
219 Forward Wall
The wall that is ahead (in front of) of the shooter when he/she shoots a straight forward shot.
115 Foundation
The platform on which the All Shot is built.
239 Foundation Base Rail
A rail system on the Foundation in the Machinery Area used in the movement of the Ball Pass (ejector) Assembly.
129 Hatch
This is a cover that is hinged on the Shooting Platform and closes onto the Dead Spot.
127 Hatch Dead Spot Assembly
The Hatch and Dead Spot as a group.
166 Handle Ledge
Part of the Ball Carriage handle that is used as a grasp point for the lift process.
193 Hatch Motor
A motor used to open and close the hatch.
121 Industrial Hinge
A hinge used to aid the tilting and leveling of the Slant Floor.
425 Industrial Wheel
A load bearing wheel used for industrial purposes.
233 Interior Containment Wall
Interior Containment Wall is a walls situated with the Shooting Platform and Slant Floor on one side and a Ball Side Channel on the other. This type wall has slots to allow access to components in the Machinery Area to the Activity Area, and vice versa.
275 Left Right Carriage
A platform that travels on sliders on top of the Forward Backward Carriage left and right, referenced from a shooter facing the Forward Wall.
217 Left Right Carriage Brake
An electromagnetic brake that helps to stabilize the Left Right Carriage.
409 Left Right Linear Encoder
Used to read the position of the left right carriage.
281 Left Right Platform
A platform that mounts the rack (track) that the Left Right Carriage travels on via the Left Right Propulsion System.
279 Left Right Propulsion System
A Transverse System used to move the Left Right Platform.
429 Level Floor Actuator
An actuator used to position the flap frame
421 Level Floor Support Assembly
An Assembly of components used to support the Slant Floor when in level position.
175 Lift Beam
A support I-Beam used in the Ball Carriage Lift and lower process within Lift Towers.
151 Lift Channel
A channel that controls the flow of balls.
173 Lift Clamp
The Lift Clamp supports the lift process by positioning a Ball Carriages at designated heights in a lift tower.
401 Lift Linear Encoder
An encoder used to read the linear position of the Lift Clamp.
143 Lift Tower
The Lift Tower is an area (and associated components) where balls are lifted.
209 Linear Motion Bearing Housing
A cylindrical tube with embedded bearings along its interior length.
289 Linear Rotational Controller
The Linear Rotational Controller is a support base that assists the rotation of the Rim Backboard Support Assembly.
179 Load Support
A support used to add support at a specified location.
237 Machinery Area
The area outside the Interior Containment Walls (all the area not a part of the Activity Area).
259 Ejector Rotation Mount
A bracket used to assist the mounting of the Ejector Rotation Motor.
211 Movement Arm
A bar of proper dimensions to slide smoothly in the Linear Motion Bearing Housing with the necessary strength to transfer motion to the Ball Catch Frame Support throughout the range of motion.
305 Movement Base
A mount base for the Movement Bar.
213 Platform Frame
A frame used to support the Shooting Platform for athletic activity.
243 Platform Slot
A slot (gap) in the Interior Containment Wall that allows components in the Machinery Area access to the Activity Area, and vice versa.
119 Rear Wall
The wall that is behind the shooter when he/she shoots a straight forward shot.
297 Rendered Shot Brake
An electromagnetic brake that helps to stabilize the Shot Rim Backboard Assembly (indirectly).
293 Rim Backboard Lift Bracket
A support bracket that connects and aids in both the rotation and lift process.
265 Rim Backboard Support Assembly
A group of components that include a rim, a backboard, along with an attached support and a control bar.
287 Rotation Control Motor
A Transverse System used to indirectly rotate the Rim Backboard Support Assembly.
263 Rotational Lift Position System
The system that places the Rim Backboard Support Assembly rotationally and vertically.
283 Rim Backboard Support
A support used to hold the backboard.
285 Backboard Position Control Bar
A bar used to support and help position the Rim Backboard Support Assembly in 3D space.
295 Rim Lift Motor
A Transverse System used to lift and lower the Rim Backboard Support Assembly.
413 Rim Linear Encoder
An encoder used to read the linear position of the rim.
411 Rim Rotational Encoder
Used to read the rotational position of the Rim Rotational Motor.
291 Rotate Lift Support Plate
A plate used to support components used in lift and rotation of the Rim Backboard Support Assembly.
307 Mounting Bracket
A stand that supports and aids in the rotation of the Ejector.
153 Select Panel
A flat plate used to direct balls to one or another channel.
107 Shooting Platform
A flat surface suitable in size and function to conduct basketball shooting drills and basic associated activities (such as dribbling into a shot).
155 Shot Ball
A ball shot by the shooter in the collection process.
261 Shot Carriage Position System
The system of components that are used to position the Rim Backboard Support Assembly in the forwards/backwards and left/right directions for specified shots.
177 Side Ball Channel
A Ball Channel used to deliver balls from the Lift Tower to Ball Catch by use of gravity.
117 Slant Floor
A surface suitable for conducting basketball activities, when level, and as a ramp to direct basketballs downward, when tilted.
123 Slant Floor Base Frame
A frame used to support the Slant Floor for athletic activity.
133 Slant Floor Lift
Used to lift and lower the slant floor frame.
171 Slide Tower
A guide for Ball Carriage Handle to travel up and down in a lift tower.
169 Slide Track
Individual slots of the Slide Tower for Ball Carriage.
183 Solenoid Driven Clamp
The Solenoid Driven Clamp is a clamp with plate jaws that are opened and closed via solenoid(s), or comparable means, to clamp and hold Ball Carriages for the ball lift process.
457 Top Brake Rail
A rail used for brakes to lock onto.
251 Top Stabilization Rail
A rail suitable for the Upper Roller wheels to roll on and sturdy enough to help stabilize the Ball Pass Assembly.
145 Upper Channel
A channel that receives balls from the Collector.
455 Upper Roller
These are roller coaster type wheels used to provide stability from horizontal movements.
DEFINITIONSDriver Movement Instruction Set:
The formatted instructions used by the driver in a motion control system to position the component to the desired location.
Next Shot:
In a program, the shot that is up next to be rendered.
Next Pass:
In a program, the pass that is up next to be rendered.
End Program Condition:
This is a state achieved when the control software examines a set of conditions and determines that the program is to conclude.
End Program Indicator:
This is an indicator sent to the control software to stop activities in the All Shot. This indicator is sent by All Shot components in communication with the software.
End Program Status:
Refers to a group of programs ending conditions or indicators that include End Program Condition and End Program Indicator.
Pass Trigger:
The event that is initiated by the software signal for a pass to be thrown.
System Status:
The state that the various components of the All Shot are in at a given instance.
Referenced Shot Position:
A position on the Shooting Platform where a shooter is expected to stand for the next shot. The software uses this location as reference to render shots and eject passes.
Return Process:
The steps that are endured by a ball to be collected and returned to the ejector.
Shot Taken:
A condition when the software has determined the shooter has shot the ball for the last completely rendered shot.
Operational Mode:
Refers to a group of indicators that represent the state of the All Shot. It is based on the orientation of the major components.
Current Shot:
The shot that is currently rendered.
Return System:
The components that are used to collect, lift, and deposit balls into the ejectors.
Next Handle:
The next Ball Carriage Handle to be encountered by a Lift Clamp while in motion.
Clamp Next Handle:
The process the Lift Clamp follows, as directed by the control software, to clamp the Next Handle.
Retract:
The act of the Solenoid Driven Clamp being pulled away from Slide Tower as far as possible.
Un-clamp Next Handle:
The process the Lift Clamp follows, as directed by the control software, to un-clamp the current clamped Ball Carriage Handle that is closest to the Carriage Well.
Top Ball Carriage:
The Ball Carriage that is currently at the top of the Ball Carriage stack in a Carriage Well.
Lowest Clamped Ball Carriage:
The clamped Ball Carriage that is closest to the Carriage Well.
Ball Clearance Height:
A specified height above a Claw in a given Lift Tower that the Lowest Clamped Ball Carriage is to be as not to interfere with the Claw when fully extended.
Maximum Slant Position:
The angle of the Slant Floor where the front tip is as close to the Foundation as functionally possible.
Center Referenced:
It is a reference plane that extends indefinitely in all directions that passes through the Rear Wall and Front Wall at right angles and splits the Foundation along a center line.
Current Carriage:
The carriage that is currently on top of the stack.
Shot Ball:
A ball that has been shot and is engaged in the collection or return process.
Next Carriage:
The next Ball Carriage to be lifted in the ball lift process.
Next Catch Ball:
The first ball outside of the catch in a Side Ball Channel.
Motion Control System:
Currently this is a stepper motor with compatible driver capable of receiving digital instructions from microprocessor devices, including PCs, PLCs, logic controllers, etc., via serial communication, such as Ethernet or wireless. This motor system could alternatively employ non-electromechanical components, including pneumatic or hydraulic driven systems.
Ball Channel:
This is made of three curved panels laid out to fit on a half-circle equally spaced such that basketballs may freely roll under the force of gravity. The panels are held in place by cross supports fitted beneath.
Kinect Array:
A series of Kinect devices, or comparable motion detection devices, that provide complete coverage of a designated area.
User Interface:
This is a computerized device, such as a PC tablet, laptop, etc. configured to receive touch screen and voice commands from the user.
Stationary Ball Count Array:
The Stationary Ball Count Array uses through beam photoelectric sensors and is mounted on a Ball Channel so as to detect the stationary (stop at a position) presence of each ball in the channel where the flow of balls is controlled. A circuit board with a microcontroller and serial communication capabilities, such as Bluetooth or Ethernet, is used to communicate the array state.
Dynamic Ball Count Array:
The Dynamic Ball Count Array uses through beam photoelectric sensors mounted at the ingress and egress of a ball control component (or connected components). A circuit board with a microcontroller and serial communication capabilities, such as Bluetooth or Ethernet, is used to communicate the array state.
Network Ready Actuator:
This is an electric actuator with communication capabilities provided by a circuit board with a microcontroller and serial communication capabilities, such as Bluetooth or Ethernet.
Network Connected PLC:
A PLC with communications capability, such as Bluetooth or Ethernet. Can also be a PLC that can communicate with a circuit board that has serial communication capabilities such as Bluetooth or Ethernet.
Transverse System:
A Transverse System is comprised of a Motion Control System used with and attached pinion (gear) that turns on a rack (track).
Shot Render:
The condition where the Current Shot is completely in place (and all appropriate components are locked in position).
Pass Render:
The Ejector Assembly is in place and the Ejector is rotated to eject a ball over the current Referenced Shot Position.
Ball Corral:
The Ball Corral consists of two Motion Control Systems, each with a flat plate mounted to the motor shaft. Each Motion Control System attaches on either side of the Channel directly across from one another. A ball is contained when the forward tips of the plates are held close together. A single corralled ball is released when the rear tips of the plates are snapped close together in front of the next ball (the ball behind the corralled ball).
Diagnostic Mode:
When The All Shot software is interfacing with a technician to resolve problems with one or more of its components.
System Event:
A software event initiated by one or more components in the All Shot or internally generated by the software.
User Event:
A software event initiated by the user.
EMBODIMENT ONEDescription:
This embodiment of the All Shot, a basketball shooter uses a computer system, a Controller 101, to configure (render) any shot and passing combination permitted by the system. Instead of having the shooter move around a court to create a shot, the All Shot moves the Basketball Rim 103 (
As currently conceived for this embodiment, a Foundation 115 (
The Shooting Platform 107 (
A Slant Floor Base Frame 123 (
As currently conceived, a Hatch Dead Spot Assembly 127 (
A Forward Slant Support 125 (
Ball jams are broken up by a Ball Dejammer 137 (
Three ball channels are used to assist the delivery of balls to a Lift Tower 143 (
The Channel Select Guide 149 (
As currently conceived, support for the Ball Collector 111 (
As currently conceived each Lift Channel 151 (
In this embodiment, as currently conceived, a Ball Carriage 159 (
Each Ball Carriage 159 (
The Ball Carriage Handle 165 (
Alongside of the Slide Tower 171 (
A Lift Clamp 173 (
The Ball Claw 163 (
A Side Ball Channel 177 (
Support for the Side Ball Channel 177 (
A Ball Catch Frame Support 187 (
The Ball Catch 191 (
As currently conceived, the Catch Lift Actuator 201 (
A Linear Motion Bearing Housing 209 (
A Carriage and Structure Support Frame 215 (
As currently conceived a Base Support Beam 231 (
An Interior Containment Wall 233 is supported by beams, Support Beam 181 (
Within the Machinery Area 237, a Foundation Base Rail 239 (
An Ejector Stabilization Arm 247 (
An Ejector Propulsion Motor 253 (
A Ball Load Shunt 207 (
In this embodiment, an Ejector Rotation Motor 257 (
A Pass Trigger Board 453 is a circuit board that includes a microcontroller and serial communication capabilities, such as Bluetooth or Ethernet, used to communicate to trigger the Ejector 113 (
The Pass Trigger Board 453 communicates with the Controller 101 via serial communication. Relative linear alignment position between the Ball Ejector Assembly 109 (
The Shot Carriage Position System 261 (
A Forward Backward Carriage 269 (
A Left Right Carriage 275 (
As currently conceived, the Rim Backboard Support Assembly 265 (
A Rotation Control Motor 287 (
A Rim Backboard Lift Bracket 293 (
A Rendered Shot Brake 297 (
In this embodiment, the Controller 101 receives data from components not directly connected to the collect, return, or render processes. As currently conceived the All Shot is equipped with a Kinect Array, a 94Fifty Basketball, and a Doppler Radar based tracker. One or more of these devices may be removed and the system will continue to function. Also, any or all of these components may be removed and replaced with comparable components used to track and quantify shooters and ball(s) movements.
It is currently conceived, in this embodiment, that the Kinect is PC connected, by a dedicated PC or a properly equipped circuit board, to allow a communication connection with the Controller 101 via wireless (such as Bluetooth) or with a cable connection (such as Ethernet). Other methods of communication, such as each Kinect in the array being connected directly to the Controller 101 could also be used.
In this embodiment, it is currently conceived that the 94Fifty basketball be connected indirectly to the Controller 101, by a dedicated PC or a properly equipped circuit board, running an Android OS emulator, such as Blue Stacks or Andy. The PC or circuit board communicates with the Controller 101 via wireless (such as Bluetooth) or with a cable connection (such as Ethernet). Other connection configurations could be used, such as a direct connection with the emulator software run on the Controller 101.
It is currently conceived, in this embodiment, that the Doppler Radar based system be connected by the method available on the particular unit (USB, Ethernet, or other serial connector, etc.) Other suitable methods for communication may be used instead, when available. A Doppler Radar system suitable for indoor (interior) use may be purchased from Trackman 6575 White Pines Drive, Brighton, Mich. 48116.
The All Shot has components connected to the Controller 101 that are highly autonomous, running local software, such as Computer Pads running facial recognition, voice recognition, and/or touch pad software, that may or may not communicate with the Controller 101. These components may have a primary connection with another component, such as a camera to a monitor, or be involved with internet uploading or streaming. The computer may use a dongle or connect, if needed, to connect to these systems over low throughput connection.
In this embodiment, as currently conceived, the Controller 101 is a custom constructed computer with sufficient built in USB, Ethernet, HDMS, and other ports with enough computational power, Memory, etc., for the real-time and high data rate components. It is further currently conceived that the software being ran on the Controller 101 be multi-threaded with higher priority threads connect to components involved in shot render, pass render, ball collection, and ball return processes. Other configurations, such as a distributed system of networked computers that are primarily concerned with a sub set of components, could be used.
Software for the All Shot is used to initialize the system, react to input from the user or system components, and to execute shooting programs.
As currently conceived, the software used to control the All Shot is written as event driven object oriented in a language suited for object oriented code, such as C# or Visual Basic. The software could function as non-object oriented code as well (see
The Controller 101 is configured to boot and automatically launch the All Shot Software (see
The system initiation process begins by uploading information that will be needed in the running of the All Shot software (see
The initiation process is timed based on an estimated time for the given All Shot configuration to complete the process. This value is extracted from the System Data Object and used to time the initialization process.
Another part of the initialization process is to connect the All Shot software to the various components that will send or receive information (see
Once the timer for the initiation process has expired a method in the Main Process Object is used to examine the responses from the initiation process stored in the System Data Object (see
A Failed Initiation Mode stops normal operations. The All Shot enters a diagnostic mode to help technicians resolve problems. The software extracts the Failed To Initiate Component List from the System Data Object to display on the monitor. Additional information specific to the error and the particular component of the given All Shot unit is also extracted from the System Data Object and displayed.
If the initiation process is successful the All Shot advances to conduct the initial activity. Each unit has a set of pre-program routines that run as the system preforms various activities in the background and waits for a user to log in. This mainly consists of media played on monitors and/or a hologram displayed in the All Shot. The All Shot software has methods that extract the required variables from the System Data Object to stream the media to particular monitors and to interface with the particular manufacturer's holographic projectors. The System Data Object also contains start time, display time, and other information for each individual monitor and holographic projector so the pre-program activities may be sequenced.
The All Shot software is event driven with events arising from both the system (components such as drivers, encoder, 3D Doppler radar) and from users via various interfaces such as touch pad and voice commands. The System Data Object contains mapping information that indicates to the software what type of device is connected to a particular serial port, as well as formatting information for the incoming data. These values are extracted from the System Data Object by the Interface Object and used so that port listening methods for each port may parse incoming data and direct it to a secondary thread for processing. The secondary thread is used to determine which variable needs to be updated based on the transmitted data (such as a component's position and/or time to complete the render). The interpreted data is sent to either the Process System Event methods or the Process User Events method in the Main Process Object.
The System State Object is used to store data that represents the state of the components of the All Shot in real-time. The captured data includes such information as the position of the Ball Catch 191 (
An interface is used to authenticate the user and, if login is successful, send the Controller 101 a Logged In Event with user name and ID number via serial port communication. The Interface Object passes the received information to the Event Reconciler (see
After a user's profile is loaded and proliferated, the user also gains access to control commands of the All Shot. The user may choose, via an available interface method, stop, pause, increase render speed, and decrease render speed for a running program, among other options. This type of command is sent to the Controller 101 by serial communication from the interface being used.
The data is processed, similar to login data, to produce a Unit Control Event (processed in the Event Reconciler process). The unit control event is routed to the Command Event Handler method in the Main Process Object. The handler extracts the proper formatted instructions from the System State Object from the proper components to perform the control command.
When a user selects a desired program the software receives the program name via serial communication and ultimately routes a Load Program Event to the Load Program Event Handler method (using similar logic as used for the logic process above, see
When a program is written there is no way to know the Basketball Rim 103 (
The first render positions are adjusted by multiplying each by its corresponding ratio (the positions are referenced from the center-front point on the Shooting Platform 107).
Additionally, the Active Program Object contains a method, called Adjust Distance Members, which reads in the ratios and adjusts the distance of each component involved in shot and pass renderings. Each component has lists of distances, one for passes and one for shots, associated with it stored in the Active Program Object. Specifically, the Forward Backward Propulsion System 271 (
The rotational component of the Ball Ejector Assembly 109 (
To execute a program the Active Program Object extracts the appropriate start position for each component used to render the shot and pass from the System State Object (see
The program has at least one pass trigger specified for each pass to be rendered. The default trigger is the completion of the associated pass and shot renders. Other triggers include voice activation, touch pad activation, and Kinect recognition activation. The Event Reconciler method directly sets flags in the System State Object including RenderComplete and PassedBall.
The RenderComplete flag is set true once all components involved in the active render or renders report complete. The PassBall flag is set true after a pass signal is issued by the Controller 101 to the Pass Trigger Board 453. Both flags are set false once a render starts.
While the RenderComplete is set true and the PassedBall flag is set false methods in the Main Process Object receive input from the Event Reconciler method used to check for the active trigger condition at a fixed interval. A touch pad is activated by the proper key pad event. The voice activation is activated by recognition of the proper voice command. The Kinect trigger is activated by the shooter achieving a certain posture (such as the shooter turned to an Ejector 101 with bent knees and hands forward).
The next shot and pass reading instructions are not sent until two software events occur: 1) a shot characteristic is detected (Shot Taken) and 2) a qualified shot is identified (Shot Made, see
In the case of the Time Expire trigger, the specified event to monitor is TimerOne (for Shot Taken) and TimerTwo (for Shot Made) in the System State Object. These timers are activated once the first render of a program is completed. For the Time Expire trigger, the time conditions are set in the program for each shot. These values are stored in the Active Program Object. The Active Program Object compares the TimerOne and TimerTwo states to the specified condition at a specified interval. When the Shot Taken condition is satisfied a flag is set in the Active Program Object. When the Shot Made condition is satisfied the Shot Taken flag is checked.
Other trigger states are built based on the devices used in the All Shot, such as the Kinect and the 3D Doppler systems. Methods in the Interface Object are written to the particular device manufacturer's data stream to track the shooter (for the Kinect) and the ball, a projectile, (for the 3D Doppler).
A trigger called the Jump and Shoot is based on monitoring the Kinect. The user is monitored from the time a render occurs. Data is stored in the System State Object for the foot and elbow conditions between shot renders. The Active Program Object has a method that examines this data at intervals to search for a span where the player has jumped and has rotated an overhead elbow in the direction of the Basketball Rim 103 (
The 3D Doppler is used to determine the Shot Made condition in a similar fashion. Data is stored in the System State Object for the path of the shot ball as it leaves a shooters hand, determined from the Kinect data, until it hits the ground. Methods in the Active Program Object compare path data starting at the rim and ending at the floor to determine the Shot Made condition. For instance, the program can specify a radius value about the center of the Basketball Rim 103 (
The software uses the Kinect and 3D Doppler systems to allow the creator of the program a large range of triggers to initiate the next render search process. The software has methods to read the data stream of these devices based on the manufacturers specifications.
A pass and shot rendering program runs in a separate thread from the main thread. This allows the process of searching for the next render to proceed until an End Program Indicator (which is placed in the System State Object and tested for by the Active Program Object) or an End Program Condition is detected (no more renders are specified).
The All Shot software also controls the components involved in the collection and return of shot balls. These components communicate with the software following the same logic as the other components. The collection and return components report specified conditions to the software via serial communication at fixed intervals or as triggered by a change in a state (for instance, the ball count in an Ejector could change). These states are stored in the System State Object to be accessed by the Collect Return Control Object. The Collect Return Control Object contains methods that retrieve the ball count and other state information from the System State Object for the various locations in the return process. The program also has Reload Ejector Indicators that signal the time in the program where a reload of a specified ejector should occur. The Active Program Object passes these indicator values to the Collect Return Control Object at the proper time as the program executes.
As currently conceived, the software uses two triggers to load the Ejector 113 (
Program Specified Ejector Load Points are indicators in the program that indicate when a particular ejector should be loaded based on points of inactivity in the program (these are manually placed in the program by the programmer or by external software at program creation). The Active Program Object has a method that reads these points from the program and activates the Collect Return Control Object to load the ejector. The Load Ejector method in the Collect Return Control Object extracts the proper load instructions from the System State Object and sends instructions to transferred balls from the Ball Catch 191 (
System State Ejector Loading is driven by the real-time conditions in the All Shot; when an Ejector 113 (
The movements of other components in the Return System are in reaction to the Ejector 113 (
Once rendering has begun ball movement through the Return System is triggered by the ejector reload. As the Ejector 113 (
Operations:
In this embodiment, the All Shot is a system that allows a shooter to take a variety of shots efficiently and with more true game conditions than the prior art. This is accomplished by a multi-phase process: 1) The Next Shot and Next Pass are rendered, 2) the Shot Ball 155 (
To render a shot the program provides a Reference Shot Position on the Shooting Platform 107 (
To render a pass the Controller 101 instructs the Ball Ejector Assembly 109 (
Shot balls are collected and returned to be put back in the rotation of balls to be passed to the shooter, see
In this embodiment, the Controller 101 determines what constitutes a shot based on the program being ran and the continuous evaluation of values or events being monitored. A Shot Taken is specified in the program for each shot based on the detection of a condition-set (could be just one condition). Once the condition(s) are met the Controller 101 registers a Shot Taken. The Controller 101 starts to check for the Next Shot, End Program Condition or other indicator after the shot has been determined to have occurred. This process continues until the End Program Status is detected.
In this embodiment, on power-up of the system the initiation process is executed. The Controller 101 executes the start-up process for components that have been designated for system start-up initiation. This includes motors, drivers, sensor systems, some monitors, and other items. Each system may have an initialization process specified by the manufacturer in addition to the All Shot initiation process. For instance, as currently conceived, position sensors (linear encoders) check that the sensor is physically located where the sensor logic says it is located. The Controller 101 handles errors, such as fatal following error, or it records the start position of each sensor initialized.
In this embodiment, an active shooting program is specified by use of interface software. The active program begins execution when prompted via one of the currently conceived interface methods, including a button on the User Interface 301, Voice Interface 303, and Kinect Array, or comparable interface, etc. The Kinect Array may trigger the program by menu selection via a monitor, or by shooter location and posture recognition; for instance, the trigger could be the shooter on the target location in the ready to receive pass posture (knees bent with palms aimed at Ejector 113.)
The Controller 101 reads the Operational Mode used in the active program and sends out instructions to the components to create a proper All Shot configuration. For instance, in this embodiment, if the Slant Floor 117 (
The Controller 101 reads the position of the Next Pass from the program (a program must have at least one pass). To linearly position the Ball Ejector Assembly 109 (
The Forward Backward Carriage 269 (
In this embodiment, the rotation of the Basketball Rim 103 (
In this embodiment, similar to previous linear movements outlined above, the Basketball Rim 103 (
Brakes that are disengaged in the movements outlined above are re-engaged once the movement is complete.
Once the shot and pass are rendered the Controller 101 begins to check for the Shot Taken. Shot Taken is achieved when all the conditions for the Current Shot specified by the program are detected by the Controller 101. Conditions required for a Shot Taken are not limited to but include timed out, an actual made shot, close miss, body posture during the shot, etc. The default condition-set, in this embodiment, is the timed out, which is the lapsed time of a timer, part of the Controller 101 software that is set each time a shot is rendered. Currently, after the Shot Taken has been established, the Controller 101 takes one of three actions: 1) Stop the program and run program end protocol, 2) Stop the program and run interrupt protocol, or 3) Render the Next Pass and Next Shot. More actions (such as query the user for manual instructions through an interface) could be added or any of these modified or eliminated.
Program end protocol, in this embodiment, occurs when the program has no more renderings to create. The Controller 101 reads any specific program ending tasks specified in the program, such as data storage instructions, and completes the tasks, along with any tasks coded in the software, such as reset. Reset involves tasks such as potentially dumping balls out the Ejector 113 (
Interrupt protocol, in this embodiment, occurs when the system needs to stop all mechanical activity. This can be in response to a user command or from software logic or in response to software exceptions, etc. The Controller 101 checks for End Program Indicators (errors from components such as the encoder explained above) at specified intervals from system power up to system power down, and shuts down all components under its control.
When no End Program Indicator or End Program Condition is detected by the Controller 101 the Next Pass and Next Shot are rendered. Every component's end position in the previous rendering is its start position in the current rendering (for the Next Pass and Next Shot). This process is repeated until an End Program Condition or End Program Indicator is detected by the Controller 101 software.
In this embodiment, once a ball is shot it enters into the collection and return phase. Depending on the outcome of a shot, the ball can collide with the Basketball Rim 103 (
Balls flow out of the Ball Collector 111 (
The ball lift process uses the two lift towers to lift balls up to each Side Ball Channel 177 (
In this embodiment, currently it is conceived that the process starts with all the lift carriages stacked in the Carriage Well 189 (
In this embodiment, balls are deposited to the Side Ball Channel 177 (
In this embodiment, balls that roll down the Side Ball Channel 177 (
In this embodiment, once the Controller 101 determines balls are to be transferred from the Ball Catch 191 (
In this embodiment, data and media are continuously generated, processed, and stored. The Controller 101 may use generated data and media in a number of processes, such as real-time data display and analysis. Also, data is stored by the Controller 101 to a database for processing, storage, and deployment.
In this embodiment, it is currently conceived that the Controller 101 has media and data processing software to regulate and control the aforementioned processes. The software may be later expanded to process data and media and other information in a more extensive manner.
The All Shot system is initialized with the activation of the Controller 101 from an inactive state, such as shutdown or hibernation, or changed from a system level mode, such as a switch from a Diagnostic Mode to an Operational Mode. In the Operational Mode the All Shot is available for user activity, once the initialization process has been completed.
The Operational Mode begins with the system initialization process. Various components are powered or revitalized from an energy conservation mode. Some of the components, such as motor drivers, encoders, etc., have manufacturer start up procedures to follow. The Controller 101 monitors the initialization process of the self-initializing components for status feedback. Also data form external sources (for example information from an in house or remote database) is downloaded to the system. If the system fails to initialize, it enters a diagnostic mode to resolve problems with particular components.
Once the All Shot has been initialized, the Controller 101 monitors input from connected sources. The Controller 101 continuously monitors the conditions of various components in the system and makes adjustments when needed. The Controller 101 also listens for System Events sent by components and responds (for instance, an encoder or driver may send an error message event and the Controller 101 responds by a shutdown of the system.) Users Events are also monitored. The Controller 101 may respond to these events as well (for instance, the system may power down or the environment may be changed.)
In the case where a user is successfully logged in, the Controller 101 uploads user specific information, such as the user profile, and makes adjustments accordingly. Part of this upload includes user created shooting programs that are added to standard system programs, which the user may execute. Upon execution of a program, the All Shot runs the shot rendering process outlined above in accordance with the selected program. Once the program concludes, the Controller 101 waits for the next user event, which include but are not limited to re-running the current program or loading a different program.
The All Shot continues to wait for System Events and User Events until a shutdown condition is detected by the Controller 101. The Controller 101 will invoke a shutdown procedure based on the system status. If the system is functioning normally, the components are allowed to engage in normal shutdown procedures (such as a shift to a lower power level or data upload before shutdown.) If the system is experiencing abnormal conditions the shutdown could be as crude as cutting power.
EMBODIMENT TWODescription: Shot Finishing
In this embodiment, the All Shot is configured for post-to-mid post and finishing shots. This Operational Mode uses the Rim Backboard Support Assembly 265 (
The Slant Floor Base Frame 123 (
Support for the Slant Floor Base Frame 123 (
A Level Floor Support Assembly 421 is used to support the Slant Floor Base Frame 123 at various positions along its length and width when the Slant Floor Base Frame 123 is in level position. As currently conceived, the Level Floor Support Assembly 421 has an Industrial Wheel 425 at various positions on a Flap Frame 427 at each position designated for support. Alternatively, sliders on rails or another adequate roller/support method could be used in place of the wheels.
A Level Floor Actuator 429, is attached at the base of the Platform Frame 213 (
A Flap Support 431, a hinged support plate, is secured to the Flap Frame 427 below each place designated to be supported when the Slant Floor 117 (
A Flap Slot 433 is currently conceived to be a section of strong stock channel metal, or some other load-bearing support material, sized to allow the plate on the Flap Support 431 to slide in with a fit adequate to provide support. A Flap Slot 433 is attached to the bottom of the Slant Floor Base Frame 123 at various locations such that when a Flap Support 431 has its plate vertical and is pushed forward by the Level Floor Actuator 429 it slides into a Flap Slot 433.
The Controller 101 is connected to the components of the Level Floor Support Assembly 421 via serial communication (wireless, Ethernet, etc.) as needed for control purposes.
Operations:
In this Embodiment, the All Shot is used to conduct post training and inside shots, as well as training for finishing shots (including slam dunks). This is accomplished in an efficient manner because the All Shot can render every post position on a regulation (basketball) half court referenced from a selection of positions on the level Slant Floor 117 (
The Controller 101 may be accessed to change Operation Mode for post and finishing moves by any of the currently conceived interface methods. If necessary the Controller 101 adjusts components to create the mode. This could include, but not be limited to, lifting and supporting the Slant Floor Base Frame 123, or activating or deactivating various media elements to support the anticipated player location and activity (for instance a dunk cam could be activated if the rim is lowered.)
The Controller 101 can run a shot program, similar to as in other embodiments, or the player may use an interface method to render a particular shot. The Shot Taken for the manual case would only be achieved when the player manually rendered another shot.
Claims
1. An athletics training machine, comprising:
- a. an enclosure with a support framework made of a rigid material for providing structural support and being of a predetermined size to accommodate a plurality of human beings for athletics training,
- b. a first carriage having a rigid framework and being of a predetermined size to extend horizontally across said support framework, and
- c. a first means to attach said first carriage to said support framework enabling said first carriage to be controllably positioned at a plurality of locations along said support framework in said enclosure,
- d. a second carriage having a rigid framework and being of a predetermined size to extend horizontally across said first carriage, and
- e. a second means to attach said second carriage to said first carriage thereby enabling said second carriage to be controllably positioned at a plurality of locations along said first carriage,
- f. an elongated support member being of a predetermined length functionally connected to said second carriage so that said elongated support member is vertically suspended in said enclosure and perpendicularly positioned to said second carriage and said first carriage,
- g. a basketball goal functionally connected to said elongated support member so that said basketball goal is suspended below said second carriage and said first carriage in said enclosure,
- h. a rotational manipulation system mounted on said second carriage and functionally connected to said elongated support member for controllably articulating the rotational position of said basketball goal,
- i. a vertical manipulation system mounted on said second carriage and functionally connected to said elongated support member for controllably articulating the vertical position of said basketball goal,
- j. a first surface made of a rigid material mounted in said enclosure and being of a predetermined size to accommodate use by a human being for athletic activities,
- k. a second surface made of a rigid material and being of a predetermined size mounted in said enclosure adjacent to said first surface, and
- l. said second surface functionally connected to said first surface so that said second surface can be angled to a sufficient degree to allow a plurality of balls to roll to the lower end of said second surface,
- m. a ball collector mounted in said enclosure adjacent to said second surface for collecting a plurality of balls,
- n. a ball lift system mounted in said enclosure functionally connected to said ball collector for lifting a plurality of balls to a plurality of predetermined heights,
- o. a ball transport system functionally connected to said ball lift system for controllably transporting a plurality of balls to a plurality of specified locations in said enclosure,
- p. a ball ejector functionally connected to said ball transport system enabling said ball ejector to receive a plurality of balls from said ball transport system, and
- q. said ball ejector functionally connected to said support framework enabling said ball ejector to be controllably positioned at a plurality of desired locations in said enclosure thereby enabling said ball ejector to propel a plurality of balls to a human being at a plurality of locations in said enclosure.
2. The enclosure of claim 1 wherein said enclosure is a rectangular structure.
3. The support framework of claim 1 wherein said support framework is a carriage and structure support frame.
4. The first carriage of claim 1 wherein said first carriage is a forward backward carriage.
5. The first means of claim 1 wherein said first means is a linear motion device.
6. The second carriage of claim 1 wherein said second carriage is a left right carriage.
7. The second means of claim 1 wherein said second means is a linear motion device.
8. The first surface of claim 1 wherein said first surface is a shooting platform.
9. The second surface of claim 1 wherein said second surface is a slant floor.
10. A method for enhancing basketball training and improving basketball skills, comprising:
- a. providing an enclosure of a predetermined size for containing basketball training sessions, and
- b. providing an unobstructed rim in said enclosure such that said unobstructed rim is able to be controllably positioned to a plurality of specified locations in said enclosure thereby enabling a human being to efficiently practice a plurality of basketball shots in said enclosure, and
- c. providing a ball collection means in said enclosure so that balls shot at said unobstructed rim can be efficiently collected, and
- d. providing a ball distribution means in said enclosure so that collected balls can be propelled from a plurality of locations and to a plurality of locations in said enclosure thereby providing a wide range of more efficient training drills.
11. A data processing system for processing real time data and stored data by converting said real time data and said stored data to movement instruction data sets, comprising:
- a plurality of real time data producing components,
- a means for storing data,
- a plurality of movement devices, and
- a computer processing means configured to a) receive data from said plurality of real time data producing components, b) retrieve data from said means for storing data, c) process said real time data and said stored data to generate said movement instruction data sets such that each movement instruction data set in said movement instruction data sets is formatted for a given device in said plurality of movement devices, and d) transmit data from said movement data sets to each device in said plurality of movement devices based on predetermined routing assignments,
12. The plurality of real time data producing components of claim 11 wherein said plurality of real time data producing components includes a ball ejector linear encoder.
13. The plurality of movement devices of claim 11 wherein said plurality of movement devices includes a motion control system.
14. The data processing system of claim 11 wherein said computer processing means is a controller.
15. The movement instruction data set of claim 11 wherein said movement instruction data set is a driver movement instruction set.
Type: Application
Filed: Apr 3, 2015
Publication Date: Mar 24, 2016
Inventor: Adrian Adams (Rancho Cucamonga, CA)
Application Number: 14/678,924