# US 10,309,785 B1 · System and method for identifying heading of a moving vehicle using accelerometer data

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

- Number: US 10,309,785 B1
- Document ID: US10309785B1
- Status: Granted
- Kind: B1
- Application number: 15/476,171
- Filed: 2017-03-31
- Granted: 2019-06-04
- Earliest claimed: 2014-05-15
- Assignees: State Farm Mutual Automobile Insurance Company
- Applicants: State Farm Mutual Automobile Insurance Company
- Inventors: Sunish Shreenarayan Menon; David J. Dosher; Scott Thomas Christensen
- Web page: https://patentgrep.com/patent/US10309785B1

## CPC

- G01C 21/185: {for gravity}
- B62D 15/024: {Other means for determination of steering angle without directly measuring it, e.g. deriving from wheel speeds on different sides of the car}
- G01C 1/00: Measuring angles
- G01C 21/12: executed aboard the object being navigated; Dead reckoning
- G01C 25/005: {initial alignment, calibration or starting-up of inertial devices}
- G06Q 40/08: Insurance
- H04L 67/12: specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- G01C: MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY (measuring liquid level G01F; radio navigation, determining distance or velocity by use of propagation effects, e.g. Doppler effects, propagation time, of radio waves, analogous arrangements using other waves G01S)
- B62D: MOTOR VEHICLES; TRAILERS (steering, or guiding on a desired track, of agricultural machines or implements A01B69/00; wheels, castors, axles, increasing wheel adhesion B60B; vehicle tyres, tyre inflation or tyre changing B60C; connections between vehicles of a train or the like B60D; vehicles for use on rail and road, amphibious or convertible vehicles B60F; suspension arrangements B60G; heating, cooling, ventilating or other air treating devices B60H; windows, windscreens, non-fixed roofs, doors or similar devices, protective coverings for vehicles not in use B60J; propulsion plant arrangements, auxiliary drives, transmissions, controls, instrumentation or dashboards B60K; electric equipment or propulsion of electrically-propelled vehicles B60L; power supply for electrically-propelled vehicles B60M; passenger accommodation not otherwise provided for B60N; adaptations for load transportation or to carry special loads or objects B60P; arrangement of signalling or lighting devices, the mounting or supporting thereof or circuits therefor, for vehicles in general B60Q; vehicles, vehicle fittings or vehicle parts not otherwise provided for B60R; servicing, cleaning, repairing, supporting, lifting, or manoeuvring, not otherwise provided for, B60S; brake arrangements, brake control systems or parts thereof B60T; air-cushion vehicles B60V; motor-cycles, accessories therefor B62J, B62K; testing of vehicles G01M)
- 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
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for determining a yaw angle estimate or vehicle heading direction is presented. A potential range of yaw angles is generated based on a plurality of primary telematics data. One or more yaw angle estimates are generated from the potential range of yaw angles. A driving pattern is determined based on at least one of the yaw angle estimates. The primary telematics data is a plurality of telematics data originated from a client computing device. The effects of gravity have been removed from the plurality of telematics data in a first primary movement window.

## Claims

### Claim 1

A method for determining a range of yaw angle estimates comprising:
receiving, by one or more processors, primary telematics data, wherein the primary telematics data comprises acceleration data originating from a client computing device within a moving vehicle in a first primary movement window, wherein the primary movement window is indicative of the client computing device being static with respect to the moving vehicle;
generating, by the one or more processors, a plurality of planar acceleration data points from the telematics data by removing the effects of gravity from the acceleration data in the first primary movement window;
generating, by the one or more processors, matched data by matching each data point of the plurality of planar acceleration data points with any additional data points of the plurality of planar acceleration data points associated with directions corresponding to rotations of intervals of ninety degrees offset from the first respective data point;
determining, by the one or more processors, a modal value of the matched data;
identifying, by the one or more processors, four possible optimal yaw angle estimates indicating four possible heading directions of the moving vehicle based upon the modal value of the matched data, wherein one of the four possible yaw angle estimates is an angle associated with the modal value and wherein the remaining possible optimal yaw angle estimates are angles corresponding to rotations of intervals of ninety degrees offset from the angle associated with the modal value; and
determining, by the one or more processors, a driving pattern by analyzing the planar data points associated with the four possible heading directions.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the modal value of the matched data includes:
applying an arc length of a static region on a unit circle to the matched data.

### Claim 3 (depends on 2)

The method of claim 2 further comprising:
determining:
a first region corresponding to the static region;
a first number of data points in the first region;
a second region corresponding to the static region; and
a second number of data points in the second region;
comparing the number of data points in the first region with the number of data points in the second region;
determining a static region with the greatest number of data points;
generating a final yaw angle from the static region with the greatest number of data points; and
determining a driving pattern using at least the final yaw angle.

