# US 8,788,193 B2 · Tracking activity, velocity, and heading using sensors in mobile devices or other systems

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

- Number: US 8,788,193 B2
- Document ID: US8788193B2
- Status: Granted
- Kind: B2
- Application number: 13/653,009
- Filed: 2012-10-16
- Published: 2013-04-18
- Granted: 2014-07-22
- Earliest claimed: 2011-10-17
- Assignees: Gen-9, Inc.
- Applicants: Gen-9, Inc.
- Inventors: Mark A. Fauci; Yinghao Ma; Craig Poppe; Thung-Han Hee; Rahul Agrawal
- Web page: https://patentgrep.com/patent/US8788193B2

## CPC

- H04W 4/029: Location-based management or tracking services
- H04W 4/027: {using movement velocity, acceleration information}
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Embodiments of the invention provide systems and methods for tracking a mobile device using sensors within the device and without using external signals to determine location, velocity, or heading. According to one embodiment, locating and tracking a mobile device can comprise reading sensor data from each of a plurality of sensors within the mobile device. The sensors can provide the sensor data without relying on a signal from a device external to the mobile device. For example, the plurality of sensors can comprise a compass, a gyroscope, and an accelerometer. Motion, velocity, and heading of the mobile device can be determined based on the sensor data.

## Claims

### Claim 1

A method for locating and tracking a mobile device, the method comprising:
reading sensor data from each of a plurality of sensors within the mobile device, the sensors providing the sensor data without relying on a signal from any device external to the mobile device; and
determining motion, velocity, and heading of the mobile device through a machine learning process based on the sensor data without relying on a signal from any device external to the mobile device, wherein the machine learning process comprises:
collecting sensor data and noise from each of the plurality of sensors over a time period,
fusing the collected sensor data and noise to produce estimates for each of a plurality of indications related to orientation of the mobile device,
normalizing each of the estimates,
forming a plurality of vectors representing activity of the mobile device based on the normalized estimates,
classifying the activity of the mobile device over the time period as motion or static based on the plurality of vectors, and
in response to classifying activity of the mobile device as motion, determining a velocity for the mobile device based on the sensor data and determining a heading for the mobile device based on the sensor data.

### Claim 2 (depends on 1)

The method of claim 1, wherein the plurality of sensors comprises a compass, a gyroscope, and an accelerometer.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining the velocity for the mobile device comprises:
calculating a mean and a standard deviation for each of a plurality of sensor data readings;
generating a feature vector based on each calculated mean and standard deviation;
comparing the generated feature vector to a reference data set;
assigning each feature vector to a cluster based on said comparing; and
determining the velocity for the mobile device based on the clustered feature vector data.

### Claim 4 (depends on 1)

The method of claim 1, wherein determining the heading for the mobile device comprises:
determining a magnitude of a set of angular velocity data;
determining whether the magnitude exceeds a pre-defined threshold; and
in response to determining the magnitude exceeds the pre-defined threshold, considering the mobile device to be rotating, correcting the sensor data for drift over time, and recording the corrected sensor data as a heading for the mobile device.

### Claim 5 (depends on 1)

The method of claim 1, further comprising mapping a path of the mobile device, wherein mapping the path comprises:
identifying each of a plurality of axes of a plane in which the mobile device is moving;
determining a first heading vector along the identified axes based on the sensor data;
determining a second heading vector along the identified axes based on the sensor data;
filtering the determined heading vectors; and
drawing a map of the path of the mobile device on the plane based on the filtered heading vectors.

### Claim 6 (depends on 5)

The method of claim 5, wherein filtering the determined heading vectors comprises:
storing the first heading vector as a third heading vector when a difference between the first heading vector and the second heading vector is determined to be large;
copying the third heading vector to a fourth heading vector when a heading of a previous point is consistent with a heading of a current point;
storing the first heading vector as a fifth heading vector when there is a large consistent difference between the first heading vector and the fourth heading vector;
discarding heading vectors that indicate quick changes; and
filling gaps created by said discarding based on previous heading vectors and next heading vectors of the discarded heading vectors.

### Claim 7 (depends on 5)

