Orientation estimation based on backward-forward bayesian filtering
First Claim
1. A method comprising:
- receiving a set of sensor data, wherein the set of sensor data comprises data from at least two movement sensors of a device and wherein the sensor data corresponds to a movement of the device, and wherein the movement sensors include at least one of a gyroscope, a magnetometer, and an accelerometer;
communicating at least a subset of the set of sensor data to a remote server;
determining a sensor bias for a first sensor of the at least two movement sensors by iteratively;
filtering data from a first sensor of the two movement sensors a first time to determine the sensor bias based on data from a second sensor of the at least two movement sensors, and wherein the filtering of the data the first time filters the data in one of a forward-in-time direction or a backward-in-time direction;
adjusting the set of sensor data based on the determined bias;
filtering the data from the first sensor a second time to revise the determined sensor bias, wherein the filtering is performed based on the data from the second sensor of the at least two movement sensors, and wherein the filtering of the data the second time filters the data in the other one of the forward-in-time direction or the backward-in-time direction;
adjusting the set of sensor data based on the revised determined bias; and
storing the adjusted sensor data; and
supplementing the adjusted sensor data based on calculations performed by the server.
2 Assignments
0 Petitions
Accused Products
Abstract
A system includes one or more processors, and data storage configured to store instructions that, when executed by the one or more processors, cause the system to perform functions. In this example, the functions include receiving sensor data that is collected by one or more sensors of a device over one or more locations and over a time period. Further, in the present example, the functions also include determining location estimates of the device by performing filtering of the sensor data to determine offsets for a least one sensor providing sensor data. The filtering is an iterative process of filtering control input data to determine the sensor bias based on data from a second sensor of the at least two sensors and adjusting the set of sensor data based on the determined bias.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving a set of sensor data, wherein the set of sensor data comprises data from at least two movement sensors of a device and wherein the sensor data corresponds to a movement of the device, and wherein the movement sensors include at least one of a gyroscope, a magnetometer, and an accelerometer; communicating at least a subset of the set of sensor data to a remote server; determining a sensor bias for a first sensor of the at least two movement sensors by iteratively; filtering data from a first sensor of the two movement sensors a first time to determine the sensor bias based on data from a second sensor of the at least two movement sensors, and wherein the filtering of the data the first time filters the data in one of a forward-in-time direction or a backward-in-time direction; adjusting the set of sensor data based on the determined bias; filtering the data from the first sensor a second time to revise the determined sensor bias, wherein the filtering is performed based on the data from the second sensor of the at least two movement sensors, and wherein the filtering of the data the second time filters the data in the other one of the forward-in-time direction or the backward-in-time direction; adjusting the set of sensor data based on the revised determined bias; and storing the adjusted sensor data; and supplementing the adjusted sensor data based on calculations performed by the server. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable medium having stored thereon program instructions that when executed by one or more processors cause performance of functions in connection with a computing device, the functions comprising:
-
receiving a set of sensor data, wherein the set of sensor data comprises data from at least two movement sensors of a device and wherein the sensor data corresponds to a movement of the device, and wherein the movement sensors include at least one of a gyroscope, a magnetometer, and an accelerometer; communicating at least a subset of the set of sensor data to a remote server; determining a sensor bias for a first sensor of the at least two movement sensors by iteratively; filtering data from a first sensor of the two movement sensors a first time to determine the sensor bias based on data from a second sensor of the at least two movement sensors, and wherein the filtering of the data the first time filters the data in one of a forward-in-time direction or a backward-in-time direction; adjusting the set of sensor data based on the determined bias; filtering the data from the first sensor a second time to revise the determined sensor bias, wherein the filtering is performed based on the data from the second sensor of the at least two movement sensors, and wherein the filtering of the data the second time filters the data in the other one of the forward-in-time direction or the backward-in-time direction; adjusting the set of sensor data based on the revised determined bias; and storing the adjusted sensor data; and supplementing the adjusted sensor data based on calculations performed by the server. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A mobile device comprising:
-
a plurality of movement sensors, wherein the plurality of sensors comprises at least two movement sensors; a processor configured to; receive a set of sensor data, wherein the set of sensor data comprises data from at least two movement sensors of a device and wherein the sensor data corresponds to a movement of the device, and wherein the movement sensors include at least one of a gyroscope, a magnetometer, and an accelerometer; communicate at least a subset of the set of sensor data to a remote server; determine a sensor bias for a first sensor of the at least two movement sensors by iteratively; filtering data from a first sensor of the two movement sensors a first time to determine the sensor bias based on data from a second sensor of the at least two movement sensors, and wherein the filtering of the data the first time filters the data in one of a forward-in-time direction or a backward-in-time direction; adjusting the set of sensor data based on the determined bias; filtering the data from the first sensor a second time to revise the determined sensor bias, wherein the filtering is performed based on the data from the second sensor of the at least two movement sensors, and wherein the filtering of the data the second time filters the data in the other one of the forward-in-time direction or the backward-in-time direction; adjusting the set of sensor data based on the revised determined bias; and supplementing the adjusted sensor data based on calculations performed by the server; a memory configured to store the adjusted sensor data in a memory. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification