1 Introduction

Laser detection and ranging, or laser radar (LADAR) systems, are considered an attractive alternative to radio detection and ranging (RADAR) systems because they use laser wavelengths which are shorter than RADAR wavelengths, to produces very high-resolution 3D images. In addition, light velocity allows LADAR systems to take numerous measurements per second. LADAR images are created by scanning a scene with laser beams, the return time for these beams used to calculate range LADAR data. The format for this data is range, azimuth and elevation angle, this representing the spherical coordinates system whose origin is the sensor. LADAR converts this type of data into a 3D Cartesian format in order to produce a three-dimensional range image, this in turn representing the spatial location of the intersection of the laser beam with the scanned scene.

LADAR systems play diverse roles in both civilian and military applications. In ground navigation, they are used for obstacle and road-boundary detection, and autonomous vehicle navigation [12, 14, 19, 29, 31, 32, 44, 47]. In aerial navigation, they provide autonomous navigational capacities [16], obstacle warning systems [11], and considered as a reliable alternative to GPS [40]. Regarding maritime navigation, LADAR are used for both precise manoeuvring operations and obstacle avoidance [24]. Looking to their use by the military, LADAR assists target detection and classification [8, 10, 39], anti-ship missile tracking [33], target identification at long range [5,6,7, 25, 41, 42], and the identification of military ground vehicles that may be hidden under camouflage or foliage such as tree canopies [30].

In consequence, simulations for LADAR systems have become a valuable tool for developing said systems and their data processing algorithms [13] because the simulator is able to produced LADAR images under different controlled effects, which enable the algorithms’ developers to evaluate their algorithms under these effects individually. In order to simulate these systems, a target impulse response must be generated for each laser pulse transmitted to the components of the target. This is an extensive computational process as the intersection points of each laser beam with the target’s surface, need to be identified in addition to their traveling distances.

Since most applications related to developing LADAR systems require LADAR simulators to be able to accurately simulate the propagation of the laser beam very quickly; this implies the need for rapid processing of a large number of laser footprint samples. In addition, in order to develop LADAR processing algorithms using simulated data, the simulators must be able to scan a large number of targets at high speed, under different scanning parameters.

Several methods have been developed to increase the speed of the required computational process; some approximate the simulation by defining the reflection of the laser pulse as 3D model voxels that have a direct line-of-sight to the sensor [20, 21]. Others calculate the distance between the target and the sensor by using the division of the model’s surface and the distance between the viewpoint and model’s 3D points for simplification [45, 46]. A single wide laser beam projection, with focal-plane array and parallel computing, is also used to reduce computational time [15, 22, 26, 43].

In this paper, a new approach to generate the actual target impulse response, based on finding the actual intersection points between the laser beam and the 3D model, is presented. This approach is based on deriving the algorithms required to calculate target angular ranges, these algorithms used to speed up the process. In order to evaluate the performance of the simulator using this approach, over forty 3D models were scanned, under different scanning parameters, the simulation times recorded.

In the following sections, the theoretical background, which includes the equations and parameters required to simulate the laser beam propagation and thus the core of the simulator, are presented. This is followed by the new approach of generating the target impulse response. The main concepts of the simulation implementation for the LADAR simulator and its control windows are described using a collection of selected simulated images. The testing procedure and results of the evaluation are given followed by the conclusion.

2 Simulation of Laser Beam Propagation

The process of simulating the propagation of the laser beam from the transmitter to the target and back to the receiver is presented in this section in order to provide a clear understanding of the target impulse response (TIR). This process is divided into four parts, as shown in Fig. 1 [38]. The laser beam energy distribution is described first in both temporal and spatial domains [No. 1]. Atmospheric effects on the propagating beam [No. 2] and the interaction of the beam with the target surface [No. 3] are then explained. This is followed by the receiver [No. 4] and LADAR range equation.

Fig. 1
figure 1

Figure adapted from [34, 38]

The division of the process during simulation.

2.1 Laser Beam Energy Distribution