The method of claim 5, wherein drawing the map of the path of the mobile device comprises:
finding a current line of best fit for information received;
comparing the current line of best fit to previously saved lines;
in response to determining the current line of best fit is close to parallel to a previously saved line, adjusting the current line of best fit to be parallel to the previously saved line;
in response to determining the current line of best fit is close in position to a previously saved line, adjusting the position of the current line of best fit to match the position of the previously saved line;
in response to determining the current line of best fit includes a corner and in response to determining the corner of the current line of best fit matches a corner of a previously saved line, adjusting points of the current line of best fit to match points of the previously saved line.

### Claim 8 (depends on 5)

The method of claim 5, further comprising:
detecting aberrations in a magnetic field around the mobile device;
augmenting the map of the path based the detected aberrations, wherein augmenting the map comprises adding one or more magnetic landmarks to the map based on the detected aberrations; and
correcting a position estimate for the mobile device based on the augmented map and a currently detected aberration.

### Claim 9

A system comprising:
a processor; and
a memory coupled with and readable by the processor and having stored therein a sequence of instructions which, when executed by the processor, causes the processor to locate and track a mobile device by:
reading sensor data from each of a plurality of sensors within the mobile device, the sensors providing the sensor data without relying on a signal from any device external to the mobile device; and
determining motion, velocity, and heading of the mobile device through a machine learning process based on the sensor data without relying on a signal from any device external to the mobile device, wherein the machine learning process comprises:
collecting sensor data and noise from each of the plurality of sensors over a time period,
fusing the collected sensor data and noise to produce estimates for each of a plurality of indications related to orientation of the mobile device,
normalizing each of the estimates,
forming a plurality of vectors representing activity of the mobile device based on the normalized estimates,
classifying the activity of the mobile device over the time period as motion or static based on the plurality of vectors, and
in response to classifying activity of the mobile device as motion, determining a velocity for the mobile device based on the sensor data and determining a heading for the mobile device based on the sensor data.

### Claim 10 (depends on 9)

The system of claim 9, wherein the plurality of sensors comprises a compass, a gyroscope, and an accelerometer.

### Claim 11 (depends on 9)

The system of claim 9, wherein determining the velocity for the mobile device comprises:
calculating a mean and a standard deviation for each of a plurality of sensor data readings;
generating a feature vector based on each calculated mean and standard deviation;
comparing the generated feature vector to a reference data set;
assigning each feature vector to a cluster based on said comparing; and
determining the velocity for the mobile device based on the clustered feature vector data.

### Claim 12 (depends on 9)

The system of claim 9, wherein determining the heading for the mobile device comprises:
determining a magnitude of a set of angular velocity data;
determining whether the magnitude exceeds a pre-defined threshold; and
in response to determining the magnitude exceeds the pre-defined threshold, considering the mobile device to be rotating, correcting the sensor data for drift over time, and recording the corrected sensor data as a heading for the mobile device.

### Claim 13 (depends on 9)

The system of claim 9, further comprising mapping a path of the mobile device, wherein mapping the path comprises:
identifying each of a plurality of axes of a plane in which the mobile device is moving;
determining a first heading vector along the identified axes based on the sensor data;
determining a second heading vector along the identified axes based on the sensor data;
filtering the determined heading vectors; and
drawing a map of the path of the mobile device on the plane based on the filtered heading vectors.

### Claim 14 (depends on 13)

The system of claim 13, wherein filtering the determined heading vectors comprises:
storing the first heading vector as a third heading vector when a difference between the first heading vector and the second heading vector is determined to be large;
copying the third heading vector to a fourth heading vector when a heading of a previous point is consistent with a heading of a current point;
storing the first heading vector as a fifth heading vector when there is a large consistent difference between the first heading vector and the fourth heading vector;
discarding heading vectors that indicate quick changes; and
filling gaps created by said discarding based on previous heading vectors and next heading vectors of the discarded heading vectors.

### Claim 15 (depends on 13)

The system of claim 13, wherein drawing the map of the path of the mobile device comprises:
finding a current line of best fit for information received;
comparing the current line of best fit to previously saved lines;
in response to determining the current line of best fit is close to parallel to a previously saved line, adjusting the current line of best fit to be parallel to the previously saved line;
in response to determining the current line of best fit is close in position to a previously saved line, adjusting the position of the current line of best fit to match the position of the previously saved line;
in response to determining the current line of best fit includes a corner and in response to determining the corner of the current line of best fit matches a corner of a previously saved line, adjusting points of the current line of best fit to match points of the previously saved line.

### Claim 16 (depends on 13)

