The invention relates generally to methods and apparatus for determining non-line of sight bias estimation.
This section introduces aspects that may be helpful in facilitating a better understanding of the inventions. Accordingly, the statements of this section are to be read in this light and are not to be understood as admissions about what is in the prior art or what is not in the prior art.
In some known localization schemes, determination of non-line of sight (NLOS) bias is estimated using an assumed NLOS bias distribution. A second known localization scheme assumes a sufficient number of anchors are line of sight with the tag being localized. Finally, a third known localization scheme uses multipath time and received signal strength measurements to estimate the bias.
Some simplifications may be made in the following summary, which is intended to highlight and introduce some aspects of the various exemplary embodiments, but such simplifications are not intended to limit the scope of the inventions. Detailed descriptions of a preferred exemplary embodiment adequate to allow those of ordinary skill in the art to make and use the inventive concepts will follow in later sections
Various embodiments provide a method and apparatus for determining non-line of sight (NLOS) bias estimation based on estimated NLOS bias distributions at a number of anchors and the time of arrival (ToA) of a number of tag messages received at the anchors. In particular, using anchor redundancy, tag locations corresponding to the tag messages are estimated based on the NLOS bias distributions and the ToA and then the tag locations are used to update the NLOS bias distributions. The process of determining tag locations and updating the NLOS bias distributions is repeated until the NLOS bias distributions converge.
In a first embodiment, an apparatus is provided for providing an NLOS bias distribution. The apparatus includes a data storage and a processor communicatively connected to the data storage. The processor being programmed to: determine a plurality of non-line of sight (NLOS) bias distributions corresponding to a plurality of anchors; determine a plurality of time of arrival values associated with reception of a plurality of tag messages at a plurality of participating anchors, the plurality of anchors comprising the plurality of participating anchors; wherein the plurality of participating anchors have a corresponding plurality of anchor locations; estimate a plurality of estimated tag locations based on the plurality of time of arrival values, the plurality of NLOS bias distributions and the plurality of participating anchors; determine a plurality of NLOS biases based on the plurality of estimated tag locations, the plurality of anchor locations, and the plurality of time of arrival values; and update the plurality of NLOS bias distributions based on the plurality of NLOS biases.
In a second embodiment, a method is provided for providing an NLOS bias distribution. The method includes: determining a plurality of non-line of sight (NLOS) bias distributions corresponding to a plurality of anchors; determining a plurality of time of arrival values associated with reception of a plurality of tag messages at a plurality of participating anchors, the plurality of anchors comprising the plurality of participating anchors; wherein the plurality of participating anchors have a corresponding plurality of anchor locations; estimating a plurality of estimated tag locations based on the plurality of time of arrival values, the plurality of NLOS bias distributions and the plurality of participating anchors; determining a plurality of NLOS biases based on the plurality of estimated tag locations, the plurality of anchor locations, and the plurality of time of arrival values; and updating the plurality of NLOS bias distributions based on the plurality of NLOS biases.
In a third embodiment, a system is provided for providing an NLOS bias distribution. The system includes a tracking server and a plurality of participating anchors communicatively connected to the tracking server. The tracking server is configured to: determine a plurality of non-line of sight (NLOS) bias distributions corresponding to a plurality of anchors; determine a plurality of time of arrival values associated with reception of a plurality of tag messages at a plurality of participating anchors, the plurality of anchors comprising the plurality of participating anchors; wherein the plurality of participating anchors have a corresponding plurality of anchor locations; estimate a plurality of estimated tag locations based on the plurality of time of arrival values, the plurality of NLOS bias distributions and the plurality of participating anchors; determine a plurality of NLOS biases based on the plurality of estimated tag locations, the plurality of anchor locations, and the plurality of time of arrival values; and update the plurality of NLOS bias distributions based on the plurality of NLOS biases. The plurality of participating anchors have a common time reference and are configured to: determine a corresponding plurality of time of arrival values associated with reception of the plurality of tag messages based on the common time reference, the plurality of time of arrival values comprising the corresponding plurality of time of arrival values; and transmit the corresponding plurality of time of arrival values to the tracking server.
In a fourth embodiment, a non-transitory computer-readable storage medium for providing an NLOS bias distribution is provided. The storage medium includes instructions which, when executed by a computer, cause the computer to perform a method comprising: determining a plurality of non-line of sight (NLOS) bias distributions corresponding to a plurality of anchors; determining a plurality of time of arrival values associated with reception of a plurality of tag messages at a plurality of participating anchors, the plurality of anchors comprising the plurality of participating anchors; wherein the plurality of participating anchors have a corresponding plurality of anchor locations; estimating a plurality of estimated tag locations based on the plurality of time of arrival values, the plurality of NLOS bias distributions and the plurality of participating anchors; determining a plurality of NLOS biases based on the plurality of estimated tag locations, the plurality of anchor locations, and the plurality of time of arrival values; and updating the plurality of NLOS bias distributions based on the plurality of NLOS biases.
In some of the above embodiments, the embodiment further includes: determining a second plurality of time of arrival values associated with reception of a second tag message; and determining a second location associated with the second tag message based on the NLOS bias distributions and the second plurality of time of arrival values.
In some of the above embodiments, the plurality of NLOS bias distributions are based on a convex hull defined by the plurality of anchors.
In some of the above embodiments, the plurality of NLOS bias distributions are based on a mixture of Gaussians.
In some of the above embodiments, the determination of the plurality of time of arrival values includes retrieving the plurality of time of arrival values from a plurality of corresponding messages received from the plurality of participating anchors.
In some of the above embodiments, the estimation of the estimated tag locations includes determining a second estimated tag location based on a plurality of second time of arrival values corresponding to all but one of the participating anchors. Where the plurality of time of arrival values comprises the plurality of second time of arrival values; and the plurality of estimated tag locations comprises the second estimated tag location.
In some of the above embodiments, the embodiment includes determining a second NLOS bias based on the second estimated tag location. Where the plurality of NLOS biases comprises the second NLOS bias.
In some of the above embodiments, the plurality of time of arrival values are collected over a period of time, the period of time being based on one or more environmental conditions.
In some of the above embodiments, the plurality of participating anchors are further configured to: transmit a plurality of anchor identifiers corresponding to the corresponding plurality of time of arrival values to the tracking server.
Various embodiments are illustrated in the accompanying drawings, in which:
To facilitate understanding, identical reference numerals have been used to designate elements having substantially the same or similar structure or substantially the same or similar function.
The description and drawings merely illustrate the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the invention and are included within its scope. Furthermore, all examples recited herein are principally intended expressly to be only for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor(s) to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Additionally, the term, “or,” as used herein, refers to a non-exclusive or, unless otherwise indicated (e.g., “or else” or “or in the alternative”). Also, the various embodiments described herein are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments.
Various embodiments provide a method and apparatus for determining non-line of sight (NLOS) bias estimation based on estimated NLOS bias distributions at a number of anchors and the time of arrival (ToA) of a number of tag messages received at the anchors. In particular, using anchor redundancy, tag locations corresponding to the tag messages are estimated based on the NLOS bias distributions and the ToA and then the tag locations are used to update the NLOS bias distributions. The process of determining tag locations and updating the NLOS bias distributions is repeated until the NLOS bias distributions converge.
Advantageously, the determination of the NLOS bias distributions does not require knowledge of actual tag locations and therefore may be implemented with low overhead. Moreover, the determination is tolerant to uncertainty, provides 3D estimation, provides improved reliability over solutions such as those using iBeacons, works indoors, and does not require a specific infrastructure.
Tag messages 110 may include any type of message delivered by a tag over a period of time. A tag (not illustrated for purposes of clarity) may be any type of communication device(s) capable of sending a wireless signal (e.g., a tag message) over one or more of tag communication channels 115. One or more tag messages may be delivered by the same tag over the period of time. For example, tag message 110-1 may be delivered by a tag at time (t) and tag message 110-2 may be delivered by the same tag at time (t+1). The period of time may be any appropriate interval. It should be appreciated that while nineteen (19) tag messages are illustrated here, system 100 may include more tag messages. It should be appreciated that though described herein in the context of RF transmissions, a tag message may be any wave phenomena such as ultrasound or low-frequency sonar.
Anchors 120 may include any type of communication device(s) capable of receiving tag messages 110 over and an appropriate one of tag communication channels 115, determining a time of arrival (ToA) of the tag message, and transmitting the ToA information and information identifying the tag message to server 130 via an appropriate one of server communication channels 125. In particular, participating anchors 120 must have stable clocks that are synchronized with each other or tracking server 130. Information identifying the tag message may be any suitable information enabling tracking server 130 to associate the ToA information with the corresponding tag message such as: (i) an identifier of the tag such as a tag id; (ii) an identifier of the tag message such as a tag message id; (iii) a timestamp; or (iv) the like.
In some embodiments, the anchor device is embedded in a communication device such as a thin client, a smart phone, a personal or laptop computer, server, network device, tablet, television set-top box, media player, automobile or the like. Communication devices may rely on other resources within exemplary system to perform a portion of tasks, such as processing or storage, or may be capable of independently performing tasks. It should be appreciated that while seven anchors are illustrated here, system 100 may include fewer or more anchors. However, the system requires at least five anchors. Moreover, the number of anchors at any one time may be dynamic as anchors may be added or subtracted from the system at various times during operation.
Tag communication channels 115 may be any suitable wireless connection capable of propagating tag messages 110 generated by a tag to one or more of anchors 120 such as radio frequency, ultrasonic, or visible light signals. It should be appreciated that though depicted as a single connection, communication channels 115 may be any number or combinations of communication channels.
Server communication channels 125 support communicating over one or more communication channels such as: wireless communications (e.g., LTE, GSM, CDMA, Bluetooth); WLAN communications (e.g., WiFi); packet network communications (e.g., IP); broadband communications (e.g., DOCSIS and DSL); storage communications (e.g., Fibre Channel, iSCSI) and the like. It should be appreciated that though depicted as a single connection, communication channels 125 may be any number or combinations of communication channels.
Tracking server 130 may be any apparatus capable of communicating over one or more appropriate server communication channels 125 and determining the NLOS bias distribution and the location of one or more of tag messages 110 based on the anchor message(s) received from one or more of anchors 120. In particular, tracking server 130 determines the NLOS bias estimation for each of participating anchors 120 based on estimated NLOS bias distributions and ToA of a number of tag messages 110 received at the anchors by determining tag locations corresponding to the tag messages based on the NLOS bias distributions and the ToAs and then the tag locations are used to update the NLOS bias distributions. The process of determining tag locations and updating the NLOS bias distributions is repeated until the NLOS bias distributions converge. It should be appreciated that while only one tracking server is illustrated here, system 100 may include more tracking servers. It should be further appreciated though depicted as communicating with anchors 120 via server communication channels 125, tracking server 130 may communicate with anchors 120 through any suitable communication network or may reside in the same device as one or more of anchors 120.
The tag message environment includes one or more environmental conditions such as environment 140-1 that impact the line of sight between a tag transmitting a tag message (e.g., tag message 110-1) and the anchor receiving the tag message (e.g., anchor 120-4). Environmental conditions may be any suitable condition such as: (i) buildings; (ii) office furniture; (iii) walls; (iv) vegetation (e.g., trees); or (v) the like.
In some embodiments, tag messages 110 are within a convex hull (e.g., convex hull 150) defined by the participating anchors (e.g., anchors 120). It should be appreciated, that by constraining tag messages within the convex hull defined by the anchors, performance may be improved as the anchors may be advantageously placed and environmental conditions may be tracked or controlled. In some of these embodiments, the anchors are placed within an establishment such as a building, store or office space.
In the method 200, the step 220 includes determining ToAs for a tag message at participating anchors. In particular, a tag transmits a tag message (e.g., tag message 110-1 of
In the method 200, the step 240 includes determining a NLOS bias distribution as described herein.
In the method 200, the step 260 includes determining a tag location corresponding to the tag message. In particular, the tag location is determined based on the NLOS bias distribution for each of the participating anchors and the ToA received from each of the participating anchors. In one embodiment, referring to
ToA
j
−τ=d
j
/c+γ
j
+n
j (Eq. 1)
d
j=√{square root over (∥x−
where:
In some embodiments of the step 260, the tag location is determined based on equation (3):
where:
In some embodiments, σn2 (i.e., the variance) instead of σn. In some embodiments, the parameters are vectors for describing a mixture of Gaussians. In some of these embodiments, the parameters are the mixing proportions (πj) and the necessary moments (μj). In some of these embodiments, πj are the mixing proportions for each Gaussians, μj the mean of each Gaussian and Vj their variance.
In the method 400, the step 410 includes determining a plurality of NLOS bias distributions corresponding to a plurality of anchors (e.g., five or more of anchors 120 of
In the method 400, the step 420 includes determining a plurality of ToA values associated with reception of a plurality of tag messages at a plurality of participating anchors as described herein, particularly as described in
In the method 400, the step 430 includes estimating a plurality of estimated tag locations based on the plurality of ToA values, the plurality of NLOS bias distributions and the plurality of participating anchors as described herein, particularly as described in step 260 of
In the method 400, the step 440 includes determining a plurality of NLOS biases based on the plurality of estimated tag locations, the plurality of anchor locations, and the plurality of ToA values. In particular, the NLOS bias is based on the relationship between the ToA of the tag message at the anchor and the distance between the tag and the anchor. In some embodiments, the NLOS bias is determined based on equation (4):
γ=(ToAtj−−(√{square root over (∥−
In the method 400, the step 450 includes updating the plurality of NLOS bias distributions based on the plurality of NLOS Biases determined in step 440. Any suitable model for updating the bios distribution may be used. For example, referring to
In the method 400, the step 460 includes proceeding to step 495 if the NLOS bias estimation is complete or returning to step 420 or step 430 if the NLOS bias estimation is not complete. NLOS bias estimation completion may be determined using any suitable method such as: (i) when the prior NLOS bias distribution and the updated NLOS bias distribution are within a threshold tolerance of each other; (ii) when the method has performed a threshold count of iterations; (iii) after a received tag message has been processed; or (iv) the like. The method may proceed to step 420 or 430 as appropriate. For example, when converging on bias distributions for a fixed set of ToAs values, the method may proceed to step 430 while if the method is collecting ToAs over time, the method may proceed to step 420. In some embodiments, step 460 proceeds to step 420 for some iterations and to step 430 for other iterations.
In some embodiments of the step 420, the ToA estimate is determined using conventional round trip time of arrival techniques. For example, suppose a tag sending tag message 310-1 of
In some embodiments of the step 420, the ToA is measured by the tag based on a signal received from the anchors. In some of these embodiments, the tag communicates the determined ToA directly to the tracking server (e.g., tracking server 130 of
In a first embodiment of the step 440, the ToA values are collected over a period of time. In some of these first embodiments, the period of time increases over the life of operation. In some of these embodiments, the period of time is a sliding window of a fixed size (e.g., one week). In some of these first embodiments, the period of time is based on the environment. In some of these embodiments, when a change in the environment occurs, the period of time adjusts. For example, if a new building is erected or new office cubicles are installed. In some of these embodiments, the system triggers a change in environment action based on a comparison of tag messages prior to a point in time and tag messages after a point in time.
In some embodiments of the step 440, the NLOS bias distribution for an anchor has a uniform distribution. In some embodiments, the NLOS bias distribution for an anchor is distributed based on the estimated direction of the tag sending the tag message. For example, an LTE system having three sectors may use three distributions associated with the particular sector antenna receiving the tag message. In another example, the estimated direction of the tag sending the tag message may be estimated based on the ToAs of the anchors (e.g., an anchor receiving the tag message fastest may be assumed to be closer to the tag than an anchor receiving the tag message at a later time).
In some embodiments, Eq. 3 is implemented in exemplary source code as described in
In some embodiments, Eq. 4 is implemented in exemplary source code as described in
The inventors have found that the improvements in reducing NLOS bias in a localization system having six (6) anchors (e.g., such as system 100 of
Although primarily depicted and described in a particular sequence, it should be appreciated that the steps shown in methods 200 and 400 may be performed in any suitable sequence. Moreover, the steps identified by one step may also be performed in one or more other steps in the sequence or common actions of more than one step may be performed only once. For example, steps 420, 430 and 440 of
It should be appreciated that steps of various above-described methods can be performed by programmed computers. Herein, some embodiments are also intended to cover program storage devices, e.g., data storage media, which are machine or computer readable and encode machine-executable or computer-executable programs of instructions, wherein said instructions perform some or all of the steps of said above-described methods. The program storage devices may be, e.g., digital memories, magnetic storage media such as a magnetic disks and magnetic tapes, hard drives, or optically readable data storage media. The embodiments are also intended to cover computers programmed to perform said steps of the above-described methods.
The processor 910 controls the operation of the apparatus 900. The processor 910 cooperates with the data storage 911.
The data storage 911 stores appropriate ones of programs 920 executable by the processor 910. Data storage 911 may also optionally store program data such as NLOS bias distributions, ToA values or the like as appropriate.
The processor-executable programs 920 may include an I/O interface program 921, a location determination program 923, or a NLOS bias distribution program 925. Processor 910 cooperates with processor-executable programs 920.
The I/O interface 930 cooperates with processor 910 and I/O interface program 921 to support communications over communication channels 115 or 125 of
The location determination program 923 performs the steps of
The NLOS bias distribution program 925 performs steps of
In some embodiments, the processor 910 may include resources such as processors/CPU cores, the I/O interface 930 may include any suitable network interfaces, or the data storage 911 may include memory or storage devices. Moreover the apparatus 900 may be any suitable physical hardware configuration such as: one or more server(s), blades consisting of components such as processor, memory, network interfaces or storage devices. In some of these embodiments, the apparatus 900 may include cloud network resources that are remote from each other.
In some embodiments, the apparatus 900 may be virtual machine. In some of these embodiments, the virtual machine may include components from different machines or be geographically dispersed. For example, the data storage 911 and the processor 910 may be in two different physical machines.
When processor-executable programs 920 are implemented on a processor 910, the program code segments combine with the processor to provide a unique device that operates analogously to specific logic circuits.
Although depicted and described herein with respect to embodiments in which, for example, programs and logic are stored within the data storage and the memory is communicatively connected to the processor, it should be appreciated that such information may be stored in any other suitable manner (e.g., using any suitable number of memories, storages or databases); using any suitable arrangement of memories, storages or databases communicatively connected to any suitable arrangement of devices; storing information in any suitable combination of memory(s), storage(s) or internal or external database(s); or using any suitable number of accessible external memories, storages or databases. As such, the term data storage referred to herein is meant to encompass all suitable combinations of memory(s), storage(s), and database(s).
The description and drawings merely illustrate the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the invention and are included within its spirit and scope. Furthermore, all examples recited herein are principally intended expressly to be only for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor(s) to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass equivalents thereof.
The functions of the various elements shown in the FIGs., including any functional blocks labeled as “processors”, may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), and non volatile storage. Other hardware, conventional or custom, may also be included. Similarly, any switches shown in the FIGS. are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
It should be appreciated that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the invention. Similarly, it should be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.