# US 12,114,230 B2 · Real time tracking systems in three dimensions in multi-story structures and related methods and computer program products

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

- Number: US 12,114,230 B2
- Document ID: US12114230B2
- Status: Granted
- Kind: B2
- Application number: 17/161,122
- Filed: 2021-01-28
- Published: 2021-08-05
- Granted: 2024-10-08
- Earliest claimed: 2020-01-30
- Assignees: Wiser Systems, Inc.
- Applicants: Wiser Systems, Inc.
- Inventors: Seth Edward-Austin Hollar; Ryan Michael Tedrick
- Web page: https://patentgrep.com/patent/US12114230B2

## CPC

- G01S 5/0278: {involving statistical or probabilistic considerations (G01S5/0252, G01S5/0294 take precedence)}
- H04W 4/029: Location-based management or tracking services
- G01S 5/14: Determining absolute distances from a plurality of spaced points of known location
- H04W 4/021: Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
- H04W 4/33: for indoor environments, e.g. buildings
- G01S 5/08: Position of single direction-finder fixed by determining direction of a plurality of spaced sources of known location
- G01S: RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A real time location system (RTLS) is provided for determining three-dimensional locations of nodes in an environment. The RTLS system includes at least one node associated with an asset in the environment. The at least one node has an unknown location. The system further includes at least one tracking device that communicates with the at least one node to obtain location data associated with the unknown location of the at least one node. A location module receives the location data associated with the unknown location of the at least one node and determines a real-time three-dimensional current location of the at least one node based on the location data. The real-time three-dimensional current location having x, y and z coordinates and the z coordinate indicates a height of the at least one node in the environment.

## Claims

### Claim 1

A real time location system (RTLS) for determining three-dimensional locations of nodes in an environment, the RTLS comprising:
at least one node associated with an asset in the environment, the at least one node having an unknown location;
at least one tracking device that communicates with the at least one node to obtain location data associated with the unknown location of the at least one node; and
a location module that receives, from the tracking device, the location data associated with the unknown location of the at least one node and determines a real-time three-dimensional current location of the at least one node based on the location data, the real-time three-dimensional current location having x, y and z coordinates and the z coordinate indicates a height of the at least one node in the environment, wherein the location module further:
creates a list of heights (z) for the at least one node;
performs a binary search of the list of heights (z);
selects two heights (z) from the list of heights (z), one of the two heights (z) being a low height and one of the two heights being a high height;
determines a middle height between the low and high heights;
calculates x and y coordinates for each of the low, middle and high heights;
calculates an error factor for each of the calculated x and y coordinates;
selects a new pair of low and high heights based on where the calculates error factor fall between the low and middle heights or between the middle and high heights; and
repeating the determining, the calculating x and y coordinates, the calculating the error factor and the selecting the new pair of low and high heights until a final height of the at least one node is determined;
wherein the environment is a multi-story building;
wherein the at least one tracking device comprises at least one tracking device on each floor of the multi-story building and the at least one tracking device transmits and receives data; and
wherein the at least one tracking device on each floor operates independently of the at least one tracking device on all other floors.

### Claim 2 (depends on 1)

The RTLS of claim 1, wherein the location module further: receives a plurality of heights (z) in the environment; and
calculates x and y coordinates for each of the plurality of heights (z) to provide x, y and z coordinates for each of the plurality of heights (z).

### Claim 3 (depends on 2)

The RTLS of claim 2, wherein the location module further:
calculates a confidence factor for each x, y and z coordinate; and
selects a height for the at least one node based on the calculated confidence factors, wherein the height with a greatest confidence factor is selected.

### Claim 4 (depends on 2)

The RTLS of claim 2, wherein the location module further:
calculates an error factor for x, y and z coordinate; and
selects a height for the at least one node based on the calculated error factors, wherein the height with a smallest error factor is selected.

### Claim 5 (depends on 4)

The RTLS of claim 4, wherein the location module further calculates the error factor for each x, y, z coordinate using a difference between measured distances and presumed distances related to the at least one node.

### Claim 6 (depends on 1)

The RTLS of claim 1, wherein the location data comprises angle of arrival data, time of flight measurement data, arrival timestamp data and/or departure timestamp data.

### Claim 7 (depends on 1)

The RTLS of claim 1, wherein the RTLS comprises a ultra-wideband (UWB) system.

### Claim 8 (depends on 1)

The RTLS of claim 1, wherein the at least one tracking device comprises a plurality of tracking devices and wherein the plurality of tracking devices on a same floor communicate between one another.

### Claim 9

A real time location system (RTLS) for determining three-dimensional locations of nodes in an environment, the RTLS comprising:
at least one node associated with an asset in the environment, the at least one node having an unknown location;
at least one tracking device that communicates with the at least one node to obtain location data associated with the unknown location of the at least one node; and
a location module that receives the location data associated with the unknown location of the at least one node and determines a real-time three-dimensional current location of the at least one node based on the location data, the real-time three-dimensional current location having x, y and z coordinates and the z coordinate indicates a height of the at least one node in the environment,
wherein the location module further:
assumes a starting height (z) of the at least one node;
calculates x and y coordinates of the at least one node based on the assumed starting height (z);
calculate an error factor based on the assumed starting height (z);
selects a next height (z) using a gradient descent method; and
repeating the calculating x and y coordinates, the calculating the error factor and the selecting the next height (z) until a final height of the at least one node is determined.

