# US 2018/0021648 A1 · Swing analysis method using a swing plane reference frame

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0021648 A1
- Document ID: US20180021648A1
- Status: Published application
- Kind: A1
- Application number: 15/633,094
- Filed: 2017-06-26
- Published: 2018-01-25
- Earliest claimed: 2016-07-19
- Assignees: Blast Motion Inc.
- Applicants: Blast Motion Inc.
- Inventors: James THORNBRUE; Patrick CHERVENY
- Web page: https://patentgrep.com/patent/US20180021648A1

## CPC

- G06F 18/00: Pattern recognition
- G06V 40/23: {Recognition of whole body movements, e.g. for sport training}
- A63B 69/0002: {for baseball}
- A63B 2069/0008: {for batting}
- A63B 2071/0694: {Visual indication, e.g. Indicia}
- A63B 2220/803: Motion sensors
- G06F 2218/10: by analysing the shape of a waveform, e.g. extracting parameters relating to peaks
- G06F 2218/12: Classification; Matching
- G06Q 10/0639: Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G16H 20/30: relating to physical therapies or activities, e.g. physiotherapy, acupressure or exercising
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- A63B: APPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT (apparatus for passive exercising, massage A61H)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G16H: HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA

## Abstract

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.

## Claims

### Claim 1

A swing analysis method using a swing plane reference frame, comprising
obtaining sensor data from a sensor coupled to a piece of equipment or bat during a swing of said piece of equipment or bat by a user to hit or contact a ball, wherein said sensor comprises a processor;
determining a time of impact between said piece of equipment or bat and said ball from said sensor data via said processor;
calculating a trajectory during said swing from said sensor data via said processor, said trajectory comprising a time series of motion data samples, wherein each motion data sample of said motion data samples comprising one or more of
a position;
an orientation;
a velocity;
an angular velocity;
an acceleration; and,
an angular acceleration;
calculating an impact velocity vector from said trajectory as said velocity of said piece of equipment or bat at said time of impact via said processor;
defining a swing plane reference frame via said processor, wherein said swing plane reference plane comprising
a first axis defined by a longitudinal axis of said piece of equipment or bat at said time of impact;
a second axis defined by said impact velocity vector; and,
a third axis orthogonal to a swing plane spanned by said first axis and said second axis;
transforming said trajectory to said swing plane reference frame to form a swing plane frame trajectory via said processor;
analyzing said swing plane frame trajectory to create one or more swing metrics that describe said swing of said piece of equipment or bat by said user via said processor;
obtaining a database of swings from a plurality of players via said processor;
analyzing said database of swings to generate one or more performance rating functions that map said one or more swing metrics into a performance rating via said processor;
applying said one or more performance rating functions to said one or more swing metrics that describe said swing of said piece of equipment or bat by said user to determine a performance rating for said swing of said piece of equipment or bat by said user via said processor; and,
providing feedback to said user that comprises said performance rating for said swing of said piece of equipment or bat by said user via said processor.

### Claim 2 (depends on 1)

The method of claim 1, wherein said sensor comprises
a three axis accelerometer that generates acceleration data; and,
a three axis gyroscope that generates angular velocity data.

### Claim 3 (depends on 2)

The method of claim 2, wherein said sensor further comprises
a three axis magnetometer that generates magnetic field data.

### Claim 4 (depends on 1)

The method of claim 1, wherein said sensor comprises a plurality of sensors located at different locations on said piece of equipment or bat.

### Claim 5 (depends on 1)

The method of claim 1, wherein said sensor generates said sensor data at least ten times per second during said swing of said piece of equipment or bat.

### Claim 6 (depends on 1)

The method of claim 1, wherein said sensor generates said sensor data at least one hundred times per second or more during said swing of said piece of equipment or bat.

### Claim 7 (depends on 1)

The method of claim 1, wherein said bat comprises one or more of a baseball bat, a softball bat, and a cricket bat, or wherein said piece of equipment comprises one or more of 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.

### Claim 8 (depends on 1)

The method of claim 1, further comprising
calculating a time series of swing plane speed from said swing plane frame trajectory as a rotational speed component in said swing plane via said processor.

### Claim 9 (depends on 8)

The method of claim 8, wherein said swing plane speed is a projection of said angular velocity onto said third axis orthogonal to said swing plane.

### Claim 10 (depends on 8)

The method of claim 8, further comprising
calculating a start of downswing time as a latest time prior to said time of impact when said swing plane speed has magnitude zero via said processor; and,
calculating a time to contact metric as a difference between said time of impact and said start of downswing time via said processor.

### Claim 11 (depends on 10)

