A method and system for compensating eye point data of a flight simulator

By establishing a shared memory region in the flight simulator and using a lightweight LSTM for differential compensation, the problems of real-time performance and accuracy of eye-point data in the flight simulator were solved, the smoothness and realism of the visual system were improved, and the requirements for high fidelity training were met.

CN120804612BActive Publication Date: 2025-11-11CHINA SOUTHERN TECHNOLOGY (GUANGDONG HENGQIN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511307693.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-09-15
Publication Date
2025-11-11
Estimated Expiration
2045-09-15

AI Technical Summary

Technical Problem

The real-time performance and accuracy of eye-point data in existing flight simulators are poor, resulting in unstable compensation effects of the visual system under different flight conditions. In particular, the prediction error is large when the aircraft attitude changes drastically, which cannot meet the requirements of high fidelity training.

Method used

By establishing a shared memory region in the flight simulator system, using frame ID as the state update variable, and combining a lightweight long short-term memory network (LSTM) and linear interpolation methods, eye-point data prediction compensation is performed based on the differences in aircraft attitude patterns, ensuring data real-time performance and accuracy.

Benefits of technology

It achieves efficient synchronization and accurate prediction of eye-point data, improves the smoothness and realism of the visual system, and meets the high fidelity requirements of pilot training.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120804612B_ABST
    Figure CN120804612B_ABST
Patent Text Reader

Abstract

This application relates to the field of eyepoint data compensation technology, providing a method and system for compensating eyepoint data in flight simulators, solving the problems of poor real-time performance and low accuracy of eyepoint data in flight simulations. The method includes: establishing a shared memory region between the simulation logic processing module and the eyepoint data sending module of the flight simulator; this region contains updated state variables in the form of frame IDs and a first-in-first-out shared eyepoint data area; after completing a frame attitude calculation, the simulation logic processing module updates the frame ID; the eyepoint data sending module obtains the latest eyepoint data through the position corresponding to the latest frame ID; then, combined with the instructor's station settings, airspeed, and ground speed data, the aircraft attitude mode is determined to be stationary, stable, or maneuvering; finally, linear interpolation is used for the stable mode, and a pre-trained lightweight LSTM is used for the maneuvering mode to predictively compensate the latest eyepoint data, obtaining the compensated data. This application improves the real-time performance and accuracy of eyepoint data in flight simulations.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of eyepoint data compensation technology, and in particular to a method and system for compensating eyepoint data in a flight simulator. Background Technology

[0002] Flight simulators are crucial equipment for pilot training. Their visual systems need to acquire and present the pilot's eye position data in real time to reproduce the changes in perspective during actual flight. This requires that the eye position data be able to respond and update quickly during transmission, and accurately fill gaps when there is data delay, ensuring the smoothness and realism of perspective switching during training and meeting the requirements for high-fidelity training.

[0003] Currently, the processing and transmission of eye point data often employs continuous data acquisition at a fixed frequency. During data transmission, if it is found that the current frame data is not updated in time, a predicted value is calculated based on the linear change pattern of the past three to five frames of data to fill the delay and maintain the continuity of data output.

[0004] In this approach, the data acquisition cycle is mismatched with the simulation logic cycle, which can easily lead to asynchrony between data transmission and the actual simulation state. When the aircraft attitude changes smoothly, the prediction results are relatively ideal, but when the attitude changes drastically, the deviation between the linear prediction and the actual change widens. At the same time, the compensation method is fixed and is not adjusted according to different motion states during flight, resulting in insufficient stability of the compensation effect in scenarios such as stationary, stable flight, and maneuvering flight. Summary of the Invention

[0005] This application provides a method and system for compensating eyepoint data in flight simulators, in order to solve the problems of poor real-time performance and low accuracy of eyepoint data in existing flight simulators.

[0006] To address the aforementioned technical problems, in a first aspect, this application provides a method for compensating eyepoint data in a flight simulator, comprising:

[0007] A shared memory region is established between the simulation logic processing module and the eye point data sending module in the flight simulator system. The shared memory region includes an update state quantity and a shared eye point data area. The update state quantity is the frame identity document (ID). After the simulation logic processing module completes the attitude calculation for a frame, it updates the frame ID to obtain the latest frame ID. The shared eye point data area adopts a first-in-first-out storage mechanism. When the storage volume reaches a preset upper limit, the new data overwrites the oldest data. The eye point data sending module obtains the latest eye point data by reading the storage location corresponding to the latest frame ID in the shared eye point data area.

[0008] Based on the latest eye point data and the latest frame ID, combined with the instructor's station settings, airspeed data, and ground speed data in the flight simulator system, the current attitude mode of the aircraft is determined to be either stationary or in motion. The motion mode includes stable mode and maneuvering mode.

[0009] When the posture mode is a stable mode, linear interpolation is used to predict and compensate the latest eye point data. Alternatively, when the posture mode is a maneuvering mode, a pre-trained lightweight long short-term memory (LSTM) network is used to predict and compensate the latest eye point data to obtain the corresponding compensated data.

[0010] Secondly, this application provides a compensation system for eyepoint data of a flight simulator, comprising:

[0011] A module is established to create a shared memory area between the simulation logic processing module and the eye point data sending module in the flight simulator system. The shared memory area includes an update state quantity and a shared eye point data area. The update state quantity is a frame ID. After the simulation logic processing module completes the attitude calculation for a frame, it updates the frame ID to obtain the latest frame ID. The shared eye point data area adopts a first-in-first-out storage mechanism. When the storage volume reaches a preset upper limit, the new data overwrites the oldest data. The eye point data sending module obtains the latest eye point data by reading the storage location corresponding to the latest frame ID in the shared eye point data area.

[0012] The determination module is used to determine whether the current attitude mode of the aircraft is stationary or in motion, based on the latest eye point data, the latest frame ID, the instructor's station settings, airspeed data, and ground speed data in the flight simulator system. The motion mode includes stable mode and maneuvering mode.

[0013] The compensation module is used to predict and compensate the latest eye point data by using linear interpolation when the posture mode is a stable mode, or by using a pre-trained lightweight LSTM to predict and compensate the latest eye point data when the posture mode is a maneuvering mode, so as to obtain the corresponding compensated data.

[0014] Thirdly, this application provides an electronic device, comprising:

[0015] Memory, used to store computer programs;

[0016] A processor is configured to execute the computer program to implement the steps of the flight simulator eyepoint data compensation method as described in the first aspect above.

[0017] Fourthly, this application provides a computer-readable storage medium storing a computer program that, when executed by a processor, can implement the steps of the compensation method for eyepoint data of a flight simulator as described in the first aspect above.

[0018] The technical solution provided in this application has the following beneficial effects:

[0019] This application uses frame IDs as update state variables to achieve efficient synchronization between the simulation logic processing module and the eye-point data transmission module, ensuring that the eye-point data transmission module can acquire the latest data in a timely manner. The first-in-first-out (FIFO) storage mechanism and overwrite rules effectively avoid data buffer overflow, reduce data loss or duplicate reads, and improve the real-time performance and reliability of data interaction. Combined with instructor station settings, airspeed, and ground speed data, it can accurately distinguish between the aircraft's stationary state, steady-state mode, and maneuvering mode, providing a targeted basis for subsequent prediction and compensation. This ensures that the compensation strategy matches the actual motion state of the aircraft, improving the effectiveness of the compensation. Linear interpolation is used for steady-state mode to guarantee the real-time performance of the compensation; a lightweight LSTM is used for maneuvering mode to better capture complex changing patterns. The differentiated compensation strategies for the two modes improve the accuracy of prediction and compensation while maintaining processing efficiency, ensuring the continuity of eye-point data.

[0020] Furthermore, in the maneuver mode, when using a pre-trained lightweight LSTM for prediction compensation, this application first acquires historical eye point data and corresponding pose information, inputs the changes in historical eye point data and pose information into the input layer of the LSTM, extracts the time series dependencies through two hidden layers, predicts the changes in eye point data by the output layer, and finally adds the changes to the latest eye point data to obtain the compensated data.

[0021] Furthermore, this method extracts the time-series dependencies of historical data using a lightweight LSTM, which can effectively capture the complex changing characteristics of eye point data under maneuvering mode, making the predicted changes in eye point data more consistent with the actual situation. When combined with the latest eye point data, it significantly improves the accuracy of prediction compensation under maneuvering mode. At the same time, the design of the lightweight LSTM also ensures the efficiency of the processing.

[0022] These or other aspects of this application will become more apparent from the description of the following embodiments. Attached Figure Description

[0023] 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, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0024] Figure 1 A flowchart illustrating a method for compensating eyepoint data in a flight simulator, provided in an embodiment of this application;

[0025] Figure 2 A schematic diagram illustrating the relationship between the simulation module and the data transmission module provided in this application embodiment;

[0026] Figure 3 This application provides a schematic diagram illustrating a specific implementation of a method for compensating eyepoint data in a flight simulator.

[0027] Figure 4 A schematic diagram illustrating another specific implementation of a method for compensating eyepoint data in a flight simulator, provided in this application embodiment;

[0028] Figure 5 A flowchart illustrating the collaborative compensation method for eyepoint data compensation in a flight simulator, provided in an embodiment of this application;

[0029] Figure 6 A diagram illustrating the process of predicting eyepoint data in a method for compensating eyepoint data in a flight simulator, as provided in an embodiment of this application.

[0030] Figure 7 This is a schematic diagram of the structure of a flight simulator eyepoint data compensation system provided in an embodiment of this application. Detailed Implementation

[0031] In eye-point data processing for flight simulators, existing solutions have significant shortcomings: the data acquisition rhythm does not match the computation rhythm of the flight simulation, which can easily lead to data transmission being out of sync with the actual flight state; when the aircraft attitude changes smoothly, linear prediction based on the past few frames of data is acceptable, but when the attitude changes drastically, linear prediction struggles to keep up with the actual changes, and the error increases significantly; at the same time, the compensation method is fixed and does not adjust according to different states such as whether the aircraft is stationary, flying steadily, or performing maneuvers, which makes the data compensation effect unstable under various flight scenarios.

[0032] To address these issues, this application proposes a compensation method for eye-point data in flight simulators. It solves the data synchronization problem by using shared memory and frame ID; it improves the prediction accuracy under maneuvering conditions by using a lightweight LSTM model and reduces errors during drastic attitude changes; and it adapts to different flight states through a differentiated compensation strategy, enhancing the stability of the compensation effect, thereby making the visual presentation of the flight simulator smoother and more realistic, and meeting the requirements for high fidelity training.

