Adaptive projectile launching systems and methods

The adaptive projectile launching system uses camera-tracked adjustments to enhance accuracy and realism in projectile targeting, addressing manual adjustment challenges and simulating opponent movements.

WO2026072027A1PCT designated stage Publication Date: 2026-04-02WALTAIR ROBOTICS INC
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-24
Publication Date
2026-04-02

Smart Images

  • Figure US2024048059_02042026_PF_FP_ABST
    Figure US2024048059_02042026_PF_FP_ABST
Patent Text Reader

Abstract

Systems and methods for adaptively launching projectiles to a user includes multiple projectile-launching devices, each comprising a launching mechanism, a training mechanism to orient the launching mechanism, and a spin-generating mechanism to add spin to the projectile during launch. The system collaborates to launch the projectile towards a desired location with a specific trajectory and spin. A camera captures the actual landing location and trajectory of the projectile, with a processor analyzing this data to adjust the desired parameters. The processor then selects a projectile-launching device based on the updated parameters and instructs it to launch a second projectile towards the desired location with the desired trajectory and spin.
Need to check novelty before this filing date? Find Prior Art

Description

ADAPTIVE PROJECTILE LAUNCHING SYSTEMS AND METHODSBACKGROUND

[0001] Previous approaches to launching projectiles to a user have typically involved manual adjustment, placement, and operation of launching mechanisms to achieve a desired trajectory and spin. These manual adjustments often require significant skill and experience on the part of the user to consistently achieve accurate results. Some existing systems have attempted to address the challenges associated with manual adjustments by incorporating training mechanisms that allow users to set a predetermined orientation for the launching mechanism.

[0002] Traditional projectile throwing machines have very limited ability for variations. For example, traditional projectile throwing machines can only throw the ball to a fixed position at a time requiring the user or operator to change the settings to target different positions and quite often involve a trial-and-error method to be able to target a specific position.

[0003] Other traditional projectile throwing machines included set programs that assisted the projectile throwing machines to randomly propel a ball in different directions. However, as noted earlier, these traditional ball throwing machines again required a user to change the settings to target a different position manually and required trial and error techniques to target a specific position.SUMMARY

[0004] This Summary is intended to introduce, in an abbreviated form, various topics to be elaborated upon below in the Detailed Description. This Summary is not intended to identify key or essential aspects of the claimed invention. This Summary is similarly not intended for use as an aid in determining the scope of the claims.

[0005] In some aspects, the techniques described herein relate to a system for adaptively launching a projectile to a user, including: a plurality of projectile-launching devices, each projectile-launching device including: a launching mechanism configured to launch the projectile; a training mechanism configured to train the launching mechanism to a trained orientation; and a spin-generating mechanism configured to impart a projectile spin to the projectile while the projectile is launched; wherein the launching mechanism, the training mechanism, and the spin-generating mechanism are configured to cooperate to launch the projectile toward a desired landing location along a desired trajectory with a desired spin; a camera configured to image an actual landing location and an actual trajectory of the projectile; and aprocessor in electronic communication with the camera and the projectile-launching devices, the processor configured to: determine the desired landing location, the desired trajectory, and the desired spin; select one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; instruct the selected projectile-launching device to launch the projectile toward the desired landing location along the desired trajectory with the desired spin; receive, from the camera, an actual landing location of the projectile and an actual trajectory of the projectile; redetermine the desired landing location, the desired trajectory, and the desired spin based on the actual landing location and the actual trajectory; select one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; and instruct the selected projectile-launching device to launch a second projectile toward the desired landing location along the desired trajectory with the desired spin.

[0006] In some aspects, the techniques described herein relate to a method for adaptively launching a projectile to a user, including: providing: a plurality of projectilelaunching devices, each projectile-launching device including: a launching mechanism configured to launch the projectile; a training mechanism configured to train the launching mechanism to a trained orientation; and a spin-generating mechanism configured to impart a projectile spin to the projectile while the projectile is launched; wherein the launching mechanism, the training mechanism, and the spin-generating mechanism are configured to cooperate to launch the projectile to a desired landing location along a desired trajectory with a desired spin; a camera configured to image an actual landing location and an actual trajectory of the projectile; and a processor in electronic communication with the camera and the projectile-launching devices; determining, using the processor, the desired landing location, the desired trajectory, and the desired spin; selecting, using the processor, one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; instructing, using the processor, the selected projectile-launching device to launch the projectile toward the desired landing location along the desired trajectory with the desired spin; receiving, at the processor, from the camera, an actual landing location of the projectile and an actual trajectory of the projectile; redetermining, using the processor, the desired landing location, the desired trajectory, and the desired spin based on the actual landing location and the actual trajectory; selecting, using the processor, one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; and instructing, using the processor, the selectedprojectile-launching device to launch a second projectile toward the desired landing location along the desired trajectory with the desired spin.BRIEF DESCRIPTION OF THE FIGURES

[0007] For a fuller understanding of the nature and objects of the disclosure, reference should be made to the following detailed description taken in conjunction with the accompanying drawings, in which:

[0008] FIG. 1 A illustrates an example implementation of a system for adaptively launching projectiles, according to one or more implementations herein.

[0009] FIG. 1B illustrates a further illustration of the system of FIG. 1A in use during a launched shot, according to one or more implementations herein.

[0010] FIG. 1C illustrates a further illustration of the system of FIG. 1A in use during a returned shot, according to one or more implementations herein.

[0011] FIG. 2 Illustrates an operational environment of a system for adaptively launching a projectile to a user, according to one or more of the implementations herein.

[0012] FIG. 3 is a diagram of example components of a device, according to one or more implementations herein.

[0013] FIG. 4 is a diagram of example components of a device, according to one or more implementations herein.

[0014] FIG. 5 is a flowchart illustrating an example method, according to one or more implementations herein.

[0015] FIG. 6 is a flowchart illustrating an example method, according to one or more implementations herein.

[0016] FIG. 7 is a flowchart illustrating an example method, according to one or more implementations herein.

[0017] FIG. 8 is a flowchart illustrating an example method, according to one or more implementations herein.

[0018] FIG. 9 is a flowchart illustrating an example method, according to one or more implementations herein.DETAILED DESCRIPTION

[0019] It is to be understood that the invention is not limited in its application to the details of construction and the arrangements of components and / or method steps set forthin the following description or illustrated in the drawings, and phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The invention is capable of other embodiments and of being practiced or being carried out in various ways. Accordingly, other aspects, advantages, and modifications will be apparent to those skilled in the art to which the invention pertains, and these aspects and modifications are within the scope of the invention, which is limited only by the appended claims.

[0020] Ball sport players conventionally lack the ability to practice or play against a system capable of simulating a real opponent’s capabilities. This problem exists because conventional automated ball sport systems are manually placed and trained, unable to adapt to conditions and play, and unable to simulate movement of an opponent.

[0021] Disclosed herein are systems and methods for adaptively launching projectiles. Such systems and methods are technically advantageous at least because they enable increased configurability, the ability to correct for conditions and ball handling, as well as realistic simulation of an opponent using mechanical projectilelaunching systems.

[0022] An example implementation may include an adaptive system usable by a tennis player for play or practice. Such an example system may employ an array of ball launchers controlled by a controller that receives input from a camera. The camera may capture the trajectory and landing location of the ball and compare it against the desired trajectory and landing location. The camera may also image the player and the return trajectory and landing location of the ball. A difference between the actual and desired trajectories and landing locations may be attributable to varying causes, including environmental conditions (e.g., wind) and characteristics of the launcher. Based on this comparison and the return trajectory and landing location, if any, the controller may select a launcher for the next ball launch and adapt parameters of the launcher to environmental conditions, characteristics of the player, and characteristics of the player’s handling of the ball.

[0023] FIG. 1A illustrates an example implementation of a system 100 for adaptively launching projectiles, according to one or more implementations herein. The system 100 may provide for play area 102 upon which a player 104 (e.g., a user) may play or practice a sport. While the play area 102 is illustrated in FIG. 1A as a tennis court and the player 104 is illustrated in FIG. 1A as a tennis player, it will be understood that the play area 102 may include various play areas, including without limitation, an athletic playing area, for example, a tennis court, a baseball diamond, a cricketpitch, a hockey rink, a football field, a soccer field, or another type of field, court, arena, pitch, or rink and that the player 104 may include any type and number of players or users of such play areas.

