# US 11,994,676 B2 · Method and system for resolving hemisphere ambiguity in six degree of freedom pose measurements

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

- Number: US 11,994,676 B2
- Document ID: US11994676B2
- Status: Granted
- Kind: B2
- Application number: 17/684,228
- Filed: 2022-03-01
- Published: 2023-01-26
- Granted: 2024-05-28
- Earliest claimed: 2019-01-28
- Assignees: Magic Leap, Inc.
- Applicants: Magic Leap, Inc.
- Inventors: Ronald Joseph Degges, Jr.; Sheng Wan; Andy Warner; Akash Gujarati
- Web page: https://patentgrep.com/patent/US11994676B2

## CPC

- G02B 27/0093: {with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking}
- G06F 3/017: {Gesture based interaction, e.g. based on a set of recognized hand gestures (interaction based on gestures traced on a digitiser G06F3/04883)}
- A63F 13/40: Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- G01P 15/0888: {for indicating angular acceleration}
- G02B 27/0172: {characterised by optical features}
- G06F 3/011: {Arrangements for interaction with the human body, e.g. for user immersion in virtual reality (blind teaching G09B21/00)}
- G06F 3/012: {Head tracking input arrangements}
- G02B 2027/0138: {comprising image capture systems, e.g. camera}
- G02B 2027/014: {comprising information/image processing systems}
- G02B: OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G01P: MEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT (measuring or recording blood flow A61B5/02, A61B8/06; monitoring speed or deceleration of electrically-propelled vehicles B60L3/00; vehicle lighting systems adapted to indicate speed B60Q1/54; determining position or course in navigation, measuring ground distance in geodesy or surveying G01C; combined measuring devices for measuring two or more variables of movement G01C23/00; measuring velocity of sound G01H; measuring velocity of light G01J7/00; measuring direction or velocity of solid objects by reception or emission of radiowaves or other waves and based on propagation effects, e.g. Doppler effect, propagation time, direction of propagation, G01S; measuring speed of nuclear radiation G01T; measuring acceleration of gravity G01V; {measuring or recording the speed of trains B61L23/00; speed indicators incorporated in motor vehicles B60K35/00; measuring frequency or phase G01R; traffic control G08G})

## Abstract

Techniques for resolving hemisphere ambiguity are disclosed. One or more magnetic fields are emitted at a handheld controller. The one or more magnetic fields are detected by one or more sensors positioned relative to a headset. Movement data corresponding to the handheld controller or the headset is detected. During a first time interval, a first position and a first orientation of the handheld controller within a first hemisphere are determined based on the detected one or more magnetic fields, and a first discrepancy is calculated based on the first position, the first orientation, and the movement data. During a second time interval, a second position and a second orientation of the handheld controller within a second hemisphere are determined based on the detected one or more magnetic fields, and a second discrepancy is calculated based on the second position, the second orientation, and the movement data.

## Claims

### Claim 1

A method comprising:
emitting magnetic fields at a handheld controller;
detecting the magnetic fields at a magnetic field sensor positioned relative to a headset;
initiating a first processing stack and a second processing stack;
wherein the first processing stack includes, at each of multiple first time steps:
determining a first position and a first orientation of the handheld controller within a first hemisphere with respect to the headset based on the magnetic fields detected by the magnetic field sensor; and
calculating a first discrepancy based on the first position and the first orientation;
wherein the second processing stack includes, at each of multiple second time steps:
determining a second position and a second orientation of the handheld controller within a second hemisphere with respect to the headset based on the magnetic fields detected by the magnetic field sensor, wherein the second hemisphere is diametrically opposite the first hemisphere; and
calculating a second discrepancy based on the second position and the second orientation; and
after the multiple first time steps and the multiple second time steps, making a determination, based on the first discrepancy and the second discrepancy, as whether to (i) abort the first processing stack, (ii) abort the second processing stack, or (iii) continue processing with both the first processing stack and the second processing stack, wherein it is determined to abort the first processing stack if the first discrepancy is greater than a threshold, it is determined to abort the second processing stack if the second discrepancy is greater than the threshold, and it is determined to continue processing with both the first processing stack and the second processing stack if the first discrepancy and the second discrepancy are less than the threshold.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
detecting movement data corresponding to movement of the handheld controller or the headset, wherein the first discrepancy and the second discrepancy are calculated further based on the movement data.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
if the determination is to abort the first processing stack, continuing to determine positions and orientations of the handheld controller within the second hemisphere; and
if the determination is to abort the second processing stack, continuing to determine positions and orientations of the handheld controller within the first hemisphere.

### Claim 4 (depends on 2)

The method of claim 2, wherein the movement data corresponds to the movement of the handheld controller, and wherein the movement data is detected by a movement sensor positioned within the handheld controller.

