Method and apparatus for adjusting broadcast settings of nodes in a wireless node network
Through the dynamic association and disassociation of wireless node networks, the high cost and redundant information problems of existing item tracking systems are solved, adaptive tracking of items and environmental condition monitoring are achieved, and the efficiency and economy of tracking management are improved.
Patent Information
- Application Number
- CN202111368557.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2014-07-30
- Filing Date
- 2014-11-07
- Publication Date
- 2025-09-23
- Estimated Expiration
- 2034-11-07
AI Technical Summary
Existing item tracking systems such as machine-readable barcodes and RFID tags require manual scanning, and sensor-based systems are costly and provide redundant information, failing to effectively monitor the environmental conditions of items during transportation.
A wireless node network is adopted, including ID nodes, master nodes and servers. By dynamically associating and de-associating ID nodes and master nodes, and using context data to adjust the path environment, adaptive tracking and management of items can be achieved.
It provides extensive and robust identification, tracking and management of items, reduces costs, and can effectively monitor the environmental conditions of items during transportation.
Smart Images

Figure CN114186920B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to systems, devices, and methods in the field of tracking items (e.g., objects, packages, people, pieces of equipment) and more particularly to various aspects relating to systems, devices, and methods for improved asset identification, location services, and node management using adaptive, context-aware wireless node networks. Background Art
[0002] Asset management has always been an important part of business, and the ability to identify items and locate where they are can be considered the core of a company that ships items from one location to another. For example, tracking packages is important for all types of organizations, whether it is a company that keeps track of the inventory to be sold in its stores or a package delivery provider that keeps track of packages being transported through its delivery network. In order to provide quality service, organizations often create and maintain highly organized networks for tracking their items - packages, people, objects, etc. Effective management of such networks allows lower costs, reduced delivery times, and enhanced customer service. And the effective deployment of networks helps manage costs.
[0003] In addition to tracking packages, the parties shipping and receiving packages may also need information about the condition of the package, such as the temperature and humidity of the package. For example, a consumer who has ordered a case of wine may want to monitor the temperature of the case's contents to determine whether the temperature and / or humidity exceed or fall below a set range. Similarly, the party shipping the package may also want to monitor the condition of the package to ensure that the contents arrive in proper condition.
[0004] Conventionally, this tracking functionality may be provided by a variety of known mechanisms and systems. Machine-readable barcodes are one way organizations keep track of items. For example, a retailer may use barcodes on items in their inventory. For example, each of the items to be sold in the retailer's store is labeled with a different machine-readable barcode. To keep track of inventory, the retailer typically scans or otherwise captures an image of the barcode on each item, allowing the back-end of the retailer's operations to keep track of items entering from the supplier and leaving their possession. Additionally, when an item is sold to a consumer, the barcode for that item is scanned or captured to track sales and inventory levels.
[0005] Similarly, a package delivery provider can utilize machine-readable barcodes by associating a barcode with a package to be delivered to a recipient. For example, a package may have a barcode corresponding to a tracking number for that package. Each time a package passes through a delivery checkpoint (e.g., a courier taking initial control of the package, a package being temporarily placed in a storage facility while being moved from a pickup point to a delivery location, a package being delivered to a recipient, etc.), the package's barcode can be scanned. However, barcodes have the disadvantage that personnel must manually scan each barcode on each item in order to effectively track the item.
[0006] Radio frequency identification (RFID) tags are another known mechanism for tracking items. Compared to bar codes, RFID tags generally do not require manual scanning. For example, in a retail setting, RFID tags on inventory items may be able to communicate with an electronic reader that detects the items in a shopping cart and adds the cost of each item to the consumer's bill. RFID tags typically transmit an encoded number when queried by or prompted by a reader. RFID tags have also been used to track items such as livestock, rail vehicles, trucks, and even airline luggage. These tags generally allow for only basic tracking but do not provide a way to improve asset management using information about the environment in which the item is tracked.
[0007] Sensor-based tracking systems are also known that can provide more information than RFID systems. Shippers, carriers, recipients, and other parties often want to know the location, condition, and integrity of shipped goods before, during, and after transportation to meet quality control goals, satisfy regulatory requirements, and optimize business processes. However, due to the complexity of the sensors, such systems are often expensive and may provide irrelevant and redundant item information.
[0008] To address these requirements, a system is needed that can monitor data about objects (such as shipped items, people, or equipment) and effectively extend the visibility of such objects. Therefore, there is a need for improved systems that can provide more extensive and robust identification, tracking, and management of objects and do so in a cost-effective manner. Summary of the Invention
[0009] In the following description, certain aspects and embodiments will become clear. It should be understood that these aspects and embodiments can be practiced in their broadest sense without having one or more features of these aspects and embodiments. It should be understood that these aspects and embodiments are exemplary only.
[0010] In the following description, certain aspects and embodiments will become clear. It should be understood that these aspects and embodiments can be practiced in their broadest sense without having one or more features of these aspects and embodiments. It should be understood that these aspects and embodiments are exemplary only.
[0011] One aspect of the present disclosure relates to a method for managing the shipment of items using a wireless node network having at least one ID node, a plurality of master nodes, and a server. The method begins by transmitting shipping information to a server to register the items to be shipped and the ID node and associating the ID node with a first master node, the first master node being associated with a predicted path for shipping the items. The server is updated to reflect the association between the ID node and the first master node. As the ID node passes through the predicted path, the method continues by disassociating the ID node from the first master node while associating the ID node with a second master node associated with the predicted path. As the ID node continues to pass through the predicted path, the server is updated to reflect the disassociation between the ID node and the first master node and the association between the ID node and the second master node. Next, the method associates the ID node with a third master node near the end of the predicted path for shipping the items, and notifies the server to reflect the association between the ID node and the third master node.
[0012] In the present method, associating the ID node with the first master node can be performed before a pickup event in the predicted path. Similarly, associating the ID node with the third master node can be performed after a drop-off event in the predicted path. When associating the ID node with any of the first, second, or third master nodes, the present method can also rely on contextual data to adjust environmental aspects of the predicted path.
[0013] In another aspect of the present disclosure, another method is disclosed for managing the shipment of items using a wireless node network having at least one ID node, multiple master nodes, and a server. The method begins with the server receiving shipment information to register the ID node and items to be shipped. The method then provides a first set of authentication credentials to a first master node to allow the ID node to associate with the first master node, the first master node being associated with a predicted path for shipping the item. The server receives an update to reflect the association between the ID node and the first master node. When the ID node passes through the predicted path, the method provides a second set of authentication credentials to a second master node to allow the ID node to associate with the second master node and disassociate the ID node from the first master node. When the ID node continues to pass through the predicted path, the server then receives an update to reflect the disassociation between the ID node and the first master node and the association between the ID node and the second master node. The method then provides a third set of authentication credentials to a third master node when the ID node reaches the end of the predicted path for shipping the item to allow the ID node to associate with the third master node and disassociate the ID node from the second master node. The server receives a notification reflecting the association between the ID node and the third master node.
[0014] In another aspect of the present disclosure, a non-transitory computer-readable medium containing instructions is disclosed that, when executed on a processor, performs a method for managing the shipment of items using a wireless node network having at least one ID node, a plurality of master nodes, and a server. In this aspect, the method begins with the server receiving shipment information to register the ID node and items to be shipped. The method predicts a delivery route for the item between two points, such as from an origin to a destination, wherein the origin and destination points are identified in the shipment information.
[0015] Next, the method authorizes associating or connecting the first master node with an ID node near the starting point. This can be done before a pickup event for the ID node and item being shipped. For example, when the first master node is a user access device (e.g., a laptop computer, desktop computer, tablet device, smart phone device, smart wearable device) for a shipping customer, visibility into the status and location of the ID node can extend before the pickup event. After the first master node is associated with the ID node, the server receives an update reflecting the association.
[0016] Next, the method authorizes disassociation of the first master node from the ID node and associating the second master node with the ID node when management responsibility for the ID node switches from the first master node to the second master node at an intermediate point on the predicted delivery route. As the ID node continues on the predicted delivery path, the server then receives updates to reflect the disassociation between the ID node and the first master node and the association between the ID node and the second master node.
[0017] The method further authorizes disassociating the second master node from the ID node and associating the third master node with the ID node when the management responsibility for the ID node switches from the second master node to the third master node near the destination point on the predicted delivery route. This can be done before a pickup event for the ID node and item being shipped. For example, when the third master node is a user access device for the recipient (e.g., a laptop computer, desktop computer, tablet device, smart phone device), visibility into the status and location of the ID node can extend after the disengagement event. After the third master node is associated with the ID node, the server receives a notification reflecting the association between the ID node and the third master node.
[0018] In another aspect of the present disclosure, a system is disclosed for managing the shipment of items using a network of wireless nodes. The system generally includes an ID node, a plurality of master nodes, and a server. The ID node is registered to the item being shipped. When the item is shipped from the starting point of the expected shipping route to the destination of the expected shipping path, each of the master nodes is predicted to be located at a different part of the expected shipping route for the item. Each of the master nodes is operable to communicate with the ID node over a short-range communication path.
[0019] The server operates to track and report the location of the ID node and the location of the master node. The server can also operate to facilitate the transfer of management responsibilities of the ID node between different master nodes as the ID node moves along the expected delivery route. In this way, a first one of the master nodes can be associated with the ID node prior to a pickup event for the ID node and item to be shipped. Later, at an intermediate point in the expected delivery route, a second one of the master nodes can be associated with the ID node after the ID node is disassociated from one of the master nodes. And, a third one of the master nodes can be associated with the ID node after a disengagement event for the ID node and item to be shipped.
[0020] Additional advantages of this and other aspects of the disclosed embodiments and examples will be set forth in part in the description that follows and, in part, will be obvious from the description, or may be learned by practice of the invention. It will be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and do not limit the invention, as claimed. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several embodiments according to one or more principles of the present invention and, together with the description, serve to explain one or more principles of the present invention.
[0022] Figure 1 is a diagram of an exemplary wireless node network according to an embodiment of the present invention;
[0023] Figure 2 is a more detailed diagram of an exemplary wireless node network according to an embodiment of the present invention;
[0024] Figure 3 is a more detailed diagram of an exemplary ID node device according to an embodiment of the present invention;
[0025] Figure 4 is a more detailed diagram of an exemplary master node device according to an embodiment of the present invention;
[0026] Figure 5 is a more detailed diagram of an exemplary server according to an embodiment of the present invention;
[0027] Figure 6 is a diagram of the structure or format of an exemplary announcement data packet according to an embodiment of the present invention;
[0028] Figure 7 is a diagram of sample contents for an exemplary announcement data packet according to an embodiment of the present invention;
[0029] Figure 8 is a state diagram illustrating transitions between exemplary states and states as part of operations performed by an exemplary node in a network of wireless nodes in accordance with an embodiment of the present invention;
[0030] Figure 9 is a diagram illustrating exemplary components of a wireless node network during an exemplary master-to-ID node association according to an embodiment of the present invention;
[0031] Figure 10 is a diagram illustrating exemplary components of a wireless node network during an exemplary ID-to-ID node association according to an embodiment of the present invention;
[0032] Figure 11 is a diagram illustrating exemplary components of a wireless node network during an exemplary ID-to-master node query according to an embodiment of the present invention;
[0033] Figure 12 is a diagram illustrating exemplary components of a wireless node network during an exemplary alert advertising mode according to an embodiment of the present invention;
[0034] Figure 13 is a diagram illustrating exemplary position determination using master node advertisements according to an embodiment of the present invention;
[0035] Figure 14 is a diagram illustrating exemplary location determination using ID Node Advertisements according to an embodiment of the present invention;
[0036] Figure 15 is a diagram illustrating exemplary position determination by triangulation according to an embodiment of the present invention;
[0037] Figure 16 is a diagram illustrating exemplary position determination by chaining triangulation measurement according to an embodiment of the present invention;
[0038] Figure 17 is a diagram illustrating example logistic operations using example components of a wireless node network according to an embodiment of the present invention;
[0039] Figure 18 is a flow chart illustrating an example method for managing shipments of items using a network of wireless nodes according to an embodiment of the present invention;
[0040] Figure 19 is a flow chart illustrating another example method for managing shipments of items using a network of wireless nodes according to an embodiment of the present invention;
[0041] Figure 20 is a flow chart illustrating an example method for dynamically changing an operating mode of operation of a node in a network of wireless nodes according to an embodiment of the present invention;
[0042] Figure 21 is a flow chart illustrating an example method for managing dynamically changing operating modes of node operation in a network of wireless nodes according to an embodiment of the present invention;
[0043] Figures 22A-22C is a diagram illustrating exemplary stages of movement of an ID node through portions of an exemplary transport path to associate with different master nodes in accordance with an embodiment of the present invention;
[0044] Figure 23 is a flow chart illustrating an example method for association management of a wireless node network according to an embodiment of the present invention;
[0045] Figure 24 is a flow chart illustrating another example method for association management of a wireless node network according to an embodiment of the present invention;
[0046] Figure 25 is a flow chart illustrating yet another example method for association management of a network of wireless nodes according to an embodiment of the present invention;
[0047] Figure 26 is a flow chart illustrating an exemplary method for context management for a wireless node network according to an embodiment of the present invention;
[0048] Figure 27 is a flow chart illustrating an exemplary method for locating a node in a network of wireless nodes based on signal patterns and characteristic indicators observed over a period of time in accordance with an embodiment of the present invention;
[0049] Figure 28 is a flow chart illustrating an exemplary method for location determination by changing power characteristics of a node in a wireless node network according to an embodiment of the present invention;
[0050] Figure 29 is a flow chart illustrating an exemplary method for position determination using one or more associations of nodes in a wireless node network according to an embodiment of the present invention;
[0051] Figure 30 is a flow chart illustrating another exemplary method for position determination using one or more associations of nodes in a wireless node network according to an embodiment of the present invention;
[0052] Figure 31 is a flow chart illustrating yet another exemplary method for position determination using one or more associations of nodes in a wireless node network according to an embodiment of the present invention;
[0053] Figure 32 is a flow chart illustrating an exemplary method for position determination of a first node in a wireless node network based on context data according to an embodiment of the present invention;
[0054] Figure 33 is a flow chart illustrating an exemplary method for determining a position using chained triangulation for one of a plurality of nodes in a wireless node network with a server according to an embodiment of the present invention;
[0055] Figures 34A-34D is a diagram illustrating various exemplary stages of an example shipping and logistics operation using exemplary components of a wireless node network according to an embodiment of the present invention;
[0056] Figure 35 is a flow chart illustrating an exemplary method for generating a shipping label for an item to be shipped using a network of wireless nodes according to an embodiment of the present invention;
[0057] Figure 36 is a flow chart illustrating an exemplary method for conducting a payment transaction using node association in a wireless node network according to an embodiment of the present invention;
[0058] Figure 37 is a flow chart illustrating an exemplary method for preparing an enabling node shipment of items to be shipped using a wireless node network according to an embodiment of the present invention;
[0059] Figure 38 is a flow chart illustrating an exemplary method for operation of an enabling node receptacle in a wireless node network according to an embodiment of the present invention;
[0060] Figure 39 is a flow chart illustrating an exemplary method for shipment consolidation in a wireless node network according to an embodiment of the present invention;
[0061] Figure 40 is a flow chart illustrating another exemplary method for shipment consolidation in a wireless node network according to an embodiment of the present invention;
[0062] Figure 41 is a flow chart illustrating an exemplary method for delivery notification using a network of wireless nodes according to an embodiment of the present invention;
[0063] Figure 42 is a diagram illustrating an example environment for an exemplary parts pickup order using a wireless node network according to an embodiment of the present invention;
[0064] Figure 43 is a flow chart illustrating an exemplary method for picking orders using a wireless node network according to an embodiment of the present invention;
[0065] Figure 44 is a flow chart illustrating an exemplary method for managing the delivery of items being shipped using a network of wireless nodes according to an embodiment of the present invention;
[0066] Figures 45A-45C collectively a series of diagrams illustrating example environments in which nodes are located and can move between areas with different operating node densities and adaptively adjust node power, according to embodiments of the present invention;
[0067] Figure 46 is a flow chart illustrating an exemplary method for adaptive adjustment of node power levels in a network of wireless nodes depending on operating node density as the nodes move to a new area in accordance with an embodiment of the present invention;
[0068] Figure 47 is a flow chart illustrating an exemplary method for adaptive adjustment of node power levels in a network of wireless nodes depending on a threshold of operating nodes within a given area in accordance with an embodiment of the present invention;
[0069] Figures 48A-48C is a diagram illustrating various configurations of an example wireless node network environment with an exemplary magnetically actuated node according to an embodiment of the present invention;
[0070] Figures 49A-49B is a diagram illustrating an example wireless node network environment with example magnetically actuated nodes and example magnetic placement support according to an embodiment of the present invention;
[0071] Figures 50A-50B is a diagram illustrating an example wireless node network environment with example magnetically actuated nodes integrated into example placement support for movable magnetic objects in accordance with an embodiment of the present invention;
[0072] Figure 51 is a flow chart illustrating an exemplary method for magnetically altering the operation of a node in a wireless node network having a master node and a server according to an embodiment of the present invention;
[0073] Figure 52 is a flow chart illustrating an exemplary method for adjusting broadcast settings of a node in a wireless node network having a master node and a server according to an embodiment of the present invention;
[0074] Figure 53 is a flow chart illustrating an exemplary method for enhanced power notification from an ID node in a wireless node network having a master node and a server according to an embodiment of the present invention;
[0075] Figure 54 is a diagram illustrating an exemplary coupler connection between two conveyance systems having an integration node according to an embodiment of the present invention;
[0076] Figure 55 is a more detailed diagram illustrating an exemplary coupler connector between two systems having an integrated node according to an embodiment of the present invention;
[0077] Figure 56 is a diagram illustrating another exemplary coupler connection between two transportation systems having adapter nodes according to an embodiment of the present invention;
[0078] Figure 57is a flow chart illustrating an exemplary method for monitoring at least one signal traversing a coupling connection having a network device communicating on a wireless node network according to an embodiment of the present invention;
[0079] Figure 58 is a flow chart illustrating an exemplary method for sharing shipping condition information in a wireless node network having a plurality of network devices and a server according to an embodiment of the present invention;
[0080] Figure 59 is a flow chart illustrating an exemplary method for requesting shared shipping condition information in a wireless node network having a plurality of network devices and a server according to an embodiment of the present invention;
[0081] Figure 60A is a diagram illustrating an exemplary group of nodes associated with multiple shipments in an exemplary shipping container according to an embodiment of the present invention;
[0082] Figure 60B is a diagram illustrating an exemplary group of nodes associated with multiple shipments on an exemplary shipping pallet according to an embodiment of the present invention;
[0083] Figure 61 is a flow chart illustrating an exemplary method of server operation when creating a hierarchical sensor network for a grouped set of packages being shipped, according to an embodiment of the present invention;
[0084] Figure 62 is a flow chart illustrating an exemplary method of master node operation when creating a hierarchical sensor network for a grouped set of packages being shipped, according to an embodiment of the present invention;
[0085] Figure 63 is a flow chart illustrating an exemplary method of creating a hierarchical sensor network for a grouped set of packages being shipped according to an embodiment of the present invention;
[0086] Figure 64 is a flow chart illustrating an exemplary method for multi-entity management of ID nodes in a wireless node network according to an embodiment of the present invention;
[0087] Figure 65 is a flow chart illustrating an exemplary method for multi-entity management of ID nodes in a wireless node network from the perspective of a shipping consumer entity according to an embodiment of the present invention;
[0088] Figure 66 is a flow chart illustrating an exemplary method for multi-entity management of ID nodes in a wireless node network from the perspective of a receiver entity according to an embodiment of the present invention;
[0089] Figures 67A-67D is a diagram illustrating an exemplary node-enabled autonomous transportation vehicle in various stages of navigation using nodes in a wireless node network according to an embodiment of the present invention;
[0090] Figure 68 is a flow chart illustrating an exemplary method for navigating to a shipping location via an autonomous transport vehicle using a plurality of nodes in a wireless node network according to an embodiment of the present invention;
[0091] Figure 69A is a diagram illustrating an exemplary courier transport vehicle with an exemplary enabling node autonomous vehicle according to an embodiment of the present invention;
[0092] Figure 69B is a diagram illustrating an exemplary enabling node autonomous vehicle as it approaches a package and associated ID node for an exemplary logistics transaction at a transaction location in accordance with an embodiment of the present invention;
[0093] Figure 70 is a flow chart illustrating an exemplary method for automating logistics transactions using a plurality of nodes and a server in a wireless node network according to an embodiment of the present invention;
[0094] Figure 71 is a diagram illustrating an exemplary hierarchical node network for monitoring a piece of equipment within an exemplary healthcare facility in accordance with an embodiment of the present invention;
[0095] Figure 72 is a flow chart illustrating an exemplary method for monitoring a piece of equipment using a hierarchical node network having at least an ID node, a master node, and a server according to an embodiment of the present invention;
[0096] Figure 73 is a flow chart illustrating an exemplary method for monitoring a person's activities using a hierarchical node network having at least an ID node, a master node, and a server according to an embodiment of the present invention;
[0097] Figure 74 is a flow chart illustrating an exemplary method for initiating prestaged preparations associated with a medical treatment to be provided to a patient at a healthcare facility using a hierarchical node network according to an embodiment of the present invention;
[0098] Figure 75A is a diagram illustrating an exemplary container of enabling node packaging material used as part of an exemplary wireless node network in accordance with an embodiment of the present invention;
[0099] Figure 75B is a diagram illustrating another exemplary container of enabling node packaging material used as part of an exemplary wireless node network in accordance with an embodiment of the present invention;
[0100] Figure 76 is a diagram illustrating a view of an exemplary container sheet of enabling node packaging material used as part of an exemplary wireless node network in accordance with an embodiment of the present invention;
[0101] Figure 77 is a diagram illustrating a perspective view of an exemplary assembled container using enabling node packaging material as part of an exemplary wireless node network in accordance with an embodiment of the present invention;
[0102] Figure 78 is a diagram illustrating a perspective view of an exemplary enabling node packaging material implemented using an exemplary packaging separator sheet material and an exemplary cushioning material in accordance with an embodiment of the present invention;
[0103] Figure 79 is a flow chart illustrating an exemplary method of using node-enabled packaging material as part of a container for items to be shipped according to an embodiment of the present invention;
[0104] Figure 80 is a diagram illustrating an exemplary user access device and a package proximate an exemplary shipping facility where an exemplary system notifies a shipping customer about alternative shipping solutions in accordance with an embodiment of the present invention;
[0105] Figure 81 is a flow chart illustrating an exemplary method for proactively notifying a shipping consumer about alternative shipping solutions using a network of wireless nodes when shipping a package in accordance with an embodiment of the present invention;
[0106] Figure 82A is a perspective view illustrating an exterior view of an exemplary enabling node logistics container according to an embodiment of the present invention;
[0107] Figure 82B is a diagram illustrating an embodiment of the present invention Figure 82A FIGURE 1 is a diagram of a side interior view of an exemplary enabling node logistics container;
[0108] Figure 83 is a diagram illustrating an exemplary enabling node logistics container that may evaluate the suitability of its current location according to an embodiment of the present invention;
[0109] Figure 84is a flow chart illustrating an exemplary method for evaluating a current location for an enabling node logistics container according to an embodiment of the present invention;
[0110] Figure 85A is a diagram illustrating an exemplary enabler node logistics container having a master node assembled within the logistics container and ready to receive a package in accordance with an embodiment of the present invention;
[0111] Figure 85B is a diagram illustrating a device having a plurality of components assembled in a Figure 85A A diagram of an exemplary enabler node logistics container of a master node within a logistics container of a wherein the enabler node logistics container is wrapped within the enabler node logistics container;
[0112] Figure 86A is a diagram illustrating an exemplary enabling node logistics container having an ID node assembled within the logistics container and ready to receive a package in accordance with an embodiment of the present invention;
[0113] Figure 86B is a diagram illustrating a device having a plurality of components assembled in a Figure 86A A diagram of an exemplary enabling node logistics container of an ID node within a logistics container, wherein the enabling node logistics container is wrapped within the enabling node logistics container;
[0114] Figure 87 is a flow chart illustrating an exemplary method for proactively reporting the content status of an enabling node logistics container in a wireless node network according to an embodiment of the present invention;
[0115] Figure 88 is a flow chart illustrating another exemplary method for proactively reporting the content status of an enabling node logistics container in a wireless node network according to an embodiment of the present invention;
[0116] Figure 89A is a diagram illustrating an exemplary enabling node logistics container having nodes and exemplary sensors assembled within the logistics container according to an embodiment of the present invention;
[0117] Figure 89B is a diagram illustrating an exemplary enabling node logistics container having a node assembled within the logistics container and another type of exemplary sensor according to an embodiment of the present invention;
[0118] Figure 89C is a diagram illustrating another exemplary enabling node logistics container having nodes and other types of exemplary sensors used as part of the enabling node logistics container in accordance with an embodiment of the present invention;
[0119] Figure 89Dis a diagram illustrating yet another exemplary enabling node logistics container having nodes and further other types of exemplary sensors used as part of the enabling node logistics container according to an embodiment of the present invention;
[0120] Figure 90 is a flow chart illustrating an exemplary method for detecting multiple package types within an enabling node logistics container in a wireless node network according to an embodiment of the present invention;
[0121] Figure 91 is a diagram illustrating an exemplary enabling node logistics container that reports the current status of a package to a server for enhanced deployment of a pickup service by a pickup entity, according to an embodiment of the present invention;
[0122] Figure 92 is a flow chart illustrating an exemplary method for deploying a plurality of picking entities to an enabling node logistics container in a wireless node network according to an embodiment of the present invention;
[0123] Figure 93 is a diagram illustrating an exemplary node packing in an exemplary vehicle environment according to an embodiment of the present invention; and
[0124] Figure 94 is a diagram illustrating an exemplary mobile storage unit, such as a ULD, used as a container to facilitate shipping node packages in an exemplary air freight environment in accordance with an embodiment of the present invention. DETAILED DESCRIPTION
[0125] Reference will now be made in detail to the exemplary embodiments. Wherever possible, the same reference numerals are used in the drawings and the description to refer to the same or like parts.
[0126] In general, various embodiments of a context-aware hierarchical wireless node network that can be managed, operated, and applied by the principles described herein are described below. In general, embodiments of a wireless node network can include one or more lower-level devices or nodes (e.g., ID nodes) that rely on shorter-range communications with higher-level devices or nodes (e.g., master nodes), wherein the higher-level devices or nodes (e.g., master nodes) are operable to communicate with a server over different communication interfaces while the lower-level nodes cannot communicate directly with the server. Those skilled in the art will understand that such a hierarchy of communication network components (generally referred to as network devices) of different functions can be characterized as a network of nodes. Those skilled in the art will appreciate that in some embodiments, despite the fact that the server may not be a dedicated wireless component, the wireless node network can include servers as well as different wireless nodes. In other embodiments, the network can include similar types of wireless nodes or different types of wireless nodes.
[0127] Those skilled in the art will appreciate from the following detailed description that a node can be associated with an item (e.g., an object, a package, a person, a piece of equipment) and can be used to identify and locate the item when dynamically programmed during operation of the network and as the item moves along an intended path (e.g., a delivery path from an origin to a destination). Further described below are various embodiments of wireless node networks, exemplary methods for managing components of wireless node networks, exemplary methods for better determining the location of components of wireless node networks, and applications of wireless node networks that utilize the wireless node networks to enhance logistics operations.
[0128] Wireless Node Network
[0129] Figure 1 A basic diagram of an exemplary wireless node network according to an embodiment of the present invention is shown. Figure 1 The exemplary network shown in FIG. 1 includes a server 100 connected to a network 105, which is further operatively connected to various network components, such as a master node 110a and indirectly connected to an ID node 120a via the master node 110a. The master node 110a is typically connected to the ID node 120a via short-range wireless communication (e.g., Bluetooth®-style communication). The master node 110a is typically connected to the server 100 via the network 105 via longer-range wireless communication (e.g., cellular) and / or medium-range wireless communication (e.g., wireless local area data network or Wi-Fi). The ID node 120a is typically a low-cost device that can be easily placed into a package, integrated as part of the packaging, or otherwise associated with an item to be tracked and located, such as a package 130, a person, or an object (e.g., a vehicle, etc.). Generally, the ID node is able to communicate directly with the master node but not directly with the server, while the master node is able to communicate directly with the server and separately and directly with other nodes (such as the ID node or another master node). The ability to deploy a hierarchy of nodes within an exemplary wireless node network to distribute tasks and functions at different levels in an efficient and economical manner uses such a network of nodes to facilitate a variety of adaptive positioning, tracking, management, and reporting applications, as discussed in more detail below.
[0130] Typically, a lower cost, lower complexity ID node 120a is managed by a higher complexity master node 110a and server 100 as part of keeping track of the location of the ID node 120a (and associated item), thereby providing intelligent, robust, and extensive visibility into the location and status of the ID node 120a. In a typical embodiment, the ID node 120a is first associated with an item (e.g., a package 130, a person, or an object). As the ID node 120a moves with the item, the ID node 120a becomes associated with the master node 110a, and the server 100 is updated with such information. Further movement of the ID node 120a and the item may cause the ID node 120a to be disassociated from the master node 110a and be handed off to become associated with another master node (not shown), after which the server 100 is again updated. In this way, the server 100 generally operates to coordinate and manage information associated with the ID node 120a as the item is physically moved from one location to another. Figure 3 and 4 Further details of the architecture and functionality of exemplary ID node and master node embodiments are described in more detail below. Figure 5 An exemplary server 100 is described in further detail.
[0131] While server 100 is shown connected via network 105, those skilled in the art will appreciate that, depending on implementation details and desired communication paths, server 100 may have multiple connections to, for example, master node 110a. Figure 1 Further, those skilled in the art will appreciate that an exemplary server may include (in Figure 1 In one embodiment, the present invention provides a collection of information in a database (not shown), while multiple databases maintained on multiple server platforms or network storage servers can be used to maintain such a collection of information in other embodiments. Furthermore, those skilled in the art will appreciate that cloud technology can be used to implement a networked storage database that essentially provides a collection of information that is directly accessible to devices such as master node 110a.
[0132] The network 105 may be a general data communication network involving a variety of communication networks or paths. Those skilled in the art will appreciate that such exemplary networks or paths may be used in embodiments of the present invention depending on the server 100 and the network. Figure 1 The desired implementation of a network interconnecting the other components shown in the figure may be implemented using hard-wired structures (e.g., LANs, WANs, telecommunication lines, telecommunication support structures, and telecommunication processing equipment, etc.), wireless structures (e.g., antennas, receivers, modems, routers, repeaters, etc.), and / or a combination of both.
[0133] Master node 110a and ID node 120a are types of nodes. A node is generally a device or apparatus that is part of a network of components and is used to perform one or more tasks. Embodiments of a node may have a unique identifier, such as a Media Access Control (MAC) address or an address assigned to a hardware radio, such as an Internet Protocol version 6 (IPv6) identifier. In some embodiments, the node's unique identifier may be correlated with a shipment identifier (e.g., a shipment tracking number in one example), or may itself be a tracking reference for the shipment.
[0134] ID nodes, such as ID node 120a, are generally low-cost active wireless devices. In one embodiment, the exemplary ID node is a transceiver-based processing or logic unit having a short-range radio with variable RF characteristics (e.g., programmable RF output power range, programmable receiver sensitivity), a memory accessible by the processing unit, a timer operatively coupled to the processing unit, and a power source (e.g., a battery) to provide power to the circuitry of the ID node. For example, the physical implementation of the exemplary ID node can be small and therefore amenable to integration into a package, tag, container, or other type of object. In some implementations of the ID node, the node is rechargeable, while other implementations do not allow for recharging of the power source for the ID node. In other implementations, the ID node is environmentally self-contained or sealed, thereby enabling robust and reliable operation in a variety of environmentally harsh conditions.
[0135] A master node, such as master node 110a, generally functions as an intelligent bridge between ID node 120a and server 100. Thus, a master node is generally more sophisticated than an ID node. In an example embodiment, an exemplary master node is a device having a processing or logic unit, a short-range radio (which may have variable RF characteristics) for communicating with other nodes (ID nodes and other master nodes), a medium and / or long-range radio for communicating with server 100, a memory accessible by the processing unit, a timer operatively coupled to the processing unit, and a power source (e.g., a battery or a wired power connection) to provide power to the circuitry of the master node. An exemplary master node, such as master node 110a, may be positioned in a known fixed location or, alternatively, be a mobile unit with dedicated position location circuitry (e.g., GPS circuitry) to allow the master node to determine its location itself.
[0136] Although Figure 1The embodiment illustrated in FIG shows only a single master node and a single ID node, but those skilled in the art will appreciate that a wireless network consistent with embodiments of the present invention may include a wide array of similar or different master nodes and a wide array of similar or different ID nodes, each communicating with the server 100 and / or other master nodes. Figure 1 The exemplary network shown in is a basic embodiment, and Figure 2 The exemplary network shown in FIG. 1 is a more detailed exemplary wireless node network according to another embodiment of the present invention.
[0137] Now refer to Figure 2 , shows another exemplary wireless node network including a server 100 and a network 105. Here, master nodes 110a, 110b, 110c are deployed and connected to the network 105 (and connected to the server 100 by virtue of those respective connections) as well as to each other. ID nodes 120a, 120b, 120e are shown as being connectable to or operable to communicate with various master nodes via different paths. However, in Figure 2 In FIG, ID nodes 120c and 120d are shown connected to ID node 120b but not to any of the master nodes. This may be the case if, for example, ID nodes 120b, 120c, 120d are associated with different items (e.g., packages) that are within a larger cargo container 210 (or grouped together on a pallet). In such an example, only ID node 120b may remain within wireless communication range of any of the master nodes. This may be because of, for example, the location of the different ID nodes within the cargo container relative to the nearest master node, adverse RF shielding caused by the cargo container, adverse RF shielding caused by the packaging of the items, or adverse RF shielding caused by other nearby materials that interfere with radio transmissions (e.g., several packages of metal items between the ID nodes and any master nodes outside the cargo container). Thus, in Figure 2 In the illustrated configuration of the exemplary network shown in , ID nodes 120c and 120d may be out of range of the master node and still have an operable communication path to the master node through ID node 120b.
[0138] In fact, in one example, prior to placement within the container 210, the ID node 120b may actually be a master node but the changed RF environment when it is placed within the container 210 may interfere with the master node's ability to locate itself via a positioning signal (e.g., a GPS signal) and cause the master node to temporarily operate as an ID node while still providing communication and shared data with other ID nodes within the container 210.
[0139] exist Figure 2Also shown are user access devices 200, 205 that are capable of connecting to the network 105, the master node, and the ID node. Generally, the user access devices 200 and 205 allow a user to interact with one or more components of the exemplary wireless node network. In various embodiments, a desktop computer, a laptop computer, a tablet (such as an Apple iPad® touch screen tablet), a personal area network device (such as a Bluetooth® device), a smartphone (such as an Apple iPhone®), a smart wearable device (such as a Samsung Galaxy Gear TM Smartwatch device or Google Glass TM Wearable smart optical devices) or other such devices to implement user access devices 200, 205, and said other such devices are capable of communicating with the server 100 through the network 105 and communicating with the master node and ID node through wired or wireless communication paths.
[0140] As in Figure 2 As shown in FIG, the user access devices 200, 205 are coupled to or in communication with the network 105, but each of them can also communicate with each other or other network components in a more direct manner (e.g., via near field communication (NFC), over a Bluetooth® wireless connection, over a WiFi network, a dedicated wired connection, or other communication paths).
[0141] In one example, a user access device such as device 200 or 205 can facilitate associating an ID node (such as ID node 120a) with a tracking number for a package at the beginning of the shipping process, facilitate collaboration with server 100 to check the status and / or location of the package and associated ID node during transit, and facilitate possible retrieval of data from a master node or ID node associated with the shipped package. Thus, those skilled in the art will appreciate that user access devices such as devices 200, 205 are essentially interactive communication platforms through which a user can initiate the shipment of an item, track the item, determine the status and location of the item, and retrieve information about the item.
[0142] An exemplary user access device such as device 200 or 205 may include sufficient hardware and code (e.g., an app or one or more other program code segments) to operate as a master node or ID node in various embodiments, as discussed in more detail below. For example, device 200 may be implemented as a mobile smart phone and functionally operate as an exemplary ID node that broadcasts announcement packet messages to other ID nodes or master nodes for association and sharing data with such nodes. In another example, device 200 is implemented as a mobile smart phone and may operate as an exemplary master node that communicates and associates with ID nodes and other master nodes as described herein, and communicates with server 100. Thus, those skilled in the art will appreciate that user access devices such as device 200 or 205 that are appropriately programmed may be utilized to implement Figure 3 Example ID nodes in and Figure 4 The exemplary master nodes in and their corresponding parts, codes and program modules. Figure 3 Example ID nodes in and Figure 4 The following description of an exemplary master node in will be applicable to a user access device operating as an ID node or a master node, respectively.
[0143] ID Node
[0144] Figure 3 is a more detailed diagram of an exemplary ID node device according to an embodiment of the present invention; as previously described, one embodiment of an ID node includes a transceiver-based processing or logic unit having a short-range radio with variable RF characteristics (e.g., programmable RF output power range, programmable receiver sensitivity), a memory accessible by the processing unit, a timer operably coupled to the processing unit, and a power source (e.g., a battery) for providing power to the circuitry of the ID node. Reference is now made to Figure 3 In a more detailed embodiment, the exemplary ID node 120a is shown to include a processing or logic unit 300 coupled to a variable power short-range communication interface 375, a memory storage 315, a volatile memory 320, a timer 370, and a battery 355. Those skilled in the art will appreciate that the processing unit 300 is logic, such as a low-power consumption microcontroller, that generally performs calculations on data and executes operational and application code and other program modules or segments thereof within the ID node 120a. As such, the exemplary processing unit 300 operates as the transceiver-based processing core of the ID node 120a.
[0145] Those skilled in the art will also appreciate that the exemplary ID node 120a is a hardware-based component that can be implemented using a single processor or logic unit such as unit 300. In one embodiment, the processing unit 300 can be implemented using an Intel® 8051 CPU core and associated peripheral circuits, as guided by the needs of a particular application. Less complex microcontrollers or discrete circuits can be used to implement the processing unit 300 as well as more complex and sophisticated microcontrollers. In addition, the exemplary processing unit 300 can be integrated into a single-chip transceiver that serves as the core of the ID node 120a.
[0146] The variable power short-range communication interface 375 of the ID node 120a is typically a programmable radio and an omnidirectional antenna coupled to the processing unit 300. In other embodiments, the interface 375 may use antennas with different antenna profiles when directionality may be desired. Examples of the variable power short-range communication interface 375 may include other docking hardware (not shown) for operatively coupling the device to a dedicated short-range communication path (e.g., a Bluetooth® Low Energy (BLE) connection path communicating at 2.4 GHz).
[0147] In one embodiment, various RF characteristics of the radio's transceiver, such as RF output power and / or RF receiver sensitivity, can be dynamically and programmatically changed under the control of processing unit 300. In other embodiments, further RF characteristics of the radio's transceiver, such as frequency, duty cycle, timing, modulation scheme, spread spectrum hopping aspects, etc., can be programmatically changed as needed to flexibly adjust the RF output signal depending on the desired implementation and intended use of ID node 120a. As will be explained in more detail below, certain embodiments may utilize broadcast profiles with parameters that can be programmatically changed or adjusted. In other words, embodiments of ID node 120a (or any other ID node) can have programmatically adjustable RF characteristics (such as adjustable RF output signal power, adjustable RF receiver sensitivity, the ability to switch to different frequencies or frequency bands, etc.).
[0148] The battery 355 used for the ID node 120a is the type of power source that generally powers the circuitry that implements the ID node 120a. In one embodiment, the battery 355 can be a rechargeable power source. In other embodiments, the battery 355 can be a non-rechargeable power source that is intended to be disposed of after use. In certain embodiments of the ID node, the power source can involve alternative energy generation, such as a solar cell.
[0149] The timer 370 of the ID node 120a generally provides one or more timing circuits used in applications such as time delay, pulse generation, and oscillator. In an embodiment, the timer 370 helps the processing unit 300 manage timing operations when the ID node 120a saves power by entering a sleep or hibernation state for a predetermined period of time as part of an overall power saving technique. In addition, embodiments may allow the ID nodes to share data to synchronize different nodes with respect to the timer 370 and a common timing reference between the nodes and a server.
[0150] Embodiments may implement the ID node 120a to optionally include a basic user interface (UI) 305 that indicates status and allows basic interactions such as start / stop. In one embodiment, the UI 305 may be implemented using a status light such as a multi-mode LED. Different colors of the light may indicate different states or modes of the ID node 120a (e.g., announcement mode (broadcast), scan mode (listening), current power state, battery level state, association state, error, sensed conditions (e.g., exceeding a temperature threshold, exceeding a humidity (moisture) threshold, etc.)). Other embodiments of the ID node may implement the UI 305 in a more sophisticated manner, such as using a graphical display that can display such status or mode information as well as one or more prompts.
[0151] In a further embodiment, the exemplary status light used as part of the UI 305 of the ID node can also indicate the shipping status. In more detail, the exemplary shipping status can include the status of the item being shipped or the status of the current shipping journey of the item from the origin to the destination.
[0152] Embodiments may also implement the ID node 120a to optionally include one or more sensors 360. In certain embodiments, an ID node implemented with one or more sensors 360 may be referred to as a sensor node. Examples of sensors 360 may include one or more environmental sensors (e.g., pressure, movement, light, temperature, humidity, magnetic field, altitude, attitude, orientation, acceleration, etc.) and dedicated location sensors (e.g., GPS sensors, IR sensors, proximity sensors, etc.). Those skilled in the art will understand that additional types of sensors that measure other characteristics are contemplated for use as sensors 360. Additionally, those skilled in the art will understand that the sensor node may include additional program features to manage the collection, storage, sharing, and disclosure of captured sensor data.
[0153] Embodiments may further implement the ID node 120a to optionally include one or more magnetic switches 365. The magnetic switch 365, such as a reed switch, generally operates to close or open an electrical path or connection in response to an applied magnetic field. In other words, the magnetic switch 365 is actuated by the presence of a magnetic field or the removal of a magnetic field. As discussed in more detail in the embodiments described below, various applications may involve the operation of the ID node 120a with the magnetic switch 365.
[0154] With Figure 3 Consistent with the embodiments shown in , the exemplary ID node 120a can be implemented based on the Texas Instruments CC2540 Bluetooth® Low Energy (BLE) system-on-chip, which includes various peripheral devices (e.g., timer circuits, USB, USART, general-purpose I / O pins, IR interface circuits, DMA circuits) for functioning as an ID node and, if necessary, for interfacing with different possible sensors and other circuits (e.g., additional logic chips, relays, magnetic switches) that make up the ID node.
[0155] In additional embodiments, those skilled in the art will appreciate that similar functionality in the ID node may be implemented with other types of hardware. For example, the ID node 110a may be implemented with specially optimized hardware (e.g., a specific application-specific integrated circuit (ASIC) having the same operational controls and functionality as the node control and management code described below), discrete logic, or a combination of hardware and firmware, depending on the requirements of the ID node, such as power, processing speed, level of adjustability for RF characteristics, number of memory storage units coupled to the processor(s), cost, space, etc.
[0156] As mentioned above, ID node 120a includes memory accessible by processing unit 300. Each of memory storage device 315 and volatile memory 320 is operably coupled to processing unit 300. Both memory components provide programming and data elements used by processing unit 300. Figure 3In the embodiment shown in FIG, memory storage 315 maintains various program codes (e.g., node control and management code 325) and other data elements (e.g., profile data 330, security data 335, association data 340, shared data 345, sensor data 350, etc.). Memory storage 315 is a tangible, non-transitory computer-readable medium on which information (e.g., executable code / modules, node data, sensor measurements, etc.) can be maintained in a non-volatile and non-transitory manner. Examples of such memory storage 315 may include a hard drive, ROM, flash memory, or other media structures that allow for long-term, non-volatile storage of information. In contrast, volatile memory 320 is typically a random access memory (RAM) structure used by processing unit 300 during operation of ID node 120a. When ID node 120a is powered on, volatile memory 320 may be populated with operating programs (such as node control and management code 325) or specific program modules that help facilitate specific operations of ID node 120a. And during operation of the ID node 120a, the volatile memory 320 may also include certain data (e.g., profile data 330, security data 335, association data 340, shared data 345, sensor data 350, etc.) generated when the ID node 120a executes instructions that are programmed or loaded from the memory storage device 315. However, those skilled in the art will appreciate that this is not the case. Figure 3 All data elements shown in FIG must be present in both the memory storage device 315 and the volatile memory 320 .
[0157] Node control & management code
[0158] Generally, an embodiment of the node control and management code 325 is a collection of software features implemented as programming functions or program modules that generally control the behavior of a node, such as the ID node 120a. In an embodiment, the functionality of the code 325 may be generally similar to that implemented in different types of nodes, such as master nodes, ID nodes, and sensor nodes. However, those skilled in the art will appreciate that while certain principles of operation are similar between such nodes, other embodiments may implement the functionality differently, depending on the desired implementation and use of the node, utilizing a degree of specialization, or implementing the functionality differently.
[0159] In a general embodiment, the exemplary node control and management code 325 may generally include several programming functions or program modules, including (1) a node advertising and query (scanning) logic manager (also referred to herein as a node communication manager), which manages how and when nodes communicate; (2) an information control and exchange manager, which manages whether and how information can be exchanged between nodes; (3) a node power manager, which manages aspects of power consumption and RF output signal power and / or receiver sensitivity for variable short-range communications; and (4) an association manager, which focuses on how a node associates with other nodes. The following is a description of various embodiments of these basic program modules used by a node.
[0160] Node Communication Manager - Advertisement & Scanning
[0161] In an exemplary embodiment, the node advertisement and query (scan) logic manager governs how and when a node should advertise (transmit) its address or query (scan) the addresses of neighboring nodes. Advertisements are typically accomplished using messages, which can contain different information in various components (e.g., headers, fields, flags, etc.). Messages can be single or multiple packets.
[0162] In an exemplary embodiment, "advertise" mode (as opposed to "inquiry" or "scan" mode) is the default mode for an ID node and causes the node to broadcast or transmit a message with its address and relevant metadata about the node. For example, in one embodiment, exemplary metadata may include information such as RF output power level, reference number, status flag, battery level, and the node's manufacturer name.
[0163] Figure 6 is a diagram illustrating the structure or format of an exemplary announcement data packet according to a general embodiment of the present invention. Figure 6 , shows the structure 600 of an exemplary announcement data packet broadcast as a signal or message from an ID node, such as ID node 120a. Packet 600 is shown in increasing levels of detail, showing exemplary metadata and the format of different types of metadata maintained separately in different parts of the packet. Different embodiments may include different types of metadata depending on the application of the deployment of the ID node.
[0164] Figure 7 is a diagram of sample contents of an exemplary announcement data packet according to an embodiment of the present invention. Figure 7, an exemplary advertising data packet 700 is illustrated with exemplary metadata, including showing sample information such as RF output power level (e.g., "TX Power Level"), a reference number (e.g., "TDX ID (ASCII short name)", a status flag (e.g., "Status Flag Value (indicating Acknowledgement Requested)"), a battery level (e.g., "Battery Level Value (indicating 73% charge)"), and the manufacturer name of the node (e.g., "Company Identifier (currently undefined for FedEx)"). In one embodiment, those skilled in the art will appreciate that the reference number may be omitted or obfuscated for security purposes.
[0165] In one embodiment, as described above in Figure 7 As mentioned in , the exemplary advertising data packets may include the RF output power level to enable a way to help identify the type of node broadcasting and the location of the broadcasting node. However, if the broadcast RF output power level is fixed and known by the node type, then only the node type needs to be identifiable based on exemplary data packets such as packet 700.
[0166] Regarding how nodes communicate, exemplary nodes can be in one of several different communication modes. A node in an advertising (or transmitting or broadcasting) mode is visible to any other node in an inquiry (or scanning or listening) mode. In embodiments, the frequency and length of advertising can be application and power dependent. For example, in normal operation, exemplary nodes will generally advertise in a periodic manner and expect to make an active connection to another node at certain intervals, as dictated by conditions set by server 100. In embodiments, such conditions can be set individually for each node by the server or a higher-level node in the network.
[0167] If an exemplary node has not received an acknowledgment for an announcement packet within a specified period of time, it may enter one or more alerting phases. For example, if an exemplary node has not received an acknowledgment for an announcement packet broadcast by the exemplary node from another node within a specified period of time (also commonly referred to as an alerting interval), the exemplary node will enter the alerting phase 1 state. This prompts the exemplary node to issue a subsequent announcement packet with one or more portions thereof altered to indicate the alerting phase 1 state. More specifically, the exemplary subsequent announcement packet may have a different announcement alert header that instructs nearby nodes to send a SCAN_REQ message upon receiving the announcement packet.
[0168] If the exemplary node does not receive an acknowledgment from the master node for its broadcast of an advertisement packet within another time period (a request from the master node to actively connect and successfully connect), it will enter another alerting phase, such as the Alert Phase 2 state. This prompts the exemplary node to issue a subsequent advertisement packet with one or more portions thereof changed to indicate the Alert Phase 2 state. More specifically, the exemplary subsequent advertisement packet may have a different advertisement alert header that instructs a nearby master node to send a SCAN_REQ message upon receiving the advertisement packet.
[0169] If the exemplary node has data to upload to the backend, it may also enter another type of alert phase. In one embodiment, for example, if the exemplary node has sensor data collected by the exemplary node (or received from one or more other nodes with which the exemplary node is already communicating) and the data needs to be uploaded to server 100, the exemplary node may enter an update alert phase, such as Alert Phase 3. This prompts the exemplary node to issue a subsequent notification packet, one or more of which changes to indicate an Alert Phase 3 state. More specifically, the exemplary subsequent notification packet may have a different notification alert header that instructs a nearby master node to establish a connection with the exemplary node, enabling data (e.g., sensor data 350) to be transferred from the exemplary node (e.g., ID node 120a) to the nearby master node (e.g., master node 110a). The transferred data may then be stored by the nearby master node as sensor data 450 in either or both of the master node's volatile memory 420 and memory storage 415. Following this storage operation, the nearby master node will transmit the data (e.g., sensor data 450) to server 100.
[0170] As in Figure 7 As illustrated in FIG and explained above in the description of the alert level phase, the state flag in the header of the exemplary advertisement data packet is a field used in the association logic of one or more embodiments. For example, in one embodiment, the presence of the state flag in the advertisement data packet allows a first node to communicate its state to a second node and report that state to a backend server, such as server 100, for the second node without an active direct connection from the first node to the server. In other words, the state flag helps facilitate passive interactions (such as passive association) between nodes.
[0171] In a more detailed embodiment, several exemplary state types are established regarding communication with other nodes. For example, exemplary state types may include the following:
[0172] •Alert level 0 – no problem, normal operation;
[0173] • Alert Level 1 – The advertising node is requesting any available node to acknowledge receipt of its advertising packet;
[0174] • Alert Level 2 – The advertising node is requesting any available master node to acknowledge receipt of its advertising packet;
[0175] • Alert Level 3 – Data Available for Upload – The node has captured data available for upload via the master node; and
[0176] • Synchronize – The advertising node requests a connection with a device or sensor that can synchronize data such as timers or location information.
[0177] By broadcasting the status via, for example, a portion of the header in an announcement data packet, one or more nodes within range of the broadcasting node can determine the status of the node and initiate an active connection, if requested in the status message.
[0178] Requests for more messages from the advertising node may, in some embodiments, arrive in the form of a SCAN_REQ message. Typically, an exemplary SCAN_REQ is a message sent from a scanning (listening) master node to an advertising node, requesting additional information from the advertising node. In this example, an alert status bit can indicate to the scanning master node, for example at the application layer, whether the advertising node is in a mode where it will accept SCAN_REQs or a mode where it will not accept SCAN_REQs. In one embodiment, the non-connectable and discoverable modes of the advertising node conform to the Bluetooth® Low Energy (BLE) standard.
[0179] In another embodiment, a node can have further different modes of operation when scanning or listening for other nodes. For example, a node's inquiry or scanning mode can be active or passive. When a node is scanning in a passive mode, it will receive advertising data packets but will not acknowledge or send a SCAN_REQ. However, when a node is scanning in an active mode, it will receive advertising data packets and will acknowledge receipt by sending a SCAN_REQ. More detailed embodiments may provide passive and active modes of scanning or inquiry in accordance with the Bluetooth® Low Energy (BLE) standard.
[0180] In an embodiment, an exemplary node is scanning as it listens for other wireless nodes broadcasting on a short-range radio. The exemplary scanning node may capture, for example, the MAC address of the advertising node, the signal strength of the RF output signal transmitted from the advertising node, and any other metadata published by the advertising node (e.g., other information in the advertising data packet). Those skilled in the art will appreciate that the range of "listening" when a node is scanning can vary. For example, the query can be limited. In other words, the range of things that the node is particularly interested in and that it is listening for can be focused or otherwise limited. In such a case, for example, the information collected can be limited to specific information from a target population of advertising short-range wireless nodes; but the information collection can be considered "open," where information from any advertising device is collected.
[0181] When a node is advertising or scanning, embodiments may further utilize status flags and additional modes as part of how the node communicates and can be managed while advertising or scanning. In one example, when a scanning (listening) node receives an advertising data packet with a status flag indicating an alert level 1 or 2 state, and the scanning node is in "passive" scanning mode, the node will switch to "active" scanning mode for a certain interval. However, if the scanning node is already in "active" scanning mode in this case, the node will send a SCAN_REQ message and receive a SCAN_RSP (e.g., a message providing additional information requested from the advertising node) from the advertising node. The scanning node will then switch back to "passive" scanning mode.
[0182] In another example, when an advertising (broadcasting) node receives a SCAN_REQ from a scanning node, the advertising node will consider its advertising data packet to have been acknowledged. Further, the advertising node will reset its "alert" state flag back to the alert level 0 state. This allows the advertising node to effectively receive an acknowledgement of its advertisement without ever making a connection to the scanning node, which advantageously and significantly saves power consumption.
[0183] In yet another example, when a scanning node receives an advertisement data packet with an alert level 3 status flag set, the scanning node will attempt to connect to the advertising device. Once connected, the advertising device will attempt to upload its data to the connected device.
[0184] Thus, embodiments of the node advertising and query (scanning) logic manager of code 325 may rely on one or more status flags, advertising modes, and scanning modes when nodes communicate with each other in various advantageous ways.
[0185] Node Information Control & Exchange Manager
[0186] In an exemplary embodiment, the information control and exchange manager portion of the node control and management code 325 determines whether and how information can be exchanged between nodes. In an exemplary embodiment, the information control and exchange manager establishes different states of node operation, where information can be changed based on the desired paradigm for the state. In more detail, an embodiment of the information control and exchange manager can establish different levels of information exchange between nodes, the nodes having a "non-connectable advertising" state or mode of operation, a "discoverable advertising" state or mode, and a "general advertising" state or mode of operation. When a node is in a "non-connectable advertising" mode, node information exchange is limited. For example, an advertising node can broadcast information captured by one or more querying (scanning) nodes, but no two-way exchange of information occurs.
[0187] When a node is in "discoverable advertising" mode and a scanning node is in "active" mode, node information is exchanged in two ways. For example, the advertising node sends an advertising packet, and in response, the scanning node sends a SCAN_REQ packet. After the advertising node receives the SCAN_REQ packet requesting additional information, the advertising node sends a SCAN_RSP packet with the requested information. Thus, in "discoverable advertising" mode, there is a two-way exchange of information, but no active connection is established between the two nodes exchanging information.
[0188] Finally, for advanced two-way information exchange, active connections can be used between nodes and information can be exchanged bidirectionally to and from different nodes. In a more detailed embodiment, at this level of two-way information exchange, the nodes are first identified and then authenticated as part of establishing an active connection. Once authenticated and thereafter actively become connected, the nodes can securely share information back and forth. In one example, a sensor node that uploads previously captured environmental information to a master node may be in this mode or state. In another example, an ID node that uploads the stored results of a node scan operation to a master node may be in this mode or state. In yet another example, a master node that shares timer and / or location information with a corresponding node may be in this mode or state.
[0189] Node Power Manager
[0190] In an exemplary embodiment, the node power manager portion of the node control and management code 325 focuses on managing power consumption and the beneficial use of power in the node (e.g., an adjustable level of RF output signal power). Typically, the node is powered by a battery (such as battery 355 in an ID node) or through an interface to an external power source (such as battery / power interface 470 in a master node). In some embodiments, examples of external power sources may include power supplied from an outlet or power connection within a facility, or power generated onboard a vehicle (e.g., a car, truck, train, aircraft, ship, etc.). Those skilled in the art will appreciate that an interface to an external power source will generally be referred to as a "wired" power connection, and that the node power manager can be notified if a node is disconnected or powered off, such as battery 355. Further embodiments may utilize wireless power transmission, such as via an inductive coil, to implement the interface to the external power source.
[0191] In one embodiment, a node can manage the power used when performing a task. For example, a node can manage power when determining which node should perform a particular task. In more detail, the unified power consumption of a group of devices can be managed by selecting to employ wired nodes to complete a particular task when feasible or desired and reserving battery-powered nodes for other less energy-heavy or onerous tasks. In another embodiment, historical data can inform the system of the power required to complete a particular task, and the system can make a determination of which node should complete a particular task based on such historical data. In other embodiments, profile data can also be used to inform the system of the power required to complete a particular task (e.g., a sensor profile that describes the power requirements for the operation of a sensor node that collects sensor data over a certain time period and under certain conditions). The system can also make a determination of which node should complete a particular task based on such profile data.
[0192] In another example, an exemplary node power manager can manage power by determining how best to use and adjust power to more accurately accomplish a specific task. In one embodiment, an RF signal output from a node (such as a short-range RF output signal from an ID node) can periodically move through a range of output powers or switch between two or more settings that differ in a detectable manner. As disclosed in more detail below, the variability and dynamic adjustment of the RF output signal power can allow other nodes (such as one or more master nodes) to see every node at a higher range of RF output signal power and only see nodes that are physically close to the advertising node at a lower range of signal power.
[0193] In another example, the exemplary node power manager may cause a change in a characteristic of its RF output signal power when the node has been associated with a physical location or another node via context data, such as context data 560 and associated logic utilizing this type of information. In one embodiment, the node may be instructed to change a characteristic of how frequently the node communicates and / or change its RF output power to conserve power.
[0194] In yet another example, all advertising nodes can cause their respective node power managers to periodically cause each respective node to broadcast at a maximum RF output signal power level to ensure they are still within range of the scanning ID node or master node. Doing so can increase the chance of being in communication range and allow individual nodes to be properly located and managed within the network. The broadcast duration can be set or dynamically changed to allow pairing to occur, if desired.
[0195] Rather than adjusting the RF output signal power level, the exemplary node power manager may, in certain embodiments, adjust the node's RF receiver sensitivity. This allows for an adjustable range for reception (as opposed to an adjustable range for broadcast only), which may be similarly used to manage power and enhance position determination as discussed herein.
[0196] In yet another embodiment, a combined approach may be used where the node power manager can simultaneously and independently adjust more than one RF characteristic of a node. For example, as a node is positioned and associated with other nodes, an exemplary node power manager can adjust the RF output signal power level and also adjust the node's RF receiver sensitivity. Those skilled in the art will recognize that this may be particularly useful in areas with an unusually dense concentration of nodes and a combination of varying RF output signal power levels.
[0197] When adjusting the power characteristics of a node (e.g., power consumption, power usage, output signal frequency, duty cycle of output placement signals, timing, power level, etc.), embodiments of the exemplary node management manager may refer to a power profile (e.g., exemplary types of profile data 330, 430).
[0198] Node Association Manager
[0199] In the exemplary embodiment, the node association manager portion of the node control and management code 325 is concerned with how a node associates with other nodes in conjunction with and consistent with the server-side association manager in code 525, as discussed in greater detail below. Thus, the exemplary node association manager, when executed in a node, directs the node how to associate with one or more other nodes (e.g., enter active connection mode) using input from a server.
[0200] An exemplary node association manager for a node may indicate via a status flag whether the node requires confirmation or connection, or whether it has information available for upload to the backend. Thus, while a node may not yet be associated with or actively connected to another node, the node's status may be inferred from, for example, status information in the node's broadcast header.
[0201] With respect to connections between nodes, there are generally secure connections and unsecure connections. While embodiments may allow unsecure connections between one or more sets of nodes, other embodiments rely on secure connections or authenticated pairing of nodes. In one embodiment, for a node to be paired with another node, an exemplary node association manager first identifies the nodes to be associated and transmits an association request to a server. The request may include a specific request to pair the nodes and request corresponding pairing credentials from a server such as server 100. Server 100 may have staged pairing credentials for a particular node based on information indicating that the nodes will be within wireless proximity and that future pairing may occur. Visibility of the node relationship may have been determined by scanning a notification or 3rd party data such as barcode scan information, which indicates that the current or future state of the node will be within proximity.
[0202] When connected or not connected to exchange information in the exemplary node information exchange mode described above, the node generally operates in a plurality of states that constitute the exemplary advertising cycle for the exemplary ID node. Figure 8 Such an exemplary advertising period for a node is further explained in conjunction with and consistent with the server-side association manager in code 525.
[0203] Air transport mode program module
[0204] In one embodiment, the node control and management code 325 may also include an air transport mode program module (not shown). In another embodiment, the air transport mode program module may be implemented as part of the node power manager program module of the code 325. When the ID node is operating in an aircraft, the exemplary air transport mode program module generally operates to manage the output power of the variable power short-range communication interface 375 of the ID node. Operating wireless devices within the aircraft may, in some cases, have unintended effects on other electronic systems on the aircraft. More specifically, embodiments of the air transport mode program module may operate to transition the ID node according to different states or modes depending on the specific operation and / or operating conditions of the aircraft. For example, the exemplary air transport mode program module may operate to transition the ID node according to one state or mode (e.g., normal mode before takeoff, disabled mode during takeoff, air transport mode while in the air, disabled mode during descent, and normal mode after landing) based on detected environmental conditions (e.g., pressure, altitude) and / or flight details associated with the aircraft. In this manner, an ID node may be permitted to operate normally while onboard an aircraft, be completely prohibited from operating in certain circumstances, and be capable of operating in an airplane mode that permits sensing and sensor data capture but may limit the transmission of RF output signals to avoid interfering with the aircraft's onboard electronics. System and Method for Management of Wireless Devices Aboard an Aircraft Further information related to methods of managing wireless devices, such as ID nodes, in aircraft is disclosed in greater detail in U.S. patent application Ser. No. 12 / 761,963, filed with the U.S. Patent Application No. 12 / 761,963, which is incorporated herein by reference.
[0205] Node data
[0206] As previously mentioned, volatile memory 320 may also include certain data (e.g., profile data 330, security data 335, association data 340, shared data 345, sensor data, etc.) generated when ID node 120a executes instructions programmed into or loaded from memory storage 315. Generally, data used on a node such as an ID node may be received from other nodes or generated by the node during operation.
[0207] In one embodiment, profile data 330 is a type of data that defines a general type of behavior for an ID node, such as a broadcast profile (discussed in more detail below). In another embodiment, where ID node 120a is a BLE device, profile data 330 may include a Bluetooth® compatible profile related to battery services (exposing the status of the battery within the device), proximity between BLE devices, or messaging between BLE devices. Thus, exemplary profile data 330 may reside in volatile memory 320 and / or memory storage 315 as a type of data that defines parameters of node behavior.
[0208] In one embodiment, it may be desirable to allow secure pairing of nodes. As will be explained in more detail below, as part of secure pairing of nodes, a request for pairing credentials is generated and sent to the server 100. Thus, exemplary security data 335 (e.g., PIN data, security credentials, keys, etc.) may be present in the volatile memory 320 and / or the memory storage device 315 as types of data associated with providing a secure relationship between nodes, such as the requested security credentials.
[0209] Association data, such as association data 340, generally identifies a connection relationship between nodes. For example, ID node 120a may become associated with master node 110a when ID node 120a moves within range of master node 110a and after the server directs the two nodes to associate (with authorization). Thus, information identifying the relationship between ID node 120a and master node 110a may be provided to server 100 and may be provided to each of ID node 120a and master node 110a for a certain point. Thus, exemplary association data 340 may exist in volatile memory 320 and / or memory storage device 315 as a type of data that identifies an association between nodes.
[0210] Shared data 345 may reside in volatile memory 320 and / or memory storage 315 as a type of data exchanged between nodes. For example, context data (such as environmental data) may be a type of shared data 345 .
[0211] Sensor data 350 may also be present in volatile memory 320 and / or memory storage 315 as types of data recorded and collected from onboard sensors or from another node. For example, sensor data 350 may include temperature readings from a temperature sensor onboard an ID node and / or from another ID node (e.g., from a Figure 2 Humidity readings from a humidity sensor in another of the ID nodes within container 210 shown in FIG.
[0212] Therefore, ID nodes (such as Figure 3 Node 120a) shown in is a lower cost wireless node that communicates with other ID nodes and master nodes via a short range radio with variable RF characteristics, can associate with other nodes, can broadcast to other nodes and scan for other nodes, associate with other nodes, and store information / exchange information with other nodes.
[0213] Master Node
[0214] Such as Figure 4 The master nodes 110a, shown in greater detail in FIG, share many ID node features but generally extend them to function as a bridge to the server 100. Generally, while the ID node is a type of lower-level node in the exemplary wireless node network, the master node is a type of higher-level node. The exemplary master node may be in a fixed location or otherwise stationary, while other example master nodes may be implemented as mobile and mobile devices.
[0215] Now refer to Figure 4 , the exemplary master node 110a includes a processing or logic unit 400 coupled to a short-range communication interface 485, a memory storage device 415, a volatile memory 420, a clock / timer 460, and a battery / power interface 470. In some embodiments, the short-range communication interface 485 can have variable power characteristics, such as receiver sensitivity and RF output power level. Those skilled in the art will appreciate that the processing unit 400 is logic, such as a microprocessor or microcontroller, that generally performs calculations on data and executes operational and application code and other program modules within the master node 110a.
[0216] Generally, those skilled in the art will appreciate that Figure 4 The description of the hardware of ID node 110a in applies to similar hardware and software features that appear in each type of node, including master nodes. Those skilled in the art will understand that the exemplary master node 110a is a hardware-based component that can utilize a single processor or logic unit, a more powerful multi-core processor, or multiple processors to implement the processor 400, depending on the desired implementation. In one embodiment, the processing unit 400 can be implemented using a low-power microprocessor and associated peripheral circuitry. Less complex microcontrollers or discrete circuits can be used to implement the processing unit 400 as well as more complex and sophisticated general-purpose or application-specific processors.
[0217] In yet another embodiment, the exemplary processing unit 400 can be implemented by a low-power ARM1176JZ-F application processor used as part of a single-board computer, such as the Raspberry Pi computer model B-Rev-2. The ARM application processor is embedded within the Broadcom® BCM2835 system-on-chip (SoC) deployed in the Raspberry Pi computer. In this embodiment, the Raspberry Pi computer device functions as the core of the exemplary master node 110a and includes a secure digital memory card slot and a flash memory card that functions as a memory storage device 415, a 512-megabyte RAM memory storage device that functions as a volatile memory 420, an operating system (such as Linux) stored on the memory storage device 415 and running in the volatile memory 420, and peripheral devices that implement a clock / timer 460, and a power supply that functions as a power interface 470.
[0218] As with the short-range interface 375 in the ID node 120a, the exemplary master node 110a includes a short-range communication interface 480 that is a programmable radio and omnidirectional antenna coupled to the processing unit 400. In certain embodiments, the short-range communication interface 480 may have variable RF power characteristics, such as receiver sensitivity and / or RF output signal power level. In certain embodiments, when directionality may be desired, the interface 480 may use antennas with different antenna distributions. Examples of the short-range communication interface 480 may include other hardware (not shown) for operatively coupling the device to a specific short-range communication path (e.g., a Bluetooth® Low Energy (BLE) connection path communicating at 2.4 GHz). While BLE is used to enable the short-range communication protocol in one embodiment, the variable power short-range interface 480 may be implemented using other low-power short-range communication protocols, such as the ultra-low power communication protocol used with ultra-wideband impulse radio communication, the ZigBee protocol, the IEEE 802.15.4 standard communication protocol, and the like.
[0219] In one embodiment, various RF characteristics of the radio's transceiver, such as RF output power and RF receiver sensitivity, may be dynamically and programmatically altered under the control of processing unit 400. In other embodiments, further RF characteristics of the radio's transceiver, such as frequency, duty cycle, timing, modulation scheme, spread spectrum hopping aspects, etc., may be programmatically altered as needed to flexibly adjust the RF output signal as needed depending on the desired implementation and intended use of exemplary master node 110a. In other words, embodiments of master node 110a (or any other master node) may have programmatically adjustable RF characteristics (such as adjustable RF output signal power, adjustable RF receiver sensitivity, the ability to switch to different frequencies or frequency bands, etc.).
[0220] In addition to the short-range communication interface 480, the exemplary master node 110a includes a medium- and / or long-range communication interface 485 to provide a communication path to the server 100 via the network 105. In one embodiment, the communication interface 485 may be implemented using a medium-range radio in the form of an IEEE 802.11g-compliant WiFi transceiver. In another embodiment, the communication interface 485 may be implemented using a longer-range radio in the form of a cellular radio. In yet another embodiment, both the WiFi transceiver and the cellular radio may be used when best available or based on priority (e.g., if available due to potentially lower cost, the WiFi transceiver may be attempted first; and if unavailable, the cellular radio may be relied upon). In other words, as an alternative to the medium-range WiFi transceiver radio, or when the medium-range radio is not reachable to a connected infrastructure radio within the network 105, embodiments may rely on the longer-range cellular radio portion of the interface 485. Thus, in these embodiments, the medium and / or long range communication interface 485 may be used to transmit captured node information (eg, profile data 430 , association data 440 , shared data 445 , sensor data 450 , and location data 455 ) to the server 100 .
[0221] The battery / power interface 470 of the master node 110a generally powers the circuitry that implements the master node 110a. In one embodiment, the battery / power interface 470 can be a rechargeable power source. For example, the master node can have a rechargeable power source in conjunction with a solar panel that charges the power source to help facilitate deployment of the master in a remote location. In another embodiment, the battery / power interface 470 can be a non-rechargeable power source that is intended to be disposed of after use. In yet another embodiment, the battery / power interface 470 can be a power interface connector (such as an internal power supply and power cord on the master node 110a). Thus, when the exemplary master node is in a fixed or stationary configuration, it can be powered by a power cord connected to an electrical outlet that is coupled to an external power source. However, other mobile master nodes can use an internal power source, such as a battery.
[0222] The clock / timer 460 of the master node 110a generally provides one or more timing circuits used in, for example, time delay, pulse generation, and oscillator applications. In embodiments where the master node 110a conserves power by entering a sleep or hibernation state for a predetermined period of time as part of an overall power conservation technique, the clock / timer 460 assists the processing unit 400 in managing timing operations.
[0223] Optionally, the embodiment may also implement the master node 110a to include one or more sensors 465 (deployed on the sensor node based on the ID node and described above). Figure 3 10). In addition, embodiments of the master node 110a may also provide a user interface 405 to indicate status and allow basic interaction for review of captured node data and interaction with the node and server 100. In one embodiment, the user interface 405 may provide a display, interactive buttons or soft keys, and a pointing device to facilitate interaction with the display. In further embodiments, a data input device may also be used as part of the user interface 405. In other embodiments, the user interface 405 may take the form of one or more lights (e.g., status lights), audible input and output devices (e.g., a microphone and speaker), or a touch screen.
[0224] As previously mentioned, an exemplary master node, such as master node 110a, may be positioned in a known fixed location or alternatively include dedicated position location circuitry 475 (e.g., GPS circuitry) to allow the master node to determine its location itself or independently. In other embodiments, alternative circuitry and techniques may be used for the location circuitry 475 (instead of GPS), such as location circuitry compatible with other satellite-based systems (e.g., the European Galileo system, the Russian GLONASS system, the Chinese BeiDou system), terrestrial radio-based location systems (e.g., cell phone tower-based or WiFi-based systems), infrared location systems, visible light-based location systems, and ultrasonic-based location systems).
[0225] With respect to memory memory 415 and volatile memory 420, both are operatively coupled to processing unit 400 in exemplary master node 110a. The two memory components provide program elements used by processing unit 400 and maintain and store data elements accessible to processing unit 400 (similar to the possible data elements stored in memory memory 315 and volatile memory 320 of exemplary ID node 120a).
[0226] exist Figure 4 In the embodiment shown in FIG, memory memory 415 maintains various executable program codes (e.g., master control and management code 425), data similar to the data maintained in the memory memory 315 of the ID node (e.g., profile data 430, security data 435, association data 440, shared data 445, sensor data 450, etc.), and other data more specific to the operation of the master node 110a (e.g., location data 455 related to the location of a particular node). Like memory memory 315, memory memory 415 is a tangible, non-transitory computer-readable medium on which information (e.g., executable code / modules, node data, sensor measurements, etc.) can be maintained in a non-volatile and non-transitory manner.
[0227] Like volatile memory 320 in ID node 120a, volatile memory 420 is typically a random access memory (RAM) structure used by processing unit 400 during operation of master node 110a. Upon power-up of master node 110a, volatile memory 120 may be populated with operating programs (such as master node control and management code 425) or specific program modules that help facilitate specific operations of master node 110a. Furthermore, during operation of master 110a, volatile memory 420 may also include certain data (e.g., profile data 430, security data 435, association data 440, shared data 445, sensor data 450, etc.) generated when master node 110a executes instructions programmed into it or loaded from memory storage device 415.
[0228] Master Control & Management Code
[0229] Generally, an embodiment of the master control and management code 425 is a collection of software features implemented as programming functions or program modules that generally control the behavior of a master node, such as the master node 110a. In one embodiment, the master control and management code 425 generally includes several programming functions or program modules, including (1) a node advertising and query (scanning) logic manager that manages how and when nodes communicate; (2) an information control and exchange manager that manages whether and how information can be exchanged between nodes; (3) a node power manager that manages aspects of power consumption and RF output signal power and / or receiver sensitivity for variable short-range communications; (4) an association manager that focuses on how a node associates with other nodes; and (5) a location awareness / acquisition module that determines the location of a node.
[0230] Master node program module and ID node module
[0231] In an exemplary embodiment, the program modules (1)-(4) of the master node control and management code 425 are generally the same as those described above with respect to Figure 3 The functions of the similarly named program modules (1)-(4) of the node control and management code 325 described above are consistent. Additionally, because the node control and management code 325 also includes an airborne mode program module, those skilled in the art will appreciate and understand that the master node control and management code 425 may also include an airborne mode program module of similar functionality to allow for advantageous operation of the master node when airborne. However, and consistent with the examples set forth below, such modules, when in a master node, may have certain differences when compared to those modules controlling an ID node.
[0232] Position sensing / capture module
[0233] In addition to the exemplary program modules (1)-(4) of code 425, exemplary embodiments of master node control and management code 425 will further include an exemplary location awareness / capture module associated with node location (more generally referred to as a location manager module of the master node). Generally, the exemplary location awareness / capture module deployed in the exemplary master node can determine its own location and, in certain embodiments, the location of connected nodes. In determining the node location of other nodes, embodiments of the exemplary location awareness / capture module can work in conjunction with location manager program code resident and operating in a server (e.g., as part of server control and management code 525), as discussed in greater detail herein.
[0234] In one embodiment, the master node may be positioned in a known, fixed location. In such an embodiment, the exemplary node sensing / capture module may sense that the master node location is a known, fixed location, which may be defined in a fixed, preset, or preprogrammed portion of the memory storage device 415 (e.g., information maintained in the location data 455 in the memory storage device 415). Examples of such location information may include conventional location coordinates or other descriptive details identifying the location of the master node. In another embodiment in which the master node may not always have an inherently known or fixed location (e.g., for a mobile master node), the exemplary location sensing / capture module may communicate with positioning circuitry, such as GPS circuitry 475 on the master node, to determine the current location of the master node.
[0235] In an embodiment, the location of the master node can be transmitted to a server, which can use the location information as part of managing and tracking nodes in the wireless node network. For example, if the exemplary master node is mobile and has determined a new current location using positioning circuit 475, the master node can provide the new current location of the master node to the server. Additionally, when the exemplary location awareness / capture module of the master node determines the location of a node associated with the master node, the master node can also provide the location of the node associated with the master node to the server.
[0236] server
[0237] Although Figure 3 and 4 The hardware and software details of the exemplary ID node and the exemplary master node are respectively illustrated, but Figure 5A more detailed diagram of an exemplary server that functions as part of an exemplary wireless node network in accordance with an embodiment of the present invention is provided. In an exemplary embodiment, server 100 may be referred to as an Association and Data Management Server (ASMS) that manages nodes, collects information from nodes, stores collected information from nodes, maintains or has access to contextual data related to the environment in which the node is operating, and may provide information about the node (e.g., status, sensor information, etc.) to a requesting entity. Further details regarding various embodiments utilizing this functionality are explained below. Those skilled in the art will appreciate that node density, geographic installation characteristics, and network connectivity are all examples of types of factors that may affect the desired final architecture of an embodiment of a wireless node network.
[0238] Now refer to Figure 5 , the exemplary server 100 is shown as a networked computing platform capable of connecting to and interacting with at least a wireless master node. In other embodiments, the exemplary server 100 is also capable of connecting to or interacting with one or more user access devices. Those skilled in the art will appreciate that the exemplary server 100 is a hardware-based component that can be implemented in a variety of ways. For example, the server 100 can use a single processor or can be implemented as one or more portions of a multi-processor component that communicates with devices (such as user access devices 200, 205) and wireless nodes (such as master node 110a).
[0239] In general, those skilled in the art will further appreciate that server 100 can be implemented as a single computing system, a distributed server (e.g., a separate server for separate server-related tasks), a hierarchical server (e.g., a server implemented with multiple levels, where information can be maintained and tasks performed at multiple different levels depending on the implementation), or a server farm that logically allows multiple different components to function as one server computing platform device from the perspective of a client device (e.g., device 200, 205 or master node 110a). In certain regional deployments, exemplary servers may include servers dedicated to specific geographic regions when information collected within different regions may include and be subject to different regulatory controls and requirements implemented on the corresponding regional servers.
[0240] Likewise, although Figure 5The embodiment shown in FIG2 illustrates a single memory storage device 515, but the exemplary server 100 may employ more than one memory storage medium. And the memory storage medium may be in different non-transitory forms (e.g., conventional hard drives, solid-state memory such as flash memory, optical drives, RAID systems, storage in cloud storage configurations, network storage appliances, etc.).
[0241] At its core, Figure 5 The exemplary server 100 shown in FIG. 1 includes a processing or logic unit 500 coupled to a network interface 590 that facilitates and enables operable connection and communication over the network 105 with one or more master nodes and, in some embodiments, with user access devices such as devices 200, 205. In one embodiment, the server 100 may include a medium and / or long range communication interface 595 that is utilized to more directly communicate with the one or more master nodes. Using these communication pathways and program code or program modules (such as server control and management code 525), the server 100 generally operates to coordinate and manage information related to the ID nodes as items associated with the ID nodes are physically moved from one location to another.
[0242] As a computing platform, the processing unit 500 of the exemplary server 100 is operably coupled to a memory storage device 515 and a volatile memory 525, which together store and provide various executable program codes (e.g., server control and management code 525), data similar to the data maintained in the corresponding memory storage device of the master or ID node (e.g., profile data 530, security data 535, association data 540, shared data 545, sensor data 550, location data 555, etc.), and contextual data 560 related to the environment in which the node is operating (e.g., information generated from within the wireless node network and information created outside the wireless node network).
[0243] As with memory storage 315 and memory 415, memory storage 515 is a tangible, non-transitory computer-readable medium on which information (e.g., executable code / modules (e.g., server control and management code 525), node-related data (e.g., profile data 530, security data 535, association data 540, location data 555, etc.), measurement information (e.g., type of shared data 545, sensor data 550, etc.), and information about the node's contextual environment (e.g., context data 560)) can be maintained in a non-volatile and non-transitory manner.
[0244] Those skilled in the art will appreciate that the above identification of specific program code and data is not exhaustive and that embodiments may include further executable program code or modules and other data related to the operation of processing-based devices such as ID nodes, master nodes, and servers.
[0245] Contextual data
[0246] As mentioned above, the server 100 may access context data 560 as part of managing nodes in a wireless node network. The example server 100 may contain a collection of such context data 560 in a context database 565 according to an embodiment. Figure 5 As illustrated in FIG, exemplary context database 565 is a single database accessible by processing unit 500 within server 100. Those skilled in the art will readily appreciate that other configurations for providing an accessible collection of context data 560 are possible and are contemplated within the scope and principles of embodiments of the present invention. For example, context database 565 may be an externally accessible database (or databases), such as accessible memory maintained external to server 100 via a dedicated interface or a network storage device (or Network Attached Storage (NAS) unit). In yet another embodiment, the context database may be separately maintained by an external database server (not shown) distinct from server 100, but accessible via a communication path from server 100 to the separate database server (e.g., via network 105). Furthermore, those skilled in the art will appreciate that context database 565 may be implemented using cloud technology, which essentially provides distributed, networked storage of a collection of information accessible to server 100 (such as context data 560, sensor data 550, shared data 545, etc.).
[0247] Within context database 565, an exemplary embodiment of a collection of context data 560 generally relating to the environment in which the node is operating or is expected to operate may be maintained. More specifically, context data 560 may generally relate to what similar nodes have experienced in similar environments to what a given node is currently experiencing or is expected to experience as the given node moves.
[0248] In a general example, the environment in which a node may actually or be expected to be operating may include different types of environments—for example, an electronic communications environment (e.g., an RF environment that may be cluttered with signals or include materials or structures that may impede or otherwise shield RF communications), a physical environment related to the expected path along which the identified node is to move (e.g., temperature, humidity, safety, and other physical characteristics), a transportation environment related to how the node may or is expected to move (e.g., speed and other parameters of trucks, airplanes, transport systems), and a density environment related to the density of nodes in an area near a particular node (e.g., how many nodes are expected to occupy a space such as a Figure 22A The structure 2200 shown in FIG. 2 is a corridor, or storage facility, through which a particular ID node is expected to be transported on its shipping path).
[0249] In accordance with these different aspects of the node's operating environment, exemplary context data 560 may provide information related to different structures and conditions regarding the movement of items (e.g., specific types of courier equipment, vehicles, facilities, shipping containers, etc.). Such information may be generated by an entity operating the wireless node network, such as a shipping company. Additionally, exemplary context data 560 may include third-party data generated external to the wireless node network. Thus, according to embodiments of the present invention, context data such as data 560 may include a variety of data generally relating to the environment in which the node is operating and may be used to advantageously provide enhanced node management capabilities.
[0250] Generally, Figure 5 Exemplary types of context data 560 are shown as being maintained in a database 565 and in volatile memory 520. Those skilled in the art will appreciate that in addition to or in lieu of maintaining context data 560 in a database, such information may be maintained in other data structures. Figure 5 As illustrated in , exemplary types of contextual data 560 may include, but are not limited to, scan data 570, historical data 575, shipping data 580, layout data 585, RF data 587, and 3rd party data.
[0251] Scan data 570 generally refers to data collected for a specific item associated with an event. For example, when an item is placed in a package (such as package 130), a label may be generated and placed on the exterior of the package. The label may include a visual identifier that, when scanned by a suitable scanning device capable of capturing the information, identifies the package. Information generated in response to scanning the identifier (type of event) may be considered a type of scan data. Other scan data 570 may include, for example, general inventory information generated during manual entry of information related to the package; captured package custodial control data; and barcode scan data.
[0252] Historical data 575 is generally data that has been previously collected and / or analyzed that is related to common characteristics. Historical data 575 embodies operational knowledge and know-how regarding specific characteristics related to the operation of the wireless node network. For example, common characteristics may be specific events (e.g., the movement of an item from an open air environment to a specific enclosed environment such as a building), types of items (e.g., type of package, type of contents being shipped, location, shipping path, etc.), success rates for specific items (e.g., successful shipments), etc. Another example of historical data 575 may include handling information associated with how an item has been historically handled as it moves from one location to another (e.g., when moving within a specific facility, handling information may indicate that the item is on a specific transport and may include information about the transport (such as speed and how long the item is expected to be on the transport)).
[0253] Shipping data 580 is generally data related to an item being moved from one location to another. In one embodiment, shipping data 580 may include tracking numbers, content information for the item being shipped, address information related to the origin and destination locations, and other characteristics of the item being moved.
[0254] Layout data 585 is generally data related to the physical area of one or more portions of the intended route. For example, an embodiment of layout data 585 may include an architectural diagram and physical dimensions of a portion of a building in which a node may be transporting. An embodiment may further include density information associated with the physical area to be traversed and the expected number of potential nodes in those areas as types of layout data. In another example, an embodiment of layout data may include a configuration of how groups of packages may be assembled on pallets and placed into shipping containers (e.g., unit load devices (ULDs)), which facilitates the movement of collections of items in various forms using unimodal or intermodal transport.
[0255] RF data 587 is generally information about signal degradation in a single path environment for a particular type of node and may relate to specific adverse RF conditions that may cause signal fluctuations, interference, or other degradation from an otherwise optimal signal path environment for that type of node. For example, RF data may include shielding effects when using specific packaging or locations, shielding effects when packaged within specific types of containers or assembled as part of palletized shipments, shielding effects when specific contents are shipped, and other physical and electronic interference factors.
[0256] Third-party data 589 is an additional type of contextual data 560 that generally includes data generated outside of the network. For example, third-party data may include weather information associated with a particular area that an item will pass through as it moves along its intended path from one location to another. Those skilled in the art will appreciate that other types of third-party data related to the physical and environmental conditions that an item will face while being moved from one location to another may also be considered contextual data 560.
[0257] The use of contextual data, such as the contextual data 560 described above, advantageously helps the server 100 better manage the movement of items, provide better location determination, enhance intelligent operation and management of wireless node networks at different levels, and provide enhanced visibility into the current location and status of items during operation of the wireless node network. In one embodiment, the server control and management code 525 may provide functionality that enables the wireless node network to be context-aware and responsive.
[0258] Server Control & Management Code
[0259] Generally, the server control and management code 525 controls the operation of the exemplary server 100. In an embodiment, the server control and management code 525 is a collection of software features that are implemented as programming functions or separate program modules in the code that generally control the behavior of the server 100. Thus, the exemplary server control and management code 525 may be implemented using several programming functions or program modules, including but not limited to: (1) a server-side association manager that provides a framework for more robust and intelligent management of nodes in a wireless node network; (2) a context-based node manager that enhances the management of nodes in a wireless node network based on contextual data; (3) a security manager that manages the secure pairing aspects of node management; (4) a node update manager that provides updated or different programming for specific nodes and shares information with nodes; (5) a location manager that determines and tracks the location of nodes in the network; and (6) an information update manager that services requests for information related to the current state of a node or generally provides information about or collected from a node.
[0260] Server-side Association Manager
[0261] The server-side management manager (also referred to as the server-side association management function) is generally a program module in the exemplary code 525 that is responsible for intelligently managing nodes in a network of wireless nodes using a secure information framework. In an embodiment, the framework can be implemented as a context-driven learning sensor platform. The framework can also enable a way for information (such as RF scans, location, date / time, and sensor data) to be securely shared across nodes, a way for the behavior of a node to be changed, and a way for a node to know that it is considered "missed". The framework established during the operation of the server-side association manager allows the network of nodes to be managed as a system with enhanced and optimized accuracy in determining the physical location of each ID node. Further information regarding specific embodiments of such an association management framework and method are explained in more detail below.
[0262] Context-based association manager
[0263] A context-based node manager is generally a program module within exemplary code 525 that is responsible for incorporating contextual data as part of management operations to provide an enhanced data foundation upon which node visibility can be provided. In some embodiments, the context-based node manager can be implemented as part of a server-side association manager, while other embodiments can implement the context-based node manager as a separate program module.
[0264] In one embodiment, the enhanced data foundation relies on contextual data, such as contextual data 560 (e.g., scan data 570, historical data 575, shipping data 580, layout data 585, and other third-party contextual data that provides information about the conditions and environment surrounding items and ID nodes moving from one location to another. Such contextual data (e.g., network expertise, building layout, and operational knowledge of nodes and shipping paths used with the wireless node network) can provide enhanced building blocks that allow the server 100 to manage tracking and positioning of nodes in a robust, rich context environment. In an embodiment, context-based management provides visibility into the system by correlating data analytics on when and how nodes should be expected as they traverse the wireless node network. In other embodiments, it can provide a foundation for better understanding RF signal degradation that can be caused by the operating environment, packaging, package contents, and / or other packages associated with an item and its ID node.
[0265] Security Manager
[0266] The security manager module, which can be implemented separately or as part of the association manager module in the exemplary server control and management code 525, helps associate two nodes in a wireless node network by managing aspects of secure pairing of the nodes. In one embodiment, the security manager module provides appropriate pairing credentials to allow a node to securely connect to another node. Thus, when a node desires to connect to another node, embodiments require that appropriate pairing credentials be generated by the server, provided to the node, and observed within the node to allow for a successful connection or association of the nodes.
[0267] In operation, a node (such as master node 110a) identifies the address of the node (such as ID node 120a) to which it wishes to connect. Using this address, the node prepares a pairing request and sends it to server 110. Server 110, operating under the control of the association manager's security manager module, determines whether the requesting node should connect to another node or otherwise associate. If not, the server does not issue the requested security credentials. If so, and in accordance with the desired association management paradigm set by the association manager of code 525, the server provides the requested credentials necessary for successful wireless pairing and establishment of secure communications between the associated nodes.
[0268] Node Update Manager
[0269] The exemplary server control and management code 525 may include a node update manager module that provides updated programming information to nodes within the wireless node network and collects information from such nodes (e.g., shared data 545, sensor data 550). The node update module may be implemented separately or as part of an association manager module in the exemplary server control and management code 525.
[0270] Providing updates to node programming can facilitate and enable the distribution of node functionality to conserve power and better manage nodes as a system. For example, one embodiment can change the functional responsibilities of different nodes based on context or context by temporarily offloading responsibility for a particular function from one node to another. Typically, a server directs other nodes to change functional responsibilities. However, in some embodiments, a master node can direct other nodes to change functional responsibilities.
[0271] Sharing information between nodes and with the server (e.g., via the exemplary node update manager) facilitates collecting information from nodes and sharing information with other nodes as part of the association management functionality of the server 100. For example, one embodiment may collect and share RF scan data (a type of shared data 545), information about the location of a node (a type of location data 555), system information about date / time (another type of shared data 545), and sensor measurements collected from sensor nodes (a type of sensor data 550).
[0272] Location Manager
[0273] The exemplary server control and management code 525 may include a location manager module that helps determine and track node locations. In a general embodiment, the location of a node may be determined by the node itself (e.g., the master node's ability to determine its own location via positioning circuitry 475), by nodes associated with the node (e.g., where the master node can determine the location of the ID node), by the server itself (e.g., using location information determined by one or more techniques implemented as part of the code 525), and by a combined effort of the master node and the server.
[0274] In general, an exemplary ID node may rely directly or indirectly on a master node to determine its actual physical location. An embodiment may use one or more methods to determine a node's location. For example, and as described in more detail below, possible methods for determining a node's location may involve controlling the node's RF characteristics (e.g., RF output signal level and / or RF receiver sensitivity level), determining relative proximity, considering association information, considering position adjustments for contextual information and the RF environment, chained triangulation, and hierarchical and adaptive approaches that combine various positioning methods. Further information and examples of how an exemplary location manager module may determine a node's location based on such exemplary techniques are provided in greater detail below.
[0275] Additionally, those skilled in the art will appreciate that it may also be possible to determine what constitutes an actionable location versus an actual location based on contextual information about the item being tracked. For example, larger items may require relatively less location accuracy than smaller items, making it easier to leverage contextual knowledge to make operational decisions and status updates. If the size of the item is known, the location accuracy can be adjusted accordingly. Thus, if a larger item is being tracked, or if the system's awareness of its context dictates that a lower location accuracy be used, a stronger signal and therefore a wider scan area can be employed, which can help in situations where RF interference or shielding are issues.
[0276] Information Update Manager
[0277] The exemplary server control and management code 525 may include an information update manager module that provides information related to the operation of the wireless node network and the status of the nodes. Such information may be provided in response to a request from a device external to the wireless node network, such as a user access device 200. For example, someone shipping an item might inquire about the item's current status via their laptop or smartphone (a type of user access device), which would connect to the server 100 and request such information. In response, the information update manager module may service such a request by determining which node is associated with the item, collecting status information related to the item (e.g., location data, etc.), and providing the requested information in a form that is targeted, timely, and useful to the inquiring entity.
[0278] In another example, the user access device may connect to the server 100 and request specific sensor data from a specific node. In response, the information update manager may collaborate with the node update manager and provide the collected sensor data 545 to the user access device as requested.
[0279] Node Filter Manager
[0280] Embodiments of the exemplary server control and management code 525 may optionally include a node filtering manager that utilizes a multi-level filtering mechanism to help manage node traffic. Filtering essentially establishes rules that limit potential associations and communications. Examples of such node filtering management may define different levels or modes of filtering for a master node (e.g., which ID nodes can be managed by the master node as a way to limit the communication and management burden on the master node).
[0281] In one example, a "local" mode may be defined where the ID node communicates only at a location where the last wireless node contacted back to the server 100 and / or where third party data indicates that the assigned master node and the ID node are in physical and wireless proximity and are managed by the assigned master node. Thus, for the "local" mode of traffic filtering, only the assigned master node transmits and processes information from ID nodes that are approximately close and dispatched.
[0282] Moving to a less restrictive filtering mode, a "regional" mode of filtering can be defined where the ID-node can communicate at the location last reported back to the server 100 and / or where third-party data indicates the ID-node is located and managed by any master node. Thus, for a "regional" mode of business filtering, any master node in close proximity to the ID-node can transmit and process information from the ID-node. This can be useful, for example, when it is desired to implement restrictions on associations and pairings within a specific facility.
[0283] In the least restrictive filtering mode, the "global" mode of filtering can be defined as essentially system-wide communication, where ID nodes can be allowed to communicate and be managed by any master node. In other words, the "global" mode of traffic filtering allows any ID node within the wireless node network to transmit information through a specific master node in close proximity to the ID node, which can transmit and process information from the ID node.
[0284] Thus, utilizing such an exemplary filtering pattern, an ID-node in a certain condition (e.g., a distressing adverse environmental condition, an adverse condition of a node, etc.) can signal the need to bypass any filtering mechanisms in place by utilizing an "alert" status flag to help manage communications and associations. In such an example, this would operate to override any filtering rules set at the master node level in order to allow the ID-node to be "discovered" and connected to another node.
[0285] Thus, the exemplary server 100, when executing code 525 and having access to the types of data described above, is operable to manage nodes, collect information from nodes, store collected information from nodes, maintain or have access to contextual data related to the environment in which the node is operating, and provide information about the node (e.g., status, sensor information, etc.) to requesting entities.
[0286] Node Communication & Association Example
[0287] To better illustrate how exemplary management and communication principles may be implemented within an exemplary network of wireless nodes, Figure 8-12 Several examples are provided of how exemplary components of a network of wireless nodes may generally communicate (advertise & scan), associate, and exchange information during different types of operations in various embodiments. Figure 22A -C also provides a more detailed application of such exemplary association and communication activities as the exemplary ID nodes move along a transport path (e.g., through a channel) and are tracked and managed by different master nodes and servers in the embodiments.
[0288] Node Advertisement Period Example
[0289] As generally explained above, a node can have several different types of advertising states, in which a node can be connectable to other nodes and can communicate with other nodes. And as a node moves within a wireless node network, the state of a node's advertising and connection can change as the node disassociates from a previously connected node, associates with a new node, or finds itself not associated with other nodes. In some cases, a node may be good and may not be connected or associated with another node in normal operation. However, in other cases, if a node has not been connected to any other node for a very long period of time, it can create the problem of being potentially lost. In this way, a node can experience different types of advertising states in these different operating situations.
[0290] Generally, a node may be in a state in which it is not connectable to other nodes for a certain period of time (also referred to as a non-connectable interval). But later, in another state, the node may want to be connected and also advertise for a defined connectable period of time (also referred to as a connectable interval). When a node advertises being connected, the node may expect to be connected at some point. In other words, there may be a selectable time period within which the node expects to connect to another node. However, if the node is not connected to another node within that time period (referred to as a reminder interval), the node may need to take specific or urgent action depending on the situation. For example, if a node has not been connected to another node for 30 minutes (e.g., an example reminder interval), the node may internally change its operation to "try harder" to find other nodes to connect to. More specifically, the node may change its status flag from reminder level 0 (no problems, operating normally) to reminder level 2 in order to request any available master node to confirm receipt of the announcement packet broadcast by the node seeking to connect.
[0291] Figure 8 is a diagram illustrating exemplary advertising states (or information exchange and node connectability states) and factors involved in transitioning between states of an exemplary ID node in a wireless node network according to an embodiment of the present invention. Figure 8 , three exemplary states for a node are illustrated as part of an exemplary advertisement cycle for a node - namely, the ID node non-connectable advertisement state 805, the ID node discoverable advertisement state 815, and the ID node general advertisement state 830. Transitions between these states will depend on factors related to the expiration of the types of intervals described above. In an embodiment, the duration of each of these intervals will depend on the system implementation and the context within which the ID node is operating. Such time intervals can, for example, be set by the server 100 as part of the data (e.g., profile data, association data, context data) provided to the node when updating the node and managing the operation of the node.
[0292] Reference Figure 8 In the example illustrated in FIG, an exemplary ID node may have a reminder interval set at, for example, 30 minutes, and may be in an ID node non-connectable advertising state 805 with a non-connectable interval set at 5 minutes. In state 805, the ID node may broadcast or advertise, but is not connectable and will not receive SCAN_REQ messages (a type of request for more information sent from another node to the advertising node). Thus, in this example, the ID node in state 805 may advertise in a non-connectable manner for at least 5 minutes but expect to be connected within 30 minutes.
[0293] If the reminder interval has not elapsed (factor 810) and the non-connectable interval is still running (factor 825), the ID node simply stays in state 805. However, if the reminder interval has not elapsed (factor 810) and the non-connectable interval elapses (factor 825), the ID node will enter a mode in which it wants to try to connect to another node for a period of time (e.g., 1 minute connectable interval) and will move to Figure 8 The ID node in the exemplary advertising cycle is generally in the advertising state 830. In state 830, as long as the connectable interval is running, the ID node will remain in this state in which it can connect to another node and will receive SCAN_REQ type requests from other nodes in response to the advertising packets that the ID node is broadcasting. However, when the connectable interval (e.g., a 1 minute period) elapses or expires (factor 835), the ID node returns to the non-connectable advertising state 805 for the next time the non-connectable interval elapses (and the ID node again attempts to connect in state 830) or the reminder interval eventually elapses (and the ID node finds itself in a situation where it has not yet connected to another node despite its efforts to connect in state 830).
[0294] When the reminder interval eventually elapses (element 810), the ID node moves to the ID Node Discoverable Advertisement state 815. Here, the ID node is still not connectable but will receive SCAN_REQ-type requests from other nodes in response to the broadcast packets being broadcast by the ID node. In this state 815, the exemplary ID node may change its status flag to indicate and reflect that its reminder interval has expired and that the node is no longer in normal operation. In other words, the ID node may change its status flag to the type of reminder state being broadcast to indicate that the ID node urgently needs to connect with another node. For example, depending on whether the node needs to upload data (e.g., the Alert Level 3 state) or synchronize a timer or other data with another node (e.g., the Synchronize state), the status flag of the advertisement packet broadcast by the ID node may be changed to one of the higher alert levels. With this change in status flag and the ID node being broadcast in state 815, the ID node awaits a request from another node, which has received the broadcast and is requesting more information via a SCAN_REQ message (element 820) sent from the other node to the ID node. Once the SCAN_REQ message has been received by the ID node (factor 820), the ID node, which has entered reminder mode because it has not yet connected to another node within the reminder interval, can connect to the other node, upload or share data as needed, and then move back to state 805 and restart the reminder interval and non-connectable interval.
[0295] Example of master node and ID node association
[0296] Advertise (broadcast) and scan (listen) are ways that nodes can communicate during an association operation. Figure 9-12 Examples of how network elements of a wireless node network (eg, ID nodes, master nodes, and servers) may communicate and operate when connected and associated are provided as part of several exemplary wireless node network operations.
[0297] Figure 9 is a diagram illustrating exemplary components of a wireless node network during an exemplary master to ID node association according to an embodiment. Figure 9 , exemplary master node M1 910a is illustrated within communication range of exemplary ID node A 920a. Master node M1 910a also has a communication path back to server 900. As shown, master node M1 910a is in scanning or listening mode (e.g., indicated by “M1 scan ” label) while ID node A 920a is in announcement or broadcast mode (e.g., indicated by “A adv ” tag indication). In this example, the M1 master node 910a has captured the address of ID node A 920a through the announcement of at least one announcement data packet of A, and has reported it to the server 900. In this way, the capture and reporting operations effectively create a "passive" association and proximity-based custody control between the nodes. Such an association can be recorded in a server such as server 900 as part of association data such as association data 540.
[0298] In another embodiment, the passive association between the master node and the ID node can be extended to an "active" association or connection. For example, referring to Figure 9 In the embodiment shown in FIG, the server 900 may instruct the master node M1 910a to associate, connect, or otherwise pair with the ID node A 920a and forward the required security information (e.g., PIN credentials, security certificates, keys) to the master node M1 910a. Depending on the advertising state of the ID node A 920a, the ID node A 920a may only be visible (discoverable) but not connectable. In such a case, the master node M1 910a must wait until the ID node A 920a is in a connectable state (e.g., ID node general advertising state) and can be paired. As described above with reference to Figure 8 As discussed, each ID node has a certain time window during each time period in which it can be paired or connected.
[0299] In this example, when ID Node A 920a is successfully paired with Master Node M1 910a, ID Node A 920a may no longer advertise its address. By default, only unassociated devices will advertise their addresses. Paired or associated nodes will only advertise their addresses if instructed to do so.
[0300] Example of master node and ID node association
[0301] In various embodiments, ID nodes can be associated with or connected to other ID nodes. Figure 10 is a diagram illustrating exemplary components of a wireless node network during an exemplary ID to ID node association according to an embodiment of the present invention. Figure 10 , the exemplary master node M1 910a, ID node A 920a and server 900 are as shown Figure 9 , but with the addition of ID Node B 920b, which is within the communication range of ID Node A 920a. In this example, ID Node A 920a is listening for the inquiry (scanning) mode of ID Node B 920b (e.g., scan When ID Node A 920a detects an ID Node B 920b advertisement from ID Node B 920b having one or more advertisement data packets as part of the message being announced (e.g., B adv ), ID node A 920a identifies a status flag based on a message indicating that ID node B 920b has, for example, data for upload (e.g., sensor data 530). Accordingly, ID node A 920a logs the scan results (e.g., as a type of association data 340), and when next connected to master node M1 910a, ID node A 920a uploads the captured scan log information to server 900. In this way, the ID node scanning, capturing, and reporting operations effectively create "passive" associations between different ID nodes. Such passive associations can be recorded in server 900 as part of association data 540.
[0302] In another embodiment, a passive association between two ID nodes can be extended to an "active" association or connection. For example, referring to Figure 10In the embodiment shown in FIG, based on the captured status flag and the information uploaded by ID Node B 920b in this mode, the server 900 can issue a request to ID Node A 920a through the master node M1 910a to actively connect or pair with ID Node B 920b for the purpose of downloading information from ID Node B 920b. In one example, the security credentials authorizing the active connection between ID Node A 920a and ID Node B 920b are downloaded to ID Node A 920a from the master node M1 910a, which receives the security credentials from the server 900. In another example, the necessary security credentials have been pre-prepared at ID Node A 920a. And rather than relying on an ID node-to-ID node connection, the master node M1 may be directly connected to ID Node B 920b if M1 was once within the communication range of ID Node B 920b.
[0303] Example of information query from ID node to master node
[0304] The exemplary ID node may also issue queries to other nodes, namely both the master node and the ID node. Figure 11 is a diagram illustrating exemplary components of a wireless node network during an exemplary ID to master node query according to an embodiment of the present invention. Figure 11 , as in Figure 9 A similar group of nodes is shown in FIG, except that the exemplary master node M1 910a is in an announcement or broadcast mode (e.g., M1 adv ) while ID node A 920a is in scan mode (e.g., A scan ). In this configuration, ID node A 920a can query master node M1 910a for information. In one embodiment, the query can be initiated by the ID node setting its status flag. The requested information can be information to be shared, such as the current time, location, or environmental information held by master node M1 910a.
[0305] In the passive association example, in A scan ID Node A 920a in mode may have captured the address of Master Node M1 910a. However, because the ID Node cannot directly connect to the server 900 to request pairing security credentials (e.g., security pin information that authorizes an active connection between ID Node A 920a and Master Node M1 910a), a passive association and corresponding pairing will be initiated from the Master Node. In another example, it may be possible for ID Node A 920a to have the pairing credentials stored as security data 335 based on a previous connection. This would allow ID Node A 920a to then initiate an active association with Master Node M1 910a after the passive association.
[0306] Example of an alert-level notification
[0307] As previously mentioned, in one or more embodiments, a node may enter a reminder phase or level. For example, if a node has not received an acknowledgment for an announcement packet from a master node within a set period (e.g., a reminder interval as described in some embodiments), the node will enter a specific reminder phase for more specialized announcements so that it can be "discovered" or pass along information. Figure 12 is a diagram illustrating exemplary components of a wireless node network during an exemplary alert announcement mode according to an embodiment of the present invention. Figure 12 , as in Figure 9 A similar group of nodes as shown in FIG appears, plus another master node (master node M2 910b) and another ID node (ID node B 920b). Example ID node A 920a is in an announcement or broadcast mode (e.g., A adv ) while each of nodes M1, M2 and B is in scan mode (e.g., M1 scan 、M2 scan 、B scan ). Figure 12 In the example and configuration shown in , the status flag in the announce message from ID Node A 920a has been set to a specific alert level (e.g., alert level 2) in the header of the message, requesting any nearby master node to confirm it. In one example, this mode can be entered if ID Node A 920a has not connected with another node for a set period or time. In another example, ID Node A 920a can enter this specialized announce mode based on a received instruction (e.g., from server 900 or another nearby node) or a triggered condition (other than time), such as when a sensor input (such as light) is detected or otherwise registered and the node issues continuous updates to its address as a security feature. ID Node A 920a, being set at this alert level and in this specialized announce mode, is therefore set in active pairing mode, waiting for pairing credentials.
[0308] From a passive association perspective, any node in scan mode can passively associate with such an advertising node (e.g., ID Node A 920a in this alert mode). Thus, in an embodiment, the alert level 2 status flag in the advertising header broadcast by ID Node A 920a indicates that urgency and active intervention are requested, rather than just passively associating without an active connection.
[0309] From an active association perspective, security credentials from server 900 may be forwarded to any node that uploads a special advertisement header for ID node A 920a. This would allow for nodes receiving such credentials to actively associate or pair with ID node A 920a.
[0310] Although Figure 8 Provides examples of how nodes can advertise, and Figure 9-12 Provides examples of how different exemplary devices (e.g., ID nodes, master nodes, and servers) can advertise and associate in different ways, but Figure 22A -C provides a progressive set of diagrams detailing how association and disassociation may be applied within an exemplary network of wireless nodes. More specifically, Figure 22A -C shows how association and disassociation may occur as an ID node moves through an exemplary delivery path according to an exemplary embodiment of the present invention, when the exemplary ID node is tracked and managed by a server and different master nodes.
[0311] Now refer to Figure 22A , structure 2200 is shown having an entry and exit point. In one example, structure 2200 can be a passageway or another part of a building or facility. In another example, structure 2200 can be a conveyor system that transports items and their ID nodes from an entry point to an exit point. Master node M1 2210a is located near the entry point of structure 2200, while master node M2 2210b is located near the exit point. Those skilled in the art will appreciate that other master nodes may be arranged at additional points in structure 2200, but are not shown for convenience and to simplify the subsequent explanation of association switching. Server 100 is operably connected to each of master node M1 2210a and master node M2 2210b via network 105.
[0312] In one embodiment, the server 100 has access to contextual data 560 associated with the structure 2200, such as layout data 585 regarding the dimensions and materials that make up the structure 2200. The contextual data 560 may include historical data 575 regarding how the ID node has operated and been successfully tracked as it traverses the structure 2200 from an entry point to a point of presence. For example, the server 100 may have contextual data indicating that the structure 2200 is a transport that can transport an item and its ID node from an entry point to an exit point over a distance of 800 feet. The contextual data may further indicate that typical items move at a certain speed on the transport of the structure 2200 and that the nominal time from the entry point to the exit point may be approximately 5 minutes. Thus, the server 100 has access to contextual data regarding the environment within which the ID node is operating and can leverage this to better and more accurately manage the ID node.
[0313] exist Figure 22A , ID node A 2220a is shown entering structure 2200 at an entry point. Here, ID node A 2220a may advertise, as it enters structure 2200, a non-connectable interval of, for example, 10 seconds and a connectable interval of 5 seconds in the hope of connecting with a master node. In this example, server 100 knows that ID node A 2220a is located near the entry point and anticipates that ID node A 2220a should be approaching master node M1 2210a at the entry point. Therefore, server 100 may set the connectable and non-connectable intervals accordingly, thereby providing ample opportunity for ID node A 2220a to connect to the next master node along the predicted path of the ID node and based on the speed of travel.
[0314] Additionally, in this context, the server 100 may set the reminder interval to 1 minute. Here, if ID node A 2220a is not connected to another node within 1 minute, ID node A 2220a may broadcast or announce using a message having a status flag indicating a change in the reminder state so that ID node A 2220a may connect to a wider range of other nodes that see that it is urgent for ID node A 2220a to connect and be found in essence. Depending on the context (e.g., the type of transport, the speed of the transport, the density of nodes near the entry point, etc.), those skilled in the art will appreciate that the server 100 may adjust the announcement cycle interval to better suit the current environment of the ID node.
[0315] When master node M1 2210a is scanning (listening), it may initially detect an advertisement packet from ID node A 2220a during a non-connectable interval of node A. However, when ID node A 2220a changes the advertising state and broadcasts as a connectable node in a general advertising state (i.e., during a connectable interval), master node M1 2210a may respond with a SCAN_REQ, which acknowledges receipt of the broadcasted message and requests further information from ID node A 2220a. Master node M1 2210a receives the requested information from ID node A 2220a and then communicates with server 100 to inform the server of its passive association with ID node A 2220a. Server 100 determines whether an active association is desired and may authorize the active association between master node M1 2210a and ID node A 2220a by sending security credentials to master node M1 2210a, which allows the nodes to securely connect and share information. And master node M1 2210a can determine the location of ID node A 2220a (or server 100 can do so by directing master node M1 and / or ID node A) and provide the location of ID node A 2220a to server 100. Thus, server 100 is able to manage and track the location of ID node A 2220a when it enters structure 2220 via at least association.
[0316] exist Figure 22B , ID node A 2220a has been traversing the portion of the transport path through node 2200 while remaining associated with master node M1 2210a. However, at some point, master node M1 2210a and ID node A 2220a disassociate at the direction of server 100 (or when they can no longer communicate). In one example where ID node A 2220a is on a transport within structure 2200, server 100 can instruct ID node A 2220a to go to low power mode for a particular time period in order to, for example, conserve ID node power. In another example, low power mode can also provide better positioning accuracy. Because server 100 has access to contextual data, server 100 can know that ID node A 2220a is associated with master node M1 2210a near the entry point at a given time and determine that ID node A 2220a will not be near the exit point until the end of the particular time period. With ID node A 2220a programmed in this manner, once a certain period of time has elapsed, ID node A 2220a should be close to the exit point and can be placed in normal operating mode again so that it can seek to connect with master node M 22210b.
[0317] Similar to the association process discussed with respect to ID Node A and Master Node M1, ID Node A 2220a and Master Node M2 2210b can be associated when ID Node A 2220a approaches Master Node M2 2210b near an exit point. Once connected, the node location and association data are updated on the server 100. And as ID Node A 2220a continues to move through the structure 2200, as in Figure 22C As shown in , ID node A 2200a can reach the exit point, where the node position and associated data are updated again on the server 100.
[0318] Those skilled in the art will appreciate how such principles can be applied to the further movement of an ID node as it switches between other master nodes (e.g., via active / passive association and disassociation) and keeps track of these associations and node locations on the server 100. Additionally, because the server 100 tracks and monitors association, disassociation, and contextual operations, the server 100 essentially learns how to better use contextual information, better track nodes, manage power used by the ID node, and enhance location accuracy.
[0319] Those skilled in the art will also appreciate the general tradeoff between the level of RF power levels and the accuracy of location. If a node's RF power level is set high, it can advertise and connect to other nodes at longer distances. However, with such high power levels, the ability for the system to distinguish between and locate different nodes can be challenging.
[0320] Association management within a wireless node network
[0321] As generally explained above, the management of nodes can rely on associations that are created and tracked between nodes. In some embodiments, the associations relied upon can be active associations, where the server explicitly authorizes active connections between nodes. In other embodiments, the associations relied upon can be passive associations, where a master node (a type of management node) associates with other nodes but does not actively connect to the other nodes. With passive associations, the server may be able to keep track of and manage other nodes without requiring active associations. Therefore, those skilled in the art will appreciate that in yet other embodiments, the associations relied upon by the server for management of a network of wireless nodes can include both active and passive associations and can generally be authenticated or more particularly authorized for secure connections that have a degree of protection for the connection and communications using the connection.
[0322] Figure 23-25Flowcharts are provided of exemplary methods for association management of a wireless node network having at least a plurality of nodes and a server according to various embodiments of the present invention relating to active and passive association examples. Those skilled in the art will appreciate that each of these exemplary methods for association management of a wireless node network can be implemented by instructions stored on a non-transitory computer-readable medium that, when executed, perform the steps of the corresponding method described below (e.g., methods 2300, 2400, and 2500) and described variations of those methods.
[0323] Now refer to Figure 23 , method 2300 begins by identifying a first node as a potential for actively associating with a second node at step 2305. In one example, identifying a node for associating can involve reviewing messages sent by the first node to determine state information related to the first node, and analyzing the state information to determine whether the first node should associate with the second node. In a further example, the state information can include one of a plurality of different state levels indicating whether the first node is currently requesting a connection to the second node at that particular state level.
[0324] Next, in step 2310, an association request is transmitted to the server. In one example, the association request may identify the first node and the second node to be associated and may request the transmission of one or more appropriate security credentials (e.g., PIN credentials, security certificates, keys, etc.) as part of the association, which may be used by the nodes to enable the first and second nodes to securely connect and share data. Embodiments may request only one credential from the server as an authorization credential. Other embodiments may use two credentials, one of which may be later used as a credential to reply to a challenge. For example, if the ID node is challenged, the ID node may send a reply authorization credential so that the master node can confirm the response and supply the ID node with appropriate security credentials for the authorized association. In some cases, the ID node may already be supplied with such a reply authorization credential (also generally referred to as a key) by the server.
[0325] At step 2315, the second node receives a permission response from the server related to the association request. In an example, the permission response may include receiving a first authorization credential and a second authorization credential from the server (which may be stored on the node). Thus, the first authorization credential and the second authorization credential may be created by the server as a type of secure data and may be provided to authorize the connection between the first node and the second node and to securely share information between the first node and the second node.
[0326] With the authorization from the server, the first node can be associated with the second node at step 2320. In one example, the method 2300 can associate the nodes by establishing an authorized connection from the second node to the first node based on the authorization credentials. The method 2300 can also securely provide shared data between the first node and the second node based on the profile established by the server after associating the first node with the second node.
[0327] In an embodiment, the method 2300 may further include causing a second node to assume responsibility for a task after the second node is associated with the first node, if responsibility for the task was previously with the first node. For example, when the second node is powered by an external power source and the first node is powered by a battery, this may advantageously shift responsibility to a node that is better suited to perform the task (e.g., has more available power or has a power source that does not require recharging or replacement).
[0328] Figure 24 is a flow chart illustrating another example method for association management of a wireless node network according to an embodiment of the present invention from a server perspective. Figure 24 , method 2400 begins with the server receiving an association request sent from a second one of the nodes at step 2405. The association request asks for permission to associate the first one of the nodes with the second node.
[0329] At step 2410, the server determines the locations (actual or relative) of the first node and the second node. In one embodiment, the server may receive location data for the second node. For example, when the second node is a master node, the location data for the second node may be GPS coordinates for the master node's current location, which the second node provides to the server. In another embodiment, the server may determine the location of the first node using at least one of a plurality of positioning methods available to the server for locating the first node, such as those discussed in detail above (or a combination of such methods, such that a more refined location of the first node is determined).
[0330] At step 2415, the server determines whether it is desired to associate the first node with the second node based on at least the location of the first node and the location of the second node. In one embodiment, whether the association is desired can be determined by determining whether the first node is expected to be associated with the second node based on contextual data. In another embodiment, whether the association is desired can be determined by identifying a current mode of filtering that limits the potential nodes to be associated and granting permission to associate the first node with the second node only if the current mode of filtering allows the first node to be associated with the second node. For example, this can involve granting permission only if the current mode of filtering limits the second node to be within the location range of the first node consistent with the current mode of filtering. This can be defined by a specific filtering mode, such as a local, regional, or global filtering mode that operates to limit the nodes that can be associated with other nodes. In this way, the method can change the current mode of filtering to another mode of filtering that allows the first node to be associated with the second node as a way of overriding the current filtering mode (e.g., depending on the alert state of the first node).
[0331] At step 2420, the server records the new association data, if it is desired to associate the first node with the second node at step 2420. At step 2425, the server transmits a response to the second node, which grants permission to associate the first node with the second node. In an embodiment, the server may first generate an authorization credential that authorizes the connection of the first node with the second node and the sharing of information between the first node and the second node. This may be done by looking up credential information or by going through the process of creating a specific authorization credential that allows the two nodes to actively pair and share data. Using the authorization credential, the server may transmit it in response.
[0332] In another example, if the server anticipates that the second node will disassociate from the first node and later request to associate with a third node, the server may pre-stage authorization credentials associated with the second node and the third node. This may be done, for example, if the context indicates that the second node (e.g., the primary node) may be placed in a container and may need to connect to the third node in the future when the second node may lose its connection to the server.
[0333] Method 2400 may also include the server receiving shared data from the second node. The shared data may originate from the first node or may have portions originating from both the first and second nodes. For example, the second node may have received permission to associate and actively paired with the first node in a secure manner. The first node may have indicated that it has data to upload (e.g., sensor data), and the second node may receive the data from the first node. Following this sharing, the second node may upload the shared sensor data from the first node by transmitting it to the server.
[0334] The method may further include, after the second node is associated with the second node, instructing the second node to take over responsibility for tasks previously performed by the first node. For example, when the second node is powered by an external power source and the first node is powered by a battery, responsibility for certain tasks may be taken over by the node with the more robust power supply (e.g., the node powered by the external power source).
[0335] In more detail, programmable profiles can be utilized to establish, track, and change responsibility for certain tasks. For example, in one embodiment, a server can establish a profile for how long responsibility for a task will change. In some cases, a profile can define a time period for how long a node with the profile will have responsibility for a task before responsibility for the task will revert to the default node. In another example, a node (such as a master node) can have a default condition trigger (such as a low power situation or when it cannot communicate with the server) that can override such a profile so that it does not take on more responsibility under certain conditions.
[0336] Furthermore, embodiments may have a master node that decides which other nodes can assume responsibility for certain tasks. This may be helpful in situations where access to the server may be limited (e.g., an air freight environment). However, managing such profiles may be more easily accomplished in other embodiments with easier access to more types of contextual data at the server level.
[0337] In an embodiment, association management is implemented as a system. Such an exemplary system for association management of a wireless node network may include a first node, a second node, and a server. The second node includes a node processing unit, a node volatile memory coupled to the node processing unit, a first communication interface coupled to the node processing unit, and a second communication interface coupled to the node processing unit. The first communication interface provides a short-range communication path between the first node and the second node, and the second communication interface provides a longer-range communication path between the second node and the server.
[0338] The server includes a server processing unit, a server volatile memory coupled to the processing unit, and a third communication interface that provides a longer-range communication path between the server and the second communication interface of the second node.
[0339] The node volatile memory maintains at least a first program code segment (eg, master control and management code 425 or a portion thereof) and the server volatile memory maintains at least a second program code segment (eg, server control and management code 525 or a portion thereof).
[0340] When executing a first program code segment residing in a volatile memory of the node, the node processing unit of the second node is operable to identify the first node as potential for association with the second node, transmit an association request to the server via the second communication interface, receive an association response (having at least authorization information generated by the server) from the server via the second communication interface, provide the authorization information to the first node, and associate the first node with the second node.
[0341] In one example, the node processing unit may be further operable to review state information associated with the first node to determine whether the first node desires association with the second node. In another example, the node processing unit may be further operable to securely provide shared data between the first and second nodes after the first and second nodes are associated and in accordance with a sharing profile provided by the server. The sharing profile may define the type of information to be securely shared between specific nodes.
[0342] When executing a second program code segment residing in the server volatile memory, the server processing unit is operable to determine the locations of the first node and the second node, determine whether it is desired to associate the first node with the second node based at least on the location of the first node and the location of the second node, store new association data in the server volatile memory if it is desired to associate the first node with the second node, and transmit an authorization response to the second node, the authorization response granting permission to associate the first node with the second node.
[0343] In one embodiment, a second node in the system can take over responsibility for tasks previously handled by the first node after the second node successfully associates with the first node. For example, when the second node is powered by an external power source and the first node is powered by a battery, the system can be managed more effectively and efficiently by reassigning tasks (particularly tasks involving a significant expenditure of power, a series of operations over a significant period of time, or both) to another node, such as the second node, that has more available power than the first node.
[0344] In another embodiment, the server processing unit may be further operable to set a current filtering mode that limits the potential nodes to be associated, and grant permission to associate the first node with the second node only if the current filtering mode permits the first node to associate with the second node. In a further embodiment, the server processing unit may be further operable to change (e.g., override) the current filtering mode to a different filtering mode. In this way, the server can adapt how nodes are managed and allow the first node to associate with the second node if desired, such as when the first node is in an alert state level and urgently requests a connection to a larger group of nodes than allowed under the current filtering mode.
[0345] Although Figure 23 and 24 The exemplary method illustrated in FIG focuses on active association, but Figure 25 is a flow chart illustrating an example method for association management of a wireless node network having at least a plurality of nodes and a server according to the present invention, but from the perspective of a node that is to passively associate with another node. Figure 25 Method 2500 begins with a second node receiving a message broadcast from a first node at step 2505. At step 2510, the second node captures the address of the first node from the message. At step 2515, the first node is associated with the second node by storing the captured address of the first node and the address of the second node as association data in a memory of the second node. At step 2520, the second node transmits the association data to a server.
[0346] At some point, when the second node does not receive additional messages broadcast from the first node, the second node may update the server with updated association data. For example, the second node and the first node may remain associated and securely connected for a period of time, but eventually the first node may move such that the connection is no longer possible, or the first node may move closer to another node along its intended path (e.g., from the structure's entry point along the intended shipping path of a transport within the structure, but now closer to the structure's exit point). Because the first node is traveling on the transport, it may be closer to another node near the exit point and better managed by its association with this other node near the exit point. Thus, the updated association data reflects the disassociation of the first node from the second node.
[0347] Method 2500 may further include causing the second node to determine a location of the first node and updating the server with the current location of the second node and the determined location of the first node. Additionally, method 2500 may include receiving location information from the server defining a refined location of the first node.
[0348] In an embodiment implementing passive association management as a management node (e.g., a master node) in a wireless node having at least one other node and a server, such an exemplary management node includes a processing unit, first and second communication interfaces each coupled to the processing unit, a volatile memory coupled to the processing unit, and a memory storage device coupled to the processing unit. The first communication interface provides a first communication path to the other node, can receive messages broadcast from the other node, and provides the messages to the processing unit. The second communication interface provides a second communication path to the server.
[0349] The memory storage device may maintain at least a node association manager module as program code to be executed by the processing unit. When the processing unit loads the module into the volatile memory and executes the instructions of the module, the processing unit is operable to receive a message from the first communication interface, capture an address of the other node from the message, store the captured address of the other node and the address of the management node as part of association data in the memory storage device, and transmit the association data to the server via the second communication interface.
[0350] In one example, the memory storage device also maintains a location manager module, and when the processing unit also loads the location manager module into the volatile memory and executes the instructions of the module, the processing unit is operable to determine the locations of other nodes, determine the current location of the management node (e.g., via a GPS positioning signal), and update the server with the current location of the management node and the determined locations of the other nodes.
[0351] The management node may be further operable to update the server with updated association data when the first communication interface does not receive additional messages broadcast from other nodes. The updated association data reflects that the other nodes are disassociated from the management node.
[0352] Context management within wireless node networks
[0353] As explained generally above, the management of a node can depend on the context of the node. Figure 5As shown in , the server 100 has access to a variety of different contextual data 560. According to embodiments of the present invention, contextual data such as data 560 may include a variety of data generally relating to the environment in which the node is operating and may be used to advantageously provide enhanced node management capabilities. Thus, the use of such contextual data provides a data foundation in embodiments so that the server can better and more efficiently implement management tasks associated with nodes in the network and adjust such tasks to account for relevant contextual data as the node moves within the network (e.g., an ID node moves along an expected or predicted shipping path from an origin to a destination along an expected or predicted shipping path along with a shipped item). For example, the server utilizes its ability to rely on relevant contextual data to advantageously change how it instructs the node to operate, how it associates a node with another node, how it can better locate the node, and how it can more efficiently track and respond to requests to report the location of the node.
[0354] Figure 26 is a flow chart illustrating an exemplary method for context management of a wireless node network according to an embodiment of the present invention. Figure 26 , method 2600 begins at step 2605 by identifying at least one of the nodes by the server. In one example, such as shown in FIG22a, server 100 may identify ID node A 2220a as part of a communication received from master node M1 2210a. At step 2610, the server determines contextual data related to the operating environment of the identified node as the identified node moves within the operating environment.
[0355] In one embodiment, the context data may include one or more types of data, such as scanning data, historical data, shipping data, RF data, and layout data. For the example shown in Figure 22a, the server 100 can access the context data 560 (which can be maintained in the context database 565) to determine the portion of the context data 560 related to the operating environment of the ID node A 2220a. In this example, such context data 560 may include shipping data related to the shipped items connected to the ID node A 2220a, scanning data for when the items connected to the ID node A 2220a were scanned when entering the structure 2200, historical data for how long the node took to traverse a transport positioned within the structure 2200, and layout data regarding the dimensions of the structure 220. Those skilled in the art will appreciate that the context data may include operating environment information created within the wireless node network or operating environment information created by a third party (e.g., weather information related to the operating environment of the ID node A 2220a).
[0356] While the server, in one embodiment, determines contextual data related to the operating environment of the identified node, in more detailed embodiments, such current or expected operating environment of the node may include one or more types of environments. For example, the current or expected operating environment of the node may include an electronic communications environment, a physical environment along an expected path of movement of the node, a transportation environment related to how the node moves, and a density environment related to the density of nodes in an area proximate to a particular node identified by the server.
[0357] Returning to step 2610, the determining step may involve determining contextual data related to the expected operating environment of the identified node as the identified node moves toward the location of the other node in the predicted path. In another example, the determining step may involve determining contextual data related to the expected operating environment of the identified node and the expected operating environment of the other node as the identified node moves toward the other node in the predicted path for an expected association with the other node.
[0358] At step 2615, the server performs the management task associated with the identified node while making adjustments based on the determined context data. When the determined context data (such as RF signal degradation information) indicates that no adjustments are actually required when performing the task, no adjustments are made based on the determined context data. Thus, those skilled in the art will appreciate that adjustments can be made when necessary based on the context and are not always required.
[0359] In one embodiment, performing a management task may generally include instructing an identified node to change its operation based on determined contextual data. For example, the server 100 may perform a management task that instructs ID node A 2220a to change its connectable and non-connectable intervals as it approaches master node M1 (which the server 100 knows from contextual data, such as scan data generated when node A enters structure 2200). Thus, in this example, the server 100 is able to take advantage of the enhanced visibility of ID node A 2220a based on the contextual data and advantageously change node A's operation to increase the node's chances of successfully associating with master node M1 2210a.
[0360] In other embodiments, performing the management task may include associating the identified node with another node while making adjustments based on determined contextual data to change association parameters. In other words, contextual data may be helpful as part of associating the nodes. In one example, the association parameters may include at least one changed timing interval related to associating the identified node with the other node, such as a reminder interval or a connectable interval. These intervals are parameters that may be changed as part of the adjustments made when the server associates two nodes and, for example, sets the interval to a more appropriate time duration in order to enhance the chances and opportunities that the nodes have to actively pair and securely share data as needed.
[0361] In yet another embodiment, performing the management task may include locating the identified node while making adjustments to power settings based on determined contextual data. In one example, the power setting adjustment is made to a master node that is in direct communication with a server. In another example, the power setting adjustment may be made to an ID node that is communicated with the operational adjustment information from another node. In one embodiment, the power setting itself may include an output power level that is adjusted to account for adverse conditions in the operating environment of the identified node (e.g., a master node with an adjusted RF output signal level). The adverse conditions may be, for example, an adverse RF communication environment in which a structure impairs or otherwise hinders normal RF communications. In another example, the adverse conditions may be a highly dense cluster of nodes proximate to the identified node.
[0362] More specifically, the output power level can be adjusted to account for shielding conditions in the first node's operating environment. Such shielding conditions can be caused, for example, by one or more of packaging, package contents, nearby packages, nearby package contents, and physical infrastructure in the first node's operating environment. For example, if the identified node is located near a metal container, it is operating in an unfavorable RF communication environment, in which case it can have its output power level increased based on the contextual data to better handle the unfavorable shielding conditions.
[0363] In yet another embodiment, performing the management task can include providing the location of an identified node in response to a request received by the server regarding the status of the identified node. For example, if the server 100 receives a request from the user access device 205 regarding the status of ID node A 2220a, the server 100 can provide the location of node A as being within structure 2200, but refined to be near an entrance to the structure to account for contextual data, such as scan data associated with an item shipped with node A 2220a.
[0364] Those skilled in the art will appreciate that the method 2600 as disclosed and explained above in various embodiments may be implemented in, for example, Figure 5 and 22A On the server 100 illustrated in FIG, one or more portions of server control and management code 525 (e.g., a context-based node manager) are executed. Such code may be stored on a non-transitory computer-readable medium, such as a memory storage device 515 on the server 100. Thus, when executing the code 525, the processing unit 500 of the server may be operable to perform operations or steps according to the exemplary methods disclosed above, including method 2600 and variations thereof.
[0365] Node location determination method
[0366] As part of managing and operating a network of wireless nodes according to one or more embodiments of the present invention, operations such as tracking Figure 22A -ID node A 2220a in C, determines the location of the node. As explained above, the exemplary ID node can rely directly or indirectly on the master node to determine its location. In the embodiments discussed and described herein, the location of the node can generally include a current or past location. For example, if the node is not moving, an embodiment of determining the location of the node may be a current location, but if the node is in a moving state, it may be necessary to determine the location as a past location.
[0367] Likewise, the term location alone may encompass locations with varying degrees of precision. For example, a location may encompass an actual position having defined coordinates in three-dimensional space, but use of the term location may also encompass only relative positions. Thus, the term location is intended to have a general meaning unless otherwise expressly limited to a more specific type of location.
[0368] Determining the node location can be performed by the master node alone, by the server alone, or by the master node and the server working together. Furthermore, with respect to such a device, embodiments may use one or more methods to determine the location of the node and further refine the location. Such example methods may include, but are not limited to: determining the node location may involve controlling the RF characteristics of the node (e.g., RF output signal level and / or RF receiver sensitivity level), determining relative proximity, considering association information, considering position adjustments based on contextual information and the RF environment, chained triangulation, and hierarchical and adaptive methods that combine various positioning methods. A more detailed description of these exemplary node location determination techniques is provided below.
[0369] Positioning by proximity
[0370] In one embodiment, signal strength measurements between two or more nodes can be used to determine the proximity of the nodes. If the actual locations of the nodes are unknown, one embodiment can infer the positional relationship of two nodes through proximity.
[0371] Proximity when changing power characteristics
[0372] For example, an exemplary method of determining the location of a node in a wireless node network of nodes may involve changing a power characteristic of the node, such as the output power of one of the nodes. Figure 13 As explained, power characteristics can be varied to identify nodes that are closer to a broadcasting node. The broadcasting node may transmit one or a series of signals, and other nodes may report receiving one or more of the signals. Those other nodes that receive at least one signal broadcast from the transmitting node can be considered part of the node's proximity group. Furthermore, when the power characteristic is varied (increased, decreased, or both), the closest group of nodes (or a single node) can be identified as the smallest group of nodes among those that received at least one signal from the broadcasting node. Thus, while not absolute, the type of location of a broadcasting node can be determined based on the closest node or groups. This process can be repeated for neighboring nodes to generate a set of closest node information for each node. More specifically, an exemplary set of closest node information for each node can include which nodes are closest (via the lowest power characteristics) and, to more robustly supplement this information, which other nodes are incrementally further away (via increasingly higher power characteristics). Thus, the set of closest node information provides a basis for determining how close nodes in the network are to one another, providing a type of location determination for each node.
[0373] Additionally, contextual data can be referenced in certain embodiments to further enhance the determination of how close nodes are to one another. For example, combining a collection of closest node information with contextual data, such as scan information registered when an item changes custody control in a delivery system, can further refine how the location of a node is determined. Scans and other contextual information will help determine whether one or more of the nodes are known to be in the same container, vehicle, or moving together on a belt, for example. Thus, this type of contextual data can be integrated into a further step of refining how close nodes are to one another based on the contextual data.
[0374] Generally, the location of a proximity-based node may be determined as the power characteristics of the node change or vary in a wireless node network. Figure 28 is a flow chart illustrating an exemplary method for position determination by varying power characteristics of nodes in a wireless node network according to an embodiment of the present invention. Figure 28 , method 2800 begins by instructing a first of the nodes to change a power characteristic by one or more signals broadcast to the first node at step 2805. In a more detailed embodiment, such instructions may cause the first node to, for example, incrementally decrease or incrementally increase a power characteristic (such as an output power level) between values.
[0375] At step 2810, method 2800 continues by identifying a first set of other nodes in the network of wireless nodes that are proximate to the first node based on which of the other nodes receive at least one of the signals broadcast by the first node when the first node changes power characteristics. In a further embodiment, step 2810 may incrementally identify which of the first set of other nodes are receiving at least one of the broadcast signals when the first node incrementally changes the output power level of the broadcast signal. The incrementally identified nodes may be considered to be a set of nodes that are incrementally proximate to the first node.
[0376] At step 2815, method 2800 continues by identifying the closest one or more of the other nodes as the smallest group of other nodes that receive at least one of the one or more signals broadcast by the first node when the first node changes power characteristics.
[0377] At step 2820, method 2800 concludes by determining the position of the first node based on the closest one or more other nodes. Thus, when power characteristics are changed, the group of nodes that have received at least one of the signals broadcast by the first node may change, and the smallest such group is the closest group of nodes to the first node (even if only one node). In a more detailed embodiment, step 2820 may include determining the position of the first node based on the closest one or more other nodes and the set of nodes that are incrementally closer to the first node, when the set of incrementally closer nodes provides more detailed proximity information for refined position determination.
[0378] For example, reference Figure 14 , the set of nodes that are incrementally close to ID node F 920f may include the farthest node M3 and M1 that is closer than M3. When the power characteristic of ID node F incrementally decreases and its output power level changes from P1 to P2, M3 may no longer receive the signal, but M1 and M2 still receive the signal. And when the power characteristic of ID node F continues to incrementally decrease and its output power level changes from P2 to P3, M1 may no longer receive the signal, but only M2, as the last of the nodes closest to ID node F, receives the signal. Therefore, in this example, determining the position of ID node F may be based on the fact that M2 is the closest node and the set of incrementally close nodes includes M1 and M3, where M1 is closer than M3.
[0379] In another embodiment, one or more further refinements of the first node's position may be performed. In one example, steps 2805-2820 may be repeated when a second in the node is instructed to change power characteristics for one or more signals broadcast by the second node, and then method 2800 may further refine the position of the first node based on the position of the second node. In a more detailed example, steps 2805-2820 may be repeated when a second in the node is instructed to change power characteristics for one or more signals broadcast by the second node, and then method 2800 may further refine the position of the first node based on the position of the second node and a set of nodes that are incrementally close to the second node. Utilizing this incrementally cross-correlated information about what nodes are closer to other nodes and to what extent, this may be further repeated for additional nodes, and an embodiment may further refine the position of the first node within the network.
[0380] Method 2800 may further include determining context data associated with the first node and refining the location of the first node based on the context data. In embodiments where the power characteristic is an output power level, the incremental change in the output power level of the broadcast signal in steps 2805-2815 may be set based on the context data.
[0381] Method 2800 can also determine contextual data associated with the node that is closest to the first node and refine the position of the first node based on the contextual data. In another example, method 2800 can determine contextual data associated with incrementally identified nodes in a set of nodes that are incrementally close to the first node and refine the position of the first node based on the contextual data. For example, the closest node and the set of incrementally close nodes may have scan data indicating that they are within the same container. This exemplary contextual data can be used to further refine the position of the node being located, which can help efficiently determine that the node is close to the container. Thus, those skilled in the art will appreciate that contextual data for the node being located and the nodes identified as being close to the node can provide relevant input to advantageously help further refine the position of the node.
[0382] Those skilled in the art will appreciate that the method 2800 as disclosed and explained above in various embodiments may be implemented in, for example, Figure 5 and 22AOn the server 100 illustrated in FIG, one or more portions of server control and management code 525 (e.g., a location manager) are executed. Such code may be stored on a non-transitory computer-readable medium, such as a memory storage device 515 on the server 100. Thus, when executing the code 525, the processing unit 500 of the server may be operable to perform operations or steps according to the exemplary methods disclosed above, including method 2800 and variations thereof.
[0383] Embodiments of such a server device may include a server (such as server 100) operable to communicate with a plurality of nodes in a wireless node network. Figure 5 As explained above, the server generally includes a server processing unit, a server volatile memory, a server memory storage device, and at least one communication interface. In this embodiment, each of the volatile memory, the memory storage device, and the communication interface is coupled to the processing unit. The memory storage device maintains at least a program code segment and location data related to the location of one or more of the nodes. The communication interface provides a communication path that operably couples the server to the nodes.
[0384] The server processing unit as mentioned above is operable, when executing the program code segments, to perform the steps and operations as described above with respect to the method 2800 described above and variations of that method.
[0385] Proximity when observing signal patterns and strength over time
[0386] In another embodiment, an improved method for determining the location of a node by proximity may include analyzing the signal pattern and strength between an announcing node and a listening node. In one embodiment, the ability to locate a node (e.g., an ID node) to the location of another node (e.g., a master node) may be improved based on a threshold set for an association of observed message counts and / or recorded signal strengths over a specific time period. In some embodiments, the observed message count may be implemented as an average count over repeated time periods. Still further, other embodiments may filter outlying observations in an observation data set to help improve the quality of the data relied upon for a threshold set for an association and thereby determine the location of a node.
[0387] In a more detailed example, an improved method for determining the location of a node by proximity can illustrate a captured announce message count as a component for locating a node and determining the direction of travel of a node. In this example, two example master nodes (e.g., master nodes M1 910a and M2 910b) can capture announce messages from an ID node (e.g., ID node A 920a). Master node M1 may observe and capture (e.g., record information related to the observation) 60 messages from ID node A over a 2 minute period, while master node M2 only observes and captures 7 announce messages from ID node A over the same period. Based on the difference in how often master node M1 observes messages from ID node A compared to those messages observed by master node M2, the system is able to determine that ID node A is closer to the master node and it's location is known.
[0388] In a further embodiment, comparing the average timestamps of the captured records can allow the system to make a more accurate determination of location. For example, if the average captured messages found on master node M2 is incrementally increasing (e.g., it takes longer for messages to go from ID node A to master node M2), then this indicates that ID node A is moving away from master node M2. If the average captured messages found on master node M2 is incrementally increasing while the average captured messages found on master node M1 is incrementally decreasing, then this indicates that ID node A is moving away from master node M2 and towards master node M1. Therefore, over multiple observed time periods, the location of a node can also be enhanced or refined by relying on changes in message timing (transmission to reception).
[0389] In yet another embodiment, the observed signal strength may be a component in determining location and estimating the direction of travel and may allow the system to make a more accurate determination of location. For example, two master nodes (M1 910a and M2 910b) may be capturing announcement messages from a node (ID Node A 920a). M1 captured 60 messages from ID Node A in 2 minutes, while M2 only captured 7 messages. The average signal strength observed by master node M1 for signals from ID Node A is higher than the average signal strength observed by master node M2. Based on this observed signal strength information, the system will determine that ID Node A is at M1, but the predicted path may indicate that ID Node A is heading towards M2. As master nodes M1 and M2 continue to capture records, the system (e.g., management code 524 operating on server 900, which communicates with M1 and M2) processes the continuous feed of capture records from M1 and M2. Using this observed signal strength information, the server 900 would expect the count and average signal strength of messages from ID Node A to increase for observations at M2 and decrease for observations at M1 over the observed time period (2 minutes) as the ID node moves physically closer to M2 and away from M1. Thus, changes in observed power levels and how frequently messages are observed can indicate actual node movement in embodiments.
[0390] Basing node proximity positioning and node directionality determination on signal patterns and characteristic strengths observed over a time period has the advantage of reducing the likelihood of unwanted and spurious signal anomalies causing the position of an ID node to be incorrectly determined. And the above exemplary methods for determining movement characteristics of a node (e.g., moving closer to one node, moving closer to one but away from another, etc.) as part of refining a node's position can be applied in conjunction with the various embodiments for determining node position described herein.
[0391] Figure 27 is a flow chart illustrating an exemplary method for proximity locating nodes in a wireless node network based on signal patterns and characteristic indicators observed over a period of time in accordance with an embodiment of the present invention. Figure 27 Method 2700 begins at step 2705 by instructing the first and second other nodes to detect any messages broadcast from a node over a time period. The time period can be set based on a variety of factors, such as context information. More specifically, when a node moves to a different context, the time period can be dynamically changed based on the context data.
[0392] The method 2700 causes the server to receive a first indication from a first other node at step 2710 and a second indication from a second other node at step 2715. Finally, the method 2700 determines a location of the one node at step 2720 based on a difference in the first indication and the second indication.
[0393] The first indication relates to characteristics of messages broadcast from a node detected by a first other node during a time period. Similarly, the second indication relates to characteristics of messages broadcast from a node detected by a second other node during a time period. These indications may include, for example, a count of messages received by the respective other node, a transit time factor (e.g., an average transit time for messages to be detected after being broadcast), and an average signal strength.
[0394] In one embodiment, the first indication may be a first count of messages broadcast from a node detected by a first other node during a time period, and the second indication may be a second count of messages broadcast from a node detected by a second other node during a time period. Thus, when the first count is greater than the second count, determining the location of a node may be a location that is closer to the first node than the second other node. Additionally, method 2700 may further include determining an actual node movement direction for a node based on comparing the first count with the second count over multiple time periods. For example, method 2700 may repeatedly observe and track the first count and the second count over time over several of these time periods to determine which is increasing and which is decreasing, and determine the movement of a node based on these measurements over time.
[0395] In another detailed embodiment, the first indication may be a first time factor of a message broadcast from a node detected by a first other node during a predetermined time period, and the second indication may be a second time factor of a message broadcast from a node detected by a second other node during the time period. And the actual node movement direction of a node may be based on comparing the first time factor with the second time factor. In a more detailed embodiment, the first time factor may be the average transit time of a message detected at a first other node from a node to a first other node, and the second time factor is the average transit time of a message detected at a second other node from a node to a second other node. In this way, determining the position of a node may be that the position is closer to the first other node than the second other node when the first time factor is less than the second time factor.
[0396] In yet another embodiment, the first indication may be a first average signal strength of messages broadcast from a node detected by a first other node during a time period, and the second indication may be a second average signal strength of messages broadcast from a node detected by a second other node during a time period. Thus, determining the location of a node may be that the node is closer to the first other node than the second other node when the first average signal strength is greater than the second average signal strength.
[0397] In an embodiment, method 2700 may further include observing the degree of change in the first average signal strength and the degree of change in the second average signal strength over repeated time periods, and determining an actual node movement direction of a node based on comparing the degree of change in the first average signal strength with the degree of change in the second average signal strength.
[0398] In another embodiment, the method 2700 can also refine the determined location of a node. In this embodiment, the method 2700 can further include refining the location of a node based on at least one of a first updated location received from a first other node and a second updated location received from a second other node. For example, when the first other node is a mobile master node and it is the closer of two nodes to a node being located, an embodiment can utilize positioning signaling onboard the first other node that provides the current location of the first other node. This current location data can be transmitted by the first other node to the server to update the server in its calculation of the location of a node.
[0399] In yet another embodiment, method 2700 may layer contextual data with a determined location to refine a node's location. Contextual data associated with a node may be determined by a server, and thus a node's location may be refined based on the contextual data. In another example, contextual data is associated with the closer of a first other node and a second other node when compared to a node's location. For example, a server may perceive that a particular master node is closer to a node than a second master node, and that the particular master node is within a cargo container. Utilizing this additional contextual data associated with the particular master node, the server may refine a node's location based on the contextual data. Other exemplary types of relevant contextual data may be relied upon when refining a node's location, such as contextual data regarding specific shielding associated with an environment near a particular master node (e.g., a particular type of ULD having known RF shielding characteristics, etc.).
[0400] In addition, method 2700 can involve watching to see if a node is behaving as expected. More specifically, further embodiments of method 2700 can further compare the location of a node with the predicted path of a node to determine whether a node is located outside the predicted path. This can allow the server to use learned historical data when creating the predicted path and keep track of a node relative to within an acceptable range associated with the predicted path. The method can also generate a notification if a node is outside the predicted path. In this way, actionable tasks can then be taken to locate a node - for example, changing filtering mode options for nodes in the general area, etc.
[0401] Those skilled in the art will appreciate that the method 2700 as disclosed and explained above in various embodiments may be implemented in, for example, Figure 5 and 22A On the server 100 illustrated in FIG. , one or more portions of server control and management code 525 (e.g., a location manager) are executed. Such code may be stored on a non-transitory computer-readable medium, such as a memory storage device 515 on the server 100. Thus, when executing the code 525, the processing unit 500 of the server may be operable to perform operations or steps according to the exemplary methods disclosed above, including method 2700 and variations thereof.
[0402] Correlation-driven positioning using variable RF characteristics
[0403] As mentioned above, signal strength measurements between two or more nodes can be used to determine the relative distance between the nodes. If one of the nodes (such as master node M1 910a) has a known location, the relative location of one or more nodes within the range of the known location node is generally a function of how accurately the system can determine the distance between the node with the known location and the associated node. In other words, embodiments can identify the relative location of an item and its associated node by determining the distance of the node from the known location by relying on a variable low-power RF output signal driven by the association.
[0404] Position determination via master node notification
[0405] As generally mentioned above, determining node location may involve controlling RF characteristics of the node (eg, RF output signal level and / or RF receiver sensitivity level), and more particularly may involve controlling aspects of master node advertising. Figure 13 is a diagram illustrating exemplary location determination using master node announcements according to an embodiment of the present invention. Figure 13In the illustrated embodiment shown in , a master node such as master node M1 910a having a known location is broadcasting and announcing messages at varying RF output power levels. Figure 13 Exemplary different RF output power levels are illustrated, as are concentric ranges 1305-1315 about a master node M1 910a. Thus, the master node M1 910a may broadcast at a maximum power P1 associated with range 1305, but may control and dynamically change the RF output power level to P2 and broadcast at a smaller range 1310, or to P3 and broadcast at an even smaller range 1315.
[0406] In the illustrated embodiment, receiving ID nodes AE 920a-920e are in inquiry (scanning) mode and can each use received signals at different levels to determine how far away they are from transmission M1. Those skilled in the art will appreciate that while Figure 13 The illustrated embodiment shown in FIG has all receiving nodes act as ID nodes, but other embodiments may have receiving nodes be master or ID nodes or a mix.
[0407] exist Figure 13 In an exemplary embodiment, the location of the node AE can be determined based on the known location of the master node M1 910a. The location is provided based on the variable RF signal power by adding the range measurement when each of the corresponding receiving nodes AE last received a signal from the node M1 and factoring in the confidence factor of the range measurement. Depending on the quality of the range measurement, the individual receiving nodes may or may not have individually calculated positions. In another embodiment, if third-party or contextual data such as scan information is available, such data can be used as an additional confidence factor to determine the refined position. As the communication range of M1 is restricted from P1 to P3, the accuracy of positioning by association increases.
[0408] exist Figure 13 In the illustrated example of , an exemplary method of determining the location of a node using master node advertisements can be described. First, the master node M1 910a is seen by each of the ID nodes AE 920a-e when the available power short range communication interface 480 of the master node M1 is set to P1, its maximum output. Based on analysis or historical measurements, the outdoor performance (optimal range) of M1's variable power short range communication interface 480 at the P1 power level may have been previously found to be approximately 30 feet. Therefore, without the need to review the RSSI levels from the individual ID nodes AE 920a-e and without the need for an active calibration phase, the system can know that the ID node AE is within 30 feet of the master node M1 910a.
[0409] Next, when the variable power short-range communication interface 480 of master node M1 is set to P2, a medium output level in this example, master node M1 is seen by nodes A and B. Based on previous analysis or historical measurements, the user performance (optimal range) of the variable power short-range communication interface 480 of master node M1 operating at the P2 power level has been determined to be approximately 15 feet. Therefore, without needing to review the RSSI levels from individual nodes, we know that ID node A 920a and ID node B 920b are within 15 feet of master node M1. Furthermore, we know that the ID nodes that no longer receive the broadcast RF signal from master node M1 910a (e.g., ID nodes C 920c, D 920d, and E 920e) are somewhere within 30 feet of master node M1 910a, but may be more than 15 feet away from M1.
[0410] And when the variable power short-range communication interface 480 of master node M1 is set to P3, its minimum output level in this example, it is seen by ID Node B 920b. Based on previous analysis or historical measurements, it was determined that the outdoor performance (optimal range) of the variable power short-range communication interface 480 of master node M1 operating at the P3 power level is approximately 5 feet. Therefore, without needing to review the RSSI levels from individual ID nodes, we know that the location of ID Node B 920b is within 5 feet of the known location of master node M1 910a.
[0411] The ranging step, as discussed above in the example, can then be repeated for any of the identified nodes to build a more accurate picture of the relative position of each node. The granularity of the RF characteristic settings (e.g., RF output signal power level settings) will provide more granular positioning differences when performing the ranging step. In one embodiment, the ranging step can be performed on a set of gross RF characteristic settings (e.g., a few settings over a wide range), and then a similar step can be performed on a more selective range of RF characteristic settings.
[0412] Figure 29 is a flow chart illustrating an exemplary method for position determination using one or more associations of nodes in a wireless node network according to an embodiment of the present invention. Figure 29, method 2900 begins at step 2905, where a first of the nodes broadcasts one or more first messages at a first expected or predicted range distance. In one embodiment, the first expected range distance is an optimal distance for the first node. For example, assuming a clear environment, the first node's radio in its communication interface may have a maximum setting to allow the node to broadcast at a maximized range. Such a setting provides a known expected range distance. Figure 13 In the example shown in FIG. 1 , master node M1 910a may broadcast at a maximum power level P1 that achieves a first range distance from node M1. However, if node M1 is known to be in an adverse RF shielding environment, the first expected range distance may be an adjusted distance to account for the context of such shielding (e.g., a type of context data). The expected range distance may be adjusted based on one or more types of relevant context (e.g., one or more types of context data related to how the RF output signal from the node may be obstructed).
[0413] At step 2910, method 2900 identifies which of the nodes associated with the first node received at least one of the first messages. In one embodiment, the first node may be able to access and review association data in its onboard memory as part of identifying which nodes are associated with it. In one example, the association with the first node may be a passive association (e.g., not actively paired and securely connected), an active association (e.g., actively paired and able to securely connect and share data), or a combination of both types of associations.
[0414] Next, at step 2915, the first node broadcasts one or more second messages at a second expected range distance that is incrementally smaller than the first expected range distance. Figure 13 In the example of FIG, master node M1 910a may be the first node and is now broadcasting at a medium power level P2 that reaches a second expected range distance from node M1. By incrementally changing the RF power level in this manner, master node M1 910a is now no longer able to reach the desired range distance as in FIG. Figure 13 Node CE is shown in FIG.
[0415] At step 2920, method 2900 concludes by determining the location of one or more of the identified associated nodes that did not receive any of the second messages but received at least one of the first messages, wherein the location is between the first and second expected range distances from the first node. Again, in Figure 13In the example, master node M1 910a can determine the location of nodes CE (assuming they do not receive messages sent at RF power level P2 outside the second expected range distance) between the first expected range distance (when master node M1 broadcasts at power P1) and the second expected range distance (when master node M1 broadcasts at power level M2) from the known location of master node M1.
[0416] In one embodiment, the method 2900 may further cause the first node to broadcast one or more third messages at a third expected range distance (an incrementally smaller range than the second expected range distance), and determine the locations of one or more of the identified associated nodes that did not receive any of the third messages but received at least one of the second messages, wherein the locations are approximately at the second expected range distance from the first node. Again, Figure 13 In the example, by incrementally changing the power level downward to P1 and broadcasting a third message at the expected range distance for that P1 level, the master node M1 can determine the location of node A (when node A receives the second message but does not receive the third message) to be approximately close to the expected range distance for P2 from the location of the master node M1.
[0417] Additional embodiments of method 2900 may further refine the position thus determined by updating the position of the first node. In one embodiment, the node may be a mobile node. Thus, the refinement may involve determining the current mobile position of the first node and refining the position of one or more identified associated nodes based on the current mobile position of the first node, wherein the one or more identified associated nodes did not receive any of the second messages but did receive at least one of the first messages. Thus, as the first node moves and updates its own position (e.g., via GPS signals received through positioning circuitry 475 on the master node), the first node can utilize its own updated position and advantageously refine the positions of its associated nodes.
[0418] Also, in some embodiments, the refined location of the associated nodes may be transmitted to the server. This provides updates to the server and helps track and manage the locations of nodes in the network. Again, refer back to Figure 13 For example, the master node M1 910a can utilize such a method for locating the positions of associated nodes, such as ID nodes AE 920a-920e, and update the server 100 with this new position data related to the current position of node M1 and any of the nodes associated with node M1.
[0419] Those skilled in the art will appreciate that the master control and management code 425 may be executed on a node (eg, a location awareness / capture module) that is running one or more portions thereof. Figure 4 The master node 110a in Figure 13 Master node M1 910a or Figure 22A Method 2900, as disclosed and explained above in various embodiments, may be implemented on master node M1 2210a in the master node. Such code may be stored on a non-transitory computer-readable medium, such as memory storage device 415 on master node 110a. Thus, when executing code 425, the master node's processing unit 400 may be operable to perform operations or steps according to the exemplary methods disclosed above, including method 2900 and variations thereof.
[0420] In another embodiment, a node device in a wireless node network using location determination by association as described with reference to the steps associated with method 2900 is described. As mentioned above, the node device can be implemented using a master node, such as a node processing unit, a node volatile memory, a node memory storage device, and a first and a second communication interface. Each of the memory and the communication interface is coupled to the node processing unit. Further, the node memory storage device maintains at least program code segments, association data, and location data, and sometimes maintains shipping information. The first communication interface provides a first communication path that operably couples the node with multiple other nodes in the network, while the second communication interface provides a second communication path that operably and separately couples the node with a server in the network.
[0421] In this embodiment, the node processing unit is operable to transmit one or more first messages via the first communication interface at a first expected range distance and identify which of the other nodes associated with the first node received at least one of the first messages. In one embodiment, the node processing unit may be operable to access association data in a node memory device when identifying which of the nodes associated with the first node (e.g., passive, active, or both types of associations) received at least one of the first messages.
[0422] The first expected range distance may be an optimal transmission range for the first communication interface and, in a more detailed example, may be adjusted based on contextual data (e.g., RF shielding inherent from the node's surrounding environment). In yet another embodiment, the first expected range distance and the second expected range distance may be adjusted based on one or more types of contextual data related to how an RF output signal transmitted from the first communication interface may be obstructed by the node's environment.
[0423] The node processing unit is further operable to transmit one or more second messages via the first communication interface at a second expected range distance (incrementally less than the first expected range distance) and determine a location of one or more of the identified associated nodes that did not receive any of the second messages but received at least one of the first messages. The location is between the first expected range distance from the known location of the node and the second expected range distance from the known location of the node. In a further example, the node processing unit may be operable to store the determined location in a node memory device as part of the location data.
[0424] The node processing unit may also be operable to transmit one or more third messages via the first communication interface at a third expected range distance (an incrementally smaller range than the second expected range distance) and determine the location of one or more of the identified associated nodes that did not receive any of the third messages but received at least one of the second messages, wherein the location is between the second expected range distance from the known location of the node and the third expected range distance from the known location of the node.
[0425] In another embodiment, the node may be mobile and the node processing unit may be further operable to refine the location of one or more of the identified associated nodes that did not receive the second message but did receive the first message by updating the location of the first node. More specifically, the node processing unit may be operable to determine the current mobile location of the first node (e.g., by checking the node's onboard positioning circuitry for a valid GPS signal and obtaining a position fix based on such signal), and based on the current mobile location of the first node, refine the location of one or more of the identified associated nodes that did not receive any of the second messages but did receive at least one of the first messages. The node processing unit may also be operable to transmit the refined location to the server via the second communication interface.
[0426] Position determination via ID node announcement
[0427] Although Figure 13 Provides an example of location determination via master node advertisements, but Figure 14 Focuses on location determination via ID node announcements. In particular, Figure 14 is a diagram illustrating exemplary location determination using ID node announcements according to an embodiment of the present invention. Figure 14 In the illustrated embodiment shown in FIG, exemplary ID node F 920f is in advertising mode but has no known location. Figure 13 Same, Figure 1414. Example different RF output power levels from ID Node F 920f are illustrated as concentric ranges 1405-1415 about ID Node F 920f. Thus, ID Node F 920f can broadcast at a maximum power P1 associated with range 1405, but can control the RF output power level and dynamically change the RF output power level to P2 and broadcast at a smaller range 1410, or to P3 and broadcast at an even smaller range 1415. Master nodes M1-M3 910a-910c are arranged in various known locations near ID Node F 920f, which has an unknown location. In this way, ID Node F 920f can utilize the ability to adjust RF characteristics of its own short-range communication interface, such as RF output signal power level, as part of how the system can determine the location of ID Node F through ID Node advertisements.
[0428] In the illustrated embodiment, the RF output signal power level of ID Node F 920f can be varied or dynamically adjusted via programmable settings (such as simple settings or parameters) associated with the operation of the variable power short-range communication interface 375. Additionally, while the actual communication range may vary depending on the surrounding environment, assuming an optimal operating environment or the absence of significant RF shielding or interference, the maximum expected communication range of the ID Node's transmitter at each power level is known. Thus, a particular power level setting for a broadcasting node is inherently associated with a corresponding expected range distance.
[0429] In an exemplary method of determining node location using ID node advertisements, the RF output signal power level can be varied across multiple power levels to improve positioning through master node association. In more detail, when the variable power short range communication interface of ID node F is set to P1 - its maximum output, ID node F 920f is seen by each of the master nodes M1-3 910a-910c. It may have been previously discovered that the expected outdoor performance or range distance (optimal range, or range based on analysis or historical measurements) of the radio in the variable power short range communication interface 375 of ID node F at the P1 power level is approximately 30 feet. Therefore, without any review of the RSSI levels from the individual master nodes, the system knows that ID node F is within 30 feet of the master nodes M1-M3.
[0430] Next, when ID Node F's variable power short-range communication interface 375 is set to P2—a medium output level in this example—ID Node F 920f is seen by master nodes M1 910a and M2 910b. The expected outdoor performance or range distance (optimal range, or range based on analysis or historical measurements) of the radio in ID Node F's variable power short-range communication interface 375 operating at the P2 power level is approximately 15 feet. Therefore, without any review of RSSI levels from individual nodes, we know that master nodes M1 910a and M2 910b are within 15 feet of ID Node F 920f in this example. Further, we know that the master node (e.g., master node M3 910c) that is no longer receiving the broadcast RF signal from ID Node F 920f is somewhere within 30 feet of ID Node F 920f, but in this example may be more than 15 feet away from Node F.
[0431] And ID Node F 920f is only seen by Master Node M2 910b when its variable power short range communication interface 375 is set to P3, its minimum output level in this example. The expected outdoor performance or range distance (optimal range, or range based on analysis or historical measurements) of the radio in ID Node F's variable power short range communication interface 375 at the P3 power level is approximately 5 feet. Therefore, without any review of the RSSI levels from the master node, we know that in this example the location of ID Node F 920f is within 5 feet of the known location of Master Node M2 910b.
[0432] The ranging steps as discussed above in the example regarding the changing RF characteristics of the advertising ID node may then be repeated for any of the identified nodes in order to build a more complete picture of the relative location of each node.
[0433] Still further, the timing between such ranging steps can be varied dynamically depending on whether the node is moving. Those skilled in the art will appreciate that when moving, a faster flow through such ranging steps will help provide better accuracy that takes into account the movement of the node. Thus, when a node is moving, it may be desirable to have a shorter time interval between instructing the node to broadcast one or more messages at a particular power level and then instructing the node to broadcast one or more messages at a different power level, where the node is moving, as may be determined based on context data. For example, the context data may indicate that the node is within a node package on a moving conveyor system. Thus, the node is moving relative to a fixed master node, which may be placed along the conveyor system. Thus, the server may cause the first node to perform ranging steps in which the power is varied in relatively rapid succession compared to a situation where the context data indicates that the node is not moving or is substantially stationary.
[0434] Figure 30 is a flow chart illustrating another exemplary method for position determination using one or more associations of nodes in a wireless node network according to an embodiment of the present invention. Figure 30 In addition to explaining how to locate nodes using association and one or more master node advertisement techniques, method 3000 begins at step 3005 by instructing a first one of the nodes to broadcast one or more first messages at a first power level, the first power level being associated with a first expected range distance. In one example, the first expected range distance may be an optimal range for the first one of the nodes (e.g., assuming no obstructions and a clear signal path between the nodes). In another example, the first expected range distance may be an optimal range for the first node adjusted based on contextual data (e.g., data related to the surrounding RF environment of the first node).
[0435] At step 3010, method 3000 identifies which of the nodes associated with the first node have known locations at step 3010. For example, this type of identification can be accomplished by reviewing association data indicating which of the nodes are associated with the first node (e.g., via passive association, via active association, or via a combination of both), determining which of the nodes are associated with the first node based on the reviewed association data, and identifying which of those associated nodes have known locations.
[0436] The method 3000 continues at step 3015 by determining which of the identified associated nodes received at least one of the first messages. Next, the method 3000 instructs the first node to broadcast one or more second messages at a second power level at step 3020, wherein the second power level is associated with a second expected range distance and the second power level is incrementally less than the first power level. In a further example, the first expected range distance and the second expected range distance can be adjusted based on one or more types of context data related to how the RF output signal from the first node may be obstructed.
[0437] At step 3025, method 3000 determines which of the identified associated nodes received at least one of the second messages. Method 3000 ends at step 3030, where the method determines that the position of the first node is at or between a first expected range distance and a second expected range distance from each of the identified associated nodes that did not receive at least one of the second messages but received at least one of the first messages.
[0438] As mentioned above, determining the location of a node can be improved when taking movement into account. Thus, an embodiment of method 3000 can instruct the first node to broadcast one or more second messages within a time interval after instructing the first node to broadcast one or more first messages. The time interval can be predetermined in some implementations, but can also be a dynamically set parameter based on context data associated with the first node in other implementations. In more detail, the time interval can be reduced from a prior value when the context data associated with the first node indicates that the first node is moving, but can be increased from the prior value when the context data associated with the first node indicates that the first node is substantially stationary.
[0439] In another embodiment, method 3000 may further include instructing the first node to broadcast one or more third messages at a third power level. Such third power level is associated with a third expected range distance and is an incrementally smaller range than the second expected range distance. Thereafter, the method may determine that the position of the first node is at or between the second expected range distance and the third expected range distance from each of the identified associated nodes that did not receive any of the third messages but received at least one of the second messages.
[0440] In another embodiment, the method 3000 may include refining the position of the first node using updated positions of one or more of the identified associated nodes that did not receive at least one of the second messages but received at least one of the first messages. For example, if the first node is associated with a mobile master node, the updated position of the mobile master node (which may be closer to the first node than previously determined) may be used to refine the position of the first node.
[0441] In a further embodiment, during the operation of method 3000, the first node may not be self-aware of its own location. In another embodiment, during the operation of method 3000, the first node may have previously been self-aware of the first node's location but may no longer be self-aware of the first node's location prior to broadcasting one or more first messages. More specifically, the first node may no longer be self-aware of the first node's location prior to broadcasting the first signal due to a change in the environment surrounding the first node. Such a change in the environment may, for example, occur when the first node moves inside a structure (e.g., a building, vehicle, aircraft, cargo container, etc.) that prevents the first node from receiving the location signal.
[0442] Those skilled in the art will appreciate that it is possible to configure the node (e.g. Figure 4 Method 3000 as disclosed and explained above in various embodiments is implemented on a master node 110a in the embodiment of the present invention, which runs one or more portions of the master control and management code 425 (e.g., location awareness / capture module) to control the ID node (such as Figure 14 Node F) as part of location determination via ID Node Advertisement. Such code may be stored on a non-transitory computer-readable medium, such as a memory storage device 415 on the master node 110a. Thus, when executing code 425, the master node's processing unit 400 may be operable to perform operations or steps according to the exemplary methods disclosed above, including method 3000 and variations thereof.
[0443] From a device perspective, an exemplary node device in a wireless node network using location determination by association may include a node processing unit, a node memory (e.g., a node volatile memory and a node memory storage device) coupled to and used by the node processing unit. The node memory storage device maintains at least a program code segment, association data, and location data. The node device further includes a first communication interface that provides a first communication path coupled to the node processing unit and operatively couples the node with a plurality of other nodes in the network. For example, in Figure 4 The master node 110 illustrated in FIG includes this type of operating structure.
[0444] The node processing unit (e.g., processing unit 400 of master node 110a) is operable to perform specific functions or steps when executing at least a program code segment residing in the node's volatile memory. In particular, the node processing unit is operable to transmit an instruction to a first one of the other nodes (e.g., an ID node or a master node temporarily acting as an ID node) via a first communication interface to cause the first other node to broadcast one or more first messages at a first power level, wherein the first power level is associated with a first expected range distance.
[0445] The first expected range distance can be an optimal range for the first of the nodes, and in more detail, an optimal range for the first of the nodes that is adjusted based on the context data. Even more specifically, the first expected range distance and the second expected range distance can be adjusted based on one or more types of context data related to how the RF output signal broadcast from the first node may be obstructed.
[0446] The node processing unit is further operable to identify which of the nodes associated with the first other node have known locations. To do so, the node processing unit may access and review association data stored on the node memory device (e.g., data indicating which nodes are passively or actively associated with the first other node), may determine which of the remaining other nodes are associated with the first other node based on the reviewed association data, and may identify which of the remaining other nodes determined to be associated with the first other node have known locations.
[0447] The node processing unit is also operable to determine which of the identified associated nodes receive at least one of the first messages, and to transmit another instruction to the first node via the first communication interface to cause the first node to broadcast one or more second messages at a second power level, wherein the second power level will be to a second expected range distance and incrementally less than the second power level.
[0448] Finally, the node processing unit is operable to determine which of the identified associated nodes received at least one of the second messages, and then determine that the position of the first node is at or between a first expected range distance and a second expected range distance from each of the identified associated nodes that did not receive at least one of the second messages but received at least one of the first messages.
[0449] In a further embodiment, the node processing unit may be operable to transmit a third instruction to the first node via the third communication interface to cause the first node to broadcast one or more third messages at a third power level. The third power level is associated with a third expected range distance and is an incrementally smaller range than the second expected range distance. Additionally, the node processing unit may then be operable to determine that the location of the first node is at or between the second expected range distance and the third expected range distance from each of the identified associated nodes that did not receive any of the third messages but received at least one of the second messages.
[0450] In yet another embodiment, the node processing unit can utilize a time interval between instructions sent to the first node to account for movement of the first node. In particular, the node processing unit can be further operable to transmit another instruction to the first node via the first communication interface within the time interval after instructing the first node to broadcast a first message to broadcast a second message. In a more detailed example, the time interval can be dynamically set based on context data associated with the first node. Even more specifically, the time interval can be programmatically decreased from a previous value when the context data associated with the first node indicates that the first node is moving (e.g., the first node is on a moving transport system), and / or the time value of the interval can be increased from a previous value when the context data associated with the first node indicates that the first node is substantially stationary (e.g., the node is within a node package that was recently placed in a storage area).
[0451] In a further embodiment, the node processing unit may be operable to refine the location of the first other node using the updated location of one or more of the identified associated nodes that did not receive at least one of the second messages but received at least one of the first messages, and cause a second communication interface (e.g., a medium / long range communication interface 485 coupled to the processing unit 400) to transmit the refined location to the server.
[0452] From the server's point of view, Figure 31 is a diagram illustrating yet another exemplary method for position determination using one or more associations of nodes in a wireless node network according to an embodiment of the present invention (with Figure 30 Those skilled in the art will appreciate that while the server is operable to implement the steps as shown in method 300 and discussed above, Figure 31Further details regarding how a server processing unit (such as processing unit 500 running server code 525) can implement such a method at this level of the network are provided via method 3100. In this more detailed embodiment, the server is communicating directly with a master node (e.g., a first node) to direct and control how the master node interacts with an ID node (e.g., a second node) and causes operations to be performed on the ID node (e.g., a second node). Thus, step 3105 is similar to step 3005, but more precisely requires communicating with the first node via a communication interface to cause a second node in the network to broadcast one or more first messages at a first power level upon request of the first node, wherein the first power level is associated with and corresponds to a first expected range distance. Similarly, step 3120 is similar to step 3020, but more precisely requires communicating with the first node via a communication interface to cause the second node to broadcast one or more second messages at a second expected range distance upon request of the first node, wherein the second power level is associated with and corresponds to the first expected range distance. The other steps of method 3100 are similar to those illustrated and explained above with respect to method 3000 , and similar principles will apply to method 3100 .
[0453] Those skilled in the art will appreciate that the server (e.g. Figure 5 Method 3100 as disclosed and explained above in various embodiments is implemented on a server 100 in the embodiment of the present invention, wherein the server runs one or more portions of the server control and management code 525 to direct the master node to control the ID node (such as Figure 14 Node F) as part of location determination via ID Node Advertisement. Such code may be stored on a non-transitory computer-readable medium, such as a memory storage device 515 on the server 100. Thus, when executing code 525, the processing unit 500 of the server may be operable to perform operations or steps according to the exemplary methods disclosed above, including method 3100 and variations thereof.
[0454] Similar to the node devices described above, one embodiment includes an exemplary server device in a wireless node network that utilizes location determination by association. The exemplary server device generally includes a server processing unit, server memory (e.g., server volatile memory and server memory storage) coupled to and used by the server processing unit. The server memory storage maintains at least program code segments, association data, and location data. The server device further includes a communication interface coupled to the server processing unit and providing access to a communication path that operably couples the server to at least a first node in the network.
[0455] The exemplary server processing unit is operable to perform specific functions or steps when executing at least program code segments residing in the server's volatile memory. Specifically, the server processing unit is operable to communicate with a first node via a communication interface to cause a second node in a network to broadcast one or more first messages at a first power level upon request of the first node, wherein the first power level is associated with a first expected range distance; identify which of the remaining nodes in the network associated with the second node have known locations; determine which of the identified associated nodes receive at least one of the first messages; communicate with the first node via the communication interface to cause the second node to broadcast one or more second messages at a second power level upon request of the first message, wherein the second power level is associated with a second expected range distance and is incrementally less than the first power level; determine which of the identified associated nodes receive at least one of the second messages; and determine that the location of the second node is at or between the first expected range distance and the second expected range distance from each of the identified associated nodes that did not receive any of the second messages but received at least one of the first messages. In further embodiments, the processing unit of the server device may be further operable to store the determined location in the server memory as part of the location data.
[0456] In another embodiment, the processing unit of the server device may be operable to communicate with the first node via the communication interface within a time interval after communicating with the first node to cause the second node to broadcast one or more first messages, causing the second node to broadcast one or more second messages. As previously mentioned, this type of time interval can be dynamically set based on context data associated with the second node. The context data can also be used as explained above with respect to the node device, but here applied to the second node - in this case, the first expected range distance is the optimal range for the second node adjusted based on the context data.
[0457] Determined by the announced master node location
[0458] In another example, the master node may no longer know its location. For example, such a situation may occur when the master node determines its current location via GPS positioning circuit 475 but the master node finds that it cannot access a sufficient number of GPS signals (e.g., it cannot determine its location due to a lack of GPS signals from a sufficient number of different GPS satellites). Such a situation may occur when a master node moving indoors approaches a structure that interferes with the positioning signal.
[0459] In an exemplary embodiment in which the master node attempts to determine its own location via an advertisement technique, the master node may detect a loss of location confidence (e.g., upon a detected loss of a GPS signal; upon detecting a separate signal to the processing unit 400 indicating that the master node's location is unknown; when the processing unit 400 senses movement (e.g., via an accelerometer (not shown), etc.) but cannot confirm that the positioning circuitry 475 is providing updated location information for the node, etc.). In other words, the master node perceives that it no longer has a known location.
[0460] Next, the master node Figure 14 In a similar manner as described above, ID Node F 920f begins broadcasting one or more notification messages in response. This is accomplished so that a master node with an unknown location can advantageously utilize the known locations of other nearby nodes. In this way, embodiments can allow for the type of chain effect that can be utilized, whereby the known location of a particular type of node can be used to extend location information to other nodes that do not know their location (e.g., ID nodes) or nodes that have detected a loss of location confidence (e.g., master nodes). Therefore, such embodiments can be used to determine the indoor location of a master node (including equipment equipped with master node functionality) in situations where conventional onboard positioning circuitry 475 is unavailable.
[0461] Reference is made to the exemplary method 3000 and Figure 30 , method 3000 can cause the first node to not self-aware of the first node's location. This can occur when the first node (e.g., an ID node) is actually a master node that previously self-aware of its own location (e.g., via received GPS signals) but no longer self-aware of its location (e.g., when the GPS signals can no longer be received), which causes the master node to change operation to function as an ID node prior to broadcasting the first message. In other words, because of changes in the environment surrounding the master node, such as when the master node has moved inside a structure that prevents positioning signals from being received by the master node, the master node may no longer self-aware of its location and begin to function as an ID node for the purpose of position determination prior to broadcasting the first message. Therefore, embodiments can advantageously allow a node to adaptively change operation when moving from a clear outdoor environment to an indoor environment. And when such a master node temporarily functions as an ID node for positioning purposes, the server can interact with the master node.
[0462] Positioning using improved RSSI measurement
[0463] In another embodiment, signal strength measurements between two or more nodes can be used to determine the proximity of the nodes using one or more improvements to conventional RSSI measurements. In conventional RSSI measurements such as Bluetooth 4.0, those skilled in the art will appreciate that adaptive frequency hopping as part of spread spectrum technology may undesirably cause signal strength to fluctuate. In other words, the advantages of using frequency hopping and spread spectrum for security and interference avoidance may have a negative impact on using such signals for stable proximity-based location determination. Therefore, it may be desirable to emphasize signal stability and limiting fluctuations for the purpose of location determination.
[0464] In one embodiment, the type of improvement used for RSSI measurement can include reducing the number of channels and / or corresponding frequency ranges used during advertisements from the node. For example, the node can cause the processing unit 300 / 400 to adaptively control the variable power short-range communication interface 374 / 480 to reduce the number of channels and / or frequency ranges used during the node's advertisements. In certain embodiments, such dynamic changes can be achieved by changing the content of a specific type of profile data 330 / 430, such as RF profile data that effectively defines the node's RF characteristics (e.g., frequency, power level, duty cycle, number of channels, channel spacing, alternative fluctuation patterns, etc.). In a further embodiment, a first fluctuation pattern can be defined that provides a default or more standard communication protocol, such as conventional frequency hopping, spread spectrum, and channel allocation for Bluetooth® communication. Other alternative patterns (one or more) can be defined that change one or more RF characteristics to provide an increasingly more stable and less fluctuating RF output signal from the node. Thus, a node may be dynamically placed in one or more modes with respect to RF characteristics that increasingly emphasize stability of the node's RF output signal and limit fluctuations for the purpose of enhanced position determination using RSSI measurements.
[0465] In another embodiment, one type of improvement for RSSI measurement can include ensuring visibility into and advantageously managing (not shown) automatic gain control (AGC) circuitry, which can cause the RF output signal to vary for a node. For example, a node can include a type of AGC circuitry as part of the variable power short-range communication interface 375 / 480. This type of AGC circuitry can allow the node processing unit 300 / 400 or other logic circuitry as part of the variable power short-range communication interface 375 / 480 to limit fluctuations under certain conditions (e.g., when attempting to use RSSI location determination techniques). In this example, different AGC circuit settings can be defined in exemplary RF profile data that effectively defines the node's RF characteristics (e.g., frequency, power level, duty cycle, number of channels, channel spacing, alternative fluctuation patterns, etc.). This is yet another example of how a node can be dynamically placed into one or more modes with respect to such RF characteristics (including AGC circuit settings) that increasingly emphasize stability and limiting fluctuations in the node's RF output signal for the purpose of enhanced location determination using RSSI measurements.
[0466] Positioning using adjustments for environmental factors in RF signal quality
[0467] Generally, those skilled in the art will appreciate that environmental factors can cause communication signals, such as RF signals, to fluctuate or be transmitted and received in a manner that varies undesirably depending on the signal path environment. Passive physical interference factors (e.g., in the form of electronic signal shielding) can be substantially close and cause a drop in signal strength across the output range of a node. Additionally, active radio interference factors can vary across the RF output range of a node, depending on other active devices in the receiving vicinity. Thus, a node's immediate environment can have many adverse factors that affect communication and, therefore, the ability to locate the node.
[0468] In one embodiment, location determination can be enhanced through a data profiling approach that adjusts for and accounts for different RF environmental factors for similar nodes in similar situations. For example, the quality of the RF output signal of a particular type of node and the corresponding physical range of that signal to a receiver of known sensitivity can be determined for a given environment. In this example, the system defines the maximum range of that signal based on predetermined conditions, such as outdoor connectivity. This assumes an environment free of signal degradation due to interference or physical shielding. However, both interference and physical shielding can reduce the range of a node's RF output signal. In a dynamically adaptive and learning manner, the system can gather information about how a particular type of node performs in a particular environment under certain settings (e.g., signal strength reported for RF output signal power level and corresponding settings). This analysis can be repeated for similar environments. In other words, through such data analysis of the expected environments that similar nodes will encounter, signal loss information can be generated and used as a type of contextual data (i.e., RF data) for nodes in similar environments to refine location determination. Thus, exemplary embodiments may utilize adaptive signal loss characteristics to refine position determination without requiring a calibration phase using contextual understanding based on the expected environment (e.g., physical shielding such as packaging that causes signal changes, package contents, nearby packages, nearby package contents, and physical infrastructure).
[0469] And advantageously combining those data points with third-party data describing the physical environment in which the node was located at that moment can even further refine the location. In future efforts, such information can be used as RF data (a type of contextual data) to manage and locate similar types of nodes expected in similar environments.
[0470] More specifically, in embodiments that refine location determination based on context and data analysis to adjust for known RF obstacles, the maximum physical range of the node's RF output signal relative to a receiver of known RF sensitivity is determined. In one example, this first range value can be referred to as the theoretical or nominal outdoor range of a similar type of transmitter-receiver node pair in a similar environment, but substantially free of physical shielding or signal interference that negatively impacts signal range. A second range value, which can be considered an actual RF range value, can be the observed range of the signal in a similar environment, but where contextual factors exist that reduce communication range, including physical shielding due to factors such as packaging, package contents, nearby packages, nearby package contents, physical infrastructure, interference from other radio sources, or shipper-specific information such as vehicle or facility layout information. By accessing prior data analysis of different range values and leveraging knowledge of the transmitting node's operating environment (e.g., an environment similar to the node's immediate environment), a refined location can be determined using intelligent adjustments to approximate what might be expected to be the actual RF output range of the node's RF environment. In other words, by knowing the appropriate contextual environment associated with a node (such as signal degradation information about how similar nodes operate in similar environments), improved location determination can be made to make intelligent and efficient adjustments (such as communication distance adjustments), which provides a refined location of the node.
[0471] In one example, in a Figure 2 In the example shown, master node 110b is located outside a cargo container (such as a group uniform load device (ULD) cargo container 210, known for transporting items on aircraft) with an ID node inside. When a package (and associated ID node) is known to be less than 10 feet from a scanning node (e.g., master node 110b), a first or theoretical range value between master node 110b and ID node 120b at a particular RF output power level may be determined to be 10 feet. A second range value at a similar distance from a similar type of node, but with associated RF signal loss as a result of communicating through the walls of cargo container 210, may be between 4 and 5 feet. If contextual data, such as third-party information or scanning data, indicates that a transmitting node is within ULD cargo container 210, the system may wish to limit the transmission range based on data analysis associated with this known RF obstruction (e.g., characteristics of transmissions through ULD cargo container 210), thereby reducing the likelihood that scanning nodes will see the broadcasting node within the ULD cargo container, or requiring the transmitting node to increase its RF output power to be heard.
[0472] Figure 32is a flow chart illustrating an exemplary method for position determination of a first node in a wireless node network based on context data according to an embodiment of the present invention. Figure 32 , method 3200 begins at step 3205 with a network device (such as a master node or a server) accessing a first type of context data related to a proximity environment of a first node.
[0473] The first type of contextual data includes signal degradation information about how the second node will operate in an environment similar to the first node's proximity environment when the second node is of a similar type to the first node. Thus, rather than calibrating using actual measurements relative to the first node's current proximity environment, the signal degradation information provides compensation information about what can generally be expected in a more general proximity environment based on how nodes of similar types can operate in similar environments. Since the similar environment of a similar node is generally an approximation of what is expected to be the first node's proximity environment, this advantageously avoids the need for actual calibration of the approximate environment. In one embodiment, the signal degradation information can be based on the difference in how the second node communicates when exposed to an adverse communication environment (such as an environment similar to the first node's proximity environment) compared to how the second node will communicate when exposed to a nominal communication environment (such as an environment unhindered by shielding and interference factors). Those skilled in the art will appreciate that the nominal communication environment does not need to be perfectly clear of all effects of shielding or interfering communications.
[0474] The type and aspect of the signal degradation information may vary depending on a variety of factors. In one embodiment, the signal degradation information may be related to at least one of shielding and interference. Thus, the signal degradation information may include both passive and active factors that affect the communication environment.
[0475] In another embodiment, the signal degradation environment may be based on degrading operation of the second node when the similar environment is an adverse communication environment. More specifically, the signal degradation message may be based on a difference in how the second node communicates when exposed to an adverse communication environment compared to how the second node communicates when exposed to a substantially nominal communication environment, such as an outdoor environment.
[0476] In yet another embodiment, the signal degradation information may relate at least to shipping data for one or more items that are shipped (e.g., currently being shipped or have been shipped in the past) and are located in the proximity of the first node. For example, a package near the first node may include metal materials that may obstruct or block RF signals, and the signal degradation information may relate to such information about the enclosed package shipped near the first node. In another example, the signal degradation information may relate at least to layout data for one or more physical structures in the proximity of the first node. More specifically, the layout data may relate to one or more physical structures (e.g., walls, machines, shells, and vehicles) in the proximity of a node in the predicted path of the first node. In yet another example, the signal degradation information may relate at least to historical data regarding prior operations of one or more analyses of the second node.
[0477] At step 3210, a network device, such as a master node or server, may adjust an expected communication distance associated with a first node based on the first type of contextual data. In one example, the expected communication distance may be a theoretical broadcast distance based on parameters of a radio of the device. Such an expected communication distance is known because it is an estimate of the range of the radio. In one example, the adjusted communication distance includes an expected reduced range distance for transmissions from the first node. In another example, the adjusted communication distance includes an expected reduced receiver sensitivity distance for the first node.
[0478] In yet another example, adjusting the communication distance may be accomplished by the network device adaptively adjusting the communication distance based on the signal degradation information and the second type of context data. In other words, the communication distance may be adjusted based on the signal degradation information considered in conjunction with other types of context data, such as how the first node is moving (such as the expected movement of the first node along a predicted delivery path for the first node) or the density of other nodes in close proximity to the first node.
[0479] At step 3215, the network device determines the location of the first node based on the adjusted communication distance. In further embodiments, the method may also update the adjusted communication distance by the network device based on movement of the first node, and may utilize the updated adjusted communication distance to refine the location of the first node. This may occur if the first node is a mobile master node capable of self-determining its own location.
[0480] Those skilled in the art will appreciate that the method 3200 as disclosed and explained above in various embodiments may be implemented in a network device (e.g., a network device) that executes one or more portions of the corresponding control and management code of the network device to perform the steps of the method 3200 as described above. Figure 4 An exemplary master node 110a or Figure 5 Such code may be implemented on a server 110 in the master node 110a). Such code may be stored on a non-transitory computer-readable medium, such as the memory storage device 415 on the master node 110a or the memory storage device 515 on the server 100. Therefore, when such code is executed, the processing unit of the corresponding network device may be operable to perform operations or steps according to the exemplary methods disclosed above, including method 3200 and variations thereof.
[0481] In more detail, an exemplary network device is provided for determining a location of a first node in a network of wireless nodes based on contextual data. The exemplary network device may include a processing unit, a volatile memory coupled to the processing unit, and a memory storage device coupled to the processing unit. The exemplary network device further includes a communication interface coupled to the processing unit and providing a communication path operatively coupling the network device with the first node in the network.
[0482] The memory storage device of the device maintains at least the program code segment and context data including at least signal degradation information. Such signal degradation information as a type of context data is information about how the second node will operate in an environment similar to the proximity environment of the first node when the second node is of a similar type to the first node. Examples of signal degradation information may include those discussed above with respect to step 3205 of method 3200.
[0483] When executing at least the program code segments when resident in the volatile memory, the processing unit of the network device may be operable to perform the steps mentioned and described above with respect to method 3200. In more detail, the processing unit may be operable to at least connect to the memory storage device to access the signal degradation information, adjust the communication distance associated with the first node based on the signal degradation information (if necessary), determine the location of the first node based on the adjusted communication distance, and store the determined location of the first node as location data on the memory storage device.
[0484] The processing unit's adjustment of the communication distance may be accomplished as described above with respect to step 3120 of method 3200. And as mentioned above, the processing unit may be further operable to adaptively adjust the communication distance while also taking into account other types of contextual data, such as movement and expected node movement as detailed above.
[0485] In a further embodiment, the network device may include a positioning circuit (such as Figure 410a) is a mobile master node (e.g., GPS circuitry 475 of exemplary master node 110a shown in FIG. In this embodiment, the processing of the network device may be further operable to determine the location of the network device based on an output signal received by the processing unit from the positioning circuitry, and to determine the location of the first node based on the adjusted communication distance and the location of the network device. Thus, the first type of contextual data associated with the proximity of the first node is based on the determined location of the first node.
[0486] Those skilled in the art will appreciate that, in one embodiment, signal degradation information may not require adjustment of the communication distance in certain operating environments. However, in other environments (e.g., adverse RF environments), signal degradation information may provide a basis for adjusting the communication distance in embodiments, even if not always performed. Thus, adjustment of the communication distance may not be required in all proximity environments of the first node but can be performed based on the proximity environment of the first node, if necessary. The ability of embodiments to adjust the communication distance when and if necessary advantageously allows for more accurate positioning of the first node.
[0487] Positioning through triangulation
[0488] In some embodiments, various methods for determining the location of a node may rely, at least in part, on triangulation techniques. In other words, as a network of wireless nodes collects data about receiver-transmitter pairs, other methods for determining the location of individual nodes utilizing triangulation may be made possible, at least in part. Figure 15 is a diagram illustrating exemplary position determination by triangulation within a network of wireless nodes according to an embodiment of the present invention. Figure 15 In the illustrated embodiment, three exemplary master nodes M1-M3 910a-910c are shown, each of which has a known location. Exemplary ID nodes AE 920a-920e are also shown, where they are at least within the communication range of one or more of the exemplary master nodes MA-M3 910a-910c.
[0489] In the illustrated example, master nodes M1-M3 can detect and collect announcement messages from ID nodes AE at varying and known power levels. The captured information is forwarded by master nodes M1-M3 to backend server 100, where a location determination can be made. For example, if sufficient information is available, factors such as visibility and RSSI of each node at each power level can be used to determine the node's location with a high degree of accuracy.
[0490] For an exemplary system of triangulating nodes, three nodes with known locations must have seen the broadcasting node. In this example, two advertising ID nodes, A 920a and B 920b, were seen by three nodes with known locations (master nodes M1-M3 910a-910c). The locations of ID nodes A 920a and B 920b are calculated based on the captured information.
[0491] Chain triangulation
[0492] In another embodiment, a node with an inferred location may be used with triangulation techniques to determine the location of another node in a network of wireless nodes. Figure 16 is a diagram illustrating an exemplary position determination by chain triangulation according to an embodiment of the present invention. The positions of ID nodes A 920a and B 920b have been determined by triangulation across master nodes M1-M3, as shown in Figure 15 However, as shown in the exemplary embodiment shown in Figure 16 As shown in the figure, the position of ID node C 920c can also be determined according to the embodiment.
[0493] For example, an exemplary method of determining the location of a node by chain triangulation is used to determine the calculated location of ID node B 920b (as referenced in FIG. Figure 15 920c). Next, a node that is closer to ID Node B 920b can be used to obtain the missed third signal point required for triangulation. This can be accomplished by placing ID Node B 920b in inquiry (scanning) mode so that it listens for messages from ID Node C 920c. ID Node C is instructed to advertise, thereby providing a signal that can be captured by ID Node B. After capturing C's signal profile, ID Node B can transmit or share the captured information and forward it along to the backend server 100 through either of the master nodes M1 or M2. The resulting position determination of ID Node C 920c may have a higher level of positioning error due to the fact that ID Node C 920c is based in part on a calculated reference (e.g., the position of ID Node B), but the utilized position determination of ID Node C 920c may be sufficiently accurate (or an actionable position) that useful information about ID Node C 920c can be gathered. For example, the utilized or chained location determination of ID node C can indicate with the help of context data that nodes M1, M2 and ID node B are all close enough to ID node C, and ID node C is determined to be within the same container nodes M1, M2 and ID node B.
[0494] Positioning via Proximity to Triangulation (LP2T)
[0495] In embodiments where chained triangulation may determine position by proximity-to-triangulation (LP2T), the starting point may be to determine the relative position of the ID node to the master node based on a proximity approach, as explained above. However, when the relative position of the ID node has been determined, a more accurate or refined position of the ID node may be determined based on the positions of all master nodes that may capture the RF output signal broadcast from the ID node, and then triangulated based on the observed signal strength of the ID node. In this example, proximity-based positioning is used as an input in the triangulation calculation to estimate the likely signal degradation that has been historically observed between the node at the proximity-determined position and the scanning master node. In further embodiments, more accurate triangulation may be possible by taking into account historical data regarding patterns of signal degradation, resulting in a more accurate position determination.
[0496] Figure 33 The present invention is a flowchart illustrating an exemplary method for determining a node position using chained triangulation for one of a plurality of nodes in a wireless node network having a server according to an embodiment of the present invention. Such exemplary node positioning need not be precise or exact, but can be sufficiently accurate without being absolute.
[0497] Now refer to Figure 33 , method 3300 begins at step 3305 with the server receiving the location of the first of the nodes from the first node. Next, at step 3310, the server receives the location of the second of the nodes from the second node. For example, referring to Figure 16 In the example shown in , master nodes M1 910a and M2 910b may transmit their respective position coordinates from their respective onboard positioning circuits to the server so that the server has the current positions of the two master nodes.
[0498] At step 3315, the server infers the location of the third of the nodes. For example, Figure 16 In the example illustrated in , the server can infer the location of ID node B 920b. In one embodiment, the inference can include causing the server to determine a proximity-based location of a third node relative to another of the nodes with known locations, such that the proximity-based location serves as the inferred location of the third node.
[0499] In another embodiment, inferring the location of the third node may include causing the server to determine a relative location of the third node to the first node (as a node with a known location) or to the second node (as another node with a known location). In another embodiment, method 3300 may further include causing the server to adjust the inferred location of the third node to determine a refined location of the third node based on third node context data associated with the inferred location of the third node.
[0500] At step 3320, method 3300 triangulates, with the server, the location of the one node based on the determined distance to each of the first and second nodes and the determined distance of the one node to the inferred location of the third node.
[0501] In a more detailed embodiment, method 3300 can triangulate the location of a node by accessing first node context data associated with a context environment near the first node and second node context data associated with a context environment near the second node. Such a context environment can include an environment on a transport system or within a particular facility or adjacent to materials that can degrade or shield a signal received by a node. Next, the more detailed triangulation can enable the server to adjust the determined distance of a node to the location of the first node based on the first node context data to provide a refined distance of a node to the location of the first node. The server can then triangulate the location of a node based on the adjusted determined distance of a node to the location of the first node, the adjusted determined distance of a node to the location of the second node, and the determined distance of a node to the refined location of a third node.
[0502] In a further embodiment, method 3300 may further cause the server to transmit instructions, thereby causing the server to transmit instructions to cause a node to broadcast multiple announcement signals over a time period. In such an embodiment, a node's determined distance from a first node's location may be based on signals captured by the first node from a node and reported to the server by the first node over a time period. In another embodiment, a node's determined distance from a second node's location may be based on signals captured by the second node from a node and reported to the server by the second node.
[0503] In yet another embodiment, the server may transmit instructions to cause a node to broadcast multiple announcement signals at different power levels. In such an embodiment, a node's determined distance to a first node's location may be based on a signal captured by the first node from a node and reported by the first node to the server. In another embodiment, a node's determined distance to a second node's location may be based on a signal captured by the second node from a node and reported by the second node to the server.
[0504] In yet another embodiment, method 3300 may further enable the server to transmit location information to a requesting entity (eg, another node, a user access device, etc.) upon receipt of a request for the location of a node from the entity.
[0505] Those skilled in the art will appreciate that method 3300, as disclosed and explained above in various embodiments, may be implemented on a server (such as in Figure 5 The code may be implemented on the exemplary server 100 illustrated in FIG. 3 to implement any of the functions described above. Such code may be stored on a non-transitory computer-readable medium, such as memory storage device 515 on the exemplary server. Thus, when such code is executed, a processing unit of the server (such as unit 500) may be operable to perform operations or steps according to the exemplary methods disclosed above, including method 3300 and variations thereof.
[0506] Also described in an embodiment is a server device for determining a location using chain triangulation for one of a plurality of nodes in a wireless node network. The server device generally includes a server processing unit, a server volatile memory, a server memory storage device, and a communication interface. Each of the server volatile memory, the server memory storage device, and the communication interface is configured in the device to be coupled to the server processing unit. The server memory storage device maintains at least a program code segment and location data associated with a node in the network. In some embodiments, the server memory storage device may also maintain context data, such as first node context data and second node context data. The communication interface provides a communication path that operably couples the server with a node in the network, such as a first and second node.
[0507] The server processing unit is operable to perform various functions, such as the functions described above in the steps associated with method 3000, when executing at least the program code segments residing in the server's volatile memory. In particular, the server processing unit is operable to receive a request for the location of a node via a communication interface. Based on the request, the server processing unit is then operable to receive the respective locations of the first and second nodes and store the locations as part of the location data maintained on the server's memory storage device. The server processing unit is further operable to infer the location of a third of the nodes and store the inferred location of the third node as part of the location data maintained on the server's memory storage device. The server processing unit is then operable to triangulate the location of the node based on a determined distance from the node to the location of the first node, a determined distance from the node to the location of the second node, and a determined distance from the node to the inferred location of the third node. And finally, the server processing unit is operable to transmit the location information to the requesting entity via the communication interface in response to the request.
[0508] In one embodiment, the server processing unit may be further operable to infer the location of a third one of the nodes by being operable to determine a proximity-based location of the third node relative to another one of the nodes having a known location, wherein the proximity-based location serves as the inferred location of the third node.
[0509] In another embodiment, the server processing unit may be further operable to transmit instructions via the communication interface to cause a node to broadcast multiple announcement signals over a time period. In this embodiment, the distance determined by a node to the location of a first node may be based on signals captured by the first node from a node and reported by the first node to the server over a time period. Alternatively, the distance determined by a node to the location of a second node may be based on signals captured by the second node from a node and reported by the second node to the server.
[0510] In another embodiment, the server processing unit may be further operable to transmit instructions via the communication interface to cause a node to broadcast multiple announcement signals at different power levels. In such an embodiment, a node's determined distance to a first node's location may be based on a signal captured by the first node from a node and reported to the server by the first node. Alternatively, a node's determined distance to a second node's location may be based on a signal captured by the second node from a node and reported to the server by the second node.
[0511] In yet another embodiment, the server processing unit may be further operable to infer the position of the third node by being operable to determine the relative position of the third node to the first node, or alternatively to the second node.
[0512] In yet another embodiment, the refined position may rely on contextual data. More specifically, the server processing unit may be further operable to adjust the inferred position of the third node to determine the refined position of the third node based on third node contextual data associated with the inferred position of the third node.
[0513] In a more detailed embodiment, the server memory storage device may further maintain context data, and the server processing unit may be further operable to triangulate by being operable to access first node context data, the first node context data being part of the context data maintained on the server memory storage device, wherein the first node context data is associated with a context environment proximate to the first node. Similarly, the server processing unit may be further operable to access second node context data being part of the context data maintained on the server memory storage device, wherein the second node context data is associated with a context environment proximate to the second node. The server processing unit may then be operable to adjust a determined distance of a node to the position of the first node based on the first node context data to provide a refined distance of a node to the position of the first node. In this way, the server processing unit may be operable to triangulate the position of the one node based on the adjusted determined distance of the node to the position of the first node, the adjusted determined distance of the node to the position of the second node, and the determined distance of the node to the refined position of the third node.
[0514] Combined method for determining node positions
[0515] Based on the examples explained above for locating nodes, those skilled in the art will appreciate that further embodiments expressly contemplate the use of more than one of the location determination technologies described above when determining a refined location of a node in a wireless node network. For example, such a combined embodiment may apply an ordered or prioritized approach whereby a first positioning technology is applied to generate first location information about the location of a node in a wireless network. Thereafter, a second positioning technology may be selected from a hierarchy or prioritized set of technologies (some of which may work better in certain circumstances and are selected or dynamically prioritized based on context) and applied to generate second location information about the location of a node or a refined location of a node. Other embodiments may apply additional positioning technologies to generate further refined location information.
[0516] In an embodiment, the information in the exemplary hierarchy generally identifies which technology may be preferred to be used initially and may be a hierarchical grouping or list of when other positioning technologies are applied. Such information in the exemplary hierarchy may be fixed (based on historical data and experience of success) or may change dynamically over time as nodes may move relative to each other and, for example, based on contextual data that provides more information relative to the current or expected context.
[0517] Applying node position determination in a vehicle environment
[0518] The various exemplary methods and techniques described above for determining the location of a node provide advantageous ways to locate a node. However, further embodiments may advantageously apply such methods and techniques in a vehicular environment when handling logistics operations in which a node is to be located in a vehicle, moved within a vehicle, or removed from a vehicle for delivery.
[0519] Basically, embodiments may use packages that utilize node-enabled packages (generally referred to as node packages or node-enabled packages) to ship one or more items and such node packages can be advantageously placed, positioned, moved, or removed for delivery in a vehicle / transportation / shipping / logistics environment. As explained throughout this specification, a node package is generally a package that is associated with a particular node and is to be shipped. The node and the associated package travel together as part of the shipping process. In a general embodiment, the node may be solely within the package. In another embodiment, the node may be attached to the package (e.g., adhered to an interior portion of the package, affixed to a portion of the package where one or more status indicators of the node are visible through the package, etc.). In another embodiment, the node of the node package may be a portion of packaging material or a package that is used to include exterior, interior, or separation / cushioning material within the node package. In more detail, the node may be integrated as part of a package or packaging material (e.g., integrated as part of a pallet, ULD container, corrugated fiberboard box, etc.). In yet another detailed embodiment, the nodes of the node wrap can be fully or partially embedded within a wrapping or packaging material used to help form a general container that holds the items to be shipped along with the nodes. As explained herein, Figure 75A 、 75B , 76-78 provide various illustrations of different exemplary node-enabled packaging materials that may be used as part of a node package.
[0520] Figure 93 is a diagram illustrating an exemplary node packing in an exemplary vehicle environment according to an embodiment of the present invention. Figure 93Exemplary vehicle 9300 is illustrated as an example of a general mobile logistics transporter or vehicle carrying shipped packages. Those skilled in the art will appreciate that vehicle 9300 can be implemented as various types of logistics transport vehicles (e.g., a car, a delivery van, an autonomous vehicle, a car, a trailer, a train, an aircraft, a sea vessel (ship), etc.). Within exemplary vehicle 9300, packages can be placed, stored, and organized within various storage devices or units, such as storage unit A 9305 or storage unit B 9310. Generally, storage devices or units facilitate holding one or more packages in a configuration that helps ensure shipping savings, minimizes damage to the packages, and provides a means of organizing the stored items. Different embodiments of storage units can store a single package or a large number of different types of packages using different types of packaging materials (e.g., corrugated fiberboard boxes, wooden and non-wooden pallets, containers, etc.).
[0521] Vehicle 9300 includes a vehicle master node 9315 - an exemplary implementation of a master node, such as Figure 4 Master node 110a is shown and described. Vehicle master node 9315 is shown operable to communicate with server 100 via a long-range communication interface (such as interface 485 on exemplary master node 110a) and is operable to communicate with other nodes, such as master node 9320 associated with storage unit A 9305, master node 9325 associated with storage unit B 9310, and other nodes associated with such storage units and portions of the node packages stored within the storage units. In more detail, in some embodiments, each storage unit may include a built-in node associated with a particular shelf, locker, container, or other portion of the particular storage unit.
[0522] Thus, an exemplary storage unit (such as storage unit A 9305) can be a node-enabled storage unit that is used within a logistics vehicle to securely and intelligently transport nodal packages. As such, the exemplary storage unit itself can have a hierarchy of nodes (e.g., a master node, and one or more other nodes (ID nodes or other master nodes) assigned to different parts of the unit) and be operable to detect the location of a particular nodal package via the various location determination methods discussed herein when the nodal package is placed in a storage location within the unit, moved between storage locations within the unit or between different units, or simply removed from a storage location within the unit.
[0523] As in Figure 93As shown in FIG, various node packages 9330a-9330d can be held in different storage locations of storage unit A 9305 within vehicle 9300. Similarly, other node packages 9330e-9330g can be held in a portion of storage unit B 9310. Node packages can be placed in specific storage locations based on shipping information associated with such node packages. For example, node packages can be placed in specific storage locations based on the weight of a specific node package, a planned loading scheme (such as based on an expected delivery schedule), based on the storage capacity of specific different locations within the storage unit, or based on the storage type for specific different locations (e.g., one location for storing package-type packages, another location for storing box-type packages, another location for storing containerized packages (e.g., ULDs), etc.).
[0524] Shipping of containerized groups of packages (e.g., ULD-type containers manufactured to optimize air freight logistics handling of packages) is an example of where mobile storage units (such as mobile unit load devices (ULDs)) can be deployed when shipping node packages in an air freight environment. Figure 94 is a diagram illustrating an exemplary mobile storage unit, such as a ULD, used as a container to facilitate shipping node packages in an exemplary air freight environment, according to an embodiment of the present invention. Figure 94 , illustrates a cutaway perspective view of an exemplary aircraft fus...
Claims
1. A method for adjusting broadcast settings of a mobile first node in a wireless node network, the wireless node network having a master node and a server, the method comprising: detecting, by the master node, an announcement signal broadcast from the first node when the first node is proximate to the location of the master node; The master node establishes an active association with the first node; determining, by the master node, an updated value of a broadcast setting for a first node that broadcasts an announcement signal; as well as Before the first node reaches the location of the master node, the master node adjusts the broadcast setting of the first node from the current value to the updated value; Wherein the first node, which is a lower level node, relies on shorter distance communication with the master node, which is a higher level node. 2 . The method of claim 1 , wherein the active association reflects a secure connection between the master node and the first node.
3. The method of claim 1 , wherein the broadcast setting of the first node comprises an RF transmission output power level setting for a signal broadcast by the first node as a future announcement signal.
4. The method of claim 1, wherein the broadcast setting of the first node comprises a setting of an RF carrier signal frequency of a signal broadcast by the first node as a future announcement signal.
5. The method of claim 1, wherein the broadcast settings of the first node include timing settings for a signal broadcast by the first node as a future announcement signal. The method of claim 1 , wherein the updated value comprises a predetermined value associated with a structure, the structure being associated with the master node.
7. The method of claim 6, wherein the updated value further comprises a default broadcast value associated with an interior of a structure, the structure being a shipping container associated with the master node.
8. The method according to claim 1, wherein the first node is an ID node, which can communicate directly with the master node but cannot communicate directly with the server.
9. The method of claim 1, wherein the step of adjusting the broadcast settings of the first node further comprises modifying a broadcast profile of the first node, wherein the broadcast profile defines broadcast settings used by the first node when communicating with the master node.
10. The method of claim 1, wherein the determining step comprises receiving an updated value from a server.
11. A non-transitory computer-readable medium containing instructions that, when executed on a processor, perform a method for adjusting broadcast settings of a mobile first node in a wireless node network having a master node and a server, the method comprising: detecting, by the master node, an announcement signal broadcast from the first node when the first node is proximate to the location of the master node; The master node establishes an active association with the first node; determining, by the master node, an updated value of a broadcast setting for a first node that broadcasts an announcement signal; as well as Before the first node reaches the location of the master node, the master node adjusts the broadcast setting of the first node from the current value to the updated value; Wherein the first node, which is a lower level node, relies on shorter distance communication with the master node, which is a higher level node.
12. The non-transitory computer-readable medium of claim 11, wherein the active association reflects a secure connection between the master node and the first node.
13. The non-transitory computer-readable medium of claim 11, wherein the broadcast setting of the first node comprises an RF transmission output power level setting for signals broadcast by the first node as future announcement signals.
14. The non-transitory computer-readable medium of claim 11, wherein the broadcast settings of the first node include RF carrier signal frequency settings for signals broadcast by the first node as future announcement signals.
15. The non-transitory computer-readable medium of claim 11, wherein the broadcast settings of the first node include timing settings for a signal broadcast by the first node as a future announcement signal.
16. The non-transitory computer-readable medium of claim 11, wherein the updated value comprises a predetermined value associated with a structure, the structure being associated with the master node.
17. The non-transitory computer-readable medium of claim 16, wherein the updated value further comprises a default broadcast value associated with an interior of a structure, the structure being a shipping container associated with the master node.
18. The non-transitory computer-readable medium of claim 11, wherein the first node is an ID node that is capable of communicating directly with the master node but not directly with the server.
19. The non-transitory computer-readable medium of claim 11, wherein the step of adjusting the broadcast settings of the first node further comprises modifying a broadcast profile of the first node, wherein the broadcast profile defines broadcast settings used by the first node when communicating with the master node.
20. The non-transitory computer-readable medium of claim 11, wherein the determining step comprises receiving an updated value from a server.
21. A master node for adjusting broadcast settings of a mobile first node in a wireless node network, the master node comprising: processing unit; a memory coupled to the processing unit, the memory maintaining code for execution by the processing unit and an updated value of the broadcast setting for the first node; a first communication interface coupled to the processing unit and operable to communicate with a first node in the network; a second communication interface coupled to the processing unit and operable to communicate with a server in the network; and The processing unit is operable to execute the code stored in the memory. detecting, when the first node is proximate to the location of the master node, that the first communication interface receives a notification signal broadcast from the first node; establishing an active association with the first node and storing association data on a memory to reflect the active association between the master node and the first node; Accessing updated values from memory, and transmitting a message to the first node via the first communication interface before the first node reaches the location of the master node, the message instructing the first node to adjust a current value of the first node's broadcast setting to the updated value; Wherein the first node, which is a lower level node, relies on shorter distance communication with the master node, which is a higher level node.
22. The master node of claim 21, wherein the broadcast setting of the first node comprises an RF transmission output power level setting for signals broadcast by the first node as future announcement signals.
23. The master node of claim 21, wherein the broadcast settings of the first node include RF carrier signal frequency settings for signals broadcast by the first node as future announcement signals.
24. The master node of claim 21, wherein the broadcast settings of the first node include timing settings for a signal broadcast by the first node as a future announcement signal.
25. The master node of claim 21, wherein the updated value comprises a predetermined value related to a structure, the structure being associated with the master node.
26. The master node of claim 25, wherein the updated value further comprises a default broadcast value associated with an interior of a structure, the structure being a shipping container associated with the master node.
27. The master node according to claim 21, wherein the first node is an ID node, which is operable to communicate directly with the master node through the first communication interface but cannot communicate directly with the server.
28. The master node of claim 21, wherein the processing unit is further operable to receive an update value from a server via the second communication interface.
29. The master node of claim 21 , wherein the processing unit is further operable to modify a broadcast profile of the first node, wherein the broadcast profile defines broadcast settings used by the first node when communicating with the master node; and Wherein the processing unit is further operable to transmit a message by being operable to transmit information to the first node via the first communication interface, wherein the transmitted information reflects the modified broadcast profile.
Citation Information
Patent Citations
System and method for management of wireless devices aboard an aircraft
US9095001B2
Managing discovery in a wireless peer-to-peer network
US20090287827A1
Securing, monitoring and tracking shipping containers
US20090322510A1