Method and system for reproducing ball trajectory using an automated pitching machine

The system addresses the challenge of controlling ball launch paths by integrating sensing, direction, and position control with closed-loop correction, ensuring precise trajectory and spin replication for improved training.

JP7762650B2Active Publication Date: 2025-10-30TRAJEKT SPORTS INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022517441
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-09-18
Filing Date
2020-09-17
Publication Date
2025-10-30
Estimated Expiration
2040-09-17

AI Technical Summary

Technical Problem

Existing throwing machines struggle to accurately control the launch path of balls, making it difficult to replicate the desired trajectory and spin.

Method used

A system and method for automated object throwing that includes a ball state sensing device, ball direction control, machine location and position control, ball velocity and spin control, and a controller to input desired trajectory and launch conditions, with closed-loop control and error correction for precise trajectory reproduction.

Benefits of technology

Enables precise control over ball trajectory, spin, and launch conditions, allowing for accurate replication of desired paths and improved training efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007762650000001
    Figure 0007762650000001
  • Figure 0007762650000002
    Figure 0007762650000002
  • Figure 0007762650000003
    Figure 0007762650000003
Patent Text Reader

Abstract

The present disclosure is directed to an automated object launch system and method for replicating ball trajectories, e.g., for baseball. The system receives input from a user, including trajectory information, and then launches an object based on the trajectory. The system includes a subsystem for controlling the direction of the launched object and the position of the system itself. The system also includes a results tracking database for providing analytics and the like to the user.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates generally to sports machines, and more particularly to a method and system for replicating ball trajectory using an automated ball throwing machine. [Background technology]

[0002] Throwing machines are a common tool used in player development and are used in sports such as baseball, cricket, tennis, hockey, soccer, and softball to allow players to experience the flow of a game. Using balls thrown from a throwing machine helps players practice, learn how to predict the ball's path more effectively, and improve muscle memory.

[0003] Throwing machines are commonly used in sports training, but also recreationally, for research purposes, and other uses. Common objects thrown from throwing machines include baseballs, tennis balls, cricket balls, and other sports balls.

[0004] Ball tracking systems are also commonly used in sports. For example, radar technology, vision systems, and other systems are often placed near or inside the game ball. Ball tracking technology is commonly found in sports that involve the projectile of a ball, such as golf, tennis, cricket, soccer, volleyball, badminton, billiards, hurling, and baseball, among others. State-of-the-art ball tracking systems have achieved reliable accuracy for tracking the trajectory of a ball. Summary of the Invention [Problem to be solved by the invention]

[0005] Although existing throwing machines can launch or throw a ball, it is difficult to control the launch path of the ball and / or it is difficult for current throwing machines to replicate the entire launch path of a target. [Means for solving the problem]

[0006] Thus, a novel method and system for automated pitching is provided.

[0007] The present disclosure is directed to methods and systems for automated object throwing. In one embodiment, the object is a sports ball. The system includes an object throwing portion that throws the object based on input from a user. The input preferably represents a trajectory desired by the user for the thrown object. Based on the input trajectory (and other criteria), the system of the present disclosure can direct the object within an object throwing machine, control the machine within its environment, impart spin or velocity to the thrown object, or a combination thereof.

[0008] In one embodiment, the present disclosure includes a method and system for controlling the trajectory of an object thrown from the machine. It is understood that the methods and systems described herein are applicable to the launch of non-spherical objects such as balls, hockey pucks, frisbees, and bullets, and any other object whose trajectory can be controlled when launched from the machine.

[0009] It is an aspect of the present disclosure to provide novel systems, methods, and exemplary embodiments of machines capable of controlling ball launch conditions, ball trajectory, or any combination thereof. The term trajectory refers to any combination of the path a ball follows after launch and the appearance of the ball as it follows that path. The present disclosure allows a user to replicate a tracked trajectory or select one or more desired ball positions along the ball's path of travel without limitation to a start and end position. In one embodiment of trajectory specification, a user can select or input a start point and an end point of the trajectory. In another embodiment, one or more users can select at least one intermediate point on the trajectory where they want the launched ball to traverse that path. Alternatively, a user can input a start point of the trajectory, an end point of the trajectory, and multiple points on the trajectory path between the start point and the end point. The present disclosure includes systems and methods for controlling some or all degrees of freedom of trajectory or launch, and achieving greater precision with respect to the aforementioned capabilities of launch condition control, ball path control, and ball appearance control. The present disclosure also includes methods for tracking human and environmental interactions with the reconstructed trajectory.

[0010] The present disclosure also relates to the field of data analytics in sports. Analysis of player performance is used to inform decision-making in many areas of sports, including in-game strategy, training decisions, and player acquisition. These analyses can be collected both in-game and during training. The methods described below relate to methods of collecting data and providing analysis on that data during training, but are not limited to in-game use.

[0011] In one aspect, there is provided a system for reproducing a ball trajectory, comprising: a pitching machine including a ball state sensing device; a ball direction control device; a machine location and position control device; a ball velocity and spin control device; a controller for controlling the pitching machine, the controller including an interface associated with the controller for a user to input a ball launch input representing a machine state to ball release state mapping, or a ball state to trajectory mapping, or a combination thereof, the ball release state, or a ball trajectory to be generated by the pitching machine; and a processing unit.

[0012] In another aspect, the system further includes a result tracking device. In yet another aspect, the system further includes a closed-loop control and error correction device. In another aspect, the ball condition sensing device includes a set of cameras and a set of sensors. In yet another aspect, the ball condition sensing device further includes a set of measurement devices.

[0013] In one aspect, the ball direction control device includes a conveyor system and a motor control unit for controlling the conveyor system. In another aspect, the ball direction device further includes a set of tensioners. In yet another aspect, the machine location and position control device includes a set of position sensing devices, a set of actuators, and an actuation unit. In yet another aspect, the machine location and position control device further includes a motion control system.

[0014] In another aspect, the system further includes an apparatus for algorithmically generating trajectories to simulate predetermined criteria as selected by a user via the interface. In yet another aspect, the system further includes an apparatus for a user to curate a set of trajectories.

[0015] In another aspect of the present disclosure, an automated object throwing method is provided that includes receiving a user input; processing the user input to generate an object launch command, the object launch command including trajectory path characteristics for a launched object; and executing the object launch command to prepare for the launch of the object.

[0016] In another aspect, the method further includes launching the object. In yet another aspect, the method further includes monitoring the object trajectory after launch, comparing the object trajectory after launch to an expected object trajectory, and performing error correction based on the comparison of the object trajectory after launch to the expected object trajectory.

[0017] In another aspect, executing the object launch command to prepare the object for launch includes reorienting the object from an actual orientation to a desired orientation based on the object launch command. In yet another aspect, executing the object launch command to prepare the object for launch includes reorienting the object launch machine from an actual attitude to a desired attitude based on the object launch command. In yet another aspect, executing the object launch command to prepare the object for launch includes preparing the object to be launched with a required velocity and spin based on the ball launch command.

[0018] In another aspect of the present disclosure, a method of training a user is provided that includes the steps of performing an automated object throwing method, tracking a user's interaction with the launched object, and storing results of the user's interaction in a database.

[0019] In other aspects, the method further includes at least one of generating a report based on the results of the interaction with the user, performing an analysis based on the results of the interaction with the user, or recommending a workout based on the results of the interaction with the user.

[0020] Embodiments of the present disclosure will now be described, by way of example only, with reference to the accompanying figures, in which: [Brief explanation of the drawings]

