Navigation system time synchronization method, apparatus, device, and storage medium
By using multiple consecutive second pulse signals to determine the local clock step size when GNSS satellite signals are good, and adjusting sensor parameters in real time, the problem of multi-sensor data time synchronization relying on CPU control is solved, achieving high-precision and low-load time synchronization and improving the overall performance of the navigation system.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUBEI UNIV OF ECONOMICS
- Filing Date
- 2026-04-09
- Publication Date
- 2026-06-16
AI Technical Summary
In existing technologies, multi-sensor data time synchronization relies on CPU control, which increases the CPU load and reduces synchronization accuracy and reliability when GNSS satellite signals are lost.
By using multiple consecutive second pulse signals to determine the initial step size estimate of the local clock when the GNSS satellite signal quality is good, clock deviation is captured in real time, and the local clock parameters are adjusted according to the satellite signal quality and interference, thus achieving time synchronization of multiple sensors.
It reduces CPU load, improves the accuracy and reliability of multi-sensor data time synchronization, reduces errors caused by time asynchrony, and enhances the accuracy and reliability of the integrated navigation system.
Smart Images

Figure CN121977585B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of navigation technology, and in particular to navigation system time synchronization methods, devices, equipment and storage media. Background Technology
[0002] In the fields of autonomous driving or drone navigation, multiple sensors are used, such as satellite navigation modules, inertial measurement units, visual sensors (monocular cameras, binocular cameras), LiDAR, wheel speedometers, and magnetometers. During application, issues arise such as inconsistencies in the time systems of these sensors, and some sensors even lack independent time systems. Furthermore, the sampling frequencies and data transmission rates of various sensors differ, necessitating the ability to ensure the absolute time accuracy of the acquisition system remains within a certain error range and to synchronously acquire data from multiple sensors with ultra-low latency.
[0003] Existing solutions use a 1 Pulse Per Second (1PPS) signal as the interrupt signal and employ a Central Processing Unit (CPU) timer to generate a sampling clock synchronized with the 1PPS to achieve data acquisition synchronization with the 1PPS. This method requires CPU involvement throughout the synchronization process, as the CPU controls data acquisition, increasing the CPU's workload. Furthermore, when the Global Navigation Satellite System (GNSS) satellite signal is lost for an extended period, the accuracy of the 1PPS pulse decays, directly reducing the accuracy and reliability of multi-sensor data time synchronization. Therefore, maintaining high accuracy in multi-sensor data time synchronization has become a problem that needs to be solved.
[0004] The above content is only used to help understand the technical solution of this application and does not represent an admission that the above content is prior art. Summary of the Invention
[0005] The main objective of this application is to provide a navigation system time synchronization method, apparatus, device, and storage medium, aiming to solve the technical problem of how to maintain high accuracy in the time synchronization of multi-sensor data.
[0006] To achieve the above objectives, this application proposes a navigation system time synchronization method, which includes:
[0007] When the satellite signal quality of the global navigation satellite system is good, the initial step size estimate of the local clock is determined based on multiple consecutive second pulse signals of the global navigation satellite system, and the initial step size estimate of the local clock is used as the historical local clock step size estimate.
[0008] The current local clock step size measurement value is determined based on the pulse signal of the previous second and the pulse signal of the current second.
[0009] Acquire satellite interference information and determine whether the satellite signal quality and satellite interference conditions meet the requirements for satellite use;
[0010] The current local clock step size estimate and the current local clock absolute time are determined based on the compliance of the satellite usage conditions, the historical local clock step size estimate, and the current local clock step size measurement.
[0011] The navigation system time synchronization for multiple sensors is completed based on the estimated step size of the current local clock and the absolute time of the current local clock.
[0012] In one embodiment, the step of synchronizing the time of the multi-sensor navigation system based on the estimated current local clock step size and the absolute time of the current local clock includes:
[0013] Under the condition that the satellite signal quality is good, obtain the local clock error;
[0014] Based on the local clock error, the clock phase, clock frequency, and clock frequency drift rate are fitted;
[0015] When the duration of time that does not meet the satellite usage conditions reaches the preset satellite lockout duration, the current local clock absolute time is compensated based on the clock phase, the clock frequency and the clock frequency drift rate to obtain the compensated current local clock absolute time.
[0016] Time synchronization of the multi-sensor navigation system is completed based on the estimated current local clock step size and the compensated current local clock absolute time.
[0017] In one embodiment, before determining the estimated initial step size of the local clock based on multiple consecutive second pulse signals of the global navigation satellite system when the satellite signal quality of the global navigation satellite system is good, the method further includes:
[0018] The satellite positioning status, number of positioning satellites, and position accuracy attenuation factor of the global navigation satellite system are obtained, and the satellite signal quality is determined based on the satellite positioning status, the number of positioning satellites, and the position accuracy attenuation factor.
[0019] Before the step of obtaining satellite interference information, the method further includes:
[0020] The satellite interference situation of the global navigation satellite system is determined based on the current local clock step size measurement and the historical local clock step size estimate.
[0021] In one embodiment, the step of determining the current local clock step estimate and the current local clock absolute time based on the compliance of the satellite usage conditions, the historical local clock step estimate, and the current local clock step measurement includes:
[0022] When the satellite signal quality and the satellite interference situation meet the satellite usage conditions, the current local clock step size estimate is determined based on the estimated step size weight, the measurement step size weight, the historical local clock step size estimate, and the current local clock step size measurement value, and the local clock absolute time is determined according to the time information of the global navigation satellite system.
[0023] When the satellite signal quality or the satellite interference does not meet the satellite usage conditions, the historical local clock step size estimate is determined as the current local clock step size estimate, and the absolute time of the local clock is updated based on the current local clock step size estimate and the current local clock step size measurement.
[0024] In one embodiment, the step of determining the current local clock step size measurement value based on the previous second pulse signal and the current second pulse signal includes:
[0025] The rising edge of the previous second pulse signal is taken as the start time of the local count for the current second.
[0026] Upon receiving the current second pulse signal, determine that the current time is the local counting termination time;
[0027] Obtain the accumulated count value between the local counting start time and the local counting end time;
[0028] The current local clock step size measurement value is determined based on the accumulated count value.
[0029] In one embodiment, the step of synchronizing the time of the multi-sensor navigation system based on the estimated current local clock step size and the absolute time of the current local clock includes:
[0030] The sampling time base standard is maintained based on the estimated current local clock step size and the absolute current local clock time.
[0031] Based on the sampling time base standard, clock frequency division is performed to obtain the sampling trigger clocks for multiple sensors;
[0032] The sampling trigger clock controls the multiple sensors to collect corresponding sensor data.
[0033] The sampling time information corresponding to each sampling point of the multiple sensors is calculated based on the sampling time base standard, so as to store or process the sensor data and the sampling time information, and complete the time synchronization of the multi-sensor navigation system.
[0034] In one embodiment, the step of dividing the clock frequency based on the sampling time base standard to obtain the sampling trigger clock for multiple sensors includes:
[0035] Clock frequency division is performed based on the sampling time base standard to obtain the initial sampling clock signals of multiple sensors;
[0036] When the multiple sensors request synchronous triggering, the data output enable signals, hardware connection status information, and data transmission delay of the multiple sensors are acquired.
[0037] Responding to the data output enable signal, obtain data value rationality information;
[0038] The validity of the data is evaluated based on the hardware connection status information and the reasonableness information of the data values;
[0039] The initial sampling clock signal is phase-adjusted based on the data validity and the data transmission delay to obtain a calibration sampling clock signal;
[0040] Based on the preset sensor synchronization priority identifier and the calibration sampling clock signal, clock resources are dynamically allocated to obtain the sampling trigger clocks for multiple sensors.
[0041] In one embodiment, the step of calculating the sampling time information corresponding to each sampling point of the plurality of sensors according to the sampling time base standard includes:
[0042] Obtain the integer second cumulative count value from the sampling time base standard;
[0043] Based on the integer-second cumulative count value and the multi-sensor sampling frequency configuration information, the local count information of the inertial measurement unit sampling time, the local count information of the wheel speed meter sampling time, and the local count information of the visual sensor sampling time are obtained.
[0044] Based on the sampling time base standard, the local count information of the sampling time of the inertial measurement unit, the local count information of the sampling time of the wheel speedometer, and the local count information of the sampling time of the vision sensor, the sampling time information of each sampling point of multiple sensors is obtained.
[0045] Furthermore, to achieve the above objectives, this application also proposes a navigation system time synchronization device, which includes:
[0046] The step size estimation module is used to determine the initial step size estimate of the local clock based on multiple consecutive second pulse signals of the global navigation satellite system when the satellite signal quality of the global navigation satellite system is good, and to use the initial step size estimate of the local clock as the historical step size estimate.
[0047] The data processing module is used to determine the current local clock step size measurement value based on the previous second pulse signal and the current second pulse signal;
[0048] The condition judgment module is used to acquire satellite interference information and determine whether the satellite signal quality and the satellite interference information meet the satellite usage conditions.
[0049] The data processing module is also used to determine the current local clock step size estimate and the current local clock absolute time based on the compliance of the satellite usage conditions, the historical local clock step size estimate, and the current local clock step size measurement.
[0050] The time synchronization module is used to synchronize the time of the multi-sensor navigation system based on the estimated value of the current local clock step size and the absolute time of the current local clock.
[0051] In addition, to achieve the above objectives, this application also proposes a navigation system time synchronization device, the device comprising: a memory, a processor, and a computer program stored in the memory and executable on the processor, the computer program being configured to implement the steps of the navigation system time synchronization method described above.
[0052] In addition, to achieve the above objectives, this application also proposes a storage medium, which is a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, it implements the steps of the navigation system time synchronization method described above.
[0053] In addition, to achieve the above objectives, this application also provides a computer program product, which includes a computer program that, when executed by a processor, implements the steps of the navigation system time synchronization method described above.
[0054] One or more technical solutions proposed in this application have at least the following technical effects:
[0055] The initial step size estimate of the local clock is determined by using multiple consecutive second pulse signals when satellite signal quality is good, ensuring the accuracy of the initial timing step size. Real-time capture of the deviation between the local clock and the GNSS time reference provides real-time data support for subsequent parameter adjustments. Dual verification of satellite signal quality and interference effectively avoids the negative impact of poor satellite signals on time synchronization, ensuring the reliability of parameter updates. Local clock parameters are flexibly adjusted according to satellite operating conditions, ensuring time accuracy when satellite signals are normal and maintaining stable operation when satellite signals are abnormal, balancing accuracy and stability. Multi-sensor time synchronization is achieved based on unified local clock parameters, solving the problem of inconsistent time systems among various sensors. This approach reduces CPU control over sampling, lowers CPU load, supports time synchronization of multiple sensors, improves the accuracy and reliability of time synchronization, effectively reduces errors caused by time asynchrony during multi-sensor data fusion, and thus improves the accuracy and reliability of the integrated navigation system. Attached Figure Description
[0056] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.
[0057] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0058] Figure 1 This is a flowchart illustrating an embodiment of the navigation system time synchronization method of this application.
[0059] Figure 2 This is a flowchart illustrating Embodiment 2 of the navigation system time synchronization method of this application;
[0060] Figure 3 This is a block diagram of a multi-navigation system structure provided in Embodiment 2 of the navigation system time synchronization method of this application;
[0061] Figure 4 A simplified flowchart illustrating the navigation system time synchronization method provided in Embodiment 2 of this application;
[0062] Figure 5 This is a schematic diagram of the module structure of the navigation system time synchronization device in an embodiment of this application;
[0063] Figure 6 This is a schematic diagram of the device structure of the hardware operating environment involved in the navigation system time synchronization method in the embodiments of this application.
[0064] The purpose, features, and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. Detailed Implementation
[0065] It should be understood that the specific embodiments described herein are merely illustrative of the technical solutions of this application and are not intended to limit this application.
[0066] To better understand the technical solution of this application, a detailed description will be provided below in conjunction with the accompanying drawings and specific implementation methods.
[0067] The main solution of this application embodiment is as follows: when the satellite signal quality of the Global Navigation Satellite System (GNSS) is good, determine the initial step size estimate of the local clock based on multiple consecutive second pulse signals of the GNSS, and use the initial step size estimate of the local clock as the historical step size estimate; determine the current local clock step size measurement value based on the previous second pulse signal and the current second pulse signal; acquire satellite interference information and determine whether the satellite signal quality and satellite interference information meet the satellite usage conditions; determine the current local clock step size estimate and the current local clock absolute time based on the compliance of the satellite usage conditions, the historical local clock step size estimate, and the current local clock step size measurement value; and complete the time synchronization of the navigation system for multiple sensors based on the current local clock step size estimate and the current local clock absolute time.
[0068] Existing solutions use a 1 Pulse Per Second (1PPS) signal as the interrupt signal and employ a CPU timer to generate a sampling clock synchronized with the 1PPS to achieve data acquisition synchronization. This method requires constant CPU involvement during synchronization, with the CPU controlling data acquisition, increasing the CPU's workload. Furthermore, when the GNSS satellite signal is lost for an extended period, the accuracy of the 1PPS pulse decays, directly reducing the accuracy and reliability of multi-sensor data time synchronization. Therefore, maintaining high accuracy in multi-sensor data time synchronization has become a problem to be solved.
[0069] This application provides a solution that determines the initial step size estimate of the local clock using multiple consecutive second pulse signals when satellite signal quality is good, ensuring the accuracy of the initial timing step size; it captures the deviation between the local clock and the GNSS time reference in real time, providing real-time data support for subsequent parameter adjustments; it performs dual checks on satellite signal quality and interference, effectively avoiding the negative impact of poor satellite signals on time synchronization and ensuring the reliability of parameter updates; it flexibly adjusts the local clock parameters according to satellite usage conditions, ensuring time accuracy when satellite signals are normal and maintaining stable operation of the local clock when satellite signals are abnormal, balancing accuracy and stability; and it achieves multi-sensor time synchronization based on unified local clock parameters, solving the problem of inconsistent time systems among various sensors. In this way, the CPU's control over sampling is reduced, lowering the CPU load, supporting time synchronization of multiple sensors, improving the accuracy and reliability of time synchronization, effectively reducing errors caused by time asynchrony during multi-sensor data fusion, and thus improving the accuracy and reliability of the integrated navigation system.
[0070] It should be noted that the executing entity in this embodiment can be a computing service device with data processing, network communication, and program execution functions, such as a tablet computer, personal computer, or mobile phone, or an electronic device capable of performing the above functions, such as a navigation system time synchronization device. The following description uses a navigation system time synchronization device as an example to illustrate this embodiment and the subsequent embodiments.
[0071] Based on this, embodiments of this application provide a navigation system time synchronization method, referring to... Figure 1 , Figure 1 This is a flowchart illustrating the first embodiment of the navigation system time synchronization method of this application.
[0072] In this embodiment, the navigation system time synchronization method includes steps S10 to S50:
[0073] Step S10: When the satellite signal quality of the global navigation satellite system is good, determine the estimated value of the initial step size of the local clock based on multiple consecutive second pulse signals of the global navigation satellite system, and use the estimated value of the initial step size of the local clock as the estimated value of the historical local clock step size.
[0074] It should be noted that the Global Navigation Satellite System (GNSS) is a satellite system that provides positioning, navigation and timing services to users worldwide. Its output second pulse signal and time information serve as a reference for time synchronization.
[0075] In addition, satellite signal quality refers to the overall evaluation result of satellite signal quality, which is divided into two categories: good and poor. Good satellite signal quality means that the satellite signal meets the conditions of continuous stability and reliability. It can be judged by combining three parameters: satellite positioning status, number of positioning satellites, and position accuracy attenuation factor value.
[0076] In addition, multiple consecutive second pulse signals are multiple consecutive second pulse signals. A second pulse signal is a pulse signal output by GNSS every second, and the time interval between two adjacent pulses is exactly 1 second.
[0077] In addition, the local clock is a timing device driven by a high-stability crystal oscillator, which has excellent frequency stability. For example, the specific specifications of the high-temperature crystal oscillator can be as follows: operating temperature range of -40℃ to +85℃, nominal frequency of 10 to 52MHz, frequency error within ±2.5ppm within the operating temperature range, and timing error of approximately 10ms per hour, which can maintain stable timing in complex environments.
[0078] Additionally, the initial local clock step size estimate is obtained by averaging the compensated measurements corresponding to multiple consecutive 1PPS pulses. The compensated measurement is the deviation obtained by comparing the actual one second of GNSS 1PPS with the one second measured by the local clock. Specifically, the average of the compensated measurements from the previous 10 seconds can be used as this estimate to improve its reliability. The historical local clock step size estimate is the local clock step size estimate determined at the previous moment, used for subsequent comparative analysis with the current local clock step size measurement.
[0079] It should be understood that the quality of the satellite signals from the Global Navigation Satellite System (GNSS) is assessed to confirm whether the satellite positioning status meets the standard for good quality. Once the satellite signal quality meets the requirements, multiple consecutive second pulse signals output by the GNSS are captured. For every two consecutive second pulse signals, the actual number of count cycles of the local clock within a precise one-second interval between these two pulses is measured. By comparing the actual one second of GNSS 1PPS with the one second measured by the local clock, the compensation measurement value corresponding to each interval is obtained. These compensation measurement values within the first 10 seconds are collected, and their average value is calculated. This average value is the estimated initial step size of the local clock. This estimated initial step size is set as the historical estimated local clock step size, providing a basic reference for subsequent calculations and assessments.
[0080] Step S20: Determine the current local clock step size measurement value based on the previous second pulse signal and the current second pulse signal;
[0081] It should be noted that the previous second pulse signal is the second pulse signal preceding the current second pulse signal among multiple consecutive second pulse signals output by the Global Navigation Satellite System. It forms a precise 1-second time interval with the current second pulse signal and serves as the starting reference for defining the measurement period. The current second pulse signal is the second pulse signal output by the Global Navigation Satellite System captured at the current moment and serves as the ending reference for defining the measurement period.
[0082] In addition, the current local clock step size measurement is the number of internal count cycles of the local clock within a standard second defined by GNSS, obtained through precise measurement. Specifically, it is obtained by recording the accumulated internal count between two consecutive GNSS 1PPS pulses, the previous second pulse signal and the current second pulse signal. This value directly reflects the actual timing of the local clock within the current second.
[0083] It should be understood that the previous second pulse signal and the current second pulse signal are two consecutive second pulse signals output by the Global Navigation Satellite System, with a time interval of precisely one second between them. When the previous second pulse signal is captured, the internal counting state of the local clock is recorded; when the current second pulse signal is captured, the internal counting state of the local clock is recorded again. By calculating the difference between these two counting states, the number of internal counting cycles accumulated by the local clock between these two consecutive second pulse signals is obtained. This number of counting cycles is the current measured value of the local clock step size.
[0084] In one feasible implementation, step S20 may include steps S21 to S24:
[0085] Step S21: Take the rising edge of the previous second pulse signal as the start time of the current second local count;
[0086] It should be noted that the rising edge refers to the instant when the pulse signal transitions from low to high in the previous second. This instant has a definite and stable timing characteristic. The Field-Programmable Gate Array (FPGA) captures the rising edge of the 1PPS pulse signal output by the GNSS module as the start of an absolute integer second. The local count start time for the current second refers to the starting point for counting the number of count cycles of the local clock within the current 1-second period. Starting from this moment, the local clock count begins to accumulate to calculate the actual operating cycle of the local clock within 1 second.
[0087] It should be understood that identifying the previous second's pulse signal in the continuous 1PPS pulse signal output by the GNSS is achieved through the hardware capture function of the FPGA, which accurately identifies the rising edge of the pulse signal. The instant when this rising edge occurs is set as the start time of the local second count. At this time, the accumulator counter inside the FPGA starts counting and records the running cycle of the local clock.
[0088] Step S22: Upon receiving the current second pulse signal, determine that the current time is the local counting termination time;
[0089] It should be noted that the current second pulse signal is the 1PPS pulse signal output by the GNSS that immediately follows the previous second pulse signal. Together with the previous second pulse signal, they form a precise 1-second time interval, which is the key signal for defining the end of the current 1-second timing cycle. The local counting termination time refers to the point at which the counting of local clock cycles within the current 1-second period ends. This moment, together with the local counting start time, defines a complete 1-second timing interval, corresponding to the standard 1 second defined by GNSS.
[0090] It should be understood that by continuously monitoring the 1PPS pulse signal output by the GNSS, the moment the current second pulse signal is captured is immediately determined as the local counting termination time. At this time, the accumulator counter inside the FPGA stops counting, completing the statistical preparation for the number of local clock cycles within the current 1-second period, ensuring that the counting interval strictly corresponds to the standard 1 second of the GNSS.
[0091] Step S23: Obtain the accumulated count value between the local counting start time and the local counting end time;
[0092] It should be noted that the accumulated count value is the result of the FPGA's internal accumulator counter accumulated during the interval from the start time to the end time of the local count. The FPGA's internal accumulator counter is specifically used to record the number of operating cycles of the local clock. The local clock is driven by a high-stability crystal oscillator, which can stably output the clock cycle. The accumulated count value truly reflects the actual number of operating cycles of the local clock within 1 second.
[0093] It should be understood that after determining the local counting termination time, the value recorded by the FPGA's internal accumulator counter is directly read. This value is the accumulated count value from the start time to the end time of the local counting. This value is the actual number of cycles the local clock runs within one standard second defined by GNSS, and it is the core data for calculating the current local clock step size measurement.
[0094] Step S24: Determine the current local clock step size measurement value based on the accumulated count value.
[0095] It should be noted that the current local clock step size measurement is a value used to characterize the actual timing step size of the local clock within the current second. Essentially, it represents the number of cycles the local clock completes within one GNSS standard second, directly reflecting the deviation between the local clock and the GNSS time reference. The accumulated count value is the actual number of cycles the local clock completes within one standard second; there is a direct correspondence between the two, and the accumulated count value itself is the current local clock step size measurement.
[0096] It should be understood that since the accumulated count value has accurately recorded the number of cycles of the local clock within 1 second of the GNSS standard, the accumulated count value is directly determined as the current local clock step size measurement value.
[0097] Step S30: Obtain satellite interference information and determine whether the satellite signal quality and satellite interference information meet the satellite usage conditions;
[0098] It should be noted that satellite interference refers to the state of satellite signals being affected by human interference. Human interference can compromise the accuracy of satellite time synchronization, leading to significant errors in the output second pulse signal and time information, thus affecting time synchronization. Satellite signal quality refers to the quality of the satellite signals of the Global Navigation Satellite System (GNSS). Its quality is related to the satellite positioning status, the number of positioning satellites, and the position accuracy attenuation factor. Satellite usage conditions are the criteria for determining whether satellite signals can be used to update local clock parameters. These conditions require good satellite signal quality and the absence of human interference. Only when both requirements are met simultaneously is the satellite signal usable and can reliably support the updating of local clock parameters. If either requirement is not met, the satellite signal does not meet the usage conditions.
[0099] It should be understood that obtaining information on satellite interference and verifying whether the satellite signal quality still meets the criteria for good performance are necessary. The results of the satellite signal quality verification and the judgment of satellite interference are combined to determine whether the conditions for satellite use are met. Only when the satellite signal quality is good and there is no human interference can the conditions for satellite use be met; otherwise, the conditions for satellite use are not met.
[0100] In one possible implementation, step S01 may be included before step S10:
[0101] Step S01: Obtain the satellite positioning status, number of positioning satellites, and position accuracy attenuation factor of the global navigation satellite system, and determine the satellite signal quality based on the satellite positioning status, the number of positioning satellites, and the position accuracy attenuation factor;
[0102] It should be noted that satellite positioning status is a parameter reflecting whether GNSS has successfully completed positioning, including both successful and unsuccessful positioning results. Only when positioning is successful can the satellite signal provide a valid reference for time synchronization.
[0103] In addition, the number of positioning satellites refers to the number of satellites that can be captured by a GNSS receiver and used for positioning calculations. The more satellites there are, the richer the data sources that GNSS can rely on, and the higher the reliability of positioning and timing. Conversely, the accuracy and reliability will decrease.
[0104] In addition, the Position Dilution of Precision (PDOP) is an indicator for evaluating the quality of satellite distribution geometry. The smaller the PDOP value, the more uniform the distribution of satellites in the sky and the wider the coverage area, enabling GNSS receivers to achieve positioning and timing with higher accuracy. The larger the PDOP value, the more concentrated or unreasonable the satellite distribution is, and the positioning and timing errors will increase significantly.
[0105] It should be understood that the GNSS receiver collects three key parameters in real time: satellite positioning status, number of positioning satellites, and PDOP value. Then, these three parameters are comprehensively verified according to preset judgment criteria. When the satellite positioning status is successful, the number of positioning satellites is no less than the preset number (e.g., 5), and the PDOP value is less than the preset threshold (e.g., 5.0 meters), the satellite signal quality is judged to be good. If any one of these parameters fails to meet the above conditions, the satellite signal quality is judged to be poor.
[0106] Before step S30, step S201 may also be included:
[0107] Step S201: Determine the satellite interference situation of the global navigation satellite system based on the current local clock step measurement value and the historical local clock step estimate value.
[0108] It should be understood that the process involves obtaining the current local clock step size measurement and the historical estimated local clock step size, calculating the difference between these two values, and comparing this difference with a preset reasonable threshold. If the difference is not greater than the preset reasonable threshold, it indicates that the current satellite signal is not subject to human interference and the signal is stable and reliable; if the difference exceeds the preset reasonable threshold, it indicates that the current satellite signal is subject to human interference and the signal is unusable, thus determining the GNSS satellite interference situation.
[0109] For example, the difference between the current local clock step size measurement and the historical local clock step size estimate. The calculation formula is as follows:
[0110]
[0111] In the formula, This indicates the current local clock step size measurement value; This represents the estimated historical local clock step size, specifically the estimated local clock step size at the previous moment. When At that time, it was believed that the satellite signal was not subject to human interference. It was initially believed that the satellite signal was being interfered with by human intervention and was therefore unusable. To preset a reasonable threshold.
[0112] Step S40: Determine the current local clock step size estimate and the current local clock absolute time based on the compliance of the satellite usage conditions, the historical local clock step size estimate, and the current local clock step size measurement.
[0113] It should be noted that the compliance of satellite usage conditions is the result of whether the satellite signal obtained from the aforementioned steps meets the usage requirements, and is divided into two cases: compliance and non-compliance. This result determines the method for determining the relevant parameters of the current local clock.
[0114] In addition, the current local clock step size estimate is an estimated value used to characterize the local clock timing step size at the current moment. Its determination needs to take into account both timing accuracy and smoothness so that the local clock can continuously keep close to the GNSS time reference.
[0115] In addition, the current local clock absolute time is the specific time displayed by the local clock and must be consistent with the GNSS time system to provide a unified time reference for multi-sensor time synchronization.
[0116] It should be understood that determining whether satellite usage conditions are met is crucial. If the conditions are met, the estimated local clock step size is calculated according to the established rules, ensuring the smoothness of this estimate. Simultaneously, the GNSS time is directly used to assign the current local clock absolute time, guaranteeing consistency between the local clock absolute time and GNSS time. If satellite usage conditions are not met, such as due to short-term signal loss or human interference, the historical estimated local clock step size remains unchanged and is used as the current estimated local clock step size. Simultaneously, the current local clock absolute time is updated according to a preset method, ensuring stable timekeeping even when satellite signal abnormalities occur.
[0117] In one feasible implementation, step S40 may include steps S41-S42:
[0118] Step S41: When the satellite signal quality and the satellite interference situation meet the satellite usage conditions, determine the current local clock step size estimate based on the estimated step size weight, the measurement step size weight, the historical local clock step size estimate, and the current local clock step size measurement value, and determine the absolute time of the local clock based on the time information of the global navigation satellite system.
[0119] It should be noted that the estimated step size weight is the weight of the historical local clock step size estimate, and the measurement step size weight is the weight of the current local clock step size measurement value. These two are parameters used to balance the influence of historical estimates and current measurements on the current estimate, and their values determine the smoothness of the current estimate.
[0120] Additionally, the time information from the Global Navigation Satellite System (GNSS) is time data in ZDA or RMC format output by the GNSS module. ZDA focuses on providing accurate date and time, while RMC includes navigation information and time data. Both provide a precise standard time reference for the absolute time of the local clock. The absolute time of the local clock is the specific current time displayed by the local clock and must be consistent with the GNSS time system to provide a unified reference for multi-sensor time synchronization.
[0121] It should be understood that when the satellite signal quality and interference conditions are confirmed to meet the satellite's operational requirements, the estimated step size weight and the measurement step size weight are multiplied by the historical local clock step size estimate and the current local clock step size measurement value, respectively, according to a preset weighted calculation rule, and then summed to obtain the current local clock step size estimate. This calculation method can balance the stability of historical data and the real-time nature of current data, ensuring the smoothness of the estimate. Simultaneously, the time information in ZDA or RMC format output from the GNSS module is directly extracted and assigned to the local clock to determine the absolute time of the local clock, ensuring complete consistency between the local clock's absolute time and the GNSS time system.
[0122] For example, the current local clock step size estimate The calculation formula is as follows:
[0123]
[0124] In the formula, Estimated value of historical local clock step size The weight, The current local clock step size measurement value The weight, when This indicates that the step size measurement value of the current epoch is used as the true step size value.
[0125] Step S42: When the satellite signal quality or the satellite interference does not meet the satellite usage conditions, determine the historical local clock step size estimate as the current local clock step size estimate, and update the absolute time of the local clock based on the current local clock step size estimate and the current local clock step size measurement.
[0126] It should be noted that not meeting the satellite usage conditions refers to poor satellite signal quality, that is, failing to meet any of the following conditions: successful satellite positioning, at least 5 positioning satellites, or a PDOP value of less than 5.0 meters, or satellite signal being subject to human interference, that is, the difference between the current local clock step size measurement and the historical local clock step size estimate exceeds the preset reasonable range. This scenario is common when satellite signals are blocked, causing a short-term loss of lock or human interference.
[0127] Furthermore, the historical local clock step size estimate is a stable and reliable reference value that has been verified in the past. Maintaining this estimate as the current step size estimate during satellite signal anomalies can prevent significant fluctuations in the local clock step size due to satellite signal errors, ensuring timing stability. The current local clock step size estimate is used to maintain a stable timing rhythm, while the current local clock step size measurement is used to assist in correcting the absolute time update, ensuring that the absolute time closely matches the actual timing situation while maintaining a stable step size. Updating the local clock's absolute time refers to fine-tuning the currently displayed absolute time based on the actual operating conditions of the local clock, while keeping the step size estimate unchanged, to ensure that it maintains high timing accuracy even during periods of satellite signal anomalies.
[0128] It should be understood that when satellite signal quality or interference conditions do not meet the requirements for satellite operation, in order to avoid the impact of abnormal satellite signals on the stability of the local clock, the historical local clock step size estimate is directly determined as the current local clock step size estimate, maintaining the local clock's timing step size unchanged. Simultaneously, according to preset update rules, combined with the stability characteristics of the current local clock step size estimate and the real-time timing reflected by the current local clock step size measurement, the absolute time of the local clock is updated reasonably. This ensures the continuity of absolute time while also correcting timing deviations to a certain extent, ensuring that the local clock can still keep stable and accurate time during periods of abnormal satellite signals.
[0129] For example, the formula for updating the absolute time of the local clock is as follows:
[0130]
[0131] In the formula, This indicates the current local clock step size measurement value; This represents the estimated historical local clock step size, specifically the estimated local clock step size at the previous moment. This indicates the absolute time of the local clock before the update, specifically the absolute time of the local clock at the previous moment. This indicates the updated absolute time of the local clock.
[0132] Step S50: Based on the estimated step size of the current local clock and the absolute time of the current local clock, complete the time synchronization of the navigation system for the multi-sensor system.
[0133] It should be noted that multiple sensors refer to various sensors used in navigation systems, including satellite navigation modules, inertial measurement units, visual sensors (monocular and binocular cameras), lidar, wheel speedometers, and magnetometers. These sensors have different sampling frequencies and data transmission rates, and their time systems may be inconsistent; some may even lack an independent time system. Therefore, effective data fusion requires time synchronization. Navigation system time synchronization is the process of unifying the timing of multiple sensors to the GNSS time system, ensuring that the sampling data from all sensors correspond to the same time reference. This guarantees the accuracy of data fusion and ultimately enables precise attitude determination and positioning of the vehicle.
[0134] It should be understood that the estimated step size of the local clock is used to maintain a stable timing step size, ensuring the timing accuracy of the local clock, while the absolute time of the current local clock is used as a unified time reference. For lidar, it receives 1PPS pulses and time information in ZDA or RMC format, and its own clock is corrected by combining the estimated step size of the current local clock and the absolute time of the current local clock to ensure that the time information of its output sampling time is consistent with the GNSS time system.
[0135] Additionally, for the inertial measurement unit, wheel speedometer, and vision sensors, a high-stability crystal-driven FPGA clock is used as the time base standard. Frequency division generates sampling clocks adapted to the sampling frequencies of each sensor. Under the unified reference of the current local clock step size estimate and the current local clock absolute time, the sampling process of these sensors is controlled, ensuring that the time information output by each sensor is synchronized with the GNSS time system. Through these operations, all multi-sensor sampling data carries unified and accurate time information, achieving multi-sensor time synchronization of the navigation system.
[0136] In one feasible implementation, step S50 may include steps A10 to A40:
[0137] Step A10: Under the condition that the satellite signal quality is good, obtain the local clock error;
[0138] It should be noted that local clock error refers to the difference between the actual timing value of the local clock and the standard timing value of the GNSS time system. This error directly reflects the degree of deviation of the local clock from the ideal time reference and is the basic data for subsequently establishing the clock trend term error model. When the satellite signal quality is good, the time signal output by GNSS is accurate and stable. The local clock error obtained by referencing this can truly and accurately reflect the actual deviation of the local clock, providing high-quality data support for subsequent error modeling.
[0139] It should be understood that, assuming the satellite signal quality is good, the actual timing values of the local clock are recorded at multiple consecutive moments, using the standard timing value of the GNSS time system as a reference. By calculating the difference between the local clock timing value and the corresponding GNSS standard timing value at each moment, the local clock error at multiple moments is obtained. Continuously collecting these error data accumulates sufficient observational data for subsequent fitting of clock-related parameters.
[0140] Step A20: Fit the clock phase, clock frequency, and clock frequency drift rate based on the local clock error;
[0141] It should be noted that clock phase is the offset of the local clock relative to the GNSS time reference at a certain starting moment. It determines the degree of synchronization between the local clock and the standard time at the starting point and is an important component of clock error.
[0142] In addition, the clock frequency is the actual oscillation frequency of the local clock and is the core parameter that determines the timing speed of the local clock. Ideally, it should be consistent with the nominal frequency of the high-stability crystal oscillator, but in actual applications, there will be a slight deviation, which will directly lead to the accumulation of timing errors.
[0143] Furthermore, clock frequency drift rate is the rate at which the clock frequency changes over time, reflecting the long-term stability of the local clock frequency. The characteristics of a high-stability crystal oscillator keep its drift rate at a low level, making it less affected by external factors such as ambient temperature. When the satellite signal quality is good, the local clock step size is recorded. At intervals, multiple collected local clock error data are analyzed and processed through fitting to construct an error model, thereby solving for the three key parameters: clock phase, clock frequency, and clock frequency drift rate. The least squares algorithm can be used for quadratic curve fitting, which can effectively reduce the influence of random measurement errors and improve the accuracy and reliability of parameter estimation.
[0144] It should be understood that by collecting local clock error data at multiple times, using time as the independent variable and local clock error as the dependent variable, a quadratic curve error model is constructed. The least squares algorithm is then used to calculate and analyze these observation data to solve for the undetermined parameters in the model. These undetermined parameters correspond to the clock phase, clock frequency, and clock frequency drift rate, respectively. This allows for the fitting of these three key parameters and the establishment of a trend term error model that can describe the change of local clock error over time.
[0145] For example, the fitting formula for the trend term error is as follows:
[0146]
[0147] In the formula, express The estimated local clock error at time [time]. At the starting time, Indicates the current observation time; , , Let be the parameters to be estimated, where Indicates clock phase, Indicates clock frequency. Indicates the clock frequency drift rate. This represents random measurement error.
[0148] Step A30: When the duration of the satellite usage conditions not being met reaches the preset satellite lockout duration, the current local clock absolute time is compensated based on the clock phase, the clock frequency, and the clock frequency drift rate to obtain the compensated current local clock absolute time.
[0149] It should be noted that the preset satellite loss-of-lock duration is a threshold value set in advance based on the actual application scenario, representing the duration during which the satellite signal does not meet the usage conditions. This threshold is used to determine whether the clock error compensation strategy needs to be activated. For example, it can be 5 minutes. In scenarios such as 5-10 minutes when a car passes through an extremely long tunnel, or several hours when an inspection robot or firefighting robot enters a charging room, the clock error compensation strategy will be activated.
[0150] Furthermore, a clock error compensation strategy is employed. Using the clock phase, clock frequency, and clock frequency drift rate fitted under good satellite signal quality conditions, combined with an established local clock trend term error model, the error estimate of the local clock during satellite lock-up periods is calculated. This error estimate is then applied inversely to the current local clock absolute time to correct the local clock's timing deviation, ensuring that its deviation from the GNSS time reference is controlled within acceptable limits. The compensated current local clock absolute time is the error-corrected local clock timing value. Compared to the uncompensated time, its deviation from the GNSS time system standard value is smaller, providing a more accurate time reference for multi-sensor time synchronization.
[0151] It should be understood that the duration of satellite signal failure to meet usage conditions is monitored in real time, and this duration is compared with the preset satellite loss-of-lock duration. When the duration reaches the preset threshold, it indicates that the satellite signal has been lost for an extended period, and the local clock driven solely by a high-stability crystal oscillator may produce a significant timing deviation. In this case, the fitted clock phase, clock frequency, and clock frequency drift rate are substituted into the local clock trend term error model to calculate the estimated error of the local clock at the current moment. Based on the direction and magnitude of the estimated error, the absolute time of the current local clock is adjusted in reverse, i.e., the corresponding error is deducted or supplemented, to obtain the compensated absolute time of the current local clock, effectively correcting the timing deviation generated by the local clock during the satellite loss-of-lock period.
[0152] Step A40: Based on the estimated current local clock step size and the compensated current local clock absolute time, complete the time synchronization of the multi-sensor navigation system.
[0153] It should be noted that the compensated current local clock absolute time is a precise time value after error correction. Its deviation from the GNSS time reference is controlled within a small range, providing a more accurate time reference for multi-sensor time synchronization compared to the uncompensated time. The estimated current local clock step size can maintain a stable timing step size of the local clock, ensuring that the local clock can maintain a uniform and stable timing rhythm after compensation, and avoiding timing disorder caused by compensation operations.
[0154] It should be understood that the local clock is kept stable by using the estimated step size of the current local clock, while the compensated absolute time of the current local clock is used as a unified time reference. The time synchronization methods of various sensors are set up step by step, and time calibration and sampling control are performed on the lidar, inertial measurement unit, wheel speedometer and vision sensor respectively. In the end, the sampling data of various sensors are accompanied by the compensated accurate time information, ensuring that the data of all sensors are based on a unified and high-precision time reference, and completing the time synchronization of the multi-sensor navigation system.
[0155] In this implementation, local clock error data is collected under the premise of reliable satellite signal, providing a highly reliable observational foundation for subsequent error modeling. A precise local clock trend term error model is established by fitting the clock phase, clock frequency, and clock frequency drift rate using a least-squares algorithm. This fully utilizes effective information when satellite signal is good, providing theoretical support for error compensation after satellite lock-up. A compensation mechanism is activated for scenarios involving prolonged satellite lock-up, using fitted key parameters to correct the absolute time of the local clock. This effectively compensates for timing deviations of the local clock during satellite lock-up, avoiding a significant decrease in time synchronization accuracy due to prolonged satellite unavailability. Multi-sensor synchronization is completed based on accurate clock step size estimates and the compensated time, further improving the accuracy and reliability of time synchronization. This approach is specifically optimized for the complex scenario of prolonged satellite lock-up. Combined with the high stability of a high-stability crystal oscillator, it ensures that multiple sensors maintain high-precision time synchronization even during prolonged satellite signal interruptions. This expands the applicable scenarios of this time synchronization method and enhances the stability and reliability of the integrated navigation system in complex environments such as tunnels and charging stations.
[0156] This embodiment provides a time synchronization method for a navigation system. It determines the initial step size estimate of the local clock using multiple consecutive second pulse signals when satellite signal quality is good, ensuring the accuracy of the initial timing step size. It captures the deviation between the local clock and the GNSS time reference in real time, providing real-time data support for subsequent parameter adjustments. It performs dual checks on satellite signal quality and interference, effectively avoiding the negative impact of poor satellite signals on time synchronization and ensuring the reliability of parameter updates. It flexibly adjusts the local clock parameters according to satellite usage conditions, ensuring time accuracy when satellite signals are normal and maintaining stable operation when satellite signals are abnormal, balancing accuracy and stability. It achieves multi-sensor time synchronization based on unified local clock parameters, solving the problem of inconsistent time systems among various sensors. This approach reduces CPU control over sampling, lowers CPU load, supports time synchronization of multiple sensors, improves the accuracy and reliability of time synchronization, effectively reduces errors caused by time asynchrony during multi-sensor data fusion, and thus improves the accuracy and reliability of the integrated navigation system.
[0157] Based on the first embodiment of this application, in the second embodiment of this application, the content that is the same as or similar to that in the first embodiment described above can be referred to the above description, and will not be repeated hereafter. Based on this, please refer to... Figure 2 Step S50 may also include steps B10 to B40:
[0158] Step B10: Maintain the sampling time base standard based on the current local clock step size estimate and the current local clock absolute time;
[0159] It should be noted that the sampling time base standard is a unified time base established based on the FPGA clock driven by a high-stability crystal oscillator. It is synchronized with the GNSS time system, and each moment in its operation corresponds to the specific time of the GNSS time system, providing a reliable time base and frequency reference for the calculation of time information at the sampling moment.
[0160] It should be understood that using the current estimated local clock step size ensures the stability of the FPGA clock's timing step size, preventing frequency deviations in the sampling time base standard due to step size fluctuations. Simultaneously, the time reference of the sampling time base standard is calibrated using the current absolute time of the local clock, ensuring synchronization between the sampling time base standard and the GNSS time system. Through the synergistic effect of these two aspects, the stability and accuracy of the sampling time base standard are continuously maintained, providing a fundamental time base for subsequent clock frequency division, sensor sampling triggering, and sampling time calculation.
[0161] Step B20: Based on the sampling time base standard, perform clock frequency division to obtain the sampling trigger clocks for multiple sensors;
[0162] It should be noted that clock division is a process of reducing the FPGA clock frequency corresponding to the sampling time base standard by a preset ratio. Its purpose is to generate a clock signal that matches the sampling frequency of each sensor. Multiple sensors include at least an inertial measurement unit, a wheel speedometer, and a vision sensor. These sensors have different sampling frequencies, and frequency division is necessary to obtain clock signals that are adapted to their respective frequencies in order to achieve accurate sampling.
[0163] In addition, the sampling trigger clock is a clock signal used to trigger the sensor to start data acquisition. Its frequency is consistent with the sampling frequency of the corresponding sensor. It consists of a series of precisely timed high-level pulses. Each pulse corresponds to one sampling action of the sensor. It is a key signal for controlling the sampling timing of the sensor. Its timing accuracy determines the accuracy of the sensor sampling time and is the core command signal for controlling the sampling timing of the sensor.
[0164] It should be understood that determining the preset sampling frequencies for the inertial measurement unit, wheel speedometer, and vision sensor is the basis for clock frequency division. Then, based on the sampling frequency requirements of each sensor, the FPGA clock corresponding to the sampling time base standard is divided proportionally. For example, if the FPGA clock frequency is 20MHz and the sampling frequency of a certain sensor is 2kHz, then a 10000:1 division ratio is used to convert the 20MHz clock signal into a 2kHz sampling trigger clock. Through this targeted frequency division operation, sampling trigger clocks adapted to the sampling frequencies of the inertial measurement unit, wheel speedometer, and vision sensor are generated respectively, ensuring that the sampling trigger clock of each sensor accurately matches its sampling requirements, laying the foundation for subsequent precise control of sensor sampling.
[0165] In one feasible implementation, step B20 may include: performing clock frequency division based on the sampling time base standard to obtain initial sampling clock signals for multiple sensors; acquiring data output enable signals, hardware connection status information, and data transmission delays of multiple sensors when the multiple sensors request synchronization triggering; responding to the data output enable signals to acquire data value rationality information; evaluating data validity based on the hardware connection status information and the data value rationality information; adjusting the phase of the initial sampling clock signals based on the data validity and the data transmission delay to obtain a calibration sampling clock signal; and dynamically allocating clock resources based on a preset sensor synchronization priority identifier and the calibration sampling clock signal to obtain sampling trigger clocks for multiple sensors.
[0166] It should be noted that the initial sampling clock signal is a clock signal obtained by initially dividing the FPGA clock corresponding to the sampling time base standard. Its frequency initially matches the nominal sampling frequency of each sensor and is the basis signal for subsequent calibration and adjustment.
[0167] Additionally, the synchronization trigger request is a signal sent by the sensor to the control unit to request participation in unified time synchronization sampling, indicating that the sensor is ready to receive the sampling clock and start data acquisition. The data output enable signal is a signal used by each sensor to indicate whether it has the capability to output data. Hardware connection status information indicates whether the physical connection between the sensor and the control unit is normal. Data transmission delay refers to the time lag between issuing the sampling trigger command and the effective reception and processing of data by the system. This delay includes the sensor's own exposure or sampling time, data serial output time, bus transmission time, and the first-level buffer time at the receiving end.
[0168] Additionally, data value reasonableness information is used to determine whether the sensor output data conforms to normal operating logic and physical laws. If the data is within a reasonable range, it indicates that the sensor is working normally; otherwise, there may be a malfunction or interference. Data validity refers to whether the sensor output data is true, reliable, and meets the requirements of the navigation system.
[0169] Additionally, the preset sensor synchronization priority identifier is a pre-assigned level label for each sensor, used to define which sensor synchronization needs should be prioritized when system resources (such as bus bandwidth, processor interrupt resources, and power peak) are limited or trigger requests are too frequent. Dynamic clock resource allocation refers to flexibly allocating clock resources according to sensor priority and actual operating status, ensuring more stable and accurate sampling clocks for high-priority sensors, while making reasonable use of overall clock resources.
[0170] It should be understood that, firstly, a unified and stable high-frequency master clock signal, i.e., a sampling time base standard, is generated by a high-stability crystal oscillator. Based on the sampling rates (i.e., sampling frequency parameters) of multiple sensors, this master clock is divided or timed and counted to generate an initial sampling clock signal that theoretically conforms to the standard period of each sensor. When multiple sensors send synchronization trigger requests, the data output enable signals, hardware connection status information, and data transmission delays of each sensor are acquired in real time. Upon receiving a valid data output enable signal, the data acquisition process is triggered to obtain the raw data output by the sensors. Core measurement parameters are extracted through parsing, and the dynamic threshold range calculated based on historical working data or the current motion state of the system is retrieved. The measured parameter values are compared with the threshold range to obtain information on whether the indicated data conforms to physical laws and the rationality of the sensor performance data values. Then, the data is comprehensively analyzed... The validity of data is assessed based on hardware connection status information and data value rationality information. If the hardware connection is abnormal or the data value is outside the reasonable range, the data is deemed invalid; if the connection is normal and the data value is within the reasonable range, the data is deemed valid. When the data validity is deemed valid, the phase of the initial sampling clock signal corresponding to each sensor, i.e., the precise occurrence time of the pulse edge, is dynamically fine-tuned according to the data transmission delay parameter to compensate for non-ideal factors in the actual system and obtain a calibration sampling clock signal with higher synchronization accuracy. Based on the preset sensor synchronization priority identifier, arbitration is performed when the trigger times of multiple sensors are close and may cause resource conflicts. Priority is given to ensuring the stability and real-time performance of the calibration sampling clock signal of high-priority sensors, and the trigger times of low-priority sensors are appropriately delayed or merged to coordinate resources. The final targeted sampling trigger clock is determined for each sensor through dynamic allocation of clock resources. By judging the rationality of sensor hardware status and data content, the real-time availability status of each sensor's data is accurately and reliably determined, providing a high-quality data source selection basis for time synchronization and fusion processing.
[0171] In one feasible implementation, the step of obtaining data value rationality information in response to the data output enable signal may include: obtaining the original data frame output by the corresponding sensor based on the data output enable signal; parsing the original data frame to obtain sensor measurement parameters; obtaining the threshold range corresponding to the sensor measurement parameters; comparing the value of the sensor measurement parameters with the corresponding threshold range to obtain a measurement parameter comparison result; determining whether the value of the sensor measurement parameters is within a reasonable range based on the measurement parameter comparison result to obtain data value rationality information.
[0172] It should be noted that the raw data frame is a formatted data packet containing raw measurement information output by the sensor when the data output is enabled. Sensor measurement parameters are the core physical quantities or feature quantities that directly affect navigation and decision-making, extracted from the raw data frame. Different sensors have different sensor measurement parameters. Specifically, the sensor measurement parameters of an inertial measurement unit are acceleration and angular velocity, the sensor measurement parameters of a wheel speedometer are pulse counts, and the sensor measurement parameters of a vision sensor are image grayscale feature values, etc. Threshold ranges include static threshold ranges and dynamic threshold ranges. The static threshold range is a fixed numerical range preset based on the sensor's physical range, the physical limits of the carrier platform, or basic principles. The dynamic threshold range is a variable numerical range calculated based on historical sensor data or the system's motion state.
[0173] In addition, the measurement parameter comparison result is a quantitative result obtained by comparing the actual value of the sensor measurement parameter with the corresponding threshold range. It includes at least the cases where the value is within the range, below the lower limit, above the upper limit, and abnormal rate of change. The data value rationality information is a structured diagnostic conclusion generated based on the judgment results of all key measurement parameters. It includes two cases: the data value is within the reasonable range and the data value is unreasonable. It also includes specific anomaly type information. If the value is within the range, it is determined that the data value is within the reasonable range; otherwise, it is determined that the data value is unreasonable.
[0174] It should be understood that when the data output enable signal sent by the sensor is detected to be at an effective level, data reception is initiated. The original data frame output by the sensor is received through the corresponding communication interface to ensure that the data frame is complete and without any missing data. Then, according to the preset communication protocol, the core physical quantity or feature quantity is extracted from a specific position of the original data frame. Acceleration and angular velocity are resolved for the inertial measurement unit, pulse count is resolved for the wheel speed meter, and image grayscale feature value is resolved for the vision sensor to obtain the sensor measurement parameters. The threshold range corresponding to each sensor measurement parameter is retrieved, including both static and dynamic threshold ranges. The actual values of each sensor measurement parameter obtained are quantitatively compared with the corresponding static and dynamic threshold ranges to check whether the measured values fall within a reasonable value range, thus obtaining the measurement parameter comparison results. Logical judgment is performed based on the comparison results of each parameter. If the parameter value meets all applicable threshold conditions, the data value is determined to be within a reasonable range. If the parameter value is below the lower limit, above the upper limit, or has an abnormal rate of change, the data value is determined to be unreasonable. The judgment results of all key measurement parameters are summarized to generate data value reasonableness information that includes the overall reliability of the data and the specific anomaly type.
[0175] Step B30: Control the multiple sensors to collect corresponding sensor data according to the sampling trigger clock;
[0176] It should be noted that the sampling trigger clock is a clock signal obtained by clock frequency division and adapted to the sampling frequency of each sensor. Sensor data consists of the measurement data collected by each sensor at the sampling time. The sensor data of the inertial measurement unit includes attitude-related parameters such as the acceleration and angular velocity of the carrier; the sensor data of the wheel speed sensor includes speed-related parameters such as the pulse count and rotational speed of the wheels; and the sensor data of the vision sensor includes environmental image data captured by a monocular or binocular camera. These data are the core inputs for multi-sensor fusion navigation.
[0177] It should be understood that the generated sampling trigger clocks for the inertial measurement unit, wheel speedometer, and vision sensor are sent to each sensor via their respective signal lines. When a sensor receives a high-level pulse from the sampling trigger clock, it immediately initiates its own data acquisition process, capturing the physical quantity data it is monitoring at the current moment and completing one sampling operation. As the sampling trigger clock continues to output, each sensor periodically repeats the sampling process according to a preset sampling frequency, achieving synchronous data acquisition by multiple sensors under a unified sampling time base standard, ensuring that the sampling data from each sensor remains consistent in the time dimension.
[0178] Step B40: Calculate the sampling time information corresponding to each sampling point of the multiple sensors according to the sampling time base standard, so as to store or process the sensor data and the sampling time information for navigation, and complete the time synchronization of the multi-sensor navigation system.
[0179] It's important to note that a sampling point is a specific time node where the sensor collects data according to its sampling frequency. Each sampling point corresponds to a specific sampling time, requiring the allocation of corresponding time information to establish a correlation between sensor data and time. The sampling time information is the specific time data from the GNSS time system corresponding to each sampling point, including precise information such as date, hour, minute, and second. It is the core identifier for achieving time synchronization of multi-sensor data, ensuring that sampling data from different sensors can be fused based on the same time standard. Storage or navigation processing refers to associating sensor data with its corresponding sampling time information, packaging it, and then sending it to a dedicated storage unit for data preservation for subsequent traceability or analysis, or sending it to a navigation processing unit for multi-sensor data fusion, vehicle positioning and attitude determination, and other navigation-related calculations to support navigation decisions.
[0180] It should be understood that, because the sampling time base standard is precisely synchronized with the GNSS time system, and each sensor's sampling point corresponds to a specific timing node in the sampling time base standard, the sampling time information for each sampling point can be calculated based on the current absolute time of the local clock in the sampling time base standard and the value of the FPGA's internal accumulator counter corresponding to the sampling point. Specifically, based on the whole second of the current absolute time of the local clock corresponding to the sampling time base standard, and combined with the ratio between the accumulator counter value corresponding to the sampling point and the whole second accumulator count value, the millisecond-level or even more precise time offset of the sampling point within the current whole second is calculated, and then combined to obtain the complete sampling time information. Each set of sensor data from each sensor is associated with the corresponding sampling time information to form a data packet containing data and a time tag. These data packets are sent to the storage unit or navigation processing unit for data storage or navigation-related processing, providing accurate data with a unified time tag for the effective fusion of multi-sensor data, and completing the time synchronization of the multi-sensor navigation system.
[0181] In one feasible implementation, step B40 may include steps B41 to B43:
[0182] Step B41: Obtain the integer second cumulative count value from the sampling time base standard;
[0183] It should be noted that the integer-second cumulative count value is the accumulated count result of the FPGA's internal accumulator counter within a complete GNSS standard second. A complete GNSS standard second refers to the time interval between two consecutive GNSS second pulse signals. This value directly reflects the actual number of operating cycles of the sampling time base standard within one standard second and is the core basic data for calculating the time information at the sampling moment. The FPGA's internal accumulator counter is a hardware component used within the FPGA to record the number of clock cycles in real time. The counter value automatically increments by 1 after each FPGA clock cycle, accurately recording the operating cycle of the sampling time base standard. The accuracy of its counting result directly determines the precision of the integer-second cumulative count value.
[0184] It should be understood that the FPGA's hardware capture function is used to monitor the 1PPS pulse signal output by the GNSS module in real time. When the rising edge of a 1PPS pulse signal is captured, it is determined as the start of a GNSS standard second. At this time, the FPGA's internal accumulator counter is cleared to zero and counting begins. When the rising edge of the next consecutive 1PPS pulse signal is captured, it is determined as the end of the GNSS standard second. At this time, the current value of the FPGA's internal accumulator counter is immediately read. This value is the integer second accumulated count value of the sampling time base standard within this complete standard second. By continuously capturing consecutive 1PPS pulse signals, the integer second accumulated count value can be periodically obtained, providing continuous and accurate basic data for the calculation of local count information at subsequent sampling times and the generation of sampling time information.
[0185] Step B42: Based on the integer second accumulated count value and the multi-sensor sampling frequency configuration information, obtain the local count information of the inertial measurement unit sampling time, the local count information of the wheel speed meter sampling time, and the local count information of the visual sensor sampling time;
[0186] It should be noted that the multi-sensor sampling frequency configuration information consists of pre-set and stored sampling frequency parameters for the inertial measurement unit, wheel speedometer, and vision sensor. These parameters are determined based on the overall accuracy requirements of the navigation system, the performance indicators of the sensors, and the needs of the actual application scenario. For example, the sampling frequency of the inertial measurement unit may be set to 100Hz, the wheel speedometer to 50Hz, and the vision sensor to 30Hz, etc., which are key inputs for generating local counting information at the sampling time.
[0187] Additionally, the local count information for the inertial measurement unit (IMU) sampling time refers to the specific value of the internal accumulator counter within the FPGA corresponding to each sampling time within a GNSS standard second. This information clarifies the specific timing node for each sampling by the IMU. Similarly, the local count information for the wheel velocity meter sampling time is the value of the internal accumulator counter within the FPGA corresponding to each sampling time within a GNSS standard second. Likewise, the local count information for the vision sensor sampling time is the counter value corresponding to each sampling time of the vision sensor.
[0188] It should be understood that the multi-sensor sampling frequency configuration information is extracted from the system configuration to determine the sampling frequencies of the inertial measurement unit, wheel speedometer, and vision sensor. For each sensor, based on the integer-second accumulated count value and its sampling frequency, the sampling interval count increment within a GNSS standard second is calculated. This is achieved by dividing the integer-second accumulated count value by the sensor's sampling frequency, yielding the value that the FPGA's internal accumulator counter needs to increase between adjacent sampling times. Starting from the moment the FPGA's internal accumulator counter is reset to zero at the beginning of a GNSS standard second, the calculated sampling interval count increment is accumulated sequentially to obtain the counter value corresponding to each sampling moment within that standard second. These values are arranged in sampling order to form the sensor's local counting information for each sampling moment. For example, if the integer-second accumulated count value is 10MHz and the sampling frequency of a vision sensor is 30Hz, then the sampling interval count increment is approximately 333333. Therefore, the local counting information for the vision sensor's sampling moments would be 333333, 666666...10000000, corresponding to each sampling moment. Using the same method, the local count information of the sampling time of the inertial measurement unit and the wheel speed meter was calculated respectively.
[0189] Step B43: Based on the sampling time base standard, the local count information of the sampling time of the inertial measurement unit, the local count information of the sampling time of the wheel speed meter, and the local count information of the sampling time of the vision sensor, obtain the sampling time information of each sampling point of multiple sensors.
[0190] It should be understood that the integer second time reference of the current GNSS standard second is obtained from the sampling time base standard, that is, the integer second time of the system clock at the current moment. This time is consistent with the GNSS time system and serves as the integer second basis for the sampling time information. For each sampling point of the inertial measurement unit, the counter value in its corresponding sampling time local count information is extracted. This value is then compared with the integer second accumulated count value to obtain the time offset of the sampling point within the current integer second. The integer second time reference is added to this time offset to obtain the complete sampling time information corresponding to that sampling point of the inertial measurement unit. Using the same method, each sampling point of the wheel speedometer and vision sensor is processed separately. The corresponding local count information of the sampling time is extracted, the time offset is calculated, and then combined with the integer second time reference to obtain the sampling time information of each sampling point of the wheel speedometer and vision sensor, ensuring that each sampling point of each sensor has an accurate time tag synchronized with GNSS time.
[0191] For example, the sampling time information of the inertial measurement unit. The calculation formula is as follows:
[0192]
[0193] In the formula, This represents the integer second time base after synchronization between the FPGA and GNSS. This represents the value of the FPGA's internal accumulator counter acquired at the sampling time of the inertial measurement unit; This represents the cumulative count value in whole seconds; This represents the time of the i-th sampling of the j-th inertial measurement unit.
[0194] Sampling time information of visual sensor The calculation formula is as follows:
[0195]
[0196] In the formula, This represents the integer second time base after synchronization between the FPGA and GNSS. This represents the value of the FPGA's internal accumulator counter acquired at the sampling time of the vision sensor; This represents the cumulative count value in whole seconds; This represents the time of the i-th sampling of the j-th visual sensor.
[0197] Time information of wheel speed meter sampling time The calculation formula is as follows:
[0198]
[0199] In the formula, This represents the integer second time base after synchronization between the FPGA and GNSS. This represents the value of the FPGA's internal accumulator counter acquired at the IMU sampling time. This represents the cumulative count value in whole seconds; This represents the time of the i-th sampling of the j-th wheel speedometer.
[0200] Please refer to Figure 3 , Figure 3 This is a block diagram of a multi-navigation system structure provided in Embodiment 2 of the navigation system time synchronization method of this application. (See diagram below.) Figure 3 As shown, the FPGA control unit, or Field Programmable Gate Array control unit, receives data and signals from multiple sources and coordinates the operation of the entire system. A high-stability crystal oscillator provides a stable clock signal to the FPGA control unit, ensuring synchronized system operation. The GNSS module, or Global Navigation Satellite System module, provides position and time information, including second pulse signals and time information (such as ZDA data). The inertial measurement unit (IMU) provides inertial measurement data to the FPGA control unit, while the wheel speedometer provides the number of quadrature encoder pulses, which represent the wheel rotation speed and are crucial for calculating vehicle speed and distance traveled. The FPGA control unit processes this input data and generates synchronization trigger signals, which are sent to the trigger modules of the IMU and camera to achieve synchronized data acquisition. The lidar and camera receive the synchronization trigger signals and acquire data when triggered. The acquired lidar and camera data are then sent to the storage or navigation processing unit for further processing or storage.
[0201] This embodiment provides a time synchronization method for a navigation system. By using the estimated step size of the current local clock and the absolute time of the current local clock, the stability and accuracy of the sampling time base standard are continuously maintained, providing a reliable basic time base for the sampling synchronization of all subsequent sensors. Multi-sensor synchronous sampling is controlled based on a sampling trigger clock, solving the problem of sampling asynchrony caused by differences in sampling frequencies between different sensors, and realizing collaborative sampling of multiple sensors under a unified time base. Precise sampling time information is calculated and associated for each sampling point, ensuring a one-to-one correspondence between sensor data and time, providing a unified time reference for subsequent data storage and multi-sensor data fusion in navigation processing. In this way, simultaneous synchronous sampling of multiple sensors such as inertial measurement units, wheel velocity meters, and visual sensors is supported, significantly improving the time synchronization accuracy and reliability of multi-sensor sampling, and providing high-quality data support for high-precision positioning and attitude determination in integrated navigation systems.
[0202] For example, to help understand the implementation flow of the navigation system time synchronization method obtained by combining this embodiment with the above embodiment one, please refer to... Figure 4 , Figure 4A simplified flowchart of a time synchronization method for a navigation system is provided, specifically:
[0203] Establishing a GNSS time reference is crucial to ensuring the navigation system has an accurate time source. Establishing a sampling time scale is essential to determining the data acquisition intervals and frequencies. Performing time synchronization and acquisition operations utilizes the previously established time reference to synchronously acquire data, ensuring the consistency and accuracy of all data in terms of time.
[0204] It should be noted that the above examples are only for understanding this application and do not constitute a limitation on the time synchronization method of the navigation system of this application. Any simple modifications based on this technical concept are within the protection scope of this application.
[0205] This application also provides a time synchronization device for a navigation system; please refer to [reference needed]. Figure 5 The navigation system time synchronization device includes:
[0206] The step size estimation module 10 is used to determine the initial step size estimate of the local clock based on multiple consecutive second pulse signals of the global navigation satellite system when the satellite signal quality of the global navigation satellite system is good, and to use the initial step size estimate of the local clock as the historical step size estimate.
[0207] Data processing module 20 is used to determine the current local clock step size measurement value based on the previous second pulse signal and the current second pulse signal;
[0208] The condition judgment module 30 is used to acquire satellite interference information and determine whether the satellite signal quality and the satellite interference information meet the satellite usage conditions.
[0209] The data processing module 20 is also used to determine the current local clock step size estimate and the current local clock absolute time based on the compliance of the satellite usage conditions, the historical local clock step size estimate, and the current local clock step size measurement.
[0210] The time synchronization module 40 is used to complete the time synchronization of the multi-sensor navigation system based on the estimated value of the current local clock step size and the absolute time of the current local clock.
[0211] In one embodiment, the time synchronization module 40 is further configured to acquire the local clock error when the satellite signal quality is good.
[0212] Based on the local clock error, the clock phase, clock frequency, and clock frequency drift rate are fitted;
[0213] When the duration of time that does not meet the satellite usage conditions reaches the preset satellite lockout duration, the current local clock absolute time is compensated based on the clock phase, the clock frequency and the clock frequency drift rate to obtain the compensated current local clock absolute time.
[0214] Time synchronization of the multi-sensor navigation system is completed based on the estimated current local clock step size and the compensated current local clock absolute time.
[0215] In one embodiment, the condition judgment module 30 is further configured to obtain the satellite positioning status, the number of positioning satellites, and the position accuracy attenuation factor of the global navigation satellite system, and determine the satellite signal quality based on the satellite positioning status, the number of positioning satellites, and the position accuracy attenuation factor; before the step of obtaining the satellite interference situation, the satellite interference situation of the global navigation satellite system is determined based on the current local clock step measurement value and the historical local clock step estimate value.
[0216] In one embodiment, the data processing module 20 is further configured to determine the current local clock step size estimate based on the estimated step size weight, the measurement step size weight, the historical local clock step size estimate, and the current local clock step size measurement value when the satellite signal quality and the satellite interference conditions meet the satellite usage conditions, and to determine the absolute time of the local clock based on the time information of the global navigation satellite system;
[0217] When the satellite signal quality or the satellite interference does not meet the satellite usage conditions, the historical local clock step size estimate is determined as the current local clock step size estimate, and the absolute time of the local clock is updated based on the current local clock step size estimate and the current local clock step size measurement.
[0218] In one embodiment, the data processing module 20 is further configured to use the rising edge of the previous second pulse signal as the start time of the current second local count;
[0219] Upon receiving the current second pulse signal, determine that the current time is the local counting termination time;
[0220] Obtain the accumulated count value between the local counting start time and the local counting end time;
[0221] The current local clock step size measurement value is determined based on the accumulated count value.
[0222] In one embodiment, the time synchronization module 40 is further configured to maintain a sampling time base standard based on the current local clock step size estimate and the current local clock absolute time;
[0223] Based on the sampling time base standard, clock frequency division is performed to obtain the sampling trigger clocks for multiple sensors;
[0224] The sampling trigger clock controls the multiple sensors to collect corresponding sensor data.
[0225] The sampling time information corresponding to each sampling point of the multiple sensors is calculated based on the sampling time base standard, so as to store or process the sensor data and the sampling time information, and complete the time synchronization of the multi-sensor navigation system.
[0226] In one embodiment, the time synchronization module 40 is further configured to perform clock frequency division based on the sampling time base standard to obtain the initial sampling clock signals of multiple sensors;
[0227] When the multiple sensors request synchronous triggering, the data output enable signals, hardware connection status information, and data transmission delay of the multiple sensors are acquired.
[0228] Responding to the data output enable signal, obtain data value rationality information;
[0229] The validity of the data is evaluated based on the hardware connection status information and the reasonableness information of the data values;
[0230] The initial sampling clock signal is phase-adjusted based on the data validity and the data transmission delay to obtain a calibration sampling clock signal;
[0231] Based on the preset sensor synchronization priority identifier and the calibration sampling clock signal, clock resources are dynamically allocated to obtain the sampling trigger clocks for multiple sensors.
[0232] In one embodiment, the time synchronization module 40 is further configured to obtain an integer second cumulative count value from the sampling time base standard;
[0233] Based on the integer-second cumulative count value and the multi-sensor sampling frequency configuration information, the local count information of the inertial measurement unit sampling time, the local count information of the wheel speed meter sampling time, and the local count information of the visual sensor sampling time are obtained.
[0234] Based on the sampling time base standard, the local count information of the sampling time of the inertial measurement unit, the local count information of the sampling time of the wheel speedometer, and the local count information of the sampling time of the vision sensor, the sampling time information of each sampling point of multiple sensors is obtained.
[0235] The navigation system time synchronization device provided in this application, employing the navigation system time synchronization method in the above embodiments, can solve the technical problem of how to maintain high precision in the time synchronization of multi-sensor data. Compared with the prior art, the beneficial effects of the navigation system time synchronization device provided in this application are the same as those of the navigation system time synchronization method provided in the above embodiments, and other technical features in the navigation system time synchronization device are the same as those disclosed in the methods of the above embodiments, and will not be repeated here.
[0236] This application provides a navigation system time synchronization device, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the navigation system time synchronization method in the first embodiment described above.
[0237] The following is for reference. Figure 6 The diagram illustrates a structural schematic of a navigation system time synchronization device suitable for implementing embodiments of this application. The navigation system time synchronization device in embodiments of this application may include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Portable Application Description), PMPs (Portable Media Players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 6 The navigation system time synchronization device shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.
[0238] like Figure 6As shown, the navigation system time synchronization device may include a processing unit 1001 (e.g., a central processing unit, a graphics processing unit, etc.), which can perform various appropriate actions and processes according to a program stored in ROM (Read Only Memory) 1002 or a program loaded from storage device 1003 into RAM (Random Access Memory) 1004. RAM 1004 also stores various programs and data required for the operation of the navigation system time synchronization device. The processing unit 1001, ROM 1002, and RAM 1004 are interconnected via bus 1005. Input / output (I / O) interface 1006 is also connected to the bus. Typically, the following systems can be connected to I / O interface 1006: input devices 1007 including, for example, touch screens, touchpads, keyboards, mice, image sensors, microphones, accelerometers, gyroscopes, etc.; output devices 1008 including, for example, LCDs (Liquid Crystal Displays), speakers, vibrators, etc.; storage devices 1003 including, for example, magnetic tapes, hard disks, etc.; and communication devices 1009. Communication device 1009 allows the navigation system time synchronization device to communicate wirelessly or wiredly with other devices to exchange data. Although the figure shows navigation system time synchronization devices with various systems, it should be understood that implementation or possession of all the systems shown is not required. More or fewer systems may be implemented alternatively.
[0239] Specifically, according to the embodiments disclosed in this application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments disclosed in this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device, or installed from storage device 1003, or installed from ROM 1002. When the computer program is executed by processing device 1001, it performs the functions defined in the methods of the embodiments disclosed in this application.
[0240] The navigation system time synchronization device provided in this application, employing the navigation system time synchronization method in the above embodiments, can solve the technical problem of how to maintain high precision in the time synchronization of multi-sensor data. Compared with the prior art, the beneficial effects of the navigation system time synchronization device provided in this application are the same as those of the navigation system time synchronization method provided in the above embodiments, and other technical features in this navigation system time synchronization device are the same as those disclosed in the previous embodiment method, and will not be repeated here.
[0241] It should be understood that the various parts disclosed in this application can be implemented using hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in any suitable manner in one or more embodiments or examples.
[0242] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
[0243] This application provides a computer-readable storage medium having computer-readable program instructions (i.e., a computer program) stored thereon, the computer-readable program instructions being used to execute the navigation system time synchronization method in the above embodiments.
[0244] The computer-readable storage medium provided in this application may be, for example, a USB flash drive, but is not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, RAM (Random Access Memory), ROM (Read Only Memory), EPROM (Erasable Programmable Read Only Memory), or flash memory, optical fiber, CD-ROM (CD-Read Only Memory), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this embodiment, the computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, system, or device. The program code contained on the computer-readable storage medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination thereof.
[0245] The aforementioned computer-readable storage medium may be included in the navigation system time synchronization device; or it may exist independently and not be assembled into the navigation system time synchronization device.
[0246] The aforementioned computer-readable storage medium carries one or more programs. When these programs are executed by the navigation system time synchronization device, the navigation system time synchronization device: when the satellite signal quality of the Global Navigation Satellite System (GNSS) is good, determines the initial step size estimate of the local clock based on multiple consecutive second pulse signals of the GNSS, and uses the initial step size estimate of the local clock as the historical step size estimate; determines the current local clock step size measurement based on the previous second pulse signal and the current second pulse signal; acquires satellite interference information and determines whether the satellite signal quality and satellite interference information meet the satellite usage conditions; determines the current local clock step size estimate and the current local clock absolute time based on the compliance of the satellite usage conditions, the historical local clock step size estimate, and the current local clock step size measurement; and completes the time synchronization of the navigation system for multiple sensors based on the current local clock step size estimate and the current local clock absolute time.
[0247] Computer program code for performing the operations of this application can be written in one or more programming languages or a combination thereof. These programming languages include object-oriented programming languages—such as Java, Smalltalk, C++, Verilog, and VHDL—as well as conventional procedural programming languages—such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a LAN (Local Area Network) or WAN (Wide Area Network)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0248] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0249] The modules described in the embodiments of this application can be implemented in software or hardware. The names of the modules do not necessarily limit the functionality of the unit itself.
[0250] The readable storage medium provided in this application is a computer-readable storage medium that stores computer-readable program instructions (i.e., a computer program) for executing the above-described navigation system time synchronization method, thereby solving the technical problem of how to maintain high precision in multi-sensor data time synchronization. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided in this application are the same as those of the navigation system time synchronization method provided in the above embodiments, and will not be repeated here.
[0251] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the navigation system time synchronization method described above.
[0252] The computer program product provided in this application can solve the technical problem of how to maintain high accuracy in the time synchronization of multi-sensor data. Compared with the prior art, the beneficial effects of the computer program product provided in this application are the same as those of the navigation system time synchronization method provided in the above embodiments, and will not be repeated here.
[0253] The above description is only a part of the embodiments of this application and does not limit the patent scope of this application. All equivalent structural transformations made under the technical concept of this application and using the contents of the specification and drawings of this application, or direct / indirect applications in other related technical fields, are included in the patent protection scope of this application.
Claims
1. A time synchronization method for a navigation system, characterized in that, The navigation system time synchronization method includes: When the satellite signal quality of the global navigation satellite system is good, the initial step size estimate of the local clock is determined based on multiple consecutive second pulse signals of the global navigation satellite system, and the initial step size estimate of the local clock is used as the historical local clock step size estimate. The current local clock step size measurement value is determined based on the pulse signal of the previous second and the pulse signal of the current second. Acquire satellite interference information and determine whether the satellite signal quality and satellite interference conditions meet the requirements for satellite use; The current local clock step size estimate and the current local clock absolute time are determined based on the compliance of the satellite usage conditions, the historical local clock step size estimate, and the current local clock step size measurement. The navigation system time synchronization for multiple sensors is completed based on the estimated step size of the current local clock and the absolute time of the current local clock.
2. The method as described in claim 1, characterized in that, The step of synchronizing the time of the multi-sensor navigation system based on the estimated step size of the current local clock and the absolute time of the current local clock includes: Under the condition that the satellite signal quality is good, obtain the local clock error; Based on the local clock error, the clock phase, clock frequency, and clock frequency drift rate are fitted; When the duration of time that does not meet the satellite usage conditions reaches the preset satellite lockout duration, the current local clock absolute time is compensated based on the clock phase, the clock frequency and the clock frequency drift rate to obtain the compensated current local clock absolute time. Time synchronization of the multi-sensor navigation system is completed based on the estimated current local clock step size and the compensated current local clock absolute time.
3. The method as described in claim 1, characterized in that, Before determining the estimated initial step size of the local clock based on multiple consecutive second pulse signals of the global navigation satellite system when the satellite signal quality of the global navigation satellite system is good, the method further includes: The satellite positioning status, number of positioning satellites, and position accuracy attenuation factor of the global navigation satellite system are obtained, and the satellite signal quality is determined based on the satellite positioning status, the number of positioning satellites, and the position accuracy attenuation factor. Before the step of obtaining satellite interference information, the method further includes: The satellite interference situation of the global navigation satellite system is determined based on the current local clock step size measurement and the historical local clock step size estimate.
4. The method as described in claim 1, characterized in that, The step of determining the current local clock step size estimate and the current local clock absolute time based on the compliance of the satellite usage conditions, the historical local clock step size estimate, and the current local clock step size measurement includes: When the satellite signal quality and the satellite interference situation meet the satellite usage conditions, the current local clock step size estimate is determined based on the estimated step size weight, the measurement step size weight, the historical local clock step size estimate, and the current local clock step size measurement value, and the local clock absolute time is determined according to the time information of the global navigation satellite system. When the satellite signal quality or the satellite interference does not meet the satellite usage conditions, the historical local clock step size estimate is determined as the current local clock step size estimate, and the absolute time of the local clock is updated based on the current local clock step size estimate and the current local clock step size measurement.
5. The method as described in claim 1, characterized in that, The step of synchronizing the time of the multi-sensor navigation system based on the estimated step size of the current local clock and the absolute time of the current local clock includes: The sampling time base standard is maintained based on the estimated current local clock step size and the absolute current local clock time. Based on the sampling time base standard, clock frequency division is performed to obtain the sampling trigger clocks for multiple sensors; The sampling trigger clock controls the multiple sensors to collect corresponding sensor data. The sampling time information corresponding to each sampling point of the multiple sensors is calculated based on the sampling time base standard, so as to store or process the sensor data and the sampling time information, and complete the time synchronization of the multi-sensor navigation system.
6. The method as described in claim 5, characterized in that, The step of dividing the clock frequency based on the sampling time base standard to obtain the sampling trigger clock for multiple sensors includes: Clock frequency division is performed based on the sampling time base standard to obtain the initial sampling clock signals of multiple sensors; When the multiple sensors request synchronous triggering, the data output enable signals, hardware connection status information, and data transmission delay of the multiple sensors are acquired; Responding to the data output enable signal, obtain data value rationality information; The validity of the data is evaluated based on the hardware connection status information and the reasonableness information of the data values; The initial sampling clock signal is phase-adjusted based on the data validity and the data transmission delay to obtain a calibration sampling clock signal; Based on the preset sensor synchronization priority identifier and the calibration sampling clock signal, clock resources are dynamically allocated to obtain the sampling trigger clocks for multiple sensors.
7. The method as described in claim 5, characterized in that, The steps for calculating the sampling time information corresponding to each sampling point of the multiple sensors based on the sampling time base standard include: Obtain the integer second cumulative count value from the sampling time base standard; Based on the integer-second cumulative count value and the multi-sensor sampling frequency configuration information, the local count information of the inertial measurement unit sampling time, the local count information of the wheel speed meter sampling time, and the local count information of the visual sensor sampling time are obtained. Based on the sampling time base standard, the local count information of the sampling time of the inertial measurement unit, the local count information of the sampling time of the wheel speedometer, and the local count information of the sampling time of the vision sensor, the sampling time information of each sampling point of multiple sensors is obtained.
8. A time synchronization device for a navigation system, characterized in that, The device includes: The step size estimation module is used to determine the initial step size estimate of the local clock based on multiple consecutive second pulse signals of the global navigation satellite system when the satellite signal quality of the global navigation satellite system is good, and to use the initial step size estimate of the local clock as the historical step size estimate. The data processing module is used to determine the current local clock step size measurement value based on the previous second pulse signal and the current second pulse signal; The condition judgment module is used to acquire satellite interference information and determine whether the satellite signal quality and the satellite interference information meet the satellite usage conditions. The data processing module is also used to determine the current local clock step size estimate and the current local clock absolute time based on the compliance of the satellite usage conditions, the historical local clock step size estimate, and the current local clock step size measurement. The time synchronization module is used to synchronize the time of the multi-sensor navigation system based on the estimated value of the current local clock step size and the absolute time of the current local clock.
9. A time synchronization device for a navigation system, characterized in that, The device includes: a memory, a processor, and a computer program stored in the memory and executable on the processor, the computer program being configured to implement the steps of the navigation system time synchronization method as described in any one of claims 1 to 7.
10. A storage medium, characterized in that, The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, it implements the steps of the navigation system time synchronization method as described in any one of claims 1 to 7.