# US 2020/0401181 A1 · Headset clock synchronization

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

- Number: US 2020/0401181 A1
- Document ID: US20200401181A1
- Status: Published application
- Kind: A1
- Application number: 17/007,401
- Filed: 2020-08-31
- Published: 2020-12-24
- Earliest claimed: 2018-10-29
- Assignees: Facebook Technologies, LLC
- Applicants: Facebook Technologies, LLC
- Inventors: Boyang Zhang; Adrian Brian Ratter; Chengyuan Yan; Jack Hood Profit, JR.; Paul Austin Buckley
- Web page: https://patentgrep.com/patent/US20200401181A1

## CPC

- G06F 1/12: Synchronisation of different clock signals {provided by a plurality of clock generators}
- H04L 67/12: specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- G06F 1/14: Time supervision arrangements, e.g. real time clock
- G06F 3/011: {Arrangements for interaction with the human body, e.g. for user immersion in virtual reality (blind teaching G09B21/00)}
- 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
- G06T 19/006: {Mixed reality (object pose determination, tracking or camera calibration for mixed reality G06T7/00)}
- H04L 43/0829: Packet loss
- H04L 67/131: Protocols for games, networked simulations or virtual reality
- H04W 4/38: for collecting sensor information
- H04W 4/80: Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

In one embodiment, a method includes receiving, from a controller, a data packet including (1) a plurality of samples each corresponding to measurements from a motion sensor and (2) a timestamp corresponding to a measurement time of one of the samples as measured by a clock of the controller; determining, based on the timestamp, an estimated measurement time relative to a local clock for each of the plurality of samples that is not associated with the timestamp; and converting each of the timestamp and the estimated measurement times to a corresponding synchronization time using a learned relationship relating the clock of the controller and the local clock. The learned relationship is iteratively learned based on previously received data packets from the controller. The synchronization time associated with each of the plurality of samples represents an estimated time, relative to the local clock, at which the sample was measured.

## Claims

### Claim at position 1

1-20. (canceled)

### Claim 21

A method comprising, by a computing device:
receiving, through a wireless transmission from a first device, (1) a motion sample generated using a motion sensor associated with the first device and (2) a first timestamp associated with the motion sample, the first timestamp being relative to a first clock of the first device;
determining, using a second clock, a second timestamp indicating a time at which the motion sample is received;
updating, based on the first timestamp and the second timestamp, a learned relationship relating the first clock of the first source and the second clock, wherein the learned relationship is iteratively learned based on previously received timestamps from the first source; and
converting the first timestamp associated with the motion sample to a synchronization time using the updated learned relationship, the synchronization time being relative to the second clock.

### Claim 22 (depends on 21)

The method of claim 21, wherein the second clock operates at a rate different than the first clock of the first device.

### Claim 23 (depends on 21)

The method of claim 21, wherein:
the computing device is an artificial-reality headset; and
the first device is a controller of an artificial-reality headset.

### Claim 24 (depends on 23)

The method of claim 23, wherein the motion sensor is a gyroscope of the controller of the artificial-reality headset.

### Claim 25 (depends on 21)

The method of claim 21, wherein the synchronization time represents an estimated time, relative to the second clock, at which the motion sample was measured.

### Claim 26 (depends on 21)

The method of claim 21, further comprising:
receiving, through the wireless transmission from the first device, a plurality of motion samples generated using the motion sensor associated with the first device;
determining, based on the first timestamp associated with the motion sample, an estimated measurement time relative to the second clock for each of the plurality of motion samples that is not associated with the first timestamp; and
converting each of the estimated measurement times to a corresponding synchronization time using the learned relationship.

### Claim 27 (depends on 26)

The method of claim 26, further comprising:
generating an artificial-reality environment based on the motion sample, the plurality of motion samples, and their respective synchronization times.

### Claim 28 (depends on 21)

The method of claim 21, wherein the wireless transmission comprises a BLUETOOTH LOW ENERGY wireless protocol.

### Claim 29

One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
receive, through a wireless transmission from a first device, (1) a motion sample generated using a motion sensor associated with the first device and (2) a first timestamp associated with the motion sample, the first timestamp being relative to a first clock of the first device;
determine, using a second clock, a second timestamp indicating a time at which the motion sample is received;
update, based on the first timestamp and the second timestamp, a learned relationship relating the first clock of the first source and the second clock, wherein the learned relationship is iteratively learned based on previously received timestamps from the first source; and
convert the first timestamp associated with the motion sample to a synchronization time using the updated learned relationship, the synchronization time being relative to the second clock.

### Claim 30 (depends on 29)

The media of claim 29, wherein the second clock operates at a rate different than the first clock of the first device.

### Claim 31 (depends on 29)

The media of claim 29, wherein the first device is a controller of an artificial-reality headset.

### Claim 32 (depends on 31)

The media of claim 31, wherein the motion sensor is a gyroscope of the controller of the artificial-reality headset.

### Claim 33 (depends on 29)

The media of claim 29, wherein the synchronization time represents an estimated time, relative to the second clock, at which the motion sample was measured.

### Claim 34 (depends on 29)

The media of claim 29, wherein the wireless transmission comprises a BLUETOOTH LOW ENERGY wireless protocol.

### Claim 35

A system comprising:
one or more processors; and
a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:
receive, through a wireless transmission from a first device, (1) a motion sample generated using a motion sensor associated with the first device and (2) a first timestamp associated with the motion sample, the first timestamp being relative to a first clock of the first device;
determine, using a second clock, a second timestamp indicating a time at which the motion sample is received;
update, based on the first timestamp and the second timestamp, a learned relationship relating the first clock of the first source and the second clock, wherein the learned relationship is iteratively learned based on previously received timestamps from the first source; and
convert the first timestamp associated with the motion sample to a synchronization time using the updated learned relationship, the synchronization time being relative to the second clock.

### Claim 36 (depends on 35)

The system of claim 35, wherein the second clock operates at a rate different than the first clock of the first device.

### Claim 37 (depends on 35)

The system of claim 35, wherein the first device is a controller of an artificial-reality headset.

### Claim 38 (depends on 37)

The system of claim 37, wherein the motion sensor is a gyroscope of the controller of the artificial-reality headset.

### Claim 39 (depends on 35)

The system of claim 35, wherein the synchronization time represents an estimated time, relative to the second clock, at which the motion sample was measured.

### Claim 40 (depends on 35)

The system of claim 35, wherein the wireless transmission comprises a BLUETOOTH LOW ENERGY wireless protocol.
