Swing analysis method using a swing plane reference frame

A method for analyzing sensor data from baseball swings (or swings in similar sports) that transforms data into a reference frame defined by the bat orientation and velocity at impact. The swing plane defined by these two axes provides a natural and robust reference frame for physically relevant measurements of swing characteristics. Illustrative swing metrics derived from swing plane reference frame data include: swing speed, defined as a rotational rate within the swing plane; total swing angle, defined as the angular change within the swing plane; and swing tempo, defined as the percentage of peak swing speed achieved halfway through the swing. Analyzing these metrics from multiple swings across multiple users identifies factors that contribute to peak performance. Metrics may be combined into multidimensional feature vectors that characterize a swing; these feature vectors may be used to group swings into swing styles or to match swings against similar players.

BACKGROUND OF THE INVENTION

Field of the Invention

One or more embodiments setting forth the ideas described throughout this disclosure pertain to the field of motion capture sensors and analysis of motion capture data. More particularly, but not by way of limitation, one or more aspects of the invention enable a method for analysis of a baseball swing using data captured from a motion sensor on the bat.

Description of the Related Art

Methods for analyzing baseball swings include video capture systems that record high speed video of a swing and that analyze the motion of the bat and the player from the video. These systems are typically expensive and complex, and they are not portable. Another method is to attach a motion sensor to a bat, and to analyze motion data captured by the sensor during the swing. A significant challenge for these sensor based solutions is interpretation of the sensor data. In particular, sensors typically capture data in a local reference frame defined by the sensor geometry. This sensor reference frame moves and rotates constantly throughout a swing. For baseball in particular, this challenge is more complex since the bat has rotational symmetry around its long axis; thus the batter can hold the bat in multiple orientations while swinging, which changes the sensor data. There are no known methods that transform swing sensor data from a sensor based reference frame to a meaningful reference frame that is insensitive to these changes in orientation. Existing methods emphasize vector magnitudes (such as total swing speed) in defining swing metrics because these magnitudes are invariant to rotations in the sensor reference frame. However, individual components of sensor measurements along carefully chosen transformed axes provide more detailed and more physically meaningful information.

For at least the limitations described above there is a need for a baseball swing analysis method using a swing plane reference frame.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the invention enable a method to analyze a baseball swing by transforming sensor data captured during the swing to a reference frame that reflects the physics and geometry of the swing itself. This reference frame is called a swing plane reference frame. Metrics defined with respect to the swing plane reference frame provide a detailed characterization of a swing; these metrics can be compared across swings to analyze the factors that affect swing performance.

One or more embodiments of the invention may obtain sensor data from a sensor coupled to a bat while the bat is swung to hit or otherwise contact a ball. The bat may be for example, without limitation, a baseball bat, a softball bat, or a cricket bat. The sensor may for example be an inertial motion sensor that includes any or all of a three axis accelerometer, a three axis gyroscope, and a three axis magnetometer. The sensor may be a compound sensor that incorporates multiple individual sensors of any types. A compound sensor may include multiple sensors at different locations on the bat; for example, without limitation, some sensors may be located on the knob of the bat, and other sensors may be located at the tip of the bat. Sensor data may be collected throughout the swing, for example at a rate of 10 Hz, 100 Hz, 1000 Hz, or more. The sensor data may be analyzed to determine the time of impact between the bat and a ball. For example, accelerometer data may detect the shock of the impact. A bat trajectory may be calculated from the sensor data. The trajectory may include motion data samples at multiple points in time throughout the swing; each motion data sample may describe one or more of the bat's position, orientation, velocity, angular velocity, acceleration, or angular acceleration at a point in time.

Analysis of the bat trajectory may include calculating an impact velocity vector for the velocity of the bat at the time of impact with the ball. Using the impact velocity vector, a reference frame called the swing plane reference frame may be defined for the swing. The swing plane reference frame may be formed from three axes: a first axis may be the longitudinal axis of the bat; a second axis may be the impact velocity vector; and a third axis may be orthogonal to the swing plane spanned by the first (bat) axis and the second (impact velocity) axis. The angular velocity vector of the bat, which is the rotational axis that is perpendicular to the bat's instantaneous plane of rotation, may also be used to define or calculate one or more of the axes of the swing plane reference frame. The bat trajectory may then be transformed to the swing plane reference frame for further analysis. This analysis may include creating one or more swing metrics from the transformed bat trajectory.

