next up previous
Next: Java Considerations Up: Capturing Dense Environmental Range Previous: Calibrating and Correcting Errors

Range Acquisition Software

A Java application was developed to control and collect data from the laser rangefinder and associated hardware. Symantec's Visual Cafe software allows a developer to build graphical interfaces for Java programs quickly. The application's interface to control the rangefinding system is shown in figure 9. The software is multi-threaded, using the JVM default scheduler. The threads are:

1.
A data collection thread. This thread continuously waits for the rangefinder's buffer to be more than half full at which point it reads half of the buffer from the laser to the PC. It uses 2 buffers in the PC, so that buffers are not overwritten while other threads are reading the data.
2.
The control thread that repeatedly positions the panning unit and reads columns of data.
3.
A scanning mirror monitor. The job of this thread is to simply show a histogram of the scanning motor's speed so the user can adequately judge when the motor has achieved the desired speed.
4.
The built-in Java threads that control and dispatch menu, slider, and keyboard events.

  
Figure: The GUI for the rangefinder data-collection application. This clip shows a scan in progress. The data collected has a resolution of $640\times 320$, covering $180 degrees{}\times 90 degrees{}$. The sample rate is 16k samples/second, and the scanning mirror is running at about 5 Hz. The partial scan is shown in the upper left.
\begin{figure}\begin{center}
\epsfig{file=laserapp.eps,width=21pc}
\end{center}\end{figure}



 
next up previous
Next: Java Considerations Up: Capturing Dense Environmental Range Previous: Calibrating and Correcting Errors
Lars S. Nyland
1999-02-19