# US 10,120,461 B2 · Mapped variable smoothing evolution method and device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,461 B2
- Document ID: US10120461B2
- Status: Granted
- Kind: B2
- Application number: 14/888,255
- Filed: 2014-04-30
- Published: 2016-03-17
- Granted: 2018-11-06
- Earliest claimed: 2013-05-01
- Assignees: IDHL Holdings, Inc.
- Applicants: IDHL Holdings, Inc.
- Inventors: Bryan A. Cook; Yun Li
- Web page: https://patentgrep.com/patent/US10120461B2

## CPC

- G06F 3/0346: with detection of the device orientation or free movement in a three-dimensional [3D] space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
- G06F 3/038: Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present inventions generally relate to methods and dedicated apparatuses outputting a variable mapped on a device orientation in a non-inertial reference system, with the device orientation being estimated using measurements of motion sensors (such as 3D accelerometers and gyroscopes) and a magnetometer or other similar sensors including cameras. A variable mapped on an orientation of a device is smoothed to have a gradual evolution by adjusting the estimated orientation of the device obtained via sensor fusion or other sensor processing to take into consideration a current measured angular velocity.

## Claims

### Claim 1

A method for smoothing evolution of a variable depending on an orientation of a device, the method comprising:
determining an adjusted angular velocity (Ωs,n) based on a measured angular velocity (ωn) and an estimated angular velocity (Ωf,n), such that to satisfy one or more predefined constraints, including at least one constraint for masking of any of a correction and an artifact;
determining a current value (x) of the variable according to an adjusted estimate of the current orientation (qs,n) of the device obtained using the adjusted angular velocity (Ωs,n); and
outputting the current value (x) of the variable.

### Claim 2 (depends on 1)

The method of claim 1, wherein the variable defines any of a position of a cursor on a screen and an image displayed to a video-game user.

### Claim 3 (depends on 1)

The method of claim 1, wherein the adjusted estimate of the current orientation of the device, and the measured, estimated and adjusted angular velocities are expressed in a reference system defined relative to gravity direction and Earth magnetic field direction.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
calculating the estimated angular velocity (Ωf,n) using an estimate of a current orientation (qf,n) of the device and an adjusted estimate of a previous orientation (qs,n-1) of the device.

### Claim 5 (depends on 4)

The method of claim 4, wherein the estimate of the current orientation (qf,n) of the device is obtained using a sensor fusion method, wherein the sensor fusion method uses measurements of any of a magnetometer and an accelerometer, and wherein the measured angular velocity is obtained using a gyroscope.

### Claim 6 (depends on 5)

The method of claim 5, wherein the estimate of the current orientation (qf,n) and the adjusted estimate of a previous orientation (qs,n-1) are expressed as quaternions.

### Claim 7 (depends on 1)

The method of claim 1, wherein the one of more predetermined constraints include the adjusted angular velocity (Ωs,n) being substantially equal to zero when the measured angular velocity (ωn) is substantially equal to zero.

### Claim 8 (depends on 1)

The method of claim 1, wherein the determining of the adjusted angular velocity (Ωs,n) includes projecting the estimated angular velocity (Ωf,n) along a direction of the measured angular velocity (ωn),
calculating a scaling factor (α) as a ratio of the result of the projecting and a magnitude of the measured angular velocity (ωn); and
if the scaling factor exceeds a predetermined first value (MaxScaling) or is below a predetermined second value (MinScaling), setting the scaling factor (α) equal to the predetermined first value or to the predetermined second value, respectively,
wherein a magnitude of the adjusted angular velocity (Ωs,n) is equal to the magnitude of the measured angular velocity (ωn) multiplied with the scaling factor.

### Claim 9 (depends on 1)

The method of claim 1, wherein the determining of the adjusted angular velocity (Ωs,n) includes:
determining an auxiliary unit vector (v2) based on a first unit vector (v0) along the measured angular velocity (ωn), a second unit vector (v1) along the estimated angular velocity (Ωf,n) and an angle (θ) there-between; and
determining a unit vector (v) along the adjusted angular velocity (Ωs,n) using the first, second and auxiliary unit vectors.

### Claim 10 (depends on 9)

The method of claim 9, wherein the unit vector (v) is the second unit vector (v1) if the angle (θ) between the measured angular velocity (ωn) and the estimated angular velocity (Ωf,n) is less than or equal to a maximum angle (θmax).

### Claim 11 (depends on 10)

The method of claim 10, wherein if the angle (θ) is larger than the maximum angle (θmax), then the unit vector (v) is at the maximum angle from the measured angular velocity (ωn), between and in a same plane as the measured angular velocity (ωn) and the estimated angular velocity (Ωf,n).

### Claim 12 (depends on 11)

The method of claim 11, wherein the determining of the adjusted angular velocity (Ωs,n) includes projecting the estimated angular velocity (Ωf,n) along a direction of the measured angular velocity (ωn),
calculating a scaling factor (α) as a ratio of the result of the projecting and a magnitude of the measured angular velocity (ωn); and
if the scaling factor (α) exceeds a predetermined first value (MaxScaling) or is below a predetermined second value (MinScaling), setting the scaling factor (α) equal to the predetermined first value or to the predetermined second value, respectively,
wherein a magnitude of the adjusted angular velocity (Ωs,n) is equal to the magnitude of the measured angular velocity (ωn) multiplied with the scaling factor (α).

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
adjusting at least one of the predetermined first value (MaxScaling), the predetermined second value (MinScaling) and the maximum angle (θmax).

### Claim 14 (depends on 1)