In order to simulate laser beam energy distribution, the laser pulse has to be modelled in time (temporal distribution) as well as in space (spatial distribution) resulting in a four-dimensional model. The outgoing pulse intensity is decomposed as [34]:

$$G(t,H_{ls},V_{ls},R_{ls})=p(t) \times I(H_{ls},V_{ls},R_{ls})$$
(1)

where p(t) is the discrete pulse shape in time domain; \(I(H_{ls},V_{ls},R_{ls})\) is the proportion of energy contained within a component at a location of \(H_{ls},V_{ls},R_{ls}\) dimensions, where \(t,H_{ls},V_{ls},R_{ls}\) take on discrete values. Figure 1 shows these two distributions for the laser pulse travelling from the LADAR system to the target, where \(H_{ls}\) and \(V_{ls}\) are the horizontal and vertical cross-range dimensions respectively and \(R_{ls}\) is range dimension in the direction of the pulse travelling.

2.1.1 Temporal Distribution

The amount of laser power that is produced by the LADAR source and transmitted toward the target area is assumed to have a Gaussian distribution with time. This distribution is defined by the laser pulse energy \(E_{t}\) in a unit of joules and pulse width \(\tau\) (full-width at half-max power in a unit of seconds). The following equation [13, 34] is used to model this distribution:

$$p(t)=\frac{2E_{t}}{\tau }\sqrt{\frac{\ln 2}{\pi }}\exp \frac{-4t^{2}\ln 2}{\tau ^{2}}$$
(2)

where p(t) is the laser pulse power in unit of watts at time t. In order to avoid aliasing on the laser pulse waveform, the sampling period \(\Delta t\) is calculated using the following equation [34]:

$$\Delta t= \frac{\tau }{2sf_{t}\sqrt{2\ln 2}}$$
(3)

where \(sf_{t}\) is the time sampling factor. Its values must be greater than one for good pulse representation.

2.1.2 Spatial Distribution

The laser intensity profile produced by a laser source cavity is not constant across the beam diameter at all ranges, and it depends on the technique used to generate the laser beam. Generally, this profile or energy distribution is modelled as a spatial Gaussian function in horizontal \(H_{ls}\), vertical \(V_{ls}\), and range \(R_{ls}\) dimensions [27, 36]:

$$I(H_{ls},V_{ls},R_{ls})=\frac{2}{\pi W^{2}(R_{ls})}\exp \frac{-2(H_{ls}^{2}+V_{ls}^{2})}{W^{2}(R_{ls})}$$
(4)

where \(W(R_{ls})\) is the beam width (radius) at \(R_{ls}\) defined as the radial distance (in metres) at which the profile value is decreased to \(1/e^{2}\) from its peak value. The dependence of beam width on the distance \(R_{ls}\) is governed by [27, 36]:

$$W(R_{ls})=W_{o}\sqrt{1+\left( \frac{\lambda R_{ls}}{\pi W_{o}^{2}}\right) ^{2}}$$
(5)

where \(W_{o}\) is the beam waist at \(R_{ls}=0\) and \(\lambda\) is the laser wavelength.

Referring to [36] and [27], the spatial sampling size \(\Delta s\) that avoids aliasing of the laser intensity profile, can be calculated using the following equation:

$$\Delta s= \frac{W(R_{ls})}{sf_{s}}$$
(6)

where \(sf_{s}\) is the spatial sampling factor. Its values must be greater than one for good intensity representation.

2.2 Atmospheric Effects

When the transmitted laser beam propagates through the atmosphere, some of the energy is absorbed and scattered by atmospheric molecules, dust and aerosols [34].This attenuation limits the performance of the LADAR system and is dependent on the laser’s wavelength \(\lambda\) and propagation length \(R_{ls}\). This can be modelled using Beer’s law as shown by the following equation [23, 34]:

$$T_{a}=\exp \left( -\sigma _{s}(\lambda ) \times R_{ls} \right)$$
(7)

where \(T_{a}\) is the one-way atmospheric transmission value and \(\sigma _{s}(\lambda )\) is the atmospheric coefficient in \(m^{-1}\) for the wavelength \(\lambda\).

