Method and equipment for evaluating laser matching precision of robot
The method uses probability grid maps and map scaling to enhance computational efficiency and accuracy in laser matching, addressing computational complexity and detection limitations of existing algorithms.
Patent Information
- Application Number
- CN202311804679.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-25
- Publication Date
- 2024-12-24
AI Technical Summary
Existing laser matching algorithms face challenges with complex computations affecting efficiency and timeliness, especially for large-scale data, and inaccuracies in small sample sizes, particularly in high-dimensional scenarios, and the inability to detect environments behind transparent objects.
A method involving probability grid maps to determine pixel probabilities of intersection points, map scaling to balance accuracy and speed, and calculating laser matching accuracy based on these probabilities, using processors and memory to execute computer-readable instructions.
Improves computational efficiency and accuracy by considering each intersection point, providing a more representative and accurate assessment of laser matching accuracy.
Smart Images

Figure CN119179063A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computers, and in particular to a method and device for evaluating the accuracy of robot laser matching. Background Art
[0002] As one of the core technologies for positioning and navigation in the field of robotics, the laser matching algorithm involves the comprehensive application of multiple disciplines and technical fields. The development of the laser matching algorithm is closely related to the rise of SLAM technology. SLAM is a technology that uses the robot's own sensor information to build a map in real time and locate at the same time. As a key component of the SLAM system, the laser matching algorithm is responsible for processing the point cloud data generated by the lidar sensor and matching the robot's current position with the map. With the continuous advancement of lidar technology, from the early mechanical scanning lidar to today's solid-state lidar, sensors can provide more high-resolution and accurate environmental data. This provides more information for the laser matching algorithm, allowing robots to locate and navigate more accurately in complex environments.
[0003] LiDAR usually outputs discrete point cloud data, each point represents the reflection point of the laser beam in the environment. The laser matching algorithm needs to process these point cloud data effectively. Point cloud data can be regarded as an abstract representation of the robot's environment, so useful features such as edges, planes, etc. need to be extracted from the point cloud during the matching process. In practical applications, the laser matching algorithm not only needs to ensure the accuracy of the matching, but also needs to consider real-time and robustness. Robots usually need to navigate in dynamic environments, so the laser matching algorithm must be able to complete the matching in a short time. In order to improve real-time performance, researchers continue to optimize the computational efficiency of the algorithm, such as introducing parallel computing, hardware acceleration and other technologies.
[0004] The core of the laser matching algorithm is the iterative closest point algorithm, which continuously optimizes the robot's posture through iteration to minimize the matching error between the current laser scanning data and the map. The basic idea of the ICP algorithm is to find the closest points in the two sets of point clouds, and then continuously iterate through optimization to minimize their matching error. The advantages of the ICP algorithm lie in its simple and intuitive principle and high matching accuracy. However, the ICP algorithm also faces some challenges, such as sensitivity to the initial posture and the problem of local optimal solution. Therefore, researchers have made many improvements based on the ICP algorithm, including the use of variant ICP algorithms and the introduction of inertial information, in order to improve the robustness and adaptability of the matching algorithm.
[0005] Laser matching algorithms have been widely used in many fields. Among them, self-driving cars, drones, service robots and other fields are the main application directions. In self-driving cars, laser matching algorithms can be used to achieve real-time positioning and environmental perception of vehicles, ensuring that the vehicle can accurately perceive the surrounding environment and navigate safely and efficiently. In the field of drones, laser matching algorithms can be used for autonomous navigation of drones, enabling them to perform trajectory planning and obstacle avoidance operations in complex environments. In the field of service robots, robots need to achieve positioning and navigation in unknown environments, and laser matching algorithms provide them with real-time and accurate location information.
[0006] In addition, laser matching algorithms are also used in industrial automation, indoor positioning, architecture and urban planning. In industrial automation, robots need to locate and plan paths inside the factory to perform various tasks, such as handling and assembly. In indoor positioning, laser matching algorithms can be used to achieve positioning and navigation in indoor environments, which plays an important role in the automation of smart homes and offices. In architecture and urban planning, laser matching algorithms can be used to build high-precision three-dimensional maps to provide data support for urban planning and management.
[0007] Some existing matching algorithms have the following problems: they are computationally complex, especially for large-scale data, the complexity of the algorithm may affect the computational efficiency and real-time performance; when the sample size is small, the estimation of the scoring model may not be stable enough, resulting in inaccurate matching, especially in the case of high-dimensional data, more samples are needed to ensure the accuracy of the model; if the real processing effect has a nonlinear relationship, and the scoring model uses a linear model, it may not be able to accurately capture the real processing effect; lasers cannot penetrate transparent objects, so they cannot detect the environment behind transparent objects, which may cause problems in some specific situations. Summary of the invention
[0008] One purpose of the present application is to provide a method and device for evaluating the accuracy of robot laser matching, so as to solve the problems in the prior art of complex calculations affecting calculation efficiency and timeliness, and inaccurate matching.
[0009] According to one aspect of the present application, a method for evaluating the accuracy of robot laser matching is provided, the method comprising:
[0010] Determine each point of the area where the robot's laser ray passes through and intersects with the robot's grid map, and determine the pixel probability of each intersection point;
[0011] Scaling the robot grid map to obtain a target map;
[0012] The robot laser matching accuracy is calculated based on the pixel probability of each intersection point and the target map.
[0013] Optionally, determining each point where the robot's laser ray passes through an area and intersects with the robot's grid map includes:
[0014] Acquire return data points of the laser radar, and select target data points whose distance is less than the maximum detection distance of the laser radar from the return data points;
[0015] Determine the line segment from the laser radar to each target data point, and determine each point where the line segment intersects with the robot grid map in the area it passes through.
[0016] Optionally, determining the pixel probability of each intersection point includes:
[0017] Create a variable for accumulating probability values, traverse each intersection point, and determine whether the cell where the intersection point is located is known in the probability grid of the known grid map. If so, add the probability value of the cell to the variable, if not, add the preset minimum probability value.
[0018] Optionally, the method comprises:
[0019] A vector container is created, and the calculated pixel probability of each intersection point is stored in the vector container.
[0020] Optionally, performing map scaling on the robot grid map includes:
[0021] According to the slope type of the line segment in the grid map, each point in the line segment is scaled using the corresponding scaling method.
[0022] Optionally, each point in the line segment is scaled using a corresponding scaling method, including:
[0023] For the line segments without slope in the grid map, the point with the smallest ordinate in the line segment is taken as the starting point, and the coordinates of the scaling starting point in the coordinate system are assigned to the current point;
[0024] Use the current point as an iterator and enter a loop, each time increasing the vertical coordinate of the current point by one unit in the scaled coordinate system, and store the current point in a vector container until the current point coincides with the end point of the line segment.
[0025] Optionally, each point in the line segment is scaled using a corresponding scaling method, including:
[0026] For the line segments with slopes greater than 0 in the grid map, the difference between the starting point coordinates and the end point coordinates on the horizontal axis and the vertical axis is calculated to obtain the horizontal coordinate difference and the vertical coordinate difference;
[0027] Determine the scaling ratio according to the horizontal coordinate difference and obtain the denominator;
[0028] Set the value of the current point and store it in the vector container, and define the horizontal coordinate end point value and the vertical coordinate variable;
[0029] Determine whether the current point is equal to the last point in the vector container. If not, enter the comparison loop of the ordinate variable and the denominator to determine whether the ordinate variable is greater than the denominator. If so, subtract the denominator from the ordinate variable and increase the ordinate of the current point by 1 until the loop ends.
[0030] Increase the horizontal coordinate of the current point by 1, and determine whether the value of the horizontal coordinate of the current point after the increase is equal to the value of the end point of the horizontal coordinate. If so, end the loop. If not, update the vertical coordinate variable according to the zoom ratio and the vertical coordinate difference, and enter the next zoom grid.
[0031] Optionally, after determining the pixel probability of each intersection point, the method further comprises:
[0032] Create an empty cell accumulation variable to accumulate the sum of the points marked as non-obstacles in the raster map;
[0033] Create a variable for the number of empty cells to accumulate the total number of points marked as non-obstacles in the grid map;
[0034] Traverse each cell in the line segment to determine whether the traversed cell is known. If so, update the vacant cell accumulation variable to the complement of the pixel probability of the cell. If not, add the set minimum probability value and update the vacant cell number variable.
[0035] Optionally, the robot laser matching accuracy is calculated based on the obtained pixel probability of each intersection point and the target map, including:
[0036] Calculate the average probability score of all points in the vector container, normalize the obtained average probability score, and obtain a normalized average probability score;
[0037] Calculate the score of the mean complement based on the probability in the empty cells, and normalize the obtained mean complement score to obtain a normalized mean complement score;
[0038] The normalized mean probability score is multiplied by the normalized mean complement score to obtain the robot laser matching accuracy.
[0039] According to another aspect of the present application, a device for evaluating the accuracy of robot laser matching is also provided, the device comprising:
[0040] one or more processors; and
[0041] A memory storing computer readable instructions, which, when executed, cause the processor to perform the operations of the method as described above.
[0042] According to another aspect of the present application, a computer-readable medium is provided, on which computer-readable instructions are stored. The computer-readable instructions can be executed by a processor to implement the method described above.
[0043] Compared with the prior art, the present application determines the pixel probability of each intersection point of the area where the robot laser ray passes through and the robot grid map; performs map scaling on the robot grid map to obtain the target map; and calculates the robot laser matching accuracy based on the obtained pixel probability of each intersection point and the target map. Thus, each intersection point is involved in the calculation, and the calculation effect and speed are comprehensively considered, using a calculation method that is more suitable for high-speed calculations to replace a calculation method with low calculation efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] Other features, objects and advantages of the present application will become more apparent by reading the detailed description of non-limiting embodiments made with reference to the following drawings:
[0045] Figure 1 A schematic flow chart of a method for evaluating robot laser matching accuracy provided according to one aspect of the present application is shown.
[0046] The same or similar reference numerals in the drawings represent the same or similar components. DETAILED DESCRIPTION
[0047] The present application is described in further detail below in conjunction with the accompanying drawings.
[0048] In a typical configuration of the present application, the terminal, the device of the service network and the trusted party all include one or more processors (eg, a central processing unit (CPU)), an input / output interface, a network interface and a memory.
[0049] Memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.
[0050] Computer readable media include permanent and non-permanent, removable and non-removable media that can be used to store information by any method or technology. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, Phase-Change RAM (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of random access memory (RAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Flash memory or other memory technology, Compact Disc Read-Only Memory (CD-ROM), Digital Versatile Disk (DVD) or other optical storage, magnetic cassettes, tape disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. According to the definition in this article, computer-readable media does not include non-transitory media such as modulated data signals and carrier waves.
[0051] Figure 1 A schematic flow chart of a method for evaluating the accuracy of robot laser matching provided according to one aspect of the present application is shown, the method comprising: steps S11 to S13, wherein:
[0052] Step S11, determine each point of the area where the robot laser ray passes through that intersects with the robot grid map, and determine the pixel probability of each intersecting point; here, in the embodiment of the present application, a probability grid map is used, and this type of map form divides the environment into grids, and each grid has two states: occupied or idle. Unlike traditional binary maps, probability maps introduce probability representation and more flexibly handle perception errors of the environment. For each grid, probability is used to represent its possibility of being occupied, usually expressed as a probability value. At the same time, through the complementary relationship of probability, the probability of being idle can be calculated, that is, 1-probability value. These probability values can reflect the robot's uncertainty about the state of the environment. The use of probability grid maps is very important for the robot's perception and planning in the environment, because it can more accurately reflect the robot's cognition of the environment, while being able to handle sensor errors and uncertainties. Probability maps are usually continuously updated through the fusion of observation data and probability update algorithms to improve the accuracy of the map. In probability maps, the resolution of the map refers to how many small grids the environment is divided into. High-resolution maps can provide more detailed environmental information, but also require more computing resources. In the embodiment of the present application, attention is paid to the laser data actually irradiated on the obstacle. Each point in the area passed by the laser beam that intersects with the robot grid map is first determined, so as to calculate the pixel probability of the grid where each intersection point is located. All points in the grid probability map that intersect with the laser beam are involved in the calculation. Each point has its own role, and the matching accuracy is more accurate.
[0053] Step S12, scaling the robot grid map to obtain a target map; here, the grid probability map is composed of a plurality of small grids, and high-resolution grids can provide more detailed environmental information, but also require more computing resources. The computing effect and computing speed are comprehensively considered, and the map scaling method is adopted to dynamically adjust the balance between the computing effect and the computing speed according to the requirements of different computing performance. In the embodiment of the present application, a scaling ratio is added to change the map scale in order to achieve the best balance between accuracy and computing speed.
[0054] Step S13, the robot laser matching accuracy is calculated based on the pixel probability of each intersecting point and the target map. Here, all points in the grid probability map that intersect with the laser beam are used to participate in the calculation, and the final laser matching accuracy is calculated using the obtained pixel probability and changing the map scale according to performance requirements. Use a calculation method that is more suitable for high-speed computing to replace a calculation method with low calculation efficiency.
[0055] In one embodiment of the present application, in step S11, the return data points of the laser radar are obtained, and the target data points whose distance is less than the maximum detection distance of the laser radar are selected from the return data points; the line segment from the laser radar to each target data point is determined, and each point where the line segment passes through the area and intersects with the robot grid map is determined. Here, in the return data of the laser radar, there are two major types of return data points. If the distance of some data points is less than the maximum detection distance of the laser radar, a return value is obtained, including the distance and angle of the point, so that a line segment from the laser radar to the point can be drawn. The distance of some data points is equal to the maximum detection distance of the laser radar, but in fact the point does not fall on an actual obstacle, because the laser line does not irradiate the actual object in the effective azimuth, but has exceeded the actual range, so the laser radar driver assigns it a default value, that is, the maximum range of the radar, which means that the actual obstacle has exceeded the maximum range. In the embodiment of the present application, only the laser data actually irradiated on the obstacle is concerned.
[0056] Next, create a variable for accumulating probability values, traverse each intersection point, and determine whether the cell where the intersection point is located is known in the probability grid of the known grid map. If so, add the probability value of the cell to the variable, if not, add the preset minimum probability value. Here, using the probability grid map, assume that the probability represented by each grid is known, the probability value is positive, and the value range is 0.1 to 0.9. The higher the probability value, the higher the probability that the grid is occupied by an obstacle. Create a variable sum for accumulating probability values. Traverse these laser points that are actually irradiated on the obstacle. For each point, you can query whether the cell is known in the known probability grid; if it is known, add the probability value of the cell to sum, otherwise, add a minimum probability value, which is the minimum value of the value range of the probability represented by the grid, 0.1. Then you need to calculate the probability of other pixels in the laser line segment represented by this point.
[0057] To this end, assume that two points in two-dimensional space are known, one of which is named begin and the other is end. The x-coordinates and y-coordinates of the two points are known, and the two points determine a line segment on the two-dimensional plane. First, check the x-coordinates of begin and end. If the x-coordinate of begin is greater than the x-coordinate of end, swap their positions to ensure that the x-coordinate of begin is less than or equal to the x-coordinate of end. Then, check whether the coordinates of the starting point and the end point are negative. If so, it means that the ray has crossed the boundary and the operation ends directly.
[0058] Continuing from the above embodiment, a vector container is created, and the calculated pixel probability of each intersection point is stored in the vector container. Here, a vector container is created for calculating the pixel probability and temporarily storing the result of each intersection point calculated, so as to facilitate the subsequent matching score calculation.
[0059] In one embodiment of the present application, in step S12, for the slope type of the line segment in the grid map, each point in the line segment is scaled using a corresponding scaling method. Here, the slope types of the line segments in the grid map are different, so the scaling methods are different. The slope types include no slope, slope equal to 0, slope greater than 0, and slope less than 0, so that each scaling grid is calculated for different slopes.
[0060] Specifically, for the line segment without slope in the grid map, the point with the smallest ordinate in the line segment is used as the starting point, and the coordinates of the starting point in the scaled coordinate system are assigned to the current point; the current point is used as an iterator to enter the loop, and the ordinate of the current point is increased by one unit in the scaled coordinate system each time, and the current point is stored in the vector container until the current point coincides with the end point in the line segment. Here, in the case where the line segment has no slope, or when the slope approaches infinity, after the grid is scaled, it can be simply considered that each pixel in the line segment has the same horizontal coordinate, that is, the starting point and the end point have the same horizontal coordinate x. The point with the smaller ordinate y value is used as the starting point, and the coordinates of the starting point in the scaled coordinate system are assigned to the current point. The current point is used as an iterator to enter the loop, and the y coordinate of the current point is increased by one unit in the scaled coordinate system each time; then the current point is stored in the created vector container until the current point coincides with the end point in the line segment, and the calculation of the vertical line segment is completed.
[0061] Specifically, for line segments with slopes greater than 0 in the grid map, the difference between the starting point coordinates and the end point coordinates on the horizontal and vertical axes is calculated to obtain the horizontal coordinate difference and the vertical coordinate difference; the scaling ratio is determined according to the horizontal coordinate difference to obtain the denominator; the value of the current point is set and stored in the vector container, and the horizontal coordinate end point value and the vertical coordinate variable are defined; it is determined whether the current point is equal to the last point in the vector container, if not, the vertical coordinate variable and the denominator comparison loop is entered to determine whether the vertical coordinate variable is greater than the denominator, if so, the denominator is subtracted from the vertical coordinate variable, and the vertical coordinate of the current point is increased by 1 until the loop ends; the horizontal coordinate of the current point is increased by 1, and it is determined whether the value of the horizontal coordinate after the increase of the current point is equal to the horizontal coordinate end point value, if so, the loop ends, if not, the vertical coordinate variable is updated according to the scaling ratio and the vertical coordinate difference, and the next scaling grid is entered. Here, when the slope is greater than 0, first calculate the difference and denominator, which will be used in the subsequent pixel coordinate calculation, where the difference is the difference between the starting point coordinate and the end point coordinate on the x-axis and y-axis, respectively recorded as dx and dy; the denominator is to improve the calculation efficiency, and its value is twice the scale plus the x-axis difference, which is equal to 2*scale*dx. Then, as in the case of the vertical line segment, first set the current point, take its value as the starting point (begin point) divided by the scale, and put the point into the container. Then calculate the position of the starting point in the scaled grid where it is located, define the scale ratio as scale, then the distance from the first point to the right border of the grid where it is located is 2*(scale-begin.x()%scale)-1, named first, and the distance from the last point to the left border of the grid where it is located is 2*(end.x()%scale)+1, named last; where begin.x() and end.x() respectively represent the x coordinate of the starting point and the x coordinate of the end point of a line segment formed by a laser point in a frame of laser radar data on the probability grid map and the origin of the laser radar's own coordinate system. Define a value endX as max(begin.x(),end.x()) / scale, and subY equal to (2*(begin.y()%scale)+1)*dx, where begin.y() represents the y coordinate of the starting point of a line segment formed by a laser point in a frame of laser radar data on the probability grid map and the origin of the laser radar's own coordinate system. Then add the difference between the start and end coordinates on the y axis and the product of first to endX, that is, the new subY is equal to (2*(begin.y()%scale)+1)*dx plus dy*first. Enter the loop. If the current point is equal to the last point in the result container, discard the current point. Otherwise, enter the comparison loop between subY and the denominator. As long as subY is larger than the denominator, subtract the denominator from subY and increase the y coordinate of the current point by 1. And so on, until the loop condition is not met.Next, increase the x coordinate of the current point by 1. Then determine whether subY is equal to the denominator. If so, subtract the denominator from subY and increase the y coordinate of the current point by 1. If the x coordinate of the current point is equal to the x coordinate of the end point, end the loop. If not, add 2*dy*scale to subY and enter the next large scaled grid. When all the intermediate scaled grids have been calculated, add dy*last to subY, calculate the last large grid, enter the loop, and if subY>denominator is satisfied, subtract the denominator from subY and increase the y coordinate of the current point by 1. Otherwise, exit the loop. When the slope is less than 0, use the above calculation process when the slope is greater than 0.
[0062] In one embodiment of the present application, after determining the pixel probability of each intersecting point, create an empty cell accumulation variable for accumulating the sum of the points marked as non-obstacles in the grid map; create an empty cell number variable for accumulating the sum of the number of points marked as non-obstacles in the grid map; traverse each cell in the line segment, determine whether the traversed cell is known, if so, update the empty cell accumulation variable to the complement of the pixel probability of the cell, if not, add the set minimum probability value, and update the empty cell number variable. Here, after calculating the pixels in the line segment, create an empty cell accumulation variable (sum_free) for accumulating the sum of free, and create an empty cell number variable (size_free) for accumulating the sum of size, where free is a point marked as a non-obstacle in the grid probability map, and the cell where it is located is an empty cell, and size refers to the number of points marked as non-obstacles in the grid probability map. Iterate over each cell in the line segment and check if it is known in the probability grid. If so, update sum_free to the complement of the probability (1 minus the probability), otherwise, add the minimum probability value. Update size_free, which is the number of cells in the input point cloud that are considered free, that is, the number of cells in the middle of the line segment.
[0063] In one embodiment of the present application, in step S13, the score of the average probability of all points in the vector container is calculated, and the obtained average probability score is normalized to obtain a normalized average probability score; the score of the average complement based on the probability in the vacant cells is calculated, and the obtained average complement score is normalized to obtain a normalized average complement score; the normalized average probability score is multiplied by the normalized average complement score to obtain the robot laser matching accuracy. Here, the score of the average probability based on the midpoint of the range data is calculated, and the ratio of the sum of the probability values of all points in the container in the probability map to the total number of laser points in a frame of laser radar data is used as the score of the average probability; and the score is normalized within the range of minimum probability and maximum probability. The score of the average complement based on the probability in the vacant cells, i.e., sum_free / size_free, is calculated, so as to evaluate the score from the two dimensions of probability and quantity. Similarly, the score is normalized within the range of minimum probability and maximum probability. Finally, the above two scores are multiplied together to obtain the final score, which is used as the final matching result. The higher the score, the higher the matching accuracy. Compared with simply calculating the distance between each matching laser point pair after matching the robot's laser data with a known map, mapping it into a matching accuracy score is more effective and more representative.
[0064] In addition, an embodiment of the present application also provides a computer-readable medium on which computer-readable instructions are stored. The computer-readable instructions can be executed by a processor to implement the aforementioned method for evaluating the accuracy of robot laser matching.
[0065] In one embodiment of the present application, a device for evaluating the accuracy of robot laser matching is also provided, the device comprising:
[0066] one or more processors; and
[0067] A memory storing computer readable instructions, which, when executed, cause the processor to perform the operations of the method as described above.
[0068] For example, the computer readable instructions, when executed, cause the one or more processors to:
[0069] Determine each point of the area where the robot's laser ray passes through and intersects with the robot's grid map, and determine the pixel probability of each intersection point;
[0070] Scaling the robot grid map to obtain a target map;
[0071] The robot laser matching accuracy is calculated based on the pixel probability of each intersection point and the target map.
[0072] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
[0073] It should be noted that the present application can be implemented in software and / or a combination of software and hardware, for example, can be implemented using an application specific integrated circuit (ASIC), a general purpose computer or any other similar hardware device. In one embodiment, the software program of the present application can be executed by a processor to implement the steps or functions described above. Similarly, the software program of the present application (including relevant data structures) can be stored in a computer-readable recording medium, for example, a RAM memory, a magnetic or optical drive or a floppy disk and similar devices. In addition, some steps or functions of the present application can be implemented using hardware, for example, as a circuit that cooperates with a processor to perform each step or function.
[0074] In addition, a part of the present application may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present application through the operation of the computer. The program instruction for calling the method of the present application may be stored in a fixed or removable recording medium, and / or transmitted through a data stream in a broadcast or other signal-bearing medium, and / or stored in a working memory of a computer device that runs according to the program instruction. Here, according to an embodiment of the present application, a device is included, the device including a memory for storing computer program instructions and a processor for executing program instructions, wherein, when the computer program instruction is executed by the processor, the device is triggered to run the method and / or technical solution based on the aforementioned multiple embodiments according to the present application.
[0075] It is obvious to those skilled in the art that the present application is not limited to the details of the above exemplary embodiments, and that the present application can be implemented in other specific forms without departing from the spirit or basic features of the present application. Therefore, from any point of view, the embodiments should be regarded as exemplary and non-restrictive, and the scope of the present application is defined by the appended claims rather than the above description, and it is intended that all changes falling within the meaning and scope of the equivalent elements of the claims are included in the present application. Any figure mark in the claims should not be regarded as limiting the claims involved. In addition, it is obvious that the word "comprising" does not exclude other units or steps, and the singular does not exclude the plural. The words first, second, etc. are used to indicate names, and do not indicate any particular order.
Claims
1. A method for evaluating the accuracy of robot laser matching, characterized in that: The method comprises: Determine each point of the area where the robot's laser ray passes through and intersects with the robot's grid map, and determine the pixel probability of each intersection point; Scaling the robot grid map to obtain a target map; The robot laser matching accuracy is calculated based on the pixel probability of each intersection point and the target map.
2. The method according to claim 1, characterized in that Determine each point where the robot's laser ray passes through the area and intersects with the robot's grid map, including: Acquire return data points of the laser radar, and select target data points whose distance is less than the maximum detection distance of the laser radar from the return data points; Determine the line segment from the laser radar to each target data point, and determine each point where the line segment intersects with the robot grid map in the area it passes through.
3. The method according to claim 1 or 2, characterized in that: Determine the pixel probability for each intersection point, including: Create a variable for accumulating probability values, traverse each intersection point, and determine whether the cell where the intersection point is located is known in the probability grid of the known grid map. If so, add the probability value of the cell to the variable, if not, add the preset minimum probability value.
4. The method according to claim 1, characterized in that: The method comprises: A vector container is created, and the calculated pixel probability of each intersection point is stored in the vector container.
5. The method according to claim 1, characterized in that Scaling the robot grid map includes: According to the slope type of the line segment in the grid map, each point in the line segment is scaled using the corresponding scaling method.
6. The method according to claim 5, characterized in that Use the corresponding scaling method to scale each point in the line segment, including: For the line segments without slope in the grid map, the point with the smallest ordinate in the line segment is taken as the starting point, and the coordinates of the scaling starting point in the coordinate system are assigned to the current point; Use the current point as an iterator and enter a loop, each time increasing the vertical coordinate of the current point by one unit in the scaled coordinate system, and store the current point in a vector container until the current point coincides with the end point of the line segment.
7. The method according to claim 5, characterized in that Use the corresponding scaling method to scale each point in the line segment, including: For the line segments with slopes greater than 0 in the grid map, the difference between the starting point coordinates and the end point coordinates on the horizontal axis and the vertical axis is calculated to obtain the horizontal coordinate difference and the vertical coordinate difference; Determine the scaling ratio according to the horizontal coordinate difference and obtain the denominator; Set the value of the current point and store it in the vector container, and define the horizontal coordinate end point value and the vertical coordinate variable; Determine whether the current point is equal to the last point in the vector container. If not, enter the comparison loop of the ordinate variable and the denominator to determine whether the ordinate variable is greater than the denominator. If so, subtract the denominator from the ordinate variable and increase the ordinate of the current point by 1 until the loop ends. Increase the horizontal coordinate of the current point by 1, and determine whether the value of the horizontal coordinate of the current point after the increase is equal to the value of the end point of the horizontal coordinate. If so, end the loop. If not, update the vertical coordinate variable according to the zoom ratio and the vertical coordinate difference, and enter the next zoom grid.
8. The method according to claim 2, characterized in that: After determining the pixel probability of each intersection point, including: Create an empty cell accumulation variable to accumulate the sum of the points marked as non-obstacles in the raster map; Create a variable for the number of empty cells to accumulate the total number of points marked as non-obstacles in the grid map; Traverse each cell in the line segment to determine whether the traversed cell is known. If so, update the vacant cell accumulation variable to the complement of the pixel probability of the cell. If not, add the set minimum probability value and update the vacant cell number variable.
9. The method according to claim 8, characterized in that The robot laser matching accuracy is calculated based on the pixel probability of each intersection point and the target map, including: Calculate the average probability score of all points in the vector container, normalize the obtained average probability score, and obtain a normalized average probability score; Calculate the score of the mean complement based on the probability in the empty cells, and normalize the obtained mean complement score to obtain a normalized mean complement score; The normalized mean probability score is multiplied by the normalized mean complement score to obtain the robot laser matching accuracy.
10. A device for evaluating the accuracy of robot laser matching, characterized in that: The device comprises: one or more processors; and A memory storing computer readable instructions which, when executed, cause the processor to perform the operations of the method as claimed in any one of claims 1 to 9.
11. A computer-readable medium having computer-readable instructions stored thereon, wherein the computer-readable instructions can be executed by a processor to implement the method according to any one of claims 1 to 9.
Citation Information
Cited By
Multi-layer map-based relocation accelerated computing method and chip
WO2026208798A1