The system of claim 13, further comprising:
detecting aberrations in a magnetic field around the mobile device;
augmenting the map of the path based the detected aberrations, wherein augmenting the map comprises adding one or more magnetic landmarks to the map based on the detected aberrations; and
correcting a position estimate for the mobile device based on the augmented map and a currently detected aberration.

### Claim 17

A computer-readable memory having stored thereon a sequence of instructions which, when executed by a processor, causes the processor to locate and track a mobile device by:
reading sensor data from each of a plurality of sensors within the mobile device, the sensors providing the sensor data without relying on a signal from any device external to the mobile device; and
determining motion, velocity, and heading of the mobile device through a machine learning process based on the sensor data without relying on a signal from any device external to the mobile device, wherein the machine learning process comprises:
collecting sensor data and noise from each of the plurality of sensors over a time period,
fusing the collected sensor data and noise to produce estimates for each of a plurality of indications related to orientation of the mobile device,
normalizing each of the estimates,
forming a plurality of vectors representing activity of the mobile device based on the normalized estimates,
classifying the activity of the mobile device over the time period as motion or static based on the plurality of vectors, and
in response to classifying activity of the mobile device as motion, determining a velocity for the mobile device based on the sensor data and determining a heading for the mobile device based on the sensor data.

### Claim 18 (depends on 17)

The computer-readable memory of claim 17, wherein the plurality of sensors comprises a compass, a gyroscope, and an accelerometer.

### Claim 19 (depends on 17)

The computer-readable memory of claim 17, wherein
determining the velocity for the mobile device comprises:
calculating a mean and a standard deviation for each of a plurality of sensor data readings;
generating a feature vector based on each calculated mean and standard deviation;
comparing the generated feature vector to a reference data set;
assigning each feature vector to a cluster based on said comparing; and
determining the velocity for the mobile device based on the clustered feature vector data.

### Claim 20 (depends on 17)

The computer-readable memory of claim 17, wherein
determining the heading for the mobile device comprises:
determining a magnitude of a set of angular velocity data;
determining whether the magnitude exceeds a pre-defined threshold; and
in response to determining the magnitude exceeds the pre-defined threshold, considering the mobile device to be rotating, correcting the sensor data for drift over time, and recording the corrected sensor data as a heading for the mobile device.

### Claim 21 (depends on 17)

The computer-readable memory of claim 17, further comprising mapping a path of the mobile device, wherein mapping the path comprises:
identifying each of a plurality of axes of a plane in which the mobile device is moving;
determining a first heading vector along the identified axes based on the sensor data;
determining a second heading vector along the identified axes based on the sensor data;
filtering the determined heading vectors; and
drawing a map of the path of the mobile device on the plane based on the filtered heading vectors.

### Claim 22 (depends on 21)

The computer-readable memory of claim 21, wherein filtering the determined heading vectors comprises:
storing the first heading vector as a third heading vector when a difference between the first heading vector and the second heading vector is determined to be large;
copying the third heading vector to a fourth heading vector when a heading of a previous point is consistent with a heading of a current point;
storing the first heading vector as a fifth heading vector when there is a large consistent difference between the first heading vector and the fourth heading vector;
discarding heading vectors that indicate quick changes; and
filling gaps created by said discarding based on previous heading vectors and next heading vectors of the discarded heading vectors.

### Claim 23 (depends on 21)

The computer-readable memory of claim 21, wherein drawing the map of the path of the mobile device comprises:
finding a current line of best fit for information received;
comparing the current line of best fit to previously saved lines;
in response to determining the current line of best fit is close to parallel to a previously saved line, adjusting the current line of best fit to be parallel to the previously saved line;
in response to determining the current line of best fit is close in position to a previously saved line, adjusting the position of the current line of best fit to match the position of the previously saved line;
in response to determining the current line of best fit includes a corner and in response to determining the corner of the current line of best fit matches a corner of a previously saved line, adjusting points of the current line of best fit to match points of the previously saved line.

### Claim 24 (depends on 21)

The computer-readable memory of claim 21, further comprising:
detecting aberrations in a magnetic field around the mobile device;
augmenting the map of the path based the detected aberrations, wherein augmenting the map comprises adding one or more magnetic landmarks to the map based on the detected aberrations; and
correcting a position estimate for the mobile device based on the augmented map and a currently detected aberration.
