A method and device for calibrating parameters of an IMU

By acquiring IMU parameters through an optical motion capture system and calibrating the IMU parameters using the carrier's angular velocity and pose data, the limitations of high-precision turntables are solved, enabling flexible and low-cost IMU parameter calibration.

CN116929406BActive Publication Date: 2026-05-29BEIJING SANKUAI ONLINE TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
BEIJING SANKUAI ONLINE TECH CO LTD
Filing Date
2022-04-01
Publication Date
2026-05-29

Smart Images

  • Figure CN116929406B_ABST
    Figure CN116929406B_ABST
Patent Text Reader

Abstract

The specification discloses a method and device for calibrating IMU parameters, and specifically discloses the following steps: acquiring carrier angular velocity and carrier acceleration of a carrier collected by a to-be-calibrated IMU, and pose data of a rigid body composed of a plurality of calibration points arranged on the carrier in a preset three-dimensional space coordinate system determined by an optical motion capture system through collected optical images; then, determining a first rotation matrix between an IMU coordinate system based on which the to-be-calibrated IMU collects data and a rigid body coordinate system in which the rigid body is located according to the carrier angular velocity and the pose data; further determining rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system through the first rotation matrix and the pose data; and finally, calibrating parameters of the to-be-calibrated IMU according to the carrier angular velocity and the carrier acceleration, and the rigid body angular velocity and the rigid body acceleration. In this way, a high-precision turntable is no longer needed when calibrating IMU parameters, thereby reducing the cost.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification relates to the field of sensor technology, and in particular to a method and apparatus for IMU parameter calibration. Background Technology

[0002] An Inertial Measurement Unit (IMU) is a device that measures an object's three-axis attitude angles (or angular rates) and acceleration. Typically, an IMU contains three single-axis accelerometers and three single-axis gyroscopes (also called angular velocity meters). The accelerometers measure the object's angular velocity in three-dimensional space, while the gyroscopes measure the object's angular velocity in three-dimensional space to calculate the object's attitude. Since the gyroscopes and accelerometers are the main components of the IMU, their accuracy directly affects the accuracy of the inertial system.

[0003] In actual use, due to the inherent characteristics and manufacturing processes of gyroscopes and accelerometers, the measurement results returned by the IMU may contain certain errors. Therefore, before using the IMU, it is necessary to pre-calibrate its parameters (including scaling parameters for compensating for scaling errors of the angular velocity and accelerometers, and non-orthogonality parameters for compensating for the non-orthogonal installation errors of the three axes of the angular velocity and accelerometers). Based on the calibrated parameters, the measurement results output by the IMU can be compensated to improve the accuracy of the IMU and the positioning and navigation algorithms.

[0004] In existing technologies, when calibrating IMU parameters, the IMU is typically fixed to the rotating platform of a high-precision turntable. The turntable then translates and rotates, and the angular velocity and acceleration of the turntable are measured. These angular velocities and accelerations are then compared with the angular velocities and accelerations measured by the IMU itself to calibrate the IMU's intrinsic parameters. However, high-precision turntables are sophisticated pieces of equipment, expensive, and cannot be easily moved.

[0005] Therefore, when calibrating the parameters of the IMU, the deployment of high-precision turntables results in many limitations, lack of flexibility, and high operating costs. Summary of the Invention

[0006] This specification provides a method and apparatus for IMU parameter calibration, which partially solves the aforementioned problems existing in the prior art.

[0007] The following technical solution is adopted in this specification:

[0008] This specification provides a method for IMU parameter calibration. The inertial measurement unit (IMU) to be calibrated is fixed on a carrier, which has several fixed calibration points. An optical motion capture system is used to acquire optical images of the calibration points when the carrier moves, including:

[0009] Acquire test data, which includes the carrier angular velocity and carrier acceleration acquired by the IMU to be calibrated, and the pose data of the rigid body formed by the plurality of calibration points set on the carrier in a preset three-dimensional spatial coordinate system, as determined by the optical motion capture system through the optical image.

[0010] Based on the carrier angular velocity and the pose data, determine the coordinate rotation transformation matrix between the IMU coordinate system on which the IMU to be calibrated is based and the rigid body coordinate system where the rigid body is located, and use it as the first rotation matrix.

[0011] The rigid body angular velocity and rigid body acceleration captured by the optical motion capture system are determined using the first rotation matrix and the pose data.

[0012] The parameters of the IMU to be calibrated are determined based on the carrier angular velocity and the carrier acceleration, as well as the rigid body angular velocity and the rigid body acceleration.

[0013] Optionally, before determining the coordinate rotation transformation matrix between the IMU coordinate system on which the IMU to be calibrated acquires data and the rigid body coordinate system based on the carrier angular velocity and the pose data, the method further includes:

[0014] Based on the pose data, the pose curve of the rigid body at each acquisition time of the optical motion capture system is fitted.

[0015] Optionally, based on the carrier angular velocity and the pose data, a coordinate rotation transformation matrix is ​​determined between the IMU coordinate system on which the IMU to be calibrated acquires data and the rigid body coordinate system, specifically including:

[0016] Based on the pose curve, determine the predicted pose data of the rigid body at each acquisition time of the IMU to be calibrated;

[0017] Based on the predicted pose data and the carrier angular velocity, the first rotation matrix and the angular velocity offset of the IMU to be calibrated are determined.

[0018] Optionally, before determining the coordinate rotation transformation matrix and the angular velocity offset of the IMU to be calibrated based on the predicted pose data and the carrier angular velocity, the method further includes:

[0019] Based on the predicted pose data, determine the rigid body angular velocities corresponding to each acquisition time of the IMU to be calibrated.

[0020] From the rigid body angular velocities corresponding to each acquisition time of the IMU to be calibrated, determine the rigid body angular velocity whose deviation from the carrier angular velocity actually acquired by the IMU to be calibrated satisfies a preset condition, and use it as the target rigid body angular velocity.

[0021] The time deviation between the acquisition time corresponding to the carrier angular velocity that satisfies the preset condition between the IMU to be calibrated and the acquisition time corresponding to the target rigid body angular velocity in the pose curve is used as the acquisition time offset.

[0022] Optionally, based on the predicted pose data and the carrier angular velocity, the coordinate rotation transformation matrix and the angular velocity offset of the IMU to be calibrated are determined, specifically including:

[0023] Under the time compensation of the acquisition time offset, the actual rigid body angular velocities corresponding to the rigid body at each acquisition time of the IMU to be calibrated are determined according to the predicted pose data.

[0024] Based on the determined angular velocities of each rigid body and the angular velocity of the carrier, the first rotation matrix and the angular velocity offset of the IMU to be calibrated are determined.

[0025] Optionally, the rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system are determined using the first rotation matrix and the pose data, specifically including:

[0026] Based on the first rotation matrix and the data collected by the IMU to be calibrated at each acquisition time of the carrier... carrier Angular velocity, determining auxiliary calibration parameters, the auxiliary calibration parameters including: the gravitational acceleration of the IMU to be calibrated, the acceleration offset of the IMU to be calibrated, and the coordinate translation matrix between the rigid body coordinate system and the IMU coordinate system;

[0027] Based on the auxiliary calibration parameters and the pose data, the rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system are determined.

[0028] Optionally, auxiliary calibration parameters are determined based on the first rotation matrix and the carrier angular velocity of the carrier acquired by the IMU to be calibrated at each acquisition time, specifically including:

