To solve the coordinate calculation of 3D point cloud in non-GNSS scenarios, we propose a 3D point cloud generation method based on multi-sensor fusion. In the track mobile laser measurement system (TMLS), to solve the calibration of the relative position relationship of the scanner, IMU and carrier space, we defined a coordinate system fixed on the sensor integrated frame, which was called the car body coordinate system. Firstly, the method calculated the displacement vector from the control point to the center of the car body according to the calibration parameters using the cloud coordinates of the control point in the car body coordinate system and the attitude angle of the inertial navigation system at the same time. Next was the calculation of the coordinates of the center point of the same section track according to the coordinates of the control point and the displacement vector. When the track inspection trolley was placed on the track, the center point of the track coincided with the center of the car body. We used the original attitude angle and speed data collected by the IMU and odometer to calculate the center trajectory coordinates of the car body and compare the track center point calculated by the control point with the error of the calculated trajectory point at the same time as the observation update in the Kalman filter. The odometer speed and IMU pitch were corrected using the optimal estimates obtained after filtering and smoothing.
3.1. Research on Track Mobile Laser Measurement System (TMLS)
We mainly integrated sensors such as a Z + F 5016 3D laser scanner, FSINS3X inertial navigation system, inclinometer, rail car and laptop computer in the TMLS, as shown in
Figure 3. The track trolley contained a motor, odometer and gauge measuring instruments. It drove at a constant speed on the track at three different speeds of 0.5 m/s, 1.0 m/s, and 1.5 m/s. The odometer scale error was 0.45‰. The scanner, IMU, inclinometer, etc. were all controlled by the laptop to start and stop. The IMU, inclination, mileage and gauge data were transmitted to the computer in real time through the serial port and the scanner data was recorded on its own solid-state hard disk.
System synchronization mainly included time synchronization and space synchronization. To ensure that the scanner and IMU in the system were consistent in the time system, and that the scanner, IMU and rail car were consistent in the space coordinate system, it was necessary to unify the time and space coordinates of each sensor in the system [
23].
Figure 4 presents the coordinate definition of the main sensors in TMLS. The IMU defined the three-dimensional coordinate axis according to the equipment design framework. One X-axis and one Y-axis pointed to the front of the system and the others pointed to the left side of the system. On the right side, the Z-axis was upward. The origin of the scanner coordinate system was the laser emission point, the X-axis was perpendicular to the scanning plane and pointed to the front of the scanner, that is, the front of the scanning section. The Z-axis pointed vertically upward in the scanning plane, and the Y-axis was perpendicular to the scanning plane. The axes were also in the scan plane and perpendicular to the XOZ plane, forming a left-handed coordinate system.
In terms of time synchronization, the system recorded the system time uniformly in the IMU, inclination and trolley data using the laptop. A Z + F 5016 scanner can automatically record the start time from the scan start time. The system time of the scanner was time unified. In the space synchronization, we adopted the method of system calibration to unify the space coordinate system.
3.1.1. Hardware Equipment
The TMLS mainly included sensors such as 3D laser scanner, IMU, inclinometer and odometer. The specific models and parameters are as follows.
- (1)
3D Laser Scanner
The 3D laser scanner is a sensor that uses the principle of laser ranging to efficiently obtain information such as the 3D coordinates and reflectivity of the measured object. We used the Z + F 5016 three-dimensional laser scanner produced by the Z + F Company in Germany, as shown in
Figure 5, and the main technical parameters are shown in
Table 1.
- (2)
Inertial measurement unit (IMU)
An IMU is a device used to measure the attitude angle and acceleration of an object. We used a FSINS3X optical fiber strapdown inertial navigation system produced by the Harbin Hangshi Enterprise Group, shown in
Figure 6. A FSINS3X consists of fiber optic gyroscopes, quartz flexible accelerometers, navigation computers, power modules, etc. It can quickly measure the attitude, speed and position of moving carriers (cars, ships, aircraft, etc.).
Through corresponding settings, the system can be combined with a GNSS, odometer (ODO), Doppler log (DVL) and ultra-short baseline (USBL) to obtain more accurate navigation information.
Figure 6 shows the FSINS3X, and
Table 2 shows its main technical parameters.
- (3)
Inclination Sensor
The inclination sensor mainly measures the track pitch angle and lateral inclination angle in the stationary phase and is used to assist in correcting the horizontal attitude angle of the IMU. This system selects a BW-VG527 dual-axis inclination sensor (as shown in
Figure 7). The weighing accuracy is 0.01°, and the RS232 communication mode was adopted. The performance indicators are shown in
Table 3.
3.1.2. System Software Design
We developed a program related to the processing of point cloud data in tunnel scanning based on TMLS using the Visual Studio 2017 platform and C++ language, which mainly included integrated system control, data acquisition, data post-processing and other modules. The diagram of the program design structure is shown in
Figure 8.
The program can decode the original file and generate the point cloud data in the Las format, generate trajectory data and generate three-dimensional point cloud coordinates. The main interface is shown in
Figure 9. The main functions include system control, data collection, ZFS format conversion to LAS format, trajectory data solution, generation of point cloud data in relative coordinate system and point cloud data in an absolute coordinate system.
3.1.3. System Calibration
To complete the spatial synchronization of each TMLS sensor, we used a method of system calibration to unify the spatial coordinate system. By calibrating the scanner, the relative position between the scanner center and the car body was obtained, and the scanner coordinate system and the car body coordinate system were unified. By calibrating the IMU, the attitude angle error between IMU and the car body in the engineering coordinate system was obtained, and the IMU coordinate system and the car body coordinate system were unified. To prevent the horizontal attitude angle of IMU and zero-degree value of angle measurement of the inclinometer from being parallel to the horizontal plane and closure error of the IMU heading angle [
24], the zero-degree deviation of horizontal inclination and the closure error of the heading angle were calibrated.
- (1)
Scanner Calibration
In the scanner calibration, the total station and target points were used to calculate the conversion parameters between the scanner coordinate system and the car body coordinate system. First, we stuck four reflectors on the tunnel wall at the same section and stuck four reflectors on the rail car. We used the total station to measure the coordinates of the centers of these seven reflectors. The scanner was turned on to scan the area where the target was located and extracted the target center coordinates from the point cloud, as shown in
Figure 10.
To calculate the calibration parameter, we first defined the car body coordinate system (RC), the scanner coordinate system (RS) and the total station coordinate system (RT). First, the conversion parameters between RT and RS were calculated through the center points of the four reflectors on the tunnel wall. Then we calculated the conversion parameters between RT and RC through the three common points on the car body. Finally, the conversion parameters between RS and RC were obtained through two translation rotations, and then the point cloud data could be converted from RS to RC.
- (2)
IMU Calibration
The IMU coordinate system (RI) and RC could not be completely coincident due to the influence of the instrument installation error; therefore, it was necessary to calibrate the IMU installation angle error.
Figure 11 shows the sensor coordinate systems and their relative relations.
In the IMU calibration, the total station was used to measure the engineering coordinate system coordinates of the three points A, B and C, on the body of the rail car. According to Equation (16), the attitude angle of the car at that time could be calculated and then compared with the attitude angle observed by the IMU; the difference of the three-axis attitude angle between RI and RC could be obtained. The average value was obtained through multiple measurements of the error calibration of the IMU installation angle as the result.
- (3)
Horizontal inclination zero deviation and heading angle closure difference calibration
We used a method of positive and negative measurement for calibration. Before operation, we placed the stationary trolley on the track facing the direction of measurement to measure the angle, then turned the trolley 180° and measured again. As shown in
Figure 12, the error between the measured horizontal inclination angle and the actual inclination angle was ∆α. The actual inclination angle as β; therefore, the measured value was
. The correct inclination
. The inclination correction number between the inclinometer and the track coordinate system could be obtained using
. The forward measurement value of IMU heading angle was
and the reverse measurement value was
. The sum of the round-trip measured values of IMU direction angle should be 360°. The heading closure difference was
and the heading angle correction number was
.
3.2. Trajectory Correction Algorithm
During the trajectory correction of the scanning trolley, first the coordinates of the track center point of the same section were calculated according to the target point cloud coordinates and IMU attitude angle in RC. The IMU attitude angle and odometer speed were used to calculate the track center coordinates of the next point from the previous point and compare the calculated coordinates of the target control point to obtain the estimated error as an observation update to correct the odometer speed and IMU attitude angle. Since the calculated track center point changed after correcting the attitude angle, the track center point was recalculated using the corrected attitude angle and compared with the original target to determine whether the error exceeds the threshold. If the error exceeded the threshold, a secondary filtering was performed to correct it, but it did not exceed the calculated trajectory.
Figure 13 shows the trajectory correction process.
- (1)
Track center point calculation
After extracting the target point cloud, according to the IMU attitude angle and car body parameters, we calculated the displacement vector (ΔX, ΔY and ΔZ) of each target and the center point of the track after the conversion.
The body correction in RS was:
where
is the vertical translation of the scanner center relative to the car body center, and
is the lateral translation of the scanner center relative to the car body center, and
is the roll angle at this moment.
The point cloud coordinates in the car body coordinate system were:
According to time alignment, we calculated the rotation parameters of each scanning section according to the IMU attitude angle and then obtained the displacement vector of the target relative to the track center at the same section, as shown in
Figure 14:
where
are calculated by the following equations:
where
represent three Euler angles, which are heading, pitch and roll angles.
According to the position of the control point, the track center point of the section
could be inversely calculated. This was used as a control point to compare the error with the trajectory calculated from the original acquisition data of the IMU and odometer.
where
is the coordinate of the target center measured by the total station.
- (2)
Original data estimation error
According to the position update algorithm, the IMU attitude angle and odometer speed were used to calculate the line trajectory, and according to the position update equation, the approximate displacement increment ∆
S of the time
t + ∆
t relative to the time t was calculated, and the time
t + ∆
t coordinates were
We obtained the track center point at the same time as the target center point, and translated the original data to estimate the trajectory, so that the previous target calculated track center point coincided with the corresponding time estimated trajectory point, and the error between the trajectory coordinates and the target calculated track center point at the next moment could be calculated.
- (3)
RTS filter correction
In the system, the IMU zero bias instability was 0.01/h, the angle random walk noise was 0.02/h, the odometer measurement accuracy was 0.45/1000, the target center point coordinate measurement was measured by Leica high-precision optical total station, the angle measurement accuracy was 0.5”, and the ranging accuracy was 1 mm + 2 × 10−6.
The trajectory estimation error of the control point corresponding to the track center was used as the observation update and the optimal estimation of the IMU attitude angle error and the odometer velocity error was obtained by filtering, which was used to correct the original data and solve the track center line. The discrete Kalman filter equations in the horizontal and vertical directions were:
Since there was no coupling between the horizontal and vertical directions, Kalman filter models could be established for the horizontal and vertical directions, respectively. We selected the pitch angle, heading angle attitude error
and
, gyro offset sum
and
, position error
,
, and odometer scale factor
δk as Kalman filter state quantities. The system state variables in the horizontal and vertical directions were
The displacement error observation was used as the filter update, the position observation value was provided by the total station, and the difference between the position value and the position value measured by dead reckoning was used as the observation update of the Kalman filter, namely,
where the system transition matrix
is
Horizontal system noise , , vertically , , where , is the system noise power spectral density.
The observation matrices in the horizontal and vertical directions were
The horizontal direction observation noise could be expressed as , ; the vertical direction is where and ; is the observed noise power spectral density.
When there are observations, they were updated to get the best estimate:
If there was no observation update time, only the filter estimation was performed:
Reverse smoothing started at the last moment, and the stated estimate and covariance matrix obtained at the last moment by forward recursion were the initial state estimate. The covariance matrix of the backward recursion process, which were and , smoothed backward calculation according to Equation (15).
After the attitude error was corrected, the displacement vector of the target to the center point of the track of the same section changed so that the track center was recalculated using the corrected displacement vector. The calculated error was compared with the original data of the IMU and odometer, and the calculated error was filtered for a second time. The IMU attitude angle and odometer speed were corrected using the error parameters obtained after secondary filtering, and the corrected trajectory data was obtained by calculation.
3.3. Attitude Angle Optimization Algorithm
RTS filtering smoothing only corrected the two attitude angles of heading and pitch and not the roll angle. The roll angle error in the generation of three-dimensional point cloud led to a torsion of point cloud. We used a high-precision inclinometer to constrain the roll angle of the entire inertial navigation system. Due to the high acquisition frequency of inertial navigation data, the attitude angle was prone to periodic high-frequency jitter, resulting in the deformation of the generated three-dimensional point cloud data. For this, the recursive average filtering algorithm was used to optimize the three-axis attitude angle and suppress the periodic noise interference at high acquisition frequency.
- (1)
Inclinometer correction
The roll angle was first corrected according to the high-precision inclinometer. Since the static measurement accuracy of the inclination angle is high, the error in the dynamic measurement becomes larger; therefore, the IMU roll angle is corrected using the static angle measurement at the start and end of the trolley scan. The IMU and inclinometer roll angles measured in the static state before the trolley scanning starts are recorded as
, and the difference between the two is calculated as
. After the trolley scanning, the statically measured IMU and inclinometer roll angles are recorded as
, and the difference is calculated as
.
Figure 15 shows the inclinometer roll angle and IMU roll angle.
First, the roll angle of the IMU was modified according to the inclinometer data, and then the error was evenly distributed according to the scan time. Assuming that the overall scan time was
, and the starting time was
, then the IMU data
now are
, and the roll angle at this moment is
- (2)
Recursive Averaging Filter
Since the attitude angle collected by IMU had the characteristics of a high collection frequency and periodic change, the attitude angle was prone to periodic high-frequency jitter. To avoid impact on the point cloud generation, a method of recursive average filtering was used to optimize the corrected three-axis attitude angle to suppress this high-frequency periodic error interference.
The recursive average filtering method regarded
N consecutive sampling values as a queue, and the length of the queue was fixed as
N. Each time a new data point was sampled and placed at the end of the queue, the original data at the head of the queue were discarded according to the principle of first-in, first-out. The
N data in the queue were arithmetically averaged to obtain a new filtering result. It had a good inhibitory effect on periodic interference, and the smoothness was high, which was suitable for high-frequency oscillation systems.
Figure 16 shows the comparison curve before and after recursive average filtering. It was seen from the filtered and the original attitude angles that while maintaining the overall consistency, the method eliminated high-frequency jitter and oscillation, and the data was smooth and more stable.