Zero offset value determination method and apparatus
By combining data from gyroscopes and accelerometers and using satellite navigation data to determine the change in heading angle, the problem of difficulty in determining the zero bias value of gyroscopes in actual navigation scenarios in existing technologies is solved, and precise zero bias correction is achieved when the terminal device is moving.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ALIBABA (CHINA) CO LTD
- Filing Date
- 2023-02-24
- Publication Date
- 2026-06-16
AI Technical Summary
Existing technologies struggle to effectively determine the zero bias value of gyroscopes in real-world navigation scenarios, especially when the terminal device needs to remain stationary. Furthermore, traditional methods involve large computational loads and yield unstable results.
By combining the angular velocity data from the gyroscope and the acceleration data from the accelerometer, the motion state of the terminal device relative to the vehicle is determined. When relatively stationary, the changes in heading angle and driving direction angle are calculated, and the actual change in heading angle is determined using satellite navigation data. The zero bias value of the gyroscope is then calculated.
Without requiring the terminal device to be stationary, the zero bias value of the gyroscope can be effectively determined, improving the accuracy and stability of the navigation system and avoiding the computational complexity and instability of traditional methods.
Smart Images

Figure CN116046020B_ABST
Abstract
Description
Technical Field
[0001] This application relates to computer technology, and more particularly to a method and apparatus for determining zero bias. Background Technology
[0002] The gyroscope is the main component in the inertial navigation unit, so determining the zero bias value of the gyroscope is of great significance. The zero bias value refers to the angular velocity output by the gyroscope when it is stationary.
[0003] Currently, the common practice in related technologies for measuring the zero bias of a gyroscope is to leave the gyroscope stationary for a period of time, collect the angular velocity data output by the gyroscope during this period, and then calculate the average value based on the angular velocity data output by the gyroscope during the stationary period to determine the zero bias of the gyroscope.
[0004] However, the implementation method described above requires the gyroscope to be idle for a period of time before it can be completed, which is not applicable in actual navigation scenarios. Summary of the Invention
[0005] This application provides a method and apparatus for determining zero bias, so as to overcome the problem that the zero bias of a gyroscope cannot be effectively determined in actual navigation scenarios.
[0006] In a first aspect, embodiments of this application provide a method for determining a zero bias value, including:
[0007] Based on the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer during the target time period, the motion state of the terminal device relative to the target vehicle is determined.
[0008] When the motion state is relatively stationary, the estimated change in heading angle on the horizontal plane and the change in travel direction angle on the vertical plane of the target vehicle are determined based on the angular velocity data and the acceleration data during the target time period.
[0009] Based on satellite navigation data, determine the actual change in heading angle of the target vehicle during the target time period;
[0010] Based on the target time period, the estimated change in heading angle, the actual change in heading angle, and the change in travel direction angle, the zero bias value of the gyroscope during the target time period is determined.
[0011] Secondly, embodiments of this application provide a zero bias determination apparatus, comprising:
[0012] The determination module is used to determine the motion state of the terminal device relative to the target vehicle based on the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer within the target time period.
[0013] The determining module is further configured to, when the motion state is relatively stationary, determine, based on the angular velocity data and the acceleration data, the estimated change in heading angle on the horizontal plane and the change in travel direction angle on the vertical plane of the target vehicle during the target time period.
[0014] The determining module is further configured to determine, based on satellite navigation data, the actual change in heading angle of the target vehicle during the target time period;
[0015] The determining module is further configured to determine the zero bias value of the gyroscope within the target time period based on the target time period, the estimated change in heading angle, the actual change in heading angle, and the change in travel direction angle.
[0016] Thirdly, embodiments of this application provide an inertial navigation method, including:
[0017] Obtain the zero bias value of the gyroscope during the target time period, wherein the zero bias value is determined according to the method described in the first aspect;
[0018] The navigation information of the target vehicle is determined based on the corrected angular velocity and acceleration data.
[0019] Fourthly, embodiments of this application provide an electronic device, including:
[0020] Memory, used to store programs;
[0021] A processor for executing the program stored in the memory, wherein, when the program is executed, the processor is configured to perform the method described in the first aspect above and any of the various possible designs of the first aspect.
[0022] Fifthly, embodiments of this application provide a computer-readable storage medium including instructions that, when executed on a computer, cause the computer to perform the methods described in the first aspect above and any of the various possible designs of the first aspect.
[0023] In a sixth aspect, embodiments of this application provide a computer program product, including a computer program that, when executed by a processor, implements the method described in the first aspect above and any of the various possible designs of the first aspect.
[0024] This application provides a method and apparatus for determining zero bias. When the terminal device is relatively stationary relative to the target vehicle, the method determines the estimated change in heading angle and the actual change in heading angle. The estimated change in heading angle is calculated based on angular velocity data measured by a gyroscope and acceleration data measured by an accelerometer. The actual change in heading angle is determined based on the vehicle's actual heading angle change determined by satellite data. Therefore, based on these two data points, the measurement rotation error caused by the presence of zero bias on the horizontal plane can be determined. Furthermore, the change in the target vehicle's driving direction angle can also be determined, which is also caused by the presence of zero bias. Therefore, these data can effectively solve for the gyroscope's zero bias. This process does not require the gyroscope to be stationary, thus effectively determining the gyroscope's zero bias in practical navigation scenarios. Attached Figure Description
[0025] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0026] Figure 1 A schematic diagram of the coordinate system provided in the embodiments of this application;
[0027] Figure 2 This is a schematic diagram illustrating an application scenario of the zero bias determination method provided in the embodiments of this application;
[0028] Figure 3 A flowchart of the zero bias determination method provided in the embodiments of this application;
[0029] Figure 4 A schematic diagram illustrating the object rotation type provided in the embodiments of this application;
[0030] Figure 5 A schematic diagram of the heading angle provided for an embodiment of this application;
[0031] Figure 6 The flowchart of the zero bias determination method provided in the embodiments of this application Figure 2 ;
[0032] Figure 7 A schematic diagram of a sub-time period provided for an embodiment of this application;
[0033] Figure 8 A schematic diagram illustrating the implementation of determining the first included angle sequence provided in an embodiment of this application;
[0034] Figure 9The flowchart of the zero bias determination method provided in the embodiments of this application Figure 3 ;
[0035] Figure 10 This is a schematic diagram of the zero bias determination device provided in the embodiments of this application;
[0036] Figure 11 This is a schematic diagram of the hardware structure of the electronic device provided in the embodiments of this application. Detailed Implementation
[0037] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0038] To better understand the technical solution of this application, the relevant concepts in this application will be explained below.
[0039] IMU: Inertial Measurement Unit, used to measure the three-axis angular rate (or attitude angle) and acceleration of an object.
[0040] GNSS: Global Navigation Satellite System, is a space-based radio navigation and positioning system that can provide users with all-weather 3D coordinates, velocity, and time information at any location on the Earth's surface or in near-Earth space.
[0041] MEMS: Micro-Electro-Mechanical System, also known as micro-electro-mechanical system, microsystem, micromachine, etc., refers to high-tech devices with a size of a few millimeters or even smaller.
[0042] VDR: Vehicle Dead Reckoning, which uses the Global Positioning System and inertial sensors to perform fusion positioning of a vehicle.
[0043] Based on the above introduction, the relevant technologies involved in this application will be further described in detail.
[0044] An inertial navigation system is an autonomous navigation system that does not rely on external information or radiate energy to the outside. Inertial navigation can also be simply referred to as inertial navigation. Specifically, an inertial navigation system uses an inertial measurement unit, the object's reference direction, and the object's initial position information to determine the object's position, direction, and velocity. In other words, the navigation information of an object can be determined through step-by-step calculations within the inertial navigation system.
[0045] Therefore, inertial measurement units (IMUs) are crucial in inertial navigation systems. Common IMUs include accelerometers and gyroscopes. Accelerometers detect the acceleration data of an object in the carrier coordinate system, which can include acceleration along the three coordinate axes of the carrier coordinate system.
[0046] Furthermore, gyroscopes can detect the angular velocity data of an object in the carrier's coordinate system. This angular velocity data can include, for example, the angular velocities along the three coordinate axes of the carrier's coordinate system. By measuring the object's angular velocity and acceleration data, and using this data to calculate the object's attitude and position, inertial navigation of the object can be achieved.
[0047] The following is combined with Figure 1 Understanding the carrier coordinate system and the ground coordinate system Figure 1 This is a schematic diagram of the coordinate system provided for an embodiment of this application.
[0048] Each object in this system has its own specific coordinate system, and the carrier coordinate systems of different objects are independent of each other. The carrier coordinate system is bound to a specific object; when an object moves or rotates, its carrier coordinate system also moves or rotates accordingly. In other words, the movement of the carrier coordinate system and the object is synchronized. (See reference...) Figure 1 , Figure 1 The object 101 in the image rotated, and its corresponding carrier coordinate system (xyz coordinate system) also rotated accordingly.
[0049] A ground coordinate system is a coordinate system fixed on the Earth's surface; for example, it can be represented as... Figure 4 The diagram illustrates an ABO coordinate system. The a-axis can be understood as a coordinate axis pointing in any direction on the ground plane, the o-axis is perpendicular to the ground and points upwards, and the b-axis is perpendicular to the a-axis on a horizontal plane. It's important to understand that the ground coordinate system is fixed and does not move with the movement of the object; for example, it can be referenced to... Figure 1 Although object 101 rotated, the ground coordinate system remained unchanged.
[0050] Based on the above introduction, it can be determined that the accuracy of gyroscopes and accelerometers, as the main components of the inertial measurement unit, directly affects the accuracy of the inertial navigation system.
[0051] However, gyroscopes may exhibit zero bias, which means that the gyroscope outputs an angular velocity even when stationary. Understandably, a gyroscope should output an angular velocity of zero when stationary, but due to zero bias, it will output a non-zero angular velocity, leading to an error in the output angular velocity. Furthermore, the zero bias of a gyroscope may also be unstable, meaning that it may change at different times.
[0052] Therefore, determining the zero bias of the gyroscope at different time periods is very important, as it can be used for real-time zero bias correction or to analyze the zero bias stability of the gyroscope, etc.
[0053] Currently, the common practice in related technologies to determine the zero bias of a gyroscope is to leave the gyroscope idle for a period of time, collect the angular velocity data output by the gyroscope during this period, and then calculate the average value based on the angular velocity data output by the gyroscope during the idle period, thereby determining the zero bias value of the gyroscope.
[0054] However, this implementation requires the gyroscope to be idle for a period of time before it can complete, which limits its application scenarios. For example, in real-world navigation scenarios, it's difficult to require users to let their phones idle for a period of time before starting navigation. Secondly, due to the influence of zero-bias instability, the gyroscope's zero bias may be different at different times. However, the implementation method described above can only calculate the gyroscope's zero bias during the idle period and cannot determine the zero bias in real time during subsequent navigation. Therefore, it cannot effectively determine the gyroscope's zero bias in practical applications.
[0055] Alternatively, another possible implementation is to use Kalman filtering to combine inertial sensors and the Global Positioning System (GPS) for navigation, and to use the gyroscope's zero bias as a state variable for estimation. However, this implementation suffers from algorithmic complexity, high computational cost, and slow or even divergent filtering convergence, leading to unstable results in determining the zero bias.
[0056] To address the problems in existing technologies, this application proposes the following technical concept: Based on the assumption that the vehicle travels on a horizontal plane, the calculated change in heading angle is determined using acceleration data collected by an accelerometer and angular velocity data collected by a gyroscope. The actual change in heading angle is determined based on GNSS signals. Then, the error between the calculated and actual changes in heading angle is determined. This error is caused by the vertical component of the zero bias. The change in the vehicle's direction of travel on the vertical plane is caused by the horizontal component of the zero bias. Based on the numerical relationship between these two components, the zero bias can be effectively calculated. During this process, the terminal device can move normally without needing to remain stationary. Therefore, in practical navigation scenarios, the gyroscope's zero bias can be effectively determined.
[0057] Based on the above description, the zero bias determination method provided in this application will be described in detail below with reference to specific embodiments. It should be noted that the execution subject in each embodiment of this application can be the terminal device described above, or it can be a processor or chip in the terminal device, or other components with data processing functions. This application does not limit the specific execution subject, and it can be selected and set according to actual needs.
[0058] The following is a combination of... Figure 2 This application will be described in detail. Figure 2 This is a schematic diagram illustrating an application scenario for the zero bias determination method provided in the embodiments of this application.
[0059] like Figure 2 As shown, the user can drive the vehicle and perform navigation operations through the terminal device 201 while driving. In the technical solution of this application, the terminal device 201 can, for example, adopt... Figure 2 The bracket shown is fixed to the vehicle, or it can be fixed to the vehicle in any possible way, as long as the terminal device and the vehicle are relatively stationary, that is, there is no relative motion between the terminal device and the vehicle.
[0060] Because inertial navigation is an internal closed-loop navigation system, there is no external real-time updated information data to correct errors during the movement of an object. Therefore, a single inertial navigation system is more suitable for short-term navigation. When continuous navigation is required, terminal devices usually use a combination of inertial navigation system and satellite positioning system for navigation.
[0061] In this integrated navigation scenario, the gyroscope, as the core sensor in the inertial navigation system, dominates the calculation quality of the terminal device's inertial navigation, and its calculated position error diverges over time. However, current terminal devices typically use MEMS gyroscopes, whose zero bias is not rigorously calibrated at the factory, resulting in significant zero bias and zero bias instability. During the initialization phase of integrated navigation, if the gyroscope's zero bias is too large, it will significantly affect the convergence speed of the VDR filter, and may even cause the filter to diverge. In other words, the presence of gyroscope zero bias and zero bias instability can lead to serious problems such as large errors, slow convergence, and even divergence in the online VDR filtering algorithm.
[0062] Based on the application scenarios described above, the following section will first combine... Figures 3 to 5 This application introduces the technical solution. Figure 3 This is a flowchart of the zero bias determination method provided in the embodiments of this application. Figure 4 This is a schematic diagram illustrating the type of object rotation provided in an embodiment of this application. Figure 5 A schematic diagram of the heading angle provided for an embodiment of this application.
[0063] like Figure 3 As shown, the method includes:
[0064] S301. Based on the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer within the target time period, determine the motion state of the terminal device relative to the target vehicle.
[0065] In this embodiment, a time-segmented approach can be adopted, collecting gyroscope and acceleration data within each time segment, and then determining the gyroscope zero bias within the current time segment. Therefore, the target time segment can be any one of the multiple time segments. In one possible implementation, a sliding window approach can be used, collecting data within each sliding window segment to determine the gyroscope zero bias value. The target time segment can be the time segment corresponding to one sliding window. In actual implementation, the specific duration and location of the target time segment can be selected and set according to actual needs.
[0066] The terminal device can collect angular velocity data output by the gyroscope and acceleration data output by the accelerometer within the target time period. Then, based on the gyroscope and acceleration data, the motion state of the terminal device relative to the target vehicle can be determined. This motion state can be either relatively stationary or relative motion.
[0067] In one possible implementation, for example, the motion state of the terminal device relative to the target vehicle can be determined by analyzing the changing characteristics of gyroscope data and acceleration data at multiple moments within the target time period, such as the magnitude or trend of change.
[0068] S302. When the motion state is relatively stationary, determine the estimated change in heading angle on the horizontal plane and the change in travel direction angle on the vertical plane of the target vehicle within the target time period based on the angular velocity data and acceleration data.
[0069] In this embodiment, the subsequent operation of determining the gyroscope's zero bias value is performed only when the terminal device is relatively stationary relative to the target vehicle. It can be understood that when the terminal device is relatively stationary relative to the target vehicle, it can be presumed that the terminal device and the target vehicle are moving in the same manner.
[0070] The following is a combination of... Figure 4 This section introduces several ways an object can rotate. Based on the above introduction, it can be determined that each object can have its own coordinate axes, such as... Figure 4 As shown, assume the object coordinate axis of the target vehicle is... Figure 4 The xyz coordinate system is shown. Theoretically, a vehicle can rotate in the following three ways:
[0071] The first type of rotation is when the vehicle rotates around the z-axis of the object's coordinate system. In this case, the vehicle rotates through a certain angle on the horizontal plane, and the change in this type of rotation is the yaw angle.
[0072] The second type of rotation is when the vehicle rotates around the y-axis of the carrier coordinate system. In this case, the vehicle will pitch up or down, and the angle that changes in this type of rotation is called the pitch angle.
[0073] The third type of rotation is when the vehicle rotates around the object's x-axis. In this case, the vehicle rolls to one side, and the angle that changes in this type of rotation is called the roll angle. The yaw angle, pitch angle, and roll angle combined can describe the object's attitude.
[0074] Figure 4 The carrier coordinate system shown in the diagram is a coordinate system with the positive x-axis as the forward direction. In actual implementation, the x-axis, y-axis and z-axis in the carrier coordinate system can be selected according to actual needs. The rotation method is similar to that described above, and only the corresponding coordinate axes need to be replaced.
[0075] The above combination Figure 4This describes the theoretical rotation of a vehicle. However, it's understandable that in reality, vehicles travel on the ground. Let's assume the vehicle is traveling on a level surface. This means that under normal circumstances, the vehicle will only rotate around the z-axis. In other words, only the yaw angle will change, while the pitch and roll angles remain constant.
[0076] Furthermore, in this embodiment, it is determined that the terminal device is stationary relative to the target vehicle. Therefore, it can be determined that the rotation mode of the terminal device also conforms to this characteristic. That is, the terminal device will only rotate around the z-axis, thus the yaw angle will change, while the pitch and roll angles will not change. Based on the assumption that the vehicle is traveling on a horizontal plane, the z-axis here can be understood as the z-axis of the Earth coordinate system.
[0077] To better understand the following content, let's combine it with... Figure 5 To further understand the heading angle, such as... Figure 5 As shown, assuming the target vehicle is represented from a top-down perspective, Figure 5 501 in the text refers to the rear wheel of the target vehicle. Figure 5 502 in the figure represents the front wheel of the target vehicle. The coordinate system (xyz coordinate system) of the target vehicle is similar to that described above.
[0078] And in Figure 5 The diagram also illustrates the ground coordinate system (ABO coordinate system). Based on the above introduction, it can be determined that the ground coordinate system is fixed.
[0079] The direction of a vehicle's movement is determined by the direction of its front wheels, therefore... Figure 4 In the illustration, the direction of movement of the target vehicle is the direction indicated by arrow v, and the angle between the vehicle's direction of movement v and the b-axis (also known as the horizontal axis) of the ground coordinate system is the vehicle's heading angle.
[0080] Based on the features described above, this embodiment can determine the estimated change in heading angle and the change in driving direction angle of the target vehicle within the target time period based on angular velocity data and acceleration data.
[0081] The calculated change in heading angle is the angle by which the heading angle of the target vehicle changes during the target time period. This can also be understood as the angle by which the target vehicle's direction of travel changes on its horizontal plane during the target time period. The calculated change in heading angle is derived from gyroscope data and accelerometer data. For example, if the angular velocity indicates that the target vehicle's heading angle changed by 15 degrees during the target time period, then the calculated change in heading angle can be determined to be 15 degrees.
[0082] The change in travel direction angle refers to the change in the travel direction of a target vehicle on the target vertical plane within a target time period. The target vertical plane is the plane perpendicular to the horizontal plane where the target vehicle is located. Therefore, the change in travel direction angle can be understood as the change in the vehicle's pitch angle, or the change in the vehicle's roll angle, or possibly a change in angle resulting from simultaneous changes in both pitch and roll angles. However, this change in angle always occurs on the target vertical plane. The change in travel direction angle is also calculated based on data measured by a gyroscope. For example, if the target vehicle's roll angle changes by 10 degrees during the target time period based on angular velocity, then the change in travel direction angle can be determined to be 10 degrees.
[0083] It should also be noted that the positioning and navigation work is actually done by the terminal device. The terminal device determines its own estimated change in heading angle and change in driving direction angle. However, since the terminal device and the target vehicle are relatively stationary, the estimated change in heading angle of the terminal device in the target time period is equal to the estimated change in heading angle of the target vehicle in the target time period, and the estimated change in driving direction angle of the terminal device in the target time period is equal to the estimated change in driving direction angle of the target vehicle in the target time period.
[0084] S303. Based on satellite navigation data, determine the actual change in heading angle of the target vehicle within the target time period.
[0085] Furthermore, the terminal device in this embodiment can also receive satellite navigation data. Based on the satellite navigation data, the change in the terminal device's heading angle can be determined. Since the terminal device and the target vehicle are relatively stationary, the satellite navigation data can be understood as determining the actual change in the target vehicle's heading angle during the target time period. The actual change in heading angle is the change in the target vehicle's heading angle measured by satellite data during the target time period. Because the calculation results from satellite data have good accuracy, this embodiment uses the change in heading angle measured by satellite navigation data as the actual change in the target vehicle's heading angle during the target time period.
[0086] S304. Based on the target time period, the estimated change in heading angle, the actual change in heading angle, and the change in travel direction angle, determine the zero bias value of the gyroscope within the target time period.
[0087] Based on the above introduction, it can be determined that the estimated change in heading angle is the angle of change in heading angle calculated from the angular velocity data measured by the gyroscope, while the actual change in heading angle is the actual angle of change in heading angle determined from satellite data. Therefore, the difference between the estimated change in heading angle and the actual change in heading angle is the rotation angle error caused by the vertical component of the gyroscope's zero bias.
[0088] Based on the above description, it can be determined that when a vehicle is traveling on the ground, its direction of travel does not rotate in the vertical plane under normal circumstances. Therefore, the change in the direction of travel angle mentioned above is also a rotation angle error caused by the horizontal component of the zero bias value. Thus, it can be determined that there are two known conditions, which allows for the effective calculation of the gyroscope's zero bias value within the target time period.
[0089] Understandably, since the zero bias of a gyroscope is actually the angular velocity output by the gyroscope, it is necessary to perform time integration based on the target time period to convert it to the level of rotation angle. Therefore, in this embodiment, the zero bias of the gyroscope within the target time period can be determined based on the target time period, the calculated change in heading angle, the actual change in heading angle, and the change in travel direction angle.
[0090] The zero-bias determination method provided in this application includes: determining the motion state of a terminal device relative to a target vehicle based on angular velocity data output by a gyroscope and acceleration data output by an accelerometer within a target time period. When the motion state is relatively stationary, determining the estimated change in heading angle and the change in travel direction angle of the target vehicle within the target time period based on the angular velocity data and acceleration data. Determining the actual change in heading angle of the target vehicle within the target time period based on satellite navigation data. Determining the zero-bias value of the gyroscope within the target time period based on the target time period, the estimated change in heading angle, the actual change in heading angle, and the change in travel direction angle. By determining the estimated change in heading angle and the actual change in heading angle when the terminal device is relatively stationary relative to the target vehicle, where the measured heading angle is the angle of change in heading angle estimated based on the angular velocity measured by the gyroscope, and the actual change in heading angle is the actual change in heading angle of the vehicle determined based on satellite data, the measurement rotation error caused by the existence of the zero-bias value on the horizontal plane can be determined based on these two data. Furthermore, it can also determine the change in the target vehicle's driving direction angle, which is also caused by the existence of the zero bias value. Therefore, these data can effectively solve for the zero bias value of the gyroscope. This process does not require the gyroscope to be stationary, so the determination of the gyroscope's zero bias value can be effectively achieved in actual navigation scenarios.
[0091] Based on the above introduction, the following will combine... Figures 6 to 7 The method for determining the zero bias provided in this application will be described in further detail. Figure 6 The flowchart of the zero bias determination method provided in the embodiments of this application Figure 2 , Figure 7 This is a schematic diagram of a sub-time period provided in an embodiment of this application.
[0092] like Figure 6As shown, the method includes:
[0093] S601. Based on the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer within the target time period, determine the motion state of the terminal device relative to the target vehicle.
[0094] The implementation of S601 is similar to that of S301 described above, and will not be repeated here.
[0095] S602. When the motion state is relatively stationary, for any first moment among multiple moments, the vertical component of the angular velocity vector corresponding to the first moment is obtained by multiplying the acceleration vector of the first moment by the angular velocity vector of the first moment.
[0096] Based on the above introduction, it can be determined that when the terminal device is relatively stationary relative to the target vehicle, it is necessary to determine the estimated change in heading angle and the change in driving direction angle of the target vehicle within the target time period. The determination of these two parts of data will be introduced separately below.
[0097] First, the angular velocity and acceleration data in this embodiment will be explained in further detail. It is understood that the gyroscope continuously measures angular velocity during the target time period; therefore, the angular velocity data can include angular velocity data corresponding to multiple moments within the target time period. Furthermore, when measuring, the gyroscope measures angular velocity along all three coordinate axes of the terminal device's carrier coordinate system; therefore, the angular velocity data at each moment can be understood as an angular velocity vector, for example, represented as (bx, by, bz).
[0098] In the angular velocity vector, bx represents the angular velocity along the x-axis in the carrier coordinate system of the terminal device, by represents the angular velocity along the y-axis in the carrier coordinate system of the terminal device, and bz represents the angular velocity along the z-axis in the carrier coordinate system of the terminal device.
[0099] Similarly, accelerometers continuously measure acceleration, so the acceleration data can include acceleration data corresponding to multiple moments within the target time period. Furthermore, when measuring, the accelerometer measures acceleration along all three coordinate axes of the terminal device's carrier coordinate system; therefore, the acceleration data at each moment can be understood as an acceleration vector, for example, represented as (ax, ay, az).
[0100] In the acceleration vector, ax represents the acceleration along the x-axis in the carrier coordinate system of the terminal device, ay represents the acceleration along the y-axis in the carrier coordinate system of the terminal device, and az represents the acceleration along the z-axis in the carrier coordinate system of the terminal device.
[0101] Based on the above description, this embodiment can process multiple moments within the target time period separately. The processing method for each moment is similar. Therefore, the following description will take any first moment as an example, and the implementation methods for the other moments will not be repeated.
[0102] In this embodiment, the vertical component of the angular velocity vector at the first moment can be obtained by multiplying the acceleration vector at the first moment by the angular velocity vector at the first moment, where the vertical direction is perpendicular to the ground on which the target vehicle is traveling.
[0103] It is understandable that multiplying vector m by vector n is essentially projecting vector n onto vector m, resulting in the length of the projection of vector n onto the direction of vector m. In this embodiment, this corresponds to the length of the projection of the angular velocity vector onto the direction of the acceleration vector. An object always experiences gravitational acceleration during motion. In this embodiment, the acceleration vector measured by the accelerometer is approximated as the acceleration vector of gravitational acceleration. Therefore, the direction of the acceleration vector is actually the direction of gravity, which corresponds to the vertical direction described above. Thus, in this embodiment, multiplying the acceleration vector at the first moment by the angular velocity vector at the first moment effectively yields the vertical component of the angular velocity vector at the first moment.
[0104] S603. Perform time integration on the vertical components of the angular velocity vectors corresponding to each of the multiple moments to obtain the estimated change in heading angle.
[0105] After obtaining the vertical components of the angular velocity at multiple moments, since these components are still angular velocities, time integration is needed to obtain specific angle change information. Therefore, time integration can be performed on the vertical components of the angular velocity vectors at multiple moments, where the direction of the angular velocity follows the right-hand rule (the direction of the thumb is the direction of the angular velocity, meaning the angular velocity is perpendicular to the actual plane of angle change). Thus, by performing time integration on the vertical angular velocity components, the calculated change in heading angle over the horizontal plane can be obtained.
[0106] S604. For any first moment among multiple moments, multiply the acceleration vector of the first moment by the angular velocity vector of the first moment to obtain the horizontal component of the angular velocity vector corresponding to the first moment.
[0107] When processing acceleration vectors, similar to the above description, the following explanation will take any first moment as an example, and the implementation methods for other moments will not be repeated.
[0108] In this embodiment, the horizontal component of the angular velocity vector at the first moment can be obtained by cross-multiplying the acceleration vector at the first moment by the angular velocity vector at the first moment, where the horizontal direction is parallel to the ground on which the target vehicle is traveling.
[0109] Understandably, the cross product operation yields a vector perpendicular to both existing vectors. In this embodiment, this corresponds to a vector perpendicular to both the angular velocity vector and the acceleration vector. In this embodiment, the acceleration vector is considered the acceleration vector of gravitational acceleration; therefore, the direction of the acceleration vector is actually the direction of gravity, which corresponds to the vertical direction described above. Thus, the vector obtained from the cross product operation must be perpendicular to the vertical direction, corresponding to the horizontal direction. Therefore, in this embodiment, by cross-productting the acceleration vector at the first moment with the angular velocity vector at the first moment, the horizontal component of the angular velocity vector at the first moment can be effectively obtained.
[0110] S605. Perform time integration on the horizontal components of the angular velocity vectors corresponding to each of the multiple moments to obtain the change in the driving direction angle.
[0111] After obtaining the horizontal components of the angular velocity at multiple moments, since these horizontal components are still angular velocities, time integration is needed to obtain specific angular change information. Therefore, time integration can be performed on the horizontal components of the angular velocity vector at multiple moments, where the direction of the angular velocity follows the right-hand rule (the direction of the thumb is the direction of the angular velocity). Thus, by performing time integration on the horizontal angular velocity components, the change in the direction of travel in the vertical plane can be obtained.
[0112] It should be noted that in this embodiment, the horizontal component of the angular velocity vector is obtained by cross-multiplying the acceleration vector by the angular velocity vector. This component is then integrated over time to obtain the change in angle. Due to the instability of zero bias, we cannot determine the exact direction of the horizontal component of the angular velocity vector. Therefore, the angle change obtained by integration could be the change in roll angle (described above), the change in pitch angle (described above), or a combined change in both angles. The specific change depends on the gyroscope's zero bias. Regardless of the type of change, it represents the angle by which the vehicle's direction of travel changes in the vertical plane.
[0113] S606. Based on satellite navigation data, determine the actual change in heading angle of the target vehicle within the target time period.
[0114] The implementation of S606 is similar to that described in S303 above, and will not be repeated here.
[0115] S607. Based on the actual change in heading angle and the estimated change in heading angle, determine the heading angle change error value between the actual change in heading angle and the estimated change in heading angle.
[0116] Among them, the actual change in heading angle is the actual change angle of the target vehicle's heading angle determined based on satellite data, and the calculated change in heading angle is the change angle of the target vehicle's heading angle calculated based on data measured by the gyroscope. Therefore, in this embodiment, the error between the actual change in heading angle and the calculated change in heading angle can be determined based on the actual change in heading angle and the calculated change in heading angle. In this embodiment, this is referred to as the heading angle change error value.
[0117] In one possible implementation, since the heading angle detected by GNSS can fluctuate, to avoid this effect, for example, the difference between the heading angle change calculated by the gyroscope and the heading angle change obtained by GNSS observation can be fitted by least squares to obtain the heading angle change error value mentioned above.
[0118] During the fitting process, for example, the difference at each moment can be determined based on the actual heading angle observed by GNSS at each moment and the measured heading angle at each moment calculated by gyroscope. Then, least squares fitting is performed based on the difference at each moment to obtain the cumulative heading angle change error value.
[0119] S608. Based on the heading angle change error value, the change in travel direction angle, the target time period, and acceleration data, determine the zero bias value of the gyroscope within the target time period.
[0120] It is understandable that the change in heading angle error is caused by the vertical component of the gyroscope's zero bias. Meanwhile, since the vehicle's direction of travel should not change in the vertical plane when traveling on a plane, the change in the direction of travel angle is caused by the horizontal component of the gyroscope's zero bias.
[0121] Therefore, this embodiment can determine the zero bias value of the gyroscope within the target time period based on the heading angle change error value, the change in travel direction angle, the target time period, and acceleration data.
[0122] In one possible implementation, for example, the zero bias value can be used as the information to be solved. Based on the zero bias value and acceleration data, the vertical component of the zero bias value and the horizontal component of the zero bias value can be determined.
[0123] Then, based on the vertical component of the zero offset and the target time period, the change in heading angle caused by the zero offset in the vertical direction is determined. Similarly, based on the horizontal component of the zero offset and the target time period, the change in angle caused by the zero offset in the horizontal direction is determined.
[0124] It can be determined that the change in heading angle caused by the zero offset in the vertical direction is equal to the change in heading angle error, and the change in angle caused by the zero offset in the horizontal direction is equal to the change in the direction of travel angle. Based on these two known conditions, the zero offset can be obtained.
[0125] The following section explains the implementation of the zero bias value calculation method described above using formulas. To better understand the meaning of sub-time periods mentioned below, we will first combine... Figure 7 This section introduces the sub-time periods within the target time period, and the correspondence between the acceleration vector and the sub-time periods, referring to... Figure 7 It can be determined that multiple moments within the target time period correspond to their own acceleration vectors, and two adjacent moments can form a sub-time period. The sub-time period corresponding to the acceleration vector can be understood as the time period between the moment the acceleration vector was applied and its adjacent moment.
[0126] For example, refer to Figure 7 It is understood that the acceleration vector at time t1 corresponds to the acceleration vector a1, and there is a correspondence between the acceleration vector a1 and the sub-time period 1 composed of time t1 and time t2.
[0127] The following explanation uses formulas as examples. In this embodiment, for instance, there exists a preset functional relationship as shown in Formula 1 and Formula 2:
[0128]
[0129]
[0130] Among them, a IMU_i Let Δt be the acceleration vector corresponding to the i-th sub-time period in the target time period. i Let be the duration corresponding to the i-th sub-time period, and m be the number of sub-time periods in the target time period. g This represents the zero bias value of the gyroscope within the target time period, Δb0 is the heading angle change error value described above, and Δb1 is the change in the travel direction angle described above.
[0131] It is understandable that the acceleration vector a in Formula 1 IMU_i and zero bias b gBy performing dot product processing, we can obtain the vertical component of the zero bias value. By performing time integration processing on multiple sub-time periods, we can integrate the vertical component of the zero bias value over time, thereby obtaining the heading angle change value caused by the presence of the zero bias value in the vertical direction, which corresponds to the heading angle change error value Δb0 mentioned above.
[0132] And, the acceleration vector a in Formula 2 IMU_i and zero bias b g By performing the cross product process, we can obtain the component of the zero bias value in the horizontal direction. By performing the time integration process of multiple sub-time periods, we can integrate the component of the zero bias value in the horizontal direction over time, thereby obtaining the angle change value caused by the presence of the zero bias value in the horizontal direction, which corresponds to the change in driving direction angle Δb1 mentioned above.
[0133] Based on Formula 1 and Formula 2 introduced above, for example, using... Represented as A0, Represented as A1, further, it means... as well as The solution for zero bias can be expressed, for example, as: b g =(A T A) -1 A T b.
[0134] Furthermore, Formula 1 and Formula 2 above can together constitute a preset functional relationship, which can be described, for example, as follows: the dot product of the target integral vector and the zero bias value is equal to the error value of the heading angle change; and the cross product of the target integral vector and the zero bias value is equal to the change in the driving direction angle; where the target integral vector is the cumulative result of the product of the acceleration vector at multiple times and the duration of their respective sub-time periods, and the sub-time period corresponding to the acceleration vector is the time period between the time corresponding to the acceleration vector and the adjacent time.
[0135] It's important to clarify here that, in the predefined functional relationship, time integration is actually applied to the zero bias value to obtain the angular change caused by it. However, in the predefined functional relationship, it's represented as the acceleration vector undergoing time integration, which is the target integration vector mentioned above. This mathematical transformation is for faster and more efficient processing of vector dot products and cross products. For example, Equation 1 above can also be expressed as... Formula 2 above can also be expressed as Therefore, it is understandable that the specific functional relationship for solving the zero bias value of a gyroscope can be selected and set according to actual needs, as long as it conforms to the relationship described above, and is not limited to a fixed formula.
[0136] The zero-bias determination method and apparatus provided in this application determine the vertical and horizontal components of the angular velocity vector at various times, and then perform time integration to obtain the estimated change in heading angle reflecting changes in the horizontal plane angle and the change in travel direction angle reflecting changes in the vertical plane. The heading angle change error is then determined based on the estimated change in heading angle and the actual change in heading angle determined from satellite data. By solving the functional relationship between the time integration result of the zero-bias value in the vertical direction and the heading angle change error, and the time integration result of the zero-bias value in the horizontal direction and the change in travel direction angle, the zero-bias value of the gyroscope in the target time period can be effectively calculated. This process does not require the terminal device to remain stationary, thus effectively determining the gyroscope's zero-bias value in practical navigation applications. Furthermore, the method provided in this embodiment can determine the gyroscope's zero-bias value in real time at different time periods, thereby effectively tracking the gyroscope's zero-bias instability.
[0137] Based on the above introduction, the following will combine... Figure 8 The method for determining the motion state of the terminal device relative to the target vehicle is described in further detail. Figure 8 This is a schematic diagram illustrating the implementation of determining the first included angle sequence provided in an embodiment of this application.
[0138] In one possible implementation, for example, it can be determined whether the angular velocity data and acceleration data within the target time period meet preset conditions. If they do, the motion state of the terminal device relative to the target vehicle can be determined to be relatively stationary; otherwise, the motion state of the terminal device relative to the target vehicle can be determined to be relatively moving.
[0139] The preset conditions in this embodiment are used to indicate whether the output angular velocity data and acceleration data are stable. The possible implementation methods of the preset conditions are described below.
[0140] First, combine Figure 8 The first included angle sequence is explained below. In this embodiment, for any first moment within the target time period, the gravity measurement value corresponding to the first moment can be determined based on the acceleration vector corresponding to the first moment. The gravity measurement value is the gravity calculated from the acceleration vector; it can be understood that the gravity measurement value is a vector with a corresponding direction.
[0141] In one possible implementation, for example, the Mahony algorithm can be used to obtain the gravity measurement value at each IMU sampling time.
[0142] Then, the angle between gravity measurements at two adjacent moments within the target time period can be determined sequentially, thus obtaining the first angle sequence. For example, one can refer to... Figure 8To understand, assuming that it is for Figure 8 The gravity measurements were determined at multiple time points, including the gravity measurements at time t1 and t2. as well as The angle between the gravity measurements at time t2 and time t3 is called angle 1, the angle between the gravity measurements at time t2 and time t3 is called angle 2, and so on, to obtain the first angle sequence, which includes angle 1, angle 2, angle 3, etc.
[0143] Furthermore, the average gravity measurement value can be obtained by averaging the gravity measurements at various times within the target time period. Then, the angle between the gravity measurements at various times within the target time period and the average gravity measurement value can be determined sequentially, thus obtaining the second angle sequence. The processing method for the second angle sequence is similar to that described above, and will not be repeated here.
[0144] This section provides a more detailed explanation of how to calculate the average gravity measurement based on gravity measurements taken at various times. As you can understand it, a gravity measurement is a directional vector, which can be represented, for example, by its components on the three coordinate axes of the carrier coordinate system. Let's say we have gravity measurement a denoted as (x1, y1, z1) and gravity measurement b denoted as (x2, y2, z2). To calculate the average of these two gravity measurements, we can average x1 and x2 to get x', average y1 and y2 to get y', and average z1 and z2 to get z'. The average gravity measurement can then be represented as (x', y', z'), and the specific direction of the average gravity measurement is the direction of this vector in the carrier coordinate system.
[0145] Based on the above description, the preset conditions in this embodiment may include at least one of the following: the values of the angular velocity vectors corresponding to multiple moments within the target time period are all less than a first preset threshold; the standard deviation of the included angles in the first included angle sequence is less than or equal to a second preset threshold; the standard deviation of the included angles in the second included angle sequence is less than or equal to a third preset threshold; and the maximum value of the included angles in the second included angle sequence is less than or equal to a fourth preset threshold.
[0146] Understandably, when the terminal device is inside a vehicle, as long as the terminal device and the vehicle are not fixedly connected, the corresponding output will fluctuate violently and become unstable. However, since the movement of the vehicle will not cause violent fluctuations, if the output of the terminal device also does not fluctuate violently, that is, if the preset conditions described above are met, then it can be determined that the terminal device and the vehicle are relatively stationary.
[0147] In actual implementation, specific preset conditions can be selected from the above-described contents, or can be set according to actual needs. Any condition used to determine whether the data output by the gyroscope and accelerometer of the terminal device is stable can be used as a preset condition in this embodiment.
[0148] In one possible implementation, when the preset conditions include the three points described above, for example, it is possible to Figure 9 To understand the above judgment process, Figure 9 The flowchart of the zero bias determination method provided in the embodiments of this application Figure 3 .
[0149] like Figure 9 As shown, the method includes:
[0150] S901, Obtain angular velocity and acceleration data within the target time period.
[0151] S902. Determine whether the values of the angular velocity vectors corresponding to each moment within the target time period are all less than the first preset threshold. If yes, execute S902; otherwise, execute S810.
[0152] S903. Determine the gravity measurement value corresponding to each moment based on the acceleration vector corresponding to each moment.
[0153] S904. Determine the angle between the gravity measurements at two adjacent moments in sequence to obtain the first angle sequence.
[0154] S905. Determine whether the standard deviation of each angle in the first angle sequence is greater than the second preset threshold. If yes, execute S906; otherwise, execute S810.
[0155] S906. Determine the angle between the gravity measurement value and the average gravity measurement value at each moment in sequence to obtain the second angle sequence.
[0156] S907. Determine whether the standard deviation of each angle in the second included angle sequence is greater than the third preset threshold. If yes, execute S908; otherwise, execute S810.
[0157] S908. Determine whether the maximum value of the included angle in the second included angle sequence is greater than the fourth preset threshold. If yes, execute S909; otherwise, execute S810.
[0158] S909. Determine that the terminal equipment is stationary relative to the target vehicle.
[0159] S910. Determine the relative motion of the terminal equipment with respect to the target vehicle.
[0160] Understandably, after the above steps, each specific condition in the preset conditions can be judged in turn. When a certain condition is not met, it can be directly determined that the terminal device is moving relative to the target vehicle, thereby reducing the amount of data processing and improving the efficiency of judging the vehicle's motion status to a certain extent.
[0161] In summary, the technical solution of this application does not require the gyroscope to remain stationary when measuring its zero bias value. It only requires the terminal device and the target vehicle to remain relatively stationary, for example, the terminal device can be fixed to the vehicle, which aligns with the user's navigation application scenario. This application makes the following assumptions: 1. The gyroscope zero bias can be considered constant within the estimation window interval; 2. The vehicle travels on a horizontal plane. Based on these two assumptions, the technical solution of this application decomposes the gyroscope's zero bias value into vertical and horizontal components. The vertical component of the zero bias value causes the angle of the gyroscope's vertical integration to differ from the steering angle observed by GNSS. The horizontal component of the zero bias value causes the angle of the gyroscope's horizontal integration to be non-zero. By solving the corresponding equations, the gyroscope's zero bias value within the target time period can be effectively determined. The technical solution of this application has low computational complexity and stable output results. The accuracy of the calculated gyroscope zero bias also meets the requirements for low-cost MEMS sensors, thus possessing the characteristics of simplicity and practicality. Furthermore, the technical solution of this application can be applied to the scenario of in-vehicle mobile phone navigation, thereby quickly and stably obtaining the gyroscope zero bias of the terminal device, and then, for example, correcting the zero bias in real time, thereby helping the terminal device's combined filtering navigation convergence and improving the positioning accuracy during the navigation process.
[0162] Based on the above introduction, it can be confirmed that the zero bias value determined by the gyroscope can improve positioning accuracy during inertial navigation. The following section will further illustrate the specific application of zero bias in inertial navigation with a concrete example.
[0163] Similar to the embodiments described above, the inertial navigation method provided in this embodiment can also be applied to a terminal device, wherein the terminal device is used to provide navigation services for a target vehicle, and the terminal device and the target vehicle are relatively stationary. The terminal device may include a gyroscope and an accelerometer.
[0164] In one possible implementation, the terminal device can acquire the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer.
[0165] It is understandable that gyroscopes and accelerometers output angular velocity and acceleration data in real time. Therefore, for example, if the current moment is the first moment, the terminal device can obtain the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer at the first moment.
[0166] Furthermore, the terminal device can obtain the zero bias value of the gyroscope during the target time period, wherein the zero bias value is determined according to the content described in the above embodiments.
[0167] Based on the above introduction, it can be determined that the terminal device can use a sliding window to dynamically determine the zero bias value of the gyroscope within the time period of each sliding window, and use the zero bias value within one sliding window to correct the gyroscope output data in the next sliding window. Therefore, the target time period in this embodiment can be understood as the time period of the previous sliding window adjacent to the first time.
[0168] After obtaining the zero bias value within the target time period, the angular velocity data output by the gyroscope can be corrected based on the zero bias value to obtain the corrected angular velocity data; then, the navigation information of the target vehicle can be determined based on the corrected angular velocity data and the acceleration data.
[0169] The method of inertial navigation processing based on angular velocity data and gyroscope data to determine navigation information can be found in the relevant technical descriptions, which will not be repeated here. The navigation information of the target vehicle may include, for example, the target vehicle's position, direction of travel, and speed.
[0170] Therefore, the inertial navigation method provided in this embodiment can effectively improve the accuracy of inertial navigation by correcting the angular velocity data output by the gyroscope based on the obtained gyroscope zero bias value, and then performing inertial navigation based on the corrected angular velocity data.
[0171] Figure 10 This is a schematic diagram of the zero bias determination device provided in an embodiment of this application. Figure 10 As shown, the device 100 includes a determination module 1001 and a processing module 1002.
[0172] The determination module 1001 is used to determine the motion state of the terminal device relative to the target vehicle based on the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer during the target time period.
[0173] The determining module 1001 is further configured to determine, based on the angular velocity data and the acceleration data, the estimated change in heading angle and the change in driving direction angle of the target vehicle during the target time period when the motion state is relatively stationary.
[0174] The determining module 1001 is further configured to determine the actual change in heading angle of the target vehicle during the target time period based on satellite navigation data;
[0175] The determining module 1001 is further configured to determine the zero bias value of the gyroscope during the target time period based on the target time period, the calculated change in heading angle, the actual change in heading angle, and the change in travel direction angle.
[0176] In one possible design, the angular velocity data includes angular velocity vectors (bx, by, bz) corresponding to each of the multiple moments within the target time period, and the acceleration data includes acceleration vectors (ax, ay, az) corresponding to each of the multiple moments within the target time period.
[0177] bx is the angular velocity in the x-axis direction, by is the angular velocity in the y-axis direction, and bz is the angular velocity in the z-axis direction; ax is the acceleration value in the x-axis direction, ay is the acceleration value in the y-axis direction, and az is the acceleration value in the z-axis direction.
[0178] The x-axis, y-axis, and z-axis are coordinate axes in the carrier coordinate system of the terminal device itself.
[0179] In one possible design, the determining module 1001 is specifically used for:
[0180] Based on the angular velocity data and the acceleration data, the estimated change in heading angle is determined. The estimated change in heading angle is the change in the direction of travel of the target vehicle on the target horizontal plane during the target time period. The target horizontal plane is the horizontal plane where the target vehicle is located.
[0181] Based on the angular velocity data and the acceleration data, the change in the driving direction angle is determined. The change in the driving direction angle is the change in the driving direction of the target vehicle on the target vertical plane during the target time period. The target vertical plane is a plane perpendicular to the target horizontal plane.
[0182] In one possible design, the determining module 1001 is specifically used for:
[0183] For any one of the plurality of moments, the vertical component of the angular velocity vector at the first moment is obtained by multiplying the acceleration vector at the first moment by the angular velocity vector at the first moment, wherein the vertical direction is perpendicular to the ground on which the target vehicle is traveling.
[0184] The calculated change in heading angle is obtained by performing time integration on the vertical components of the angular velocity vectors corresponding to each of the multiple moments.
[0185] In one possible design, the determining module 1001 is specifically used for:
[0186] For any one of the plurality of moments, the horizontal component of the angular velocity vector at the first moment is obtained by cross-multiplying the acceleration vector at the first moment by the angular velocity vector at the first moment.
[0187] The change in the driving direction angle is obtained by performing time integration on the horizontal component of the angular velocity vector corresponding to each of the multiple time points, where the horizontal direction is parallel to the ground on which the target vehicle is traveling.
[0188] In one possible design, the determining module 1001 is specifically used for:
[0189] Based on the actual change in heading angle and the estimated change in heading angle, determine the heading angle change error value between the actual change in heading angle and the estimated change in heading angle;
[0190] Based on the heading angle change error value, the travel direction angle change amount, the target time period, and the acceleration data, the zero bias value of the gyroscope within the target time period is determined.
[0191] In one possible design, the determining module 1001 is specifically used for:
[0192] Using the zero bias value as the information to be solved, based on the zero bias value and the acceleration data, the vertical component of the zero bias value and the horizontal component of the zero bias value are determined.
[0193] Based on the vertical component of the zero offset and the target time period, determine the change in heading angle caused by the zero offset in the vertical direction;
[0194] Based on the horizontal component of the zero bias and the target time period, determine the angular change caused by the zero bias in the horizontal direction;
[0195] The change in heading angle caused by the zero offset value in the vertical direction is determined to be equal to the heading angle change error value, and the change in angle caused by the zero offset value in the horizontal direction is determined to be equal to the change in the travel direction angle, so as to obtain the zero offset value.
[0196] In one possible design, the determining module 1001 is specifically used for:
[0197] Based on the heading angle change error value, the travel direction angle change amount, the duration of the target time period, and the acceleration data, a preset function relationship is calculated to obtain the zero bias value of the gyroscope within the target time period;
[0198] The preset functional relationship is as follows: the dot product of the target integral vector and the zero bias value is equal to the heading angle change error value; and the cross product of the target integral vector and the zero bias value is equal to the change in the driving direction angle; wherein, the target integral vector is the cumulative result of the product of the acceleration vectors at the multiple moments and the duration of their respective sub-time periods, and the sub-time period corresponding to the acceleration vector is the time period between the moment corresponding to the acceleration vector and the adjacent moment.
[0199] In one possible design, the determining module 1001 is specifically used for:
[0200] Determine whether the angular velocity data and the acceleration data within the target time period meet preset conditions, wherein the preset conditions are used to indicate the stability of the angular velocity data and the acceleration data;
[0201] If the condition is met, then the motion state of the terminal device relative to the target vehicle is determined to be relatively stationary;
[0202] If the condition is not met, then the motion state of the terminal device relative to the target vehicle is determined to be relative motion.
[0203] In one possible design, the device further includes: a processing module 1002;
[0204] The processing module 1002 is used for:
[0205] For any first moment within the target time period, the gravity measurement value corresponding to the first moment is determined based on the acceleration vector corresponding to the first moment.
[0206] The angle between gravity measurements at two adjacent moments within the target time period is determined sequentially to obtain the first angle sequence;
[0207] The angle between the gravity measurement value and the average gravity measurement value at each moment within the target time period is determined sequentially to obtain a second angle sequence, which is the average value of the gravity measurement value at each moment within the target time period.
[0208] In one possible design, the preset conditions include at least one of the following:
[0209] The values of the angular velocity vectors corresponding to each of the multiple moments within the target time period are all less than the first preset threshold.
[0210] The standard deviation of the included angles in the first included angle sequence is less than or equal to the second preset threshold;
[0211] The standard deviation of the included angles in the second included angle sequence is less than or equal to a third preset threshold;
[0212] The maximum value of the included angle in the second included angle sequence is less than or equal to the fourth preset threshold.
[0213] The apparatus provided in this embodiment can be used to execute the technical solutions of the above method embodiments. Its implementation principle and technical effects are similar, and will not be described again here.
[0214] Figure 11 A schematic diagram of the hardware structure of the electronic device provided in the embodiments of this application, such as... Figure 11 As shown, the electronic device 110 of this embodiment includes: a processor 1101 and a memory 1102; wherein
[0215] Memory 1102 is used to store computer-executed instructions;
[0216] Processor 1101 is configured to execute computer execution instructions stored in memory to implement the various steps performed by the zero bias determination method in the above embodiments. For details, please refer to the relevant descriptions in the foregoing method embodiments.
[0217] Alternatively, the memory 1102 can be either standalone or integrated with the processor 1101.
[0218] When the memory 1102 is set up independently, the electronic device also includes a bus 1103 for connecting the memory 1102 and the processor 1101.
[0219] This application also provides a computer-readable storage medium storing computer-executable instructions. When a processor executes the computer-executable instructions, it implements the zero bias determination method performed by the above-mentioned electronic device.
[0220] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use and processing of the relevant data must comply with relevant laws, regulations and standards, and corresponding operation entry points are provided for users to choose to authorize or refuse.
[0221] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or modules, and may be electrical, mechanical, or other forms.
[0222] The integrated modules implemented as software functional modules described above can be stored in a computer-readable storage medium. These software functional modules, stored in a storage medium, include several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute some steps of the methods described in the various embodiments of this application.
[0223] It should be understood that the aforementioned processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. A general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this invention can be directly manifested as execution by a hardware processor, or execution by a combination of hardware and software modules within the processor.
[0224] The memory may include high-speed RAM, and may also include non-volatile storage (NVM), such as at least one disk storage device, and may also be a USB flash drive, external hard drive, read-only memory, disk or optical disc, etc.
[0225] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.
[0226] The aforementioned storage medium can be implemented from any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk. The storage medium can be any available medium accessible to general-purpose or special-purpose computers.
[0227] Those skilled in the art will understand that all or part of the steps of the above-described method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the above-described method embodiments; and the aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.
[0228] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A method for determining zero bias, characterized in that, Applied to a terminal device, the terminal device is used to provide navigation services for a target vehicle, and the terminal device includes a gyroscope and an accelerometer, comprising: Based on the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer during the target time period, the motion state of the terminal device relative to the target vehicle is determined. When the motion state is relatively stationary, the estimated change in heading angle on the horizontal plane and the change in travel direction angle on the vertical plane of the target vehicle are determined based on the angular velocity data and the acceleration data during the target time period. Based on satellite navigation data, determine the actual change in heading angle of the target vehicle during the target time period; Based on the target time period, the estimated change in heading angle, the actual change in heading angle, and the change in travel direction angle, the zero bias value of the gyroscope during the target time period is determined. The acceleration vector output by the accelerometer is directed in the direction of gravity, and the target vehicle is traveling on a horizontal surface.
2. The method according to claim 1, characterized in that, The angular velocity data includes angular velocity vectors (bx, by, bz) corresponding to each of the multiple moments within the target time period, and the acceleration data includes acceleration vectors (ax, ay, az) corresponding to each of the multiple moments within the target time period. bx is the angular velocity in the x-axis direction, by is the angular velocity in the y-axis direction, and bz is the angular velocity in the z-axis direction; ax is the acceleration value in the x-axis direction, ay is the acceleration value in the y-axis direction, and az is the acceleration value in the z-axis direction. The x-axis, y-axis, and z-axis are coordinate axes in the carrier coordinate system of the terminal device itself.
3. The method according to claim 2, characterized in that, The step of determining the estimated change in heading angle and the change in travel direction angle of the target vehicle during the target time period based on the angular velocity data and the acceleration data includes: Based on the angular velocity data and the acceleration data, the estimated change in heading angle is determined. The estimated change in heading angle is the change in the direction of travel of the target vehicle on the target horizontal plane during the target time period. The target horizontal plane is the horizontal plane where the target vehicle is located. Based on the angular velocity data and the acceleration data, the change in the driving direction angle is determined. The change in the driving direction angle is the change in the driving direction of the target vehicle on the target vertical plane during the target time period. The target vertical plane is a plane perpendicular to the target horizontal plane.
4. The method according to claim 3, characterized in that, Determining the calculated change in heading angle based on the angular velocity data and the acceleration data includes: For any one of the plurality of moments, the vertical component of the angular velocity vector at the first moment is obtained by multiplying the acceleration vector at the first moment by the angular velocity vector at the first moment, wherein the vertical direction is perpendicular to the ground on which the target vehicle is traveling. The calculated change in heading angle is obtained by performing time integration on the vertical components of the angular velocity vectors corresponding to each of the multiple moments.
5. The method according to claim 3, characterized in that, The step of determining the change in travel direction angle based on the angular velocity data and the acceleration data includes: For any one of the plurality of moments, the horizontal component of the angular velocity vector at the first moment is obtained by cross-multiplying the acceleration vector at the first moment by the angular velocity vector at the first moment. The change in the driving direction angle is obtained by performing time integration on the horizontal component of the angular velocity vector corresponding to each of the multiple time points, where the horizontal direction is parallel to the ground on which the target vehicle is traveling.
6. The method according to any one of claims 1-5, characterized in that, Determining the zero bias value of the gyroscope within the target time period based on the target time period, the calculated change in heading angle, the actual change in heading angle, and the change in travel direction angle includes: Based on the actual change in heading angle and the estimated change in heading angle, determine the heading angle change error value between the actual change in heading angle and the estimated change in heading angle; Based on the heading angle change error value, the travel direction angle change amount, the target time period, and the acceleration data, the zero bias value of the gyroscope within the target time period is determined.
7. The method according to claim 6, characterized in that, The step of determining the zero bias value of the gyroscope within the target time period based on the heading angle change error value, the travel direction angle change amount, the target time period, and the acceleration data includes: Using the zero bias value as the information to be solved, based on the zero bias value and the acceleration data, the vertical component of the zero bias value and the horizontal component of the zero bias value are determined. Based on the vertical component of the zero offset and the target time period, determine the change in heading angle caused by the zero offset in the vertical direction; Based on the horizontal component of the zero bias and the target time period, determine the angular change caused by the zero bias in the horizontal direction; The change in heading angle caused by the zero offset value in the vertical direction is determined to be equal to the heading angle change error value, and the change in angle caused by the zero offset value in the horizontal direction is determined to be equal to the change in the travel direction angle, so as to obtain the zero offset value.
8. The method according to claim 6, characterized in that, The step of determining the zero bias value of the gyroscope within the target time period based on the heading angle change error value, the travel direction angle change amount, the target time period, and the acceleration data includes: Based on the heading angle change error value, the travel direction angle change amount, the duration of the target time period, and the acceleration data, a preset function relationship is calculated to obtain the zero bias value of the gyroscope within the target time period; The preset functional relationship is as follows: the dot product of the target integral vector and the zero bias value is equal to the heading angle change error value; and the cross product of the target integral vector and the zero bias value is equal to the change in the driving direction angle; wherein, the target integral vector is the cumulative result of the product of the acceleration vector at multiple times and the duration of their respective sub-time periods, and the sub-time period corresponding to the acceleration vector is the time period between the time corresponding to the acceleration vector and the adjacent time.
9. The method according to any one of claims 1-5 and 7-8, characterized in that, Determining the motion state of the terminal device relative to the target vehicle based on the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer within the target time period includes: Determine whether the angular velocity data and the acceleration data within the target time period meet preset conditions, wherein the preset conditions are used to indicate the stability of the angular velocity data and the acceleration data; If the condition is met, then the motion state of the terminal device relative to the target vehicle is determined to be relatively stationary; If the condition is not met, then the motion state of the terminal device relative to the target vehicle is determined to be relative motion.
10. The method according to claim 9, characterized in that, The method further includes: For any first moment within the target time period, the gravity measurement value corresponding to the first moment is determined based on the acceleration vector corresponding to the first moment. The angle between gravity measurements at two adjacent moments within the target time period is determined sequentially to obtain the first angle sequence; The angle between the gravity measurement value and the average gravity measurement value at each moment within the target time period is determined sequentially to obtain a second angle sequence. The average gravity measurement value is the vector average of the gravity measurement values at each moment within the target time period, and the second angle sequence is the set of angles between the gravity measurement value at each moment within the target time period and the average gravity measurement value. The preset conditions include at least one of the following: The values of the angular velocity vectors corresponding to each of the multiple moments within the target time period are all less than the first preset threshold. The standard deviation of the included angles in the first included angle sequence is less than or equal to the second preset threshold; The standard deviation of the included angles in the second included angle sequence is less than or equal to a third preset threshold; The maximum value of the included angle in the second included angle sequence is less than or equal to the fourth preset threshold.
11. A zero bias determination device, characterized in that, include: The determination module is used to determine the motion state of the terminal device relative to the target vehicle based on the angular velocity data output by the gyroscope and the acceleration data output by the accelerometer within the target time period. The determining module is further configured to, when the motion state is relatively stationary, determine, based on the angular velocity data and the acceleration data, the estimated change in heading angle on the horizontal plane and the change in travel direction angle on the vertical plane of the target vehicle during the target time period. The determining module is further configured to determine, based on satellite navigation data, the actual change in heading angle of the target vehicle during the target time period; The determining module is further configured to determine the zero bias value of the gyroscope within the target time period based on the target time period, the estimated change in heading angle, the actual change in heading angle, and the change in travel direction angle. The acceleration vector output by the accelerometer is directed in the direction of gravity, and the target vehicle is traveling on a horizontal surface.
12. A navigation method, characterized in that, An application to a terminal device used to provide navigation services to a target vehicle, wherein the terminal device is stationary relative to the target vehicle, the method comprising: Obtain the zero bias value of the gyroscope during the target time period, wherein the zero bias value is determined by the method according to any one of claims 1-10; The navigation information of the target vehicle is determined based on the corrected angular velocity and acceleration data.
13. An electronic device, characterized in that, include: Memory, used to store programs; A processor for executing the program stored in the memory, wherein when the program is executed, the processor is configured to perform the method as described in any one of claims 1 to 10.
14. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the method described in any one of claims 1 to 10.