The Flash LIDAR Emulator is a computer system designed to be functionally equivalent to a Flash LIDAR sensor camera. The system has the same hardware interfaces as the sensor, and produces images of comparable quality to the flash LIDAR sensor in real time (30 frames per second). The emulator is then used as a substitute for the LIDAR camera during development and testing of the software algorithms and hardware systems that interface with the camera. The emulator software was custom-developed entirely in-house, and integrates tools and techniques from several computer fields, including parallel processing, ray-tracing, geometric optimization, CPU optimization, CameraLink interfaces, lowlevel networking, and GPU-based general computing. The software was designed to run on an 8-processor Dell workstation with an NVIDIA graphics card to support general-purpose GPU computing, and CameraLink and network interfaces to support the hardware interfaces of the Flash LIDAR camera.
The emulator was developed as part of the ALHAT program, which consists of a multi-center team developing and integrating sensors, algorithms, avionics, guidance and navigation controls, and human-system interfaces into a cohesive demonstration of the ability to automatically scan, detect, and avoid hazards when landing on alien terrain. In this kind of large, diverse organization, the Flash LIDAR Emulator was used to solve several problems: 1) provide for closed-loop hardware-in-theloop simulation of the ALHAT avionics computer by replacing the LIDAR sensors, which cannot be effectively used in a lab environment; 2) reduce scheduling and cost problems by using emulators for development efforts at other centers rather than sending actual LIDAR hardware, along with the people to operate the hardware; 3) reduce interface problems by using emulators as a testbed to develop interfaces for cameras that have not yet been developed; and 4) support development, testing, and debugging of software systems by using emulators to provide a controlled input to image processing and hazard detection algorithms, without the complications of operating a LIDAR system. The controlled input is extremely helpful in finding bugs in the system and checking the results of the system with non-real-time software simulations.
The Flash LIDAR Emulator is innovative in both the way it combines techniques from many fields, and in the way it is used in the system development process. The emulator combines state-of-the-art techniques in five separate computing fields: computational geometry, ray-tracing, parallel processing, vector CPU processing, and generalpurpose computation on graphics processing units (GPUs).