2.3 Target Interaction

The interaction between the transmitted laser beam and the target surface produces a reflected signal. The characteristics of this signal depend on the surface reflectance \(\rho _{tr}\) (\(2-25\%\)) [34], the angle of dispersion \(\varOmega _{tr}\) (Lambertian targets are assumed i.e. \(\varOmega _{tr}=\pi\) [9, 23, 34]), surface area \(A_{tr}\) (extended targets are assumed), surface shape and beam incidence angle.

The beam-target interaction not only affects the energy in the reflected signal, but also impacts on its shape. Both the beam incidence angle and surface shape (plane and step etc.) effects, play important roles in changing the transmitted pulse shape. To simulate these effects, the target impulse response (TIR) must be generated. The simulated shapes for the reflected signals that result from the interaction of the laser beam at different incident angles with the step targets are shown in Fig. 2.

Fig. 2
figure 2

Illustration of return pulse shaping by step target geometries [4]

2.4 LADAR Receiver

The process of determining the range to the target from the reflected signal is accomplished by the LADAR receiver. This process depends on detection techniques [3] (direct or coherent), optical transmission \(T_{o}\) (the fraction of energy that arrives at the detector from the total energy captured by the receiver aperture), quantum efficiency \(\eta\) (the fraction of the signal that is converted into photoelectrons) of the detector, pulse detection technique and receiver noise (photon counting, speckle noise and background noise) (see “Appendix 1”).

In this simulator, the direct detection technique is used by which the received optical energy is focused onto a photodetector element, with constant fraction discrimination (CFD) pulse peak detector, as this is unaffected by the amplitude fluctuation that causes jitter at the time of arrival [3]. The received signal power at the receiver aperture \(P_{r}\) can be calculated using modified LADAR range equation (see “Appendix 2”) [3, 17, 34]:

$$P_{r}=\frac{P_{t}\rho _{tr} T_{a}^{2} T_{o} D_{r}^{2}}{4 R_{ls}^{2}}$$
(8)

where \(P_{t}\) is the transmitter pulse power and \(D_{r}\) is the diameter of circular receiver aperture.

More advanced and complex models [13, 17, 35, 38, 48, 49], can be used to simulate the propagation of the laser beam, for example, from laser energy distribution to atmospheric effects and beam interaction models, to receiver optics and received signal processing electronics models. However, this study is focusses on evaluating the processing speed of the proposed TIR approach when used with the LADAR simulator. Standard laser propagation models are used as this will preserve the generality and give a clear indication about performance under fundamental (standard) models.

3 Proposed Approach to Generating The Target Impulse Response

In order to generate a target impulse response for every laser burst, a laser beam footprint that illuminates the target surface \(I(H_{ls},V_{ls},R_{ls})\) must be created by using Eq. 4. The reflected power (\(P^{sample}_{i}\)) reaching the receiver from each sample in this laser footprint and the corresponding round-trip time (i), are then calculated.

The sample reflected power is calculated from the LADAR range Eq. 8, while the round-trip time is calculated by obtaining the intersection for this sample with the target’s surface. The reflected sample powers \(P^{sample}_{i}\) are then summed with the same time indices i to create the target impulse response (\(h_{tr}\)).

To obtain the intersection points of ray vectors representing the laser beam samples with triangular faces (see Fig. 3) that represent the model surface, each point (\({\mathbf{P}}\)) can be defined by the following equation [28]:

$$\begin{aligned} {\mathbf {P}}&={\mathbf {S}}+\left( \frac{{\mathbf {N}}\cdot \left( {\mathbf {P}}_{0}-{\mathbf {S}}\right) }{{\mathbf {N}}\cdot {\mathbf {V}}}\right) {\mathbf {V}}\\ {\mathbf {N}}&=\left( {\mathbf {P}}_{1}-{\mathbf {P}}_{0}\right) \times \left( {\mathbf {P}}_{2}-{\mathbf {P}}_{0}\right) /\left| \left( {\mathbf {P}}_{1}-{\mathbf {P}}_{0}\right) \times \left( {\mathbf {P}}_{2}-{\mathbf {P}}_{0}\right) \right| \end{aligned}$$
(9)