[0021] [Figure 1a] 1 is a schematic diagram of a system for automated pitching. [Figure 1b] FIG. 1 is a schematic diagram of a ball state sensing subsystem. [Figure 1c] FIG. 1 is a schematic diagram of a ball direction control subsystem. [Figure 1d] Schematic diagram of the machine localization and position control subsystem. [Figure 2] 1 is a flowchart outlining a method for commanding ball launch. [Figure 3] 10 is a flowchart outlining a method of subsystem communication given user input of a desired trajectory or ball launch state. [Figure 4] 1 is a flowchart outlining a method of subsystem communication for closed-loop control of ball launch. [Figure 5] 10 is a flowchart outlining a method of subsystem communication for executing a ball launch command. [Figure 6] 1A-1C illustrate possible placements of cameras from which ball state information can be extracted. [Figure 7] FIG. 1 illustrates an implementation of ball position and velocity extraction using a baseball. [Figure 8] FIG. 1 illustrates a virtual 3D model of a baseball that includes stitching as a feature. [Figure 9] FIG. 1 illustrates the process of extracting ball orientation by matching observation points with a 3D model. [Figure 10a] FIG. 1 shows a conveyor belt unit with three belts. [Figure 10b] FIG. 1 shows a conveyor belt unit with three belts. [Figure 11a] FIG. 10 is a diagram showing an example of an arbitrary change in orientation of a baseball. [Figure 11b] FIG. 10 is a diagram showing an example of an arbitrary change in orientation of a baseball. [Figure 11c]FIG. 10 is a diagram showing an example of an arbitrary change in orientation of a baseball. [Figure 11d] FIG. 10 is a diagram showing an example of an arbitrary change in orientation of a baseball. [Figure 12] FIG. 1 illustrates a process commonly used to reorient a ball. [Figure 13] FIG. 10 illustrates elements that control the force between the ball and the conveyor. [Figure 14] 10A-10C illustrate how motion blur affects the appearance of a baseball at various orientations and spins. [Figure 15] FIG. 10 is a diagram showing the configuration of a camera in a pitching machine. [Figure 16a] FIG. 10 is a diagram showing the positions of markers. [Figure 16b] FIG. 10 is a diagram showing the positions of markers. [Figure 17a] Figure 1 shows the gimbal gantry system. [Figure 17b] Figure 1 shows the gimbal gantry system. [Figure 17c] Figure 1 shows the gimbal gantry system. [Figure 17d] Figure 1 shows the gimbal gantry system. [Figure 17e] Figure 1 shows the gimbal gantry system. [Figure 18] FIG. 1 illustrates a process for controlling the attitude of a machine. [Figure 19] FIG. 1 illustrates an embodied system capable of imparting 3D spin and arbitrary output velocity to a ball. [Figure 20a] FIG. 1 illustrates a three-wheel system with varying alpha rotation angles. [Figure 20b] FIG. 1 illustrates a three-wheel system with varying alpha rotation angles. [Figure 21] FIG. 1 illustrates a theoretical physical model relating machine states to ball states. [Figure 22] Figure 1 illustrates the process of updating machine parameters using error data collected from past throws. [Figure 23] Figure 10 shows the mathematical formula for updating machine parameters given collected error data. [Figure 24] FIG. 10 shows an interface for allowing a user to select parameters relating to the trajectory of a ball to be shot. [Figure 25] FIG. 10 illustrates an interface that allows a user to create a trajectory in a reconstructed virtual 3D space. [Figure 26a] FIG. 10 illustrates an interface that allows a user to select and reproduce a previously tracked trajectory. [Figure 26b] FIG. 10 illustrates an interface that allows a user to select and reproduce a previously tracked trajectory. [Figure 27] FIG. 10 illustrates an interface that allows a user to select and input various parameters including speed, spin rate, spin axis, release position, final position, and direction. [Figure 28] FIG. 1 illustrates a curated list of trajectories in baseball training. [Figure 29] FIG. 1 illustrates a curated list of trajectories intended to simulate the set of trajectories that may be generated by a particular human. [Figure 30a] FIG. 1 illustrates an exemplary interface for manual results tracking. [Figure 30b] FIG. 1 illustrates an exemplary interface for manual results tracking. [Figure 31] FIG. 1 illustrates an example interface for the results tracking subsystem. DETAILED DESCRIPTION OF THE INVENTION

[0022] The present disclosure is directed to methods and systems for automated object throwing for objects such as balls. In one embodiment, the system receives ball-launch input from a user and then launches or throws a ball or object based on the ball-launch input. Ball-launch characteristics, including, but not limited to, ball trajectory, ball speed, ball spin, orientation, release position (height and side), and release angle (horizontal and vertical), can be specified by the user in the ball-launch command. The user can select and replay a previously tracked ball launch, select a ball launch from a curated or algorithmically generated list, or be suggested individual ball launches by the system's interface. In another embodiment, the ball-launch input can include a trajectory the user desires the launched object to follow.

[0023] Referring to FIG. 1a, a schematic diagram of an automated ball throwing system is shown. It is understood that the machine can also launch other objects, such as Frisbees or hockey pucks, or any object that can be launched with a trajectory. In this embodiment, system 10 includes a ball throwing machine 11 connected to a controller 12. Controller 12 receives ball launch input from a user via interface 13 and then converts this input into ball launch state specifications, which are then transmitted to ball throwing machine 11 as ball launch commands. The commands enable desired characteristics of the thrown, launched, or pitched ball as selected or entered by the user. Ball throwing machine 11 then pitches or throws the ball based on the commands.

[0024] In one embodiment, the throwing machine 11 includes a ball launch subsystem 20, a ball direction control subsystem 24, a machine location and position control subsystem 28, a ball speed and spin control subsystem 22, and a processor 26. In this embodiment, the controller 12 includes a closed-loop control and error correction subsystem 30, a machine state-to-ball state mapping subsystem 33, a ball state-to-trajectory mapping subsystem 32, and a database 31. The system 10 may further include a result tracking subsystem 15, which includes a result tracking device 38 and a database 40. Instead of its own database, the result tracking subsystem may use the database 31. The ball state sensing subsystem 14 may also be used by the system 10. The system's interface 13 may include a trajectory selection interface 34 that allows a user to select a particular trajectory to be launched. The interface 13 may also include a result tracking interface 36 that combines data from the throwing machine 11 and the result tracking subsystem 15 to provide the user with data on the results of their interaction with the machine.

[0025] As noted above, the throwing machine 11 includes a processor 26. The controller 12 may also include its own processor (not shown) or may utilize a processor 26 within the throwing machine 11. The controller 12 may also include its own database 31 of data from previous throws by the throwing machine.

[0026] Ball projectile subsystem 20 may be considered the components that enable throwing machine 11 to project balls. One embodiment of ball projectile subsystem 20 is shown schematically in FIG. 19, which presents an embodiment in which a flywheel and motor are used to project the balls. In other embodiments, ball projectile subsystem 20 may include a mechanical projectile, a modified flywheel and motor configuration, or a pneumatic cannon system.

[0027] The ball state sensing subsystem 14 assists in monitoring different states and / or positions of the ball before, during, and / or after it is launched. An advantage of this subsystem is that it can improve trajectory control of the launched ball. In one embodiment, the ball state sensing subsystem 14 can assist in error correction by communicating with the closed-loop control and error correction subsystem 30. Another advantage of the ball state sensing subsystem 14 includes the ability to display the detected launch state of the ball or object to the user. Furthermore, the ball state sensing system 14 assists in automating ball direction control by providing feedback that can be used by the ball direction control subsystem 24, which allows for control of the state of the ball before it enters the machine's launch mechanism, as described below. Incorporating the subsystem 14 into the throwing machine 11 for the above purposes or to facilitate the addition of these and other features provides the systems and methods of the present disclosure with at least one advantage over current throwing machines.

[0028] The state of the ball may be considered to include at least one of the following parameters of the ball: its position, orientation, velocity, and / or angular velocity. Alternatively, the state of the ball may be determined or derived by directly measuring other features or characteristics of the ball, such as, but not limited to, its trajectory, acceleration, and spin magnitude, and inferring its state from those features.

[0029] Referring to FIG. 1b, a schematic diagram of one embodiment of ball state sensing subsystem 14 is shown. In this embodiment, ball state sensing subsystem 14 includes a vision system 50 having a set of at least one camera 52 calibrated to observe known regions or features of interest on the thrown or launched object. This is shown in more detail in FIG. 6. Vision system 50 of FIG. 1b may also include a set of sensors 54 and / or measuring devices 56. Ball state sensing subsystem 14 may further include processor 58, which may be the same as processor 26. In this embodiment, ball state sensing subsystem 14 is integrated into throwing machine 11, although it may also be a separate component that interacts with throwing machine 11.

[0030] During the calibration process, measuring devices 56, such as rulers and other objects of known dimensions, are placed in the field of view of each of the cameras 52 and captured images. These images are used by the vision system 50 to determine how the positions of different objects in the captured images correlate to the positions of objects in the machine's local frame of reference or a local or global frame of reference in which the machine resides. The cameras 52 can capture images of the ball to determine its position and orientation. Multiple images of the ball as it is being launched or after it has been launched are taken at known time intervals; the position of the ball at each time interval provides the ball's position, while the change in position per unit time can be used to determine the ball's velocity. Similarly, the ball's orientation can be determined from the detected orientation of the ball in the images from the cameras 52, and the change in orientation per unit time can be used to determine the ball's angular velocity. Each camera preferably can extract accurate information about the dimensions perpendicular to its viewing axis, so multiple cameras positioned at different angles can accurately extract all three dimensions of position and velocity.

[0031] In a preferred embodiment, ball state sensing system 14 extracts the position, orientation, velocity, and angular velocity of the ball after it is launched. Each of these characteristics has a fully formed three-dimensional (3D) component. The system can extract these characteristics from video data using a single camera or multiple cameras built into the pitching machine or placed in an area adjacent to the machine.

[0032] Figure 6 shows one arrangement of cameras that can extract this information. Figure 7 shows an implementation of this extraction using a baseball from a single camera's perspective, where the camera takes multiple pictures at known times to extract the ball's position and use the change in position to determine its velocity. In another implementation, multiple cameras can be used to report more dimensions and improve robustness.

[0033] To extract the ball's orientation, a 3D model of the ball being thrown is retrieved from database 31. The 3D model includes known features of the ball, such as, but not limited to, visually distinct features of the ball's texture and / or features of the ball's shape. These features may be unique, such as a unique marking on the ball, or may be general, such as a feature that occurs multiple times on the ball. An example of a feature used in one implementation is the stitching on a baseball.

[0034] FIG. 8 shows a virtual 3D model of a baseball that includes stitching as a feature. In this implementation of the ball state sensing subsystem 14, an analytics-based (Harris feature detection) or example-based (machine learning) feature extraction algorithm extracts features from images of the ball captured by the set of cameras 52 and determines the orientation of the ball by aligning features of the virtual 3D model with the extracted features in the images. Alignment can be performed both before launch and while the ball is being launched. A feature matching algorithm, such as a brute force matcher or a FLANN matcher, then determines which orientation the 3D model should have to cause the set of cameras to observe the features as seen in one or more images of the launched ball. In one embodiment, one or more algorithms obtain renderings of the 3D model's features in many orientations and then match the renderings to the images to determine which orientation the ball is in the images. FIG. 9 illustrates one process for extracting the orientation of a ball (a baseball) by extracting known features (the stitching on a baseball) using a single camera, comparing images with the extracted features and renderings of those features at various angles, and then extracting the 3D orientation of the best-matching rendering. In this example, the best match is defined as the rendering of the 3D model where the features in the rendered image have the highest pixel-by-pixel overlap with the features in the extracted image. While FIG. 9 illustrates orientation extraction using a single camera, the system may include multiple cameras. If the system includes multiple cameras that independently extract orientation information, the ball state sensing subsystem 14 may provide a more robust knowledge or understanding of the ball's orientation. Extracting angular velocity simply involves extracting the ball's orientation at several instances in time and determining the change in orientation per unit time using the equations shown in FIG. 7.

[0035] In another example, the surface of the ball can be extracted from an image of the ball using the known shape or type of the ball. Features on the image can then be projected onto the surface of the ball as 3D features. These 3D features are then matched with features on a virtual 3D model of the ball. As shown in Figure 9, the change in orientation between the features in the image and the features on the virtual 3D model helps determine the orientation of the ball in the image.

[0036] In another embodiment of the system of the present disclosure, system 10 may include two ball state sensing subsystems 14. One ball state sensing subsystem determines the orientation of the ball as it is inserted into throwing machine 11, and the other ball state sensing subsystem determines the state of the ball as it is launched from machine 11. In some embodiments, only one ball state sensing system 14 may be used for either or both functions.

[0037] It is understood that the ball state sensing system or subsystem 14 may be implemented using at least one vision system that is separate from the throwing machine 11 rather than being incorporated within the machine. Other systems, such as radar systems, motion sensors, or any sensor system capable of extracting the state of the ball at a point in its trajectory, may also be used in place of a vision system.

[0038] With respect to ball direction control subsystem 24, as shown schematically in FIG. 1c, subsystem 24 can help control the orientation of the ball as it enters and exits throwing machine 11. An advantage of ball direction control subsystem 24 is that it automates the control of ball direction, eliminating the need for a user to position the ball in an expected direction each time a ball is fired, which can be very time-consuming. Controlling the orientation of the ball allows the throwing machine to be more accurate and provides improved control over the ball's trajectory.

[0039] 1c, a schematic diagram of one embodiment of ball direction control subsystem 24 is shown. In this embodiment, subsystem 24 includes conveyor belt unit 60, which includes at least two conveyor belts, motor control unit 62, and processor 64, which may be processor 26 of throwing machine 11. In another embodiment, ball state sensing system 14 may be part of or integrated with ball direction control subsystem 24. In one embodiment, ball direction control subsystem 24 provides the ability to programmatically control the orientation of the ball and programmatically control the ball delivery rate to ball launch subsystem 20.

[0040] Controlling these parameters of system 10 is beneficial to trajectory reproduction because the particular orientation of the ball affects its aerodynamic characteristics and influences the input direction and velocity of the ball as it enters ball launch subsystem 20, thereby affecting how pitching machine 11 interacts with the ball. Failure to control these aspects of pitching machine 11 can introduce random errors, creating unpredictability and ultimately limiting trajectory controllability. The appearance of the ball throughout its trajectory is also significantly affected by input direction, as exemplified in FIG. 11, which shows the appearance of a baseball due to motion blur in various directions and spin axes.

[0041] Using the ball direction control subsystem 24, the disclosed system can direct the ball in a desired direction regardless of its initial orientation, allowing for precise orientation and positioning. The importance of automatic orientation relates to the desired repeatability of the throwing machine, both in terms of the controllable interaction between the machine and the ball and the controllable ball trajectory upon leaving the machine. Another importance of automation relates to the ease and speed with which balls can be repeatedly delivered to the throwing machine 11.

