SLAM (Simultaneous Localization and Mapping)-oriented rear-end fixed-point number acceleration method
By using fixed-point numbers instead of floating-point numbers on the SLAM backend, the computational complexity problem of SLAM system on resource-constrained devices is solved, and significant acceleration and efficiency improvement is achieved. It is suitable for embedded devices and improves the real-time performance of SLAM systems. .
Patent Information
- Application Number
- CN202411359046.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-27
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2044-09-27
AI Technical Summary
SLAM backend computing is highly complex and difficult to deploy in embedded devices with limited computing resources and storage space, limiting the application range and performance of the SLAM system.
Using fixed-point numbers instead of floating-point numbers, by building simulation scenarios on the ROS platform, nonlinear algorithm optimization is realized, memory space is reduced and calculation speed is accelerated, a set of fixed-point numbers acceleration methods for SLAM backend are designed, including data quantization and optimization processes. Suitable for embedded devices.
It significantly accelerates the SLAM back-end optimization process, improves real-time and response speed, reduces computing complexity and resource consumption, is suitable for resource-constrained embedded devices, and is compatible with different types of SLAM algorithms and sensor data.
Smart Images

Figure CN119289988A_ABST
Abstract
Description
Technical Field
[0001] The invention relates to the technical field of SLAM, and in particular to a fixed-point number acceleration method for a SLAM back-end. Background Art
[0002] Modern SLAM systems are widely used in fields such as autonomous driving, robot navigation, and augmented reality. This technology plays a key role in fields such as autonomous driving, intelligent navigation, virtual reality, and augmented reality, and therefore places extremely high demands on the real-time performance and computational efficiency of SLAM systems. SLAM systems usually consist of two parts: the front-end and the back-end. The front-end is responsible for processing sensor data and extracting features, while the back-end is responsible for map optimization and positioning estimation. In SLAM systems, the optimization algorithm at the back-end requires a lot of computing resources to achieve accurate optimization of maps and positioning, which usually includes large-scale matrix operations and nonlinear optimization.
[0003] In the SLAM backend, the motion state of the system is usually obtained by minimizing the cost function. Commonly used nonlinear algorithms include Gauss-Newton method, Levenberg-Marquardt method, etc. However, the high computational complexity and data complexity of nonlinear algorithms limit the use of SLAM algorithms on mobile embedded devices. Traditionally, these calculation processes are usually represented and calculated using floating-point numbers. However, floating-point number calculations require more computing resources and storage space. In embedded devices or resource-constrained environments, this may become a bottleneck, limiting the actual application scope and performance of the SLAM system.
[0004] In view of this, the present invention proposes a fixed-point number acceleration method for the SLAM backend to make up for and improve the shortcomings of the prior art. Summary of the invention
[0005] In view of the shortcomings of the existing SLAM backend with large computational complexity and difficulty in using it in an environment with limited computing resources and storage space resources, the present invention provides a fixed-point number acceleration method for the SLAM backend, builds a simulation scene based on the ROS platform, implements a set of backend algorithms optimized for nonlinear algorithms in the simulation, and uses fixed-point numbers 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 backend, comprising the following steps:
[0007] S1. According to the 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 data set sensor data reading module, the front-end camera visual matching module, and the back-end nonlinear optimization module, and start RViz (ROS Visualization tool) for data visualization and command interaction;
[0010] S4, the front-end node receives the sensor data, matches the camera image to obtain the feature point data, obtains the pose transformation between the two frames through pre-integration of the gyroscope data, and sends the data to the back-end node, which is responsible for nonlinear optimization and will optimize the pose of the relevant frames and the sensor deviation of the gyroscope;
[0011] S5. In the back-end linear and nonlinear quantization 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 into the fixed-point number range. If the fixed-point quantization module is not used, the ceres library is used in combination with the floating-point number for back-end optimization;
[0012] S6. Determine whether the current fixed-point quantization bit width is reasonable according to the range of floating-point data change, and judge the accuracy drop according to the true value of the comparison data set, and continuously change the fixed-point quantization bit width, and finally 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 post-processing such as SLAM Shul complement and moving sliding window.
[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 the dataset 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 data set sensor configuration file defined in the YAML file. The types of sensors that can be configured 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 topic of posture information and sensor data published by the data set reading node, and forward it to a message format suitable for input of each module;
[0023] S302, the visualization tool RViz displays the 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 the camera data and the IMU inertial measurement unit data, extracts feature points through a multi-layer pyramid optical flow algorithm, and uses a pre-integration algorithm to obtain the posture change of two adjacent frames of the IMU data;
[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 posture.
[0027] Preferably, step S5 specifically includes the following steps:
[0028] S501, selecting different nonlinear optimization frameworks according to whether the fixed-point quantization module is used; the SLAM back-end 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, the optimization variables are represented as vertices of the graph, and the condition information or constraint relationship is represented as the edge of the graph;
[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, the nonlinear algorithm will select the Levenberg-Marquardt method, the quantization scheme will be selected according to the data storage type and the maximum and minimum values in the actual calculation process, and the total bit width and integer bit width after quantization will be determined.
[0031] Preferably, step S6 specifically includes the following steps:
[0032] S601, in nonlinear optimization, comparing the pose parameter value of each frame after optimization with the true value, and calculating the difference between the two 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 Shure complement, and retain the constraints contained in the removed frames;
[0036] S702, traversing the image frames in the sliding window, calculating the reprojection error between the feature point and other points, and removing those points that exceed a certain range.
[0037] Compared with the prior art, the present invention has the following beneficial effects:
[0038] 1. The invention proposes a fixed-point number 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 robots and autonomous driving systems that require fast decision-making and response.
[0039] 2. Compared with traditional floating-point arithmetic, the fixed-point arithmetic of the present invention has higher efficiency and lower power consumption. By adopting fixed-point arithmetic, the computational complexity and resource consumption are reduced while maintaining sufficient accuracy, thereby achieving efficient acceleration of SLAM back-end optimization.
[0040] 3. The present invention defines an input and output interface and designs a sufficiently flexible and universal framework that is compatible with different types of SLAM algorithms and sensor data. In addition, the framework also has good scalability and can easily integrate new optimization algorithms and hardware acceleration technologies to meet the evolving SLAM technology requirements.
[0041] 4. The present invention reduces the demand for high-performance floating-point units by adopting a fixed-point acceleration framework, 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 number 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 It is a visualization interface diagram comparing the pose and true value after the optimization of the fixed-point acceleration framework according to the sensor input in the simulation provided by the present invention;
[0046] Figure 5 This is a diagram of the change in the actual difference result and the 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 be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. 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 creative work are within the scope of protection of the present invention.
[0048] In view of 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 digits. Compared with floating-point numbers, it 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 computing can be reduced, and the computing speed can be improved to a certain extent. Therefore, fixed-point numbers have great potential in embedded systems, mobile devices and other resource-constrained environments. It is not easy to introduce fixed-point numbers into the back-end optimization algorithm of SLAM system. This involves redesigning and optimizing the algorithm to adapt to the changes in accuracy and computational complexity brought by fixed-point numbers. In addition, challenges in data range, overflow processing and computational accuracy under fixed-point numbers need to be considered. Therefore, the development of a fixed-point acceleration framework for the SLAM back-end requires not only in-depth research on the theory and practice of fixed-point numbers, but also full verification and optimization under the specific application scenarios of the SLAM system.
[0049] Therefore, there is an urgent need for a more efficient calculation method for the back-end optimization of SLAM systems. By introducing fixed-point number representation and related accelerated calculation methods into the back-end optimization algorithm of the SLAM system, it is expected to achieve more efficient use of computing resources, thereby improving the real-time performance and applicability of the SLAM system. This can not only promote the application of SLAM technology in fields such as autonomous driving, robot navigation and augmented reality, but also bring better performance to SLAM systems on embedded devices and mobile platforms, and provide strong support for the development of intelligent technology.
[0050] The present invention proposes a fixed-point number acceleration method for SLAM backend, such as Figure 1 As shown, the following steps are included:
[0051] S1. According to the 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 data set sensor data reading module, the front-end camera visual matching module, and the back-end nonlinear optimization module, and start RViz (ROS Visualization tool) for data visualization and command interaction;
[0054] S4, the front-end node receives the sensor data, matches the camera image to obtain the feature point data, obtains the pose transformation between the two frames through pre-integration of the gyroscope data, and sends the data to the back-end node, which is responsible for nonlinear optimization and will optimize the pose of the relevant frames and the sensor deviation of the gyroscope;
[0055] S5. In the process of back-end linear and nonlinearization, two different schemes will be used 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 value of the floating-point integer and the minimum value of the decimal, and the floating-point number is quantized into the fixed-point number range to reduce data storage space and speed up the operation. If the fixed-point quantization module is not used, the ceres library is used with the floating-point number for back-end optimization;
[0056] S6. Determine whether the current fixed-point quantization bit width is reasonable according to the range of floating-point data change, and judge the accuracy drop according to the true value of the comparison data set, and continuously change the fixed-point quantization bit width, and finally 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, post-process the feature points and the estimated poses of the sliding window, use Schur complement to retain the constraints contained in the removed frame, move the sliding window and update the observation frame set and observation frame index of the feature points, and remove the feature points without observation frames.
[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 number acceleration method proposed in the present invention, step S1 is specifically as follows:
[0060] Step S101, prepare the EUROC data set, and import the data set according to the SLAM algorithm;
[0061] The EUROC dataset is an important resource for the research and evaluation of inertial navigation and visual positioning algorithms. It provides a wealth of indoor scene and motion pattern data, mainly including image data, IMU inertial measurement unit data, and camera calibration data. The EUROC dataset can be directly subscribed and published using the rosbag command in the ROS simulation environment.
[0062] Step S102, start the CORE core node in ROS.
[0063] Furthermore, the SLAM back-end fixed-point number acceleration method proposed in the present invention, step S2 is specifically as follows:
[0064] Step S201, modifying the data set sensor configuration file defined in the YAML file, the types of sensors that can be configured include monocular RGB camera, binocular RGB camera, IMU inertial measurement unit, 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, or 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 number acceleration method proposed in the present invention, step S3 is specifically as follows:
[0068] Step S301, start the SLAM algorithm node, subscribe to the topic of posture information and sensor data published by the dataset reading node, and forward it into a message format suitable for input of 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 number acceleration method proposed in the present invention, step S4 is specifically as follows:
[0071] Step S401, the front-end node receives camera data and IMU inertial measurement unit data, extracts feature points through a multi-layer pyramid optical flow algorithm, and uses a pre-integration algorithm on the IMU data to obtain the pose change of 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 posture;
[0073] Furthermore, the SLAM back-end fixed-point number 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 in the form of a graph and solves it using graph theory and nonlinear optimization theory. In the optimization framework, the optimization variables are represented as graph vertices, while the condition information or constraint relationships are represented as graph edges.
[0076] Step S502, if the fixed-point quantization module is enabled, the nonlinear optimization framework will use a nonlinear optimization library suitable for embedded devices, the nonlinear algorithm will select the Levenberg-Marquardt method, the quantization scheme will be selected according to the data storage type and the maximum and minimum values in the actual calculation process, and the total bit width and integer bit width after quantization will be determined.
[0077] 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 functions, allowing users to easily define and solve their own optimization problems. To use the Ceres library to solve nonlinear optimization problems, you usually need to first build a cost function, that is, the objective formula for optimization, and then use the cost function to build the optimization problem to be solved.
[0079] The nonlinear optimization code is shown below:
[0080]
[0081]
[0082]
[0083] The specific steps are as follows: 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 common problem, directly count all variables and accumulate them to ordering_generic_. The labels are grouped and labeled directly. If it is a SLAM problem, count the number of landmark point variables, the number of pose variables, the number of IMU variables, and the number of Td variables respectively, and include the rest in the number of other variables. The labeling should be similar to that of common problems. Note that the landmark points need to be placed at the end. Then call MakeHessian to construct the H matrix. For each edge, calculate their residuals and their Jacobians 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 at the core solution Hx=b. The LM Levenberg-Marquardt method is used uniformly in the present 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 according to changes in input data and calculation data in real time 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 number acceleration method proposed in the present invention, step S6 is specifically as follows:
[0087] Step S601, after 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;
[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] bw represents the total bit width of the data, and fl represents the bit width occupied by the floating-point number, from which 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, so 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 are incremented by a certain size when storing data in the fixed-point number. 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 range of the fixed-point number, and then rounds the parameter before truncating it.
[0098] In the present invention, the Euroc data set 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 according to different image qualities, the number of changes to be optimized will change, and the corresponding nonlinear optimization matrix dimensions will also change with the number of feature points. At the same time, in each round of back-end optimization, the total bit width of the fixed-point number will be changed at any time according to the parameters to be optimized, and the integer bit width will be adjusted to ensure that the integer value does not overflow, and the floating-point bit width can meet the accuracy requirements.
[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 backend, aiming to improve the real-time performance and accuracy of SLAM backend processing by optimizing the calculation process. The present invention uses fixed-point number calculation to replace traditional floating-point number calculation, reduces the consumption of computing resources by reducing the data bit width and the complexity of calculation, and maintains sufficient calculation accuracy. The present invention designs a complete set of fixed-point number representation and operation rules, including the encoding mode of fixed-point number, the control of calculation accuracy and the overflow processing mechanism, to ensure that various algorithms of SLAM backend 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 the use of this framework for SLAM backend processing can significantly reduce the consumption of computing resources and improve real-time performance under the premise of ensuring calculation accuracy, compared with the traditional floating-point number method. The present invention is applicable to various SLAM application scenarios, especially has a wide range of 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 examples of the principles and applications of the present invention. It should therefore be understood that many modifications may be made to the exemplary embodiments and that other arrangements may be devised without departing from the spirit and scope of the present invention as defined by the appended claims. It should be understood that the various dependent claims and features described herein may be combined in a manner different from that described in the original claims. It should also be understood that features described in conjunction with individual embodiments may be used in 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 the 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, including the data set sensor data reading module, the front-end camera visual matching module, and the back-end nonlinear optimization module, and start RViz (ROS Visualization tool) for data visualization and command interaction; S4, the front-end node receives the sensor data, matches the camera image to obtain the feature point data, obtains the pose transformation between the two frames through pre-integration of the gyroscope data, and sends the data to the back-end node, which is responsible for nonlinear optimization and will optimize the pose of the relevant frames and the sensor deviation of the gyroscope; S5. In the back-end linear and nonlinear quantization 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 into the fixed-point number range. If the fixed-point quantization module is not used, the ceres library is used in combination with the floating-point number for back-end optimization; S6. Determine whether the current fixed-point quantization bit width is reasonable according to the range of floating-point data change, and judge the accuracy drop according to the true value of the comparison data set, and continuously change the fixed-point quantization bit width, and finally 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, perform post-processing such as SLAM Shul complement and moving sliding window.
2. A method for accelerating fixed-point numbers towards the SLAM back end according to claim 1, characterized in that, Step S1 specifically includes the following steps: S101, prepare the EUROC dataset and import the dataset according to the SLAM algorithm; S102, start the CORE core node in ROS.
3. A method for accelerating fixed-point numbers towards the SLAM back end according to claim 1, characterized in that, The step S2 specifically includes the following steps: S201. Modify the data set sensor configuration file defined in the YAML file. The types of sensors that can be configured 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 method for accelerating fixed-point numbers towards the SLAM back end according to claim 1, characterized in that, Step S3 specifically includes the following steps: S301, start the SLAM algorithm node, subscribe to the topic of posture information and sensor data published by the data set reading node, and forward it to a message format suitable for input of each module; S302, the visualization tool RViz displays target point information, posture change trajectory, sensor data, and feature point positions.
5. A method for accelerating fixed-point numbers towards a SLAM back end according to claim 1, characterized in that: Step S4 specifically includes the following steps: S401, the front-end node receives the camera data and the IMU inertial measurement unit data, extracts feature points through a multi-layer pyramid optical flow algorithm, and uses a pre-integration algorithm to obtain the posture change of two adjacent frames of the IMU data; 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 posture.
6. A method for accelerating fixed-point numbers at the SLAM back end according to claim 1, characterized in that: Step S5 specifically includes the following steps: S501, selecting different nonlinear optimization frameworks according to whether the fixed-point quantization module is used; the SLAM back-end 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, the optimization variables are represented as vertices of the graph, and the condition information or constraint relationship is represented as the edge of the graph; 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, the nonlinear algorithm will select the Levenberg-Marquardt method, the quantization scheme will be selected according to the data storage type and the maximum and minimum values in the actual calculation process, and the total bit width and integer bit width after quantization will be determined.
7. A method for accelerating fixed-point numbers towards a SLAM back end according to claim 1, characterized in that: Step S6 specifically includes the following steps: S601, in nonlinear optimization, comparing the pose parameter value of each frame after optimization with the true value, and calculating the difference between the two 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 method for accelerating fixed-point numbers at the SLAM back end according to claim 1, characterized in that: Step S7 specifically includes the following steps: S701, after nonlinear optimization, marginalize the removed frames using SLAM Shure complement, and retain the constraints contained in the removed frames; S702, traversing the image frames in the sliding window, calculating the reprojection error between the feature point and other points, and removing 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
SLAM method and system for fusing IMU and visual data based on point-line visual features
CN118424266A
Map building method and apparatus, device and storage medium
WO2021218620A1