The method of claim 1, further comprising:
outputting a stabilized current orientation which is equal to a stabilized previous orientation (q′s,n-1) if a difference between the adjusted estimate of the current orientation (qs,n) and the stabilized previous orientation (q′s,n-1) is less than a predetermined threshold (m).

### Claim 15 (depends on 14)

The method of claim 14, wherein if a difference between the adjusted estimate of the current orientation (qs,n) and the stabilized previous orientation (q′s,n-1) exceeds the predetermined threshold (m), then the stabilized current orientation (q′s,n) is equal to the adjusted estimate of the current orientation (qs,n) after being shifted with the predetermined threshold, towards the stabilized previous orientation (q′s,n-1).

### Claim 16 (depends on 1)

The method of claim 1, wherein the adjusted estimate of the current orientation (qs,n) of the device is obtained by adding to a previous orientation (qs,n-1) of the device, a change thereof obtained by integrating the adjusted angular velocity (Ωs,n) over a time interval.

### Claim 17

A gaming system configured to display an image to a user according to an orientation of a device, the system comprising:
sensors mounted on the device and configured to acquire information leading to a measured angular velocity (ωn) and an estimate of a current orientation (qf,n) of the device; and
a data processing unit configured to determine:
an adjusted angular velocity (Ωs,n) based on the measured angular velocity (ωn) and the estimated angular velocity (Ωf,n), such that to satisfy one or more predefined constraints, including at least one constraint for masking of any of a correction and an artifact;
an adjusted estimate of the current orientation (qs,n) of the device obtained using the adjusted angular velocity (Ωs,n); and
the image to be displayed to the user according to the adjusted estimate of the current orientation.

### Claim 18

An information system controlled by orientation of a device, the system comprising:
sensors mounted on the device and configured to acquire information leading to a measured angular velocity (ωn) and an estimate of a current orientation (qf,n) of the device; and
a data processing unit configured to determine:
an adjusted angular velocity (Ωs,n) based on the measured angular velocity (ωn) and the estimated angular velocity (Ωf,n), such that to satisfy one or more predefined constraints, including at least one constraint for masking of any of a correction and an artifact;
an adjusted estimate of the current orientation (qs,n) of the device obtained using the adjusted angular velocity (Ωs,n); and
a position of a cursor on a screen based on the current orientation (qs,n) of the device.

### Claim 19

An apparatus directed to smoothing evolution of a variable depending on an orientation of a device, the apparatus comprising circuitry, including a processor and memory, configured to:
determine an adjusted angular velocity (Ωs,n) based on a measured angular velocity (ωn) and an estimated angular velocity (Ωf,n), such that to satisfy one or more predefined constraints, including at least one constraint for masking of any of a correction and an artifact; and
determine a current value (x) of the variable according to an adjusted estimate of the current orientation (qs,n) of the device obtained using the adjusted angular velocity (Ωs,n); and
output the current value (x) of the variable.

### Claim 20 (depends on 19)

The apparatus of claim 19, wherein the circuitry is configured to determine the adjusted angular velocity (Ωs,n) by, at least in part:
projecting the estimated angular velocity (Ωf,n) along a direction of the measured angular velocity (ωn),
calculating a scaling factor (α) as a ratio of the result of the projecting and a magnitude of the measured angular velocity (ωn); and
if the scaling factor exceeds a predetermined first value (MaxScaling) or is below a predetermined second value (MinScaling), setting the scaling factor (α) equal to the predetermined first value or to the predetermined second value, respectively,
wherein a magnitude of the adjusted angular velocity (Ωs,n) is equal to the magnitude of the measured angular velocity (ωn) multiplied with the scaling factor.

### Claim 21 (depends on 19)

The apparatus of claim 19, wherein the circuitry is configured to determine the adjusted angular velocity (Ωs,n) by, at least in part:
determining an auxiliary unit vector (v2) based on a first unit vector (v0) along the measured angular velocity (ωn), a second unit vector (v1) along the estimated angular velocity (Ωf,n) and an angle (θ) there-between; and
determining a unit vector (v) along the adjusted angular velocity (Ωs,n) using the first, second and auxiliary unit vectors.

### Claim 22 (depends on 21)

The apparatus of claim 21, wherein the unit vector (v) is the second unit vector (v1) if the angle (θ) between the measured angular velocity (ωn) and the estimated angular velocity (Ωf,n) is less than or equal to a maximum angle (θmax).

### Claim 23 (depends on 22)

The apparatus of claim 22, wherein if the angle (θ) is larger than the maximum angle (θmax), then the unit vector (v) is at the maximum angle from the measured angular velocity (ωn), between and in a same plane as the measured angular velocity (ωn) and the estimated angular velocity (Ωf,n).

### Claim 24 (depends on 19)

The apparatus of claim 19, wherein the circuitry is configured to:
output a stabilized current orientation which is equal to a stabilized previous orientation (q′s,n-1) if a difference between the adjusted estimate of the current orientation (qs,n) and the stabilized previous orientation (q′s,n-1) is less than a predetermined threshold (m).

### Claim 25 (depends on 24)

The apparatus of claim 24, wherein if a difference between the adjusted estimate of the current orientation (qs,n) and the stabilized previous orientation (q′s,n-1) exceeds the predetermined threshold (m), then the stabilized current orientation (q′s,n) is equal to the adjusted estimate of the current orientation (qs,n) after being shifted with the predetermined threshold, towards the stabilized previous orientation (q′s,n-1).

### Claim 26 (depends on 19)

The apparatus of claim 19, wherein the adjusted estimate of the current orientation (qs,n) of the device is obtained by adding to a previous orientation (qs,n-1) of the device, a change thereof obtained by integrating the adjusted angular velocity (Ωs,n) over a time interval.
