Grinding robot positioning method, device, electronic equipment and storage medium

The positioning results of the grinding robot were optimized by using the unscented Kalman filter method based on the particle swarm optimization algorithm, which solved the problem of inaccurate odometer readings caused by vibration of the grinding robot and improved the positioning accuracy and efficiency of the grinding robot.

CN117908036BActive Publication Date: 2026-06-02JIHUA LAB

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
JIHUA LAB
Filing Date
2023-12-26
Publication Date
2026-06-02

AI Technical Summary

Technical Problem

The vibration generated by the grinding machine on the head of the grinding robot during operation causes inaccurate odometer readings, affecting the robot's positioning accuracy and limiting the application of autonomous mobile grinding robots.

Method used

The unscented Kalman filter method with particle swarm optimization algorithm is used to optimize the secondary positioning results calculated by the non-destructive testing global positioning method and the iterative nearest point method. Combining point cloud data and laser data, the preliminary positioning result is calculated by the adaptive Monte Carlo positioning algorithm, and secondary positioning is performed using the non-destructive testing global positioning method and the iterative nearest point method. Finally, the actual odometry data is optimized by particle swarm optimization algorithm to improve positioning accuracy.

Benefits of technology

This reduces the impact of vibration on positioning in the grinding robot, enabling positioning correction and improving positioning efficiency and accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117908036B_ABST
    Figure CN117908036B_ABST
Patent Text Reader

Abstract

This application belongs to the technical field of polishing robot positioning, and discloses a polishing robot positioning method, device, electronic device and storage medium. The method includes: acquiring point cloud data of the polishing robot when performing a task; calculating a preliminary positioning result of the polishing robot based on the point cloud data using an adaptive Monte Carlo positioning algorithm; calculating a secondary positioning result based on the preliminary positioning result; calculating the actual odometer data corresponding to the secondary positioning result; optimizing the actual odometer data using an unscented Kalman filter method based on particle swarm optimization algorithm to obtain optimized actual odometer data; calculating the position coordinates corresponding to the optimized actual odometer data to obtain the actual positioning result of the polishing robot. By optimizing the secondary positioning result of the polishing robot using an unscented Kalman filter method based on particle swarm optimization algorithm to obtain the actual positioning result, the positioning efficiency of the polishing robot is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the technical field of positioning of grinding robots, and more specifically, to a method, apparatus, electronic device and storage medium for positioning grinding robots. Background Technology

[0002] Currently, during the polishing process of a polishing robot, the polishing machine on the robot's head generates significant vibrations. These vibrations cause inaccurate data acquisition by the robot's attitude sensors, leading to inaccurate odometer readings and ultimately affecting the robot's positioning. As a result, there are relatively few autonomous mobile polishing robots on the market.

[0003] Therefore, in order to solve the technical problem that the odometer reading of the grinding robot is inaccurate due to the large vibration generated by the grinding machine in the head of the grinding robot during operation, thus affecting the positioning of the grinding robot, there is an urgent need for a positioning method, device, electronic equipment and storage medium for the grinding robot. Summary of the Invention

[0004] The purpose of this application is to provide a positioning method, device, electronic device, and storage medium for a grinding robot. By using an unscented Kalman filter method based on particle swarm optimization algorithm, the secondary positioning results obtained by the global positioning method for non-destructive testing and the iterative nearest-point method are optimized to obtain the actual positioning results. This solves the problem that the grinding robot's positioning is affected by the inaccurate odometer reading caused by the large vibration generated by the grinding machine at the head of the grinding robot during operation. It reduces the impact of the vibration generated by the grinding machine, enables positioning correction of the grinding robot, and improves the positioning efficiency of the grinding robot.

[0005] Firstly, this application provides a method for locating a grinding robot, comprising the following steps:

[0006] Acquire point cloud data of the polishing robot while it is performing its task;

[0007] Using the adaptive Monte Carlo localization algorithm and based on the point cloud data, the preliminary localization result of the polishing robot is calculated.

[0008] Based on the preliminary positioning results, the secondary positioning results of the grinding robot are calculated using the non-destructive testing global positioning method and the iterative nearest point method.

[0009] Based on the conversion relationship between pose information and odometer readings, the actual odometer data corresponding to the secondary positioning result is calculated.

[0010] The actual odometer data is optimized using an unscented Kalman filter method based on particle swarm optimization algorithm to obtain optimized actual odometer data.

[0011] The position coordinates corresponding to the optimized actual odometer data are calculated to obtain the actual positioning result of the grinding robot.

[0012] The grinding robot positioning method provided in this application can achieve the positioning of the grinding robot. By using an unscented Kalman filter method based on particle swarm optimization algorithm, the secondary positioning results obtained by the non-destructive testing global positioning method and the iterative nearest point method are optimized to obtain the actual positioning result. This solves the problem that the grinding robot's positioning is affected by the inaccurate odometer reading caused by the large vibration generated by the grinding machine at the head of the grinding robot during operation. It reduces the impact of the vibration generated by the grinding machine, enables positioning correction of the grinding robot, and improves the positioning efficiency of the grinding robot.

[0013] Optionally, the point cloud data includes map point cloud data and laser point cloud data; acquiring point cloud data of the grinding robot during task execution includes;

[0014] While the polishing robot is performing its task, map data and laser data within a preset range are acquired, centered on the polishing robot.

[0015] Convert the map data into map point cloud data;

[0016] The laser data is converted into laser point cloud data.

[0017] Based on the global positioning result, local secondary positioning is performed using the iterative nearest-point method to calculate the secondary positioning result of the grinding robot, including:

[0018] Optionally, based on the preliminary positioning results, the secondary positioning results of the grinding robot are calculated using a non-destructive testing global positioning method and an iterative nearest-point method, including:

[0019] The global positioning result is obtained by performing global positioning on the preliminary positioning result using the aforementioned non-destructive testing global positioning method.

