Inertial measurement combination signal processing method and apparatus, and device, storage medium and program product

By considering the non-commutative error of non-fixed-axis rotation in inertial navigation system (INS) signal processing and using direction cosine matrix multiplication for INS signal resampling, the problem of inaccurate INS signal resampling is solved, and higher accuracy is achieved.

WO2026157473A1PCT designated stage Publication Date: 2026-07-30TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2025-11-20
Publication Date
2026-07-30

AI Technical Summary

Technical Problem

In the existing technology, the resampling process of inertial navigation system signals fails to effectively consider the non-commutative errors caused by non-fixed-axis rotation, resulting in inaccurate resampled signals.

Method used

By determining the direction cosine matrix between the inertial navigation system coordinate systems within a time window, matrix multiplication is used to process the inertial navigation system signals. Considering the non-commutative error caused by non-fixed-axis rotation, resampling is performed.

Benefits of technology

This improves the accuracy of inertial navigation system signal resampling, ensuring that the resampled signal more accurately reflects the angular velocity and acceleration information of the object.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025136242_30072026_PF_FP_ABST
    Figure CN2025136242_30072026_PF_FP_ABST
Patent Text Reader

Abstract

An inertial measurement combination signal processing method, which is executed by an electronic device. The method comprises: acquiring original inertial measurement combination signals obtained by means of sampling by an inertial measurement combination apparatus (S410); determining a plurality of time windows having the same window length, and on the basis of the original inertial measurement combination signals sampled within each time window, determining a direction cosine matrix at each sampling moment within each time window, wherein the direction cosine matrix at one sampling moment within one time window is obtained by means of performing a multiplication operation on direction cosine matrices between inertial measurement combination coordinate systems during sampling at the sampling moment and an adjacent sampling moment within the time window (S420); and on the basis of the direction cosine matrix at each sampling moment within each time window, determining resampled inertial measurement combination signals within each time window (S430). Further provided are an inertial measurement combination signal processing apparatus, an electronic device, a computer-readable storage medium and a computer program product.
Need to check novelty before this filing date? Find Prior Art

Description

Inertial navigation system (INS) signal processing methods, devices, equipment, storage media, and software products

[0001] Related applications

[0002] This application claims priority to Chinese patent application filed on January 21, 2025, with application number 202510095861.0, entitled "Inertial Signal Processing Method and Apparatus, Device, Storage Medium, and Program Product", the entire contents of which are incorporated herein by reference. Technical Field

[0003] This application relates to the field of data sampling technology, specifically to an inertial navigation system signal processing method and apparatus, electronic equipment, computer-readable storage medium, and computer program product. Background Technology

[0004] An inertial navigation system (INS) is the core device that enables autonomous navigation by measuring the inertial motion of a vehicle. Also known as an inertial measurement unit (IMU), it measures an object's three-axis attitude angles and acceleration. Typically, an INS contains three gyroscopes and three accelerometers.

[0005] The frequency of the inertial navigation system (INS) signal output by the terminal depends on the highest sampling frequency registered by the application. This means that it cannot be guaranteed that the frequency of the INS signal obtained by the application through the terminal is the desired sampling frequency. Therefore, it is usually necessary to resample the INS signal. How to improve the accuracy of INS signal resampling is a technical problem that needs to be continuously studied by those skilled in the art. Summary of the Invention

[0006] Embodiments of this application provide inertial navigation system (INS) signal processing methods, INS signal processing apparatus, electronic devices, computer-readable storage media, and computer program products.

[0007] One aspect of this application provides an inertial navigation system (INS) signal processing method, which includes: acquiring raw INS signals sampled by an INS device; determining multiple time windows of the same length, and determining the direction cosine matrix of each sampling moment within each time window based on the raw INS signals sampled within each time window; wherein the direction cosine matrix of a sampling moment within a time window is obtained by multiplying the direction cosine matrices between the INS coordinate system at that sampling moment and its adjacent sampling moments within the time window; and determining the resampled INS signal for each time window based on the direction cosine matrix of the sampling moments within each time window.

[0008] In another aspect of this application, an inertial navigation system (INS) signal processing apparatus is provided. The apparatus includes: an acquisition module configured to acquire raw INS signals sampled by an INS device; a determination module configured to determine multiple time windows of equal length, and to determine the direction cosine matrix of each sampling moment within each time window based on the raw INS signals sampled within each time window; wherein the direction cosine matrix of a sampling moment within a time window is obtained by multiplying the direction cosine matrices between the INS coordinate system at that sampling moment and its adjacent sampling moments within the time window; and a processing module configured to determine the resampled INS signal of each time window based on the direction cosine matrix of the sampling moments within each time window.

[0009] Another aspect of this application provides an electronic device, including: one or more processors; and a memory for storing one or more computer programs, which, when executed by the one or more processors, cause the electronic device to implement the inertial navigation system signal processing method as described above.

[0010] Another aspect of this application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor of an electronic device, causes the electronic device to perform the inertial navigation system signal processing method as described above.

[0011] Another aspect of this application provides a computer program product, including a computer program that, when executed by a processor of an electronic device, implements the inertial navigation system signal processing method as described above.

[0012] Details of one or more embodiments of this application are set forth in the following drawings and description. Other features, objects, and advantages of this application will become apparent from the specification, drawings, and claims. Attached Figure Description

[0013] To more clearly illustrate the technical solutions in the embodiments of this application, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on the published drawings without creative effort.

[0014] Figure 1 illustrates the sampling frequencies of inertial navigation signals registered by different types of applications running on the terminal;

[0015] Figure 2 illustrates the sampling timing diagram of an exemplary gyroscope and accelerometer;

[0016] Figure 3 is a schematic diagram of an implementation environment involved in this application;

[0017] Figure 4 is a flowchart illustrating an exemplary embodiment of the inertial navigation system signal processing method of this application;

[0018] Figure 5 illustrates the flowchart of S420 in the embodiment shown in Figure 4, which determines the direction cosine matrix at each sampling time based on the original inertial group signal sampled within each time window.

[0019] Figure 6 illustrates the flowchart for updating the resampled accelerometer measurements for any given time window;

[0020] Figure 7 illustrates a flowchart of inertial navigation signal processing in an exemplary application scenario;

[0021] Figure 8 is a flowchart illustrating an inertial navigation system signal processing method in another exemplary embodiment of this application;

[0022] Figure 9 illustrates a flowchart of filtering resampled inertial navigation signals in an exemplary application scenario;

[0023] Figure 10 shows a comparison diagram of the original inertial navigation system signal before and after processing;

[0024] Figure 11 is a block diagram of an inertial signal processing apparatus illustrating an exemplary embodiment of this application;

[0025] Figure 12 shows a schematic diagram of the structure of a computer system suitable for implementing the electronic device of the present application. Detailed Implementation

[0026] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0027] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities can be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.

[0028] The flowcharts shown in the accompanying drawings are merely illustrative and do not necessarily include all content and operations / steps, nor do they necessarily have to be performed in the described order. For example, some operations / steps can be broken down, while others can be combined or partially combined; therefore, the actual execution order may change depending on the specific circumstances.

[0029] In this application, "multiple" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.

[0030] The terms "first," "second," "third," and "fourth," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish different objects, not to describe a specific order. The terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.

[0031] In this application embodiment, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.

[0032] First, it's important to understand that an Inertial Measurement Unit (IMU) is a device that measures an object's three-axis attitude angles and acceleration. An IMU typically contains three gyroscopes along three axes and accelerometers in three directions. Based on the object's angular velocity and acceleration in three-dimensional space, its attitude can be calculated. IMUs are mostly used in devices requiring motion control, such as cars and robots, and are also used in situations requiring precise displacement calculations based on attitude, such as inertial navigation systems in submarines and aircraft.

[0033] Smartphones, tablets, and other terminals typically also have inertial navigation systems (INS). The terminal configures the sampling frequency of the INS sensors (gyroscopes and accelerometers) based on the highest sampling frequency registered by all applications, ensuring that the frequency of the INS signal output by the terminal matches the highest sampling frequency registered by the applications. For example, Figure 1 illustrates the INS signal sampling frequencies registered by different types of applications running on the terminal. As shown in Figure 1, applications 1-4 register sampling frequencies of 15Hz, 17Hz, 52Hz, and 500Hz on the terminal system, respectively. Since the highest sampling frequency is 500Hz, the raw INS signal obtained by each application from the terminal is the sampling signal output by the INS sensor at a sampling frequency of 500Hz. For applications 1-3, the sampling frequency of the raw INS signal obtained through the terminal is not their desired sampling frequency; therefore, it is necessary to resample the raw INS signal.

[0034] Furthermore, in practical applications, the sampling frequency of the same sensor is not necessarily stable within a time window. This means that the sampling frequency of the raw inertial signal obtained by the application through the terminal is not the sampling frequency it expects. For example, Figure 2 illustrates an exemplary sampling timing diagram of a gyroscope and accelerometer. The sampling frequencies of both the gyroscope and accelerometer will change to some extent, which may be the result of the combined effects of various factors such as electrical, mechanical, and environmental factors. This also illustrates the necessity of resampling the raw inertial signal sampled by the inertial device.

