Method for waking up from energy-efficient sleep
By implementing RF tags that passively associate with detection points and only wake up to receive or transmit data, the indoor positioning system enhances energy efficiency and accuracy compared to conventional systems.
Patent Information
- Application Number
- JP2022546459
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-10-07
- Filing Date
- 2021-01-28
- Publication Date
- 2025-06-13
- Estimated Expiration
- 2041-01-28
AI Technical Summary
Conventional indoor positioning systems using RFID technology face limitations in energy efficiency and accuracy due to the need for RF tags to remain active and ready to receive wake-up signals at all times.
The system employs RF tags that can detect movement and passively associate with detection points (DPs), waking up only at precise moments to receive or transmit data, and then returning to a dormant state to conserve energy.
This approach significantly reduces energy consumption while maintaining high accuracy by ensuring RF tags are active only when necessary and sleeping at other times.
Smart Images

Figure 0007692426000001 
Figure 0007692426000002 
Figure 0007692426000003
Abstract
Description
Technical Field
[0001] This application claims the benefit of U.S. Patent Application No. 16 / 778,577, filed Jan. 31, 2020, and U.S. Patent Application No. 17 / 065,197, filed Oct. 7, 2020, the specifications of which are hereby incorporated by reference in their entirety.
[0002] The present invention generally relates to the field of radio frequency indoor positioning.
Background Art
[0003] Regarding an indoor positioning system including a plurality of radio frequency (RF) tags and a plurality of detection points (DPs), a balanced trade-off between energy efficiency and accuracy is a major design goal. Past indoor positioning systems have attempted to maximize accuracy by keeping those tags active to frequently update the RF tags and DPs about each other's locations. This limits energy efficiency due to frequent transmissions between the components of the system. As has been found by investigation, an RF tag can switch between an active state and an inactive state, communicate with the DP only while active, save power, and yet update the locations of each RF tag and DP often enough to maintain a high level of accuracy.
Summary of the Invention
Problems to be Solved by the Invention
[0004] Conventional indoor positioning systems designed using RFID technology employ multiple states in their RF tags by keeping them in a dormant state while remaining open to signal reception, which is maintained until the DP sends a wake-up signal to all associated tags for location updates. At this point, the tags are switched to an active state to create a network. These systems improve energy efficiency and maintain a high level of accuracy compared to conventional systems, but they are limited by the fact that the tags must always be ready to receive the wake-up signal and that all RF tags must remain active after receiving the wake-up signal. Therefore, an indoor positioning system that keeps the RF tags in an even less active state, switches them to the receiving state only at the precise moment when the DP sends the wake-up signal, immediately returns them to the non-active state afterwards, and maintains accuracy throughout would further improve energy efficiency.
Means for Solving the Problem
[0005] The present invention aims at radio frequency (RF) tags that wake up from energy-efficient dormancy for receiving and transmitting transmissions to a detection point (DP) for energy efficiency purposes. The RF tags are capable of detecting their own movement and passively associating with the DP. Associating with the DP makes it possible to generate a wake-up timing in the tag based on the IDs of both the tag and the DP. The wake-up timing can specify when the tag will wake up to receive a transmission from the DP or to send a message to the DP and can be tracked by an inaccurate clock.
[0006] From this point, the present invention has separate methods depending on whether the tag will receive or transmit a transmission. In the case where the tag receives transmissions at regular intervals of about 30 seconds, tracked by an accurate clock, the DP can transmit a beacon containing one address for each possible address, whereby the DP can send its data to any tag that can be passively associated with that DP. At wake-up signal time, the tag wakes up, receives the beacon from the DP it is associated with, reads the address, and can confirm that it is receiving from the correct DP. When receiving the beacon, the tag can perform phase locking on its inaccurate clock based on the time between when the beacon was received and when it was expected to be received, correcting the inaccurate clock to synchronize with the accurate clock of the DP. The tag can then return to the dormant state until the next wake-up signal time wakes it up again. The tag saves power by remaining active only when necessary and sleeping at all other times.
[0007] In the case where the tag transmits a transmission, the tag can wake up at the wake-up signal time using a rough clock. The tag can transmit a beacon containing the address to the associated DP, which can then receive the beacon. The DP can check the address of the beacon and delay its timing for subsequent transmissions to the tag. The delay can be calculated by an accurate clock and is equal to the difference between the time when the beacon was received and the time when it was expected to be received. The tag can then return to the dormant state until the next wake-up signal time wakes it up again. The tag saves power by remaining active only when necessary and sleeping at all other times.
[0008] After both of these cases, the tag is able to update its location with respect to the DP it is associated with by transmitting multiple transmissions. This can be done at intervals of approximately 15 minutes, i.e., only one of the multiple DPs can know the exact location of the associated tag every 15 minutes.
[0009] In addition, the present invention is directed to two-way authentication between an RF tag and a DP for security. The DP is able to generate two copies of a prime number to serve as a first challenge and a second challenge. The first challenge can be transmitted to the RF tag and includes a root of trust with an encryption key. The tag is able to encrypt the first challenge using its own encryption key and return the encrypted challenge to the DP. Upon receiving the encrypted challenge, the DP transmits the encrypted challenge to a cloud application, which searches its database containing all encryption keys mapped to all tags. If the encryption key corresponding to the tag is found in the database, the cloud application uses the encryption key with the second challenge and compares the tag's encrypted first challenge with the DP's encrypted second challenge, and if those challenges are equal, the authentication procedure is successful.
[0010] One of the many inventive technical features of the present invention is a scattershot of beacons transmitted by DP, with the awakening of RF tags to receive the correct beacon at the correct time. Without wishing to limit the present invention to any theory or mechanism, the technical feature of the present invention is considered to advantageously provide a reduction in overall energy consumption due to the fact that RF tags are synchronized to wake up and use power only when DP is transmitting to that RF tag and are synchronized to sleep between intervals. None of the currently known references or studies have the unique inventive technical features of the present invention.
[0011] Furthermore, a scattershot of beacons transmitted by DP, with the awakening of RF tags to receive the correct beacon at the correct time, is counterintuitive. The reason this is counterintuitive is that conventional systems (such as Bluetooth low energy), which are currently thought to provide the lowest possible power approach, cause the tag to "transmit before listening," while this system causes the tag to "listen before transmitting." Therefore, what the prior art teaches is far removed from the present invention, and using a "listen before transmitting" system is counterintuitive. Despite the fact that the teachings of the prior art are far removed from the present invention, the latter is more energy efficient while maintaining a comparable level of accuracy.
[0012] Another inventive technical feature of the present invention is to define the receiving array as a series of bits in a state where the bit associated with the RF tag is set to 1 and all other bits are set to 0. While not wishing to limit the present invention to any theory or mechanism, the technical features of the present invention are considered to advantageously provide a reduction in energy consumption by the RF tag. This is because the present invention only needs to refer to 1 bit instead of converting binary numbers into different forms and referring to the results. None of the currently known prior references or studies have the unique inventive technical features of the present invention.
[0013] Furthermore, defining the receiving array as a series of bits in a state where the bit associated with the RF tag is set to 1 and all other bits are set to 0 is counterintuitive. The reason this is counterintuitive is that existing low-power systems such as Bluetooth low energy transfer complete ID information every time an equivalent tag wake-up procedure is executed. Since the unique ID bit field can be 128 bits or more (for example, the Bluetooth Low Energy UUID is 128 bits), this approach would be expected by those with ordinary skills in the art to consume even more power and significantly reduce the channel capacity when there are many tags. Therefore, the receiving array format of the present invention is counterintuitive. Surprisingly, the energy used to transmit the large receiving array is offset by the energy savings achieved by simply having the individual bits in the array refer to the tag instead of converting the numerical values into different forms, resulting in an overall reduction in energy consumption.
[0014] Another inventive technical feature of the present invention is that the combination of RF tags adjusts its own clock to wake up at an appropriate time to receive the transmission from the DP. While not wishing to limit the present invention to any theory or mechanism, the technical features of the present invention are considered to advantageously provide higher accuracy in an energy-efficient sleep system. None of the currently known prior references or studies have the unique inventive technical features of the present invention.
[0015] Furthermore, it is counterintuitive for the RF tag to adjust its own clock to wake up at an appropriate time to receive the transmission from the DP. The reason this is counterintuitive is that in systems using unlicensed technologies such as WiFi or Bluetooth, the long-term clock accuracy and performance (such as drift and phase noise) of both the tag and the equivalent access point are not considered at the system level. This is because those skilled in the art would expect that frequent clock adjustments to fix these problems could consume excessive power and reduce overall accuracy. Regarding existing unlicensed systems and their corresponding standards, such parameters are only considered during active interaction and not over a longer period. This is because unlicensed standard systems inherently rely on network elements that are adjusted without synchronization. Therefore, frequent clock adjustments in the tag are counterintuitive. This is because the prior art teaches away from this technology. Despite the prior art teaching away from the present invention, the latter is capable of utilizing frequent clock adjustments for better long-term accuracy.
[0016] Any feature or combination of features described herein is included within the scope of the present invention, provided that the features included in any such combination are not mutually inconsistent as will be apparent from the context, the present specification, and the knowledge of a person of ordinary skill in the art. Further advantages and aspects of the present invention will be apparent from the following detailed description and the claims.
[0017] The features and advantages of the present invention will become apparent from consideration of the following detailed description presented in connection with the accompanying drawings.
Brief Description of the Drawings
[0018]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Mode for Carrying Out the Invention
[0019] The following is a list of elements corresponding to specific elements mentioned in this specification.
[0020] 1001 Tag / Radio Frequency (RF) Tag
[0021] 1002 Detection Point (DP)
[0022] 1003 First Challenge Integer in Mutual Authentication
[0023] 1004 Resistor / Capacitor Circuit Timing Element
[0024] 1005 Temperature - Compensated Crystal Oscillator (TCXO) Timing Element
[0025] 1006 Second Challenge Integer in Mutual Authentication
[0026] 1101 Processor of Tag / RF Tag
[0027] 1102 Tag / RF Tag RAM Device
[0028] 1103 Tag / RF Tag Antenna
[0029] 1104 Tag / RF Tag Memory Device
[0030] 1105 DP Processor
[0031] 1106 DP RAM Device
[0032] 1107 DP Antenna
[0033] 1108 DP Memory
[0034] 1201 Transmission
[0035] 1301 Beacon (RF Notification Packet)
[0036] 1302 Payload
[0037] 1303 RecipientArray
[0038] 1304 Command
[0039] Referring to FIG. 1, the present invention features a method (100) for waking up from an energy-efficient sleep to receive an indoor positioning beacon. The energy-efficient state of sleep can be defined as a state with extremely low battery usage. The state of extremely low battery usage of the tag can consume approximately 1 μA / s per tag, as compared to approximately 0.5 mA / s per tag in the awake state. In some embodiments, the method can include a step (101) of passively associating the tag (1001) with one of a plurality of detection points (DP), i.e., DP (1002), when the tag (1001) moves to a new location. In some embodiments, the new location where the tag (1001) has moved is within the detection radius of DP (1002) or a number of DPs among the plurality of DPs. The procedure for association can include a step of specifying the wake-up signal time. The method can further include a step (102) in which the DP (1002) transmits a beacon including one address for each possible address in a first interval. The method can further include a step in which the tag (1001) executes a wake-up cycle (103) in a second interval at the wake-up signal time using a clock (1004). In some embodiments, the wake-up signal time is equal to at least one of a hash or concatenation of the tag ID and the DP ID, and the clock can be a resistor / capacitor circuit timing element (1004). In some embodiments, the wake-up signal time is calculated in a cloud server, DP (1002), tag (1001), or some other computing device. The term "wake up" in the present invention refers to the act of waking up from a low-power state, performing an action, and then returning to the low-power state.The wake cycle can include the step (104) of a wake tag (1001) receiving a transmitted beacon, the step (105) of verifying an address, the step (106) of identifying a time difference between the time when the beacon was received and the time when the beacon was expected, the step (107) of phase-locking a clock based on the time difference, and the step (108) of returning to sleep. In some embodiments, one or more of the transmitted beacons are received (104) by the wake tag (1001). In some embodiments, the step (105) of verifying an address can include the step of comparing the address to a tag address or other data accessible by the tag (1001). The overall method can further include the step (109) of the tag (1001) transmitting a plurality of transmissions including the updated location of the tag (1001) at a third interval.
[0040] In some embodiments, the method can further include the step of each DP (1002) of a plurality of DPs receiving an updated location, and the step of filtering the noise associated with each transmission using a Kalman filter. The procedure for reception through the use of a Kalman filter can include the step of each DP (1002) of a plurality of DPs identifying the angle of arrival of a Kalman-filtered transmission, and the step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0041] Referring to FIG. 2, the present invention features an energy - efficient method (200) of waking up from sleep for transmitting indoor positioning beacons. In some embodiments, the method can include a step (201) of passively associating a tag (1001) with one of a plurality of detection points (DP) when the tag (1001) moves to a new location. The procedure for association can include a step of the tag (1001) identifying a wake - up signal time. In some embodiments, the wake - up signal time is equal to at least one of the concatenation or hash of the tag ID and the DP ID, the location number, the location ID of the DP (1002) modified by the location ID of the tag (1001), or a combination thereof. In some embodiments, the wake - up signal time is calculated in a cloud server, the DP (1002), the tag (1001), or some other computing device. The method can further include a step of the tag (1001) executing a wake - up cycle (202) at a second interval at the wake - up signal time using a first clock (1004). The term "wake up" in the present invention refers to the act of waking up from a low - power state, performing an action, and then returning to the low - power state. The first clock (1004) can be a resistor / capacitor circuit timing element (1004). The wake - up cycle can include a step (203) of the awakened tag (1001) transmitting a beacon including an address at a first interval, a step (204) of the DP (1002) receiving the beacon, a step (205) of the DP (1002) verifying the address, and a step of the DP (1002) delaying subsequent transmissions using a second clock (1005). In some embodiments, the step (205) of verifying the address can include a step of comparing the address to a tag address or other data accessible by the DP (1002). The second clock (1005) can be a temperature - compensated crystal oscillator (TCXO) timing element (1005). In some embodiments, the delay can be equal to the difference between the time when the beacon is received and the time when the beacon is expected.The awakened tag (1001) is capable of returning to sleep (209). This method can further include the step (210) of transmitting a plurality of transmissions including the updated location of the tag (1001) from the tag (1001) at a third interval.
[0042] In some embodiments, this method can further include the step of each of the plurality of DPs (1002) receiving the updated location, and the step of filtering the noise associated with each transmission using a Kalman filter. The procedure for reception through the use of the Kalman filter can include the step of each of the plurality of DPs (1002) identifying the angle of arrival of the Kalman-filtered transmission, and the step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0043] Referring to FIG. 3, the present invention features a method (300) for two-way authentication between a tag (1001) and a DP (1002). In some embodiments, the method can include a step (301) in which the DP (1002) generates a first challenge (1003) and a second challenge (1005) that are equal to each other. In some embodiments, the first challenge and the second challenge are prime numbers. The method can further include a step (302) in which the DP (1002) transmits the first challenge (1003) to the tag (1001). The tag (1001) can include a tag ID and a root of trust (1001), and the root of trust (1001) further includes a first encryption key. The method further includes a step (303) in which the tag (1001) receives the transmitted first challenge (1003), a step (304) in which the first challenge (1003) is encrypted using the first encryption key, and a step (305) in which the encrypted first challenge (1004) is transmitted to the DP (1002). The DP (1002) can include a database (1002), and the database (1002) can further include a plurality of second encryption keys, each of which is associated with a respective tag ID. The method further includes a step (306) in which the DP (1002) receives the transmitted encrypted first challenge (1004), a step (307) in which a second encryption key associated with the respective tag ID of the tag (1001) is retrieved from the database (1002), a step (308) in which the second challenge (1005) is encrypted using the second encryption key, and a step (309) in which the tag (1001) is authenticated by comparing the received encrypted first challenge (1004) with the encrypted second challenge (1006). In some embodiments, the method can use less than 250 nanowatts on average.
[0044] Referring to FIG. 4, the present invention features a method (400) of waking up from an energy-efficient sleep to receive an indoor positioning beacon by starting a bare-boot. In some embodiments, the method can include a step (401) in which the tag (1001) passively associates with one of a plurality of detection points (DPs) when the tag (1001) moves to a new location. In some embodiments, the new location to which the tag (1001) has moved is within the detection radius of the DP (1002) among the plurality of DPs or a large number of DPs. The procedure for association can include a step in which the tag (1001) identifies a wake-up signal time. In some embodiments, the wake-up signal time is equal to at least one of the concatenation or hash of the tag ID and the DP ID, the location number, the location ID of the DP (1002) modified by the location ID of the tag (1001), or a combination thereof. In some embodiments, the wake-up signal time is calculated in a cloud server, the DP (1002), the tag (1001), or some other computing device. The method can further include a step (402) in which the DP (1002) transmits a beacon including one address for each possible address at a first interval, and a step in which the tag (1001) executes a wake-up cycle (403) at a second interval using a clock at the wake-up signal time. The first clock (1004) can be a resistor / capacitor circuit timing element (1004). The term "wake up" in the present invention refers to the act of waking up from a low-power state, performing an action, and then returning to the low-power state. The wake-up cycle can include a step (404) in which the awakened tag (1001) starts a bare-boot, a step (405) in which the transmitted beacon is received, a step (406) in which the address is verified, a step (407) in which the time difference between the time when the beacon is received and the time when the beacon is expected is identified, a step (408) in which the clock is phase-locked based on the time difference, and a step (409) in which the tag returns to sleep.In some embodiments, one or more of the transmitted beacons are received (104) by the awakened tag (1001). In some embodiments, the step of verifying the address (105) can include comparing the address to a tag address or other data accessible by the tag (1001). In some embodiments, the bare boot can include booting directly from a dormant state to an awakened state. The bare boot can boot directly from a dormant state to an awakened state by refraining from system checks, reading memory locations to check for corruption, checking input / output (IO) of peripherals, etc., and as a result, is a more energy-efficient way to boot. In an exemplary embodiment, the average energy consumption of bare-booting the RF tag (1001) can be lower than the average energy consumption of normally (at 15 mW / ms) booting the RF tag (1001), for example, 10 mW / ms. This method can further include the step (410) of the tag (1001) transmitting a plurality of transmissions including the updated location of the tag (1001) at a third interval.
[0045] In some embodiments, this method can further include each DP (1002) of the plurality of DPs receiving an updated location and filtering the noise associated with each transmission using a Kalman filter. The procedure for reception through the use of a Kalman filter can include each DP (1002) of the plurality of DPs identifying the angle of arrival of the Kalman-filtered transmission and applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival. In some embodiments, the second clock (1005) associated with the DP (1002) is a TCXO timing element (1005).
[0046] Referring to FIG. 5, the present invention features a method (500) for waking up from an energy-efficient sleep to transmit an indoor positioning beacon by starting a bare-boot. In some embodiments, the method can include a step (501) in which a tag (1001) passively associates with one of a plurality of detection points (DP), a DP (1002), when the tag (1001) moves to a new location. In some embodiments, the new location to which the tag (1001) has moved is within the detection radius of the DP (1002) among the plurality of DPs or a large number of DPs. The procedure for association can include a step of the tag (1002) specifying a wake-up signal time. In some embodiments, the wake-up signal time is equal to at least one of a hash or concatenation of the tag ID and the DP ID. In some embodiments, the wake-up signal time is calculated in a cloud server, the DP (1002), the tag (1001), or some other computing device. The method can further include a step in which the tag (1001) executes a wake-up cycle (502) at a second interval at the wake-up signal time using a first clock (1004). The first clock (1004) can be a resistor / capacitor circuit timing element (1004). The term "wake up" in the present invention refers to the act of waking up from a low-power state, performing an action, and then returning to the low-power state. The wake-up cycle can further include a step (503) in which the tag (1001) starts a bare-boot and a step (504) in which the tag (1001) transmits a beacon that can include an address at a first interval. In some embodiments, the bare-boot can include directly booting from a sleep state to a wake state. The bare-boot can directly boot from a sleep state to a wake state by refraining from, for example, system checks, reading memory locations to check for damage, checking the IO of peripheral devices, and as a result, it becomes a more energy-efficient booting method.In an exemplary embodiment, the average energy consumption for bare-booting the RF tag (1001) can be lower than the average energy consumption for normal (at 15 mW / ms) booting of the RF tag (1001), for example, lower than 10 mW / ms. The wake cycle can further include the step (505) where the DP (1002) receives a beacon, the step (506) of verifying an address, and the step of delaying subsequent transmissions using a second clock (1005). In some embodiments, the step (205) of verifying an address can include the step of comparing the address to a tag address or other data accessible by the DP (1002). The second clock (1005) can be a TCXO timing element (1005). The delay can be equal to the difference between the time when the beacon is received and the time when the beacon is expected. The awakened tag (1001) can return to sleep. This method can further include the step (511) where the tag (1001) transmits multiple transmissions including the updated location of the tag (1001) at a third interval.
[0047] In some embodiments, this method can further include the step where each of the plurality of DPs (1002) receives an updated location, and the step of filtering the noise associated with each transmission using a Kalman filter. The procedure for reception through the use of a Kalman filter can include the step where each of the plurality of DPs (1002) identifies the angle of arrival of the Kalman-filtered transmission, and the step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0048] Referring to FIG. 16, the present invention features a system that wakes up from energy-efficient sleep to receive an indoor positioning beacon. This beacon is a radio frequency (RF) notification packet that can include an array of address bits. This system can include an RF tag (1001), and the RF tag (1001) can include a first processor (1101) capable of executing computer-executable instructions, a first random access memory (RAM) component (1102), a first antenna (1103), and a first memory component (1104). The memory can include instructions for the step (101) of associating with one of a plurality of detection points (DPs) when the tag (1001) moves to a new location. In some embodiments, the new location where the tag (1001) moves is within the detection radius of the DP (1002) among the plurality of DPs or a number of DPs. The procedure for association can include the step of identifying a wake-up signal time based on the combination of the tag ID and the DP ID of the associated DP (1002). In some embodiments, the wake-up signal time can be equal to at least one of the hash or concatenation of the tag ID and the DP ID. The memory can further include instructions for executing a wake-up cycle (103) at a second interval with respect to the wake-up signal time using a clock (1004). The term "wake up" in the present invention refers to the act of waking up from a low-power state, performing an action, and then returning to the low-power state. The wake-up cycle can include the step of receiving a beacon (104), the step of verifying the address (105), the step of identifying the time difference between the time when the beacon is received and the time when the beacon is expected (106), the step of phase-locking the clock (1004) based on the time difference (107), and the step of returning to sleep (108). In some embodiments, one or more of the transmitted beacons are received (104) by the awakened tag (1001).In some embodiments, the step of verifying the address (105) can include comparing the address to a tag address or other data accessible by the tag (1001). The memory can also include instructions for updating the location of the tag (1001) in a third interval. The update procedure can include a step (109) of transmitting a plurality of transmissions including the updated location of the tag (1001) in a third interval.
[0049] In some embodiments, the system can further include a DP (1002). The DP can include a second processor (1105) capable of executing computer-executable instructions, a second RAM component (1106), a second antenna (1107), and a second memory component (1108). The memory can further include instructions for the step (102) of transmitting a beacon in a first interval for each possible address, where the beacon includes an address. In some embodiments, the beacon can include a package including additional data along with the address.
[0050] In some embodiments, the memory (1108) of the DP (1002) can further include instructions for the step of receiving an updated location and instructions for the step of filtering the noise associated with each transmission using a Kalman filter. The procedure for receiving through the use of the Kalman filter can include a step of identifying the angle of arrival of the Kalman-filtered transmission and a step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0051] In some embodiments, the first clock (1004) associated with the RF tag (1001) is a resistor / capacitor circuit timing element (1004), and the second clock (1005) associated with the DP (1002) is a TCXO timing element (1005).
[0052] Referring again to FIG. 16, the present invention features a system for waking up from an energy-efficient sleep to transmit an indoor positioning beacon. In some embodiments, the system can include an RF tag (1001). The tag can include a first processor (1101) capable of executing computer-executable instructions, a first RAM component (1102), a first antenna (1103), and a first memory component (1104). The memory can include instructions for the step (201) of passively associating with one of a plurality of DPs when the tag (1001) moves to a new location. The association procedure can include the step of identifying a wake-up signal time. In some embodiments, the wake-up signal time can be equal to at least one of a hash or concatenation of the tag ID and the DP ID. The memory can further include instructions for executing a wake-up cycle (202) at a second interval with respect to the wake-up signal time using a first clock (1004). The term "wake up" in the present invention refers to the act of waking up from a low-power state, performing an action, and then returning to the low-power state. The wake-up cycle can include the step (203) of transmitting a beacon including an address at a first interval and the step (209) of returning to sleep. The memory can further include instructions for the step (210) of transmitting a plurality of transmissions including the updated location of the tag (1001) at a third interval.
[0053] In some embodiments, the system may further include a DP (1002). The DP may include a second processor (1105) capable of executing computer-executable instructions, a second RAM component (1106), a second antenna (1107), and a second memory component (1108). The memory may include instructions for the step of receiving a beacon (204), instructions for the step of verifying an address (205), and instructions for the step of delaying subsequent transmission to the RF tag (1001) using a second clock (1005) (206). In some embodiments, the step of verifying an address (205) may include comparing the address to a tag address or other data accessible by the DP (1002). In some embodiments, the delay may be equal to the difference between the time when the beacon is received and the time when the beacon is expected.
[0054] In some embodiments, the memory (1108) of the DP (1002) may further include instructions for the step of receiving an updated location and instructions for the step of filtering noise associated with each transmission using a Kalman filter. The procedure for reception through the use of a Kalman filter may include the step of identifying the angle of arrival of the Kalman-filtered transmission and the step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0055] In some embodiments, the first clock (1004) associated with the RF tag (1001) is a resistor / capacitor circuit timing element (1004), and the second clock (1005) associated with the DP (1002) is a TCXO timing element (1005).
[0056] Referring again to FIG. 16, the present invention features a system that wakes up from an energy-efficient sleep to receive indoor positioning beacons by initiating a bare-boot. The beacon can be an RF advertisement packet that includes an array of address bits. In some embodiments, the system includes an RF tag (1001). The RF tag can include a first processor (1101) capable of executing computer-executable instructions, a first RAM component (1102), a first antenna (1103), and a first memory component (1104). The memory can include instructions for performing the step (401) of associating one of a plurality of DPs with the tag (1001) when the tag moves to a new location. In some embodiments, the new location to which the tag (1001) has moved is within the detection radius of a DP (1002) of the plurality of DPs or a number of DPs. The procedure for association can further include the step of identifying a wake-up signal time based on a combination of the tag ID and the DP ID of the associated DP (1002). In some embodiments, the wake-up signal time can be equal to at least one of a hash or concatenation of the tag ID and the DP ID. The memory can further include instructions for executing a wake-up cycle (403) at a second interval relative to the wake-up signal time using a first clock (1004). The term "wake up" in the present invention refers to the act of waking up from a low-power state, performing an action, and then returning to the low-power state. The wake-up cycle can include the steps of initiating a bare-boot (404), receiving a beacon (405), verifying an address (406), identifying a time difference between the time when the beacon is received and the time when the beacon is expected (407), phase-locking a clock (1004) based on the time difference (408), and returning to sleep (409). In some embodiments, one or more of the transmitted beacons are received by the awakened tag (1001) (104).In some embodiments, the step of verifying the address (105) can include the step of comparing the address to a tag address or other data accessible by a tag (1001). The memory can further include instructions for updating the location of the tag (1001) in a third interval. The update procedure can include the step (410) of transmitting a plurality of transmissions including the updated location of the tag (1001) in a third interval.
[0057] In some embodiments, the system can further include a DP (1002). The DP can include a second processor (1105) capable of executing computer-executable instructions, a second RAM (1106), a second antenna (1107), and a second memory component (1108). The memory can include instructions for transmitting a beacon in a first interval (403) for each possible address, and the beacon includes an address. In some embodiments, the beacon can include a package including additional data along with the address.
[0058] In some embodiments, the memory (1108) of the DP (1002) can further include instructions for receiving an updated location and instructions for filtering the noise associated with each transmission using a Kalman filter. The procedure for receiving through the use of the Kalman filter can include the step of identifying the angle of arrival of the Kalman-filtered transmission and the step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0059] In some embodiments, the first clock (1004) associated with the RF tag (1001) is a resistor / capacitor circuit timing element (1004), and the second clock (1005) associated with the DP (1002) is a TCXO timing element (1005).
[0060] Referring again to FIG. 16, the present invention features a system for waking up from an energy-efficient sleep to transmit an indoor positioning beacon by starting a bare-boot. In some embodiments, this system includes an RF tag (1001). The RF tag can include a first processor (1101) capable of executing computer-executable instructions, a first RAM component (1102), a first antenna (1103), and a first memory component (1104). The memory can include instructions for the step (501) of passively associating with one of a plurality of DPs when the tag (1001) moves to a new location. The procedure for association can include the step of specifying a wake-up signal time. In some embodiments, the wake-up signal time can be equal to at least one of a hash or concatenation of the tag ID and the DP ID. The memory can further include instructions for executing a wake-up cycle (502) at a second interval with respect to the wake-up signal time using a first clock (1004). The wake-up cycle can further include the step of starting a bare-boot (503), the step of transmitting a beacon that can include an address at a first interval (503), and the step of returning to sleep (510). The memory can further include instructions for the step (511) of transmitting a plurality of transmissions including the updated location of the tag (1001) at a third interval.
[0061] In some embodiments, the system may further include a DP (1002). The DP may include a second processor (1105) capable of executing computer-executable instructions, a second RAM component (1106), a second antenna (1107), and a second memory component (1108). The memory may include instructions for the step of receiving a beacon (504), instructions for the step of verifying an address (505), and instructions for the step of delaying subsequent transmission to the RF tag (1001) using a second clock (1005) (506). In some embodiments, the step of verifying an address (205) may include comparing the address to a tag address or other data accessible by the DP (1002). The delay may be equal to the difference between the time when the beacon is received and the time when the beacon is expected.
[0062] In some embodiments, the memory (1108) of the DP (1002) may further include instructions for the step of receiving an updated location and instructions for the step of filtering noise associated with each transmission using a Kalman filter. The procedure for reception through the use of a Kalman filter may include the step of identifying the angle of arrival of the Kalman-filtered transmission and the step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0063] In some embodiments, the first clock (1004) associated with the RF tag (1001) is a resistor / capacitor circuit timing element (1004), and the second clock (1005) associated with the DP (1002) is a TCXO timing element (1005).
[0064] Referring again to FIG. 16, the present invention features a system that wakes up from an energy-efficient sleep to receive indoor positioning beacons by starting a WakeUp subroutine. This system can include a tag (1001). This tag can include a first processor (1101) capable of executing computer-executable instructions, a first RAM component (1102), a first antenna (1103), and a first memory component (1104). The memory can include instructions for the step (601) of passively associating with one of a plurality of DPs, a DP (1002), when the tag (1001) moves to a new location. In some embodiments, the new location to which the tag (1001) has moved is within the detection radius of the DP (1002) or a number of DPs among the plurality of DPs. The procedure for association can include the step of specifying a wake-up signal time to transmit a beacon addressed to the DP (1002). In some embodiments, the wake-up signal time can be equal to at least one of a hash or concatenation of the tag ID and the DP ID. The memory further includes instructions for the step of executing the WakeUp subroutine every 30 seconds. The WakeUp subroutine can include the step of executing a wake-up cycle (603) at the wake-up signal time using a first clock (1004), the step of receiving at least one of four beacons (604), and the step of verifying that each received beacon of the at least four beacons is addressed to the tag (1001). The procedure for verification can include the step of finding a bit in an array equal to 1 (605) and the step of verifying whether the array index of the found bit is equal to the wake-up signal time (606).The WakeUp subroutine can further include a step (607) of phase-locking a first clock (1004) based on the difference between the time when the beacon is received and the time when the beacon is expected, a step (608) of sleeping, and a step (609) of broadcasting 20 transmissions (1201) to a plurality of DPs every 15 minutes at a rate of one transmission every 100 milliseconds. In some embodiments, the step (608) of sleeping can include a step of returning from the awake state to the sleep state. Each of the 20 transmissions (1201) can include the updated location of the tag (1001).
[0065] In some embodiments, this system can further include a DP (1002). The DP can include a second processor (1105) capable of executing computer-executable instructions, a second RAM component (1106), a second antenna (1107), and a second memory (1108). The memory can include instructions for the step (602) of transmitting the beacon 4 times per array of array indices every 100 milliseconds. The beacon can include an array of bits, and the bits located at the array index equal to the wake-up signal time are set to 1, and all other bits are set to 0.
[0066] In some embodiments, each DP (1002) of the plurality of DPs can perform a step of receiving the updated location and a step of filtering the noise associated with each transmission using a Kalman filter. The procedure for receiving through the use of the Kalman filter can include a step of identifying the angle of arrival of the Kalman-filtered transmission by each DP (1002) of the plurality of DPs and a step of applying multiple signal classification (MUSIC) by each DP (1002) of the plurality of DPs to improve the accuracy of the identified angle of arrival.
[0067] In some embodiments, the first clock (1004) associated with the tag (1001) is a resistor / capacitor circuit timing element (1004), and the second clock (1005) associated with the DP (1002) is a TCXO timing element (1005).
[0068] Referring again to FIG. 16, the present invention features a system that wakes up from an energy-efficient sleep to transmit an indoor positioning beacon by starting a WakeUp subroutine. In some embodiments, the system can include a tag (1001). The tag can include a first processor (1101) capable of executing computer-executable instructions, a first RAM component (1102), a first antenna (1103), and a first memory component (1104). The memory can include instructions for the step (701) of passively associating the tag (1001) with one of a plurality of DPs (1002) when the tag (1001) moves to a new location. The procedure for association can include the step of identifying a wake-up signal time to transmit a beacon addressed from the tag (1001) to the DP (1002). In some embodiments, the wake-up signal time can be equal to at least one of a hash or concatenation of the tag ID and the DP ID. The memory can further include instructions for the step of executing the WakeUp subroutine every 30 seconds. The WakeUp subroutine can include the step of executing an awakening cycle (702) at the wake-up signal time using a first clock (1004), and the step (703) of transmitting a beacon including an array of bits from the tag (1001). The term "awakening" in the present invention refers to the act of waking up from a low-power state, performing an action, and then returning to the low-power state. In some embodiments, the bit located at the array index equal to the wake-up signal time is set to 1, and all other bits are set to 0. The WakeUp subroutine can further include the step of returning to sleep (710), and the step (711) of broadcasting 20 transmissions (1201) to a plurality of DPs every 15 minutes at a rate of one transmission every 100 milliseconds. Each of the 20 transmissions (1201) can include the updated location of the tag (1001).
[0069] In some embodiments, the system may further include a DP (1002). The DP may include a second processor (1105) capable of executing computer-executable instructions, a second RAM component (1106), a second antenna (1107), and a second memory component (1108). The memory may include instructions for receiving a beacon at the DP (1002) (step 704) and instructions for verifying that the beacon is addressed to the DP (1002). The verification procedure may include finding a bit in an array equal to 1 (step 705) and verifying whether the array index of the found bit is equal to the wake-up signal time (step 706). The memory may further include instructions for the DP (1002) to adjust its own timing of subsequent transmission to the tag (1001) according to a delay equal to the difference between the time when the beacon is received and the time when the beacon is expected, using a second clock (1005).
[0070] In some embodiments, each DP (1002) of a plurality of DPs may perform the steps of receiving an updated location and filtering the noise associated with each transmission using a Kalman filter. The procedure for reception through the use of a Kalman filter may include the step of each DP (1002) of the plurality of DPs identifying the angle of arrival of the Kalman-filtered transmission and the step of each DP (1002) of the plurality of DPs applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0071] In some embodiments, the first clock (1004) associated with the tag (1001) is a resistor / capacitor circuit timing element (1004), and the second clock (1005) associated with the DP is a TCXO timing element (1005).
[0072] In some embodiments of the present invention, in order for the DP (1002) to reach more multiple tags in the sector or to take noise into account, it is possible to increase the frequency at which the system executes the WakeUp subroutine. The frequency at which the system executes the WakeUp subroutine can also be decreased aiming at fewer multiple tags in the sector. In some embodiments, the tag (1001) will wait for transmission from the DP (1002) for a specific amount of time at the wake-up signal time before timing out and returning to sleep. In other embodiments, the tag (1001) will continue to wait for transmission by the DP (1002) until a transmission is received at the wake-up signal time. In some embodiments, the DP (1002) can send an alert to a higher level layer of the network if a non-responsive tag (1001) is detected.
[0073] Example The following are non-limiting examples of the present invention. It should be understood that the examples are not intended to limit the present invention in any way. Equivalents or alternatives are within the scope of the present invention.
[0074] Referring to FIG. 6, a particular embodiment of the present invention features a method (600) of waking up from energy-efficient sleep to transmit an indoor positioning beacon by starting a WakeUp subroutine. This method can include a step (601) in which the tag (1001) passively associates with one of a plurality of detection points (DPs), namely a DP (1002), when the tag (1001) moves to a new location. The procedure for association can include a step in which the tag (1001) specifies a wake-up signal time to transmit a beacon addressed to the DP (1002). The wake-up signal time can be equal to at least one of a concatenation or hash of the tag ID and the DP ID, the location number, the location ID of the DP (1002) modified by the location ID of the tag (1001), or a combination thereof. This method can further include a step (602) in which the DP (1002) transmits a beacon every 100 milliseconds four times for each array index of the array. The beacon can include an array of bits, and the bit located at the array index, which is a combination of the ID of the tag (1001) and the ID of the DP (1002), is set to 1, and all other bits are set to 0.
[0075] The method of this particular embodiment can further include the step of the tag (1001) executing a WakeUp subroutine every 30 seconds. The WakeUp subroutine can include the steps of the tag (1001) executing a wake cycle (603) at the wake-up time using a first clock (1004), starting a bare-boot (604), receiving at least one of four beacons (605), and verifying that each received beacon of at least four beacons is addressed to the tag (1001). The first clock (1004) can be a resistance / capacitance circuit timing element (1004). The procedure for verification can include the steps of the tag (1001) finding a bit in an array equal to 1 (606) and verifying whether the array index of the found bit is a combination of the ID of the tag (1001) and the ID of the DP (1002) (607). The WakeUp subroutine can further include the steps of the tag (1001) phase-locking the first clock (1004) based on the difference between the time when the beacon was received and the time when the beacon was expected (608) and returning to sleep (609). This method can further include the step of the tag (1001) broadcasting 20 transmissions (1201) to a plurality of DPs every 15 minutes at a rate of one transmission every 100 milliseconds (610), each of the 20 transmissions (1201) including the updated location of the tag (901).
[0076] This method can further include the step in which each of a plurality of DPs (1002) receives an updated location, and the step of filtering noise associated with each transmission using a Kalman filter. The procedure for reception through the use of the Kalman filter can include the step in which each of the plurality of DPs (1002) identifies the angle of arrival of the Kalman-filtered transmission, and the step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival. The second clock (1005) associated with the DP (1002) can be a temperature-compensated crystal oscillator (TCXO) timing element (1005).
[0077] Referring to FIG. 7, a particular embodiment of the present invention features a method (700) of waking up from an energy-efficient sleep to transmit an indoor positioning beacon by starting a WakeUp subroutine. This method can include the step (701) of the tag (1001) passively associating with one of a plurality of DPs, a DP (1002), when the tag (1001) moves to a new location. The procedure for association can include the step of the tag (1001) specifying a wake-up signal time to transmit a beacon addressed to the DP (1002). The wake-up signal time can be equal to at least one of a concatenation or hash of the tag ID and the DP ID, the location number, the location ID of the DP (1002) modified by the location ID of the tag (1001), or a combination thereof. This method can further include the step of the tag (1001) executing the WakeUp subroutine every 30 seconds. The WakeUp subroutine can include the step of the tag (1001) executing an awakening cycle (702) at the wake-up signal time using a first clock (1004), and the step of transmitting a beacon (703). The first clock (1004) can be a resistor / capacitor circuit timing element (1004). The beacon can include an array of bits, and the bit located at an array index equal to the wake-up signal time is set to 1, and all other bits are set to 0. The WakeUp subroutine can further include the step of the DP (1002) receiving the beacon (704), and the step of verifying that the beacon is addressed to the DP (1002). The procedure for verification can include the step (705) of the DP (1002) finding a bit in the array equal to 1, and the step (706) of verifying whether the array index of the found bit is equal to the wake-up signal time.The WakeUp subroutine may further include a step (707) of delaying by a delay equal to the difference between the time when the beacon is received and the time when the beacon is expected, such that DP (1002) uses the second clock (1005) to delay the time at which it will send subsequent transmissions to the tag (1001). The tag (1001) can then return to sleep (710). This method may further include a step (711) of the tag (1001) broadcasting 20 transmissions (1201) to a plurality of DPs every 15 minutes at a rate of one transmission every 100 milliseconds, each of the 20 transmissions (1201) including the updated location of the tag (1001).
[0078] The method of this particular embodiment may further include a step of each DP (1002) of the plurality of DPs receiving the updated location and a step of filtering the noise associated with each transmission using a Kalman filter. The procedure for reception through the use of the Kalman filter may include a step of each DP (1002) of the plurality of DPs identifying the angle of arrival of the Kalman-filtered transmission and a step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival. The second clock (1005) associated with the DP (1002) can be a TCXO timing element (1005).
[0079] Referring to FIG. 8, a particular embodiment of the present invention features a method (800) for locating one radio frequency (RF) tag (1001) out of a plurality of tags using RF indoor positioning with a plurality of detection points (DPs) that include a plurality of beacons. A beacon (1301) can be an RF advertisement packet that includes a payload, the payload can include a RecipientArray and a command, and the RecipientArray can be an array of bits. The method can include a step (801) in which the tag (1001) executes a PassiveAssociation subroutine when the tag (1001) detects a change in its location. The PassiveAssociation subroutine can include a step (802) in which the tag (1001) listens for a duration of 1 millisecond every 100 milliseconds for 20 seconds (301), and a step (803) of selecting one of the plurality of DPs (1002). The procedure for selection can include a step of combining the tag ID and the DP ID. The PassiveAssociation subroutine can further include a step (804) in which the tag (1001) determines a ReveilleTime based on the combination of the tag ID and the DP ID, where the ReveilleTime is when to wake up and listen for four ExpectedBeacons transmitted by the DP (1002). In some embodiments, the wake-up signal time is equal to at least one of the concatenation or hash of the tag ID and the DP ID, the location number, the location ID of the DP (1002) modified by the location ID of the tag (1001), or a combination thereof.
[0080] The method of this specific embodiment may further include the step of DP (1002) executing a WakeUp subroutine for each index of RecipientArray. The WakeUp subroutine may include the step (805) of DP (1002) transmitting four beacons at a rate of one beacon every 100 milliseconds using the TCXO timing element (1005). For each of the four beacons (1301), the bit located at the index of RecipientArray (1303) is equal to 1, and every other bit of RecipientArray (1303) is equal to 0.
[0081] The method of this particular embodiment can further include the step of the tag (1001) executing the Respond subroutine every 30 seconds. The Respond subroutine can include the step of the tag (1001) executing the wake cycle (806) at ReveilleTime using the resistor / capacitor circuit timing element (1004), and the step of searching for and listening for four ExpectedBeacons (807). The procedure for listening can include the step of the tag (1001) receiving a beacon (1301) that includes the RecipientArray (1303) (808), where each bit of the RecipientArray is arranged by index. The step of listening can further include the step of the tag (1001) finding the index of the bit equal to 1 (809), and the step of identifying that the received beacon is an ExpectedBeacon if the index of that bit is equal to the combination of the tag ID and the DP ID (810). The procedure for listening can be repeated until the tag (1001) receives four ExpectedBeacons. The Respond subroutine can further include the step of the tag (1001) identifying the time difference between the time when four ExpectedBeacons are received and the time when four ExpectedBeacons are expected (811), and the step of using that time difference in a phase-locked loop (812) to correct the resistor / capacitor circuit timing element (1004) of the tag (1001), and the step of returning to sleep (813).
[0082] The method of this specific embodiment may further include a step (814) of updating the location of tag (1001) every 15 minutes by tag (1001). The procedure for the update may include a step (815) of the tag (1001) transmitting 20 transmissions (1201) at a rate of one transmission every 100 milliseconds, a step (816) of each of the plurality of DPs (1002) receiving the 20 transmissions (1201), and a step (817) of filtering the noise associated with each of the 20 transmissions (1201).
[0083] The method of this specific embodiment may further include a step of each of the plurality of DPs (1002) receiving the updated location, and a step of filtering the noise associated with each transmission using a Kalman filter. The procedure for reception through the use of the Kalman filter may include a step of each of the plurality of DPs (1002) identifying the angle of arrival of the Kalman-filtered transmission, and a step of applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0084] Referring to FIG. 9, a particular embodiment of the present invention features a method (900) for a plurality of DPs to locate one RF tag (1001) out of a plurality of tags using RF indoor positioning including a plurality of beacons. A beacon (1301) can be an RF advertisement packet including a payload (1302), and the payload can include a RecipientArray (1303) and a command (1304), and the RecipientArray can be an array of bits. This method can include a step (901) in which the tag (1001) executes a PassiveAssociation subroutine when the tag (1001) detects a change in its location. The PassiveAssociation subroutine can include a step (902) in which the tag (1001) listens for 1 millisecond duration every 100 milliseconds for 20 seconds (301), and a step (903) of selecting one DP (1002) out of the plurality of DPs. The procedure for selection includes a step in which the tag (1001) determines a ReveilleTime based on a combination of the tag ID and the DP ID, and the ReveilleTime is when to wake up and listen for four ExpectedBeacons transmitted by the DP (1002). The ReveilleTime is equal to at least one of a concatenation or a hash of the tag ID and the DP ID, the location number, the location ID of the DP (1002) modified by the location ID of the tag (1001), or a combination thereof.
[0085] The method of this particular embodiment can further include the step of the tag (1001) executing a WakeUp subroutine every 30 seconds. The WakeUp subroutine can include the step of the tag (1001) executing a wake-up cycle (904) at ReveilleTime using a resistor / capacitor circuit timing element (1004), and the step (905) of transmitting four beacons at a rate of one beacon every 100 milliseconds using the resistor / capacitor circuit timing element (1004). For each of the four beacons, the bit located at the index of the RecipientArray (1303) is equal to 1, the index is equal to ReveilleTime, and every other bit of the RecipientArray (1303) is equal to 0. The WakeUp subroutine can further include the step (915) of the tag (1001) returning to sleep.
[0086] The method of this specific embodiment may further include the step of the DP (1002) executing the Respond subroutine for each index of the RecipientArray (1303). The Respond subroutine may include the step (906) of the DP (1002) searching for and listening for four ExpectedBeacons. The procedure for listening may include the step (907) of the DP (1002) receiving a beacon (1301) including the RecipientArray (1303). Each bit of the RecipientArray is arranged at an index. The Respond subroutine may further include the step (908) of the DP (1002) finding the index of the bit equal to 1, and the step (909) of identifying that the received beacon (1301) is an ExpectedBeacon if the index of that bit is equal to the combination of the tag ID and the DP ID. The procedure for listening may be repeated until the DP (1002) receives four ExpectedBeacons. The Respond subroutine may further include the step (910) of the DP (1002) identifying the wake-up time difference between the time when the four ExpectedBeacons are received and the time when the four ExpectedBeacons are expected, and the step (911) of delaying the time when the subsequent transmission will be sent to the tag (1001) using a delay equal to that wake-up time difference.
[0087] The method of this specific embodiment may further include the step (916) of the tag (1001) updating the location of the tag (1001) every 15 minutes. The procedure for updating may include the step (917) of the tag (1001) transmitting 20 transmissions (1201) at a rate of one transmission every 100 milliseconds, the step (918) of each DP (1002) among the plurality of DPs receiving the 20 transmissions (1201), and the step (919) of filtering the noise associated with each of the 20 transmissions (1201).
[0088] The method of this specific embodiment may further include the steps of each of a plurality of DPs (1002) receiving an updated location and filtering the noise associated with each transmission using a Kalman filter. The procedure for reception through the use of a Kalman filter may include the steps of each of a plurality of DPs (1002) identifying the angle of arrival of the Kalman-filtered transmission and applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0089] Referring to FIG. 17, a specific embodiment of the present invention features a system for waking up from energy-efficient sleep to receive indoor positioning beacons by starting a plurality of subroutines. This system may include a plurality of beacons. A beacon (1301) is an RF notification packet that may include a payload (1302). The payload may include a RecipientArray (1303) and a command (1304), and the RecipientArray is an array of bits.
[0090] This system can further include an RF tag (1001). The RF tag can include a first processor (1101) capable of executing computer-executable instructions, a first RAM component (1102), and a first memory component. The memory can include instructions for performing step (801) of executing a PassiveAssociation subroutine when the tag (1001) detects a change in the location of the tag (1001). The PassiveAssociation subroutine can include step (802) of listening for a duration of 1 millisecond every 100 milliseconds for 20 seconds (301), and step (803) of selecting one of a plurality of DPs (1002). The procedure for selection can include a step of combining a tag ID and a DP ID. The PassiveAssociation subroutine can further include step (804) of determining a ReveilleTime based on the combination of the tag ID and the DP ID, where the ReveilleTime is when to wake up and listen for four ExpectedBeacons transmitted by the DP (1002). The wake-up signal time can be equal to at least one of a hash or concatenation of the tag ID and the DP ID. The memory can further include instructions for performing a step of executing a Respond subroutine every 30 seconds. The Respond subroutine can include a step of performing an awakening cycle (806) at the ReveilleTime using a resistor / capacitor circuit timing element (804), and step (807) of listening for four ExpectedBeacons (1301). The procedure for listening can include step (808) of receiving a beacon (1301) including a RecipientArray (1303), where each bit of the RecipientArray is arranged in an index.The procedure for listening can further include a step (809) of finding the index of the bit equal to 1, and a step (810) of identifying that the received beacon is an ExpectedBeacon if the index of the bit is equal to the combination of the tag ID and the DP ID. The procedure for listening can be repeated until the DP (1002) receives four ExpectedBeacons. The Respond subroutine can further include a step (811) of identifying the time difference between the time when four ExpectedBeacons (1301) are received and the time when four ExpectedBeacons are expected, and a step of using that time difference in a phase-locked loop (812) to correct the resistance / capacitance circuit timing element (804) of the tag (1001), and a step (813) of returning to sleep. The memory can further include an instruction for a step (814) of updating the location of the tag (1001) every 15 minutes. The procedure for updating can include a step (815) of transmitting 20 transmissions (1201) at a rate of one transmission every 100 milliseconds.
[0091] This system can further include a plurality of detection points. Each DP (1002) can include a second processor (1105) capable of executing computer-executable instructions, a second RAM component (1106), an antenna (1107), and a second memory component (1108). The memory can include instructions for performing the steps of executing a WakeUp subroutine for each index of RecipientArray (1303). The WakeUp subroutine can include a step (805) of transmitting four beacons (1301) at a rate of one beacon every 100 milliseconds using a TCXO timing element (1005). For each of the four beacons, the bit located at the index of RecipientArray (1303) is equal to 1, and every other bit of RecipientArray (1303) is equal to 0. The memory can further include instructions for a step (806) of updating the location of tag (1001) every 15 minutes by tag (1001). The procedure for updating can include a step (816) in which each DP (1002) of the plurality of DPs receives 20 transmissions (1201), and a step (817) of filtering the noise associated with each of the 20 transmissions (1201).
[0092] In the system of this particular embodiment, each DP (1002) can perform a step of receiving an updated location and a step of filtering the noise associated with each transmission using a Kalman filter. The procedure for receiving through the use of a Kalman filter can include a step of identifying the angle of arrival of the Kalman-filtered transmissions by each DP (1002) of the plurality of DPs, and a step of applying multiple signal classification (MUSIC) by each DP (1002) of the plurality of DPs to improve the accuracy of the identified angle of arrival.
[0093] In the system of this particular embodiment, the first clock (1004) associated with the RF tag (1001) is a resistance / capacitance circuit timing element (1004), and the second clock (1005) associated with the DP (1002) is a TCXO timing element (1005).
[0094] Referring again to FIG. 17, a particular embodiment of the present invention features a system for waking up from an energy-efficient sleep to transmit an indoor positioning beacon by starting a plurality of subroutines. This system can include a plurality of beacons. The beacon (1301) is an RF notification packet that can include a payload (1302). The payload can include a RecipientArray (1303) and a command (1304), and the RecipientArray (1303) is an array of bits.
[0095] This system can further include an RF tag (1001). The RF tag can include a first processor (1101) capable of executing computer-executable instructions, a first RAM component (1102), and a first memory component (1104). The memory can include instructions for performing the step of executing the PassiveAssociation subroutine when the tag (1001) detects a change in the location of the tag (1001). The PassiveAssociation subroutine can include a step (902) of listening for a duration of 1 millisecond every 100 milliseconds for 20 seconds (301), and a step (903) of selecting one of a plurality of DPs (1002). The procedure for selection can include a step of combining the tag ID and the DP ID. The wake-up signal time can be equal to at least one of the hash or concatenation of the tag ID and the DP ID. The PassiveAssociation subroutine can further include a step (903) of identifying the ReveilleTime based on the combination of the tag ID and the DP ID, where the ReveilleTime is when to wake up and listen for four ExpectedBeacons transmitted by the DP (1002). The memory can further include instructions for performing the step of executing the WakeUp subroutine every 30 seconds. The WakeUp subroutine can include a step of performing a wake-up cycle (904) at the ReveilleTime using a resistor / capacitor circuit timing element (1004), and a step (905) of transmitting four beacons at a rate of one beacon every 100 milliseconds using the resistor / capacitor circuit timing element (1004). For each of the four beacons, the bit located at the index of the RecipientArray is equal to 1, the index is equal to the ReveilleTime, and every other bit of the RecipientArray is equal to 0. The WakeUp subroutine can further include a step (915) of returning to sleep.The memory can further include instructions for the step of updating the location of tag (1001) every 15 minutes. The procedure for the update can include a step (916) of transmitting 20 transmissions (1201) at a rate of one transmission every 100 milliseconds.
[0096] The system of this particular embodiment can further include a plurality of detection points. Each DP (1002) includes a second processor (1105) capable of executing computer-executable instructions, a second RAM component (1106), an antenna (1107), and a second memory component (1108). The memory can include instructions for performing the step of executing the Respond subroutine for each index of the RecipientArray. The Respond subroutine can include the step (906) of the DP (1002) searching for and listening for four ExpectedBeacons. The procedure for listening is the step (907) of receiving a beacon (1301) including the RecipientArray, where each bit of the RecipientArray is arranged in an index, the step (908) of finding the index of the bit equal to 1, and the step (909) of identifying that the received beacon is an ExpectedBeacon if the index of that bit is equal to the combination of the tag ID and the DP ID. The procedure for listening can be repeated until the four ExpectedBeacons are received by the DP (1002). The Respond subroutine further includes the step (910) of identifying the wake-up time difference between the time when the four ExpectedBeacons are received and the time when the four ExpectedBeacons are expected, and the step of adjusting its own timing for transmitting to the tag (1001) thereafter using a delay equal to that wake-up time difference. The memory can further include instructions for the step (916) of updating the DP (1002) about the location of the tag (1001) every 15 minutes.The procedure for the update can include step (917) where tag (1001) transmits 20 transmissions (1201) at a rate of one transmission every 100 milliseconds, step (918) where each of the plurality of DPs (1002) receives the 20 transmissions (1201), and step (919) of filtering the noise associated with each of the 20 transmissions (1201).
[0097] In the system of this particular embodiment, each of the plurality of DPs (1002) can perform the step of receiving the updated location and the step of filtering the noise associated with each transmission using a Kalman filter. The procedure for performing the filtering through the use of the Kalman filter can include the step of each of the plurality of DPs (1002) identifying the angle of arrival of the Kalman-filtered transmission and the step of each of the plurality of DPs (1002) applying multiple signal classification (MUSIC) to improve the accuracy of the identified angle of arrival.
[0098] In the system of this particular embodiment, the first clock (1004) associated with the RF tag (1001) is a resistor / capacitor circuit timing element (1004), and the second clock (1005) associated with the DP (1002) is a TCXO timing element (1005).
[0099] Preferred embodiments of the present invention have been shown and described, and it will be readily apparent to those skilled in the art that modifications may be made thereto without departing from the scope of the appended claims. Therefore, the scope of the present invention should be limited only by the following claims. In some embodiments, the description of the present invention as described herein using the phrase "comprising" includes embodiments that may be described as "consisting essentially of" or "consisting of", and thus, the written description requirements for claiming one or more embodiments of the present invention using the phrase "consisting essentially of" or "consisting of" are met.
[0100] The reference numbers recited in the following claims are for the sole purpose of facilitating the examination of this patent application and are exemplary only, and are not intended to limit the scope of the claims in any way to specific features having corresponding reference numbers in the drawings.
Claims
1. A method (100) for waking up from energy-efficient sleep to receive indoor positioning beacons, comprising: a. A step (101) of passively associating, by a tag (1001), with one of a plurality of detection points (DP) when the tag (1001) moves to a new location, the association including a step of specifying a wake-up signal time by the tag (1001), the wake-up signal time being calculated at a cloud server, the wake-up signal time being composed of a combination of an identifier (tag ID) of the tag (1001) and an identifier (DP ID) of the detection point (DP) associated with the tag (1001), the step of passively associating (101); b. A step (102) of transmitting a beacon at a first interval for each possible address by the DP (1002), the step of transmitting (102) wherein the beacon includes the address; c. A step of executing a wake-up cycle (103) at a second interval at the wake-up signal time using a clock by the tag (1001), the wake-up cycle further including: i. A step (104) of receiving the transmitted beacon by the awakened tag (1001); ii. A step (105) of confirming the address by the awakened tag (1001); iii. A step (108) of sleeping by the awakened tag (1001); d. A method wherein communication between the tag (1001) and the DP (1002) includes mutual authentication.
2. The method according to claim 1, further comprising a step of receiving, by each DP (1002) of the plurality of DPs, the updated location, and a step of filtering noise associated with each transmission using a Kalman filter by each DP (1002) of the plurality of DPs.
3. a. A step of specifying, by each DP (1002) of the plurality of DPs, an arrival angle of the Kalman-filtered transmission; b. A step of applying multiple signal classification (MUSIC) by each DP (1002) of the plurality of DPs to improve the accuracy of the specified arrival angle. The method according to claim 2, further comprising
4. The method according to claim 1, wherein the clock is a resistor-capacitor circuit timing element (1004).
5. The method according to claim 1, wherein the tag (1001) wakes up from sleep by starting a bare boot, and the bare boot includes directly booting from a dormant state to an awake state.
6. The method according to claim 5, wherein the bare boot boots from sleep without performing a system check, without reading all memory locations to ensure that the memory is not damaged, and without checking the IO of peripheral devices.
7. The method according to claim 1, wherein the wake-up signal time is at least equal to the concatenation or hash of the tag ID and DP ID, location number, the location ID of the DP (1002) modified by the location ID of the tag (1001), or a combination thereof.
8. The method according to claim 1, wherein the mutual authentication includes comparing a first challenge encrypted by the tag (1001) with a second challenge encrypted by the DP (1002), and the first challenge is a prime number equal to the second challenge.
9. The wake cycle (103) further comprises a. Identifying, by the awakened tag (1001), a time difference between the time when the beacon is received and the time when the beacon is expected (106); b. Phase-locking the clock based on the time difference by the awakened tag (1001) (107). The method according to claim 1.
10. A method (200) for energy-efficient waking from sleep for transmitting an indoor positioning beacon, comprising a. A step (201) of passively associating, by a tag (1001), with one of a plurality of DPs when the tag (1001) moves to a new location, the association including a step of specifying a wake-up signal time by the tag (1001), the wake-up signal time being calculated at a cloud server, and the wake-up signal time being composed of a combination of an identifier (tag ID) of the tag (1001) and an identifier (DP ID) of the detection point (DP) associated with the tag (1001), the step of passively associating (201); b. A step of executing a wake cycle (202) at a second interval with respect to the wake-up signal time using a first clock (1004) by the tag (1001), the wake cycle (202) further including i. A step (203) of transmitting a beacon at a first interval by the awakened tag (1001), the beacon including an address, the step of transmitting (203); ii. A step (204) of receiving the beacon by the DP (1002); iii. A step (205) of confirming the address by the DP (1002); iv. A step (209) of sleeping by the awakened tag (1001), c. A method in which communication between the tag (1001) and the DP (1002) includes mutual authentication.
11. A method according to claim 10, further including a step of receiving, by each of the plurality of DPs (1002) among the plurality of DPs, the updated location, and a step of filtering, by each of the plurality of DPs (1002) among the plurality of DPs, noise associated with each transmission using a Kalman filter.
12. a. A step of specifying, by each of the plurality of DPs (1002) among the plurality of DPs, an arrival angle of the Kalman-filtered transmission; b. A step of improving the accuracy of the specified arrival angle by applying multiple signal classification (MUSIC) by each of the plurality of DPs (1002) among the plurality of DPs further included in the method according to claim 11.
13. The method according to claim 10, wherein the first clock (1004) is a resistor-capacitor circuit timing element (1004), and the second clock (1005) is a temperature-compensated crystal oscillator (TCXO) timing element (1005).
14. The method according to claim 10, wherein the tag (1001) wakes up from sleep by starting a bare boot, and the bare boot includes booting directly from a sleep state to a wake state.
15. The method according to claim 14, wherein the bare boot boots from a boot from sleep without performing a system check, without reading all memory locations to ensure that the memory is not damaged, and without checking the IO of peripheral devices.
16. The method according to claim 10, wherein the wake-up signal time is at least equal to the concatenation or hash of the tag ID and DP ID, location number, the location ID of the DP (1002) modified by the location ID of the tag (1001), or a combination thereof.
17. The wake cycle (202) further includes a. a step (210) of updating the location of the tag (1001) by the DP (1002); and b. a step (206) of delaying the timing of subsequent transmissions to the tag (1001) using a second clock (1005) by the DP (1002), the delay being equal to the difference between the time when the beacon is received and the time when the beacon is expected, the step (206) of delaying. The method according to claim 10, comprising.
18. The mutual authentication includes comparing a first challenge encrypted by the tag (1001) with a second challenge encrypted by the DP (1002), and the first challenge is a prime number equal to the second challenge. The method according to claim 10.
Citation Information
Patent Citations
Radio frequency identification (RFID) tag, interrogator, and method for authentication between the RFID tag and the interrogator
US20140023195A1
Wirless tag based communication, system and applicaitons
US20140145829A1