CN112798010A - Initialization method and device for VIO system of visual inertial odometer - Google Patents

Initialization method and device for VIO system of visual inertial odometer Download PDF

Info

Publication number
CN112798010A
CN112798010A CN201911107857.2A CN201911107857A CN112798010A CN 112798010 A CN112798010 A CN 112798010A CN 201911107857 A CN201911107857 A CN 201911107857A CN 112798010 A CN112798010 A CN 112798010A
Authority
CN
China
Prior art keywords
initialization
imu
image data
static
zero
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911107857.2A
Other languages
Chinese (zh)
Other versions
CN112798010B (en
Inventor
范云飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN201911107857.2A priority Critical patent/CN112798010B/en
Publication of CN112798010A publication Critical patent/CN112798010A/en
Application granted granted Critical
Publication of CN112798010B publication Critical patent/CN112798010B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C22/00Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Image Analysis (AREA)
  • Navigation (AREA)

Abstract

The application discloses an initialization method and device of a visual inertial odometer VIO system. The method comprises the following steps: recording IMU information reported by the IMU and image data reported by the camera according to a time sequence; performing zero-speed detection on the system according to the IMU information and the image data; judging whether the system is suitable for static initialization or dynamic initialization according to the result of the zero-speed detection of the system; and according to the result that the system is suitable for static initialization or dynamic initialization, realizing the static initialization or the dynamic initialization of the system based on the IMU information and the image data. The scheme enables the initialization of the VIO system to cover more scenes, and the initialization of the VIO system can be completed no matter the initial state is a dynamic state or a static state, so that the robustness of the initialization link of the system is better.

Description

Initialization method and device for VIO system of visual inertial odometer
Technical Field
The application relates to the technical field of visual positioning navigation, in particular to an initialization method and device of a Visual Inertial Odometer (VIO) system.
Background
Currently, the visual positioning navigation technology is beginning to be applied to unmanned aerial vehicles or automatic driving, robots and other specific technologies. In the visual positioning navigation technology, the visual inertial odometer VIO is an important technology. In use, the visual inertial odometer VIO needs to be initialized. The related initialization method further comprises an initialization scheme based on nonlinear optimization and an initialization scheme based on filtering. The initialization scheme based on the nonlinear optimization requires that the equipment is in a motion state in an initialization link and requires enough motion excitation, and if the system is in a static state, the initialization cannot be completed. In the filtering scheme-based VIO system (frames such as MSCKF, Mono-SLAM, etc.), the equipment needs to be in a static state in the initialization link. When the system is in a static state, the IMU accelerometer output value can be used in the filtering scheme to directly solve the system attitude, at the moment, the speed and the displacement can be set to be zero, and the covariance can be set to be a default value. And if the system is in a motion state, the initialization scheme in the filtering scheme cannot be performed.
For example, the VIOSDK scheme of the high traffic company uses a filtering scheme, if initialization is required when the device is in motion, for example, when the VIO system needs to be initialized again after diverging during the motion, the device must be forced to be in a static state to complete the initialization, otherwise, the system fails.
Disclosure of Invention
In view of the above, the present application has been developed to provide a method and apparatus for initializing a visual inertial odometer, VIO, system that overcomes or at least partially solves the above-mentioned problems.
In accordance with one aspect of the present application, there is provided a method of initializing a visual inertial odometer, VIO, system, the system comprising a single inertial measurement unit, IMU, and a single camera, the method comprising:
recording IMU information reported by the IMU and image data reported by the camera according to a time sequence;
performing zero-speed detection on the system according to the IMU information and the image data;
judging whether the system is suitable for static initialization or dynamic initialization according to the result of the zero-speed detection of the system;
and according to the result that the system is suitable for static initialization or dynamic initialization, realizing the static initialization or the dynamic initialization of the system based on the IMU information and the image data.
Optionally, the performing zero-speed detection on the system according to the IMU information and the image data includes:
and sliding a time sequence sliding window with a first length according to the time sequence by a first sliding step length until the IMU information and the image data in the time sequence sliding window with the first length meet the zero-speed detection condition.
Optionally, the determining that the system is suitable for static initialization or dynamic initialization according to the result of the zero-speed detection on the system includes:
and judging whether the system is in a static state or not according to the IMU information and the image data meeting the zero-speed detection condition, if so, the system is suitable for static initialization, and otherwise, the system is suitable for dynamic initialization.
Optionally, the determining whether the system is in a static state according to the IMU information and the image data meeting the zero-speed detection condition includes any one or more of the following conditions:
counting the variation upper and lower limit amplitude of the x value and/or y value of each characteristic point in the image according to the IMU and the image data, calculating the average amplitude of all the characteristic points according to the variation upper and lower limit amplitude, and if the average amplitude is larger than a preset threshold value, enabling the system to be in a motion state;
calculating a mean value of a three-axis accelerometer and/or a three-axis modular length of the IMU, wherein if the mean value is larger than or smaller than a preset threshold value, the system is in a motion state;
calculating a three-axis accelerometer and/or a three-axis modular length variance of the IMU, wherein if any axis variance is larger than a preset threshold value of the axis variance, the system is in a motion state;
and if the above conditions cannot be met, the system is in a static state.
Optionally, the implementing static initialization of the system includes:
the system performs a zero-speed update, closes the dynamic initialization logic, and begins outputting positioning information.
Optionally, the implementing of the dynamic initialization of the system includes:
if the system is in a motion state during the time sequence sliding window with the first length, sliding the time sequence sliding window with the second length according to the time sequence by a second sliding step length until the IMU information and the image data in the time sequence sliding window with the second length meet the dynamic initialization condition, wherein the second length is larger than the first length, and then calculating the data for the dynamic initialization of the system according to the IMU information and the image data in the time sequence sliding window with the second length.
Optionally, the calculating data for the dynamic initialization of the system according to the IMU information and the image data in the time series sliding window of the second length includes:
modeling multi-frame common-view feature points in the collected multi-frame images, and obtaining rotation and translation among the frames of images by using SFM;
and performing pre-integration on the IMU information in each interval of the time interval according to the image time interval, aligning the rotation and translation of the IMU in each interval with the rotation and translation corresponding to the image, and acquiring state data at each moment through a fitting algorithm for initializing the system.
Optionally, the data for dynamically initializing the system includes any one or more of the following items: three-dimensional displacement, three-dimensional speed, three-dimensional attitude, IMU zero offset, accelerometer zero offset, roll angle, pitch angle, scale factor of the initial reference frame in a world coordinate system, and coordinates of the characteristic points relative to the initial reference frame.
According to another aspect of the present application, there is provided an apparatus for initializing a visual inertial odometer, VIO, system, the system comprising a single inertial measurement unit, IMU, and a single camera, the apparatus comprising:
the recording unit is suitable for recording IMU information reported by the IMU and image data reported by the camera according to a time sequence;
the zero-speed detection unit is suitable for carrying out zero-speed detection on the system according to the IMU information and the image data;
the judging unit is suitable for judging that the system is suitable for static initialization or dynamic initialization according to the result of the zero-speed detection of the system;
and the initialization unit is suitable for realizing the static initialization of the system or realizing the dynamic initialization of the system based on the IMU information and the image data according to the result that the system is suitable for the static initialization or the dynamic initialization.
In accordance with yet another aspect of the present application, there is provided an electronic device including: a processor; and a memory arranged to store computer executable instructions that, when executed, cause the processor to perform a method as any one of the above.
According to a further aspect of the application, there is provided a computer readable storage medium, wherein the computer readable storage medium stores one or more programs which, when executed by a processor, implement a method as in any above.
From the above, the initialization scheme of the visual inertial odometer VIO system disclosed in the present application includes: recording IMU information reported by the IMU and image data reported by the camera according to a time sequence; performing zero-speed detection on the system according to the IMU information and the image data; judging whether the system is suitable for static initialization or dynamic initialization according to the result of the zero-speed detection of the system; and according to the result that the system is suitable for static initialization or dynamic initialization, realizing the static initialization or the dynamic initialization of the system based on the IMU information and the image data. The scheme enables the initialization of the VIO system to cover more scenes, and the initialization of the VIO system can be completed no matter the initial state is a dynamic state or a static state, so that the robustness of the initialization link of the system is better.
The foregoing description is only an overview of the technical solutions of the present application, and the present application can be implemented according to the content of the description in order to make the technical means of the present application more clearly understood, and the following detailed description of the present application is given in order to make the above and other objects, features, and advantages of the present application more clearly understandable.
Drawings
Various other advantages and benefits will become apparent to those of ordinary skill in the art upon reading the following detailed description of the preferred embodiments. The drawings are only for purposes of illustrating the preferred embodiments and are not to be construed as limiting the application. Also, like reference numerals are used to refer to like parts throughout the drawings. In the drawings:
FIG. 1 shows a schematic flow diagram of a method of initializing a visual-inertial odometer VIO system according to one embodiment of the present application;
FIG. 2 shows a schematic structural diagram of an initialization apparatus of a visual-inertial odometer VIO system according to an embodiment of the present application;
FIG. 3 shows a schematic structural diagram of an electronic device according to an embodiment of the present application;
FIG. 4 shows a schematic structural diagram of a computer-readable storage medium according to an embodiment of the present application;
FIG. 5 illustrates a VIO system initialization framework diagram according to one embodiment of the present application;
FIG. 6 shows a time-sequential sliding window schematic according to an embodiment of the present application;
fig. 7 illustrates a timing diagram of a VIO system initialization process according to one embodiment of the present application.
Detailed Description
Exemplary embodiments of the present application will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the present application are shown in the drawings, it should be understood that the present application may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
Some keywords in this application are defined as follows:
VIO: visual inertia odometer.
VISLAM: visual Inertial positioning And Mapping.
SFM: structure From Motion, Motion recovery Structure.
An IMU: inertial Measurement Unit, generally, an IMU contains three single-axis accelerometers and three single-axis gyroscopes.
MSCKF: Multi-State Constraint Kalman Filter.
To some extent, VIO and VISLAM may be considered to be the same thing: the visual inertial odometer is hereinafter referred to as VIO.
FIG. 1 shows a schematic flow diagram of a method of initializing a visual-inertial odometer VIO system according to one embodiment of the present application; the VIO system comprises an Inertial Measurement Unit (IMU) and a camera, and the method comprises the following steps:
and step S110, recording IMU information reported by the IMU and image data reported by the camera according to the time sequence.
The initialization of the system needs to acquire IMU information and image data of initial time, and relevant state information of the system is analyzed according to the time data so as to realize initialization.
And step S120, carrying out zero-speed detection on the system according to the IMU information and the image data.
Referring to fig. 5, in order to implement the initialization scheme of this embodiment, zero-speed detection needs to be introduced before the original framework static initialization module, and it is recognized whether the current system is suitable for dynamic initialization or static initialization.
Step S130, according to the result of the zero-speed detection of the system, judging that the system is suitable for static initialization or dynamic initialization.
In a specific implementation, the IMU information and image data recorded in a time series sliding window of a certain length may be collected in time sequence, so as to determine whether the system is suitable for static initialization or dynamic initialization according to the data or information. For example, a dynamic initialization module in a nonlinear optimization scheme can be introduced on the basis of an original static initialization module of the MSCKF based on a filtering scheme, so that the initialization mode of the system is judged and switched according to the time sequence window sliding mode.
Step S140, implementing static initialization of the system or implementing dynamic initialization of the system based on the IMU information and the image data according to the result of judging that the system is suitable for static initialization or dynamic initialization.
According to the steps, static initialization or dynamic initialization can be adopted according to the self-adaptive identification of the zero-speed detection unit. And finally, realizing the initialization operation of the system according to the judgment or identification result.
In short, the steps disclosed in this embodiment implement switching between dynamic initialization and static initialization by adding zero-speed determination in the system and implementing dynamic initialization and static initialization at the same time, thereby meeting the requirements of different scenes of the system and enhancing the robustness of the system.
In one embodiment, step S120 includes: and sliding a time sequence sliding window with a first length according to the time sequence by a first sliding step length until the IMU information and the image data in the time sequence sliding window with the first length meet the zero-speed detection condition.
In order to be able to implement the adaptive function of initialization, in this embodiment, a timing selection or adjustment is implemented by means of a timing window sliding, as shown in fig. 6.
In a specific implementation, according to the initialization flow timing chart disclosed in fig. 7, the time sequence of the first length may be preset to be t0-t4, that is, zero-speed detection is performed when five frames of images are acquired, and dynamic or static initialization processing is performed according to the result of the zero-speed detection. For example, at time t0, at the initial stage of power-on, or at the beginning of system restart, the static initialization may be performed by the single-frame IMU to complete the static initialization logic, and then the system starts the normal state estimation of the VIO, at which time no positioning information is output, because the initialization is not completed at this time. When the time goes to t4, the system can perform zero speed detection. Of course, if the data or information recorded at t0-t4 does not satisfy the requirements, the window of the above length can be slipped one time series at a time to obtain the appropriate data.
In one embodiment, the step S130 includes: and judging whether the system is in a static state or not according to the IMU information and the image data meeting the zero-speed detection condition, if so, the system is suitable for static initialization, and otherwise, the system is suitable for dynamic initialization.
Namely, the system is judged to be in a static state according to the IMU information and the image in the first time sequence length, static initialization is started, and otherwise, dynamic initialization is started.
In an embodiment, the condition for determining in step S130 includes any one or more of the following:
counting the variation upper and lower limit amplitude of the x value and/or y value of each characteristic point in the image according to the IMU and the image data, calculating the average amplitude of all the characteristic points according to the variation upper and lower limit amplitude, and if the average amplitude is larger than a preset threshold value, enabling the system to be in a motion state;
calculating the mean value of the three-axis accelerometer and/or the three-axis module length of the IMU, and if the mean value is larger than or smaller than a preset threshold value, enabling the system to be in a motion state;
calculating a three-axis accelerometer and/or a three-axis modular length variance of the IMU, and if any axis variance is larger than a preset threshold value of the axis variance, enabling the system to be in a motion state;
and if the above conditions cannot be met, the system is in a static state.
In a specific implementation, a zero-speed detector may be set, and if the calculated value is greater than or less than a preset threshold, the value of the zero-speed detector is added by 1, otherwise, the value of the zero-speed detector is unchanged, and if the final zero-speed detector is not 0, the system is in a motion state, otherwise, the system is in a static state.
In a specific embodiment, the step S140 includes: the system performs a zero-speed update, closes the dynamic initialization logic, and begins outputting positioning information.
In order to obtain an accurate calculation result, if the system is judged to be in a static state, the data recorded in the time sequence window is subjected to zero-speed updating, meanwhile, the dynamic initialization logic is closed, the static initialization is completed, and the positioning information is started to be output.
In a specific embodiment, the step S140 further includes: if the system is in a motion state during the time sequence sliding window with the first length, sliding the time sequence sliding window with the second length according to the time sequence by a second sliding step length until the IMU information and the image data in the time sequence sliding window with the second length meet the dynamic initialization condition, wherein the second length is larger than the first length, and then calculating the data for the dynamic initialization of the system according to the IMU information and the image data in the time sequence sliding window with the second length.
According to fig. 7, if it is determined at time t4 that the system is in a dynamic state, it may be determined that the static initialization procedure performed before cannot work normally, at this time, the static initialization is exited, and when the time reaches t9, the number of the sliding windows for dynamic initialization has met the requirement, at this time, the dynamic initialization logic is executed. And (3) jointly resolving the system state at the time t9 by using the IMU data and the visual information, wherein the resolved initial state can be used for initializing the MSCKF system state, and the covariance is set as a preset default value. At this point dynamic initialization is complete.
According to experiments, the first length may range from 4 to 6 and the second length may range from 8 to 12, the first length preferably being 5 according to fig. 7, typically from t0 to t 4; the second length is preferably 10, and is typically t0-t 9. If the data recorded in the initial window cannot meet the calculation requirement, the sliding can be performed in a manner of moving by one time unit each time, wherein the first step length and the second step length can be the same or different.
In a specific embodiment, the implementing dynamic initialization in step S140 further includes:
modeling multi-frame common-view feature points in the collected multi-frame images, and obtaining rotation and translation among the frames of images by using SFM;
and performing pre-integration on IMU information in each interval of the time interval according to the image time interval, aligning the rotation and translation of the IMU in each interval with the rotation and translation corresponding to the image, and acquiring state data at each moment through a fitting algorithm for initializing the system.
In a specific implementation, in the initialization based on the non-linear optimization scheme, the VIO system must have enough motion excitation to enable the VIO algorithm to be successfully initialized, and the specific steps include:
the image data and IMU information acquisition is realized in a segmented manner, namely, each frame of image is acquired along with multi-frame IMU data, because the frequency of the IMU data is far higher than that of the image, preferably, the acquisition moments are t0-t9 respectively; and then modeling the multi-frame common-view feature points of the acquired images through a pure visual scheme, and obtaining rotation and translation among the images by using the SFM, wherein the translation obtained by the SFM has no scale information because the SFM is data acquired by a monocular camera.
Cutting the IMU data into 9 parts according to the image time interval, pre-integrating the IMU data in the interval, aligning the rotation of the IMU in the 9 parts with the rotation corresponding to the image after pre-integrating, and fitting the zero offset of the gyroscope in the time period by using a least square technology; and finally, aligning the displacement integral of the IMU in 9 parts with the non-scale displacement of the image, and fitting the three-dimensional displacement, the three-dimensional speed (m/s), the roll angle, the pitch angle and the scale factor of the initial reference frame relative to the world coordinate system and the coordinate of the characteristic point relative to the initial reference frame at 10 image acquisition moments. Accordingly, initial state information required to perform dynamic initialization is obtained.
In a specific embodiment, the IMU information and image data within the time-series sliding window of the second length includes any one or more of: three-dimensional displacement, three-dimensional speed, three-dimensional attitude, IMU zero offset, accelerometer zero offset, roll angle, pitch angle, scale factor of the initial reference frame in a world coordinate system, and coordinates of the characteristic points relative to the initial reference frame.
FIG. 2 shows a schematic structural diagram of an initialization apparatus of a visual-inertial odometer VIO system according to an embodiment of the present application; the VIO system includes an inertial measurement unit IMU and a camera, the apparatus 200 including:
the recording unit 210 is adapted to record IMU information reported by the IMU and image data reported by the camera in time series.
The initialization of the system needs to acquire IMU information and image data of initial time, and relevant state information of the system is analyzed according to the time data so as to realize initialization.
A zero-speed detection unit 220 adapted to perform a zero-speed detection on the system according to the IMU information and the image data.
Referring to fig. 5, in order to implement the initialization scheme of this embodiment, zero-speed detection needs to be introduced before the original framework static initialization module, and it is recognized whether the current system is suitable for dynamic initialization or static initialization.
The judging unit 230 is adapted to judge that the system is suitable for static initialization or dynamic initialization according to the result of the zero-speed detection on the system.
In a specific implementation, the IMU information and image data recorded in a time series sliding window of a certain length may be collected in time sequence, so as to determine whether the system is suitable for static initialization or dynamic initialization according to the data or information. For example, a dynamic initialization module in a nonlinear optimization scheme can be introduced on the basis of an original static initialization module of the MSCKF based on a filtering scheme, so that the initialization mode of the system is judged and switched according to the time sequence window sliding mode.
An initialization unit 240 adapted to implement static initialization of the system or implement dynamic initialization of the system based on the IMU information and the image data according to the result of the determination that the system is suitable for static initialization or dynamic initialization.
The unit can adaptively identify whether to adopt static initialization or dynamic initialization according to the zero-speed detection unit. And finally, realizing the initialization operation of the system according to the judgment or identification result.
In short, the device disclosed in this embodiment realizes the switching between the dynamic initialization and the static initialization by adding the zero-speed judgment in the system and simultaneously realizing the dynamic initialization and the static initialization, thereby meeting the requirements of different scenes of the system and enhancing the robustness of the system.
In a particular embodiment, the zero-speed detection unit 220 is adapted to: and sliding a time sequence sliding window with a first length according to the time sequence by a first sliding step length until the IMU information and the image data in the time sequence sliding window with the first length meet the zero-speed detection condition.
In one embodiment, the determination unit is adapted to: and judging whether the system is in a static state or not according to the IMU information and the image data meeting the zero-speed detection condition, if so, the system is suitable for static initialization, and otherwise, the system is suitable for dynamic initialization.
In one embodiment, the conditions for the zero-speed detection unit 220 to determine include any one or more of the following:
counting the variation upper and lower limit amplitude of the x value and/or y value of each characteristic point in the image according to the IMU and the image data, calculating the average amplitude of all the characteristic points according to the variation upper and lower limit amplitude, and if the average amplitude is larger than a preset threshold value, enabling the system to be in a motion state;
calculating the mean value of the three-axis accelerometer and/or the three-axis module length of the IMU, and if the mean value is larger than or smaller than a preset threshold value, enabling the system to be in a motion state;
calculating a three-axis accelerometer and/or a three-axis modular length variance of the IMU, and if any axis variance is larger than a preset threshold value of the axis variance, enabling the system to be in a motion state;
and if the above conditions cannot be met, the system is in a static state.
In a specific embodiment, the initialization unit 240 is adapted to: the system performs a zero-speed update, closes the dynamic initialization logic, and begins outputting positioning information.
In a specific embodiment, the initialization unit 240 is adapted to: if the system is in a motion state during the time sequence sliding window with the first length, sliding the time sequence sliding window with the second length according to the time sequence by a second sliding step length until the IMU information and the image data in the time sequence sliding window with the second length meet the dynamic initialization condition, wherein the second length is larger than the first length, and then calculating the data for the dynamic initialization of the system according to the IMU information and the image data in the time sequence sliding window with the second length.
In a specific embodiment, the initialization unit 240 is further adapted to:
modeling multi-frame common-view feature points in the collected multi-frame images, and obtaining rotation and translation among the frames of images by using SFM;
pre-integrating IMU information in intervals according to image time intervals, aligning rotation and displacement of the IMU in each interval with rotation and displacement corresponding to an image, and acquiring state data at each moment through a fitting algorithm for initializing the system.
In a specific embodiment, the IMU information and image data within the time-series sliding window of the second length includes any one or more of: three-dimensional displacement, three-dimensional speed, three-dimensional attitude, IMU zero offset, accelerometer zero offset, roll angle, pitch angle, scale factor of the initial reference frame in a world coordinate system, and coordinates of the characteristic points relative to the initial reference frame.
In summary, the initialization scheme of the visual inertial odometer VIO system disclosed in the present application specifically includes: recording IMU information reported by the IMU and image data reported by the camera according to a time sequence; performing zero-speed detection on the system according to the IMU information and the image data; judging whether the system is suitable for static initialization or dynamic initialization according to the result of the zero-speed detection of the system; and according to the result that the system is suitable for static initialization or dynamic initialization, realizing the static initialization or the dynamic initialization of the system based on the IMU information and the image data. The scheme enables the initialization of the VIO system to cover more scenes, and the initialization of the VIO system can be completed no matter the initial state is a dynamic state or a static state, so that the robustness of the initialization link of the system is better.
It should be noted that:
the algorithms and displays presented herein are not inherently related to any particular computer, virtual machine, or other apparatus. Various general purpose devices may be used with the teachings herein. The required structure for constructing such a device will be apparent from the description above. In addition, this application is not directed to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the present application as described herein, and any descriptions of specific languages are provided above to disclose the best modes of the present application.
In the description provided herein, numerous specific details are set forth. However, it is understood that embodiments of the application may be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the application, various features of the application are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the application and aiding in the understanding of one or more of the various application aspects. However, the disclosed method should not be interpreted as reflecting an intention that: this application is intended to cover such departures from the present disclosure as come within known or customary practice in the art to which this invention pertains. Rather, as the following claims reflect, application is directed to less than all features of a single foregoing disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of this application.
Those skilled in the art will appreciate that the modules in the device in an embodiment may be adaptively changed and disposed in one or more devices different from the embodiment. The modules or units or components of the embodiments may be combined into one module or unit or component, and furthermore they may be divided into a plurality of sub-modules or sub-units or sub-components. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and all of the processes or elements of any method or apparatus so disclosed, may be combined in any combination, except combinations where at least some of such features and/or processes or elements are mutually exclusive. Each feature disclosed in this specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise.
Furthermore, those skilled in the art will appreciate that while some embodiments described herein include some features included in other embodiments, rather than other features, combinations of features of different embodiments are meant to be within the scope of the application and form different embodiments. For example, in the following claims, any of the claimed embodiments may be used in any combination.
The various component embodiments of the present application may be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. Those skilled in the art will appreciate that a microprocessor or Digital Signal Processor (DSP) may be used in practice to implement some or all of the functions of some or all of the components of the initialization apparatus of the visual inertial odometer VIO system according to embodiments of the present application. The present application may also be embodied as apparatus or device programs (e.g., computer programs and computer program products) for performing a portion or all of the methods described herein. Such programs implementing the present application may be stored on a computer readable medium or may be in the form of one or more signals. Such a signal may be downloaded from an internet website or provided on a carrier signal or in any other form.
For example, fig. 3 shows a schematic structural diagram of an electronic device according to an embodiment of the present application. The electronic device 300 comprises a processor 310 and a memory 320 arranged to store computer executable instructions (computer readable program code). The memory 320 may be an electronic memory such as a flash memory, an EEPROM (electrically erasable programmable read only memory), an EPROM, a hard disk, or a ROM. The memory 320 has a storage space 330 storing computer readable program code 331 for performing any of the method steps described above. For example, the storage space 330 for storing the computer readable program code may comprise respective computer readable program codes 331 for respectively implementing various steps in the above method. The computer readable program code 331 may be read from or written to one or more computer program products. These computer program products comprise a program code carrier such as a hard disk, a Compact Disc (CD), a memory card or a floppy disk. Such a computer program product is typically a computer readable storage medium such as described in fig. 4. FIG. 4 shows a schematic structural diagram of a computer-readable storage medium according to an embodiment of the present application. The computer readable storage medium 400 has stored thereon a computer readable program code 331 for performing the steps of the method according to the application, readable by a processor 310 of an electronic device 300, which computer readable program code 331, when executed by the electronic device 300, causes the electronic device 300 to perform the steps of the method described above, in particular the computer readable program code 331 stored on the computer readable storage medium may perform the method shown in any of the embodiments described above. The computer readable program code 331 may be compressed in a suitable form.
It should be noted that the above-mentioned embodiments illustrate rather than limit the application, and that those skilled in the art will be able to design alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" does not exclude the presence of elements or steps not listed in a claim. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The application may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In the unit claims enumerating several means, several of these means may be embodied by one and the same item of hardware. The usage of the words first, second and third, etcetera do not indicate any ordering. These words may be interpreted as names.

Claims (11)

1. A method of initializing a visual inertial odometer, VIO, system, the system including a single inertial measurement unit, IMU, and a single camera, the method comprising:
recording IMU information reported by the IMU and image data reported by the camera according to a time sequence;
performing zero-speed detection on the system according to the IMU information and the image data;
judging whether the system is suitable for static initialization or dynamic initialization according to the result of the zero-speed detection of the system;
and according to the result that the system is suitable for static initialization or dynamic initialization, realizing the static initialization or the dynamic initialization of the system based on the IMU information and the image data.
2. The method of claim 1, wherein the stall detecting the system from the IMU information and the image data comprises:
and sliding a time sequence sliding window with a first length according to the time sequence by a first sliding step length until the IMU information and the image data in the time sequence sliding window with the first length meet the zero-speed detection condition.
3. The method of claim 2, wherein said determining that the system is suitable for static initialization or dynamic initialization based on the result of the stall detection on the system comprises:
and judging whether the system is in a static state or not according to the IMU information and the image data meeting the zero-speed detection condition, if so, the system is suitable for static initialization, and otherwise, the system is suitable for dynamic initialization.
4. The method as claimed in claim 3, wherein said determining whether the system is in a still state according to the IMU information and the image data satisfying a zero-velocity detection condition comprises any one or more of the following conditions:
counting the variation upper and lower limit amplitude of the x value and/or y value of each characteristic point in the image according to the IMU and the image data, calculating the average amplitude of all the characteristic points according to the variation upper and lower limit amplitude, and if the average amplitude is larger than a preset threshold value, enabling the system to be in a motion state;
calculating a mean value of a three-axis accelerometer and/or a three-axis modular length of the IMU, wherein if the mean value is larger than or smaller than a preset threshold value, the system is in a motion state;
calculating a three-axis accelerometer and/or a three-axis modular length variance of the IMU, wherein if any axis variance is larger than a preset threshold value of the axis variance, the system is in a motion state;
and if the above conditions cannot be met, the system is in a static state.
5. The method of claim 1, wherein the implementing the static initialization of the system comprises:
the system performs a zero-speed update, closes the dynamic initialization logic, and begins outputting positioning information.
6. The method of claim 3, wherein the implementing the dynamic initialization of the system comprises:
if the system is in a motion state during the time sequence sliding window with the first length, sliding the time sequence sliding window with the second length according to the time sequence by a second sliding step length until the IMU information and the image data in the time sequence sliding window with the second length meet the dynamic initialization condition, wherein the second length is larger than the first length, and then calculating the data for the dynamic initialization of the system according to the IMU information and the image data in the time sequence sliding window with the second length.
7. The method of claim 6, wherein the resolving data for dynamic initialization of the system from the IMU information and the image data within the time-series sliding window of the second length comprises:
modeling multi-frame common-view feature points in the collected multi-frame images, and obtaining rotation and translation among the frames of images by using SFM;
and performing pre-integration on the IMU information in each interval of the time interval according to the image time interval, aligning the rotation and translation of the IMU in each interval with the rotation and translation corresponding to the image, and acquiring state data at each moment through a fitting algorithm for initializing the system.
8. A method according to claim 6 or 7, wherein the data for dynamic initialization of the system comprises any one or more of:
three-dimensional displacement, three-dimensional speed, three-dimensional attitude, IMU zero offset, accelerometer zero offset, roll angle, pitch angle, scale factor of the initial reference frame in a world coordinate system, and coordinates of the characteristic points relative to the initial reference frame.
9. An apparatus for initializing a visual inertial odometer, VIO, system, the system comprising a single inertial measurement unit, IMU, and a single camera, the apparatus comprising:
the recording unit is suitable for recording IMU information reported by the IMU and image data reported by the camera according to a time sequence;
the zero-speed detection unit is suitable for carrying out zero-speed detection on the system according to the IMU information and the image data;
the judging unit is suitable for judging that the system is suitable for static initialization or dynamic initialization according to the result of the zero-speed detection of the system;
and the initialization unit is suitable for realizing the static initialization of the system or realizing the dynamic initialization of the system based on the IMU information and the image data according to the result that the system is suitable for the static initialization or the dynamic initialization.
10. An electronic device, wherein the electronic device comprises: a processor; and a memory arranged to store computer-executable instructions that, when executed, cause the processor to perform the method of any one of claims 1-8.
11. A computer readable storage medium, wherein the computer readable storage medium stores one or more programs which, when executed by a processor, implement the method of any of claims 1-8.
CN201911107857.2A 2019-11-13 2019-11-13 Initializing method and device of VIO system of visual inertial odometer Active CN112798010B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911107857.2A CN112798010B (en) 2019-11-13 2019-11-13 Initializing method and device of VIO system of visual inertial odometer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911107857.2A CN112798010B (en) 2019-11-13 2019-11-13 Initializing method and device of VIO system of visual inertial odometer

Publications (2)

Publication Number Publication Date
CN112798010A true CN112798010A (en) 2021-05-14
CN112798010B CN112798010B (en) 2023-05-09

Family

ID=75803330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911107857.2A Active CN112798010B (en) 2019-11-13 2019-11-13 Initializing method and device of VIO system of visual inertial odometer

Country Status (1)

Country Link
CN (1) CN112798010B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113670327A (en) * 2021-08-11 2021-11-19 影石创新科技股份有限公司 Visual inertial odometer initialization method, device, equipment and storage medium
CN114964230A (en) * 2022-05-12 2022-08-30 北京自动化控制设备研究所 Vehicle-mounted integrated navigation gyro drift correction method
WO2023087681A1 (en) * 2021-11-16 2023-05-25 上海商汤智能科技有限公司 Positioning initialization method and apparatus, and computer-readable storage medium and computer program product
CN116429094A (en) * 2023-06-15 2023-07-14 小米汽车科技有限公司 Positioning method, positioning device, electronic equipment and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102865881A (en) * 2012-03-06 2013-01-09 武汉大学 Quick calibration method for inertial measurement unit
CN103616030A (en) * 2013-11-15 2014-03-05 哈尔滨工程大学 Autonomous navigation system positioning method based on strapdown inertial navigation resolving and zero-speed correction
US20150204674A1 (en) * 2012-09-27 2015-07-23 Rafael Advanced Defense Systems Ltd. Inertial Navigation System and Method
CN104977001A (en) * 2014-04-02 2015-10-14 北京自动化控制设备研究所 Relative navigation method applied to individual indoor navigation system
CN106153069A (en) * 2015-03-31 2016-11-23 日本电气株式会社 Attitude rectification apparatus and method in autonomous navigation system
US20180274940A1 (en) * 2015-10-13 2018-09-27 Shanghai Huace Navigation Technology Ltd A method for initial alignment of an inertial navigation apparatus
CN109238277A (en) * 2018-08-01 2019-01-18 清华大学 The localization method and device of vision inertial data depth integration
CN110057381A (en) * 2019-03-20 2019-07-26 深圳市元征科技股份有限公司 A kind of zero velocity update method and system of navigation system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102865881A (en) * 2012-03-06 2013-01-09 武汉大学 Quick calibration method for inertial measurement unit
US20140372063A1 (en) * 2012-03-06 2014-12-18 Wuhan University Quick calibration method for inertial measurement unit
US20150204674A1 (en) * 2012-09-27 2015-07-23 Rafael Advanced Defense Systems Ltd. Inertial Navigation System and Method
CN103616030A (en) * 2013-11-15 2014-03-05 哈尔滨工程大学 Autonomous navigation system positioning method based on strapdown inertial navigation resolving and zero-speed correction
CN104977001A (en) * 2014-04-02 2015-10-14 北京自动化控制设备研究所 Relative navigation method applied to individual indoor navigation system
CN106153069A (en) * 2015-03-31 2016-11-23 日本电气株式会社 Attitude rectification apparatus and method in autonomous navigation system
US20180274940A1 (en) * 2015-10-13 2018-09-27 Shanghai Huace Navigation Technology Ltd A method for initial alignment of an inertial navigation apparatus
CN109238277A (en) * 2018-08-01 2019-01-18 清华大学 The localization method and device of vision inertial data depth integration
CN110057381A (en) * 2019-03-20 2019-07-26 深圳市元征科技股份有限公司 A kind of zero velocity update method and system of navigation system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贾亮等: "基于MEMS惯性传感器零速检测算法的研究", 《电脑与信息技术》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113670327A (en) * 2021-08-11 2021-11-19 影石创新科技股份有限公司 Visual inertial odometer initialization method, device, equipment and storage medium
WO2023087681A1 (en) * 2021-11-16 2023-05-25 上海商汤智能科技有限公司 Positioning initialization method and apparatus, and computer-readable storage medium and computer program product
CN114964230A (en) * 2022-05-12 2022-08-30 北京自动化控制设备研究所 Vehicle-mounted integrated navigation gyro drift correction method
CN114964230B (en) * 2022-05-12 2023-11-03 北京自动化控制设备研究所 Vehicle-mounted integrated navigation gyro drift correction method
CN116429094A (en) * 2023-06-15 2023-07-14 小米汽车科技有限公司 Positioning method, positioning device, electronic equipment and storage medium
CN116429094B (en) * 2023-06-15 2023-09-26 小米汽车科技有限公司 Positioning method, positioning device, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN112798010B (en) 2023-05-09

Similar Documents

Publication Publication Date Title
CN112798010B (en) Initializing method and device of VIO system of visual inertial odometer
CN110246147B (en) Visual inertial odometer method, visual inertial odometer device and mobile equipment
CN109084732B (en) Positioning and navigation method, device and processing equipment
CN113554698B (en) Vehicle pose information generation method and device, electronic equipment and storage medium
CN109443348B (en) Underground garage position tracking method based on fusion of look-around vision and inertial navigation
CN112734852A (en) Robot mapping method and device and computing equipment
CN111210477A (en) Method and system for positioning moving target
US20220051031A1 (en) Moving object tracking method and apparatus
CN111145251B (en) Robot and synchronous positioning and mapping method thereof and computer storage device
CN105989581A (en) Image stabilizing apparatus and method
EP2851868A1 (en) 3D Reconstruction
CN112729294B (en) Pose estimation method and system suitable for vision and inertia fusion of robot
US20180033162A1 (en) Method and device for camera pose estimation
CN109669533A (en) A kind of motion capture method, the apparatus and system of view-based access control model and inertia
CN112118537B (en) Method and related device for estimating movement track by using picture
KR20200037502A (en) Method and apparatus of outputting pose information
CN113112524A (en) Method and device for predicting track of moving object in automatic driving and computing equipment
CN109035308A (en) Image compensation method and device, electronic equipment and computer readable storage medium
CN112435278B (en) Visual SLAM method and device based on dynamic target detection
CN112967393A (en) Method and device for correcting vehicle movement track, electronic equipment and storage medium
CN109816588B (en) Method, device and equipment for recording driving trajectory
CN115560744A (en) Robot, multi-sensor-based three-dimensional mapping method and storage medium
CN108322698A (en) The system and method merged based on multiple-camera and Inertial Measurement Unit
CN111199179B (en) Target object tracking method, terminal equipment and medium
CN113532455B (en) Visual fusion positioning method and device, electronic equipment and readable storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant