Abstract:
One embodiment of the present invention provides a system that locates a set of target transmitting mechanism using a mobile sensing infrastructure. During operation, the system determines a reference frame of a sensing mechanism by detecting signals from at least two transmitting mechanisms. The system further determines locations of the target transmitting mechanism relative to the reference frame using the sensing mechanism. In addition, the system produces a result to indicate the locations of the target transmitting mechanisms.

Description:
BACKGROUND 
     1. Field of the Invention 
     The present disclosure relates to sensing technologies. More specifically, the present disclosure relates to a method and system for locating devices using a mobile sensing infrastructure. 
     2. Related Art 
     Various local or indoor positioning systems (LPS) have been developed in recent years. The signal metrics for localization include Radio Signal Strength (RSS), Angle of Arrival (AOA), Time of Arrival (TOA), and Time Difference of Arrival (TDOA). One advantage of RSS-based localization is the low cost of hardware, since most buildings are equipped with wireless local area network (WLAN) with many existing access points (AP), while the disadvantages are its low accuracy (on the order of several meters) and lack of robustness in cluttered environments, the expensive, manual processes of surveying and/or fingerprinting of the environment. 
     There has been a long history of using ultrasound/acoustic TOA for localization. Ultrasound/acoustic TOA-based localization has better accuracy (approximately 10 cm), but also has relatively short ranges, narrow directionality, and limited robustness in cluttered environments. It is also difficult to produce transmission and receiving sensitivities which are omnidirectional along all three dimensions. 
     AOA sensors are typically built using a sensor array, i.e., with several receivers arranged in a certain pattern to detect signal phase shifts between them. Therefore, AOA sensors usually cost more than other types of sensor. 
     Ultra wideband (UWB) technology makes precise indoor localization possible due to its long range (which can extend as far as 100 m) and its high accuracy (on the order of 15 cm). Some UWB systems use TOA or TDOA signals with homogenous nodes. That is, each node has a transmitter and a receiver, and can sense the distance from neighboring nodes within certain range. Other UWB systems may contain two types of nodes: UWB tags and sensors. Tags are UWB transmitters, do not generally have the ability to process data, and generally cannot communicate with each other. Sensors typically include an array of UWB receivers configured to obtain an AOA, consisting of yaw and pitch bearings from the receiver to a tag. 
     Typically, transmitters can be light and small. AOA sensors, on the other hand, are often heavier and larger. The cost of UWB tags is typically much lower than that of UWB sensors. 
     In conventional sensing systems, typically a set of fixed, calibrated UWB sensors in precisely known positions detect a mobile tag&#39;s signal. The host computer processes the data from UWB sensors and calculates the locations of the mobile tags. In most applications, the UWB sensors are stationary and permanently installed, while the UWB tags are mobile and tracked by the sensors whenever they are within the sensing range of the sensors. However, such a configuration typically requires a number of expensive UWB sensors, and the installation and calibration of these sensors can be very costly. 
     SUMMARY 
     One embodiment of the present invention provides a system that locates a set of static target transmitting mechanisms using a mobile sensing infrastructure. During operation, the system determines a reference frame of a sensing mechanism by detecting signals of at least two transmitting mechanisms. The system further determines locations of any other target transmitting mechanisms relative to the reference frame using the sensing mechanism. In addition, the system produces a result to indicate the locations of the target transmitting mechanisms. 
     In a variation on this embodiment, a transmitting mechanism includes an ultra-wideband transmitter. The sensing mechanism includes one or more ultra-wideband receivers. 
     In a variation on this embodiment, the sensing mechanism comprises at least two receiver modules placed in pre-determined positions relative to each other. Each receiver module is configured to detect an angle of arrival (AOA) of a signal from a transmitting mechanism. 
     In a variation on this embodiment, determining the location of target transmitting mechanism involves computing a set of x, y, and z coordinates based on the respective AOA of a signal from the target transmitting mechanism detected by each receiver module in the sensing mechanism. 
     In a variation on this embodiment, the sensing mechanism can be mobile. 
     In a further variation, determining the location of the target transmitting mechanism involves relocating the sensing mechanism, so that signals from the target transmitting mechanism and at least one transmitting mechanisms can be detected at the same time, wherein the locations of the at least one transmitting mechanism relative to the reference frame is known. 
     In a variation on this embodiment, the target transmitting mechanism is attached to an object. The system determines the location of the transmitting mechanism. Further, the system produces a result to indicate a dimension and/or location of the object based on the location of the transmitting mechanism attached to the object. 
     In a further variation, determining the location of each of the additional transmitting mechanism involves detecting simultaneously a signal from at least one transmitting mechanism the location of which relative to the reference frame have been determined. 
     In a variation on this embodiment, the target transmitting mechanism is attached to an object. Furthermore, the result produced indicates the location of the object. 
     In a variation on this embodiment, the system uses a number of measurements of the AOA data from the set of transmitting mechanisms, and refines the locations of the transmitting mechanisms based on the measurements. 
     In a variation on this embodiment, the system uses the transmitting mechanisms as a location infrastructure to track mobile sensors after the transmitting mechanisms are localized. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  illustrates a histogram of error distributions of yaw and pitch with respect to their mean values for a fixed pair of sensor and tag in accordance with one embodiment of the present invention. 
         FIG. 2  illustrates the effect of averaging on standard deviations of angle errors in accordance with one embodiment of the present invention. 
         FIG. 3  illustrates the original (star) and grouped (diamond) data points for a sensor/tag pair in accordance with one embodiment of the present invention. 
         FIG. 4  presents a time diagram illustrating the process of obtaining common data points from two separate sources in accordance with one embodiment of the present invention. 
         FIG. 5  illustrates a local reference frame for a sensor and AOA of a tag in accordance with one embodiment of the present invention. 
         FIG. 6  illustrates a two-sensor platform  600  with a local frame in the center between the sensors in accordance with one embodiment of the present invention. 
         FIG. 7  illustrates a 2D projection of the two-sensor platform  600  in accordance with one embodiment of the present invention. 
         FIG. 8  illustrates a number of tags distributed on walls in accordance with one embodiment of the present invention. 
         FIG. 9  illustrates a number of tags distributed along a hallway in accordance with one embodiment of the present invention. 
         FIG. 10  illustrates a 2D projection of a number of wall tags in accordance with one embodiment of the present invention. 
         FIG. 11  illustrates a 2D projection of a number of hallway tags in accordance with one embodiment of the present invention. 
         FIG. 12  illustrates an exemplary computer system that facilitates locating of devices with embedded location tags in accordance with one embodiment of the present invention. 
     
    
    
     TABLE I presents a pseudo code for the leap frog computation in accordance with one embodiment of the present invention. 
     DETAILED DESCRIPTION 
     The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the claims. 
     The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer readable media now known or later developed. 
     Overview 
     Embodiments of the present system provide a system that localizes tags from a mobile UWB sensor base. This arrangement reduces the infrastructure cost of building a smart space or can be used as disposable ad-hoc deployment of location systems for emergency response in disastrous environments. Such a system also better protects the user&#39;s privacy (the computation of locations at the user&#39;s end) and can obtain orientations of the sensor in addition to 3D positions (a useful feature for hand-held cameras). The static tags can be standalone, or embedded into devices (such as RFID, lights and switches, etc.) so that the locations of these devices are obtained (rather than measured and entered the system by hand) to facilitate management and to provide location-based services. The mobile sensor base and non-embedded tags can be reused for localizing tags in other spaces. 
     The mobile base includes at least two sensors mounted in fixed positions relative to each other. In one embodiment, both sensors have faces aligned in a vertical plane; there is a fixed distance between them and both have zero pitch and roll angles. The base can move in a 2D plane: X, Y, yaw. Vertical motion in Z direction is also possible and is useful if sensors are vertically positioned. In one embodiment, the mobile base also has a host computer and an Ethernet switch, through which both the sensors and the host computer are coupled. To localize tags, the mobile base is moved around in the space of tags, and AOA data between the tags and sensors are obtained over time. Note that only subsets of the tags need to be sensed simultaneously. 
     Conventional mobile-assisted localization (MAL) systems rely on distance rather than angle inputs. Embodiments of the present invention exploit constraints of AOA between sensors and tags, which result in closed-form solutions. The uniqueness of this system, compared with other MAL systems, in addition to the use of AOA data and asymmetric tag/sensor combination, is the structured mobile platform (two sensors in a fixed position) and constrained motion of the platform (four instead of six degrees of freedom). 
     Data Characterization 
     In order to understand the noise characteristics of the detected UWB data, a series of experiments have been conducted. Embodiments of the present invention provide a robust data extraction mechanism that operates with a continuous source of input data. 
     We first study the horizontal (yaw: α) and vertical (pitch: β) angle variations given a static pair of a sensor and a tag. A sensor and a tag are placed in a fixed position, and AOA data is collected in a given time period. Although details depend on the relative positions of the sensor and the tag, it is observed that the error distributions for yaw and pitch with respect to the mean are very similar. 
       FIG. 1  illustrates a histogram of error distributions of yaw (α) and pitch (β) with respect to their mean values for a fixed pair of sensor and tag in accordance with one embodiment of the present invention. The standard deviations are between 0.01 and 0.03 radius for both yaw and pitch angles in the experiments. Such a distribution does not seem to be affected by distance or angles, although angles approaching the boundary of the valid range (about ±1.2 radius in yaw and ±1.0 in pitch) may result in unstable readings. In one embodiment, data with large angle readings are filtered out, so the system can be more robust. 
     To reduce variations in angle readings, the system averages multiple data readings from a tag&#39;s stable position.  FIG. 2  illustrates the effect of averaging on standard deviations of angle errors in accordance with one embodiment of the present invention. The standard deviation after averaging n points is shown. It is clear that 3 to 5 readings are sufficient. Note that a larger n may not help reduce errors further. 
     The AOA input to our algorithm is a continuous series of data points, with each entry the following information is collected: timeslot, sensor, tagID, α, β. timeslot is the timeslot in which the data is collected (in one embodiment, one slot is about 1/40 seconds). sensor and tagID indicate from which pair of UWB sensor and tag the data is collected, respectively. α and β are the pitch and yaw angles, respectively. Although in a stable position the angle variations are small in general, the readings can be less reliable when sensors are moving. It is important to detect a set of stationary points from a continuous input, where the data are relatively stable. 
     In one embodiment, the system segments the input data so that consecutive data points with both α and β variations less than ε are grouped. Only groups with the number of data points more than N are kept. In one embodiment, the system sets ε=0.05 and N=5. Each group has a starting timeslot s and ending timeslot e, and an average α and β in the period of [s, e]. 
       FIG. 3  illustrates the original (star) and grouped (diamond) data points for a sensor/tag pair in accordance with one embodiment of the present invention. Note that in this figure some isolated bad points are removed by the system. 
     After grouping data points for each tag/sensor pair, the next step is to find a common set of data points consistent for all tag/sensor pairs. Such a set of points corresponds to the set of stationary positions in the trajectory of the mobile sensor platform. Let the start and end time of a period associate with a left and right parenthesis, respectively. The system first orders all the parenthesis along the time line and then searches for periods with balanced left and right parenthesis.  FIG. 4  presents a time diagram illustrating the process of obtaining common data points from two separate sources in accordance with one embodiment of the present invention. Note that it is possible that not all sources have data at a given time period. 
     After obtaining the set of data points corresponding to the set of stationary points of the mobile platform, the system can obtain two angle matrices, α and β, where α(i,j,k) and β(i,j,k) are the angles of yaw and pitch, respectively, from tag i to sensor j at k&#39;th time period. If tag i is out of range of sensor j at time k, α(i,j,k) and β(i,j,k) are set to be inf. The α and β matrices are the input to the localization computation described in the next section. 
     Localization Computation 
     Sensor/Tag Locations and AOA 
     Each sensor has six degrees of freedom in space: x s , y s , z s , a, b, r where x s , y s , z s  are the 3D coordinates and a, b, r are yaw, pitch and roll angles, respectively. In one embodiment, it is assumed that r=0 and tags are omnidirectional with x t , y t , z t  locations. Each sensor has its own reference frame, which is within the range of detection of a sensor. The position of a tag in a sensor&#39;s reference frame uniquely determines the AOA: yaw and pitch (see  FIG. 4 ). A tag/sensor pair introduces two equations. Let x t   s , y t   s , z t   s  be the location coordinates of a tag in the sensor&#39;s reference frame, and let α and β are yaw and pitch angles, respectively:
 
 x   t   s  sin(α)− y   t   s  cos(α)=0  (1)
 
 x   t   s  sin(β)− z   t   s  cos(β)cos(α)=0  (2)
 
     Given a sensor&#39;s position x s , y s , z s , a, b, and a tag&#39;s position x t , y t , z t , in a global reference frame, the tag&#39;s position within the sensor&#39;s reference frame, x t   s , y t   s , z t   s , can be obtained by: 
                     (           x   t   s               y   t   s               z   t   s             1         )     =       [                       T   ′                       -     T   ⁡     (           x   s               y   s               z   s           )                 0       0       0       1         ]     ⁢     (           x   t               y   t               z   t             1         )               (   3   )               
