Patent Publication Number: US-11051270-B2

Title: Single lamp localization system and method

Description:
This application claims the benefit of U.S. Provisional Patent Application No. 62/581,329 filed Nov. 3, 2017, the entire content being incorporated herein by reference. 
    
    
     GOVERNMENT INTEREST 
     This invention was made with government support under CNS-1525235 awarded by National Science Foundation. The government has certain rights in the invention. 
    
    
     BACKGROUND 
     Many existing indoor localization systems have achieved applaudable performance through comprehensive modeling of their envisioned working scenarios. However, their real-life deployment is often prohibited by high deployment overhead and performance degradation in dynamic environments. 
     SUMMARY 
     A 3D digital indoor localization system uses light emitting diode (LED) lighting infrastructures for localization by placing the design complexity in the light source while simplifying the receiver. Such an approach eases system deployment and calibration. In one example approach, the light source includes a convex lens and an array of LEDs, all configured as a single LED lamp. The localization system exploits the light splitting properties of the convex lens to create a one-to-one mapping between a location and the set of orthogonal digital light signals received from particular LEDs of the LED lamp. In one example approach, a user places a plurality of receivers throughout a room and illuminates the receivers using the LED lamp. The user then uses the output from each receiver to locate the respective receiver within the room as a function of the LEDs that illuminated the receiver. 
     In one example, a lamp includes a plurality of light emitting diodes (LEDs) arranged as an array of LEDs, a convex lens and a modulation distribution network, wherein the modulation distribution network receives a set of modulation signals and modulates light emitted by each LED with a modulation signal selected from the set of modulation signals to form digital light signals associated with each respective LED, wherein the convex lens is positioned to create a one-to-one mapping between a location and the digital light signals received from particular LEDs. 
     In another example, a localization system comprises a plurality of receivers; and an LED lamp, wherein the LED lamp includes a plurality of light emitting diodes (LEDs) arranged as an array of LEDs; a convex lens; and a modulation distribution network, wherein the modulation distribution network receives a set of modulation signals and modulates light emitted by each LED with a modulation signal selected from the set of modulation signals to form digital light signals associated with each respective LED, and wherein the convex lens is positioned to create a one-to-one mapping between a location and the digital light signals received from particular LEDs. 
     In yet another example, a method comprises modulating each light emitting diode (LED) in an LED lamp having an N×M array of LEDs with a modulation signal, wherein N and M are integers; determining, within a receiver having a light sensor S i , frequency components F i  in light received by the light sensor; constructing an N×M bitmap array associated with the receiver, wherein each pixel in the bitmap array is associated with an LED in the LED lamp and wherein constructing includes indicating, in the bitmap array, if a modulation signal associated with an LED is detected in a location associated with a pixel in the bitmap array; forming two or more one-dimensional projection vectors associated with the bitmap array, wherein each projection vector has an associated projection direction; determining, based on the projection vectors and on the projection direction of each projection vector, an area of activity on the bitmap array associated with light received from the LED lamp; and determining the receiver&#39;s location as a function of where the area of activity is located on the bitmap array. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  illustrates an example digital 3D indoor localization system that uses light to perform digital localization, in accordance with one aspect of the disclosure. 
         FIG. 2  illustrates another example digital 3D indoor localization system, in accordance with one aspect of the disclosure. 
         FIG. 3  illustrates localization based on signals received at a receiver, in accordance with one aspect of the disclosure. 
         FIGS. 4A and 4B  illustrate pixel illumination falling on receivers  110 , in accordance with one aspect of the disclosure. 
         FIG. 5  illustrates a binary bitmap representing light from the LED lamp falling on a sensor, according to one aspect of the disclosure. 
         FIG. 6  illustrates another binary bitmap representing light from an LED lamp falling on a sensor, according to one aspect of the disclosure. 
         FIG. 7  illustrates a binary bitmap representing light from a partially obstructed LED lamp falling on a sensor, according to one aspect of the disclosure. 
         FIG. 8  illustrates another method of locating the circle, in accordance with one aspect of the disclosure. 
         FIG. 9  illustrates a button-sized wearable device, in accordance with one aspect of the disclosure. 
         FIG. 10  illustrates a binary bitmap representing light from a partially obstructed LED lamp falling on a sensor, according to one aspect of the disclosure. 
         FIG. 11  illustrates a method of locating the circular region when the light from LED lamp is partially blocked, in accordance with one aspect of the disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Most existing localization systems are analog-based; their accuracy depends on the calibration of the model parameters and measurements of analog metrics such as time of flight (TOF), angles of arrival (AOA) and received signal strength (RSS). Some systems utilize the received RF signal strength for distance measurement, coupling with multilateration (MLAT) for localization. Analog-based approaches can achieve high accuracy with careful calibration in a static environment. However, they suffer performance degradation in dynamic environments where the cost of calibration is prohibitive. 
     It is known that analog approaches rely heavily on 1) the accuracy of model parameters, 2) the measurements of analog metrics, and 3) careful system calibration in a controlled environment. Hence in practice, when calibration is too costly or infeasible, their performance often degrades quickly in environments full of analog noise. For examples, RF RSS is noticeably affected by the antenna&#39;s orientation, and the RF phase measurements would be significantly distorted by multipath propagation. 
     Advanced analog-based localization techniques for tracking RFID tags have been described by Yang et al. in “Tagoram: Real-time tracking of mobile RFID tags to high precision using COTS devices,” Proceedings of the 20th Annual International Conference on Mobile Computing and Networking, ACM, 237-248. Such techniques rely on probabilistic models to characterize and offset such noises and achieves better accuracy. However, it is known that when the signal of interest itself is analog, it is difficult to completely offset all noises. In contrast, digital approaches make binary decisions (either “1” or “0”) on the existence of a signal/observation (e.g., a light signal as described herein) rather than depending on the absolute value of analog measurements in a calibrated model. Hence compared with analog approaches, digital approaches are more robust to noise, requiring minimum calibration overhead and more reliable. 
       FIG. 1  illustrates an example digital 3D indoor localization system that uses light to perform digital localization, in accordance with one aspect of the disclosure. In one example approach, system  100  includes receivers  110  and an LED lamp  102  oriented to illuminate the receivers  110 . Receivers  110  may be, for instance, deployed at various locations within a room. In one example approach LED lamp  102  includes LEDs  105  arranged as an array of LEDs. In one such example approach, LEDs  105  within LED lamp  102  are modulated via modulation signals from computer  112 . 
     As can be seen in  FIG. 1 , in one example approach, LED lamp  102  includes an LEDs  105  arranged as an array  104 , a modulation distribution network  106 , and a convex lens  108 . In one such approach, LED array  104  is connected through modulation distribution network  106  to a computer  112  executing a program for modulating LEDs in LED array  104 . System  100  exploits light splitting properties of a convex lens to create a one-to-one mapping between a location and light signals receivable at a receiver  110  at that location. Then by carefully designing a set of orthogonal light signals, an object is localized through binary detection of the set of light signals it receives. The approach described in the context of  FIG. 1  is both generic and versatile, suitable for a broad range of applications such as robot/human 3D posture recognition, object tracking, and UAV indoor navigation. 
     By requiring only binary detection at a receiver, LED lamp  102  shifts all the complexity into a single LED lamp  102  and minimizes the complexity of the receiver  110 . This asymmetric design concept significantly reduces the cost of light receivers  110 , requiring, in some example approaches, only an inexpensive light sensor (e.g. photo-diode). This design approach also eliminates the need for calibration and reduces the deployment cost by non-professional end-users, hence encouraging massive adoption of localization system  100 . Furthermore, even though a few existing systems have demonstrated their capabilities of indoor localization, LED lamp  102  is the first digital approach to achieve 3D localization of multiple objects simultaneously with a single lighting device. System  100  does depend on line-of-sight from LEDs in LED array  104  to receivers  110 , but that is a common assumption among light-based systems. 
     The merits of LED lamp  102  are listed below on decreasing importance: 
     Digital localization: As a digital approach, LED lamp  102  has robustness against 1) environmental noise (e.g. sunlight, fluorescent lamps), 2) fluctuation of light source intensity, 3) receiver orientation, and 4) disturbance along light propagation paths (e.g. reflection and attenuation). We prove these features via extensive system evaluation. 
     Concurrent localization: A single LED lamp  102  is capable of localizing multiple receivers  110  simultaneously with a single round of digital light generation. This feature is important when there is a growing number of users in a given indoor space, e.g., a large number of customers in a supermarket. 
     Low-Cost localization: In one example approach, in a prototype system  100 , LED lamp  102  was a COTS projector used to localize objects equipped with light sensors  110 . LED lamp  102  reduces the receiver complexity to a minimum and requires only a single lighting device to cover an area. 
     In one example approach, LEDs  105  in LED array  104  all are modulated at a different frequency. This requirement is relaxed in the advanced designs of LED lamp  102 , as described below. 
     Most LED fixtures today already consist of LEDs arranged in an array to approximate the same output as conventional lamps (because a single LED does not produce enough output for a mainstream application). Most such fixtures also include a convex lens attached on top of the LED array to direct light beams from the LEDs for desired applications. In one example approach, one can modify any such commercial light lamp into a 3D localization device  102  by coupling an LED array  104  with a convex lens. As shown in  FIG. 1 , LED lamp  102  device consists of an LEDs array  104  arranged on a panel and placed carefully adjacent to a circular convex lens  108 , such that light rays from the LEDs  105  refract through the lens  108  and form an inverse and enlarged image on the other side of lens  108 . In one such approach, LED array  104  (consisting of N×N individually controllable pixels) is controlled by a Computer/MCU  112  such that each LED pixel P i  blinks at a unique frequency f i  that acts as its identifier. In one such example approach, LEDs  105  are set to a fixed PWM duty circle so that LED lamp  102  still works as a homogeneous lighting device. A small form factor light sensor S i  operating as receiver  110  receives light only from a partial set of all LED pixels at its location. In one example approach, light sensor S i  analyzes the frequency spectrum of the received light signals, makes binary decisions on whether each frequency signal is received and sends back the received frequency components F i (e.g. {f 5 , f 7 , f 9 , . . . }) back to the LED lamp  102  device for processing. 
     In another such example approach, light sensor S i  captures the signals received from a portion of LEDs  105  and sends the signals to LED lamp  102  for processing. LED lamp  102  analyzes the frequency spectrum of the received light signals, makes binary decisions on the frequency signals received and determines the frequency components F i (e.g. {f 5 , f 7 , f 9 , . . . }) received by sensor S i  from LED lamp  102 . In one example approach, in making the binary decisions, LED lamp  102  digitally considers all local peaks on the frequency spectrum instead of looking at their absolute amplitude. Based on the geometric properties of light rays refracting through the lens in forming a sharp image, LED lamp  102  calculates the 3D locations of each sensor S i (X i , Y i , Z i ) from the F i  and the blinking frequencies across all LED pixels. It should be noted that the processing of the signals received at each receiver  110  can be offloaded to computer  112 , or to other processing systems. 
       FIG. 2  illustrates another example digital 3D indoor localization system, in accordance with one aspect of the disclosure. In one example approach, system  100  includes receivers  110  and an LED lamp  102  oriented to illuminate the receivers  110 . Receivers  110  may be, for instance, deployed at various locations within a room. In the example approach shown in  FIG. 2 , LED lamp  102  includes a light-based frequency distribution system  112  and a localization system  114 . Receivers  110  include a light sampling system  116 . In the example approach of  FIG. 2 , modulated light from frequency distribution system  112  illuminates light sampling system  116  in receiver  110 . In one such approach, light sampling system  116  samples the modulated light received and sends the sampled waveform to localization system  114 . In another such approach, light sampling system  116  determines the frequencies in the sampled waveform and sends a report detailing the frequencies to localization system  116  of LED lamp  102 . 
       FIG. 3  illustrates localization based on signals received at a receiver, in accordance with one aspect of the disclosure. In one example approach, system  100  operates in a 3D Cartesian coordinate system with the origin at the center of the lens  108 , with X-axis being the upward direction, Y-axis being the horizontal right direction, and Z-axis being the perpendicular direction away from lens  108 . In this Cartesian coordinate system, LED lamp  102  localizes each light sensor Si as its relative position (X i , Y i , Z i ) to the lens center. As can be seen in  FIG. 3 , each LED pixel Pi on the panel of LED array  104  has a unique cone-shaped visible region  120  (the shaded cones of  FIG. 3 ). As illustrated in  FIG. 3 , the visible region of any pixel (P i ) is the shaded region in which a pixel P i  is detectable by a sensor  122  in receiver  110 . 
       FIGS. 4A and 4B  illustrate pixel illumination falling on receivers  110 , in accordance with one aspect of the disclosure. In the examples shown in  FIGS. 4A and 4B  (shown in two dimensions), a light sensor S i  receives light content from a partial set of all LEDs  105 . In other words, S i  is within the visible region  120  of only a few LEDs  105 . In fact, the location of a light sensor S i  on the right side of the lens is uniquely defined by the set of pixels it receives light from: C i ={P j |S i ∈VR(P j ),∀j∈[1,N 2 ]}. From the  FIGS. 4A and 4B , it is clear that, in one example approach, the localization region of LED lamp  102  spans from the center of the lens to the distance where a sharp image  122  of LED  104  is formed. In another example approach, the localization region can be selected to be to the right of image  122 . 
     In one most example approaches, convex lens  108  is circular in shape and, therefore, C i ={P j |S i ∈VR(P j ),∀j∈[1,N 2 ]} is also a continuous circular area of pixels on the LED panel of LED array  104 . It is not difficult to visualize that the “circle” C i  of pixels grows bigger as S i  moves closer to the lens; and that C i  moves upward on the panel when S i  moves vertically downward. In fact, the vertical distance from the sensor  110  to the lens  108  may be calculated with only the size of the “circle” C i . The vertical and horizontal position X i , Y i  of the sensor can be calculated with the C i  size and its location on the panel. Hence the problem of localizing a light sensor S i  at (X i , Y i , Z i ) is now equivalent to the problem of locating its observable “circle” of pixels C i ={P j |S i ∈VR(P j ),∀j∈[1,N 2 ]} on the LEDs array panel. In one example approach, locating C i  on the LED panel simply involves comparing the frequency signals F i  received at S i  with the blinking frequency distribution across the LED pixels. 
       FIG. 5  illustrates a binary bitmap representing light from an LED lamp falling on a sensor, according to one aspect of the disclosure.  FIG. 5  visualizes C i ={P j |S i ∈VR(P j ),∀j∈[1,N 2 ]} using a 2D binary bitmap where pixels are marked as white if their blinking frequency matches one of the received light frequencies, in accordance with one aspect of the disclosure. As expected, a circle area of “white” pixels shows up in the bitmap plot. 
     A method of calculating the 3D location of a light sensor based on the geometrical optical property of the convex lens  108  will be described next. Note that the geometrical optical property is fixed for a particular lens and is not influenced by external environment, eliminating the need for in-situ calibration. Table 1 includes symbols used in calculating the location. 
     
       
         
           
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Symbols used in Equ. 3, 4, 5 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
            
               
                   
                 S i   
                 A light sensor i 
               
               
                   
                 C i   
                 Set of pixels shedding light on S i   
               
               
                   
                 R 
                 Radius of the lens 
               
               
                   
                 N 
                 Number of pixels in one dimension of the panel 
               
               
                   
                 f 
                 Focal length of the lens 
               
               
                   
                 d o   
                 Distance from the LED panel to the lens 
               
               
                   
                 d i   
                 Distance from the lens to the sharp image 
               
               
                   
                 D 
                 Number of pixels in the diameter of the circle C 
               
               
                   
                 h 
                 LED panel has the dimension h(meter)*h(meter) 
               
               
                   
                 X c   
                 Num. of pixel from C i  center to the left of panel 
               
               
                   
                 Y c   
                 Num. of pixel from C i  center to the right of panel 
               
               
                   
                 K 
                 Number of times each frequency is reused 
               
               
                   
                   
               
            
           
         
       
     
     Localizing in the Z-axis: The perpendicular distance (sometimes referred to as the depth) from the sensor to the lens Z i  is a function of only the size of the pixel circle C i ={P j |S i ∈VR(P j ),∀j∈[1,N 2 ]}. This agrees with an observation that a light sensor receives light from more pixels as it moves closer to the lens. The equation to calculate Z i  as a function of D, the number of pixels in the diameter of the circle C i , is given in Equation.1. 
                     Z   i     =         f   A     ⁡     (   D   )       =       2   ⁢   RN   ⁢           ⁢     fd   o           2   ⁢   RN   ⁢           ⁢     (       d   o     -   f     )       +   fhD                 (   1   )               
