# US 9,439,043 B2 · Running location provider processes

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

- Number: US 9,439,043 B2
- Document ID: US9439043B2
- Status: Granted
- Kind: B2
- Application number: 14/530,997
- Filed: 2014-11-03
- Published: 2015-11-19
- Granted: 2016-09-06
- Earliest claimed: 2014-05-16
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: David Nicholas Christie; Vidya Narayanan
- Web page: https://patentgrep.com/patent/US9439043B2

## CPC

- H04W 4/027: {using movement velocity, acceleration information}
- G01S 5/019: {Energy consumption}
- G01S 5/0264: {at least one of the systems being a non-radio wave positioning system}
- G01S 19/34: Power consumption
- H04W 4/029: Location-based management or tracking services
- H04W 52/0261: {managing power supply demand, e.g. depending on battery level}
- H04W 52/0277: {according to available power supply, e.g. switching off when a low battery condition is detected}
- H04W 64/00: Locating users or terminals {or network equipment} for network management purposes, e.g. mobility management
- H04W 64/006: {with additional information processing, e.g. for direction or speed determination}
- H04W 52/0264: {by selectively disabling software applications}
- Y02D 30/70: in wireless communication networks
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- G01S: RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Examples describe methods, computing devices, and systems for using location provider (LP) processes to accurately identify a proximate location of a computing device, while reducing the power consumption of the computing device. An example method may include executing, on a computing device, both a first LP process and a second LP process simultaneously for at least part of a time period to determine outputs indicative of locations of the computing device for the time period. Further, the method may include determining a motion model of the computing device that indicates expected locations of the computing device. Yet further, the method may include making a comparison of the outputs to the motion model for the time period. In addition, the method may include disabling one of the LP processes based on the comparison.

## Claims

### Claim 1

A method comprising:
executing, on a computing device for at least a part of a first time period, a first location provider (LP) process using a first processor and a second LP process using a second processor;
obtaining first estimated locations of the computing device from the first LP process;
obtaining second estimated locations of the computing device from the second LP process;
obtaining sensor data from one or more sensors of the computing device, wherein the sensor data corresponds to the first time period;
determining, using the sensor data, a respective accuracy of each of the first LP process and the second LP process; and
based on at least the determined accuracies of the first LP process and the second LP process, selecting one of the first LP process and the second LP process to execute for at least part of a second time period.

### Claim 2 (depends on 1)

The method of claim 1, wherein the selecting is further based on a first power consumption of the first LP process relative to a second power consumption of the second LP process.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first LP process comprises a fused location provider (FLP).

### Claim 4 (depends on 1)

The method of claim 1, wherein executing the first LP process comprises executing a software process, and wherein executing the second LP process comprises executing a hardware process.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving an indication of a battery power level of the computing device falling below a threshold level,
wherein at least the selecting is carried out in response to receiving the indication of the battery power level falling below the threshold level.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining the respective accuracy of each of the first LP process and the second LP process comprises:
determining, using at least the sensor data, a motion model of the computing device that provides expected locations of the computing device, and
comparing the first estimated locations and the second estimated locations with the expected locations indicated by the motion model.

### Claim 7 (depends on 6)

The method of claim 6, further comprising disabling the first LP process based on the second estimated locations being within a threshold distance around the expected locations provided by the motion model.

### Claim 8 (depends on 6)

The method of claim 6, wherein determining the motion model comprises using dead reckoning to determine an estimated path of the computing device for a portion of the first time period based on the sensor data.

### Claim 9 (depends on 6)

The method of claim 6, wherein determining the motion model comprises:
receiving outputs from an accelerometer of the computing device;
determining changes in location of the computing device using the outputs from the accelerometer;
determining an estimated activity of a user of the computing device based on the changes in location of the computing device; and
determining the expected locations of the motion model based on the estimated activity of the user.

### Claim 10

A system comprising:
one or more processors, wherein the one or more processors comprise a first processor and a second processor;
one or more sensors; and
data storage including instructions executable by the one or more processors to perform operations comprising:
executing, for at least part of a first time period, a first location provider (LP) process using the first processor and a second LP process using the second processor;
obtaining first estimated locations of the system from the first LP process;
obtaining second estimated locations of the system from the second LP process;
obtaining sensor data from the one or more sensors, wherein the sensor data corresponds to the first time period;
determining, using the sensor data, a respective accuracy of each of the first LP process and the second LP process; and
based on at least the determined accuracies of the first LP process and the second LP process, selecting one of the first LP process and the second LP process to execute for at least part of a second time period.

### Claim 11 (depends on 10)

The system of claim 10, wherein the selecting is further based on a first power consumption of the first LP process relative to a second power consumption of the second LP process.

### Claim 12 (depends on 10)

The system of claim 10, wherein the first LP process comprises a fused-location provider (FLP).

### Claim 13 (depends on 10)

The system of claim 10, wherein determining the respective accuracy of each of the first LP process and the second LP process comprises:
determining, using at least the sensor data, a motion model of the system that provides expected locations of the system, and
comparing the first estimated locations and the second estimated locations with the expected locations indicated by the motion model.

### Claim 14 (depends on 10)

The system of claim 10, wherein the operations further comprise disabling one of the first LP process and the second LP process based on the determined accuracies of the first LP process and the second LP process.

### Claim 15

A method comprising:
executing, on a computing device, one of a first location provider (LP) process and a second LP process to obtain first estimated locations of the computing device, wherein executing the first LP process comprises using a first processor, and wherein executing the second LP process comprises using a second processor;
determining a motion model of the computing device that provides expected locations of the computing device;
making a comparison of the first estimated locations with the expected locations from the motion model; and
based on at least the comparison, enabling both the first LP process and the second LP process to execute on the computing device simultaneously for at least part of a time period to reevaluate which of the first LP process and the second LP process indicates second estimated locations closer to the expected locations.

### Claim 16 (depends on 15)

The method of claim 15, wherein the method further comprises:
determining a first power consumption from the first LP process, wherein the first power consumption is based on using the first processor,
determining a second power consumption from the second LP process, wherein the second power consumption is based on using the second processor, and
based on at least the first power consumption exceeding the second power consumption, disabling the first LP process.

### Claim 17 (depends on 15)

The method of claim 15, wherein the first LP process comprises a fused location provider (FLP).

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
determining that one of the first LP process and the second LP process stops providing the second estimated locations for the time period; and
disabling for a second time period the one of the first LP process and the second LP process that stops providing the second estimated locations.

### Claim 19 (depends on 15)

The method of claim 15, further comprising:
after expiration of the time period, executing on the computing device both the first LP process and the second LP process simultaneously for at least part of a second time period to provide additional estimated locations of the computing device;
making a second comparison of the additional estimated locations with the expected locations from the motion model; and
disabling one of the first LP process and the second LP process based on the second comparison.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
determining that the first estimated locations of the computing device are outside of a threshold distance around the expected locations indicated by the motion model; and
responsive to the determination, enabling both the first LP process and the second LP process to execute on the computing device simultaneously for at least part of the time period to reevaluate which of the first LP process and the second LP process indicates the second estimated locations of the computing device that are closer to the expected locations.