### Claim 5 (depends on 2)

The method of claim 2, wherein the movement data corresponds to the movement of the headset, and wherein the movement data is detected by a movement sensor positioned within the headset.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first hemisphere is a front hemisphere with respect to the headset and the second hemisphere is a back hemisphere with respect to the headset.

### Claim 7

A system comprising:
a handheld controller comprising a magnetic field emitter configured to emit magnetic fields;
a headset comprising a magnetic field sensor configured to detect the magnetic fields; and
one or more processors configured to perform operations including:
initiating a first processing stack and a second processing stack;
wherein the first processing stack includes, at each of multiple first time steps:
determining a first position and a first orientation of the handheld controller within a first hemisphere with respect to the headset based on the magnetic fields detected by the magnetic field sensor; and
calculating a first discrepancy based on the first position and the first orientation;
wherein the second processing stack includes, at each of multiple second time steps:
determining a second position and a second orientation of the handheld controller within a second hemisphere with respect to the headset based on the magnetic fields detected by the magnetic field sensor, wherein the second hemisphere is diametrically opposite the first hemisphere; and
calculating a second discrepancy based on the second position and the second orientation; and
after the multiple first time steps and the multiple second time steps, making a determination, based on the first discrepancy and the second discrepancy, as whether to (i) abort the first processing stack, (ii) abort the second processing stack, or (iii) continue processing with both the first processing stack and the second processing stack, wherein it is determined to abort the first processing stack if the first discrepancy is greater than a threshold, it is determined to abort the second processing stack if the second discrepancy is greater than the threshold, and it is determined to continue processing with both the first processing stack and the second processing stack if the first discrepancy and the second discrepancy are less than the threshold.

### Claim 8 (depends on 7)

The system of claim 7, further comprising:
a movement sensor configured to detect movement data corresponding to movement of the handheld controller or the headset, wherein the first discrepancy and the second discrepancy are calculated further based on the movement data.

### Claim 9 (depends on 7)

The system of claim 7, wherein the operations further comprise:
if the determination is to abort the first processing stack, continuing to determine positions and orientations of the handheld controller within the second hemisphere; and
if the determination is to abort the second processing stack, continuing to determine positions and orientations of the handheld controller within the first hemisphere.

### Claim 10 (depends on 8)

The system of claim 8, wherein the movement data corresponds to the movement of the handheld controller, and wherein the movement sensor is positioned within the handheld controller.

### Claim 11 (depends on 8)

The system of claim 8, wherein the movement data corresponds to the movement of the headset, and wherein the movement sensor is positioned within the headset.

### Claim 12 (depends on 7)

The system of claim 7, wherein the first hemisphere is a front hemisphere with respect to the headset and the second hemisphere is a back hemisphere with respect to the headset.

### Claim 13

A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
causing magnetic fields to be emitted at a handheld controller;
causing the magnetic fields to be detected at a magnetic field sensor positioned relative to a headset;
initiating a first processing stack and a second processing stack;
wherein the first processing stack includes, at each of multiple first time steps:
determining a first position and a first orientation of the handheld controller within a first hemisphere with respect to the headset based on the magnetic fields detected by the magnetic field sensor; and
calculating a first discrepancy based on the first position and the first orientation;
wherein the second processing stack includes, at each of multiple second time steps:
determining a second position and a second orientation of the handheld controller within a second hemisphere with respect to the headset based on the magnetic fields detected by the magnetic field sensor, wherein the second hemisphere is diametrically opposite the first hemisphere; and
calculating a second discrepancy based on the second position and the second orientation; and
after the multiple first time steps and the multiple second time steps, making a determination as whether to (i) abort the first processing stack, (ii) abort the second processing stack, or (iii) continue processing with both the first processing stack and the second processing stack, wherein it is determined to abort the first processing stack if the first discrepancy is greater than a threshold, it is determined to abort the second processing stack if the second discrepancy is greater than the threshold, and it is determined to continue processing with both the first processing stack and the second processing stack if the first discrepancy and the second discrepancy are less than the threshold.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the operations further comprise:
detecting movement data corresponding to movement of the handheld controller or the headset, wherein the first discrepancy and the second discrepancy are calculated further based on the movement data.

### Claim 15 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the operations further comprise:
if the determination is to abort the first processing stack, continuing to determine positions and orientations of the handheld controller within the second hemisphere; and
if the determination is to abort the second processing stack, continuing to determine positions and orientations of the handheld controller within the first hemisphere.

### Claim 16 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein the movement data corresponds to the movement of the handheld controller, and wherein the movement data is detected by a movement sensor positioned within the handheld controller.

### Claim 17 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein the movement data corresponds to the movement of the headset, and wherein the movement data is detected by a movement sensor positioned within the headset.
