| CPC G06F 3/0346 (2013.01) | 16 Claims |

|
1. A non-transitory computer-readable medium having contents which configure a processing device to perform a method, the method comprising:
estimating an angular rate of change based on rotational data;
determining a rotational versor based on the rotational data;
estimating a gravity vector based on the angular rate of change and the rotational versor;
estimating a linear acceleration based on acceleration data;
determining an acceleration versor based on the acceleration data;
determining a correction factor based on the linear acceleration;
estimating an error in the estimated gravity vector based on the acceleration versor;
generating a dynamic gravity vector based on the estimated gravity vector, the correction factor and the estimated error in the estimated gravity vector; and
using the dynamic gravity vector to perform an operation of a software application, wherein the gravity vector is estimated according to:
![]() where gprop is the estimated gravity vector, θ is the estimated angular rate of change, and gt-1 is a previous dynamic gravity vector.
|