A Batch Calibration Method and System for Inertial Measurement Units Based on a Bus
The batch calibration of inertial measurement units is realized through bus technology, which solves the problems of low efficiency and high cost of traditional calibration technology, and achieves efficient and low-cost large-scale production.
Patent Information
- Application Number
- CN202411325987.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-23
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2044-09-23
AI Technical Summary
The calibration technology of traditional inertial measurement unit is low in efficiency and high in cost. Due to the data transmission rate and number of connections of the serial communication interface, it is difficult to meet the needs of large-scale production.
Bus technology is used to batch calibration of inertial measurement units, and the test data is transferred to the calibration system through the bus, and calibration parameters are calculated and downloaded, including the sensor's zero deviation, scale factor and installation error, and a calibration model is built for system fitting, so as to realize the simultaneous calibration of multiple inertial measurement units.
It significantly improves calibration efficiency and scale, shortens calibration cycles, reduces calibration costs, and provides support for the large-scale production of inertial measurement units.
Smart Images

Figure CN119104089B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of sensor calibration, and particularly relates to a batch calibration method and system for an inertial measurement unit based on a bus. Background Art
[0002] As an important part of modern navigation and positioning systems, an Inertial Measurement Unit (IMU) is widely used in fields such as aerospace, robotics, and unmanned vehicles. The main function of the IMU is to measure three-axis angular motion and three-axis acceleration, and its accuracy and stability have a crucial impact on the performance of the entire system. In practical applications, the installation accuracy of the IMU directly affects the accuracy of its measurement results. Therefore, it is required that the three instrument sensitive axes (i.e., three axes) of the IMU be perpendicular to each other during installation. However, due to errors in the processing and installation processes, it is often difficult to fully guarantee this perpendicularity. Therefore, mathematical correction of the installation error is required.
[0003] In recent years, with the development of microelectronics technology, the accuracy of MEMS (Micro-Electro-Mechanical System) gyroscopes has been significantly improved, and some products have reached weapon-grade accuracy. Compared with traditional fiber optic gyroscopes, MEMS gyroscopes have advantages such as small size, light weight, and strong environmental adaptability, and thus have broad application prospects. However, problems such as large zero-bias temperature drift and poor full-temperature scale factor nonlinearity of MEMS gyroscopes severely limit their application in large-scale production. To overcome these defects, it is particularly important to accurately calibrate various parameters of MEMS gyroscopes.
[0004] Currently, traditional IMU calibration technologies mainly rely on three-axis or two-axis turntables. By rotating the IMU and recording its output data, various parameters are then analyzed and corrected. And traditional calibration technologies usually use RS232 / RS422 serial communication interfaces for data transmission. These traditional communication interfaces have the following obvious defects in the IMU calibration process: 1. Each IMU communicates with a test computer through a serial port. Since the number of serial communication interfaces connected by each turntable through slip rings is limited, only a limited number of IMUs can be calibrated at a time. Usually, one turntable can only support the calibration of 10 - 15 devices, which greatly limits the calibration efficiency; 2. Due to limitations in data transmission and the number of connections, traditional calibration technologies often need to be carried out in batches, resulting in a relatively long time-consuming entire calibration process. Especially for full-temperature and full-coefficient calibration, one calibration may take 1 - 2 days; 3. For low-cost MEMS IMUs, although the cost of a single device is low, due to the complex and inefficient calibration process, the unit production calibration cost is relatively high, affecting the market competitiveness of the product. Summary of the Invention
[0005] Based on this, the object of the present invention is to propose a bus-based batch calibration method and system for inertial measurement units to solve the above-mentioned problems.
[0006] A bus-based batch calibration method for inertial measurement units according to the present invention, the method comprising:
[0007] Placing the inertial measurement units under different temperature conditions, performing calibration tests with preset attitude changes and preset angular velocity changes under each temperature condition, and acquiring test data, wherein the test data includes the actual measurement values of the sensors and the corresponding test condition data;
[0008] Batch-transmitting the test data of all the inertial measurement units to a calibration system through a bus and storing them, wherein each inertial measurement unit has a unique device number on the bus;
[0009] In the calibration system, acquiring the test data of each inertial measurement unit according to the storage path, and calculating the calibration parameters of each inertial measurement unit based on the test data, the calibration parameters including the zero bias, scale factor and installation error of the sensors;
[0010] Downloading the generated calibration parameters to each of the inertial measurement units through the bus.
[0011] Furthermore, the step of calculating the calibration parameters of each inertial measurement unit based on the test data includes:
[0012] Constructing a calibration model;
[0013] Based on the calibration model, using the test data for system fitting to obtain the optimal calibration parameters.
[0014] Furthermore, the step of using the test data for system fitting based on the calibration model to obtain the optimal calibration parameters includes:
[0015] Determining an optimization objective, the optimization objective being accuracy;
[0016] Converting the test data of the sensors under different test conditions into a matrix form to obtain an observation matrix Y, Y = [y1, y2,..., y i ,..., y n , where y i is the actual measurement value of the sensor under the i-th test condition;
[0017] Constructing a design matrix X according to the calibration model, wherein the elements in the design matrix are associated with the calibration parameters x;
[0018] Based on the observation matrix Y and the design matrix X, a normal equation is constructed, and the normal equation is: where is the estimated value of the calibration parameter, and X T is the transpose of the design matrix;
[0019] Solve the normal equation to obtain the estimated value of the calibration parameter
[0020] Furthermore, the step of using test data for system fitting based on the calibration model to obtain the optimal calibration parameter includes:
[0021] Determine the optimization objectives. There is more than one optimization objective and they conflict with each other, including accuracy and stability;
[0022] Based on the difference between the predicted value of the calibration model and the actual measured value of the sensor, define an objective function for each of the optimization objectives, including an accuracy objective function and a stability objective function.
[0023] The accuracy objective function is: where y i is the actual measured value of the sensor under the i-th test condition, is the predicted value of the calibration model using the calibration parameter x,
[0024] The stability objective function is: where x i is the value of the calibration parameter x under the i-th test condition, is a reference value of all x i ;
[0025] Find a set of non-dominated solutions x*, such that for any x'≠x*, there does not exist f1(x')≤f1(x*) and f2(x')≤f2(x*) holding simultaneously, so that the found solutions achieve the best trade-off among different optimization objectives.
[0026] Furthermore, the step of finding a set of non-dominated solutions includes:
[0027] Set the initial parameters, including the initial population;
[0028] Evaluate each individual in the initial population and calculate its objective function values f1(x) and f2(x);
[0029] Perform non-dominated sorting on the population according to the objective function values to divide the population into different non-dominated levels;
[0030] Select parent individuals from the current population to generate the next generation;
[0031] Perform crossover and mutation operations on the selected parent individuals to generate offspring individuals;
[0032] Merge the offspring individuals with the parent individuals to form a new population, and update the population according to the non-dominated sorting and crowding degree comparison operators;
[0033] Repeat the iteration until the maximum number of iterations is reached, and obtain the non-dominated individuals in the current population, which are set as the Pareto front;
[0034] Based on the shape and distribution of the Pareto front, determine the trade-off relationship between different optimization objectives;
[0035] Select one or more optimal solutions from the Pareto front based on the trade-off relationship between different optimization objectives, that is, one or more groups of optimal calibration parameters.
[0036] Furthermore, the sensor includes a gyroscope, the calibration model includes a gyroscope calibration model, and in the step of constructing the calibration model, the gyroscope calibration model is:
[0037] wx = KSgxt × (wxBt + Fgxxwx' + Fgyxwy' + Fgzxwz'),
[0038] wy = KSgyt × (wyBt + Fgxywx' + Fgyywy' + Fgzywz'),
[0039] wz = KSgzt × (wzBt + Fgxzwx' + Fgyzwy' + Fgzzwz'),
[0040] where, wx, wy, and wz are the angular rate values in three directions, KSgxt, KSgyt, and KSgzt are the full-temperature change parameters of the three-axis gyro scale, wxBt, wyBt, and wzBt are the full-temperature change parameters of the three-axis gyro zero bias, Fgxx, Fgyx, Fgzx, Fgxy, Fgyy, Fgzy, Fgxz, Fgyz, and Fgzz are the coupling parameters of the three-axis gyro, and wx', wy', and wz' are the outputs of the three gyroscopes in the b' coordinate system.
[0041] Furthermore, the sensor also includes an accelerometer, the calibration model also includes an acceleration calibration model, and in the step of constructing the calibration model, the acceleration calibration model is:
[0042] Ax = KSaxt × (AxBt + FaxxAx' + FayxAy' + FazxAz'),
[0043] Ay = KSayt × (AyBt + FaxyAx' + FayyAy' + FazyAz'),
[0044] Az = KSazt × (AzBt + FaxzAx' + FayzAy' + FazzAz'),
[0045] Wherein, Ax, Ay, and Az are the apparent accelerations in three directions, KSaxt, KSayt, and KSazt are the full-temperature change parameters of the triaxial accelerometer scale, AxBt, AyBt, and AzBt are the full-temperature change parameters of the triaxial accelerometer zero position, Faxx, Fayx, Fazx, Faxy, Fayy, Fazy, Faxz, Fayz, and Fazz are the coupling parameters between the triaxial accelerations, and Ax', Ay', and Az' are the outputs of the three accelerometers in the b' coordinate system.
[0046] Furthermore, the step of batch-transmitting the test data of all the inertial measurement units to the calibration system through the bus and storing them includes:[[]]
[0047] Receiving the test data of the inertial measurement unit through the bus and sending it to the data forwarding unit, and the data forwarding unit uses a serial port and sends it to the test computer through a slip ring;
[0048] Receiving the test data of each inertial measurement unit through the upper computer of the test computer, and storing the test data of the inertial measurement unit according to a preset file naming, wherein the preset file naming is the device number, the temperature test point, and the test steps under the corresponding temperature test point.
[0049] The present invention also provides a batch calibration system for inertial measurement units based on a bus, and the system includes:[[]]
[0050] Calibration test module: used to place the inertial measurement unit under different temperature conditions, perform calibration tests of preset attitude changes and preset angular velocity changes under each temperature condition, and obtain test data, wherein the test data includes the actual measurement values of the sensor and the corresponding test condition data;
[0051] Bus transmission module: used to batch-transmit the test data of all the inertial measurement units to the calibration system through the bus and store them, wherein each inertial measurement unit has a unique device number on the bus;
[0052] Calibration parameter generation module: used to obtain the test data of each inertial measurement unit according to the storage path in the calibration system, and calculate the calibration parameters of each inertial measurement unit based on the test data, and the calibration parameters include the zero bias, scale factor, and installation error of the sensor;
[0053] Calibration parameter download module: used to download the generated calibration parameters to each inertial measurement unit through the bus.
[0054] In summary, according to the above-mentioned method for batch calibration of inertial measurement units based on a bus, the inertial measurement units are placed under different temperature conditions, calibration tests with preset attitude changes and preset angular velocity changes are performed under each temperature condition, and the test data of the sensors are obtained. Then, the test data of all inertial measurement units are batch-transmitted to the calibration system through the bus and stored. Each unit has a unique number on the bus, ensuring the accuracy and efficiency of data transmission. In the calibration system, the test data of each inertial measurement unit is obtained according to the storage path, and the calibration parameters of each inertial measurement unit are calculated based on the test data. Finally, the generated calibration parameters are batch-downloaded to each of the inertial measurement units through the bus. The present invention uses bus technology for batch calibration of inertial measurement units, which not only overcomes the limitations of traditional serial communication interfaces in data transmission rate and connection quantity, but also significantly shortens the calibration cycle and reduces the calibration cost by improving the calibration efficiency and scale, providing strong support for the large-scale production and application of IMUs.
[0055] Additional aspects and advantages of the present invention will be given in part in the following description, become apparent in part from the following description, or be understood through the embodiments of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0056] The above and / or additional aspects and advantages of the present invention will become apparent and be readily understood from the description of the embodiments in conjunction with the following drawings, in which:
[0057] Figure 1 is a flowchart of a method for batch calibration of inertial measurement units based on a bus according to Embodiment 1 of the present invention;
[0058] Figure 2 is a schematic diagram of calibration connection of a method for batch calibration of inertial measurement units based on a bus according to Embodiment 1 of the present invention;
[0059] Figure 3 is a flowchart of batch generation of parameters of a method for batch calibration of inertial measurement units based on a bus according to Embodiment 1 of the present invention;
[0060] Figure 4 is a flowchart of product parameter download of a method for batch calibration of inertial measurement units based on a bus according to Embodiment 1 of the present invention;
[0061] Figure 5 is a system block diagram of a system for batch calibration of inertial measurement units based on a bus according to Embodiment 2 of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0062] To facilitate the understanding of the present invention, the present invention will be described more comprehensively below with reference to the relevant drawings. Several embodiments of the present invention are given in the drawings. However, the present invention can be implemented in many different forms and is not limited to the embodiments described herein. On the contrary, these embodiments are provided to make the disclosure of the present invention more thorough and comprehensive.
[0063] It should be noted that when an element is referred to as being "fixedly provided on" another element, it can be directly on the other element or there can also be an intermediate element. When an element is considered to be "connected" to another element, it can be directly connected to the other element or there may be an intermediate element at the same time. The terms "vertical", "horizontal", "left", "right" and similar expressions used herein are only for the purpose of illustration.
[0064] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the technical field to which the present invention belongs. The terms used herein in the specification of the present invention are only for the purpose of describing specific embodiments and are not intended to limit the present invention. The term "and / or" used herein includes any and all combinations of one or more of the related listed items.
[0065] Embodiment 1
[0066] Please refer to Figures 1 to 4 , the present invention provides a batch calibration method for an inertial measurement unit based on a bus, and the method includes steps S101 to S104:
[0067] S101, place the inertial measurement unit under different temperature conditions, perform calibration tests with preset attitude changes and preset angular velocity changes under each temperature condition, and obtain test data, where the test data includes the actual measurement values of the sensors and the corresponding test condition data.
[0068] It should be noted that the calibration test of the inertial measurement unit (IMU) will be carried out under different temperature conditions, and the specific test steps are as follows:
[0069] First, perform test preparations: ensure that the test equipment such as the inertial measurement unit, temperature chamber, and turntable are in good working condition; according to the test requirements, preset the temperature conditions of the temperature chamber, such as -40°C, -20°C, 0°C, 20°C, 40°C, 60°C, etc.; formulate a series of preset attitude changes and angular velocity changes to ensure that the IMU can be fully tested in all directions.
[0070] Place the inertial measurement unit in the temperature chamber and set it to the preset temperature condition, and keep the inertial measurement unit at this temperature for a certain period of time (such as 2 hours) to ensure that it reaches the thermal equilibrium state.
[0071] Under each temperature condition, perform preset attitude changes, including orientation changes in different axes, such as the X-axis facing up and the Y-axis facing north, the X-axis facing up and the Y-axis facing south, etc., and each attitude is maintained for a certain period of time (such as 1 minute) to record data.
[0072] Under a specific attitude (such as the X-axis facing up), rotate the inertial measurement unit at different preset angular velocities through a turntable. The angular velocities can be set to, for example, 10° / s, 20° / s, 40° / s, etc., and rotate clockwise and counterclockwise respectively, and record the data at each angular velocity.
[0073] Under each temperature point and attitude / angular velocity change, record in detail the actual measured values of the gyroscope and accelerometer in the inertial measurement unit. The measured values include the three-axis angular rates (wx, wy, wz), the three-axis accelerations (Ax, Ay, Az), and the corresponding temperature values of the gyroscope and accelerometer (Tgx, Tgy, Tgz and Tax, Tay, Taz).
[0074] Under each temperature condition, repeat the above test process of attitude and angular velocity changes to ensure the integrity and reliability of the data.
[0075] Obtain the test data, that is, the actual measured values of the sensor, including the three-axis angular rate data of the gyroscope, the three-axis acceleration data of the accelerometer, and the temperature values of the gyroscope and accelerometer. And record the corresponding test conditions, that is, the temperature condition, attitude condition, and angular velocity condition corresponding to each test data.
[0076] S102, batch transfer the test data of all the inertial measurement units to the calibration system through the bus and store them. Each of the inertial measurement units has a unique device number on the bus.
[0077] It should be noted that based on the bus technology, the test data of multiple inertial measurement units are batch transferred to the calibration system and stored. Each inertial measurement unit has a unique device number on the bus to ensure the accuracy and traceability of the data. Through the predefined data packet format, the inertial measurement unit packs the test data and sends it through the bus. The data forwarding unit is responsible for receiving and forwarding the data, and finally the host computer software receives and stores it.
[0078] The inertial measurement unit packs the test data according to the predefined format. The data content mainly includes various measurement data of the inertial measurement unit, such as the outputs and temperature data of the gyroscope and accelerometer. The predefined format includes a data frame header, frame length, frame number, device number, data content, and checksum. The specific format is shown in Table 1 below:
[0079]
[0080] Table 1
[0081] As shown Figure 2 in the figure, the data forwarding unit is responsible for receiving the test data on the bus and sending the test data to the test computer through the serial port (such as through a slip ring). The upper computer software on the test computer is responsible for receiving the serial port data and storing the relevant test data in a file under the specified path. The file naming usually includes device number, temperature point, and test step information for easy management and retrieval.
[0082] In this embodiment, the test data is batch-transmitted through the bus, which can greatly improve the data transmission efficiency and calibration efficiency. Compared with the traditional calibration technology where each IMU communicates with the test computer through a serial port, the bus technology can enable multiple IMUs to transmit data simultaneously to improve the calibration efficiency. And a single bus can calibrate multiple IMUs at the same time, and the entire system can support the calibration of hundreds of IMUs, which enables the calibration system to adapt to the large-scale production requirements and improves the production efficiency. By improving the calibration efficiency and scale, the calibration cost per unit product can be greatly reduced, which is particularly important for low-cost MEMS IMUs and helps to enhance the market competitiveness of the products.
[0083] S103. In the calibration system, obtain the test data of each inertial measurement unit according to the storage path, and calculate the calibration parameters of each inertial measurement unit based on the test data. The calibration parameters include the zero bias, scale factor, and installation error of the sensor.
[0084] It should be noted that in the calibration system, for each inertial measurement unit, the calibration parameters that need to be calculated mainly include the zero bias, scale factor, and installation error of the gyroscope and accelerometer. The specific parameters are as follows:
[0085] Gyroscope calibration parameters: gyro full-temperature zero bias, the zero position offset of the gyroscope at different temperatures, that is, the angular rate value output by the gyroscope in the stationary state; gyro full-temperature scale non-linearity, the non-linear characteristic of the gyroscope scale factor changing with temperature, that is, the proportional relationship between the gyroscope output angular rate and the input angular rate changes with temperature; and gyro full-temperature installation deviation, the deviation during the installation of the gyroscope, that is, the output error of the gyroscope caused by improper installation.
[0086] Accelerometer calibration parameters: accelerometer full-temperature zero bias, the zero position offset of the accelerometer at different temperatures, that is, the acceleration value output by the accelerometer in the stationary state; accelerometer full-temperature scale non-linearity, the non-linear characteristic of the accelerometer scale factor changing with temperature, that is, the proportional relationship between the accelerometer output acceleration and the input acceleration changes with temperature; and accelerometer full-temperature installation deviation, the deviation during the installation of the accelerometer, that is, the output error of the accelerometer caused by improper installation.
[0087] The generation of calibration parameters is mainly achieved through the following steps:
[0088] After the parameter recording is completed, the parameter generation module is run through the host computer. The parameter generation module obtains the product list through the corresponding path and calculates the parameters of each product one by one. For the generation process of each product parameter, please refer to Figure 3 , first, according to the settings of relevant temperature points and rate points, check the integrity of the file record. If the file is incomplete, terminate the product parameter processing module; if the file is complete, enter data preprocessing. The main work of parameter preprocessing is to calculate the average value of each measured quantity in the file at this test point. After parameter preprocessing, enter the parameter integrated generation module. Through the parameter integrated generation module, the data of each test point is system-fitted to obtain the optimized calibration parameters, and a calibration parameter file is generated in the form of a command.
[0089] The calibration model describes the relationship between the single output and input of the inertial measurement and takes into account the influence of temperature changes and coupling factors. The specific calibration model formula is as follows:
[0090] Gyroscope calibration model:
[0091] wx = KSgxt × (wxBt + Fgxxwx' + Fgyxwy' + Fgzxwz'),
[0092] wy = KSgyt × (wyBt + Fgxywx' + Fgyywy' + Fgzywz'),
[0093] wz = KSgzt × (wzBt + Fgxzwx' + Fgyzwy' + Fgzzwz'),
[0094] Among them, wx, wy, and wz are the angular rate values in three directions, KSgxt, KSgyt, and KSgzt are the full-temperature change parameters of the three-axis gyro scale, wxBt, wyBt, and wzBt are the full-temperature change parameters of the three-axis gyro zero bias, Fgxx, Fgyx, Fgzx, Fgxy, Fgyy, Fgzy, Fgxz, Fgyz, and Fgzz are the coupling parameters of the three-axis gyro, and wx', wy', and wz' are the outputs of the three gyroscopes in the b' coordinate system.
[0095] KSgxt = KSgx0t + KSgx1t × Twx + KSgx2t × Twx 2 + KSgx3t × Twx 3 ,
[0096] KSgyt = KSgy0t + KSgy1t × Twy + KSgy2t × Twy2 + KSgy3t × Twy3,
[0097] KSgzt = KSgz0t + KSgz1t × Twz + KSgz2t × Twz² + KSgz3t × Twz³,
[0098] wxBt = wxB0t + wxB1t × Twx + wxB2t × Twx 2 + wxB3t × Twx 3 ,
[0099] wyBt = wyB0t + wyB1t × Twy + wyB2t × Twy² + wyB3t × Twy³,
[0100] wzBt = wzB0t + wzB1t × Twz + wzB2t × Twz² + wzB3t × Twz³。
[0101] The accelerometer calibration model is:
[0102] Ax = KSaxt × (AxBt + Faxx Ax' + Fayx Ay' + Fazx Az'),
[0103] Ay = KSayt × (AyBt + Faxy Ax' + Fayy Ay' + Fazy Az'),
[0104] Az = KSazt × (AzBt + Faxz Ax' + Fayz Ay' + Fazz Az').
[0105] Where Ax, Ay, and Az are the apparent accelerations in three directions, KSaxt, KSayt, and KSazt are the full-temperature change parameters of the triaxial accelerometer scale, AxBt, AyBt, and AzBt are the full-temperature change parameters of the triaxial accelerometer zero position, Faxx, Fayx, Fazx, Faxy, Fayy, Fazy, Faxz, Fayz, and Fazz are the coupling parameters between the triaxial accelerations, and Ax', Ay', and Az' are the outputs of the three accelerometers in the b' coordinate system.
[0106] KSaxt = KSax0t + KSax1t × T Ax + KSax2t × T Ax 2 + KSax3t × T Ax 3 ,
[0107] KSayt = KSay0t + KSay1t × T Ay + KSay2t × T Ay² + KSay3t × T Ay³,
[0108] KSazt = KSaz0t + KSaz1t × T Az + KSaz2t × T Az² + KSaz3t × T Az³,
[0109] AxBt = AxB0t + AxB1t × TAx + AxB2t × TAx 2 + AxB3t × TAx 3 ,
[0110] AyBt = AyB0t + AyB1t × TAy + AyB2t × TAy2 + AyB3t × TAy3,
[0111] AzBt = AzB0t + AzB1t × TAz + AzB2t × TAz2 + AzB3t × TAz3.
[0112] S104. Download the generated calibration parameters to each of the inertial measurement units via the bus.
[0113] It should be noted that the calibration parameters are sent to each inertial measurement unit via the bus. The specific steps are as follows: As Figure 4 shown, the system first obtains the product list for which the calibration parameters need to be downloaded to ensure that each inertial measurement unit can receive the corresponding calibration parameters. Then, the calibration parameters are sent to each product via the bus one by one. During the sending process, the data frame contains information such as the device number and frame number to distinguish the data of different products. After each inertial measurement unit receives the downloaded calibration parameters, it first determines whether the product ID in the command matches its own ID. If it matches, the calibration parameters are decoded and solidified into the internal on-chip FLASH to ensure the persistent storage and accuracy of the parameters.
[0114] In this embodiment, the generated calibration parameters are downloaded to each inertial measurement unit via the bus. By using the bus method, the calibration parameters can be sent to multiple inertial measurement units at one time, greatly improving the production efficiency. Compared with the traditional method, this method reduces the time required for individual calibration and improves the overall calibration efficiency. Moreover, it reduces the time and labor costs required for individual calibration, thereby reducing the calibration cost of a single product. This has significant economic benefits for large-scale production.
[0115] Based on steps S101 to S104, the inertial measurement unit is placed under different temperature conditions, and calibration tests with preset attitude changes and preset angular velocity changes are performed at each temperature condition, and the test data of the sensor is obtained. Then, the test data of all inertial measurement units is batch-transmitted to the calibration system through the bus and stored. Each unit has a unique number on the bus, ensuring the accuracy and efficiency of data transmission. In the calibration system, the test data of each inertial measurement unit is obtained according to the storage path, and the calibration parameters of each inertial measurement unit are calculated based on the test data. Finally, the generated calibration parameters are batch-downloaded to each of the inertial measurement units through the bus. The present invention uses bus technology for batch calibration of inertial measurement units, which not only overcomes the limitations of traditional serial communication interfaces in data transmission rate and connection quantity, but also significantly shortens the calibration cycle and reduces the calibration cost by improving the calibration efficiency and scale, providing strong support for the large-scale production and application of IMUs.
[0116] Specifically, using bus technology, a single bus can simultaneously connect and calibrate multiple IMU devices, no longer limited by the number of slip ring interfaces. For example, a single bus can simultaneously calibrate 50 IMUs, and the entire temperature chamber can calibrate hundreds of devices at most simultaneously, greatly improving the calibration scale. At the same time, bus technology can support a higher data transmission rate, enabling a large amount of data to be quickly transmitted in a short time, improving the efficiency of the calibration process. Due to the improvement of data transmission efficiency and calibration scale, the calibration cycle can be significantly shortened, a large number of devices can be calibrated at one time, reducing the time and labor costs of batch calibration.
[0117] The following content is a further detailed introduction to a method for batch calibration of inertial measurement units based on a bus in an embodiment of the present invention:
[0118] Further optionally, in step S103, the step of calculating the calibration parameters of each inertial measurement unit based on the test data includes:
[0119] Construct a calibration model;
[0120] Based on the calibration model, use the test data for system fitting to obtain the optimal calibration parameters.
[0121] It can be understood that the step of calculating the calibration parameters of each inertial measurement unit based on the test data mainly includes two parts: constructing a calibration model and using the test data for system fitting. First, a calibration model needs to be constructed, including a gyroscope calibration model and an accelerometer calibration model. These models describe the relationship between the output and input of the inertial measurement unit and consider the influence of temperature changes and coupling factors. Then, use the test data for system fitting to obtain the optimal calibration parameters.
[0122] Further optionally, the step of using test data for system fitting based on the calibration model to obtain optimal calibration parameters includes:
[0123] Determine the optimization objective, where the optimization objective is accuracy;
[0124] Convert the test data of the sensor under different test conditions into a matrix form to obtain the observation matrix Y, Y = [y1, y2,..., y i ,..., y n , where y i is the actual measured value of the sensor under the i-th test condition;
[0125] Construct a design matrix X according to the calibration model, where the elements in the design matrix are associated with the calibration parameter x;
[0126] Based on the observation matrix Y and the design matrix X, construct a normal equation, where the normal equation is: where, is the estimated value of the calibration parameter, and X T is the transpose of the design matrix;
[0127] Solve the normal equation to obtain the estimated value of the calibration parameter
[0128] It can be understood that in the step of using test data for system fitting based on the calibration model to obtain optimal calibration parameters, if the optimization objective is unique, that is, to minimize the calibration error to ensure the accuracy and precision of the measurement results. The determination of this optimization objective is based on the actual requirements of batch calibration of inertial measurement units, that is, under various test conditions, making the difference between the predicted output value of the calibration model and the actual measured value as small as possible. To achieve this optimization objective, first convert the test data of the sensor under different test conditions into a matrix form to obtain the observation matrix Y to organize the actual measured values in an orderly manner. Then, construct a design matrix X according to the calibration model. The construction of the design matrix X is to connect the calibration model with the actual measurement data and provide a basis for solving the calibration parameter. Then, based on the observation matrix Y and the design matrix X, construct a normal equation. The normal equation is a system of linear equations used to solve the linear least squares problem. In this problem, the solution objective of the normal equation is to find the parameter value that minimizes the sum of the squares of the differences between the predicted output and the actual output. Finally, solve the normal equation to obtain the estimated value of the calibration parameter. By solving the normal equation, the optimal calibration parameter can be obtained, thereby improving the measurement accuracy and precision.
[0129] Further optionally, the step of using test data for system fitting based on the calibration model to obtain optimal calibration parameters includes:
[0130] Determine optimization objectives, where there is more than one optimization objective and they conflict with each other, including accuracy and stability;
[0131] Based on the difference between the predicted value of the calibration model and the actual measured value of the sensor, define an objective function for each of the optimization objectives, including an accuracy objective function and a stability objective function,
[0132] The accuracy objective function is: where y i is the actual measured value of the sensor under the i-th test condition, is the predicted value of the calibration model using the calibration parameter x,
[0133] The stability objective function is: where x i is the value of the calibration parameter x under the i-th test condition, is a reference value of all x i ;
[0134] Find a set of non-dominated solutions x*, such that for any x'≠x*, there does not exist f1(x')≤f1(x*) and f2(x')≤f2(x*) holding simultaneously, so that the found solutions achieve the best trade-off among different optimization objectives.
[0135] It can be understood that during the batch calibration process of the inertial measurement unit, when there is more than one optimization objective and they conflict with each other, such as accuracy and stability, comprehensive consideration is required. The accuracy objective aims to minimize the calibration error and ensure the accuracy of the measurement results, and the calibration error can be quantified through the accuracy objective function. The stability objective ensures the consistency of the calibration parameters under different conditions and reduces drift and fluctuations, and the stability of the calibration parameters can be quantified through the stability objective function. To achieve multiple objectives, first, the actual measured values under different test conditions need to be collected, and these data are used to solve the calibration parameters through an optimization algorithm. After obtaining the calibration parameters, evaluate the stability and accuracy of these parameters under different conditions. Since accuracy and stability often conflict with each other, a set of non-dominated solutions needs to be found to achieve the best trade-off between accuracy and stability. Multi-objective optimization techniques such as Pareto front analysis can be used. By comprehensively considering and achieving multiple optimization objectives such as accuracy and stability, more accurate and stable calibration results of the inertial measurement unit can be obtained. Additionally, the computational efficiency can be considered simultaneously to meet the requirements of real-time or online calibration.
[0136] Further optionally, the steps of finding a set of non-dominated solutions include:
[0137] Set initial parameters, including an initial population;
[0138] Evaluate each individual in the initial population and calculate its objective function values f1(x) and f2(x);
[0139] Perform non - dominated sorting on the population according to the objective function values to divide the population into different non - dominated levels;
[0140] Select parent individuals from the current population to generate the next generation;
[0141] Perform crossover and mutation operations on the selected parent individuals to generate offspring individuals;
[0142] Merge the offspring individuals with the parent individuals to form a new population, and update the population according to the non - dominated sorting and crowding distance comparison operator;
[0143] Repeat the iteration until the maximum number of iterations is reached, and obtain the non - dominated individuals in the current population, which are set as the Pareto front;
[0144] Based on the shape and distribution of the Pareto front, determine the trade - off relationship between different optimization objectives;
[0145] Select one or more optimal solutions from the Pareto front based on the trade - off relationship between different optimization objectives, that is, one or more sets of optimal calibration parameters.
[0146] It can be understood that in the batch calibration of IMUs, the key steps to find a set of non - dominated solutions include: setting initial parameters, evaluating the initial population, performing non - dominated sorting, selecting parent individuals, performing crossover and mutation operations, updating the population, repeating the iteration until the maximum number is reached, determining the Pareto front, analyzing the trade - off relationship, and finally selecting the optimal solution from the Pareto front. Thus, multiple optimization objectives are balanced to obtain the best calibration parameters.
[0147] Further optionally, the step of batch - transmitting the test data of all the inertial measurement units to the calibration system through the bus and storing them includes:
[0148] Receive the test data of the inertial measurement unit through the bus and send it to the data forwarding unit, and the data forwarding unit uses the serial port and sends it to the test computer through the slip ring;
[0149] Receive the test data of each inertial measurement unit through the upper computer of the test computer and store the test data of the inertial measurement unit according to the preset file naming, where the preset file naming is the device number, the temperature test point, and the test steps at the corresponding temperature test point.
[0150] Embodiment 2
[0151] Please refer to Figure 5, A batch calibration system for inertial measurement units based on a bus proposed by the present invention, the system includes:
[0152] Calibration test module: used to place the inertial measurement unit under different temperature conditions, perform calibration tests with preset attitude changes and preset angular velocity changes under each temperature condition, and obtain test data, where the test data includes the actual measurement values of the sensors and the corresponding test condition data;
[0153] Bus transmission module: used to batch transmit the test data of all the inertial measurement units to the calibration system through the bus and store them, where each inertial measurement unit has a unique device number on the bus;
[0154] Calibration parameter generation module: used to obtain the test data of each inertial measurement unit according to the storage path within the calibration system, and calculate the calibration parameters of each inertial measurement unit based on the test data, where the calibration parameters include the zero bias, scale factor, and installation error of the sensors;
[0155] Calibration parameter download module: used to download the generated calibration parameters to each inertial measurement unit through the bus.
[0156] Further optionally, the calibration parameter generation module is further used for:
[0157] Construct a calibration model;
[0158] Based on the calibration model, use the test data for system fitting to obtain the optimal calibration parameters.
[0159] Further optionally, the calibration parameter generation module is further used for:
[0160] Determine the optimization objective, where the optimization objective is accuracy;
[0161] Convert the test data of the sensor under different test conditions into the form of a matrix to obtain the observation matrix Y, Y = [y1, y2,..., y i ,..., y n , where y i is the actual measurement value of the sensor under the i-th test condition;
[0162] Construct a design matrix X according to the calibration model, where the elements in the design matrix are associated with the calibration parameter x;
[0163] Based on the observation matrix Y and the design matrix X, construct the normal equation, and the normal equation is: where, is the estimated value of the calibration parameter, and X T is the transpose of the design matrix;
[0164] Solve the normal equation to obtain the estimated values of the calibration parameters
[0165] Further optionally, the calibration parameter generation module is further configured to:
[0166] Determine optimization objectives, where there are more than one optimization objective and they conflict with each other, including accuracy and stability;
[0167] Define an objective function for each of the optimization objectives based on the difference between the predicted value of the calibration model and the actual measured value of the sensor, including an accuracy objective function and a stability objective function,
[0168] The accuracy objective function is: where y i is the actual measured value of the sensor under the i-th test condition, is the predicted value of the calibration model using the calibration parameter x,
[0169] The stability objective function is: where x i is the value of the calibration parameter x under the i-th test condition, is a reference value of all x i ;
[0170] Find a set of non-dominated solutions x* such that for any x'≠x*, there does not exist f1(x')≤f1(x*) and f2(x')≤f2(x*) holding simultaneously, so that the found solutions achieve the best trade-off among different optimization objectives.
[0171] Further optionally, the calibration parameter generation module is further configured to:
[0172] Set initial parameters, including an initial population;
[0173] Evaluate each individual in the initial population and calculate its objective function values f1(x) and f2(x);
[0174] Perform non-dominated sorting on the population according to the objective function values to divide the population into different non-dominated levels;
[0175] Select parent individuals from the current population to generate the next generation;
[0176] Perform crossover and mutation operations on the selected parent individuals to generate offspring individuals;
[0177] Merge the offspring individuals with the parent individuals to form a new population, and update the population according to the non-dominated sorting and crowding comparison operator;
[0178] Iterate repeatedly until the maximum number of iterations is reached, and obtain the non-dominated individuals in the current population, which are set as the Pareto frontiers;
[0179] Based on the shape and distribution of the Pareto frontiers, determine the trade-off relationships between different optimization objectives;
[0180] Select one or more optimal solutions from the Pareto frontiers based on the trade-off relationships between different optimization objectives, that is, one or more sets of optimal calibration parameters.
[0181] Further optionally, the sensor includes a gyroscope, the calibration model includes a gyroscope calibration model, and the gyroscope calibration model is:
[0182] wx = KSgxt × (wxBt + Fgxxwx' + Fgyxwy' + Fgzxwz'),
[0183] wy = KSgyt × (wyBt + Fgxywx' + Fgyywy' + Fgzywz'),
[0184] wz = KSgzt × (wzBt + Fgxzwx' + Fgyzwy' + Fgzzwz'),
[0185] where, wx, wy, and wz are the angular rate values in three directions, KSgxt, KSgyt, and KSgzt are the full-temperature change parameters of the three-axis gyro scale, wxBt, wyBt, and wzBt are the full-temperature change parameters of the three-axis gyro zero bias, Fgxx, Fgyx, Fgzx, Fgxy, Fgyy, Fgzy, Fgxz, Fgyz, and Fgzz are the coupling parameters of the three-axis gyro, and wx', wy', and wz' are the outputs of the three gyroscopes in the b' coordinate system.
[0186] Further optionally, the sensor further includes an accelerometer, the calibration model further includes an acceleration calibration model, and the acceleration calibration model is:
[0187] Ax = KSaxt × (AxBt + FaxxAx' + FayxAy' + FazxAz'),
[0188] Ay = KSayt × (AyBt + FaxyAx' + FayyAy' + FazyAz'),
[0189] Az = KSazt × (AzBt + FaxzAx' + FayzAy' + FazzAz'),
[0190] Wherein, Ax, Ay, and Az are the apparent accelerations in three directions, KSaxt, KSayt, and KSazt are the full-temperature change parameters of the three-axis accelerometer scale, AxBt, AyBt, and AzBt are the full-temperature change parameters of the three-axis accelerometer zero position, Faxx, Fayx, Fazx, Faxy, Fayy, Fazy, Faxz, Fayz, and Fazz are the coupling parameters between the three-axis accelerations, and Ax', Ay', and Az' are the outputs of the three accelerometers in the b' coordinate system.
[0191] Further optionally, the bus transmission module is further configured to:
[0192] Receive the test data of the inertial measurement unit through the bus and send it to the data forwarding unit, and the data forwarding unit uses a serial port and sends it to the test computer through a slip ring;
[0193] Receive the test data of each inertial measurement unit through the host computer of the test computer, and store the test data of the inertial measurement unit according to a preset file naming, wherein the preset file naming is the device number, the temperature test point, and the test steps at the corresponding temperature test point.
[0194] The above embodiments only represent several implementation manners of the present invention, and their descriptions are relatively specific and detailed, but should not be construed as limiting the scope of the present invention patent. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present invention, several deformations and improvements can still be made, and these all belong to the protection scope of the present invention. Therefore, the protection scope of the present invention patent should be subject to the appended claims.
Claims
1. A batch calibration method for inertial measurement units based on a bus, characterized in that, The method includes: Placing the inertial measurement unit under different temperature conditions, performing calibration tests with preset attitude changes and preset angular velocity changes at each temperature condition, and acquiring test data, where the test data includes the actual measurement values of the sensors and the corresponding test condition data; Batch - transmitting the test data of all the inertial measurement units to the calibration system through a bus and storing them, where each inertial measurement unit has a unique device number on the bus; In the calibration system, acquiring the test data of each inertial measurement unit according to the storage path, and calculating the calibration parameters of each inertial measurement unit based on the test data, where the calibration parameters include the zero - bias, scale factor, and installation error of the sensors; Downloading the generated calibration parameters to each of the inertial measurement units through the bus; Among them, the step of calculating the calibration parameters of each inertial measurement unit based on the test data includes: Constructing a calibration model; Based on the calibration model, using the test data for system fitting to obtain the optimal calibration parameters; The step of using the test data for system fitting based on the calibration model to obtain the optimal calibration parameters includes: Determining optimization objectives, where there is more than one optimization objective and they conflict with each other, including accuracy and stability; Based on the difference between the predicted value of the calibration model and the actual measurement value of the sensor, defining an objective function for each optimization objective, including an accuracy objective function and a stability objective function; The accuracy objective function is as follows: , where y i is the actual measured value of the sensor under the i-th test condition, and ŷ i (x) is the predicted value of the calibration model using the calibration parameter x. The stability objective function is as follows: , where x i is the value of the calibration parameter x under the i-th test condition, is a reference value of all x i ; Finding a set of non - dominated solutions \(x^*\) such that for any \(x'\neq x^*\), it is not the case that \(f_1(x')\leq f_1(x^*)\) and \(f_2(x')\leq f_2(x^*)\) hold simultaneously, so that the found solutions achieve the best trade - off among different optimization objectives; The step of finding a set of non - dominated solutions includes: Setting initial parameters, including an initial population; Evaluating each individual in the initial population and calculating its objective function values \(f_1(x)\) and \(f_2(x)\); Performing non - dominated sorting on the population according to the objective function values to divide the population into different non - dominated levels; Selecting parent individuals from the current population to generate the next generation; Performing crossover and mutation operations on the selected parent individuals to generate offspring individuals; Combining the offspring individuals with the parent individuals to form a new population, and updating the population according to the non - dominated sorting and crowding - degree comparison operator; Repeating the iteration until the maximum number of iterations is reached, obtaining the non - dominated individuals in the current population, denoted as the Pareto front; Based on the shape and distribution of the Pareto front, determining the trade - off relationship between different optimization objectives; Selecting one or more optimal solutions from the Pareto front based on the trade - off relationship between different optimization objectives, that is, one or more sets of optimal calibration parameters.
2. The batch calibration method for the bus-based inertial measurement unit according to claim 1, characterized in that The step of using the test data for system fitting based on the calibration model to obtain the optimal calibration parameters includes: Determining the optimization objective, where the optimization objective is accuracy; Convert the test data of the sensor under different test conditions into the form of a matrix to obtain the observation matrix Y, Y = [y1, y2,..., y i ,..., y n , where y i is the actual measured value of the sensor under the i-th test condition; Constructing a design matrix \(X\) according to the calibration model, where the elements in the design matrix are associated with the calibration parameter \(x\); Based on the observation matrix Y and the design matrix X, a normal equation is constructed, and the normal equation is: , where is the estimated value of the calibration parameter, and X T is the transpose of the design matrix; Solve the normal equation to obtain the estimated values of the calibration parameters .
3. The batch calibration method of the bus-based inertial measurement unit according to claim 1, wherein The sensor includes a gyroscope, the calibration model includes a gyroscope calibration model, and in the step of constructing the calibration model, the gyroscope calibration model is: wx = KSgxt × (wxBt + Fgxxwx' + Fgyxwy' + Fgzxwz'), wy = KSgyt × (wyBt + Fgxywx' + Fgyywy' + Fgzywz'), wz = KSgzt × (wzBt + Fgxzwx' + Fgyzwy' + Fgzzwz'), where wx, wy, and wz are the angular rate values in three directions, KSgxt, KSgyt, and KSgzt are the full-temperature change parameters of the triaxial gyroscope scale, wxBt, wyBt, and wzBt are the full-temperature change parameters of the triaxial gyroscope zero bias, Fgxx, Fgyx, Fgzx, Fgxy, Fgyy, Fgzy, Fgxz, Fgyz, and Fgzz are the coupling parameters of the triaxial gyroscope, and wx', wy', and wz' are the outputs of the three gyroscopes in the b' coordinate system.
4. The batch calibration method for the bus-based inertial measurement unit according to claim 1, characterized in that, The sensor further includes an accelerometer, the calibration model further includes an accelerometer calibration model, and in the step of constructing the calibration model, the accelerometer calibration model is: Ax = KSaxt × (AxBt + FaxxAx' + FayxAy' + FazxAz'), Ay = KSayt × (AyBt + FaxyAx' + FayyAy' + FazyAz'), Az = KSazt × (AzBt + FaxzAx' + FayzAy' + FazzAz'), where Ax, Ay, and Az are the apparent accelerations in three directions, KSaxt, KSayt, and KSazt are the full-temperature change parameters of the triaxial accelerometer scale, AxBt, AyBt, and AzBt are the full-temperature change parameters of the triaxial accelerometer zero position, Faxx, Fayx, Fazx, Faxy, Fayy, Fazy, Faxz, Fayz, and Fazz are the coupling parameters between the triaxial accelerations, and Ax', Ay', and Az' are the outputs of the three accelerometers in the b' coordinate system.
5. The batch calibration method for the bus-based inertial measurement unit according to claim 1, characterized in that The step of batch-transmitting the test data of all the inertial measurement units to the calibration system through the bus and storing them includes: Receiving the test data of the inertial measurement unit through the bus and sending it to the data forwarding unit, and the data forwarding unit uses a serial port and sends it to the test computer through a slip ring; Receiving the test data of each inertial measurement unit through the upper computer of the test computer and storing the test data of the inertial measurement unit according to a preset file naming, where the preset file naming is the device number, the temperature test point, and the test steps under the corresponding temperature test point.
6. A batch calibration system for inertial measurement units based on a bus, characterized in that, The system includes: A calibration test module: used to place the inertial measurement unit under different temperature conditions, perform calibration tests with preset attitude changes and preset angular velocity changes under each temperature condition, and obtain test data, where the test data includes the actual measured values of the sensor and the corresponding test condition data; Bus transmission module: It is used to batch-transmit the test data of all the inertial measurement units to the calibration system through the bus and store them. Each of the inertial measurement units has a unique device number on the bus; Calibration parameter generation module: It is used to obtain the test data of each inertial measurement unit according to the storage path in the calibration system and calculate the calibration parameters of each inertial measurement unit based on the test data. The calibration parameters include the zero bias, scale factor, and installation error of the sensor; Calibration parameter download module: It is used to download the generated calibration parameters to each of the inertial measurement units through the bus; Among them, the calibration parameter generation module further includes: Construct a calibration model; Based on the calibration model, use the test data for system fitting to obtain the optimal calibration parameters; The calibration parameter generation module further includes: Determine the optimization objectives. There is more than one optimization objective and they conflict with each other, including accuracy and stability; Based on the difference between the predicted value of the calibration model and the actual measured value of the sensor, define an objective function for each optimization objective, including an accuracy objective function and a stability objective function; The accuracy objective function is as follows: , where y i is the actual measured value of the sensor under the i-th test condition, and ŷ i (x) is the predicted value of the calibration model using the calibration parameter x. The stability objective function is as follows: , where x i is the value of the calibration parameter x under the i-th test condition, is a reference value of all x i ; Find a set of non-dominated solutions x* such that for any x' ≠ x*, f1(x') ≤ f1(x*) and f2(x') ≤ f2(x*) do not hold simultaneously, so that the solutions found achieve the best trade-off among different optimization objectives; The calibration parameter generation module further includes: Set the initial parameters, including the initial population; Evaluate each individual in the initial population and calculate its objective function values f1(x) and f2(x); Perform non-dominated sorting on the population according to the objective function values to divide the population into different non-dominated levels; Select parent individuals from the current population to generate the next generation; Perform crossover and mutation operations on the selected parent individuals to generate offspring individuals; Merge the offspring individuals with the parent individuals to form a new population and update the population according to the non-dominated sorting and crowding comparison operator; Repeat the iteration until the maximum number of iterations is reached, and obtain the non-dominated individuals in the current population, which is set as the Pareto front; Based on the shape and distribution of the Pareto front, determine the trade-off relationship among different optimization objectives; Select one or more optimal solutions from the Pareto front based on the trade-off relationship among different optimization objectives, that is, one or more sets of optimal calibration parameters.
Citation Information
Patent Citations
CAN (Controller Area Network) bus-based multi-sensor correction communication method
CN104639288A
Batch calibration and error compensation system and method for micro inertial measurement assembly
CN114199280A
Temperature compensation method, device and equipment of inertial measurement device and storage medium
CN116678403A