Optimizing storage and usage of angle-of-arrival heatmaps
09864042 ยท 2018-01-09
Assignee
Inventors
Cpc classification
G01S5/06
PHYSICS
International classification
G01S5/04
PHYSICS
G01S5/06
PHYSICS
Abstract
Heatmap data, such as Angle-of-Arrival heatmap data, is generated and stored for a plurality of antennas of wireless communication device. A centroid of the plurality of antennas is determined. A heatmap is computed for the centroid for a measured parameter across a plurality of bins at coordinates within a region of interest. Heatmap data for the centroid is stored. For a given one of the plurality of antennas, a difference is computed between a heatmap for the given antenna and the heatmap for the centroid. The difference data representing the difference is stored for the given antenna.
Claims
1. A method comprising: for a wireless communication device having a plurality of antennas, determining a centroid of the plurality of antennas; computing for the centroid a heatmap for a measured parameter across a plurality of bins at coordinates within a region of interest; storing heatmap data for the centroid in memory; for a given one of the plurality of antennas, computing a difference between a heatmap for the given antenna and the heatmap for the centroid; and storing in the memory difference data representing the difference for the given antenna.
2. The method of claim 1, further comprising: receiving a location measurement request for a target device; retrieving from the memory the heatmap data for the centroid and the difference data for antennas; computing heatmap data for each of antennas from the heatmap data for the centroid and the difference data for the antennas; and computing a location of the target device using the heatmap data for each of the antennas and the measured parameter at the plurality of antennas.
3. The method of claim 1, wherein the measured parameter is an angle-of-arrival with respect to a signal transmitted by the target device and received at the plurality of antennas.
4. The method of claim 1, wherein the plurality of antennas are physically arranged such that there is symmetry among the plurality of antennas with respect to at least one axis of symmetry, and wherein computing the difference comprises computing the difference only for one or more antennas on a first side of the axis of symmetry, from which the difference is derived for one or more antennas on a second side of the axis of symmetry.
5. The method of claim 4, wherein the plurality of antennas are physically arranged such that there is symmetry among the plurality of antennas with respect to multiple axes of symmetry, and wherein computing the difference comprises computing the difference only for one or more antennas in one sub-region with respect to multiple axes of symmetry, from which the difference is derived for one or more antennas in all other sub-regions with respect to the multiple axes of symmetry.
6. The method of claim 4, wherein the plurality of antennas are arranged in a linear array.
7. The method of claim 4, wherein the plurality of antennas are arranged in a circular array.
8. One or more non-transitory computer readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to: for a wireless communication device having a plurality of antennas, compute for a centroid of the plurality of antennas, a heatmap for a measured parameter across a plurality of bins at coordinates within a region of interest; store in memory heatmap data for the centroid in memory; for a given one of the plurality of antennas, compute a difference between a heatmap for the given antenna and the heatmap for the centroid; and store in the memory difference data representing the difference for the given antenna.
9. The non-transitory computer readable storage media of claim 8, further comprising instructions operable to: receive a location measurement request for a target device; retrieve from the memory the heatmap data for the centroid and the difference data for antennas; compute heatmap data for each of antennas from the heatmap data for the centroid and the difference data for the antennas; and compute a location of the target device using the heatmap data for each of the antennas and the measured parameter at the plurality of antennas.
10. The non-transitory computer readable storage media of claim 8, wherein the measured parameter is an angle-of-arrival with respect to a signal transmitted by the target device and received at the plurality of antennas.
11. The non-transitory computer readable storage media of claim 8, wherein the plurality of antennas are physically arranged such that there is symmetry among the plurality of antennas with respect to at least one axis of symmetry, and wherein the instructions operable to compute the difference comprise instructions operable to compute the difference only for one or more antennas on a first side of the axis of symmetry, from which the difference is derived for one or more antennas on a second side of the axis of symmetry.
12. The non-transitory computer readable storage media of claim 8, wherein the plurality of antennas are physically arranged such that there is symmetry among the plurality of antennas with respect to multiple axes of symmetry, and wherein the instructions operable to compute the difference comprise instructions operable to compute the difference only for one or more antennas in one sub-region with respect to multiple axes of symmetry, from which the difference is derived for one or more antennas in all other sub-regions with respect to the multiple axes of symmetry.
13. The non-transitory computer readable storage media of claim 8, wherein the plurality of antennas are arranged in a linear array.
14. The non-transitory computer readable storage media of claim 8, wherein the plurality of antennas are arranged in a circular array.
15. An apparatus comprising: a network interface unit configured to enable communications over a network; a memory; and a processor coupled to the network interface unit and the memory, wherein the processor is configured to: compute for a centroid of a plurality of antennas of a wireless communication device, a heatmap for a measured parameter across a plurality of bins at coordinates within a region of interest; store the data for the heatmap in the memory; for a given one of the plurality of antennas, compute a difference between a heatmap for the given antenna and the heatmap for the centroid; and store in the memory difference data representing the difference for the given antenna.
16. The apparatus of claim 15, wherein the processor is configured: receive a location measurement request for a target device; retrieve from the memory heatmap data for the centroid and the difference data for antennas; compute heatmap data for each of antennas from the heatmap data for the centroid and the difference data for the antennas; and compute a location of the target device using the heatmap data for each of the antennas and the measured parameter at the plurality of antennas.
17. The apparatus of claim 15, wherein the measured parameter is an angle-of-arrival with respect to a signal transmitted by the target device and received at the plurality of antennas.
18. The apparatus of claim 15, wherein the plurality of antennas are physically arranged such that there is symmetry among the plurality of antennas with respect to at least one axis of symmetry, and wherein the processor is configured to compute the difference only for one or more antennas on a first side of the axis of symmetry, from which the difference is derived for one or more antennas on a second side of the axis of symmetry.
19. The apparatus of claim 15, wherein the plurality of antennas are physically arranged such that there is symmetry among the plurality of antennas with respect to multiple axes of symmetry, and wherein the processor is configured to compute the difference only for one or more antennas in one sub-region with respect to multiple axes of symmetry, from which the difference is derived for one or more antennas in all other sub-regions with respect to the multiple axes of symmetry.
20. The apparatus of claim 15, wherein the plurality of antennas are arranged in either a linear array or a circular array.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DESCRIPTION OF EXAMPLE EMBODIMENTS
(9) Overview
(10) In accordance with an example embodiment, a method is provided for generating and storing heatmap data for a plurality of antennas of wireless communication device. A centroid of the plurality of antennas is determined. A heatmap is computed for the centroid for a measured parameter across a plurality of bins at coordinates within a region of interest. Heatmap data for the centroid is stored. For a given one of the plurality of antennas, a difference is computed between a (very precise) heatmap for the given antenna and the (very precise) heatmap for the centroid. The difference data representing the difference is stored for the given antenna.
(11) Example Embodiments
(12) Presented herein are techniques to optimize the storage of heatmap data with limited processing penalty. A centroid of the antenna distribution is used to compute an extensive heatmap. For each of the antennas, only the difference between the centroid heatmap and the heatmap for that antenna is stored. Furthermore, the symmetric placement/configuration of the antennas may be exploited to further decrease the number of differential heatmap data to be stored.
(13) A heatmap is an estimate of a measured parameter from which a device location can be determined. For example, the measured parameter may be receive signal strength, distance, or angle-of-arrival (phase) measurement of a signal at an antenna. The measured parameter is compared with the heatmap of the same parameter to compute a location probability.
(14) Reference is first made to
(15) In a given wireless local area network deployment there are typically numerous access points 10, as shown in
(16) In one example, an access point 10 has as many as 32 antennas used for performing angle-of-arrival (AoA) measurements for determining a location of an access point. Each antenna heatmap may comprise 801801 bins. For an access point with 32 antennas, the amount of data needed to be stored that represents the heatmaps for all the antennas is 801*801*32(antennas)*8(byte double)=164 MB. As a comparison, receive signal strength information (RSSI) heatmaps are only 50 kB.
(17) Moreover, there may be more than one heatmap associated with an access point, such as a course heatmap and fine heatmap, both of different bin sizes, in order optimize for faster location calculations. This further increases the amount of data needed to store an AoA heatmap for one AP.
(18) In some network deployments, there may be thousands of access points. Some access points may have similar heatmaps, which need not be stored separately. However even if there are 1% unique heatmaps to store in a large wireless local area network deployment, AoA heatmaps will need 20*164 MB=3.2 GB of data. Since all heatmaps are loaded in cache of a server (or access point) for faster location computing, this can be a problem in an already memory constrained server or access point.
(19) Accordingly, in order to reduce the amount of data needed to represent the AoA heatmaps associated with each access point antenna, a centroid of the plurality of antennas 12(1)-12(N) of the access point 10 is determined. This centroid is referred to as a virtual antenna. Heatmap data is generated and stored for the centroid or virtual antenna. Only difference data, representing the difference between the heatmap data for the centroid and the heatmap data for each antenna, is stored. Thus, as shown in
(20) Reference is now made to
(21) Optimization Scheme Generally
(22) Reference is now made to
(23) At 110, the (x,y,z) bin coordinates for the heatmap are computed. In one example, there is an odd numbered of x and y bins, i.e. 801801.
(24) At 120, the centroid of the antenna distribution for the plurality of antennas is computed. For a circular antenna array, the centroid is at the center of the access point (0,0,height). This is the location of the virtual antenna. Note that step 120 may be performed before step 110.
(25) At 130, the heatmap0 for the centroid (virtual antenna) is computed as the distance from (0,0,height) to each of the bins. The heatmap for the centroid is stored.
(26) Next, at 140, for a given antenna i among the plurality of antennas, the difference between heatmap data for antenna i and heatmap data for the centroid (heatmap0) is computed. The difference is represented by difference data, which as explained above, may be considered a difference heatmap. At 150, the difference data for antenna i is stored.
(27) The operations at step 140 may be as follows. The distance from the (x,y,z) coordinates of antenna i to the (x,y,z) bin coordinates is computed. This is currently what is called an AoA heatmap, and for purposes of this description, it is called heatmap_i.
(28) Operation 150 may involve the following. The heatmap of antenna i is stored as heatmap_i_diff=int16((heatmap0heatmap_i)*10.sup.4). This is stored as 2 bytes per heatmap bin as opposed to what would be required with current techniques, 8 bytes. This is a 4-times memory savings. To recover the heatmap for a given antenna i, the computation heat_i_reconst=heatmap0double(heatmap_i_diff)/10.sup.4 is performed.
(29) The use of the difference data to represent the heatmap for a given antenna has little impact on heatmap accuracy. For example, for an access point having 32 antennas, the loss of accuracy is 1.0e-04*(0.0002 0.0002 0.5000 0.5000), representing the (mean, median, minimum, maximum, respectively), i.e. a maximum of 5e.sup.5 ft.
(30) Further Optimization Due to Symmetry
(31) When an access point has zero degree elevation placement (e.g., flat on a ceiling), which is large percentage of expected enterprise deployments, further optimization is possible. A check may be made for symmetry in the antenna configuration. For example, the distance of each antenna from (0,0,height) (called antennaDist) and an angle between each antenna is determined. A dot product or other computation may be made, such as calculating the angle of the antenna with respect to the x-axis (called antennaAngle). If there is any pair of antennas that have the same distance from (0,0, height) and their difference angle is 180 degrees, then it is not necessary to calculate the heatmap for both antennas in the pair. The heatmap for one antenna can be derived from the heatmap from the other antenna in the pair. This results in 2-times fewer heatmaps to be calculated and stored.
(32) As an example, consider two antennas i and j which are the same distance from (0,0,height) and are 180 degrees apart. Assume that heatmap_i_diff is computed (as described above) and heatmap_j at bin [m,n] is needed. The way to derive heatmap_j from heatmap_i_diff is as follows:
heat_j_reconst[m,n]=heatmap0[m,n]double(heatmap_i_diff[400m,400n])/10.sup.4(assuming 401401 heatmap and 0 index representing the first bin)
(33) This can be done for a linear array of antennas, in which case the angle will always be 180 degrees, but the antenna pair is chosen for antennas that are equidistant from the center of the linear array.
(34) Reference is now made to
(35) To generalize, when the plurality of antennas are physically arranged such that there is symmetry among the plurality of antennas with respect to at least one axis of symmetry, the heatmap difference data (with respect to the centroid) needs to be computed only for one or more antennas on a first side of the axis of symmetry, from which the difference can be derived for one or more antennas on a second side of the axis of symmetry. Said another way, from the heatmap difference data (with respect to the centroid) for one or more antennas on a first side of the axis of symmetry, the heatmap data for those one or more antennas can derived, and from the heatmap data for the one or more antennas on the first side of the axis of symmetry the heatmap data can be computed for one or more antennas on the second side of the axis of symmetry.
(36) Furthermore, for a circular antenna arrangement, even more symmetry exists and this can easily be extended to antennas that are 90 degrees, and 270 degrees apart. For example, as shown in
(37) Using the center of the access point (or centroid in general) helps to obtain a minimum error when converting to short int to store the heatmap. If one of the antenna's heatmap is used as heatmap0, it will result in loss of precision when converting to short int due to increase in the max value of heatmap_i_diff.
(38) The following illustrates the memory savings. As an example, with a 801801 heatmap size and 32 antennas, the memory footprint of modified heatmap data (generated as described herein) can be 15% of the current AoA heatmaps that is currently needed for storage.
(39) currHeatmapBytes=801*801*32*8. All 32 antenna stored as double for each value.
(40) modHeatmapBytes=801*801*(1*8+(32/2)*2). One (1) heatmap stored as double and 16 heatmaps stored as difference data in, for example, int16 format. The memory savings is (1modHeatmapBytes/currHeatmapBytes)*10084.3%.
(41) Reference is now made to
(42)
(43) The memory 32 may be read only memory (ROM), random access memory (RAM), magnetic disk storage media devices, optical storage media devices, flash memory devices, electrical, optical, or other physical/tangible memory storage devices. Thus, in general, the memory 32 may comprise one or more tangible (non-transitory) computer readable storage media (e.g., a memory device) encoded with software comprising computer executable instructions and when the software is executed (by the processor 38) it is operable to perform the operations described herein. In particular, the server 30 performs the operations described above in connection with
(44) Reference is now made to
(45) The memory 18 stores software that is executed by the processor 17, including the heatmap generation software 35 and the location computation software 37, as well as the heatmap data 34 and difference data 35. Thus, the processor 17 of the access point may execute the heatmap generation software 35 to store heatmap data 34 for the centroid of the antennas 12(1)-12(N) and difference data 36 for the antennas, as described above in connection with
(46) In summary, the techniques presented herein optimize storage of heatmap data with limited processing penalty, by using a centroid of the antenna distribution to compute an extensive heatmap and only storing a difference of the other antenna heatmaps with respect to centroid heatmap. Furthermore, the symmetric placement of the antennas can exploited to further decrease the number of difference heatmaps to be stored.
(47) In one form, a method is provided that involves, for a wireless communication device having a plurality of antennas, determining a centroid of the plurality of antennas; computing for the centroid a heatmap for a measured parameter across a plurality of bins at coordinates within a region of interest; storing heatmap data for the centroid in memory; for a given one of the plurality of antennas, computing a difference between a heatmap for the given antenna and the heatmap for the centroid; and storing in the memory difference data representing the difference for the given antenna.
(48) In another form, one or more non-transitory computer readable storage media are provided encoded with software comprising computer executable instructions and when the software is executed operable to: for a wireless communication device having a plurality of antennas, compute for a centroid of the plurality of antennas, a heatmap for a measured parameter across a plurality of bins at coordinates within a region of interest; store in memory heatmap data for the centroid in memory; for a given one of the plurality of antennas, compute a difference between a heatmap for the given antenna and the heatmap for the centroid; and store in the memory difference data representing the difference for the given antenna.
(49) In still another form, an apparatus is provided comprising: a network interface unit configured to enable communications over a network; a memory; and a processor coupled to the network interface unit and the memory, wherein the processor is configured to: compute for a centroid of a plurality of antennas of a wireless communication device, a heatmap for a measured parameter across a plurality of bins at coordinates within a region of interest; store the data for the heatmap in the memory; for a given one of the plurality of antennas, compute a difference between a heatmap for the given antenna and the heatmap for the centroid; and store in the memory difference data representing the difference for the given antenna.
(50) The above description is intended by way of example only. Although the techniques are illustrated and described herein as embodied in one or more specific examples, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made within the scope and range of equivalents of the claims.