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.
Legal claims defining the scope of protection, as filed with the USPTO.
. A system, comprising:
. The system of, wherein the sport is volleyball, wherein the sports ball is a volleyball, wherein the field of play includes a volleyball net.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, wherein the attributes of the at least one simulated human blocker are user-defined.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, 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.
. The system of, wherein each of the one or more of the at least one image sensor is positioned at a known position.
. A system, comprising:
. A method, comprising:
Complete technical specification and implementation details from the patent document.
The present application is related to and claims priority from: U.S. Application Ser. No. 63/573,171, titled SYSTEM, METHOD, AND MOTORIZED SPORTS BALL BLOCKING MACHINE FOR PREDICTING TRAJECTORY OF AND POTENTIALLY BLOCKING SPORTS BALL, filed Apr. 2, 2024. U.S. Application Ser. No. 63/573,171 is herein incorporated by reference in its entirety.
Volleyball is one of the fastest growing sports in the US, offering talented athletes a potential for free tuition, entry into elite universities, and even lucrative sponsorship deals as part of the name, image, likeness (NIL) landscape in college sports. At the youth level, competition is incredibly strong as athletes battle for the attention of college coaches in a vast field of potential candidates. As a result, thousands of athletes across the country engage in private or one on one training, often with experienced players or coaches, in an attempt to gain an edge over the competition.
While the above strategy does offer some benefits, the issue with this type of training scenario is the difficulty in recreating representative or realistic and game-like situations during a one-on-one lesson. This may be the most evident during a volleyball match when a player performs a ‘spike’, in which they try to strike a volleyball past one, two, or possibly three opponents or ‘blockers’ who are attempting to prevent the ball from crossing the net and onto the opponents' side of the court for a ‘kill’ or score. Blocking is highly variable, where in any given situation there could be multiple blockers as well as multiple ways a blocker(s) might position themselves, either directly in front of or just to the side of a spiker. They can also move their arms freely, sometimes reaching outside of their bodies, spreading both arms in a Y shape, pulling them down at the last second before a spiker contacts the volleyball, etc. Blockers, therefore, are a component of spiking training and provide an amount of unpredictability and variability that a skilled spiker should seek to respond, react, and adapt to. Furthermore, a spiker's ‘vision’, or ability to see the position and/or movement of blocker(s) in their periphery, is an aspect of the skill of spiking, and one aspect that cannot currently be trained for without human blockers. Generally, the more skilled a spiker's vision, the better ability they have to change direction at the last possible split second in response to an adjustment by the blocker.
Currently, in the majority of private training scenarios, however, replicating a live block is not possible. An athlete working on this particular skill will often spike numerous balls on an ‘open’ or ‘empty’ net with no opponents, while receiving feedback on their technique from their coach. On occasion, a trainer may try to replicate blockers by using makeshift barriers placed in a stationary position to the net. Unfortunately, this type of training is fairly ineffective, as stationary targets lack the necessary movement, positioning, and variability that humans exhibit. At present, there are no great solutions to this particular problem and as such, the value of a private lesson is diminished.
In some aspects, the techniques described herein relate to a system, including: 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.
In some aspects, the techniques described herein relate to a system, including: 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 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.
In some aspects, the techniques described herein relate to a method, including: 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 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 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 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.
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.
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.,,,). 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.
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).
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.
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.
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.
In some embodiments, the blocking machinelocated in a field of playmay 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 abovedepicts a captured image from the at least one image sensor (e.g., image sensoras described below) that shows two blockers(e.g., which may be jointly and/or independently operated) that each move (e.g., roll) horizontally along a lower guide trackand/or upperguide track and that may be driven by a toothed belt. Additionally,exemplarily shows two reference fiducialsand(e.g., April Tags, which are 2-dimensional barcodes), which may be used as known position references by the at least one court detection device(e.g., at least one image sensor (e.g., at least one camera)); Additionally,exemplarily shows a control boxon the left, just below the net. Further,exemplarily shows a manually operated hand crankon the left for vertical height control of the tracks,and blockers, as well as associated components; however, in other embodiments the vertical adjustment may be motorized and controlled by at least one processor based at least on an approximated trajectory and/or attributes of a simulated blocker.
In an exemplary embodiment, each blockermay have two carbon fiber armsandwrapped in a foam tube, though any suitable materials may be used. For example, each arm,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,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, the flexible arm,may provide a safer and more representative contact between the user athlete and the blocker. For example, each arm's extended length can be manually adjusted from the back of the blocker, e.g., while the machineis turned off; however, in other embodiments a processor may be configured to cause the length of arms,to be adjusted by controlling a motor to extend the length of each arm. For example, the angle of both arms,towards the netcan also be adjusted manually, e.g., between near vertical and about 45 degrees (off vertical and toward the net); however, in other embodiments, a processor may be configured to control such arm angle by controlling an associated motorthat causes a rotational movement of the arm,. As exemplarily shown in, the horizontal angle of the arms,(e.g. orientation of the arms left or right off vertical) may be fixed and non-adjustable; however, in other embodiments a processor may be configured to control such arm angle by controlling an associated motorthat causes a rotational movement of the arm,
In some embodiments, the blockersmay ride on at least one track (e.g., lower trackand upper track) using wheels(e.g., plastic wheels) and/or guides. For example, the blockersmaybe driven along the track (e.g., lower trackand/or upper track) by any suitable device, such as at least one motor and/or a belt (e.g., a toothed belt(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(e.g., a stepper motor (e.g., a NEMAstepper motor)) (as shown on the left on the left side of the machine) and/or by a pulley. For example, machinemay include a tensioning mechanism that may use a screw to pull the idler pulley back along a slot.
In some embodiments, the blocking machine's framemay include pipes, such as steel pipes (e.g., readily available, schedulesteel pipe), for accessibility and easy assembly. For example, the pipemay 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 frameis 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. For example, the custom steel parts may hold the two horizontal pipes that serve as the tracks for the blockers, may have motor mounts and/or idler pulley mounts, respectively, and/or may slide vertically to adjust for various netheights.
In some embodiments, a hand crank(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(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(e.g., a top of the blocker). When rotating the crank, the blockersand their tracks (e.g., lower trackand upper track) 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 trackand upper track) 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.
As further depicted in, the blocking machinecan be utilized by at least one userusing at least one sports ball. In embodiments, the at least one useris an athlete, such as a volleyball player, training to improve one or more aspects of their volleyball skills. The usercan practice using their sports ball, which may be a volleyball, in training against the one or more blockers. As described herein, the blocking machinesimulates human movement through movement of the one or more blockers, thereby providing a dynamic training effect to the user.
For further illustrative purposes,depicts a later time of the scenario presented in. As described herein, inventive concepts are directed to a blocking machinethat simulates human movement based upon determined positions of the userand the sports ball. For example, as depicted in, upon detection of the positioning of the userand/or the sports ball, one or more of the blockersmay undergo a translational movement, moving the one or more blockersfrom a first position to a second position. Through such translational movement, blockersmay simulate a human blocker moving into a blocking position. As further described herein, the blocking machinealso simulates human movement through the rotational movement of arms,. For example, as depicted in, upon detection of the positioning of the userand/or the sports ballone or more of the arms,of one or more of the blockersmay undergo a rotational movement. Through such rotational movement, the arms,may simulate a human blocker using their arms to block a spike.
In some embodiments, a control boxmay house and/or protects some or all the electronics of the blocking machine. With respect to, in some embodiments, user interface (UI) devices may reside outside of such control box. For example, the power sourcemay be 110 volts or 220 volts (or lower or higher) to provide appropriate voltage to the stepper motors (e.g., motorof the blockers and/or motor associated with the belt), which, may be generated using a 220-volt transformer box as opposed to split phase US 220 volt power. In some embodiments, a power switchon the outside of the control boxmay determine if this power proceeds to the motor drivers and low voltage control board. In some embodiments, a control switch and/or an emergency stop switchmay also be positioned on the outside of the control boxand may be wired directly to the control board for logic control. In some embodiments, motor drivers(e.g., supplied by motor manufacturer) may be connected to any suitable motors(e.g., two three-phase NEMAstepper motors) via wire (e.g., shielded wire) which drive the pulleys. In some embodiments, three limit switch signal wiresmay be routed to the beltswhere such wires trigger the limits for calibration purposes. In some embodiments, each switch may reside in proximity to (e.g., above) the beltwhere an adjustable block attached to the belt triggers the switch at a specific location. In some embodiments, a signal wire may be routed to a Red, Green, Blue (RGB) light emitting diode (LED)mounted to a visible point on the frameto display helpful visual indicators of the status of the machineto a user(s) (e.g., athlete and/or trainer). The LEDmay be controlled by an LED controller. Some embodiments may also include a colling fan (not shown).
As shown in, in some embodiments, the control boxmay contain various electronic components and/or headers for wire connections. In some embodiments, the control boxmay include and/or use at least one controller(e.g., at least one microcontroller unit (e.g., a wired and/or wireless esp32 device)) for some or all logic control. For example, code may be written using C and Arduino, though any suitable computer programming language or combination of programming languages may be used. Additionally, any suitable library or combination of libraries may be used. In some embodiments, such code may perform any suitable operations and/or functionality, such as any or all of the following:
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(e.g., the esp32 device):
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 blockeris 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.
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, a second to detect a proximity of two blockerswith 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.
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, so that when triggered, the driversmay entirely disengage the motors for safety purposes.
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. 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 blockermay 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.
Calibration may be checked. For example, if one or more of the blockersare uncalibrated, a calibration routine may be performed in sequence.
Referring now to, an exemplary embodiment of a system architecture according to the inventive concepts disclosed herein is depicted. In some embodiments, the system may include the blocking machineand/or one or more other machines configured to simulate players and/or tasks within a volleyball, for example to better facilitate player development. For example, the other machine(s) may be communicatively coupled and configured to communicate with the blocking machine, such as through wired and/or wireless network and/or computer interface.
In some embodiments, such as shown in, the systemmay include at least one arm(e.g., arms,), at least one motor(e.g., motor), at least one image sensor, (e.g., the at least one court detection device), at least one sports ball(e.g., sports ball), at least one reference fiducial(e.g., reference fiducial,), at least one processor, at least one memory, at least one user interface (UI) device, and/or at least one computing device, some or all of which may be communicatively coupled at any given time. In some embodiments, the UI devicemay include at least one display, at least one microphone, at least one at least one keyboard (which may be incorporated into the display in embodiments in which displayis a touch screen or which may be a standalone unit), at least one speaker, and/or at least one processor, some or all of which may be communicatively and/or optically coupled at any given time. In some embodiments, the computing devicemay include at least one processorand at least one memory, some or all of which may be communicatively coupled at any given time.
In some embodiments, at least one reference fiducialmay be positioned in a field of play (e.g., field of play) for a sport, each of the at least one reference fiducialhaving a predetermined position in the field of play.
In some embodiments, each of one or more of the at least one motormay 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.
In some embodiments, each of one or more of the at least one image sensormay be configured to capture images of the at least one reference fiducialand a sports ballin motion in the field of play.
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 motorand the one or more of the at least one image sensor. For example, the at least one processor (e.g., the at least one processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) 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 processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) 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.
In some embodiments, one or more of the at least one processor (e.g., the at least one processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) 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; for each of the at least two captured images, determine a position of the sports ballat 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 ballbetween 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 ballat a first given time and a second given determined position of the sports ballat a second given time, wherein said motion profile of the sports ballincludes a determined velocity of the sports ballbetween 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 ballin the field of play; and/or based at least on the determined approximate trajectory of the sports ball, control at least one of the at least one motorsto 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 armso as to at least potentially block the sports ball.
In some embodiments, the sport is volleyball, the sports ballis a volleyball, and the field of playincludes 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 processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) is further configured to: record data associated with a user'sinteraction with a sports ball(e.g., a spiker that spiked balls) in the field of playduring 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.
In some embodiments, the at least one armis at least two arms, and the one or more of the at least one armis two or more of the at least two arms (e.g., arms,).
In some embodiments, the at least one image sensoris at least two image sensors, and the one or more of the at least one image sensoris two or more of the at least two image sensors. In further embodiments, the at least one image sensorcomprises a plurality of image sensors greater than two image sensors.
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.
In some embodiments, the at least one processor (e.g., the at least one processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) 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 motorsto cause the one or more translational motion movements of the one or more of the at least one armso as to at least potentially block the sports ball, wherein the one or more translational motion movements comprises at least one vertical movement.
In some embodiments, the at least one processor (e.g., the at least one processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) 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 motorsto cause the one or more translational motion movements of the one or more of the at least one armso 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.
In some embodiments, the at least one processor (e.g., the at least one processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) 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 motorsto cause the one or more translational motion movements of the one or more of the at least one armso 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.
In some embodiments, the at least one processor (e.g., the at least one processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) 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 motorsto 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 armso as to at least potentially block the sports ball.
In some embodiments, the at least one processor (e.g., the at least one processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) is further configured to: obtain simulated blocker dataassociated with attributes of at least one simulated human blocker; and based at least on the determined approximate trajectory of the sports balland the simulated blocker data, control at least one of the at least one motorsto 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. In some embodiments, the attributes of the simulated human blocker datainclude 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 dataare user-defined. In some embodiments, the simulated blocker datais 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 datacorresponds to at least two human blockers of a team, more than one blockersmay be implemented by machineand with each of the blockerscorresponding 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 processorof the system, the at least one processorof the UI device, and/or the at least one processorof the computing device) 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.
In some embodiments, the at least one reference fiducialincludes 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, wherein each of the at least one feature of the field of playor the at least one feature applied to the field of playhas the predetermined position. In some embodiments, each of the one or more of the at least one image sensoris positioned at a known position.
In some embodiments, court detection is performed by use of the at least one image sensor. For example, the at least one image sensormay be a camera positioned behind the athlete, e.g., framing the full width of the blocking machine(as exemplary depicted in). The camera may be positioned in the center at about 8 feet of height. In an exemplary embodiment, for optimal distortion reduction, a global shutter camera sensor was selected. A common-off-the-shelf (COTS) OpenMV camera may be used, which may include a microprocessor that is tailored for machine vision applications. For example, the camera may be enclosed in a rigid customD-printed resin housing capable of withstanding an impact from a fast-moving volleyball. Such camera can be mounted to a wall or suspended from a ceiling joist. The camera may also include a small liquid crystal display (LCD) display that can be oriented to at least partially point downward so the athlete or other users can check and/or ensure that the court is in frame and/or troubleshoot any issues in real time.
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 sensorscans the frame for reference fiducials(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 machinecomprises two or more reference fiducialspositioned just above the net, with one reference fiducial located on each side of a blocker. Furthermore, the at least one image sensorcan 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 sensorto calibrate its perception of a sports ballwith respect to the height of the blocking machineand/or the position of each blocker. For example, if the at least one image sensoris not positioned properly to capture both reference fiducialsproperly, a message may be displayed to a user via the UI device, so that the user can troubleshoot.
Once calibrated, the at least one image sensormay 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) and other components of a blockerthat extend above the net line should be expected to perceived as larger than a sports ball, and therefore omitted. In some embodiments, once a sports ballhas 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.
In embodiments, trajectory of the sports ballmay be tracked by iteratively determining and/or detecting a centroid of the detected sports ballas pixel within each frame of an image stream and determining a change in horizontal and/or vertical position of the sports ballbetween 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, which is reasonably accurately and precisely known based on the embodiments of the sports ball, may be used to approximate the distance per pixel across a plane at which the ballis moving along. For example, it can be assumed, for calculation purposes, that the ballmoves on a plane parallel to the netso as to achieve a level of accuracy sufficient for most applications.
In some embodiments, for each new frame, the current and previous frame may be used to determine: 1) the position for which the ballis 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, 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 ballwill cross the net line. For example, based at least on the horizontal position of the at least one reference fiducial (e.g., reference fiducial,) 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) and 100% is at the right reference fiducial (e.g., reference fiducial). This may be a value for which the blocking machinecan 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 ballmay also be determined, which may provide context about whether a set of the sports ballis a final volley towards the athlete.
Unknown
October 2, 2025
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.