[0042] Another schematic embodiment of ball control direction subsystem 24 is shown in FIGS. 10a and 10b. As shown, system 24 includes a multi-conveyor system 60, which in this embodiment includes three conveyor belts and associated mounts (not shown). It is understood that any number of belts and corresponding motors or motor control units are contemplated. Fewer than three belt motor systems can be used in combination with a rotation mechanism to enable any three-dimensional orientation of the ball. It is understood that other belt motor systems can also be used to achieve any three-dimensional orientation of the ball.

[0043] During operation, the system or throwing machine 11 receives or accepts one or more balls in an unspecified direction from a source, such as a hopper, basket, or some other container. The source may actively pass one ball at a time or may allow the balls to pass passively in an uncontrolled manner. To move the ball forward in the direction control subsystem 24, all or some of the conveyor belts 60 move forward, dragging the ball along by friction. As the ball enters the multi-conveyor belt unit 60, the ball state sensing system 14 extracts the ball's orientation. The conveyor belts 60 can then be moved relative to one another to change or manipulate the ball's orientation based on a determination by the processor 64. The subsystem 24 generally detects the ball's orientation and reorients the ball by accepting or accepting a target or desired direction and determining the required change in direction between the current direction and the desired direction. The processor or processing unit 64 then determines the combination of conveyor movements that can provide the required change in direction and sends commands to the motor control unit 62 to provide the conveyor movement. The system can optionally check whether the ball is correctly oriented using the ball state sensing system 14. Figure 12 shows one commonly used process for reorienting the ball. Figure 10b shows an example coordinate system for the directional control system.

[0044] As shown in FIG. 12 , a desired direction is received or determined (1200) by processor 64. This desired direction may be based on a specification of the ball launch state. Next, the system determines (1202) the current orientation of the ball as received from the source. Next, the system determines (1204) the conveyor movement required to orient the ball from its current orientation to the desired direction. In certain examples, the target or desired direction is input by a user as a quaternion, a set of Euler angles, or another way of describing a direction. The target or desired direction can also be input by recreating the direction of a ball whose trajectory was previously tracked via trajectory selection interface 34.

[0045] The conveyor movement is then sent 1206 as a signal to the ball direction subsystem 24 to move or orient the ball from its current orientation to the desired orientation before the ball is launched.

[0046] After the conveyor motion is transmitted on the ball, the system can check 1208 the updated direction of the ball to see if 1210 the ball's direction is close enough to the desired direction. If not, another conveyor motion can be determined by the processor to move the ball again 1204 to bring the ball closer to the desired direction. If the ball is close enough to the desired direction, the ball can be delivered or launched by ball launch subsystem 20.

[0047] An example is shown in Figures 11a-11d, and assume the desired direction of the baseball is shown in Figure 11d. If the input direction or current direction is shown in Figure 11a, processor 64 determines the conveyor movements necessary to reorient the baseball from its current direction to the desired direction. For example, processor 64 may determine that conveyor system 64 needs to rotate the baseball about the X-axis (Figure 11b), and then rotate the baseball about the Z-axis (Figure 11c) before rotating the baseball again about the X-axis (Figure 11d) so that the baseball is oriented in the desired direction before launch.

[0048] For the system of Figures 11a-11d, in one example, rotation about the Z axis can be performed by keeping Conveyor 1 (1) stationary and moving Conveyors 2 (2) and 3 (3) in opposite directions. Rotation about the X axis can be performed by moving Conveyor 1 (1) in one direction and moving Conveyors 2 (2) and 3 (3) together in the opposite direction. This example of XZX conveyor movement is merely an example and is not the only way that the ball direction subsystem 24 can reorient a ball. Also, a baseball is used merely as an example of an object that can be reoriented using this system.

[0049] In another embodiment, the ball direction system may include a set of suction cups rather than a conveyor belt. To provide the same conveyor motion as described above, one suction cup on the X axis (beside the ball) grasps the ball and rotates it in the X direction, and another suction cup on the Z axis (below the ball) grasps the ball and rotates it in the Z direction. Then, using the same method described above, the ball state sensing subsystem 14 and processor 64 can determine the X and Z rotation combinations required to move the ball from any of its initial orientations to any desired direction. This could include an XZX combination of rotations or a ZXZ combination of rotations. Finally, a third (pneumatic or electric) linear actuator can grasp the ball (from behind the ball) and push it forward at a controlled velocity into the ball launching subsystem 20.

[0050] Precise positioning control of the conveyor results in precise reorientation of the balls. In this example, this can be achieved with a standard motor control unit 62. More specifically, a stepper motor with a stepper motor driver can be used to control the conveyor position with high precision.

[0051] In accordance with controlling the ball delivery rate, control of the rate at which balls are delivered to the ball-firing machine can be implemented as described below. By moving all of the conveyors simultaneously, the balls can be moved translationally back and forth within the machine at a known speed. In the example shown in FIG. 10a, if all of the conveyors are moved at the same speed, the balls will advance at a speed equal to the speed of the conveyors. In this manner, the rate at which balls are inserted into the machine can be controlled. Precise speed control of the conveyors can be achieved using the motor control unit 62, as described above.

[0052] Additionally, connecting the ball and the conveyor improves the accuracy of the overall system. The ball direction control subsystem 24 may further include tensioners 65 and supports to control the contact force between the conveyor 60 and the ball to prevent or reduce slippage between the conveyor and the ball, which affects accuracy. As will be appreciated, the force between the ball and the conveyor affects the delivery of the ball to the throwing machine. Elements controlling the force between the ball and the conveyor are shown in FIG. 13. The relative positions of the wheels shown in FIGS. 10a and 10b determine both the force of the conveyor on the ball and the tension in the conveyor itself. For additional tension, other tensioners can be added to the conveyor system 60. The position of the supports shown also affects the force between the conveyor system and the ball.

[0053] The ball direction control subsystem 24 may be implemented by a belt-fed system as described above, or by a robotic arm, human insertion, mechanical tool, or another device. This example is not intended to limit in any way the present disclosure or its application or uses. The methods described are also not intended to limit potential applications or uses.

[0054] As shown schematically in FIGURE 1d, with respect to machine location and position control subsystem 28, ball direction control system 24 provides a means to control the initial direction of the ball, while the overall state of the ball at launch includes a combination of its position, direction, velocity, and angular velocity. Because the local position of the ball within throwing machine 11 at launch is mechanically controlled (as described above with respect to ball direction control subsystem 24), the position of the machine within its environment determines the launch position of the ball within that environment. Furthermore, because the local orientation of the ball relative to machine 11 is controlled by ball direction control system 24, the orientation of the ball relative to the environment is dependent on the orientation of the machine.

[0055] We now describe how to control the launch attitude of the ball relative to the environment by controlling the attitude of the ball relative to the machine and controlling the attitude of the machine relative to the environment, where the term attitude refers to a combination of both the position and orientation of an object.

[0056] In one embodiment, machine localization and positioning control subsystem 28 includes a position sensing device 70, a spatial model of the environment 72, a processor 74 or processor 30, an actuator 76, and an actuator control unit 78. System 28 may also include markers 80 for indicating features. Machine localization and positioning control subsystem 28 may function to control the position of the throwing machine 11, thereby controlling the position of the ball within the environment.

[0057] First, position sensing devices 70 or sensors can be placed on pitching machine 11 to detect the relative position of the pitching machine (or the sensor itself) with respect to the environment or environmental features. These sensors can include, but are not limited to, ranging devices that read the distance to features or structures (such as posts or trees) proximate to the pitching machine and / or image sensors that detect the location of features relative to the image sensor's field of view. Markers 80 can be placed in the environment to indicate or act as features, or features of the natural environment can be used. Processor 74 can then utilize spatial model 72 of the environment to compare the spatial model with the position sensor data and determine the pitching machine's location within the environment.