[0020] Based on the global positioning result, local secondary positioning is performed using the iterative nearest-point method to calculate the secondary positioning result of the grinding robot.

[0021] The grinding robot positioning method provided in this application can realize the positioning of the grinding robot. By using a non-destructive testing global positioning method and an iterative nearest-point method, the secondary positioning result of the grinding robot is calculated. The secondary positioning result is then converted to obtain actual odometer data, which helps to improve the positioning efficiency of the grinding robot.

[0022] Optionally, based on the global positioning result, local secondary positioning is performed using the iterative nearest-point method to calculate the secondary positioning result of the grinding robot, including:

[0023] While rotating the global positioning result multiple times according to the preset rotation angle, the rotation matching result and the corresponding rotation matching value are calculated for each rotation angle using the iterative nearest point method.

[0024] Extract the maximum value from the rotation matching values, and determine the rotation matching result corresponding to the maximum value as the pose change result, denoted as the first pose change result;

[0025] Repeat the rotation matching operation to obtain the second pose change result, which is denoted as the second pose change result;

[0026] Determine whether the difference between the second pose change result and the first pose change result is less than or equal to a preset error; if yes, determine that the average of the second pose change result and the first pose change result is the secondary positioning result; if no, recalculate the first pose change result and the second pose change result until the difference is less than or equal to the preset error.

[0027] Optionally, an unscented Kalman filter method based on particle swarm optimization is used to optimize the actual odometer data, resulting in optimized actual odometer data, including:

[0028] Obtain the running state variables of the polishing robot when performing the task, in order to generate the corresponding sigma points;

[0029] The Kalman gain data is calculated based on the operating state variables and the sigma point.

[0030] Based on the Kalman gain data, the actual odometer data is optimized using a particle swarm optimization algorithm to obtain optimized actual odometer data.

[0031] The grinding robot positioning method provided in this application can realize the positioning of the grinding robot. By using the unscented Kalman filter method based on the particle swarm optimization algorithm, the actual odometer data is optimized to obtain more realistic optimized actual odometer data. By converting the optimized actual odometer data into corresponding position coordinates, the actual positioning of the grinding robot can be determined, thereby improving the positioning efficiency of the grinding robot.

[0032] Optionally, Kalman gain data is calculated based on the operating state variables and the sigma point, including:

[0033] The state covariance matrix is ​​calculated based on the operating state variables and the sigma points.

[0034] The Kalman gain data is calculated using the state covariance matrix.

[0035] Optionally, based on the Kalman gain data, the actual odometer data is optimized using a particle swarm optimization algorithm to obtain optimized actual odometer data, including:

[0036] Based on the particle swarm optimization algorithm, the optimizable parameters in the Kalman gain data are optimized to obtain the optimized Kalman gain data.

[0037] Based on the optimized Kalman gain data, the actual odometer data is optimized to obtain the optimized actual odometer data.

[0038] Secondly, this application provides a positioning device for a grinding robot, used for positioning the grinding robot, comprising:

[0039] The acquisition module is used to acquire point cloud data of the polishing robot when it is performing a task.

[0040] The preliminary positioning module is used to calculate the preliminary positioning result of the polishing robot based on the point cloud data using an adaptive Monte Carlo positioning algorithm.

[0041] The secondary positioning module is used to calculate the secondary positioning result of the grinding robot based on the preliminary positioning result, using a non-destructive testing global positioning method and an iterative nearest-point method.

[0042] The first calculation module is used to calculate the actual odometer data corresponding to the secondary positioning result based on the conversion relationship between pose information and odometer.

[0043] The optimization module is used to optimize the actual odometer data using an unscented Kalman filter method based on particle swarm optimization algorithm, so as to obtain optimized actual odometer data.

[0044] The second calculation module is used to calculate the position coordinates corresponding to the optimized actual odometer data to obtain the actual positioning result of the grinding robot.

[0045] This grinding robot positioning device optimizes the secondary positioning results obtained from the non-destructive testing global positioning method and the iterative nearest-point method using an unscented Kalman filter method based on particle swarm optimization algorithm. This results in actual positioning results and solves the problem that the grinding robot's positioning is affected by the inaccurate odometer readings caused by the large vibrations generated by the grinding machine at the robot's head during operation. The device reduces the impact of grinding machine vibrations, enables positioning correction of the grinding robot, and improves its positioning efficiency.

[0046] Thirdly, this application provides an electronic device including a processor and a memory, the memory storing a computer program executable by the processor, wherein when the processor executes the computer program, it performs the steps in the grinding robot positioning method described above.

[0047] Fourthly, this application provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, performs the steps of the grinding robot positioning method described above.

[0048] Beneficial effects: The grinding robot positioning method, device, electronic equipment, and storage medium provided in this application optimize the secondary positioning results obtained by the non-destructive testing global positioning method and the iterative nearest point method through the unscented Kalman filtering method based on the particle swarm optimization algorithm, thereby obtaining the actual positioning result. This solves the problem that the grinding robot's positioning is affected by the inaccurate odometer reading caused by the large vibration generated by the grinding machine at the head of the grinding robot during operation. It reduces the impact of the vibration generated by the grinding machine, enables positioning correction of the grinding robot, and improves the positioning efficiency of the grinding robot. Attached Figure Description

[0049] Figure 1 A flowchart illustrating the positioning method for a grinding robot provided in this application embodiment.

[0050] Figure 2 This is a schematic diagram of the positioning device for the grinding robot provided in an embodiment of this application.

[0051] Figure 3 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application.

[0052] Labeling Explanation: 1. Acquisition Module; 2. Preliminary Positioning Module; 3. Secondary Positioning Module; 4. First Calculation Module; 5. Optimization Module; 6. Second Calculation Module; 301. Processor; 302. Memory; 303. Communication Bus. Detailed Implementation