[0024] A projectile launching device array 110, which may include one or more projectile launching devices, may be disposed proximate the play area 102, partially within the play area 102, or fully within the play area 102. The projectile launching devices of the projectile launching device array 110 may be in operative electronic communication, via a wired or wireless connection, with a controller 130. The controller 130 may be configured to operate the projectile launching devices selectively.

[0025] The projectile launching devices may include launching mechanisms, training mechanisms, and spin-generating mechanisms. The controller 130 may be configured to control the launching mechanisms, the training mechanisms, and the spin-generating mechanisms of the projectile launching devices to launch a projectile along a desired trajectory and with a desired spin toward a desired landing location.

[0026] The system 100 may further include a camera 150, which may be in operative electronic communication with the controller 130. The camera 150 may include one or more of various types of camera sensors (e.g., visible light sensors or light detection and ranging sensors). The camera 150 may provide sensor data to the controller 130 so that the controller can determine data from the sensor data one or more of an actual trajectory, and actual landing location, a return landing location (if the player 104 handles a launched projectile), and a return trajectory to the controller 130. The controller 130 may further determine other data from the sensor data, for example, a posture of the user. This data may be usable by the controller to adapt operation of the projectile launching device array 110.

[0027] FIG. 1B illustrates a further illustration of the system 100 of FIG. 1A in use during a launched shot, according to one or more implementations herein. The controller 130 may determine a desired landing location 108a and a desired trajectory 108b. The controller may select one of the projectile launching devices 110a, 110b, 110c, 110d, 110e, or 11 Of of the projectile launching device array 110. In this example, the projectile launching device 110d may be selected by the controller and instructed to launch a projectile 108 according to launch characteristics, for example, to the desired landing location 108a along the desired trajectory 108b. Following launch, the projectile 108 may travel to an actual landing location 108calong an actual trajectory 108d. The camera 150 may image (e.g., at a frame rate) the actual landing location 108c and / or the actual trajectory 108d of the projectile 108, and this sensed data may be received at the controller 130.

[0028] FIG. 1C illustrates a further illustration of the system 100 of FIG. 1A in use during a returned shot, according to one or more implementations herein. In FIG. 1C, the example handling action by the player 104 may be a successful return shot. It will be understood that the player 104 may perform other handling actions, including a failed return shot. Following the handling action by the player 104, the return shot may include the projectile 108 traveling to a return landing location 108e along a return trajectory 108f. The camera 150 may image the return landing location 108e and / or the return trajectory 108f of the projectile 108, and this sensed data may be received at the controller 130. The controller 130 may then utilize the desired landing location 108a, the desired trajectory 108b, the actual landing location 108c, and / or the actual trajectory 108d and, if available, the return landing location 108e and the return trajectory 108f to redetermine (e.g., recompute, change, replace) the desired landing location 108a and the desired trajectory 108b for a subsequent launch (e.g., of a second or subsequent projectile). It will be understood that where there is not a successful return shot (e.g., the player 104 hits the projectile into, for example, a barrier 106 such as a net, hits the projectile out of play, or misses on an attempt to hit the projectile), the redetermination may be performed without the return landing location 108e and the return trajectory 108f. In the example illustrated in FIG. 1C, the controller 130 may select the projectile launching device 110f to launch the subsequent projectile to simulate the location (e.g., exact or approximate location) from which an opposing player (e.g., a human opponent) could return the subsequent volley. The interval between launches may be changed to reflect either or both the timing of the volley based on the tracked physical characteristics of the projectile’s trajectory and landing or a setting selected by the user. It will be further understood that the controller 130 may instruct a subsequent launch prior to the landing of the projectile 108 on a return shot.

[0029] The launch-and-handle process illustrated in FIG. 1B and FIG. 1C may repeat until stopped or the projectile launching devices, or, for example, a projectile launching device can access no further projectiles to launch.

[0030] The controller 130 may be further configured with a virtual opponent profile, for example, selected from an onboard memory or transferred to the controller 130 from a remote device over a network connection. The virtual opponent profile may include predetermined weights, modifiers, limitations, or preferences imposed onthe determination and / or redetermination of the launch characteristics. Such a virtual opponent profile may be characterized by a difficulty-level, a practice mode, a play mode, and / or characteristics of a selected real player.

[0031] The controller 130 may be further configured to detect from the image(s) received from the camera 150 a height and location of the player 104. The controller 130 may be further configured to receive, for example, from a wearable health monitoring device, a body temperature, a heart rate, or a blood pressure of the player 104. The height, location, body temperature, heart rate, and / or blood pressure, according to availability, may be further used by the controller to determine and / or redetermine the launch characteristics of the projectile and / or the skill characteristic.

[0032] The controller 130 may be further configured to determine feedback to deliver to the player 104 based on the posture of the player 104 determined using image processing on the image(s) received from the camera 150. Such feedback may include, for example, one or more skill characteristics or injury prevention feedback. For example, the controller may determine based on the posture of the player 104 through the player 104’s return shot that the player may be susceptible to a particular injury and recommend a correction for the player 104 or that the player has a given skill characteristic (e.g., projectile strike speed or imparted spin) and provide the skill characteristic to the player.

[0033] In some implementations, the controller 130 may process images received from the camera 150 for predetermined postures or gestures, which may be used to control the system 100. For example, the controller 130 may detect that the player 104 has fallen or produced a “pause” or “stop” gesture and thus pause the launching of the projectiles. Likewise, the controller 130 may detect that the player 104 has produced a “start” gesture and begin or resume the launching of the projectiles, or that the player 104 has produced one or more “setting” gestures to adjust one or more settings of the controller 130.

[0034] FIG. 2 Illustrates an operational environment 200 of a system for adaptively launching a projectile to a user, according to one or more of the implementations herein. As illustrated in FIG. 2, the operational environment 200 may include actors, including a projectile launching device array 210, in some implementations a network 220, a controller 230 having at least a processor 232 and in some implementations an electronic storage 234, in some implementations a remote device 240, and a camera 250.

[0035] The projectile launching device array 210 may include one or more projectile launching devices. Each projectile launching device may include a launching mechanism, a training mechanism, and a spin-generating mechanism.

[0036] The launching mechanism may be configured to launch a projectile at a desired velocity. The launching mechanism may include, for example, two high-friction wheels positioned opposite each other or at angles relative to each other as measured from the axis of the projectile path. When a projectile is fed into the launching mechanism, it may be gripped by these wheels, which may impart a velocity to the projectile, thus launching the projectile. Other forms of projectile launching devices may include thrower (e.g., catapult) style projectile launching devices. Each launching mechanism may be fed with projectiles conveyed from a projectile hopper of the projectile launching device. The configured launch velocity of the projectile launching devices may vary based on location or other characteristics.

[0037] The training mechanism may be configured to train the launching mechanism to a trained orientation. In some implementations, the training mechanism may comprise, for example, a gimbal upon which the launching mechanism may be mounted. The gimbal may in some implementations be electronically controlled by motors of the training mechanism to train the launching mechanism. In other implementations, the training mechanism may include, for example, motors and control systems operable to modify the launching mechanism to impart varying launch directions on the projectile. For example, the training mechanism may be configured to operate on wheels of the launching mechanism to cause the wheels to rotate at different speeds, adjust angles relative to each other, and / or adjust longitudinal position relative to each other (e.g., offset the wheel such that a projectile contacts one wheel before the other).

[0038] The spin-generating mechanism may be configured to impart a projectile spin to the projectile while the projectile is launched. In some implementations, the spingenerating mechanism may include motors and control systems operable to modify the launching mechanism to impart varying spins on the projectile. The launching mechanism may include, for example, two high-friction wheels positioned opposite each other or at angles relative to each other as measured from the axis of the projectile path, and which when controlled by the spin-generating mechanism can rotate at different speeds or adjust angles relative to each other. By varying the speed of each wheel, the projectile launching mechanism can impart different types of spin on the projectile. For example, if a top wheel rotates faster than a bottomwheel, the projectile will have topspin. Conversely, if a bottom wheel rotates faster, the projectile will have a backspin. The angle of the wheels can also be adjusted to control the direction and amount of spin, allowing for precise control over the projectile’s trajectory and behavior upon landing. The launching system as controllable by the spin-generating mechanism may thus provide for simulating realistic playing conditions and helping players practice returning various types of spins.

[0039] The launching mechanism, the training mechanism, and the spin-generating mechanism may accordingly be used to launch the projectile toward a desired landing location along a desired trajectory with a desired spin.

[0040] The network 220 may include any variety of devices configured to enable a device to communicate with other devices, such as via a wired connection and / or a wireless connection, for example, via the internet and / or other networks using, for example, TCP / IP or cellular hardware enabling wired or wireless (e.g., cellular, 2G, 3G, 4G, 4G LTE, 5G, or wireless local area network) communication. For example, the network 220 may include, for example, a receiver, a transmitter, a transceiver, a modem, a network interface card, and / or an antenna.

[0041] The controller 230 may include any variety of devices configurable to perform the implementations and methods disclosed herein and interface with the projectile launching device array 210 via the network 220, including, for example, a server, a desktop computer, a laptop computer, a handheld computer, a tablet computing platform, a Netbook, a Smartphone, a gaming console, and / or other computing platforms. It will be understood that one or more controller 230 may be disposed on one or more of the projectile-launching devices or separate from the projectile launching devices. The controller 230 may be configured to communicate with one or more of the projectile launching devices of the projectile launching device array 210 via a wireless network and / or the internet. For example, each projectile launching device may be configurable to connect to a wireless network and / or the internet. Each projectile launching device may operate as an internet-of-things (loT) device.

[0042] The controller 230 may include the processor 232. The processor 232 may include, for example, one or more processor(s) configured to execute machine-readable instructions for implementing all or some of the implementations herein. The processor 232 may be configured to access the electronic storage 234 to retrieve and / or write electronic data from and to the electronic storage 234.

[0043] The controller 230 may include the electronic storage 234. The electronic storage 234 may be configured to electronically store data (e.g., host) corresponding to one or more databases or other forms of data storage for use in implementations herein. The electronic storage 234 may be accessible by the processor 232.

[0044] The remote device 240 may include any variety of devices a user may use to interface with the controller 230 via the network 220, including, for example, a server, a desktop computer, a laptop computer, a handheld computer, a tablet computing platform, a Netbook, a Smartphone, a gaming console, and / or other computing platforms.

[0045] One or more cameras 250, which may hereinafter be referred to as the camera 250, may be directly or indirectly in operative electronic communication with the controller 230 and / or the processor 232. The camera 250 may be configured to image an actual landing location and an actual trajectory of the projectile. It will be understood that the camera(s) 250 may be disposed on one or more of the projectile-launching devices or separate from the projectile launching devices. The camera 250 may include a single camera, multiple cameras, or a camera array. The camera 250 may operate by electronically capturing reflected light from objects and assigning quantitative values to one or more aspects of the reflected light, such as pixels. The camera 250 may include one or more sensors having one or more filters associated therewith. The sensors of the camera 250 may capture information regarding any number of pixels of the reflected light corresponding to one or more base colors (e.g., red, green or blue) expressed in the reflected light, and store values associated with the pixel colors as image data and / or transmit image data to another device for further analysis or reproduction. The camera may also be configured to determine depth information, such as the distance between the camera and an object in the field of view of the camera. Depth information may be included in the image data generated by the camera. The camera 250 may capture light in various spectra (e.g., visible light spectrum, infrared spectrum, microwave spectrum). The camera 250 may be implemented in some implementations of the system as a light detection and ranging (LiDAR) sensing system.

[0046] The camera 250 may be arranged to capture sensor data from the field of the projectile launching device array 210 and / or the expected range of landing locations of projectiles launched by the projectile launching device array 210. In some implementations, this field and range may include an athletic playing area, for example, a tennis court, a baseball diamond, a cricket pitch, a hockey rink, a football field, a soccer field, or another type of field, court, arena, pitch, or rink. Assuch, the camera 250 may be capable of capturing either or both of the potential trajectories and landing locations of projectiles after launch from the projectile launching device array 210 and potential return trajectories and return landing locations of projectiles after returned toward the projectile launching device array 210, for example, after the projectile is struck by a user or player or an implement (e.g., a racket, bat, stick) operated by a user or player.

[0047] The camera 250 may in some implementations image the user (e.g., a player). The processor 232 may use image processing to dynamically detect a location of the user, a height of the user, a posture of the user (e.g., a readiness-to-play posture or an attention posture), a gesture, and / or a handling action (e.g., a successful return shot or a failed return shot) by the user.

[0048] In some implementations, the system may include a user health tracking device in electronic communication with the processor and configured to dynamically detect health information comprising a body temperature of the user, a heart rate of the user, and a blood pressure of the user. The user health tracking device may include, for example, a wristband, a smartwatch, a chest-strap monitor, or another user health tracking device. The user health tracking device may be in operable electronic communication (e.g., wired, or wireless) with the controller 230 and / or the processor 232. The processor 232 may further receive the health information from the user health tracking device.

[0049] The processor 232 of the controller may be configured to operate the projectile launching device array 210. The processor 232 may determine a desired landing location, a desired trajectory, and a desired spin.

[0050] The processor 232 may select one of the projectile-launching devices of the projectile launching device array 210 based on the desired landing location, the desired trajectory, and the desired spin.

[0051] The processor 232 may instruct the selected projectile-launching device to launch the projectile toward the desired landing location along the desired trajectory with the desired spin. In some implementations, the processor 232 may determine and await a dwell time prior to executing this instruction. The dwell time may be determined based on, for example, a posture of the user or a handling action.

[0052] The processor 232 may receive from the camera 250 an actual landing location of the projectile and an actual trajectory of the projectile.

[0053] The processor 232 may redetermine (e.g., adjust, change, replace, recompute) the desired landing location, the desired trajectory, and the desired spin based on the actual landing location and the actual trajectory. This redetermination may further account for a return trajectory, a return landing location, health information received by the processor from the user health tracking system, a location of the user, a height of the user, a posture of the user, and / or a handling action of the user.

[0054] The processor 232 may select one of the projectile-launching devices (e.g., the same projectile-launching device or a different projectile-launching device) of the projectile launching device array 210 based on the desired landing location, the desired trajectory, and the desired spin.

[0055] The processor 232 may instruct the selected projectile-launching device to launch a second projectile toward the desired landing location along the desired trajectory with the desired spin.

[0056] The processor 232 may further determine a skill characteristic of the user based on the return landing location and the return trajectory. This skill characteristic may be transmitted by the processor 232 to the remote device 240 via the network 220. The skill characteristic may, for example, indicate quantitative or qualitative characteristics of the player with respect to the intended actions. For example, a skill characteristic may include a speed, response time, handling ability, handling probability, relative skill level, intensity, effort, swing speed, ability to generate spin, motion attributes, and others appropriate to the type of player and what activity the player is simulating using the system.

[0057] The processor 232 may further provide injury prevention feedback to the user, for example, to the remote device 240 to the network 220. For example, the injury prevention feedback may include an indication of a motion performed by the player that has been predetermined to create a susceptibility to injury (e.g., if the player swings the implement in a predetermined motion, the processor 232 may provide feedback indicating that the way the player is swinging the implement makes the player susceptible to an injury).

[0058] The processor 232 may further receive from the electronic storage 234 and / or the remote device 240 via the network 220, operation instructions. For example, the remote device (e.g., a smartphone running an application) may be used to start, stop, pause, resume, adjust, or configure the controller 230 and / or the projectile launching device array 210.

[0059] The processor 232 may further receive from the electronic storage 234 and / or the remote device 240 via the network 220, a virtual opponent profile. The desired landing location, the desired trajectory, and the desired spin may be determined and / or redetermined further based on the virtual opponent profile.

[0060] The processor 232 may further determine whether a hopper of a given projectile launching device contains at least one projectile or is empty (e.g., a hopper status of the hopper). Based on the hopper status, the processor 232 may pause operation of a given projectile launching device and / or call for a refill of the hopper.

[0061] FIG. 3 is a diagram of example components of a device 300, according to one or more implementations herein. The device 300 may correspond to one or more device, network, resource, or service of any of FIG. 1 A to FIG. 2. In some implementations, one or more device, network, resource, or service of any of FIG. 1 A to FIG. 2 may include one or more of the devices 300 and / or one or more components of the device 300, for example, according to a client / server architecture, a peer-to-peer architecture, and / or other architectures, which may include a plurality of hardware, software, and / or firmware components operating together to provide the functionality attributed herein to the device 300. In some implementations, the device 300 may include a distributed computing architecture (e.g., one or more individual computing platforms operating in concert to accomplish a computing task). For example, the device 300 may be implemented by a cloud of computing platforms operating together as the device 300. By way of non-limiting example, a given device 300 may include one or more of a server, a desktop computer, a laptop computer, a handheld computer, a tablet computing platform, a Netbook, a Smartphone, a gaming console, and / or other computing platforms.