[0033] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments. Obviously, the described embodiments are merely some embodiments of the present application, and not all embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0034] The core of this application is to provide a method for compensating eyepoint data in a flight simulator, and a flowchart of one specific implementation is shown below. Figure 1 As shown, the method includes:

[0035] Step 101: Establish a shared memory area between the simulation logic processing module and the eye point data sending module in the flight simulator system. The shared memory area includes an update state quantity and a shared eye point data area. The update state quantity is the frame ID. After the simulation logic processing module completes the attitude calculation for one frame, it updates the frame ID to obtain the latest frame ID. The shared eye point data area adopts a first-in-first-out storage mechanism. When the storage volume reaches a preset upper limit, the new data overwrites the oldest data. The eye point data sending module obtains the latest eye point data by reading the storage location corresponding to the latest frame ID in the shared eye point data area.

[0036] In step 101, the shared memory area is a shared memory space used for data interaction between the two modules, comprising two parts: an update state variable and a shared eyepoint data area. The update state variable, i.e., the frame ID, is an identifier that the simulation logic processing module updates after each frame of attitude calculation, informing the eyepoint data sending module of new attitude data. The shared eyepoint data area stores eyepoint data using a first-in, first-out (FIFO) storage mechanism; that is, when the stored data reaches the preset maximum capacity, new data replaces the oldest stored data. The simulation logic processing module is responsible for calculating aircraft attitude in the flight simulator, calculating and updating the aircraft's attitude data in real time based on the flight status. The latest frame ID is the frame identifier updated by the simulation logic processing module, used to locate the latest eyepoint data. The eyepoint data sending module is responsible for sending the pilot's viewpoint position data (i.e., eyepoint data) to the visual system. An eyepoint refers to the position of the pilot's viewpoint, with the WGS-84 coordinate system as the reference frame. The latest eyepoint data is the eyepoint data in the shared eyepoint data area corresponding to the latest frame ID, and is the latest data that the eyepoint data sending module needs to obtain.

[0037] In this embodiment, firstly, a shared memory area is created in the flight simulator system for use by the simulation logic processing module and the eye-point data sending module. This area includes a frame ID for identifying data updates and a shared eye-point data area for storing eye-point data. Then, after completing an aircraft attitude calculation for a frame, the simulation logic processing module updates the frame ID (e.g., by incrementing the value by 1) and writes the newly calculated eye-point data into the shared eye-point data area. When the shared eye-point data area is full, the newly written data replaces the oldest stored data. The eye-point data sending module monitors changes in the frame ID in real time to detect new eye-point data. Once a frame ID update is detected, it uses the latest frame ID to locate the corresponding storage location in the shared eye-point data area and reads the latest eye-point data from it.

[0038] For example, when a flight simulator starts training, the system first establishes a shared memory area, where the frame ID is initially set to 0, and the shared eyepoint data area is preset to store 100 frames of data. The simulation logic processing module starts calculating the aircraft attitude. After completing the calculation of the first frame, it updates the frame ID to 1 and writes the current eyepoint data (corresponding to a set of coordinates in the WGS-84 coordinate system) into the shared eyepoint data area. After completing the calculation of the second frame, the frame ID is updated to 2, and new eyepoint data is written. When the calculation reaches the 101st frame, the shared eyepoint data area has been filled with 100 frames, and the new data replaces the data of the first frame. The eyepoint data sending module monitors the frame ID in real time. When it detects that the frame ID has changed from 1 to 2, it reads the position corresponding to frame ID 2 in the shared eyepoint data area to obtain the latest eyepoint data.

[0039] Step 102: Based on the latest eyepoint data and the latest frame ID, combined with the instructor's station settings, airspeed data, and ground speed data in the flight simulator system, determine whether the aircraft's current attitude mode is stationary or in motion. The motion mode includes stable mode and maneuvering mode.

