Abstract:
Distinct physical channels in a network are exploited to provide capabilities that go significantly beyond conventional hybrid networks. In a first aspect, distinct physical channels are employed to determine physical relationships of the nodes with respect to each other. For example, whether or not the nodes of an RF wireless system are in the same room of a building can be determined by using optical messages passed between the nodes. In a second aspect, a first physical channel is employed for synchronized broadcasting, and a second physical channel is employed to enhance the capabilities of the synchronized broadcast network. For example, the nodes of an RF wireless broadcast network can be selectively commissioned (i.e., sensitized) with optical signals to commands that are broadcast on the RF network.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. provisional patent application 61/209,447, filed on Mar. 5, 2009, entitled “Ad hoc wireless network with a shared state”, and hereby incorporated by reference in its entirety. 
     
    
     FIELD OF THE INVENTION 
       [0002]    This invention relates to distributed communication. 
       BACKGROUND 
       [0003]    Distributed communication networks having multiple nodes in communication with each other have been under investigation for some time. Various physical communication channels have been employed in such systems, e.g., wireless radio-frequency (RF) and free space optical channels. In some cases, distributed networks make use of more than one communication channel (e.g., both optical and RF wireless channels are employed). 
         [0004]    Having multiple communication channels in a network has been exploited to provide several improvements in network performance. For example, hybrid RF/optical links can provide improved bandwidth and/or availability due to the use of two parallel communication channels. Such links are considered in U.S. Pat. No. 7,394,988, U.S. Pat. No. 6,763,195, and US 2002/0122230. In connection with a network, the use of both RF and optical communication allows for improved load balancing and resource sharing. Optical and RF communication channels can also play separate roles in setting up a network (e.g., optical signals can be employed to allocate nodes to an RF wireless network). Hybrid optical/RF networks are considered in U.S. Pat. No. 6,842,439, U.S. Pat. No. 7,274,877, U.S. Pat. No. 7,453,835, and US 2006/0270344. 
       SUMMARY 
       [0005]    In the present work, distinct physical channels in a network are exploited to provide capabilities that go significantly beyond the conventional systems described above. In a first aspect, distinct physical channels are employed to determine physical relationships of the nodes with respect to each other. For example, whether or not the nodes of an RF wireless system are in a shared enclosed space (e.g., the same room of a building) can be determined by using optical messages passed between the nodes. In a second aspect, a first physical channel is employed for synchronized broadcasting, and a second physical channel is employed to enhance the capabilities of the synchronized broadcast network. For example, the nodes of an RF wireless broadcast network can be selectively sensitized (i.e., commissioned) with optical signals to commands that are broadcast on the RF network. 
         [0006]    Determination of physical relationships of the nodes with respect to each other relies on physical differences between the communication channels being employed. For example, optical signals cannot pass through walls of a building, while RF signals can. Therefore, a hybrid RF/optical network inside a building can use optical signals to determine whether or not nodes are in the same room. Nodes that are not in optical communication are assumed to be in different rooms, while nodes in optical communication are assumed to be in the same room. Such probing of the environment can be done automatically. Systematic application of this principle can lead to a partitioning of the nodes into disjoint sets corresponding to multiple rooms of a building. 
         [0007]    Another application of environmental probing relates to situations where a network includes both stationary nodes having a fixed location and mobile nodes having a variable location. Such a network can employ RF wireless transmission for data traffic, and message passing of optical signals to provide location information of the mobile node relative to the stationary nodes. Optical signals are more suitable for this location sensing than RF signals because optical line of sight and/or signal strength can be a more sensitive environmental probe than RF signal strength. 
         [0008]    The use of a second physical channel in connection with a synchronized broadcast network can provide several advantages. For example, consider a network that has hybrid optical-RF nodes that form a broadcast-only RF wireless network. The optical channel of the nodes can be used to sensitize (i.e., commission) nodes so that the sensitized nodes act in response to an RF broadcast differently from non-activated nodes. For example, a node could emit an optical signal that sensitizes any other nodes in its line of sight (e.g., nodes in the same room of a building). These sensitized nodes could then respond in a different way to a broadcast RF message than non-sensitized nodes. Continuing the example, suppose the broadcast RF signal is a signal for the sensitized nodes to turn off (or turn on) room lights associated with the nodes, while the non-sensitized nodes ignore this broadcast RF message. This system provides a way to selectively control building lighting, on a room by room basis, without having to manually maintain a list of which lights are in which room. Instead, the environmental probing capability provided by the use of distinct physical communication channels is exploited to efficiently provide building lighting control. 
         [0009]    A synchronized broadcast network can be organized such that each node has active periods (when it broadcasts and/or receives) and inactive periods (during which no broadcast or reception take place). Here it is understood that “active” and “inactive” only refer to the physical channel being employed for the broadcast network, for networks having more than one physical channel. For example, in a RF-optical system where the RF channel is employed to provide the broadcast network, “active” and “inactive” refer to RF activity and RF inactivity, respectively. Optical signals can be transmitted and/or received during the RF-active periods or during the RF-inactive periods. The flexibility provided by a second physical channel can usefully complement the capability of a broadcast network set up on a first physical channel. For example, node identification information can be broadcast on the second channel, and synchronism (or lack of synchronism) of first channel broadcasts relative to the second channel broadcasts can be used to determine the nodes from which first channel broadcasts are broadcast. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]      FIG. 1  shows an example of a plurality of wireless nodes communicatively connected through a broadcast-only network. 
           [0011]      FIG. 2  shows an example of synchronized communication frames that include an active TDMA schedule with TDMA slots and an idle period. 
           [0012]      FIGS. 3A-3B  show an example of a dynamic TDMA schedule length for a node based on the number of neighboring nodes. 
           [0013]      FIG. 4  shows an example of the communication frames of four nodes having swarm TDMA schedules. 
           [0014]      FIG. 5  shows an example of consecutive communication frames of a single node having a cluster TDMA schedule. 
           [0015]      FIG. 6  shows an example of determining the start time of a communication frame of a node based on received messages. 
           [0016]      FIG. 7  shows an example of a search function allowing a node to change a property of its communication frame to search for another node. 
           [0017]      FIG. 8  shows an example of a join function allowing a node to broadcast a join message from a random position. 
           [0018]      FIG. 9  shows an example of a network of nodes operating on two physically distinct communication channels. 
           [0019]      FIG. 10  shows an example of a node network in a multi-room building. 
           [0020]      FIG. 11  shows an example of a node network having stationary and mobile nodes. 
           [0021]      FIG. 12  shows an example of node identification. 
       
    
    
     DETAILED DESCRIPTION 
       [0022]    Section A below provides an exemplary description of a broadcast-only wireless network. It is convenient to refer to the approach of section A as a gossip media access control (GMAC) approach. Section B below provides a description of the use of two or more physically distinct channels, in connection with a network. Hybrid networks as described above and in section B can be applied in connection with the broadcast-only network of section A, or in connection with other networks. Thus, section A provides a specific example of a system in which the present hybrid network approach can be implemented, although the present approach is not limited in application to such GMAC systems. 
       Section A: Broadcast-Only Networking 
       [0023]    A communication system between a plurality of nodes in an ad-hoc network can be difficult to implement, particularly with mobile nodes, commonly found in ad-hoc wireless sensor networks. The present approach is directed to communication between nodes in a distributed network using a media access control (MAC) layer optimized for gossip protocols. The scalability of the communication system of the present approach is apparent by the communication system&#39;s decentralized and distributed nature. 
         [0024]      FIG. 1  shows an example of a distributed network of a plurality of wireless nodes N. The distributed network can include any number of nodes. Each of the nodes of the distributed network can broadcast  110  or receive  120  messages from its neighboring nodes. In a preferred embodiment, the nodes are wireless sensor and/or actuator nodes, or nodes without any sensor and/or actuator device. However, any device capable of bidirectional communication can be a node in the network. Though the present approach is suited for wireless networks, one or more wired nodes can also be members of the network. 
         [0025]    At least some of the nodes are communicatively connected and communicate with the use of repeated communication frames.  FIG. 2  shows a repeated communication frame of a broadcasting node  210  and a repeated communication frame of a listening node  220 . Each communication frame includes an idle period and a time divisional multiple access (TDMA) schedule (i.e., an active period) for active communication. The TDMA schedule includes a plurality of TDMA slots. A broadcast function is provided for each of the nodes to use one or more of the TDMA slots to broadcast messages. A listen function is also provided for each of the nodes to listen for and receive a broadcasted message. One or more TDMA slots are used to listen for and receive the broadcasted messages. For example,  FIG. 2  shows a node broadcasting  230  a message through a TDMA slot  240  and another node receiving the broadcasted message in slot  260 . Preferably slot  240  and slot  260  have the same slot number. Preferably, each of the broadcasted messages includes an identifier  250  of the TDMA slot used to broadcast the message. The identifier  250  can be a part of the MAC header of the broadcasted message. 
         [0026]    Slot usage information can also be a part of the MAC header of the broadcasted message. The slot usage information includes information that a listen slot has received a message, that no message has been received from a neighboring node, and/or if a collision has been detected. The slot usage information can be used to prevent the hidden terminal problem. In an embodiment, each node does not broadcast any messages during one frame and evaluates the slot usage information of its neighbors in the next frame. By repeating this process over a randomized interval of frames, preferably from about 15 to 20 frames, the hidden terminal problem can be avoided. 
         [0027]    It is important to note that this distributed network does not require a central or beacon node coordinating the other nodes. Particularly, in a preferred embodiment, none of the nodes in the network coordinates the TDMA schedule and the TDMA slots of another node of the network. The distributed functions for the nodes include network synchronization, TDMA schedule length and position, TDMA slot allocation, collision avoidance, and hidden-terminal avoidance. The broadcast function allows a node to transmit a message by a broadcast-only mechanism, which does not require an address of another node. The neighboring nodes have control over what to do with the broadcasted message. In other words, a neighboring node can decide to receive and process the message, to receive and discard the message, or use a provided ignore function to not listen for any broadcasted messages. 
         [0028]    In a preferred embodiment, some of the nodes, a majority of the nodes, or all of the nodes in the network are approximately synchronized. Synchronized nodes have communication frames with time overlapping TDMA schedules to allow communication between nodes. In other words, overlapping TDMA schedules enable a message broadcasted from a TDMA slot of one node to be received by a TDMA slot of another node. 
         [0029]    With a broadcast-only distributed communication system, the nodes can be extremely energy efficient. Moreover, by constraining the slot allocation of a TDMA schedule, the energy consumption is deterministic and therefore battery life and/or energy scavenging mechanisms become predictable. In addition, the distributed network of the present approach is also scalable, unlike existing centralized networks. Furthermore, in contrast to standard address-oriented message systems, the broadcast-only communication system of the present approach does not require CTS, RTS, or ACK messages or functions. 
         [0030]    In an embodiment, the communication frame of each of the nodes has a fixed length. The fixed length of the communication frame ranges between about 0.5 seconds and about 5 seconds, and is preferably about 1 second. In an alternative embodiment, the communication frame of each of the nodes has a variable length. A node may vary its communication frame length based on energy consumption and data throughput requirements. Shorter communication frames generally increase energy consumption, while allowing for greater data throughput. 
         [0031]    As mentioned above, each communication frame includes a TDMA schedule for active communication and an idle period, where little or no activity occurs. In an energy-efficient embodiment, the idle period is longer than the TDMA schedule. Preferably, the length of the TDMA schedule, defined by the number of TDMA slots, of a node can be changed. The change in length of the TDMA schedule can be based on the number of neighbors of the node.  FIG. 3A  shows an example of a node  310  with a large number of neighboring nodes. To avoid or minimize collisions, the node  310  increases its TDMA schedule  320  (i.e. increases the number of TDMA slots) to accommodate the large number of neighbors.  FIG. 3B  shows the opposite situation, in which a node  330  has only a small number of neighboring nodes, thus its TDMA schedule  340  is shorter than the TDMA schedule  320  of node  310 . 
         [0032]    In a preferred embodiment, each of the TDMA slots of the TDMA schedule is allocated to be a listen slot, a transmit slot, or an idle slot. Each of the nodes controls the allocation of its TDMA slots. When a TDMA slot is allocated for a specific function, the entire duration of the slot is dedicated for that same function. For example, in  FIG. 2 , the broadcasting node  210  has allocated TDMA slot  3  to be a transmit slot and the receiving node  220  has allocated TDMA slot  3  to be a listen slot. When two or more adjacent slots are allocated with the same function, a contiguous period occurs for that function. In a preferred embodiment, the allocation of TDMA slots is dynamic, where a node measures the usage of the TDMA slots by neighboring nodes and allocates the TDMA slots based on the measured usage of the TDMA slots, and/or the usage of the TDMA slots of the neighboring nodes, provided in the slot usage information provided in the header of each message. 
         [0033]    It is important to note that the width of each of the TDMA slots is greater than a time-on-air TOA of each of the broadcasted messages. Having the TDMA slot width greater than the time-on-air allows the nodes to compensate for clock drifts between nodes and remain in communicative contact with other nodes. For each message received, an arrival time AT can also be measured upon reception of the message. The arrival time is the difference in time between the actual position of the received message and the beginning of the TDMA slot receiving the message. 
         [0034]    In an embodiment, the time-on-air period is based on the data rate and the payload length. For example, data rates can range between about 250 kbps and about 2 Mbps, and payload lengths can range between about 32 bytes to 128 bytes. With these data rates and payload lengths, the time-on-air period ranges from about 300 μs to about 10 ms. In a preferred embodiment, the time-on-air period is about 300 μs and the TDMA slot width is about 800 μs. 
         [0035]    In an embodiment, the TDMA schedule of each of the nodes can also be dynamic in position.  FIG. 4  shows the communication frame for four nodes, A-D, capable of having a “swarm”-like behavior. The position of the TDMA schedules of each of the nodes is dependent on the positions of the TDMA of the neighboring nodes. In an exemplary embodiment, the TDMA schedule of each node has fixed number of slots with the middle slot  410  allocated to be a transmit slot. The transmitted messages can include slot usage information that the receiving nodes can use to adjust its TDMA schedule position. With the swarm-like TDMA schedules, as represented in  FIG. 4 , the nodes have symmetrical communication properties with its neighbors. The constant TDMA schedule length allows for a known energy consumption and predictable battery life of nodes. 
         [0036]    Embodiments can include dynamic allocation of the TDMA slots.  FIG. 5  shows four consecutive communication frames of a single node having a cluster TDMA schedule  510 . Under the cluster TDMA schedule scheme, the TDMA schedule length of a node is rounded to a multiple of a cluster length. Only one cluster is active per communication frame, as represented by the shaded TDMA slots  520  in  FIG. 5 . The TDMA slots of the active cluster can be allocated to be listen slots, whereas the TDMA slots not in the active cluster can be allocated to be idle slots  540 . The node schedules the next cluster to be active in the next communication frame. In an embodiment, while the clusters are scheduled over the frame, the transmit TDMA slot  530  remains at the same position. Though the cluster length is shown to be 5 TDMA slots in  FIG. 5 , any cluster length can be employed. The use of a cluster TDMA schedule allows a node to receive messages from many neighbors, distributed over time using multiple frames. In addition, the energy consumption remains constant and is independent of the number of neighbors. 
         [0037]    In another embodiment, communication between nodes in a crowded environment can rely on a constant length TDMA schedule with transmit slot skipping. The TDMA schedule length can be determined based on available energy and required data throughput with the neighboring nodes. The transmit TDMA slot allocation can be based on slot usage information of the node itself and/or the slot usage information of the neighboring nodes. Transmit slot skipping is activated when there are more neighbors than available TDMA slots in the TDMA schedule. In such a circumstance, a node will decide to skip a transmission in one or more frames. The transmit TDMA slot is temporarily allocated to be a listen slot to receive messages from the neighbors using the same slot during the one or more frames. With transmit slot skipping, the node is capable of communicating with other nodes in a crowded environment without having to add TDMA slots, thereby maintaining low energy consumption. 
         [0038]    Communication between nodes in the distributed network requires the communication frames of the nodes to be approximately synchronized. More generally, communication is possible when the TDMA schedules of communicating nodes at least partially overlap. Node synchronization exists when the communication frames of communicating nodes start at approximately the same time. Synchronization is difficult to maintain due to clock drift. In an embodiment, each node can occasionally or periodically update its communication frame start time to stay approximately synchronized with the rest of the network. It is important to note that this update does not require communications with a central time-keeping node. 
         [0039]      FIG. 6  shows a node  610  determining the start time for its repeated communication frame  630  and the TDMA schedule  640 . Node  610  receives one or more broadcasted messages  620  from its neighbors. The broadcasted messages  620  include slot identifiers SI 1 -SI n , for identifying the TDMA slots used to transmit the broadcasted messages  620 . A time shift ΔT is calculated  650  based at least partially on the received slot identifiers SI 1 -SI n . The time shift ΔT is used to determine and adjust the start time  660  of the communication frame  630 . The adjustments to the communication frame start time  660  help to prevent the loss of synchronization of a node with the rest of the network due to drift in the node&#39;s internal clock. In another embodiment, a node measures the arrival times of the received messages in addition to the slot identifiers SI 1 -SI n , and calculates the time shift ΔT based on the arrivals times and the slot identifiers SI 1 -SI n . 
         [0040]    The time shift calculation can involve any calculus that mitigates the effects of clock drift. Example time shift calculations include taking the average or median of the slot identifiers and/or arrival times. In an embodiment, the time shift uses the following calculation: ΔT=G*median[δT(Rx 1 ), δT(Rx 2 ), . . . , δT(Rx n )], where G is a gain factor and δT(Rx i ) is the difference between the expected arrival time and the actual arrival time of the i th  received message. The gain factor G preferably ranges between 0.5 and 1, and is typically 0.75. 
         [0041]    Though  FIG. 6  shows an adjustment of the communication frame start time based on received messages, there are circumstances when a node cannot communicate with any of the other nodes in the network, i.e. the active TDMA schedule of the node does not overlap with the TDMA schedule of any of the neighboring nodes. For example, loss of synchronization can arise when a node is isolated from the rest of the network for a sufficiently long time for its TDMA schedule to drift away. When the isolated node attempts to rejoin the network and communicate with the other nodes, it fails due to the non-overlapping TDMA schedules. 
         [0042]      FIG. 7  shows an example search function for a node  710  to find one or more other nodes in the network. The node  710  activates the search function only if it has not received any broadcasted messages during a number of consecutive communication frames  720 . In an embodiment, the number of consecutive communication frames to activate the search function is about 30. When the communication frame length is one second, this corresponds to half a minute of having no communication before a nodes enters the search mode. When activated, the search function allows the node to change one or more properties of its communication frame, including the start time of the communication frame, the length of the communication frame, the position of said TDMA schedule in the communication frame, the length of the TDMA schedule, the position of the idle period in the communication frame, the length of the idle period, or any combination thereof. 
         [0043]    In  FIG. 7 , node  710  is in search mode and moves the position of its TDMA schedule  730  until the TDMA schedule  730  overlaps with a TDMA schedule  760  of a neighboring node  740 . Enabled by the overlap in the TDMA schedules, node  710  can potentially receive a message  770  broadcasted by the neighboring node  740 . The broadcasted message  770  can include the slot identifier SI and/or a measured arrival time. The received message along with the known moved position ΔT of the TDMA schedule  730  during searching can be used to synchronize node  710  with node  740 . Once in communication with another node, the search function is deactivated. 
         [0044]    In another embodiment, a node operating the search function performs the following steps: (1) Increase the communication frame length from T(idle)+T(TDMA) to T(idle)+2*T(TDMA), where T(idle) is the length of the idle period and T(TDMA) is the length of the TDMA schedule. (2) Search with the communication frame length of step (1) for [T(idle)+T(TDMA)]/T(TDMA)+1 cycles. (3) Decrease the communication frame length to T(idle) for the same number of cycles as in step (2). The node will repeat steps (1)-(3) until it receives a message from a neighboring node. After the message is received, the searching node approximately synchronizes with the node that broadcasted the received message. The communication frame length is reset back to T(idle)+T(TDMA) after the search is successful. 
         [0045]    In a preferred embodiment, a join function is provided to the nodes of the distributed network for synchronization of nodes.  FIG. 8  shows an example of the join function for synchronizing the communication frame  840  of node  830  to the communication frame  820  of node  810 . When operating the join function, node  810  transmits a join message from a random position in the idle period of each communication frame  820 . By a stochastic process, one of the join messages  850  transmitted from a random position x will overlap with a TDMA schedule of the communication frame  840  of another node  830 . The join message  850  includes the random position x. In an embodiment, the join message  850  does not include any other information other than the random position x. Upon reception of the join message  850 , node  830  can shift its TDMA schedule by a time shift ΔT(x) to approximately synchronize node  830  to node  810 . The time shift ΔT(x) is at least partially based on the random position x. 
         [0046]    In a preferred embodiment, each node transmits a join message during every communication frame. Since the join message is transmitted from the idle period, when nodes are in synchronization, the join messages have no effect. Preferably, nodes with activated search functions do not transmit join messages. 
         [0047]    The join function, as described above, allows for an energy efficient and scalable process for node synchronization. The join function can be used in circumstances in which the search function is not applicable. For example, when a plurality of nodes is subdivided into two or more groups with intra-group synchronized members, the search function will not be activated because there is no reason to begin searching when the members are already intra-group synchronized. Without operating the join function, inter-group communication is not possible and the groups will remain isolated from one another. When the join function is utilized, the multiple groups will eventually merge into one or a small number of groups. This merging of groups is accomplished in an undirected manner. In practice, a smaller group will likely synchronize to a larger group simply because the larger group has more join messages to broadcast than the smaller group. 
       Section B: Physically Distinct Channels 
       [0048]    Another aspect of the present work is the use of two (or more) communication channels with different physical behavior in a network. One of the communication channels can be for direct node-to-node communication, such as through messages sent via the TDMA time slots of the GMAC layer in a broadcast-only network as described in section A. In preferred embodiments, this first communication channel is a radio channel. The second channel has a different physical nature than the first, e.g. the second channel can be an optical channel.  FIG. 9  shows a network  902  that is an example of this approach. In this example, there are several nodes, one of which is referenced as  904 . The nodes are capable of transmitting and/or receiving on two or more different physical channels. In this example, two distinct physical channels are referenced as  906  and  908 . Channel  906  could be radio and channel  908  could be optical, for example. 
         [0049]    One of the general capabilities provided by this approach can be referred to as “pairing” (or, more generally, as “grouping”). For example we assume a room has several lamps which are each individually controlled with a smart switch (referred to as an E-node switch). One or more remote controls are also present in this exemplary system. The E-node switches and the remote controls both have dual communication capability (e.g., RF and optical). Remote controls can be automatically associated to E-node switches by taking advantage of this dual communication capability. For example, we assume the optical range is shorter than the RF range (and is preferably considerably shorter than the RF range, so that neighborhoods of the nodes are effectively defined by the optical range), and that automatic pairing is programmed to occur between any remote and E-node switch that are in both optical and RF communication. In this situation, by bringing a remote and an E-node switch close enough to have both RF and optical links, these two devices become automatically paired. From this moment on, the remote controls its paired E-node switch. Two or more E-node switches can be paired to the same remote. Automatic grouping of E-node switches can be accomplished in the same way (i.e., switches that are sufficiently close to each other automatically group). Pairing a member switch of such a group with a remote can cause the entire group to be controlled by that remote. 
         [0050]    Re-assignment of switches to remotes can be easily accomplished. The system can be programmed such that bringing a remote closer to a switch than any other remote (as sensed using the optical links) causes the switch to automatically assign (or re-assign) to this new remote. In this manner, flexible and automatic control of the room lighting can be provided. In this example, the remotes can be regarded as publishers of shared state signals, and the switches can be regarded as subscribers to these signals. Bringing a switch close to a remote can be regarded as triggering the update of the subscription assignment of the switch. 
         [0051]    In an embodiment, this second channel can be used to transmit/receive an identification of the node. This transmission will occur in parallel to the radio transmission. In an example, a sending node transmits its identifier via the second channel during the send-timeslot of the GMAC. It is noted that in an embodiment, the GMAC layer follows a broadcast-only protocol where no addresses are needed, therefore no identifiers are sent in the primary radio transmission. A receiving node will listen to the second channel for identifiers of neighbors during all receiving timeslots. This allows matched filtering since the nodes know when to expect this second signal. The logical combination of the two channels gives information about the surroundings of the nodes. 
         [0052]      FIG. 12  shows an example. In this example, a node  1210  emits an RF broadcast  1230  and an optical broadcast  1280 . The optical broadcast  1280  includes the node ID (e.g., “1”). A node that is in line of sight of node  1210  (e.g., node  1240 ) can determine whether or not a received RF broadcast  1250  is from node  1210  by checking for the presence/absence of a “1” on the optical channel that is synchronized with the received RF broadcast  1250  (e.g., in slot  3  of a TDMA schedule). In contrast, a node that is not in line of sight of node  1210  (e.g., node  1260 ) is not able to perform a positive ID of the source of its received RF broadcast  1270 , because it is possible that some other node than  1210  also made a broadcast in slot  3  of the TDMA schedule. 
         [0053]    In an embodiment, the second channel is an optical channel. By using light communication in addition to radio communication, each node can determine whether or not it is in a shared optical space (e.g. the same room of a building, the same car of a train, the same compartment of a ship, the same vehicle, etc.) as its neighbors. This optical information can be sensed and the nodes can self-organize into regions. Communication channels of different physical behavior other than optical or radio (e.g. ultrasound) can also be employed. 
         [0054]      FIG. 10  shows an example of this approach. A building  1002  includes rooms  1004 ,  1006 ,  1008 , and  1010 . Nodes N 1 -N 4  are in room  1004 , nodes N 5  and N 6  are in room  1006 , nodes N 7  and N 8  are in room  1008 , and node N 9  is in room  1010 . Systematic use of the second optical channel can allow the system to automatically partition the set of nodes N 1 -N 9  into subsets corresponding to the rooms. For example, nodes N 1 -N 4  will each be able to receive each other&#39;s optical broadcasts. Therefore, it can be automatically deduced that they are in the same room. Similarly, N 7  and N 8  can see each other&#39;s optical broadcasts, so they must share a room. Since N 7  can&#39;t see optical broadcasts from any of nodes N 1 -N 4 , the room for N 7 -N 8  is different from the room for N 1 -N 4 . Since N 9  can&#39;t receive optical broadcasts from any other node, it must be in a separate room. Meanwhile, all of nodes N 1 -N 9  can be in RF communication with each other. Thus, a network of nodes all in communication over a first physical channel is able to probe its environment using node-to-node transmissions over a second physical channel that is different from the first channel. 
         [0055]    In an embodiment, nodes can be made temporarily sensitive to commissioning. The primary and secondary channel need not be synchronized. The node broadcasting the secondary signal need not be the same as the node sending the primary signal. A signal over the secondary communication channel makes the receiving nodes sensitive (it can be regarded as subscribing to a symbol), for some time period, to a command (which can be regarded as a symbol in shared memory terms) which is to be received through the primary communication channel. Returning to the drawing of  FIG. 10 , node N 1  can emit an optical broadcast that sensitizes all receiving nodes (i.e., nodes N 2 , N 3 , N 4 ) to act on any RF message received during a specified time period. In this example, nodes that are not sensitized by receiving an optical broadcast do not act on the RF message. Thus the above-described sensitization will cause nodes N 2 , N 3 , and N 4  to act on the received RF message, but any other nodes that receive this RF message will not act on it. One application of this sensitization approach is to facilitate automatic control of building lighting. For example, sensitization with optical broadcasts can be used to determine which rooms will have their room lights turned on or off by a global switch message received by all nodes on the radio channel. 
         [0056]    In an embodiment, node localization is possible due to the second communication channel. For example, the network of  FIG. 11  includes both stationary nodes (N 1 -N 8 ) and a mobile node N 9  (more than one mobile mode can be present) in a building  1102 . In this embodiment, the stationary nodes include radio transmit/receive and optical transmit capability. The mobile nodes include radio transmit/receive and optical receive capability. The mobile nodes can determine their location based on the optical visibility of the stationary nodes based on transmission and reception of optical signals. A mobile node can assume that its position is that of the closest stationary node. Alternatively, a mobile node can interpolate a more accurate position based on the visibility of several stationary nodes. In the example of  FIG. 11 , it is apparent that the line of sight relations between node N 9  and nodes N 1 -N 8  provide substantial information as to the location of node N 9  within building  1102 . 
         [0057]    As another example of localization, consider a building lighting system having one or more lamps per room and one or more markers (which may be mobile or fixed). The lamps can each be controlled with a corresponding smart switch. The smart switches and markers are each nodes of a network having dual communication capability (e.g., optical and RF). It is possible to automatically determine the location of a marker, e.g., by using grouping/pairing as described above. For example, a marker B 1  may respond to a location inquiry by indicating that it “sees” (i.e., is in optical communication with) the nodes for lamps L 1  and L 2 . If the physical location of lamps  1  and  2  is known (e.g., from building plans), the physical location of B 1  is thereby known. 
         [0058]    In an embodiment having a combination of radio and optical communications, the following is an example truth table that can be used by nodes to identify other nodes in the same optical region (e.g. the same room): 
         [0000]                                                Radio   Optical   Result                           0   0   Nothing           0   1   RF Collision issue           1   0   Neighboring node not in                   visible range           1   1   Neighboring node is in visible                   range                        
In this table, “0” is an indication that no signal is received, while “1” is a indication that a signal is received. With this kind of logic, nodes are capable of determining their relationship with surrounding nodes to a substantially greater degree than if only one kind of physical communication channel is employed.
 
         [0059]    The preceding examples can be regarded as examples of self-configuration and externally forced configuration approaches. For self-configuration, the physical channels can be synchronized to each other, one of the channels can be employed to transmit node ID, and nodes can make use of the synchronicity of received messages to make local conclusions (e.g., grouping/pairing). For externally forced configuration, there is no need for broadcasts on the two physical channels to be synchronized to each other. Instead, one of the channels can serve as a command channel used mainly to change the mode of the nodes (e.g., from a normal operating mode to a network configuration mode). Once nodes have been put into a configuration mode, configuration information such as group assignments or codes can be transmitted using either or both physical channels. The command channel can also be employed to switch nodes out of the configuration mode.