[0062] As used herein, the term “component” is intended to be broadly construed as hardware, firmware, or a combination of hardware and software. It will be apparent that systems and / or methods described herein may be implemented in different forms of hardware, firmware, and / or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and / or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code — it being understood that software and hardware can be used to implement the systems and / or methods based on the description herein.

[0063] The device 300 may include a bus 310, a processor 320, a memory 330, an electronic storage component 340, an input component 350, an output component 360, and a communication component 370.

[0064] The bus 310 includes a component that enables wired and / or wireless communication among the components of device 300. The bus 310 may enable various components of a computer system to communicate with each other, allowing for the transfer of data from one part to another.

[0065] The processor 320 may include a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field-programmable gate array (FPGA), an application-specific integrated circuit, and / or another type of processing component. The processor 320 may be implemented in hardware, firmware, or a combination of hardware and software. In some implementations, the processor 320 may include one or more processors capable of being programmed to perform a function. Such processors may or may not all be integral to the same physical device and may in some embodiments be distributed among several devices.

[0066] The processor 320 may be configured to execute one or more of the modules disclosed herein, and / or other modules by software; hardware; firmware; some combination of software, hardware, and / or firmware; and / or other mechanisms for configuring processing capabilities on the processor 320. As used herein, the term “module” may refer to any component or set of components that perform the functionality attributed to the module. This may include one or more physical processors during execution of processor readable instructions, the processor readable instructions, circuitry, hardware, storage media, or any other components. Various modules or portions thereof may be implemented in any of various ways, including procedure-based techniques, component-based techniques, and / or object-oriented techniques, among others. For example, the program instructions may be implemented using system libraries, language libraries, model-viewcontroller (MVC) principles, application programming interfaces (APIs), systemspecific programming languages and principles, cross-platform programming languages and principles, pre-compiled programming languages, markup programming languages, stylesheet languages, “bytecode” programming languages, object-oriented programming principles or languages, other programming principles or languages, C, C++, C#, Java, JavaScript, Python, PHP, HTML, CSS, TypeScript, R, Elm, Unity, VB.Net, Visual Basic, Swift, Objective-C, Perl, Ruby, Go, SQL, Haskell, Scala, Arduino, assembly language, MicrosoftFoundation Classes (MFC), Streaming SIMD Extension (SSE), or other technologies or methodologies, as desired.

[0067] It should be appreciated that although some modules disclosed herein may be illustrated for example as being implemented within a single processing unit, in embodiments in which the processor 320 includes multiple processing units, one or more of modules disclosed herein may be implemented remotely from the other modules. The description of the functionality provided by the different modules disclosed herein is for illustrative purposes, and is not intended to be limiting, as any of modules described herein may provide more or less functionality than is described. For example, one or more of modules disclosed herein may be eliminated, and some or all of its functionality may be provided by another one of the modules disclosed herein. As another example, the processor 320 may be configured to execute one or more additional modules that may perform some or all of the functionality attributed herein to one of modules disclosed herein.

[0068] The memory 330 may include a random-access memory, a read only memory, and / or another type of memory (e.g., a flash memory, a magnetic memory, and / or an optical memory).

[0069] The electronic storage component 340 may store information and / or software related to the operation of the device 300. For example, the electronic storage component 340 may include a solid-state disk drive, a hard disk drive, a magnetic disk drive, an optical disk drive, a compact disc, a digital versatile disc, and / or another type of non-transitory computer-readable medium. Implementations of the electronic storage component 340 may include one or more of optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.), and / or other electronically readable storage media. Implementations of the electronic storage component 340 may include one or both of system storage provided integrally ( / .e., substantially non-removable) to the device 300 and / or removable storage that is removably connectable to the device 300 via, for example, a port (e.g., a serial port, a USB port, an IEEE 1394 port, a THUNDERBOLT™ port, etc.) or a drive (e.g., disk drive, flash drive, or solid-state drive etc.). The electronic storage component 340 may also or alternatively include one or more virtual storage resources (e.g., cloud storage, a virtual private network, and / or other virtual storage resources). An electronic storage may store software algorithms, information determined by one or more processors, informationreceived from one or more computing platforms, information received from one or more remote platforms, databases (e.g., structured query language (SQL) databases (e.g., MYSQL®, MARIADB®, MONGODB®), NO-SQL databases, among others), data files, compiled data, analyzed data, charts, tables, videos, images, presentations, and 3D content in the respective format and / or other information enabling a computing platform to function as described herein.

[0070] The input component 350 may enable the device 300 to receive input, such as user input and / or sensed inputs. For example, the input component 350 may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor (internal and / or external), a global positioning system component, an accelerometer, a gyroscope, and / or an actuator.

[0071] The output component 360 may enable the device 300 to provide output, such as via a display, a speaker, and / or one or more light-emitting diodes.

[0072] The communication component 370 may enable the device 300 to communicate with other devices, such as via a wired connection and / or a wireless connection, for example, via the internet and / or other networks using, for example, TCP / IP or cellular hardware enabling wired or wireless (e.g., cellular, 2G, 3G, 4G, 4G LTE, 5G, wireless local area network, near field communication (NFC), BLUETOOTH®) communication. For example, the communication component 370 may include a receiver, a transmitter, a transceiver, a modem, a network interface card, and / or an antenna.

[0073] As used herein, “internet” may include an interconnected network of systems and a suite of protocols for the end-to-end transfer of data therebetween. A model describing may be the Transport Control Protocol and Internet Protocol (TCP / IP), which may also be referred to as the internet protocol suite. TCP / IP provides a model of four layers of abstraction: an application layer, a transport layer, an internet layer, and a link layer. The link layer may include hosts accessible without traversing a router, and thus may be determined by the configuration of the network (e.g., a hardware network implementation, a local area network, a virtual private network, or a networking tunnel). The link layer may be used to move packets of data between the internet layer interfaces of different hosts on the same link. The link layer may interface with hardware for end-to-end transmission of data. The internet layer may include the exchange of datagrams across network boundaries (e.g., from a source network to a destination network), which may be referred to as routing, and is performed using host addressing and identification over an internetprotocol (IP) addressing system (e.g., IPv4, IPv6). A datagram may include a self- contained, independent, basic unit of data, including a header (e.g., including a source address, a destination address, and a type) and a payload (e.g., the data to be transported), to be transferred across a packet-switched network. The transport layer may utilize the user datagram protocol (UDP) to provide for basic data channels (e.g., via network ports) usable by applications for data exchange by establishing end-to-end, host-to-host connectivity independent of any underlying network or structure of user data. The application layer may include various user and support protocols used by applications users may use to create and exchange data, utilize services, or provide services over network connections established by the lower layers, including, for example, routing protocols, the hypertext transfer protocol (HTTP), the file transfer protocol (FTP), the simple mail transfer protocol (SMTP), and the dynamic host configuration protocol (DHCP). Such data creation and exchange in the application layer may utilize, for example, a client-server model or a peer-to-peer networking model. Data from the application layer may be encapsulated into UDP datagrams or TCP streams for interfacing with the transport layer, which may then effectuate data transfer via the lower layers.

[0074] The communication component 370 may further implement an internet-of-things (“loT”) configuration, which may include a network of physical objects — devices, vehicles, buildings, and other items — embedded with electronics, software, sensors, and network connectivity that enables these objects to collect and exchange data via the Internet. Each loT product / device may be an endpoint device having its own Internet address (e.g., IPv4, IPv6 address). The loT allows objects to be sensed and controlled remotely across an existing network infrastructure (e.g., the Internet), creating opportunities for more direct integration of the physical world into computer-based systems.

[0075] The device 300 may perform one or more processes described herein. For example, a non-transitory computer-readable medium (e.g., the memory 330 and / or the electronic storage component 340) may store a set of instructions (e.g., one or more instructions, code, software code, and / or program code) for execution by the processor 320. The processor 320 may execute the set of instructions to perform one or more processes described herein. In some implementations, execution of the set of instructions, by one or more processors 320, causes the one or more processors 320 and / or the device 300 to perform one or more processes described herein. In some implementations, hardwired circuitry may be used instead of or in combination with the instructions to perform one or more processes describedherein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

[0076] The number and arrangement of components shown in FIG. 3 are provided as an example. The device 300 may include additional components, fewer components, different components, or differently arranged components than those shown in FIG. 3. Additionally, or alternatively, a set of components (e.g., one or more components) of the device 300 may perform one or more functions described as being performed by another set of components of the device 300.