Illustrative metrics that may be defined using the transformed bat trajectory include the following: Swing plane speed at any point in time during the swing may be defined as an instantaneous rotational speed of the bat trajectory projected onto the swing plane. In one or more embodiments this swing plane speed may be calculated by projecting angular velocity onto the normal vector of the swing plane. Swing duration may then be calculated by defining the start of downswing as the latest time prior to impact when the swing plane speed has magnitude zero. Subtracting the start of downswing from the time of impact generates a duration metric called the time to contact, which measures how quickly the batter responds. The amount of bat motion may be measured as the total angle traversed by the bat both in the swing plane (yielding a metric called total swing angle) and in a plane orthogonal to the swing plane (yielding a different metric called off plane angle). A measure of bat acceleration through the swing may be defined by measuring the swing plane speed at the halfway point of a swing; the ratio of this halfway point swing plane speed to the peak swing plane speed through the swing is defined as the swing tempo metric.

One or more embodiments may obtain a database of swings from multiple players. Analysis of the database may be used to generate one or more performance rating functions that rate swings on their relative performance. These performance rating functions may be applied to rate future swings, and to provide feedback to users on the performance and characteristics of their swings. Metrics and other data associated with swings in the database may be combined into feature vectors that may be used for classification and matching algorithms. For example, analysis of the database may be used to group swings into swing styles, where swings associated with the same swing style have similar feature vectors. Feature vector clustering and matching may be used to provide feedback to a user on the style of his or her swing, and to identify other users with similar swings. The feature vector may also include other data related to the swing event, such as for example incoming pitch trajectory or classification, outgoing ball trajectory, or game outcome (such as foul, fly-out, home run, etc.) in order to refine classification and analysis.

In situations where sensor data is unavailable or is saturated at the limit of the sensor's range for a time interval during a swing, one or more embodiments may extrapolate sensor data prior to or after the interval to estimate actual values during this interval. Extrapolation may for example use a Bézier curve. The curve may be for example a cubic Bézier curve with four control points that are selected to match the values and the slopes of the sensor data curve at the endpoints of the interval. One or more embodiments may use a Kalman filter, or a similar state space estimator, to extrapolate sensor data into the time interval. A Kalman filter may for example incorporate a kinematic model of the bat in order to predict motion parameters when sensor readings are not able to fully track the motion, for example because the motion is outside the sensor's measurement range.

DETAILED DESCRIPTION OF THE INVENTION

A baseball swing analysis method using a swing plane reference frame will now be described. In the following exemplary description numerous specific details are set forth in order to provide a more thorough understanding of the ideas described throughout this specification. It will be apparent, however, to an artisan of ordinary skill that embodiments of ideas described herein may be practiced without incorporating all aspects of the specific details described herein. In other instances, specific aspects well known to those of ordinary skill in the art have not been described in detail so as not to obscure the disclosure. Readers should note that although examples of the innovative concepts are set forth throughout this disclosure, the claims, and the full scope of any equivalents, are what define the invention.

FIG. 1shows an overview of an embodiment of the invention. User101swings a baseball bat102to hit an incoming ball103. Data is collected throughout the swing from sensor104attached to the bat. Sensor104may incorporate any type of sensor technology or technologies to measure any quantities, such as for example any aspects of the motion, position, or orientation of the bat. The sensor may be coupled with the proximal end of the bat, the distal end of the bat or anywhere in between. In one or more embodiments the sensor104may comprise two or more sensors at different locations on the bat. For example, without limitation, sensor104may contain any or all of a three axis accelerometer105, a three axis gyroscope106, and a three axis magnetometer107. These sensor types are illustrative; one or more embodiments may use sensor data from any type or types of sensors to track the swing of bat102. In one or more embodiments the sensor104may not be physically attached to the bat; for example, the sensor may be stationary and it may observe the moving bat using technologies such as video, radar, LIDAR, or ultrasound. In one or more embodiments, data from multiple types of sensors may be combined using sensor fusion. For example, sensor data from an inertial sensor on a bat may be fused with radar data or other information from external devices to calculate a bat trajectory. Sensors may measure motion or other parameters on any number of axes. Sensors may measure these parameters at any desired frequency; higher measurement frequency may for example support more detailed analysis of the swing. For example, without limitation, sensor104may collect data once per second, ten times per second, one hundred times per second, one thousand times per second, ten thousand times per second, or at frequencies above ten thousand times per second.

