IP Library Granted Patent US 11,533,581
Granted Patent B2
US 11,533,581 · App. 17/379,744 · Granted Dec 20, 2022

Tracking device location identification

Inventors: Pierre-Marie Lévêque (San Francisco, CA); Wayne Patterson (Burlingame, CA); Arunkumar Puppala (Fremont, CA)
Assignee: Tile, Inc.
H04W4/02G08B21/24G08B25/10G08B21/0269G08B21/0272H04W4/029
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,533,581
App. No.
17/379,744
Granted
Dec 20, 2022
Kind
B2
Abstract

In one embodiment, a method includes receiving, by a tracking system server, a data stream comprising events related to a set of devices. The set of devices include tracking devices and mobile devices. Each event contains a location update respectively associated with a tracking device of the set or a mobile device of the set. The method includes programmatically separating, by the tracking system server, the events from the data stream. The method includes batching, for processing by the tracking system server, the separated events into one or more batches. The method includes processing, by the tracking system server, a specific batch of events, of the one or more batches of events, that involves a specific tracking device to estimate a location of the specific tracking device using a location determination algorithm.

Claims (44)

1. A method comprising:

receiving, by a tracking system server, a data stream comprising a plurality of events related to a set of devices, the set of devices comprising tracking devices and mobile devices, each event containing a location update respectively associated with a tracking device of the set or a mobile device of the set;

programmatically separating, by the tracking system server, the plurality of events from the data stream;

batching, for processing by the tracking system server, the separated plurality of events into one or more batches; and

processing, by the tracking system server, a specific batch of events, of the one or more batches of events, that involves a specific tracking device to estimate a location of the specific tracking device using a location determination algorithm.

2. The method of claim 1 , further comprising:

assigning a respective weight to each of the location updates, the weight based on one or more factors including at least one of a timestamp of the location update, an accuracy of the location update, or a signal strength of the mobile device of the set associated with the location update at a time corresponding to the timestamp; and

processing the batch of events by calculating a weighted average of the location updates.

3. The method of claim 1 , wherein batching the separated plurality of events into one or more batches comprises:

programmatically removing information unnecessary for calculating a location of a tracking device from the location updates;

programmatically separating one or more tracking device disconnection events from the data stream, each tracking device disconnection event comprising a digital record of a particular tracking device of the set disconnecting from a particular mobile device of the set; and

associating and grouping tracking device disconnection events and location updates involving the same devices.

4. The method of claim 3 , wherein programmatically removing information unnecessary for calculating the location of the tracking device from the location updates comprises using a MapReduce operation.

5. The method of claim 1 , further comprising executing the location determination algorithm using a subset of the location updates as input, the subset determined at least partly based on at least one of rejecting location updates outside a predetermined time window of any disconnection event or rejecting location updates not associated with a level of accuracy exceeding a threshold level of accuracy.

6. The method of claim 5 , wherein the subset is limited to include no more than one location update associated with each mobile device of the set, and wherein when multiple location updates associated with a reporting mobile device of the set are available for inclusion in the subset, the method further comprises selecting the no more than one location update associated with the reporting mobile device based on the location update with an associated highest accuracy from among the multiple location updates.

7. The method of claim 5 , wherein the subset is limited to include no more than one location update associated with each mobile device of the set, and wherein when multiple location updates associated with a reporting mobile device of the set are available for inclusion in the subset, the method further comprises selecting the no more than one location update associated with the reporting mobile device based on the location update with a reported location closest in time to a disconnection event associated with the location update from among the multiple location updates.

8. The method of claim 1 , wherein the location determination algorithm comprises at least one of a Delaunay triangulation operation, a greedy triangulation operation, a jump-and-walk triangulation operation, or a kinetic triangulation operation.

9. The method of claim 1 , further comprising displaying the location of the specific tracking device on a display of a particular mobile device of the set.

10. The method of claim 1 , further comprising digitally storing the location of the specific tracking device in memory accessible by the tracking system server.

11. One or more computer-readable non-transitory storage media including instructions that, when executed by one or more processors, are configured to the one or more processors of a tracking system server to perform operations comprising:

receiving, by a tracking system server, a data stream comprising a plurality of events related to a set of devices, the set of devices comprising tracking devices and mobile devices, each event containing a location update respectively associated with a tracking device of the set or a mobile device of the set;

programmatically separating, by the tracking system server, the plurality of events from the data stream;

batching, for processing by the tracking system server, the separated plurality of events into one or more batches; and

processing, by the tracking system server, a specific batch of events, of the one or more batches of events, that involves a specific tracking device to estimate a location of the specific tracking device using a location determination algorithm.

12. The one or more computer-readable non-transitory storage media of claim 11 , wherein the instructions are further configured to cause the one or more processors of the tracking system server to perform operations further comprising:

