Abstract:
A network node for a lighting network, the node is at least one of: a light sensor; a motion sensor; lighting means; a control device; or an operating device for the lighting means; and includes means for measuring the signal quality or signal strength of the wireless connection to all wirelessly connected further nodes, storage means configured to store connection information e.g. based on the signal quality or signal strength together with an identifier for the associated wirelessly connected further node(s), and means for wirelessly forwarding the connection information to another node, wherein the network node is configured to receive at least one test pattern and/or to re-send the test pattern, the test pattern including the network node&#39;s identifier, e.g. the MAC address.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. patent application Ser. No. 14/239,370, filed Jun. 6, 2014, which is a 371 National Stage Entry of PCT/EP2012/065417, filed Aug. 7, 2012, the entire contents of which are incorporated by reference as if fully set forth. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The invention relates to a system and method for assigning addresses, such as logical addresses or building addresses to network nodes for wireless networks, especially wireless building automation networks. 
         [0003]    In particular, the invention is directed to the problem of mapping the identity (address) of a wireless device to its physical position. 
       BACKGROUND 
       [0004]    Wireless building automation networks in the sense of the invention are networks used to connect building technology devices forming the network nodes of the wireless network, for example lighting means (such as lamps), operating devices for lighting means, sensors (such as light sensors, movement/motion sensors, acoustic sensors, optical sensors, . . . ) and actors (e.g. for controlling window blinds), and/or other equipment (such as switches, interrupters, e.g. for controlling lights) and/or control units. 
         [0005]    The invention is equally applicable to other wireless networks, including but not limited to wireless sensor networks (e.g. for structure health monitoring), wireless industrial control networks, wireless computer networks or wireless telecommunication networks. Especially suited are those networks that require the location of network nodes to be known and where location addresses are (manually) assigned to network nodes. 
         [0006]    The invention solves this problem by providing a system, method and network node as set forth in the independent claims. 
       SUMMARY 
       [0007]    In one aspect, the invention provides a network node  10  for a wireless building automation network, such as a lighting network, the node  10  comprising means  20  for computing connection information, i.e. the presence and the distance of one or more neighboring network nodes, based on a measurement of physical parameter of the wireless transmission channel between the neighboring nodes  10  (e.g. the signal quality or signal strength of the wireless connection to all wirelessly connected further nodes), storage means  30  configured to store said connection information together with an identifier for the associated wirelessly connected further node(s)  10 , and means  40  for wirelessly forwarding the connection information to another node  10 . The network node  10  is configured to receive and/or send and/or echo at least one test pattern, the test pattern including the network node&#39;s identifier, e.g. the MAC address. 
         [0008]    The node can be a sensor such as e.g. a light, temperature, occupancy, smoke or movement sensor. 
         [0009]    The node can be an operating device for lighting means, such as e.g. halogen, LED, OLED or gas discharge lamps. 
         [0010]    The network node may store the connection information and node identifiers in a neighbor table (a list of nodes the particular node is able to directly reach over the wireless channel). 
         [0011]    The network node can store connection information to more than one network node. 
         [0012]    The network node may be configured to receive and store neighbor tables of other network nodes and/or combine the received network nodes to a graph or sub-graph using a computing means. 
         [0013]    The network node can provide a transmitting means to send the stored neighbor table(s), graph and/or subgraph. 
         [0014]    The measured physical parameter, e.g. on radio links, may be provided by a network node and can be combined by a network node with measured connection information provided by a second network node. 
         [0015]    The pattern can e.g. be sent at, transmission power, in different encoding schemes configurations. 
         [0016]    The network node can store the network node&#39;s identifier originating from the test pattern. It can derive a channel characteristic for the communication channel the pattern was received on. Of all received test patterns, the network node may compose the neighbor table. 
         [0017]    The test pattern can either be a specially formed wireless packet optimized for measuring a certain channel characteristic, or it can be regular network packet without special characteristics. The measured channel characteristic may also be derived from regular network traffic, the test pattern in this case being implicit. 
         [0018]    The network node can at least be one of a sensor, lighting means, control device, operating device for lighting means, actor and building technology device. 
         [0019]    In another aspect, the invention also provides a system having at least two nodes as described above, as well as computing means designed for building a measured connectivity graph based on the connection information of said at least two nodes, and on the other hand producing a simulated connectivity graph based on a predefined known spatial arrangement of the at least two nodes as well as their building environment, and associating the identifier of the connection information with a spatial position of each of the at least two nodes by matching the measured connectivity graph and the simulated connectivity graph. 
         [0020]    The simulation can use a ray-tracing method to simulate connectivity between the nodes. 
         [0021]    The two graphs may be at least partially matched. The measured connection information is provided as a neighbor table. The measured connection information, e.g. on radio-links, provided by a network node can be combined by a network node with measurement-based connection information provided by a second network node. 
         [0022]    The measurement may be triggered by a specific command sent to the network nodes, wherein all network nodes activate respective receiving means. 
         [0023]    In yet another aspect, the invention provides a method for automatically assigning spatial positions to network nodes of a building automation network, such as a lighting network, the node, having at least two nodes as defined above, comprising the steps of building a measured connectivity graph based on the connection information of at least two nodes, producing a simulated connectivity graph based on a predefined known spatial arrangement of the at least two nodes as well as their building environment, and associating the identifier of the connection information with a spatial position of each of the at least two nodes by matching the measured connectivity graph and the simulated connectivity graph. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0024]    Further aspects of the invention are now described in view of the figures, wherein 
           [0025]      FIG. 1  schematically shows a floor plan with network nodes installed (dots); 
           [0026]      FIG. 2  shows a measured connectivity graph where the vertices (vertices are nodes of a graph) are the network nodes and the edges (thin line) result from measurements of physical parameters of communication channels, as performed by the network nodes. The vertices are exemplarily attributed with their identifiers; 
           [0027]      FIG. 3  shows a first simulated connectivity graph where vertices are the network nodes and the edges (thick line) result from a simulation of network node communication channels. The vertices are exemplarily being attributed with the spatial position of their corresponding network nodes; 
           [0028]      FIG. 4  shows a graph resulting from a successful matching of the first and second graph resulting in a combination of node identifiers and spatial position for each vertex (of course a partial matching would also possible as well as the occurrence of isolated network nodes in one of the graphs); 
           [0029]      FIG. 5  schematically shows a node and its components; and 
           [0030]      FIG. 6  shows a flow diagram of the method of the disclosure. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0031]    In the inventive system, each network node that participates in the network is preferably identifiable by an identifier, e.g. a distinct network address, assigned to the network node at production stage, henceforth referred to as MAC address. 
         [0032]    In a first step of the inventive method, each network node creates a neighbor table. This neighbor table for each network node contains the network nodes that the network node can reach, i.e. the network node can communicate with. The neighbor table can also contain additional information such as signal strength or signal quality of each communication channel to another node in the neighbor table. The creation of neighbor tables taken alone is known from the prior art, e.g. from the ZigBee standard with mesh routing of the ZigBee Alliance (http://www.zigbee.org/). 
         [0033]    Measuring the signal strength or signal quality (e.g. RSSI, Received Signal Strength Indication) of neighboring nodes is just one example for gathering connection information, i.e. the presence and the distance of one or more neighboring network nodes, based on the measurement of a physical parameter of the wireless transmission channel between the neighboring nodes. 
         [0034]    “Based on the measurement of a physical parameter” is to be understood in the sense that the connection information can be identical to the measured value, or be a value derived from the measured value. 
         [0035]    Additionally or alternatively, other physical parameters may be used. E.g., wireless communication nodes can measure the time (“Time of Flight”) a package, e.g. a data package and/or the test pattern, needs for radio wave propagation. From this measured time the distance between the nodes can be derived and used as distance measurement. This method is especially useful for topology analysis of outdoor wireless networks with wirelessly connected network nodes such as street lamps, traffic signs, light modules, cameras, sensors, illuminated advertising and others. In this scenario, the network nodes are typically separated by greater distances as indoor network nodes. Using the Time of Flight instead of e.g. RSSI (Received Signal Strength Indication) produces more reliable and more exact distances between the network nodes. This method can also be combined with the method described above, and e.g. one method can (signal quality/strength) be used for indoor analysis while the other method (Time of flight) is used for outdoor analysis. 
         [0036]    In a second step, the neighbor tables of all network nodes are collected, e.g. on a central node or a control unit. Based on the neighbor tables a graph is then created, in which the network nodes are graph vertices and the edges in the graph represent possible communication channels between a network node and its neighbors in alignment with the information derived from the neighbor table for each device. Additional information such as signal strength or signal quality is represented as attributes or as weights for the graph edges. Hence, the generated graph represents the relative positions of the network nodes to each other on basis of communication channel measurements each network node performed to generate the neighbor table. In this graph, each network node is identified with an identifier, e.g. a unique address such as a MAC address. In one aspect of the invention, the nodes in the neighbor tables are also identified with their respective identifier. 
         [0037]    Next, a second graph building/installation is generated based on, e.g., a plan (construction plan) of a building, in which the position of the installed network nodes is marked (at least the nodes that should be installed according to the plan). While the vertices of the second graph are easily derivable from the plan used, connecting these vertices by edges is performed by taking into account features of the plan such as thickness of walls and ceilings, material used in the building and other factors that can be derived from the plan used. 
         [0038]    Based on this information, the communication channels possible between the installed nodes are simulated or calculated and the edge-weights are the calculated signal strength or signal quality of the communication channel. 
         [0039]    For simulating the communication channels between the network nodes, e.g. ray tracing can be used. Using ray tracing, the node communication channels of the installed nodes can be simulated or calculated by placing the eye-point (camera point) in one network node (that is at the position of the installed network node) and putting the light source in another installed network node {that is at the position of another installed network node). 
         [0040]    Taking into account the information of the used plan, e.g. ceilings, walls, material used in the building, the communication channels can be established by tracing the way from the eye-point to the light or vice versa. The communication channels between a vertex and its simulated neighbors, i.e. the network nodes a network node can connect to, can e.g. also be stored in a table. By this, the communication channels simulated in the second graph also take into account physical conditions of the building, such as multipath propagation caused by reflections and/or absorptions by walls and ceilings. The plan used herein can of course be a 3D-plan, e.g. a CAD-plan. 
         [0041]    Based on the simulation, and taking into account the spatial positions, the second graph is assembled directly. The simulation is performed on computer hardware and may be sped-up by use (special) GPUs (Graphics Processing Unit). As a result, the vertices of the second graph are attributed by positioning or location information. 
         [0042]    It is now the goal of the invention to match the two graphs, in order to assign network identifiers of the first graph to the node positions derived from the plan in the second graph. Hence the invention aims at automatically assigning the logical addresses or positions to the hardware identifiers of the network nodes. 
         [0043]    In the next step, both graphs are therefore matched to each other to find the most promising and most probable alignment of the production addresses to the absolute or relative coordinate derived from the plan used. 
         [0044]    For example, in a newly installed wireless network system the network nodes can be put in a mode in which they perform measurements to fill their neighbor tables and to obtain parameters such as RSSI (Received Signal Strength Indicators) and/or LQI (Link Quality Indicator) which are also stored in the neighbor table for each neighbor. The neighbor table can also contain more than one entry to a particular neighbor as a means to account for multipath propagation due to reflections or similar phenomena resulting from the features of the building. Similarly, the second graph can also contain more than one edge between nodes as a result of the simulation taking multipath propagation into account. 
         [0045]    E.g. the equalizer built into GSM modules, which is amongst other things responsible for cancellation of the echo resulting from multipath propagation, is able to provide measurement data on the multipath propagation characteristics of the channel. The workings of the equalizer can also be included into the simulation such as to later incorporate multipath propagation characteristics into graph matching. 
         [0046]    The neighbor tables resulting from these measurements can then be collected in a central point and might, e. g. by being transmitted wirelessly to this central point. 
         [0047]    A neighbor table already represents a small sub-graph of network as seen from only one particular network node. It is possible to join sub-graphs together to build ever larger sub-graphs, representing ever larger portions of the overall network. Therefore, a hierarchy can be established where at the lowest hierarchy level at least the neighbor tables (sub-graphs) of two network nodes are joined, where the sub-graph is submitted to a next level, which then joins the received sub-graph with another sub-graph and so on until all neighbor tables are joined. This join-operation can also be performed by the network nodes, at the periphery of the network. A network node can be designated to output the fully joined graph. 
         [0048]    In one aspect of the invention it is possible that the matching of the first and the second graph is not unambiguously defined or is not possible at all. In this case, information is provided to a human user including the information about the nodes, the network nodes, for which the fixed addresses of the network node could not be matched to a logical address, e.g. the position of the device in the building. With this information, the human user can complete or perform the matching. Test runs of the algorithm show that only a few network nodes remain unmatched and therefore, the algorithm significantly supports a human user by automatically matching logical addresses to fixed network node addresses. 
         [0049]    A detailed and exemplary description of the invention is now provided. 
         [0050]    For solving the above problems, the inventive system and method hence features three components: 
         [0051]    1. Channel estimation: A mechanism to produce a network-wide estimation of the wireless connectivity based on geographical layout, floor plan and deployment plan of the wireless network. 
         [0052]    2. Channel measurement: A mechanism to gather actual connectivity information and device identities from the deployed wireless network. 
         [0053]    3. Matching algorithm: A mechanism to match estimated and actual channel characteristic to produce a mapping between wireless device identities and their physical positions as charted in the deployment plan. 
         [0054]    In order to commission a wireless network, the identities and positions of the network nodes need to be known. In the past there have been two approaches of solving this problem: Assigning identities (addresses) during installation or during commissioning of the wireless network using some out-of-band mechanism; and registering previously assigned or randomly assigned identities during installation or commissioning using some out-of-band mechanism. 
         [0055]    The invention now solves the addressing problem using “in-band” mechanisms, thereby eliminating one otherwise manually performed step from the installation and start-up procedure. 
         [0056]    The necessary building, floor and/or deployment plans most of the time are already available as they need to be produced for installation purposes. 
         [0057]    To the addressing problem, there exists an affiliated problem known as “wireless location estimation”. The key difference to the addressing problem is that wireless location estimation aims at producing a position expressed in coordinates (meters). It maps information on connections to positions. Wireless topology analysis, on the other hand, rearranges previously known positions according to connection information so as to map addresses to positions. 
         [0058]    The channel estimate, the second graph, is a graph where the installed network nodes are the vertices and the radio links between the devices are the edges. 
         [0059]    The vertices are attributed by the device types (manufacturer/type designation) and the device positions. The edges are assigned weights which indicate some quality of the wireless channel, mostly the received signal strength or time of flight. The graph may be fully connected, or the edges where the weight is smaller than some cut-off-value or threshold may be removed during graph generation. 
         [0060]    The crucial problem is how to calculate the weights of the second (simulated) graph. Using the distance between node positions is not a good enough estimate. Therefore, additional information derived from the plan (walls, floors, ceilings, their thickness and material, position of doors and windows) is used in a ray tracing algorithm that for each pair of devices calculates an estimate for the signal strength by factoring in signal reflection and transmission through obstacles. Additionally, factors such as mounting orientation of network nodes, antenna characteristics, RF reflecting or absorbing materials such as metal panels in dropped ceilings, concrete reinforcements, RF propagation via outside space, lift shafts, fire doors, etc. can be accounted for in the model. 
         [0061]    The channel measurement, the first graph, has the same basic form as the channel estimate (graph, vertices, attributes, edges, weights) but is measured using dedicated network functionality: The wireless network is set to a “channel measurement mode” during which normal operation is interrupted. The procedure is as follows:
       The procedure is introduced by a command broadcast from a management device to all network nodes of the network.   All network nodes  10  permanently activate their receivers  50 ,  60 , even network nodes  10  that would normally keep their receiver  50 ,  60  deactivated most of the time.   A special test pattern is propagated throughout the network using a similar strategy as broadcasting. All devices need to re-broadcast the pattern. Extra care can be taken to avoid or mitigate the chances of collisions. The test pattern includes each sending network node&#39;s preconfigured identifier, e.g. the MAC address. The test pattern may spawn several messages, possibly sent at different levels of transmission power, in different sub-channels, using different encoding schemes or antenna configurations.   Network nodes  10  receiving the test pattern save the originator&#39;s identifier and derive a channel characteristic, for example the received signal strength. Out of all received test patterns, the devices compose a neighbor table containing identifiers and connectivity information. Due to memory constraints, the neighbor table may be shortened to only include the neighbors which were received most strongly.   Network nodes  10  can then return to normal behavior with respect to power cycling the receiver  20 ,  30 .   Finally the devices transmit their own identifier (MAC level address, manufacturer, type designation, . . . ) and the neighbor table back to the management device.       
 
         [0068]    At that point the channel measurement graph can be constructed by assembling the received identities and neighbor tables into a weighted, attributed graph, the first graph. Each edge and weight is composed of a maximum of two neighbor table entries (each of the adjacent vertices receiving the test pattern form the other). Due to channel asymmetry, receiver and transmitter differences and time variability of the channel, the two received signal strengths corresponding to one edge of the graph may differ or one of them may be absent. Big deviations may be a sign of test pattern collisions or interference. Also the above channel measurement procedure may be repeated or for the affected sub graph. 
         [0069]    The two graphs resulting from channel estimation and channel measurement are substantially similar. They differ in the vertices of channel estimation being attributed with a location or position, e.g., a position in a building, and the vertices of the channel measurement being attributed with the identifiers. Other than the attributes, the graphs also differ with respect to simulation and measurement errors, and most importantly, they are thoroughly permuted with respect to each other. 
         [0070]    If the vertices that correspond to each other in the two graphs are found, this results in the desired mapping from identifier to position. While the two graphs are topologically similar, they are by no means the same. 
         [0071]    The numeric values from estimation and measurement are profoundly divergent, and also small topological differences may need to be tolerated for (wrongly installed or defective network nodes show up differently or not at all in the measurement). 
         [0072]    The problem of matching two topologically similar, weighted and optionally attributed graphs against each other is called the weighted graph matching problem. There is an amount of academic research about it, mainly in the field of pattern recognition. 
         [0073]    Finding the optimum match is hard, since its complexity grows with the faculty of the graph size. There exist however several heuristic approaches, cited below. 
         [0074]    The heuristic is based on a 1996 paper by Steve Gold and Anand Rangarajan “A Graduated Assignment Algorithm for Graph Matching”. The algorithm seeks to find a permutation matrix M that encodes the sought after mapping between the first graph and the second graph. M is found by minimizing the following objective function E wg  (M): 
         [0000]    
       
         
           
             
               
                 E 
                 wg 
               
                
               
                 ( 
                 M 
                 ) 
               
             
             = 
             
               
                 - 
                 
                   1 
                   2 
                 
               
                
               
                 
                   ∑ 
                   
                     a 
                     = 
                     1 
                   
                   A 
                 
                  
                 
                     
                 
                  
                 
                   
                     ∑ 
                     
                       i 
                       = 
                       1 
                     
                     I 
                   
                    
                   
                       
                   
                    
                   
                     
                       ∑ 
                       
                         b 
                         = 
                         1 
                       
                       A 
                     
                      
                     
                         
                     
                      
                     
                       
                         ∑ 
                         
                           j 
                           = 
                           1 
                         
                         J 
                       
                        
                       
                           
                       
                        
                       
                         
                           M 
                           ai 
                         
                          
                         
                           M 
                           bj 
                         
                          
                         
                           C 
                           aibj 
                         
                       
                     
                   
                 
               
             
           
         
       
     
         [0075]    A and I are the sizes of the adjacency matrices G 1  and G 2  representing the two graphs. C aibj  is distance measure between edges of the graphs and compares all edges of G 1  to all edges of G 2 . It is defined by: 
         [0000]    
       
         
           
             
               C 
               aibj 
             
             = 
             
               { 
               
                 
                   
                     0 
                   
                   
                     
                       if 
                        
                       
                           
                       
                        
                       neither 
                        
                       
                           
                       
                        
                       
                         G 
                         
                           1 
                           , 
                           ab 
                         
                       
                        
                       
                           
                       
                        
                       or 
                        
                       
                           
                       
                        
                       
                         G 
                         
                           2 
                           , 
                           ij 
                         
                       
                        
                       
                           
                       
                        
                       is 
                        
                       
                           
                       
                        
                       NULL 
                     
                   
                 
                 
                   
                     
                       1 
                       - 
                       
                         c 
                          
                         
                            
                           
                             
                               G 
                               
                                 1 
                                 , 
                                 ab 
                               
                             
                             - 
                             
                               G 
                               
                                 2 
                                 , 
                                 ij 
                               
                             
                           
                            
                         
                       
                     
                   
                   
                     otherwise 
                   
                 
               
             
           
         
       
     
         [0076]    c is a normalization constant that normalizes the expected edge-distance in C aibj  to be zero-mean. 
         [0077]    The product M ai M bj  in the objective function E wg (M) selects just the right edge-distances from C aibj  such that the objective becomes minimal if M represents the right permutation. 
         [0078]    Because of the discrete nature of the optimization problem (M is a permutation matrix and contains only zeros and ones), it is hard to solve directly. Instead, the algorithm follows a graduated optimization strategy starting with a relaxed version of the problem that iteratively solves the optimization problem. 
         [0079]    Optimization step: Solve the optimization for a doubly stochastic matrix M instead of a permutation matrix. A doubly stochastic matrix can be thought of a continuous equivalent of the discrete permutation matrix. The optimization step is performed by calculating the partial derivative Q=∂E wg /∂M and then applying Sinkhorn&#39;s algorithm to find a doubly stochastic result. 
         [0080]    Soft max step: Prior to Sinkhorn&#39;s algorithm the partial derivative is scaled by a soft-max: M′ ai =exp(βQ ail ). β starts small and is increased at every iteration to push the doubly stochastic matrix to approach a permutation matrix. 
         [0081]    The algorithm works as exemplarily shown below in a pseudo-code notation: 
         [0000]    
       
         
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Initialize β to β 0 , M ai  to 1 
               
               
                   
                    Do until β &gt; β f   
               
               
                   
                       Do until M converges 
               
               
                   
                          Q ai  ← − ∂E wg / ∂M 
               
               
                   
                          M′ ai  ← exp (βQ ai ) 
               
               
                   
                       Do until M′ converges 
               
               
                   
                          Update rows of M′: M′ ai ← M′ ai / Σ r  M′ ai   
               
               
                   
                          Update cols of M′: M′ ai  ← M′ ai / Σ A  M′ ai   
               
               
                   
                       M ← M′ 
               
               
                   
                    β ← βrβ 
               
               
                   
                   
               
             
          
         
       
     
         [0082]    β, β r , β 0 , β f  are the control parameter, its rate of increase, its start and end value. The most computationally expensive step is calculating the partial derivative. It is implemented to run on the GPU (a powerful graphics co-processor) and uses sparse matrix representation for the adjacency matrices G 1  and G 2 . 
         [0083]    The complexity of the algorithm is proportional to the square of the combined number of edges in both graphs and in the current implementation can match graphs up to 2000 vertices and 40000 edges in a matter of minutes on current computer hardware. 
         [0084]    If the method laid out above cannot find a good match, possibly due to too much symmetry in the geometry of the building, or due to bad estimates, the matching mechanism can ask the operator to give it additional fixed points. It calculates the location with the biggest topological ambiguity and asks the operator to walk there, and manually, using some out-of-band method, uncover the address of a particular device occupying a particular position. With that additional information the matching method is run again until a solution with high enough confidence is found.