In the embodiment shown inFIG. 1, bat102is a baseball bat. One or more embodiments may obtain and analyze data for the swing of any type of bat or similar object, including for example, without limitation, a baseball bat, a softball bat, a cricket bat, and in one or more embodiments, a tennis racket, a table tennis racket, a badminton racket, a squash racket, a racquetball racket, a golf club, a polo mallet, a hockey stick, a field hockey stick, and a lacrosse stick.

Data from sensor104is obtained in step110. One or more embodiments may use any data transfer technology or technologies to obtain sensor data. For example, without limitation, data may be transferred over a wireless network, over a wired network, or using a data storage medium that is moved from one system to another. Data may be obtained in real time during a swing, obtained after a swing occurs, or obtained using a combination of real-time transfer and transfer after a swing event.

Steps120through170analyze data from sensor104to characterize the swing, resulting in swing metrics180. These steps may be performed in any order, or in parallel. These steps may be performed on any system or combination of systems. For example, without limitation, any or all of these steps may be performed on a computer, a mobile computer, a laptop computer, a notebook computer a desktop computer, a tablet computer, a mobile phone, a smart phone, a smart watch, a microprocessor, a server, or a network of any of these devices. In one or more embodiments the sensor104may contain a processor or processors that perform some or all of the steps110through170.

Step120determines the time of impact between bat102and ball103. This step may for example detect a signature in the sensor data that indicates a collision. For example, if sensor104includes an accelerometer such as accelerometer105, a rapid spike in acceleration may be a signature of an impact. Similarly, if sensor104includes a gyroscope such as gyroscope106, a rapid reduction in angular velocity may be a signature of an impact. One or more embodiments may for example use sensors that directly measure impact, such as pressure sensors or contact switches. In one or more embodiments, a swing endpoint may be defined even if the bat does not hit the ball, for example during practice swings, air swings, or strikes. This swing endpoint may be based for example, without limitation, on parameters such as the location of the bat relative to the plate or to an incoming ball, the aim angle of the bat, or the point in time when the bat achieves maximum velocity or maximum angular velocity. A calculated swing endpoint may be used instead of an actual impact time for any of the subsequent metric calculations described below.

Step130calculates a trajectory of the bat102from a starting point of the swing through the impact time determined in step120. In one or more embodiments the trajectory may also extend beyond the impact or prior to the start of the swing. The bat trajectory may be a time series of motion data samples, each of which represents the state of the bat at a point in time during the swing. For example, each sample may include data on any or all of the bat's position, orientation, velocity, angular velocity, acceleration, or angular acceleration. In one or more embodiments a sample may include data for multiple locations on the bat. Methods to calculate an object's trajectory from motion sensor data are known in the art. For example, one or more embodiments may use inertial navigation algorithms known in the art to calculate the position and orientation of the bat over time from acceleration data (for example from accelerometer105) and from angular velocity data (for example from gyroscope106). Data from other sensors, such as for example magnetometer107, may for example provide redundant measurements to correct errors in inertial navigation algorithms.

Because the orientation and position of sensor104changes throughout the swing, the bat trajectory calculated in step130may not be in a convenient form for analysis. Therefore, in step150a standardized reference frame is defined based on the swing itself. We refer to this reference frame as the swing plane reference frame. In step160the bat trajectory is transformed to this reference frame. In step170the transformed trajectory is used to analyze the swing, and to generate one or more swing metrics describing and characterizing the swing. Illustrative swing metrics180describe for example the timing of the swing, the speed of the swing, and the angles traversed during the swing.