[0040] In step 102, the instructor's console settings are the settings on the instructor's control panel in the flight simulator, including freeze states (such as flight freeze, overall freeze, in which case the aircraft attitude remains unchanged; position freeze, altitude freeze, and heading freeze, corresponding to the aircraft's latitude, longitude, altitude, and heading remaining unchanged, respectively). Airspeed data is the aircraft's speed relative to the surrounding air, and ground speed data is the aircraft's speed relative to the ground. Attitude modes are divided into stationary state (aircraft does not move) and moving state. The moving state includes smooth mode (aircraft attitude changes gently) and maneuvering mode (aircraft attitude changes drastically).

[0041] In this embodiment, firstly, the eyepoint data transmission module acquires the latest eyepoint data, the latest frame ID, and the instructor's station settings, airspeed data, and ground speed data. Next, based on the instructor's station settings, it determines the following: if the system is in a flight freeze or general freeze state, it is directly classified as stationary; if it is not in either of these freeze states, it checks whether the airspeed and ground speed data are both less than a preset stationary threshold; if so, it is classified as stationary; if not, it checks whether the system is in a position freeze, altitude freeze, or heading freeze state; if so, it is classified as stationary. If none of the above conditions are met, it combines the historical eyepoint data corresponding to the latest frame ID (e.g., the past 8 frames) to calculate the changes in each dimension (longitude, latitude, altitude, pitch angle, etc.), and then calculates the variance of these changes; if the variance of all dimensions is less than a preset stable mode threshold, it is classified as stable mode; if the variance of at least one dimension is greater than or equal to a preset maneuvering mode threshold, it is classified as maneuvering mode.

[0042] For example, following the scenario in step 101, the eyepoint data sending module obtains the latest eyepoint data (the coordinates corresponding to frame ID2), the latest frame ID2, and simultaneously obtains that the instructor's console is not in a flight freeze or total freeze state, and both airspeed and ground speed data are greater than the stationary threshold (this threshold is set according to the simulator training requirements and is used to distinguish between stationary and moving states), and is not in a position, altitude, or heading freeze state. At this time, the module retrieves the eyepoint data from the past 8 frames (including frame ID2), calculates the changes in longitude, latitude, altitude, and pitch angle between each frame, and then calculates the variance of these changes respectively. After calculation, the variance of all dimensions is less than the preset stable mode threshold (this threshold is set according to the attitude change characteristics during stable flight), therefore, the current aircraft attitude mode is determined to be a stable mode.

[0043] Step 103: If the posture mode is a stable mode, linear interpolation is used to predict and compensate the latest eye point data; or, if the posture mode is a maneuvering mode, a pre-trained lightweight LSTM is used to predict and compensate the latest eye point data to obtain the corresponding compensated data.

[0044] In step 103, linear interpolation is a method for predicting future data based on the linear variation patterns of historical data; here, it is used to predict eye-point data in stationary mode. Lightweight LSTM is a simplified Long Short-Term Memory network that retains the ability to process time-series data while being more computationally efficient; it is used to predict eye-point data in maneuvering mode. The compensated data is the eye-point data after prediction compensation processing, which is then sent to the visual system.

[0045] In this embodiment, if step 102 determines the mode to be stable, the eye point data sending module extracts the latest frame of eye point data (including position coordinates and attitude angle) and the previous frame of eye point data from the shared eye point data area, calculates the difference between their position coordinates and attitude angles, and then superimposes these differences onto the position coordinates and attitude angles of the latest frame to obtain the predicted position coordinates and attitude angles. The combined values ​​are the compensated data. If the mode to be maneuverable is determined, the module inputs the changes in historical eye point data and the corresponding attitude information into a pre-trained lightweight LSTM. The model outputs the predicted changes in eye point data, and then adds these changes to the latest eye point data to obtain the compensated data.

[0046] For example, following the stable mode scenario in step 102, the eye-point data sending module extracts the latest eye-point data (position coordinates (x2, y2, z2), attitude angle (θ2, ψ2, φ2)) of frame ID2 and the previous frame data (position coordinates (x1, y1, z1), attitude angle (θ1, ψ1, φ1)) from the shared eye-point data area. It calculates the position coordinate differences Δx = x2 - x1, Δy = y2 - y1, Δz = z2 - z1, and the attitude angle differences Δθ = θ2 - θ1, Δψ = ψ2 - ψ1, Δφ = φ2 - φ1. These differences are then superimposed on the latest data to obtain the predicted position coordinates (x2 + Δx, y2 + Δy, z2 + Δz) and predicted attitude angles (θ2 + Δθ, ψ2 + Δψ, φ2 + Δφ). The combined data is the compensated data, which is then sent to the visual system.

[0047] By establishing a shared memory region, the eye-point data transmission module can efficiently acquire the latest data, resolving the data synchronization issue. Multi-dimensional determination of aircraft attitude patterns provides a precise basis for compensation strategies. Corresponding compensation methods are adopted according to different modes, ensuring real-time performance in stable modes and improving prediction accuracy in maneuvering modes. The synergistic effect of these three elements makes eye-point data transmission in the flight simulator smoother and compensation more accurate, effectively enhancing the realism of the visual system and meeting the high fidelity requirements of pilot training.

[0048] To further improve the accuracy of eye point data prediction compensation in maneuver mode, in some embodiments, step 103: when the posture mode is maneuver mode, using a pre-trained lightweight LSTM to predict and compensate the latest eye point data includes:

[0049] Step 201: Obtain historical eye point data and corresponding pose information. Input the changes in the historical eye point data and the corresponding pose information into the input layer of the lightweight LSTM. Extract the time series dependencies from the data processed by the input layer through the first hidden layer of the lightweight LSTM to obtain the data processed by the first hidden layer. Extract the time series dependencies from the data processed by the first hidden layer through the second hidden layer of the lightweight LSTM to obtain the data processed by the second hidden layer.

[0050] In step 201, historical eyepoint data refers to the pilot's viewpoint position data recorded over a past period, including coordinate information corresponding to different times. Attitude information refers to the aircraft flight status data corresponding to these eyepoint data, such as flight speed and tilt angle. The change in historical eyepoint data refers to the difference between eyepoint data at two adjacent times. The input layer is the part of the lightweight LSTM that receives data. The first and second hidden layers are the parts of the lightweight LSTM that process the data internally, used to extract the correlation patterns that change over time in the data. Time series dependencies refer to the relationships between consecutive times as the data changes over time. The data processed by the first hidden layer is the information refined by the first hidden layer. The data processed by the second hidden layer is the information further refined by the second hidden layer.

[0051] In this embodiment, past eyepoint data and corresponding aircraft flight status data are first collected, and the differences between eyepoint data at adjacent times are calculated. These differences and flight status data are then input into the input layer of a lightweight LSTM. The input layer passes these data to the first hidden layer, which finds the correlation patterns that change over time from these data to obtain the processed information. Next, the processed information from the first hidden layer is passed to the second hidden layer, which further refines these information to find deeper correlation patterns that change over time, thus obtaining the final processed information.

[0052] Step 202: The data processed by the second hidden layer is transmitted to the output layer of the lightweight LSTM. The output layer predicts and outputs the change value of the eye point data based on the data processed by the second hidden layer.

[0053] In step 202, the output layer is the part of the lightweight LSTM that outputs the prediction results. The eye point data change value refers to the magnitude of the change in eye point data at the next time step relative to the current time step, as predicted by the model.

[0054] In this embodiment of the application, the information processed by the second hidden layer is passed to the output layer. Based on this information, the output layer predicts the changes that will occur in the eye point data at the next moment and outputs the magnitude of this change.

[0055] Step 203: Add the latest eye point data to the change value of the eye point data to obtain the corresponding compensated data.

[0056] In this embodiment, the latest eye point data at the current moment is added to the eye point data change value predicted by the output layer to obtain the compensated eye point data, which is then sent to the visual system.

[0057] Here is a specific example:

[0058] In flight simulator training, continuing from the previous scenario, when frame ID is updated to 3, the aircraft enters a maneuvering mode, such as a rapid turn. At this point, the eye-point data transmission module first acquires eye-point data from the past 8 frames, including the position coordinates (x2, y2, z2) and attitude angles (θ2, ψ2, φ2) of frame ID2 and the position coordinates (x3, y3, z3) and attitude angles (θ3, ψ3, φ3) of frame ID3, along with corresponding attitude information such as turn speed and tilt angle. Next, it calculates the changes in historical eye-point data, i.e., the differences in coordinates and angles between adjacent frames, such as Δx3=x3-x2, Δy3=y3-y2, Δz3=z3-z2, Δθ3=θ3-θ2, Δψ3=ψ3-ψ2, and Δφ3=φ3-φ2. These changes are obtained by subtracting the previous frame's data from the subsequent frame's data. Then, these changes and the corresponding attitude information are input into the input layer of a pre-trained lightweight LSTM model. This model can handle data that changes over time and is computationally simple. The input layer passes data to the first hidden layer, which extracts patterns over time, such as trends in coordinate and angle changes during turns, resulting in the processed data. This processed data is then passed to the second hidden layer, which further refines the patterns, such as subtle relationships between changes in turning speed, resulting in the processed data. Finally, the processed data is passed to the output layer, which uses this information to predict the eye-point data changes for the next frame (frame ID4), such as predicted values ​​for Δx4, Δy4, Δz4, Δθ4, Δψ4, and Δφ4. These predicted changes are derived by the model based on historical patterns. Finally, the latest eye point data position coordinates (x3, y3, z3) and attitude angles (θ3, ψ3, φ3) of frame ID3 are added to these predicted changes to obtain the compensated data position coordinates (x3+Δx4, y3+Δy4, z3+Δz4) and attitude angles (θ3+Δθ4, ψ3+Δψ4, φ3+Δφ4). This compensated data is sent to the visual system to make the visual scene conform to the perspective changes during aircraft maneuvers.

[0059] In this embodiment, by using a lightweight LSTM to extract the correlation patterns of historical data over time, the changes in eye point data under maneuvering mode can be predicted more accurately. The compensated data obtained by combining the latest eye point data is more in line with the actual perspective changes in flight, ensuring the smoothness and realism of the visual system presentation and improving the effect of flight simulation training.

[0060] To further improve the accuracy of lightweight LSTM in extracting time series dependencies in maneuver mode, in some embodiments, step 201: the first hidden layer includes a first forget gate for filtering information, a first input gate for incorporating information, and a first output gate for generating output; the second hidden layer includes a second forget gate for filtering information, a second input gate for incorporating information, and a second output gate for generating output.

[0061] The lightweight LSTM extracts time-series dependencies from the data processed by the input layer through its first hidden layer, resulting in data processed by the first hidden layer. The lightweight LSTM then extracts time-series dependencies from this data through its second hidden layer, resulting in data processed by the second hidden layer. This process includes:

[0062] Step 301: Using the first forget gate, based on the data processed by the input layer and the output result of the first output gate at the previous moment, calculate the first forget weight matrix, and take the information corresponding to the forget weights in the first forget weight matrix that are greater than or equal to the preset weight threshold as the first historical time series information to be retained.

[0063] In step 301, the information types filtered by the first forget gate in the first hidden layer include the micro-components of historical eyepoint data (such as the changes in longitude Δx, latitude Δy, and altitude Δz in three-dimensional space, and the changes in pitch angle Δθ, roll angle Δψ, and heading angle Δφ) and related attitude information (such as the airspeed and ground speed changes associated with these micro-components, and the parameter changes under instructor stand settings). This filtered information is directly related to the "historical eyepoint data" and originates from the historical eyepoint data and its derived changes. The first forget gate filters this information from the historical eyepoint data, retaining valuable historical information that is dependent on the current time series and removing redundant or irrelevant historical data, thereby capturing time series patterns based on the effective information from the historical eyepoint data. The first forget gate is the part of the first hidden layer used to filter historical information; its function is to determine which past information needs to be retained. The output of the first output gate at the previous time point is the information output by the output gate of the first hidden layer at the previous time point. The first forgetting weight matrix is ​​a matrix used to measure the importance of different historical information, where each value represents the retention priority of the corresponding information. The preset weight threshold is a set standard used to determine which information is important enough to be retained. The historical time series information to be retained in the first round is the relationship between past data and its changes over time, which is considered important and needs to be retained after the first forgetting gate.

[0064] In this embodiment, the first forget gate receives the data processed by the input layer and the output result of the first output gate at the previous moment. It generates a first forget weight matrix by calculation, where each value in the matrix corresponds to the importance of a piece of historical information. Then, the information corresponding to the values ​​in the matrix that are greater than or equal to a preset weight threshold is selected as the first set of historical time series information to be retained. This information is the past data connection that needs to be focused on in subsequent processing.

[0065] Step 302: Using the first input gate, the historical time series information to be retained for the first time and the output result of the first output gate at the previous moment are used as the first data to be updated. The first input weight at the current moment is calculated based on the first data to be updated, and the first data to be updated is updated according to the first input weight to obtain the first updated data.

[0066] In step 302, the first input gate is the part of the first hidden layer used for updating information, its function being to incorporate new and important information into the processing. The first data to be updated is the information that needs to be updated, including the historical time series information to be retained initially and the output result of the first output gate at the previous time step. The first input weight is a value used to measure the update priority of each part of the data to be updated. The first updated data is the information updated according to the input weights after passing through the first input gate.

[0067] In this embodiment, the first input gate integrates the historical time series information to be retained and the output result of the first output gate at the previous moment into the first data to be updated. Based on these data, the first input weight at the current moment is calculated, and then the first data to be updated is adjusted and updated according to the weight, retaining more important information, to obtain the first updated data.

[0068] Step 303: Calculate the first output weight at the current time based on the first updated data through the first output gate, and generate the data processed by the first hidden layer based on the first output weight.

[0069] In step 303, the first output gate is the part in the first hidden layer used to generate output information; the first output weight is a value used to measure the output priority of each part of the information in the first updated data.

[0070] In this embodiment, the first output gate receives the first updated data, calculates the first output weight at the current time, and then extracts important information from the first updated data according to the weight, generating data processed by the first hidden layer. This data contains the time-series dependencies refined by the first hidden layer. The specific process is as follows: First, the first updated data (i.e., the cell state after being filtered by the first forget gate and updated by the first input gate) is processed by the tanh activation function, mapping its value to the range [-1,1], to obtain the activated cell state vector; then, the activated cell state vector is multiplied element-wise with the first output weight (processed by the sigmoid activation function, with a value range of [0,1]), retaining the information at the higher weight position and filtering out redundant information at the lower weight, finally obtaining the data processed by the first hidden layer. Example: In aircraft maneuver mode, the pitch angle changes Δθ in the historical 8 frames of eyepoint data are 1.2°, 1.5°, 2.0°, 2.8°, 3.2°, 2.9°, 3.5°, and 4.0° respectively. After the first update, the data after tanh activation is [0.55, 0.62, 0.73, 0.85, 0.89, 0.87, 0.92, 0.95]. The first output weight (which can be calculated through sigmoid activation) is [0.3, 0.4, 0.5, 0.7, 0.8, 0.75, 0.9, 0.95]. After element-wise multiplication, the data after processing in the first hidden layer is [0.165, 0.248, 0.365, 0.595, 0.712, 0.652, 0.828, 0.902], highlighting the recent large Δθ changes.

[0071] Step 304: Using the second forget gate, based on the data processed by the first hidden layer and the output result of the second output gate at the previous time step, calculate the second forget weight matrix, and take the information corresponding to the forget weights in the second forget weight matrix that are greater than or equal to the preset weight threshold as the second historical time series information to be retained.

[0072] In step 304, the second forget gate is the part of the second hidden layer used to further filter information. The output of the second output gate at the previous time step is the information output by the output gate of the second hidden layer at the previous time point. The second forget weight matrix is ​​a matrix that measures the importance of information after processing by the first hidden layer. The historical time series information to be retained in the second time step is the time series information that has been processed in the first time step, which is considered important and needs to be retained after being filtered by the second forget gate.

[0073] In this embodiment of the application, the second forget gate receives the data processed by the first hidden layer and the output result of the second output gate at the previous moment, calculates and generates a second forget weight matrix, and then selects the corresponding information in the matrix whose value is greater than or equal to a preset weight threshold as the second set of historical time series information to be retained. This information is a more refined connection of past data.

[0074] Step 305: Using the second input gate, the second historical time series information to be retained and the output result of the second output gate at the previous moment are used as the second data to be updated. The second input weight at the current moment is calculated based on the second data to be updated, and the data to be updated is updated according to the second input weight to obtain the second updated data.

[0075] In step 305, the second input gate is the part of the second hidden layer used for updating information again. The second data to be updated is the information that needs to be updated a second time, including the historical time series information to be retained for the second time and the output result of the second output gate at the previous time step. The second input weight is a value used to measure the update priority of each part of the information in the second data to be updated. The second updated data is the information updated according to the input weight after passing through the second input gate.

[0076] In this embodiment, the second input gate integrates the second historical time series information to be retained and the output result of the second output gate at the previous moment into the second data to be updated. Based on these data, the second input weight at the current moment is calculated, and then the second data to be updated is adjusted and updated according to the weight to obtain the second updated data.

[0077] Step 306: Calculate the second output weight at the current time based on the second updated data through the second output gate, and generate the data processed by the second hidden layer based on the second output weight.

[0078] In step 306, the second output gate is the part of the second hidden layer used to generate the final output information. The second output weight is a value used to measure the output priority of each part of the updated data. The data processed by the second hidden layer is the time-series dependency information that has been refined twice and is the final output of the second hidden layer.

[0079] In this embodiment, the second output gate receives the second updated data, calculates the second output weight at the current time, and then extracts the most important information from the second updated data according to the weight, generating the data processed by the second hidden layer. This data contains the most core time series dependencies. The specific process is as follows: First, the second updated data (cell states after being filtered by the second forget gate and updated by the second input gate) is processed by the tanh activation function, mapped to the range [-1,1], to obtain the activated cell state vector; then, this vector is multiplied element-wise with the second output weight (sigmoid activation, range [0,1]), retaining key information, to obtain the data processed by the second hidden layer. Example: Based on the data processed by the first hidden layer [0.165, 0.248, 0.365, 0.595, 0.712, 0.652, 0.828, 0.902], the data after the second update, after tanh activation, is [0.16, 0.24, 0.36, 0.58, 0.70, 0.64, 0.82, 0.89]. The second output weight (sigmoid activation) is [0.2, 0.3, 0.4, 0.6, 0.8, 0.7, 0.9, 0.95]. After element-wise multiplication, the data processed by the second hidden layer is obtained as [0.032, 0.072, 0.144, 0.348, 0.56, 0.448, 0.738, 0.845]. This further filters out the recent trend information that is more critical for predicting Δθ in the next frame.

[0080] Here is a specific example:

[0081] In the flight simulator training, continuing from the previous scenario, when frame ID is 3, the aircraft is in a rapid turn maneuver mode, and the first and second hidden layers of the lightweight LSTM begin processing data. First, the first forget gate receives information processed by the input layer, including changes in eyepoint data between adjacent frames over the past eight frames (such as Δx3=x3-x2, Δθ3=θ3-θ2, etc., obtained by subtracting the previous frame's data from the next frame's data) and corresponding attitude information such as turn speed and tilt angle. Simultaneously, it receives the output result from the first output gate at the previous moment (when processing frames ID2 to ID3). The first forget gate generates a first forget weight matrix, where each value corresponds to the importance of an information item. The correlation between the angle change Δθ3 from frame ID2 to ID3 and the turn speed has a higher weight, exceeding a preset weight threshold (set based on the model's training requirements for identifying key information in the maneuver mode). This information is selected as the first set of historical time-series information to be retained. Next, the first input gate integrates the information to be retained initially with the output of the first output gate from the previous moment into the first data to be updated. Based on this data, the first input weight for the current moment is calculated, with higher weights assigned to the correlation between angle change and turning speed. The updated data, obtained according to this weight, highlights the correlation between the two. Then, the first output gate calculates the first output weight based on the first updated data, extracting the most crucial trend information of angle change with turning speed to generate the data processed by the first hidden layer. Afterward, the second forget gate receives the data processed by the first hidden layer and the output of the second output gate from the previous moment, calculates and generates the second forget weight matrix, where the weight corresponding to the information of angle change rate increasing with turning speed exceeds a preset threshold and is selected as the second historical time series information to be retained. The second input gate integrates this information with the output of the second output gate from the previous moment into the second data to be updated, calculates the second input weight, and updates the data to obtain the second updated data, further strengthening the dynamic relationship between the two. Finally, the second output gate calculates the second output weight based on the second updated data, extracts the core time-varying pattern between angle change and turning speed, and generates the data processed by the second hidden layer. This provides a precise basis for the eye point data changes Δx4, Δθ4, etc. in the subsequent output layer prediction frame ID4.

[0082] In this embodiment, by using the forget gate, input gate, and output gate of two hidden layers to filter, update, and refine information step by step, irrelevant information can be stripped away layer by layer, while retaining and strengthening the most critical dependencies in the time series. This makes the lightweight LSTM more accurate in capturing the changing patterns of eye point data in maneuvering mode, providing a more reliable basis for subsequent prediction and compensation, and improving the accuracy of the compensation data.

[0083] To accurately determine the aircraft's current attitude mode and provide a reliable basis for subsequent prediction and compensation, in some embodiments, step 102 involves determining whether the aircraft's current attitude mode is stationary or in motion, based on the latest eyepoint data, the latest frame ID, and combined with the instructor's console settings, airspeed data, and ground speed data in the flight simulator system. The motion mode includes a stable mode and a maneuvering mode, including:

[0084] Step 401: Extract the frozen state of the instructor platform and the frozen setting state of the instructor platform from the instructor platform setting conditions. The frozen state includes the flight frozen state and the overall frozen state. The frozen setting state includes the position frozen state, the altitude frozen state and the heading frozen state.

[0085] In step 401, the freeze state is a state set by the instructor's console to keep the aircraft's attitude unchanged, including flight freeze state (the aircraft as a whole stops moving) and overall freeze state (all aircraft state parameters are fixed). Parameter freeze setting state is a setting to keep specific aircraft parameters unchanged, including position freeze state (aircraft latitude and longitude are fixed), altitude freeze state (aircraft altitude is fixed), and heading freeze state (aircraft flight direction is fixed).

[0086] In this embodiment, the frozen state and parameter frozen setting state are extracted from the instructor's console settings to clarify the current control method of the aircraft by the instructor's console, providing an initial basis for subsequent attitude determination.

[0087] Step 402: When the instructor's console is in the flight freeze state or the total freeze state, the current attitude mode of the aircraft is determined to be stationary.

[0088] In step 402, the flight freeze state refers to the state set by the instructor's console that brings the aircraft to a complete stop. The overall freeze state refers to the state set by the instructor's console that keeps all aircraft parameters fixed.

[0089] In this embodiment of the application, if the instructor's console is detected to be in a flight freeze state or a total freeze state, it means that the aircraft is forcibly fixed and motionless, and the aircraft is directly determined to be in a stationary state.

[0090] Step 403: When the instructor's platform is not in the flight freeze state and not in the total freeze state, determine whether the values ​​of the airspeed data and the ground speed data are both less than the corresponding preset stationary threshold. If so, determine that the current attitude mode of the aircraft is stationary.

[0091] In step 403, the state is not indicated as deactivated. The preset stationary threshold is a standard value for distinguishing whether the aircraft is stationary, and is set according to the definition of "stationary" in simulator training.

[0092] In this embodiment of the application, when the instructor's platform is not in a state of flight freeze or total freeze, the airspeed data and ground speed data are compared with their respective preset static thresholds; if both are less than the preset static thresholds, it indicates that the aircraft is not actually moving and is determined to be in a static state.

[0093] Step 404: If the airspeed data or the ground speed data is not less than the corresponding preset stationary threshold, and the instructor's platform is in the position frozen state, the altitude frozen state, or the heading frozen state, then the current attitude mode of the aircraft is determined to be stationary.

[0094] In this embodiment of the application, if the airspeed data or ground speed data is not less than the corresponding preset stationary threshold, but the instructor's platform is detected to be in a position frozen, altitude frozen, or heading frozen state, it indicates that the key parameters of the aircraft are fixed and the overall movement is restricted, and it is determined to be in a stationary state.

[0095] Step 405: If the instructor's platform is not in the position frozen state, not in the altitude frozen state, and not in the heading frozen state, then based on the latest eye point data and the latest frame ID, determine whether the aircraft's current attitude mode is stable mode or maneuvering mode.

[0096] In this embodiment, if the instructor's console is not in any parameter frozen state, it means that the aircraft can move freely. At this time, the latest eye point data and the latest frame ID are combined to retrieve historical eye point data (such as the past 8 frames), calculate the change in eye point data of adjacent frames, and then calculate the variance of the change (a small variance indicates a smooth change, and a large variance indicates a drastic change). Based on the comparison of the variance with the preset stable mode threshold and maneuver mode threshold, the aircraft is determined to be in stable mode or maneuver mode.

[0097] Here is a specific example:

[0098] In flight simulator training, continuing from the previous scenario, when frame ID is updated to 5, the eyepoint data transmission module begins to determine the aircraft's current attitude mode. The system extracts the freeze state and parameter freeze setting state from the instructor's console settings and finds that the instructor's console is currently in flight freeze state. According to the determination rules, the system directly determines the aircraft's current attitude mode as stationary. Subsequently, the instructor releases the flight freeze state and overall freeze state, and the system proceeds to the next step of judgment, acquiring the current airspeed and ground speed data. These are compared with a preset stationary threshold (this threshold is set according to the simulator training requirements to distinguish between stationary and moving states, for example, 0.00001 m / s). The system finds that both airspeed and ground speed values ​​are less than this threshold, therefore the aircraft is still determined to be stationary. After a period of time, the aircraft begins to move slowly, and the airspeed value exceeds the corresponding preset stationary threshold. At this point, the system checks the instructor's console parameter freeze setting state and finds that the instructor has set a position freeze state, thus determining the aircraft's current attitude mode as stationary. After a while, the instructor lifted the position freeze, altitude freeze, and heading freeze. The system then retrieved eyepoint data from the past 8 frames (frames ID5 to ID12) based on the latest eyepoint data (pilot's viewpoint position data corresponding to frame ID12) and the latest frame ID12. It calculated the changes in longitude, latitude, altitude, and pitch angle between each frame (e.g., the change in longitude is the difference between the longitude of the next frame and the longitude of the previous frame), and then calculated the variance of these changes (the variance is calculated by averaging the squares of the differences between each change and the average of the changes). The calculated variance of the changes in each dimension was 0.015, while the preset stable mode threshold was 0.02 (this threshold is set according to the attitude change characteristics during stable flight). Since the variance of each dimension was less than the preset stable mode threshold, the aircraft's current attitude mode was determined to be stable mode.

[0099] In this embodiment, by extracting the instructor's platform status in layers, combining airspeed and ground speed judgments, and associating historical eyepoint data change characteristics, a multi-dimensional and accurate determination of the aircraft's attitude mode is achieved, ensuring accurate differentiation between stationary, stable, and maneuvering states. This provides a reliable foundation for subsequent targeted prediction and compensation, and improves the overall effectiveness of the method.

[0100] To more accurately distinguish between the aircraft's stable mode and maneuvering mode, and to provide an accurate basis for subsequent compensation strategies, in some embodiments, step 405: determining whether the aircraft's current attitude mode is a stable mode or a maneuvering mode based on the latest eyepoint data and the latest frame ID includes:

[0101] Step 501: Establish a structure array for storing historical eye point data. The capacity of the structure array is a preset number. The historical eye point data includes eye point data from a preset number of past frames.

[0102] In step 501, the structure array is a structure that stores multiple sets of data in sequence, with each set of data corresponding to a frame of eye point data, which can be easily read and processed in sequence; the preset quantity is the number of frames of historical data that are stored in advance.

[0103] In this embodiment, a structure array is first created with a preset capacity to store eye point data from a preset number of frames in the past, thus preparing data for subsequent calculations of data changes and pattern determination.

[0104] Step 502: Determine the storage index of the latest eye point data in the structure array based on the latest frame ID, and store the latest eye point data in the location corresponding to the storage index.

[0105] In step 502, the storage index is a specific storage location number in the structure array, used to determine where the latest data should be stored in the array.

[0106] In this embodiment, based on the latest frame ID and the preset number of the structure array, the storage index of the latest eye point data in the array is obtained by calculation (e.g., dividing the latest frame ID by the preset number and taking the remainder). Then, the latest eye point data is stored in the position corresponding to this index, ensuring that the data is stored in chronological order and can cover the earliest data.

[0107] Step 503: Calculate the change in the historical eye point data stored in the structure array. The change includes the change in the coordinates of the eye point position in three-dimensional space and the change in the pose angle.

[0108] In step 503, the change refers to the difference between eye point data in two adjacent frames; the change in the coordinates of the eye point position in three-dimensional space is the difference in longitude, latitude, and altitude between adjacent frames; the change in attitude angle is the difference in pitch angle, roll angle, and heading angle between adjacent frames.

[0109] In this embodiment of the application, the stored historical eye point data is retrieved from the structure array, two adjacent frames of data are found in chronological order, and the differences between them in three-dimensional coordinates (longitude, latitude, altitude) and attitude angles (pitch angle, roll angle, heading angle) are calculated to obtain the changes in each dimension.

[0110] Step 504: For the amount of change in each dimension, calculate the variance of the amount of change in that dimension in the structure array.

[0111] In step 504, dimension refers to different categories of coordinates and angles, such as longitude, latitude, and pitch angle. Variance is an indicator that measures the degree of fluctuation in a set of data. The more concentrated the data and the smaller the fluctuation, the smaller the variance, and vice versa.

[0112] In the embodiments of this application, for each dimension (such as longitude change, latitude change, etc.), all the changes under that dimension are taken as a set of data, and the variance of this set of data is calculated to reflect the stability of the data change in that dimension.

[0113] Step 505: When the variance of the change in each dimension is less than the preset steady-state mode threshold, the motion state is determined to be steady-state mode. When the variance of the change in at least one dimension is greater than or equal to the preset maneuver mode threshold, the motion state is determined to be maneuver mode.

[0114] In step 505, the preset stable mode threshold is the standard for judging whether the data change is gradual; a variance less than this value indicates gradual change. The preset dynamic mode threshold is the standard for judging whether the data change is drastic; a variance greater than or equal to this value indicates drastic change.

[0115] In this embodiment, the variance of each dimension is compared with a preset stable mode threshold and a preset maneuvering mode threshold respectively: if the variance of all dimensions is less than the preset stable mode threshold, it indicates that the overall change is gradual and is determined to be a stable mode; if the variance of at least one dimension is greater than or equal to the preset maneuvering mode threshold, it indicates that there is a drastic change and is determined to be a maneuvering mode.

[0116] Here is a specific example:

[0117] In flight simulator training, continuing from the previous scenario, when frame ID is updated to 15, the system begins to determine the attitude mode based on the latest eye-point data and the latest frame ID 15. First, a structure array with a capacity of 8 is created to store the eye-point data of the past 8 frames. Then, the storage index is calculated based on the latest frame ID 15 and the array capacity of 8. Dividing 15 by 8 and taking the remainder gives 7. The latest eye-point data corresponding to frame ID 15 is stored at array index 7. At this point, the array stores the eye-point data from frame ID 8 to frame ID 15. Next, the changes in these historical eye-point data are calculated. Adjacent frame data is taken in chronological order. For example, the longitude change from frame ID 14 to frame ID 15 is 0.1 (the longitude of frame ID 14 minus the longitude of frame ID 15), the latitude change is 0.08, and the pitch angle change is 2 degrees, and so on, to obtain the changes in each dimension for all adjacent frames. Next, the variance of the change in each dimension was calculated. The variance was calculated by averaging the squares of the differences between each change and the average of the changes in that dimension. The calculated variances were 0.0005 for longitude, 0.0003 for latitude, and 1.0 for pitch angle. The variances of other dimensions were also less than 0.02. Since the preset threshold for stable mode is 0.02 and the preset threshold for maneuvering mode is 0.5, and the variance of pitch angle change is 1.0, which is greater than the preset threshold for maneuvering mode, the aircraft's current attitude mode was determined to be maneuvering mode.

[0118] In this embodiment, by storing historical data in a structured manner and calculating the amount of change and variance, the smoothness of aircraft attitude changes can be objectively reflected. Combined with threshold comparison, the smooth mode and the maneuver mode can be accurately distinguished, providing a reliable basis for selecting compensation strategies according to different modes, and improving the accuracy and reliability of attitude determination.

[0119] To further improve the targeting and efficiency of calculating changes in historical eye-point data and ensure that only key dimensions that are not frozen are considered, in some embodiments, step 503: calculating the changes in historical eye-point data stored in the structure array includes:

[0120] Step 601: Based on the parameter freeze setting state, determine the dimension of the change in the historical eye point data to be calculated: if the position is frozen, skip the calculation of the change in longitude and latitude; if the altitude is frozen, skip the calculation of the change in altitude; if the heading is frozen, skip the calculation of the change in heading angle.

[0121] In this embodiment, the parameter freeze setting status of the instructor's station is first checked. If it is in the position freeze state, it means that the latitude and longitude will not change, so the calculation of the change in latitude and longitude is skipped. If it is in the altitude freeze state, it means that the altitude will not change, so the calculation of the change in altitude is skipped. If it is in the heading freeze state, it means that the heading angle will not change, so the calculation of the change in heading angle is skipped. For the dimensions that are not frozen, they are determined to be the dimensions for which the change needs to be calculated.

[0122] Step 602: For the unfrozen dimensions, calculate the difference between the historical eye point data of two consecutive adjacent frames in chronological order to obtain multiple continuously changing values.

[0123] In step 602, the unfrozen dimension refers to the eyepoint data category that has not been frozen by the instructor's console. The difference is the result of subtracting the previous frame from the subsequent frame data. The continuous change value is the difference between all adjacent frame pairs calculated for each unfrozen dimension.

[0124] In this embodiment of the application, for the determined unfrozen dimension, the historical eye point data arranged in chronological order is retrieved from the structure array, and two consecutive adjacent frames of data are found in turn. The difference between the previous frame of data and the subsequent frame of data is subtracted to obtain the difference between each pair of adjacent frames. These differences are the multiple consecutive change values ​​of the dimension.

[0125] Step 603: Arrange multiple continuous change values ​​of each unfrozen dimension into a change value sequence in chronological order, wherein the change value sequence is the change amount of the corresponding unfrozen dimension.

[0126] In step 603, the change value sequence is a sequence formed by arranging multiple consecutive change values ​​of the same unfrozen dimension in chronological order. The change amount corresponding to the unfrozen dimension refers to this sequence, which is used to reflect the change of that dimension over time.

[0127] In this embodiment of the application, for each unfrozen dimension, the calculated multiple continuous change values ​​are arranged in the temporal order of their corresponding adjacent frame pairs to form a sequence, which is the change amount of the unfrozen dimension.

[0128] Step 604: Combine the changes in all unfrozen dimensions to form the changes in historical eye point data.

[0129] In this embodiment of the application, the obtained sequence of change values ​​for each unfrozen dimension is integrated together to form a set containing all changes in unfrozen dimensions. This set is the change amount of historical eye point data stored in the structure array.

[0130] Here is a specific example:

[0131] In flight simulator training, continuing from the previous scenario, when frame ID is 15, the system calculates the changes in historical eyepoint data in the structure array (which stores eyepoint data from frame ID8 to frame ID15). First, the instructor's console parameter freeze setting is checked and found to be in position freeze mode. Based on the rules, the calculation of longitude and latitude changes is skipped, and the dimensions requiring calculation of changes are determined to be altitude, pitch angle, roll angle, and yaw angle. For these unfrozen dimensions, the difference between consecutive adjacent frames is calculated in chronological order. For example, when calculating altitude, the difference between frame ID9 and frame ID8 is used to obtain one difference, and the difference between frame ID10 and frame ID9 is used to obtain the next difference, and so on. When calculating pitch angle, the difference between frame ID14 and frame ID15 is 2 degrees (obtained by subtracting the pitch angle of frame ID14 from the pitch angle of frame ID15). The pitch angle differences between other adjacent frames are obtained using the same method. Multiple consecutive change values ​​for each unfrozen dimension are arranged in chronological order. For example, the change value sequence for altitude is [5,6,5,7,6,8,7], and the change value sequence for pitch angle is [1,1.5,2,1.8,2,1.9,2], forming the change amount for each dimension. Finally, the change value sequences for altitude, pitch angle, roll angle, and yaw angle are combined to form the change amount of historical eyepoint data in this structure array.

[0132] In this embodiment, by filtering the dimensions to be calculated based on the parameter freezing state, invalid calculations of fixed parameters are avoided, thus improving the efficiency of change calculation. At the same time, the change value sequence is organized by dimension to ensure that the change can accurately reflect the actual change dimension, providing a more targeted data foundation for subsequent attitude pattern determination.

[0133] To quickly and accurately predict and compensate for eye-point data in a stable mode, ensuring the continuity of the visual system presentation, in some embodiments, step 103: when the posture mode is a stable mode, using linear interpolation to predict and compensate for the latest eye-point data includes:

[0134] Step 701: Extract the latest frame of eye point data and the previous frame of eye point data from the shared eye point data area, wherein the latest frame of eye point data is the latest eye point data, the latest frame of eye point data includes the corresponding first coordinate data and first angle data, and the previous frame of eye point data includes the corresponding second coordinate data and second angle data.

[0135] In step 701, the latest frame of eyepoint data, also known as the latest eyepoint data, is the latest pilot's viewpoint position data at the current moment, including the first coordinate data (longitude, latitude, and altitude in the WGS-84 coordinate system) and the first angle data (pitch angle, roll angle, and heading angle). The previous frame of eyepoint data is the data from the moment before the latest eyepoint data, including the second coordinate data (corresponding longitude, latitude, and altitude) and the second angle data (corresponding pitch angle, roll angle, and heading angle).

[0136] In this embodiment of the application, the eye point data corresponding to the latest frame ID is found from the shared eye point data area as the latest frame eye point data, and the eye point data corresponding to the previous frame of the frame ID is found as the previous frame eye point data. Their coordinate data and angle data are extracted respectively to prepare for subsequent calculations.

[0137] Step 702: Based on the first coordinate data, the first angle data, the second coordinate data, and the second angle data, calculate the position coordinate difference and attitude angle difference between the latest frame eye point data and the previous frame eye point data.

[0138] In step 702, the position coordinate difference is the difference in coordinates between the latest frame of eye point data and the previous frame of eye point data, including longitude difference, latitude difference, and altitude difference. The attitude angle difference is the difference in angles between the two, including pitch angle difference, roll angle difference, and heading angle difference.

[0139] In this embodiment of the application, the longitude difference is obtained by subtracting the longitude from the longitude in the second coordinate data from the longitude in the first coordinate data, and the latitude difference and altitude difference are calculated similarly; the pitch angle difference is obtained by subtracting the pitch angle from the pitch angle in the second angle data from the pitch angle in the first angle data, and the roll angle difference and heading angle difference are calculated similarly, thereby obtaining all position coordinate differences and attitude angle differences.

[0140] Step 703: Superimpose the position coordinate difference onto the first coordinate data to obtain the predicted position coordinates.

[0141] In step 703, the predicted position coordinates are the next frame eye point position coordinates predicted based on the coordinates and position coordinate differences of the latest eye point data, including the predicted longitude, latitude, and altitude.

[0142] In this embodiment, the obtained longitude difference is superimposed on the longitude of the first coordinate data to obtain the predicted longitude; similarly, the latitude difference is superimposed on the latitude of the first coordinate data to obtain the predicted latitude; and the altitude difference is superimposed on the altitude of the first coordinate data to obtain the predicted altitude. These three predicted values ​​are combined to form the predicted position coordinates.

[0143] Step 704: Superimpose the attitude angle difference onto the first angle data to obtain the predicted attitude angle.

[0144] In step 704, the predicted attitude angle is the next frame's eye point attitude angle predicted based on the difference between the angle and attitude angle in the latest eye point data, including the predicted pitch angle, roll angle, and yaw angle.

[0145] In this embodiment of the application, the obtained pitch angle difference is superimposed on the pitch angle of the first angle data to obtain the predicted pitch angle; similarly, the roll angle difference is superimposed on the roll angle of the first angle data to obtain the predicted roll angle; the heading angle difference is superimposed on the heading angle of the first angle data to obtain the predicted heading angle. These three predicted values ​​are combined to form the predicted attitude angle.

[0146] Step 705: Combine the predicted position coordinates and the predicted attitude angle as the compensated data.

[0147] In this embodiment of the application, the obtained predicted position coordinates and the obtained predicted attitude angle are integrated together to form complete compensated data, which is used for the subsequent presentation of the visual system.

[0148] Here is a specific example:

[0149] In flight simulator training, continuing from the previous scenario, when frame ID is updated to 3 and determined to be in stable mode, the eye point data sending module extracts the latest frame eye point data from the shared eye point data area, namely the latest eye point data of frame ID3. Its first coordinate data is (x3, y3, z3) (corresponding to longitude, latitude, and altitude in the WGS-84 coordinate system), and its first angle data is (θ3, ψ3, φ3) (corresponding to pitch angle, roll angle, and heading angle). At the same time, it extracts the eye point data of the previous frame, namely frame ID2, whose second coordinate data is (x2, y2, z2) and second angle data is (θ2, ψ2, φ2). Based on these data, calculate the position coordinate differences, where Δx = x3 - x2 (longitude of frame ID3 minus longitude of frame ID2), Δy = y3 - y2 (latitude of frame ID3 minus latitude of frame ID2), and Δz = z3 - z2 (altitude of frame ID3 minus altitude of frame ID2). Calculate the attitude angle differences, where Δθ = θ3 - θ2 (pitch angle of frame ID3 minus pitch angle of frame ID2), Δψ = ψ3 - ψ2 (roll angle of frame ID3 minus roll angle of frame ID2), and Δφ = φ3 - φ2 (heading angle of frame ID3 minus heading angle of frame ID2). Superimpose the position coordinate differences onto the first coordinate data to obtain the predicted position coordinates as (x3 + Δx, y3 + Δy, z3 + Δz); superimpose the attitude angle differences onto the first angle data to obtain the predicted attitude angles as (θ3 + Δθ, ψ3 + Δψ, φ3 + Δφ). The predicted position coordinates and predicted attitude angles are combined to obtain compensated data, which is then sent to the visual system.

[0150] In this embodiment, linear interpolation is used to perform prediction compensation based on the difference between two adjacent frames of data. The calculation process is simple and efficient, and the prediction results in the stable mode can be obtained quickly. This ensures the real-time and continuous nature of the eye point data, so that the perspective changes presented by the visual system are consistent with the actual situation of stable flight, and improves the smoothness of simulation training.

[0151] Specific example of this application:

[0152] 1. Establishment of shared memory between the simulation logic processing module and the eye point data transmission module: To enable the eye point data transmission module to obtain the real-time update status of the simulation logic data, and to support further processing and transmission of the current frame's eye point data, a shared memory mechanism is established between the simulation logic processing module and the eye point data transmission module. Figure 2 The shared memory structure is shown. Update state variables: such as... Figure 2As shown, the updated state variable (frame ID) is used by the simulation logic processing module to update the current pose calculation result. Specifically, after completing the pose calculation for one update cycle, the simulation logic processing module modifies this state update variable, for example, by incrementing its value by 1 or setting it to a specific flag. The eye point data sending module monitors the changes in this updated state variable in real time, enabling it to promptly determine whether the simulation logic processing module has completed a new pose calculation, and thus decide whether to acquire and process the eye point data for the current frame. This approach eliminates the need for the eye point data sending module to continuously occupy system resources for full data querying; it only needs to focus on changes in the state variable, effectively improving the efficiency and real-time performance of data acquisition. Shared eye point data area: such as... Figure 2 As shown, when the eye point data of the simulation logic processing module is updated, the new eye point data is written to this shared data area. This eye point data area uses a first-in, first-out (FIFO) storage mechanism; when the data storage reaches the upper limit of the data area's capacity, new data will overwrite the oldest written data. The eye point data sending module retrieves the latest data from this eye point data area by continuously reading the data position corresponding to the latest frame ID in the eye point data area, ensuring that the latest eye point data is obtained. This simulated ring structure effectively solves the data buffer overflow problem while ensuring that the eye point data sending module obtains the latest valid data efficiently, avoiding data loss and duplicate readings.

[0153] 2. Differentiated Multi-Dimensional Determination of Aircraft Current Attitude Mode: When the data transmission module obtains the current updated state quantity and compares it to determine the current eyepoint data, to ensure the real-time performance and accuracy of data processing, the aircraft's current attitude is differentiated from multiple dimensions, such as instructor console settings, air / ground speed, and attitude data micro-components. Figure 3 The determination is as follows: 1) Static State Determination: Since eyepoint position compensation is not required when the aircraft is stationary during training, the current eyepoint static state is first determined. The steps include: a. Obtaining the instructor's console freeze state setting. When the instructor's console is in flight freeze or overall freeze, the eyepoint is in a static state and no compensation is required; b. When the instructor's console is unfrozen, further determining the airspeed and ground speed. When the airspeed and ground speed values ​​are less than a certain threshold, the aircraft is determined to be stationary. Figure 3As shown, the instructor's console flight freeze or total freeze state signal is a Boolean signal. When the signal is true, it indicates that the instructor's console is in a frozen state, and the aircraft attitude should remain unchanged. Based on this, the airspeed and ground speed values ​​of the aircraft are obtained. When the airspeed and ground speed values ​​are less than the preset stationary threshold (e.g., 0.00001 m / s), the aircraft is determined to be in a de-frozen stationary state. In the stationary state, the eye point data does not change, and there is no need for complex motion mode determination and prediction compensation. The eye point data of the current frame ID can be directly used for processing and transmission. 2) Motion mode determination: When it is determined that the current aircraft is in a non-stationary state, the motion mode of the current aircraft is further determined. First, the setting conditions of the instructor's console are determined: a) Obtain the current setting conditions of the instructor's console, whether the position, altitude, heading and speed freeze are activated: Position freeze means that when the position freeze is activated, the latitude and longitude of the current aircraft will not change, and the change is mainly in other attitude parameters. Altitude freeze means that when the altitude freeze is activated, the altitude of the current aircraft will not change, and the change is mainly in other attitude parameters. Heading freeze means that when heading freeze is activated, the current aircraft heading will not change; the changes mainly occur in other attitude parameters. b) Based on different instructor station settings, attitude parameters in six different dimensions are processed. Differential component variance analysis is used to analyze eight historical eyepoint data frames to determine the current motion mode. For example... Figure 4As shown, firstly, a structure array with a capacity of 8 is created. The index of the current frame data within the structure array is obtained by taking the remainder of the currently transmitted frame number divided by 8, and then saved to the corresponding location used to store historical eye-point data. The differential components of the eye-point data can be the changes in the coordinates of the eye-point position in three-dimensional space (longitude, latitude, altitude Δx, Δy, Δz) and the changes in attitude angles (pitch angle, roll angle, yaw angle changes Δθ, Δψ, Δφ). For each differential component of a dimension, its variance in the historical data within the structure is calculated. Variance reflects the degree of data fluctuation; a smaller variance indicates smooth data changes, corresponding to a stable motion mode; a larger variance indicates greater data fluctuations, corresponding to a maneuvering motion mode. The specific judgment rule is: when the variance of each differential component of a dimension is less than a preset stable mode threshold, it is judged as a stable mode; when the variance of any differential component of a dimension is greater than or equal to a preset maneuvering mode threshold, that dimension is judged as a maneuvering mode. Meanwhile, since the change in eye-point viewpoint caused by coordinate updates is less than the change in eye-point viewpoint caused by attitude angle changes, a differentiated threshold determination is further applied to the variances of the differential components of six different attitude parameters. The variance thresholds for longitude, latitude, and altitude are λ1; for pitch angle, λp; for roll angle, λr; and for pitch angle, λh. The variance thresholds for longitude, latitude, and altitude are greater than the variance thresholds for pitch angle, roll angle, and yaw angle. This method of differential variance analysis of attitude data across different dimensions allows for accurate determination of the current motion pattern based on real-time changes in historical data, providing a basis for subsequent prediction and compensation. In this application, historical differential components refer to the changes in historical eye-point data.

[0154] 3. Linear interpolation and lightweight LSTM collaborative compensation: Based on the current eye point data update status and pose mode, linear interpolation and lightweight LSTM are combined to predict and compensate for the eye point data to be sent. Figure 5 This is a diagram illustrating the entire compensation prediction process. Determining whether compensation is needed: (e.g.) Figure 5 As shown, the need for eye point position prediction compensation is determined based on the current state of the eye point data update. Specifically, when the frame ID changes (i.e., the simulation logic processing module completes the attitude calculation for one update cycle), the current eye point data is acquired. If no new frame ID change signal is received within a specified time (e.g., one frame cycle), it indicates that the eye point data may not have been updated in a timely manner. In this case, prediction compensation is required to ensure the continuity and real-time performance of the transmitted eye point data. Attitude mode judgment: If compensation is required, then as follows... Figure 5 As shown, the system determines whether the current aircraft attitude is in a stable mode or a maneuvering mode. The specific determination method is as described in the maneuvering mode determination. Stable mode compensation: When the aircraft attitude is in a stable mode, as shown... Figure 5As shown, linear interpolation is used for compensation prediction. The linear interpolation method is based on the position and pose information of the eye point data from two historical frames, assuming that the changes in the eye point data follow a linear law during steady motion. Taking the eye point position coordinates as an example, let the eye point position in the nth frame be (x... n ,y n ,z n The eye position in the (n-1)th frame is (x n-1 ,y n-1 ,z n-1 If ), then the predicted position (x) of the (n+1)th frame. n+1 ,y n+1 ,z n+1 )for: For attitude angle prediction, the same linear interpolation method is used. This method is computationally simple, can quickly obtain prediction results, and meets the real-time requirements in steady-state mode. Maneuver mode compensation: When the aircraft attitude is in maneuver mode, such as... Figure 6 As shown, a lightweight LSTM is used for prediction compensation. The lightweight LSTM simplifies the network structure of the traditional LSTM network, reducing the number of neurons and layers to lower computational complexity while retaining the advantages of LSTM in processing time-series data. Specifically, the lightweight LSTM network contains one input layer, two hidden layers, and one output layer. The input layer receives the incremental components of historical eye-point data and related pose information. The hidden layers use forget gates, input gates, and output gates to capture long-term dependencies in the time series. The output layer outputs the predicted incremental components of the eye-point data. By training the lightweight LSTM model, it can learn the complex changing patterns of eye-point data under maneuvering modes, thereby achieving more accurate prediction compensation. The LSTM prediction hierarchy is as follows: Figure 6 As shown. In practical applications, a lightweight LSTM model is trained using eye point data over a historical period. After training, the model can quickly generate prediction results based on current and historical eye point data, meeting the accuracy requirements for prediction in maneuvering mode.

[0155] The specific implementation is as follows: 1. Shared Memory Establishment Step: When the simulation system starts, the system kernel allocates a fixed-size memory space as a shared memory region. The simulation logic processing module and the eye point data sending module connect to this shared memory region through the shared memory interface provided by the operating system. The simulation logic processing module creates a data frame ID and an eye point data area in the shared memory. The data frame ID is initialized to 0, and the frame ID is also the update state quantity. The eye point data area is set with an appropriate capacity according to actual needs, for example, it can store 100 frames of eye point data. 2. Attitude Mode Determination Step: The eye point data sending module monitors the data frame ID in the shared memory in real time and compares it with the local data frame ID. When a change in the data frame ID is detected, the latest eye point data is obtained from the circular eye point data area. The instructor's platform freeze state signal and the aircraft airspeed value are obtained. If the freeze state is true or the airspeed is less than the stationary threshold, the aircraft is determined to be in a stationary state, and the attitude determination process ends. If the aircraft is not stationary: 1) Enter the instructor's console condition setting judgment process: When the instructor's console position is frozen, the latitude and longitude do not change, and no compensation is needed; when the instructor's console altitude is frozen, the altitude does not change, and no compensation is needed; when the instructor's console heading is frozen, the heading does not change, and no compensation is needed; when the instructor's console speed is frozen, the speed does not change. Under these conditions, when the pitch, roll, and heading angles are in a stable mode, changes in latitude, longitude, and altitude can be judged as a stable mode; 2) Based on the instructor's console and condition settings, collect the differential components of the historical 8 frames of eyepoint data, calculate the variance of the differential components in each dimension, and determine whether the current motion mode is a stable mode or a maneuvering mode based on the comparison result of the variance and the preset threshold. 3. Prediction compensation steps: When prediction compensation is required, first determine the current attitude mode of the aircraft. If it is a stable mode, use the linear interpolation method to calculate the predicted eyepoint position and attitude based on the previous two frames of eyepoint data. In maneuver mode, historical eye-point data is input into a pre-trained lightweight LSTM model to obtain the differential components of the predicted eye-point data, thereby obtaining the predicted eye-point position and pose. The predicted eye-point data is processed and transmitted to meet real-time requirements. The differential components of the historical eye-point data represent the changes in the historical eye-point data of this application. The differential components of the predicted eye-point data represent the compensated data of this application.

