The rotational angle of the scanning mirror is reported by a shaft
encoder with 2000 positions. While this sounds plentiful, consider
that in
90 degrees, there are only 500 positions, thus a
image with a
90 degrees field-of-view would have more than 2
pixels per shaft position.
The motor that drives the mirror has limited power, requiring some time to accelerate the motor to the desired operating speed. This turns out to be a benefit as there are no sudden accelerations, so we can safely assume that the velocity is constant during the time required to acquire 1 buffer (1024 samples requires 1/16 second at 16k samples per second). A least-squares linear fit of the data is performed to map the integral data into real values. The least-squares fit adequately determines relative changes in phi.
The absolute position of the scanning mirror has not been
specified by the manufacturer, and we have been in an ongoing process
to calibrate it. The value available from the shaft encoder is a
counter that starts at 0 when the device is powered on. In the data
packet returned from the rangefinder, there is a bit that signifies
that the shaft encoder has passed a preset ``zero'' position. It is
not specified at what angle this occurs, and this is the value we have
been seeking. To find it, we created a range event near the azimuth
(a ceiling tile was raised, shown in figure 4). A scan was
taken in one direction, followed by a
180 degrees horizontal
rotation where another scan was taken. The data from second scan was
reversed (
), and the two compared. If the horizon
is well-known, then the two events marking the missing tile should
coincide. A process of refining our estimate of the zero position of
the shaft encoder has lead us to a value refined to the nearest
0.01 degrees. We have concluded that the mirror's zero position occurs
131.77 degrees prior to the beam being horizontal.
The panning-tilting unit is another source of inaccuracy. The manufacturer claims it can be positioned every 0.771 minutes of arc, or 14,000 positions in 180 degrees. However, when a pan of 180 degrees is requested, the position is off by several tenths of a degree.
Another source of imprecision is the mirror that performs the line-scanning operation. It should be angled at 45 degrees from the laser beam, but the accuracy here is suspect. The plane scanned out is not truly a plane, but a nearly-flat cone. Once the angle of the cone is known, compensation of the error can be made in software.