[0029] For each acquisition time of the IMU to be calibrated, based on the first rotation matrix, a coordinate translation matrix between the IMU coordinate system and the three-dimensional spatial coordinate system is determined at that acquisition time, as well as a second rotation matrix between the three-dimensional spatial coordinate system and the IMU coordinate system;

[0030] The auxiliary calibration parameters are determined based on the second rotation matrix and the carrier angular velocity of the carrier acquired by the IMU to be calibrated at the acquisition time.

[0031] Optionally, the parameters of the IMU to be calibrated are calibrated based on the carrier angular velocity and the carrier acceleration, as well as the rigid body angular velocity and the rigid body acceleration, specifically including:

[0032] Based on the carrier angular velocity and the carrier acceleration, as well as the rigid body angular velocity and the rigid body acceleration, at least one optimization deviation term is constructed. The optimization deviation term includes: a first deviation term and a second deviation term. The first deviation term represents the deviation between the carrier angular velocity acquired by the IMU to be calibrated and the rigid body angular velocity of the rigid body in the IMU coordinate system acquired by the optical motion capture system at the same acquisition time. The second deviation term represents the deviation between the carrier acceleration acquired by the IMU to be calibrated and the rigid body acceleration of the rigid body in the IMU coordinate system acquired by the optical motion capture system. The at least one optimization deviation term contains the IMU parameters to be calibrated.

[0033] The calibration parameters are applied to the IMU to be calibrated with the goal of minimizing the deviation value of the at least one optimization deviation term.

[0034] Optionally, the optimization deviation term further includes: a third deviation term and a fourth deviation term, wherein the third deviation term represents the deviation between the translation amount of the rigid body acquired by the optical motion capture system and the translation amount of the rigid body determined based on the pose curve at the same acquisition time, and the fourth deviation term represents the deviation between the rotation angle of the rigid body acquired by the optical motion capture system and the rotation angle of the rigid body determined based on the pose curve at the same acquisition time;

[0035] The calibration parameters for the IMU to be calibrated are determined with the objective of minimizing the deviation value of at least one optimization deviation term. Specifically, this includes:

[0036] The calibration parameters of the IMU to be calibrated are set with the optimization objective of minimizing the sum of the deviations among the first deviation term, the second deviation term, the third deviation term, and the fourth deviation term.

[0037] This specification provides an IMU parameter calibration device. The inertial measurement unit (IMU) to be calibrated is fixed on a carrier, which has several fixed calibration points. An optical motion capture system is used to acquire optical images of the calibration points when the carrier moves, including:

[0038] The acquisition module is used to acquire test data, which includes the carrier angular velocity and carrier acceleration of the carrier acquired by the IMU to be calibrated, and the pose data of the rigid body formed by the plurality of calibration points set on the carrier in the preset three-dimensional spatial coordinate system as determined by the optical motion capture system through the optical image.

[0039] The first rotation matrix determination module is used to determine the coordinate rotation transformation matrix between the IMU coordinate system on which the IMU to be calibrated is based and the rigid body coordinate system where the rigid body is located, based on the angular velocity of the carrier and the pose data, as the first rotation matrix;

[0040] The determination module is used to determine the rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system through the first rotation matrix and the pose data.

[0041] The calibration determination module is used to calibrate the parameters of the IMU to be calibrated based on the carrier angular velocity and the carrier acceleration, as well as the rigid body angular velocity and the rigid body acceleration.

[0042] This specification provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described method for IMU parameter calibration.

[0043] This specification provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the method for IMU parameter calibration described above.

[0044] The above-mentioned technical solutions adopted in this specification can achieve the following beneficial effects:

[0045] In the IMU parameter calibration method provided in this specification, the IMU to be calibrated is fixed on a carrier with several fixed calibration points. An optical motion capture system is used to acquire optical images of these calibration points as the carrier moves. When calibrating the IMU, test data is first acquired. This test data includes the carrier angular velocity and acceleration acquired by the IMU, and the pose data of the rigid body formed by the calibration points on the carrier, determined by the optical motion capture system from the aforementioned optical images, in a preset three-dimensional coordinate system. Then, based on the carrier angular velocity and pose data, a coordinate rotation transformation matrix is ​​determined between the IMU coordinate system on which the IMU acquires data and the rigid body coordinate system, serving as the first rotation matrix. Then, using the first rotation matrix and the pose data, the rigid body angular velocity and rigid body acceleration captured by the optical motion capture system are determined. Finally, based on the carrier angular velocity and acceleration, and the rigid body angular velocity and rigid body acceleration, the parameters of the IMU to be calibrated are performed.

[0046] As can be seen from the above method, this method can use an optical motion capture system to capture the pose data of a rigid body formed by several calibration points fixed on a carrier, so as to determine the rigid body acceleration and rigid body angular velocity captured by the optical motion capture system. Then, based on the rigid body acceleration and rigid body angular velocity, as well as the carrier acceleration and carrier angular velocity actually acquired by the IMU to be calibrated, the parameters of the IMU to be calibrated are calibrated. In this way, it is no longer necessary to use a high-precision turntable to calibrate the parameters of the IMU to be calibrated. This can reduce the parameter calibration cost of the IMU to be calibrated. Moreover, the optical motion capture system can be arranged according to actual needs to obtain the pose data of the rigid body formed by several calibration points on the carrier to assist the parameter calibration of the IMU to be calibrated, thus allowing for flexible parameter calibration of the IMU to be calibrated. Attached Figure Description

[0047] The accompanying drawings, which are included to provide a further understanding of this specification and form part of this specification, illustrate exemplary embodiments and are used to explain this specification, but do not constitute an undue limitation thereof. In the drawings:

[0048] Figure 1 This is a flowchart illustrating one method for IMU parameter calibration as described in this specification.

[0049] Figure 2 This is a schematic diagram of the optical motion capture system described in this specification.

[0050] Figure 3 A schematic diagram of an IMU parameter calibration device provided in this specification;

[0051] Figure 4The corresponding information provided in this specification Figure 1 A schematic diagram of an electronic device. Detailed Implementation

[0052] To make the objectives, technical solutions, and advantages of this specification clearer, the technical solutions of this specification will be clearly and completely described below in conjunction with specific embodiments and corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of this specification, and not all of them. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this specification.

[0053] The IMU parameter calibration scheme provided in this specification will be described in detail below with reference to the embodiments.

[0054] Figure 1 This is a flowchart illustrating a method for IMU parameter calibration as described in this specification, which specifically includes the following steps:

[0055] Step S100: Obtain test data, which includes the carrier angular velocity and carrier acceleration acquired by the IMU to be calibrated, and the pose data of the rigid body formed by the plurality of calibration points set on the carrier in a preset three-dimensional spatial coordinate system as determined by the optical motion capture system through the optical image.

[0056] Optical motion capture systems are object localization systems that use optical motion capture devices (usually optical cameras) to acquire images of an object from multiple angles, and then use image processing techniques and triangulation principles to accurately calculate the object's pose data. When locating an object using this optical motion capture system, high-precision pose data can be obtained. This high-precision pose data can accurately reflect the changes in the object's acceleration and rotational angular velocity during motion. Therefore, the high-precision pose data from optical motion capture systems can be used to calibrate the parameters of an IMU (Integrated Device Unit).

[0057] The following section will detail the specific implementation process of using high-precision pose information acquired by an optical motion capture system to calibrate the parameters of the IMU to be calibrated.

[0058] In practice, the first step is to collect test data for parameter calibration of the IMU to be calibrated. For details, see [link to relevant documentation]. Figure 2When collecting test data, a carrier with the IMU to be calibrated needs to be placed and fixed within the area covered by the optical motion capture system. At the same time, several calibration points are fixed on the surface of the carrier. These calibration points construct a rigid body, and a rigid body coordinate system is established for the rigid body. The pose of the rigid body when it moves is equivalent to the rotation angle of the three coordinate axes of the rigid body coordinate system relative to the three coordinate axes of the preset three-dimensional spatial coordinate system, and the translation of the origin of the rigid body coordinate system relative to the origin of the preset three-dimensional spatial coordinate system.

[0059] Then, a carrier with the IMU to be calibrated fixed within the area covered by the optical motion capture system is moved. During the carrier's movement, the IMU to be calibrated, fixed on the carrier, collects the carrier's angular velocity and acceleration at its own data acquisition frequency and records the corresponding acquisition times. Simultaneously, the optical motion capture system also collects rigid body pose data constructed from several calibration points fixed on the carrier at its own data acquisition frequency and records the corresponding acquisition times. At least three calibration points are fixed on the carrier, and these calibration points are not on the same straight line. Thus, when the carrier with the IMU to be calibrated moves, the rigid body constructed from the calibration points on the carrier undergoes the same motion. That is, when the carrier moves, the rigid body angular velocity and rigid body acceleration, after transformation by the coordinate transformation matrix between the IMU coordinate system and the rigid body coordinate system used by the IMU for data acquisition, are consistent with the carrier's angular velocity and acceleration.

[0060] When an optical motion capture system captures the pose data of a rigid body, this pose data includes the pose quaternion and translation vector of the rigid body at each moment. Then, the rotation represented by the pose quaternion is converted to the so(3) notation with 3 degrees of freedom to obtain the pose vector at each moment. Specifically, the unit quaternion q and the rotation vector under the so(3) notation are... The conversion relationship between them is as follows: in, when When it is very small, it can be expressed as simply In this way, the terminal device can transform the pose data of the rigid body captured by the optical motion capture system to obtain the pose vector of the rigid body. Then, based on the pose vector corresponding to each pose data point, IMU parameter calibration is performed. That is, in the following text, all pose data involved are rotation vectors obtained through transformation.

[0061] Based on this, the terminal device can acquire the carrier angular velocity and carrier acceleration of the carrier collected by the IMU to be calibrated, as well as the pose data of the rigid body constructed from the calibration points (i.e., test data) captured by the optical motion capture system. Then, based on the pose data, the rigid body angular velocity and rigid body acceleration of the rigid body are calculated. The calculated rigid body angular velocity and rigid body acceleration are transformed according to the coordinate transformation matrix between the IMU coordinate system and the rigid body coordinate system on which the IMU to be calibrated collects data. The transformed rigid body angular velocity and rigid body acceleration are then compared with the carrier angular velocity and carrier acceleration of the carrier measured by the IMU to be calibrated. Finally, based on the deviation between the two, the parameters of the IMU to be calibrated are calibrated.

[0062] In this specification, when the terminal device determines the rigid body angular velocity and rigid body acceleration based on the rigid body's pose data, it first needs to determine the IMU coordinate system on which the IMU to be calibrated collects data, and the coordinate rotation transformation matrix between them. Then, based on the coordinate rotation transformation matrix, the rigid body angular velocity and rigid body acceleration are determined.

[0063] Therefore, the process of calculating and determining the rigid body angular velocity and rigid body acceleration from the rigid body's pose data will be described in detail below with reference to embodiments. It should be noted that the execution subject of the IMU parameter calibration method provided in this specification can be either the terminal device mentioned above (such as a desktop computer, laptop computer, etc.) or a server. For ease of description, the following example will only use a terminal device as the execution subject.

[0064] Step S102: Based on the carrier angular velocity and the pose data, determine the coordinate rotation transformation matrix between the IMU coordinate system on which the IMU to be calibrated collects data and the rigid body coordinate system where the rigid body is located, and use it as the first rotation matrix.

[0065] In practical applications, the data acquisition frequency of an IMU (Integrated Measurement Unit) is much higher than that of an optical motion capture system. Therefore, at the moment when the IMU is acquiring the angular velocity and acceleration of the carrier, the optical motion capture system may not have captured the corresponding rigid body pose data. Consequently, the angular velocity and acceleration of the carrier acquired by the IMU may not have corresponding pose data from the rigid body pose data captured by the optical motion capture system, making it impossible to further determine the rigid body angular velocity and acceleration based on the pose data. To use the rigid body pose data captured by the optical motion capture system for parameter calibration of the IMU, a sufficient number of rigid body pose data that match the angular velocity and acceleration acquired by the IMU must be obtained.

[0066] The following section will provide a detailed explanation of how to determine the pose data of the rigid body at each acquisition moment for the carrier angular velocity and carrier acceleration of the carrier to be calibrated by the IMU.

[0067] Specifically, the terminal device can increase the data acquisition time during test data collection to gather a large amount of test data. Then, for each acquisition moment of the IMU to be calibrated, the terminal device retrieves the rigid body's pose data acquired at that specific acquisition moment from the pose data of the rigid body captured by the optical motion capture system. Next, based on the carrier angular velocity acquired by the IMU to be calibrated at the same acquisition moment and the rigid body's pose data captured by the optical motion capture system, the terminal device determines the coordinate rotation transformation matrix between the IMU coordinate system and the rigid body coordinate system, i.e., the first rotation matrix.

[0068] When the amount of test data collected is relatively small, the terminal device may not be able to find enough test data to determine the first rotation matrix using the above method (i.e., the carrier angular velocity of the carrier collected by the IMU to be calibrated and the pose data of the rigid body captured by the optical motion capture system at the same acquisition time). In this case, the test data to determine the first rotation matrix can be determined by the following method.

[0069] In practice, the terminal device can fit the pose data of the rigid body captured by the optical motion capture system to generate the pose curve of the rigid body at each acquisition time of the optical motion capture system. Then, based on the pose curve, the predicted pose data of the rigid body captured by the optical motion capture system at each acquisition time of the IMU to be calibrated are determined. Finally, based on the predicted pose data and the carrier angular velocity acquired by the IMU to be calibrated, the first rotation matrix between the IMU coordinate system and the rigid body coordinate system is determined.

[0070] Among them, the terminal device can fit the pose curve of the rigid body at each acquisition moment of the optical motion capture system in at least the following two ways.

[0071] For example, the terminal device can acquire a preset nonlinear function, and then, based on the pose data, fit the pose curve of the rigid body using this nonlinear function, so that the position point represented by each captured pose data falls on the pose curve. This nonlinear function can be a power series expansion of a univariate function of the pose data.

[0072] For example, the terminal device can use a B-spline curve to fit the pose curve of a rigid body captured by an optical motion capture system. Specifically, the terminal device first determines the base curve of the B-spline curve and the number of control points p of the B-spline curve. Then, using the pose data of the rigid body as constraints, it adjusts the positions of the control points on the B-spline curve so that the pose points corresponding to the pose data of the rigid body all fall on the B-spline curve, thus obtaining the pose curve of the rigid body, which can be represented as C(p,t).

[0073] After obtaining the pose curve of the rigid body, the terminal device can determine the predicted pose data of the rigid body captured by the optical motion capture system at each acquisition time of the IMU to be calibrated, based on the pose curve. Then, the terminal device can determine the coordinate rotation transformation matrix between the IMU coordinate system and the rigid body coordinate system, i.e., the first rotation matrix, based on the carrier angular velocity acquired by the carrier to be calibrated and the predicted pose data of the rigid body captured by the optical motion capture system.

[0074] In practice, the terminal device first determines the predicted pose data of the rigid body at each acquisition time of the IMU to be calibrated based on the pose curve, and then determines the corresponding rigid body angular velocities at each acquisition time of the IMU to be calibrated based on the predicted pose data. Then, among the rigid body angular velocities determined by the terminal device, the rigid body angular velocity whose deviation from the actual carrier angular velocity acquired by the IMU to be calibrated satisfies a preset condition is identified as the target rigid body angular velocity. The time deviation between the acquisition time corresponding to the carrier angular velocity acquired by the IMU to be calibrated that satisfies the preset condition and the acquisition time corresponding to the target rigid body angular velocity in the pose curve is taken as the acquisition time offset. Next, with time compensation for the determined acquisition time offset, the terminal device determines the actual rigid body angular velocities of the rigid body at each acquisition time of the IMU to be calibrated based on the predicted pose data. Based on the determined actual rigid body angular velocities and the carrier angular velocity, the terminal device determines the first rotation matrix (i.e., the coordinate rotation transformation matrix between the IMU coordinate system and the rigid body coordinate system) and the angular velocity offset of the IMU to be calibrated.

[0075] The terminal device can determine the rigid body angular velocity corresponding to the predicted pose data of the rigid body according to the following method.

[0076] Specifically, the terminal device extracts the rigid body's attitude data from the carrier's predicted pose data, and then represents the carrier's attitude data in so(3) notation to obtain the rotation axis and rotation angle of the rigid body's attitude data corresponding to the origin of the preset three-dimensional spatial coordinate system. Then, based on the calculation formula of angular velocity, the rotation axis, and the rotation angle, the rigid body's rigid body angular velocity is determined.

[0077] Wherein, if the rigid body's attitude data is expressed in terms of rotation vector When expressed, the derivative of the rotation vector with respect to time is denoted as... Under the so(3) notation, Where θ represents the rotation angle, and a represents the axis of rotation. The rigid body's angular velocity can then be expressed as:

[0078]

[0079] Where, ω body (t) is a function of the rigid body angular velocity as a function of time in a preset three-dimensional coordinate system;

[0080] This represents the coordinate rotation transformation matrix between the rigid body coordinate system and the preset three-dimensional spatial coordinate system.

[0081] Represents the rotation vector The corresponding Jacobian matrix.

[0082] Specifically, The calculation formula is as follows:

[0083]

[0084] Among them, [a] × It is denoted as an antisymmetric matrix representing the rotation axis; I represents the identity matrix.

[0085] Thus, using the above formula, the angular velocities of the rigid body at each acquisition time of the IMU to be calibrated can be determined based on the attitude data in the predicted pose data of the rigid body.

[0086] Then, the terminal device can determine whether the deviation between the rigid body angular velocity corresponding to each acquisition moment of the rigid body at each acquisition moment of the IMU to be calibrated and the carrier angular velocity of the carrier actually acquired by the IMU to be calibrated meets the preset conditions in several ways, as follows.

[0087] For example, the terminal device can determine the modulus of each rigid body angular velocity at each acquisition time of the IMU to be calibrated, and select a predetermined number of rigid body angular velocities from each rigid body angular velocity according to the acquisition time sequence to construct a rigid body angular velocity modulus vector. Simultaneously, according to the same acquisition time, the corresponding modulus of the carrier angular velocity is selected from the carrier angular velocity of the actual carrier being calibrated by the IMU to be calibrated to construct a carrier angular velocity modulus vector. Then, a cross-correlation is performed on the rigid body angular velocity modulus vector and the carrier angular velocity modulus vector with respect to time. When the cross-correlation value is maximized, it is determined that the deviation between each rigid body angular velocity at each acquisition time of the IMU to be calibrated and the carrier angular velocity of the actual carrier being calibrated by the IMU meets a preset condition.

[0088] Alternatively, the rigid body angular velocity magnitude vector can be kept unchanged. For each element in the carrier angular velocity magnitude vector, the value is shifted one acquisition time to obtain a new carrier angular velocity magnitude vector, and the similarity between the two is calculated again. This process is repeated to determine the similarity between the rigid body angular velocity magnitude vector and each carrier angular velocity magnitude vector. Then, when the similarity value is at its maximum (or when the similarity exceeds a set threshold for the first time), the deviation between the rigid body angular velocities corresponding to each acquisition time of the IMU to be calibrated and the carrier angular velocities actually acquired by the IMU to be calibrated meets a preset condition.

[0089] For example, if the angular velocity of the actual carrier being calibrated by the IMU remains constant, the angular velocities of the rigid body at each acquisition time of the IMU will be determined. Each acquisition time is shifted, and the sum of the squares of the differences between the modulus of the rigid body at each acquisition time of the IMU and the modulus of the actual carrier angular velocity of the carrier being calibrated is determined. When this sum of squares reaches its minimum value (or is less than a set threshold for the first time), the deviation between the rigid body angular velocity at each acquisition time of the IMU and the actual carrier angular velocity of the carrier being calibrated is determined to meet a preset condition. Other methods will not be listed here.

[0090] Theoretically, after performing a coordinate rotation transformation on the actual rigid body angular velocities (target rigid body angular velocities) using the coordinate rotation transformation matrix between the IMU coordinate system and the rigid body coordinate system, the resulting target rigid body angular velocities should be equal to the carrier angular velocities actually acquired by the IMU to be calibrated. Therefore, the terminal device can use this as a constraint to determine the first rotation matrix. Thus, the following relationship exists between the actual rigid body angular velocities and the carrier angular velocities actually measured by the IMU to be calibrated:

[0091]

[0092] Where, ω imu (t) represents the carrier angular velocity of the carrier actually acquired by the IMU to be calibrated;

[0093] This represents the coordinate rotation transformation matrix between the rigid body coordinate system and the IMU coordinate system, i.e., the first rotation matrix;

[0094] t d This represents the time deviation between the acquisition time corresponding to the carrier angular velocity that meets the preset conditions between the IMU to be calibrated and the acquisition time corresponding to the target rigid body angular velocity in the pose curve, i.e., the acquisition time offset.

[0095] ω body (t+t d ) represents the actual angular velocities of each rigid body under time compensation for acquisition time offset.

[0096] Furthermore, due to imperfections in the fabrication process of the IMU to be calibrated, the scaling parameters of the IMU may also contain certain errors. Thus, there is often a constant deviation between the zero angular velocity measured by the IMU and the true zero angular velocity; this deviation can be called the angular velocity bias of the IMU angular velocimeter. The existence of this angular velocity bias may affect the accuracy of the final calibrated parameters. Therefore, the angular velocity bias of the IMU angular velocimeter should be taken into account when establishing the above constraints. At this point, the calculated angular velocities of each rigid body and the carrier angular velocity actually measured by the IMU to be calibrated satisfy the following relationship:

[0097]

[0098] Where, ω imu (t) represents the carrier angular velocity of the carrier acquired by the IMU to be calibrated;