[0156] This application has the following key points and effects:

[0157] Key technical points include: a cross-module low-latency data interaction mechanism, a multi-dimensional attitude pattern determination method, and a dual-strategy collaborative algorithm. The cross-module low-latency data interaction mechanism comprises shared memory + state quantity triggering and eye-point data area design. Shared memory + state quantity triggering specifically achieves direct data interaction between modules through memory sharing, using frame IDs as state quantities to replace polling mechanisms, reducing data update perception latency to the memory access level and significantly reducing CPU load. The eye-point data area design specifically employs a simulated queue structure to achieve lock-free concurrent read and write, solving frame loss issues in high-frequency update scenarios through independent decoupling between read and write threads, ensuring data real-time performance and integrity. The multi-dimensional attitude pattern determination method includes dual static state verification, multi-dimensional composite determination, and dynamic feature analysis of eye-point temporal historical data. Dual static state verification specifically integrates the instructor platform freeze signal and airspeed differential threshold determination logic, eliminating misjudgments caused by a single criterion and achieving 100% accurate identification of static states. The multi-dimensional composite judgment is based on the instructor platform conditions and combines the characteristics of longitude, latitude, altitude and pitch, roll and heading angles to further analyze the compensation process of different dimension parameters. The dynamic feature analysis of eye point time series historical data is based on the variance calculation of historical eye point differential components to dynamically distinguish between stationary and maneuvering motion modes, adapt to the motion characteristics of different scenarios, and improve the robustness of the judgment. The dual-strategy collaborative algorithm includes stationary mode, maneuvering mode and mode-driven dynamic switching. Among them, the stationary mode adopts linear interpolation (O(1) complexity) to meet the real-time requirements of the system. The maneuvering mode uses a lightweight LSTM network to capture nonlinear motion features and achieve high-precision prediction in each cycle (the parameter scale is reduced by 60% compared with the traditional model). The mode-driven dynamic switching automatically selects the compensation strategy according to the real-time motion mode to balance computational efficiency and prediction accuracy, and avoids wasted computing power or insufficient accuracy.