where \({\mathbf {S}}\) represents the ray’s starting position, \({\mathbf {V}}\) represents the direction in which the ray points, \({\mathbf {N}}\) is the triangle plane normal and \({\mathbf {P}}_{0}\), \({\mathbf {P}}_{1}\), and, \({\mathbf {P}}_{2}\) are the triangle’s vertices. If the denominator is equal to zero, then no intersection occurs.

Fig. 3
figure 3

LADAR system scan car model with the proposed approach. (Color figure online)

The barycentric coordinates [18] for this point, with respect to the triangle’s vertices, are then calculated to determine if it lies inside the triangle’s edges. In general, a point is inside (or on) the triangle if, and only if \(0\le w_{1}\le 1, 0\le w_{2} \le 1\), and \(w_{1}+w_{2} \le 1\).

By defining the following vectors \({\mathbf {v}}_{0}={\mathbf {P}}_{1}-{\mathbf {P}}_{0} ,{\mathbf {v}}_{1}={\mathbf {P}}_{2}-{\mathbf {P}}_{0} , {\mathbf {v}}_{2}={\mathbf {P}}-{\mathbf {P}}_{0}\) and using Cramer’s rule, the \(w_{1}\), and \(w_{2}\) values can be obtain through the following equations:

$$w_{1}=\frac{({\mathbf {v}}_{2} \cdot {\mathbf {v}}_{0})({\mathbf {v}}_{1} \cdot {\mathbf {v}}_{1})-({\mathbf {v}}_{1} \cdot {\mathbf {v}}_{0})({\mathbf {v}}_{2} \cdot {\mathbf {v}}_{1})}{({\mathbf {v}}_{0} \cdot {\mathbf {v}}_{0})({\mathbf {v}}_{1} \cdot {\mathbf {v}}_{1})-({\mathbf {v}}_{1} \cdot {\mathbf {v}}_{0})({\mathbf {v}}_{0} \cdot {\mathbf {v}}_{1})}$$
(10)
$$w_{2}= \frac{({\mathbf {v}}_{0} \cdot {\mathbf {v}}_{0})({\mathbf {v}}_{2} \cdot {\mathbf {v}}_{1})-({\mathbf {v}}_{2} \cdot {\mathbf {v}}_{0})({\mathbf {v}}_{0} \cdot {\mathbf {v}}_{1})}{({\mathbf {v}}_{0} \cdot {\mathbf {v}}_{0})({\mathbf {v}}_{1} \cdot {\mathbf {v}}_{1})-({\mathbf {v}}_{1} \cdot {\mathbf {v}}_{0})({\mathbf {v}}_{0} \cdot {\mathbf {v}}_{1})}$$
(11)

To get the total laser footprint samples on the target model, the procedure of calculating the intersection point must be applied between every laser ray vector and all of the model’s triangles [37]. This conventional (normal) approach is simple and straightforward but the number of calculations required make it a very time consuming approach especially when the model consists of a large number of triangles, scanning with high resolution, or when a large number of laser footprint samples are required.

To overcome these limitations, another approach is proposed. This approach is to only evaluate the intersection points between the vectors and triangles that lie in the same angular range; this allows a reduction in the number of calculations required thus speeding up the process. This novel approach preserves the fidelity that accompanies the increment in speed and produces a TIR identical to that generated from the previous approach, but by using less computational time. Figure 3 shows the principles used, where the steps in the procedure are presented as follows:

  1. 1.

    The angular extant in terms of azimuth and elevation angular ranges for each triangle is calculated and stored. These calculation are required ones per scanning setup.

  2. 2.

    Laser ray vectors (right side of Fig. 3) are generated. These vectors depend on the LADAR viewing direction, laser footprint size and the number of laser footprint samples.

  3. 3.

    The triangles whose angular extents (calculated in step 1) lie within the laser beam illumination direction, are selected (the blue edges triangles in Fig. 3).

  4. 4.

    For every selected triangle, the laser ray vectors that lie in the field of that triangle are selected and the intersection points between each calculated using Eqs. 9, 10, and 11. The top right side of Fig. 3, shows the selected rays that lie in the field of the green edged triangle. It also shows the intersection points on the triangle plane (green & yellow points) and inside the triangle itself (green points).

  5. 5.

    If the laser ray vector lies in the field of more than one triangle and has intersection points with each, the point that has the shorter distance to the laser is selected and stored.

The azimuth and elevation angular ranges mentioned previously (step 1) are calculated as follows:

  • Azimuth angular range: This is computed by calculating the azimuth angle for each triangle’s vertices and comparing these angles with each other to find the minimum and the maximum values, these representing the azimuth angular range.

  • Elevation angular range: The method for calculating this range is similar to the method above except that the elevation angles for the triangle’s vertices do not always represent the range. Therefore, additional three edge angles (one per triangle edge) are calculated and added to the comparison.

Figure 4a shows the calculation principle for the edge angle \(\phi _{l}\). It starts by finding the line equation for the triangle edge of points \({\mathbf {P}}_{0}\) & \({\mathbf {P}}_{1}\) (red line in Fig. 4a) by:

$$\begin{aligned} {\mathbf {P}}_{l}&={\mathbf {P}}_{0}+l_{l}({\mathbf {P}}_{1}-{\mathbf {P}}_{0}) \\ \langle x,y,z \rangle&=\langle x_{0},y_{0},z_{0}\rangle + l_{l} (\langle x_{1},y_{1},z_{1}\rangle -\langle x_{0},y_{0},z_{0}\rangle ) \\ \langle x,y,z \rangle&=\langle x_{0}+l_{l}(x_{1}-x_{0}),y_{0}+l_{l}(y_{1}-y_{0}),z_{0}+l_{l}(z_{1}-z_{0}) \rangle \end{aligned}$$
(12)

where \({\mathbf {P}}_{l}\) is any point in the line of parameter \(l_{l}\). Its elevation angle \(\phi _{l}\) can be calculated by:

$$\begin{aligned} \phi _{l}&= \arctan \frac{z}{\sqrt{x^{2}+y^{2}}} \\&=\arctan \frac{z_{0}+l_{l}(z_{1}-z_{0})}{\sqrt{(x_{0}+l_{l}(x_{1}-x_{0}))^{2}+(y_{0}+l_{l}(y_{1}-y_{0}))^{2}}} \end{aligned}$$
(13)

The first derivative for Eq. 13 is then taken and solved for zero, in order to find the parameter value \(l_{rp}\) at which there is a round point \({\mathbf {P}}_{rp}\). After the derivation and simplification of the Eq. 13 it becomes:

$$l_{rp}=\frac{(-z_{0}x_{0}x_{1})-(z_{0}y_{0}y_{1})+(z_{1}x_{0}^{2})+(z_{1}y_{0}^{2})}{U1+U2}$$
(14)

where

$$\begin{aligned} U1&=(z_{0}x_{1}^{2})+(z_{0}y_{1}^{2})+(z_{1}x_{0}^{2})+(z_{1}y_{0}^{2}) \\ U2&=-(z_{0}x_{0}x_{1})-(z_{0}y_{0}y_{1})-(z_{1}x_{0}x_{1})-(z_{1}y_{0}y_{1}) \end{aligned}$$

If \(l_{rp}\) is between 0 and 1, an additional elevation angle is required. Its value can be calculated by substituting \(l_{rp}\) value into Eq. 13. Figure 4b shows the vertices elevation angles (at the start and at the end of curve) and the additional edge angle at the round point \({\mathbf {P}}_{rp}\) (middle red circle).

Fig. 4
figure 4

This figure shows: a the additional elevation angle \(\phi _{l}\) for triangle edge (red line) of vertices \({\mathbf {P}}_{0}\) & \({\mathbf {P}}_{1}\) and b the elevation angles values from \({\mathbf {P}}_{0}\) to \({\mathbf {P}}_{1}\). (Color figure online)

4 LADAR Simulator

In this software, the simulated LADAR image is produced by scanning the model with multiple laser pulses, each providing one pixel on the LADAR image. The simulation steps for this simulator are as follows:

  1. 1.

    The required simulation parameters are defined; LADAR (viewing direction, field of view and scanning resolution), laser source (temporal and spatial domains), atmosphere, target, noise and receiver.

  2. 2.

    For every laser pulse, the target impulse response \(h_{tr}\) is generated and convolved with the temporal laser pulse p(t) to calculate the temporal reflected power signal arriving at the detector \(P_{r}(t)\) as shown in the following equation.

    $$P_{r}(t)=h_{tr}(i)*p(t)$$
    (15)
  3. 3.

    The resultant power signals are converted to photoelectrons using Eq. 18. The background, photon counting, and speckle noise are then applied, if enabled by the user, using Eqs. 19 and 17 (see “Appendix 1”).

  4. 4.

    The received electrical signals are then passed to the CFD peak detector to detect their peaks which are then used to calculate the round-trip time intervals \(\Delta t_{tot}\) as shown in Fig. 1. As the laser pulses travel at the speed of light c (\(3\times 10^{8}\) m / s), the LADAR system calculates the ranges \(R_{c}\) for these pulses using the following equation [34]:

    $$R_{c}=\frac{\Delta t_{tot}}{2}\times c$$
    (16)
  5. 5.

    Finally the range values are assigned to the corresponding pixels on the LADAR image.

Two graphical user interface (GUI) Windows were designed for this simulator. The main window (Fig. 5), is used to set the scan parameters and display the results. The second window (Fig. 6), is used to adjust the position and orientation for both the LADAR and the model (model size also can be adjusted in this window).

Fig. 5
figure 5

LADAR simulator graphical user interface main window

Fig. 6
figure 6

LADAR simulator graphical user interface sub window

The simulator is designed to display the results after the scanning process in four different formats, one in spherical coordinates (spherical image), the other three in Cartesian coordinates (point cloud, surfaces and laser beams intersection spots with the model surface), as shown in Fig. 7.

Fig. 7
figure 7

The simulation results of scanning the car model (shown in Fig. 5) in four different formats: a point cloud, b surfaces, c collision laser spots, and d spherical image

Figure 8 presents selected simulation results that show the effect of changing the scanning parameters and models positions on the resultant LADAR image. These parameters are noise type, scanning resolution and laser beam width. All the figures presented in this section are based on the original model and parameters shown in Fig. 5.

Fig. 8
figure 8

Effect of a background noise, b photon counting and speckle noise, c low scanning resolution, and d large beam width on the resultan LADAR image

5 Testing Procedure and Evaluation Results

The performance of the LADAR simulator, in terms of processing time required to generate simulated 3D images, has been evaluated. This evaluation was achieved with the simulator using two target impulse response TIR generation approaches; conventional (normal) and proposed.

Since the time required to generate TIR depends on the number of rays’ vectors (that represent the laser beam samples) and on the number of triangles (that represent the scene or model surface), the simulator only tested changes in the effects of these parameters. The other scanning parameters were kept constant, their values presented in Table 1 in “Appendix 3”. This table also shows the specifications for the computer that is used to run this test. Changing the number of vectors is achieved by changing the spatial sampling factor (\(sf_{s}\), see Sect. 2.1.2), while changing the number of triangles is done by using different 3D models of different numbers of faces.

To cover a wider range, more than forty 3D models of triangles with numbers ranging from 2375 to 13980, were used. Some models were taken from 3DVIA and ARTIST 3D model libraries [1, 2] (see Fig. 9), the others generated from scanning real objects with triangulation based LADAR systems (TriLADAR). Figure 10 shows two TriLADAR systems with their control windows. These systems were designed and implemented at Liverpool University, to scan real objects and generate their 3D models with a specific number of triangles.