[0058] In another method of location determination, position sensors 70 can be placed at the locations of known environmental features, and the position sensors 70 can detect the features of the throwing machine 11. The processor 74 can then compare these position readings with a spatial model 72 of the environment to determine the machine's attitude. In another alternative method, global positioning (GPS) data and other sensor data on the machine, such as GPS, compass, and accelerometer data, can be combined by the processor 74 with the spatial model 72 of the environment to determine the machine's attitude relative to its environment.

[0059] In a particular pitching machine embodiment, the position sensing device 70 is embodied as a camera positioned at a known location on the machine 11. FIG. 15 illustrates the configuration of the cameras on the pitching machine. Markers 80, embodied as APRIL tags, are placed at known environmental features such as home plate, first base, and third base, and the pitching machine is positioned on the pitcher's mound. An example of the placement of the markers 80 is shown in FIGS. 16a and 16b. When these markers are in the field of view of the camera or position sensing device 70, the camera obtains information regarding the relative position between the pitching machine and the markers. In one embodiment, stereoscopic vision is used to determine the distance from the camera to the markers, and the position of the markers in the camera's image is used to determine the position of the markers along a plane perpendicular to the camera's line of sight. A spatial model of the environment is embodied as known coordinates of the markers in the environment's coordinate system. A processor correlates the positions of the markers read by the camera with the spatial model to determine the machine's position that best represents this observational data.

[0060] Once accurate measurements of the pitching machine's position and orientation in its environment are obtained, these parameters can be physically controlled, such as by actuators 76 and actuator control unit 78. Controlling the machine's position and orientation further controls the launch conditions of the ball toward the user (or player) and allows for further control over the ball's trajectory. To control the machine's position and orientation, machine location and orientation subsystem 28 provides mechanisms that can move the pitching machine translationally and rotationally.

[0061] 17a-17e show an example of a gimbal-gantry system in which the position of the pitching machine 11 is controlled by a one-, two-, or three-axis gantry and the machine's orientation is controlled by a gimbal, which may also be a component of the machine localization and positioning control subsystem 28. In this example, a standard position motor control unit, which may be considered an actuator control unit 78, affects the gantry position and the gimbal orientation. The control unit 78 that moves the gimbal and gantry includes the actuators 76 of the machine localization and positioning control subsystem 28. Alternatively, the system may be implemented by a robotic arm or another method or device, whereby the actuators 76 physically move the system as controlled by the actuator control unit 78.

[0062] In general, the localization subsystem 28 determines the actual attitude of the pitching machine and receives a desired attitude from the user. The attitude change to move from the actual attitude to the desired attitude is calculated by the processor. The desired attitude can be input by the user or determined by user input. The motors of the gantry system then perform the required position changes, and the motors of the gimbal system perform the required orientation changes. The localization system 28 then checks that the actual attitude is close enough to the desired attitude. If not, the system repeats the process. If it is close enough, the process is complete. Figure 18 shows an example of the above process.

[0063] As shown in FIG. 18, first, a desired attitude for the throwing machine is determined (170). The desired attitude is determined based on input from a user. Next, an actual attitude for the throwing machine is determined (172). The gimbal and gantry movements required to move the machine from the actual attitude to the desired attitude are determined (174). This movement is then transmitted, such as in the form of a signal, to the respective gimbal and gantry systems (176). An updated attitude for the machine post movement is then determined (178). If the updated attitude is deemed sufficiently close to the desired attitude, the throwing machine movement may be deemed complete (180); if not, new gimbal and gantry movements are determined (174).

[0064] In another embodiment of the machine localization and position control subsystem, the machine can be more easily calibrated to a known starting position in its environment. The localization system 28 can then use the actuator control unit 78, actuators 76, and processor 74 to move relative to that known, calibrated starting position to achieve position control. Sensors, such as ultrasonic or inductive proximity sensors, can be further added to this method of calibrating the machine to a known starting position in the environment. Calibrating the machine's position to a position where these sensors give known signals allows the localization system 28 to recalibrate itself and use readings from these sensors to determine the machine's position.

[0065] With respect to ball velocity and spin control subsystem 22, ball direction control system 24 and machine position control system 28 control the position and direction of the ball at launch, while the launch velocity and spin of the ball can be controlled using ball velocity and spin control subsystem 22 and methods associated with the ball velocity and spin control subsystem, and the ball velocity and spin control subsystem can be part of ball launch subsystem 20.

[0066] Figure 19 shows a system capable of imparting 3D spin and any output velocity to a ball. This system includes a set of, preferably three, wheels, each capable of rotating at an independent speed. Each wheel is designed to rotate about an axis perpendicular to the ball's exit direction and the wheel's spin direction. This rotation is sometimes referred to as alpha rotation. A three-wheel system is shown in Figures 20a and 20b, each of which shows a machine with a different alpha rotation angle for the wheels. The three independent wheel speeds together impart topspin and sidespin, as well as output velocity, to the ball. The amount of alpha rotation, in conjunction with the wheel speed, imparts a three-dimensional spin, known as rifle spin, to the ball. It is understood that the desired launch conditions of the ball can be imparted via a wheel-based system, as in this example, or via a robotic arm, pneumatic actuator, or the like.

[0067] In operation, the throwing machine 11, via the ball velocity and spin control subsystem 22, imparts three-dimensional angular velocity to the ball and one-dimensional linear velocity to the ball as it is launched in accordance with ball state specifications or ball launch commands. The orientation of the throwing machine, controlled by the above system, determines the direction of the ball's launch velocity. The ball's three-dimensional orientation is controlled by the ball direction control system described above, and finally, the launch position is controlled via control of the machine's position by the position control system 28. Thus, most or all components of the ball's launch state, i.e., position, orientation, velocity, and linear velocity, can be controlled using the systems of the present disclosure.

[0068] With respect to the Closed Loop Control and Error Correction Subsystem 30, this subsystem 30 may be used to assist in further controlling the state of the ball at launch using the Machine State to Ball State Mapping Subsystem 33. Subsystem 30 may assist in performing error correction of the ball launch state, taking into account factors such as, but not limited to, machine wear, external environmental factors, and / or imperfect models of the ball-machine interaction, each of which may contribute to stochastic or systematic errors in the launch of the ball.

[0069] In one embodiment, use of the error correction subsystem 30 requires that the ball state sensing subsystem 14 be integrated with the throwing machine 11. While ball tracking technology has been used in connection with the throwing machine to evaluate the machine in this disclosure, the ball state sensing subsystem 14 is used, in one aspect, for error correction. Methods for incorporating ball state sensing into the throwing machine for error correction and closed-loop control, ultimately for the purpose of precise trajectory control, are now discussed.

[0070] An initial model of how the machine state can be set to impart or generate a particular ball state is first formulated. This model constitutes the initial state of the machine state-to-ball state mapping subsystem 33. The parameters of this model can be informed by experimental data, a theoretical physics model, or a combination thereof. In one embodiment, a theoretical physics model is constructed to determine how the state of the throwing machine leads to or affects the output ball state. In one embodiment, some parameters of the initial model are variable, and throughout the life of the machine, the closed-loop control system 30 updates these parameters to minimize or reduce error, such as by statistical regression or gradient descent. This process can be embodied in other ways. The machine state-to-ball state mapping subsystem 33 may be a bidirectional model, allowing both control of the machine state given a desired ball state and prediction of the ball state given the machine state. It is also possible for the machine state-to-ball state mapping subsystem 33 to be unidirectional.