[0158] The technical advantages of this application are as follows: by triggering shared memory state variables and designing eye-point data regions, lock-free synchronization between modules is achieved, data update latency is reduced to the memory access level, there is no frame loss in high-frequency scenarios, and reliability is improved by 95%. The frozen state and airspeed threshold are combined to determine the stationary state. Based on the instructor platform condition settings, the parameters of different dimensions are analyzed. The motion mode is analyzed by variance analysis of historical eye-point time series data to eliminate noise interference and dynamically distinguish between stable and maneuvering scenarios, improving the robustness of the judgment by 30%. The stable mode uses linear interpolation (O(1) complexity) to ensure real-time performance, while the maneuvering mode uses a lightweight LSTM to capture nonlinear features, reducing the parameter size by 60% and achieving fast prediction.

[0159] Figure 7 This is a schematic diagram illustrating a specific implementation of a compensation system for eyepoint data in a flight simulator, as provided in this application. (Refer to...) Figure 7 The system may include:

[0160] Module 71 is established to create a shared memory area between the simulation logic processing module and the eye point data sending module in the flight simulator system. The shared memory area includes an update state quantity and a shared eye point data area. The update state quantity is a frame ID. After the simulation logic processing module completes the attitude calculation for a frame, it updates the frame ID to obtain the latest frame ID. The shared eye point data area adopts a first-in-first-out storage mechanism. When the storage volume reaches a preset upper limit, the new data overwrites the oldest data. The eye point data sending module obtains the latest eye point data by reading the storage location corresponding to the latest frame ID in the shared eye point data area.