[0099] This represents the coordinate rotation transformation matrix between the rigid body coordinate system and the IMU coordinate system, i.e., the first rotation matrix;

[0100] t d This represents the time deviation between the acquisition time corresponding to the carrier angular velocity that meets the preset conditions between the IMU to be calibrated and the acquisition time corresponding to the target rigid body angular velocity in the pose curve, i.e., the acquisition time offset.

[0101] ω body (t+t d This represents the actual angular velocities of each rigid body under time compensation for the acquisition time offset;

[0102] bω This indicates the angular velocity offset of the IMU to be calibrated.

[0103] Thus, based on the above relationships, after obtaining multiple sets of rigid body angular velocities (i.e., target rigid body angular velocities) actually acquired at the same acquisition time and the carrier angular velocity actually acquired by the IMU to be calibrated, the terminal device can establish a system of equations and solve for the coordinate rotation transformation matrix between the rigid body coordinate system and the IMU coordinate system. (i.e., the first rotation matrix), and the angular velocity bias b of the IMU to be calibrated. ω .

[0104] It should be noted that when the timing clock corresponding to the IMU to be calibrated is not synchronized with the timing clock corresponding to the optical motion capture system, the actual angular velocities of each rigid body must be determined by fitting the pose curve of the rigid body.

[0105] Step S104: Determine the rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system using the first rotation matrix and the pose data.

[0106] In practice, the terminal device determines auxiliary calibration parameters based on the first rotation matrix and the carrier angular velocity of the carrier acquired by the IMU to be calibrated at each acquisition time. Then, based on the auxiliary calibration parameters and the pose data of the rigid body in the preset three-dimensional spatial coordinate system, it determines the rigid body angular velocity and rigid body acceleration captured by the optical motion capture system. The auxiliary calibration parameters include: the gravitational acceleration acting on the IMU to be calibrated, the acceleration offset of the IMU to be calibrated, and the coordinate translation matrix between the rigid body coordinate system and the IMU coordinate system.

[0107] When determining the auxiliary calibration parameters, the terminal device first determines the coordinate translation matrix between the IMU coordinate system and the preset three-dimensional spatial coordinate system at each acquisition time of the IMU to be calibrated, and the second rotation matrix between the preset three-dimensional spatial coordinate system and the IMU coordinate system, based on the first rotation matrix. Then, based on the second rotation matrix and the carrier angular velocity of the carrier acquired by the IMU to be calibrated at that acquisition time, the auxiliary calibration parameters are determined.

[0108] Specifically, when determining the auxiliary calibration parameters, the terminal device first needs to perform a coordinate rotation transformation on the pose curve of the rigid body coordinate system at each acquisition time according to the determined coordinate rotation transformation matrix between the rigid body coordinate system and the IMU coordinate system, to obtain the estimated pose curve in the auxiliary coordinate system. This auxiliary coordinate system is obtained by performing a coordinate rotation transformation on the rigid body coordinate system based on the first rotation matrix. Therefore, the pose of the auxiliary coordinate system in the preset three-dimensional spatial coordinate system is consistent with the pose of the IMU coordinate system in the preset three-dimensional spatial coordinate system, differing from each other only by a translation vector.

[0109] Using this auxiliary coordinate system as an intermediate coordinate system, the following equations can be determined to satisfy the IMU coordinate system, the preset three-dimensional space coordinate system, the rigid body coordinate system, and the auxiliary coordinate system:

[0110]

[0111] According to the above formula, we can obtain:

[0112] in, This represents the coordinate rotation transformation matrix from coordinate system a to coordinate system b; This represents the translation vector from coordinate system a to coordinate system b; imu represents the IMU coordinate system, body represents the rigid body coordinate system, imu2 represents the auxiliary coordinate system, and w represents the preset three-dimensional spatial coordinate system.

[0113] right Taking the second derivative, we can obtain the rigid body acceleration in the preset three-dimensional coordinate system, which can be expressed as:

[0114]

[0115] Combined with the formula We can obtain:

[0116]

[0117] a imu This represents the carrier acceleration actually acquired by the IMU to be calibrated;

[0118] This represents the second rotation matrix between the preset three-dimensional spatial coordinate system and the IMU coordinate system;

[0119] a w This represents the actual acceleration of the rigid body in a preset three-dimensional coordinate system.

[0120] g wThis represents the actual gravitational acceleration experienced by the rigid body in a preset three-dimensional coordinate system.

[0121] b a This indicates the angular velocity offset of the IMU to be calibrated;

[0122] [ω] × This represents the antisymmetric matrix of the angular velocity determined based on the estimated pose curve of the carrier in the auxiliary coordinate system.

[0123] The first derivative of the antisymmetric matrix of angular velocity;

[0124] This represents the translation vector between the IMU coordinate system and the rigid body coordinate system;

[0125] This represents the translation vector between the auxiliary coordinate system and the preset three-dimensional spatial coordinate system.

[0126] This represents the first rotation matrix from the rigid body coordinate system to the IMU coordinate system;

[0127] t d This indicates the acquisition time offset of the IMU to be calibrated;

[0128] ω body (t+t d This represents the actual angular velocities of each rigid body under time compensation for the acquisition time offset.

[0129] b ω This indicates the angular velocity offset of the IMU to be calibrated.

[0130] Based on the above formula, the terminal device can solve for the auxiliary calibration parameters required for IMU parameter calibration, namely the gravitational acceleration g acting on the IMU to be calibrated. w The coordinate translation matrix between the rigid body coordinate system and the IMU coordinate system Acceleration bias b of the IMU to be calibrated a .

[0131] Among them, g w The expression is as follows:

[0132] g w =[g*cosθ,g*sinθ*cosφ,g*sinθ*sinφ)] T

[0133] Thus, g is a constant value of 9.8 for gravitational acceleration. When solving for g... wBy solving for θ and φ, the components of gravitational acceleration on each coordinate axis of the accelerometer of the IMU to be calibrated can be determined.

[0134] After obtaining the above auxiliary calibration parameters, the terminal device will determine the rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system based on the auxiliary calibration parameters and the acceleration bias of the IMU to be calibrated.

[0135] Specifically, corresponding to the Kth time of the IMU, the rigid body angular velocity satisfies the following formula:

[0136]

[0137] Among them, t k This indicates the Kth acquisition time of the IMU to be calibrated; t d Indicates the acquisition time offset of the IMU to be calibrated; (t) k +t d () represents the acquisition time of the optical motion capture system corresponding to the Kth acquisition time of the IMU to be calibrated under time compensation for acquisition time offset;

[0138] ω notek This represents the rigid body angular velocity in the IMU coordinate system at the Kth acquisition time of the IMU to be calibrated;

[0139] This represents the transpose of the second rotation matrix between the IMU coordinate system and the preset three-dimensional spatial coordinate system at the Kth acquisition time of the IMU to be calibrated.

[0140] ω wk (t k +t d This indicates that, in a preset three-dimensional coordinate system, the optical motion capture system is in (t) k +t d The rigid body angular velocity captured at time )

[0141] b ω (t k ) represents the angular velocity offset of the IMU to be calibrated at the Kth acquisition time.

[0142] In this specification, the acceleration at the calibration point corresponding to the Kth time of the IMU to be calibrated satisfies the following formula:

[0143]

[0144] Among them, t k This represents the Kth acquisition time of the IMU to be calibrated; t d Indicates the acquisition time offset of the IMU to be calibrated; (t) k +td () represents the acquisition time of the optical motion capture system corresponding to the Kth acquisition time of the IMU to be calibrated under time compensation for acquisition time offset;

[0145] a notek This represents the rigid body acceleration in the IMU coordinate system at the Kth acquisition time of the IMU to be calibrated.

[0146] This represents the transpose of the second rotation matrix between the IMU coordinate system and the preset three-dimensional spatial coordinate system at the Kth acquisition time of the IMU to be calibrated.

[0147] a(t k +t d This indicates that, in a preset three-dimensional coordinate system, the optical motion capture system is in (t) k +t d The rigid body acceleration of the rigid body captured at time )

[0148] g w The actual gravitational acceleration experienced by the rigid body in the preset three-dimensional coordinate system;

[0149] b a (t k ) represents the angular velocity offset of the IMU to be calibrated at the Kth acquisition time.

[0150] Step S106: Perform parameter calibration on the IMU to be calibrated based on the carrier angular velocity and the carrier acceleration, as well as the rigid body angular velocity and the rigid body acceleration.

[0151] In practice, the terminal device constructs at least one optimization deviation term based on the carrier angular velocity and acceleration actually collected by the IMU to be calibrated, as well as the determined rigid body angular velocity and rigid body acceleration in the IMU coordinate system. Then, with minimizing the deviation value of at least one optimization deviation term as the optimization objective, the calibration parameters of the IMU to be calibrated are applied. At least one optimization deviation term contains the IMU parameters to be calibrated.

[0152] The at least one optimization deviation term includes the IMU parameters to be calibrated, and the optimization deviation term may include: a first deviation term and a second deviation term. The first deviation term represents the deviation between the carrier angular velocity acquired by the carrier by the IMU to be calibrated and the angular velocity of the rigid body in the IMU coordinate system acquired by the optical motion capture system at the same acquisition time. The second deviation term represents the deviation between the carrier acceleration acquired by the IMU to be calibrated and the rigid body acceleration of the rigid body in the IMU coordinate system acquired by the optical motion capture system.

[0153] In practical applications, this first deviation term can be represented by the following expression:

[0154] e ωk =ω mk -K1ω notek ;

[0155] e ωk : At the Kth acquisition time of the IMU to be calibrated, the deviation between the carrier angular velocity of the carrier actually acquired by the IMU to be calibrated and the rigid body angular velocity of the rigid body in the IMU coordinate system captured by the optical motion capture system at that time.

[0156] ω mk This represents the carrier angular velocity of the carrier actually acquired by the IMU to be calibrated at the Kth acquisition time.

[0157] K1 represents the calibration parameters of the angular velocity meter of the IMU to be calibrated, including the scaling parameters and non-orthogonality parameters of the angular velocity meter;

[0158] ω notek This represents the rigid body angular velocity in the IMU coordinate system captured by the optical motion capture system at the Kth acquisition moment of the IMU.

[0159] The second deviation term can be expressed by the following expression:

[0160] e ak =a mk -K2a notek ;

[0161] e ak This represents the deviation between the carrier acceleration actually acquired by the IMU to be calibrated at the Kth acquisition time and the rigid body acceleration in the IMU coordinate system captured by the optical motion capture system at that time.

[0162] a mk This represents the carrier acceleration of the carrier actually acquired by the IMU to be calibrated at the Kth acquisition time.

[0163] K2 represents the calibration parameters of the accelerometer of the IMU to be calibrated, including the accelerometer's scaling parameters and non-orthogonality parameters;

[0164] a notek This represents the rigid body acceleration in the IMU coordinate system captured by the optical motion capture system at the Kth acquisition moment of the IMU.

[0165] The deviation value of this optimization deviation term can be expressed in the form of the sum of squared deviations. When both the first and second deviation terms exist simultaneously, a least-squares optimization equation can be established and solved. Specifically, the Levenberg-Marquardt (LM) algorithm can be used to calculate and solve all the calibration parameters to be solved. K1 represents the desired scaling and non-orthogonality parameters (one type of calibration parameter) of the angular velocity meter of the IMU to be calibrated, and K2 represents the desired scaling and non-orthogonality parameters (another type of calibration parameter) of the accelerometer of the IMU to be calibrated.

[0166] In this manual, when solving for K1 and K2, all the solution terms involved in determining the rigid body acceleration and rigid body angular velocity can be optimized simultaneously, including but not limited to, acquisition time offset, angular velocity offset of the IMU to be calibrated, acceleration offset of the IMU to be calibrated, coordinate rotation transformation matrix between the IMU coordinate system and the rigid body coordinate system, gravitational acceleration of the IMU to be calibrated, and coordinate translation matrix between the rigid body coordinate system and the IMU coordinate system.

[0167] Furthermore, the terminal device can also fit an angular velocity offset curve of the angular velocity offset of the angular velocity meter of the IMU to be calibrated with respect to time, based on a predefined B-spline curve. This angular velocity offset can be denoted as C(p1,t). Similarly, for the acceleration offset of the accelerometer of the IMU to be calibrated, an acceleration offset curve of the acceleration offset with respect to time can also be fitted based on a preset B-spline curve. This acceleration offset can be denoted as C(p2,t).

[0168] Where p1 is the control point in the B-spline curve corresponding to the angular velocity offset, p2 is the control point in the B-spline curve corresponding to the acceleration offset, and t represents time. Thus, when calibrating the IMU, the angular velocity offset and the acceleration offset can be further optimized.

[0169] Furthermore, the optimization deviation terms in this specification may also include: a third deviation term and a fourth deviation term. The third deviation term represents the deviation between the position translation of the rigid body acquired by the optical motion capture system and the position translation of the rigid body determined based on the pose curve at the same acquisition time. The fourth deviation term represents the deviation between the rotation angle of the rigid body acquired by the optical motion capture system and the rotation angle of the rigid body determined based on the pose curve at the same acquisition time.

[0170] In practice, the terminal device needs to perform coordinate rotation and translation transformations on the rigid body's pose curves at each acquisition time based on the determined coordinate translation matrix between the rigid body coordinate system and the IMU coordinate system, as well as the coordinate rotation transformation matrix between the IMU coordinate system and the rigid body coordinate system, to obtain the rigid body's pose curves in the IMU coordinate system. Then, when determining the third and fourth deviation terms, the carrier's pose can be determined based on the determined pose curves. The carrier's pose is then transformed using the determined coordinate rotation transformation matrix and coordinate translation matrix, respectively. The transformed pose is compared with the rigid body captured by the optical motion capture system to determine the third and fourth deviation terms. Furthermore, the calibration parameters of the IMU to be calibrated are set with the optimization objective of minimizing the sum of the deviations between the first, second, third, and fourth deviation terms.

[0171] The third deviation term can be represented by the following expression:

[0172]

[0173] e rk This represents the deviation between the rotation matrix corresponding to the rotation angle of the rigid body's attitude data captured by the optical motion capture system at the Kth acquisition time of the IMU to be calibrated, and the rotation matrix corresponding to the rotation angle of the rigid body's attitude data determined based on the fitted pose curve.

[0174] R m The rotation matrix represents the rotation angle corresponding to the attitude data of the rigid body captured by the optical motion capture system at the Kth acquisition time of the IMU to be calibrated.

[0175] R imu (t k +t d ) represents the rotation matrix corresponding to the rotation angle of the rigid body's attitude data determined based on the fitted pose curve at the Kth acquisition time of the IMU to be calibrated;

[0176] This represents the coordinate rotation transformation matrix between the rigid body coordinate system and the IMU coordinate system.

[0177] Log() performs a logarithmic mapping on the rotation matrix within the parentheses.

[0178] This fourth deviation term can be represented by the following expression:

[0179]

[0180] e tkThis represents the deviation between the position translation of the rigid body captured by the optical motion capture system at the Kth acquisition time of the IMU to be calibrated and the position translation of the rigid body determined based on the fitted pose curve.

[0181] p m This represents the translational displacement of the rigid body captured by the optical motion capture system at the Kth acquisition moment of the IMU to be calibrated.

[0182] This represents the rotation matrix between the IMU coordinate system and the preset three-dimensional spatial coordinate system at the Kth acquisition time of the IMU to be calibrated.

[0183] This represents the translation amount between the rigid body coordinate system and the IMU coordinate system;

[0184] p imu (t k +t d ): This represents the position translation of the rigid body determined based on the fitted pose curve at the Kth acquisition time of the IMU to be calibrated.

[0185] The above describes one or more embodiments of the IMU parameter calibration method provided in this specification. Based on the same idea, this specification also provides corresponding IMU parameter calibration apparatus, such as... Figure 3 As shown.

[0186] Figure 3 This is a schematic diagram of an IMU parameter calibration device provided in this specification. The inertial measurement unit (IMU) to be calibrated is fixed on a carrier, which has several fixed calibration points. An optical motion capture system is used to acquire optical images of the calibration points when the carrier moves, specifically including:

[0187] The acquisition module 300 is used to acquire test data, which includes the carrier angular velocity and carrier acceleration of the carrier acquired by the IMU to be calibrated, and the pose data of the rigid body formed by the plurality of calibration points set on the carrier in the preset three-dimensional spatial coordinate system as determined by the optical motion capture system through the optical image.

[0188] The first rotation matrix determination module 301 is used to determine the coordinate rotation transformation matrix between the IMU coordinate system on which the IMU to be calibrated is based and the rigid body coordinate system where the rigid body is located, based on the angular velocity of the carrier and the pose data, as the first rotation matrix;

[0189] The determining module 302 is used to determine the rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system through the first rotation matrix and the pose data.

[0190] The calibration module 303 is used to calibrate the parameters of the IMU to be calibrated based on the angular velocity and acceleration of the carrier, as well as the angular velocity and acceleration of the rigid body.

[0191] Optionally, the device further includes:

[0192] The pose curve fitting module 304 is specifically used to fit the pose curve of the rigid body at each acquisition time of the optical motion capture system based on the pose data.

[0193] Optionally, the first rotation matrix determination module 301 is specifically used to determine, based on the pose curve, each predicted pose data of the rigid body coordinate system at each acquisition time of the IMU to be calibrated; and to determine the first rotation matrix and the angular velocity offset of the IMU to be calibrated based on the predicted pose data and the angular velocity of the carrier.

[0194] Optionally, the first rotation matrix determination module 301 is further configured to: determine, based on the predicted pose data, the rigid body angular velocities corresponding to each acquisition time of the rigid body at each acquisition time of the IMU to be calibrated; determine, from the rigid body angular velocities corresponding to each acquisition time of the rigid body at each acquisition time of the IMU to be calibrated, the rigid body angular velocity whose deviation from the carrier angular velocity actually acquired by the IMU to be calibrated satisfies a preset condition, as the target rigid body angular velocity; and use the time deviation between the acquisition time corresponding to the carrier angular velocity acquired by the IMU to be calibrated that satisfies the preset condition and the acquisition time corresponding to the target rigid body angular velocity in the pose curve as the acquisition time offset.

[0195] Optionally, the first rotation matrix determination module 301 is specifically used to determine, based on the predicted pose data, the actual rigid body angular velocities corresponding to the rigid body at each acquisition time of the IMU to be calibrated, under the time compensation of the acquisition time offset; and to determine the first rotation matrix and the angular velocity offset of the IMU to be calibrated based on the determined actual rigid body angular velocities and the carrier angular velocity.

[0196] Optionally, the determining module 302 is specifically used to determine auxiliary calibration parameters based on the first rotation matrix and the carrier angular velocity of the carrier acquired by the IMU to be calibrated at each acquisition time. The auxiliary calibration parameters include: the gravitational acceleration experienced by the IMU to be calibrated, the acceleration offset of the IMU to be calibrated, and the coordinate translation matrix between the rigid body coordinate system and the IMU coordinate system. Based on the auxiliary calibration parameters and the pose data, the rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system are determined.

[0197] Optionally, the calibration module 303 is specifically used to, for each acquisition time of the IMU to be calibrated, determine, based on the first rotation matrix, the coordinate translation matrix between the IMU coordinate system and the three-dimensional spatial coordinate system at that acquisition time, and the second rotation matrix between the three-dimensional spatial coordinate system and the IMU coordinate system; and determine the auxiliary calibration parameters based on the second rotation matrix and the carrier angular velocity of the carrier acquired by the IMU to be calibrated at that acquisition time.

[0198] Optionally, the calibration module 303 is specifically used to construct at least one optimization deviation term based on the carrier angular velocity and the carrier acceleration, as well as the rigid body angular velocity and the rigid body acceleration. The optimization deviation term includes a first deviation term and a second deviation term. The first deviation term represents the deviation between the carrier angular velocity acquired by the IMU to be calibrated and the rigid body angular velocity captured by the optical motion capture system in the IMU coordinate system at the same acquisition time. The second deviation term represents the deviation between the carrier acceleration acquired by the IMU to be calibrated and the rigid body acceleration captured by the optical motion capture system in the IMU coordinate system. The at least one optimization deviation term contains the IMU parameters to be calibrated. The IMU to be calibrated is calibrated with the goal of minimizing the deviation value of the at least one optimization deviation term.

[0199] Optionally, the optimization deviation term further includes: a third deviation term and a fourth deviation term, wherein the third deviation term represents the deviation between the translation amount of the rigid body acquired by the optical motion capture system and the translation amount of the rigid body determined based on the pose curve at the same acquisition time, and the fourth deviation term represents the deviation between the rotation angle of the rigid body acquired by the optical motion capture system and the rotation angle of the rigid body determined based on the pose curve at the same acquisition time;

[0200] The calibration module 303 is specifically used to calibrate the IMU to be calibrated with the optimization objective of minimizing the sum of the deviations between the first deviation term, the second deviation term, the third deviation term, and the fourth deviation term.

[0201] This specification also provides a computer-readable storage medium storing a computer program that can be used to execute the above-described... Figure 1 The provided method for IMU parameter calibration.

[0202] This instruction manual also provides Figure 4 The diagram shows a schematic structural representation of the electronic device. Figure 4At the hardware level, the electronic device includes a processor, internal bus, network interface, memory, and non-volatile memory, and may also include other hardware required for the business operations. The processor reads the corresponding computer program from the non-volatile memory into memory and then runs it to achieve the above-mentioned functions. Figure 1 The method for IMU parameter calibration is described above. Of course, besides software implementation, this specification does not exclude other implementation methods, such as logic devices or a combination of hardware and software, etc. In other words, the execution entity of the following processing flow is not limited to individual logic units, but can also be hardware or logic devices.

[0203] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using hardware physical modules. For example, a Programmable Logic Device (PLD) (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program and "integrate" a digital system onto a PLD themselves, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed ​​Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should understand that by simply performing some logic programming on the method flow using one of these hardware description languages ​​and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.

[0204] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.

[0205] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.

[0206] For ease of description, the above devices are described in terms of function, divided into various units. Of course, in implementing this specification, the functions of each unit can be implemented in one or more software and / or hardware components.

[0207] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0208] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0209] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0210] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0211] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0212] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.