where A is a combined symbol representing all hardware parameters including: R—diameter of the lens (unit: meter), N—number of pixels in dimension of the LED panel (unit: 1), f—focal length of the lens (unit: meter), d o —distance from the LED panel to the lens (unit: meter) and h—actual height of the LED panel (unit: meter).
 
     Localization in the X, Y-axis: X i  and Y i  depend on both the diameter D and location of the circle center (X i , Y i ) of C i  on the LED panel. The equation to calculate X i  and Y i  as a function of D, X c  and Y c  is given below. 
                     X   i     =         F   A     ⁡     (     D   ,     X   c       )       =       hfR   ⁡     (     N   -     2   ⁢     X   c       -   D     )           2   ⁢     RN   ⁡     (       d   o     -   f     )         +   fhD                 (   2   )                 Y   i     =         f   A     ⁡     (     D   ,     Y   c       )       =       hfR   ⁡     (     N   -     2   ⁢     Y   c       -   D     )           2   ⁢     RN   ⁡     (       d   o     -   f     )         +   fhD                 (   3   )               
The above equations are derived by Liu et al. in “SmartLight: Light-weight 3D Indoor Localization Using a Single LED Lamp,” Proceedings of the 15th ACM Conference on Embedded Network Sensor Systems, Nov. 6-8, 2017, Delft, Netherlands, the discussion of which is incorporated herein by reference.
 
     In the example approach described above, LED lamp  102  modulates each LED pixel at a unique PWM frequency. Such an approach performs well at localizing in a small space with low requirement on localization granularity. However, if LED lamp  102  is used to localize in a large work space such as the distribution center, an increasing number of pixels and unique frequencies are required to guarantee the same accuracy. To guarantee the system scalability and efficiency, it can be advantageous to reduce the required number of unique frequencies. This section proposes advanced designs to improve LED lamp  102  across scalability and reliability. 
     In one example approach, system  100  reduces the total number of frequencies required from N*N to (N*N)/K by reusing each frequency K times. K is the “reuse ratio.” Each pixel P i  is randomly allocated one of the (N*N)/K frequencies with a uniform probability of K/(N*N). As detailed above, due to the light refracting property of convex lenses, a light sensor S i  receives light from only a circular area of pixels C i ={P j |S i ∈VR(P j ),∀j∈[1,N 2 ]} on the LED panel. Understandably some LED pixels in C i  may blink at the same frequencies. We denote the number of unique frequencies that S i  receives as K′. The probability for another pixel outside of C i  to also blink at one of the frequencies received is ρ=K′/((N*N)/K). 
     LED lamp  102  compares the received frequency components F i (e.g. {f 1 , f 3 , f 9  . . . ) by a sensor S i  with the blinking frequencies of each LED on the panel. In one example approach, a 2D bitmap array with the same dimension N*N is used to represent all LED pixels on the panel. A value of either “1”(Yes) or “0”(No) is allocated to each bitmap element. “1” presents that the corresponding LED blinks at one of the received frequencies in Fi and “0” otherwise. 
       FIG. 6  illustrates a binary bitmap that illustrates light from an LED lamp falling on a sensor, according to one aspect of the disclosure. In the example shown in  FIG. 6 , a pixel is shown as “white” if the corresponding array element value is “1”. Compared with  FIG. 5  in the basic design, the task now becomes how to find the circular area of pixels C i ={P j |S i ∈VR(P j ),∀j∈[1,N 2 ]} hidden in the “ocean” of sparse false positive “white” dots. The false positive pixels exist because every frequency is randomly reused, and these pixels happen to be allocated the same frequency as one of the LEDs in C i . Notice that the light sensor S i , at its location, does NOT actually receive the light associated with the false positive “white” pixels. 
     In one approach, system  100  uses frequency-shift keying (FSK) to modulate LEDs  5  and makes binary decisions on the existence of frequencies instead of their absolute amplitude. In such an approach, system  100  is resistant to random ambient real-life noises such as sunlight and fluorescent lamps (after avoiding power line frequency). 
     As a sidebar, techniques exist in the literature to find the “circle” C i  in a bitmap full of noises, including density-based clustering technique DB-SCAN and image processing techniques such as circular Hough transform (CHT). Neither approach is suitable for system  100 . DB-SCAN can be time-costly as it requires computing all pairwise proximities to find out the nearest neighbors. Worse still, the accuracy of DBSCAN depends on user-specified parameters including “Eps” and “MinPts”, which are particularly difficult to specify in the design of system  100  because circle sizes and the distribution of false positive pixels is not fixed. CHT requires too much storage and computing power to be used for a real-time application like localization. With the radius unknown, CHT must go through multiple steps including edge detection preprocessing, radius estimation and voting for the circle. It also must deal with numerous spurious circles present after edge detection. 
     Instead, in one example approach, system  100  uses multi-directional projection to detect the circle C i . In one such example approach, a technique for locating the circle C i  converts the 2D problem of locating a circle into a 1D problem of finding a peak. As shown in  FIG. 6 , the N*N 2D bitmap array is projected (shadowed) onto the X-axis direction by counting the number of “1s” in each vertical column, thereby forming a new 1*N 1D vector. This 1D vector can be considered as the shadow of the 2D array in the x-axis direction. It represents the number pixels in each column of the LED panel that are marked “white”.  FIG. 6  plots the 1D vector as a curve. The shadow of the “circle” is apparently located at the “peak” of the curve. To find the peak, a horizontal line  200  with a constant value y=ρ*N is used to intercept the curve. Consider the intervals bounded by every pair of adjacent intersection points. The largest intersection interval  202  is used as the peak interval and the shadow of the circle. The line y=ρ*N is used to intercept the curve because it is the probabilistic mean value of any 1D vector element outside of the circle shadow region. Repeat the above steps once more in the y-axis to find the full location of the circle C i  on the panel. To further increase the accuracy, take the average results of repeating the above directional projection procedure in multiple different directions. See detailed justifications and analysis in Liu et al. in “SmartLight: Light-weight 3D Indoor Localization Using a Single LED Lamp,” Proceedings of the 15th ACM Conference on Embedded Network Sensor Systems, Nov. 6-8, 2017, Delft, Netherlands, the discussion of which is incorporated herein by reference. 
       FIG. 7  illustrates a method of locating the circle, in accordance with one aspect of the disclosure. In the example of  FIG. 7 , system  100  establishes the blinking frequency of each LED pixel on the LEDs array panel through random frequency reuse, as detailed above ( 300 ). In one example approach, each light sensor S i  analyses the received frequency components F i (e.g. {f 3 , f 5 , f 9 , f 11 }) in its received light, and sends F i  back to LED lamp  102 . A 2D integer bitmap array with the same dimension of the pixels N*N is constructed to represent if the corresponding pixel blinks at one of the frequencies in F i ( 302 ). In one such example approach, an array element is valued either “1”(Yes) or “0”(No), as detailed above. 
     System  100  projects the N*N 2D bitmap array onto the X-axis, forming a new 1D vector by, for instance, counting the number of “1s” in each column. In one example approach, system  100  plots the 1D vector as a curve. In one example approach, system  100  repeats the above steps in the y-axis direction and several other directions ( 304 ) and then calculates the full location of the circle on the LED panel as a function of the projections ( 306 ). 
     In one example approach, system  100  may increase the accuracy of the calculation of the full location of the circle by repeating the above procedures m times, each time using a different set of random blinking frequencies for the LEDs array ( 308 ). 
       FIG. 8  illustrates another method of locating the circle, in accordance with one aspect of the disclosure. In the example of  FIG. 8 , system  100  establishes the blinking frequency of each LED pixel on the LEDs array panel through random frequency reuse, as detailed above ( 350 ). In one example approach, each light sensor S i  analyses the received frequency components F i (e.g. {f 3 , f 5 , f 9 , f 11 }) in its received light, and sends F i  back to LED lamp  102 . A 2D integer bitmap array with the same dimension of the pixels N*N is constructed to represent if the corresponding pixel blinks at one of the frequencies in F i ( 352 ). In one such example approach, an array element is valued either “1”(Yes) or “0”(No), as detailed above. 
     System  100  projects the N*N 2D bitmap array onto a number of projections, forming new 1D vectors for each projection by, for instance, counting the number of “1s” in each column ( 354 ). In one example approach, system  100  plots the 1D vector as a curve. All 1D vector elements outside of the circle shadow on the curve should oscillate randomly around a mean value of ρ*N. In one example approach, system  100  applies a horizontal constant value line y=ρ*N to intercept the wave and uses the largest interception interval as the shadow of the circle C i  on the x-axis direction ( 356 ). System  100  then calculates the full location of the circle on the LED panel as a function of the shadows of the circles ( 358 ). 
     In one example approach, system  100  increases the accuracy of the calculation of the full location of the circle by repeating the above procedure m times, each time using a different set of random blinking frequencies for the LEDs array ( 360 ). 
     False Detection Elimination will be discussed next. The effect of using a constant line y=ρ*N to intercept the projection curve can be seen by projecting the 2D array toward the X-axis direction. For example, the circle C i  system  100  is trying to localize on the 2D bitmap may be centered at ( 100 ,  100 ) with a radius of 20 on the LED panel. Only 2000 available frequencies are used in the system, which saves 95% of frequencies as would be required by the basic design of LED lamp  102 . After the 2D to 1D projection, the shaded peak region of the curve is apparently the shadow of the circle C i  on X-axis direction. This region is termed the circle shadow region. Anywhere else on the curve outside of the circle shadow region essentially counts the number of false positive white pixels in the corresponding N*1 column in the 2D bitmap array. Since each pixel outside of C i  has the probability ρ to be marked white, each value on the curve and outside of the circle shadow region is thus a random variable that follows the Gaussian distribution X˜N(ρN,Nρ(1−ρ)), with a mean of ρ*N and variance of Nρ(1−ρ). Each value on the curve outside of the circle shadow region has a 50% probability to be above its mean value y=ρ*N and another 50% probability to be below its mean. Thus, having an intersection interval of length L at a certain location outside of the circle shadow region is equivalent to having (L−1) consecutive Gaussian random variables larger than its mean value. The probability of an intersection interval of length L at a certain location outside of the circle shadow is calculated as 
                 (     1   2     )       L   -   1       .         
The probability of having a false positive intersection interval L=6 at a certain location outside the circle shadow is 3.125%.
 
     That the false positive rate from a single projection is 3.125% does not fully represent the full power of the techniques described for system  100 . By combining the projecting results in a large enough number of directions, the probability of a false positive circle is negligible. To yield a false positive circle C i , the projection results in each direction must be consistent with each other. First, their false positive intersection interval must be of the same length; Second, the false positive intersection intervals in each direction must be the shadow of the same circle. The probability of projection results to consistently yield a false positive circle at a certain location is equivalent to the probability of having a continuous circle of false positive white pixels there. Since the probability of one false positive white pixel outside of C i  is ρ, the probability of a false positive circle C i  of the diameter of D pixels at a certain location is thus calculated as 
               ρ     π   *       (     D   2     )     2         .         
To further increase the robustness of LED lamp  102 , the same algorithm procedures can be repeated m times with a different set of randomized blinking frequency pattern across all LED pixels. The results returned from all experiments should report the same circle before it is accepted as the real C i . The probability of a false positive circle C i  with a diameter of D at a certain location is hence further reduced to
 
               ρ     π   *       (     D   2     )     2     *   m       .         
Such an approach has, therefore, superior robustness against noises of false positive white pixels.
 
     Although extremely rare, system  100  is capable of recovering from the case that the shadow region of the circle may be separated into two intersections. This reason may be, for instance, because white pixels from the circle are not enough to offset the random variation from other pixels. The first strategy is to combine long adjacent intersections as we proved earlier that a false positive intersection interval longer than six is rare. The second strategy is to reduce the standard deviation of pixels outside of C i  by using the mean value of multiple random variable samples. We may achieve this by repeating the experiment m times with different blinking frequencies across the pixels, then take the mean of the m bitmaps generated, and then finally use the mean of m interception curves to intercept the projection curve of the mean bitmap in order to find the circle shadow. Consider the probability of the circle shadow on the x-axis separated into two smaller intersection intervals. Denote the number of white pixels contributed by the circle C i  at this location of the curve as Δ. The number of white dots pixels outside of C i  in the same column is a random variable rv that follows normal distribution rv˜N(ρ*(N−Δ),(N−Δ)ρ(1−ρ)). The probability of the circle shadow divided here is thus Probability(rv+Δ&lt;N*ρ), where (rv+Δ) can be treated as a new random variable that follows a new normal distribution (rv+Δ)˜N(ρ*(N−Δ),(N−Δ)ρ(1−ρ)). By repeating the experiments m times and use the mean value Var( rv ), Probability(rv+Δ&lt;N*ρ) is reduced give that ( rv +Δ)˜N( ρ *(N+Δ)+Δ,(N−Δ) ρ (1− ρ )/m) has a reduced variance. That is, let rv1, rv2, . . . , rvn be a n random sample from an identical distribution, Var( rv )=(Var(rv1)+Var(rv2)+ . . . Var(rvn))/N 2 =(1/N)Var( rv ). 
     In one example approach, system  100  is performs localization of multiple sensors in parallel. Multiple light sensors at different locations receive light from a different set of light pixels on the LED panel. In one such approach, LED lamp  102  localizes multiple light sensors simultaneously without changing the blinking frequency patterns across the LED pixels. To do this, LED lamp  102  treats the received light frequency components F i  of each sensor separately and find its circle of pixels C i  by comparing F i  with the blinking frequencies of all LED pixels. For example, when two sensors S 1  and S 2  send their respective received frequencies F 1  and F 2  to the LED lamp  102  controller, LED lamp  102  will not combine F 1  and F 2 . Instead, it compares F 1  with the blinking frequency of each pixel to find C 1 ; it compares F 2  with the blinking frequency of each pixel to find C 2 , etc. 
     It should be noted that the localization error of LED lamp  102  increases with Z-axis distance. This effect is not mainly due to the lower signal-to-noise ratio (SNR) at further distances from the projector. In fact, the impact of the signal-to-noise ratio is largely subdued by the digital approach of making binary decisions in LED lamp  102 &#39;s localization algorithm. If N is large enough, degradation in localization granularity at longer distances becomes increasingly unnoticeable. 
     As the number of LED pixels “N” in one dimension of the LED panel increases, the projected grids have a finer granularity. Understandably localization accuracy of the LED lamp  102  basic design improves as N increases. Localization granularity in estimating the distance to the projector improves substantially as N increases from 76 to 1000. Furthermore, as N increases, the required percentage of unique frequencies needed decreases. 
     Ambient light has no noticeable impact on the performance of LED lamp  102  as long as the light sensor is not saturated. This is expected because ambient noises in practical life such as lighting (after avoiding power line frequency) and sunlight do not carry a fixed frequency. In addition, the performance of LED lamp  102  is little impacted by an uncalibrated decrease on signal strength. 
     System  100 , therefore, is a light-based 3D indoor localization design that models the refracting path of light rays and makes binary decisions on the reception of frequency modulated signals. System  100  is highly robust and accurate because it does not assume an in-situ signal strength attenuation model or rely on absolute signal strength. It achieves centimeter level accuracy even on a low refresh rate projector implementation. System  100  has demonstrated experimentally that LED lamp  102  is robust to various environmental and operational effects, indicating the potential digital localization can offer. With the availability of rapidly-switching LEDs  105  in LED array  104  in a future version of LED lamp  102 , localization granularity will improve further. 
       FIG. 9  illustrates a button-sized wearable device, in accordance with one aspect of the disclosure. In the example approach of  FIG. 9 , button  400  typically rests in a low power sleep mode but wakes up from sleep with a low lag and delivers high-fidelity data wirelessly with a bare-minimum power of 0.2574 mW in its most efficient mode and 53.0475 mW in a rigorous mode. In one example approach, button  400  has a diameter of 25 mm and is powered by a coin battery. It may be designed, for instance, with a TI CC2511 SoC with a 2.4 GHz SMD 2450AT18A100 antenna and a SMD 12-C digital RGB color sensor on board. In one such example approach, light sensor  122  has an extremely small dimension of 3.0*4.2*1.3 mm, a photosensitive area of 0.54×1.1 mm and consumes an average of 0.2475 mW power in active mode. 
     The localization approaches described above work even when line of sight is partially blocked. An example technique for localizing the light sensor even when a portion of the path to an object is partially blocked is described in the context of  FIG. 10 . 
       FIG. 10  illustrates a binary bitmap representing light from a partially obstructed LED lamp falling on a sensor, according to one aspect of the disclosure. As discussed above, light sensors  110  receive light signals from a circular region of LED light pixels when there is no obstruction of line-of-sight. When there is partial obstruction light, the circular region may be degraded into a “waning moon” or “half-moon” shape, as illustrated in  FIG. 10 . The problem may therefore be reduced to reconstructing the full circular region, i.e., its center and radius from the “waning moon” shape. 
     One solution is to project the 2D bitmap in multiple directions as shown by the projection lines  210  in  FIG. 10 . If the “waning moon” shape still preserves a moderate proportion of the circular edge, the multiple projection lines may be used to reconstruct the full circle. Without obstruction of light, the vertical projection lines all remain tangent to the full circle. Every two pairs of projection lines intersect and forms a parallelogram at the center of the circle in  FIG. 10 . The center of the parallelogram is the circle center and the perpendicular distance between each pair of lines is the diameter. Hence when there is partial obstruction of light, false positive projection lines will form smaller parallelograms with the other pairs of projection lines reflecting the unblocked areas of the center. In the example illustrated in  FIG. 10 , projection  210 .A and  210 .B form a parallelogram defined by the edges of the half-moon shape. False positives may be disregarded or may be given a much lower weight in determining the circle center. In one example approach, the circle center is calculated as a weighted average of all parallelogram centers. 
       FIG. 11  illustrates a method of locating the circular region when the light from LED lamp  102  is partially blocked, in accordance with one aspect of the disclosure. In the example of  FIG. 11 , system  100  establishes the blinking frequency of each LED pixel on the LEDs array panel through random frequency reuse, as detailed above ( 500 ). In one example approach, each light sensor S i  analyses the received frequency components F i (e.g. {f 3 ,f 5 ,f 9 ,f 11 }) in its received light, and sends F i  back to LED lamp  102 . A 2D integer bitmap array with the same dimension of the pixels N*N is constructed to represent if the corresponding pixel blinks at one of the frequencies in F i ( 502 ). In one such example approach, an array element is valued either “1”(Yes) or “0”(No), as detailed above. 
     System  100  projects half-moon shape of the N*N 2D bitmap array onto a number of projections, forming new 1D vectors for each projection by, for instance, counting the number of “1s” in each column ( 504 ). In one example approach, system  100  plots the 1D vector as a curve. All 1D vector elements outside of the circle shadow on the curve should oscillate randomly around a mean value of ρ*N. In one example approach, system  100  applies a horizontal constant value line y=ρ*N to intercept the wave and uses the largest interception interval as the shadow of the circle C i  on the x-axis direction ( 506 ). System  100  then calculates the full location of the circle on the LED panel as a function of the shadows of the circles ( 508 ). 
     In one example approach, system  100  increases the accuracy of the calculation of the full location of the circle by repeating the above procedure m times, each time using a different set of random blinking frequencies for the LEDs array ( 510 ). The above technique works more effectively in determining the sensor location when the majority portion of the circular shape is preserved and is less effective as the amount of obstruction increases. 
     The impact of design choices will be discussed next. As the number of LED pixels “N” in one dimension of the LED panel increases, the projected grids have a finer granularity. Understandably localization accuracy of the system  100  design improves as N increases. 
     The reuse ratio reduces the required unique frequencies while maintaining similar accuracy. For N=1000, system  100  requires less than 2% (K=50) of unique frequencies to achieve comparable performance in the basic design. In fact, as N further increases, the required percentage of unique frequencies further decreases. 
     System  100  uses Frequency-shift keying and makes binary decisions on the existence of frequencies instead of their absolute amplitude. System  100  is, therefore, resistant to random ambient noises in real life, such as sunlight and fluorescent lamps (after avoiding power line frequency). Tests showed that ambient light has no noticeable impact on the performance of system  100  as long as the light sensor is not saturated. This is expected because ambient noises in practical life such as lighting (after avoiding power line frequency) and sunlight do not carry a fixed frequency. 
     Epsilon, Weighted-average and Coverage depend on received signal strength; hence they have to carefully calibrate each lighting device to account for the device diversity. System  100  suffers little impact from uncalibrated decreases on signal strength. Epsilon are most affected by the unexpected change in the emitted power without calibration as it reuse the absolute RSS value to infer distance. 
     Receiver orientation has an effect on received signal strength. Received light signal strength is directly related to the incidence angle of light by a roughly cosine relationship. Therefore, indoor localization techniques that rely on calculating distances from the received signal strength must carefully account for the impact of device orientations to guarantee accuracy. Epsilon, for example, uses cellphone IMU chip (combination of accelerometer, magnetometer, and gyroscope sensors) to estimate the receiver orientation used in a Lambertian propagated signal strength model. 
     Error in orientation estimation is usually the main source of localization error. The approach used for system  100  localizes the “light sensitive area” on a sensor by modeling the traveling paths of light rays instead of the absolute received signal strength. Hence it does not require the information of receiver orientation. Likewise, the design of system  100  reduces the impact of reflectors and propagation disturbance on localization. 
     One other concept that may be worth mentioning is the ability to determine orientation. Because of the digital nature of these techniques, position determination is rather invariant to orientation since the determination is binary—does sensor  122  see X frequency or not? However, with more than one proximate sensor  122  on the object of interest, in some example approaches, system  100  determines orientation based on the relative position of the sensors. 
     What is discussed above is a light-based 3D indoor localization design that models the refracting path of light rays and makes binary decisions on the reception of frequency modulated signals. System  100  is highly robust and accurate because it does not assume an in-situ signal strength attenuation model or rely on absolute signal strength. It achieves centimeter level accuracy even on a low refresh rate projector implementation. System  100  has demonstrated in various test environments that it is robust to various environmental and operational effects, indicating the potential that digital localization can offer. The addition of rapidly-switching LED array panels to system  100  will improve localization granularity even further. 
     The techniques described in this disclosure may be implemented, at least in part, in hardware, software, firmware or any combination thereof. For example, various aspects of the described techniques may be implemented within one or more processors, including one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuitry, as well as any combinations of such components. The term “processor” or “processing circuitry” may generally refer to any of the foregoing logic circuitry, alone or in combination with other logic circuitry, or any other equivalent circuitry. A control unit comprising hardware may also perform one or more of the techniques of this disclosure. 
     Such hardware, software, and firmware may be implemented within the same device or within separate devices to support the various operations and functions described in this disclosure. In addition, any of the described units, modules or components may be implemented together or separately as discrete but interoperable logic devices. Depiction of different features as modules or units is intended to highlight different functional aspects and does not necessarily imply that such modules or units must be realized by separate hardware or software components. Rather, functionality associated with one or more modules or units may be performed by separate hardware or software components, or integrated within common or separate hardware or software components. 
     The techniques described in this disclosure may also be embodied or encoded in a computer-readable medium, such as a computer-readable storage medium, containing instructions. Instructions embedded or encoded in a computer-readable medium may cause a programmable processor, or other processor, to perform the method, e.g., when the instructions are executed. Computer readable storage media may include random access memory (RAM), read only memory (ROM), programmable read only memory (PROM), erasable programmable read only memory (EPROM), electronically erasable programmable read only memory (EEPROM), flash memory, a hard disk, a CD-ROM, a floppy disk, a cassette, magnetic media, optical media, or other computer-readable storage media. It should be understood that the term “computer-readable storage media” refers to physical storage media, and not signals or carrier waves, although the term “computer-readable media” may include transient media such as signals, in addition to physical storage media.