Inertial navigation positioning method and device
By interpolating the angular velocity and acceleration data in the inertial navigation system and optimizing the estimated velocity using sensor drift velocity, the positioning error problems caused by low sampling frequency and sensor drift are solved, thus improving the accuracy of inertial navigation positioning.
Patent Information
- Application Number
- CN202310124836.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-16
- Publication Date
- 2026-02-03
- Estimated Expiration
- 2043-02-16
AI Technical Summary
In existing inertial navigation systems, low sampling frequency and sensor drift lead to positioning errors, affecting positioning accuracy.
By interpolating the angular velocity and acceleration measurement data, motion direction parameters are calculated, and the estimated velocity is optimized using the sensor drift velocity to generate inertial navigation positioning results.
This reduces errors caused by low sampling frequency and drift velocity, thus improving the accuracy of inertial navigation positioning results.
Smart Images

Figure CN116105728B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of positioning technology, and in particular to an inertial navigation positioning method and device. Background Technology
[0002] This section is intended to provide background or context for the embodiments of the invention set forth in the claims. The description herein is not an admission that it is prior art simply because it is included in this section.
[0003] Inertial navigation systems use accelerometers and gyroscopes to measure the acceleration and angular velocity of an object, and use computers to continuously estimate the position, attitude, and velocity of the moving object. Existing positioning schemes that use gyroscope and accelerometer fusion calculations typically employ low sampling frequencies. Sampling frequencies below the required frequency for fusion calculations can significantly impact positioning results. Furthermore, because the sensor outputs are not zero when stationary, the estimated angle rates are inaccurate, further contributing to positioning errors. Summary of the Invention
[0004] This application provides an inertial navigation positioning method and device to at least solve the technical problem of reducing positioning result errors.
[0005] According to one aspect of this application, an inertial navigation positioning method is provided, comprising: acquiring angular velocity measurement data and acceleration measurement data using sensors; interpolating the angular velocity measurement data to obtain angular velocity data, and interpolating the acceleration measurement data to obtain acceleration data; calculating a first motion direction parameter based on the angular velocity data, and calculating a second motion direction parameter based on the acceleration data; calculating an estimated velocity based on the first motion direction parameter and the second motion direction parameter; acquiring the drift velocity of the sensor, calculating an update velocity using the estimated velocity and the drift velocity, and generating an inertial navigation positioning result using the update velocity.
[0006] According to another aspect of this application, an inertial navigation positioning device is also provided, comprising: a processor; and a memory storing a program, wherein the program includes instructions that, when executed by the processor, cause the processor to perform the method described above.
[0007] According to another aspect of this application, a non-transitory computer-readable storage medium storing computer instructions is also provided, wherein the computer instructions are used to cause the computer to perform the method steps according to the above description.
[0008] According to another aspect of this application, a computer program product is also provided, wherein the computer program product includes a computer program that, when executed by a processor, implements the above-described method steps.
[0009] In this embodiment, angular velocity and acceleration measurement data are acquired using sensors; the angular velocity measurement data is interpolated to obtain angular velocity data, and the acceleration measurement data is interpolated to obtain acceleration data; a first motion direction parameter is calculated based on the angular velocity data, and a second motion direction parameter is calculated based on the acceleration data; an estimated velocity is calculated based on the first and second motion direction parameters; the drift velocity of the sensor is acquired, and an update velocity is calculated using the estimated velocity and the drift velocity; finally, an inertial navigation positioning result is generated using the update velocity. This embodiment of the invention reduces errors caused by low sampling frequency by interpolating the angular velocity and acceleration measurement data; it optimizes the estimated velocity using the drift velocity to obtain the update velocity, and then uses the update velocity to calculate the inertial navigation positioning result, further reducing errors caused by drift velocity. Attached Figure Description
[0010] Further details, features, and advantages of this application are disclosed in the following description of exemplary embodiments in conjunction with the accompanying drawings, in which:
[0011] Figure 1 A flowchart of an inertial navigation positioning method according to an exemplary embodiment of this application is shown;
[0012] Figure 2 A schematic diagram of the filter fusion algorithm is shown;
[0013] Figure 3 A schematic diagram of gyroscope data is shown;
[0014] Figure 4 A schematic diagram of accelerometer data is shown;
[0015] Figure 5 A structural block diagram of an exemplary electronic device that can be used to implement embodiments of this application is shown;
[0016] Figure 6 A schematic diagram of the duration of static and dynamic states is shown;
[0017] Figure 7 A schematic diagram of the velocity before drift removal is shown;
[0018] Figure 8 A schematic diagram of the velocity after drift removal is shown;
[0019] Figure 9 The planned path is shown;
[0020] Figure 10 The path obtained in this application is shown. Detailed Implementation
[0021] Embodiments of this application will now be described in more detail with reference to the accompanying drawings. While some embodiments of this application are shown in the drawings, it should be understood that this application can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this application. It should be understood that the drawings and embodiments of this application are for illustrative purposes only and are not intended to limit the scope of protection of this application.
[0022] It should be understood that the steps described in the method embodiments of this application may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this application is not limited in this respect.
[0023] The term "comprising" and its variations as used herein are open-ended, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the following description. It should be noted that the concepts of "first", "second", etc., mentioned in this application are used only to distinguish different devices, modules, or units, and are not intended to limit the order of functions performed by these devices, modules, or units or their interdependencies.
[0024] It should be noted that the terms "a" and "a plurality of" used in this application are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0025] The names of the messages or information exchanged between multiple devices in the embodiments of this application are for illustrative purposes only and are not intended to limit the scope of these messages or information.
[0026] The basic algorithm for existing AHRS (Attitude and Heading Reference System) filters mainly includes the following steps:
[0027] First, calculate the direction of motion using gyroscope data:
[0028] remember S ω=[0 ω x ω y ω z [This represents the gyroscope's angular rate in the sensor coordinate system as a quaternion.] To estimate the direction of the Earth coordinate system relative to the sensor coordinate system, the derivative of the motion direction quadruple (i.e., the rate of change of the direction of the Earth coordinate system relative to the sensor coordinate system) can be calculated as follows:
[0029]
[0030] remember This is an estimate of the direction of motion of the Earth coordinate system relative to the sensor coordinate system at time t-1. S ω t Let ωt be the measured angular velocity in the sensor coordinate system at time t, and Δt be the sampling period. Then, the direction of motion of the Earth coordinate system relative to the sensor coordinate system at time t can be calculated as follows:
[0031]
[0032]
[0033] Second, the direction of motion is calculated using accelerometer data:
[0034] remember Quadruples for directional valuation E g = [0 0 0 1] is a quadruple with the direction of gravity perpendicular to the z-axis in the Earth coordinate system. These are accelerometer measurements. Directional estimation quaternion. This can be obtained by minimizing the following direction error function:
[0035]
[0036] The gradient descent algorithm for solving this optimization problem is as follows:
[0037]
[0038] Where μ is the iteration step size, and the gradient is calculated as follows:
[0039]
[0040]
[0041]
[0042] Third, utilize the fusion algorithm of gyroscope and accelerometer:
[0043] 1. Fusion computing
[0044] right and Weighting the values allows us to estimate the direction of motion:
[0045]
[0046] With certain simplification steps, the following calculation formula can be obtained:
[0047]
[0048]
[0049]
[0050] 2. For specific implementation steps of the IMU fusion algorithm, please refer to [link / reference]. Figure 2 The diagram shows the filter fusion algorithm. See Table 1 for pseudocode.
[0051]
[0052] Table 1
[0053] The aforementioned fusion algorithm has high requirements for sampling frequency. When the sensor cannot reach a high sampling frequency, it will lead to inaccurate inertial navigation positioning results. In addition, since the sensor output is not zero when stationary, the estimated angular velocity is not zero, and the displacement obtained by integration on this basis is not zero. The resulting error must be eliminated. Based on this, this application provides an inertial navigation positioning method and device, which can reduce the errors caused by sampling frequency and drift velocity, and improve the accuracy of inertial navigation positioning results.
[0054] According to one aspect of the present invention, an inertial navigation positioning method is provided. Figure 1 A flowchart of the inertial navigation positioning method provided in the embodiments of the present invention is shown below. Figure 1 As shown, the method includes the following steps:
[0055] Step S202: Use sensors to acquire angular velocity measurement data and acceleration measurement data;
[0056] In this step, the sensors may include a gyroscope and an accelerometer. The gyroscope can be used to acquire angular velocity measurement data. An example of gyroscope output data can be found in [reference needed]. Figure 3 In the figure, the horizontal axis represents time information in seconds, and the vertical axis represents the angular velocity values, including angular velocity values in the X, Y, and Z directions. An accelerometer can be used to acquire acceleration measurement data; an example of accelerometer output data can be found in [reference needed]. Figure 4In the diagram, the horizontal axis represents time information in seconds, and the vertical axis represents the acceleration values, including acceleration values in the X, Y, and Z directions. The sensor can be installed in a mobile terminal, such as a mobile phone, or in a dedicated IMU (Inertial Measurement Unit) module.
[0057] Step S204: Interpolate the angular velocity measurement data to obtain angular velocity data, and interpolate the acceleration measurement data to obtain acceleration data;
[0058] In this step, to eliminate errors caused by the low sampling frequency, the sampled data, namely the angular velocity measurement data and the acceleration measurement data, need to be interpolated separately to minimize the resulting errors. It should be noted that the specific interpolation method used can be selected according to actual needs, and this application does not impose any specific limitations on it.
[0059] It should be noted that if the sampling frequency is 10Hz and the acceleration is am / s², then... 2 Then the displacement after one sampling period is If we interpolate the sampled data to make it equivalent to data acquired at a sampling frequency of 100Hz, then the displacement after one original sampling period is: Clearly, s1 / s2 = 10. This means that in this case, a low sampling frequency will amplify the error by a factor of 10. Therefore, interpolation can reduce the error caused by the low sampling frequency.
[0060] Optionally, the interpolation processing of angular velocity measurement data or acceleration measurement data can specifically employ linear interpolation, that is, first-order average difference Newton interpolation.
[0061] Step S206: Calculate the first motion direction parameter based on the angular velocity data, and calculate the second motion direction parameter based on the acceleration data;
[0062] In this step, the motion direction can be calculated using angular velocity data, following the steps in the AHRS filter to calculate the motion direction using gyroscope data, to obtain the first motion direction parameter. Then, the motion direction can be calculated using acceleration data, following the steps in the AHRS filter to calculate the motion direction using accelerometer data, to obtain the second motion direction parameter.
[0063] Step S208: Calculate the estimated speed based on the first motion direction parameter and the second motion direction parameter;
[0064] In this step, the first and second motion direction parameters are calculated, for example, by weighted calculation, to obtain the estimated velocity. Since the angular velocity and acceleration data are the result of interpolation, the estimated velocity calculated based on the angular velocity and acceleration data corresponds to more time points compared to the velocity calculated directly using the angular velocity and acceleration measurement data.
[0065] Step S210: Obtain the drift velocity of the sensor, calculate the update velocity using the estimated velocity and the drift velocity, and generate the inertial navigation positioning result using the update velocity.
[0066] In this step, the sensor's drift velocity is calculated in advance based on the output drift caused by DC offset and noise. The sensor's drift velocity is predetermined, and its influence is removed from the estimated velocity. An updated velocity is calculated using the estimated velocity and the drift velocity, and then integrated to obtain the inertial navigation positioning result. By removing the drift velocity, a more accurate inertial navigation positioning result can be obtained.
[0067] In this embodiment, angular velocity and acceleration measurement data are acquired using sensors; the angular velocity measurement data is interpolated to obtain angular velocity data, and the acceleration measurement data is interpolated to obtain acceleration data; a first motion direction parameter is calculated based on the angular velocity data, and a second motion direction parameter is calculated based on the acceleration data; an estimated velocity is calculated based on the first and second motion direction parameters; the drift velocity of the sensor is acquired, and an update velocity is calculated using the estimated velocity and the drift velocity; finally, an inertial navigation positioning result is generated using the update velocity. This embodiment of the invention reduces errors caused by low sampling frequency by interpolating the angular velocity and acceleration measurement data; it optimizes the estimated velocity using the drift velocity to obtain the update velocity, and then uses the update velocity to calculate the inertial navigation positioning result, further reducing errors caused by drift velocity.
[0068] In one alternative implementation, before obtaining the drift velocity, the following steps may be performed: determining the motion state of the sensor based on the acceleration measurement data and a preset threshold parameter; determining a target motion state within the motion state, and using the duration of the target motion state as a target time interval; and performing linear interpolation on the estimated velocity based on each target time interval to obtain the drift velocity within each target time interval.
[0069] In this step, the threshold parameter can be determined experimentally, and its specific value is not specifically limited in this embodiment of the invention. The motion state of the sensor can be determined using acceleration measurement data and the preset threshold parameter. The sensor may have multiple different motion states; one of these motion states is taken as the target motion state, and the duration of the target motion state is taken as the target time interval. For each time interval, the estimated velocity in each direction is linearly interpolated to obtain the drift velocity within each target time interval.
[0070] In one optional implementation, the motion state of the sensor is determined based on the acceleration data and a preset threshold parameter, which can be performed according to the following steps: if the acceleration measurement data is less than the threshold parameter, the motion state of the sensor is determined to be static; if the acceleration measurement data is not less than the threshold parameter, the motion state of the sensor is determined to be dynamic.
[0071] In this embodiment of the invention, the motion state of the sensor is identified according to a set acceleration threshold parameter; that is, if the measured acceleration is higher than the threshold parameter, the sensor is in a dynamic state; if it is lower than the threshold parameter, the sensor is in a static state. See also Figure 6 This illustrates the situation where the durations of the dynamic and static states alternate during dynamic-static detection.
[0072] In one optional implementation, determining a target motion state within the motion state and using the duration of the target motion state as a target time interval can be performed by the following steps: using the motion state as the target motion state and using the duration of the motion state as the target time interval.
[0073] In one alternative implementation, the update speed is calculated using the estimated speed and the drift speed, and can be performed by the following steps: determining the start time and the end time based on the target time interval; and obtaining the update speed by subtracting the drift speed at the same time from the estimated speed between the start time and the end time.
[0074] In this embodiment of the invention, from the start to the end of a target time interval, the estimated velocity is modified by removing the drift velocity at the same moment as the estimated velocity to obtain the updated velocity. See also Figure 7 The diagram showing the velocity before drift removal and Figure 8 The diagram shows the velocity after drift removal. In the diagram, the horizontal axis represents time, and the vertical axis represents the velocity value, including the velocity values in the X, Y, and Z directions.
[0075] In existing solutions, calculating motion direction parameters based on acceleration requires multiple iterations for each new direction, and the step size μ needs to be adjusted to its optimal value. This significantly increases the computational load, making the calculation impractical. Therefore, this application, while ensuring the convergence rate is greater than or equal to the actual rate of change of the direction, only requires one iteration for each sampling. In other words, calculating the second motion direction parameter based on the acceleration data can be performed according to the following steps:
[0076] Calculate gradient data based on the acceleration data; determine step size information using the sampling period of the acceleration data; calculate the second motion direction parameter at the current moment using the gradient data, the step size information, and the second motion direction parameter from the previous moment.
[0077] In this embodiment of the invention, after interpolating the acceleration measurement data to obtain acceleration data, the gradient data can be calculated using the acceleration data according to the gradient calculation steps in the existing gradient descent algorithm. Following the interpolation processing method for the acceleration measurement data, the sampling period of the acceleration measurement data is also interpolated to obtain the sampling period of the acceleration data, and the step size information is calculated using the sampling period of the acceleration data. Then, the second motion direction parameter at the previous moment is corrected using the gradient data and the step size information to obtain the second motion direction parameter at the current moment.
[0078] Preferably, the second motion direction parameter at the current moment is calculated using the gradient data, the step size information, and the second motion direction parameter from the previous moment according to the following formula:
[0079]
[0080]
[0081] in, This represents the second motion direction parameter at the current moment. This represents the second motion direction parameter at the previous moment. The gradient data is represented by Δt, the sampling period of the acceleration data is represented by α, and μ is a constant parameter. t Indicates step size information. This indicates the rate of change of direction measured by the gyroscope.
[0082] In this embodiment of the invention, when determining the step size information using the sampling period of acceleration data, the direction change rate measured by the gyroscope can be introduced for calculation, thereby optimizing the calculation of the step size information and obtaining a more accurate second motion direction parameter.
[0083] In an alternative implementation, the following step may also be performed: generating a positioning path based on the guided positioning result.
[0084] In this embodiment of the invention, a positioning path is generated based on the guided positioning results to improve the accuracy of the path.
[0085] This application provides an inertial navigation positioning method and device, see [link]. Figure 9 The actual action trajectory of the plan shown, and Figure 10 The trajectory calculated using this method is shown, demonstrating that the path obtained is very close to the planned path. This method considers the impact of sensor output drift caused by DC offset and noise on position estimation, reducing errors caused by low sampling frequency and drift velocity, thus improving the accuracy of inertial navigation positioning results.
[0086] According to another aspect of the present invention, an inertial navigation positioning device is also provided, which includes: an acquisition module, an interpolation module, a calculation module, an estimation module, and a result module. The inertial navigation positioning device will now be described in detail.
[0087] The system includes: an acquisition module for acquiring angular velocity and acceleration measurement data using sensors; an interpolation module for interpolating the angular velocity measurement data to obtain angular velocity data and the acceleration measurement data to obtain acceleration data; a calculation module for calculating a first motion direction parameter based on the angular velocity data and a second motion direction parameter based on the acceleration data; an estimation module for calculating an estimated velocity based on the first and second motion direction parameters; and a result module for acquiring the drift velocity of the sensors, calculating an update velocity using the estimated velocity and the drift velocity, and generating an inertial navigation positioning result using the update velocity.
[0088] It should be noted that the above-mentioned acquisition module, interpolation module, calculation module, estimation module and result module correspond to steps S102 to S110 in the method embodiment. The examples and application scenarios implemented by the above modules and corresponding steps are the same, but are not limited to the content disclosed in the above method embodiment.
[0089] In one optional implementation, before obtaining the drift velocity, the method further includes: determining the motion state of the sensor based on the acceleration measurement data and a preset threshold parameter; determining a target motion state within the motion state, and using the duration of the target motion state as a target time interval; and performing linear interpolation on the estimated velocity according to each target time interval to obtain the drift velocity within each target time interval.
[0090] In one optional implementation, determining the motion state of the sensor based on the acceleration measurement data and a preset threshold parameter includes: if the acceleration measurement data is less than the threshold parameter, then determining the motion state of the sensor as a static state; if the acceleration measurement data is not less than the threshold parameter, then determining the motion state of the sensor as a dynamic state.
[0091] In one optional implementation, determining a target motion state in the motion state and using the duration of the target motion state as a target time interval includes: using the motion state as the target motion state and using the duration of the motion state as the target time interval.
[0092] In one optional implementation, calculating the update speed using the estimated speed and the drift speed includes: determining a start time and an end time based on the target time interval; and obtaining the update speed by subtracting the drift speed at the same time from the estimated speed between the start time and the end time.
[0093] In one optional implementation, calculating the second motion direction parameter based on the acceleration data includes: calculating gradient data based on the acceleration data; determining step size information using the sampling period of the acceleration data; and calculating the second motion direction parameter at the current moment using the gradient data, the step size information, and the second motion direction parameter at the previous moment.
[0094] In one optional implementation, the second motion direction parameter at the current moment is calculated using the gradient data, the step size information, and the second motion direction parameter from the previous moment according to the following formula:
[0095]
[0096]
[0097] in, This represents the second motion direction parameter at the current moment. This represents the second motion direction parameter at the previous moment. The gradient data is represented by Δt, the sampling period of the acceleration data is represented by α, and μ is a constant parameter. t Indicates step size information. This indicates the rate of change of direction measured by the gyroscope.
[0098] An exemplary embodiment of this application also provides an inertial navigation positioning device, including: at least one processor; and a memory communicatively connected to the at least one processor. The memory stores a computer program executable by the at least one processor, the computer program being executed by the at least one processor to cause the electronic device to perform a method according to an embodiment of this application.
[0099] An exemplary embodiment of this application also provides a non-transitory computer-readable storage medium storing a computer program, wherein the computer program, when executed by a computer's processor, is used to cause the computer to perform a method according to an embodiment of this application.
[0100] An exemplary embodiment of this application also provides a computer program product, wherein the computer program product includes a computer program that, when executed by a processor, implements the method of the embodiments of this application.
[0101] refer to Figure 5 The present invention describes a structural block diagram of an electronic device 500 that can serve as a server or client of this application, which is an example of a hardware device that can be applied to various aspects of this application. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the application described and / or claimed herein.
[0102] like Figure 5 As shown, the electronic device 500 includes a computing unit 501, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 502 or a computer program loaded from a storage unit 508 into a random access memory (RAM) 503. The RAM 503 may also store various programs and data required for the operation of the device 500. The computing unit 501, ROM 502, and RAM 503 are interconnected via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.
[0103] Multiple components in electronic device 500 are connected to I / O interface 505, including: input unit 506, output unit 507, storage unit 508, and communication unit 509. Input unit 506 can be any type of device capable of inputting information to electronic device 500. Input unit 506 can receive input digital or character information and generate key signal inputs related to user settings and / or function control of electronic device. Output unit 507 can be any type of device capable of presenting information and may include, but is not limited to, a display, speaker, video / audio output terminal, vibrator, and / or printer. Storage unit 508 may include, but is not limited to, disk and optical disk. Communication unit 509 allows electronic device 500 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks, and may include, but is not limited to, modems, network cards, infrared communication devices, wireless communication transceivers, and / or chipsets, such as Bluetooth devices, WiFi devices, WiMax devices, cellular communication devices, and / or the like.
[0104] The computing unit 501 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 501 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 501 performs the various methods and processes described above. For example, in some embodiments, the above-described inertial navigation positioning method can be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as storage unit 508. In some embodiments, part or all of the computer program can be loaded and / or installed on the electronic device 500 via ROM 502 and / or communication unit 509. In some embodiments, the computing unit 501 can be configured to perform the above-described inertial navigation positioning method by any other suitable means (e.g., by means of firmware).
[0105] The program code used to implement the methods of this application may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing device, such that when executed by the processor or controller, the functions / operations specified in the flowcharts and / or block diagrams are implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0106] In the context of this application, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0107] As used in this application, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, device, and / or apparatus (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.
[0108] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0109] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with embodiments of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.
[0110] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact through communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other.
Claims
1. An inertial navigation positioning method, wherein, include: Angular velocity and acceleration measurement data are acquired using sensors; The angular velocity measurement data is obtained by interpolation, and the acceleration measurement data is obtained by interpolation. Calculate the first motion direction parameter based on the angular velocity data, and calculate the second motion direction parameter based on the acceleration data; The estimated velocity is calculated based on the first motion direction parameter and the second motion direction parameter; The motion state of the sensor is determined based on the acceleration measurement data and the preset threshold parameters; In the motion state, a target motion state is determined, and the duration of the target motion state is taken as the target time interval; Based on each target time interval, the estimated velocity is linearly interpolated to obtain the drift velocity within each target time interval; wherein, the drift velocity is a velocity calculated in advance based on the output drift of the sensor due to DC offset and noise; The drift velocity of the sensor is obtained, the estimated velocity and the drift velocity are used to calculate the update velocity, and the update velocity is used to generate the inertial navigation positioning result.
2. The method as described in claim 1, wherein, Determining the motion state of the sensor based on the acceleration measurement data and preset threshold parameters includes: If the acceleration measurement data is less than the threshold parameter, then the motion state of the sensor is determined to be a static state; If the acceleration measurement data is not less than the threshold parameter, then the motion state of the sensor is determined to be dynamic.
3. The method as described in claim 2, wherein, Determine a target motion state within the motion state, and use the duration of the target motion state as a target time interval, including: The dynamic state is taken as the target motion state, and the duration of the dynamic state is taken as the target time interval.
4. The method of claim 1, wherein, Calculating the update velocity using the estimated velocity and the drift velocity includes: The start and end times are determined based on the target time interval; The updated velocity is obtained by subtracting the drift velocity at the same moment from the estimated velocity from the start time to the end time.
5. The method according to any one of claims 1-4, wherein, The second motion direction parameter is calculated based on the acceleration data, including: Calculate gradient data based on the acceleration data; The step size information is determined using the sampling period of the acceleration data; The second motion direction parameters at the current moment are calculated using the gradient data, the step size information, and the second motion direction parameters from the previous moment.
6. The method of claim 5, wherein, This includes calculating the second motion direction parameter at the current moment using the gradient data, the step size information, and the second motion direction parameter from the previous moment according to the following formula: in, This represents the second motion direction parameter at the current moment. This represents the second motion direction parameter at the previous moment. Represents gradient data, Indicates the sampling period of acceleration data. Represents a constant parameter. Indicates step size information. This indicates the rate of change of direction measured by the gyroscope.
7. An inertial navigation positioning device, wherein, include: processor; as well as Stored program memory, The program includes instructions that, when executed by the processor, cause the processor to perform the method according to any one of claims 1-6.
8. A non-transitory computer-readable storage medium storing computer instructions, wherein, The computer instructions are used to cause the computer to perform the method according to any one of claims 1-6.
9. A computer program product, wherein, The computer program product includes a computer program that, when executed by a processor, implements the method of any one of claims 1-6.
Citation Information
Patent Citations
Posture evaluation method based on dynamic step length gradient descent
CN109682377A
Zero-speed detection method, pedestrian inertial navigation method and device, and storage medium
CN110715659A
User posture measuring and calculating method
CN110864684A
Course-angle measurement device of robot and robot comprising same
CN204329976U