[0071] A ball state sensing system 14 incorporated into or used in conjunction with the machine is then used to detect errors in this model. When the ball is launched, the model determines the expected output ball state, and the ball state subsystem 14 determines the actual output ball state, with error being defined as the difference between the actual and expected output ball states. The closed-loop control and error correction subsystem 30 then modifies the parameters of the initial model with the goal of minimizing or reducing this error.

[0072] In the following exemplary embodiment of a system, the present disclosure is directed to a three-wheel machine, a baseball pitching machine, that imparts a launch to a baseball.

[0073] A theoretical model is developed to relate wheel speed and wheel angle to the output velocity and spin of the ball. An example of such a model is shown in FIG.

[0074] As the machine runs and data is recorded for expected and actual output ball states, the errors are stored in memory. Then, throughout operation, the parameters of the model are re-fit to the data in a way that minimizes or reduces the errors. The use of this regression process gives this system an advantage over current pitching machines.

[0075] In one embodiment, this can be accomplished by least-squares regression. Alternatively, this can be determined by training a feedforward neural network with the data and continuously updating the neural network's parameters via gradient descent or other optimization techniques. Figure 22 illustrates the process of updating the machine parameters using error data collected from past throws. Figure 23 provides the mathematical equations for the process.

[0076] With reference to the flowchart of FIG. 22, first, a set of adjustable parameters P in the machine state-to-ball state mapping model 33 is selected (210). Next, data is collected (212) from the ball being launched, such as by measuring (214) the expected and actual outcomes of the launch. An error E can then be calculated, which can be thought of as the difference between the actual output (the actual launch ball state) and the expected output (the desired launch ball state). The gradient of the error is determined (216) with respect to the parameters. This may be thought of as dE / dP. Finally, the parameters P are updated by processing the parameters with the gradient of the error. For example, the value of b(dE / dP) can be subtracted from the parameters P, where b is an arbitrary constant.

[0077] The ball state-to-trajectory subsystem 32 provides the functionality for mapping output ball states and resulting trajectories. One benefit of this functionality is improved trajectory control.

[0078] The ball state-to-trajectory mapping generated by the ball state-to-trajectory subsystem 32 can predict a ball trajectory given that state, predict an instance of a ball state given that trajectory, or any combination thereof. This mapping can take the form of an aerodynamic model of ball motion, a neural network, or other method; it can be theoretically determined using a physical model, fitted to a series of observations of ball motion, as in the case of a neural network, or some combination thereof. In one embodiment, the model relating ball states to trajectories is appropriate for many observations of ball motion. In one embodiment, the mapping takes the form of a neural network that accepts a ball state as input and outputs a ball trajectory, or that accepts a ball trajectory as input and outputs a ball launch state. The ball state-to-trajectory mapping generated by the ball state-to-trajectory subsystem 32 can be a bidirectional model. This subsystem can predict a trajectory given a combination of ball state and environmental parameters. This subsystem can also predict a ball state given a trajectory and any combination of ball state and environmental parameters. It is also possible that the ball state-to-trajectory mapping subsystem 32 is unidirectional.

[0079] In one embodiment, a different model for relating ball state to its trajectory is learned for every different type of ball in use. Because this mapping is independent of machine state, it is also independent of machine wear and other factors and can become more robust over time. One advantage of this disclosure is that the model is learned once for each ball type and rarely retrained.

[0080] Regarding the Trajectory Ball Launch Selection Interface 34, the interface allows a user to select a desired trajectory for a ball launched from the throwing machine. This interface facilitates a method for a user to specify desired components or characteristics of the launched ball, such as the launch conditions of the ball, the path the ball follows after launch, and the appearance of the ball as it follows the launch path. As used herein, the term trajectory refers to any combination of the path the ball follows after launch and the appearance of the ball as it follows the launch path. Several methods for implementing this interface are described.

[0081] In one embodiment, after receiving input from a user regarding desired characteristics for the ball launch, interface 34 generates a trajectory in virtual 3D space representing the trajectory to be replicated. Interface 34 can also generate a virtual trajectory by selecting a previously tracked trajectory, such as one stored in a database. This database can be embodied as an external database containing previously tracked trajectories or simulated trajectories that the machine can replicate. These can then be displayed to the user, as desired. These examples of interface 34 are not intended to limit in any way the disclosure or its potential applications or uses. These included interfaces allow a user to select control of the ball's output state, select parameters for the output path, select a previously tracked trajectory to replicate, or select any combination thereof for any ball type.

[0082] In another embodiment, the orbit selection interface 34 implements or executes a method for selecting orbit parameters to control, which includes parameterizing the orbit in a user-understandable manner and presenting these parameters to the user for selection.

[0083] In one embodiment, these parameters may be presented to the user in one or more lists or by sequential selection in separate stages. FIG. 24 shows an interface in which the parameters describing the trajectory include three points the ball must pass through to specify its path and a direction from which to begin to specify the appearance of the ball as it moves. In one embodiment, the three points may include the start of the trajectory, the end of the trajectory, and a point along the trajectory path between the start and end points. It is understood that any number of points may be used. If not enough data is provided to completely specify the trajectory, one of several trajectories that fit the specifications may be used.

[0084] Given excessive input constraints, there may be no trajectory that meets the specifications. In this case, the user can be notified that the trajectory is invalid for the particular ball type, or a more feasible trajectory with similar specifications can be used. In this example, the user specifies the 3D coordinates of all three points, as well as the roll, pitch, and yaw of the initial ball orientation. The planned trajectory is then displayed to the user prior to launch for their confirmation.

[0085] Any parameter of the ball's launch, such as output velocity or spin, any parameter of its trajectory, such as its position at a particular point after launch, or any parameter of its appearance, such as the orientation of the ball's visual features as it travels its trajectory, can constitute selectable parameters as part of the specification of a desired pitch. FIG. 27 also shows an example interface through which a user can select various parameters of the ball's launch conditions to be generated. In this example, these parameters include, but are not limited to, velocity, spin rate, spin axis, release position, final position, ball direction, and release angle (including, but not limited to, roll, pitch, and yaw). The interface need not display any aspect of the trajectory to the user prior to launch, but in this example, the trajectory and appearance are displayed to the user independently. The entire trajectory can also be displayed to the user, allowing for animation of the ball as it travels along the trajectory.

[0086] In another embodiment of the trajectory selection interface 34, a user is provided with the ability to simulate a trajectory in a virtual 3D space before selecting a trajectory for the ball to be launched by the pitching machine. In this example, the user can draw the desired path for the ball to follow in a 3D input box via a touchscreen, stylus, mouse, touchpad, or the like. For ease of use, multiple 2D windows to the 3D input can also be implemented. The trajectory selection interface 34 also provides the user with the ability to visually control the desired appearance of the ball as it follows the specified path. This can be achieved by allowing the user to move the input direction of the ball and view the resulting ball appearance. A schematic diagram of the trajectory selection interface 34 for this embodiment is shown in FIG. 25.