[0161] The determination module 72 is used to determine whether the current attitude mode of the aircraft is stationary or in motion, based on the latest eye point data, the latest frame ID, the instructor's station settings, airspeed data, and ground speed data in the flight simulator system. The motion mode includes stable mode and maneuvering mode.

[0162] The compensation module 73 is used to predict and compensate the latest eye point data by linear interpolation when the posture mode is a stable mode, or by using a pre-trained lightweight LSTM to predict and compensate the latest eye point data when the posture mode is a maneuvering mode, so as to obtain the corresponding compensated data.

[0163] The flight simulator eyepoint data compensation system of this application embodiment is used to implement the aforementioned flight simulator eyepoint data compensation method. Therefore, the specific implementation of the flight simulator eyepoint data compensation system can be found in the embodiment section of the flight simulator eyepoint data compensation method above. The specific implementation can be referred to the description of the corresponding embodiments, and will not be repeated here.

[0164] This application also provides an electronic device, comprising: a memory for storing a computer program; and a processor for executing the computer program to implement the steps of the flight simulator eyepoint data compensation method described above.

[0165] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of any of the above-described methods for compensating eyepoint data in a flight simulator.

[0166] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, read-only memory, random access memory, portable hard drives, magnetic disks, or optical disks.

[0167] Embodiments of the present invention also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above embodiments of the flight simulator eyepoint data compensation method.

