IP Library Granted Patent US 12,267,807
Granted Patent B1
US 12,267,807 · App. 18/827,287 · Granted Apr 1, 2025

Passive geo location of a WLAN device by merging circular error probability ellipses based upon selection of data subsets

Inventors: Mark Passler (Boca Raton, FL); Kyle Patrick Kelly (Palm Beach Gardens, FL)
Assignee: SR Technologies, Inc.
H04W64/006
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 12,267,807
App. No.
18/827,287
Granted
Apr 1, 2025
Kind
B1
Abstract

A method of determining a location of a wireless device. The method includes receiving a plurality of beacons, via a measuring station, transmitted from the wireless device. For each beacon, a Times of Arrival (TOA), a Times of Departure (TOD), and a location of the measuring station is identified. A plurality of split time candidates are calculated based on an orbit period of the measuring station and a plurality of cluster modes are calculated for the identified TOAs. A plurality of optimal split times are selected based on the plurality of split time candidates, the plurality of cluster modes, and a beacon drift. A plurality of circular error probability (CEP) ellipses are generated corresponding to the plurality of optimal split times. The plurality of CEP ellipses are merged and a location of the wireless device is determined based, at least in part, on the merged CEP ellipse.

Claims (147)

1. A method of determining a location of at least one wireless device, the method comprising:

receiving, at a measuring station, a plurality of beacons transmitted from a wireless device;

identifying, for the plurality of beacons, a plurality of Times of Arrival (TOAs), a plurality of Times of Departures (TODs), and a plurality of locations of the measuring station at which the plurality of beacons are received;

determining, for the plurality of beacons, a plurality of Times of Flight (TOFs) based at least in part on the plurality of TOAs and the plurality of TODs;

determining an orbit period of the measuring station based on the plurality of locations;

calculating a plurality of split time candidates based on the orbit period;

calculating, via a clustering algorithm, a plurality of cluster modes for the plurality of TOAs;

calculating a beacon drift based on a difference between a plurality of estimated distances between the wireless device and the measuring station and a plurality of distances derived from the plurality of TOFs;

selecting a plurality of optimal split times based, at least in part, on the plurality of split time candidates, the plurality of cluster modes, and the beacon drift;

generating a plurality of circular error probability (CEP) ellipses corresponding to the plurality of optimal split times;

merging the plurality of CEP ellipses to produce a merged CEP ellipse; and

determining a location of the wireless device based, at least in part, on the merged CEP ellipse.

2. The method of claim 1 , wherein calculating the plurality of split time candidates, comprises:

creating a split time template (STT) having a plurality of split times corresponding to orbit times of the measuring station; and

shifting the STT, in steps of T seconds, across a time period that covers at least the orbit period of the measuring station to provide the plurality of split time candidates, wherein each split time candidate includes a plurality of shifted split times.

3. The method of claim 2 , wherein selecting the plurality of optimal split times based on the plurality of split time candidates, the plurality of cluster modes, and the beacon drift, comprises:

for each split time candidate of the plurality of split time candidates:

calculating a quality factor, for each shifted split time of the plurality of shifted split times, based on a nearest cluster mode of the plurality of cluster modes that is closest in time to the shifted split time; and

summing the quality factors for the plurality of shifted split times;

identifying a best shift time candidate from the plurality of shift time candidates having a maximum summed quality factor;

selecting the plurality of shifted split times of the best shift time candidate as the plurality of optimal split times; and

adding a zero split time and a last recorded beacon split time to the plurality of optimal split times.

4. The method of claim 3 , wherein the quality factor for each shifted split time is defined by:

QF

=

N

c

(

SplitTime

-

time

start

)

(

time

end

-

SplitTime

)

ABS

(

SplitTime

-

mode

nearest

)

+

(

time

end

-

time

start

2

)

wherein QF is the quality factor, Ne is a number of data points in the nearest cluster mode, SplitTime is the shifted split time, time start is a start time of the nearest cluster mode, time end is an end time of the nearest cluster mode, and mode nearest is a time of the nearest cluster mode determined by the clustering algorithm.

5. The method of claim 3 , further comprising:

checking that each of the plurality of shifted split times of the best shift time candidate is greater than one orbit period from the zero split time;

in response to determining that a shifted split time of the plurality of shifted split times of the best shift time candidate is less than one orbit period from the zero split time, removing the shifted split time from the plurality of optimal split times;

checking that each of the plurality of shifted split times of the best shift time candidate is greater than one orbit period from the last recorded beacon split time; and

in response to determining that a shifted split time of the plurality of shifted split times of the best shift time candidate is less than one orbit period from the last recorded beacon split time, removing the shifted split time from the plurality of optimal split times.

6. The method of claim 1 , wherein calculating, via a clustering algorithm, a plurality of cluster modes, comprises using a non-parametric mean-shift cluster algorithm as the clustering algorithm.

7. The method of claim 6 , wherein the non-parametric mean-shift cluster algorithm includes a kernel density estimation (KDE).

8. The method of claim 7 , wherein a bandwidth of the KDE is approximately 30 seconds.

9. The method of claim 1 , further comprising:

determining whether there is an extrema point in the beacon drift; and

further selecting the plurality of optimal split times based on the extrema point of the beacon drift.

10. The method of claim 9 , further comprising:

in response to determining that there is an extrema point in the beacon drift, calculating an extrema cluster based on the extrema point; and