The method of claim 10, further comprising
calculating a total swing angle metric as a total angle traversed by said piece of equipment or bat in said swing plane between said start of downswing time and said time of impact via said processor; and,
calculating an off plane angle metric as a total angle traversed by said piece of equipment or bat orthogonal to said swing plane between said start of downswing time and said time of impact via said processor.

### Claim 12 (depends on 8)

The method of claim 8, further comprising
calculating a peak speed metric as a maximum magnitude of said swing plane speed during said swing via said processor;
calculating a halfway point in said swing via said processor; and,
calculating a swing tempo metric as a ratio of said swing plane speed at said halfway point to said peak speed metric via said processor.

### Claim 13 (depends on 1)

The method of claim 1, further comprising
comparing said swing of said piece of equipment or bat by said user to said database of swings to identify one or more players from said plurality of players that have swings that are similar to said swing of said piece of equipment or bat by said user via said processor.

### Claim 14 (depends on 1)

The method of claim 1, further comprising
combining said one or more swing metrics into a swing feature vector via said processor; and,
applying machine learning to said database of swings using said swing feature vector to classify each swing in said database of swings into a swing style that is based on said swing feature vector via said processor.

### Claim 15 (depends on 14)

The method of claim 14, further comprising
determining the swing style for said swing of said piece of equipment or bat by said user based on said swing feature vector for said swing of said piece of equipment or bat by said user via said processor.

### Claim 16 (depends on 1)

The method of claim 1, further comprising
when one or more sensor values of said sensor data are unavailable or are at a limit of a measurement range of said sensor during a time interval, extrapolating previous measurements or future measurements of said sensor to form an estimate of said one or more sensor values during said time interval via said processor.

### Claim 17 (depends on 16)

The method of claim 16, wherein said extrapolating comprises generating a Bézier curve having control points based on said previous measurements or future measurements.

### Claim 18 (depends on 17)

The method of claim 17, wherein
said Bézier curve is a cubic Bézier curve having four control points;
a first control point of said four control points is a point matching said previous measurements at a starting point of said time interval;
a second control point of said four control points lies on a tangent to said previous measurements at said first control point;
a fourth control point of said four control points is a point matching said future measurements at an ending point of said time interval; and,
a third control point of said four control points lies on a tangent to said future measurements at said fourth control point.

### Claim 19 (depends on 16)

The method of claim 16, wherein said extrapolating comprises using a Kalman filter to form said estimate of said one or more sensor values during said time interval, wherein said Kalman filter comprises a kinematic model of said piece of equipment or bat.

### Claim 20

A swing analysis method using a swing plane reference frame, comprising
obtaining sensor data from a sensor coupled to a piece of equipment or bat during a swing of said piece of equipment or bat by a user to hit or contact a ball, wherein said sensor comprises a processor;
determining a time of impact between said piece of equipment or bat and said ball from said sensor data via said processor;
calculating a trajectory during said swing from said sensor data via said processor, said trajectory comprising a time series of motion data samples, wherein each motion data sample of said motion data samples comprising one or more of
a position;
an orientation;
a velocity;
an angular velocity;
an acceleration; and,
an angular acceleration;
calculating an impact velocity vector from said trajectory as said velocity of said piece of equipment or bat at said time of impact via said processor;
defining a swing plane reference frame via said processor, wherein said swing plane reference plane comprising
a first axis defined by a longitudinal axis of said piece of equipment or bat at said time of impact;
a second axis defined by said impact velocity vector; and,
a third axis orthogonal to a swing plane spanned by said first axis and said second axis;
transforming said trajectory to said swing plane reference frame to form a swing plane frame trajectory via said processor; and,
analyzing said swing plane frame trajectory to create one or more swing metrics that describe said swing of said piece of equipment or bat by said user via said processor;
when one or more sensor values of said sensor data are unavailable or are at a limit of a measurement range of said sensor during a time interval, extrapolating previous measurements or future measurements of said sensor to form an estimate of said one or more sensor values during said time interval via said processor.

### Claim 21 (depends on 20)

The method of claim 20, wherein said extrapolating comprises generating a Bézier curve having control points based on said previous measurements or future measurements.

### Claim 22 (depends on 21)

The method of claim 21, wherein
said Bézier curve is a cubic Bézier curve having four control points;
a first control point of said four control points is a point matching said previous measurements at a starting point of said time interval;
a second control point of said four control points lies on a tangent to said previous measurements at said first control point;
a fourth control point of said four control points is a point matching said future measurements at an ending point of said time interval; and,
a third control point of said four control points lies on a tangent to said future measurements at said fourth control point.

### Claim 23 (depends on 20)

The method of claim 20, wherein said extrapolating comprises using a Kalman filter to form said estimate of said one or more sensor values during said time interval, wherein said Kalman filter comprises a kinematic model of said piece of equipment or bat.