[0087] In another embodiment, the trajectory selection interface 34 may provide the user with the ability to select a previously tracked trajectory or ball launch to be reproduced. In this embodiment, the interface 34 displays previously tracked ball trajectories to the user, which may be stored in a database. In one example, the user need only browse the entire database and select a past trajectory for launching the ball. The interface may also allow the user to select various parameters of the trajectory, and the interface will then search the database for matches appropriate to the user selection. The user is then prompted to select from a subset of trajectories that match those searches. Examples of search parameters include, but are not limited to, the initial, intermediate, or final position of the trajectory; the person, organization, or machine that created the trajectory; the date and time the trajectory was tracked; and the velocity, angular velocity, or appearance of the trajectory at any point. In this example, the user can select a single trajectory to be launched, a set of trajectories to be launched in any order, or a set of trajectories that can launch random trajectories. FIG. 26a illustrates an interface that allows the user to select and reproduce a previously tracked trajectory. FIG. 26b shows an interface that allows the user to filter the database of tracked trajectories for reconstruction.

[0088] The trajectory / ball launch interface may also provide the user with the ability to select one or more trajectories from a set of curated trajectories. These curated trajectory sets may be generated manually or algorithmically for purposes including, but not limited to, simulating a set of trajectories that might be generated by a human (such as an opposing athlete) or for improving a user's particular ability to interact with a launched ball or object. FIG. 28 is a schematic screenshot showing a curated list of trajectories in baseball training. The trajectories in this example may be curated for recreational, athletic training, or other purposes. FIG. 29 is a schematic screenshot showing a curated list of trajectories intended to simulate a set of trajectories that might be generated by a particular human in a particular baseball training situation.

[0089] An algorithmically generated list can be achieved by aggregating simulated or previously tracked pitches generated by a human under known conditions (i.e., known game conditions, known opponents, or other conditions) to simulate which pitches are likely to be thrown in the future. An algorithmically generated list can also be achieved by aggregating simulated or previously tracked pitches that match a set of trajectory conditions. In one example, in the field of baseball, such an algorithm simulates a human pitcher by aggregating a set of pitches under specific game conditions, such as a specific batter, a specific pitch count, or other conditions. In another example, in the field of baseball, such an algorithm targets specific improvements to a batter's performance by aggregating pitches that match conditions the batter wants to improve, such as a specific pitch type (e.g., fastball, curveball), a specific location around the strike zone, a specific release position, or other trajectory conditions, or a combination thereof.

[0090] Results tracking subsystem 15 provides a user with the ability to track the results of interactions with the trajectories or launched balls generated by the system. Subsystem 15 may perform at least one of: generating a report based on the results of the user's interactions with one or more launched balls; generating an analysis based on the results of the user's interactions with one or more launched balls; and making training recommendations based on the results of the user's interactions with one or more launched balls.

[0091] These interactions or outcomes can be tracked manually or using an external automated measurement system. The results can then be stored in a database for aggregation and analysis. The integration of outcome tracking with the controlled trajectory interactions generated by the system 10 constitutes an improved experience using the throwing machine. The interaction between the user and the generated trajectory (or launched ball) is tracked by the outcome tracking device 38 and stored in the database 40 of the result tracking subsystem 15. The outcome tracking device can be embodied as any sensing device that measures the user's biomechanics, etc., as the user interacts with the generated trajectory or launched ball while preparing to interact with the trajectory or launched ball, during interaction with the ball, and after interaction with the ball. The outcome tracking device can also be embodied as a sensing device that measures the outcome of the user's interaction with the ball (i.e., whether the user hit or missed the ball, and where the ball went afterwards). Finally, the outcome tracking device can be embodied as an interface that allows a human to input information regarding the outcome of the user's interaction with the trajectory. The result tracking system 15 can be incorporated within the interface 13 or can be separate from this interface. In one embodiment of the result tracking subsystem, the interface 13 prompts a human to input the results of the ball interaction after a trajectory is generated from the machine. FIGS. 30a and 30b provide schematic screenshots of this embodiment. FIG. 30a shows that a human can press the "fire" button on the interface to prompt the machine to generate a selected trajectory or fired ball, and then a pop-up screen, shown schematically in FIG. 30b, prompts the human to input whether the ball was hit, missed, fouled, or not swung at by the user. This example shows a specific scenario from a baseball training session. In this example, the result tracking subsystem 15 is within the interface 13, but an automatic result tracking device, such as a sensor, can eliminate the need for a human to input the results, thereby eliminating the need for a human input method.

[0092] The result tracking subsystem 15 also enables the system to improve the user experience by providing the user with analytics regarding their use of the machine and their interaction with known ball trajectories. The result tracking interface 36 utilizes information from the result tracking subsystem 15 to present user information related to the user's interaction with the trajectories generated by the machine. In one embodiment, the result tracking interface 36 presents user statistics regarding the user's interaction with the trajectories in real time as the user uses the machine. FIG. 31 shows an example of this interface in baseball training, where the user is shown the number of trajectories generated (throws), the number of trajectories that made contact with the bat, the number of trajectories the user missed, and more information. This example also shows the user their batting average against pitches in various locations in the strike zone and against various pitch types. The interface can also generate reports that display to the user information regarding their interaction with the generated trajectories after using the machine.

[0093] The outcome tracking subsystem 15 may provide the functionality to track some or all of the ball launches to generate sets of analytical data or other information for further review or processing. In one embodiment, the subsystem 15 may track the outcome of batter gameplay (hit, foul, ball) for a selected ball launch trajectory. Other embodiments of this subsystem may include, but are not limited to, tracking other criteria, such as human biomechanics (before, during, and after trajectory interactions), physical object interactions (e.g., tracking bat-ball interactions), and / or gameplay outcomes. The outcome tracking subsystem may use any combination of manual or automatic sensing techniques. This information is then stored in a user database.

[0094] Referring to FIG. 3 , a flowchart of a method of subsystem communication when user input is provided is provided. In one embodiment, a user interacts with trajectory selection interface 34 to input parameters or characteristics of a desired trajectory or ball launch state. FIG. 3 includes two examples of how a user may select, input, and / or determine a desired ball launch output. Both exemplary methods utilize trajectory selection interface 34, which allows a user to specify desired characteristics of the ball launch as the ball is thrown from throwing machine 11. In one example, this may include at least one of selecting the ball's path after release, selecting the ball's appearance throughout its path, and selecting the ball's launch conditions as outlined above. These parameters or characteristics may be selected directly from interface 34 or may be selected from a database trajectory and replicated as disclosed above.

[0095] In one method (seen in FIG. 3 , Illustrative Example A), a user submits trajectory specifications via trajectory selection interface 34, which are received by system 10. The system then processes the trajectory specifications (either via processor 26 or a processor within a controller (not shown)) via ball state-to-trajectory mapping subsystem 32 to determine or generate ball launch state specifications to cause the launched ball to conform to the desired specifications entered or selected by the user. These ball launch state specifications are then transmitted by the machine state-to-ball state mapping subsystem, informing throwing machine 11 how to configure itself to generate the desired ball launch. The configured and oriented ball is then launched by the throwing machine (or ball launch subsystem). Alternatively, in another method (seen in FIG. 3 , Illustrative Example B), a user directly inputs ball launch state specifications into trajectory selection interface 34, which are then transmitted to throwing machine 11 via the machine state-to-ball state mapping subsystem.

[0096] Referring to Figure 2, a flowchart outlining a method for launching a ball is shown. Figure 4 illustrates the subsystem communication of that method in one embodiment. After receiving 300 a ball state specification, trajectory specification, or input from a user, such as via trajectory selection interface 34, the specification is processed 302 by controller 12 into ball launch instructions (including machine target states). These ball launch instructions are then transmitted 304 via controller 12 to various subsystems of the device to prepare for launching the ball based on the ball state specification.