[0213] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.

[0214] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0215] Those skilled in the art will understand that the embodiments of this specification can be provided as methods, systems, or computer program products. Therefore, this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this specification may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0216] This specification can be described in the general context of computer-executable instructions that are executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a specific task or implement a specific abstract data type. This specification can also be practiced in distributed computing environments, where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.

[0217] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to interchangeably. Each embodiment focuses on describing the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments.

[0218] The above description is merely an embodiment of this specification and is not intended to limit this specification. Various modifications and variations can be made to this specification by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this specification should be included within the scope of the claims of this specification.

Claims

1. A method for IMU parameter calibration, characterized in that, An inertial measurement unit (IMU) to be calibrated is fixed on a carrier, which has several fixed calibration points. An optical motion capture system is used to acquire optical images of the calibration points when the carrier moves, including: Acquire test data, which includes the carrier angular velocity and carrier acceleration of the carrier acquired by the IMU to be calibrated, and the pose data of the rigid body formed by the plurality of calibration points set on the carrier in the preset three-dimensional spatial coordinate system, as determined by the optical motion capture system through the optical image. Based on the carrier angular velocity and the pose data, determine the coordinate rotation transformation matrix between the IMU coordinate system on which the IMU to be calibrated is based and the rigid body coordinate system where the rigid body is located, and use it as the first rotation matrix. The rigid body angular velocity and rigid body acceleration captured by the optical motion capture system are determined using the first rotation matrix and the pose data. The parameters of the IMU to be calibrated are determined based on the angular velocity and acceleration of the carrier, as well as the angular velocity and acceleration of the rigid body. Before determining the coordinate rotation transformation matrix between the IMU coordinate system on which the IMU data to be calibrated is based and the rigid body coordinate system based on the carrier angular velocity and the pose data, the method further includes: Based on the pose data, the pose curve of the rigid body at each acquisition time of the optical motion capture system is fitted. Based on the carrier angular velocity and the pose data, determine the coordinate rotation transformation matrix between the IMU coordinate system on which the IMU data is acquired and the rigid body coordinate system in which the rigid body is located, specifically including: Based on the pose curve, determine the predicted pose data of the rigid body coordinate system at each acquisition time of the IMU to be calibrated. Based on the predicted pose data and the carrier angular velocity, the first rotation matrix and the angular velocity offset of the IMU to be calibrated are determined.