[0053] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of the embodiments. The components of the embodiments of this application described and shown in the accompanying drawings can generally be arranged and designed in various different configurations. Therefore, the following detailed description of the embodiments of this application provided in the accompanying drawings is not intended to limit the scope of the claimed application, but merely represents selected embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.

[0054] It should be noted that similar reference numerals and letters in the following figures indicate similar items; therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures. Furthermore, in the description of this application, terms such as "first," "second," etc., are used only to distinguish descriptions and should not be construed as indicating or implying relative importance.

[0055] Please refer to Figure 1 , Figure 1 This application provides a method for positioning a grinding robot, as described in some embodiments, for positioning the grinding robot, including:

[0056] Step S101: Obtain point cloud data of the polishing robot when it is performing the task;

[0057] Step S102: Using the adaptive Monte Carlo localization algorithm and based on point cloud data, the preliminary localization result of the grinding robot is calculated.

[0058] Step S103: Based on the preliminary positioning results, the secondary positioning results of the grinding robot are calculated using the non-destructive testing global positioning method and the iterative nearest point method.

[0059] Step S104: Based on the conversion relationship between pose information and odometer, calculate the actual odometer data corresponding to the secondary positioning result;

[0060] Step S105: The unscented Kalman filter method based on particle swarm optimization algorithm is used to optimize the actual odometer data to obtain the optimized actual odometer data.

[0061] Step S106: Calculate the position coordinates corresponding to the optimized actual odometer data to obtain the actual positioning result of the grinding robot.

[0062] This grinding robot positioning method optimizes the secondary positioning results obtained from the non-destructive testing global positioning method and the iterative nearest-point method by using an unscented Kalman filter based on the particle swarm optimization algorithm. This results in an actual positioning result and solves the problem that the grinding robot's positioning is affected by the inaccurate odometer reading caused by the large vibration generated by the grinding machine head during operation. The method reduces the impact of the grinding machine's vibration, enables positioning correction of the grinding robot, and improves the positioning efficiency of the grinding robot.

[0063] Specifically, in step S101, the point cloud data includes map point cloud data and laser point cloud data; acquiring the point cloud data of the polishing robot during task execution includes;

[0064] While the polishing robot is performing its task, map data and laser data within a preset range are acquired, centered on the polishing robot.

[0065] Convert map data into map point cloud data;

[0066] Convert laser data into laser point cloud data.

[0067] In step S101, while the polishing robot is performing its task, map data within a preset range is acquired using a camera (such as a sensor) centered on the polishing robot, and laser data within the preset range is acquired using a lidar. The preset range can be set according to actual needs.

[0068] Point cloud conversion technologies, such as camera calibration, image distortion correction, point cloud coordinate calculation, and image-to-point cloud matching, are used to convert map data into map point cloud data. Similarly, laser data is converted into laser point cloud data through coordinate system transformation, laser point cloud filtering, and point cloud generation. The conversion processes for both map and laser point cloud data utilize existing technologies and will not be detailed here.

[0069] Specifically, in step S102, the preliminary localization result of the grinding robot is calculated using point cloud data through the adaptive Monte Carlo Localization (AMCL) algorithm. The AMCL algorithm is a commonly used probabilistic localization algorithm, typically used for robot localization and navigation in unknown environments. However, this algorithm relies on odometry information. The vibrations generated by the grinding robot during the grinding process affect its inertial measurement unit (IMU), leading to inaccurate heading angles obtained by the IMU. Since the odometry measured at the motor end of the grinding robot is related to the heading angle of the IMU, the calculated odometry is also inaccurate, resulting in an inaccurate preliminary localization result. The adaptive Monte Carlo localization algorithm is existing technology and will not be described in detail here.

[0070] Specifically, in step S103, based on the preliminary positioning results, the secondary positioning results of the grinding robot are calculated using the non-destructive testing global positioning method and the iterative nearest-point method, including:

[0071] The preliminary positioning results are used to perform global positioning by non-destructive testing global positioning method to obtain the global positioning result;

[0072] Based on the global positioning results, a local secondary positioning is performed using the iterative nearest point method to calculate the secondary positioning results of the grinding robot.

[0073] In step S103, the preliminary positioning result is transmitted to the non-destructive testing global positioning system. The preliminary positioning result is then automatically converted into a global positioning result through the global positioning system's calculations. The global positioning system for non-destructive testing is existing technology, and its calculation process will not be detailed here.

[0074] Specifically, in step S103, based on the global positioning result, local secondary positioning is performed using the iterative nearest-point method to calculate the secondary positioning result of the grinding robot, including:

[0075] According to the preset rotation angle, while rotating the global positioning result multiple times, the rotation matching result and the corresponding rotation matching value are calculated for each rotation angle by using the iterative nearest point method.

[0076] Extract the maximum value from the rotation matching values, and determine the rotation matching result corresponding to the maximum value as the pose change result, which is denoted as the first pose change result;

[0077] Repeat the rotation matching operation to obtain the second pose change result, which is denoted as the second pose change result;

[0078] Determine whether the difference between the second pose change result and the first pose change result is less than or equal to the preset error; if yes, determine the average of the second pose change result and the first pose change result as the secondary positioning result; if no, recalculate the first pose change result and the second pose change result until the difference is less than or equal to the preset error.

