Systems and methods for asset tracking, asset grouping and error recovery
The method optimizes asset tracking by generating response schedules with unicast and multicast triggers and motion sensor activation, reducing power consumption and enhancing accuracy in asset location tracking.
Patent Information
- Application Number
- JP2024555352
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-09-29
- Filing Date
- 2023-04-20
- Publication Date
- 2025-11-17
- Estimated Expiration
- 2043-04-20
AI Technical Summary
Existing asset tracking systems face inefficiencies in power consumption and accuracy due to unoptimized communication protocols and clock synchronization issues, leading to battery drain and potential loss of location data from asset tags.
A method involving generating response schedules for asset tags that define sequences of unicast and multicast triggers and wake windows, along with motion sensor activation, to optimize communication and reduce power consumption while ensuring accurate location tracking.
The method enhances battery life of asset tags by minimizing power usage and improves location tracking accuracy through optimized communication modes and recovery protocols, enabling continuous monitoring and detection of asset movements.
Smart Images

Figure 0007771425000001 
Figure 0007771425000002 
Figure 0007771425000003
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 63 / 333,101, filed April 20, 2022, and U.S. Provisional Application No. 63 / 411,554, filed September 29, 2022, each of which is incorporated by reference in its entirety.
[0002] FIELD OF THE INVENTION
[0001] The present invention relates generally to the field of asset tags, and more particularly to novel and useful systems and methods for tracking, grouping and error recovery of asset tags in the field of asset tracking. [Brief explanation of the drawings]
[0003] [Figure 1]
[0002] Figure 1 is a schematic diagram of the method. [Figure 2]
[0003] Figure 2 is a schematic diagram of one variant of the method. [Figure 3]
[0004] FIG. 3 is a schematic diagram of one variant of the method. [Figure 4]
[0005] FIG. 4 is a schematic diagram of one variant of the method. DETAILED DESCRIPTION OF THE INVENTION
[0004]
[0006] The following description of embodiments of the present invention is not intended to limit the invention to those embodiments, but rather to enable those skilled in the art to make and use the present invention. The variations, configurations, implementations, examples, and examples described herein are optional and are not limited to the variations, configurations, implementations, examples, and examples described herein. The invention described herein may include any and all combinations of these variations, configurations, implementations, examples, and examples.
[0005] 1. Method
[0007] As shown in FIGS. 1-4, method S100 includes, in block S120, generating a first response schedule for a first asset tag at a first time, the first response schedule defining a sequence of trigger times for transmitting a sequence of unicast triggers; and a sequence of wake windows, each wake window in the sequence of wake windows intersecting a trigger time in the first sequence of trigger times.
[0006]
[0008] In this variation, method S100 further includes, at a first node of the set of nodes, broadcasting a first configuration message including a first response schedule to a first asset tag via a configuration channel in block S130; at the first asset tag, in response to the absence of configuration data, transitioning the transceiver of the first asset tag to the configuration channel in block S140; receiving the first configuration message via the configuration channel in block S142; configuring the first asset tag based on the first configuration message in block S144; and entering a sleep mode in block S146 in response to the period to the first wake window in the sequence of wake windows exceeding a threshold period.
[0007]
[0009] In this variation, method S100 further includes broadcasting, at a first node of the set of nodes at a second time, a first unicast trigger of the sequence of unicast triggers over the ranging channel in block S150 based on a first trigger time of the sequence of trigger times. Method S100 also includes entering a wake mode at the second time and at a first asset tag based on a first wake window in block S162; transmitting a first ranging signal in block S166 in response to receiving the first unicast trigger over the ranging channel; entering a sleep mode in block S168 in response to transmitting the first ranging signal; and deriving, at the set of nodes that received the first ranging signal in block S152, a first location of the first asset tag at the second time based on an instance of the first ranging signal received by the set of nodes in block S154.
[0008] 1.1 Variant: Motion Sensor Activated Unicast Ranging
[0010] As shown in FIGS. 1-4, method S100 includes, during a first time period, generating, at block S120, a first response schedule for a first asset tag, the first response schedule defining a first trigger time for transmitting a first unicast trigger; a first wake window that intersects the first trigger time; and a second wake window associated with a motion sensor signal.
[0009]
[0011] In this variation, method S100 includes, at a first node of the set of nodes, broadcasting a first configuration message including a first response schedule to a first asset tag via a configuration channel in block S130; at the first asset tag: in response to the absence of configuration data, transitioning the transceiver of the first asset tag to the configuration channel in block S140; receiving the first configuration message via the configuration channel in block S142; configuring the first asset tag based on the first configuration message in block S144; and entering a sleep mode in block S146 in response to the period to the first wake window in the sequence of wake windows exceeding a threshold period.
[0010]
[0012] In this variation, method S100 includes, at the first asset tag, entering a wake mode during a second wake window at block S162 in response to receiving a motion sensor signal from the motion sensor of the first asset tag during a second time period; and transmitting a first ranging signal over the ranging channel during the second wake window at block S166. Method S100 further includes, at the set of nodes, entering a sleep mode during the second time period and in response to transmitting the first ranging signal at block S168; receiving the first ranging signal at block S152; and deriving a first location of the first asset tag based on instances of the first ranging signal received by the set of nodes at block S154.
[0011] 1.2 Variation: Multicast Configuration and Ranging
[0013] As shown in FIGS. 1-4, method S100 includes, during a first time period, generating, at block S120, a first response schedule for a first asset tag group, the first response schedule defining: a first multicast trigger time for transmitting a first multicast trigger to the first asset tag group; for each asset tag in the first asset tag group, a first wake window that intersects with the first multicast trigger, a transmission time after receiving the first multicast trigger and that is specific to the asset tag, and a second wake window that intersects with the transmission time.
[0012]
[0014] In this variation, method S100 includes, at a first node of the set of nodes and at a first asset tag in a first asset tag group, broadcasting a first configuration message over a configuration channel to the first asset tag in block S130. In this variation, method S100 includes, in response to the absence of configuration data, transitioning a transceiver of the first asset tag to the configuration channel in block S140; receiving the first configuration message over the configuration channel in block S142; configuring the first asset tag based on the first configuration message in block S144; and entering a sleep mode in block S146 based on a first response schedule indicating that the period to a first wake window exceeds a threshold period.
[0013]
[0015] In this variation, method S100 includes broadcasting a first multicast trigger over a ranging channel during a first wake window and at a set of nodes in block S150 and at the first wake window; entering a wake mode in block S162 at a first asset tag in a first asset tag group; receiving the first multicast trigger over the ranging channel in block S164; and entering a sleep mode in block S168 based on a first response schedule indicating that the period until the second wake window exceeds a threshold period.
[0014]
[0016] In this variation, method S100 includes, during a second wake window, at a first asset tag of a first asset tag group: entering a wake mode at block S162; transmitting a first ranging signal over a ranging channel at block S166; and entering a sleep mode in response to transmitting the first ranging signal at block S168. Method S100 further includes, during the second wake window, at a set of nodes: receiving a first set of ranging signals from the first asset tag group at block S152; and deriving a first set of locations of the first asset tag group based on instances of the first set of ranging signals received by the set of nodes at block S154.
[0015] 1.3 Variation: Recovering an Unresponsive Asset Tag
[0017] As shown in Figures 1 to 4, method S100 includes, during a first period: at a set of nodes, broadcasting a unicast query to a set of asset tags in block S102; receiving a first set of uncast responses from the set of asset tags in block S104; and calculating a first set of locations of the set of asset tags based on the first set of unicast responses in block S106.
[0016]
[0018] In this variation, method S100 includes, in block S110, dividing a collection of asset tags into a set of asset tag groups based on the proximity of a first set of locations; and, for a first asset tag group of the set of asset tag groups, in block S120, generating a first response schedule, the first response schedule defining: a first multicast trigger time for transmission of a first multicast trigger; and, for each asset tag of the first asset tag group, a first transmission time after reception of the first multicast trigger and specific to the asset tag, a first wake window that intersects with the first multicast trigger time, and a second wake window that intersects with the first transmission time.
[0017]
[0019] In this variation, method S100 includes, during a second period: at block S150, broadcasting a first multicast trigger at a first node of the set of nodes at a first multicast trigger time defined by a first response schedule; at block S152, receiving at the set of nodes a first set of ranging signals from a first asset tag subgroup of a first asset tag group, the first asset tag subgroup responding to the first multicast trigger; and at block S170, in response to identifying a first asset tag included in the first asset tag group and excluded from the first asset tag subgroup based on the first set of ranging signals, generating a recovery schedule for the first asset tag at block S120, the recovery schedule defining a sequence of unicast trigger times for transmitting a sequence of unicast triggers to the first asset tag. The method S100 further includes: during a second period and at a first node of the set of nodes, broadcasting a sequence of unicast triggers at a sequence of unicast trigger times according to the recovery schedule in block S150; and at the set of nodes and in response to receiving a first ranging signal from the first asset tag, deriving a first location of the first asset tag based on the first ranging signal in block S152.
[0018] 1.4 Variation: Motion Sensor Activated Multicast Ranging
[0020] As shown in Figures 1 to 4, method S100 includes, at a first time, at a set of nodes: broadcasting a unicast query to a set of asset tags in block S102; receiving a first set of uncast responses from the set of asset tags in block S104; and calculating a first set of locations of the set of asset tags based on the first set of unicast responses in block S106. The method S100 further includes, in block S110, dividing the collection of asset tags into a set of asset tag groups based on the first set of locations; and, in block S120, generating a first response schedule for a first asset tag group of the set of asset tag groups, the first response schedule defining: a first set of multicast trigger times for transmission of the first set of multicast triggers; and, for each asset tag of the first asset tag group, a first set of wake windows, each wake window of the first set of wake windows intersecting a multicast trigger time of the first set of multicast trigger times; and a first transmission frequency for a ranging signal specific to the asset tag.
[0019]
[0021] In this variation, method S100 includes: at a second time: in block S150, broadcasting a first multicast trigger of a first set of multicast triggers at the set of nodes; in block S152, receiving a first set of ranging signals from a first asset tag group responsive to the first multicast trigger at the set of nodes; in block S154, deriving a second set of locations of the first asset tag group based on the first set of ranging signals; and in block S170, identifying a first asset tag of the first asset tag group based on a first location of the second set of locations of the first asset tag. The method S100 includes, at a second time: in response to identifying the first asset tag, updating the first response schedule to exclude the first asset tag from the first asset tag group in block S172; and generating a second response schedule for the first asset tag in block S120, the second response schedule defining a first set of unicast trigger times for transmission of the first set of unicast triggers, a second set of wake windows, each wake window in the second set of wake windows intersecting a multicast trigger time of the first set of unicast trigger times, and a second transmission frequency specific to the first asset tag.
[0020]
[0022] In this variation, method S100 includes the steps of: broadcasting a first unicast trigger of a first set of unicast trigger sets according to a second response schedule at a third time and at a set of nodes in block S150; and broadcasting a second multicast trigger of a first set of multicast trigger sets according to the first response schedule in block S150 at a fourth time and at a set of nodes.
[0021] 1.5 Variation: Receiving ranging signals with varying signal strengths
[0023] 1-4, method S100 includes, at a first time, identifying a first asset tag group in a set of asset tags in step S112, where each asset tag in the first asset tag group defines a first priority level, and generating a first response schedule for the first asset tag group in block S120, where the first response schedule defines: a first set of multicast trigger times associated with a first transmission frequency for transmission of a first set of multicast triggers; and, for each asset tag in the first asset tag group, a first set of transmission times that intersect with the trigger times of the first set of multicast trigger times and are after the trigger times specific to the asset tag; a first set of wake windows, where each wake window in the first wake windows intersects with the trigger times of the first set of multicast trigger times and is specific to the asset tag; and a transmission time of the first set of transmission times. Method S100 further includes, at the first time, broadcasting the first response schedule to the first asset tag group in block S132.
[0022]
[0024] In this variation, method S100 includes, at a first node of the set of nodes at a second time, broadcasting a first multicast trigger at a first multicast trigger time of a first set of multicast trigger times defined by the first response schedule, at block S150; receiving a first set of ranging signals from a first asset tag subgroup of the first asset tag group, at block S152; and transmitting a first set of asset tag data for the first asset tag subgroup to the set of nodes, at block S158. Method S100 further includes, at a second node of the set of nodes at a second time, receiving a second set of ranging signals from a second asset tag subgroup of the first asset tag group, at block S152; transmitting a second set of asset tag data for the second asset tag subgroup at the set of nodes, at block S158; and deriving a second set of locations of the first asset tag group based on the first set of asset tag data and the second set of asset tag data, at block S154.
[0023] 2.Applications
[0025] Generally, method S100 is performed by a system including a set of nodes (e.g., a mesh network of asset tag readers, a network of base stations, a network of asset tag readers communicatively coupled to a controller) and a collection of asset tags to perform localization and ranging to track the location of one or more asset tags in the system. Furthermore, method S100 may be performed in either a unicast communication mode in which a node in the set of nodes communicates with a single asset tag in the set of asset tags at a time, or a multicast communication mode in which a node in the set of nodes communicates with a group of asset tags in the set of asset tags at a time.
[0024] 2.1 Unicast Communication Mode
[0026] Generally, method S100 is performed by a system including a set of nodes (e.g., a mesh network of asset tag readers, a network of base stations, a network of asset tag readers communicatively coupled to a controller) and at least one asset tag: locate the asset tag within a target environment (e.g., a warehouse); generate a response schedule for the asset tag for exchanging unicast ranging signals with the set of nodes; configure the asset tag to conform to the response schedule; and derive the location of the asset tag within the target environment based on the ranging signals exchanged between the asset tag and the set of nodes. Method S100 is further performed by the system to enable the asset tag to switch between wake and sleep modes to conserve battery power.
[0025]
[0027] For example, method S100 may be performed by a system to trigger ranging and locating of an asset tag in response to the asset tag detecting movement (e.g., due to handling, transportation). In particular, the asset tag may transmit a ranging signal to a set of nodes in response to receiving a motion sensor signal. For example, method S100 may include generating a first response schedule for a first asset tag during a first time period, the first response schedule defining: a first trigger time for transmitting a first unicast trigger; a first wake window that intersects the first trigger time; and a second wake window associated with the motion sensor signal.
[0026]
[0028] In this example, method S100 includes, at a first node of the set of nodes, broadcasting a first configuration message including a first response schedule to a first asset tag via a configuration channel, and at the first asset tag: in response to the absence of configuration data, transitioning a transceiver of the first asset tag to the configuration channel; receiving the first configuration message via the configuration channel; configuring the first asset tag based on the first configuration message; and entering a sleep mode in response to the period to the first wake window in the sequence of wake windows exceeding a threshold period.
[0027]
[0029] In this example, method S100 includes, during a second time period, at the first asset tag and in response to receiving a motion sensor signal from the motion sensor of the first asset tag, the steps of: entering a wake mode during a second wake window; and transmitting a first ranging signal over a ranging channel during the second wake window. Method S100 further includes, during the second time period, at the set of nodes, the steps of entering a sleep mode in response to transmitting the first ranging signal; receiving the first ranging signal; and deriving a first location of the first asset tag based on instances of the first ranging signal received by the set of nodes.
[0028] 2.2 Multicast Communication Mode
[0030] Generally, method S100 is performed by a system including a set of nodes (e.g., asset tag readers, base stations), a collection of asset tags, and a controller to: triangulate the collection of asset tags within a target environment, such as a warehouse, during a set period of time; cluster the collection of asset tags into groups based on their proximity; generate a response schedule for the asset tags to transmit ranging signals to the nodes; and derive locations of asset tags of the asset tag group within the target environment. Method S100 is further performed by the system to: receive ranging signals from the asset tags; determine the locations of the asset tags within the target environment based on the ranging signals; generate a recovery schedule for asset tags excluded from the subset to elicit responses from the asset tags in response to an absence of ranging signals from asset tags of the asset tag group; and modify subsequent ranging signal transmission patterns to the nodes.
[0029]
[0031] For example, a system may be configured to perform method S100 to triangulate an initial location of each asset tag deployed in a target environment (e.g., a warehouse, a grocery store). Specifically, during a set period of time, the system may broadcast a set of unicast signals to a set of asset tags; receive a set of test responses from each asset tag at a set of nodes; triangulate an initial location for each asset tag in the target environment based on the set of test responses; and record the initial location of each asset tag in a database. For example, at a first time, the set of nodes may broadcast unicast queries to the set of asset tags; each asset tag in the set of asset tags may return a set of test queries to the set of nodes; the set of nodes may record the set of test queries; and a controller may calculate the location of the set of asset tags based on the set of test queries received by the set of nodes. Thus, the system may maintain a set of initial locations associated with the set of asset tags in the target environment for subsequent grouping and tracking within the target environment.
[0030]
[0032] In one implementation, the system may assign asset tags to asset tag groups based on criteria such as: proximity of the asset tags to each other; spatial region (e.g., a 10m x 10m space); threshold number of asset tags (e.g., maximum, minimum); priority; movement pattern / frequency; etc. In this implementation, the system may define a response schedule for each asset tag group, including group-specific parameters (multicast trigger time, wake window, set of asset tag transmission times). For example, the controller may define a set of asset tag groups based on the location proximity of the collection of asset tags; define a response schedule for a first asset tag group in the set of asset tag groups, including a multicast trigger time, a wake window that intersects the multicast trigger time, and a set of relative transmission times for each asset tag in the asset tag group; and transmit the response schedule to the set of nodes. Thus, the system may track asset tags in an asset tag group based on a multicast trigger sent to the asset tag group at a predetermined time and responses (ranging signals) from the asset tags based on the response schedule. Thus, the system may aggregate asset tags into groups based on similarity criteria; synchronize communications of asset tags of an asset tag group to a node via a schedule that defines a communication order for the asset tag group; transmit queries (e.g., multicast signals) to the asset tag group; and receive responses from asset tags of the asset tag group, thereby increasing tracking frequency by reducing buffer time between signal transmissions of individual asset tags. Thus, the system may utilize asset tag wake windows to assign more asset tags to asset tag groups for tracking in a target environment by defining a response schedule with multiple wake windows for a single asset tag group to trigger responses from asset tags of a subset of the asset tag group in an "awake" operational state while transitioning other subsets of the asset tag group to a "sleep" operational state.
[0031] 2.2.1 Non-Response Detection and Recovery
[0033] In one implementation, the system may identify an absence of ranging signals from an asset tag in the asset tag group. More specifically, due to clock drift or a failure, the asset tag may have transitioned to the “awake” state after the wake-up window specified by the response schedule (e.g., waking up too late) and therefore entered a “sleep” state during or after the wake-up window, failing to receive the multicast trigger. In another implementation, the asset tag may have transitioned to the “awake” state before the wake-up window specified by the response schedule (e.g., waking up too early) and therefore entered a “sleep” state during or before the wake-up, failing to receive the multicast trigger. For example, at a second time, a first node in the set of nodes may broadcast a multicast trigger to the first asset tag group at the multicast trigger time. The set of nodes may receive a first set of ranging signals from a first subset of asset tags in the first asset tag group. In response to identifying a first asset tag in the first asset tag group that is excluded from the first subset of asset tags, the controller may define a first recovery schedule for the first asset tag. Thus, in response to a failure to detect a ranging signal from an asset tag in an asset tag group, the system may generate a recovery schedule for the particular asset tag to direct the response via a ranging signal from the asset tag and subsequent location determination.
[0032]
[0034] In one implementation, the system may implement a hybrid of multicast and unicast communications to trigger responses from asset tags. More specifically, the system may implement unicast communications to induce responses from asset tags that did not respond to the multicast trigger and to realign the asset tag's clock to correct clock errors (e.g., clock drift). For example, a first node of the set of nodes may broadcast a unicast trigger at a sequence of unicast trigger times according to a first recovery schedule; realign the first clock of the first asset tag in response to receiving a first ranging signal from the first asset tag; and the controller may derive a first location of the first asset tag based on the first ranging signal in response to receiving the first ranging signal from the first asset tag by the first node. Thus, the system may recover from clock desynchronization with real time or from the clock times of other asset tags by realigning the clock of an asset tag that failed to transmit a ranging signal based on the multicast trigger to resynchronize with the response schedule of the asset tag group.
[0033]
[0035] The system may perform method S100 within a warehouse facility—a target environment—occupied by a collection of asset tags. More specifically, asset tags may be deployed throughout the target environment and affixed to entities in the warehouse—individual items (products), containers that hold or store items, machines, etc.—to monitor product throughput and / or movement of items within the warehouse, or worn by employees to track the movement of employees / groups of employees working or operating within the target environment.
[0034] 3. System
[0036] In one implementation, method S100 is performed by a system including a set of nodes (e.g., a network base station, a collection of one or more asset tag readers), a collection of asset tags, and a controller (e.g., a server communicatively coupled to the set of nodes). More specifically, the system includes a set of nodes that communicate with the collection of asset tags having asynchronous communication characteristics and that are deployed in a target environment, specifically asset tags described in U.S. Provisional Application No. 63 / 333,101, and a controller generally configured to derive asset tag locations, define asset tag groups, define response schedules and recovery schedules for the asset tag groups, and transmit the response schedules and recovery schedules to the set of nodes.
[0035] 4. Unicast communication mode
[0037] Generally, method S100 is performed by a system including a set of nodes (e.g., a mesh network of asset tag readers, a network of base stations, a network of asset tag readers communicatively coupled to a controller) and at least one asset tag; locating the asset tag in a target environment (e.g., a warehouse); generating a response schedule for the asset tag for exchanging unicast ranging signals with the set of nodes; configuring the asset tag to conform to the response schedule; and deriving a location of the asset tag within the target environment based on the ranging signals exchanged between the asset tag and the set of nodes. Method S100 is further performed by the system to receive ranging signals from the asset tag; and locate the asset tag within the target environment based on the ranging signals. Method S100 is further performed by the system to enable the asset tag to switch between wake and sleep modes to conserve battery power.
[0036] 4.1 Creating a Response Schedule
[0038] Block S120 of method S100 describes generating a first response schedule for a first asset tag via the set of nodes, the first response schedule defining: a sequence of trigger times for transmitting a sequence of unicast triggers; and a sequence of wake windows, each wake window in the sequence of wake windows intersecting a trigger time in the first sequence of trigger times. Generally, in block S120, the system may generate a first response schedule, the first response schedule defining times during which unicast ranging triggers can be transmitted from nodes in the set of nodes to the first asset tag and defining wake window times during which the first asset tag can enter a wake mode to receive a unicast trigger in the sequence of unicast triggers and transmit a ranging signal. The first response schedule allows the first asset tag to enter a high-power consumption wake mode only when the first asset tag is communicating with the set of nodes. Thus, the first asset tag may remain in a low-power consumption sleep mode when not communicating with the set of nodes. Thus, by generating the first response schedule, the system can reduce the power consumption of the first asset tag and extend the battery life of the first asset tag.
[0037]
[0039] In one implementation, the system may generate a first response schedule for the first asset tag, the first response schedule defining: a first trigger time for transmitting a first unicast trigger; a first wake window that intersects the first trigger time; and a second wake window associated with a motion sensor signal. Thus, the system may generate a first response schedule that defines times during which unicast ranging triggers can be transmitted from nodes of the set of nodes to the first asset tag, and defines two wake windows: one wake window during which the first asset tag can enter a wake mode and receive the unicast trigger; and another wake window during which the first asset tag can enter a wake mode and transmit a ranging signal in response to receiving the motion sensor signal. Thus, the first asset tag may initiate ranging in response to being moving.
[0038] 4.2 Asset Tag Configuration
[0040] Blocks S130, S140, S142, and S144 of method S100 recite the steps of: broadcasting, at a first node of the set of nodes, a first configuration message including a first response schedule to a first asset tag via a configuration channel; and, at the first asset tag, transitioning a transceiver of the first asset tag to the configuration channel in response to the absence of configuration data; receiving the first configuration message via the configuration channel; and configuring the first asset tag based on the first configuration message. Generally, at blocks S130, S140, S142, and S144, the system may transmit a configuration message including an asset tag identifier of the first asset tag and a first response schedule for the first asset tag. Further, at blocks S130, S140, S142, and S144, the system may receive, at the first asset tag, a configuration message via the configuration channel and configure the first asset tag based on the configuration message. In particular, the system may configure the first asset tag by synchronizing its clock to a system time of the set of nodes and configuring the first asset tag to comply with a first response schedule. Thus, the system may configure the first asset tag to enable the first asset tag to transmit ranging signals to the set of nodes, and the ranging signals may be used by the system to determine the location of the first asset tag.
[0039]
[0041] In one implementation, the first asset tag may receive the first configuration message over the configuration channel by accessing the first response schedule of the first configuration message and by accessing the asset tag identifier of the first configuration message. Furthermore, the system may configure the first asset tag based on the first configuration message by, in response to the asset tag identifier of the configuration message matching the asset tag identifier of the first asset tag, synchronizing the clock of the first asset tag to a system time of the set of nodes and configuring the first asset tag to transition between sleep mode and wake mode according to the first response schedule. Thus, the system may verify that a configuration message is sent to the first asset tag based on the asset tag identifier included in the configuration message. Furthermore, after verifying the asset tag identifier, the system may configure the first asset tag by synchronizing the clock of the first asset tag to a system time of the set of nodes and configuring the first asset tag to conform to the first response schedule.
[0040]
[0042] In another implementation, the system may encrypt the configuration message to protect the information contained in the configuration message from corruption. In this implementation, the system may also implement a decryption key for decrypting the configuration message at the asset tag. In particular, the system may generate an encrypted configuration message by encrypting a first configuration message; and distribute the encryption key to the first asset tag by broadcasting the encrypted configuration message to the first asset tag via a configuration channel, and broadcast the first configuration message to the first asset tag via the configuration channel. Furthermore, the system may receive the first configuration message at the first asset tag via the configuration channel by decrypting the encrypted configuration message via the encryption key. Thus, the system may encrypt the configuration message to protect the configuration information transmitted to the asset tag and ensure the reliability of asset tag tracking.
[0041]
[0043] In another implementation, the system may transition the asset tag to the configuration channel in response to the asset tag not receiving a unicast trigger during the wake window. In this implementation, a first node of the set of nodes may broadcast a second unicast trigger over the ranging channel. In this implementation, the first asset tag may: enter a wake mode based on a second wake window of the sequence of wake windows; transition the transceiver of the first asset tag to the configuration channel in response to not receiving the second unicast trigger over the ranging channel; receive a second configuration message over the configuration channel including a system time of the set of nodes; and update the clock of the first asset tag according to the system time of the set of nodes based on the second configuration message. Thus, in response to not receiving a unicast trigger during the wake window, which occurs due to asset tag clock drift or the asset tag being unconfigured, the system may transition the asset tag to the configuration channel. Upon receiving the configuration message at the asset tag, the system may configure the asset tag, which may include synchronizing the asset tag's clock with the clocks of the set of nodes and / or updating the asset tag's response schedule.
[0042] 4.3 Ranging
[0044] Blocks S150, S168, S168, and S168 of method S100 recite the steps of: broadcasting, at a first node of the set of nodes, a first unicast trigger of the sequence of unicast triggers over a ranging channel based on a first trigger time of the sequence of trigger times; and at a first asset tag: entering a wake mode based on a first wake window; transmitting a first ranging signal in response to receiving the first unicast trigger over the ranging channel; and entering a sleep mode in response to transmitting the first ranging signal. Generally, in blocks S150, S168, S168, and S168 of method S100, the system may trigger a node to measure a distance to the asset tag (e.g., characterize a distance to the asset tag) by transmitting a unicast trigger from the node of the set of nodes to the first asset tag, and may receive the unicast trigger via the first asset tag while the first asset tag is in a wake mode and respond to the unicast trigger by transmitting a ranging signal. Additionally, the system may transmit the unicast trigger and ranging signals over a ranging channel that is different from the configuration channel used to transmit the configuration message. Thus, the system may enable the first asset tag to transmit a ranging signal over the ranging channel, and the ranging signal may be used to derive a first location of the first asset tag. Furthermore, the system may configure the first asset tag to enter a wake mode (e.g., a high energy consumption mode) only when the first asset tag is about to receive the unicast trigger, and transition the first asset tag to a sleep mode (e.g., a low energy consumption mode) after the first asset tag transmits the first ranging signal. Thus, by configuring the first asset tag to remain in sleep mode when the first asset tag is not transmitting or receiving signals, the system can reduce power consumption and extend the battery life of the first asset tag.
[0043]
[0045] Blocks S152 and S154 of method S100 recite the steps of: receiving, at a set of nodes, a first ranging signal; and deriving a first location of a first asset tag at a second time based on the instance of the first ranging signal received by the set of nodes. Generally, in blocks S152 and S154 of method S100, the system may derive a first location of a first asset tag based on the instance of the first ranging signal received by the set of nodes. For example, the system may identify the time-of-flight of a first ranging signal and / or a unicast trigger exchanged by the first asset tag and a first node of the set of nodes. Then, based on the time-of-flight of the first ranging signal and / or the unicast trigger, the system may determine a distance between the first asset tag and the first node of the set of nodes. In this manner, the system may determine a distance between the first asset tag and each node of the set of nodes and derive a location of the first asset tag based on the distance and the known location of each node of the set of nodes. Thus, by periodically triggering ranging between the set of nodes and the first asset tag, the system may continuously track the location of the first asset tag (and the asset to which the first asset tag is attached).
[0044]
[0046] In one implementation, a first node of the set of nodes may broadcast a second unicast trigger of the sequence of unicast triggers over the ranging channel based on a second trigger time of the sequence of trigger times during a third time period. In this implementation, the first asset tag may: enter a wake mode based on a second wake window of the sequence of wake windows; transmit a second ranging signal in response to receiving the second unicast trigger over the ranging channel; and enter a sleep mode in response to transmitting the second ranging signal. In this implementation, the set of nodes may: receive the first ranging signal; and derive a second location of the first asset tag based on the instance of the second ranging signal received by the set of nodes. Thus, the system may initiate ranging by transmitting a ranging trigger at any trigger time of the sequence of trigger times. Furthermore, by periodically triggering ranging between the set of nodes and the first asset tag, the system may continuously track the location of the first asset tag (and the asset tagged with the first asset tag).
[0045]
[0047] In one implementation, the system may generate a notification indicating the positioning and / or movement of the first asset tag based on the location of the first asset tag. For example, the system may: calculate the distance between the first location (e.g., the location derived at a first time) and the second location (e.g., the location derived at a second time) of the first asset tag; and, in response to the distance exceeding a threshold distance, generate a notification indicating that the asset associated with the first asset tag has been moved a distance exceeding the threshold distance; and transmit the notification to a device of an operator of the target environment containing the asset tag. Thus, the system may transmit a notification to an operator of the target environment indicating that the asset tag has been moved a long distance. Thus, the system may detect the potential theft of the asset tag—and associated objects—from the target environment based on the asset tag's unusual or atypical movement behavior, position, or location; and accordingly prompt the operator of the target environment to investigate the asset tag and / or its associated objects.
[0046] 4.3.1 Sleep Mode vs. Wake Mode
[0048] In one implementation, the system may configure the first asset tag to enter sleep mode by disabling the first asset tag's transceiver; transitioning the first asset tag's processor into sleep mode; and maintaining power supply to the first asset tag's clock and motion sensor from the first asset tag's battery. In this implementation, the system may configure the first asset tag to enter wake mode by enabling the first asset tag's transceiver; and transitioning the first asset tag's processor into active mode. Thus, when the first asset tag is in sleep mode, the first asset tag may consume less power.
[0047]
[0049] In another implementation, the system may configure the first asset tag to enter sleep mode by drawing power from the first asset tag's battery at a first power consumption rate. In this implementation, the system may configure the first asset tag to enter wake mode by drawing power from the first asset tag's battery at a second power consumption rate that exceeds the first power consumption rate. Thus, by switching between sleep mode and wake mode, the first asset tag can operate for a longer period of time than an asset tag that remains in wake mode.
[0048] 4.3.2 Ranging Channels vs. Configuration Channels
[0050] In one implementation, the system may broadcast a first configuration message to the first asset tag over the configuration channel by broadcasting the first configuration message to the first asset tag over the configuration channel associated with a first frequency. In this implementation, the system may broadcast a first unicast trigger over the ranging channel by broadcasting the first unicast trigger over a ranging channel associated with a second frequency range excluding the first frequency. In another example, the system may receive the first configuration message over a first frequency (e.g., a first radio frequency) associated with the configuration channel and transmit a first ranging signal over a second frequency (e.g., a second radio frequency) within a second frequency range excluding the first frequency. Thus, the system may define different frequencies for the configuration channel and the ranging channel to avoid interference between the configuration message and the ranging signal.
[0049] 4.4 Motion-triggered ranging
[0051] Blocks S160, S162, and S166 of method S100 recite the steps of: entering a wake mode during a second wake window at the first asset tag in response to receiving a motion sensor signal from the motion sensor of the first asset tag; and transmitting a first ranging signal over the ranging channel during the second wake window. Additionally, block S168 of method S100 recites entering a sleep mode at the first asset tag in response to transmitting the first ranging signal. Generally, in blocks S160, S162, S166, and S168, the system may temporarily enter a wake mode and transmit a ranging signal in response to receiving a signal from the motion sensor of the first asset tag. Thus, the system may initiate ranging of the first asset tag in response to movement of the first asset tag.
[0050]
[0052] Further, in this implementation, the system may initiate ranging in response to both receiving the motion sensor signal and receiving a unicast trigger from a node of the set of nodes. In particular, in this implementation, the system may, prior to receiving the motion sensor signal, broadcast a first unicast trigger over the ranging channel at a first node of the set of nodes. In this implementation, the system may further enter, at the first asset tag, a wake mode for a first wake window; transmit a second ranging signal over the ranging channel in response to receiving the first unicast trigger over the ranging channel; and enter a sleep mode in response to transmitting the second ranging signal.
[0051] 5. Multicast Communication Protocol
[0053] Generally, method S100 is performed by a system including a set of nodes (e.g., a mesh network of asset tag readers, a network of base stations, a network of asset tag readers communicatively coupled to a controller) and a collection of asset tags to: identify a location of each asset tag of the set of asset tags within a target environment (e.g., a warehouse); divide the set of asset tags into groups of asset tags based on the asset tag locations; generate, for the asset tag groups, a response schedule that facilitates the exchange of multicast triggers and ranging signals between the set of nodes and each asset tag of the asset tag group; configure each asset tag of the asset tag group to conform to the response schedule; transmit a ranging signal from each asset tag of the asset tag group in response to receiving a multicast trigger at the asset tag group; and derive a location of each asset tag of the asset tag group within the target environment based on the ranging signals received by the set of nodes.
[0052] 5.1 Unicast Setup Period: Asset Tag Location in Target Environment
[0054] Blocks S102 and S104 of method S100 recite the steps of: broadcasting a unicast query to a set of asset tags during a first time period and at a set of nodes; and receiving a first set of uncast responses from the set of asset tags. Further, block S106 recites calculating a first set of locations for the set of asset tags based on the first set of unicast responses during the first time period. Generally, at blocks S102, S104, and S106, the system may determine locations of asset tags in the set of asset tags. For example, the set of nodes may send a unicast query to a first asset tag in the set of asset tags. After the unicast response from the first asset tag is received by a subset of the nodes, the system may determine, at the set of nodes, the location of the first asset tag by trilateration. Thereafter, the set of nodes may send a second unicast query to a second asset tag in the set of asset tags and derive the location of the second asset tag based on the unicast response from the second asset tag. By repeating this process for each asset tag in the collection of asset tags, the system may obtain a first set of locations for the collection of assets. Thus, the system may determine an initial location for each asset tag in the collection of asset tags in the target environment.
[0053]
[0055] In one implementation, the system may receive a set of unicast queries from the set of nodes at a first asset tag and send a unicast response of the set of unicast responses to the set of nodes. In this implementation, the system may further calculate, at the set of nodes, a second location of the first asset tag based on the first set of unicast responses; and assign the first asset tag to a first asset tag group based on the second location. Thus, the set of nodes may send unicast queries to a set of asset tags and receive unicast responses to the queries from the set of asset tags. Then, based on the unicast responses, the system may determine a location of each asset tag in the set of asset tags. The system may then implement these locations to partition the set of asset tags into a set of asset tag groups.
[0054]
[0056] In one variation, the system may configure a collection of asset tags in the target environment for subsequent grouping and tracking based on communications with a set of nodes during a configuration period (e.g., identify an initial location for the collection of asset tags). More specifically, upon deployment of asset tags into the target environment, the system may trigger the collection of asset tags to respond to a set of nodes based on a set of queries directed to each asset tag to discover the initial location of each asset tag within the target environment.
[0055]
[0057] In one implementation, the system may identify (e.g., triangulate) the location of an asset tag based on a set of response signals (e.g., test queries) received by a set of nodes communicating with the set of asset tags during a set period of time. Specifically, a node in the set of nodes may broadcast a query (e.g., a packet of data) to an asset tag in the set of asset tags via a unicast communication protocol. In one implementation, the system may identify a node that is closest to the set of asset tags from the set of nodes broadcasting the query. In response to receiving the query, the asset tag may return a test query to the node for recording the test query. For example, at a first time, at the set of nodes, the system may: broadcast a unicast query to the set of asset tags; at each asset tag in the set of asset tags, return a set of test queries to the set of nodes; at the set of nodes, record the set of test queries; and, at a controller, calculate the location of the set of asset tags based on the set of test queries received by the set of nodes. Thus, based on responses or test queries received from the asset tags, the system may calculate an initial position for each asset tag of a collection of asset tags deployed throughout the target environment for subsequent tracking and detection of the asset tag's movement within the target environment.
[0056] 5.2 Assigning Asset Tag Groups
[0058] Block S110 of method S100 recites dividing the set of asset tags into a set of asset tag groups (e.g., based on the proximity of a first set of locations of the set of asset tags). Generally, in block S110, the system may assign each asset tag in the set of asset tags to an asset tag group in the set of asset tag groups. For example, the system may assign asset tags that are within a threshold distance of neighboring asset tags to a first asset tag group. Thus, the system may divide the set of asset tags into the set of asset tag groups. Furthermore, a set of nodes may simultaneously communicate with all asset tags in an asset tag group via a multicast communication mode (e.g., multicast ranging) instead of individually communicating with each asset tag in the asset tag group via a unicast communication mode (e.g., unicast ranging). By employing the multicast communication mode instead of the unicast communication mode, the system may monitor the locations of a large set of asset tags (e.g., a set of more than 265 asset tags).
[0057]
[0059] In one implementation, the controller may cluster a set of asset tags into asset tag groups based on criteria such as a threshold distance between adjacent asset tags (e.g., within 20 meters), a priority score, an entity type (e.g., item type, crate of item), a movement frequency (e.g., asset tags are moving 75% of the time), a threshold asset tag group capacity (e.g., 20 asset tags per group), a threshold size of a geographic area (e.g., a 5 meter by 5 meter area per group), etc. In one variation, the controller may cluster asset tags of a set of asset tags into groups based on a threshold distance between the asset tags. For example, at a first time, the controller may define a set of asset tag groups based on the location proximity of the set of asset tags. In one variation, the controller may cluster asset tags into asset tag groups based on a clustering technique (e.g., a connectivity model, a density model, a feature space). More specifically, the controller may map a set of asset tags to a multivariate feature space based on a set of criteria and cluster the asset tags into asset tag groups in response to identifying clusters of asset tags that exhibit similar characteristics. For example, at a first time, the controller may define a set of asset tag groups based on the clustering technique and the set of criteria. Thus, instead of tracking a huge number (e.g., 100, 1000) of individual asset tags via individual unicast triggers, the system can consolidate asset tags into groups based on similar criteria and synchronous communication to reduce the delay between identifying asset tags and thereby increase the tracking frequency of sets of asset tags.
[0058]
[0060] In one implementation, the system may partition the set of asset tags into a set of asset tag groups based on a first set of locations of the set of asset tags by: identifying a first asset tag group of the set of asset tags, a first subset of locations of the first asset tag group, of the first set of locations within a threshold distance of a first node of the set of nodes; and identifying a second asset tag group of the set of asset tags, a second subset of locations of the second asset tag group, of the first set of locations within a threshold distance of a second node of the set of nodes. Thus, the system may partition the set of asset tags into two asset tag groups based on the proximity of asset tags in each of the two groups to two nodes of the set of nodes. In particular, asset tags in the first asset tag group are located within a threshold distance of a first node of the set of nodes, and asset tags in the second asset tag group are located within a threshold distance of a second node of the set of nodes.
[0059]
[0061] In another implementation, the system may identify a first asset tag group that defines a first priority level for the collection of asset tags by identifying a first asset tag group for the collection of asset tags based on a high priority level of the items tracked by the first asset tag group. In this implementation, the system may identify a second asset tag group that defines a second priority level for the collection of asset tags by identifying a second asset tag group for the collection of asset tags based on a low priority level of the items tracked by the second asset tag group. Thus, the system may divide the collection of asset tags into asset tag groups based on the priority levels of the items tracked by the asset tags in the collection of asset tags. For example, the system may include asset tags that track high priority items in the first asset tag group and asset tags that track low priority items in the second asset tag group.
[0060]
[0062] In another implementation, the system may identify a first asset tag group that defines a first priority level for the collection of asset tags by identifying a first asset tag group for the collection of asset tags based on a first subset of locations in the first set of locations that corresponds to a first asset tag group located in a high-priority area. In this implementation, the system may identify a second asset tag group for the collection of asset tags by identifying a second asset tag group for the collection of asset tags based on a second subset of locations in the first set of locations that corresponds to a second asset tag group located in a low-priority area, each asset tag in the first asset tag group defining a second priority level that is lower than the first priority level. Thus, the system may divide the collection of asset tags into asset tag groups based on the priority levels of the areas of the target environment in which the asset tags are located. For example, the system may include asset tags located in high-priority areas in the first asset tag group and asset tags located in low-priority areas in the second asset tag group.
[0061]
[0063] In yet another implementation, the system may assign a unique identifier to each asset tag group to distinguish the asset tag groups among a collection of asset tags. Specifically, the controller may generate the unique identifier based on a set of characteristics describing the asset tag group, such as the number of asset tags (5, 20, 100), the type of entity (cosmetics, food, clothing), or a priority metric (high priority, low priority). For example, the controller may generate a unique identifier for a first asset tag group based on the set of characteristics associated with the asset tags in the asset tag group; and assign that unique identifier to the first asset tag group. Thus, the system may monitor the asset tags and distinguish between asset tag groups deployed in a target environment based on the unique identifiers.
[0062] 5.3 Scheduling distance measurement triggers
[0064] Block S120 of method S100 describes generating a first response schedule for a first asset tag group of the set of asset tag groups, the first response schedule defining: a first multicast trigger time for transmission of a first multicast trigger; a first transmission time for each asset tag of the first asset tag group after receipt of the first multicast trigger and specific to the asset tag; and a first wake window that intersects the first multicast trigger time and a second wake window that intersects the first transmission time. Generally, in block S120, the system may generate a first response schedule that defines a time when a multicast ranging trigger can be transmitted from a node of the set of nodes to the first asset tag group and defines a wake window when each asset tag of the first asset tag group can enter a wake mode to receive the multicast trigger and transmit a ranging signal. The first response schedule enables each asset tag of the first asset tag group to enter a wake mode (e.g., a high power consumption mode) only if the asset tag is in communication with the set of nodes. Thus, each asset tag in the first asset tag group may remain in a low power sleep mode when the first asset tag is not communicating with the set of nodes. Thus, by generating the first response schedule, the system can extend the battery life of the asset tags in the first asset tag group.
[0063]
[0065] In general, the system may define a response schedule for a particular asset tag group. In one implementation, the controller may define a response schedule that includes a multicast trigger time that identifies a time associated with transmission of a multicast trigger signal from a node to the asset tag group, a wake window that characterizes a target period of time for asset tags in the asset tag group to transition from a “sleep” operational state to an “awake” operational state to receive the multicast trigger signal, and a set of elapsed times that identify a target timestamp for each asset tag in the asset tag group to transmit a response (e.g., a ranging signal) to the set of nodes. The controller may then transmit the schedule to the set of nodes for subsequent transmission of trigger signals to the asset tags based on the schedule. For example, at a first time, for a first asset tag group in the set of asset tag groups, the system may define the response schedule including: a multicast trigger time, a wake window that intersects the multicast trigger time, and a set of transmission times after receipt of the trigger, where each transmission time in the set of transmission times is specific to one asset tag in the asset tag group; and transmit the response schedule to the set of nodes. Thus, the system reduces power consumption of asset tags by synchronizing communications with nodes during wake windows and keeping asset tags in sleep mode (low power mode) when they are not scheduled to communicate (e.g., transmit ranging signals to nodes).
[0064]
[0066] In one variation, the controller may define multiple response schedules for the asset tag group. For example, the controller may: define a first response schedule for a first subset of asset tags in the asset tag group, the first response schedule including a first multicast trigger time, a first wake window that intersects with the first multicast trigger time, and a first set of transmission times after receipt of the trigger, each transmission time in the first set of transmission times being specific to one asset tag in the first subset of asset tags in the asset tag group; define a second response schedule for a second subset of asset tags in an asset tag group different from the first subset, the second response schedule including a second multicast trigger time, a second wake window that intersects with the second multicast trigger time, and a second set of transmission times after receipt of the trigger, each transmission time in the second set of transmission times being specific to one asset tag in the second subset of asset tags in the asset tag group; and transmit the first response schedule and the second response schedule to the set of nodes.
[0065]
[0067] In one implementation, the system may identify a first asset tag group in the set of asset tags associated with a first priority level. In this implementation, the system may identify a second asset tag group in the set of asset tags, the second asset tag group associated with a second priority level that is lower than the first priority level. The system may define a first response schedule for the first asset tag group, the first response schedule including a first set of multicast trigger times separated by a first time interval. The system may define a second response schedule for the second asset tag group, the second set of multicast trigger times separated by a second time interval that is longer than the first time interval. In this implementation, the system may generate different response schedules for different asset tag groups. In particular, the system may generate a first response schedule for the first asset tag group associated with high-priority tags and a second response schedule for the second asset tag group associated with low-priority tags. In one example, the system may define a shorter time interval separating multicast triggers for a first response schedule and a longer time interval separating multicast triggers for a second response schedule. Thus, a set of nodes may send multicast triggers to high-priority asset tags more frequently (e.g., at shorter time intervals) than to low-priority tags.
[0066] 5.3.1 Time-based scheduling of ranging signals
[0068] In one variation, the system may generate a first response schedule for a first asset tag group, the first response schedule defining: a first multicast trigger time for transmission of a first multicast trigger to the first asset tag group; for each asset tag in the first asset tag group, a first wake window that intersects the first multicast trigger, a transmit time specific to the asset tag after receiving the first multicast trigger, and a second wake window that intersects the transmit time. In this implementation, the system may ensure that ranging signals from each asset tag in the asset tag group do not interfere by scheduling the transmission of ranging signals of each asset tag in the first asset tag group at a time specific to each asset tag in the first asset tag group. In particular, in response to the first asset tag group receiving a multicast trigger: the first asset tag may transmit a first ranging signal at a first time; the second asset tag may transmit a second ranging signal at a second time after the first time; and the third asset tag may transmit a third ranging signal at a third time after the second time. The system may repeat this process for other tags in the first asset tag group. Thus, the system may transmit ranging signals from each asset tag in the first asset tag group to the set of nodes without interference from ranging signals. In this implementation, some asset tags in the asset tag group may enter the wake window twice: at a first time to receive the multicast trigger; and at a second time to transmit the ranging signal. For example, a first asset tag in the first asset tag group may enter wake mode at a first time; receive the first multicast trigger; and enter sleep mode based on a response schedule indicating that the time period until the second wake window exceeds a threshold time period. In this example, the first asset tag in the first asset tag group may enter wake mode at a second time; transmit the first ranging signal; and enter sleep mode in response to transmitting the first ranging signal. However, in this implementation, some asset tags in the first asset tag group may enter wake mode only once to both receive the multicast trigger and transmit the ranging signal.For example, a second asset tag in a first asset tag group may, at a first time: enter a wake mode; transmit a second ranging signal in response to the second asset tag's first wake window overlapping with the second asset tag's second wake window; and enter a sleep mode in response to transmitting the second ranging signal.
[0067] 5.3.2 Frequency-Based Scheduling of Ranging Signals
[0069] In one implementation, the system may generate a first response schedule for a first asset tag group of the set of asset tag groups, the first response schedule defining: a first set of multicast trigger times for transmission of the first set of multicast triggers; a first set of wake windows for each asset tag of the first asset tag group, each wake window of the first wake window set intersecting a multicast trigger time of the first multicast trigger time set; and a first transmission frequency for ranging signals that is specific to the asset tag. In this implementation, the system prevents interference of ranging signals transmitted by asset tags of the first asset tag group by scheduling transmission of ranging signals from each asset tag of the first asset tag group at a frequency (e.g., radio frequency) that is specific to each asset tag of the first asset tag group. In particular, in response to the first asset tag group receiving a multicast trigger: the first asset tag may transmit a first ranging signal at the first frequency; the second asset tag may transmit a second ranging signal at the second frequency; and the third asset tag may transmit a third ranging signal at the third frequency. The system may repeat this process for each asset tag in the first asset tag group. Thus, the set of nodes may receive ranging signals from each asset tag in the first asset tag group at different frequencies (e.g., radio frequencies) without the ranging signals interfering.
[0068] 5.3.3 Continuous Time and Frequency Based Scheduling of Ranging Signals
[0070] In one implementation, the system may generate a first response schedule defining a first set of multicast trigger times for transmission of a first set of multicast triggers for a first asset tag group of the set of asset tag groups. The first response schedule may define, for each asset tag of the first asset tag group: a set of transmission time and frequency pairs including the set of transmission times and a set of frequency pairs specific to the asset tag at each transmission time of the set of transmission times; and a first set of wake windows, wherein each wake window of the first set of wake windows intersects a multicast trigger time of the first set of multicast trigger times and each transmission time of the set of transmission time and frequency pairs. In this implementation, the system may ensure that ranging signals from each asset tag of the first asset tag group do not interfere by scheduling transmission of ranging signals from each asset tag of the first asset tag group multiple times and at frequencies specific to each asset tag of the first asset tag group after receiving the multicast trigger. In one example, a sample asset tag group includes three asset tags. In this example, at a first time after receipt of the multicast trigger by the sample asset tag group: the first asset tag may transmit a first ranging signal at the first frequency; the second asset tag may transmit a second ranging signal at the second frequency; and the third asset tag may transmit a third ranging signal at the third frequency. In this example, at a second time following the first time: the first asset tag may transmit a fourth ranging signal at the second frequency; the second asset tag may transmit a fifth ranging signal at the third frequency; and the third asset tag may transmit a sixth ranging signal at the first frequency. At a third time following the second time, the first asset tag may transmit a seventh ranging signal at the third frequency; the second asset tag may transmit an eighth ranging signal at the first frequency; and the third asset tag may transmit a ninth ranging signal at the second frequency. Thus, the system may transmit ranging signals from each asset tag in the first asset tag group to a set of nodes without interference of ranging signals.Additionally, the system may achieve a higher sampling rate of the ranging signal by scheduling multiple ranging signal transmissions (e.g., transmissions from a first asset tag, a second asset tag, and a third asset tag), each at a unique frequency, after receiving a multicast trigger.
[0069] 5.4 Asset Tag Configuration
[0071] Block S130 of method S100 recites, at a first node of the set of nodes, broadcasting a first configuration message to a first asset tag group via a configuration channel. Blocks S140, S142, and S144 recite, at a first asset tag of the first asset tag group, changing the receive frequency of its transceiver to a frequency associated with the configuration channel in response to the absence of configuration data; receiving the first configuration message via the configuration channel; and configuring the first asset tag based on the first configuration message. Block S146 recites entering a sleep mode based on a first response schedule indicating that a period to a first wake window exceeds a threshold period. Generally, in blocks S130, S140, S142, and S144, the system may transmit a configuration message including a group identifier for the first asset tag group, an asset tag identifier for each asset tag in the first asset tag group, and a first response schedule for the first asset tag group. Further, in blocks S130, S140, S142, and S144, the system may receive a configuration message via the first asset tag over the configuration channel and configure each asset tag in the first asset tag group based on the configuration message. For example, the system may configure each asset tag in the first asset tag group by: synchronizing the asset tag's clock to a system time of the set of nodes; assigning an asset tag ID and a group ID to the asset tag; and employing a first response schedule at the asset tag. Thus, after configuration, each asset tag in the first asset tag group may receive a multicast trigger from the set of nodes and transmit ranging signals to the set of nodes according to the first response schedule.
[0070]
[0072] In one implementation, the system may receive a first configuration message over a configuration channel by: accessing a first response schedule in the first configuration message; accessing an asset tag identifier in the first configuration message; and accessing a group identifier in the first configuration message. In this implementation, the system may configure a first asset tag based on the first configuration message by: configuring the first asset tag to transition between sleep mode and wake mode in accordance with the first response schedule in response to the asset tag identifier in the configuration message matching the asset tag identifier of the first asset tag and the group identifier in the configuration message matching the group identifier of the first asset tag group. Thus, the system may verify that a configuration message is scheduled for a first asset tag in the first asset tag group based on the asset tag identifier and group identifier included in the configuration message. Furthermore, after verifying the asset tag identifier and group identifier, the system may configure the first asset tag to conform to the first response schedule.
[0071] 5.5 Ranging
[0073] Blocks S150, S152, and S154 of method S100 recite the steps of: broadcasting a first multicast trigger at a first multicast trigger time defined by a first response schedule, at a set of nodes; receiving a first set of ranging signals from a first asset tag group responding to the first multicast trigger; and deriving a first set of locations of the first asset tag group based on the first set of ranging signals in response to receiving the first set of ranging signals from the first asset tag group. Generally, in blocks S150, S152, and S154, the system may trigger each asset tag in the first asset tag group to emit a ranging signal and calculate a location of each asset tag in the first asset tag group based on the set of ranging signals received by the set of nodes. In particular, the system may first calculate a set of distances between each asset tag in the first asset tag group and a subset of nodes in the set of nodes (e.g., based on the time-of-flight of the ranging signals) and derive a first set of locations of the first asset tag group based on the set of distances. Thus, the system may derive a location among a set of locations for each asset tag in the asset tag group.
[0072]
[0074] In one implementation, the system may transmit a trigger signal to asset tags in an asset tag group to elicit a response from each asset tag. More specifically, a node in the set of nodes may transmit a multicast trigger signal to each asset tag in the asset tag group to trigger a response back to the node via a ranging signal. For example, at a second time, a first node in the set of nodes may broadcast a multicast trigger to each asset tag in the first asset tag group at a multicast trigger time defined by the response schedule. Thus, the multicast trigger may elicit communications and responses from the asset tag group to locate responding asset tags in the asset tag group and detect non-responding asset tags.
[0073]
[0075] Further, the system may receive a response from each tag in the asset tag group and determine the location of each asset tag based on the ranging signal associated with the response. In one implementation, a set of nodes may receive a set of responses (e.g., ranging signals) from the asset tag group. For example, at a second time, the set of nodes may: receive a first set of ranging signals from a first asset tag group; and, at the controller, derive the location of the asset tag based on the first set of ranging signals. Thus, the system may determine the location of each asset tag in the asset tag group based on the ranging signals received by the set of nodes.
[0074]
[0076] In one implementation, a first node of the set of nodes may broadcast a first multicast trigger over the ranging channel during a first wake window. A first asset tag of a first asset tag group may enter wake mode during the first wake window and receive the first multicast trigger over the ranging channel; and enter sleep mode based on a first response schedule indicating that the time period to a second wake window exceeds a threshold time period. In this implementation, a first asset tag of the first asset tag group may enter wake mode during the second wake window; transmit a first ranging signal over the ranging channel; and enter sleep mode in response to transmitting the first ranging signal. The set of nodes may further receive a first set of ranging signals from the first asset tag group during the second wake window; and derive a first set of locations of the first asset tag group based on the first set of ranging signals. Thus, the system may wake up twice and transmit ranging signals with a delay.
[0075]
[0077] In one variation, the set of nodes may receive a set of ranging signals from a portion of the asset tags in the asset tag group. For example, at a second time, the set of nodes may receive a first set of ranging signals from a first subset of the asset tags in a first asset tag group, and the controller may derive a location of the first subset of asset tags based on the first set of ranging signals. Thus, the system may detect the absence of ranging signals from a subset of the asset tags in a particular asset tag group due to an asset tag communication error and recover the ranging signals that were not received from the subset of asset tags.
[0076]
[0078] In one implementation, the system may: derive a set of locations for the first asset tag group based on a first set of ranging signals received from the first asset tag group; populate a digital map of the target environment with a second set of locations for the first asset tag group; and render the digital map on a display of an operator's device of the target environment. Thus, the system may generate a visual representation of the asset tag locations derived based on the ranging signals received from the asset tags. For example, the system may generate a digital map of the first asset tag group of the target environment. Furthermore, the system may update the visual representation of the asset tag locations each time a ranging trigger is received from the asset tag. For example, the system may update the map of the target environment to show how the asset tags of the first asset tag group are moving over time.
[0077] 5.6 Deploying and Assigning New Tags
[0079] In one implementation, the system may predict new asset tags and dynamically assign new asset tags to existing groups based on group criteria (e.g., target environment, target movement scheme, target entity) when new asset tags are deployed to a target environment. For example, at a first time, the controller may: identify a new asset tag that includes a set of target characteristics; predict an asset tag group for the new asset tag based on the set of target characteristics; and assign the new asset tag to the first asset tag group.
[0078]
[0080] In one variation, during a first time period, the controller may define a configuration message that characterizes: an asset tag group identifier (e.g., group_id) and a vector of asset tag identifiers (e.g., tag_ids) corresponding to asset tags in the asset tag group. In this variation, the vector of asset tag identifiers may define an order of asset tags corresponding to a chronological order of trigger responses. Thus, an index of asset tag identifiers in the vector defines a trigger response order for the asset tag group. In this variation, the controller may send a configuration message to a collection of asset tags (e.g., asset tag group) in the target environment. Each asset tag may then identify an asset tag identifier associated with the asset tag in the vector of asset tag identifiers. In response to identifying the asset tag identifier in the vector of asset tag identifiers, a new asset tag may integrate with the asset tag group based on the asset tag group identifier. The system may then transmit a response schedule for the asset tag group to a set of nodes for subsequent location and ranging of the asset tag group. Thus, the system may integrate new asset tags deployed in the target environment by assigning the new asset tags to asset tag groups based on group characteristics and target behavior. In one implementation, the system may broadcast a configuration message to a set of target asset tags (e.g., expected asset tags). For example, when a configuration message is broadcast, the set of expected tags that are likely to be configured may receive the configuration message.
[0079] 5.7 Regrouping tags
[0081] Blocks S170 and S172 of method S100 recite the steps of identifying a first asset tag in a first asset tag group based on a first location of the second set of locations of the first asset tag; and updating a first response schedule to remove the first asset tag from the first asset tag group in response to identifying the first asset tag. Generally, in blocks S170 and S172, the system may identify an asset tag from the first asset tag group to be reassigned to a new asset tag group and remove the identified asset tag from the first asset tag group. In one example, the system may identify a first asset tag for reassignment from the first asset tag group based on the movement frequency of the first asset tag exceeding the average asset tag movement frequency of the first asset tag group. Generally, the system may reassign the first asset tag to an existing asset tag group having one or more asset tags, or to a new asset tag group in which the first asset tag is a single asset tag. In response to reassigning the first asset tag to a new asset tag group if the first asset tag is a single asset tag, the system may send a unicast trigger to the new asset tag group. By regrouping asset tags based on their currently derived locations, the system may prioritize monitoring of certain tags over other tags.
[0080]
[0082] For example, items in a first area of a warehouse may be more likely to be stolen than items in a second area of the warehouse. Thus, the system may assign asset tags in the first area to a first asset tag group and asset tags in the second area to a second asset tag group. The system may send multicast triggers more frequently to the first asset tag group than to the second asset tag group. Thus, the system may prioritize asset tags in the first area by grouping the asset tags in the first area into the first asset tag group.
[0081]
[0083] In one implementation, the system may remove an asset tag from an asset tag group and assign the tag to a different asset tag group in response to receiving a ranging signal from the asset tag based on the recovery schedule. More specifically, the controller may detect that an asset tag has moved away from a subset of asset tags in the asset tag group by a distance that exceeds a threshold distance for the asset tag group (e.g., 20 meters) based on its location. For example, the controller may: derive a first location of the first asset tag based on the first ranging signal; remove the first asset tag from the first asset tag group in response to the first location exceeding the threshold distance from the target distance range for the first asset tag group; assign the first asset tag to a second asset tag group; assign a unique identifier associated with the second asset tag group to the first asset tag; and transmit a second response schedule to the first asset tag associated with the second asset tag group. Thus, the system may reassign asset tags to other asset tag groups based on their proximity to asset tags in the other asset tag groups.
[0082]
[0084] In one implementation, the system may identify a first asset tag of a first asset tag group (e.g., a first asset tag to be regrouped) based on a first location (e.g., a current location) of the asset tag. For example, the system may calculate a distance between the first location of the first asset tag and a reference location of the first asset tag group. In this example, the reference location defines an area associated with the asset tag group such that each asset tag of the first asset tag group is located within a threshold distance of the reference location. In response to the first distance between the location of the first asset tag and the reference location exceeding the threshold distance, the system may detect that the first asset tag is outside the area occupied by the first asset tag group. Thus, the system may identify the asset tag located outside the area associated with the asset tag group of asset tags. In response to identifying the asset tag located outside the area associated with the group of asset tags, the system may reassign the asset tag to a new group.
[0083]
[0085] In one implementation, the system may: identify a first distance between the asset tag's current location (e.g., a location derived at a first time) and the asset tag's previous location (e.g., a location derived at a second time prior to the first time), the first distance representing a distance traveled by the first asset tag during a first time period between the second time and the first time; calculate a velocity of the first asset tag in the target environment based on the first distance and the first time period; and identify a first asset tag to be reassigned from a first asset tag group in response to the first asset tag's velocity exceeding a target velocity for the asset tag in the target environment. Thus, the system may reassign an asset tag to a new group in response to the asset tag exhibiting anomalous behavior, such as an abnormally high velocity. The system may reassign an asset tag exhibiting anomalous behavior to a new group to more closely track the asset tag and prevent potential theft of the asset tag and associated objects.
[0084]
[0086] In one implementation, the system may receive a first ranging signal from a second asset tag in a first asset tag group at a first time. In this implementation, in response to the first time not intersecting any wake window in the first set of wake windows, the system may update the first response schedule to exclude the second asset tag from the first asset tag group and generate a third response schedule for the second asset tag. In this implementation, in response to receiving the ranging signal from the second asset tag, the system excludes the second asset tag from the first asset tag group, where the ranging signal does not follow a trigger (e.g., does not respond to a trigger). Generally, an asset tag may transmit a ranging signal that does not follow a trigger in response to the asset tag receiving a motion sensor signal. Thus, in response to the asset tag receiving a motion sensor signal, the system may exclude the asset tag from the first asset tag group and reassign the asset tag to a new group.
[0085]
[0087] In one implementation, the system may, at a first time: generate, for a second asset tag group of the set of asset tag groups, a second response schedule defining a third set of multicast triggers; and generate, for a first asset tag group of the set of asset tag groups, a first response schedule defining the first set of multicast triggers. In this implementation, the system defines a first asset tag group based on the proximity of the set of nodes to the first node and defines a second asset tag group based on the proximity of the set of nodes to the second node. In this implementation, at a second time, the set of nodes may: broadcast a third multicast trigger of the third set of multicast triggers; receive a second set of ranging signals from the second asset tag group responsive to the third multicast trigger; derive a third set of locations of the second asset tag group based on the second set of ranging signals; and, in response to the second asset tag being located closer to the first node than the second node, update the first response schedule and the second response schedule to exclude the second asset tag from the second asset tag group and include the second asset tag in the first asset tag group. Thus, the system may reassign a second asset tag from the second asset tag group to the first asset tag group in response to the second asset tag being located closer to the first node defining the anchor for the first asset tag group than to the second node defining the anchor for the second asset tag group.
[0086] 6. Working Example
[0088] In one embodiment of method S100, the asset tag may not receive the trigger (e.g., unicast trigger, multicast trigger) due to a clock error in the first asset tag that causes the first asset tag to remain in sleep mode if the trigger is transmitted. In another embodiment of method S100, the asset tag may not receive the trigger (e.g., unicast trigger, multicast trigger) due to scattering and / or obstruction of the trigger signal by objects in the target environment. In another embodiment of method S100, one or more nodes in the set of nodes may not receive the ranging signal transmitted by the asset tag with a signal-to-noise ratio high enough to decode the asset tag identifier information contained in the ranging signal.
[0087] 6.1 Example: Subset of nodes with poor reception
[0089] Generally, a particular node in the set of nodes may receive a ranging signal at a low signal strength (e.g., due to interference), while other nodes in the set of nodes may receive the ranging signal at a high signal strength (e.g., due to proximity to an asset tag). Nodes receiving a ranging signal with a signal strength below a signal strength threshold cannot decode information such as an asset tag identifier contained in the ranging signal (e.g., due to a low signal-to-noise ratio of the ranging signal). These nodes may only derive the time of arrival of the ranging signal. However, nodes receiving a ranging signal with a signal strength above a signal strength threshold can decode information such as an asset tag identifier contained in the ranging signal. Upon receiving a ranging signal, all nodes in the set of nodes that received an instance of the ranging signal may transmit the information decoded and derived from the ranging signal to other nodes in the set of nodes. Thus, nodes that cannot decode the asset tag identifier of the ranging signal may access this information by communicating with other nodes in the set of nodes.
[0088]
[0090] In one implementation, a first node in the set of nodes may: broadcast a first multicast trigger at a first multicast trigger time of a first set of multicast trigger times defined by the first response schedule; receive a first set of ranging signals (e.g., signals having signal strengths exceeding a first signal strength threshold) from a first asset tag subgroup in the first asset tag group; and transmit a first set of asset tag data for the first asset tag subgroup to the set of nodes. In this implementation, a second node in the set of nodes may: receive a second set of ranging signals (e.g., signals having signal strengths exceeding a first signal strength threshold) from a second asset tag subgroup in the first asset tag group; and transmit a second set of asset tag data for the second asset tag subgroup to the set of nodes. Further, the system may derive a second set of locations of the first asset tag group based on the first set of asset tag data and the second set of asset tag data. Thus, the first node may receive signals having signal strengths exceeding a threshold signal strength from a portion of the asset tags in the first asset tag group. Additionally, the second node may receive signals having a signal strength above a threshold signal strength that are ranging signals from another portion of the asset tags in the first asset tag group. In response to receiving signals whose signal strength exceeds the threshold signal strength, the first node and the second node may decode information (e.g., asset tag identifier, asset tag group identifier) contained in the received ranging signals and transmit this information to the set of nodes. Thus, even if some nodes do not receive ranging signals from a subset of the asset tags in the first asset tag group (or receive these ranging signals at low signal strength), the system may access the information (e.g., asset tag identifier, asset tag group identifier) contained in these ranging signals and derive locations of the asset tags of the subset of asset tags due to other nodes in the set of nodes receiving these ranging signals at high signal strength and transmitting that information to the set of nodes.
[0089]
[0091] In particular, upon receiving a ranging signal whose signal strength exceeds a signal strength threshold, each node in the set of nodes may derive an asset tag identifier and a group identifier included in the signal and record the time of arrival of the signal. Each node in the set of nodes may then transmit this information to other nodes in the set of nodes. For example, a first node in the set of nodes may, for each ranging signal in a first set of ranging signals: decode a first asset tag identifier and a first group identifier included in the ranging signal; record a first time of arrival of the ranging signal; and transmit the first asset tag identifier, the first group identifier, and the first time of arrival in a first set of asset tag data. In this example, a second node in the set of nodes may, for each ranging signal in a second set of ranging signals: decode a second asset tag identifier and a second group identifier included in the ranging signal; record a second time of arrival of the ranging signal; and transmit the second asset tag identifier, the second group identifier, and the second time of arrival in a first set of asset tag data.
[0090]
[0092] In one implementation, two nodes may receive the same ranging signal with different signal strengths. In particular, one node may receive a ranging signal with a signal strength below a signal strength threshold, while another node may receive a ranging signal with a signal strength above the signal strength threshold. A node receiving a ranging signal with a signal strength above the signal strength threshold may decode the asset tag identifier and group identifier associated with the ranging signal, while a node receiving a ranging signal with a signal strength below the signal strength threshold can only resolve the time of arrival (and derive the time of flight) of the ranging signal. Thus, in this example, even if one node receives a ranging signal with a low signal strength (or low signal-to-noise ratio), the system can access information associated with the ranging signal as long as another node receives the ranging signal with a high signal strength. For example, a third node in the set of nodes may: receive a first ranging signal from the first asset tag having a first signal-to-noise ratio below a signal-to-noise ratio threshold; and transmit a first time of arrival of the ranging signal to the set of nodes in response to receiving the first ranging signal having the first signal-to-noise ratio below the signal-to-noise ratio threshold. In this example, a fourth node (e.g., another node) in the set of nodes may receive a first ranging signal from the first asset tag having a second signal-to-noise ratio above the signal-to-noise ratio threshold; and transmit an asset tag identifier, a group identifier, and a second time of arrival of the first asset tag to the set of nodes in response to receiving the first ranging signal having the second signal-to-noise ratio above the signal-to-noise ratio threshold. The system may then derive a first location of the first asset tag based on the asset tag identifier, the group identifier, the first time of arrival, and the second time of arrival of the first asset tag.
[0091] 6.2 Example: Asset tag fails to transmit ranging signals
[0093] In one implementation, a first node of the set of nodes may broadcast a first multicast trigger at a first multicast trigger time defined by a first response schedule during a second time period. In this implementation, the set of nodes may: receive a first set of ranging signals from a first asset tag subgroup of a first asset tag group that responds to the first multicast trigger; generate a recovery schedule for the first asset tag that defines a sequence of unicast trigger times for transmitting a sequence of unicast triggers to the first asset tag in response to identifying a first asset tag that is included in the first asset tag group and excluded from the first asset tag subgroup based on the first set of ranging signals; broadcast, at the first node of the set of nodes, the sequence of unicast triggers at the sequence of unicast trigger times according to the recovery schedule; and derive, at the set of nodes, a first location of the first asset tag based on the first ranging signal in response to receiving the first ranging signal from the first asset tag. Thus, in response to not receiving a ranging signal from the first asset tag that responds to the multicast trigger, the set of nodes may generate a recovery schedule for the asset tag. The system may then transmit a series of unicast triggers to the first asset tag via the set of nodes, and in response to receiving a ranging signal from the first asset tag in response to the unicast triggers, the set of nodes may derive a location of the first asset tag.
[0092]
[0094] In one implementation, the set of nodes may characterize a clock drift of a first clock of the first asset tag based on the reception time of the first ranging signal during the second time period; and update the first response schedule by updating a third wake window for the first asset tag based on the clock drift so that the third wake window for the first asset tag intersects with the second multicast trigger time. Thus, the set of nodes may address the clock error of the first asset tag by updating the response schedule for the first asset tag. In particular, the system may shift the wake window of the first asset tag by the clock drift period (e.g., the difference between the system time of the set of nodes and the clock time of the first asset tag) to allow the first asset tag to enter wake mode and receive the multicast trigger.
[0093]
[0095] In another implementation, a first node of the set of nodes may broadcast a second multicast trigger over the ranging channel during a second time period that intersects with the second trigger time. In this implementation, the system may, at the first asset tag: enter a wake mode; transition its transceiver to the configuration channel in response to not receiving the second multicast trigger over the ranging channel; receive a second configuration message over the configuration channel; and update a first clock of the first asset tag to the system time of the set of nodes based on the configuration message. Thus, in response to not receiving the multicast trigger from the set of nodes, the asset tag may solicit a configuration message from the set of nodes, where the configuration message identifies a response schedule for the asset tag and the system time of the set of nodes. When the asset tag receives the configuration message, the asset tag may, for example, update its clock to the system time of the set of nodes.
[0094]
[0096] In one variation, the set of nodes may receive a set of reference signals from a portion of the asset tags in the asset tag group. For example, at a second time, the set of nodes may receive a first set of reference signals from a first subset of the asset tags in a first asset tag group, and the controller may derive a location of the first subset of asset tags based on the first set of reference signals. Thus, the system may detect an absence of reference signals from a subset of the asset tags in a particular asset tag group due to an asset tag communication error and recover the reference signals that are not received from the subset of asset tags.
[0095]
[0097] In this variation, if no ranging signal is received from a particular asset tag, the system may transmit subsequent ranging signals to the set of nodes based on a recovery schedule. More specifically, a particular asset tag may have failed to transmit a ranging signal to the node in response to a multicast trigger: this may be because the asset tag transitioned from an "awake" state to a "sleep" state before the wake window or transitioned from a "sleep" state to an "awake" state after the wake window (e.g., due to drift of an internal clock within the particular asset tag) and therefore failed to receive a multicast trigger from the node. Thus, in response to failing to receive a ranging signal from a particular asset tag during the wake window assigned to the particular asset tag, the system may define a recovery schedule that, when executed by the particular asset tag, triggers the asset tag to transmit a ranging signal to the node and to realign the clock associated with the asset tag.
[0096]
[0098] In one implementation, the system may identify asset tags of an asset tag group that fail to transmit ranging signals to the set of nodes based on the response schedule for the asset tag group. More specifically, in response to identifying an asset tag excluded from the first subset of asset tags, the system may define a recovery schedule for the asset tag based on the wake window and the multicast trigger time of the response schedule. For example, in response to identifying a first asset tag of a first asset tag group that is excluded from the first subset of asset tags, the controller may define a first recovery schedule for the first asset tag, the first recovery schedule including a sequence of unicast trigger times that are offset less than the wake window and adjacent to the multicast trigger time, and transmit the first recovery schedule to the set of nodes. In this example, the recovery schedule defines a set of unicast trigger times for the asset tag excluded from the subset of asset tags, at intervals that overlap with the wake window before and after the multicast trigger time. For example, during a first time period, the controller may define a response schedule that specifies a multicast trigger time of 12:00:30 and a 20-second wake window that specifies a wake time start (12:00:20) and a wake time end (12:00:40), and during a second time period, define a recovery schedule for a first asset tag that specifies a sequence of unicast trigger times that are offset less than the wake window (7 seconds) and adjacent to the multicast trigger times (12:00:14, 12:00:21, 12:00:28, 12:00:35, etc.). Thus, the system may define recovery schedules for asset tags excluded from the first subset of asset tags to trigger responses by the asset tags in response to the asset tags failing to transmit ranging signals to a set of nodes during the trigger times associated with the tags.
[0097] 6.2.1 Node-side recovery
[0099] In one implementation, the system may readjust a clock associated with an asset tag to recover a ranging signal from the asset tag. More specifically, the system may send a set of unicast triggers to the asset tag based on a recovery schedule to trigger transmission of a ranging signal to the node. In this implementation, in response to receiving a ranging signal from the asset tag, the system may readjust the asset tag's clock to reset the clock to a real time associated with a multicast trigger time, thereby mitigating or eliminating clock drift that causes the asset tag to fail to transmit a ranging signal during the wake window. For example, a first node in the set of nodes may broadcast a sequence of unicast triggers to a first asset tag at a sequence of unicast trigger times according to a first recovery schedule; and in response to receiving a first ranging signal from the first asset tag, readjust a first clock of the first asset tag. In response to receiving the first ranging signal from the first asset tag by the first set of nodes, the controller may derive a first location of the first asset tag based on the first ranging signal. Thus, the system may mitigate or prevent the asset tag from subsequently failing to transmit a ranging signal to a node at an asset tag-specific trigger time in response to receiving a multicast trigger at the multicast trigger time.
[0098]
[0100] In one implementation, a node of the set of nodes may perform the functions of the controller.
[0099] 6.2.2 Diagnosing Missing Tags
[0101] In one implementation, in response to identifying the absence of ranging signals from a subset of asset tags, the system may: trigger an operator to investigate the asset tag (e.g., to identify asset tag movement, damage); automatically remove the asset tag from the asset tag group; trigger a reset of the asset tag to a set period; and reintegrate the asset tag into the asset tag group. Thus, the system may consider the asset tag and trigger repair and / or reintegration of the asset tag into the target environment for tracking.
[0100] 6.2.3 Tag-side readjustment
[0102] In one implementation, in response to detecting the absence of ranging signals from a subset of asset tags in the asset tag group, the system may retune the internal clock of each asset tag in the subset of asset tags. More specifically, the first asset tag may automatically retune the clock associated with the first asset tag based on a unicast trigger broadcast by the first node according to the recovery schedule. In this implementation, each unicast trigger includes a representation of real time that is not affected by clock drift. For example, at a second time, the first node in the set of nodes may: broadcast a sequence of unicast triggers to the first asset tag at the sequence of unicast trigger times according to the first recovery schedule; and the first asset tag may extract the real time associated with the unicast trigger based on the arrival time of the unicast trigger; respond to the unicast trigger by transmitting a first ranging signal to the first node; and update the first clock of the first asset tag based on the real time. Thus, in response to receiving a unicast trigger according to the recovery schedule, the asset tag may self-retune its internal clock based on the real clock time specific to the unicast trigger.
[0101]
[0103] In one implementation, an asset tag may automatically readjust a first clock of a first asset tag based on ranging signals transmitted by other asset tags in the asset tag group. For example, the first asset tag may: intercept a ranging signal transmitted by a second asset tag in the asset tag group at a precise trigger time associated with the second asset tag; associate the ranging signal with a stored schedule to ascertain the precise trigger time for the first asset tag; update the clock of the first asset tag; and transmit the ranging signal to the node based on the schedule. Thus, the asset tag may readjust a clock associated with the asset tag based on the ranging signals of other asset tags in the asset tag group by transmitting a ranging signal at the precise trigger time.
[0102]
[0104] In one implementation, the system may re-adjust the clock of the asset tag in response to detecting a number of consecutive failures that exceeds a threshold number of failures. More specifically, in response to detecting a set of consecutive failures (e.g., two) of ranging signal transmissions from a first asset tag, the system may: transmit the first asset tag on a calibration channel to query the current (e.g., real) time; detect the current time; and re-adjust the clock based on the current time. Thus, rather than relying on a node to broadcast a unicast trigger to the asset tag, the asset tag may query the behavior of other asset tags in the asset tag group and re-adjust the clock of the first asset tag based on the other asset tags. Additionally or alternatively, the asset tag may query the behavior of a node or set of nodes with which it is in communication and re-adjust the clock of the first asset tag based on timestamp data (e.g., real clock time) transmitted from the node or set of nodes to the first asset tag.
[0103] 6.3 Example: Correcting Clock Errors in Asset Tags
[0105] For example, at a first time period, the controller may define a response schedule for an asset tag group, the response schedule specifying: a multicast trigger time (00:00:00), a wake window (e.g., 20 seconds) that characterizes a wake time start (23:59:50) and a wake time end (00:00:10), and target transmission times (AT1-00:00:02, AT2-00:00:04, AT3-00:00:06, AT4-00:00:08, and AT5-00:00:10) for each asset tag -AT- of the asset tag group based on the wake window. In this example, at a second time period, a first node in the set of nodes may broadcast a multicast trigger at the multicast trigger time (00:00:00). The set of nodes may then receive a set of ranging signals from a first subset of asset tags in the first asset tag group (received from AT1 at 00:00:02, received from AT2 at 00:00:04, received from AT3 at 00:00:06, and received from AT5 at 00:00:10). The controller may then identify a first asset tag in the first asset tag group that is excluded from the first subset of asset tags (AT4). Thus, the system detects that the first subset of asset tags in the first asset tag group (AT1, AT2, AT3, and AT5) are functional and present in the target environment, thereby indicating that the broadcast of the multicast trigger from the first node in the set of nodes to the first asset tag group was successful. Thus, the system may detect the absence and / or potential failure of asset tags in the asset tag group in response to identifying the absence of ranging signals from the subset of asset tags.
[0104] 6.3.1 Specific examples of node-side recovery and schedule modification
[0106] In one implementation, the system may characterize a clock time error (e.g., clock drift) based on the clock time associated with the asset tag and the actual clock time and modify the response schedule for the asset tag group. For example, the controller may: calculate, for a first asset tag in the asset tag group, a difference between a first time associated with the asset tag and a second time characteristic of the actual clock time; characterize a clock drift interval based on the difference; and update the response schedule for the first asset tag to include a wake window for the asset tag that starts earlier than the first wake window. In one variation, in response to detecting an accelerated (e.g., fast) clock, the controller may redefine the response schedule to include a wake window that starts later than the first wake window. In one variation, the controller may redefine the response schedule to include a wake window that is longer than the first wake window of the first response schedule.
[0105] 6.3.2 Examples of tag-side recovery and repair
[0107] In one implementation, the asset tag may automatically self-correct the clock associated with the asset tag in response to the controller detecting clock drift. For example, during a second time period, asset tag AT4 entered the “awake” state after the wake-up window specified in the response schedule (e.g., the asset tag woke up too late) and failed to receive the multicast trigger at the multicast trigger time. In this example, while the asset tag is in the “awake” state (e.g., if the asset tag woke up after the wake-up window), the asset tag may intercept ranging signals from other asset tags in the asset tag group that are directed to the node transmitting the ranging signal at the exact corresponding trigger time based on the actual multicast trigger time (00:00:00). In this example, the clock of asset tag (AT4) drifted (e.g., slowed) by 11 seconds and entered the “awake” state at 00:00:01 (it should have entered the “awake” state at 23:59:50). Therefore, asset tag AT4 is in the “awake” state during asset tag AT1's trigger time of 0:00:02. Thus, asset tag AT4 may intercept the ranging signal transmitted by asset tag AT1 during the trigger time associated with asset tag AT1; associate the ranging signal with the stored schedule to confirm that the ranging signal should have been transmitted at actual time 00:00:02; update the clock associated with asset tag AT4 to 00:00:02 (e.g., from 23:59:51 assumed by asset tag AT4 due to drift); and transmit the ranging signal at 00:00:08 according to the schedule. Thus, an asset tag may recalibrate itself by intercepting ranging signals transmitted by other asset tags in the asset tag group during the correct trigger time. Additionally or alternatively, an asset tag may recalibrate itself by intercepting ranging signals transmitted by nodes in the set of nodes during the correct trigger time.
[0106] 7.0 Specific Target Environments
[0108] Generally, a system may perform method S100 to group and track asset tags deployed throughout a target environment, such as a construction site, a grocery store, a warehouse, a fulfillment center, etc. For example, the system may perform method S100 to group and track asset tags deployed at a construction site to monitor the movement of equipment (e.g., cranes, bulldozers, excavators, etc.) and / or resources (lumber, cement bags, rebar bundles, etc.). In another example, the system may perform method S100 to group and track asset tags deployed at a military inventory storage warehouse characterized by low throughput (e.g., infrequent delivery / production) and inventory with a high per-unit value (e.g., artillery, armor). In this example, asset tags may be associated with individual items of high value (e.g., equipment). In another example, the system may perform method S100 to group and track asset tags deployed at a fulfillment center characterized by high throughput (e.g., high frequency of orders within a given period) and inventory with a low per-unit value (e.g., consumer goods). In this example, the asset tag may be associated with a container of items rather than with the individual items.
[0107]
[0109] The systems and methods described herein may be embodied and / or implemented at least in part as a machine configured to accept a computer-readable medium storing computer-readable instructions. The instructions may be executed by a computer-executable component integrated with an application, applet, host, server, network, website, communication service, communication interface, hardware / firmware / software elements of a user computer or mobile device, wristband, smartphone, or any suitable combination thereof. Other systems and methods of the present embodiments may be embodied and / or implemented at least in part as a machine configured to accept a computer-readable medium storing computer-readable instructions. The instructions may be executed by a computer-executable component integrated with the aforementioned types of devices and networks. The computer-readable medium may be stored in any suitable computer-readable medium, such as RAM, ROM, flash memory, EEPROM, optical device (CD or DVD), hard drive, floppy drive, or any suitable device. The computer-executable component may be a processor, although any suitable dedicated hardware device may (alternatively or additionally) execute the instructions.
[0108]
[0110] As will be appreciated from the foregoing detailed description and the drawings and claims, those skilled in the art can make modifications and variations to the embodiments of the present invention without departing from the scope of the invention, which is defined in the following claims.
Claims
1. During the first period, generating a response schedule for the first asset tag, the response schedule comprising: a sequence of trigger times for transmitting a sequence of unicast triggers; defining (generating) a sequence of wake windows, each wake window in the sequence of wake windows intersecting a trigger time in the sequence of trigger times; On the first node of the set of nodes, broadcasting a first configuration message to the first asset tag over a configuration channel, the first configuration message including the response schedule; the first asset tag; transitioning a transceiver of said first asset tag to said configuration channel in response to the absence of configuration data; receiving the first configuration message over the configuration channel; configuring the first asset tag based on the first configuration message; entering a sleep mode in response to a time period to a first wake window in the sequence of wake windows exceeding a threshold time period; During a second period after the first period, at the first node of the set of nodes, broadcasting a first unicast trigger of the sequence of unicast triggers over a ranging channel based on a first trigger time of the sequence of trigger times; the first asset tag; entering a wake mode based on the first wake window in the sequence of wake windows; transmitting a first ranging signal in response to receiving the first unicast trigger over the ranging channel; entering the sleep mode in response to transmitting the first ranging signal; In said set of nodes, receiving the first ranging signal; and deriving a first location of the first asset tag during the second time period based on instances of the first ranging signal received by the set of nodes.
2. broadcasting the first configuration message to the first asset tag over the configuration channel, broadcasting the first configuration message to the first asset tag over the configuration channel associated with a first frequency; broadcasting the first unicast trigger over the ranging channel comprises: The method of claim 1 , comprising broadcasting the first unicast trigger over the ranging channel associated with a second frequency range excluding the first frequency.
3. The step of entering the sleep mode includes: disabling the transceiver of the first asset tag; placing the processor of the first asset tag into a sleep mode; maintaining power supply from a battery in the first asset tag to a clock and a motion sensor in the first asset tag; The step of entering the wake mode includes, by the first asset tag: enabling the transceiver of the first asset tag; and transitioning the processor of the first asset tag into an active mode.
4. During a third period after the second period, at the first node of the set of nodes, broadcasting a second unicast trigger of the sequence of unicast triggers over the ranging channel based on a second trigger time of the sequence of trigger times; the first asset tag; entering the wake mode based on a second wake window in the sequence of wake windows; transmitting a second ranging signal in response to receiving the second unicast trigger over the ranging channel; entering the sleep mode in response to transmitting the second ranging signal; In said set of nodes, receiving the second ranging signal; deriving a second location of the first asset tag based on instances of the second ranging signal received by the set of nodes.
5. During the third period prior to the second period, at the first node of the set of nodes, broadcasting a second unicast trigger over the ranging channel based on a second trigger time in the sequence of trigger times; the first asset tag; entering the wake mode based on a second wake window in the sequence of wake windows; transitioning the transceiver of the first asset tag to the configuration channel in response to not receiving a second unicast trigger over the ranging channel; receiving, via the configuration channel, a second configuration message including a system time for the set of nodes; 2. The method of claim 1, further comprising: updating the clock of the first asset tag according to the system time of the set of nodes based on the second configuration message.
6. further comprising distributing an encryption key to the first asset tag; broadcasting the first configuration message to the first asset tag over the configuration channel, generating an encrypted configuration message by encrypting the first configuration message; broadcasting the encrypted configuration message to the first asset tag over the configuration channel; receiving the first configuration message over the configuration channel, The method of claim 1 , further comprising the step of decrypting the encrypted configuration message via the encryption key.
7. receiving the first configuration message over the configuration channel, accessing the response schedule of the first configuration message; accessing a first asset tag identifier in the first configuration message; configuring the first asset tag based on the first configuration message, in response to the first asset tag identifier of the first configuration message matching a second asset tag identifier of the first asset tag; synchronizing the clock of the first asset tag to a system time of the set of nodes; and configuring the first asset tag to transition between the sleep mode and the wake mode according to the response schedule.
8. During the first period, generating a response schedule for the first asset tag, the response schedule comprising: a first trigger time for transmitting a first unicast trigger; a first wake window that intersects the first trigger time; a second wake window associated with the motion sensor signal; On the first node of the set of nodes, broadcasting a configuration message including the response schedule to the first asset tag over a configuration channel; the first asset tag; transitioning the transceiver of said first asset tag to a configuration channel in response to the absence of configuration data; receiving the configuration message over the configuration channel; configuring the first asset tag based on the configuration message; entering a sleep mode in response to a time period to the first wake window exceeding a threshold time period; During the second period, the first asset tag; in response to receiving the motion sensor signal from the motion sensor of the first asset tag; entering a wake mode for the second wake window; transmitting a first ranging signal over a ranging channel during the second wake window; entering the sleep mode in response to transmitting the first ranging signal; In said set of nodes, receiving the first ranging signal; and deriving a first location of the first asset tag based on instances of the first ranging signal received by the set of nodes.
9. During a third period prior to the second period, broadcasting the first unicast trigger over the ranging channel at the first node of the set of nodes; the first asset tag; entering the wake mode for the first wake window; transmitting a second ranging signal over the ranging channel in response to receiving the first unicast trigger over the ranging channel; entering the sleep mode in response to transmitting the second ranging signal; In said set of nodes, receiving the second ranging signal; and deriving a second location of the first asset tag based on instances of the second ranging signal received by the set of nodes.
10. During the first period, the first asset tag; in response to receiving a series of motion sensor signals indicating that the first asset tag is moving; entering said wake mode; transmitting a series of ranging signals over the ranging channel at time intervals specified by the response schedule; entering said sleep mode; In said set of nodes, receiving the series of ranging signals; 9. The method of claim 8, further comprising: deriving a series of first locations of the first asset tag based on the series of instances of the ranging signal received by the set of nodes.
11. Prior to the first period of time, the first asset tag; receiving a set of unicast queries from the set of nodes; sending a unicast response to the set of nodes; In said set of nodes, 9. The method of claim 8, further comprising: calculating a second location of the first asset tag based on instances of the unicast response received by the set of nodes.
12. calculating a distance between the first location and the second location of the first asset tag; generating a notification in response to the distance exceeding a threshold distance indicating that an asset associated with the first asset tag has been moved the distance that exceeds the threshold distance; The method of claim 11 , further comprising: sending the notification to a device of an operator of a target environment that includes the first asset tag.
13. The step of deriving the first location of the first asset tag includes: For each node in the set of nodes: deriving a distance of a distance set between the first asset tag and the node based on a time of flight of the first ranging signal received by the node; The method of claim 8 , further comprising: at the set of nodes, deriving the first location of the first asset tag based on the set of distances.
14. receiving the configuration message over the configuration channel, the first asset tag; receiving the configuration message over a first frequency associated with the configuration channel; transmitting the first ranging signal over the ranging channel comprises:
9. The method of claim 8, comprising transmitting the first ranging signal at a second frequency in a second frequency range excluding the first frequency.
15. During the first period, generating a response schedule for a first asset tag group, said response schedule comprising: a first multicast trigger time for transmitting a first multicast trigger to the first asset tag group; For each asset tag in the first asset tag group: a first wake window that intersects the first multicast trigger; a first transmission time after receipt of the first multicast trigger and specific to the asset tag; a second wake window that intersects the first transmission time; On the first node of the set of nodes, broadcasting a first configuration message to the first asset tag group over a configuration channel; a first asset tag of the first asset tag group, transitioning a first transceiver of said first asset tag to said configuration channel in response to the absence of configuration data; receiving the first configuration message over the configuration channel; configuring the first asset tag based on the first configuration message; entering a sleep mode based on the response schedule indicating that a first period to the first wake window exceeds a threshold period; During the first wake window: at the first node of the set of nodes, broadcasting the first multicast trigger over a ranging channel; the first asset tag of the first asset tag group, Steps to enter wake mode, receiving the first multicast trigger over the ranging channel; entering the sleep mode based on the response schedule indicating that a second period of time until the second wake window exceeds the threshold period of time; During the second wake window: the first asset tag of the first asset tag group, entering said wake mode; transmitting a first ranging signal over the ranging channel; entering the sleep mode in response to transmitting the first ranging signal; In said set of nodes, receiving a first set of ranging signals from the first group of asset tags; and deriving a first set of locations of the first group of asset tags based on the first set of ranging signals received by the set of nodes.
16. receiving the first configuration message over the configuration channel, accessing the response schedule of the first configuration message; accessing a first asset tag identifier in the first configuration message; accessing a first group identifier of the first configuration message; configuring the first asset tag based on the first configuration message, in response to the first asset tag identifier of the first configuration message matching a second asset tag identifier of the first asset tag and the first group identifier of the first configuration message matching a second group identifier of the first asset tag group, 16. The method of claim 15, comprising configuring the first asset tag to transition between the sleep mode and the wake mode according to the response schedule.
17. During the first period, a second asset tag of the first asset tag group, transitioning a second transceiver of the second asset tag to the configuration channel in response to the absence of the configuration data; receiving the first configuration message over the configuration channel; configuring the second asset tag based on the first configuration message; entering the sleep mode based on the response schedule indicating that a first time period to the first wake window exceeds the threshold time period; During the second period, the second asset tag of the first asset tag group, entering said wake mode; transmitting a second ranging signal in response to the first wake window overlapping the second wake window; 16. The method of claim 15, further comprising: in response to transmitting the second ranging signal, entering the sleep mode.
18. During a second period after the first period, the first asset tag of the first asset tag group, in response to receiving a motion sensor signal indicating that the first asset tag is moving; entering the wake mode for the second wake window; transmitting a second ranging signal; 16. The method of claim 15, further comprising: in response to transmitting the second ranging signal, entering the sleep mode.
19. Prior to the first period of time, the first asset tag; receiving a set of unicast queries from the set of nodes; sending a set of unicast responses to the set of nodes; In said set of nodes, calculating a second location of the first asset tag based on the set of unicast responses; 16. The method of claim 15, further comprising: assigning the first asset tag to the first asset tag group based on the second location.
20. generating the response schedule for the first asset tag group, generating the response schedule for the first asset tag group, the response schedule comprising: generating a second multicast trigger time for transmission of the second multicast trigger; during a second period that intersects the second multicast trigger time; at the first node of the set of nodes, broadcasting the second multicast trigger over the ranging channel; the first asset tag; entering said wake mode; transitioning the first transceiver to the configuration channel in response to not receiving the second multicast trigger over the ranging channel; receiving a second configuration message over the configuration channel; 16. The method of claim 15, further comprising: updating a first clock of the first asset tag to a system time of the set of nodes based on the second configuration message.
Citation Information
Patent Citations
Location Awareness System
JP2022500937A
System, tag, and method for conducting position tracking by using ultrawide waveband (UWB)
JP2023024306A
Apparatus and method for advanced communication in low-power wireless applications
US20110074552A1
Asset location using relays
US20140327521A1
Communications protocol for inventory control
US20180227850A1