[0077] In addition to the example configuration described herein in FIG. 3, various steps, functions, and / or operations of the device 300 and the methods disclosed herein may be carried out by one or more of, for example, electronic circuits, logic gates, multiplexers, programmable logic devices, ASICs, analog or digital controls / switches, microcontrollers, or computing systems. Program instructions implementing methods such as those described herein may be transmitted over or stored on carrier medium. The carrier medium may include a storage medium such as a read-only memory, a random-access memory, a magnetic or optical disk, a non-volatile memory, a solid-state memory, a magnetic tape, and the like. A carrier medium may include a transmission medium such as a wire, cable, or wireless transmission link.

[0078] FIG. 4 is a diagram of example components of a device 470, according to one or more implementations herein. The device 470 may correspond to the communication component 370. In some implementations, the communication component 370 may include one or more of the devices 470 and / or one or more components of the device 470. As shown in FIG. 4, the device 470 may include one or more input components 472 (herein referred to collectively as the input components 472 or individually as the input component 472), a switching component 474, one or more output components 476 (herein referred to collectively as the output components 476 or individually as the output component 476), and a controller 478.

[0079] The input component 472 may be one or more points of attachment for one or more input physical links 471 (herein referred to collectively as the input physical links 471 or individually as the input physical link 471 ) and include one or more points of entry for incoming traffic, such as packets. The input component 472 may process incoming traffic, such as by performing data link layer encapsulation or decapsulation. In some implementations, the input component 472 may transmitand / or receive packets. In some implementations, the input component 472 may include an input line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more interface cards (IFCs), packet forwarding components, line card controller components, input ports, processors, memories, and / or input queues. In some implementations, the device 470 may include one or more of the input components 472.

[0080] The switching component 474 may interconnect the input component 472 with the output component 476. In some implementations, the switching component 474 may be implemented via one or more crossbars, via busses, and / or with shared memories. The shared memories may act as temporary buffers to store packets from the input component 472 before the packets are eventually scheduled for delivery to the output component 476. In some implementations, the switching component 474 may enable the input components 472, the output components 476, and / or the controller 478 to communicate with one another.

[0081] The output component 476 may store packets and may schedule packets for transmission on the output physical link(s) 479 (herein referred to collectively as the output physical links 479 or individually as the output physical link 479). The output component 476 may support data link layer encapsulation or decapsulation, and / or a variety of higher-level protocols. In some implementations, the output component 476 may transmit packets and / or receive packets. In some implementations, the output component 476 may include an output line card that includes one or more packet processing components (e.g., in the form of integrated circuits), such as one or more IFCs, packet forwarding components, line card controller components, output ports, processors, memories, and / or output queues. In some implementations, the device 470 may include one or more output components 476. In some implementations, the input component 472 and the output component 476 may be implemented by the same set of components (e.g., an input / output component may be a combination of the input component 472 and the output component 476).

[0082] The controller 478 includes a processor in the form of, for example, a CPU, a GPU, an APU, a microprocessor, a microcontroller, a DSP, an FPGA, an ASIC, and / or another type of processor. The processor is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, the controller 478 may include one or more processors that can be programmed to perform a function.

[0083] In some implementations, the controller 478 may include a RAM, a ROM, and / or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, an optical memory, etc.) that stores information and / or instructions for use by the controller 478.

[0084] In some implementations, the controller 478 may communicate with other devices, networks, and / or systems connected to the device 470 to exchange information regarding network topology. The controller 478 may create routing tables based on the network topology information, may create forwarding tables based on the routing tables, and may forward the forwarding tables to the input components 472 and / or the output components 476. The input components 472 and / or the output components 476 may use the forwarding tables to perform route lookups for incoming and / or outgoing packets.

[0085] The controller 478 may perform one or more processes described herein. The controller 478 may perform these processes in response to executing software instructions stored by a non-transitory computer-readable medium. A computer- readable medium is defined herein as a non-transitory (e.g., the medium itself ( / .e., tangible, not a signal) as opposed to a limitation on data storage persistency (e.g., RAM vs. ROM)) memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.

[0086] Software instructions may be read into a memory and / or storage component associated with the controller 478 from another computer-readable medium or from another device via a communication interface. When executed, software instructions stored in a memory and / or storage component associated with the controller 478 may cause the controller 478 to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

[0087] The number and arrangement of components shown in FIG. 4 are provided as an example. In practice, the device 470 may include additional components, fewer components, different components, or differently arranged components than those shown in FIG. 4. Additionally, or alternatively, a set of components (e.g., one or more components) of the device 470 may perform one or more functions described as being performed by another set of components of the device 470.

[0088] The following figures illustrate example methods and operations thereof. In some implementations, a method illustrated herein may include additional operations, fewer operations, differently arranged operations, or different operations than the operations depicted in the following figures. Moreover, or in the alternative, two or more of the operations depicted in one or more of the following figures may be performed at least partially in parallel. Various implementations herein may further implement processes represented by combinations of two or more of the following figures.

[0089] In implementations of the methods illustrated in the following figures, various operations may be performed by one or more hardware processors configured by machine-readable instructions (e.g., instructions stored electronically on an electronic storage medium), which may include a module in accordance with one or more embodiments. Such a hardware processor may include one or more processing devices (e.g., one or more digital processors, analog processors, digital circuits designed to process information, analog circuits designed to process information, state machines, and / or other mechanisms for electronically processing information). The one or more processing devices may include one or more devices configured through hardware, firmware, and / or software, which may be specifically designed for execution of one or more of the operations of methods illustrated herein.

[0090] FIG. 5 is a flowchart illustrating an example method 500, according to one or more implementations herein. In some implementations, one or more operations illustrated in FIG. 5 may be performed by one or more of the devices or components depicted in FIG. 1A through FIG. 4, in concert, in the alternative, or in combinations thereof. In some implementations, one or more operations may be performed by another device, system, or group of devices or systems separate from or including these. Additionally, or alternatively other devices, components, or systems, may be employed to perform the operations.

[0091] An operation 502 may include providing a plurality of projectile-launching devices, each projectile-launching device comprising: a launching mechanism configured to launch the projectile; a training mechanism configured to train the launching mechanism to a trained orientation; and a spin-generating mechanism configured to impart a projectile spin to the projectile while the projectile is launched; wherein the launching mechanism, the training mechanism, and the spin-generating mechanism are configured to cooperate to launch the projectile to a desired landing location along a desired trajectory with a desired spin; a camera configured to image anactual landing location and an actual trajectory of the projectile; and a processor in electronic communication with the camera and the projectile-launching devices. The operation 502 may be performed alone or in combination with one or more other operations depicted in FIG. 5.

[0092] An operation 504 may include determining, using the processor, the desired landing location, the desired trajectory, and the desired spin, and may be performed alone or in combination with one or more other operations depicted in FIG. 5.

[0093] An operation 506 may include selecting, using the processor, one of the projectilelaunching devices based on the desired landing location, the desired trajectory, and the desired spin, and may be performed alone or in combination with one or more other operations depicted in FIG. 5.

[0094] An operation 508 may include instructing, using the processor, the selected projectile-launching device to launch the projectile toward the desired landing location along the desired trajectory with the desired spin, and may be performed alone or in combination with one or more other operations depicted in FIG. 5.

[0095] An operation 510 may include receiving, at the processor, from the camera, an actual landing location of the projectile and an actual trajectory of the projectile and may be performed alone or in combination with one or more other operations depicted in FIG. 5.

[0096] An operation 512 may include redetermining, using the processor, the desired landing location, the desired trajectory, and the desired spin based on the actual landing location and the actual trajectory, and may be performed alone or in combination with one or more other operations depicted in FIG. 5.

[0097] An operation 514 may include selecting, using the processor, one of the projectilelaunching devices based on the desired landing location, the desired trajectory, and the desired spin, and may be performed alone or in combination with one or more other operations depicted in FIG. 5.

[0098] An operation 516 may include instructing, using the processor, the selected projectile-launching device to launch a second projectile toward the desired landing location along the desired trajectory with the desired spin, and may be performed alone or in combination with one or more other operations depicted in FIG. 5.

[0099] FIG. 6 is a flowchart illustrating an example method 600, according to one or more implementations herein. In some implementations, one or more operations illustrated in FIG. 6 may be performed by one or more of the devices orcomponents depicted in FIG. 1A through FIG. 4, in concert, in the alternative, or in combinations thereof. In some implementations, one or more operations may be performed by another device, system, or group of devices or systems separate from or including these. Additionally, or alternatively other devices, components, or systems, may be employed to perform the operations.

