Tag-free indoor user localization using ultra-wideband communications
Through the label-free positioning system, the UWB signal and CIR analysis between anchor devices is solved, and the problem of position determination when the user does not carry the user device is achieved, achieving the effect of automatic calibration and accurate positioning.
Patent Information
- Application Number
- CN202280099504.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-24
- Publication Date
- 2025-04-08
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The prior art is difficult to determine the location of the user without carrying the user device, especially in the case where the user device is not adjacent to the user device.
A label-free positioning system is adopted to continuously or periodically send UWB signals between multiple anchor devices, and the channel impulse response (CIR) is analyzed to determine the user's location. The system automatically calibrates when the user carries the user device, stores the user location and the corresponding CIR data, and determines the user location by comparing the received CIR with the stored data when the user does not carry the user device.
It realizes the precise determination of the user's location without using the user device and/or the user does not have a proximity to the user device, avoiding the tedious process of manually entering the location or heading to a preset location.
Smart Images

Figure CN119790318A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to indoor tracking using ultra-wideband (UWB) communications, and more particularly, to using anchor devices to communicate with each other to locate users who are not using or have no nearby user devices. Background Art
[0002] The background description provided herein is for the purpose of generally presenting the context of the present disclosure. The work of the presently named inventors (to the extent that it is described in this background section) and aspects of the specification that otherwise may not be considered prior art at the time of filing are neither explicitly nor implicitly admitted to be prior art to the present disclosure.
[0003] Today, ultra-wideband (UWB) communications can be used to locate users by sending UWB signals between a user device and an anchor device to determine the distance between the devices based on the round-trip time (RTT) of the UWB signals sent back and forth between the devices. Figure 1 An example sequence of UWB transmissions for determining the distance between a user device and an anchor device is shown. The user device 102 may transmit a first UWB signal 113A to the anchor device 104 via the UWB link 113, receive a first UWB response signal 113B returned from the anchor device 104 via the UWB link 113, and calculate the distance between the UE 102 and the anchor device 104 based on the measurement results of the RTT of the first UWB signal 113A and the first UWB response signal 113B. That is, the user device 102 may calculate the RTT as T1+T2+T3, where T1 is the amount of time it takes for the first UWB signal 113A to be sent from the transmitter of the user device 102 to the receiver of the anchor device 104, T2 is the amount of time it takes for the anchor device 104 to generate a reply, and T3 is the duration for the transmitter of the anchor device 104 to send the first UWB response signal 113B (as a reply) back to the receiver of the user device 102. The user device 102 may then calculate the distance as 1 / 2 of c×(RTT-T2), where c is the speed of light.
[0004] The user device 102 may be equipped with multiple antennas to determine not only the distance between the devices 102, 104, but also the direction of the anchor device 104, so that the user device 102 can determine its position based on the distance and the direction. For example, the user device 102 may determine the direction of the anchor device 104 by receiving the first UWB response signal 113B at each of its antennas, where the antennas are located at different locations within the user device 102. The user device 102 may then determine the direction of arrival of the first UWB response signal 113B based on the time difference at which each of the antennas receives the first UWB response signal 113B.
[0005] Yet, to locate the user in this way, the user needs to have a neighboring user device.In some scenes, such as when the user is at home, the user may put away or leave his user device. Summary of the invention
[0006] In order to determine the location of a user without the user having to carry their user device with them wherever they go, the tagless positioning system includes multiple anchor devices that continuously or periodically send UWB signals from one anchor device to another. For example, a first anchor device may continuously or periodically send a UWB signal that is received at a second anchor device located in the same building or room as the first anchor device. The UWB signal may be a coded pulse signal, and the second anchor device analyzes the received coded pulse signal to determine or reconstruct a channel impulse response (CIR) of the coded pulse signal. Typically, if there is no object between the first anchor device and the second anchor device, the CIR includes a first pulse with a maximum amplitude, followed by subsequent pulses with smaller amplitudes. However, if there is a human within the field of view (FOV) of the first anchor device, the transmission and reflection coefficients of the CIR will change, resulting in a CIR that includes subsequent pulses with larger amplitudes and / or pulse durations than the CIR when there is no object between the first anchor device and the second anchor device. Therefore, the second anchor device or the computing device receiving the CIR from the second anchor device may analyze the characteristics of the CIR to determine whether there is a user within the FOV of the first anchor device.
[0007] For example, the tagless positioning system can train a machine learning model with a first set of CIRs when there is no object between the first anchor device and the second anchor device and a second set of CIRs when there is a user in the FOV of the first anchor device. The tagless positioning system can then provide the characteristics of the CIRs to the machine learning model to determine whether there is a user in the FOV of the first anchor device.
[0008] In addition, in order to determine a specific indoor location of a user within a room or building, the tagless positioning system automatically calibrates while the user is using their user device. While the user is using their user device, the user moves around to various locations within the room or building. The user device can determine its location based on the RTT and / or direction of arrival of the UWB signal from the first anchor device. The second anchor device can store the CIR corresponding to each of the user's locations so that the tagless positioning system has a mapping of the user's location to the CIR data.
[0009] Then, when the user does not have their user device with them, the tagless positioning system can determine the user's location by comparing the CIR to the stored CIR mapped to the user's location. The tagless positioning system can determine the user's location as the location mapped to the stored CIR that most closely matches the received CIR. In other implementations, the tagless positioning system can determine the user's location by assigning a weight to each stored CIR so that the sum of the weighted stored CIRs matches the received CIR. The tagless positioning system can then apply those same weights to the coordinates of the mapped locations, and can determine the coordinates of the user's location in conjunction with the weighted mapped location coordinates.
[0010] The tagless positioning system may include n anchor devices located in the same building or room, which continuously or periodically send n×(n–1) UWB signals between each other. The n anchor devices may analyze the n×(n–1) UWB signals to determine or reconstruct n×(n–1) CIRs. In other implementations, a master anchor device or a server device may receive the n×(n–1) UWB signals and determine or reconstruct n×(n–1) CIRs. The master anchor device or the server device may then compare the n×(n–1) CIRs with the stored CIRs mapped to the user's location to determine the user's location.
[0011] In this way, the tagless positioning system can determine the user's location without the use of a user device and / or without the user having a nearby user device. Additionally, by automatically calibrating the tagless positioning system, the user does not have to manually enter their location or go to several preset locations, which can be time consuming and cumbersome. Instead, the tagless positioning system automatically calibrates while the user carries their user device around in their daily activities.
[0012] The location may be used to activate smart lights that are in the same room as the user, adjust heating or air conditioning settings at the user's location, adjust security settings at the user's location, and the like.
[0013] An example embodiment of these techniques is a method for determining a location of a user. The method includes automatically calibrating a positioning system by sending communication signals between at least two anchor devices and a user device to determine and store the user's location and a channel impulse response of the communication signal for each location. The method also includes receiving, at a first anchor device at a first fixed location within the positioning system, a communication signal sent by a second anchor device at a second fixed location within the positioning system. The user is not using the user device. The method also includes: determining, by the first anchor device, a channel impulse response of the communication signal; and determining the user's location within the positioning system by comparing the channel impulse response of the communication signal with the stored channel impulse response and the corresponding stored location.
[0014] Another example embodiment of these techniques is a positioning system for determining a location of a user. The system includes a first anchor device at a first fixed location within the positioning system and a second anchor device at a second fixed location within the positioning system. The first anchor device and the second anchor device are configured to: in a first instance, automatically calibrate the positioning system by sending communication signals between the first anchor device and the second anchor device and a user device to determine the location of the user; and in a second instance, send the communication signal by the first anchor device, the communication signal is received at the second anchor device, wherein the user is not using the user device. The system also includes a computing device, the computing device including one or more processors and a computer-readable memory, the computer-readable memory is optionally non-transitory, coupled to the one or more processors and having instructions stored thereon. The instructions, when executed by the one or more processors, cause the computing device to store a location and a corresponding channel impulse response of the communication signal; determine the channel impulse response of the received communication signal; and determine the location of the user within the positioning system by comparing the channel impulse response of the communication signal with the stored channel impulse response and the corresponding stored location.
[0015] Yet another example embodiment of these techniques is a computing device for determining a location of a user. The computing device includes one or more processors and a computer-readable memory, which is optionally non-transitory, coupled to the one or more processors and has instructions stored thereon. The instructions, when executed by the one or more processors, cause the computing device to automatically calibrate a positioning system by obtaining an indication of the user's location and a corresponding channel impulse response of a communication signal received at an anchor device; and storing the location and the corresponding channel impulse response of the communication signal. The instructions also cause the computing device to receive an indication of a communication signal sent by a first anchor device to a second anchor device when the user is not using a user device; determine a channel impulse response of the communication signal; and determine the user's location within the positioning system by comparing the channel impulse response of the communication signal with the stored channel impulse response and the corresponding stored location. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 is an example message sequence that may be performed by a tagless positioning system for measuring the round trip time of messages exchanged between a user device and an anchor device;
[0017] Figure 2 is an example channel impulse response for a communication signal that may be sent from one anchor device to another anchor device;
[0018] Figure 3 shows a side-by-side comparison of two different channel impulse responses of a communication signal sent from a first anchor device to a second anchor device when the room is vacant and when someone is in the room;
[0019] Figure 4 is a schematic diagram of a software component for detecting whether a person is present in a room based on a channel impulse response;
[0020] Figure 5 is a block diagram of an example tag-free positioning system illustrating components and parameters for automatically calibrating the tag-free positioning system;
[0021] Figure 6 is a block diagram of an example calibrated tagless positioning system illustrating components and parameters for determining the location of a tagless user who is not using or near a user device; and
[0022] Figure 7 is a flow chart of an example method that may be implemented in a computing device for determining a user's location. DETAILED DESCRIPTION
[0023] In general, the techniques of the present disclosure allow anchor devices to communicate with each other using radio technologies suitable for short-range communications and / or high-bandwidth communications over a large portion of the radio spectrum. In some implementations, the user device may also communicate with the anchor device during a calibration phase to determine the user's location based on the round-trip time of communication signals sent back and forth between the user device and the anchor device. The computing device may then map the user's location to the channel impulse response of the communication signals sent when the user is at each location. In other implementations, the anchor device and / or the user device may communicate with each other using any suitable radio technology.
[0024] One such non-limiting radio technology is ultra-wideband (UWB). The user device and the anchor device may be located in an indoor environment (i.e., in a building, such as a residence, a mall, a stadium, a museum, a theme park, a tent, a pavilion, an awning, or any suitable indoor environment where at least a portion of the environment is located indoors) or in an outdoor environment. In some implementations, the anchor device may be included in a positioning system (also referred to herein as a "tagless positioning system"). The tagless positioning system may be an indoor positioning system or an outdoor positioning system. When the anchor device is located in an indoor environment, the user's location may be an indoor location. When the anchor device is located in an outdoor environment, the user's location may be an outdoor location.
[0025] When the user device transmits signals with the anchor device via UWB, for example during a calibration phase, the user device can determine its position relative to the anchor device based on the measurement of the flight time of those signals. Further, if the position of each of the anchor devices is known, the user device can determine its absolute position. Compared to traditional GPS-based location determination techniques, the user device can determine its position within an indoor environment with sub-meter accuracy. The user device can be a smartphone, tablet computer, laptop computer, desktop computer, wearable device (such as a smart watch or smart glasses), or any suitable client computing device.
[0026] In addition, after the calibration phase, the anchor devices may transmit signals to each other via UWB, for example, without communicating with the user device. The anchor device may then determine the channel impulse response of the received communication signal by, for example, comparing the received communication signal with a template encoded pulse signal to reconstruct the channel impulse response. The anchor device may then send the channel impulse response to a primary anchor device or a network server for analyzing the channel impulse response to detect the presence of the user and / or determine the specific indoor location of the user. In other implementations, the anchor device sends the original communication signal to the primary anchor device or the network server, which compares each received communication signal with the template encoded pulse signal to reconstruct the channel impulse response. The primary anchor device may be one of the anchor devices that send and receive communication signals in the positioning system.
[0027] As used herein, an untagged user may refer to a user who is not using a user device or is not near a user device. For example, a user may be at their home and their user device may be charging in another room, or the user may place their user device on a table, desk, or other location away from the user.
[0028] To determine the RTT of a UWB signal sent back and forth between devices, the anchor device typically determines the time it receives the communication signal as the time when the amplitude of the communication signal exceeds a threshold amplitude. The anchor device may use a first-bounce estimation process to determine the time the anchor device receives the communication signal, which may be referred to as the first path time.
[0029] Figure 2 An example channel impulse response 200 is shown for a communication signal that may be sent from one anchor point device to another anchor point device. Figure 2 The graph shown is a waveform of the amplitude of the CIR 200 varying with time. As described above, the communication signal may be a coded pulse signal, which may include a series of pulses coded with positive amplitudes, negative amplitudes, or no amplitudes. The CIR may include a first pulse 202 having a peak amplitude above a threshold, followed by a series of subsequent pulses 204, 206 having a smaller peak amplitude and / or a longer pulse duration. In addition to the first path time, the CIR may also include multipath information of the subsequent pulses 204, 206, such as the time of the subsequent pulses 204, 206, the peak amplitude of the subsequent pulses 204, 206, the pulse duration of the subsequent pulses 204, 206, and / or other characteristics of the subsequent pulses 204, 206.
[0030] When there is no object in the field of view of the anchor device sending the coded pulse signal, the following may occur: Figure 2The waveform exhibited in the CIR 200 shown. On the other hand, when there is an object such as a person in the field of view of the anchor device, the reflection and transmission coefficients of the waveform can change. This can cause the characteristics of subsequent pulses 204, 206 of the CIR to change and have larger amplitudes, longer pulse durations, etc.
[0031] Figure 3 A side-by-side comparison 300 of two different CIRs 310, 320 of communication signals sent from a first anchor device 302 to a second anchor device 304 when a room is vacant 310 and when a person is present in the room 320 is shown. As shown in the side-by-side comparison 300, the peak amplitudes and pulse characteristics of the respective first pulses 330a, 330b of the CIRs 310, 320 appear very similar, if not identical. On the other hand, the peak amplitude of a subsequent pulse 332b of the CIR 320 when a person is present in the room is significantly greater than the peak amplitude of a subsequent pulse 332a of the CIR 310 when the room is vacant. Additionally, the peak amplitude of a second subsequent pulse 334b of the CIR 320 when a person is present in the room is also significantly greater than the peak amplitude of a second subsequent pulse 334a of the CIR 310 when the room is vacant. The pulse duration of subsequent pulses 332b, 334b of CIR 320 when the room is occupied also appears different from the pulse duration of subsequent pulses 332a, 334a of CIR 310 when the room is vacant.
[0032] In this manner, the tag-free positioning system may analyze the characteristics of the CIRs 310, 320 to detect whether a person is within the field of view of one of the anchor devices in the tag-free positioning system. Figure 4 A schematic diagram 400 of software components 410-430 for detecting whether a person is in a room based on a channel impulse response is shown. The software components 410-430 may be included in a primary anchor device that obtains CIRs from communication signals received at the primary anchor device and CIRs from communication signals received at other anchor devices. The CIRs may also correspond to communication signals sent at different times, different dates, etc. In other implementations, the software components 410-430 may be included in a network server that obtains CIRs from communication signals received at the anchor devices.
[0033] In any case, an impulse waterfall framer 410 in a master anchor device or a network server can receive multiple CIRs obtained over time at a particular anchor device, such as when a user enters a room with a particular anchor device. The impulse waterfall framer 410 can then generate a two-dimensional matrix of CIR data for the multiple CIRs, which can be referred to herein as an impulse waterfall. Each column in the impulse waterfall can be a different CIR, with each row representing the magnitude of the CIR at a particular point in time, time range, or time interval relative to the time when the impulse data for the CIR was first received.
[0034] For example, the first row may be a first time interval when a first pulse is received, the second row may be a second time interval when a second pulse is received, and the third row may be a third time interval when a third pulse is received, all within the same CIR. In other implementations, the time intervals may be smaller, and the first three rows may be for time intervals when the first pulse is received, such as when the amplitude of the first pulse is rising, at the peak of the amplitude of the first pulse, and when the amplitude of the first pulse is falling. The first column may be for a first CIR obtained when the user has not yet entered the room. The second column may be for a second CIR obtained when the user enters the room. The third column may be for a third CIR obtained when the user is in the room, etc. In this way, each row shows a comparison of the amplitude of the CIR at a particular point in time, time range, or time interval, which may indicate changes in the transmission coefficient or amplitude over time as the user approaches the field of view of the anchor device.
[0035] The main anchor device or network server then applies the pulse waterfall to a foreground extractor 420, which is similar to a Gaussian mixture model in computer vision, to identify clusters of CIRs, where each cluster shares common characteristics. The main anchor device or network server then buffers the foreground waterfall for a threshold period of time (about 2 seconds) and passes the buffered foreground waterfall to a convolutional neural network 430, which makes the final human perception decision. The convolutional neural network 430 can be a binary classification model trained to detect whether the foreground waterfall indicates the presence of a person.
[0036] For example, the convolutional neural network 430 may be trained with a first set of foreground waterfalls when a human being is present in the field of view of the anchor device and a second set of foreground waterfalls when a human being is not present in the field of view of the anchor device. The main anchor device or the network server may generate the convolutional neural network 430 by analyzing the characteristics of the first set of foreground waterfalls (e.g., pulse amplitude, pulse amplitude difference in each time interval, etc.) and the characteristics of the second set of foreground waterfalls. The main anchor device or the network server may apply the characteristics of the buffered foreground waterfalls to the trained convolutional neural network 430 to identify whether there is a human being in the field of view of the anchor device.
[0037] In some implementations, the tag-free positioning system can not only identify whether there is a human in the field of view of the anchor device, but also identify a specific user among multiple candidate users. For example, for each user, the main anchor device or the network server can train the convolutional neural network 430 using different groups of foreground waterfalls when the specific user is present in the field of view of the anchor device. Then, the main anchor device or the network server can adjust the convolutional neural network 430 by analyzing the characteristics of each different group of foreground waterfalls corresponding to each different user.
[0038] Thus, the convolutional neural network 430 may include a user signature for each user, which may be identified during the calibration phase based on characteristics of the CIR received when the particular user is using the user device. In some implementations, the convolutional neural network 430 may be a deep neural network having at least a first layer of hidden nodes for determining whether there is a human within the field of view of the anchor device and at least a second layer of hidden nodes for determining which user of a plurality of candidate users is within the field of view of the anchor device. The primary anchor device or the network server may then apply the characteristics of the buffered foreground waterfall to the convolutional neural network 430 to determine whether there is a human within the field of view of the anchor device and which user is within the field of view of the anchor device.
[0039] While CIR data can be used to detect the presence of a user within the field of view of an anchor device to determine the user's specific indoor location within a room or building, the tagless positioning system automatically calibrates when the user is using his or her user device. The user device can determine its location based on the RTT and / or direction of arrival of the UWB signal from the anchor device. While the user device is determining its location, the anchor device can receive the CIR from the communication signal sent by the anchor device. The master anchor device or network server can then store the CIR corresponding to each of the user's locations so that the tagless positioning system has a mapping of user locations to CIR data.
[0040] Calibration Phase
[0041] Figure 5is a block diagram of an example tagless positioning system 500, illustrating components and parameters for automatically calibrating the tagless positioning system 500. The tagless positioning system 500 includes a user device 102 (also referred to herein as a "user equipment (UE)") and a first anchor device 104A, a second anchor device 104B, and an nth anchor device 104N, each of which is communicatively coupled to a network server 105 via a network 120. The network 120 may generally include one or more wired and / or wireless communication links (e.g., communication link 116) and may include, for example, a wide area network (WAN) such as the Internet, a local area network (LAN), a cellular telephone network, or other suitable type of network.
[0042] The user device may communicate with one or more of the anchor devices 104A, 104B, 104N within a certain range via UWB, which are spatially separated and located in an indoor environment 103 (e.g., a building). For example, the first anchor device 104A may be located at a first fixed position within the tagless positioning system 500, the second anchor device 104B may be located at a second fixed position within the tagless positioning system 500, the nth anchor device 104N may be located at an nth fixed position within the tagless positioning system 500, and so on. The anchor devices 104A, 104B, 104N themselves may communicate with each other via UWB within a certain range and communicate with the network server 105. In other implementations, the anchor devices 104A, 104B, 104N may be located in an outdoor environment.
[0043] Although a single user and three anchor devices are shown in the example tagless positioning system 500, in general, the tagless positioning system 500 may include m user devices and n anchor devices, where both m and n are equal to or greater than one. Although the examples disclosed herein specifically relate to a particular radio technology (UWB), in general, the techniques of the present disclosure may also be applied to other suitable radio technologies for short-range, high-bandwidth communications over large portions of the radio spectrum, or for any suitable radio technology.
[0044] Each of the anchor devices 104A, 104B, 104N may be any suitable type of computing device capable of wireless communication, such as a home assistant device (e.g., Google Home, Google Nest, Amazon Echo), a tablet computer, a wireless hotspot, a femtocell, or a broadband router. The anchor device 104A includes processing hardware 130A, which may include one or more general-purpose processors (e.g., central processing units (CPUs)) and computer-readable memory (e.g., random access memory (RAM), flash memory, read-only memory (ROM)) storing machine-readable instructions executable on the one or more general-purpose processors, and / or a dedicated processing unit.
[0045] Figure 1 The processing hardware 130A in the example implementation in A includes a controller 132A configured to send and receive communication signals, such as encoded pulse signals. For example, the controller 132A may send a first UWB signal, which is received at the user device 102 (reference numeral 113) and received at the second anchor device 104B (reference numeral 110). The controller 132 may then receive a first UWB response signal 113 from the user device 102 and calculate the distance between the first anchor device 104A and the user device 102 based on the measurement results of the RTT of the first UWB signal and the first UWB response signal. That is, the controller 132A may calculate the RTT as T 1 +T 2 +T 3 , where T 1 is the amount of time it takes for the first UWB signal to be sent from the transmitter of the first anchor device 104A (eg, the controller 132A) to the user device 102, T 2 is the amount of time it takes the user device to generate a reply, and T 3 is the duration for the transmitter of the user device to send the first UWB response signal (as a reply) back to the receiver (eg, controller 132A) of the first anchor device 104A. The controller 132A can then calculate the distance as c×(RTT-T 2 ), where c is the speed of light.
[0046] In addition, the controller 132A may receive a communication signal, such as an encoded pulse signal, from another anchor device 104B, 104N. The controller 132A may compare the encoded pulse signal with a template encoded pulse signal of a communication signal sent by another anchor device 104B, 104N to reconstruct the CIR of the communication signal. The controller 132A may receive communication signals 110, 111 from each of the anchor devices 104B, 104N and reconstruct the CIR for each of the received communication signals. The controller 132A may also send communication signals 110, 111, 113 to each of the anchor devices 104B, 104N and the user device 102.
[0047] The processing hardware 130A may also include a network interface 135. The network interface 135 may include one or more communication interfaces, such as hardware, software, and / or firmware, for enabling communication with the network server 105 via a cellular network, a WiFi network, or any other suitable network, such as the network 120. For example, using the network interface 135, the first anchor device 104A may send the distance to the network server 105 or one of the anchor devices 104A-104N, such as a master anchor device, which analyzes the distance measurement results to determine the location of the user device and stores the CIR obtained when the user is located at a specific location to map the CIR to the specific location. The master anchor device may be one of the anchor devices 104A-104N that performs additional processing in addition to facilitating distance measurement and CIR measurement. For example, the master anchor device may determine the location of the user device 102 based on the distance measurement results, may map the CIR to the specific location of the user, and may determine the location of the user by comparing the CIR data with the stored CIR and the corresponding location without the user device 102. The master anchor device may include similar processing hardware and software components as the network server 105 in addition to sending and receiving communication signals.
[0048] Although not shown, the anchor devices 104B, 104N may include processing hardware similar to the processing hardware 130A. Thus, using the UWB link, any one of the anchor devices 104B, 104N may also measure the distance to the user device, obtain the CIR from the other anchor devices 104A-104N, and send such measurements and the CIR to the network server 105 in a manner similar to that described above. More generally, if there are n anchor devices, a total of n distance measurements are determined between the n anchor devices and the user device. The anchor devices 104A-104N may send each of the n distance measurements to a primary anchor device (e.g., the first anchor device 104A), or may send the distance measurements to the network server 105. Additionally, if there are n anchor devices, a total of n×(n–1) CIRs (e.g., CIRs) may be received at the n anchor devices. 1->N 、CIR 2->N 、CIR 1->2 、CIR N->2 、CIR N->1 、CIR 2->1 The anchor point devices 104A-104N may send each of the CIRs to a master anchor point device (eg, the first anchor point device 104A), or may send the CIRs to the network server 105.
[0049] The network server 105 may be any suitable type of computing device capable of communicating with each of the anchor devices 104A-104N and the user device 102 over the network 120. The network server 105 includes processing hardware 140, which may include one or more general-purpose processors (e.g., CPUs) and computer-readable memory (e.g., RAM, flash memory, ROM) storing machine-readable instructions executable on the one or more general-purpose processors, and / or a dedicated processing unit. Figure 5 The processing hardware 140 in the example implementation of FIG. 1 includes a controller 142 configured to receive CIRs (eg, CIRs) from the anchor devices 104A-104N via the network 120 via the communication link 116. 1->N 、CIR 2->N 、CIR 1->2 、CIR N->2 、CIR N->1 、CIR 2->1 ). Processing hardware 140 may also receive the location (e.g., (x, y)) of user device 102 via network 120 through communication link 116. UE ), or receiving a distance from each of the anchor devices to the user device 102 to determine the location of the user device 102.
[0050] In other implementations, the functions performed at the network server 105 may be performed at the master anchor device. Additionally or alternatively, the functions performed at the master anchor device may be performed at the network server 105, and / or a combination of the network server 105 and the master anchor device may perform the following functions: determining the location of the user device 102, mapping the location to a CIR, and determining the location of the user based on the CIR of the communication signals transmitted when the user is within the field of view of the anchor devices 104A-104N and the stored CIR and its mapping to the user's location in the absence of the user device 102. For example, the master anchor device may house the processing hardware 140.
[0051] The user device 102 includes processing hardware 150, which may include one or more general-purpose processors (e.g., CPU) and computer-readable memory (e.g., RAM, flash memory, ROM) that stores machine-readable instructions executable on the general-purpose processor, and / or a dedicated processing unit. Figure 5 The processing hardware 150 in the example implementation of includes a controller 152 configured to determine a distance between the UE 102 and any one of the anchor devices 104A-104N included in the tag-free positioning system 500 based on measurements of flight time associated with signals exchanged between them.
[0052] For example, the controller 152 may send the first UWB signal 113 to the first anchor device 104A through the UWB link, receive the first UWB response signal 113 returned from the first anchor device 104A through the UWB link 113, and calculate the distance between the user device 102 and the first anchor device 104A based on the measurement results of the RTT of the first UWB signal 113 and the first UWB response signal 113. That is, the controller 152 may calculate the RTT as T 1 +T 2 +T 3 , where T 1 is the amount of time it takes for the first UWB signal 113 to be sent from the transmitter of the user device 102 (eg, the controller 152) to the receiver of the first anchor device 104A (eg, the controller 132A), T 2 is the amount of time it takes the first anchor point device 104A (eg, controller 132A) to generate a reply, and T 3 is the duration for the transmitter of the first anchor device 104A (e.g., the controller 132A) to send the first UWB response signal 113 (as a reply) back to the receiver of the user device 102 (e.g., the controller 152). The controller 152 can then calculate the distance between the user device 102 and the first anchor device 104A as c×(RTT-T2 ), where c is the speed of light.
[0053] In some implementations, the user device 102 may be equipped with multiple antennas to determine not only the distance but also the direction of the first anchor device 104A, so that the controller 152 can determine the location ((x, y)) of the user device 102 based on the distance and the direction. UE ). For example, the user device 102 may determine the direction of the first anchor device 104A by receiving the first UWB response signal 113 at each of its antennas, where the antennas are located at different locations within the user device 102. The user device 102 may then determine the direction of arrival of the first UWB response signal 113 based on the time difference at which each of the antennas receives the first UWB response signal 113. In some implementations, the user device 102 may include a compass, a magnetometer, a gyroscope, an accelerometer, and / or other sensors to determine its orientation. The user device 102 may then determine the direction of arrival of the first UWB response signal 113 based on the time difference at which each of the antennas receives the first UWB response signal 113 and based on the orientation of the user device 102.
[0054] In other implementations, the first anchor device 104A or any of the anchor devices 104A-104N may be equipped with multiple antennas for determining the direction of the user device 102 relative to the anchor devices 104A-104N, so that the controller 132A can determine the position ((x, y)) of the user device 102 based on the distance and direction. UE ). For example, the first anchor point device 104A may transmit a first UWB signal 113, which is received at the user device 102. The user device 102 may then transmit a first UWB response signal 113, which is received at a plurality of antennas of the first anchor point device 104A. The first anchor point device 104A may then determine the direction of arrival of the first UWB response signal 113 based on a time difference at which each of the antennas receives the first UWB response signal 113. The first anchor point device 104A may then determine the location of the user device 102 based on the distance and direction of the user device 102 from the first anchor point device 104A.
[0055] In some implementations, the controller 152 may determine the location ((x, y)) of the user device 102 based on the distance to the corresponding anchor devices 104A-104N. UE). For example, in addition to determining the distance to the first anchor device 104A as described above, the controller 152 may also send second and third UWB signals to the respective anchor devices 104B and 104N via the respective UWB links 114, 115, receive second and third UWB response signals returned from the respective anchor devices 104B and 104C via the respective UWB links 114, 115, and calculate the distance to the respective anchor devices 104B and 104C, in a manner similar to the manner in which the controller 152 may calculate the distance to the first anchor device 104A as described above.
[0056] Using the distance to each of the anchor devices 104A-104N, the relative position of the user device 102 may be determined using trilateration techniques known in the art. In general, if n is equal to or greater than 2, the relative position ((x, y)) of the user device 102 may be determined using multilateration techniques known in the art. UE ).
[0057] When n is equal to 3, the location of the user device 102 can be determined in 2 dimensions (ie, the floor where the anchor device is located). When n is greater than or equal to 4, the location of the user device can be determined in 3 dimensions, for example to determine the UE location in a multi-story building.
[0058] As described above, during the calibration phase, the tagless positioning system automatically calibrates by determining the location of the user device 102 and mapping the location to a corresponding CIR so that the user can move around the rooms in their residence or building. The user does not have to manually enter their location or go to several preset locations.
[0059] In some implementations, the processing hardware 140 of the network server 105 or the master anchor device may include a CIR-to-location mapping 144. For each user, the CIR-to-location mapping 144 stores the user's location (which may be an indoor location) and the CIR corresponding to the location. For example, at a first point in time, the user may be at location (x, y) t 1 The CIR to position mapping 144 may be stored at the user at position (x, y) t 1 A single CIR (CIR_t) received at one of the anchor devices 104A-104N at the time 1 )(For example, (x,y)t 1 <->CIR_t 1 In other implementations, the CIR-to-position mapping 144 may be stored when the user is at position (x, y) t 1 The CIR array (e.g., CIR_t 1_1->N、CIR_t 1_2->N 、CIR_t 1_1->2 、CIR_t 1_N->2 、CIR_t 1_N->1 、CIR_t 1_2->1 ).
[0060] For each user, the CIR to location mapping 144 can store a different set of locations (which can be indoor locations) and the CIRs corresponding to the locations. Thus, the tagless positioning system 500 can first detect the presence of a user, then identify the specific user via the user signature as described above, and then apply a set of locations and CIRs corresponding to each location specific to the identified user to determine the user's location.
[0061] By storing an array of CIRs corresponding to a particular location of a user, the tagless positioning system 500 can more accurately determine the location of the user than using a single CIR received at a single anchor device and mapping the single CIR to a particular location. For example, the CIR received at a single anchor device 104A (after a calibration phase, when the user does not have their user device 102) can be similar to the stored CIR of the anchor device 104A. However, the CIRs received at other anchor devices 104B-104N can be very different from the stored CIRs for the corresponding anchor devices 104N-104N. Therefore, using multiple CIRs received at multiple anchor devices 104A-104N, the tagless positioning system is less likely to incorrectly identify the location of the user.
[0062] The processing hardware 140 of the network server 105 or the primary anchor device may also include a tagless location engine 148, as described below. Figure 6 Describe in more detail.
[0063] Figure 5 The processing hardware 150 in an example implementation of may include a network interface 155, a user interface 156, an input / output (I / O) interface 157, and an operating system (OS) 158. The network interface 155 may include one or more communication interfaces, such as hardware, software, and / or firmware, for communicating with the network server 105 via a cellular network, a WiFi network, or any other suitable network, such as the network 120. For example, the controller 152 may receive the location of the corresponding anchor devices 104A-104N as determined by the network server 105. Using the distance and location of the corresponding anchor devices 104A-104N, the user device 102 may determine its absolute location using trilateration techniques known in the art. As another example, the controller 152 may transmit (x, y) to the user device 102 via the network 120 through the communication link 116. UEThe location of the user device 102 is sent to the network server 105 so that the network server 105 can track the location of the user device 102.
[0064] The user interface 156 may include one or more input devices such as a touch screen, keyboard, mouse, microphone, camera, etc. configured to receive user commands and one or more output devices such as a touch screen or speakers configured to provide visual, audio and / or tactile output. OS158 can be any suitable mobile or general-purpose OS. In addition, the processing hardware 150 can store one or more applications that transmit data (e.g., send data, receive data, or both) via the network 120, including a client mapping application 154, which will be described in further detail below. OS158 may include application programming interface (API) functions that allow applications to access information from components of the user device 102. The user device 102 may also include Figure 5 Components not shown, such as a graphics processing unit (GPU).
[0065] Unlabeled user device stage
[0066] After the tagless positioning system 500 has been calibrated (which may take hours, days, etc.), the tagless positioning system 500 can determine the user's location when the user is not using the user device 102 or is not near the user device. Figure 6 is a block diagram of an example calibrated tag-free positioning system 600 illustrating components and parameters for determining the location of a tag-free user who is not using or near a user device 102 .
[0067] like Figure 6 As shown, the first anchor device 104A sends communication signals 110 and 111 to the second anchor device 104B and the nth anchor device 104N, thereby causing the second anchor device 104B to receive the CIR 12 And the nth anchor device 104N receives the CIR 1N The second anchor device 104B sends communication signals 110 and 112 to the first anchor device 104B and the nth anchor device 104N, thereby causing the first anchor device 104B to receive CIR 21 And the nth anchor device 104N receives the CIR 2N The nth anchor device 104N sends communication signals 111 and 112 to the first anchor device 104B and the second anchor device 104B, thereby causing the first anchor device 104B to receive the CIR N1 And the second anchor device 104B receives the CIR N2 The user is located within the field of view 110 - 112 of each of the anchor devices 104A - 104N.
[0068] In some implementations, the anchor device 104A-104N sends the CIR to the primary anchor device or network server 105. The tagless location engine 148 in the primary anchor device or network server 105 then analyzes the CIR to determine the location of the user. First, the tagless location engine 148 can determine whether the user is within the field of view of the anchor device 104A-104N and which of the multiple candidate users is within the field of view of the anchor device 104A-104N. For example, the tagless location engine 148 can perform the above reference Figure 4 Steps 410-430 are described to generate a pulse waterfall, apply the pulse waterfall to a foreground extractor 420 to generate a foreground waterfall, and apply the foreground waterfall to a convolutional neural network 430 to determine whether a user is present within the field of view of an anchor device 104A-104N, and identify which user is present within the field of view of the anchor device 104A-104N based on the user signature from the CIR data.
[0069] In response to determining that a user is present within the field of view of an anchor device 104A-104N and identifying the particular user, tagless location engine 148 may obtain from CIR to location mapping 144 a mapping of the user's locations (which may be indoor locations) and the CIRs corresponding to each location.
[0070] For example, for a particular anchor device 104A, the tagless location engine 148 may obtain the following mapping: (x, y)t 1 <->CIR_t 1 , (x,y)t 2 <->CIR_t 2 , (x,y)t 3 <->CIR_t 3 ,......,(x,y)t N <->CIR_t N , where t 1 ,t 2 ,t 3 ,......,t N Corresponding to different locations at different times. The tagless location engine 148 obtains the CIR (e.g., CIR 21 ), and compares the CIR with the stored CIRs and corresponding locations to determine the location of the user, which may be an indoor location. More specifically, the tagless location engine 148 may assign a weight to each of the stored CIRs so that the sum of the combined weighted CIRs equals the CIR (e.g., CIR 21). For example, the weights may be expressed as [w_1, w_2, ... w_N]. The tagless location engine 148 may determine the weights such that CIR≈w_1*CIR_1+w_2*CIR_2+ ... +w_N*CIR_N to minimize the mean square error of the difference between the two.
[0071] The tagless location engine 148 may then assign the same weights to the corresponding locations, apply the weights to the coordinates of the locations, and combine the weighted coordinates to determine the coordinates of the user's location as a weighted average of the coordinates. For example, the user's determined location (x, y) may be determined as (w_1*(x, y)t 1 +w_2*(x,y)t 2 +...+w_N*(x,y)t N ).
[0072] The tagless location engine 148 may repeat this process for each CIR received at each anchor device 104A-104N, and may compare the determined locations for each CIR to each other. In some implementations, the tagless location engine 148 may combine the determined locations for each CIR in any suitable manner to make a final determination of the user's location. For example, the tagless location engine 148 may average the coordinates of each determined location in the determined locations to make a final determination of the location. In other implementations, the tagless location engine 148 may cluster the determined locations and assign votes to each cluster based on the number of locations in each cluster. The cluster with the highest total number of votes may then be used to make a final determination. For example, the tagless location engine 148 may discard other clusters and average the coordinates of each of the r locations determined in the cluster with the highest total number of votes to make a final determination of the location.
[0073] Figure 7 A flow chart of an example method 700 for determining a user's location is shown. The method 700 may be implemented as a set of instructions stored on a computer-readable memory and executable on one or more processors of a primary anchor device 104A, a network server 105, another anchor device 104B, or any suitable combination of these.
[0074] At block 702, during a calibration phase, the master anchor device may automatically calibrate the positioning system 500 using at least two anchor devices 104A, 104B and the user device 102 of the user to store the user's location and corresponding CIR, wherein each CIR is received when the user is at a corresponding location. The location may be an indoor location.
[0075] For example, the first anchor device 104A may transmit a first UWB signal, which is received at the user device 102 (reference numeral 113) and at the second anchor device 104B (reference numeral 110). Then, the first anchor device 104A may receive a first UWB response signal 113 from the user device 102, and calculate the distance between the first anchor device 104A and the user device 102 based on the measurement results of the RTT of the first UWB signal and the first UWB response signal. Then, the first anchor device 104A may calculate the distance as c×(RTT-T 2 ), where c is the speed of light.
[0076] In some implementations, the first anchor device 104A may be equipped with multiple antennas for determining the direction of the user device 102 relative to the anchor device, so that the first anchor device 104A can determine the position ((x, y)) of the user device 102 based on the distance and direction. UE In other implementations, the user device 102 uses trilateration techniques to determine its own position ((x, y)) based on the distance from the anchor devices 104A-104N. UE ), or the master anchor device receives each of the distances to the user device 102 from the anchor devices 104A-104N and determines the location of the user device 102 based on the distances using a trilateration technique.
[0077] Additionally, the first anchor device 104A may receive a communication signal, such as an encoded pulse signal, from another anchor device 104B, 104N. The first anchor device 104A may compare the encoded pulse signal with a template encoded pulse signal of a communication signal sent by another anchor device 104B, 104N to reconstruct the CIR of each communication signal.
[0078] The master anchor device may then receive the user's location and the corresponding CIR received from each of the anchor devices 104A-104N when the user is at a particular location, and may store the location mapped to the CIR. For example, the master anchor device may store the user's location at location (x, y)t 1 A single CIR (CIR_t) received at one of the anchor devices 104A-104N at the time 1 )(For example, (x,y)t 1 <->CIR_t 1 ). In other implementations, the primary anchor device may store the information when the user is at position (x, y)t 1 The CIR array (e.g., CIR_t 1_1->N、CIR_t 1_2->N 、CIR_t 1_1->2 、CIR_t 1_N->2 、CIR_t 1_N->1 、CIR_t 1_2->1 ). The primary anchor point device may store a mapping of CIR to location for a particular user, and may also store additional mappings of CIR to location for other users.
[0079] In addition, the primary anchor device may use the CIR to train a machine learning model, such as a convolutional neural network 430, to identify a specific user among a plurality of candidate users. For example, the primary anchor device may analyze the characteristics of each different set of CIRs corresponding to each different user. Thus, the convolutional neural network 430 may include a user signature for each user.
[0080] Then, after the positioning system 500 has been calibrated, at block 704, the first anchor device 104A may receive the communication signal from the second anchor device 104B. The first anchor device 104A may reconstruct the CIR of the communication signal (block 706), and may send the CIR to the primary anchor device. In other implementations, the first anchor device 104A may send the original communication signal, and the primary anchor device may reconstruct the CIR. Additionally, the first anchor device 104A may continuously or periodically receive multiple communication signals from the second anchor device 104B, and may send the CIR to the primary anchor device. In some implementations, the first anchor device 104A may be the primary anchor device.
[0081] The primary anchor device may then analyze the CIR to determine whether a user is present within the field of view of the first anchor device 104A, and if so, identify a specific user from among the plurality of candidate users. For example, the primary anchor device may generate a pulse waterfall of the CIR obtained over time at the first anchor device 104A. The primary anchor device may then apply the pulse waterfall to the foreground extractor 420 to generate a foreground waterfall, and apply the foreground waterfall to the convolutional neural network 430 to determine whether a user is present within the field of view of the first anchor device 104A, and identify which user is present within the field of view of the first anchor device 104A based on the user signature from the CIR data.
[0082] In addition to analyzing the CIR from the first anchor device 104A, the master anchor device can also receive and analyze the CIR from each of the other anchor devices 104B, 104N to determine whether there is a user within the field of view of one of the other anchor devices 104B, 104N, and identify which user is within the field of view of one of the other anchor devices 104B, 104N.
[0083] In response to identifying a user present within the field of view of one of the anchor devices 104A-104N, the master anchor device determines the location of the user (block 708), which may be an indoor location. More specifically, the master anchor device obtains a mapping of the user's location and the CIR corresponding to each location received at each anchor device 104A-104N, for example, from the CIR to location mapping 144.
[0084] The primary anchor device then compares the CIR with the stored CIRs and corresponding locations to determine the location of the user. More specifically, the primary anchor device may assign a weight to each of the stored CIRs so that the sum of the combined weighted CIRs equals the CIR received at the particular anchor device 104A and from the particular anchor device 104B (e.g., CIR 21 ). For example, the weights may be expressed as [w_1, w_2, ... w_N]. The primary anchor point device may determine the weights so that CIR≈w_1*CIR_1+w_2*CIR_2+ ... +w_N*CIR_N to minimize the mean square error of the difference between the two.
[0085] The primary anchor device may then assign the same weight to the corresponding positions, apply the weight to the coordinates of the positions, and combine the weighted coordinates to determine the coordinates of the user's position as a weighted average of the coordinates. For example, the user's determined position (x, y) may be determined as (w_1*(x, y)t 1 +w_2*(x,y)t 2 +...+w_N*(x,y)t N ).
[0086] The master anchor device may repeat this process for each CIR received at each anchor device 104A-104N (e.g., each CIR in the n×(n–1) CIRs), and may compare the determined locations for each CIR to each other. In some implementations, the master anchor device may combine the determined locations for each CIR in any suitable manner to make a final determination of the user's location. For example, the master anchor device may average the coordinates of each of the determined locations to make a final determination of the location. In other implementations, the master anchor device may cluster the determined locations and assign votes to each cluster based on the number of locations in each cluster. The cluster with the highest total number of votes may then be used to make a final determination. For example, the master anchor device may discard other clusters and may average the coordinates of each of the determined locations in the cluster with the highest total number of votes to make a final determination of the location.
[0087] In response to determining the location of the user, the master anchor device and / or the network server may perform a specific action. For example, the master anchor device and / or the network server 105 may send a control signal to the smart lights in the area where the user is located to activate the smart lights. For example, the user may be located in a specific corner of the living room, and the master anchor device and / or the network server 105 may send a control signal to activate the smart lights above the user. In another example, when the user is within a threshold distance of a TV in the living room, the master anchor device and / or the network server 105 may send a control signal to turn on the TV.
[0088] In another example, the master anchor device and / or the network server 105 may send control signals to adjust the heating or air conditioning settings at the user's location. For example, as the user moves from one room to another, the master anchor device and / or the network server 105 may increase or decrease the temperature of the room the user is in to make the user feel comfortable. In another example, the master anchor device and / or the network server 105 may send control signals to adjust security settings at the user's location. For example, the master anchor device and / or the network server may automatically lock or unlock doors around the user's current location by communicating with a smart lock with an automatic locking and unlocking mechanism.
[0089] Additional considerations
[0090] The following additional considerations apply to the preceding discussion. Throughout this specification, multiple instances may implement components, operations or structures described as single instances. Although the individual operations of one or more methods are illustrated and described as separate operations, one or more operations in the individual operations may be performed simultaneously without requiring the operations to be performed in the order shown. The structure and function presented as separate components in the example configuration may be implemented as a combined structure or component. Similarly, the structure and function presented as a single component may be implemented as a separate component. These and other variations, modifications, additions and improvements all fall within the scope of the subject matter of the present disclosure.
[0091] Additionally, certain embodiments are described herein as including logic or multiple components, modules, or mechanisms (e.g., controllers 132A, 142, 152). Modules may constitute software modules (e.g., code stored on a machine-readable medium) or hardware modules. A hardware module is a tangible unit that is capable of performing certain operations and may be configured or arranged in a particular manner. In an example embodiment, one or more computer systems (e.g., stand-alone client or server computer systems) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as hardware modules that operate to perform certain operations as described herein.
[0092] In various embodiments, hardware modules can be implemented mechanically or electronically. For example, a hardware module may include dedicated circuitry or logic that is permanently configured (e.g., as a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations (e.g., as contained within a general purpose processor or other programmable processor). It should be understood that the decision to mechanically implement a hardware module in a dedicated and permanently configured circuitry or in a temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
[0093] Therefore, the term "hardware" should be understood to include tangible entities, that is, entities that are physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or perform certain operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering an embodiment in which a hardware module is temporarily configured (e.g., programmed), each of the hardware modules does not need to be configured or instantiated at any one time. For example, in the case where the hardware module includes a general-purpose processor configured using software, the general-purpose processor can be configured as corresponding different hardware modules at different times. The software can configure the processor accordingly, for example, to constitute a specific hardware module at one time and to constitute different hardware modules at different times.
[0094] Hardware modules can provide information to other hardware and receive information from other hardware. Therefore, the described hardware modules can be regarded as being communicatively coupled. When multiple such hardware modules exist simultaneously, communication can be achieved by signal transmission (e.g., through appropriate circuits and buses) connecting the hardware modules. In an embodiment in which multiple hardware modules are configured or instantiated at different times, communication between such hardware modules can be achieved, for example, by storing and retrieving information in a memory structure accessible to multiple hardware modules. For example, a hardware module can perform an operation and store the output of the operation in a memory device communicatively coupled thereto. Then, another hardware module can access the memory device at a later time to retrieve and process the stored output. The hardware module can also initiate communication with an input device or an output device, and can operate on a resource (e.g., a collection of information).
[0095] The method 700 may include one or more functional blocks, modules, separate functions or routines in the form of tangible computer executable instructions stored in a computer readable storage medium that may be non-transitory and executed using a processor of a computing device (e.g., a network server, a personal computer, a smart phone, a tablet computer, a smart watch, a mobile computing device, an anchor device, a home assistant device, or other client computing device, as described herein). The method 700 may be included as part of any backend server (e.g., a network server or any other type of server computing device, as described herein), a master anchor device, a user device, or an anchor device of, for example, an example environment, or as part of a module external to such an environment. Although the figures may be described with reference to other figures for ease of explanation, the method 700 may be utilized with other objects and user interfaces. In addition, although the above explanation describes the steps of the method 700 as being performed by a specific device (such as a network server, a user device, a master anchor device, or an anchor device), this is for illustrative purposes only. The blocks of the method 700 may be performed by one or more devices or other parts of the environment.
[0096] The various operations of the example methods described herein may be performed at least in part by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Such processors may constitute processor-implemented modules that operate to perform one or more operations or functions, whether temporarily configured or permanently configured. In some example embodiments, the modules mentioned herein may include processor-implemented modules.
[0097] Similarly, the method or routine described herein can be implemented by a processor at least in part. For example, at least some operations in the operation of the method can be performed by one or more processors or a hardware module implemented by the processor. The execution of some operations in the distribution operation can be performed between one or more processors, and the one or more processors are not only resident in a single machine but deployed across multiple machines. In some example embodiments, one or more processors can be located in a single location (for example, in a home environment, an office environment, or a server farm), and in other embodiments, the processor can be distributed in multiple locations.
[0098] The one or more processors may also operate to support execution of the related operations in a "cloud computing" environment or as SaaS. For example, as indicated above, at least some of the operations may be performed by a set of computers (as an example of a machine including a processor), which may be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs).
[0099] Still further, the figures depict some embodiments of the example environment for illustrative purposes only. Those skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods shown herein may be employed without departing from the principles described herein.
[0100] After reading this disclosure, those skilled in the art will understand additional alternative structures and functional designs of tagless positioning systems through the principles disclosed herein. Therefore, although specific embodiments and applications have been illustrated and described, it should be understood that the disclosed embodiments are not limited to the precise constructions and components disclosed herein. Various modifications, changes and variations can be made to the arrangement, operation and details of the methods and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims, which will be apparent to those skilled in the art.
Claims
1. A method for determining a location of a user, the method comprising: automatically calibrating the positioning system by sending communication signals between at least two anchor devices and a user device to determine and store the user's location and a channel impulse response of the communication signal for each location; receiving, at a first anchor device at a first fixed location within the positioning system, a communication signal transmitted by a second anchor device at a second fixed location within the positioning system, wherein the user is not using the user device; determining, by the first anchor point device, a channel impulse response of the communication signal; as well as The location of the user within the positioning system is determined by comparing the channel impulse response of the communication signal with stored channel impulse responses and corresponding stored positions.
2. The method of claim 1 , wherein automatically calibrating the positioning system comprises: For each communication signal sent from one of the at least two anchor devices: receiving, at the anchor device, a response communication signal from the user device; determining one of the locations based on a round trip time of the transmitted communication signal and the response communication signal; receiving the transmitted communication signal at another anchor device of the at least two anchor devices; determining a channel impulse response of the transmitted communication signal received at the other anchor point device; as well as The determined position and the determined channel impulse response are stored.
3. The method of claim 1 or claim 2, wherein determining the position of the user by comparing the channel impulse response of the communication signal with a stored channel impulse response and a corresponding stored position comprises: assigning a weight to each stored channel impulse response such that a sum of the weighted stored channel impulse responses yields the channel impulse response for the communication signal; applying a weight assigned to each stored channel impulse response to the corresponding position stored for the channel impulse response; as well as The weighted stored locations are combined to determine the location of the user.
4. The method according to any preceding claim, further comprising: identifying a user signature of the user based on characteristics of a channel impulse response of the communication signal transmitted when the user is using a user device during calibration; storing the user signature of the user; as well as It is determined that the channel impulse response corresponds to the user of a plurality of users by comparing the characteristic of the channel impulse response to a stored user signature.
5. A method according to any preceding claim, wherein the communication signal is a coded pulse signal.
6. The method of claim 5, wherein determining the channel impulse response comprises: obtaining a template encoded pulse signal at the first anchor point device; The template coded pulse signal is compared with the received coded pulse signal by the first anchor point device to reconstruct the channel impulse response.
7. A method according to any preceding claim, wherein the communication signal is a first communication signal, the channel impulse response is a first channel impulse response, and the method further comprises: receiving, at the second anchor device, a second communication signal sent by the first anchor device; determining a second channel impulse response of the second communication signal, Wherein comparing the channel impulse response of the communication signal with stored channel impulse responses comprises comparing the first channel impulse response and the second channel impulse response with the stored channel impulse responses and corresponding stored positions.
8. The method of claim 7, wherein receiving the first communication signal and the second communication signal at the first anchor device and the second anchor device comprises: receiving, at the n anchor devices, n×(n–1) communication signals from the n anchor devices; as well as determining n×(n–1) channel impulse responses of the n×(n–1) communication signals, Wherein comparing the channel impulse response of the communication signal with the stored channel impulse responses comprises comparing the n×(n−1) channel impulse responses with the stored channel impulse responses and the corresponding stored positions.
9. A method according to any preceding claim, wherein the positioning system is an indoor positioning system and the location of the user is an indoor location.
10. A positioning system for determining a location of a user, the system comprising: a first anchor point device at a first fixed position within the positioning system; a second anchor point device at a second fixed position within the positioning system; The first anchor point device and the second anchor point device are configured as follows: In a first example, the positioning system is automatically calibrated by sending communication signals between the first anchor device and the second anchor device and a user device to determine a location of a user; In a second example, a communication signal is sent by the first anchor device, and the communication signal is received at the second anchor device, wherein the user is not using the user device; A computing device, the computing device comprising: one or more processors; and a memory comprising computer-executable instructions that, when executed by the one or more processors, cause the computing device to: storing the location and a corresponding channel impulse response of the communication signal; obtaining a channel impulse response of the communication signal received at the second anchor point device; and The location of the user within the positioning system is determined by comparing the channel impulse response of the communication signal with stored channel impulse responses and corresponding stored positions.
11. The positioning system according to claim 10, wherein in order to automatically calibrate the positioning system, the first anchor device and the second anchor device are configured as: transmitting each communication signal, the communication signal being received at the user device and another anchor device; receiving a response communication signal from the user device; determining one of the locations based on a round trip time of the transmitted communication signal and the response communication signal; receiving the transmitted communication signal from the another anchor device; as well as The determined position and an indication of the channel impulse response for the received communication signal are sent to the computing device for storing the determined position and the channel impulse response for the received communication signal.
12. A positioning system according to claim 10 or claim 11, wherein in order to determine the position of the user, the instructions cause the computing device to: assigning a weight to each stored channel impulse response such that a sum of the weighted stored channel impulse responses produces the channel impulse response of the received communication signal; applying a weight assigned to each stored channel impulse response to the corresponding position stored for the channel impulse response; as well as The weighted stored locations are combined to determine the location of the user.
13. The positioning system according to any one of claims 10 to 12, wherein the instructions further cause the computing device to: identifying a user signature of the user based on characteristics of a channel impulse response of the communication signal transmitted when the user is using a user device during calibration; storing the user signature of the user; as well as It is determined that the channel impulse response corresponds to the user of a plurality of users by comparing characteristics of the channel impulse response to stored user signatures.
14. A positioning system according to any one of claims 10 to 13, wherein the received communication signal is a coded pulse signal.
15. The positioning system according to any one of claims 14, wherein the second anchor device is further configured to: obtaining a template encoded pulse signal; and The template coded pulse signal is compared to the received coded pulse signal to reconstruct the channel impulse response.
16. The positioning system according to any one of claims 10 to 15, wherein the received communication signal is a first communication signal, the channel impulse response is a first channel impulse response, and the instructions further cause the computing device to: obtaining a second channel impulse response of a second communication signal received at the first anchor point device and sent by the second anchor point device; and The first channel impulse response and the second channel impulse response are compared to stored channel impulse responses and corresponding stored positions.
17. The positioning system according to claim 16, further comprising: n anchor devices at n fixed locations within the positioning system, the n anchor devices being configured to receive n×(n−1) communication signals from the n anchor devices, wherein the instructions cause the computing device to: Obtaining n×(n–1) channel impulse responses of the n×(n–1) communication signals; as well as The n×(n−1) channel impulse responses are compared with stored channel impulse responses and corresponding stored positions.
18. The positioning system according to any one of claims 10 to 16, wherein the first anchor device is a main anchor device accommodating the computing device.
19. The positioning system according to any one of claims 10 to 16, wherein the computing device is a server device.
20. A computing device for determining a location of a user, the computing device comprising: one or more processors; and a memory comprising computer-executable instructions that, when executed by the one or more processors, cause the computing device to: automatically calibrating a positioning system by obtaining an indication of a location of a user and a corresponding channel impulse response of a communication signal received at an anchor device; storing the location and a corresponding channel impulse response of the communication signal; When the user is not using the user device, receiving a channel impulse response of a communication signal sent by the first anchor device to the second anchor device; as well as The location of the user within the positioning system is determined by comparing the channel impulse response of the communication signal with stored channel impulse responses and corresponding stored positions.