US2018084387A1PendingUtilityA1

Determining Location Based on Measurements of Device Orientation

Assignee: GOOGLE LLCPriority: Aug 1, 2014Filed: Nov 1, 2017Published: Mar 22, 2018
Est. expiryAug 1, 2034(~8 yrs left)· nominal 20-yr term from priority
G01C 21/12H04W 4/026G01C 22/006G01C 21/14
54
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method implemented by one or more processors may include determining a rotation between a client device frame and a world frame, determining a rotation between an average gravity aligned (AGA) frame of the client device and the client device frame, performing step detection of the client device, and determining a change in orientation from a first detected step to a second detected step. In one example, computing the change in orientation includes determining a rotation between a horizontally projected AGA (HPAGA) frame and the AGA frame, determining a rotation between the world frame and the HPAGA frame, and determining the change in orientation by using the rotation between the world frame and the HPAGA frame. The method may also include determining, using the computed change in orientation, pedestrian dead reckoning data of the client device over a time period, and determining an output location estimate of the client device using the pedestrian dead reckoning data.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method comprising:
 receiving, by one or more processors of a computing device, a stream of sensor measurements made by a client device coupled to a user;   based on the sensor measurements, determining, by the one or more processors, a first angle of rotation between a client device coordinate frame defined with respect to the client device and a world coordinate frame defined with respect to Earth;   determining, by the one or more processors, an average gravity aligned (AGA) coordinate frame, wherein a z-axis of the AGA coordinate frame approximates a z-axis of the world coordinate frame;   determining, by the one or more processors, a second angle of rotation between the AGA coordinate frame and the client device coordinate frame;   detecting, by the one or more processors, two or more steps taken by the user while the client device is coupled to the user, wherein the step detection is based on accelerometer and gyroscope measurements made by the client device, and wherein the accelerometer and gyroscope measurements are included in the sensor measurements;   based on the first angle of rotation and the second angle of rotation, determining, by the one or more processors, a change in orientation of the user from a first detected step of the user to a second detected step of the user; and   based on the first detected step of the user, the second detected step of the user, and the change in orientation of the user, determining, by the one or more processors, a location estimate of the client device.   
     
     
         2 . The method of  claim 1 , wherein the computing device is the client device. 
     
     
         3 . The method of  claim 1 , wherein the first angle of rotation is based on sensor fusion of the accelerometer measurements and the gyroscope measurements. 
     
     
         4 . The method of  claim 3 , wherein the first angle of rotation is based on sensor fusion of the accelerometer measurements, the gyroscope measurements, and magnetometer measurements. 
     
     
         5 . The method of  claim 1 , wherein the AGA coordinate frame is defined with respect to an average of gravity measurements made by the client device, and wherein the gravity measurements are included in the sensor measurements. 
     
     
         6 . The method of  claim 1 , wherein determining the first angle of rotation comprises:
 determining a plurality of instances of the first angle of rotation over a period of time; and   selecting instances of the first angle of rotation from the plurality of instances such that the selected instances of the first angles of rotation are within a pre-determined angle of one another.   
     
     
         7 . The method of  claim 6 , wherein determining the AGA coordinate frame comprises determining the AGA coordinate frame using the selected instances of the first angle of rotation, and not using the non-selected instances of the first angle of rotation. 
     
     
         8 . The method of  claim 1 , wherein determining the change in orientation of the user from the first detected step of the user to the second detected step of the user comprises:
 projecting the AGA coordinate frame to a horizontal plane to provide a horizontally projected AGA (HPAGA) coordinate frame;   determining a third angle of rotation between the AGA coordinate frame and the HPAGA coordinate frame;   based on the first angle of rotation, the second angle of rotation, and the third angle of rotation, determining a fourth angle of rotation between the HPAGA coordinate frame and the world coordinate frame; and   based on the fourth angle of rotation, calculating the change in orientation of the user from the first detected step of the user to the second detected step of the user.   
     
     
         9 . The method of  claim 8 , wherein calculating the change in orientation of the user from the first detected step of the user to the second detected step of the user comprises:
 based on the fourth angle of rotation, determining a yaw component of the user between the first detected step of the user to the second detected step of the user; and   smoothing the yaw component of the user.   
     
     
         10 . The method of  claim 9 , wherein determining the location estimate of the client device comprises calculating the location estimate of the client device based on the yaw component of the user. 
     
     
         11 . The method of  claim 1 , further comprising:
 causing the client device to display the location estimate of the client device on a graphical representation of a map.   
     
     
         12 . A non-transitory computer-readable medium having stored therein instructions, that when executed by one or more processors of a computing device, cause the computing device to perform operations comprising:
 receiving a stream of sensor measurements made by a client device coupled to a user;   based on the sensor measurements, determining a first angle of rotation between a client device coordinate frame defined with respect to the client device and a world coordinate frame defined with respect to Earth;   determining an average gravity aligned (AGA) coordinate frame, wherein a z-axis of the AGA coordinate frame approximates a z-axis of the world coordinate frame;   determining a second angle of rotation between the AGA coordinate frame and the client device coordinate frame;   detecting two or more steps taken by the user while the client device is coupled to the user, wherein the step detection is based on accelerometer and gyroscope measurements made by the client device, and wherein the accelerometer and gyroscope measurements are included in the sensor measurements;   based on the first angle of rotation and the second angle of rotation, determining a change in orientation of the user from a first detected step of the user to a second detected step of the user; and   based on the first detected step of the user, the second detected step of the user, and the change in orientation of the user, determining a location estimate of the client device.   
     
     
         13 . The non-transitory computer-readable medium of  claim 12 , wherein the first angle of rotation is based on sensor fusion of the accelerometer measurements and the gyroscope measurements. 
     
     
         14 . The non-transitory computer-readable medium of  claim 12 , wherein the AGA coordinate frame is defined with respect to an average of gravity measurements made by the client device, and wherein the gravity measurements are included in the sensor measurements. 
     
     
         15 . The non-transitory computer-readable medium of  claim 12 , wherein determining the first angle of rotation comprises:
 determining a plurality of instances of the first angle of rotation over a period of time; and   selecting instances of the first angle of rotation from the plurality of instances such that the selected instances of the first angles of rotation are within a pre-determined angle of one another.   
     
     
         16 . The non-transitory computer-readable medium of  claim 15 , wherein determining the AGA coordinate frame comprises determining the AGA coordinate frame using the selected instances of the first angle of rotation, and not using the non-selected instances of the first angle of rotation. 
     
     
         17 . The non-transitory computer-readable medium of  claim 12 , wherein determining the change in orientation of the user from the first detected step of the user to the second detected step of the user comprises:
 projecting the AGA coordinate frame to a horizontal plane to provide a horizontally projected AGA (HPAGA) coordinate frame;   determining a third angle of rotation between the AGA coordinate frame and the HPAGA coordinate frame;   based on the first angle of rotation, the second angle of rotation, and the third angle of rotation, determining a fourth angle of rotation between the HPAGA coordinate frame and the world coordinate frame; and   based on the fourth angle of rotation, calculating the change in orientation of the user from the first detected step of the user to the second detected step of the user.   
     
     
         18 . The non-transitory computer-readable medium of  claim 17 , wherein calculating the change in orientation of the user from the first detected step of the user to the second detected step of the user comprises:
 based on the fourth angle of rotation, determining a yaw component of the user between the first detected step of the user to the second detected step of the user; and   smoothing the yaw component of the user.   
     
     
         19 . The non-transitory computer-readable medium of  claim 18 , wherein determining the location estimate of the client device comprises calculating the location estimate of the client device based on the yaw component of the user. 
     
     
         20 . A computing device comprising:
 a processor;   memory; and   program instructions, stored in the memory, that upon execution by the processor cause the computing device to perform operations comprising:
 receiving a stream of sensor measurements made by a client device coupled to a user; 
 based on the sensor measurements, determining a first angle of rotation between a client device coordinate frame defined with respect to the client device and a world coordinate frame defined with respect to Earth; 
 determining an average gravity aligned (AGA) coordinate frame, wherein a z-axis of the AGA coordinate frame approximates a z-axis of the world coordinate frame; 
 determining a second angle of rotation between the AGA coordinate frame and the client device coordinate frame; 
 detecting two or more steps taken by the user while the client device is coupled to the user, wherein the step detection is based on accelerometer and gyroscope measurements made by the client device, and wherein the accelerometer and gyroscope measurements are included in the sensor measurements; 
 based on the first angle of rotation and the second angle of rotation, determining a change in orientation of the user from a first detected step of the user to a second detected step of the user; and 
 based on the first detected step of the user, the second detected step of the user, and the change in orientation of the user, determining a location estimate of the client device.

Join the waitlist — get patent alerts

Track US2018084387A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.