A fixed-point acceleration method for SLAM backend

By adopting fixed-point number representation and accelerated calculation methods in the SLAM backend, the problem of high computational complexity is solved, and the efficient deployment and real-time performance improvement of the SLAM system in resource-constrained environments are achieved.

CN119289988BActive Publication Date: 2025-10-03ZHEJIANG UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411359046.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-27
Publication Date
2025-10-03
Estimated Expiration
2044-09-27

AI Technical Summary

Technical Problem

The computational complexity of the SLAM backend is high, making it difficult to deploy in environments with limited computing resources and storage space, limiting its application in embedded devices and mobile platforms.

Method used

Fixed-point numbers are used instead of floating-point numbers for calculations. By building simulation scenes on the ROS platform, fixed-point number representation and accelerated calculation methods are used to optimize the nonlinear algorithm of the SLAM backend and reduce storage space and computing resource requirements.

Benefits of technology

It achieves significant acceleration of the SLAM backend, improves real-time performance and response speed, reduces power consumption and hardware costs, adapts to different types of SLAM algorithms and sensor data, and has good scalability and compatibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119289988B_ABST
    Figure CN119289988B_ABST
Patent Text Reader

Abstract

The present invention relates to the field of SLAM technology, and specifically discloses a fixed-point acceleration method for SLAM backends, which aims to improve the real-time performance and accuracy of SLAM backend processing by optimizing the calculation process. The present invention uses fixed-point operations to replace traditional floating-point operations, reduces the data bit width and the complexity of the operation, reduces the consumption of computing resources, and maintains sufficient computing accuracy. The present invention designs a complete set of fixed-point representation and operation rules, including a fixed-point encoding method, operation accuracy control, and an overflow processing mechanism, to ensure that various algorithms of the SLAM backend can be accurately executed in a fixed-point environment. By adopting efficient fixed-point algorithms and parallel computing technology, the execution efficiency of these algorithms is improved, thereby accelerating the entire SLAM backend processing process. Compared with traditional floating-point methods, it can significantly reduce the consumption of computing resources and improve real-time performance while ensuring calculation accuracy.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of SLAM technology, and in particular to a SLAM back-end fixed-point number acceleration method. Background Art

[0002] Modern SLAM systems are widely used in fields such as autonomous driving, robotic navigation, and augmented reality. This technology plays a key role in these areas, placing extremely high demands on the real-time performance and computational efficiency of SLAM systems. SLAM systems typically consist of two components: a front-end and a back-end. The front-end is responsible for processing sensor data and extracting features, while the back-end is responsible for map optimization and localization estimation. In SLAM systems, the back-end optimization algorithms require significant computing resources to achieve accurate map and localization optimization, often involving large-scale matrix operations and nonlinear optimization.

[0003] In the SLAM backend, the system's motion state is typically determined by minimizing a cost function. Commonly used nonlinear algorithms include the Gauss-Newton method and the Levenberg-Marquardt method. However, the high computational complexity and data complexity of nonlinear algorithms limit their use on mobile embedded devices. Traditionally, these calculations are typically represented and computed using floating-point numbers, which require significant computational resources and storage space. In embedded devices or resource-constrained environments, this can become a bottleneck, limiting the practical application and performance of SLAM systems.

[0004] In view of this, the present invention proposes a fixed-point number acceleration method for the SLAM backend to compensate for and improve the shortcomings of the existing technology. Summary of the Invention

[0005] In view of the shortcomings of the existing SLAM backend with large computational complexity and difficulty in use in environments with limited computing resources and storage space resources, the present invention provides a fixed-point number acceleration method for the SLAM backend. A simulation scene is built based on the ROS platform. A set of backend algorithms optimized for nonlinear algorithms is implemented in the simulation, and fixed-point numbers are used instead of floating-point numbers to reduce the required storage space and speed up the calculation speed, thereby solving the problems of the existing SLAM backend with high computational complexity and difficulty in deployment on embedded and mobile platforms.

[0006] In order to achieve the above object, the present invention provides a fixed-point number acceleration method for a SLAM back-end, comprising the following steps:

[0007] S1. According to simulation requirements, import the simulation data set into the ROS platform and start the ROS core node;

[0008] S2. Configure the data set parameter file, SLAM algorithm configuration file, and modify the fixed-point quantization configuration parameters;

[0009] S3. Start the SLAM algorithm node, including the dataset sensor data reading module, the front-end camera visual matching module, and the back-end nonlinear optimization module, and open RViz (ROS Visualization Tool) for data visualization and command interaction;

[0010] S4: The front-end node receives sensor data, matches the camera image to obtain feature point data, pre-integrates the gyroscope data to obtain the pose transformation between the two frames, and sends the data to the back-end node. The back-end node is responsible for nonlinear optimization, which will optimize the pose of the relevant frames and the sensor deviation of the gyroscope;

[0011] S5. During the back-end linearization and nonlinearization process, if the fixed-point quantization module is used, the total bit width and integer bit width of the fixed-point number are fixed according to the maximum integer value and the minimum decimal value of the floating-point number, and the floating-point number is quantized to the fixed-point number range. If the fixed-point quantization module is not used, the ceres library is used in conjunction with the floating-point number for back-end optimization;

[0012] S6. Determine whether the current fixed-point quantization bit width is reasonable based on the range of floating-point data variation, and judge the accuracy degradation based on the true value of the comparison data set. Continuously change the fixed-point quantization bit width to eventually obtain a reasonable bit width, and cyclically execute the nonlinear optimization process until the optimization residual converges or the maximum number of optimization times is reached.

[0013] S7, perform SLAM Schur complement, moving sliding window and other post-processing.

[0014] Preferably, in the root node initialization of the high-level conflict detection algorithm in step S1, an empty node without time and space constraints and without a solution is first generated as the initialization of the root node.

[0015] Preferably, step S1 specifically includes the following steps:

[0016] S101. Prepare the EUROC dataset and import it according to the SLAM algorithm.

[0017] S102. Start the CORE core node in ROS.

[0018] Preferably, the step S2 specifically includes the following steps:

[0019] S201. Modify the dataset sensor configuration file defined in the YAML file. The configurable sensor types include monocular RGB camera, binocular RGB camera, IMU inertial measurement unit, and GNSS satellite navigation system.

[0020] S202. Modify the SLAM algorithm configuration file, including whether to use a binocular camera, optimize the usage plan, and configure the number of multi-threads.

[0021] Preferably, step S3 specifically includes the following steps:

[0022] S301, start the SLAM algorithm node, subscribe to the pose information and sensor data topics published by the dataset reading node, and forward them into a message format suitable for each module input;

[0023] S302, the visualization tool RViz displays target point information, posture change trajectory, sensor data, and feature point positions.

[0024] Preferably, step S4 specifically includes the following steps:

[0025] S401, the front-end node receives camera data and IMU inertial measurement unit data, extracts feature points using a multi-layer pyramid optical flow algorithm, and uses a pre-integration algorithm on the IMU data to obtain the pose change between two adjacent frames;

[0026] S402: The back-end node receives the feature points calculated by the front-end node, minimizes the cost function through nonlinear optimization, and iteratively calculates the optimized pose.

[0027] Preferably, step S5 specifically includes the following steps:

[0028] S501. Selecting different nonlinear optimization frameworks based on whether the fixed-point quantization module is used; the SLAM backend fixed-point acceleration framework expresses the optimization problem in the form of a graph and solves it using graph theory and nonlinear optimization theory. In the optimization framework, optimization variables are represented as graph vertices, while condition information or constraint relationships are represented as graph edges.

[0029] S502: If the fixed-point quantization module is not used, the nonlinear optimization framework will use the ceres backend optimization library and use floating-point numbers for calculation;

[0030] S503. If the fixed-point quantization module is used, the nonlinear optimization framework will use a nonlinear optimization library suitable for embedded devices, select the Levenberg-Marquardt method as the nonlinear algorithm, select a quantization scheme based on the data storage type and the maximum and minimum values ​​in the actual calculation process, and determine the total bit width and integer bit width after quantization.

[0031] Preferably, step S6 specifically includes the following steps:

[0032] S601: In nonlinear optimization, the pose parameter value of each frame after optimization is compared with the true value, and the difference between the two is calculated to determine the accuracy;

[0033] S602: If the accuracy meets the requirement, further reduce the fixed-point quantization bit width; if the accuracy does not meet the requirement or data overflow occurs, use the fixed-point bit width with a wider range in the previous step.

[0034] Preferably, step S7 specifically includes the following steps:

[0035] S701, after nonlinear optimization, marginalize the removed frames using SLAM Schur complement, and retain the constraints contained in the removed frames;

[0036] S702: traverse the image frames in the sliding window, calculate the reprojection error between the feature point and other points, and remove those that exceed a certain range.

[0037] Compared with the prior art, the present invention has the following beneficial effects:

[0038] 1. This paper proposes a fixed-point acceleration method for the SLAM backend, which significantly accelerates the backend optimization process and improves the real-time performance and response speed of the SLAM system. This is crucial for robotics and autonomous driving systems that require rapid decision-making and response.

[0039] 2. Compared with traditional floating-point arithmetic, fixed-point arithmetic in this invention has higher efficiency and lower power consumption. By adopting fixed-point arithmetic, computational complexity and resource consumption are reduced while maintaining sufficient accuracy, thus achieving efficient acceleration of SLAM back-end optimization.

[0040] 3. By defining input and output interfaces, this paper designs a sufficiently flexible and universal framework that is compatible with different types of SLAM algorithms and sensor data. In addition, this framework has good scalability and can easily integrate new optimization algorithms and hardware acceleration technologies to meet the ever-evolving needs of SLAM technology.

[0041] 4. By adopting a fixed-point acceleration framework, the present invention reduces the need for high-performance floating-point units, thereby reducing hardware costs. This is an important advantage for the application of large-scale deployment of SLAM systems. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] Figure 1 This is a flow chart of a fixed-point acceleration method for SLAM backend provided by the present invention;

[0043] Figure 2 is an algorithm flow chart of the LM Levenberg-Marquardt method provided in the present invention;

[0044] Figure 3 It is a visualization interface diagram of the optimized posture in the ROS simulation provided by the present invention;

[0045] Figure 4 This is a visualization interface diagram comparing the pose after optimization based on the sensor input fixed-point acceleration framework and the real value in the simulation provided by the present invention;

[0046] Figure 5 This is a diagram of the actual difference result changes and accuracy after the optimization of the SLAM backend fixed-point acceleration framework using the evo tool provided in the present invention. DETAILED DESCRIPTION

[0047] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making any creative efforts shall fall within the scope of protection of the present invention.

[0048] In response to the problems existing in the prior art, the present invention considers using fixed-point numbers to replace floating-point numbers. Fixed-point numbers are a numerical format represented by a fixed number of bits. Compared with floating-point numbers, they can reduce the demand for computing and storage resources to a certain extent. By using fixed-point numbers, the space required for data storage can be reduced, the power consumption during calculation can be reduced, and the computing speed can be increased to a certain extent. Therefore, fixed-point number representation has great potential in embedded systems, mobile devices and other resource-constrained environments. Introducing fixed-point numbers into the back-end optimization algorithm of the SLAM system is not an easy task. This involves redesigning and optimizing the algorithm to adapt to the changes in accuracy and computational complexity brought about by fixed-point number representation. In addition, challenges such as data range, overflow processing and computational accuracy under fixed-point number representation need to be considered. Therefore, developing a fixed-point number acceleration framework for the SLAM back-end requires not only in-depth research on the theory and practice of fixed-point number representation, but also sufficient verification and optimization under the specific application scenarios of the SLAM system.

[0049] Therefore, there is an urgent need for more efficient computational methods for back-end optimization of SLAM systems. By incorporating fixed-point representation and related accelerated computation methods into the back-end optimization algorithms of SLAM systems, it is hoped that more efficient utilization of computing resources can be achieved, thereby improving the real-time performance and applicability of SLAM systems. This will not only promote the application of SLAM technology in fields such as autonomous driving, robotic navigation, and augmented reality, but also potentially improve the performance of SLAM systems on embedded devices and mobile platforms, providing strong support for the development of intelligent technologies.

[0050] The present invention proposes a fixed-point acceleration method for SLAM backend, such as Figure 1 As shown, the following steps are included:

[0051] S1. According to simulation requirements, import the simulation data set into the ROS platform and start the ROS core node;

[0052] S2. Configure the data set parameter file, SLAM algorithm configuration file, and modify the fixed-point quantization configuration parameters;

[0053] S3. Start the SLAM algorithm node, including the dataset sensor data reading module, the front-end camera visual matching module, and the back-end nonlinear optimization module, and open RViz (ROS Visualization Tool) for data visualization and command interaction;

[0054] S4: The front-end node receives sensor data, matches the camera image to obtain feature point data, pre-integrates the gyroscope data to obtain the pose transformation between the two frames, and sends the data to the back-end node. The back-end node is responsible for nonlinear optimization, which will optimize the pose of the relevant frames and the sensor deviation of the gyroscope;

[0055] S5. During the back-end linearization and nonlinearization process, two different schemes are implemented depending on whether the fixed-point quantization module is used. If the fixed-point quantization module is used, the total bit width and integer bit width of the fixed-point number are fixed according to the maximum integer value and the minimum decimal value of the floating-point number, and the floating-point number is quantized into the fixed-point number range to reduce data storage space and speed up the calculation speed. If the fixed-point quantization module is not used, the ceres library is used in conjunction with the floating-point number for back-end optimization;

[0056] S6. Determine whether the current fixed-point quantization bit width is reasonable based on the range of floating-point data variation, and judge the accuracy degradation based on the true value of the comparison data set. Continuously change the fixed-point quantization bit width to eventually obtain a reasonable bit width, and cyclically execute the nonlinear optimization process until the optimization residual converges or the maximum number of optimization times is reached.

[0057] S7. After completing the nonlinear optimization, the feature points and the estimated poses of the sliding window are post-processed, and the constraints contained in the removed frames are retained using Schur complement. The sliding window is moved and the observation frame set and observation frame index of the feature points are updated, and the feature points without observation frames are removed.

[0058] In the entire simulation case, when the data packet is played and there is no new data, the simulation will stop.

[0059] Furthermore, the SLAM back-end fixed-point acceleration method proposed in the present invention has step S1 as follows:

[0060] Step S101, prepare the EUROC dataset and import the dataset according to the SLAM algorithm;

[0061] The EUROC dataset is a valuable resource for research and evaluation of inertial navigation and visual positioning algorithms. It provides a rich collection of indoor scene and motion pattern data, primarily consisting of image data, IMU (Inertial Measurement Unit) data, and camera calibration data. The EUROC dataset can be directly subscribed to and published to nodes in the ROS simulation environment using the rosbag command.

[0062] Step S102: Start the CORE core node in ROS.

[0063] Furthermore, the SLAM back-end fixed-point acceleration method proposed in the present invention has step S2 as follows:

[0064] Step S201: Modify the dataset sensor configuration file defined in the YAML file. The configurable sensor types include monocular RGB camera, binocular RGB camera, IMU inertial measurement unit, and GNSS satellite navigation system.

[0065] Step S202, modify the SLAM algorithm configuration file, including whether to use a binocular camera, optimize the usage plan, and configure the number of multi-threads.

[0066] The core SLAM algorithm used is the VINS-Fusion algorithm, which supports a variety of visual inertial sensor types, including monocular camera + IMU, stereo camera + IMU, and even stereo camera only. In the case configuration file, choose to use stereo camera data + IMU inertial measurement unit data.

[0067] Furthermore, the SLAM back-end fixed-point acceleration method proposed in the present invention has step S3 as follows:

[0068] Step S301: Start the SLAM algorithm node, subscribe to the pose information and sensor data topics published by the dataset reading node, and forward them into a message format suitable for input to each module;

[0069] Step S302: The visualization tool RViz displays target point information, posture change trajectory, sensor data, and feature point positions.

[0070] Furthermore, the SLAM back-end fixed-point acceleration method proposed in the present invention has step S4 as follows:

[0071] Step S401: The front-end node receives camera data and IMU inertial measurement unit data, extracts feature points using a multi-layer pyramid optical flow algorithm, and uses a pre-integration algorithm on the IMU data to obtain the pose change between two adjacent frames.

[0072] Step S402: The back-end node receives the feature points calculated by the front-end node, minimizes the cost function through nonlinear optimization, and iteratively calculates the optimized pose;

[0073] Furthermore, the SLAM back-end fixed-point acceleration method proposed in the present invention, step S5 is specifically as follows:

[0074] Step S501, selecting different nonlinear optimization frameworks according to whether the fixed-point quantization module is enabled;

[0075] The SLAM backend fixed-point acceleration framework expresses the optimization problem as a graph and solves it using graph theory and nonlinear optimization. In the optimization framework, optimization variables are represented as graph vertices, while conditional information or constraints are represented as graph edges.

[0076] In step S502, if the fixed-point quantization module is enabled, the nonlinear optimization framework will use a nonlinear optimization library suitable for embedded devices, select the Levenberg-Marquardt method as the nonlinear algorithm, select a quantization scheme based on the data storage type and the maximum and minimum values ​​in the actual calculation process, and determine the total bit width and integer bit width after quantization.

[0077] In step S503, if the fixed-point quantization module is not enabled, the nonlinear optimization framework will use the ceres backend optimization library and use floating-point numbers for calculation.

[0078] The Ceres library provides a flexible interface and rich functionality, allowing users to easily define and solve their own optimization problems. Using the Ceres library to solve nonlinear optimization problems typically requires first constructing a cost function (the objective form to be optimized), and then using the cost function to construct the optimization problem to be solved.

[0079] The nonlinear optimization code is shown below:

[0080]

[0081]

[0082]

[0083] The specific steps are to first call SetOrdering to count the number of variables and use SetOrderingId to label them. The variable dimension here is LocalDimension, that is, the number of variables to be optimized. If it is a normal problem, all variables are directly counted and accumulated to ordering_generic_. The labels are directly grouped and labeled. If it is a SLAM problem, the number of landmark point variables, the number of pose variables, the number of IMU variables, and the number of Td variables are counted separately, and the rest are included in the number of other variables. The labeling should be similar to that of ordinary problems. Note that the landmark points need to be placed at the end; then call MakeHessian to construct the H matrix, calculate their residuals for each edge, calculate their Jacobian to construct J; then initialize the LM parameters and start the iterative optimization until the residual drops to a certain level.

[0084] The framework can choose Gauss-Newton method or LM Levenberg-Marquardt method to solve Hx=b in the core solution. The LM Levenberg-Marquardt method is used uniformly in this invention. The algorithm flow is as follows: Figure 2 shown.

[0085] Preferably, the function of determining the total data quantization bit width and integer bit width in step S502 is to dynamically adjust the quantization bit width in real time according to changes in input data and calculation data to ensure that data storage space can be saved and data will not overflow during the calculation process.

[0086] Furthermore, the SLAM back-end fixed-point acceleration method proposed in the present invention, step S6 is specifically as follows:

[0087] Step S601: After nonlinear optimization, the pose parameter values ​​of each frame after optimization are compared with the true values, and the difference between the two is calculated to determine the accuracy;

[0088] Step S602: After calculating the accuracy, if the accuracy meets the requirements, the fixed-point quantization bit width will be further reduced to ensure more efficient calculation efficiency and occupy less data storage space. If the accuracy does not meet the requirements or data overflow occurs, the fixed-point bit width with a wider range in the previous step will be used.

[0089] Fixed-point formats have a limited range of representable values ​​but require simpler processing hardware.

[0090] Use bw to represent the total bit width of the data, and fl to represent the bit width occupied by the floating-point number. From this, the maximum and minimum values ​​represented by the fixed-point number can be calculated respectively.

[0091] max_data=(2 bw-1 -1)*2 -fl

[0092] min_data=-2 bw-1 *2 -fl

[0093] Different fixed-point quantization bit widths can be selected for different types of quantization targets. For example, for a rotation matrix, we can know that any element in the rotation matrix is ​​in [-1,1] based on the physical meaning of the rotation matrix. Therefore, the integer bit width can be selected as 1, and the floating-point bit width can be determined based on the precision trade-off.