[0097] The ball to be thrown is then manipulated by the system according to the ball launch command, which preferably includes trajectory information (306). For example, the ball direction control subsystem 24 can receive the ball launch command and then manipulate the ball from the source to direct the ball in the desired direction as disclosed above. The machine location and position control subsystem can also receive the ball launch command and reorient the machine based on the ball launch command. The ball velocity and spin control subsystem 22 can also receive the ball launch command to understand the desired velocity and spin of the ball when it is launched.

[0098] The ball is then launched (308) through the ball launch subsystem with the assistance of the ball velocity and spin control subsystem 22.

[0099] Ball trajectory and other post-launch criteria can be monitored as described above to provide error corrections to the system or store the trajectory in a database for future trajectory selection, if desired (310). Additionally, other outcome-based criteria can be stored in the system (312) and displayed to the user via the outcome tracking interface 36.

[0100] 5 illustrates another method for executing a ball launch, where the ball launch is based on a machine state specification received by the controller. The throwing machine 11 receives the ball launch command and generates the desired machine state specification. After receiving the ball state specification or user input, the system processes the ball state, or ball launch, one or more specifications and generates a signal to send to the throwing machine that can be considered a ball launch command.

[0101] In one embodiment, the ball launch control system includes a closed-loop control and error correction system 30 that determines the machine parameters necessary to provide the desired launch conditions. After determining the machine parameters to enable the ball to be launched according to the ball condition specifications, these parameters are transmitted to the processor 26 via a set of ball launch instructions.

[0102] After the ball is launched by the machine, the ball state sensing subsystem 14 can measure the actual output (ball launched) and update itself to correct any errors that may have occurred.

[0103] As shown in FIG. 4, the machine's physical components then implement the required machine parameters or ball launch commands specified by closed-loop control system 30. During operation, pitching machine 11 physically moves and orients itself in the required or desired manner using localization and positioning system 28. After orienting itself to the pitching position, the pitching machine or system receives the ball, whereby ball direction control system 24 reorients the ball to the desired orientation. Ball velocity and spin control system 22 then imparts the required velocity and spin to the ball as it is launched.

[0104] As outlined above, ball state sensing system 14 may be used to detect and control the orientation of the ball received by the pitching machine such that it may have a dual function: As outlined above, ball state sensing system 14 may also determine the state of the ball at launch and communicate this to closed-loop control system 30.

[0105] The presented configuration of these subsystems constitutes only one way in which the described system can be embodied. This example is not intended to limit the potential implementations of such a system, nor is it intended to limit any of the possible uses or applications of the described components. Each component may have a use independent of its use in the above-described system. Furthermore, the entire pitching system may be implemented using a subset or rearrangement of the above-described components.

[0106] While the present disclosure has been illustrated and described herein with reference to preferred embodiments and specific examples thereof, it will be readily apparent to those skilled in the art that other embodiments and examples may perform similar functions and / or achieve similar results, all of which equivalent embodiments and examples are within the spirit and scope of the present disclosure.

[0107] In the foregoing description, for purposes of explanation, numerous details are set forth to provide a thorough understanding of the embodiments. However, those skilled in the art will readily appreciate that these specific details may not be required. In other instances, well-known structures may be shown in block diagram form in order to avoid obscuring the understanding. For example, specific details are not provided regarding whether elements of the embodiments described herein are implemented as software routines, hardware circuits, firmware, or a combination thereof.

[0108] Embodiments of the present disclosure, or components thereof, may be provided or expressed as a computer program product stored on a machine-readable medium (also referred to as a computer-readable medium, a processor-readable medium, or a computer-usable medium embodied with computer-readable program code). The machine-readable medium may be any suitable tangible, non-transitory medium, including magnetic, optical, or electronic storage media, including floppy disks, compact disk read-only memories (CD-ROMs), memory devices (volatile or non-volatile), or similar storage mechanisms. The machine-readable medium may include various sets of instructions, code sequences, configuration information, or other data that, when executed, cause a processor or controller to perform method steps according to an embodiment of the present disclosure. As will be appreciated by those skilled in the art, other instructions and operations necessary to carry out the described implementations may also be stored on the machine-readable medium. The instructions stored on the machine-readable medium may be executed by a processor, controller, or other suitable processing device and interface with circuitry to perform the described tasks.

Claims

1. In a system for reproducing the trajectory of a ball, A pitching machine, a ball state sensing device; a ball direction control device; a machine position determination and position control device; Ball speed and spin control device a pitching machine including: A controller for controlling the pitching machine, a combined machine state to ball state mapping subsystem and a ball state to trajectory mapping subsystem; an interface associated with the controller for a user to input a ball launch input representing a ball release state or a ball trajectory generated by the throwing machine; a controller including Processing unit and A system comprising:

2. The system of claim 1 further comprising an outcome tracker.

3. The system of claim 1 further comprising a closed loop control and error correction device.

4. The ball state sensing device is Camera set and Sensor set and The system of claim 1 , comprising:

5. The system of claim 4 , wherein the ball condition sensing apparatus further comprises a set of measurement devices.

6. The ball direction control device includes: a conveyor system; a motor control unit for controlling the conveyor system; The system of claim 1 , comprising:

7. The system of claim 6 , wherein the ball direction control device further comprises a set of tensioners.

8. The machine position identification and position control device includes: a set of position sensing devices; A set of actuators, Drive unit and The system of claim 1 , comprising:

9. The system of claim 8 , wherein the machine location and position control device further comprises a motion control system.

10. 10. An automated ball throwing method performed by the system of claim 1, comprising: receiving a user input via an interface, the user input representing a ball release state or a trajectory to be produced by the throwing machine; processing the user input to generate ball launch commands, the ball launch commands including trajectory characteristics of a trajectory path or ball launch conditions for a launched ball, the trajectory characteristics including a start point of the trajectory path and an end point of the trajectory path, and the ball launch conditions including at least one of a velocity, a spin rate, a spin axis, a release position, a final position, a ball direction, and a release angle; executing the ball launch command to prepare for the ball launch; A method comprising:

11. The method of claim 10 further comprising the step of launching the ball.

12. monitoring the ball trajectory after launch; comparing the post-launch ball trajectory with an expected ball trajectory; performing error correction based on a comparison of the launched ball trajectory to an expected ball trajectory; The method of claim 11 further comprising:

13. 11. The method of claim 10, wherein executing the ball launch command to prepare the ball for launch includes reorienting the ball from an actual direction to a desired direction based on the ball launch command.

14. 11. The method of claim 10, wherein executing the ball launch command to prepare for the launch of the ball includes reorienting a ball launching machine from an actual attitude to a desired attitude based on the ball launch command.

15. 11. The method of claim 10, wherein executing the ball launch command to prepare the ball for launch includes preparing the ball to be launched with a required velocity and spin based on the ball launch command.

16. Executing the automatic ball throwing method of claim 10; tracking a user's interaction with the launched ball; and storing results of the user interaction in a database.

17. 17. The method of claim 16, further comprising at least one of generating a report based on results of interactions with the user, performing an analysis based on results of interactions with the user, or recommending training based on results of interactions with the user.

18. The system of claim 1 further comprising a device for algorithmically generating trajectories to simulate predetermined criteria selected by a user via the interface.

19. The system of claim 1 further comprising a device for a user to curate a set of trajectories.

20. 16. The method of claim 15, further comprising the step of: firing the ball with a required velocity, three-dimensional spin, and ball direction to create a desired ball motion blur when viewed by a user.

21. The method of claim 10 , wherein the trajectory characteristics further comprise at least one point on the trajectory path between the start point and the end point.

Citation Information

Patent Citations

  • Pitching machine and control system and control method therefor

    JP2002239052A

  • Pitching machine and breaking ball control method therefor

    JP2006061231A