2. The method as described in claim 1, characterized in that, Before determining the first rotation matrix and the angular velocity offset of the IMU to be calibrated based on the predicted pose data and the carrier angular velocity, the method further includes: Based on the predicted pose data, determine the rigid body angular velocities corresponding to each acquisition time of the IMU to be calibrated. From the rigid body angular velocities corresponding to each acquisition time of the IMU to be calibrated, determine the rigid body angular velocity whose deviation from the carrier angular velocity actually acquired by the IMU to be calibrated satisfies a preset condition, and use it as the target rigid body angular velocity. The time deviation between the acquisition time corresponding to the carrier angular velocity that satisfies the preset condition between the IMU to be calibrated and the acquisition time corresponding to the target rigid body angular velocity in the pose curve is used as the acquisition time offset.

3. The method as described in claim 2, characterized in that, Based on the predicted pose data and the carrier angular velocity, the first rotation matrix and the angular velocity offset of the IMU to be calibrated are determined, specifically including: Under the time compensation of the acquisition time offset, the actual rigid body angular velocities corresponding to the rigid body at each acquisition time of the IMU to be calibrated are determined according to the predicted pose data. Based on the determined angular velocities of each rigid body and the angular velocity of the carrier, the first rotation matrix and the angular velocity offset of the IMU to be calibrated are determined.

4. The method as described in claim 1, characterized in that, Using the first rotation matrix and the pose data, the rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system are determined, specifically including: Based on the first rotation matrix and the carrier angular velocity of the carrier acquired by the IMU to be calibrated at each acquisition time, auxiliary calibration parameters are determined. The auxiliary calibration parameters include: the gravitational acceleration of the IMU to be calibrated, the acceleration offset of the IMU to be calibrated, and the coordinate translation matrix between the rigid body coordinate system and the IMU coordinate system. Based on the auxiliary calibration parameters and the pose data, the rigid body angular velocity and rigid body acceleration of the rigid body captured by the optical motion capture system are determined.

5. The method as described in claim 4, characterized in that, Based on the first rotation matrix and the carrier angular velocity acquired by the IMU to be calibrated at each acquisition time, auxiliary calibration parameters are determined, specifically including: For each acquisition time of the IMU to be calibrated, based on the first rotation matrix, a coordinate translation matrix between the IMU coordinate system and the three-dimensional spatial coordinate system is determined at that acquisition time, as well as a second rotation matrix between the three-dimensional spatial coordinate system and the IMU coordinate system; The auxiliary calibration parameters are determined based on the second rotation matrix and the carrier angular velocity of the carrier acquired by the IMU to be calibrated at the acquisition time.

6. The method as described in claim 4, characterized in that, Based on the carrier angular velocity and the carrier acceleration, as well as the rigid body angular velocity and the rigid body acceleration, the parameters of the IMU to be calibrated are calibrated, specifically including: Based on the carrier angular velocity and the carrier acceleration, as well as the rigid body angular velocity and the rigid body acceleration, at least one optimization deviation term is constructed. The optimization deviation term includes: a first deviation term and a second deviation term. The first deviation term represents the deviation between the carrier angular velocity acquired by the IMU to be calibrated and the rigid body angular velocity of the rigid body in the IMU coordinate system acquired by the optical motion capture system at the same acquisition time. The second deviation term represents the deviation between the carrier acceleration acquired by the IMU to be calibrated and the rigid body acceleration of the rigid body in the IMU coordinate system acquired by the optical motion capture system. The at least one optimization deviation term contains the IMU parameters to be calibrated. The calibration parameters are applied to the IMU to be calibrated with the goal of minimizing the deviation value of the at least one optimization deviation term.

7. The method as described in claim 6, characterized in that, The optimization deviation term also includes: a third deviation term and a fourth deviation term. The third deviation term represents the deviation between the translation amount of the rigid body acquired by the optical motion capture system and the translation amount of the rigid body determined based on the pose curve at the same acquisition time. The fourth deviation term represents the deviation between the rotation angle of the rigid body acquired by the optical motion capture system and the rotation angle of the rigid body determined based on the pose curve at the same acquisition time. The calibration parameters for the IMU to be calibrated are determined with the objective of minimizing the deviation value of at least one optimization deviation term. Specifically, this includes: The calibration parameters of the IMU to be calibrated are set with the optimization objective of minimizing the sum of the deviations among the first deviation term, the second deviation term, the third deviation term, and the fourth deviation term.

8. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, which, when executed by a processor, implements the method described in any one of claims 1 to 7.

9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the method described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method and device for calibrating postures of IMU and rigid body, and readable storage medium

    CN110567484A

  • Calibration method and device, aerial photography equipment and storage medium

    CN110782496A