FIG. 2illustrates definition and calculating of the swing plane reference frame. This reference frame is defined by the bat's orientation and motion at the time of impact between the bat102and the ball103. A swing plane212is defined by two axes: a first axis210is the longitudinal axis of the bat (along the bat's long dimension); a second axis211is in the direction of the bat's velocity at the time of impact. The velocity vector at impact may also be calculated as a tangent vector to the bat's instantaneous rotation round the angular velocity axis. This impact velocity vector211may be calculated or obtained from the bat trajectory. In one or more embodiments a specific point on the bat, such as for example the sweet spot, may be used to define the impact velocity vector. The swing plane212is the plane spanned by the vectors210and211. To complete the reference frame, a third orthogonal off-plane axis213is selected as the normal vector to the plane212. The swing plane212defined by the axes210and211provides a reference frame that can be calculated from data generated by bat sensor104. Other planes of rotation that may be relevant to the kinematics of the swing include for example the rotational plane221for the batter's shoulders, and the rotational plane222for the batter's hips. In one or more embodiments additional sensors, for example sensors attached to the batter's shoulders and hips, may be used to calculate these body rotational planes in addition to the swing plane212.

In the example shown inFIG. 2, sensor104has a local reference frame in which sensor data is measured. This local reference frame in general may have a completely different orientation from the swing plane reference frame defined by axes210,211, and213. For example, the sensor local reference frame may have axes201,202, and210; in this example one axis of the sensor local reference frame is aligned with the bat longitudinal axis, but the other axes are in arbitrary directions due to the rotational symmetry of the bat around this axis. To facilitate standardized analysis of swings and comparison of swings across players, bat trajectory information is transformed from the sensor local reference frame into the swing plane reference frame.FIG. 3illustrates this transformation. Bat trajectory301includes motion data samples at various points in time, such as for example points302,303, and304. These samples may include any information on the state of the bat, such as position, orientation, or derivatives of these values like velocity and angular velocity. For illustration, the bat trajectory301is shown as a single curve in three dimensional space (for example as a curve of bat position over time); however, in one or more embodiments the bat trajectory may include any data with any number of dimensions. In the sensor local reference frame defined, for illustration, by axes201,202, and210, each sample point has coordinates such as coordinates305for point304. Transformation310maps the sample points into the swing plane reference frame, for example using a rotation of the axes201,202, and210into axes210,211, and213. For example, in the swing plane reference frame, point304on the bat trajectory301has coordinates306.

One or more embodiments of the invention may analyze the bat trajectory in the swing plane reference frame to measure and characterize the swing.FIG. 4shows illustrative metrics for angular change that are defined relative to the swing plane reference frame. Bat trajectory401is a three dimensional curve in the three dimensional swing plane reference frame410defined by axes210,211, and213. Trajectory401has starting point420, representing a start of the swing, and endpoint421, representing for example the time of impact between the bat and the ball. This curve may be projected onto the two-dimensional swing plane212defined by axes210and211, and various metrics may be calculated from this projection. For example, the 2D curve402is the projection of the bat trajectory401onto plane212. As the curve402proceeds from the starting point to the endpoint of the trajectory, it subtends an angle403(Δθsp) in the swing plane (with vertex at the origin). This angle403, which we refer to as the total swing angle, is a swing metric that indicates the total amount of bat movement during the swing in the swing plane. Similarly, the bat trajectory401may be projected onto a plane412orthogonal to the swing plane, and the angle407subtended by the projected trajectory is a different swing metric that we refer to as the off-plane angle. The total swing angle metric and the off-plane angle metric provide a useful characterization of how the batter is moving the bat through the swing. Projection of the trajectory401onto swing plane212also provides a measure of the instantaneous angular velocity406of the trajectory at any point in time, such as at illustrative point404. This instantaneous angular velocity in the swing plane, which we refer to as the swing plane speed, is a more useful metric of the bat's motion than for example the total linear velocity of the bat, which includes an off-plane component of velocity that is not as relevant for the power of the swing. The swing plane speed406may be calculated for example as the derivative of the instantaneous angle405between the point404on the projected trajectory402and the axis210. In one or more embodiments that include a gyroscope, which measures angular velocity directly, the swing plane speed may be calculated by projecting the measured angular velocity onto the axis orthogonal to the swing plane212.

The curve of swing plane speed over time through the swing provides additional useful information about the swing.FIG. 5shows an illustrative curve501of the swing plane speed406as a function of time. The curve typically increases through the swing as the batter accelerates the bat. The swing plane speed reaches a maximum value505during the swing. For some swings, the peak speed505may occur at the time of impact502; however, this is not necessarily the case for all swings. The impact swing plane speed506is an important swing metric since it greatly affects the distance and power of the hit. The swing plane speed curve may be used to define an unambiguous point in time for the start of the downswing of a swing: this start of downswing503may be defined as the last point in time when the swing plane speed is zero prior to the impact. This definition is based on an unambiguous physical event rather than an arbitrarily defined threshold crossing. This provides a clear advantage in terms of metric consistency and physical significance. If there is no zero crossing, as is the case in certain swing styles, we define the start of downswing where the slope and magnitude of the swing plane component meet certain threshold criteria. This fallback definition does not provide the clear advantages of the zero crossing; however, because it is based on the swing plane component, it provides greater consistency than a definition based on vector magnitude, particularly across heterogeneous swing styles where much of the variability (e.g., bat waggle) occurs in the off-plane component.

Using the start of downswing503and the time of impact502, a total swing time, which we refer to as the time to contact metric, may be defined as the difference504between the impact time502and the start of downswing time503. This time to contact metric is an important metric related to the batter's ability to read the pitch.

The rate at which the swing plane speed increases through the swing also provides a useful metric.FIG. 6illustrates a method to standardize this metric by measuring the fraction of the peak speed achieved at the halfway point of the swing. To allow meaningful comparison across players with different swing styles, the swing plane speed curve is normalized so that swing plane speed is measured as a percentage605of the peak speed. Thus the normalized swing speed curve starts at zero at the start of downswing, and increases to 100% at the peak speed. A halfway point602is defined for the swing, and the fraction603of the peak speed at this point is defined as the swing tempo metric604. In one or more embodiments the halfway point may be defined as halfway between the start of downswing and the time of impact. However, empirical analysis of swings shows that a more robust halfway point may be defined by selecting a swing onset time601as a time at which the swing plane speed reaches a specified small fraction of the peak speed, such as for example 10%, and by defining the halfway point as halfway between the swing onset time and the time of impact.

This definition of the swing tempo metric is based on the insight from comparing statistical distributions, where the greatest variability in deviation from an ideal curve occurs at the half-way point between two fixed endpoints. The significance of this metric comes from an understanding of the kinematic chain (hips, shoulders, arms, wrists) for transferring energy from the body to a baseball bat. A rotationally efficient swing will derive a certain amount of energy from the hips and shoulders compared to the arms and wrists. We can infer how rotationally efficient a baseball swing is by the percentage of speed in the “body” half of the swing relative to the “arm” half. An ideal swing tempo range is learned from empirical data collected from elite-level batters. Deviation from the ideal tempo range, either high or low, is used to provide feedback and prescribe drills to the batter in order to improve performance. A low tempo typically indicates that the swing is dominated by arms (e.g., casting), while a high tempo indicates that a swing is dominated by body (at the expense of bat control).

In one or more embodiments, additional tempo metrics may be defined at other points in a swing, in addition to the halfway point tempo metric described above. For example, without limitation, an early tempo metric may be defined as the fraction of peak speed achieved at the 25% point of the swing, a mid-tempo metric may be defined as the fraction of peak speed achieved at the 50% point of the swing (as discussed above), and a late tempo metric may be defined as the fraction of peak speed achieved at the 75% point of the swing. The three tempo metrics may isolate the effect of different segments of the kinematic chain of the swing; for example, the early tempo metric may characterize the rotation of hips and torso, the mid-tempo metric may characterize the rotation of the torso and arms, and the late tempo metric may characterize the rotation of the arms and bat. These percentages are illustrative; one or more embodiments may measure swing tempo at any point or points in a swing.

