Abstract:
A method of performing a task by a sensor node in a sensor network includes receiving, at a sensor node, a packet from a central source on the sensor network, extracting a network-wide task to be completed from the packet, determining a portion of the task to be completed by the sensor node, the portion of the task comprising an operation to be performed by the sensor, and performing the portion of the task at the sensor node. A system includes a central source, a network of sensor nodes in communication with the central source, each sensor node having a port for receiving and sending packets, a sensor, a local memory, and a processor to extract a network-wide task from the packet, determine a portion of the task to be completed by the sensor node, and complete the portion of the task.

Description:
RELATED APPLICATIONS 
       [0001]    This application claims priority to U.S. Provisional Patent Application No. 62/053,971, filed Sep. 23, 2014, and is related to U.S. Provisional Patent Application 61/790,002, both of which are incorporated by reference here in their entirety. 
     
    
     BACKGROUND 
       [0002]    The number of systems that involve multiple sensors or other data sources from which information streams combine together to produce a desired data product continues to increase. Examples include solid-state camera detector arrays, synthesis telescopes, networks of traffic sensors, location information from mobile phones, and antenna arrays. The data products may include simple integration, data compression, and data combinations in multiple dimensions according to arbitrary rules, and may also include local operations where the required product results from behavior of the nodes. In this last case, the nodes may receive messages or tasks from a central processing facility as well. 
         [0003]    A particular subset of such systems does not have a single desired data product, but combines the data in multiple ways to provide multiple, distinct data products. Examples include distributed passive radar arrays and phased array radars, both of which need to track indeterminate and time-varying target populations, and networks of surveillance cameras that may need to track multiple disparate objects of interest like people and vehicles simultaneously. 
         [0004]    Generally, transferring the data from all of the data providers to a central processing unit addresses all of the data assimilations. The central processing facility applies the appropriate algorithms to extract the desired data product. In the other direction, the central processing facility transfers messages to all of the data recipients to cause the desired behavior. In either case, the data transfer requirements will overwhelm the system, either between the nodes and the central processing facility, or within the processor or processors. The addition of additional processors may not alleviate the bandwidth requirements because the data still needs to traverse the connections to get to the processors and may result in transferring the bandwidth requirements to other, less tractable areas of the network. 
         [0005]    One approach uses very high bandwidth, and therefore high cost, connections between the nodes and the central processor. For example, synthesis radio telescopes use high-bandwidth optical connections between the antennas and the processing facility, or ultra-fast communication links between processors in supercomputing installations. 
         [0006]    Alternatively, wider bandwidth communications and/or multiple processors or networks may handle small numbers of data products, but these solutions rapidly become untenable, if not impossible, at any cost. For example, where the system requirement needs to track every potentially hostile target, any inability to add a new target to the track can be fatal. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]      FIG. 1  shows an embodiment of a multi-sensor node system. 
           [0008]      FIG. 2  shows a flowchart of an embodiment of inter-node transmissions. 
           [0009]      FIG. 3  shows an embodiment of a crowd-scale image display. 
           [0010]      FIG. 4  shows an embodiment of a self-configuring surface display. 
           [0011]      FIG. 5  shows an embodiment of a mobile self-configuring display. 
       
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
       [0012]    To alleviate the bandwidth requirements in systems having multiple sensors or other data sources, one can distribute the task across the network such that each node can operate on the portion of the task for that particular node, update the packet as needed, then send the packet to another node or back to a central processor. This transfers the work of analyzing the data from the sources from the central processor to the individual nodes, and reduces the bandwidth to one packet traversing the network for a particular task. 
         [0013]      FIG. 1  shows an example of a multi-sensor network. In this example, each node  12  consists of a sensor  14 , some processor or other circuitry  18  that can perform some computations, a local memory  20 , a port  22  and a local time standard  16 . One should note that the use of the term ‘processor’ as used here encompasses any type of computational capability, whether embodied in an actual processing unit, or simpler circuitry that can perform basic mathematical functions. 
         [0014]    Similarly, one should note that while the node  12  includes a sensor, the node  12  may consist of a processing hub for multiple sensors, such as where one hub services some set of sensors. In some embodiments, the sensors may act as data sources to provide information for performance of a particular task or to answer a particular query, in others the sensors may act to locate a device within a larger context to allow the node to perform its portion of an overall task with no transmission upon completion. 
         [0015]    The term ‘task’ as used here means a task for the entire network to accomplish. It may also be referred to as the goal, and will typically reach the nodes as part of a specification within an inbound packet. The specification may include one or more of many different types of things, from a mathematical formula that requires sensor data, to an image for display. 
         [0016]    The central processing facility  24  that sends the packet may consist of a processor running on a computer, a server or other computing device, may consist of a large array of computers, etc. The central processing facility may also be a source of data, such as an image to display. It acts as a source on the sensor network, of either data or processing tasks. 
         [0017]    For example, in  FIG. 1 , the particular example has an array of antenna elements, such as  12 , more than likely in a phase array, in which the antennas follow a predetermined pattern of interference. In this particular embodiment, the antenna elements have received signals and stored the data from those signals in the local memory. The central processing facility has a required beam specification from the phased array, defined in terms of a summation of data streams from selected ones of individual antenna elements with coefficients and phase delays depending upon the position of the elements to a reference point and a particular time. 
         [0018]    The central processing facility sends a packet  26  out into the network with the description of the required beam shape, or a list of elements from which it needs data, and may include an operation that needs the data, such as summation, etc. The operation may require the node to append its data to the payload of the packet, or perform a computation using its data in addition to the other data, etc. Upon processing the packet, the node then updates the packet to create an updated packet  28  and routes the packet to another node on the list or to a node at a particular position, etc. In some instances, the node may determine it is the final node and send the packet back to the central processing facility. 
         [0019]    In processing the packet in this embodiment, the node  12  may read the description or specification, calculates how the data stream should be incorporated, retrieves the appropriate data for the designated time from its local memory  20 , applies the calculated coefficients and/or phase/time shifts and places the result in the payload of the now-updated packet. If the node is not the first to be visited, the payload may already contain a partial data product to which the node adds its own data, with the appropriate coefficients and shifts, and replaces the payload with the new product estimate. 
         [0020]    If the packet is routed according to a set of desired locations or nodes, and the node is not one of the nodes from which data is desired or that the condition required by the inbound data packet is not true, the node just routes the data packet with an untouched payload. However, it may alter the header or other metadata of the packet to reflect that the node handled the packet. 
         [0021]    In this embodiment, when the packet has traversed all of the network or the desired portion of the network, only the data of the data product with associated headers and metadata has traversed the network. The bandwidth requirements for such a packet are far lower than each of the sensor nodes transmitting its data to the central processing facility. The raw data never traverses the network, drastically reducing the amount of bandwidth needed. This may allow the central processing facility to send multiple packets to multiple nodes to start several tasks, or to divide one task into multiple pieces. 
         [0022]      FIG. 2  shows a flowchart of this particular type of process from the perspective of a node. At  30  the node receives the packet and extracts the network-wide task, or specification, at  32 . The node then determines its own role in fulfilling the task, finding a node portion of the task at  34 . It is important to note that unlike many models of distributed computing, the node determines its own role, it does not receive a divided portion of an overall task to perform that has already been identified by the central processing facility. Because the nodes are either their own data sources, or know something about themselves, like location, or both, they self-determine their role to fulfill in the task accomplishment. 
         [0023]    The node then completes the portion of the task that it has determined it should at  36 . As discussed above, the portion of the task may be to not perform a task, depending upon the nature of the way the packets are routed. If the packet does not identify a specific list of nodes to participate, but instead relies upon time, position or other information in the specification that will allow the node to determine whether or not it will be involved, the packet may come from any node that is routing it, rather than being specifically addressed to the particular node. These packets will at least need to be updated at  38  to include the node information, but the payload will remain untouched by this node. 
         [0024]    In some embodiments, such as where the sensors consist of cameras performing monitoring of hostile intentions, or even satellites looking for nuclear explosions, the specification may define a threshold or other value. Once the data in the packet meets that requirement, the node may determine it is the final node and return the packet to the central processing facility immediately. 
         [0025]    In some embodiments, the originator does not need to communicate with every sensor, recover data from every sensor, nor keep track of how many sensors reside in or function in the network. In one embodiment, for example, the packet includes an algorithm or other specification, with a list of members visited, and a payload consisting of a mean and a standard deviation of the sensor values all visited members. The length of the members list will indicate how many members have contributed to the payload. 
         [0026]    The specification instructs the current member to update the mean and the standard deviation in the payload using its own sensor value and add its own identifier to the list of members visited. The specification will then direct the sensor to test if its own sensor value is more than some predetermined number of standard deviations from the mean. If the sensor value of the current value is not outside that number of standard deviations, the node passes the packet on to the next packet. If the sensor value is outside the number of standard deviations, then an event, such as a nuclear explosion, has occurred and the packet it returned to the central processing unit immediately. 
         [0027]    In terms of  FIG. 2 , the updated packet transmission may then not automatically go to the next node. Depending upon the threshold or other condition set out in the packet, such as the standard deviation above, the node tests to see if it is the final node for that packet. If the threshold is not met, meaning that the condition is not met or the results are not yet sufficient, the answer is ‘no’ and the updated packet is routed to a next node. If the answer is yes, then the packet is transmitted back to central processing. 
         [0028]    In the above embodiments and the discussion of  FIG. 2 , the task requires a transmission of an updated packet. However, in some instances, the performing of the task does not involve any kind of transmission from the node after further processing. The node may forward the packet on after storing the task in the local memory, or it may just receive the task from a centralized processing facility directly. In these embodiments, the process will end at the completion of the node portion at  36 . 
         [0029]    For example, as shown in  FIG. 3 , there is a sporting event or other large attendance event at a venue  50 . The attendees will more than likely have cell phones, and more than likely many of them will be GPS-enabled phones with some computational computing capability. When the users get to the venue, they may receive a proximity broadcasted text message or there are signs up, telling them to go to the venues web page to ‘register’ their device. This may involve the user providing their cell phone number to the venue, or allowing them to download an app from the web page  42 . 
         [0030]    When an event occurs, such as a touchdown at a football game, user cell phones such as  40  that are active, that is both powered on and charged sufficiently, will receive an image  44 . The image may also specify some sort of reference points such as its corners such as  46 . The user&#39;s phone can then use its GPS sensor to determine its location in the overall image and what color it should display, as well as any variations over time, like blinking patterns, etc. The user&#39;s phone then may signal the user to hold the phone up as part of a larger image that says something like “TOUCHDOWN’ across the width of the venue  50 . 
         [0031]    In these embodiments, the node does not perform any further processing or forward any packets, but it still determines its role in the overall task and performs that task according to its determination. 
         [0032]    In other embodiments, the nodes may consist of ‘smart’ pixels. A ‘smart pixel’ as used here, means an autonomous pixel for use in a low-bandwidth pixel network. These pixels may reside in a display such as smart pixel wallpaper or smart wrap that can receive an overall image and a display mapping to all the pixels. Each pixel then uses a location sensor to determine its position in the image, pattern, etc., and displays the appropriate information. This type of display has no need to know or allow for obstructed or missing irregular areas on a building  60 , such as roof lines  62 , windows  64 , posted notices or other hangings such as  68 , the door  66 , etc. The smart pixels just determine their contributions and make them. This type of display is easily scalable and adaptable to any type of display, such as on a mobile platform, such as truck  80  having ‘smart’ wrap  82  that covers all of the surfaces of the truck without regard to corners, trim or other surface irregularities. The truck in this example could configure the display to match the function of the truck on that particular job, or to provide advertising space. 
         [0033]    In the above embodiments, the central processing facility does not need to know or does not need to care about any nodes that are out of the network, whether that node coincides with a window on a building used as a display surface, or a user&#39;s cell phone that is off and in a user&#39;s pocket. 
         [0034]    Additionally, since the sensor nodes reside in a network, some limited networking protocols could be instituted by the sensor nodes to further manage the transmission of packets between nodes according to traffic protocols, load distribution, etc. 
         [0035]    In this manner, it is possible to employ localized processing combined with sensor information to perform distributed tasks in a sensor network. The sensor information may provide the local processor with information used to perform a portion of an overall task, or allow it to locate itself in a larger context. In either case, the bandwidth requirements are reduced for the sensor network. 
         [0036]    It will be appreciated that variants of the above-disclosed and other features and functions, or alternatives thereof, may be combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations, or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.