assigning a respective weight to each of the location updates, the weight based on one or more factors including at least one of a timestamp of the location update, an accuracy of the location update, or a signal strength of the mobile device of the set associated with the location update at a time corresponding to the timestamp; and

processing the batch of events by calculating a weighted average of the location updates.

13. The one or more computer-readable non-transitory storage media of claim 11 , wherein the instructions configured to cause the one or more processors of the tracking system server to batch the plurality of events into one or more batches are further configured to cause the one or more processors to perform operations further comprising:

programmatically removing information unnecessary for calculating a location of a tracking device from the location updates;

programmatically separating one or more tracking device disconnection events from the data stream, each tracking device disconnection event comprising a digital record of a particular tracking device of the set disconnecting from a particular mobile device of the set; and

associating and grouping tracking device disconnection events and location updates involving the same devices.

14. The one or more computer-readable non-transitory storage media of claim 13 , wherein the instructions configured to cause the one or more processors of the tracking system server to programmatically remove information unnecessary for calculating the location of the tracking device from the location updates are further configured to cause the one or more processors to perform operations further comprising using a MapReduce operation.

15. The one or more computer-readable non-transitory storage media of claim 11 , wherein the instructions configured to cause the one or more processors of the tracking system server to estimate the location of the specific tracking device using the location determination algorithm are further configured to cause the one or more processors to perform operations further comprising executing the location determination algorithm using a subset of the location updates as input, the subset determined at least partly based on at least one of rejecting location updates outside a predetermined time window of any disconnection event or rejecting location updates not associated with a level of accuracy exceeding a threshold level of accuracy.

16. The media of claim 15 , wherein the subset is limited to include no more than one location update associated with each mobile device of the set, and wherein when multiple location updates associated with a reporting mobile device of the set are available for inclusion in the subset, the instructions are configured to cause the one or more processors of the tracking system server to select the no more than one location update associated with the reporting mobile device based on the location update with an associated highest accuracy from among the multiple location updates.

17. The media of claim 15 , wherein the subset is limited to include no more than one location update associated with each mobile device of the set, and wherein when multiple location updates associated with a reporting mobile device of the set are available for inclusion in the subset, the instructions are configured to cause the one or more processors of the tracking system server to select the no more than one location update associated with the reporting mobile device based on the location update with a reported location closest in time to a disconnection event associated with the location update from among the multiple location updates.

18. The media of claim 11 , wherein the location determination algorithm comprises at least one of a Delaunay triangulation operation, a greedy triangulation operation, a jump-and-walk triangulation operation, or a kinetic triangulation operation.

19. A tracking system server comprising: one or more processors; and one or more computer-readable non-transitory storage media in communication with the one or more processors and comprising instructions that, when executed by the one or more processors, are configured to cause the tracking system server to perform operations comprising:

receiving, by a tracking system server, a data stream comprising a plurality of events related to a set of devices, the set of devices comprising tracking devices and mobile devices, each event containing a location update respectively associated with a tracking device of the set or a mobile device of the set;

programmatically separating, by the tracking system server, the plurality of events from the data stream;

batching, for processing by the tracking system server, the separated plurality of events into one or more batches; and

processing, by the tracking system server, a specific batch of events, of the one or more batches of events, that involves a specific tracking device to estimate a location of the specific tracking device using a location determination algorithm.

20. The system of claim 19 , wherein the instructions configured to cause the tracking system server to batch the plurality of events into one or more batches are further configured to cause the tracking system server to perform operations further comprising:

assigning a respective weight to each of the location updates, the weight based on one or more factors including at least one of a timestamp of the location update, an accuracy of the location update, or a signal strength of the mobile device of the set associated with the location update at a time corresponding to the timestamp; and

processing the batch of events by calculating a weighted average of the location updates.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2024
From: LÉVÊQUE, PIERRE-MARIE; PATTERSON, WAYNE; PUPPALA, ARUNKUMAR
To: TILE, INC.
Reel/Frame 067048/0026 →
RELEASE OF SECURITY INTEREST Recorded Jan 10, 2022
From: CAPITAL IP INVESTMENT PARTNERS LLC
To: TILE, INC.
Reel/Frame 058671/0383 →
SECURITY INTEREST Recorded Sep 28, 2021
From: TILE, INC.
To: CAPITAL IP INVESTMENT PARTNERS LLC AS ADMINISTRATIVE AGENT
Reel/Frame 057633/0569 →
Continuity (7)
Continuation 16843877 · Apr 8, 2020
Continuation 16703553 · Dec 4, 2019
Continuation 16525182 · Jul 29, 2019
Continuation 16228474 · Dec 20, 2018
Continuation 15897159 · Feb 15, 2018
Provisional Application 62460602 · Feb 17, 2017
Related Publication 20210352431A1 · Nov 11, 2021
Cited By (1)
US 12,323,873