Consider the special lighthouse depicted in Figure 2, which has the property that the emitted beam of light is parallel (i.e., has a constant width) with width when seen from top. When seen from the side, the angle of beam spread of the parallel beam is large enough so that it can be seen from most points in space.
When this parallel beam passes by an observer, he will see the lighthouse flash for a certain period of time . Note that depends on the observer's distance from the rotation axis of the lighthouse since the beam is parallel. Assuming the lighthouse takes for a complete rotation, we can express the angle , under which the observer sees the beam of light as follows:
Figure 2 shows two observers (depicted as squares) at distances and and the respective angles and . Now we can express in terms of and the width of the beam as follows:
By combining Equations 1 and 2 we obtain the following formula for in terms of , and :
Note that the distance obtained this way is the distance of the observer to the lighthouse rotation axis as depicted in the side view in Figure 2. That is, all the points in space with distance form a cylinder (not a sphere!) with radius centered at the lighthouse rotation axis.
Based on the above observations, we can build a simple ranging system consisting of a lighthouse and an observer. The observer device contains a photo detector and a clock. When the photo detector first sees the light it records the corresponding point in time . When the photo detector no longer sees the light it records . When it sees the light again it records . With and the observer can apply Equation 3 in order to calculate its distance from the lighthouse rotation axis. Note that if is constant it has to be measured only once since it does not change with distance. Also note that the necessary hardware resources of the observer device are matched by a Smart Dust node as explained in Section 2.
This ranging scheme can be used to build a single device, which allows observers to autonomously determine their position relative to it in three dimensional space. This device consist of three lighthouses with mutually perpendicular rotation axes as depicted in Figure 3. Assuming an observer measures the distances , and as indicated above, its location can be determined by computing the intersection point(s) of three cylinders with radius centered at the respective lighthouse rotation axes. Note that there are 8 such intersection points in general, one in each of the 8 quadrants of the coordinate system. If we can ensure, however, that all observers are located in a single quadrant (e.g., the main quadrant defined by the points with ), there is a unique intersection point. This intersection point can be obtained by solving the following equation system for :
Note that this equation system does not necessarily have a solution, since the values are only approximations obtained by measurements. If there is no solution, an approximation for the intersection point can be obtained using minimum mean square error (MMSE) methods. The solution obtained this way minimizes the sum of the squares of the differences of the left hand and right hand sides of the equations 4. However, if the equation system has a solution, it can be directly solved using the following set of equations, again assuming that the observer is located in the main quadrant of the coordinate system depicted in Figure 3:
The setup of the complete location system can now be described. The base station is equipped with three mutually perpendicular lighthouses as depicted in Figure 3. At startup, the base station broadcasts certain calibration parameters (e.g., the beam width for each of the lighthouses) to all dust nodes. The latter use a real-time clock to measure the amount of time during which each of the lighthouses beams are visible. Using Equations 3 and 4, nodes can autonomously compute their location in the reference grid defined by the base station's three lighthouses.
The description of the system's principles gives rise to a number of practical questions. First of all, it is not clear at all whether a system fulfilling the above requirements (e.g., parallel beam) can actually be built in practice. Moreover, we did not discuss the problem how a dust node can distinguish the different beams of the lighthouses, or what happens if a dust node ``sees'' the beams of two lighthouses at the same time. We will discuss these issues in the next sections in order to lay the foundation for an implementation of the system.