Patent ID: 8797262

Claim:
A method of sensing motion in a three-dimensional (3D) space, the method comprising: reading a plurality of values of at least one accelerometer contained in a device in three axes, wherein the three axes are three axes of a three-dimensional coordinate system in the 3D space; reading a plurality of values of at least one gyroscope of the device in two axes of the three axes; using the plurality of values of the accelerometer in the three axes and the plurality of values of the gyroscope in the two axes to generate a rotation radius of the device according to the following equation: ( A x - r × Δ ⁢ ⁢ w z Δ ⁢ ⁢ t ) 2 + ( A z - r × Δ ⁢ ⁢ w x Δ ⁢ ⁢ t ) 2 + ( A y - r ⁡ ( w z 2 + w x 2 ) ) 2 = G 2 ; wherein A x is an x axis acceleration component detected by the accelerometer; A y is a y axis acceleration component detected by the accelerometer; A z is a z axis acceleration component detected by the accelerometer; w z is Z-axis angular velocity detected by the gyroscope; w x is X-axis angular velocity detected by the gyroscope; Δt is a sampling period both of the accelerometer and the gyroscope; Δw z is a difference of Z-axis angular velocity during the sampling period Δt; Δw x is a difference of X-axis angular velocity during the sampling period Δt; G is gravity; and r is the rotation radius of the device; using the rotation radius of the device and the plurality of values of the gyroscope in the two axes to generate tangential accelerations of the device in the two axes; and using a plurality of values of the accelerometer in the two axes, the tangential accelerations of the device in the two axes, the plurality of values of the gyroscope in the two axes, and the rotation radius of the device to generate a motion output of the device, comprising: using the plurality of values of the accelerometer in the two axes and the tangential accelerations of the device in the two axes to generate gravity components of the device in the two axes; using the gravity components of the device in the two axes to obtain an angle between a composite vector composed of the gravity components in the two axes and one axis of the two axes; and using the plurality of values of the gyroscope in the two axes, the rotation radius of the device, and the angle to generate a horizontal motion output and a vertical motion output of the device.