[0035] It is important to understand that the non-commutative error mentioned in this application refers to the error arising during the discretization of the nonlinear differential equations describing attitude motion due to the non-commutative property of matrix multiplication (i.e., the non-commutativity of matrix multiplication). Specifically, in the case of non-fixed-axis rotation, the differential equations describing the attitude motion of an object are usually nonlinear. To perform calculations on a computer, these differential equations need to be discretized. However, during the discretization process, due to the non-commutativity of matrix multiplication—that is, A×B is usually not equal to B×A (where A and B are matrices)—a deviation occurs between the discretized calculation result and the true solution of the original continuous system. This deviation is called the non-commutative error. The essence of the non-commutative error is the non-commutativity of matrix multiplication, and this error may become more significant, especially when the inertial navigation system (INS) sampling frequency is low, as the discretization step size is large. Therefore, considering the non-commutative error during resampling is an important factor in improving accuracy.

[0036] In related technologies, sliding window resampling is a common signal preprocessing method. It collects the measurement signals between two trigger time points and calculates the average value as the final resampled signal. However, if this method is used to resample inertial navigation system (INS) signals, it does not take into account the non-commutative errors caused by non-fixed-axis rotation, resulting in inaccurate resampled signals.

[0037] To address this technical problem, embodiments of this application take into account the non-commutative errors caused by non-fixed-axis rotation and provide an inertial navigation system (INS) signal processing method, INS signal processing device, electronic device, computer-readable storage medium, and computer program product.

[0038] Before providing a detailed description of the embodiments of this application, this paper will introduce the technical principle of resampling the original inertial navigation system signal, taking into account the non-commutative error caused by non-fixed-axis rotation, in conjunction with a detailed formula derivation process.

[0039] Suppose there is a time window [t0, t1] with start and end times t0 and t1. Within this time window, the inertial navigation system samples I gyroscope measurements, with timestamps represented as... Where i = 1, 2, ..., I, and m accelerometer measurements were sampled, with timestamps represented as... Where i = 1, 2, ..., m, and at time t1, all the original inertial navigation system (INS) signals sampled within the time window [t0, t1] need to be combined into an average gyroscope measurement and an average accelerometer measurement. This average gyroscope measurement is called the resampled gyroscope measurement, and this average accelerometer measurement is called the resampled accelerometer measurement. The resampled gyroscope measurement is the result obtained by resampling the original gyroscope measurement, determined based on the first direction cosine matrix at the end of the time window. This process considers the non-commutative error of non-fixed-axis rotation and can more accurately reflect the object's angular velocity information. The resampled accelerometer measurement is the result of resampling the original accelerometer measurement, determined based on the accelerometer measurement within the time window and the second direction cosine matrix at each sampling time. It considers the non-commutative error and can more accurately reflect the object's acceleration.

[0040] The original inertial navigation system (INS) signals sampled by the INS are all converted according to this strategy to obtain resampled gyroscope measurements and resampled accelerometer measurements at equal intervals. This process is also the process of resampling the original INS signals.

[0041] For an inertial navigation system, and for any direction measured by the gyroscope and any direction measured by the accelerometer, after obtaining one cycle of gyroscope and accelerometer measurements, the approximate attitude and velocity are expressed as follows: Formula 1 and Formula 2:

[0042] in, This represents the direction cosine matrix from the inertial navigation coordinate system to the navigation coordinate system at the k-th sampling time. This represents the direction cosine matrix from the inertial navigation coordinate system to the navigation coordinate system at the (k-1)th sampling time. This represents the direction cosine matrix between the inertial navigation coordinate systems during two consecutive sampling times. This indicates the sampling speed at the k-th sampling point; G represents the sampling speed during the (k-1)th sampling cycle; n This represents the acceleration due to gravity; Δt is the time interval from the (k-1)th beat to the kth beat. The accelerometer measurement value in the inertial navigation coordinate system at the time of sampling k is the value.

[0043] It's also important to understand that the direction cosine matrix (DCM) is a matrix formed by the direction cosines between the basis vectors of two different orthonormal bases. The inertial navigation coordinate system, also known as the body frame or body coordinate system (B-frame), is typically a coordinate system fixed to a rigid body (such as an aircraft or robot) and used to describe the body's attitude and motion. The navigation coordinate system, also known as the navigation frame or navigation coordinate system (N-frame), is typically a fixed reference coordinate system used to describe the position and attitude of a rigid body relative to a reference point or surface. The direction cosine matrix can be determined based on gyroscope measurements. For example, given the initial attitude, the object's attitude at the current moment can be calculated using gyroscope data, which includes the calculation of the direction cosine matrix. The specific process will not be elaborated here.

[0044] Based on Equations 1 and 2 above, we can further derive the batch update formulas for the direction cosine matrix and velocity within the time window [t0, t1], as shown in Equations 3 and 4:

[0045] in, This represents the direction cosine matrix from the inertial coordinate system to the navigation coordinate system at time t1; This represents the direction cosine matrix from the inertial coordinate system to the navigation coordinate system at time t0; Indicates in The direction cosine matrix from the inertial navigation coordinate system to the navigation coordinate system at any given time; Indicates in The direction cosine matrix from the inertial navigation coordinate system to the navigation coordinate system at any given time; Indicates that The direction cosine matrix between the inertial navigation system and the gyroscope measurement values ​​sampled at time t0 and time t0. The gyroscope measurement values ​​sampled at time t0 can use the measurement values ​​of the previous time window at the end time. Indicates in Time and The direction cosine matrix between the inertial navigation coordinate system when sampling gyroscope measurements; Indicates in Time and The direction cosine matrix between the inertial navigation coordinate system when sampling gyroscope measurements; Indicates at time t1 and The direction cosine matrix between the inertial navigation coordinate system is obtained when the gyroscope measurement values ​​are sampled at time t1. However, since the gyroscope measurement values ​​may not actually be sampled at time t1, the last measurement value of the gyroscope in the current time window can be used to determine it. This represents the velocity at time t1; This represents the velocity at time t0; Indicates in Accelerometer measurements in the inertial navigation coordinate system at any given time; Indicates in Accelerometer measurements in the inertial navigation coordinate system at any given time; This represents the accelerometer measurement value in the inertial coordinate system at time t1. However, since no samples may actually have been taken at time t1, the last measurement value of the accelerometer within the current time window can be used to determine this value.

[0046] Continuing to transform the variables in formulas 3 and 4, we obtain formulas 5 and 6:

[0047] in, This refers to the direction cosine matrix between the inertial navigation system coordinate system at sampling times t1 and t0, and is simply called the direction cosine matrix at time t1. Indicates in The direction cosine matrix between the inertial navigation system coordinate system when the accelerometer measurements are sampled at time t0 and t0 can be simply referred to as... The direction cosine matrix at time; Indicates in The direction cosine matrix between the inertial navigation system coordinate system when the accelerometer measurements are sampled at time t0 and t0 can be simply referred to as... The direction cosine matrix at time.

[0048] Based on Equations 5 and 6, the resampling formulas that take into account non-commutative errors can be derived as follows: Equations 7 and 8:

[0049] in, This represents the resampled gyroscope measurement value output at time t1; This represents the resampled accelerometer measurement value output at time t1.

[0050] From Equation 7, we can see that the resampled gyroscope measurements obtained by resampling for the time window [t0, t1] can be based on the direction cosine matrix at its end time. Furthermore, the direction cosine matrix at that final moment is determined. It is obtained by multiplying the direction cosine matrix between the inertial navigation coordinate system and the two sampling times within the same time window, that is... Moreover, Formula 7 contains This demonstrates that the resampling process takes into account non-commutative errors, thereby ensuring the accuracy of resampled gyroscope measurements.

[0051] From Equation 8, it can be seen that the resampled accelerometer measurements obtained for the time window [t0, t1] can be determined based on the individual accelerometer measurements sampled within that time window and the direction cosine matrix at each sampling moment. The direction cosine matrix at each sampling moment is also obtained by multiplying the direction cosine matrices between the inertial navigation system coordinate systems at two consecutive sampling times, i.e., in Equation 8. It is also based on matrix multiplication and takes into account non-commutative errors, thus ensuring the accuracy of resampled accelerometer measurements.

[0052] Based on the resampling principle described above, the embodiments of this application will be described in detail below.

[0053] Please refer to Figure 3 first, which is a schematic diagram of an implementation environment involved in this application. The implementation environment includes a terminal 310 and a server 320, and the terminal 310 and the server 320 communicate with each other via wired or wireless means.

[0054] As shown in Figure 3, the terminal 310 is equipped with an inertial measurement unit (IMU). The terminal system configures the sampling frequency of the IMU to be the highest sampling frequency registered by all active system applications, so that the IMU outputs raw IMU signals (including gyroscope and accelerometer measurements) according to the sampling frequency configured by the terminal system. The terminal 310 can upload the raw IMU signals sampled by the IMU to the server 320, so that the server 320 can resample the raw IMU signals. Since the server 320 considers the non-commutative errors caused by non-fixed-axis rotation during the resampling process of the raw IMU signals, it can achieve accuracy in resampling the raw IMU data. The server 320 also returns the resampled IMU signals (including resampled gyroscope and accelerometer measurements) to the terminal 310, so that the terminal 310 can process the resampled IMU signals.

[0055] When the terminal 310 has sufficient computing resources, the resampling of the original inertial data sampled by the inertial navigation system can also be completed by the terminal 310 itself, without relying on the computing resources in the server 320, and no restrictions are imposed here.

[0056] It should be noted that terminal 310 can be a smartphone, tablet, laptop, computer, smart home appliance, smart terminal, or other similar device, without limitation. Server 320 can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services, without limitation.

[0057] Please refer to Figure 4, which is a flowchart illustrating an exemplary embodiment of the inertial navigation system (INS) signal processing method of this application. This method can be applied to the implementation environment shown in Figure 3, for example, it can be specifically executed by terminal 310, or by server 320, or jointly by terminal 310 and server 320. Of course, this method can also be applied to other implementation environments and executed by terminals or servers in other implementation environments, or jointly by terminals and servers in other implementation environments; this embodiment does not impose any limitations.

[0058] As shown in Figure 4, in an exemplary embodiment, the inertial navigation system signal processing method includes S410-S440, which are described in detail below:

[0059] S410: Acquire the raw inertial navigation system signal sampled by the inertial navigation system.

[0060] As mentioned above, since the terminal configures the sampling frequency of the inertial navigation system (INS) to the highest sampling frequency registered by the application, and the sampling frequencies of the gyroscopes and accelerometers included in the INS are not necessarily stable within a time window, the sampling frequency of the INS to sample the original INS signal cannot meet the application requirements of the application running on the terminal. Therefore, it is necessary to resample the original INS signal sampled by the INS.

[0061] The raw inertial navigation system (INS) signals sampled by the inertial navigation system (INS) include gyroscope measurements and accelerometer measurements. Furthermore, these gyroscope and accelerometer measurements typically include measurements in three directions. Therefore, the method disclosed in this embodiment can be applied to resampling the gyroscope and accelerometer measurements in each direction. That is, for each time window, the method disclosed in this embodiment can determine the resampled gyroscope and accelerometer measurements in each direction. However, it should be noted that in practical applications, the raw INS signals sampled by the INS are often related to the actual structure of the INS, and this embodiment does not impose any limitations on this.

[0062] S420, determine multiple time windows with the same window length, and determine the direction cosine matrix of each sampling moment in each time window based on the original inertial navigation system signals sampled in each time window; wherein, the direction cosine matrix of a sampling moment in a time window is obtained by multiplying the direction cosine matrices between the inertial navigation system at that sampling moment and its adjacent sampling moments in the time window.

[0063] The adjacent sampling times can be the previous or the next sampling times.

[0064] First, it's important to understand that a time window, or time interval, has a start and an end point. The start point is the initial time of the time window, and the end point is the final time. The duration between the start and end points is the length of the time window. In this embodiment, the length of the time window is preset. An equally spaced time window means that the time for sampling the original inertial navigation system signal is divided into multiple time windows according to the time sequence, and each time window has the same length. For example, each time window can be represented as [t0, t1], where t0 represents the start time and t1 represents the end time. The time interval between any two adjacent time windows can also be consistent. The time interval between two time windows is determined by the same measurement method, such as the interval between the start times of these two time windows, or the interval between their respective end times.

[0065] This embodiment processes the original inertial navigation system (INS) signal into equally spaced INS signals so that the resampled INS signals can meet the application's requirements. Therefore, the length of the equally spaced time window mentioned in this embodiment is usually related to the frequency required by the application for the INS signal, and is not limited here. However, it should be understood that since the original INS signal is sampled by the INS device based on the highest sampling frequency registered on the terminal, the sampling frequency of the original INS signal is usually higher than the frequency required by the application for the INS signal. Therefore, resampling the original INS signal based on the application's required frequency for the INS signal can convert the original INS signal into equally spaced signals so that the converted INS signal meets the application's requirements.

[0066] It should also be noted that the direction cosine matrix involved in this embodiment at a certain moment represents the direction cosine matrix between the inertial navigation system (INS) coordinate system at that moment and the sampling time at the start of the current time window. For example, for any time window, the direction cosine matrix at the end moment refers to the direction cosine matrix between the INS coordinate system at the end moment and the sampling time at the start moment, while the direction cosine matrix at each acquisition moment refers to the direction cosine matrix between the INS coordinate system at the corresponding sampling moment and the sampling time at the start moment. Referring to Equation 7, for each time window, the resampled gyroscope measurement value is based on the direction cosine matrix at the end moment. This is confirmed. The direction cosine matrix at the end time is obtained by multiplying the direction cosine matrix between the inertial navigation system coordinates when the gyroscope measurements were sampled twice within the same time window. get.

[0067] Referring to Equation 8, for each time window, the resampled accelerometer measurement is based on the direction cosine matrix of each sampling time within that time window. and Where i = 2, ..., m) and the accelerometer measurements sampled at each sampling time. The direction cosine matrix at each sampling moment within each time window is determined by multiplying the direction cosine matrix between the inertial navigation coordinate system and the accelerometer measurement values ​​taken at two consecutive sampling times within that time window.

[0068] Therefore, it can be summarized that the resampled inertial navigation system (INS) signal for each time window can be determined based on the direction cosine matrix of the sampling time within each time window. Moreover, the direction cosine matrix of a sampling time within a time window is obtained by multiplying the direction cosine matrices between the INS coordinate system at that sampling time and its adjacent sampling times within the time window. This takes into account the non-commutative errors caused by non-fixed-axis rotation during the resampling process of the original INS signal.

[0069] In some exemplary embodiments, as shown in Figure 5, the process of determining the direction cosine matrix at each sampling time based on the original inertial navigation signal sampled within each time window includes the following steps:

[0070] S510 stores the raw inertial signal to the data queue whenever it is sampled within each time window.

[0071] S520, based on the data stored in the data queue, determines the direction cosine matrix between the inertial navigation coordinate system at two consecutive sampling times within the current time window, and performs a multiplication operation on the determined direction cosine matrix to obtain the direction cosine matrix at the latest sampling time.

[0072] S530: When the end time of the current time window is reached, the direction cosine matrix of the latest sampling time is determined as the direction cosine matrix of the end time, and the data queue is cleared.

[0073] In the above process, within each time window, whenever a raw inertial navigation system (INS) signal is sampled, it is stored in the data queue. This ensures that the raw INS signals sampled within the current time window are preserved in the data queue, facilitating the retrieval of the sampled raw INS signals from the data queue and the determination of the direction cosine matrix at the latest sampling moment. The direction cosine matrix at the latest sampling moment is dynamically determined in this way. When the current time window ends, the newly determined direction cosine matrix at the latest sampling moment is set as the direction cosine matrix for that ending moment, and the data queue is cleared to free up storage space for the raw INS signals sampled in the next time window. It should be noted that the direction cosine matrix at the latest moment within each time window is obtained by first calculating the direction cosine matrix between the INS coordinate systems at the two consecutive sampling times within the current time window, and then multiplying the calculated direction cosine matrices.

[0074] S430 determines the resampled inertial navigation signal for each time window based on the direction cosine matrix of the sampling time within each time window.

[0075] Therefore, the technical solution provided in this embodiment, after acquiring the original inertial navigation system (INS) signal sampled by the INS, determines the direction cosine matrix for each sampling moment according to equally spaced time windows based on the original INS signal sampled within each time window. Then, based on the direction cosine matrix of each sampling moment within each time window, the resampled INS signal for each time window is determined. In this resampling process, since the direction cosine matrix for each sampling moment is obtained by multiplying the direction cosine matrices between the INS coordinate systems at two consecutive sampling moments within the current time window, this allows the resampling process to take into account the non-commutative errors caused by non-fixed-axis rotation, thereby improving the accuracy of INS signal processing.

[0076] In some other exemplary embodiments, the raw inertial signal sampled by the inertial navigation system includes gyroscope measurements and accelerometer measurements; the data queue correspondingly includes a gyroscope measurement queue and an accelerometer measurement queue, wherein the gyroscope measurement queue is used to store gyroscope measurements and the accelerometer measurement queue is used to store accelerometer measurements; the resampled inertial signal correspondingly includes resampled gyroscope measurements and resampled accelerometer measurements.

[0077] Considering that in practical application scenarios, such as shown in Figure 2, the times at which the inertial navigation system (INS) samples gyroscope and accelerometer measurements are asynchronous, this can also be understood as the timestamps of the data stored in the gyroscope and accelerometer measurement queues being asynchronous within each time period. This results in asynchronous direction cosine matrices for different types of raw INS signals at various sampling times within the same time window. Therefore, it is necessary to calculate the direction cosine matrix for each sampling of gyroscope measurements and the direction cosine matrix for each sampling of accelerometer measurements, based on the data stored in the gyroscope and accelerometer measurement queues. For clarity, this embodiment refers to the direction cosine matrix for sampling gyroscope measurements as the first direction cosine matrix and the direction cosine matrix for sampling accelerometer measurements as the second direction cosine matrix.

[0078] Therefore, the process by which S520 determines the direction cosine matrix at the latest sampling time based on the data stored in the data queue may include the following steps:

[0079] S521, based on the data stored in the gyroscope measurement queue, determines the direction cosine matrix between the inertial navigation system coordinate system when the gyroscope measurement values ​​are sampled twice within the current time window, and performs a multiplication operation on the determined direction cosine matrix to obtain the first direction cosine matrix corresponding to the latest sampling time of the gyroscope measurement value.

[0080] Specifically, it can be based on the gyroscope measurement values ​​stored in the gyroscope measurement queue. Through formula Determine the direction cosine matrix between the inertial navigation system coordinate system when the gyroscope measurements are sampled twice within the current time window, where... It is the value measured by the gyroscope. The corresponding antisymmetric matrix, It is the time interval between two consecutive sampling gyroscope measurements, and the determined direction cosine matrix is ​​multiplied to obtain the first direction cosine matrix corresponding to the latest sampling time of the gyroscope measurement.

[0081] S522, based on the data stored in the accelerometer measurement queue, determines the direction cosine matrix between the inertial navigation system coordinate system when the accelerometer measurement values ​​are sampled twice within the current time window, and performs a multiplication operation on the determined direction cosine matrix to obtain the second direction cosine matrix corresponding to the latest sampling time of the accelerometer measurement value.

[0082] Specifically, it can be based on accelerometer measurements stored in the accelerometer measurement queue. Through formula Determine the direction cosine matrix between the inertial navigation system coordinate system when sampling accelerometer measurements two consecutive times within the current time window, where... yes The corresponding antisymmetric matrix, It is the angle change calculated based on the change in accelerometer measurement value, and the determined direction cosine matrix is ​​multiplied to obtain the second direction cosine matrix corresponding to the latest sampling time of the accelerometer measurement value.

[0083] If we assume that the time window in the gyroscope measurement queue is... Calculate the latest sampling time corresponding to the gyroscope measurement. The first direction cosine matrix can be expressed as follows: Formula 9:

[0084] Similarly, if we assume that the time window in the accelerometer measurement queue is... Calculate the latest sampling time corresponding to the accelerometer measurement. The second direction cosine matrix can be expressed as follows: Formula 10:

[0085] Therefore, whether it is for gyroscope measurements or accelerometer measurements, the non-commutative error caused by non-fixed-axis rotation is taken into account when calculating the direction cosine matrix at the sampling time, thus ensuring the accuracy of resampling of gyroscope measurements and accelerometer measurements.

[0086] Based on this, the process by which S430 determines the resampled inertial navigation signal for each time window based on the direction cosine matrix at each sampling time includes the following steps:

[0087] S431, based on the first direction cosine matrix at the end of each time window, determines the resampled gyroscope measurement value for each time window;

[0088] S432 determines the resampled accelerometer measurement value for each time window based on the accelerometer measurement values ​​sampled within each time window and the second direction cosine matrix at each sampling time.

[0089] As shown in Formula 7, for each time window, the resampled gyroscope measurement value for each time window can be calculated based on the first direction cosine matrix at the end time and the length of each time window.

[0090] As can be seen from Formula 8, for each time window, the resampled accelerometer measurement value can be calculated based on the second direction cosine matrix at each sampling time, the length of each time window, the interval between two consecutive samplings, and the accelerometer measurement value for each sampling.

[0091] In one exemplary embodiment, since the timestamps of the gyroscope measurements and the accelerometer measurements are not synchronized, interpolation is used to update the resampled accelerometer measurements for each time window to avoid inaccurate resampling caused by the timestamps of the gyroscope measurements and the accelerometer measurements being not synchronized.

[0092] As shown in Figure 6, the process of updating the resampled accelerometer measurements for any time window includes the following steps:

[0093] S610 determines the first latest timestamp in the accelerometer measurement queue at the end of each time window.

[0094] The first latest timestamp is the latest sampled time within the current time window, determined from the accelerometer measurement queue at the end of each time window. It is used to update the resampled accelerometer measurements when the timestamps of the gyroscope and accelerometer measurements are out of sync.

[0095] S620: Traverse the timestamps in the gyroscope measurement queue and determine the interpolation position of the first latest timestamp in the gyroscope measurement queue to obtain the first timestamp in the gyroscope measurement queue after the interpolation position.

[0096] The interpolation position is the position of the latest timestamp in the gyroscope measurement queue. By determining this position, the first timestamp following it in the gyroscope measurement queue can be obtained, which can then be used to update the resampled accelerometer measurements to solve the timestamp synchronization problem.

[0097] S630 updates the resampled accelerometer measurements based on the direction cosine matrix between the inertial navigation coordinate system when the gyroscope measurements were sampled twice using the first timestamp and the previous timestamp of the first latest timestamp.

[0098] In the above process, since the latest sampled accelerometer measurement value is stored in the accelerometer measurement queue within each time window, the first latest timestamp, which is the latest sampling time within the current time window, can be determined from the accelerometer measurement queue at the end of the time window. The first timestamp in the gyroscope measurement queue after the interpolation position is also the smallest timestamp in the gyroscope measurement queue that is greater than the first latest timestamp.

[0099] If the latest timestamp in the accelerometer measurement queue is represented as... Represent the previous timestamp of the latest timestamp as: The first timestamp after the interpolation position in the gyroscope measurement queue is represented as... When sampling twice using the first timestamp and the timestamp preceding the latest timestamp, the direction cosine matrix between the inertial navigation system coordinate systems can be expressed as:

[0100] In an exemplary embodiment, the process of updating the resampled accelerometer measurement in S630 may further include the following steps:

[0101] S631, perform matrix multiplication on the first direction cosine matrix corresponding to the second latest timestamp in the gyroscope measurement queue, the direction cosine matrix between the inertial coordinate system when sampling gyroscope measurement values ​​twice, and the direction cosine matrix between the inertial coordinate system when sampling twice with the first timestamp and the previous timestamp of the first latest timestamp, to obtain the direction cosine matrix of the previous timestamp of the first latest timestamp.

[0102] S632 updates the resampled accelerometer measurements based on the direction cosine matrix of the previous timestamp of the first latest timestamp.

[0103] It should be noted that the calculation method of the direction cosine matrix of the previous timestamp of the first latest timestamp in S631 can be summarized as follows: Formula 11:

[0104] in, This represents the previous timestamp of the latest timestamp. The direction cosine matrix; Indicates the second most recent timestamp in the gyroscope measurement queue. The corresponding first-direction cosine matrix; Indicates at time and time The direction cosine matrix between the inertial navigation coordinate systems during sampling; Indicates the first timestamp The previous timestamp of the latest timestamp The direction cosine matrix between the inertial navigation coordinate systems during two sampling operations.

[0105] The process by which S632 updates the resampled accelerometer measurements based on the direction cosine matrix of the previous timestamp based on the latest first timestamp can be summarized by the following formula 12:

[0106] Among them, the left side of the equal sign This represents the updated resampled accelerometer measurement, and the right side of the equals sign... This indicates the resampled accelerometer measurement value before the update.

[0107] In addition, considering that the first timestamp in the accelerometer measurement queue can only be interpolated in the gyroscope measurement queue, it is also necessary to compare the tail timestamps of the gyroscope measurement queue and the accelerometer measurement queue at the same time. Only when the tail timestamp of the gyroscope measurement queue is greater than the tail timestamp of the accelerometer measurement queue will the process of determining the direction cosine matrix of the latest sampling time in the current time window be executed based on the data stored in the data queue, so as to ensure the reliability of the entire resampling process.

[0108] To better understand the resampling process illustrated in the above embodiments, the following explanation, in conjunction with the process illustrated in Figure 7, will illustrate this resampling process.

[0109] First, it should be noted that in the process illustrated in Figure 7, the input signal includes gyroscope measurements with timestamps. and accelerometer measurements The desired time interval T is given, and the output signal is the resampled gyroscope measurement at time t1 = t0 + T. and resampled accelerometer measurements

[0110] First, two data queues need to be initialized: the gyroscope measurement queue Q. g and accelerometer measurement queue Q a Initialize the direction cosine matrix C as an identity matrix, and initialize the resampled gyroscope measurements. and resampled accelerometer measurements It is a zero vector.

[0111] When the latest gyroscope measurement value is sampled and accelerometer measurements Store in gyroscope measurement queue Q g and accelerometer measurement queue Q a (The two are usually not sampled simultaneously). Simultaneously compare the gyroscope measurement queue Q. g tail timestamp and accelerometer measurement queue Qa tail timestamp if If the result is positive, proceed to the next step; otherwise, it indicates that no new data has been input.

[0112] The gyroscope measurement queue Q g All gyroscope measurements are retrieved sequentially, and the direction cosine matrix C is updated according to Formula 9. The accelerometer measurement queue Q is then... a All accelerometer measurements are retrieved sequentially, and the direction cosine matrix C is updated according to Formula 10 before proceeding to the next step.

[0113] Assume accelerometer measurement queue Q a The latest data in China is Traversing the gyroscope measurement queue Q g Find the timestamp in the middle. The insertion position is updated according to Formula 11. The resampled accelerometer measurements are then updated according to Formula 12.

[0114] when If the end time of a time window is reached, the resampled gyroscope measurement value is calculated using the latest direction cosine matrix C. Output, and the latest resampled accelerometer measurements Output. And clear the gyroscope measurement queue Q. g and accelerometer measurement queue Q a .

[0115] It can be seen that whenever a new gyroscope measurement is sampled, the direction cosine matrix C and the accelerometer measurement are resampled. The update process involves using the latest direction cosine matrix C to output the resampled gyroscope measurements for the current time window at the end of each time window. And output the latest resampled accelerometer measurements. The accelerometer measurements are resampled for the current time window, thus enabling dynamic resampling.

[0116] It should also be noted that Formula 11 can be calculated in reverse order to avoid calculating multiple matrix multiplications each time, thereby reducing the amount of computation.

[0117] In another exemplary embodiment, it is further considered that in practical application scenarios, the accuracy level of the inertial navigation system may not be high, or the inertial navigation system may not be securely installed, resulting in the original inertial navigation signal containing multi-source interference such as thermal noise and vibration. Therefore, it is necessary to filter the resampled inertial navigation signal to reduce some noise.

[0118] Figure 8 is a flowchart illustrating an inertial navigation system (INS) signal processing method according to another exemplary embodiment of this application. As shown in Figure 8, this INS signal processing method, based on the embodiment shown in Figure 4, may further include steps S810-S840, which are described in detail below:

[0119] The S810 stores the resampled inertial navigation signal for each time window into the filter queue.

[0120] S820 performs frequency domain analysis on the data stored in the filter queue and generates filter parameters based on the analysis results.

[0121] This embodiment performs frequency domain analysis on the data in the filtering queue. For example, it calculates the total spectral energy of the data stored in the filtering queue and calculates the cutoff frequency based on a preset spectral energy retention ratio and the calculated total spectral energy. If the cutoff frequency is less than the desired cutoff frequency, it is set to the desired cutoff frequency, and filtering parameters are generated based on the new cutoff frequency. The filtering queue is then cleared. Otherwise, filtering parameters are directly generated based on the calculated cutoff frequency. The total spectral energy is the sum of the squares of the amplitudes of each frequency component in the spectrum obtained during frequency domain analysis of the data stored in the filtering queue. It is used to calculate the cutoff frequency to generate filtering parameters for filtering the resampled inertial navigation system (INS) signal. The cutoff frequency is a frequency value calculated based on a preset spectral energy retention ratio and the total spectral energy. If it is less than the desired cutoff frequency, it is set to the desired cutoff frequency to generate filtering parameters, thereby achieving adaptive filtering of the resampled INS signal. The desired cutoff frequency is a preset frequency value. When the calculated cutoff frequency is less than this value, the cutoff frequency is set to the desired cutoff frequency to ensure filtering effectiveness and make the resampled INS signal meet application requirements.

[0122] Specifically, this embodiment performs frequency domain analysis on the data in the filter queue. For example, the data stored in the filter queue can be processed by Fast Fourier Transform (FFT) to obtain the spectrum, and then the sum of the squares of the amplitudes of each frequency component in the spectrum can be used to calculate the total energy of the spectrum. Where X[k] is the amplitude of the k-th frequency component in the spectrum, N is the length of the spectrum, and the cutoff frequency is calculated based on the preset spectrum energy retention ratio and the total spectrum energy obtained statistically. If the cutoff frequency is less than the expected cutoff frequency, the cutoff frequency is set to the expected cutoff frequency, and the filter parameters are generated based on the new cutoff frequency, and the filter queue is cleared.

[0123] For example, generating filter parameters based on the cutoff frequency can be achieved by ensuring that the attenuation of each frequency signal in the cutoff frequency range [0, ω0] is less than 0.3, and the attenuation of each frequency signal in the cutoff frequency range [ω0, +∞] is greater than 0.3, in order to avoid filtering out low-frequency signals. For a Biquad filter, this can be achieved using the formula... Generate filter parameters, where Q is the filter quality factor and α is a parameter related to the filter bandwidth.

[0124] S830: If the data in the filter queue meets expectations, the filter is updated based on the filter parameters, and the data in the filter queue is filtered based on the updated filter to obtain filtered data.

[0125] The filtered data is the result obtained after filtering the resampled inertial navigation system (INS) signal. When the data in the filtering queue meets expectations, the filter is updated based on the filtering parameters to filter the data; if it does not meet expectations, the filter is set to its initial state, and the data in the filtering queue is passed through as the filtered data, which can reduce noise interference in the resampled INS signal.

[0126] After generating the filtering parameters, the first step is to check whether the data in the filtering queue meets expectations. For example, if the data in the filtering queue is evenly spaced and the values ​​are reasonable, it indicates that it meets expectations. The filter is then updated based on the filtering parameters, and the updated filter is used to filter the data in the filtering queue to obtain filtered data. For instance, if the accelerometer's measured magnitude is less than 3g and the gyroscope's measured magnitude is less than 50° / s, then the values ​​are considered reasonable.

[0127] For example, the filter can be an infinite impulse response (IIR) filter. Because an IIR filter has a feedback loop, its response to a pulse input signal is infinitely continuous. It should also be noted that this embodiment does not limit the specific type of IIR filter; for example, a Biquad filter can be used.

[0128] The filtering process performed by the Biquad filter can be expressed as Equation 13: a0y k =b0x k +b1x k-1 +b2x k-2 -a1y k-1 -a2y k-2 (Formula 13)

[0129] Among them, y i and x i This represents the state variables of the filter, which are 0 during initialization; a i and b i These are the parameters of the filter, which have a functional relationship with the cutoff frequency ω0; during the update, the filter state x is updated sequentially by the equally spaced inputs. i Each input x i Then a corresponding filtered result y can be obtained. i As a filtered output.

[0130] S840: If the data in the filter queue does not meet expectations, the filter is placed in the initial state, and the data in the filter queue is passed out as the filtered data.

[0131] If the data in the filter queue does not meet expectations, it means that it is difficult to obtain a good filtering effect by using the updated filter to filter the data in the filter queue. Therefore, the filter is placed in the initial state, and the data in the filter queue is passed out as the filtered data.

[0132] Therefore, by performing frequency domain analysis on the resampled inertial navigation system (INS) signal and generating corresponding filtering parameters based on the analysis results, and updating the filter based on the generated filtering parameters when the data in the filtering queue meets expectations, the resampled INS signal is filtered using the updated filter. This achieves adaptive filtering of the resampled INS signal and improves the flexibility of filtering.

[0133] Figure 9 illustrates a flowchart of filtering resampled inertial navigation system (INS) signals in an exemplary application scenario. First, it should be noted that the resampled INS signal specifically includes resampled gyroscope measurements and resampled accelerometer measurements, both of which are three-dimensional physical quantities. This embodiment processes the physical quantity in each dimension according to the same procedure; for example, using x... k k = 0, 1, 2, ..., represents a resampled inertial navigation system (INS) signal with equal intervals in a certain dimension. It should also be noted that for the flowchart shown in Figure 9, the input signal is the resampled INS signal x with equal intervals. k The output signal is the filtered data.

[0134] First, the cutoff frequency ω0 needs to be initialized to the desired cutoff frequency ω. * And according to the desired cutoff frequency ω * Initialize the filter parameters, initialize the filter state buffer to 0, initialize a filter queue of a specific length Q, and initialize a preset spectral energy retention ratio q.

[0135] Whenever a resampled inertial navigation signal x is acquired k The resampled inertial navigation signal x k The signal is stored in the filter queue Q. If the filter queue Q is full, the head element is removed, and then the next step of frequency domain analysis is performed; otherwise, the newly input resampled inertial signal x is stored in the filter queue Q. k If no further resampled inertial signal x is input... k Then the entire process ends.

[0136] Fast Discrete Fourier Analysis (FSF) is performed on the data in the filter queue Q to statistically determine the total spectral energy, and the current cutoff frequency ω0 is calculated according to the preset spectral energy retention ratio q. If ω0 < ω * Then set ω0 to ω * And clear the filter queue Q.

[0137] Next, a filter is designed to ensure that the signal attenuation at each frequency in [0, ω0] is less than 0.3, and the signal attenuation at each frequency in [ω0, +∞] is greater than 0.3. The filter parameters can be uniquely determined by the cutoff frequency ω0. After generating the filter parameters, proceed to the next step of processing.

[0138] If the filter is not initialized, its state is set to 0, and the resampled inertial signal x is transmitted. k This serves as the result of the current filtering process. If the filter has already been initialized, then proceed to the next filtering step.

[0139] Before filtering, it is necessary to check whether the data in the filtering queue meets expectations. If it does not meet expectations, the filter is set to the initialization state, and the process proceeds to determine whether the filter has been initialized. If it meets expectations, the filter is updated using the generated filtering parameters. If all filter state variables are valid, the filtering result is output; otherwise, the resampled inertial navigation signal x is transmitted. k This serves as the current filtering result.

[0140] Therefore, by adaptively filtering the resampled inertial navigation system (INS) signals, we can obtain the desired IMU data with equal intervals and low noise pollution, which can be used by downstream algorithm modules, thus ensuring the stability and flexibility of the downstream algorithm modules.

[0141] Figure 10 illustrates a comparison between the original inertial navigation system (INS) signal, the INS signal resampled using window smoothing technology, and the INS signal obtained using the resampling and adaptive filtering scheme provided in this embodiment. As can be seen from Figure 10, for gyroscope measurements (gx, gy, gz) in any of the x, y, and z axes, the INS signal obtained using the resampling and adaptive filtering scheme provided in this embodiment better matches the distribution of the original INS signal compared to the INS signal resampled using window smoothing technology. Therefore, using the INS signal obtained using the resampling and adaptive filtering scheme provided in this embodiment for downstream algorithm modules can ensure the positioning accuracy of the downstream algorithm modules.

[0142] The inertial navigation system (INS) data processing solution provided in this application can be applied to a variety of fields, such as autonomous driving, vehicle navigation, drones, smart devices, and industrial automation, to achieve more accurate positioning.

[0143] For example, in fields such as autonomous driving and vehicle navigation, VDR (Vehicle Dead-Reckoning) algorithms are commonly used to determine the instantaneous position of a vehicle. Inertial navigation system (INS) data is crucial for estimating the vehicle's position and attitude. When the VDR algorithm module starts running, it needs to estimate the vehicle's initial attitude using INS data. As the vehicle moves, its attitude needs to be updated in real time using dynamically acquired INS data. The vehicle's velocity also needs to be calculated using INS data, and the calculated velocity data is used to update the vehicle's position. Because this embodiment of the application resamples and filters the raw INS data collected by the INS device, taking into account the non-commutative errors caused by non-fixed-axis rotation and other signal interference, the INS data input to the VDR algorithm module is more accurate than the raw INS data, thus helping to improve the accuracy of vehicle position and attitude estimation.

[0144] For example, attitude control is very important in the field of drones. More accurate inertial data is conducive to more accurate and reliable calculation of the drone's attitude. Combined with PID (Proportional Integral Derivative) control algorithm to adjust motor power and maintain the drone's flight stability, combined with GPS (Global Positioning System) and barometers, the drone's heading control and navigation can be realized.

[0145] In the field of smart devices, more accurate inertial group data can be used to achieve more precise pedometers, gesture recognition, screen rotation, and other functions. In the field of industrial automation, more accurate inertial group data can help industrial robots achieve more precise motion control, path planning, and other functions. This application does not limit the specific scenarios in which the embodiments are applied.

[0146] Figure 11 is a block diagram illustrating an inertial navigation signal processing apparatus according to an exemplary embodiment of this application. The apparatus can be adapted to the implementation environment shown in Figure 3, for example, it can be specifically deployed on terminal 310 or server 320 in the implementation environment shown in Figure 3, or it can be deployed together on terminal 310 and server 320, or it can be deployed on a terminal or server in other implementation environments, or it can be deployed together on a terminal and server in other implementation environments, without limitation.

[0147] As shown in Figure 11, in an exemplary embodiment, the inertial navigation signal processing apparatus includes:

[0148] The acquisition module 1110 is configured to acquire the raw inertial signal sampled by the inertial device.

[0149] The determination module 1120 is configured to determine multiple time windows of the same length, and based on the original inertial navigation system signals sampled in each time window, determine the direction cosine matrix of each sampling moment in each time window; wherein, the direction cosine matrix of a sampling moment in a time window is obtained by multiplying the direction cosine matrices between the inertial navigation system at that sampling moment and its adjacent sampling moments in the time window.

[0150] The processing module 1130 is configured to determine the resampled inertial navigation signal for each time window based on the direction cosine matrix of the sampling time within each time window.

[0151] In another exemplary embodiment, the determining module 1120 is further configured to perform the following steps:

[0152] Within each time window, whenever a raw inertial signal is sampled, the raw inertial signal is stored in the data queue;

[0153] Based on the data stored in the data queue, the direction cosine matrix between the inertial navigation coordinate system at two consecutive sampling times within the current time window is determined, and the determined direction cosine matrix is ​​multiplied to obtain the direction cosine matrix at the latest sampling time.

[0154] When the end of the current time window is reached, the direction cosine matrix of the latest sampling time is determined as the direction cosine matrix of the end time, and the data queue is cleared.

[0155] In another exemplary embodiment, the raw inertial navigation system signal includes gyroscope measurements and accelerometer measurements, and the data queue includes a gyroscope measurement queue and an accelerometer measurement queue; the determination module 1120 is further configured to perform the following steps:

[0156] Based on the data stored in the gyroscope measurement queue, the direction cosine matrix between the inertial navigation system coordinate system is determined when the gyroscope measurement values ​​are sampled twice within the current time window. The determined direction cosine matrix is ​​then multiplied to obtain the first direction cosine matrix corresponding to the latest sampling time of the gyroscope measurement value.

[0157] Based on the data stored in the accelerometer measurement queue, the direction cosine matrix between the inertial navigation system coordinate system is determined when the accelerometer measurement values ​​are sampled twice within the current time window. The determined direction cosine matrix is ​​then multiplied to obtain the second direction cosine matrix corresponding to the latest sampling time of the accelerometer measurement value.

[0158] In another exemplary embodiment, the resampled inertial navigation signal includes resampled gyroscope measurements and resampled accelerometer measurements; the processing module 1130 is further configured to perform the following steps:

[0159] Based on the first direction cosine matrix at the end of each time window, the resampled gyroscope measurement value for each time window is determined.

[0160] Furthermore, based on the accelerometer measurements sampled within each time window and the second direction cosine matrix at each sampling moment, the resampled accelerometer measurements for each time window are determined.

[0161] In another exemplary embodiment, the timestamps of the gyroscope measurements and the accelerometer measurements are not synchronized; the processing module 1130 is further configured to perform the following steps:

[0162] At the end of each time window, determine the first latest timestamp in the accelerometer measurement queue;

[0163] Iterate through the timestamps in the gyroscope measurement queue and determine the interpolation position of the first latest timestamp in the gyroscope measurement queue to obtain the first timestamp in the gyroscope measurement queue after the interpolation position;

[0164] The resampled accelerometer measurements are updated based on the direction cosine matrix between the inertial navigation system coordinates when the gyroscope measurements were sampled twice, using the first timestamp and the previous timestamp.

[0165] In another exemplary embodiment, the determining module 1120 is further configured to perform the following steps:

[0166] Simultaneously compare the tail timestamps of the gyroscope measurement queue and the accelerometer measurement queue;

[0167] If the tail timestamp of the gyroscope measurement queue is greater than the tail timestamp of the accelerometer measurement queue, then the process of determining the direction cosine matrix of the latest sampling time within the current time window based on the data stored in the data queue is executed.

[0168] In another exemplary embodiment, the device further includes a filtering module configured to perform the following steps:

[0169] The resampled inertial navigation signal for each time window is stored in the filtering queue;

[0170] Perform frequency domain analysis on the data stored in the filter queue, and generate filter parameters based on the analysis results;

[0171] If the data in the filtering queue meets expectations, the filter is updated based on the filtering parameters, and the data in the filtering queue is filtered based on the updated filter to obtain the filtered data.

[0172] If the data in the filter queue does not meet expectations, the filter is placed in its initial state, and the data in the filter queue is passed out as the filtered data.

[0173] In another exemplary embodiment, the filtering module is further configured to perform the following steps:

[0174] The total spectral energy of the data stored in the filter queue is counted, and the cutoff frequency is calculated based on the preset spectral energy retention ratio and the total spectral energy.

[0175] If the cutoff frequency is less than the desired cutoff frequency, the cutoff frequency is set to the desired cutoff frequency, and filter parameters are generated based on the new cutoff frequency, and the filter queue is cleared.

[0176] It should be noted that the apparatus and method provided in the above embodiments belong to the same concept, and the specific ways in which each module and unit performs operations have been described in detail in the method embodiments, and will not be repeated here. In practical applications, the inertial signal processing apparatus provided in the above embodiments can be assigned to different functional modules as needed, that is, the internal structure of the apparatus can be divided into different functional modules to complete all or part of the functions described above, and this is not a limitation here.

[0177] Embodiments of this application also provide an electronic device, including: one or more processors; and a memory for storing one or more computer programs, which, when executed by the one or more processors, cause the electronic device to implement the inertial navigation signal processing methods provided in the various embodiments described above.

[0178] Figure 12 shows a schematic diagram of a computer system suitable for implementing the electronic device of the present application embodiments. It should be noted that the electronic device may be the terminal 310 or server 320 in the implementation environment shown in Figure 3, or it may be a terminal or server in other implementation environments; no limitation is imposed here. It should also be noted that the computer system 1200 of the electronic device shown in Figure 12 is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of the present application.

[0179] As shown in Figure 12, the computer system 1200 includes a Central Processing Unit (CPU) 1201, which can perform various appropriate actions and processes based on computer programs stored in Read-Only Memory (ROM) 1202 or loaded from storage portion 1208 into Random Access Memory (RAM) 1203, such as performing the methods described in the above embodiments. The RAM 1203 also stores various computer programs and data required for system operation. The CPU 1201, ROM 1202, and RAM 1203 are interconnected via a bus 1204. An input / output (I / O) interface 1205 is also connected to the bus 1204.

[0180] The following components are connected to I / O interface 1205: an input section 1206 including a keyboard, mouse, etc.; an output section 1207 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 1208 including a hard disk, etc.; and a communication section 1209 including a network interface card such as a LAN (Local Area Network) card, modem, etc. The communication section 1209 performs communication processing via a network such as the Internet. A drive 1210 is also connected to I / O interface 1205 as needed. Removable media 1211, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., are installed on drive 1210 as needed so that computer programs read from them can be installed into storage section 1208 as needed.

[0181] Specifically, according to embodiments of this application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program including a computer program for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication section 1209, and / or installed from removable medium 1211. When the computer program is executed by central processing unit (CPU) 1201, it performs various functions defined in the system of this application.

[0182] It should be noted that the computer-readable medium shown in the embodiments of this application can be a computer-readable signal medium, a computer-readable storage medium, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, optical fiber, portable compact disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. Computer programs contained on computer-readable media can be transmitted using any suitable medium, including but not limited to: wireless, wired, etc., or any suitable combination thereof.

[0183] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. Each block in a flowchart or block diagram may represent a module, segment, or portion of code, which contains one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0184] The units described in the embodiments of this application can be implemented in software or hardware, and the described units can also be located in a processor. The names of these units do not necessarily limit the specific unit itself.

[0185] Another aspect of this application provides a computer-readable storage medium storing a computer program that, when executed by a processor of an electronic device, implements the inertial navigation system signal processing method as described above. This computer-readable storage medium may be included in the electronic device described in the above embodiments, or it may exist independently and not assembled into the electronic device.

[0186] Another aspect of this application provides a computer program product comprising a computer program stored in a computer-readable storage medium. A processor of an electronic device reads the computer program from the computer-readable storage medium and executes the computer program, causing the electronic device to perform the inertial navigation signal processing methods provided in the various embodiments described above.

[0187] In summary, this application provides an inertial navigation system (INS) signal processing method, apparatus, device, computer-readable storage medium, and computer program product. It acquires the raw INS signal sampled by the INS device, determines multiple time windows of equal length, and, based on the raw INS signal sampled within each time window, determines the direction cosine matrix for each sampling moment within that time window. The direction cosine matrix for a single sampling moment within a time window is obtained by multiplying the direction cosine matrices between the INS coordinate system at that sampling moment and its adjacent sampling moments within that time window. Finally, based on the direction cosine matrices for each sampling moment within each time window, the resampled INS signal for each time window is determined. Because the calculation of the direction cosine matrix considers the non-commutative error caused by non-fixed-axis rotation, the resampling results better reflect the true motion state of the object, thereby improving the accuracy of INS signal resampling.

[0188] Furthermore, when determining the direction cosine matrix for each sampling moment based on the raw inertial navigation system (INS) signals sampled within each time window, whenever a raw INS signal is sampled within each time window, it is stored in the data queue. Based on the data stored in the data queue, the direction cosine matrix between the INS coordinate systems at two consecutive sampling moments within the current time window is determined. The determined direction cosine matrix is ​​then multiplied to obtain the direction cosine matrix for the latest sampling moment. When the current time window ends, the direction cosine matrix for the latest sampling moment is used as the direction cosine matrix for the end moment, and the data queue is cleared. This dynamic storage and calculation method makes the calculation of the direction cosine matrix more flexible and accurate, while timely clearing of the data queue avoids data redundancy and improves data processing efficiency.

[0189] When the original inertial navigation system (INS) signal includes gyroscope and accelerometer measurements, and the data queue includes gyroscope and accelerometer measurement queues, the direction cosine matrix between the INS coordinate systems at two consecutive sampling times within the current time window is determined based on the data stored in the gyroscope measurement queue. This determined direction cosine matrix is ​​then multiplied to obtain the first direction cosine matrix corresponding to the latest sampling time of the gyroscope measurement. Similarly, based on the data stored in the accelerometer measurement queue, the direction cosine matrix between the INS coordinate systems at two consecutive sampling times within the current time window of the accelerometer measurement is determined. This determined direction cosine matrix is ​​then multiplied to obtain the second direction cosine matrix corresponding to the latest sampling time of the accelerometer measurement. Calculating the direction cosine matrices for both gyroscope and accelerometer measurements separately considers the different characteristics of the two types of measurements, making the resampling results more accurate and improving the targeting of processing different types of INS signals.

[0190] Within each time window, the initial and final moments are considered as one sampling moment of the original inertial navigation system (INS) signal. The INS signal sampled at the final moment is the most recently sampled INS signal within the current time window, and the INS signal sampled at the beginning moment is the INS signal sampled at the end moment of the previous time window. This processing method ensures the continuity of data between time windows, guarantees the continuity of data during resampling, avoids data discontinuity caused by time window division, and further improves the accuracy of resampling.

[0191] When the resampled inertial navigation system (INS) signal includes resampled gyroscope measurements and resampled accelerometer measurements, the resampled gyroscope measurements for each time window are determined based on the first direction cosine matrix at the end of each time window; and the resampled accelerometer measurements for each time window are determined based on the accelerometer measurements sampled within each time window and the second direction cosine matrix at each sampling moment. By determining the resampling results based on different direction cosine matrices and measurements, the information from different types of data is fully utilized, enabling the resampled gyroscope and accelerometer measurements to more accurately reflect the object's angular velocity and acceleration information, thus improving the accuracy of resampling.

[0192] When the timestamps of gyroscope and accelerometer measurements are out of sync, at the end of each time window, the latest timestamp in the accelerometer measurement queue is determined. The timestamps in the gyroscope measurement queue are traversed, and the interpolation position of the latest timestamp within the queue is determined to obtain the first timestamp after the interpolation position. Based on the direction cosine matrix between the inertial navigation system coordinate system when sampling gyroscope measurements twice using the first timestamp and the timestamp preceding the latest timestamp, the resampled accelerometer measurements are updated. This interpolation and update method solves the inaccuracy problem caused by timestamp asynchrony in resampling, enabling resampled accelerometer measurements to more accurately reflect the object's acceleration information and improving the reliability of resampling.

[0193] When updating resampled accelerometer measurements based on the direction cosine matrix between the inertial navigation system (INS) coordinates when sampling gyroscope measurements twice (using the first timestamp and the timestamp preceding the first latest timestamp), matrix multiplication is performed on the first direction cosine matrix corresponding to the second latest timestamp in the gyroscope measurement queue, the direction cosine matrix between the INS coordinates when sampling gyroscope measurements twice (using the first timestamp and the timestamp preceding the first latest timestamp), and the direction cosine matrix between the INS coordinates when sampling gyroscope measurements twice (using the first timestamp and the timestamp preceding the first latest timestamp). This yields the direction cosine matrix of the timestamp preceding the first latest timestamp, and the resampled accelerometer measurements are updated based on this direction cosine matrix. This matrix multiplication method fully considers the relationship between different timestamps, making the updated resampled accelerometer measurements more accurate and improving the resampling precision.

[0194] During processing, the tail timestamps of the gyroscope measurement queue and the accelerometer measurement queue are compared simultaneously. If the tail timestamp of the gyroscope measurement queue is greater than that of the accelerometer measurement queue, the process of determining the direction cosine matrix of the latest sampling time within the current time window based on the data stored in the data queue is executed. This comparison mechanism ensures the validity and consistency of the data, avoids erroneous calculations caused by data asynchrony, and improves the reliability of the resampling process.

[0195] After obtaining the resampled inertial navigation system (INS) signal for each time window, it is stored in a filtering queue. Frequency domain analysis is performed on the data stored in the filtering queue, and filtering parameters are generated based on the analysis results. If the data in the filtering queue meets expectations, the filter is updated based on the filtering parameters, and the data in the filtering queue is filtered using the updated filter to obtain filtered data. If the data in the filtering queue does not meet expectations, the filter is reset to its initial state, and the data in the filtering queue is passed out as the filtered data. Through frequency domain analysis and adaptive filtering, noise interference in the resampled INS signal can be effectively reduced, making the filtered data more suitable for practical applications and improving data quality and usability.

[0196] When performing frequency domain analysis on the data stored in the filter queue and generating filter parameters based on the analysis results, the total spectral energy of the data stored in the filter queue is statistically analyzed. The cutoff frequency is calculated based on a preset spectral energy retention ratio and the total spectral energy. If the cutoff frequency is less than the desired cutoff frequency, it is set to the desired cutoff frequency, and filter parameters are generated based on the new cutoff frequency. The filter queue is then cleared. This adaptive adjustment of the cutoff frequency ensures the stability and reliability of the filtering effect, avoids over- or under-filtering problems caused by an unreasonable cutoff frequency, and further improves the accuracy and effectiveness of the filtering.

[0197] Furthermore, the instruction manual provides specific formulas for calculating the direction cosine matrix based on gyroscope and accelerometer measurement data. For gyroscope measurements, the formula... Calculations are performed on accelerometer measurements using the formula... These formulas take into account the different measurement characteristics of gyroscopes and accelerometers, and can more accurately reflect the attitude changes of objects under different motion states, improving the accuracy of direction cosine matrix calculation, and thus improving the accuracy of resampled inertial navigation system signals.

[0198] Regarding filtering, the manual details the parameter generation formulas for the Biquad filter, such as... These formulas generate filter parameters based on parameters such as the cutoff frequency ω0, which can precisely adjust the filter performance according to the spectral characteristics of the signal, making the filter better adapt to the characteristics of the resampled inertial navigation system signal, effectively filtering out noise, and improving the quality of the filtered data.

[0199] In the frequency domain analysis, the manual introduces a method for statistically analyzing the total energy of the spectrum using the Fast Fourier Transform (FFT), namely... FFT can efficiently convert time-domain signals into frequency-domain signals and accurately present the spectral distribution of the signal. Based on this, the total spectral energy provides a reliable basis for subsequent calculation of cutoff frequency and generation of filter parameters, enhancing the accuracy and effectiveness of the filtering process.

[0200] The above description is merely a preferred exemplary embodiment of this application and is not intended to limit the implementation of this application. Those skilled in the art can easily make corresponding modifications or alterations based on the main concept and spirit of this application. Therefore, the scope of protection of this application should be determined by the scope of protection claimed in the claims.

[0201] It is understood that in the specific embodiments of this application, data such as inertial navigation system signals are involved. When the above embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

Claims

1. An inertial navigation system (INS) signal processing method, executed by an electronic device, the method comprising: Acquire the raw inertial navigation system (INS) signals sampled by the INS; Multiple time windows of equal length are determined, and based on the original inertial navigation system (INS) signals sampled within each time window, the direction cosine matrix for each sampling moment within each time window is determined. The direction cosine matrix for a single sampling moment within a time window is obtained by multiplying the direction cosine matrices between the INS coordinate system at that sampling moment and its adjacent sampling moments within the time window. The resampled inertial navigation signal for each time window is determined based on the direction cosine matrix of the sampling time within each time window.

2. The method according to claim 1, wherein determining the direction cosine matrix at each sampling time within each time window based on the original inertial navigation signal sampled within each time window comprises: Within each time window, whenever a raw inertial group signal is sampled, the raw inertial group signal is stored in the data queue; Based on the data stored in the data queue, the direction cosine matrix between the inertial navigation system coordinate system at two consecutive sampling times within the current time window is determined, and the determined direction cosine matrix is ​​multiplied to obtain the direction cosine matrix at the latest sampling time. When the end time of the current time window is reached, the direction cosine matrix of the latest sampling time is determined as the direction cosine matrix of the end time, and the data queue is cleared.

3. The method according to claim 2, wherein the original inertial navigation system (INS) signal includes gyroscope measurements and accelerometer measurements, and the data queue includes a gyroscope measurement queue and an accelerometer measurement queue; the step of determining the direction cosine matrix between the INS coordinate systems at two consecutive sampling times within the current time window based on the data stored in the data queue, and performing a multiplication operation on the determined direction cosine matrix to obtain the direction cosine matrix at the latest sampling time, includes: Based on the data stored in the gyroscope measurement queue, the direction cosine matrix between the inertial navigation system and the gyroscope measurement values ​​sampled before and after the current time window is determined, and the determined direction cosine matrix is ​​multiplied to obtain the first direction cosine matrix corresponding to the latest sampling time of the gyroscope measurement value. Based on the data stored in the accelerometer measurement queue, the direction cosine matrix between the inertial navigation system and the two consecutive accelerometer measurement values ​​sampled within the current time window is determined. The determined direction cosine matrix is ​​then multiplied to obtain the second direction cosine matrix corresponding to the latest sampling time of the accelerometer measurement value.

4. The method according to claim 2 or 3, wherein within each time window, the initial time and the end time are respectively regarded as one sampling time of the original inertial group signal; the original inertial group signal sampled at the end time is the most recently sampled original inertial group signal within the current time window; and the original inertial group signal sampled at the start time is the original inertial group signal sampled at the end time of the previous time window.

5. The method according to claim 3 or 4, wherein the resampled inertial navigation system (INS) signal includes resampled gyroscope measurements and resampled accelerometer measurements; the step of determining the resampled INS signal for each time window based on the direction cosine matrix of the sampling time within each time window includes: Based on the first direction cosine matrix at the end of each time window, the resampled gyroscope measurement value for each time window is determined. Furthermore, based on the accelerometer measurements sampled within each time window and the second direction cosine matrix at each sampling moment, the resampled accelerometer measurements for each time window are determined.

6. The method according to claim 5, wherein the timestamps of the gyroscope measurements and the accelerometer measurements are not synchronized; The method further includes: At the end of each time window, the first latest timestamp in the accelerometer measurement queue is determined; Traverse the timestamps in the gyroscope measurement queue and determine the interpolation position of the first latest timestamp in the gyroscope measurement queue to obtain the first timestamp in the gyroscope measurement queue after the interpolation position; The resampled accelerometer measurements are updated based on the direction cosine matrix between the inertial navigation system coordinates when the gyroscope measurements are sampled twice, using the first timestamp and the previous timestamp of the first latest timestamp.

7. The method according to claim 6, wherein updating the resampled accelerometer measurement based on the direction cosine matrix between the inertial navigation system coordinate system when sampling gyroscope measurements twice using the first timestamp and the previous timestamp of the first latest timestamp comprises: The direction cosine matrix corresponding to the second latest timestamp in the gyroscope measurement queue, the direction cosine matrix between the inertial coordinate system when sampling gyroscope measurement values ​​twice, and the direction cosine matrix between the inertial coordinate system when sampling gyroscope measurement values ​​twice using the first timestamp and the timestamp before the first latest timestamp are multiplied by matrix to obtain the direction cosine matrix of the timestamp before the first latest timestamp. The resampled accelerometer measurement is updated based on the direction cosine matrix of the previous timestamp of the first latest timestamp.

8. The method according to claim 6 or 7, further comprising: Simultaneously compare the tail timestamps of the gyroscope measurement queue and the accelerometer measurement queue; If the tail timestamp of the gyroscope measurement queue is greater than the tail timestamp of the accelerometer measurement queue, then the process of determining the direction cosine matrix of the latest sampling time within the current time window based on the data stored in the data queue is executed.

9. The method according to any one of claims 1 to 8, further comprising: The resampled inertial navigation signal for each time window is stored in the filtering queue; Frequency domain analysis is performed on the data stored in the filtering queue, and filtering parameters are generated based on the analysis results; If the data in the filtering queue meets expectations, the filter is updated based on the filtering parameters, and the data in the filtering queue is filtered based on the updated filter to obtain filtered data. If the data in the filtering queue does not meet expectations, the filter is placed in its initial state, and the data in the filtering queue is passed out as filtered data.

10. The method according to claim 9, wherein performing frequency domain analysis on the data stored in the filter queue and generating filter parameters based on the analysis results includes: The total spectral energy of the data stored in the filtering queue is statistically analyzed, and the cutoff frequency is calculated based on the preset spectral energy retention ratio and the total spectral energy. If the cutoff frequency is less than the desired cutoff frequency, then the cutoff frequency is set to the desired cutoff frequency, and filter parameters are generated based on the new cutoff frequency, and the filter queue is cleared.

11. An inertial navigation system signal processing apparatus, the apparatus comprising: The acquisition module is configured to acquire the raw inertial navigation signal sampled by the inertial navigation device. The determination module is configured to determine multiple time windows of the same length, and based on the original inertial navigation system signals sampled within each time window, determine the direction cosine matrix for each sampling moment within each time window; wherein, the direction cosine matrix for a sampling moment within a time window is obtained by multiplying the direction cosine matrices between the inertial navigation system at that sampling moment and its adjacent sampling moments within the time window. The processing module is configured to determine the resampled inertial navigation signal for each time window based on the direction cosine matrix of the sampling time within each time window.

12. An electronic device, comprising: One or more processors; A memory for storing one or more computer programs that, when executed by one or more processors, cause the electronic device to perform the method as described in any one of claims 1-10.

13. A computer-readable storage medium having a computer program stored thereon, which, when executed by a processor of an electronic device, causes the electronic device to perform the method of any one of claims 1-10.

14. A computer program product comprising a computer program that, when executed by a processor of an electronic device, implements the method as described in any one of claims 1-10.