In one or more embodiments, swing data and swing metrics may be collected from multiple users and organized in a swing database for further analysis.FIG. 7illustrates an embodiment that collects data into swing database701from multiple types of users, including for example, without limitation, experts702, professionals703, amateurs704, novices705, and instructors706. Data in the swing database may include for example, without limitation, sensor data710, bat trajectories in the swing plane frame711, and swing metrics712(such as for example the total swing angle, off-plane angle, time to contact, impact swing plane speed, and tempo metrics described above). Multiple metrics may be combined into feature vectors713that may be used to classify, categorize, compare, or analyze swings. Data from the database may be used for various analysis procedures720, which may include for example any or all of modeling swings and batters, data mining the database for patterns or trends, and applying machine learning techniques to learn relationships, functions, or categories. Outputs of the analyses720may include for example identification of best performances721that flag certain swings or groups of swings as illustrative of ideal or maximum performance; factors affecting performance722that identify swing characteristics that contribute to or detract from high performance; performance rating functions723that rate swings on how close they are to ideal performance levels; classifications of swing styles724that map swings into categories reflecting similar characteristics or similar performance; and matching of swings to similar players725that indicate which other swings or other players are most similar to a given swing or player.

FIG. 8illustrates an example of the data analysis methods described with respect toFIG. 7, using the swing tempo metric defined above. Using swing database701as input, data analysis and data mining process720compares swing plane speed curves across players to determine factors affecting performance722. This analysis indicates that best performance occurs when swing tempo is in a target zone802, for example in a range between804and803. This analysis uses normalized swing plane speed curves for the swings in database701, with the swing plane speed axis normalized to the percentage of peak speed605, and the time axis801normalized to a percentage of swing time between swing onset (0%) and impact502a(100%). The normalized swing plane speed at halfway point602a(50%) is the swing tempo metric for each swing.

Using the analysis illustrated inFIG. 8, an individual swing may be evaluated by comparing it to the empirically derived criteria for best performance.FIG. 9illustrates an example with batter101generating a swing plane speed curve901for a swing. The measured swing tempo902for this swing is compared to the target zone802in order to rate the swing's performance. Feedback is then provided to batter101, for example on computer screen903. This feedback provides the swing tempo metric902, as well as a performance rating904that is based on comparing the swing to performance criteria derived from empirical analysis. The feedback may also include specific critiques such as905that diagnose the swing or suggest corrections or improvements.

One or more embodiments may provide feedback to a batter or to other users (such as a coach or trainer) using any desired method or system. For example, without limitation, feedback may be displayed on any computer, laptop, notebook, tablet, mobile phone, smart watch, or wearable device. Feedback may be provided using a specific app, or transmitted via general messaging systems such as email or text messages. Feedback may be audio, visual, haptic, or any combination thereof.

FIG. 10continues the example ofFIG. 9to illustrate additional analysis and feedback for a swing based on comparisons with swings in a swing database. In this example, a feature vector1001is generated for a particular swing by batter101. For illustration, this feature vector is a combination of the swing tempo and the impact swing plane speed. One or more embodiments may generate feature vectors using any combinations of metrics or of any data derived from sensor data or bat trajectories. Swings from swing database701are compared on grid1002using this feature vector, and are analyzed (for example using cluster analysis techniques known in the art) to categorize swings into a set of swing styles. For example, the analysis may partition swings into three swing styles1004,1005, and1006. The feature vector1001corresponding to the swing by batter101places the swing into swing style cluster1006. Feedback to the batter indicates this swing style1020. In addition, the batter's swing may be matched against typical swings from other users to provide feedback1021that identifies other users with swings that resemble the batter's swing.

In some situations, one or more of the sensors that measure the motion the bat may have insufficient range to measure the complete motion throughout the entire swing.FIG. 11shows an example of this situation where the sensor104on bat102includes accelerometer105with range1101, and gyroscope106with range106. Taking the angular velocity around the x-axis of the sensor as an illustrative example, the actual x-axis angular velocity1103exceeds the upper limit1104of measurement range1102during time interval1105. Therefore, the measured sensor values1106cannot track the true values1103of the motion during this interval1105. Instead the measured value1107during this interval is saturated at the upper limit1104. This saturation may affect the accuracy of swing metrics. This example using the x-axis of the gyroscope is illustrative; a similar issue may occur with any sensor (including for example the accelerometer105as well as the gyroscope106) and with data from any axis of any sensor.