[0168] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.

[0169] The above provides a detailed description of the compensation method, system, electronic device, and storage medium for eyepoint data in a flight simulator provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and its core ideas. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of this application.

Claims

1. A method for compensating eyepoint data in a flight simulator, characterized in that, include: A shared memory region is established between the simulation logic processing module and the eye point data sending module in the flight simulator system. The shared memory region includes an update state quantity and a shared eye point data area. The update state quantity is a frame ID. After the simulation logic processing module completes the attitude calculation for a frame, it updates the frame ID to obtain the latest frame ID. The shared eye point data area adopts a first-in-first-out storage mechanism. When the storage volume reaches a preset upper limit, the new data overwrites the oldest data. The eye point data sending module obtains the latest eye point data by reading the storage location corresponding to the latest frame ID in the shared eye point data area. Based on the latest eye point data and the latest frame ID, combined with the instructor's station settings, airspeed data, and ground speed data in the flight simulator system, the current attitude mode of the aircraft is determined to be either stationary or in motion. The motion mode includes stable mode and maneuvering mode. When the posture mode is a stable mode, linear interpolation is used to predict and compensate the latest eye point data; or, when the posture mode is a maneuvering mode, a pre-trained lightweight LSTM is used to predict and compensate the latest eye point data to obtain the corresponding compensated data. When the pose mode is a stable mode, linear interpolation is used to predict and compensate for the latest eyepoint data, including: Extract the latest frame of eye point data and the previous frame of eye point data from the shared eye point data area. The latest frame of eye point data is the latest eye point data, which includes the corresponding first coordinate data and first angle data. The previous frame of eye point data includes the corresponding second coordinate data and second angle data. Based on the first coordinate data, the first angle data, the second coordinate data, and the second angle data, calculate the position coordinate difference and attitude angle difference between the latest frame eye point data and the previous frame eye point data; The position coordinate difference is superimposed on the first coordinate data to obtain the predicted position coordinates; The attitude angle difference is superimposed on the first angle data to obtain the predicted attitude angle; The predicted position coordinates and the predicted attitude angle are combined as the compensated data.