[0094] After determining the fixed-point quantization bit width, the decimals of the fixed-point number are incremented by a certain size when storing data. It is necessary to truncate the data. The C++ code for truncation is as follows:

[0095]

[0096]

[0097] The key CutOff truncation function first limits the input parameter to the minimum and maximum values ​​of the fixed-point number, and then rounds the parameter and truncates it.

[0098] In the present invention, the Euroc dataset is used, and in the nonlinear optimization process of step S5-step 6, key parameters are selected for fixed-point quantization, which is represented by the following table:

[0099]

[0100] This method supports dynamic adjustment of the number of parameters. When the front-end obtains different numbers of feature points based on varying image quality, the number of variables to be optimized changes, and the corresponding nonlinear optimization matrix dimensions also change accordingly. Furthermore, during each round of back-end optimization, the total bit width of the fixed-point numbers is adjusted based on the parameters to be optimized, and the integer bit width is adjusted to prevent integer overflow and ensure that the floating-point bit width meets the required accuracy.

[0101] Preferably, after the fixed-point quantization acceleration framework in steps S1 to S7 determines the quantization bit width, the next quantization can directly read the configuration file and support dynamic loading without recompiling the test code. The code is written in a yaml file, which defines the total bit width and integer bit width of different fixed-point quantization parameters:

[0102]

[0103] The present invention provides a fixed-point number acceleration method for SLAM backends, aiming to improve the real-time performance and accuracy of SLAM backend processing by optimizing the calculation process. The present invention utilizes fixed-point number operations instead of traditional floating-point number operations, reducing data bit width and calculation complexity, thereby reducing computing resource consumption while maintaining sufficient calculation accuracy. The present invention designs a complete set of fixed-point number representation and operation rules, including fixed-point number encoding methods, calculation accuracy control, and overflow handling mechanisms, to ensure that various SLAM backend algorithms can be accurately executed in a fixed-point number environment. By adopting efficient fixed-point number algorithms and parallel computing technology, the execution efficiency of these algorithms is improved, thereby accelerating the entire SLAM backend processing process. Experimental results show that using this framework for SLAM backend processing can significantly reduce computing resource consumption and improve real-time performance while ensuring calculation accuracy, compared to traditional floating-point number methods. The present invention is suitable for various SLAM application scenarios, and has broad application prospects in resource-constrained embedded systems and mobile devices. The implementation of the present invention not only provides an efficient and accurate fixed-point number acceleration solution for SLAM backend processing, but also provides strong support for technological progress and industrial development in related fields.

[0104] Although the present invention is described herein with reference to specific embodiments, it should be understood that these embodiments are merely illustrative of the principles and applications of the invention. It should be understood that many modifications may be made to the illustrative embodiments, and that other arrangements may be devised, without departing from the spirit and scope of the invention as defined by the appended claims. It should be understood that the various dependent claims and features described herein may be combined in ways other than those described in the original claims. It should also be understood that features described in conjunction with individual embodiments may be employed in conjunction with other described embodiments.

Claims

1. A fixed-point number acceleration method for SLAM backend, characterized in that: The following steps are involved: S1. According to simulation requirements, import the simulation data set into the ROS platform and start the ROS core node; S2. Configure the data set parameter file, SLAM algorithm configuration file, and modify the fixed-point quantization configuration parameters; S3. Start the SLAM algorithm node, which includes the dataset sensor data reading module, the front-end camera visual matching module, and the back-end nonlinear optimization module. It also opens RViz, the ROS Visualization tool, for data visualization and command interaction. S4: The front-end node receives sensor data, matches the camera image to obtain feature point data, pre-integrates the gyroscope data to obtain the pose transformation between the two frames, and sends the data to the back-end node. The back-end node is responsible for nonlinear optimization, which will optimize the pose of the relevant frames and the sensor deviation of the gyroscope; S5. During the back-end nonlinearization process, if the fixed-point quantization module is used, the total bit width and integer bit width of the fixed-point number are fixed according to the maximum integer value and the minimum decimal value of the floating-point number, and the floating-point number is quantized to the fixed-point number range. If the fixed-point quantization module is not used, the ceres library is used in conjunction with the floating-point number for back-end optimization; S6. Determine whether the current fixed-point quantization bit width is reasonable based on the range of floating-point data variation, and judge the accuracy degradation based on the true value of the comparison data set. Continuously change the fixed-point quantization bit width to eventually obtain a reasonable bit width, and cyclically execute the nonlinear optimization process until the optimization residual converges or the maximum number of optimization times is reached. S7: Execute SLAM Schur complement and sliding window post-processing.