To address this issue, one or more embodiments of the invention may extrapolate sensor data from prior to or after the time interval1105when the sensor is saturated. Extrapolation may also be used when sensor data is unavailable for a period of time for any other reason, for example because of a limited sampling rate, a recalibration period, or a defective sensor. Extrapolation may be used for any sensor or sensors, or any axis of any sensor or sensors. Embodiments may use any method to extrapolate sensor data into any time interval.FIG. 12illustrates an embodiment that extrapolates sensor data from both endpoints of the time interval by constructing a Bézier curve1200for the values in the interval. In this example, the curve1200is a cubic Bézier curve defined by the four control points1201,1202,1203, and1204. This is illustrative; one or more embodiments may use Bézier curves or any other splines or curves of any order. Control points1201and1204match the values of the sensor measurements1104at the endpoints of interval1105. The internal control points1202and1203are chosen to match the slopes of curve1104at these endpoints. Specifically, the tangent value1205of the curve1104at point1201is the slope of the line between control points1201and1202, and the tangent value1206of the curve1104at point1204is the slope of the line between control points1203and1204. Points1202and1203may also be chosen to limit for example the maximum value of the curve1200in the interval.

One or more embodiments may select control points for a Bézier curve in such a way as to satisfy the initial and/or final conditions (magnitude and slope) and also to satisfy additional constraints on the maximum absolute value and maximum extrapolation duration. For two-sided extrapolation (no impact events), four control points may be used as shown for example inFIG. 12: the initial and final points are placed where the curve crosses the saturation threshold, and two interior control points are along a line matching the slope of the curve at some distance, which is constrained by some maximum time duration and by a maximum absolute value. This approach provides control of the shape of the extrapolation curve better than a cubic polynomial fit, which will match the same slope and value constraints but may exceed the other physical constraints. If the initial or final edge of the saturation interval is an impact event, then the unconstrained edge may be represented by a single control point, resulting in a three-point Bézier curve. Again, the time and value for this single control point may be selected to achieve the desired shape of the extrapolated curve into the impact event. Because a Bézier curve is not parametric in time, it may be necessary to resample the extrapolated curve at the original sample times. This type of Bézier extrapolation may be applied to an individual saturated sensor axis (independent of the other components) or a composite value (e.g., the x-y resultant or total vector magnitude). The shape of the composite curve may be easier to model or constrain than the underlying individual components for particular kinematic events, resulting in increased accuracy of the extrapolated result. If the underlying component values are needed, they can be obtained by solving for the unknown saturated component(s) from the extrapolated composite result and unsaturated component values (the result will be under-determined if more than one component is saturated).

Another approach to extrapolation that may be used in one or more embodiments is to use a Kalman filter (or a variation of a Kalman filter like an Extended Kalman Filter or an Unscented Kalman Filter).FIG. 13illustrates an example that uses this approach. Kalman filter1301incorporates a kinematic model1302of the bat102. The system state1303is estimated for each sample point, and this estimate is corrected based on measurements1304. The state1303for example may include the position r(t) and the orientation Q(t) of the bat, and the measurements1304may include for example accelerometer values ax, ay, azand gyroscope values ωx, ωy, ωz. During time intervals when one or more measurements are not available or are saturated, such as x-axis angular velocity1306during time interval1105, the filter1301continues to predict state values1303. Therefore, the curve1104can be extrapolated to curve1308through interval1105; for example, the orientation1307may be differentiated to estimate the x-axis angular velocity1308in this interval.

In general, one or more embodiments may use a recursive state space estimator (e.g., Kalman filter) with a kinematic model of the physical body or equipment being measured. The state-space propagation model may be used to impose appropriate physical constraints. The state space estimate and its uncertainty (covariance) may be updated using the non-saturated measurements from the various sensors. An estimate of the missing (saturated) parameter may then be derived from the state space estimate. Likewise, the uncertainty in the estimated parameter may be derived from the model uncertainty. Either the state space propagation model or the measurement model (or both) may be non-linear, in which case a linearized (EKF) or sigma-point (UKF) filter may be used. Finally, the uncertainty in the extrapolated time series (or the state space estimate itself) may be propagated to derived metrics. For example, in a baseball swing like the swing illustrated inFIG. 13, the gyroscope may be saturated into impact, which affects the accuracy of the swing speed measurement. Using this approach, it is possible to estimate the actual swing speed and provide an uncertainty interval (error bars).