[0100] An operation 602 may include determining, using the processor, a dwell time based on, for example, a posture of a user or a handling action of a user, and may be performed alone or in combination with one or more other operations depicted in FIG. 6.

[0101] An operation 604 may include prior to instructing the selected projectile-launching device to launch the projectile, awaiting, at the processor, passage of the dwell time, and may be performed alone or in combination with one or more other operations depicted in FIG. 6.

[0102] FIG. 7 is a flowchart illustrating an example method 700, according to one or more implementations herein. In some implementations, one or more operations illustrated in FIG. 7 may be performed by one or more of the devices or components depicted in FIG. 1A through FIG. 4, in concert, in the alternative, or in combinations thereof. In some implementations, one or more operations may be performed by another device, system, or group of devices or systems separate from or including these. Additionally, or alternatively other devices, components, or systems, may be employed to perform the operations.

[0103] An operation 702 may include providing a network interface in electronic communication with the processor and may be performed alone or in combination with one or more other operations depicted in FIG. 7.

[0104] An operation 704 may include receiving, at the processor, via the network interface, from a remote device, the virtual opponent profile, and may be performed alone or in combination with one or more other operations depicted in FIG. 7.

[0105] FIG. 8 is a flowchart illustrating an example method 800, according to one or more implementations herein. In some implementations, one or more operations illustrated in FIG. 8 may be performed by one or more of the devices or components depicted in FIG. 1A through FIG. 4, in concert, in the alternative, or in combinations thereof. In some implementations, one or more operations may be performed by another device, system, or group of devices or systems separate from or including these. Additionally, or alternatively other devices, components, or systems, may be employed to perform the operations.

[0106] An operation 802 may include imaging, using the camera, a return landing location and a return trajectory of the projectile, and may be performed alone or in combination with one or more other operations depicted in FIG. 8.

[0107] An operation 804 may include determining, using the processor, a skill characteristic of the user based on the return landing location and the return trajectory, and may be performed alone or in combination with one or more other operations depicted in FIG. 8.

[0108] FIG. 9 is a flowchart illustrating an example method 900, according to one or more implementations herein. In some implementations, one or more operations illustrated in FIG. 9 may be performed by one or more of the devices or components depicted in FIG. 1A through FIG. 4, in concert, in the alternative, or in combinations thereof. In some implementations, one or more operations may be performed by another device, system, or group of devices or systems separate from or including these. Additionally, or alternatively other devices, components, or systems, may be employed to perform the operations.

[0109] An operation 902 may include providing a network interface in electronic communication with the processor and may be performed alone or in combination with one or more other operations depicted in FIG. 9.

[0110] An operation 904 may include transmitting, using the processor, via the network interface, the skill characteristic to a remote device, and may be performed alone or in combination with one or more other operations depicted in FIG. 9.

[0111] The following clauses may provide additional context for the present disclosure but should be taken in no way as limiting.

[0112] Clause 1. A system for adaptively launching a projectile to a user, comprising: a plurality of projectile-launching devices, each projectile-launching device comprising: a launching mechanism configured to launch the projectile; a training mechanism configured to train the launching mechanism to a trained orientation; and a spin-generating mechanism configured to impart a projectile spin to the projectile while the projectile is launched; wherein the launching mechanism, the training mechanism, and the spin-generating mechanism are configured to cooperate to launch the projectile toward a desired landing location along a desired trajectory with a desired spin; a camera configured to image an actual landing location and an actual trajectory of the projectile; and a processor in electronic communication with the camera and the projectile-launching devices, the processor configured to: determine the desired landing location, the desired trajectory, and thedesired spin; select one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; instruct the selected projectile-launching device to launch the projectile toward the desired landing location along the desired trajectory with the desired spin; receive, from the camera, an actual landing location of the projectile and an actual trajectory of the projectile; redetermine the desired landing location, the desired trajectory, and the desired spin based on the actual landing location and the actual trajectory; select one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; and instruct the selected projectile-launching device to launch a second projectile toward the desired landing location along the desired trajectory with the desired spin.

[0113] Clause 2. The system of clause 1 , wherein the camera is configured to image a return landing location of the projectile and a return trajectory of the projectile.

[0114] Clause 3. The system of clause 2, wherein the redetermining the desired landing location, the desired trajectory, and the desired spin is further based on the return landing location and the return trajectory.

[0115] Clause 4. The system of clause 2, wherein the processor is further configured to determine a skill characteristic of the user based on the return landing location and the return trajectory.

[0116] Clause 5. The system of clause 1 , further comprising a user health tracking device in electronic communication with the processor and configured to dynamically detect health information comprising a body temperature of the user, a heart rate of the user, and a blood pressure of the user.

[0117] Clause 6. The system of clause 5, wherein the processor is further configured to receive the health information.

[0118] Clause 7. The system of clause 6, wherein the processor is configured to redetermine the desired landing location, the desired trajectory, and the desired spin based further on the health information.

[0119] Clause 8. The system of clause 1 , wherein the camera is further configured to image the user.

[0120] Clause 9. The system of clause 8, wherein the processor is further configured to, using image processing, dynamically detect a location of the user and a height of the user.

[0121] Clause 10. The system of clause 9, wherein the processor is configured to redetermine the desired landing location, the desired trajectory, and the desired spin based further on the location of the user and the height of the user.

[0122] Clause 11 . The system of clause 8, wherein the processor is further configured to determine, using image processing, a posture of the user.

[0123] Clause 12. The system of clause 11 , wherein the posture includes a readiness-to- play posture.

[0124] Clause 13. The system of clause 11 , wherein the posture includes an attention posture.

[0125] Clause 14. The system of clause 11 , wherein the processor is further configured to: determine a dwell time based on the posture of the user; and prior to instructing the selected projectile-launching device to launch the projectile, await passage of the dwell time.

[0126] Clause 15. The system of clause 1 , wherein the processor is further configured to provide injury prevention feedback to the user.

[0127] Clause 16. The system of clause 1 , wherein the processor is further configured to receive, from an electronic storage device in electronic communication with the processor, a virtual opponent profile.

[0128] Clause 17. The system of clause 16, further comprising a network interface in electronic communication with the processor and wherein the processor is configured to receive, via the network interface, from a remote device, the virtual opponent profile.

[0129] Clause 18. The system of clause 16, wherein the determining the desired landing location, the desired trajectory, and the desired spin is based further on the virtual opponent profile.

[0130] Clause 19. The system of clause 1 , wherein the camera is configured to image a return landing location and a return trajectory of the projectile, and the processor is further configured to determine a skill characteristic of the user based on the return landing location, and the return trajectory.

[0131] Clause 20. The system of clause 19, further comprising a network interface in electronic communication with the processor and wherein the processor is further configured to transmit, via the network interface, the skill characteristic to a remote device.

[0132] Clause 21 . The system of clause 1 , wherein each projectile-launching device further comprises a hopper configured to contain a plurality of projectiles and a feeder configured to convey the projectile from the hopper to the launching mechanism.

[0133] Clause 22. The system of clause 21 , wherein the processor is further configured to determine a hopper status based on whether the hopper contains at least one projectile or is empty.

[0134] Clause 23. The system of clause 22, wherein the processor is configured to select one of the projectile-launching devices further based on the hopper status.

[0135] Clause 24. The system of clause 22, wherein the processor is configured to pause operation of the projectile launching devices based on the hopper status.

[0136] Clause 25. The system of clause 1 , wherein the camera is configured to image a handling action by the user of the projectile.

[0137] Clause 26. The system of clause 25, wherein the handling action includes a successful return shot.

[0138] Clause 27. The system of clause 25, wherein the handling action includes a failed return shot.

[0139] Clause 28. The system of clause 25, wherein the redetermining the desired landing location, the desired trajectory, and the desired spin is further based on the handling action.

[0140] Clause 29. The system of clause 28, wherein the processor is further configured to: determine a dwell time based on the handling action; and prior to instructing the selected projectile-launching device to launch the second projectile, await passage of the dwell time.