[0079] In step S103, the global positioning result is input into the secondary fine positioning system for automatic calculation by the secondary fine positioning system: with a preset rotation angle (e.g., The initial positioning result is rotated multiple times in either clockwise or counterclockwise order (at different angles). Simultaneously, the iterative nearest neighbor method (IPC algorithm) is used to determine the transformation matrix after each rotation (i.e., each rotation angle). The pose corresponding to each rotation is then used as the rotation matching result for that rotation angle. Based on the transformation matrix and the rotation matching result, the corresponding rotation matching value is calculated. The calculation process for the rotation matching value is automatic by the secondary precision positioning system and will not be detailed here.

[0080] The maximum value in the rotation matching values ​​is taken, and the rotation matching result corresponding to the maximum value is determined as the pose change result. This pose change result is recorded as the first pose change result. The above rotation matching operation is repeated once to obtain the second pose change result, which is recorded as the second pose change result.

[0081] Compare the difference between two pose change results. If the difference is less than or equal to a preset error, the average of the two pose change results is determined as the secondary positioning result. If the difference is greater than the preset error, the two pose change results are recalculated until the difference between the continuously calculated pose change results is less than or equal to the preset error. The preset error can be set according to actual needs.

[0082] Specifically, in step S104, the secondary positioning result is converted into the corresponding actual odometer data according to the conversion relationship between pose information and odometer. The conversion process of actual odometer data has existing technology, which will not be described in detail here.

[0083] In some embodiments, after calculating the actual odometer data, the actual odometer data can be compared with the theoretical odometer data measured at the motor end of the grinding robot. Then, it can be calculated that the difference between the actual odometer data and the theoretical odometer data is greater than a certain value (a preset difference threshold). This proves that the vibration generated by the grinding robot during the grinding process affects the inertial measurement unit (IMU) of the grinding robot, resulting in inaccurate odometer readings at the motor end of the grinding robot.

[0084] Specifically, in step S105, an unscented Kalman filter method based on particle swarm optimization is used to optimize the actual odometer data, resulting in optimized actual odometer data, including:

[0085] Obtain the running state variables of the polishing robot when performing the task, in order to generate the corresponding sigma points;

[0086] The Kalman gain data is calculated based on the running state variables and the sigma point.

[0087] Based on Kalman gain data, the actual odometer data is optimized using a particle swarm optimization algorithm to obtain optimized actual odometer data.

[0088] In step S105, Sigma points are generated corresponding to the operating state variables of the polishing robot when performing the task. These operating state variables include variables describing the state of the polishing robot, such as position, orientation, and velocity.

[0089] ;

[0090] ;

[0091] ;

[0092] in, Let be the set of sigma points at time k-1. This refers to the predicted odometer data at time k-1 (the actual odometer data obtained from the above calculation); k is the kth time, generally referring to the current time; k-1 is the (k-1)th time, generally referring to the previous time. Let be the state covariance matrix at time k-1 (the previous time step); This is an adjustable parameter, where n is the dimension of the sigma points. Typically, these sigma points are located at the mean (i.e., ...). The mean is located at the covariance of each eigenvector principal axis and at the symmetric distribution along each eigenvector principal axis. (There are two sigma points symmetrically distributed along each dimension, so there are 2^n symmetric sigma points across n dimensions. The value corresponding to the last sigma point is the mean.) (that is, the point is located at the mean); The ith column vector of the sigma point in the previous time step in a single dimension is represented by the state covariance matrix of the previous time step. Obtained by singular value decomposition. Among them, the adjustable parameters... It can be configured according to actual needs.

[0093] Specifically, in step S105, the Kalman gain data is calculated based on the operating state variables and the sigma point, including:

[0094] The state covariance matrix is ​​calculated based on the running state variables and sigma points;

[0095] The Kalman gain data is calculated using the state covariance matrix.

[0096] In step S105, during the task execution by the grinding robot, the state covariance matrix is ​​calculated based on the running state variables and sigma points:

[0097] ;

[0098] ;

[0099] ;

[0100] in, The i-th sigma point propagated from the previous time step is the prediction. It is a nonlinear motion model; This is the set of sigma points corresponding to the previous time step; To refine the robot's operating state variables; This represents the average of the sigma points propagated at the previous time step in the prediction. The weighting coefficients for calculating the average value of the sigma points; To measure noise, it is represented in matrix form; These are the weighting coefficients used to calculate the state covariance matrix at the previous time step. Where, when i=0, This represents the sigma point at the average value. Measurement noise can be set according to actual needs.

[0101] The Kalman gain data is calculated from the state covariance matrix. The specific formula for calculating the Kalman gain data is as follows:

[0102] ;

[0103] in, This is the Kalman gain data at the current moment; This is the transpose of the observation matrix at the current time. This is the observation matrix at the current moment; The process noise is represented in matrix form. The observation matrix and process noise can be set according to actual needs.

[0104] Specifically, in step S105, based on the Kalman gain data, the actual odometer data is optimized using a particle swarm optimization algorithm to obtain the optimized actual odometer data, including:

[0105] Based on the particle swarm optimization algorithm, the optimizable parameters in the Kalman gain data are optimized to obtain the optimized Kalman gain data;

[0106] Based on the optimized Kalman gain data, the actual odometer data is optimized to obtain the optimized actual odometer data.

[0107] In step S105, based on the particle swarm optimization algorithm, the optimizable parameters in the Kalman gain data are iteratively optimized. During the iteration process, the optimal position and optimal velocity of the particles corresponding to these parameters are calculated to obtain the optimal solutions for these parameters, thus obtaining the optimal optimizable parameters. These optimal optimizable parameters are then applied to the Kalman gain data to obtain the optimized Kalman gain data. The optimizable parameters include process noise, measurement noise, adjustable parameters, and the dimension of the sigma point, etc. Optimizing these parameters can improve the accuracy and robustness of Kalman filtering (Kalman gain data). The calculation process of the particle swarm optimization algorithm is existing technology and will not be described in detail here.

[0108] Based on the optimized Kalman gain data, the actual odometer data is optimized to obtain the optimized actual odometer data. The optimization process for the optimized actual odometer data is as follows:

[0109] ;

[0110] ;

[0111] in, This is the optimized actual odometer data for the current moment. This refers to the sensor's pose information at the current moment (or other data and information related to the odometer data). Let I be the state covariance matrix at the current moment; I is the n-order identity matrix, representing the n*n identity matrix, and I is determined according to the dimension of the sigma point.

[0112] Specifically, in step S106, based on the conversion relationship between pose information and odometry, the position coordinates corresponding to the optimized actual odometry data are calculated to obtain the actual positioning result of the grinding robot. The specific process of converting the optimized actual odometry data into corresponding position coordinates is existing technology and will not be detailed here.

[0113] As shown above, this grinding robot localization method acquires point cloud data of the grinding robot during task execution. Using an adaptive Monte Carlo localization algorithm, it calculates the initial localization result based on the point cloud data. Based on this initial localization result, it calculates the secondary localization result using a non-destructive testing global localization method and an iterative nearest-point method. Based on the conversion relationship between pose information and odometry, it calculates the actual odometry data corresponding to the secondary localization result. Then, it optimizes the actual odometry data using an unscented Kalman filter method based on particle swarm optimization, obtaining the optimized actual odometry data. Finally, it calculates the position coordinates corresponding to the optimized actual odometry data to obtain the actual localization result of the grinding robot. The phase information of the mirror-like object is calculated from the position result. An unscented Kalman filter based on particle swarm optimization is used to optimize the actual odometer data, resulting in optimized actual odometer data. Therefore, by using an unscented Kalman filter based on particle swarm optimization, the secondary positioning results obtained from the non-destructive testing global positioning method and the iterative nearest-point method are optimized to obtain the actual positioning result. This solves the problem of inaccurate odometer readings caused by significant vibrations generated by the grinding machine head during operation, which affects the positioning of the grinding robot. It reduces the impact of grinding machine vibration, enables positioning correction of the grinding robot, and improves its positioning efficiency.

[0114] refer to Figure 2 This application provides a positioning device for a grinding robot, used for positioning the grinding robot, comprising:

[0115] Module 1 is used to acquire point cloud data of the polishing robot when it is performing a task;

[0116] The preliminary positioning module 2 is used to calculate the preliminary positioning result of the grinding robot based on point cloud data using an adaptive Monte Carlo positioning algorithm.

[0117] The secondary positioning module 3 is used to calculate the secondary positioning result of the grinding robot based on the preliminary positioning result, using the non-destructive testing global positioning method and the iterative nearest point method.

[0118] The first calculation module 4 is used to calculate the actual odometer data corresponding to the secondary positioning result based on the conversion relationship between pose information and odometer.

[0119] Optimization module 5 is used to optimize the actual odometer data using an unscented Kalman filter method based on particle swarm optimization algorithm, and obtain the optimized actual odometer data.

[0120] The second calculation module 6 is used to calculate the position coordinates corresponding to the optimized actual odometer data, and obtain the actual positioning result of the grinding robot.

[0121] This grinding robot positioning device optimizes the secondary positioning results obtained from the non-destructive testing global positioning method and the iterative nearest-point method using an unscented Kalman filter method based on particle swarm optimization algorithm. This results in actual positioning results and solves the problem that the grinding robot's positioning is affected by the inaccurate odometer readings caused by the large vibrations generated by the grinding machine at the robot's head during operation. The device reduces the impact of grinding machine vibrations, enables positioning correction of the grinding robot, and improves its positioning efficiency.

[0122] Specifically, module 1 acquires point cloud data, including map point cloud data and laser point cloud data; when acquiring point cloud data of the grinding robot during task execution, it performs the following:

[0123] While the polishing robot is performing its task, map data and laser data within a preset range are acquired, centered on the polishing robot.

[0124] Convert map data into map point cloud data;

[0125] Convert laser data into laser point cloud data.

[0126] When module 1 is executed, while the grinding robot is performing its task, it acquires map data within a preset range using a camera (such as a sensor) and laser data within the same range using a lidar sensor, with the grinding robot as the center. The preset range can be set according to actual needs.

[0127] Point cloud conversion technologies, such as camera calibration, image distortion correction, point cloud coordinate calculation, and image-to-point cloud matching, are used to convert map data into map point cloud data. Similarly, laser data is converted into laser point cloud data through coordinate system transformation, laser point cloud filtering, and point cloud generation. The conversion processes for both map and laser point cloud data utilize existing technologies and will not be detailed here.

[0128] Specifically, during execution, the preliminary localization module 2 uses the adaptive Monte Carlo Localization (AMCL) algorithm to calculate the preliminary localization result of the grinding robot based on point cloud data. The AMCL algorithm is a commonly used probabilistic localization algorithm, typically used for robot localization and navigation in unknown environments. However, this algorithm relies on odometry information. The vibrations generated by the grinding robot during the grinding process affect its inertial measurement unit (IMU), leading to inaccurate heading angles obtained by the IMU. Since the odometry measured at the motor end of the grinding robot is related to the heading angle of the IMU, the calculated odometry is also inaccurate, resulting in an inaccurate preliminary localization result. The adaptive Monte Carlo localization algorithm is existing technology and will not be described in detail here.

[0129] Specifically, when the secondary positioning module 3 calculates the secondary positioning result of the grinding robot based on the preliminary positioning result using the non-destructive testing global positioning method and the iterative nearest-point method, it executes the following:

[0130] The preliminary positioning results are used to perform global positioning by non-destructive testing global positioning method to obtain the global positioning result;

[0131] Based on the global positioning results, a local secondary positioning is performed using the iterative nearest point method to calculate the secondary positioning results of the grinding robot.

[0132] During execution, the secondary positioning module 3 transmits the preliminary positioning results to the non-destructive testing global positioning system. The global positioning system then automatically calculates and transforms the preliminary positioning results into global positioning results. The global positioning system for non-destructive testing is existing technology, and its calculation process will not be detailed here.

[0133] Specifically, when the secondary positioning module 3 calculates the secondary positioning result of the grinding robot by performing local secondary positioning based on the global positioning result and using the iterative nearest-point method, it executes the following:

[0134] According to the preset rotation angle, while rotating the global positioning result multiple times, the rotation matching result and the corresponding rotation matching value are calculated for each rotation angle by using the iterative nearest point method.

[0135] Extract the maximum value from the rotation matching values, and determine the rotation matching result corresponding to the maximum value as the pose change result, which is denoted as the first pose change result;

[0136] Repeat the rotation matching operation to obtain the second pose change result, which is denoted as the second pose change result;

[0137] Determine whether the difference between the second pose change result and the first pose change result is less than or equal to the preset error; if yes, determine the average of the second pose change result and the first pose change result as the secondary positioning result; if no, recalculate the first pose change result and the second pose change result until the difference is less than or equal to the preset error.

[0138] When the secondary positioning module 3 is executed, it inputs the global positioning result into the secondary fine positioning system for automatic calculation: by a preset rotation angle (e.g., The initial positioning result is rotated multiple times in either clockwise or counterclockwise order (at different angles). Simultaneously, the iterative nearest neighbor method (IPC algorithm) is used to determine the transformation matrix after each rotation (i.e., each rotation angle). The pose corresponding to each rotation is then used as the rotation matching result for that rotation angle. Based on the transformation matrix and the rotation matching result, the corresponding rotation matching value is calculated. The calculation process for the rotation matching value is automatic by the secondary precision positioning system and will not be detailed here.

[0139] The maximum value in the rotation matching values ​​is taken, and the rotation matching result corresponding to the maximum value is determined as the pose change result. This pose change result is recorded as the first pose change result. The above rotation matching operation is repeated once to obtain the second pose change result, which is recorded as the second pose change result.

[0140] Compare the difference between two pose change results. If the difference is less than or equal to a preset error, the average of the two pose change results is determined as the secondary positioning result. If the difference is greater than the preset error, the two pose change results are recalculated until the difference between the continuously calculated pose change results is less than or equal to the preset error. The preset error can be set according to actual needs.

[0141] Specifically, when the first calculation module 4 is executed, it converts the secondary positioning result into the corresponding actual odometer data according to the conversion relationship between pose information and odometer. The conversion process of the actual odometer data is based on existing technology and will not be described in detail here.

[0142] In some embodiments, after calculating the actual odometer data, the positioning device of the grinding robot can be set to compare the actual odometer data with the theoretical odometer data measured at the motor end of the grinding robot, and then calculate that the difference between the actual odometer data and the theoretical odometer data is greater than a certain value (a preset difference threshold). This proves that the vibration generated by the grinding robot during the grinding process affects the inertial measurement unit (IMU) of the grinding robot, resulting in inaccurate odometer readings at the motor end of the grinding robot.

[0143] Specifically, when optimization module 5 uses the unscented Kalman filter method based on particle swarm optimization algorithm to optimize the actual odometer data and obtain the optimized actual odometer data, it executes the following:

[0144] Obtain the running state variables of the polishing robot when performing the task, in order to generate the corresponding sigma points;

[0145] The Kalman gain data is calculated based on the running state variables and the sigma point.

[0146] Based on Kalman gain data, the actual odometer data is optimized using a particle swarm optimization algorithm to obtain optimized actual odometer data.

[0147] When the optimization module 5 is executed, it generates Sigma points corresponding to the operating state variables of the grinding robot during task execution. These operating state variables include variables describing the state of the grinding robot, such as position, orientation, and velocity.

[0148] ;

[0149] ;

[0150] ;

[0151] in, Let be the set of sigma points at time k-1. This refers to the predicted odometer data at time k-1 (the actual odometer data obtained from the above calculation); k is the kth time, generally referring to the current time; k-1 is the (k-1)th time, generally referring to the previous time. Let be the state covariance matrix at time k-1 (the previous time step); This is an adjustable parameter, where n is the dimension of the sigma points. Typically, these sigma points are located at the mean (i.e., ...). The mean is located at the covariance of each eigenvector principal axis and at the symmetric distribution along each eigenvector principal axis. (There are two sigma points symmetrically distributed along each dimension, so there are 2^n symmetric sigma points across n dimensions. The value corresponding to the last sigma point is the mean.) (that is, the point is located at the mean); The ith column vector of the sigma point in the previous time step in a single dimension is represented by the state covariance matrix of the previous time step. Obtained by singular value decomposition. Among them, the adjustable parameters... It can be configured according to actual needs.

[0152] Specifically, when optimization module 5 calculates the Kalman gain data based on the running state variables and sigma points, it executes the following:

[0153] The state covariance matrix is ​​calculated based on the running state variables and sigma points;

[0154] The Kalman gain data is calculated using the state covariance matrix.

[0155] During the execution of the grinding robot's task, optimization module 5 calculates the state covariance matrix based on the running state variables and sigma points.

[0156] ;

[0157] ;

[0158] ;

[0159] in, The i-th sigma point propagated from the previous time step is the prediction. It is a nonlinear motion model; This is the set of sigma points corresponding to the previous time step; To refine the robot's operating state variables; This represents the average of the sigma points propagated at the previous time step in the prediction. The weighting coefficients for calculating the average value of the sigma points; To measure noise, it is represented in matrix form; These are the weighting coefficients used to calculate the state covariance matrix at the previous time step. Where, when i=0, This represents the sigma point at the average value. Measurement noise can be set according to actual needs.

[0160] The Kalman gain data is calculated from the state covariance matrix. The specific formula for calculating the Kalman gain data is as follows:

[0161] ;

[0162] in, This is the Kalman gain data at the current moment; This is the transpose of the observation matrix at the current time. This is the observation matrix at the current moment; The process noise is represented in matrix form. The observation matrix and process noise can be set according to actual needs.

[0163] Specifically, when optimization module 5 optimizes the actual odometer data based on Kalman gain data using the particle swarm optimization algorithm to obtain the optimized actual odometer data, it performs the following:

[0164] Based on the particle swarm optimization algorithm, the optimizable parameters in the Kalman gain data are optimized to obtain the optimized Kalman gain data;

[0165] Based on the optimized Kalman gain data, the actual odometer data is optimized to obtain the optimized actual odometer data.

[0166] During execution, optimization module 5 iteratively optimizes the optimizable parameters in the Kalman gain data based on the particle swarm optimization algorithm. During iteration, it calculates the optimal position and velocity of the particles corresponding to these parameters to obtain the optimal solutions for these parameters, thus obtaining the optimal optimizable parameters. These optimal optimizable parameters are then applied to the Kalman gain data to obtain the optimized Kalman gain data. The optimizable parameters include process noise, measurement noise, adjustable parameters, and the dimension of the sigma points. Optimizing these parameters improves the accuracy and robustness of the Kalman filter (Kalman gain data). The calculation process of the particle swarm optimization algorithm is existing technology and will not be detailed here.

[0167] Based on the optimized Kalman gain data, the actual odometer data is optimized to obtain the optimized actual odometer data. The optimization process for the optimized actual odometer data is as follows:

[0168] ;

[0169] ;

[0170] in, This is the optimized actual odometer data for the current moment. This refers to the sensor's pose information at the current moment (or other data and information related to the odometer data). Let I be the state covariance matrix at the current moment; I is the n-order identity matrix, representing the n*n identity matrix, and I is determined according to the dimension of the sigma point.

[0171] Specifically, when the second calculation module 6 is executed, it calculates the position coordinates corresponding to the optimized actual odometer data based on the conversion relationship between pose information and odometer readings, thereby obtaining the actual positioning result of the grinding robot. The specific process of converting the optimized actual odometer data into corresponding position coordinates is based on existing technology and will not be detailed here.

[0172] As shown above, the positioning device for the grinding robot acquires point cloud data of the grinding robot during task execution. Using an adaptive Monte Carlo positioning algorithm, it calculates the initial positioning result of the grinding robot based on the point cloud data. Based on the initial positioning result, it calculates the secondary positioning result of the grinding robot using a non-destructive testing global positioning method and an iterative nearest-point method. Based on the conversion relationship between pose information and odometer readings, it calculates the actual odometer data corresponding to the secondary positioning result. Then, it optimizes the actual odometer data using an unscented Kalman filter method based on particle swarm optimization, obtaining the optimized actual odometer data. Finally, it calculates the position coordinates corresponding to the optimized actual odometer data to obtain the actual positioning result of the grinding robot. The phase information of the mirror-like object is calculated from the position result. An unscented Kalman filter based on particle swarm optimization is used to optimize the actual odometer data, resulting in optimized actual odometer data. Therefore, by using an unscented Kalman filter based on particle swarm optimization, the secondary positioning results obtained from the non-destructive testing global positioning method and the iterative nearest-point method are optimized to obtain the actual positioning result. This solves the problem of inaccurate odometer readings caused by significant vibrations generated by the grinding machine head during operation, which affects the positioning of the grinding robot. It reduces the impact of grinding machine vibration, enables positioning correction of the grinding robot, and improves its positioning efficiency.

[0173] Please refer to Figure 3 , Figure 3 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. The electronic device includes a processor 301 and a memory 302. The processor 301 and the memory 302 are interconnected and communicate with each other via a communication bus 303 and / or other forms of connection mechanisms (not shown). The memory 302 stores a computer program executable by the processor 301. When the electronic device is running, the processor 301 executes the computer program to perform the grinding robot positioning method in any optional implementation of the above embodiments, to achieve the following functions: acquiring point cloud data of the grinding robot when performing a task, and calculating the grinding depth based on the point cloud data using an adaptive Monte Carlo positioning algorithm. The robot's initial localization result is used to calculate the secondary localization result of the grinding robot through a non-destructive testing global localization method and an iterative nearest-point method. Based on the conversion relationship between pose information and odometry, the actual odometry data corresponding to the secondary localization result is calculated. An unscented Kalman filter method based on particle swarm optimization is used to optimize the actual odometry data, resulting in optimized actual odometry data. The position coordinates corresponding to the optimized actual odometry data are calculated to obtain the actual localization result of the grinding robot. The phase information of the mirror-like object is calculated, and an unscented Kalman filter method based on particle swarm optimization is used to optimize the actual odometry data, resulting in optimized actual odometry data.

[0174] This application provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, it executes the grinding robot localization method in any optional implementation of the above embodiments to achieve the following functions: acquiring point cloud data of the grinding robot when performing a task; calculating the preliminary localization result of the grinding robot based on the point cloud data using an adaptive Monte Carlo localization algorithm; calculating the secondary localization result of the grinding robot based on the preliminary localization result using a non-destructive testing global localization method and an iterative nearest-point method; calculating the actual odometer data corresponding to the secondary localization result based on the conversion relationship between pose information and odometer readings; optimizing the actual odometer data using an unscented Kalman filter method based on a particle swarm optimization algorithm to obtain optimized actual odometer data; calculating the position coordinates corresponding to the optimized actual odometer data to obtain the actual localization result of the grinding robot; calculating the phase information of a mirror-like object; and optimizing the actual odometer data using an unscented Kalman filter method based on a particle swarm optimization algorithm to obtain optimized actual odometer data. The storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as Static Random Access Memory (SRAM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Erasable Programmable Read Only Memory (EPROM), Programmable Red-Only Memory (PROM), Read-Only Memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk.

[0175] In the embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. The apparatus embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. Furthermore, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Additionally, the displayed or discussed mutual couplings, direct couplings, or communication connections may be through some communication interfaces; indirect couplings or communication connections between devices or units may be electrical, mechanical, or other forms.

[0176] Furthermore, the units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment, depending on actual needs.

[0177] Furthermore, the functional modules in the various embodiments of this application can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.

[0178] In this document, relational terms such as first and second are used only to distinguish one entity or operation from another entity or operation, without necessarily requiring or implying any such actual relationship or order between these entities or operations.

[0179] The above description is merely an embodiment of this application and is not intended to limit the scope of protection of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.

Claims

1. A polishing robot positioning method for positioning a polishing robot, characterized by, Including the following steps: Acquire point cloud data of the polishing robot while it is performing its task; Using the adaptive Monte Carlo localization algorithm and based on the point cloud data, the preliminary localization result of the polishing robot is calculated. Based on the preliminary positioning results, the secondary positioning results of the grinding robot are calculated using the non-destructive testing global positioning method and the iterative nearest point method. Based on the conversion relationship between pose information and odometer readings, the actual odometer data corresponding to the secondary positioning result is calculated. The actual odometer data is optimized using an unscented Kalman filter method based on particle swarm optimization algorithm to obtain optimized actual odometer data. Calculate the position coordinates corresponding to the optimized actual odometer data to obtain the actual positioning result of the grinding robot; The actual odometer data is optimized using an unscented Kalman filter method based on particle swarm optimization, resulting in optimized actual odometer data, including: Obtain the running state variables of the polishing robot when performing the task, in order to generate the corresponding sigma points; The Kalman gain data is calculated based on the operating state variables and the sigma point. Based on the Kalman gain data, the actual odometer data is optimized using a particle swarm optimization algorithm to obtain optimized actual odometer data. Based on the Kalman gain data, the actual odometer data is optimized using a particle swarm optimization algorithm to obtain optimized actual odometer data, including: Based on the particle swarm optimization algorithm, the optimizable parameters in the Kalman gain data are optimized to obtain the optimized Kalman gain data. Based on the optimized Kalman gain data, the actual odometer data is optimized to obtain the optimized actual odometer data.

2. The polishing robot positioning method according to claim 1, wherein The point cloud data includes map point cloud data and laser point cloud data; the point cloud data acquired when the grinding robot performs its task includes: While the polishing robot is performing its task, map data and laser data within a preset range are acquired, centered on the polishing robot. Convert the map data into map point cloud data; The laser data is converted into laser point cloud data.

3. The polishing robot positioning method according to claim 1, wherein Based on the preliminary positioning results, the secondary positioning results of the grinding robot are calculated using the non-destructive testing global positioning method and the iterative nearest-point method, including: The global positioning result is obtained by performing global positioning on the preliminary positioning result using the aforementioned non-destructive testing global positioning method. Based on the global positioning result, local secondary positioning is performed using the iterative nearest-point method to calculate the secondary positioning result of the grinding robot.

4. The polishing robot positioning method according to claim 3, wherein Based on the global positioning result, local secondary positioning is performed using the iterative nearest-point method to calculate the secondary positioning result of the grinding robot, including: While rotating the global positioning result multiple times according to the preset rotation angle, the rotation matching result and the corresponding rotation matching value are calculated for each rotation angle using the iterative nearest point method. Extract the maximum value from the rotation matching values, and determine the rotation matching result corresponding to the maximum value as the pose change result, denoted as the first pose change result; Repeat the rotation matching operation to obtain the second pose change result, which is denoted as the second pose change result; Determine whether the difference between the second pose change result and the first pose change result is less than or equal to a preset error; if yes, determine that the average of the second pose change result and the first pose change result is the secondary positioning result; if no, recalculate the first pose change result and the second pose change result until the difference is less than or equal to the preset error.

5. The polishing robot positioning method according to claim 1, wherein, Based on the operating state variables and the sigma point, the Kalman gain data is calculated, including: The state covariance matrix is ​​calculated based on the operating state variables and the sigma points. The Kalman gain data is calculated using the state covariance matrix.

6. A positioning device for a grinding robot, used for positioning a grinding robot, characterized in that, include: The acquisition module is used to acquire point cloud data of the polishing robot when it is performing a task. The preliminary positioning module is used to calculate the preliminary positioning result of the polishing robot based on the point cloud data using an adaptive Monte Carlo positioning algorithm. The secondary positioning module is used to calculate the secondary positioning result of the grinding robot based on the preliminary positioning result, using a non-destructive testing global positioning method and an iterative nearest-point method. The first calculation module is used to calculate the actual odometer data corresponding to the secondary positioning result based on the conversion relationship between pose information and odometer. The optimization module is used to optimize the actual odometer data using an unscented Kalman filter method based on particle swarm optimization algorithm, so as to obtain optimized actual odometer data. The second calculation module is used to calculate the position coordinates corresponding to the optimized actual odometer data to obtain the actual positioning result of the grinding robot. The optimization module is used to optimize the actual odometer data using an unscented Kalman filter method based on particle swarm optimization algorithm, to obtain optimized actual odometer data, including: Obtain the running state variables of the polishing robot when performing the task, in order to generate the corresponding sigma points; The Kalman gain data is calculated based on the operating state variables and the sigma point. Based on the Kalman gain data, the actual odometer data is optimized using a particle swarm optimization algorithm to obtain optimized actual odometer data. Based on the Kalman gain data, the actual odometer data is optimized using a particle swarm optimization algorithm to obtain optimized actual odometer data, including: Based on the particle swarm optimization algorithm, the optimizable parameters in the Kalman gain data are optimized to obtain the optimized Kalman gain data. Based on the optimized Kalman gain data, the actual odometer data is optimized to obtain the optimized actual odometer data.

7. An electronic device, characterized in that, It includes a processor and a memory, the memory storing a computer program executable by the processor, and when the processor executes the computer program, it performs the steps in the grinding robot positioning method as described in any one of claims 1-5.

8. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it performs the steps in the grinding robot positioning method as described in any one of claims 1-5.