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 and wherein the sensor data corresponds to a movement of a device having the at least two movement sensors, wherein data from a first sensor of the two movement sensors is a control input data, and wherein the movement sensors include at least one of a gyroscope, a magnetometer, and an accelerometer;
determining a sensor bias for a first sensor of the at least two movement sensors by iteratively;
filtering the control input data 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 control input 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 control input data 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 control input 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
wherein the determining a sensor bias is performed iteratively until the sensor bias converges within a convergence threshold; and
storing the adjusted sensor data in response to the sensor bias converging.
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.
14 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 and wherein the sensor data corresponds to a movement of a device having the at least two movement sensors, wherein data from a first sensor of the two movement sensors is a control input data, and wherein the movement sensors include at least one of a gyroscope, a magnetometer, and an accelerometer; determining a sensor bias for a first sensor of the at least two movement sensors by iteratively; filtering the control input data 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 control input 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 control input data 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 control input 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
wherein the determining a sensor bias is performed iteratively until the sensor bias converges within a convergence threshold; andstoring the adjusted sensor data in response to the sensor bias converging. - 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 with a communication unit of the computing device, wherein the set of sensor data comprises data from at least two movement sensors and wherein the sensor data corresponds to a movement of a device having the at least two movement sensors, wherein data from a first sensor of the two movement sensors is a control input data, and wherein the movement sensors include at least one of a gyroscope, a magnetometer, and an accelerometer; determining a sensor bias for a first sensor of the at least two movement sensors with a processing unit of the computing device by iteratively; filtering the control input data a first time to determine the sensor bias based on data from a second sensor of the at least two movement sensors, wherein the filtering of control input 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 control input data 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, wherein the filtering of the control input 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
wherein the determining a sensor bias is performed iteratively until the sensor bias converges within a convergence threshold; andstoring the adjusted sensor data in a memory in response to the sensor bias converging. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A mobile device comprising:
-
a plurality of movement sensors, wherein the plurality of movement sensors comprises at least two movement sensors, and wherein the movement sensors include at least one of a gyroscope, a magnetometer, and an accelerometer; a processor configured to; receive a set of sensor data, wherein the set of sensor data comprises data from at least two movement sensors and wherein the sensor data corresponds to a movement of a device having the at least two movement sensors, wherein data from a first sensor of the two movement sensors is a control input data; determine a sensor bias for a first sensor of the plurality of movement sensors by iteratively; filtering the control input data a first time in a first direction to determine the sensor bias based on data from a second sensor of the at least two movement sensors, wherein the filtering of control input 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 control input data a second time in a second direction 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, wherein the filtering of the control input 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 wherein the determining a sensor bias is performed iteratively until the sensor bias converges within a convergence threshold; and a memory configured to store the adjusted sensor data in a memory in response to the sensor bias converging. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification