The invention covers coning, sculling and scrolling error compensation method for strapdown inertial navigation system. Specifically, the mentioned method utilizes data processing techniques.
Strapdown inertial navigation system (SINS) is a navigation system that calculates the state (position, velocity, angle) of a vehicle in the future based on its initial state (dead-recknoing technique). With civil devices that do not need high precision or complicated moving orbits, or can optionally use integrated auxiliary sensor devices such as GNSS and ground information stations, the closed-loop combination of observers (such as the Kalman filter) can maintain or reduce the systematic error to an acceptable level with the help of auxiliary sensor updating process. However, in reality, devices that require high independence often move with complex trajectories to avoid obstacles and are not dependent on external auxiliary sensors (due to possible interference). Therefore, ensuring proactive systematic error in all situations is essential.
The problem of controlling the allocation of positioning errors is a critical aspect in the design of navigation systems with a given total error requirement. Inertial positioning errors are categorized into three main components: sensor error, initialization error, and computational error. Efforts to mitigate and estimate errors arising from sensors and initialization are always prioritized, as they are typically the primary contributors to the total error. However, neglecting computational errors can limit the operational range of the system. The computational errors discussed here include not only rounding errors due to hardware limitations (which are uncorrectable and constitute a small proportion) but also errors related to the rounding methods used during the integration of differential equations of strapdown inertial navigation system. In low-cost commercial systems, under conditions where GPS is not used and complex movements occur, the total strapdown inertial navigation system error will be greater than the estimated error caused by sensor and initialization errors. The movements referred to here include those causing angular computation errors (hereafter called coning motion), those causing velocity computation errors (hereafter called sculling motion), and those causing position computation errors (hereafter called scrolling motion).
The techniques for compensating errors caused by movements that generate angular, velocity, and position computational errors have been addressed since the introduction of strapdown inertial navigation systems in the 1970s. However, due to the limitations in high-frequency computation and the lack of effective approaches, there has been little progress in compensating for these errors over the years. These approaches have not been optimized for all types of movements and primarily focus on compensating for specific movements, such as pure coning, sculling, and scrolling motions that create angular, velocity, and position computational errors, respectively.
Current technical solutions for compensating errors in strapdown inertial navigation systems have two main drawbacks:
Complexity and computational load: These solutions often use trigonometric functions that are difficult to implement in embedded systems or employ rough approximation functions that result in large errors. Alternatively, they might use functions involving double vector products, which significantly increase computational load.
High-frequency computation requirements: To reduce computational errors, these solutions typically require high-frequency calculations. This is to compensate for the large errors that arise from low-frequency computations. Some methods use time-based functions to approximate acceleration and angular velocity over short periods for integration, resulting in a high computational burden. High-frequency computation solutions depend on the hardware capabilities of the inertial sensors to provide high-frequency acceleration or angular velocity data.
Transforming the coordinate system (a) to another coordinate system (b) with the same origin by rotation can be represented using a set of Euler angles (roll, pitch, yaw), a 3×3 direction cosine matrix (DCM-C), or a four-dimensional vector (quaternion-q). With a basic understanding, these quantities can be converted into one another. The quaternion representing the transformation of coordinate system (b) obtained by rotating system (a) around a fixed unit vector e (which can be temporarily fixed) by an angle α is given by:
The differential form of the equation (1) is obtained as follows:
where ω is instantaneous angular velocity vector in the b-coordinate system (b).
From the equation (2) we have:
Equation (3) shows that if vector e is unchanged during the t1 to t2 period of time, we have:
here w=|ω|.
However, the positioning calculation in equation (2) requires the integration of the angular velocity vector w over time rather than its magnitude. Note that the vector e can change over time. Without loss of generality, we define the vector ϕ as follows:
On the other hand, from equation (2) combined with equations (1) and (3), we have:
From equation (4), we obtain:
Combining equations (5) and (6), we obtain:
Currently, technical solutions commonly used to address the problem of compensating coning errors can be classified into two types:
The first approach is the rotation vector method:
With the traditional solution approach
Vector ϕ from here will be call the rotation vector:
when f(a)=α, we get:
From equations (1) and (9), we have:
Substituting equations (8) and (10) into equation (7), we obtain:
The relationship between the direction cosine matrix (DCM) and the four-dimensional vector (quaternion) is as follows:
Given equations (13) and (11), for a small dt, we can approximate as follows:
The second approach is the Rodrigues vector:
Rodrigues vector is defined as follows:
In this case, we have:
Combining equations (15) and (1), we obtain:
Substituting equations (15) and (16) into equation (7), we have:
Similarly, using equations (13) and (17), we have:
It is evident that both approaches in equations (12) and (18) involve expressions for ϕ with three components, with the third component typically requiring the most computational effort. Additionally, the expression for the DCM matrix always contains three components.
In this section, the author summarizes results from other researchers, particularly from Paul G. Savage's series [Paul G. Savage, “Strapdown Analytics,” Strapdown Associates, 2000, 2nd edition, two parts]. The main objective is to highlight the components that the navigation system needs to compensate for in differential equation calculations. These errors are generated by movements, referred to as coning, sculling, and scrolling.
Computation of a strapdown inertial navigation system on different coordinate reference frames (such as ECI, ECEF, NED, etc.) are based on convenience in calculations, habits, and the integration of various data sources. Similarly, calculations involving Euler angles, DCM differential equations, or quaternions are performed.
For example, when computing in the NED frame we have:
For Euler angles, derived from the DCM matrix using equation (13), the quaternion is calculated using the rotation vector differential equation (7).
For the velocity:
N—Navigation frame, ν—velocity, C—Direction cosine matrix, g—gravity, SF—specific force, b or B—body frame, i—inertial frame, m—sample following the time t.
For the position:
In which
p—position, Tm—the duration from tm-1 to tm.
With average understanding, the solution to the positioning equations for velocity and position in the body frame, assuming that the orientation of the rotation vector is constant and that the direction of acceleration, angular velocity, and their ratios remain unchanged, as well as the lack of correlation between the DCM matrix and the velocity vector, is given by:
In which
The measured value returned by the accelerometer, ωibb—The measured value returned by the gyroscope;
For low-cost navigation systems, the calculations are typically performed according to equation (21).
Under general assumptions and with a basic understanding, the system of navigation equations can be expressed in the following generalized form:
In which Φ=|Φ| and is defined in (12) and (14). The components Φ, η and ζ are calculated as follows:
Note that the components on the right side of expression (23) starting from the second one are categorized as follows: In equation (23.1), they are referred to as the coning component. In equation (23.2), they are referred to as the velocity component, and the components in equation (23.3) are referred to as the position component. If we revisit equation (31), we see that these errors are not compensated for.
Thus, after solving equation (22) in its general form and discretizing it, we obtain the following:
In which Φm, ηm and ζm are calculated by solving the differential equation (23) combined with the use of the rounding function as follows:
In practice, there have been many specific implementations that can be applied to embedded software. However, the piecewise computation of each part in equation (23) is quite challenging, and the algorithm is not yet truly optimized for all types of motion systems.
The existing methods for compensating motion errors that cause angular, velocity, and position computation errors, as discussed in the technical state of the invention, have certain limitations. The objective of this invention is to utilize a new set of variables in the formula for computing the compensation for motion errors, simplifying the calculation of angular error compensation by reducing the reliance on double vector multiplication or trigonometric functions, and controlling accuracy by using error approximation functions to compare methods. Another goal is to improve the accuracy of the compensation for angular computation errors, which can then be applied to the calculation of velocity and position compensation according to reusable formulas mentioned in the technical state of the invention.
Given the frequency of motion that causes angular, velocity, and position computation errors, it is crucial to choose a computation frequency that is at least twice this frequency, as per the Nyquist sampling theorem. Ensuring the computation frequency meets Nyquist's requirements, the proposed method solves the differential equations at the same frequency as the navigation computation frequency using methods like the Dormand-Prince fifth or eighth-order, instead of older solutions that required higher computation frequencies for error compensation or building time-based functions for acceleration and angular velocity to perform integration.
To achieve the above objectives, the proposed technical solution includes the following steps: step 1: select the computation function; step 2: choose the computation frequency and a method for solving the system of differential equations based on the analysis of the motion frequency of the object; step 3: initialize initial values for strapdown inertial navigation system in the chosen reference frame; step 4: calculate the coning error compensation; step 5: calculate the quaternion, DCM matrix, and Euler angles; step 6: compute the rotation vector value; step 7: compute the sculling and scrolling error compensation; step 8: calculate velocity and position outputs in the computation coordinate system.
The proposed method for compensating motion errors that lead to angular computation errors involves:
The approach of this method is as follows, choose f(α) in the final expression of the left-hand side of (7), such that:
In this case, the differential expression of ϕ in (7) will have only two components. To solve the differential equation, we select f(α) as follows:
Similarly, we have:
(28) is obtained using the small angle α and (7) has the following form:
Using the Taylor approximation function:
(29) with the second-order Taylor approximation, can be approximated as:
Similar to (14), (19), from (13), (28) we obtain:
(31) can be approximated as follows:
Comparing expressions (29-30) with the results of the first method (12) and the second method (18) discussed in the technical background of the invention, we observe that expressions (29-30) do not contain trigonometric components or double vector multiplications. Thus, these expressions offer a computational advantage for embedded systems.
To compare the accuracy of the proposed method for compensating motion-induced angular computation errors, as well as the rounding order, the proposed method employs the following error approximation functions to evaluate effectiveness:
Refer to the comparison results shown in
The error approximation functions use zero-order, first-order, and second-order Taylor series expansions as indicated in expression (29) of the proposed method. These are labeled accordingly in
The error approximation functions in the second method, as shown in equation (18), are labeled as “Wu” in
The proposed method for compensating motion-induced velocity and position errors involves:
There are various methods for solving differential equations, such as Picard, Taylor, Euler, and Runge-Kutta. Each method has its own advantages and disadvantages. In this proposed solution, the ODE8 (Dormand-Prince) method is used to solve the differential equations.
Φp—The compensation for motion-induced angular computation errors is calculated in the section above using (29).
The following description provides a detailed implementation of the invention with reference to the accompanying drawings (
The method for compensating motion-induced errors that cause angular, velocity, and position computation errors in strapdown inertial navigation systems is specified through the following steps:
Step 1: Select the computation function for compensating motion-induced errors that result in angular computation errors, based on the required angular computation error and the computational load (time). Use the theoretical error computation chart to guide this selection.
Depending on the desired computation error (accuracy), the computational load (time), or convenience for embedded system implementation, choose between an approximation function or an exact function from equation (29). Equation (29) has been theoretically computed and presented in graphical form (
Step 2: choose the computation frequency and the method for solving the system of differential equations based on the analysis of the object's motion frequency. The computation frequency depends on the motion frequency of the mechanical object, which is typically known before designing the application or environment. Alternatively, frequency spectrum analyzers can be used to determine the object's motion frequency. For strapdown inertial sensor systems with a cut-off frequency f1, or additional vibration damping with a damping frequency f2. the computation frequency is usually 3-5 times greater than the minimum of f1 and f2. The proposed but not limited differential equation solving method is the Dormand-Prince method of order 5 or higher.
Step 3: initialize initial values for strapdown inertial navigation system in the chosen reference frame. This step involves initializing the starting values for solving the differential equations system (29, 33.2, 33.3). Providing incorrect initial values will result in initialization errors in the system.
The variables requiring initial values are the initial position, velocity, and angle of the object before computation. Based on the initial values of position, velocity, and angle, the initial values for Φ, η and ζ will be computed using the related equations (28, 22.2, and 22.3). The angular velocity (ω), and acceleration (fibb) will be continuously updated by the Inertial Measurement Unit (IMU). As mentioned in the introduction, the final total error will be divided into three parts: errors due to incorrect initialization (such as errors in position, velocity, and angle for the object in the positioning system initialization method, typically using high-precision master devices), sensor errors (i.e., measurement errors of the IMU sensors), and errors addressed in this invention, which are errors resulting from the computation of differential equations (describing the object's dynamics).
Step 4: calculate the coning error compensation. After selecting the function in step 1, the frequency and method for solving the differential equations in step 2, and the initial values in step 3, compute the coning error compensation.
The choice of function in step 1 depends on the required error and the computational load (time) for each computation cycle. The choice of computation frequency depends on the cut-off frequency used in the inertial sensor (i.e., the sensor's limit) and the design or application of the device containing the inertial sensor.
For example, in the case when using the second-order approximation (30), a computation frequency of 100 Hz is applied for positioning devices on marine vessels (with the primary sea wave frequency concentrated between 0 and 0.3 Hz, the ship's turning motion frequency being less than 1 Hz, and the engine's vibration frequency being 50 Hz, although with much lower amplitude compared to the sea wave and motion frequencies due to the inertial sensor's location away from the engine on the ship). The proposed solution utilizes the widely known ODE8 (Dormand-Prince method of order 8). Based on the previous value Φ (at time t) and the angular velocity ω from the IMU sensor (at time t), the value of Φ at the next step (at the time t+0.01 second) is computed. This value represents the compensation for motion-induced errors affecting angular computation that needs to be calculated.
Step 5: calculate the quaternions, direction cosine matrix (DCM), and Euler angles using the coning error compensation obtained in step 4.
The purpose of this step is to calculate the Euler angles, the direction cosine matrix (DCM), or the quaternion for the next time instance (at t+0.01 seconds) after determining the motion error compensation for angular computation errors obtained in step 4 (at t+0.01 seconds). These relationships are described by equations (28) and (31).
Step 6: compute the rotation vector Φ according to equation (33.1) and the rate of change of the angular velocity vector {dot over (Φ)} according to equation (12).
The purpose of this step is to compute the values of the angular velocity vector and its rate of change (at time t) based on the motion error compensation for angular computation errors obtained in step 4 (at time t) to be used in the calculation of motion error compensation for velocity and position performed in step 7.
Step 7: compute the sculling and scrolling error compensation by solving the differential equations (33.2) and (33.3). This is done based on the calculation frequency, the numerical method for solving differential equations chosen in step 2, and the initial values set in step 3.
Leveraging the high accuracy (controlled in step 1) in the motion error compensation for angular computation errors calculated in step 4 (at time t), the motion error compensation for velocity and position is computed in this step by using a combination of buffers (angular velocity vector and its rate of change) from step 6 (at time t). The ODE8 (Dormand-Prince) method of order 8 is used to solve the differential equations (33.2 and 33.3) to compute the motion error compensation for velocity and position at time t+0.01 seconds.
Step 8: calculate the output values for velocity and position in the computation coordinate system. For the NED (North-East-Down) coordinate system, this involves using the DCM matrix obtained in step 5 and the velocity and position compensation calculated in Step 7.
The purpose of this step is to update the new values for position, velocity, and angles (at time t+0.01 seconds) after calculating the compensation for errors due to motion affecting the angle, velocity, and position using the relationships provided in equations (28, 22.2, and 22.3).
In the subsequent computation cycles (at times t+0.02 seconds and following), steps 4 through 8 are performed sequentially until the positioning process is completed (providing the position, velocity, and angle of the device containing the inertial measurement unit over time).
The methods outlined are detailed purely as technical solutions intended to describe the invention and are not intended to limit the scope of the invention. Although the invention is described in detail with reference to the methods outlined, it should be understood that those skilled in the art may create variations of the technical solutions described or equivalently substitute the technical features of the solutions without departing from the spirit and scope of the proposed technical solution as described in the implementation methods of the invention.
in which, g=9.81 m/s2, α=10°, Ω=1 Hz.
Referring to
Table 1 provides an example illustrating how different motion frequencies that cause errors in angular computation, velocity, and position, as well as different angular velocities, result in varying positioning output errors. This also serves as a basis for selecting the system's calculation frequency.
The results from
| Number | Date | Country | Kind |
|---|---|---|---|
| 1-2024-00549 | Jan 2024 | VN | national |