1. Introduction
The ranging sensor, one of the most precise techniques for 3D ranging and distance measurements, has attracted considerable attention in recent decades due to its extremely high performance and promising applications in automated systems interacting with the external environment, spanning across the consumer, industrial, and automotive fields [
1,
2]. Due to the fact that silicon single-photon avalanche diodes (SPADs) are solid-state detectors capable of single-photon sensitivity in the visible and near-infrared spectrum, which can be manufactured in complementary metal-oxide-semiconductor (CMOS) processes together with on-chip analog or digital circuitry, SPADs are the best candidates for 3D ranging applications [
3,
4]. In light detection and ranging (LiDAR) systems, the photon arrival time measured after a sufficient number of pulsed laser shots can be accumulated into a histogram, and the conventional method of distance extraction is the Center-of-Mass (CoM) algorithm [
5]. However, the reflections can vary greatly depending on the reflecting surface shape and reflectivity. In real-world LiDAR systems, it is difficult to calculate depth accurately using the CoM method alone.
Various architectures have been proposed to achieve high accuracy ranging [
6,
7]. A basic approach to reduce the error of ranging is increasing the number of laser shots in the measurement, which can help to obtain a histogram distribution with a high signal-to-noise ratio (SNR), but lowers the frame rate [
8]. A common approach to achieve high accuracy ranging is the use of scanning lasers, which illuminate only a single spot of the target scene at once [
9]. In this technique, the field of view (FoV) of the laser source is much smaller compared with that of flash illumination, allowing a higher optical power, but scanning lasers are more expensive and more complex. Another approach is the use of the OR-Tree logic circuit to achieve pixel binning. The higher number of SPADs triggers the same time-to-digital converter (TDC), which helps improve SNR and reduces the error of ranging [
10]. In this way, the higher the number of SPADs triggering the same TDC, the more timestamp information is lost.
To be able to extract accurate depth information, the signal of the histogram needs to be filtered with a best matched filter. In [
11], in order to reduce the fluctuations in bin values due to shot-noise, the authors proposed a finite impulse response (FIR) filter prior to determining the locations of the ToF peaks. In [
12], the authors reported that the filter is a normalized version of a histogram of hits collected by one SPAD in single-photon mode measuring the location of a target placed at a specific distance. After the filtering, even in the cases where the photon detection probability was quite low and the signal was almost covered by noise, the signal could be recovered by the filter method. In [
13], an FIR filter was reported to improve accuracy by up to 2 times. In the state-of-the-art ranging sensor systems, the choice of filter used is effective for improving accuracy and filtering out noise. However, it is difficult to define the best matched filter for a real ranging system.
In this work, we design different types of matched filters to filter the histogram data in the real ranging system, and select the best matched filter to be integrated into the microcontroller unit (MCU) core. Firstly, we captured the data of histograms at different distances using a ranging sensor. Secondly, we defined different profile filters (pile-up, reverse pile-up, triangle, and square) to process the raw data of the histogram; the pile-up profile means the distortion in the second half of the histogram, and the reverse pile-up profile means the distortion in the first half of the histogram [
14]. Finally, the depth extraction of the processed histogram data is performed using the CoM algorithm, the ranging standard deviation is calculated from multiple measurements of the distance at a specific location with different profile filters, and the filter with the best profile is selected as that with the smallest standard deviation. We implemented the best profile filter using an MCU core, and make an SoC system to perform ranging with different values of reflectivity. The system resulted in a precision of better than 5 mm within 6 m with 80% reflectance of the target, and a precision better than 8 mm at a distance within 4 m with 18% reflectance of the target.
This work is organized as follows: The ranging sensor chip implementation is described in
Section 2. How to define the best profile-matched filter is described in
Section 3. In
Section 4, the best matched filter implemented in the MCU core and the real ranging system measurement results are introduced, and in
Section 5, the discussion and conclusion are presented.
2. Ranging Sensor Chip Implementation
We designed the dToF ranging system as shown in
Figure 1. The dToF ranging system is designed to achieve highly accurate depth measurements, which requires the co-optimization of the hardware and firmware.
Figure 1a illustrates the working principle of the ranging system,
Figure 1b illustrates the package module of the ranging system, and
Figure 1c illustrates the measurement setup of the ranging system. The chip was packaged into a module for ranging, the resulting package created an emission cone from a vertical-cavity surface-emitting laser (VCSEL) light source of 940 nm, which reflected off a target to the SPADs array, and the SPADs array had an FoV in the package to receiver the echo photons. The ranging sensor measures the time it takes for the emitted VCSEL pulse to travel back to the sensor, which determines the target distance. In addition, a bandpass filter with a center wavelength of 940 nm was used to cut down the background noise. The sensor operates in two types of output modes: (1) histogram raw data mode: output raw data of histogram, and (2) ranging mode: output distance data of ranging.
The ranging sensor chip was fabricated in the 0.13 µm CMOS technology. The chip size is 1.2 mm × 3.0 mm. The chip consisted of a pulsed VCSEL driver and SPAD-based sensor, as shown in
Figure 2. In the driver part, a programmable narrow pulse is generated on a chip via the pulse generator, and the first edge of the pulse (Edge1) comes directly from the external trigger, while the second edge (Edge2) is generated by properly delaying the trigger signal with a delay-cell line. The pulse delay is selected via the digital circuit. The output current of the driver is controlled by adjusting the laser driver voltage (LDVcc), which comes from a DC–DC regulator for which the feedback network is controlled by the digital circuit. A separate pulsed VCSEL driver was described by us in [
15]. In the sensor part, a 16 × 16 SPADs array with quenching circuits was used, and each SPAD could be independently masked or binned to macro-pixel via OR Tree, four TDCs, a histogram builder that outputs the raw data of the histogram via I2C bus, and a firmware built-in MCU to implement the best profile-matched filter [
16].
Figure 3 shows a micrograph of the ranging sensor chip.
3. Defining the Best Profile Matched Filter
To find the best matched filter for our ranging system requires making our ranging system work in histogram raw data mode. A fully automated track was used to position the target at different distances for ranging, and we collected the raw data of the histogram at different distances.
Figure 4 shows the raw data of the histogram at different distances. The laser ran at a repetition frequency of 1 MHz, with a 1 ns pulse width and an average power of 20 mW; the integration time of the ranging system was set to 30 ms; and the target reflectivity was 18%. We can see that in
Figure 4, the SNR gradually decreases as the distance to the target object increases.
We take the raw data of the histogram and process it through a set of matched filters to find a matched filter with the lowest range jitter. In this work, we define four types of profile filters (pile-up, reverse pile-up, triangle, and square) to process the raw histogram data. The processing of the different types of matched filters is shown in
Figure 5. The filter operation is performed by convolving the histogram with the filter kernel,
, and the histogram processing method can be evaluated by using Equation (
1) as follows.
where
is the
mth filtered histogram bin,
m is defined in the range of 0 to 127,
n is the length of the filter kernel
,
i is the summation of the bins index, and
denotes the unprocessed bin values.
We started with a single-point ranging calculation in order to characterize the precision of the different profile-matched filters in this ranging system. We defined precision as the standard deviation of the ranging system, and collected 200 sets of histogram data for each target distance. After the filtering process, the standard deviations of different filters at different distances are calculated using a CoM algorithm [
17].
Figure 6 shows the implementation of the CoM algorithm. The processed histogram data output 7 bits of
and 16 bits of
, the
as the histogram bins value, and the
as the histogram count value of each histogram bin. The output values of the processed histogram are input into a peak detector circuit, and used to calculate the maximum peak bin as
. We set a window of
with the width of full-width at half-maximum (FWHM) optical pulses. FWHM represents the FWHM of VCSEL. At this point, we have to map the 7-bit processed histogram data to the incoming TDC bin values (tdc_data), which have passed through the window such that Equation (
2) holds. The low threshold value of the window is expressed by Equation (
3), and the high threshold value of the window is expressed by Equation (
4).
The range distance can be evaluated from the following CoM algorithm of Equation (
5), where
h represents the processed histogram bin counts, and
b is the median of the background light counts. We perform 200 measurements for each distance to evaluate the range jitter.
As we know the signal photon distribution within the laser pulse width, we can define the length of the filter kernel,
, the same as the laser pulse width, and make the laser driver emit light with a pulse width of 1 ns. The TDC resolution is 500 ps in this ranging system, the jitter of the full system is approximately 1 ns, and the width of the matched filter is defined as 5. We designed the filter kernels of pile-up, reverse pile-up, triangle, and square, which are defined in Equations (6)–(9), respectively. The filter kernel is quantified by the filter profile in
Figure 5.
Figure 7a shows the mean distance of 200 measurements with different profiles of matched filters, where the measured mean distance of the square profile filter is closer to the real distance.
Figure 7b shows the standard deviation of 200 measurements with different profile-matched filters. There are 200 sets of histogram data for each distance. After each set of histogram data are processed by different profile-matched filters, the distance is calculated and the precision is evaluated using the CoM algorithm. The precision results of different profile-matched filters are compared with the ranging system. The depth precision of the square profile filter is less than 7 mm over the whole range, the depth precision of the triangle profile filter is less than 15 mm over the whole range, the square profile filter has the least jitter of ranging, and the triangle profile filter has the most jitter of ranging. In this ranging system, the square profile filter offers the best range precision, and with the above analysis, we implemented the square profile filter into the MCU core.
Adjusting the pulse width of the laser also affects the jitter of the range measurement [
18]. For lasers with different pulse widths, different lengths of filter kernels need to be designed to match the pulse width of the laser.
Figure 8a shows a laser pulse width of 1 ns, and
Figure 8b shows a laser pulse width of 2 ns. For different laser pulse widths, we designed square profile filter kernels of different lengths to process the raw histogram data. The filter kernels of 1 ns laser pulse width are defined in Equation (
9), and the filter kernels of 2 ns laser pulse width are defined in Equation (
10). The TDC resolution is 500 ps in this ranging system, and the jitter of the full system is approximately 1 ns. We need to set two elements to include the jitter of the whole system. If the laser pulse width is 1 ns, we need to set two elements to include the pulse width of the laser, and if the laser pulse width is 2 ns, we need to set four elements to include the pulse width of the laser. To satisfy the requirement of histogram distribution centrosymmetry, we set the length of the filter kernel to five for a 1 ns laser pulse width, and set the length of the filter kernel to seven for a 2 ns laser pulse width.
The precision results of different widths of laser pulse are compared with the ranging system.
Figure 9a shows the mean distance of 200 measurements with different laser pulse widths; for a laser pulse of 1 ns, the measured mean distance is closer to the real distance.
Figure 9b shows the standard deviation of 200 measurements with different lengths of square profile-matched filter kernels. The depth precision is less than 6 mm over the whole range for a 1 ns laser pulse width, and the depth precision is less than 12 mm over the whole range for a 2 ns laser pulse width. With a 1 ns laser pulse width, the square profile filter has the least jitter of ranging. The narrower the pulse width of the laser, the more concentrated the distribution of the photon signals in the laser pulse, and the lower the jitter of ranging.
5. Conclusions
In LiDAR systems, ranging scenarios are complex and need to achieve long-range, high-precision detection. In different ranging scenarios, such as different reflectivity and different profiles of reflective surfaces, these changes can distort the distribution of the histogram; when the distribution of the histogram becomes distorted, it causes a large ranging error. In order to reduce the error caused by the distortion of the histogram distribution, we need to find a best matched filter. In this work, we propose a method to find the best matched filter to suit our ranging system, and the built-in MCU of our ranging system is able to implement different filter profiles to meet the needs of different ranging scenarios and different ranging precisions for LiDAR applications.
This work presents a dToF ranging sensor system-on-a-chip, consisting of a configurable SPAD array, a 940 nm VCSEL, a co-optimized laser driver, and an MCU core to implement the best matched filter. In this work, we propose a scheme to design filters of different profiles to process the raw histogram data, and find the best filter with the least distance jitter. Finally, the best profile filter was implemented in the MCU and used in a ranging system. The system had a precision of better than 5 mm over the whole range of 6 m with 80% target reflectivity, and a precision better than 8 mm at a distance within 4 m with 18% reflectivity. Longer-range laser ranging with higher precision can be expected in the future.