SYSTEM, METHOD, AND MOTORIZED SPORTS BALL BLOCKING MACHINE FOR PREDICTING TRAJECTORY OF AND POTENTIALLY BLOCKING SPORTS BALL
20250303255 ยท 2025-10-02
Inventors
Cpc classification
A63B2220/05
HUMAN NECESSITIES
A63B69/34
HUMAN NECESSITIES
A63B71/0622
HUMAN NECESSITIES
International classification
A63B69/34
HUMAN NECESSITIES
A63B69/00
HUMAN NECESSITIES
A63B71/06
HUMAN NECESSITIES
Abstract
A system includes a blocking machine having at least one court detection device and at least one robotic blocker simulating human movement relating to a sport. Images captured from the at least one court detection device are utilized for determining a speed, trajectory, and/or position of a sports ball. Based on the determined speed, trajectory, and/or position of the sports ball, rotational and/or translational movement of the robotic blocker simulates a human blocker attempting to block the sports ball.
Claims
1. A system, comprising: at least one reference fiducial positioned in a field of play for a sport, each of the at least one reference fiducial having a predetermined position in the field of play; at least one arm; at least one motor, each of one or more of the at least one motor configured to cause at least one of at least one translational motion movement or at least one rotational motion movement of one or more of the at least one arm; at least one image sensor, each of one or more of the at least one image sensor configured to capture images of the at least one reference fiducial and a sports ball in motion in the field of play; and at least one processor, one, some, or all of the at least one processor communicatively coupled to the one or more of the at least one motor and the one or more of the at least one image sensor, one or more of the at least one processor configured to: receive at least two of the captured images; for each of the at least two captured images, determine a position of the sports ball at a given time in said captured image relative to the at least one reference fiducial; for each of at least one subset of the determined positions of the sports ball, determine a motion vector indicative of a motion profile of the sports ball between and/or among the determined positions of said subset of the determined positions, wherein said subset includes a first given determined position of the sports ball at a first given time and a second given determined position of the sports ball at a second given time, wherein said motion profile of the sports ball includes a determined velocity of the sports ball between and/or among the determined positions of said subset; based at least on at least one of said one or more determined motion vectors, determine an approximate trajectory of the sports ball in the field of play; and based at least on the determined approximate trajectory of the sports ball, control at least one of the at least one motors to cause at least one of one or more translational motion movements or one or more rotational motion movements of the one or more of the at least one arm so as to at least potentially block the sports ball.
2. The system of claim 1, wherein the sport is volleyball, wherein the sports ball is a volleyball, wherein the field of play includes a volleyball net.
3. The system of claim 2, wherein the at least one processor is further configured to: record data associated with a spiker that spiked balls in the field of play during a training session; based at least on the recorded data, determine statistics associated with the spiker during the training session; and output the statistics for presentation to a user and/or the spiker.
4. The system of claim 1, wherein the at least one arm is at least two arms, wherein the one or more of the at least one arm is two or more of the at least two arms.
5. The system of claim 1, wherein the at least one image sensor is at least two image sensors, wherein the one or more of the at least one image sensor is two or more of the at least two image sensors.
6. The system of claim 1, wherein the at least one processor is further configured to: based at least on the determined approximate trajectory of the sports ball, control the at least one of the at least one motors to cause the one or more translational motion movements of the one or more of the at least one arm so as to at least potentially block the sports ball, wherein the one or more translational motion movements comprises at least one horizontal movement.
7. The system of claim 1, wherein the at least one processor is further configured to: based at least on the determined approximate trajectory of the sports ball, control the at least one of the at least one motors to cause the one or more translational motion movements of the one or more of the at least one arm so as to at least potentially block the sports ball, wherein the one or more translational motion movements comprises at least one vertical movement.
8. The system of claim 1, wherein the at least one processor is further configured to: based at least on the determined approximate trajectory of the sports ball, control the at least one of the at least one motors to cause the one or more translational motion movements of the one or more of the at least one arm so as to at least potentially block the sports ball, wherein the one or more translational motion movements comprises at least one horizontal movement and at least one vertical movement.
9. The system of claim 1, wherein the at least one processor is further configured to: based at least on the determined approximate trajectory of the sports ball, control the at least one of the at least one motors to cause the one or more translational motion movements of the one or more of the at least one arm so as to at least potentially block the sports ball, wherein the one or more translational motion movements comprises at least one horizontal movement, at least one vertical movement, and at least one depth movement.
10. The system of claim 1, wherein the at least one processor is further configured to: based at least on the determined approximate trajectory of the sports ball, control the at least one of the at least one motors to cause the at least one of the one or more translational motion movements and the one or more rotational motion movements of the one or more of the at least one arm so as to at least potentially block the sports ball.
11. The system of claim 1, wherein the at least one processor is further configured to: obtain simulated blocker data associated with attributes of at least one simulated human blocker; and based at least on the determined approximate trajectory of the sports ball and the simulated blocker data, control at least one of the at least one motors to cause at least one of one or more translational motion movements or one or more rotational motion movements of the one or more of the at least one arm.
12. The system of claim 11, wherein the attributes of the at least one simulated human blocker include at least one of: at least one blocker reaction time, at least one blocker lateral speed, at least one blocker arm speed, at least one blocker height, at least one blocker arm length, at least one blocker vertical leap attribute, at least one blocker age, at least one blocker skill level, at least one blocker block accuracy, at least one blocker block response consistency, or at least one randomness factor.
13. The system of claim 11, wherein the attributes of the at least one simulated human blocker are user-defined.
14. The system of claim 11, wherein the at least one simulated human blocker is at least two simulated human blockers of a simulated team, the at least two simulated human blockers of the simulated team corresponding to at least two human blockers of a team.
15. The system of claim 14, wherein the attributes of the at least two simulated human blockers of the simulated team are obtained based at least on one or more processors configured to analyze video of at least one volleyball game involving the at least two human blockers of the team and to determine the attributes of the at least two simulated human blockers of the simulated team based at least on the analyzation of the video.
16. The system of claim 1, further comprising at least one user-interface device communicatively coupled to the at least one processor, the at least one user-interface device configured to interface with at least one user, wherein the at least one user-interface device comprises at least one of at least one display, at least one microphone, or at least one speaker.
17. The system of claim 1, wherein the at least one reference fiducial includes at least one of at least one feature of the field of play or at least one feature applied to the field of play, wherein each of the at least one feature of the field of play or the at least one feature applied to the field of play has the predetermined position.
18. The system of claim 17, wherein each of the one or more of the at least one image sensor is positioned at a known position.
19. A system, comprising: at least one memory; and at least one processor, at least one of the at least one processor communicatively coupled to the at least one memory, one, some, or all of the at least one processor configured to be communicatively coupled to one or more of at least one motor and one or more of at least one image sensor, wherein each of the one or more of the at least one motor is configured to cause at least one of at least one translational motion movement or at least one rotational motion movement of one or more of at least one arm, wherein each of the one or more of the at least one image sensor is configured to capture images of at least one reference fiducial and a sports ball in motion in a field of play, wherein the at least one reference fiducial is positioned in the field of play for a sport, each of the at least one reference fiducial having a predetermined position in the field of play, wherein the at least one processor is configured to: receive at least two of the captured images; for each of the at least two captured images, determine a position of the sports ball at a given time in said captured image relative to the at least one reference fiducial; for each of at least one subset of the determined positions of the sports ball, determine a motion vector indicative of a motion profile of the sports ball between and/or among the determined positions of said subset of the determined positions, wherein said subset includes a first given determined position of the sports ball at a first given time and a second given determined position of the sports ball at a second given time, wherein said motion profile of the sports ball includes a determined velocity of the sports ball between and/or among the determined positions of said subset; based at least on at least one of said one or more determined motion vectors, determine an approximate trajectory of the sports ball in the field of play; and based at least on the determined approximate trajectory of the sports ball, control at least one of the at least one motor to cause at least one of one or more translational motion movements or one or more rotational motion movements of the one or more of the at least one arm so as to at least potentially block the sports ball.
20. A method, comprising: receiving, by at least one processor, at least two of captured images, wherein at least one of the at least one processor is communicatively coupled to at least one memory, one, some, or all of the at least one processor configured to be communicatively coupled to one or more of at least one motor and one or more of at least one image sensor, wherein each of the one or more of the at least one motor is configured to cause at least one of at least one translational motion movement or at least one rotational motion movement of one or more of at least one arm, wherein each of the one or more of the at least one image sensor is configured to capture images of at least one reference fiducial and a sports ball in motion in a field of play as the captured images, wherein the at least one reference fiducial is positioned in the field of play for a sport, each of the at least one reference fiducial having a predetermined position in the field of play; for each of the at least two captured images, determining, by the at least one processor, a position of the sports ball at a given time in said captured image relative to the at least one reference fiducial; for each of at least one subset of the determined positions of the sports ball, determining, by the at least one processor, a motion vector indicative of a motion profile of the sports ball between and/or among the determined positions of said subset of the determined positions, wherein said subset includes a first given determined position of the sports ball at a first given time and a second given determined position of the sports ball at a second given time, wherein said motion profile of the sports ball includes a determined velocity of the sports ball between and/or among the determined positions of said subset; based at least on at least one of said one or more determined motion vectors, determining, by the at least one processor, an approximate trajectory of the sports ball in the field of play; and based at least on the determined approximate trajectory of the sports ball, controlling, by the at least one processor, at least one of the at least one motor to cause at least one of one or more translational motion movements or one or more rotational motion movements of the one or more of the at least one arm so as to at least potentially block the sports ball.
Description
DESCRIPTION OF THE FIGURES
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
DETAILED DESCRIPTION
[0015] Before explaining at least one embodiment of the inventive concepts disclosed herein in detail, it is to be understood that the inventive concepts are not limited in their application to the details of construction and the arrangement of the components or steps or methodologies set forth in the following description or illustrated in the drawings. In the following detailed description of embodiments of the instant inventive concepts, numerous specific details are set forth in order to provide a more thorough understanding of the inventive concepts. However, it will be apparent to one of ordinary skill in the art having the benefit of the instant disclosure that the inventive concepts disclosed herein may be practiced without these specific details. In other instances, well-known features may not be described in detail to avoid unnecessarily complicating the instant disclosure. The inventive concepts disclosed herein are capable of other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.
[0016] As used herein a letter following a reference numeral is intended to reference an embodiment of the feature or element that may be similar, but not necessarily identical, to a previously described element or feature bearing the same reference numeral (e.g., 1, 1a, 1b). Such shorthand notations are used for purposes of convenience only, and should not be construed to limit the inventive concepts disclosed herein in any way unless expressly stated to the contrary.
[0017] Further, unless expressly stated to the contrary, or refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by anyone of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
[0018] In addition, use of the a or an are employed to describe elements and components of embodiments of the instant inventive concepts. This is done merely for convenience and to give a general sense of the inventive concepts, and a and an are intended to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
[0019] Finally, as used herein any reference to one embodiment, or some embodiments means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the inventive concepts disclosed herein. The appearances of the phrase in some embodiments in various places in the specification are not necessarily all referring to the same embodiment, and embodiments of the inventive concepts disclosed may include one or more of the features expressly described or inherently present herein, or any combination of sub-combination of two or more such features, along with any other features which may not necessarily be expressly described or inherently present in the instant disclosure.
[0020] Broadly, embodiments of the inventive concepts disclosed herein may be directed to a method and system. In some embodiments, a blocking machine may be able to replicate a number, movement, speed, and/or variability of human blockers in the sport of volleyball without the need of a coach or trainer to control the mechanism (automatic). In doing so, we give athletes a much richer, realistic, and valuable training experience that more closely represents what they will experience in reality. While such exemplary embodiment is configured for volleyball, in other embodiments, the bocking machine may be adapted for any suitable sport (e.g., soccer, tennis, badminton, hockey, lacrosse, or the like) and/or non-sports use. For example, the blocking machine may be configured for: detecting the volleyball that is in play; determining its position and/or trajectory; determining information about a set ball with respect to the net or court; and/or causing one or multiple automated blockers to move to a target location in an attempt to block the athlete's (e.g., spiker's) hit.
Blocking Machine Overview
[0021] In some embodiments, the blocking machine 100 located in a field of play 101 may receive input from the at least one court detection device (e.g., at least one image sensor (e.g., at least one camera)) and/or drive at least one robotic blockers to a target position. With respect to an exemplary embodiment, the above
[0022] In an exemplary embodiment, each blocker 102 may have two carbon fiber arms 120a and 120b wrapped in a foam tube, though any suitable materials may be used. For example, each arm 120a, 120b may have two segments that may be connected by a flexible pseudo-elbow (e.g., made of flexible rubber hose) to allow each arm some flexibility; however, in other embodiments, the arm 120a, 120b may formed of a single segment or any number of segments, may be formed of any suitable materials and/or components, and/or may have a motorized pseudo-elbow. As exemplarily shown in
[0023] In some embodiments, the blockers 102 may ride on at least one track (e.g., lower track 104 and upper track 106) using wheels 124 (e.g., plastic wheels) and/or guides. For example, the blockers 102 maybe driven along the track (e.g., lower track 104 and/or upper track 106) by any suitable device, such as at least one motor and/or a belt (e.g., a toothed belt 108 (e.g., a high torque drive (HTD) 3M toothed belt). For example, the belt may form a complete loop and may be driven by a motor 128 (e.g., a stepper motor (e.g., a NEMA 42 stepper motor)) (as shown on the left on the left side of the machine) and/or by a pulley. For example, machine 100 may include a tensioning mechanism that may use a screw to pull the idler pulley back along a slot.
[0024] In some embodiments, the blocking machine's frame 126 may include pipes 130, such as steel pipes (e.g., readily available, schedule 40 steel pipe), for accessibility and easy assembly. For example, the pipe 130 may be cut to a desired length and requires no further customization. In some embodiments, structural railing fittings may be used to hold the frame members together at suitable angles. In one exemplary embodiment, the frame 126 is about 10 feet wide, 4 feet deep, and 8 feet tall, though the design is intended to allow for any suitable width, such as less than 10 feet, between 10 feet, more than 15 feet. For example, larger width spans may include an additional structural support(s) in the middle. In some embodiments, two custom steel parts may slide on a vertical 8-foot tube on each end of the frame 126. For example, the custom steel parts may hold the two horizontal pipes that serve as the tracks for the blockers 102, may have motor mounts and/or idler pulley mounts, respectively, and/or may slide vertically to adjust for various net 116 heights.
[0025] In some embodiments, a hand crank 118 (and/or a motorized crank) may be attached to a shaft that sits inside one or more of the guide pipes and/or the lower track 104 (e.g., a lower of the two guide pipes in embodiments comprising guide pipes). For example, on both ends of the tube, a steel cable may be wrapped around, fixed to the shaft, and/or connected to the blocker 102 (e.g., a top of the blocker). When rotating the crank 118, the blockers 102 and their tracks (e.g., lower track 104 and upper track 106) can be raised or lowered by a single operator and/or motor. For example, a locking screw may be used to secure the tracks (e.g., lower track 104 and upper track 106) in place, and/or collars with locking screws can be secured on a vertical pipe to provide an extra layer of security in locking the height of the blockers 102.
[0026] As further depicted in
[0027] For further illustrative purposes,
Electronics Schematic And Control Board
[0028] In some embodiments, a control box 202 may house and/or protects some or all the electronics of the blocking machine 100. With respect to
[0029] As shown in
[0037] Below, is an exemplary embodiment of a method according to the inventive concepts disclosed herein. Such method may include one or more of the following steps. Additionally, for example, some embodiments may include performing one or more instances of such method iteratively, concurrently, and/or sequentially. Additionally, for example, at least some of the steps of the method may be performed in parallel, iteratively, and/or concurrently. Additionally, in some embodiments, at least some of the steps of the method may be performed non-sequentially. For example, any or all of the following steps may be performed (e.g., iteratively in a loop) by at least one controller 218 (e.g., the esp32 device):
[0038] 1) LED light status may be updated. For example, based on calibration state, error state, camera state, and/or ball state different light colors and/or flashing sequences may be displayed. For example, red may mean uncalibrated and/or an error, blue may mean the camera is not calibrated and/or not connected, and/or green may mean the blocker 102 is ready for use. For example, flashing lights may mean some routine operation is being carried out and/or the user can wait a few moments for such routine to resolve. For example, solid may require manual attention.
[0039] 2) Limit switches may be checked. For example, limit switches may be normally closed, meaning that if the switch is triggered and/or unintentionally disconnected the machine will treat the limit as being triggered. For example, there may be three limit switches: one to detect a left bound of a left blocker 102, a second to detect a proximity of two blockers 102 with respect to each other (e.g., second limit switch may be mounted on the left blocker), and a third to detect a right bound of a right blocker 102.
[0040] 3) Emergency stop switch may be checked. For example, similar to the limit switches, the emergency stop switch may be normally closed. For example, the emergency stop may also be separately connected to the motor drivers 212, so that when triggered, the drivers 212 may entirely disengage the motors for safety purposes.
[0041] 4) Faults may be checked. For example, using a current limit switch status and/or an emergency stop status, a fault check may be performed. For example, during calibration, limit switches may be used to calibrate blocker positions. For example, after calibration the limit switches may be used to detect issues with the positioning of one or more blockers 102. For example, additionally, the calibration state fault checks that are performed may be used at least in part to determine issues with the limit switches. For example, an emergency stop status may also be applied during this step. For example, some faults can trigger a latched error state. For example, if a limit switch is disconnected, the blocker 102 may display a solid red light that notifies the user to turn off the machine and/or troubleshoot. For example, motors may be commanded to stop in case of a fault.
[0042] Calibration may be checked. For example, if one or more of the blockers 102 are uncalibrated, a calibration routine may be performed in sequence. [0043] A) For example, if any of the three limits are triggered, the motors may be driven to pull the blockers off the limits. For example, if the limit signal does not change, then a fault may be triggered to indicate a potential issue with the switches. [0044] B) The left blocker may travel slowly to the left limit and/or zero its position. [0045] C) The right blocker may travel slowly to the left blocker's proximity and/or zeros its position. [0046] D) The right blocker may travel slowly to the right limit, e.g., so the width of the blocker is known. (Conclusion of step D may complete the calibration process.)
System Architecture
[0047] Referring now to
[0048] In some embodiments, such as shown in
[0049] In some embodiments, at least one reference fiducial 310 may be positioned in a field of play (e.g., field of play 101) for a sport, each of the at least one reference fiducial 310 having a predetermined position in the field of play.
[0050] In some embodiments, each of one or more of the at least one motor 304 may be configured to cause at least one of at least one translational motion movement or at least one rotational motion movement of one or more of the at least one arm 302.
[0051] In some embodiments, each of one or more of the at least one image sensor 306 may be configured to capture images of the at least one reference fiducial 310 and a sports ball 308 in motion in the field of play.
[0052] In some embodiments, one, some, or all of the at least one processor may be communicatively coupled to the one or more of the at least one motor 304 and the one or more of the at least one image sensor 306. For example, the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) may include at least one controller (e.g., at least one microcontroller), at least one control board, at least one central processing unit (CPU), at least one graphics processing unit (GPU), at least one field-programmable gate array (FPGA), at least one application specific integrated circuit (ASIC), at least one digital signal processor, at least one image processor, at least one deep learning processor unit (DPU), at least one virtual machine (VM) running on at least one processor, and/or the like configured to perform (e.g., collectively perform if more than one processor and/or if multiple processors are distributed among multiple devices) any of the operations disclosed throughout. Each processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) may be configured to run various software applications or computer code stored (e.g., maintained) in a non-transitory computer-readable medium (e.g., at least one memory) and configured to execute various instructions or operations.
[0053] In some embodiments, one or more of the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) may be configured (e.g., collectively configured if more than one processor and/or if multiple processors are distributed among multiple devices) to: receive at least two of the captured images captured via image sensor 306; for each of the at least two captured images, determine a position of the sports ball 308 at a given time in said captured image relative to the at least one reference fiducial 310; for each of at least one subset of the determined positions of the sports ball 308, determine a motion vector indicative of a motion profile of the sports ball 308 between and/or among the determined positions of said subset of the determined positions, wherein said subset includes a first given determined position of the sports ball 308 at a first given time and a second given determined position of the sports ball 308 at a second given time, wherein said motion profile of the sports ball 308 includes a determined velocity of the sports ball 308 between and/or among the determined positions of said subset; based at least on at least one of said one or more determined motion vectors, determine an approximate trajectory of the sports ball 308 in the field of play; and/or based at least on the determined approximate trajectory of the sports ball 308, control at least one of the at least one motors 304 to cause at least one of one or more translational motion movements or one or more rotational motion movements of the one or more of the at least one arm 302 so as to at least potentially block the sports ball 308.
[0054] In some embodiments, the sport is volleyball, the sports ball 308 is a volleyball, and the field of play 101 includes a volleyball net; however, other embodiments may pertain to any suitable sport such as soccer, tennis, badminton, or hockey. In some embodiments, the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) is further configured to: record data associated with a user's 134 interaction with a sports ball 308 (e.g., a spiker that spiked balls) in the field of play 101 during a training session; based at least on the recorded data, determine statistics associated with the spiker during the training session; and/or output the statistics for presentation to a user and/or the spiker.
[0055] In some embodiments, the at least one arm 302 is at least two arms, and the one or more of the at least one arm 302 is two or more of the at least two arms (e.g., arms 120a, 120b).
[0056] In some embodiments, the at least one image sensor 306 is at least two image sensors, and the one or more of the at least one image sensor 306 is two or more of the at least two image sensors. In further embodiments, the at least one image sensor 306 comprises a plurality of image sensors greater than two image sensors.
[0057] In some embodiments, the at least one processor is further configured to: based at least on the determined approximate trajectory of the sports ball, control the at least one of the at least one motors to cause the one or more translational motion movements of the one or more of the at least one arm so as to at least potentially block the sports ball, wherein the one or more translational motion movements comprises at least one horizontal movement.
[0058] In some embodiments, the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) is further configured to: based at least on the determined approximate trajectory of the sports ball 308, control the at least one of the at least one motors 304 to cause the one or more translational motion movements of the one or more of the at least one arm 302 so as to at least potentially block the sports ball 308, wherein the one or more translational motion movements comprises at least one vertical movement.
[0059] In some embodiments, the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) is further configured to: based at least on the determined approximate trajectory of the sports ball 308, control the at least one of the at least one motors 304 to cause the one or more translational motion movements of the one or more of the at least one arm 302 so as to at least potentially block the sports ball 308, wherein the one or more translational motion movements comprises at least one horizontal movement and at least one vertical movement.
[0060] In some embodiments, the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) is further configured to: based at least on the determined approximate trajectory of the sports ball 308, control the at least one of the at least one motors 304 to cause the one or more translational motion movements of the one or more of the at least one arm 302 so as to at least potentially block the sports ball 308, wherein the one or more translational motion movements comprises at least one horizontal movement, at least one vertical movement, and at least one depth movement.
[0061] In some embodiments, the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) is further configured to: based at least on the determined approximate trajectory of the sports ball 308, control the at least one of the at least one motors 304 to cause the at least one of the one or more translational motion movements and the one or more rotational motion movements of the one or more of the at least one arm 302 so as to at least potentially block the sports ball 308.
[0062] In some embodiments, the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) is further configured to: obtain simulated blocker data 336 associated with attributes of at least one simulated human blocker; and based at least on the determined approximate trajectory of the sports ball 308 and the simulated blocker data 336, control at least one of the at least one motors 304 to cause at least one of one or more translational motion movements or one or more rotational motion movements of the one or more of the at least one arm 302. In some embodiments, the attributes of the simulated human blocker data 336 include at least one of: at least one blocker reaction time, at least one blocker lateral speed, at least one blocker arm speed, at least one blocker height, at least one blocker arm length, at least one blocker vertical leap attribute, at least one blocker age, at least one blocker skill level, at least one blocker block accuracy, at least one blocker block response consistency, or at least one randomness factor. In some embodiments, the attributes of the simulated blocker data 336 are user-defined. In some embodiments, the simulated blocker data 336 is at least two simulated human blockers of a simulated team, the at least two simulated human blockers of the simulated team corresponding to at least two human blockers of a team. For example, in embodiments in which simulated blocker data 336 corresponds to at least two human blockers of a team, more than one blockers 102 may be implemented by machine 100 and with each of the blockers 102 corresponding to one simulated human blocker. In some embodiments, the attributes of the at least two simulated human blockers of the simulated team are obtained based at least on one or more processors (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318) configured to analyze video of at least one volleyball game involving the at least two human blockers of the team and to determine the attributes of the at least two simulated human blockers of the simulated team based at least on the analyzation of the video.
[0063] In some embodiments, the at least one reference fiducial 310 includes at least one of at least one feature (e.g., at least one line (e.g., a boundary line) and/or intersection of lines on a court or field, at least one post, and/or at least one horizontal midpoint of a top of a net) of the field of play or at least one feature (e.g., at least one sticker, at least one marking, at least one bar code, and/or at least one QR code) applied to the field of play 101, wherein each of the at least one feature of the field of play 101 or the at least one feature applied to the field of play 101 has the predetermined position. In some embodiments, each of the one or more of the at least one image sensor 306 is positioned at a known position.
[0064] In some embodiments, court detection is performed by use of the at least one image sensor 306. For example, the at least one image sensor 306 may be a camera positioned behind the athlete, e.g., framing the full width of the blocking machine 100 (as exemplary depicted in
[0065] In an exemplary embodiment, code was written using micropython and OpenMV's available libraries to carry out the logic. Upon startup, at least one image sensor 306 scans the frame for reference fiducials 310 (e.g., QR codes, such as April Tags, which are two-dimensional barcodes that are well-suited for robotics applications. In an exemplary embodiment, the blocking machine 100 comprises two or more reference fiducials 310 positioned just above the net 116, with one reference fiducial located on each side of a blocker. Furthermore, the at least one image sensor 306 can be leveled, e.g., such an imaged net line appears to be generally horizontal in the images. This can allow the at least one image sensor 306 to calibrate its perception of a sports ball 308 with respect to the height of the blocking machine 100 and/or the position of each blocker 102. For example, if the at least one image sensor 306 is not positioned properly to capture both reference fiducials 310 properly, a message may be displayed to a user via the UI device 316, so that the user can troubleshoot.
[0066] Once calibrated, the at least one image sensor 306 may operate continuously (and/or as otherwise desired) and in real time using computer vision techniques, such as frame differencing, binary image processing, erosion, and/or dilation to abstract objects that appear to be a volleyball. In some embodiments, larger objects, such an athlete(s) can be excluded from abstracting. In some embodiments, when the entire frame may be evaluated, arms (e.g., arms 302) and other components of a blocker 102 that extend above the net line should be expected to perceived as larger than a sports ball 308, and therefore omitted. In some embodiments, once a sports ball 308 has been detected to have crossed above the previously established net line, trajectory tracking may begin, which may include recording information about each frame until the ball has crossed back below the net line.
[0067] In embodiments, trajectory of the sports ball 308 may be tracked by iteratively determining and/or detecting a centroid of the detected sports ball 308 as pixel within each frame of an image stream and determining a change in horizontal and/or vertical position of the sports ball 308 between two frames (e.g., at different times) and comparing the time difference between frames. For example, when operating at approximately 15 frames per second (FPS), for example, approximately 66 ms elapse between frames. The change in position in pixels can provide directional context but would not accurately calculate trajectory using projectile motion equations without additional information. The change in position values can be normalized against a commonly established unit of measure to account for the effects of gravity correctly. For example, to do this, the size of the sports ball 308, which is reasonably accurately and precisely known based on the embodiments of the sports ball 308, may be used to approximate the distance per pixel across a plane at which the ball 308 is moving along. For example, it can be assumed, for calculation purposes, that the ball 308 moves on a plane parallel to the net 116 so as to achieve a level of accuracy sufficient for most applications.
[0068] In some embodiments, for each new frame, the current and previous frame may be used to determine: 1) the position for which the ball 308 is expected to cross the net line and 2) the time in milliseconds to cross the net line. Since each frame provides a new value for crossing location and time, filtering may be applied to remove outliers. Outliers are not uncommon, since the object detected can have noise, shadows, and other disturbances. As a result, the size of the sports ball 308, centroid, and/or other parameters may be impacted. In other words, each additional frame that is processed may provide a more precise estimation of the location where the sports ball 308 will cross the net line. For example, based at least on the horizontal position of the at least one reference fiducial (e.g., reference fiducial 110a, 110b) on the screen, the net line crossing position may be converted to a percentage, where 0% is at a left reference fiducial (e.g., reference fiducial 110a) and 100% is at the right reference fiducial (e.g., reference fiducial 110b). This may be a value for which the blocking machine 100 can independently interpret positioning and other parameters despite being otherwise blind to the events occurring on the court. The general direction of travel of the sports ball 308 may also be determined, which may provide context about whether a set of the sports ball 308 is a final volley towards the athlete.
[0069] In some embodiments, for each image frame, the at least one image sensor 306 may record relevant information about the field, court, pitch, etc. (e.g., field of play 101) within such image frame. Such information may include: a status of the at least one image sensor 306 (e.g., calibrated or uncalibrated); a status of the sports ball 308 (e.g., in play or not in play); and/or information about an active set of a sports ball 308, where such information may be used to estimate a crossing position percentage, time remaining (ms), and/or direction of travel (e.g., right or left). In some embodiments, some or all of such recorded information may be communicated (e.g., wiredly and/or wirelessly) to the blocking machine 100 (e.g., via an esp32 device).
[0070] In some embodiments, the at least one image sensor 306 may comprise advanced camera(s) and/or hardware components may be used so as to achieve higher framerates, which may allow for using more complex computer vision processes. In some embodiments, more advanced camera(s) and/or hardware components may be used to utilize artificial intelligence (AI), machine learning (ML), and/or neural network (e.g., convolutional neural network (CNN)) machine vision models to improve accuracy detection of a sports ball 308 from other image blobs so as to improve an accuracy of an approximated trajectory.
[0071] In some embodiments, multiple image sensors 306 may be used, e.g., to allow for three-dimensionally (in space; e.g., four-dimensionally with space and time) evaluating the field of play 101 and more accurately determining the approximate trajectory in space and time of the sports ball 308. This may further allow for controlling movement of the blockers 102 more realistically. Even further, this may also better inform the system 300 of sports ball 308 motion that is not a precursor to an attack. For example, certain lateral movements or certain passes may be an initial step in setting up and attack rather than a movement that immediately precedes an attack. Multiple image sensors 306 may also reduce the frequency of sensor misalignment, as compared to a single separately positioned image sensor 306 that is behind the field of play 101 and more subject to misalignment. Additionally, for example, the multiple image sensors 306 may include an overhead camera to further gather data and/or view perspectives of the field of play 101.
[0072] In some embodiments, by using more robust hardware components communicatively coupled to at least one of the at least one processors (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318), camera images may be processed to track athletes, in addition to the sports ball 308.
[0073] Some embodiments may include recording video(s) through the use of video recorders also communicatively coupled to at least one of the at least one processors (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318), to provide instant replays and/or replays for later viewing with respect to individual repetitions.
[0074] Some embodiments may include integration into a more comprehensive ecosystem (e.g., which may be networked) of other automated volleyball machines, such as an automatic setting machine or an automatic serving machine.
[0075] In some embodiments, the simulation of variability may be a valuable aspect of the blocking machine 100. As previously mentioned, variability is an inherent aspect of sports and one that must be simulated for developing skilled athletes. In this case, mimicking the different positions, speed, movement, and/or number of blockers 102 is helpful for assisting a volleyball player to increase their ability to spike skillfully.
[0076] In some embodiments, the system 300 may include an autoset machine 332 configure to simulate the volleyball set. A human setter is an individual, who delivers or sets the volleyball typically to one of four awaiting spikers. Unlike other machines currently in existence that can only deliver one consistent, predictable set, the autoset machine 332 coupled to the system 300 may be able to simulate variability of a human setter, such as by adjusting the height, trajectory, and/or location of the set randomly and/or according to predetermined parameters of a simulated human setter. For example, the autoset machine 332 may include a spring-loaded rod mechanism rather than a typical wheel-driven mechanism used today. For example, the height of the set may be dictated at least by multiple variables: an amount of force that the spring-loaded rod mechanism transfers to the volleyball, a launch angle of the rod, and or an angle at which the rod contacts the ball. For example, the rod may be powered by a stepper motor that pulls and/or loads the rod to a specific stroke length, where a longer stroke length imparts more force to the volleyball. For example, some or all of the mechanism may be supported in a fashion that allows for precise rotational control about an axis in a vertical plane to control the launch angle. For example, the location of the set may be based at least on precise rotational control about a second axis in the horizontal direction. For example, all variables (e.g., such three variables) may be automatically adjusted according to a computer algorithm. For example, the autoset machine 332 may also have settings and/or parameters that simulate different skill and/or accuracy levels of a human setter. For example, youth-level players exhibit much more variability in height, trajectory, and/or location among sets than a more skilled player that would have less variability. For example, skill and/or experience settings may include youth, novice, junior high, high school, college, and/or professional settings, each of which may have respectively less variability than preceding skill levels. For example, the autoset machine 332 may be configured to move around the court automatically and launch balls from different locations so as to further simulate game-like situations and enhance its variability.
[0077] In some embodiments, the system 300 may include a serving machine 334 configured to simulate a server serving balls. Currently, existing serving machines need to be manually operated, which involves a person performing the following actions: loading a ball into a loading area and then physically pushing the ball through two spinning wheels, which spin at a fast rate; adjusting two dials to alter how fast each wheel spins, which impacts spin rate and speed; and manually adjusting and readjusting the tilt and rotation of the entire mechanism to change ball trajectory and direction in relation to the ball speed and spin. Such manual operations are time-consuming processes. Some embodiments minimize manual operations. For example, a computer system (e.g., computing device 318) may be configured to change the speed and/or spin rate of the serving machine 334 automatically and/or variably. For example, the serving machine 334 may include actuators, which may be powered and controlled by the computer system, which may be configured to alter the trajectory and/or direction of the ball.
[0078] Additionally, current serving machines lack realism, or the human element. In sports, the ability to read, plan, and react is largely based on what the opponent's body is doing or about to do. This is information that athletes use in order to enhance their ability to react in game-like situations. In volleyball, a passer, or someone about to pass a ball served from the opponent, relies on information about the server to adjust their movements accordingly. For example, how a server tosses, the speed at which they approach, and/or the position and movement of their serving arms provide information to the passer about what type of serve might be coming, which can include short or deep serves, serves with particular spins, or power. These sources of information are largely missing from current serving machines. Some embodiments include a display and/or a screen at the front of the serving machine 334, wherein the display may have a ball-sized cutout where the ball exits from. For example, a projector may be configured to project a life size player onto the screen and the projected player's movements may correspond with the type of serve being served. For example, the serving machine 334 and/or the display/projector may be controlled and/or automated by the computer system (e.g., computing device 318). For example, to simulate a float server, the computer system may adjust the spin rate of both wheels to a same speed (e.g., which creates minimal (or no) spin on the ball), adjust the trajectory and/or rotation of the entire mechanism of the server machine, and/or feed the ball into the wheels at a synchronized time that the projected player appears to contact the ball on the screen. For example, the computer system can also receive commands (e.g., voice, sound, and/or digital commands) via an app and/or web interface and change the difficulty level or any other parameter in real time. For example, the serving machine 334 may be integrated into the system 300 also including the blocking machine 100 and the autoset machine 332 such that all of the machines communicate with one another, for example, to improve their synchronicity.
[0079] In some embodiments, the system 300 may also include a primary control unit and display that allows you to pair all of the devices to the court as well as any or all of the camera system. Some embodiments may support multiple accounts for athletes, coaches, trainers, parents, etc. Some embodiments may provide user session analysis and payment models.
[0080] In some embodiments, the image sensor 306 may be configured to read the ball (e.g., sports ball 308), players, net, boundaries of the court, understand the skills being performed by players, and/or predicted and/or actual outcomes of those performed skills. For example, the computing device 318, upon receiving images captured from image sensor 306, may be configured to rate and/or score each individual skill on a value scale and/or score actual points as if the athlete was playing against the system. For example, an athlete will now be able to pass a live serve from the serving machine 334 to a particular target, which may be rated on a value scale (which is similar to what is used in the sport now) from, e.g., 0-3, where 0 is an error and 3 is a perfect pass; a ball may then be set to the human player from the autoset machine 332 such that the human player may attempt to spike past one or more blockers 102 of the blocking machine 100. For example, if the spiker successfully attacks the ball into the opposing court or off of blocking machine 100, the system 300 may register a kill and/or may also automatically score the outcome as if the athlete was playing a game. For example, the system 300 may be able to detect and/or categorize all movements and/or send such data to an application (e.g., web application 500 described in greater detail below) that the player has on their phone. For example, such application may be logged into when the athlete enters the facility so the system 300 can continue gathering data and/or altering the difficulty level based at least on past performance, number of repetitions, and/or auctions taken for a particular skill. For example, the application can interface with other stakeholders, including the athlete's parent(s), their individual trainer(s), club(s), and/or school coach(es), and/or the stakeholders of the facility.
[0081] Some embodiments may include integration into a more comprehensive ecosystem where video can be used to provide real time and computerized feedback, e.g., by using pose estimation to recommend different form, timing, and/or other training guidance.
[0082] Some embodiments may further include more robust calibration routines, which may not be reliant on the reference fiducials 310 (e.g., April Tags).
[0083] Some embodiments may automatically detect a presence of a specific user and present specific content (e.g., audio (e.g., music) via a speaker) to such user, e.g., based at least on a user profile (e.g., of user-selected and/or computer-recommended music) associated with such user.
Logic Flow of the System
[0084] As exemplarily shown in the above figure, an exemplary logic flow diagram associated with some embodiments is shown; however, some embodiments may have any suitable logic flow.
[0085]
[0086] Furthermore, in embodiments, the logic flow further includes collecting or receiving information from one or more camera sensors 404. For example, in embodiments, the collecting or receiving information from one or more camera sensors 404 includes receiving images captured from the at least one image sensor 306.
[0087] In embodiments, the logic flow 400 further includes receiving or setting settings 406 of the blocking machine 100 or other aspects of system 300. For example, as described below, a user may utilize a web application for adjusting the speed of blocker 102, randomization of the blockers 102, and other aspects of the blocking machine 100.
[0088] At a next stage of the logic flow 400, sonar processing 408 can occur. In the sonar processing 408, the inputs 402 are received, filtered, and limits may be applied to the inputs 402.
[0089] At a next stage of the logic flow, ball image processing 410 can occur. In the ball image processing 410, the images from the collecting or receiving information from one or more camera sensors 404 stage of the logic flow can be analyzed, contextualized, or otherwise processed. For example, during back image processing 410, the position of the sports ball 308 in the field of play 101 can be determined, a trajectory of the sports ball 308 can be determined, and/or the end point of the path of travel of the sports ball 308 can be determined.
[0090] At a further stage of the logic flow 400, state processing 412 can occur. During state processing 412, system 300 can monitor for signals received from the ball image processing 410. Furthermore, during state processing 412, monitoring for a reset signal from one or more aspects of system 300 can also occur.
[0091] At a further stage of the logic flow 400, event handling 414 can occur. During event handling 414, the system 300 can evaluate the current state of the blocking machine 100 or other aspects of system 300, as well as evaluate any changes that occur. Furthermore, during event handling 414, the system 300 can calculate set points and/or calculate commands to achieve set points.
[0092] At a further stage of the logic flow 400, motor control 416 can occur. During motor control 416 commands for one or more motors can be determined based on, for example, determinations made during event handling 414.
[0093] At a final stage of logic flow 400, output 418 can occur. The output 418, can for example, result in a rotational or translational movement of one or more arms 302, translational movement of one or more blockers 102, among other actions described herein with respect to blocking machine 100 or system 300.
Web Application for Using the System
[0094]
[0095] For example, in embodiments, the speed setting 506 may be adjusted, adjusting the speed of the one or more blockers 102. In embodiments, the speed setting 506 may incorporate the use of a sliding scale, allowing the user to adjust the speed of the one or more blockers 102 from 0% (e.g., stopped) up to 100% (corresponding to a max speed that is predetermined). However, other user inputs for making adjustments may be utilized, including but not limited to turn knobs, drop down menus, or other increment adjustments.
[0096] In embodiments, the randomization setting 508 may be adjusted, adjusting the level of uncertainty in the movement of the one or more blockers 102. In embodiments, the randomization setting 508 may incorporate the use of a sliding scale, allowing the user to adjust the randomization of the one or more blockers 102 from 0% (e.g., no randomization) up to 100% (corresponding to a maximum level of randomization that is predetermined). However, other user inputs for making adjustments may be utilized, including but not limited to turn knobs, drop down menus, or other increment adjustments.
[0097] In embodiments, middle blocker enabled setting 510 may be used when a middle blocker 102 is being utilized and can provide uncertainty in whether the middle blocker moves or remains stationary for that attack. In embodiments, the middle blocker enabled setting 510 may incorporate the use of a sliding scale, allowing the user to adjust the randomization of movement for the middle blocker 102 from 0% (e.g., no randomization) up to 100% (corresponding to a maximum level of randomization that is predetermined). However, other user inputs for making adjustments may be utilized, including but not limited to turn knobs, drop down menus, or other increment adjustments
[0098] In embodiments, the interface 502 may further include a save button 512 or other mechanism for saving the received user input modifying the settings 504.
[0099] In further embodiments, the interface 502 may further provide additional settings 514 providing the user further granularity in modifying or selecting different settings of the machine 100. For example, the additional settings 514 may provide the user with a setting for adjusting the maximum distance of the randomization. Further, the additional settings may provide the user with a setting for adjusting the active hold time. However, it should be understood that the exemplary web application 500 may be utilized for adjusting any and all settings of the machine 100.
[0100] In further embodiments, the exemplary web application 500 may further provide a mechanism for allowing the user to control aspects, features, and/or operation of the machine 100 during use. For example, exemplary functions may be utilized when utilizing the web application 500 may be:
[0101] 1) User state may be checked. For example, the user (e.g., athlete) can have one of two states: ready and/or active. For example, the state may begin as ready and may advance to active when the ball (e.g., ball 136 or sports ball 308) is in play and traveling in a generally desired direction. For example, a switch on the control box 114 may determine the side of the field of play 101 that the blocking machine 100 is being used on and/or may specify which direction the ball should and/or is predicted to travel. For example, when the state advances to ready, some parameters for that attack may be saved, such as any or all of the following exemplary parameters: [0102] A) randomization, which may provides uncertainty in an outer blocker (e.g., blocker 102) position, may be determined. [0103] B) spacing, which may provide uncertainty in a middle blocker's (e.g., a first blocker 102) proximity to an outer blocker (e.g., a second blocker 102). [0104] C) middle blocker, which may provide uncertainty in whether the middle blocker (e.g., blocker 102) moves or remains stationary for that attack. [0105] D) Note that any or all of three exemplary parameters' range of uncertainty can be specified in the user web application interface.
[0106] For example, the state may return to ready when the ball is no longer in play and/or an adjustable hold time has elapsed.
[0107] 2) An event handler may be processed. For example, while the user state is ready, a recurring command every few seconds to send the blockers (e.g., blockers 102) to a prescribed resting position may be made. For example, when the user state is active, upon receiving any new data from the at least one image sensor 306, the event may be processed. For example, based at least on the parameters defined when advancing to the active state and/or ball trajectory data (e.g., most current ball trajectory data), a target position for each stepper may be defined. For example, when a new position is defined for either user state, any or all of the following exemplary operations may be performed: [0108] A) The soft limits may be checked, e.g., to ensure that the targets are within the bounds of the calibration. For example, if not in bounds, a soft limit may be set, e.g., to prevent overshooting. [0109] B) The motors (e.g., motor 304) may be commanded to travel to their previously defined target positions. For example, the motor speed may be set depending on the user state. [0110] C) Motor tuning may be performed. For example, to account for stepper motor torque decay at higher rotational speeds, acceleration may be reduced (e.g., linearly reduced) based at least on current speed. Acceleration may directly correlate to a force applied via the belt (e.g., belt 108), and therefore a torque applied on the motor.
Further, Additional, and/or Optional Features
[0111] In embodiments, asynchronous to the processes and/or operations above, any or all of the devices may receive data from the at least one image sensor 306 and/or may save such data and/or related parameters. For example, in the context of the blocking machine 100, receiving data may occur sporadically, intermittently, interspersedly, continuously, simultaneously, and/or concurrently with respect to any or all of the above processes and/or operations. For example, the at least one image sensor 306 (e.g., camera(s)) may send data to the blocking machine 100, and the blocking machine 100 may sporadically and/or constantly listen to data from such camera(s)). For example, the data messaging may occur according to a process priority call out and/or during data messaging time slots.
[0112] In some embodiments, the blocking machine 100 may be configured to replicate human-like movement, e.g., by including a swivel mechanism for each of one or more of the blocking arms (e.g., arms 120a, 120b). For example, a swing block in volleyball is a common technique used by blockers to jump higher and reach further over the net. Instead of facing their bodies or squaring themselves toward the net where they cannot use a large arm swing to gain height, a swing blocker turns perpendicular to the net, takes an approach using a large backward and forward swing of the arms, and then rapidly jumps off the ground, squaring themselves to the net in mid-air. Hence, the name swing block. The arms often travel in a rotating motion as they press over the net, often confusing the attacker as to where the blocker's arms may end up at the point of contact. For example, one or more of the blockers 102 of the blocking machine 100 may be configured to replicate the swing block may be timed to swing over the net 116 at a moment the user 134 (e.g., the spiker) contacts the sports ball 136 (e.g., the volleyball).
[0113] In some embodiments, the blocking machine 100 may include an LED light (e.g., having multiple colors (e.g., three colors)) attached to the top of the body of a blocker 102. For example, one of these lights may quickly flash on and off right before the a user 134 (e.g., a player) contacts the sports ball 136 (e.g., the volleyball). For example, upon landing, the user 134 (e.g., player) may tell the trainer what color light flashed. This is called a dual task in skill acquisition and is employed to add both difficulty and utility to the skill. The use of this particular dual task for an attacker is to increase their ability to see in their peripheral vision during attacking. As mentioned earlier, vision is one of the most important skills for a spiker in volleyball. It is built over years of time and tends to increase as the ability to properly time and contact a moving volleyball in midair begins to stabilize. This may allow for more brain processing power to be allotted to enhanced recognition of objects other than the sports ball 136, which in this case is the blockers 102 and their respective positions. For example, by creating the LED light detection task, the blocking machine 100 improves the vision of the spiker by forcing the spiker to attune their vision to what is often a lower aspect of their periphery where the above information can be found and thereby enhancing their vision and overall success. In embodiments, activation and/or control of the LED light 222 may be controlled through a LED controller 224 as part of the control board 208.
[0114] In some embodiments and for example, to create an atmosphere of fun and/or non-routine interaction, each of one or more of the blockers 102 may include at least one user-interface device (e.g., a display(s) (e.g., an LED display) and/or speaker(s)) to the front of said blocker 102 that can present sound and/or images to the athlete during training. For example, if the machine 100 (via the at least one court detection device 112) detects that the athlete successfully spiked the volleyball (e.g., sports ball 136) past the blocker 102 and into an opposing court, the user-interface device may present feedback in the form of a funny video, sound, and/or message. For example, the parameters of the feedback can be changed based at least on the athlete's age, skill level, and/or whether the athlete wants a more positive or patronizing opponent. For example, this may add another layer of competition, motivation, and/or enjoyment to training sessions, which may be vital for an athlete's continued interest, motivation, and/or growth.
[0115] In some embodiments, the blocking machine 100 may be customizable in terms of its width and/or the number of blockers 102 it includes. For example, to further simulate human position and/or movement, the track length (e.g., the length of lower track 104 and upper track 106) along the width of the blocking machine 100 could be extended, which may create more space between blockers 102, which may further add unpredictability to the positioning of the blockers 102 during the spike. For example, human blockers are often positioned strategically in areas where they can block hitters closer to their respective zones. As such, there is often a different amount of space in between the human blockers. These spaces usually are closed down by an adjacent human blocker if a solid block is to be formed. This is not always possible in reality, and consequently there are often holes or spaces that a spiker can attack through. By lengthening the track length, the blocking machine 100 may be configured to position blockers 102 in a more realistic manner, which may also create opportunities for these holes to open, further enhancing the realism of the activity. For example, the addition of additional blocker 102 to the blocking machine 100 may also be possible. For example, at any given time, there may be three blockers 102 at the net 116, which spans a distance of 30 feet. For example, adding an additional blocker 102 (e.g., a third blocker) may simulate game-like situations. For example, when a third blocker 102 is added, there may be a separate mode (activatable using the control box 114 and/or the web application 500) that the trainer(s) and/or athlete(s) can activate which may allow for the simulation of an in-game situation with blockers 102 moving and reacting to different attackers in multiple areas. For example, the at least one court detection device 112 may be able to identify and/or react to the ball 136 traveling in any direction and/or the system 300 can send the blockers 102 to the correct location. For example, this may be a close simulation to a real game situation.
[0116] In some embodiments, the blocking machine 100 may be configured to delay when the blockers 102 move, which may simulate higher level volleyball techniques. For example, when the system 300 recognizes a very high set, the system 300 may control the blockers 102 to wait in position instead of sending the blockers 102 right away, which is unrealistic. For example, the system 300 may be configured to delay the blockers 102 from moving until the very last second, and/or send the blockers 102 towards the hitter right at contact. For example, there may also be parameters and/or configurability to the system 300, such as for difficulty level, speed, spacing, and/or any other parameter helpful and/or necessary for individual user(s). In embodiments, these parameters/configurability/settings may be modified using the web application 500 as described above. For example, there may be vision and/or camera system and/or execution of algorithms that may allow for more robust ball detection and/or detection of an entire environment including, for example, the court boundary lines, net, antennas, and/or the actual athletes using the blocking machine 100.
[0117] Referring now to
[0118] A step 602 may include receiving, by at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318), at least two of captured images, wherein at least one of the at least one processor is communicatively coupled to the at least one memory (e.g., memory 314 of the system 300 and/or the memory 330 of the computing device 318), one, some, or all of the at least one processor configured to be communicatively coupled to one or more of at least one motor (e.g., motor 304) and one or more of at least one image sensor (e.g., image sensor 306), wherein each of the one or more of the at least one motor is configured to cause at least one of at least one translational motion movement or at least one rotational motion movement of one or more of at least one arm (e.g. arm 302), wherein each of the one or more of the at least one image sensor is configured to capture images of at least one reference fiducial (e.g., reference fiducial 310) and a sports ball (sports ball 308) in motion in a field of play as the captured images, wherein the at least one reference fiducial is positioned in the field of play (e.g. field of play 101) for a sport, each of the at least one reference fiducial having a predetermined position in the field of play.
[0119] A step 604 may include, for each of the at least two captured images, determining, by the at least one processor (e.g., the at least one processor of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318), a position of the sports ball (e.g., sports ball 308) at a given time in said captured image relative to the at least one reference fiducial (e.g., reference fiducial 310).
[0120] A step 606 may include, for each of at least one subset of the determined positions of the sports ball 308, determining, by the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318), a motion vector indicative of a motion profile of the sports ball (e.g., sports ball 308) between and/or among the determined positions of said subset of the determined positions, wherein said subset includes a first given determined position of the sports ball (e.g., sports ball 308) at a first given time and a second given determined position of the sports ball (e.g., sports ball 308) at a second given time, wherein said motion profile of the sports ball (e.g., sports ball 308) includes a determined velocity of the sports ball (e.g., sports ball 308) between and/or among the determined positions of said subset.
[0121] A step 608 may include, based at least on at least one of said one or more determined motion vectors, determining, by the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318), an approximate trajectory of the sports ball (e.g., sports ball 308) in the field of play (e.g., field of play 101).
[0122] A step 610 may include, based at least on the determined approximate trajectory of the sports ball, controlling, by the at least one processor (e.g., the at least one processor 312 of the system 300, the at least one processor 326 of the UI device 316, and/or the at least one processor 328 of the computing device 318), at least one of the at least one motors (e.g., motors 304) to cause at least one of one or more translational motion movements or one or more rotational motion movements of the one or more of the at least one arm (e.g., arm 302) so as to at least potentially block the sports ball (e.g., sports ball 308).
[0123] Further, the method 600 may include any of the operations disclosed throughout.
[0124] As used throughout and as would be appreciated by those skilled in the art, at least one non-transitory computer-readable medium may refer to as at least one non-transitory computer-readable medium (e.g., at least one computer-readable medium implemented as hardware; e.g., at least one non-transitory processor-readable medium, at least one memory (e.g., at least one nonvolatile memory, at least one volatile memory, or a combination thereof; e.g., at least one random-access memory, at least one flash memory, at least one read-only memory (ROM) (e.g., at least one electrically erasable programmable read-only memory (EEPROM)), at least one on-processor memory (e.g., at least one on-processor cache, at least one on-processor buffer, at least one on-processor flash memory, at least one on-processor EEPROM, or a combination thereof), or a combination thereof), at least one storage device (e.g., at least one hard-disk drive, at least one tape drive, at least one solid-state drive, at least one flash drive, at least one readable and/or writable disk of at least one optical drive configured to read from and/or write to the at least one readable and/or writable disk, or a combination thereof), or a combination thereof).
[0125] As used throughout, at least one means one or a plurality of; for example, at least one may comprise one, two, three, . . . , one hundred, or more. Similarly, as used throughout, one or more means one or a plurality of; for example, one or more may comprise one, two, three, . . . , one hundred, or more. Further, as used throughout, zero or more means zero, one, or a plurality of; for example, zero or more may comprise zero, one, two, three, . . . , one hundred, or more.
[0126] In the present disclosure, the methods, operations, and/or functionality disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods, operations, and/or functionality disclosed are examples of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the methods, operations, and/or functionality can be rearranged while remaining within the scope of the inventive concepts disclosed herein. The accompanying claims may present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented.
[0127] It is to be understood that embodiments of the methods according to the inventive concepts disclosed herein may include one or more of the steps described herein. Further, such steps may be carried out in any desired order and two or more of the steps may be carried out simultaneously with one another. Two or more of the steps disclosed herein may be combined in a single step, and in some embodiments, one or more of the steps may be carried out as two or more sub-steps. Further, other steps or sub-steps may be carried in addition to, or as substitutes to one or more of the steps disclosed herein.
[0128] From the above description, it is clear that the inventive concepts disclosed herein are well adapted to carry out the objects and to attain the advantages mentioned herein as well as those inherent in the inventive concepts disclosed herein. While presently preferred embodiments of the inventive concepts disclosed herein have been described for purposes of this disclosure, it will be understood that numerous changes may be made which will readily suggest themselves to those skilled in the art and which are accomplished within the broad scope and coverage of the inventive concepts disclosed and claimed herein.