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.