2. The compensation method for eyepoint data in a flight simulator according to claim 1, characterized in that, When the posture mode is maneuvering mode, the method of using a pre-trained lightweight LSTM to predict and compensate the latest eye point data includes: Historical eye point data and corresponding pose information are acquired. The changes in the historical eye point data and the corresponding pose information are input into the input layer of the lightweight LSTM. The time series dependencies are extracted from the data processed by the input layer through the first hidden layer of the lightweight LSTM to obtain the data processed by the first hidden layer. The time series dependencies are extracted from the data processed by the first hidden layer through the second hidden layer of the lightweight LSTM to obtain the data processed by the second hidden layer. The data processed by the second hidden layer is transmitted to the output layer of the lightweight LSTM, and the output layer predicts and outputs the change value of the eye point data based on the data processed by the second hidden layer. The latest eye point data is added to the change value of the eye point data to obtain the corresponding compensated data.

3. The compensation method for eyepoint data in a flight simulator according to claim 2, characterized in that, The first hidden layer includes a first forget gate for filtering information, a first input gate for incorporating information, and a first output gate for generating output; the second hidden layer includes a second forget gate for filtering information, a second input gate for incorporating information, and a second output gate for generating output. The lightweight LSTM extracts time-series dependencies from the data processed by the input layer through its first hidden layer, resulting in data processed by the first hidden layer. The lightweight LSTM then extracts time-series dependencies from this data through its second hidden layer, resulting in data processed by the second hidden layer. This process includes: Through the first forget gate, based on the data processed by the input layer and the output result of the first output gate at the previous moment, the first forget weight matrix is ​​calculated, and the information corresponding to the forget weights in the first forget weight matrix that are greater than or equal to the preset weight threshold is taken as the first historical time series information to be retained. The first input gate is used to take the first historical time series information to be retained and the output result of the first output gate at the previous moment as the first data to be updated. The first input weight at the current moment is calculated based on the first data to be updated, and the first data to be updated is updated according to the first input weight to obtain the first updated data. The first output gate is used to calculate the first output weight at the current time based on the first updated data, and the data processed by the first hidden layer is generated based on the first output weight. Through the second forget gate, based on the data processed by the first hidden layer and the output result of the second output gate at the previous moment, the second forget weight matrix is ​​calculated, and the information corresponding to the forget weights in the second forget weight matrix that are greater than or equal to the preset weight threshold is used as the historical time series information to be retained for the second time. The second input gate is used to take the second historical time series information to be retained and the output result of the second output gate at the previous moment as the second data to be updated. The second input weight at the current moment is calculated based on the second data to be updated, and the data to be updated is updated according to the second input weight to obtain the second updated data. The second output gate is used to calculate the second output weight at the current time based on the second updated data, and the data processed by the second hidden layer is generated based on the second output weight.

4. The compensation method for eyepoint data in a flight simulator according to claim 1, characterized in that, Based on the latest eyepoint data and the latest frame ID, combined with the instructor's console settings, airspeed data, and ground speed data in the flight simulator system, the system determines whether the aircraft's current attitude mode is stationary or in motion. The motion mode includes a stable mode and a maneuvering mode, including: Extract the frozen state of the instructor console and the frozen setting state of the instructor console parameters from the instructor console setting conditions. The frozen state includes the flight frozen state and the overall frozen state. The frozen setting state includes the position frozen state, the altitude frozen state and the heading frozen state. When the instructor's console is in the flight freeze state or the total freeze state, the current attitude mode of the aircraft is determined to be stationary. When the instructor's platform is not in the flight freeze state and is not in the total freeze state, it is determined whether the values ​​of the airspeed data and the ground speed data are both less than the corresponding preset stationary threshold. If so, the current attitude mode of the aircraft is determined to be stationary. If the airspeed data or the ground speed data is not less than the corresponding preset stationary threshold, and the instructor's platform is in the position frozen state, the altitude frozen state, or the heading frozen state, then the current attitude mode of the aircraft is determined to be stationary. If the instructor's platform is not in the position frozen state, not in the altitude frozen state, and not in the heading frozen state, then based on the latest eyepoint data and the latest frame ID, the aircraft's current attitude mode is determined to be either stable mode or maneuver mode.

5. The compensation method for eyepoint data in a flight simulator according to claim 4, characterized in that, The step of determining whether the aircraft's current attitude mode is a stable mode or a maneuvering mode based on the latest eyepoint data and the latest frame ID includes: Establish a structure array for storing historical eye point data, the capacity of the structure array being a preset number, and the historical eye point data including eye point data from the past preset number of frames; The storage index of the latest eye point data in the structure array is determined based on the latest frame ID, and the latest eye point data is stored in the position corresponding to the storage index. Calculate the change in the historical eye point data stored in the structure array, whereby the change includes the change in the coordinates of the eye point position in three-dimensional space and the change in the pose angle. For the amount of change in each dimension, calculate the variance of the amount of change in that dimension in the structure array; When the variance of the change in each dimension is less than the preset steady-state mode threshold, the motion state is determined to be steady-state mode. When the variance of the change in at least one dimension is greater than or equal to the preset maneuver mode threshold, the motion state is determined to be maneuver mode.

6. The compensation method for eyepoint data in a flight simulator according to claim 5, characterized in that, The calculation of the change in the historical eye point data stored in the structure array includes: Based on the parameter freeze setting state, determine the dimension of the change in the historical eye point data to be calculated: if the position is frozen, skip the calculation of the change in longitude and latitude; if the altitude is frozen, skip the calculation of the change in altitude; if the heading is frozen, skip the calculation of the change in heading angle. For the unfrozen dimensions, the difference between historical eyepoint data of two consecutive adjacent frames is calculated sequentially according to time order to obtain multiple continuously changing values; Multiple consecutive change values ​​of each unfrozen dimension are arranged in chronological order to form a change value sequence, where the change value sequence represents the change amount of the corresponding unfrozen dimension; Combine the changes in all unfrozen dimensions to form the changes in historical viewpoint data.

7. A compensation system for eyepoint data in a flight simulator, characterized in that, include: A module is established to create a shared memory area between the simulation logic processing module and the eye point data sending module in the flight simulator system. The shared memory area includes an update state quantity and a shared eye point data area. The update state quantity is a frame ID. After the simulation logic processing module completes the attitude calculation for a frame, it updates the frame ID to obtain the latest frame ID. The shared eye point data area adopts a first-in-first-out storage mechanism. When the storage volume reaches a preset upper limit, the new data overwrites the oldest data. The eye point data sending module obtains the latest eye point data by reading the storage location corresponding to the latest frame ID in the shared eye point data area. The determination module is used to determine whether the current attitude mode of the aircraft is stationary or in motion, based on the latest eye point data, the latest frame ID, the instructor's station settings, airspeed data, and ground speed data in the flight simulator system. The motion mode includes stable mode and maneuvering mode. The compensation module is used to predict and compensate the latest eye point data by linear interpolation when the posture mode is a stable mode, or to predict and compensate the latest eye point data by a pre-trained lightweight LSTM when the posture mode is a maneuvering mode, so as to obtain the corresponding compensated data. When the pose mode is a stable mode, linear interpolation is used to predict and compensate for the latest eyepoint data, including: Extract the latest frame of eye point data and the previous frame of eye point data from the shared eye point data area. The latest frame of eye point data is the latest eye point data, which includes the corresponding first coordinate data and first angle data. The previous frame of eye point data includes the corresponding second coordinate data and second angle data. Based on the first coordinate data, the first angle data, the second coordinate data, and the second angle data, calculate the position coordinate difference and attitude angle difference between the latest frame eye point data and the previous frame eye point data; The position coordinate difference is superimposed on the first coordinate data to obtain the predicted position coordinates; The attitude angle difference is superimposed on the first angle data to obtain the predicted attitude angle; The predicted position coordinates and the predicted attitude angle are combined as the compensated data.

Citation Information

Patent Citations

  • Automatic detection method and device for mold penetration and coplanar defects of visual system

    CN120179566A

  • Motion vector selection method in motion compensation prediction

    JP2003111085A