[0141] Clause 30. A method for adaptively launching a projectile to a user, comprising: providing: a plurality of projectile-launching devices, each projectile-launching device comprising: a launching mechanism configured to launch the projectile; a training mechanism configured to train the launching mechanism to a trained orientation; and a spin-generating mechanism configured to impart a projectile spin to the projectile while the projectile is launched; wherein the launching mechanism, the training mechanism, and the spin-generating mechanism are configured to cooperate to launch the projectile to a desired landing location along a desired trajectory with a desired spin; a camera configured to image an actual landing location and an actual trajectory of the projectile; and a processor in electronic communication with the camera and the projectile-launching devices; determining,using the processor, the desired landing location, the desired trajectory, and the desired spin; selecting, using the processor, one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; instructing, using the processor, the selected projectile-launching device to launch the projectile toward the desired landing location along the desired trajectory with the desired spin; receiving, at the processor, from the camera, an actual landing location of the projectile and an actual trajectory of the projectile; redetermining, using the processor, the desired landing location, the desired trajectory, and the desired spin based on the actual landing location and the actual trajectory; selecting, using the processor, one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; and instructing, using the processor, the selected projectile-launching device to launch a second projectile toward the desired landing location along the desired trajectory with the desired spin.

[0142] Clause 31 . The method of clause 30, wherein the camera is configured to image a return landing location and a return trajectory of the projectile.

[0143] Clause 32. The method of clause 31 , wherein the redetermining the desired landing location, the desired trajectory, and the desired spin is further based on the return landing location and the return trajectory.

[0144] Clause 33. The method of clause 31 , further comprising determining, using the processor, a skill characteristic of the user based on the return landing location and the return trajectory.

[0145] Clause 34. The method of clause 30, further comprising, dynamically detecting, using a user health tracking device in electronic communication with the processor, health information comprising a body temperature of the user, a heart rate of the user, and a blood pressure of the user.

[0146] Clause 35. The method of clause 34, further comprising receiving, using the processor, the health information.

[0147] Clause 36. The method of clause 35, further comprising redetermining, using the processor, the desired landing location, the desired trajectory, and the desired spin based further on the health information.

[0148] Clause 37. The method of clause 30, wherein the camera is further configured to image the user.

[0149] Clause 38. The method of clause 37, further comprising, using image processing by the processor, dynamically detecting a location of the user and a height of the user.

[0150] Clause 39. The method of clause 38, further comprising redetermining, using the processor, the desired landing location, the desired trajectory, and the desired spin based further on the location of the user and the height of the user.

[0151] Clause 40. The method of clause 37, further comprising determining, using image processing by the processor, a posture of the user.

[0152] Clause 41 . The method of clause 40, wherein the posture includes a readiness-to- play posture.

[0153] Clause 42. The method of clause 40, wherein the posture includes an attention posture.

[0154] Clause 43. The method of clause 40, further comprising: determining, using the processor, a dwell time based on the posture of the user; and prior to instructing the selected projectile-launching device to launch the projectile, awaiting, at the processor, passage of the dwell time.

[0155] Clause 44. The method of clause 30, further comprising providing, using the processor, injury prevention feedback to the user.

[0156] Clause 45. The method of clause 30, further comprising receiving, at the processor, from an electronic storage device in electronic communication with the processor, a virtual opponent profile.

[0157] Clause 46. The method of clause 45, further comprising: providing a network interface in electronic communication with the processor; and receiving, at the processor, via the network interface, from a remote device, the virtual opponent profile.

[0158] Clause 47. The method of clause 45, wherein the determining the desired landing location, the desired trajectory, and the desired spin is based further on the virtual opponent profile.

[0159] Clause 48. The method of clause 30, further comprising: imaging, using the camera, a return landing location and a return trajectory of the projectile; and determining, using the processor, a skill characteristic of the user based on the return landing location and the return trajectory.

[0160] Clause 49. The method of clause 48, further comprising: providing a network interface in electronic communication with the processor; and transmitting, using the processor, via the network interface, the skill characteristic to a remote device.

[0161] Clause 50. The method of clause 30, wherein each projectile-launching device further comprises a hopper configured to contain a plurality of projectiles and a feeder configured to convey the projectile from the hopper to the launching mechanism.

[0162] Clause 51 . The method of clause 50, further comprising determining, using the processor, a hopper status based on whether the hopper contains at least one projectile or is empty.

[0163] Clause 52. The method of clause 51 , further comprising selecting, using the processor, one of the projectile-launching devices further based on the hopper status.

[0164] Clause 53. The method of clause 51 , further comprising pausing operation of the projectile launching devices based on the hopper status.

[0165] Clause 54. The method of clause 30, further comprising imaging, using the camera, a handling action by the user of the projectile.

[0166] Clause 55. The method of clause 54, wherein the handling action includes a successful return shot.

[0167] Clause 56. The method of clause 54, wherein the handling action includes a failed return shot.

[0168] Clause 57. The method of clause 54, wherein the redetermining the desired landing location, the desired trajectory, and the desired spin is further based on the handling action.

[0169] Clause 58. The method of clause 57, further comprising: determining, using the processor, a dwell time based on the handling action; and prior to instructing the selected projectile-launching device to launch the second projectile, awaiting passage of the dwell time.

[0170] Various characteristics, advantages, implementations, embodiments, and / or examples relating to the invention have been described in the foregoing description with reference to the accompanying drawings. However, the above description and drawings are illustrative only. The invention is not limited to the illustrated implementations, embodiments, and / or examples, and all implementations,embodiments, and / or examples of the invention need not necessarily achieve every advantage or purpose, or possess every characteristic, identified herein. Accordingly, various changes, modifications, or omissions may be effected by one skilled in the art without departing from the scope or spirit of the invention, which is limited only by the appended claims. Although example materials and dimensions have been provided, the invention is not limited to such materials or dimensions unless specifically required by the language of a claim. Elements and uses of the above-described implementations, embodiments, and / or examples can be rearranged and combined in manners other than specifically described above, with any and all permutations within the scope of the invention, as limited only by the appended claims.

[0171] In the claims, various portions are prefaced with letter or number references for convenience. However, use of such references does not imply a temporal or ordered relationship not otherwise required by the language of the claims. Unless the phrase ‘means for’ or ‘step for’ appears in a particular claim or claim limitation, such claim or sample claim limitation should not be interpreted to invoke 35 U.S.C. § 112(f).

[0172] As used in the specification and in the claims, use of “and” to join elements in a list forms a group of all elements of the list. For example, a list described as comprising A, B, and C defines a list that includes A, includes B, and includes C. As used in the specification and in the claims, use of “or” to join elements in a list forms a group of at least one element of the list. For example, a list described as comprising A, B, or C defines a list that may include A, may include B, may include C, may include any subset of A, B, and C, or may include A, B, and C. Unless otherwise stated, lists herein are inclusive, that is, lists are not limited to the stated elements and may be combined with other elements not specifically stated in a list. As used in the specification and in the claims, the singular form of 'a', 'an', and 'the' include plural referents (e.g., one or more of the referent) unless the context clearly dictates otherwise.

[0173] It is to be expressly understood that the drawings are for the purpose of illustration and description only and are not intended as a definition of the limits of the invention.

[0174] Unless otherwise stated, any range of values disclosed herein sets out a lower limit value and an upper limit value, and such ranges include all values and ranges between and including the limit values of the stated range, and all values andranges substantially within the stated range as defined by the order of magnitude of the stated range.

[0175] The inventors hereby state their intent to rely on the Doctrine of Equivalents to determine and assess the reasonably fair scope of their invention as pertains to any apparatus not materially departing from but outside the literal scope of the invention as set out in the following claims.

Claims

CLAIMSI claim:1 . A system for adaptively launching a projectile to a user, comprising: a plurality of projectile-launching devices, each projectile-launching device comprising: a launching mechanism configured to launch the projectile; a training mechanism configured to train the launching mechanism to a trained orientation; and a spin-generating mechanism configured to impart a projectile spin to the projectile while the projectile is launched; wherein the launching mechanism, the training mechanism, and the spingenerating mechanism are configured to cooperate to launch the projectile toward a desired landing location along a desired trajectory with a desired spin; a camera configured to image an actual landing location and an actual trajectory of the projectile; and a processor in electronic communication with the camera and the projectile-launching devices, the processor configured to: determine the desired landing location, the desired trajectory, and the desired spin; select one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; instruct the selected projectile-launching device to launch the projectile toward the desired landing location along the desired trajectory with the desired spin; receive, from the camera, an actual landing location of the projectile and an actual trajectory of the projectile; redetermine the desired landing location, the desired trajectory, and the desired spin based on the actual landing location and the actual trajectory; select one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; and instruct the selected projectile-launching device to launch a second projectile toward the desired landing location along the desired trajectory with the desired spin.