2. a kind of fixed-point number acceleration method towards SLAM back end according to claim 1, is characterized in that, Step S1 specifically includes the following steps: S101. Prepare the EUROC dataset and import it according to the SLAM algorithm. S102. Start the CORE core node in ROS.

3. a kind of fixed-point number acceleration method towards SLAM back end according to claim 1, is characterized in that, The step S2 specifically includes the following steps: S201. Modify the dataset sensor configuration file defined in the YAML file. The configurable sensor types include monocular RGB camera, binocular RGB camera, IMU inertial measurement unit, and GNSS satellite navigation system. S202. Modify the SLAM algorithm configuration file, including whether to use a binocular camera, optimize the usage plan, and configure the number of multi-threads.

4. a kind of fixed-point number acceleration method towards SLAM back end according to claim 1, is characterized in that, Step S3 specifically includes the following steps: S301, start the SLAM algorithm node, subscribe to the pose information and sensor data topics published by the dataset reading node, and forward them into a message format suitable for each module input; S302, the visualization tool RViz displays target point information, posture change trajectory, sensor data, and feature point positions.

5. a kind of fixed-point number acceleration method towards SLAM back end according to claim 1, is characterized in that, Step S4 specifically includes the following steps: S401, the front-end node receives camera data and IMU inertial measurement unit data, extracts feature points using a multi-layer pyramid optical flow algorithm, and uses a pre-integration algorithm on the IMU data to obtain the pose change between two adjacent frames; S402: The back-end node receives the feature points calculated by the front-end node, minimizes the cost function through nonlinear optimization, and iteratively calculates the optimized pose.

6. a kind of fixed-point number acceleration method towards SLAM back end according to claim 1, is characterized in that, Step S5 specifically includes the following steps: S501. Selecting different nonlinear optimization frameworks based on whether the fixed-point quantization module is used; The SLAM backend fixed-point acceleration framework expresses the optimization problem in the form of a graph and solves it using graph theory and nonlinear optimization theory. In the optimization framework, optimization variables are represented as graph vertices, while condition information or constraint relationships are represented as graph edges. S502: If the fixed-point quantization module is not used, the nonlinear optimization framework will use the ceres backend optimization library and use floating-point numbers for calculation; S503. If the fixed-point quantization module is used, the nonlinear optimization framework will use a nonlinear optimization library suitable for embedded devices, select the Levenberg-Marquardt method as the nonlinear algorithm, select a quantization scheme based on the data storage type and the maximum and minimum values ​​in the actual calculation process, and determine the total bit width and integer bit width after quantization.

7. a kind of fixed-point number acceleration method towards SLAM back end according to claim 1, is characterized in that, Step S6 specifically includes the following steps: S601: In nonlinear optimization, the pose parameter value of each frame after optimization is compared with the true value, and the difference between the two is calculated to determine the accuracy; S602: If the accuracy meets the requirement, further reduce the fixed-point quantization bit width; if the accuracy does not meet the requirement or data overflow occurs, use the fixed-point bit width with a wider range in the previous step.

8. a kind of fixed-point number acceleration method towards SLAM back end according to claim 1, is characterized in that, Step S7 specifically includes the following steps: S701, after nonlinear optimization, marginalize the removed frames using SLAM Schur complement, and retain the constraints contained in the removed frames; S702 , traverse the image frames in the sliding window, calculate the reprojection error between the feature point and other points, and remove those points that exceed a certain range.

Citation Information

Patent Citations

  • Self-adaptive bit network quantization method and system and image processing method

    CN112926570A

  • Laser and visual SLAM system of indoor unmanned vehicle

    CN115015956A