### Claim 10

A method for determining three-dimensional locations of nodes in an environment using a real time location system (RTLS), the RTLS including at least one node associated with an asset in the environment, the at least one node having an unknown location; at least one tracking device that communicates with the at least one node to obtain location data associated with the unknown location of the at least one node; and a location module, the method comprising:
receiving, from the tracking device, the location data associated with the unknown location of the at least one node at the location module; and
determining a real-time three-dimensional current location of the at least one node based on the location data, the real-time three-dimensional current location having x, y and z coordinates and the z coordinate indicates a height of the at least one node in the environment,
wherein the environment is a multi-story building;
wherein the at least one tracking device comprises at least one tracking device on each floor of the multi-story building and the at least one tracking device transmits and receives data;
wherein the at least one tracking device on each floor operates independently of the at least one tracking device on all other floors, wherein the method further comprises:
assuming a starting height (z) of the at least one node;
calculating x and y coordinates of the at least one node based on the assumed starting height (z);
calculating an error factor based on the assumed starting height (z);
selecting a next height (z) using a gradient descent method; and
repeating the calculating x and y coordinates, the calculating the error factor and the selecting the next height (z) until a final height of the at least one node is determined.

### Claim 11 (depends on 10)

The method of claim 10, further comprising: receiving a plurality of heights (z) in the environment; and
calculating x and y coordinates for each of the plurality of heights (z) to provide x, y and z coordinates for each of the plurality of heights (z).

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
calculating a confidence factor for each x, y and z coordinate; and
selecting a height for the at least one node based on the calculated confidence factors, wherein the height with a greatest confidence factor is selected.

### Claim 13 (depends on 11)

The method of claim 11, further comprising:
calculating an error factor for x, y and z coordinate; and
selecting a height for the at least one node based on the calculated error factors, wherein the height with a smallest error factor is selected.

### Claim 14 (depends on 13)

The method of claim 13, further comprising calculating the error factor for each x, y, z coordinate using a difference between measured distances and presumed distances related to the at least one node.

### Claim 15 (depends on 10)

The method of claim 10, wherein the location data comprises angle of arrival data, time of flight measurement data, arrival timestamp data and/or departure timestamp data.

### Claim 16

A method for determining three-dimensional locations of nodes in an environment using a real time location system (RTLS), the RTLS including at least one node associated with an asset in the environment, the at least one node having an unknown location; at least one tracking device that communicates with the at least one node to obtain location data associated with the unknown location of the at least one node; and a location module, the method comprising:
receiving, from the tracking device, the location data associated with the unknown location of the at least one node at the location module; and
determining a real-time three-dimensional current location of the at least one node based on the location data, the real-time three-dimensional current location having x, y and z coordinates and the z coordinate indicates a height of the at least one node in the environment,
wherein the environment is a multi-story building;
wherein the at least one tracking device comprises at least one tracking device on each floor of the multi-story building and the at least one tracking device transmits and receives data;
wherein the at least one tracking device on each floor operates independently of the at least one tracking device on all other floors, wherein the method further comprises:
creating a list of heights (z) for the at least one node;
selecting two heights (z) from the list of heights (z), one of the two heights (z) being a low height and one of the two heights being a high height;
determining a middle height between the low and high heights;
calculating x and y coordinates for each of the low, middle and high heights;
calculating an error factors for each of the calculated x and y coordinates;
selecting a new pair of low and high heights based on where the calculates error factors fall between the low and middle heights or between the middle and high heights; and
repeating the determining, the calculating x and y coordinates, the calculating the error factor and the selecting the new pair of low and high heights until a final height of the at least one node is determined.

### Claim 17

A computer program product for determining three-dimensional locations of nodes in an environment using a real time location system (RTLS), the RTLS including at least one node associated with an asset in the environment, the at least one node having an unknown location; at least one tracking device that communicates with the at least one node to obtain location data associated with the unknown location of the at least one node; and a location module, the computer program product comprising:
a non-transitory computer readable storage medium having computer readable program code embodied in the medium, the computer readable program code comprising:
computer readable program code that receives, from the tracking device, the location data associated with the unknown location of the at least one node at the location module; and
computer readable program code that determines a real-time three-dimensional current location of the at least one node based on the location data, the real-time three-dimensional current location having x, y and z coordinates and the z coordinate indicates a height of the at least one node in the environment,
wherein the environment is a multi-story building;
wherein the at least one tracking device comprises at least one tracking device on each floor of the multi-story building and the at least one tracking device transmits and receives data; and
wherein the at least one tracking device on each floor operates independently of the at least one tracking device on all other floors, wherein the computer program product further comprises computer readable program code that:
assumes a starting height (z) of the at least one node;
calculates x and y coordinates of the at least one node based on the assumed starting height (z);
calculate an error factor based on the assumed starting height (z);
selects a next height (z) using a gradient descent method; and
repeats the calculating x and y coordinates, the calculating the error factor and the selecting the next height (z) until a final height of the at least one node is determined.