where T is the rotational transformation matrix for the sensor frame:
 
     
       
         
           
             
               
                 
                   [ 
                   
                     
                       
                         
                           cos 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             ( 
                             a 
                             ) 
                           
                           ⁢ 
                           
                             cos 
                             ⁡ 
                             
                               ( 
                               b 
                               ) 
                             
                           
                         
                       
                       
                         
                           - 
                           
                             sin 
                             ⁡ 
                             
                               ( 
                               a 
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             cos 
                             ⁡ 
                             
                               ( 
                               a 
                               ) 
                             
                           
                           ⁢ 
                           
                             sin 
                             ⁡ 
                             
                               ( 
                               b 
                               ) 
                             
                           
                         
                       
                     
                     
                       
                         
                           
                             sin 
                             ⁡ 
                             
                               ( 
                               a 
                               ) 
                             
                           
                           ⁢ 
                           
                             cos 
                             ⁡ 
                             
                               ( 
                               b 
                               ) 
                             
                           
                         
                       
                       
                         
                           cos 
                           ⁡ 
                           
                             ( 
                             a 
                             ) 
                           
                         
                       
                       
                         
                           
                             sin 
                             ⁡ 
                             
                               ( 
                               a 
                               ) 
                             
                           
                           ⁢ 
                           
                             sin 
                             ⁡ 
                             
                               ( 
                               b 
                               ) 
                             
                           
                         
                       
                     
                     
                       
                         
                           - 
                           
                             sin 
                             ⁡ 
                             
                               ( 
                               b 
                               ) 
                             
                           
                         
                       
                       
                         0 
                       
                       
                         
                           cos 
                           ⁡ 
                           
                             ( 
                             b 
                             ) 
                           
                         
                       
                     
                   
                   ] 
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     Using these of equations, one can compute a tag&#39;s location x t , y t , z t  given the AOA data from two sensors with known locations (four equations, three unknowns). Or one can compute a sensor&#39;s orientation (yaw and pitch) given the AOA data from a fixed-location tag (two equations, two unknowns). 
     One problem an embodiment of the present invention aims to solve is to localize a set of static tags in 3D space. At least two sensors are mounted on a mobile cart in fixed positions relative to each other. In one embodiment, (see  FIG. 6 ), two sensors are used. The distance between the two sensors is fixed. The cart can move with four degrees of freedom, x, y, z and yaw a. At each cart position, usually only a subset of tags can be “seen” by the sensors. However, it is assumed that each tag can be seen by the sensors at least once at some cart position. Hence, the system can obtain a rough estimate of how many cart positions are needed for tag localization as follows. 
     Let the first cart position be the global reference frame. Each new cart position adds four unknowns. If k tags can be “seen” at a cart position, 4k more equations are added. Let n be the total number of tags and m be the number of extra cart positions. There are 3n+4m unknowns and 4k(m+1) equations. One may solve the set of equation for the unknowns if
 
4 k ( m +1)≧3 n +4 m.   (5)
 
     The number of cart positions is only one factor for solving the equations. Another factor is the connectivity of the overall tag/sensor pairs. Note that in this disclosure, “being connected” is used in a graph-theory sense, and does not necessarily mean being physically contacting. Here, a tag is considered connected to a sensor at a position if it can be seen by the sensor at that position. 
     There are 2(m+1) sensor nodes and n tag nodes for m positions and n tags, which constitute a bipartite graph. Such a graph has to be at least connected to have all coordinates in the same reference frame. For example, if three tags are seen by the sensors in the first cart position, and a totally different three sensors are seen by the sensors in the second cart position, one cannot obtain the six tag locations in one reference frame, although 4×3×2≧3×6+4. Let c≧1 be the minimum number of tags in common for a new location. Given n tags and at most k tags can be seen at a time, ideally the following inequality is met:
 
 k +( k−c ) m≧n.   (6)
 
     In the previous example, we have 3+(3−1)&lt;6. 
     Given the input data α and β, the system first filters out “bad” cart positions. A cart position is “bad” if it has no more than two tag connections. The system removes such cart positions since each position adds four variables and one pair of sensor/tag connection adds two equations. A “good” cart position, in contrast, adds at least as many equations as variables. 
     Closed-Form Solutions 
     We can plug the data α and β into the equations (1)-(4) in the previous section, and use a nonlinear solver to find the solution. However, since the constraints are nonlinear and the size of the problem is large (4k+3n variables for k positions and n tags), one may not find the solution in practice. However, due to the special configuration of the sensor platform, the system can obtain a complete or partial solution using a set of linear equations. The procedure includes two components: from sensors to tags, and from tags to sensors. 
     From Sensors to Tags 
     In the two-sensor embodiment, given a position of the two sensor frame (see  FIG. 7 ), x, y, z, a, the two sensor locations are x 1 , y 1 , z 1  a and x 2 , y 2 , z, a, respectively, with x 1 =x+d sin(a)/2, y 1 =y−d cos(a)/2 and x 2 =x−d sin(a)/2 and y 2 =y−d cos(a)/2 where d is the distance between the two sensors. 
     Let λ 1  and λ 2  be distances from a tag to the two sensors in the XY plane, respectively, we have
 
 x   1   =x   1 +λ 1  cos(α 1   +a )  (7)
 
 y   1   =y   1 +λ 1  sin(α 1   +a )  (8)
 
 x   1   =x   2 +λ 2  cos(α 2   +a )  (9)
 
 y   1   =y   2 +λ 2  sin(α 2   +a ).  (10)
 
     From
 
λ 1  cos(α 1   +a )−λ 2  cos(α 2   +a )= x   1   −x   2   =d  sin( a )
 
λ 1  sin(α 1   +a )−λ 2  sin(α 2   +a )= y   1   −y   2   =−d  cos( a )
 
one can solve for λ 1  and λ 2 . Plugging these values in Eq. (7) and (9), we have
 
     
       
         
           
             
               x 
               t 
             
             = 
             
               
                 
                   1 
                   2 
                 
                 ⁢ 
                 
                   ( 
                   
                     
                       x 
                       1 
                     
                     + 
                     
                       
                         λ 
                         1 
                       
                       ⁢ 
                       
                         cos 
                         ⁡ 
                         
                           ( 
                           
                             
                               α 
                               1 
                             
                             + 
                             a 
                           
                           ) 
                         
                       
                     
                   
                   ) 
                 
               
               + 
               
                 ( 
                 
                   
                     x 
                     2 
                   
                   + 
                   
                     
                       λ 
                       2 
                     
                     ⁢ 
                     
                       cos 
                       ⁡ 
                       
                         ( 
                         
                           
                             α 
                             2 
                           
                           + 
                           a 
                         
                         ) 
                       
                     
                   
                 
                 ) 
               
             
           
         
       
       
         
           and 
         
       
       
         
           
             
               y 
               t 
             
             = 
             
               
                 
                   1 
                   2 
                 
                 ⁢ 
                 
                   ( 
                   
                     
                       y 
                       1 
                     
                     + 
                     
                       
                         λ 
                         1 
                       
                       ⁢ 
                       
                         sin 
                         ⁡ 
                         
                           ( 
                           
                             
                               α 
                               1 
                             
                             + 
                             a 
                           
                           ) 
                         
                       
                     
                   
                   ) 
                 
               
               + 
               
                 
                   ( 
                   
                     
                       y 
                       2 
                     
                     + 
                     
                       
                         λ 
                         2 
                       
                       ⁢ 
                       
                         sin 
                         ⁡ 
                         
                           ( 
                           
                             
                               α 
                               2 
                             
                             + 
                             a 
                           
                           ) 
                         
                       
                     
                   
                   ) 
                 
                 . 
               
             
           
         
       
     
     Using equations 
               z   t     =       z   1     +       λ   1     ⁢     tan   ⁡     (     β   1     )                           z   t     =       z   2     +       λ   2     ⁢     tan   ⁡     (     β   2     )             ,     
     ⁢     we   ⁢           ⁢   have                   z   t     =     z   +       1   2     ⁢       (         λ   1     ⁢     tan   ⁡     (     β   1     )         +       λ   2     ⁢     tan   ⁡     (     β   2     )           )     .               
This approach can be extended to systems with greater numbers of sensors and/or different sensor placements using similar techniques.
 
     From Tags to Sensors 
     In the two-sensor configuration, if the pair of sensors can see a couple of tags with known positions, the sensor frame position x, y, z, a can be obtained. Let α ik  and β ik  be yaw and pitch angles from tag i to sensor k, respectively; and let λ ik  be the projected distance from tag i to sensor k on the XY plane. If a tag i can be seen by both sensors, we have
 
−λ i1  sin(α i1 )+λ i2  sin(α i2 )= d  
 
λ i1  cos(α i1 )−λ i2  cos(α i2 )=0
 
     The system can compute λ i1  and λ i2 . Given a pair of tags i and j, and a sensor at x k , y k , z k , a, where k=1 or 2, we have
 
 x   k   =x   i −λ ik  cos(α ik   +a )  (11)
 
 y   k   =y   i −λ ik  sin(α ik   +a )  (12)
 
 x   k   =x   j −λ jk  cos(α jk   +a )  (13)
 
 y   k   =y   j −λ jk  sin(α jk   +a )  (14)
 
and
 
 x   j   −x   j −λ ik  cos(α ik   +a )+λ jk  cos(α jk   +a )=0  (15)
 
 y   i   −y   j −λ ik  sin(α ik   +a )+λ jk  sin(α jk   +a )=0.  (16)
 
     (15)·cos(a)+(16)·sin(a) produces:
 
( x   i   −x   j )sin( a )−( y   i   −y   j )cos( a )=−λ ik  sin(α ik )+λ jk  sin(α jk ).
 
     If a sensor sees n tags, there are 2(n−1) linear equations with two variables cos(a) and sin(a). When n≧2, once can solve the set of linear equations and obtain cos(a) and sin(a). Therefore, 
             a   =       arctan   ⁡     (       sin   ⁡     (   a   )         cos   ⁡     (   a   )         )       .           
Using Eq. (11) and (12) for each tag i, we have
 
 x   1   i   =x   i −λ i1  cos(α i1   +a )
 
 y   1   i   =y   i −λ i1  sin(α i1   +a )
 
 x   2   i   =x   i −λ i2  cos(α i2   +a )
 
 y   2   i   =x   i −λ i2  sin(α i2   +a )
 
and
 
 z   1   i   =z   i −λ i1  tan(β i1 ).
 
 z   2   i   =z   i −λ i2  tan(β i2 )
 
     Therefore, the estimated locations for sensors  1  and  2  seeing n tags are 
                 (         1   n     ⁢       ∑     i   =   1     n     ⁢     x   1   i         ,       1   n     ⁢       ∑     i   =   1     n     ⁢     y   1   i         ,       1   n     ⁢       ∑     i   =   1     n     ⁢     z   1   i           )     ⁢           ⁢   and   ⁢           ⁢     (         1   n     ⁢       ∑     i   =   1     n     ⁢     x   2   i         ,       1   n     ⁢       ∑     i   =   1     n     ⁢     y   2   i         ,       1   n     ⁢       ∑     i   =   1     n     ⁢     z   2   i           )       ,         
respectively. The center of the sensor frame is at
 
               (           x   1     +     x   2       2     ,         y   1     +     y   2       2     ,         z   1     +     z   2       2       )     .         
This approach can be extended to systems with greater numbers of sensors or different sensor placements using similar techniques.
 
     Leapfrog Computation 
     Let the first cart position be the reference frame, the leapfrog computation alternates the computation of tags positions and cart positions, until all the locations are obtained. The pseudo code is shown in shown in Table 1. 
                             TABLE I                           Inputs:             α ijk , β ijk : angles from tag i to sensor j at time k           Outputs:             x i , y i , z i : locations for all tags;             x k , y k , z k , a k : positions of the mobile sensor frame;           Notations:             k: current sensor frame             kTs: the set of tags with known locations             cTs: the set of tags connected to the current sensor frame           Initialization:             k ← 1: the first sensor frame is the reference frame             kTs ← ∅: all tags are unknown position           0. while there is a sensor frame k:           1. Let cTs             be the set of tags connect to frame k;           2. Let cnTs ← cTs\kTs             be the set of connected tags with unknown locations           3. Compute tag locations for each tag in cnTs             using the closed-form solution in Section III-B.1           4. kTs ← kTs ∪ cnTs           5. Let k be the next unknown sensor frame             with the maximum connections to known tags           6. Compute the position of the sensor frame             using the closed-form solution in Section III-B.2           7. end while                        
Optimization-Based Computation
 
     One embodiment of the present invention employs optimization-based computations to minimize the least-square errors for all equations. 
     Let e k =0 be an equation from one tag/sensor pair. One can minimize ½Σ k e k   2  for all tag/sensor pairs. In one embodiment, the system uses the constrained optimization, where constraints are ranges for locations ([−bound, bound]) and angles [−π,π]). 
     The system can adopt two variations of this approach. The first variation (denoted as “LSLeapfrog”) involves applying the optimization procedure at each of the leapfrog steps, i.e., at each step, from sensors to tags or from tags to sensors, using the closed-form solution first and then applying the least-squares minimization with the closed-form solution as the initial value. The second variation (denoted as “LeapfrogLS”) uses the original leapfrog solution as the initial value for least-squares minimization of all equations. 
     The following examples illustrate the localization performance in two scenarios: (1) Wall: tags are put on four walls of a room, and (2) Hallway: tags are distributed along two walls of a narrow hallway. A total of 12 tags are used, in an area bounded by [−150,150].  FIGS. 8 and 9  show the wall and hallway scenarios, respectively. 
     The distance between the pair of sensors are assumed to be 25 or 40, and the angle noise is added by a uniform distribution in [−m, m] where m is 0, 0.01 or 0.02. 
     The three computation methods presented in the previous section are compared in terms of average tag location accuracy. The estimation error for one tag is the distance between the true and estimated locations. The location accuracy is the average estimation errors for all tags. 
       FIGS. 10 and 11  show the 2D projections of these two cases (where the noise is 0.02 and the distance between two sensors is 40) and the results of using LeapfrogLS. 
     Application and Implementation 
     In one embodiment, a user can attach one or more tags to an object and use the aforementioned system to localize the tags. Based on the localization information of the tags, the user can then obtain the dimension and/or location information of the object. Note that there is not limitation with respect to the size and location of the object, so long as the initial reference frame of the sensor system is calibrated properly. For example, the object can be a lamp, a piece of equipment, or a building. 
     In further embodiments, one can use the tags the locations of which have been determined as an infrastructure to detect the location of mobile sensors. That is, a number of fixed tags form a reference frame, and by detecting the relative position of the mobile sensors to the fixed tags, one can determine the location of the sensors. 
       FIG. 12  illustrates an exemplary computer system that facilitates locating of devices with embedded location tags in accordance with one embodiment of the present invention. A computer system  1202  includes a processor  1204 , a memory  1206 , and a storage device  1208 . Computer system  1202  is also coupled to a display  1214 , a keyboard  1210 , and a pointing device  1212 . 
     Storage device  1208  stores a tag localization application  1216 , and applications  1220  and  1222 . In addition, tag localization application  1216  contains a Leapfrog computation module  1218 , which performs the Leapfrog computation to determine the locations of a plurality of tags. During operation, tag localization module  1216  is loaded into memory  1206  and executed by processor  1204 . Note that computer system  1202  can be coupled to the Internet, through which the tag-location information can be shared among different computer systems. 
     The foregoing descriptions of embodiments of the present invention have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.