adding the extrema cluster to the plurality of cluster modes.

11. A system for determining a location of at least one wireless device, the system comprising:

at least one memory with computer-executable instructions stored thereon, the computer-executable instructions when executed by one or more processors of the system cause the one or more processors to perform operations comprising:

receiving, at a measuring station, a plurality of beacons transmitted from a wireless device;

identifying, for the plurality of beacons, a plurality of Times of Arrival (TOAs), a plurality of Times of Departures (TODs), and a plurality of locations of the measuring station at which the plurality of beacons are received;

determining, for the plurality of beacons, a plurality of Times of Flight (TOFs) based at least in part on the plurality of TOAs and the plurality of TODs;

determining an orbit period of the measuring station based on the plurality of locations;

calculating a plurality of split time candidates based on the orbit period;

calculating, via a clustering algorithm, a plurality of cluster modes for the plurality of TOAs;

calculating a beacon drift based on a difference between a plurality of estimated distances between the wireless device and the measuring station and a plurality of distances derived from the plurality of TOFs;

selecting a plurality of optimal split times based, at least in part, on the plurality of split time candidates, the plurality of cluster modes, and the beacon drift;

generating a plurality of circular error probability (CEP) ellipses corresponding to the plurality of optimal split times;

merging the plurality of CEP ellipses to produce a merged CEP ellipse; and

determining a location of the wireless device based, at least in part, on the merged CEP ellipse.

12. The system of claim 11 , wherein calculating the plurality of split time candidates, comprises:

creating a split time template (STT) having a plurality of split times corresponding to orbit times of the measuring station; and

shifting the STT, in steps of T seconds, across a time period that covers at least the orbit period of the measuring station to provide the plurality of split time candidates, wherein each split time candidate includes a plurality of shifted split times.

13. The system of claim 12 , wherein selecting the plurality of optimal split times based on the plurality of split time candidates, the plurality of cluster modes, and the beacon drift, comprises:

for each split time candidate of the plurality of split time candidates:

calculating a quality factor, for each shifted split time of the plurality of shifted split times, based on a cluster mode of the plurality of cluster modes that is closest in time to the shifted split time; and

summing the quality factors for the plurality of shifted split times;

identifying a best shift time candidate from the plurality of shift time candidates having a maximum summed quality factor;

selecting the plurality of shifted split times of the best shift time candidate as the plurality of optimal split times; and

adding a zero split time and a last recorded beacon split time to the plurality of optimal split times.

14. The system of claim 13 , wherein the quality factor for each shifted split time is defined by:

QF

=

N

c

(

SplitTime

-

time

start

)

(

time

end

-

SplitTime

)

ABS

(

SplitTime

-

mode

nearest

)

+

(

time

end

-

time

start

2

)

wherein QF is the quality factor, N c is a number of data points in the nearest cluster mode, SplitTime is the shifted split time, time start is a start time of the nearest cluster mode, time end is an end time of the nearest cluster mode, and mode nearest is a time of the nearest cluster mode determined by the clustering algorithm.

15. The system of claim 13 , wherein execution of the computer-executable instructions further cause the at least one processor to perform operations comprising:

checking that each of the plurality of shifted split times of the best shift time candidate is greater than one orbit period from the zero split time;

in response to determining that a shifted split time of the plurality of shifted split times of the best shift time candidate is less than one orbit period from the zero split time, removing the shifted split time from the plurality of optimal split times;

checking that each of the plurality of shifted split times of the best shift time candidate is greater than one orbit period from the last recorded beacon split time; and

in response to determining that a shifted split time of the plurality of shifted split times of the best shift time candidate is less than one orbit period from the last recorded beacon split time, removing the shifted split time from the plurality of optimal split times.

16. The system of claim 11 , wherein calculating, via a clustering algorithm, a plurality of cluster modes, comprises using a non-parametric mean-shift cluster algorithm as the clustering algorithm.

17. The system of claim 16 , wherein the non-parametric mean-shift cluster algorithm includes a kernel density estimation (KDE).

18. The system of claim 17 , wherein a bandwidth of the KDE is approximately 30 seconds.

19. The system of claim 11 , wherein execution of the computer-executable instructions further cause the at least one processor to perform operations comprising:

determining whether there is an extrema point in the beacon drift; and

further selecting the plurality of optimal split times based on the extrema point of the beacon drift.

20. The system of claim 19 , wherein execution of the computer-executable instructions further cause the at least one processor to perform operations comprising:

in response to determining that there is an extrema point in the beacon drift, calculating an extrema cluster based on the extrema point; and

adding the extrema cluster to the plurality of cluster modes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2024
From: PASSLER, MARK; KELLY, KYLE PATRICK
To: SR TECHNOLOGIES, INC.
Reel/Frame 069481/0550 →
Continuity (1)
Provisional Application 63584329 · Sep 21, 2023
References Cited (7)
US 9921294B2 · Passler · 2018 [cited by examiner]
US 11627548B1 · Passler · 2023 [cited by examiner]
US 20060273960A1 · Murphy · 2006 [cited by examiner]
US 20170030998A1 · Passler · 2017 [cited by examiner]
US 20180249437A1 · Lindskog · 2018 [cited by examiner]
US 20210072341A1 · Bocca · 2021 [cited by examiner]
US 20230384412A1 · Morrison · 2023 [cited by examiner]