Fig. 9
figure 9

Some 3D CAD models of different faces number (represented by red edges triangles) used for evaluation. (Color figure online)

Fig. 10
figure 10

Two different TriLADAR systems: a TriLADAR based on laser line scan with its, b control windows and c TriLADAR based on laser dot scan with its, d control window

The testing procedure starts by scanning the 3D model using both approaches at a scanning resolution equal to 2500 pixels, with a laser beam (number of vectors equal to 768 by setting \(sf_{s}\) to 5), and calculates the required time to get the final image. The procedure then increases \(sf_{s}\) by 5 and re-scans the model again until the \(sf_{s}\) reaches 50 this equivalent to 68403 vectors. Another 3D model comprised of more triangles than the previous model is then selected and the whole procedure is repeated again and so on, until 42 different 3D models are scanned. In order to guarantee that all models are fully scanned with the same resolution (2500 pixels), both the angular field of view and angular resolution are automatically adjusted according to the model dimensions.

The full testing results representing the effects of changing the number of triangles and vectors on the execution time for both approaches (normal and proposed), are presented as a 3D-graph as shown in Fig. 11a. Since the execution time for the normal approach covers a wider range compared to the proposed approach, the execution time is plotted in logarithmic scale as shown in Fig. 11b.

Fig. 11
figure 11

Execution time for both approaches versus the numbers of triangles and vectors

In order to present these effects individually, some results have been selected from the original 3D-graph and their slopes are also calculated (using the least square method) as shown in Fig. 11c, d. Figure 11c shows the effect of changing the number of triangles on execution time (and its slope) for specific vectors numbers (Vc. No.) while Fig. 11d shows the effect of changing the number of vectors on execution time (and its slope) for specific numbers of triangles (Tr. No.).

The results in Fig. 11b shows that the execution time for the proposed approach is much smaller than the normal approach. Figure 11c shows an increment in slopes for both approaches when the numbers of vectors increases from 768 to 68403. The differences in execution time when increasing the numbers of triangles, are not significant with the proposed approach. This caused the effect of models shapes clearly noticeable as a fluctuation in time (see Fig. 11c). Figure 11d also shows an increment in slopes for both approaches, but this time when the numbers of triangles increases from 2375 to 13980. In general, the average execution times for both normal and proposed approaches, are equal to \(6.1\times 10^{3}\) s and 17.6 s respectively.

6 Conclusion

An efficient LADAR simulator has been developed using a novel TIR generation approach, to simulate the direct detection time of flight LADAR systems. The simulator models each stage, from laser source to data generation, over a short execution time producing simulated LADAR images, under a wide variety of conditions. The proposed approach to generate TIR has been developed to produce responses identical to these generated from the conventional or standard approach, but by using less computational time. This has been achieved by mathematically deriving the required equations to calculate target angular ranges which, in turn, enables an evaluation of the intersection points that lie in the same angular range, instead of evaluating the whole intersection point (between every laser ray vector and all the scene’s triangles).

More than forty, 3D models were used to evaluate the simulator’s performance in terms of processing time with different laser beam samples. The evaluation was carried out with this simulator using two target impulse response TIR generation approaches, proposed and conventional (normal), where the latter was used to benchmark the results. A comparison of the results shows that the LADAR simulator with proposed approach is quicker than normal approach, especially when the 3D model consists of a large number of triangles, or when a large number of laser footprint samples are required.

The average processing speed for the simulator with the proposed approach was 345 times faster in comparison to the normal one. This improvement in performance enables the simulator to scan a large number of targets, at different scanning parameters and poses at high speed, and opens up the possibility for simulating LADAR beam propagation more accurately in a shorter time, by using a large number of laser footprint samples.

The simulation steps for the LADAR simulator and its GUI are illustrated with some results of scanned 3D models. These simulation results demonstrate the ability of the LADAR simulator to scan and produces LADAR images under different scanning parameters (noise type, scanning resolution and laser beam width).