Calibration method, device, equipment, medium and program product of inertial measurement unit
By collecting acceleration and angular velocity data of the IMU on a normal plane, constructing a system of linear equations and solving for the zero-bias calibration value, the problem of IMU calibration relying on high-precision equipment is solved, achieving low-cost and high-efficiency calibration results.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- XIAN NAVINFO INFORMATION TECH CO LTD
- Filing Date
- 2026-03-04
- Publication Date
- 2026-06-05
Smart Images

Figure CN122149526A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of inertial equipment calibration, and more particularly to a calibration method, apparatus, equipment, medium, and program product for an inertial measurement unit. Background Technology
[0002] An Inertial Measurement Unit (IMU) achieves navigation, positioning, and attitude control by measuring the angular velocities of accelerometers and gyroscopes. Its core applications include autonomous driving and robotics. The angular velocity measurements from the IMU's accelerometers and gyroscopes have inherent biases (zero-bias errors). Calibrating the IMU can eliminate these zero-bias errors, which is a key technology for improving its measurement accuracy.
[0003] Currently, IMU calibration requires measuring the IMU on a high-precision horizontal platform and turntable. The accuracy of the horizontal platform and turntable, as well as the angular velocity error, are highly demanding, resulting in excessively high calibration difficulty and cost for the IMU. Summary of the Invention
[0004] This application provides a calibration method, apparatus, device, medium, and program product for an inertial measurement unit (IMU), which aims to reduce the calibration difficulty and cost of IMUs.
[0005] In a first aspect, embodiments of this application provide a calibration method for an inertial measurement unit, comprising:
[0006] Multiple surfaces of the inertial measurement unit are sequentially and statically placed on a fixed support surface. Measurement data of the inertial measurement unit are collected while it is statically placed. The measurement data includes triaxial acceleration and / or triaxial angular velocity.
[0007] Based on the measurement data, construct a system of linear equations that includes acceleration error or angular velocity error;
[0008] Solve the system of linear equations to obtain the zero-bias calibration values of acceleration or angular velocity corresponding to the three axes.
[0009] In some possible implementations, the process of constructing a system of linear equations includes:
[0010] Calculate the average acceleration of each surface of the inertial measurement unit based on the measurement data;
[0011] Construct an acceleration model matrix. The elements in the i-th row of the acceleration model matrix consist of twice the difference between the average acceleration of the (i+1)-th surface and the average acceleration of the i-th surface on the corresponding axis component. i is an integer from 1 to n-1, and n is the number of surfaces of the inertial measurement unit.
[0012] Construct an acceleration observation vector. The i-th element of the acceleration observation vector is composed of the squared difference between the average acceleration of the (i+1)-th surface and the average acceleration of the i-th surface.
[0013] Based on the acceleration model matrix and acceleration observation vector, a system of linear equations is constructed using the zero-bias components of the accelerometer in the three axes as the parameter vectors to be solved.
[0014] In the above method, a linear equation system is constructed based on the difference and square difference of the average acceleration of adjacent surfaces of the inertial measurement unit. Twice the difference between the measured values of adjacent surfaces can be used as the model matrix element, thus eliminating the need to consider the influence of the gravity direction. At the same time, using the magnitude square difference of the measured values of adjacent surfaces as the observation vector, the nonlinear gravity invariance constraint can be transformed into a directly calculable linear expression. Thus, without the need for a precise horizontal reference, the equation system can be constructed using acceleration data from multiple surfaces, maximizing the use of redundant information from multi-attitude measurement data. This not only reduces the accuracy requirements for the measurement data collected from a single surface, but also reduces noise interference from zero-bias estimation by increasing the number of equations, thereby increasing the accuracy of the calculation results.
[0015] In some possible implementations, the process of constructing a system of linear equations includes:
[0016] Calculate the average angular velocity of each surface of the inertial measurement unit based on the measurement data;
[0017] Construct an angular velocity model matrix. The elements in the i-th row of the angular velocity model matrix consist of twice the difference between the average angular velocity of the (i+1)-th face and the average angular velocity of the i-th face on the corresponding axis component. i is an integer from 1 to n-1, and n is the number of faces of the inertial measurement unit.
[0018] Construct an angular velocity observation vector. The i-th element of the angular velocity observation vector is composed of the squared difference between the average angular velocity of the (i+1)-th surface and the average angular velocity of the i-th surface.
[0019] Based on the angular velocity model matrix and the angular velocity observation vector, a system of linear equations is constructed using the zero-bias components of the gyroscope on the three axes as the parameter vectors to be solved.
[0020] In the above method, the model matrix is constructed by twice the difference of the angular velocity components of adjacent surfaces, and the observation vector is constructed by the difference of the squared magnitude of the angular velocity of adjacent surfaces. The noise in the measurement process can be reduced by the difference operation of the adjacent surface data. The zero bias parameter that originally required high-precision turntable separation is transformed into a static linear problem. The approximate estimation of the zero bias value of angular velocity can be completed by relying only on multi-attitude static data, which can reduce the dependence of gyroscope calibration on high-precision turntable.
[0021] In some possible implementations, the measurement data includes the acceleration of multiple data points in each surface. Before constructing a system of linear equations containing acceleration or angular velocity errors based on the measurement data, the following steps are also included:
[0022] The acceleration of each data point in each face is filtered based on the variance of the acceleration of multiple data points in each face.
[0023] In the above method, for the acceleration data of each surface, the variance can be used as a statistical indicator to identify and eliminate abnormal data points introduced by instantaneous disturbances or sensor noise, thereby improving the data quality of each surface under static conditions and reducing the impact of measurement errors on zero-bias calibration.
[0024] In some possible implementations, the acceleration of each data point in each surface is filtered based on the variance of the acceleration of multiple data points in each surface, including:
[0025] For any target data point among multiple data points, a data window with a preset range centered on the target data point is selected.
[0026] Calculate the variance of the acceleration of all data points within the data window. If the calculated variance is greater than a preset threshold, the target data point is removed.
[0027] In the above method, a data window centered on the target data point and a variance threshold comparison mechanism are adopted. The local variance can be calculated by sliding window. This local variance can reflect the instantaneous fluctuations within the range of adjacent data points, thereby more accurately identifying isolated anomalies caused by sudden vibrations or noise. Furthermore, quantitative judgment is made by setting a preset threshold, which can avoid the loss of effective information by removing acceleration data within the normal range.
[0028] In some possible implementations, the data window ranges from 400 to 600 data points.
[0029] In the above method, the number of data points within the data window is limited to 400 to 600. This range is based on the analysis of the acceleration data of the inertial measurement unit. This can ensure that enough data points are provided to stabilize the variance, while avoiding the masking of outliers by too many data points, and can effectively eliminate interference noise.
[0030] In some possible implementations, the fixed support surface is a horizontal support surface.
[0031] In the above method, using a horizontal support surface as the support surface for the stable static attitude of the inertial measurement unit can not only reduce the requirements for the calibration environment, but also reduce the interference of the unknown gravity component introduced by the tilt of the support surface on the zero bias estimation, thereby reducing the overall calibration difficulty.
[0032] Secondly, embodiments of this application provide a calibration device for an inertial measurement unit, comprising:
[0033] The acquisition module is used to sequentially and statically place multiple surfaces of the inertial measurement unit on a fixed support surface, and acquire measurement data of the inertial measurement unit when it is statically placed. The measurement data includes triaxial acceleration and / or triaxial angular velocity.
[0034] The equation building module is used to construct a system of linear equations that include acceleration or angular velocity errors based on measurement data.
[0035] The calibration module is used to solve the linear equation system to obtain the zero-bias calibration values of acceleration or angular velocity for the three axes.
[0036] Thirdly, embodiments of this application provide an electronic device, including: a memory and a processor;
[0037] The memory stores instructions that the computer executes;
[0038] The processor executes computer execution instructions stored in memory, causing the processor to perform the first aspect and / or various possible implementations of the first aspect as described above.
[0039] Fourthly, embodiments of this application provide a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the first aspect and / or various possible implementations of the first aspect.
[0040] Fifthly, embodiments of this application provide a computer program product, including a computer program that, when executed by a processor, implements the first aspect and / or various possible implementations of the first aspect.
[0041] The inertial measurement unit (IMU) calibration method, apparatus, equipment, medium, and program products provided in this application involve sequentially placing multiple surfaces of the IMU statically on a horizontal surface. Measurement data is collected from each surface while it is statically positioned. Based on this measurement data, a system of linear equations can be constructed. Solving the constructed system of equations yields the zero-bias error of the IMU, which serves as the calibration value. This calibration method only requires the collection of acceleration and angular velocity data from the IMU, without relying on a high-precision horizontal platform or turntable, effectively reducing calibration costs and difficulty. Attached Figure Description
[0042] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.
[0043] Figure 1A schematic flowchart illustrating an inertial measurement unit calibration method exemplarily provided in this application;
[0044] Figure 2 A schematic diagram illustrating the calibration process of an accelerometer, provided as an example in this application;
[0045] Figure 3 A schematic diagram illustrating the calibration process of a gyroscope, provided as an example in this application;
[0046] Figure 4 A schematic diagram of the structure of a calibration device for an inertial measurement unit provided as an example in this application;
[0047] Figure 5 This is a schematic diagram of the structure of an electronic device provided as an example in this application.
[0048] The accompanying drawings illustrate specific embodiments of this application, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concept of this application to those skilled in the art through reference to particular embodiments. Detailed Implementation
[0049] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0050] An inertial measurement unit (IMU) achieves navigation, positioning, and attitude control by measuring the angular velocity of accelerometers and gyroscopes. Its core applications include autonomous driving and robotics.
[0051] Currently, the common calibration method for accelerometers is to place all six faces of the accelerometer on a horizontal platform for a period of time, and then use the six-face method to calibrate the accelerometer. The common calibration method for gyroscopes is to place the gyroscope on a turntable, rotate it around each of its three axes by a certain angle, use the angular velocity of the turntable as the true value and the angular velocity of the gyroscope as the measured value, and then construct an error equation to complete the calibration of the gyroscope.
[0052] The calibration accuracy of the above method is affected by the leveling error of the water platform and the accuracy of the turntable. It has extremely high requirements for the leveling error of the water platform installation, the accuracy of the turntable, and the angular velocity error, resulting in high calibration cost and difficulty.
[0053] Based on this, a technical concept is proposed to achieve low-cost, high-efficiency, and high-robustness IMU intrinsic parameter calibration by simplifying the data acquisition process and combining it with optimized algorithms. Specifically, data is acquired by placing each surface of the IMU on a normal plane, constructing error equations using the raw measurements from the accelerometer and gyroscope, and solving for the calibration parameters using the least squares method, thereby eliminating zero-bias error. This method does not rely on a high-precision turntable or horizontal platform; calibration can be completed using only a normal plane, which can significantly reduce equipment costs and operational complexity.
[0054] The technical solution of this application and how the technical solution of this application solves the above-mentioned technical problems are described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of this application will now be described with reference to the accompanying drawings.
[0055] Figure 1 A flowchart illustrating an exemplary calibration method for an inertial measurement unit provided in this application is shown below. Figure 1 As shown, the method includes:
[0056] Step S101: Place multiple surfaces of the inertial measurement unit statically on the fixed support surface in sequence, and collect measurement data of the inertial measurement unit while it is statically placed.
[0057] The measurement data includes triaxial acceleration and / or triaxial angular velocity. The fixed support surface can be a horizontal support surface.
[0058] It should be noted that the calibration method of this application embodiment can be applied to an IMU (Inertial Measurement Unit) device with n faces, where n is a positive integer. For ease of explanation and understanding, n can be 6 in this application embodiment, that is, the calibration implementation process is explained using a six-face IMU device as an example.
[0059] In this embodiment, one of the six faces of the IMU device can be attached to a fixed support surface and kept stationary. Acceleration and angular velocity data of the IMU device in a stationary state can be read, and this data can be recorded as the measurement data collected from that target face. After collecting measurement data from one face, another uncollected face can be attached to the fixed support surface and kept stationary while continuing to collect measurement data. In this way, measurement data from up to six faces can be collected (when n is 6).
[0060] In step S101 above, the measurement data is collected after the multiple faces of the IMU device are stationary. This can be done by placing all the faces of the IMU device stationary in sequence before collecting the measurement data, or by placing several faces of the IMU device stationary in sequence before collecting the measurement data.
[0061] For example, the six surfaces of the IMU device to be calibrated—front, back, left, right, top, and bottom—can be sequentially placed against a horizontal surface and kept stationary. During this stationary period, the acceleration Acc and angular velocity Gyro along the X, Y, and Z axes of the IMU are collected. The components of acceleration Acc along the X, Y, and Z axes are acc, ... x acc y and acc z The components of the angular velocity Gyro along the X, Y, and Z axes are gyro x gyro y and gyro z .
[0062] If we use the subscripts f, b, l, r, u, and d to represent the six faces of the IMU (front, back, left, right, top, and bottom) respectively, then the measurement data of the six faces of the IMU can be expressed as IMU f (Acc f Gyro f ), IMU b (Acc b Gyro b ), IMU l (Acc l Gyro l ), IMU r (Acc r Gyro r ), IMU u (Acc u Gyro u ) and IMU d (Acc d Gyro d ).
[0063] In some possible implementations, the acquisition time for each face is no less than 1 minute when acquiring measurement data for each face.
[0064] Step S102: Based on the measurement data, construct a system of linear equations that includes acceleration error or angular velocity error.
[0065] In this embodiment, data collected by the IMU in multiple static postures can be used to correlate the measured values with the inherent zero-bias error of the sensor (such as an accelerometer or gyroscope) through physical constraints. Specifically, by placing the six faces of the IMU statically in sequence, acceleration and angular velocity measurements in different directions are obtained. A mathematical model is established based on the physical laws under static conditions (such as the constant magnitude of gravitational acceleration and zero angular velocity under ideal conditions), thereby constructing a system of linear equations with error parameters as unknowns.
[0066] Taking the accelerometer of an IMU as an example, when the IMU is stationary, its acceleration measurement should be the superposition of local gravity and zero bias, while the magnitude of gravity projection remains constant in all directions. Using the average acceleration data measured from six surfaces, the measurements of two adjacent surfaces are compared and equations are constructed. Repeating this operation for five sets of adjacent surface combinations yields a system of linear equations for the zero bias of triaxial acceleration.
[0067] For calibrating the gyroscope angular velocity of an IMU, the calibration method for acceleration can be referenced, using the angular velocity data from six planes to construct a system of linear equations.
[0068] Step S103: Solve the linear equation system to obtain the zero-bias calibration values of acceleration or angular velocity corresponding to the three axes.
[0069] Whether solving for the zero bias of acceleration or angular velocity, in a system of linear equations, one side of the equation represents the calculated value, and the other side represents the observed value. Solving this system of equations can be done using the least squares method to obtain a set of zero-bias solutions that optimize the calculated and observed values. This zero-bias solution can represent the zero bias error of acceleration or angular velocity and can be used as the zero bias calibration value for accelerometers or gyroscopes.
[0070] In the above embodiments, multiple surfaces of the inertial measurement unit (IMU) are sequentially placed statically on a horizontal surface. Measurement data is collected while each surface is static. Based on this measurement data, a system of linear equations can be constructed. By solving the constructed system of equations, the zero-bias error of the IMU can be obtained as the calibration value. This calibration method only requires the collection of acceleration and angular velocity data of the IMU, and does not rely on a high-precision horizontal platform and turntable, which can effectively reduce calibration costs and calibration difficulty.
[0071] In one embodiment, the measurement data includes the acceleration of multiple data points in each surface, and before constructing a system of linear equations including acceleration error or angular velocity error based on the measurement data, the method further includes:
[0072] The acceleration of each data point in each face is filtered based on the variance of the acceleration of multiple data points in each face.
[0073] In some possible implementations, the acceleration of each data point in each surface is filtered based on the variance of the acceleration of multiple data points in each surface, including:
[0074] For any target data point among multiple data points, a data window with a preset range is selected centered on the target data point; the variance of the acceleration of all data points within the data window is calculated; if the calculated variance is greater than a preset threshold, the target data point is removed.
[0075] Optionally, the data window can range from 400 to 600 data points.
[0076] Taking acceleration data filtering as an example, for the acceleration data of each facet of the IMU, the window size can be set to win_size. For several data points on each facet, the variance of the acceleration of all data points within the win_size range can be calculated, with each data point as the center. Let ACC be the acceleration of all data points within the win_size range. win Then the variance acc var The calculation process can be expressed as the following formulas (1) and (2).
[0077] (1)
[0078] (2)
[0079] Among them, ACC avg ACC win The mean, Represents the magnitude of a vector.
[0080] If the calculated acc var If the data exceeds a preset threshold, the center data point of the current data window will be removed. This threshold is used to remove abnormal noise points, and it can be customized according to the IMU device's configuration parameters and placement environment; for example, it can be set to 0.05. Acceleration and angular velocity data can be filtered in this way for each face of the IMU device. The data filtered from all six faces can be represented as follows: , , , , and .
[0081] In the above embodiments, using variance to filter the acceleration or angular velocity measurements of each surface in the IMU measurement data can remove abnormal noise data points and improve the robustness of the calibration input data.
[0082] In one embodiment, such as Figure 2 As shown, the process of constructing the linear equation system for zero-partial calibration of acceleration includes:
[0083] Step S201: Calculate the average acceleration of each surface of the inertial measurement unit based on the measurement data.
[0084] For example, the average acceleration of each surface can be calculated in the following way:
[0085] (3)
[0086] Among them, Acc filterThis can represent the acceleration data of a certain surface after filtering, where N represents Acc. filter Data length.
[0087] With n=6, the average acceleration of the six surfaces can be expressed as follows: , , , , and .
[0088] Step S202: Construct the acceleration model matrix.
[0089] In this model, the element in the i-th row of the acceleration model matrix consists of twice the difference between the average acceleration of the (i+1)-th surface and the average acceleration of the i-th surface along the corresponding axis, where i is an integer from 1 to n-1. n is the number of surfaces in the inertial measurement unit, and both i and n are positive integers. For example, if n is 6, i can be 1, 2, 3, 4, or 5.
[0090] For example, we can first define an acceleration array ACC6 of length 6, where the 6 elements of the array are the average accelerations of the six faces. Then, we can construct a 5×3 (5 rows and 3 columns) model matrix X, where the i-th row of matrix X can be represented as:
[0091] (4)
[0092] in, , , These can represent the components of the acceleration of the i-th element in the array ACC6 along the X-axis, Y-axis, and Z-axis, respectively.
[0093] Step S203: Construct the acceleration observation vector.
[0094] The i-th element of the acceleration observation vector is composed of the squared difference between the average acceleration of the (i+1)-th surface and the average acceleration of the i-th surface.
[0095] For example, the acceleration observation vector can be denoted as y, where y is a 5×1 vector, and the i-th element of y can be represented as: y i =deltax2+ deltay2+ deltaz2.
[0096] (5)
[0097] (6)
[0098] (7)
[0099] Step S204: Based on the acceleration model matrix and acceleration observation vector, a system of linear equations is constructed using the zero-bias components of the accelerometer in the three axes as the parameter vectors to be solved.
[0100] For example, based on the model matrix X and the observation vector y, the parameter vector to be solved can be represented by β as a 3×1 matrix, and a linear equation can be constructed: Xβ=y. Substituting the above formula and data into this equation yields a complete system of linear equations. Then, solving this system of equations using the least squares method yields an estimate of the parameter vector β. This estimate is a matrix with one row and three columns, containing three elements: the zero-bias calibration values of the accelerometer on the X, Y, and Z axes, respectively, representing the first, second, and third elements of β.
[0101] In the above embodiments, by calculating the average value of the accelerometer measurements under six static attitudes, random noise can be suppressed by multiple facet measurements, and a stable observation vector after superimposing the gravitational acceleration and zero bias under each attitude can be obtained. Based on the physical constraint that the magnitude of gravitational acceleration is constant under static conditions, it is transformed into a linear equation, so that the zero bias value can be directly obtained by linear solution methods such as the least squares method, thereby effectively improving the anti-interference ability and accuracy of the calibration results.
[0102] In one embodiment, such as Figure 3 As shown, the process of constructing the linear equation system for zero-bias calibration of angular velocity includes:
[0103] Step S301: Calculate the average angular velocity of each surface of the inertial measurement unit based on the measurement data.
[0104] For example, the average angular velocity of each face can be calculated in the following way:
[0105] (8)
[0106] Among them, Gyro filter This can represent the angular velocity data of a certain surface after filtering, where N represents Gyro. filter Data length.
[0107] With n=6, the average angular velocities of the six faces can be expressed as follows: , , , , and .
[0108] Step S302: Construct the angular velocity model matrix.
[0109] In this model, the element in the i-th row of the angular velocity model matrix consists of twice the difference between the average angular velocity of the (i+1)-th surface and the average angular velocity of the i-th surface along the corresponding axis component, where i is an integer from 1 to n-1. n is the number of surfaces in the inertial measurement unit, and both i and n are positive integers. For example, if n is 6, i can be 1, 2, 3, 4, or 5.
[0110] For example, we can first define an angular velocity array GYRO6 of length 6, where the six elements of the array are the average angular velocities of the six faces. Then, we can construct a 5×3 model matrix X. gyro Matrix X gyro The i-th row can be represented as:
[0111] (9)
[0112] in, , , These can represent the components of the angular velocity of the i-th element in the array GYRO6 along the X, Y, and Z axes, respectively.
[0113] Step S303: Construct the angular velocity observation vector.
[0114] The i-th element of the angular velocity observation vector is composed of the squared difference between the average angular velocity of the (i+1)-th surface and the average angular velocity of the i-th surface.
[0115] For example, the angular velocity observation vector can be denoted as y gyro y gyro It is a 5×1 vector, y gyro The i-th element can be represented as: .
[0116] (10)
[0117] (11)
[0118] (12)
[0119] Step S304: Based on the angular velocity model matrix and the angular velocity observation vector, and using the zero-bias components of the gyroscope on the three axes as the parameter vectors to be solved, construct a system of linear equations.
[0120] For example, based on the model matrix X gyro and observation vector y gyro β can be used gyro Let X be a 3×1 parameter vector to be solved, and construct a linear equation: gyro β gyro =y gyroSubstituting the above formulas and data into the equations yields a complete system of linear equations. Solving this system using the least squares method then yields the parameter vector β. gyro The estimated values, the zero-bias calibration values of the gyroscope angular velocity on the X, Y, and Z axes are β, respectively. gyro The first, second, and third elements.
[0121] Figure 4 A schematic diagram of the structure of a calibration device for an inertial measurement unit provided in this application is shown below. Figure 4 As shown, the calibration device 400 for the inertial measurement unit provided in this embodiment includes:
[0122] The acquisition module 401 is used to sequentially and statically place multiple surfaces of the inertial measurement unit on a fixed support surface, and acquire measurement data of the inertial measurement unit when it is statically placed. The measurement data includes triaxial acceleration and / or triaxial angular velocity.
[0123] Equation building module 402 is used to build a system of linear equations that include acceleration error or angular velocity error based on measurement data;
[0124] The calibration module 403 is used to solve the linear equation system using the least squares method to obtain the zero-bias calibration values of acceleration or angular velocity corresponding to the three axes.
[0125] In some possible implementations, the equation building module 402 can also be used to: calculate the average acceleration of each face of the inertial measurement unit based on the measurement data; construct an acceleration model matrix, where the elements in the i-th row of the acceleration model matrix consist of twice the difference between the average acceleration of the (i+1)-th face and the average acceleration of the i-th face at the corresponding axis components, where i is an integer from 1 to n-1, and n is the number of faces of the inertial measurement unit; and construct an acceleration observation vector, where the i-th element of the acceleration observation vector consists of the square difference between the average acceleration of the (i+1)-th face and the average acceleration of the i-th face.
[0126] Based on the acceleration model matrix and acceleration observation vector, a system of linear equations is constructed using the zero-bias components of the accelerometer in the three axes as the parameter vectors to be solved.
[0127] In some possible implementations, the equation building module 402 can also be used to: calculate the average angular velocity of each face of the inertial measurement unit based on the measurement data; construct an angular velocity model matrix, where the i-th row of the angular velocity model matrix consists of twice the difference between the average angular velocity of the (i+1)-th face and the average angular velocity of the i-th face in the corresponding axis component, i being an integer from 1 to n-1, and n being the number of faces of the inertial measurement unit; construct an angular velocity observation vector, where the i-th element of the angular velocity observation vector consists of the square difference between the average angular velocity of the (i+1)-th face and the average angular velocity of the i-th face; and construct a system of linear equations based on the angular velocity model matrix and the angular velocity observation vector, using the zero-bias components of the gyroscope in the three axes as the parameter vectors to be solved.
[0128] In some possible implementations, the acquisition module 401 can also be used to filter the acceleration of each data point in each surface based on the variance of the acceleration of multiple data points in each surface.
[0129] In some possible implementations, the acquisition module 401 can also be used to: select a data window with a preset range centered on any target data point among multiple data points; calculate the variance of the acceleration of all data points within the data window; and if the calculated variance is greater than a preset threshold, then the target data point is removed.
[0130] The calibration device for the inertial measurement unit provided in this embodiment can execute the method provided in the above method embodiment. Its implementation principle and technical effect are similar, and will not be described in detail here.
[0131] Figure 5 This is a schematic diagram of the structure of an electronic device provided in this application. Figure 5 As shown, the electronic device 50 provided in this embodiment includes at least one processor 501 and a memory 502. Optionally, the device 50 further includes a communication component 503. The processor 501, memory 502, and communication component 503 are connected via a bus 504.
[0132] In a specific implementation, at least one processor 501 executes computer execution instructions stored in memory 502, causing at least one processor 501 to perform the above-described method.
[0133] The specific implementation process of processor 501 can be found in the above method embodiments, and its implementation principle and technical effect are similar. It will not be repeated here.
[0134] In the above embodiments, it should be understood that the processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this invention can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules within the processor.
[0135] The memory may include random access memory (RAM) and may also include non-volatile memory (NVM), such as at least one disk storage device.
[0136] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.
[0137] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the above-described method.
[0138] This application also provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, implement the above-described method.
[0139] The aforementioned readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk. The readable storage medium can be any available medium accessible to a general-purpose or special-purpose computer.
[0140] An exemplary readable storage medium is coupled to a processor, enabling the processor to read information from and write information to the readable storage medium. Of course, the readable storage medium can also be a component of the processor. The processor and the readable storage medium can reside in an Application Specific Integrated Circuit (ASIC). Alternatively, the processor and the readable storage medium can exist as discrete components in the device.
[0141] The division of units is merely a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or units, and may be electrical, mechanical, or other forms.
[0142] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0143] In addition, the functional units in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0144] If a function is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0145] Those skilled in the art will understand that all or part of the steps of the above-described method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the above-described method embodiments; and the aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.
[0146] Finally, it should be noted that other embodiments of the invention will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This invention is intended to cover any variations, uses, or adaptations of the invention that follow the general principles of the invention and include common knowledge or customary techniques in the art not disclosed herein, and is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of the invention is limited only by the appended claims.
Claims
1. A calibration method for an inertial measurement unit, characterized in that, include: Multiple surfaces of the inertial measurement unit are sequentially and statically placed on a fixed support surface. Measurement data of the inertial measurement unit are collected while it is statically placed. The measurement data includes triaxial acceleration and / or triaxial angular velocity. Based on the measurement data, a system of linear equations containing acceleration error or angular velocity error is constructed; Solve the linear equations to obtain the zero-bias calibration values of acceleration or angular velocity for the three axes.
2. The method according to claim 1, characterized in that, The process of constructing the system of linear equations includes: Calculate the average acceleration of each surface of the inertial measurement unit based on the measurement data; Construct an acceleration model matrix, wherein the elements in the i-th row of the acceleration model matrix consist of twice the difference between the average acceleration of the (i+1)-th surface and the average acceleration of the i-th surface at the corresponding axis component, where i is an integer from 1 to n-1, and n is the number of surfaces of the inertial measurement unit; Construct an acceleration observation vector, wherein the i-th element of the acceleration observation vector is composed of the square difference between the average acceleration of the (i+1)-th surface and the average acceleration of the i-th surface; Based on the acceleration model matrix and the acceleration observation vector, a system of linear equations is constructed using the zero-bias components of the accelerometer in the three axes as the parameter vectors to be solved.
3. The method according to claim 1, characterized in that, The process of constructing the system of linear equations includes: Calculate the average angular velocity of each surface of the inertial measurement unit based on the measurement data; Construct an angular velocity model matrix. The elements in the i-th row of the angular velocity model matrix are composed of twice the difference between the average angular velocity of the (i+1)-th surface and the average angular velocity of the i-th surface in the corresponding axis component. i is an integer from 1 to n-1, and n is the number of surfaces of the inertial measurement unit. Construct an angular velocity observation vector, the i-th element of which is the squared difference between the average angular velocity of the (i+1)-th surface and the average angular velocity of the i-th surface; Based on the angular velocity model matrix and the angular velocity observation vector, a system of linear equations is constructed using the zero-bias components of the gyroscope on the three axes as the parameter vectors to be solved.
4. The method according to any one of claims 1 to 3, characterized in that, The measurement data includes the acceleration of multiple data points in each surface. Before constructing a system of linear equations containing acceleration or angular velocity errors based on the measurement data, the method further includes: The acceleration of each data point in each surface is filtered based on the variance of the acceleration of multiple data points in each surface.
5. The method according to claim 4, characterized in that, The step of filtering the acceleration of each data point in each surface based on the variance of the acceleration of multiple data points in each surface includes: For any target data point among the plurality of data points, a data window of a preset range is selected with the target data point as the center; Calculate the variance of the acceleration of all data points within the data window. If the calculated variance is greater than a preset threshold, then the target data point is removed.
6. The method according to claim 5, characterized in that, The data window ranges from 400 to 600 data points.
7. The method according to any one of claims 1 to 3, characterized in that, The fixed support surface is a horizontal support surface.
8. A calibration device for an inertial measurement unit, characterized in that, include: The acquisition module is used to sequentially and statically place multiple surfaces of the inertial measurement unit on a fixed support surface, and acquire measurement data of the inertial measurement unit when it is statically placed. The measurement data includes triaxial acceleration and / or triaxial angular velocity. An equation construction module is used to construct a system of linear equations that include acceleration error or angular velocity error based on the measurement data. The calibration module is used to solve the linear equations to obtain the zero-bias calibration values of acceleration or angular velocity corresponding to the three axes.
9. An electronic device, characterized in that, include: A processor, and a memory communicatively connected to the processor; The memory stores computer-executed instructions; The processor executes computer execution instructions stored in the memory to implement the method as described in any one of claims 1 to 7.
10. A computer-readable storage medium / computer program product, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by a processor, are used to implement the method as described in any one of claims 1 to 7; and / or, The computer program product includes a computer program that, when executed by a processor, implements the method of any one of claims 1 to 7.