2. The system of claim 1 , wherein the camera is configured to image a return landing location of the projectile and a return trajectory of the projectile.

3. The system of claim 2, wherein the redetermining the desired landing location, the desired trajectory, and the desired spin is further based on the return landing location and the return trajectory.

4. The system of claim 2, wherein the processor is further configured to determine a skill characteristic of the user based on the return landing location and the return trajectory.

5. The system of claim 1 , further comprising a user health tracking device in electronic communication with the processor and configured to dynamically detect health information comprising a body temperature of the user, a heart rate of the user, and a blood pressure of the user.

6. The system of claim 5, wherein the processor is further configured to receive the health information.

7. The system of claim 6, wherein the processor is configured to redetermine the desired landing location, the desired trajectory, and the desired spin based further on the health information.

8. The system of claim 1 , wherein the camera is further configured to image the user.

9. The system of claim 8, wherein the processor is further configured to, using image processing, dynamically detect a location of the user and a height of the user.

10. The system of claim 9, wherein the processor is configured to redetermine the desired landing location, the desired trajectory, and the desired spin based further on the location of the user and the height of the user.

11. The system of claim 8, wherein the processor is further configured to determine, using image processing, a posture of the user.

12. The system of claim 11 , wherein the posture includes a readiness-to-play posture.

13. The system of claim 11 , wherein the posture includes an attention posture.

14. The system of claim 11 , wherein the processor is further configured to: determine a dwell time based on the posture of the user; and prior to instructing the selected projectile-launching device to launch the projectile, await passage of the dwell time.

15. The system of claim 1 , wherein the processor is further configured to provide injury prevention feedback to the user.

16. The system of claim 1 , wherein the processor is further configured to receive, from an electronic storage device in electronic communication with the processor, a virtual opponent profile.

17. The system of claim 16, further comprising a network interface in electronic communication with the processor and wherein the processor is configured to receive, via the network interface, from a remote device, the virtual opponent profile.

18. The system of claim 16, wherein the determining the desired landing location, the desired trajectory, and the desired spin is based further on the virtual opponent profile.

19. The system of claim 1 , wherein the camera is configured to image a return landing location and a return trajectory of the projectile, and the processor is further configured to determine a skill characteristic of the user based on the return landing location, and the return trajectory.

20. The system of claim 19, further comprising a network interface in electronic communication with the processor and wherein the processor is further configured to transmit, via the network interface, the skill characteristic to a remote device.

21. The system of claim 1 , wherein each projectile-launching device further comprises a hopper configured to contain a plurality of projectiles and a feeder configured to convey the projectile from the hopper to the launching mechanism.

22. The system of claim 21 , wherein the processor is further configured to determine a hopper status based on whether the hopper contains at least one projectile or is empty.

23. The system of claim 22, wherein the processor is configured to select one of the projectile-launching devices further based on the hopper status.

24. The system of claim 22, wherein the processor is configured to pause operation of the projectile launching devices based on the hopper status.

25. The system of claim 1 , wherein the camera is configured to image a handling action by the user of the projectile.

26. The system of claim 25, wherein the handling action includes a successful return shot.

27. The system of claim 25, wherein the handling action includes a failed return shot.

28. The system of claim 25, wherein the redetermining the desired landing location, the desired trajectory, and the desired spin is further based on the handling action.

29. The system of claim 28, wherein the processor is further configured to: determine a dwell time based on the handling action; and prior to instructing the selected projectile-launching device to launch the second projectile, await passage of the dwell time.

30. A method for adaptively launching a projectile to a user, comprising: providing: a plurality of projectile-launching devices, each projectile-launching device comprising: a launching mechanism configured to launch the projectile; a training mechanism configured to train the launching mechanism to a trained orientation; and a spin-generating mechanism configured to impart a projectile spin to the projectile while the projectile is launched; wherein the launching mechanism, the training mechanism, and the spingenerating mechanism are configured to cooperate to launch the projectile to a desired landing location along a desired trajectory with a desired spin; a camera configured to image an actual landing location and an actual trajectory of the projectile; and a processor in electronic communication with the camera and the projectilelaunching devices; determining, using the processor, the desired landing location, the desired trajectory, and the desired spin; selecting, using the processor, one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; instructing, using the processor, the selected projectile-launching device to launch the projectile toward the desired landing location along the desired trajectory with the desired spin;receiving, at the processor, from the camera, an actual landing location of the projectile and an actual trajectory of the projectile; redetermining, using the processor, the desired landing location, the desired trajectory, and the desired spin based on the actual landing location and the actual trajectory; selecting, using the processor, one of the projectile-launching devices based on the desired landing location, the desired trajectory, and the desired spin; and instructing, using the processor, the selected projectile-launching device to launch a second projectile toward the desired landing location along the desired trajectory with the desired spin.

31. The method of claim 30, wherein the camera is configured to image a return landing location and a return trajectory of the projectile.

32. The method of claim 31 , wherein the redetermining the desired landing location, the desired trajectory, and the desired spin is further based on the return landing location and the return trajectory.

33. The method of claim 31 , further comprising determining, using the processor, a skill characteristic of the user based on the return landing location and the return trajectory.

34. The method of claim 30, further comprising, dynamically detecting, using a user health tracking device in electronic communication with the processor, health information comprising a body temperature of the user, a heart rate of the user, and a blood pressure of the user.

35. The method of claim 34, further comprising, receiving, using the processor, the health information.

36. The method of claim 35, further comprising redetermining, using the processor, the desired landing location, the desired trajectory, and the desired spin based further on the health information.

37. The method of claim 30, wherein the camera is further configured to image the user.

38. The method of claim 37, further comprising, using image processing by the processor, dynamically detecting a location of the user and a height of the user.

39. The method of claim 38, further comprising redetermining, using the processor, the desired landing location, the desired trajectory, and the desired spin based further on the location of the user and the height of the user.

40. The method of claim 37, further comprising determining, using image processing by the processor, a posture of the user.

41. The method of claim 40, wherein the posture includes a readiness-to-play posture.

42. The method of claim 40, wherein the posture includes an attention posture.

43. The method of claim 40, further comprising: determining, using the processor, a dwell time based on the posture of the user; and prior to instructing the selected projectile-launching device to launch the projectile, awaiting, at the processor, passage of the dwell time.

44. The method of claim 30, further comprising providing, using the processor, injury prevention feedback to the user.

45. The method of claim 30, further comprising receiving, at the processor, from an electronic storage device in electronic communication with the processor, a virtual opponent profile.

46. The method of claim 45, further comprising: providing a network interface in electronic communication with the processor; and receiving, at the processor, via the network interface, from a remote device, the virtual opponent profile.

47. The method of claim 45, wherein the determining the desired landing location, the desired trajectory, and the desired spin is based further on the virtual opponent profile.

48. The method of claim 30, further comprising: imaging, using the camera, a return landing location and a return trajectory of the projectile; and determining, using the processor, a skill characteristic of the user based on the return landing location and the return trajectory.

49. The method of claim 48, further comprising: providing a network interface in electronic communication with the processor; andtransmitting, using the processor, via the network interface, the skill characteristic to a remote device.

50. The method of claim 30, wherein each projectile-launching device further comprises a hopper configured to contain a plurality of projectiles and a feeder configured to convey the projectile from the hopper to the launching mechanism.

51. The method of claim 50, further comprising determining, using the processor, a hopper status based on whether the hopper contains at least one projectile or is empty.

52. The method of claim 51 , further comprising selecting, using the processor, one of the projectile-launching devices further based on the hopper status.

53. The method of claim 51 , further comprising pausing operation of the projectile launching devices based on the hopper status.

54. The method of claim 30, further comprising imaging, using the camera, a handling action by the user of the projectile.

55. The method of claim 54, wherein the handling action includes a successful return shot.

56. The method of claim 54, wherein the handling action includes a failed return shot.

57. The method of claim 54, wherein the redetermining the desired landing location, the desired trajectory, and the desired spin is further based on the handling action.

58. The method of claim 57, further comprising: determining, using the processor, a dwell time based on the handling action; and prior to instructing the selected projectile-launching device to launch the second projectile, awaiting passage of the dwell time.

Citation Information

Patent Citations

  • Tennis playing robotic device

    US11577143B1

  • Tennis training system and method for simulating a real tennis match

    US20030181265A1

  • Tennis ball throwing machine

    US20140109887A1

  • Systems, methods and devices for providing a personalized exercise program recommendation

    US20170216671A1

  • Tennis self-training system

    US20230372803A1