### Claim 4 (depends on 3)

The method of claim 3 further comprising:
rotating the static region from the first region to the second region on a unit circle.

### Claim 5 (depends on 1)

The method of claim 1 further comprising:
correlating the plurality of telematics data with a second plurality of telematics data.

### Claim 6

A computer device for determining a range of yaw angle estimates, the device comprising:
one or more processors; and
one or more memories coupled to the one or more processors;
wherein the one or more memories include non-transitory computer executable instructions stored therein that, when executed by the one or more processors, cause the one or more processors to:
receive primary telematics data, wherein the primary telematics data comprises acceleration data originating from a client computing device within a moving vehicle in a first primary movement window, wherein the primary movement window is indicative of the client computing device being static with respect to the moving vehicle;
generate a plurality of planar acceleration data points from the telematics data by removing the effects of gravity from the acceleration data in the first primary movement window;
generate matched data by matching each data point of the plurality of planar acceleration data points with any additional data points of the plurality of planar acceleration data points associated with directions corresponding to rotations of intervals of ninety degrees offset from the first respective data point;
determine a modal value of the matched data;
identify four possible optimal yaw angle estimates indicating four possible heading directions of the moving vehicle based upon the modal value of the matched data, wherein one of the four possible yaw angle estimates is an angle associated with the modal value and wherein the remaining possible optimal yaw angle estimates are angles corresponding to rotations of intervals of ninety degrees offset from the angle associated with the modal value; and
determine a driving pattern by analyzing the planar data points associated with the four possible heading directions.

### Claim 7 (depends on 6)

The computer device of claim 6, wherein the non-transitory computer executable instructions that cause the one or more processors to determine the modal value of the matched data further cause the one or more processors to:
plot the matched data;
apply an arc length of a static region on a unit circle to the matched data.

### Claim 8 (depends on 7)

The computer device of claim 7, wherein the non-transitory computer executable instructions further cause the one or more processors to:
determine:
a first region corresponding to the static region;
a first number of data points in the first region;
a second region corresponding to the static region; and
a second number of data points in the second region;
compare the number of data points in the first region with the number of data points in the second region;
determine a static region with the greatest number of data points;
generate a final yaw angle from the static region with the greatest number of data points; and
determine a driving pattern using at least the final yaw angle.

### Claim 9 (depends on 8)

The computer device of claim 8, wherein the non-transitory computer executable instructions cause the one or more processors to:
rotate the static region from the first region to the second region.

### Claim 10 (depends on 6)

The computer device of claim 6, wherein the non-transitory computer executable instructions further cause the one or more processors to:
correlate the plurality of telematics data with a second plurality of telematics data.

### Claim 11

A computer readable storage medium comprising non-transitory computer readable instructions stored thereon for determining a range of yaw angle estimates, the instructions when executed on one or more processors cause the one or more processors to:
receive primary telematics data, wherein the primary telematics data comprises acceleration data originating from a client computing device within a moving vehicle in a first primary movement window, wherein the primary movement window is indicative of the client computing device being static with respect to the moving vehicle;
generate a plurality of planar acceleration data points from the telematics data by removing the effects of gravity from the acceleration data in the first primary movement window;
generate matched data by matching each data point of the plurality of planar acceleration data points with any additional data points of the plurality of planar acceleration data points associated with directions corresponding to rotations of intervals of ninety degrees offset from the first respective data point;
determine a modal value of the matched data;
identify four possible optimal yaw angle estimates indicating four possible heading directions of the moving vehicle based upon the modal value of the matched data, wherein one of the four possible yaw angle estimates is an angle associated with the modal value and wherein the remaining possible optimal yaw angle estimates are angles corresponding to rotations of intervals of ninety degrees offset from the angle associated with the modal value; and
determine a driving pattern by analyzing the planar data points associated with the four possible heading directions.

### Claim 12 (depends on 11)

The computer readable storage medium of claim 11, wherein the instructions that cause the one or more processors to determine the modal value of the matched data when executed on the one or more processors further cause the one or more processors to:
apply an arc length of a static region on a unit circle to the matched data.

### Claim 13 (depends on 12)

The computer readable storage medium of claim 12, wherein the instructions when executed on the one or more processors further cause the one or more processors to:
determine:
a first region corresponding to the static region;
a first number of data points in the first region;
a second region corresponding to the static region; and
a second number of data points in the second region;
compare the number of data points in the first region with the number of data points in the second region;
determine a static region with the greatest number of data points;
generate a final yaw angle from the static region with the greatest number of data points; and
determine a driving pattern using at least the final yaw angle.

### Claim 14 (depends on 11)

The computer readable storage medium of claim 11, comprising further instructions stored thereon that cause the one or more processors to:
correlate the plurality of telematics data with a second plurality of telematics data.
