Body-equipped robot mapping method, body-equipped robot system and control equipment

By determining the current position and generating a plane grid during the robot's drawing construction process, combining this information to determine the keyframe and update the raster map, the problem of poor real-time performance of traditional drawing construction technology is solved and the accuracy of drawing construction is improved.

CN120122663AActive Publication Date: 2025-06-10WOCAO TECH (SHENZHEN) CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202510581013.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-07
Publication Date
2025-06-10
Estimated Expiration
2045-05-07

AI Technical Summary

Technical Problem

Traditional robot map construction technology affects the accuracy of map construction due to poor real-time performance.

Method used

Keyframes are determined by determining the robot's current position and generating the current plane grid when it is in the target scenario, combining the robot's current position and plane grid, and updating the raster map with point cloud data in the keyframe.

Benefits of technology

Improve the real-time update of raster maps and improve the accuracy of map creation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120122663A_ABST
    Figure CN120122663A_ABST
Patent Text Reader

Abstract

The invention relates to a mapping method of a body-equipped robot, a body-equipped robot system and control equipment. The method comprises the steps of determining a current position of a robot in a mapping process of the robot in a target scene, and generating a current plane grid by taking the current position as a central position; under the condition that the robot is located in the current plane grid currently, a target grid where the robot is located in the current plane grid currently and a count value corresponding to the target grid are determined, and the count value reflects the duration that the robot passes through an area represented by the target grid in the mapping process; when the count value corresponding to the target grid is smaller than or equal to a preset count threshold value, determining the current frame as a key frame; and updating the raster map of the robot by using the point cloud data in the key frame. By adopting the method, the mapping accuracy can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of robots, and in particular, to a method for an embodied robot to build a map, an embodied robot system, and a control device. Background Art

[0002] With the development of robot technology, there are more and more types of robots, and their applications are also becoming more and more extensive. For example, robots can be used for floor cleaning or goods transportation. Usually, before a robot officially executes a task, it needs to build a map first.

[0003] In traditional technologies, a robot can build a map by collecting environmental data (frame by frame) through sensors (radar / camera). Key frames include point cloud data. The point cloud data is filled into a grid map, and the grid positions with point cloud data points are marked as occupied, and the grid positions between the radar center and the point cloud data points are marked as passable. A complete map is formed by accumulating point clouds of multiple frames.

[0004] However, since key frames are usually determined according to the change values of time / space in traditional technologies, the real-time performance is poor, which affects the accuracy of map building. Summary of the Invention

[0005] Based on this, in order to solve the above technical problems, it is necessary to provide an embodied robot map building method, an embodied robot system, a control device, a computer-readable storage medium, and a computer program product that can improve the accuracy of map building.

[0006] On the one hand, the present application provides an embodied robot map building method, and the method includes: during the process of the robot building a map in a target scene, determining the current position of the robot, and generating a current plane grid with the current position as the central position; when the robot is currently within the current plane grid, determining the target grid where the robot is currently located in the current plane grid and the count value corresponding to the target grid, where the count value reflects the duration of the robot passing through the area represented by the target grid during the map building process; when the count value corresponding to the target grid is less than or equal to a preset count threshold, determining the current frame as a key frame; and updating the grid map of the robot by using the point cloud data in the key frame.

[0007] On the other hand, the present application also provides an embodied robot system, including: a planar grid determination module, configured to determine the current position of the robot during the mapping process when the robot is in a target scene, and generate a current planar grid with the current position as the central position; a count value determination module, configured to determine the target grid where the robot is currently located in the current planar grid and the count value corresponding to the target grid when the robot is currently within the current planar grid, where the count value reflects the duration of the robot passing through the area represented by the target grid during the mapping process; a key frame determination module, configured to determine the current frame as a key frame when the count value corresponding to the target grid is less than or equal to a preset count threshold; and a map update module, configured to update the grid map of the robot using the point cloud data in the key frame.

[0008] On the other hand, the present application also provides a control device, including a memory and a processor, where the memory stores a computer program, and the processor implements the steps in the above-mentioned embodied robot mapping method when executing the computer program.

[0009] On the other hand, the present application also provides a computer-readable storage medium, on which a computer program is stored, and the computer program implements the steps in the above-mentioned embodied robot mapping method when executed by a processor.

[0010] On the other hand, the present application also provides a computer program product, including a computer program, and the computer program implements the steps in the above-mentioned embodied robot mapping method when executed by a processor.

[0011] For the above-mentioned embodied robot mapping method, embodied robot system, control device, computer-readable storage medium, and computer program product, during the mapping process when the robot is in a target scene, the current position of the robot is determined, a current planar grid is generated with the current position as the central position. When the robot is currently within the current planar grid, the target grid where the robot is currently located in the current planar grid and the count value corresponding to the target grid are determined. The count value reflects the duration of the robot passing through the area represented by the target grid during the mapping process. When the count value corresponding to the target grid is less than or equal to a preset count threshold, the current frame is determined as a key frame, and the grid map of the robot is updated using the point cloud data in the key frame. Thus, the key frame is determined by combining the current position of the robot and the current planar grid, and the grid map is updated using the point cloud data in the key frame, improving the real-time performance of updating the grid map and helping to improve the mapping accuracy. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] To more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following will briefly introduce the drawings required for the description of the embodiments of the present application or related technologies. Obviously, the drawings described below are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other related drawings can also be obtained based on these drawings.

[0013] Figure 1 It is a schematic flowchart of a method for a embodied robot to build a map in an embodiment;

[0014] Figure 2 It is a schematic diagram of the relationship between the current plane grid and the historical plane grid in an embodiment;

[0015] Figure 3 It is a schematic diagram of the principle for determining key frames in an embodiment;

[0016] Figure 4 It is a schematic diagram of the principle for dividing regions of a grid in an embodiment;

[0017] Figure 5 It is a schematic diagram of the principle for searching for occupied grids using a search radius in an embodiment;

[0018] Figure 6 It is a block diagram of the modules included in a robot in an embodiment;

[0019] Figure 7 It is an internal structure diagram of a control device in an embodiment. Detailed implementation manners

[0020] In order to make the objectives, technical solutions and advantages of the present application clearer, the following further elaborates on the present application in conjunction with the drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0021] The method for a embodied robot to build a map provided by the embodiments of the present application. In the present application, the robot is a robot system that has sensing, motion and interaction capabilities, and can interact with the environment in real time. It can capture information about the surrounding environment through sensing organs such as cameras, lidar and tactile sensors, and the robot is an embodied robot. The embodied robot may include, but is not limited to, a floor cleaning robot (also called a cleaning robot), a towing robot driven by a floor sweeper (i.e., a floor cleaning and towing integrated robot), a food delivery robot, an autonomously driven load-carrying robot, a companion robot, a service robot, etc.

[0022] In some embodiments, a method for a embodied robot to build a map is provided. There is a control device in the embodied robot, and this method can be executed by the control device, such as Figure 1As shown, the method for mapping of the embodied robot includes steps 102 to 108:

[0023] Step 102, during the process of mapping when the robot is in a target scene, determine the current position of the robot, and generate a current planar grid with the current position as the central position.

[0024] Among them, the target scene can be any scene, and can be but is not limited to an indoor residence, a factory, a hospital, etc. The planar grid contains multiple rectangular cells, and the planar grid can be a 2D (two-dimensional) histogram. The size of the planar grid can be set as needed. The size of the cells in the planar grid can be set as needed, for example, it can be 20 cm × 20 cm. The current planar grid is a planar grid generated based on the current position of the robot, and the central position of the current planar grid is the current position.

[0025] Step 104, when the robot is currently within the current planar grid, determine the target cell where the robot is currently located in the current planar grid and the count value corresponding to the target cell. The count value reflects the duration of the robot passing through the area represented by the target cell during the mapping process.

[0026] Among them, the minimum value of the count value can be a preset value, and the preset value can be but is not limited to 0. If the count value corresponding to the cell is the preset value, it means that the robot has not passed through the area represented by the cell. If the robot has been in a cell all the time, then as time goes by, the count value corresponding to the cell will gradually increase until it reaches a threshold. When it exceeds the threshold, the count value will no longer increase. Since after constructing the current planar grid, the robot may have walked away or been carried away by someone, it is necessary to determine whether the robot is within the current planar grid.

[0027] In some embodiments, the method for mapping of the embodied robot further includes: when the robot is currently outside the current planar grid, return to the step of determining the current position of the robot and generating a current planar grid with the current position as the central position. In this embodiment, it can ensure that the robot is within the current planar grid.

[0028] Step 106, when the count value corresponding to the target cell is less than or equal to a preset count threshold, determine the current frame as a key frame.

[0029] Among them, the counting threshold can be set as needed. For example, it can be 15. The current frame is the data obtained by the latest acquisition of the surrounding environment. The current frame can be collected by a sensor, and the sensor can be, but is not limited to, a sensor for collecting point cloud data or an image sensor. The sensor can be, but is not limited to, at least one of a lidar sensor, a vision sensor, or an ultrasonic sensor, etc. The lidar sensor can be, but is not limited to, at least one of a DTOF (Direct Time of Flight) sensor or a triangulation radar. The vision sensor can be, but is not limited to, a depth camera. At least one point cloud sensor can be set on the robot. The current frame includes point cloud data, and the point cloud data is composed of multiple data points. Each data point can contain position information, and the position information can be the relative position of the data point to the robot or the sensor when the data point is collected.

[0030] Specifically, when it is determined that the current frame is a key frame, increase the count value corresponding to the target grid in the current plane grid. For example, add 1 to the count value corresponding to the target grid in the current plane grid.

[0031] In some embodiments, when the count value corresponding to the target grid is greater than the preset counting threshold, it is determined that the current frame is a non-key frame, and then the point cloud data in the key frame (such as the surrounding environment data captured by the robot's radar) is not used to update the robot's grid map (since the radar data is noisy, continuous updating will update the noise into the map). For example, the counting threshold is 15. If the count value corresponding to the target grid is 16, since 16 > 15, it is determined that the current frame is a non-key frame.

[0032] Step 108, update the robot's grid map using the point cloud data in the key frame.

[0033] Among them, the grid map is a two-dimensional grid divided from the environment. Each grid in the grid map stores a probability value independently, and the range of the probability value is 0 to 1. The probability value represents the probability that the area corresponding to the grid is occupied by an obstacle or an object. The grid map can be represented by a two-dimensional probability matrix M. Each element M(i, j) in the two-dimensional probability matrix M represents the probability value corresponding to the grid (i, j), and the grid (i, j) refers to the grid in the i-th row and j-th column of the grid map.

[0034] Specifically, the data points in the point cloud data of the key frame can be mapped to the grid map to determine the grid corresponding to each data point (referred to as the point cloud grid), and the point cloud grids corresponding to each data point are combined into a point cloud grid set, and the grid map is updated using the grids in the point cloud grid set.

[0035] In the above-mentioned embodied robot mapping method, during the process of mapping when the robot is in the target scenario, the current position of the robot is determined, and a current planar grid is generated with the current position as the central position. When the robot is currently within the current planar grid, the target cell in the current planar grid where the robot is located and the count value corresponding to the target cell are determined. The count value reflects the duration of the robot passing through the area represented by the target cell during the mapping process. When the count value corresponding to the target cell is less than or equal to the preset count threshold, the current frame is determined as a key frame, and the grid map of the robot is updated using the point cloud data in the key frame. By combining the current position of the robot and the current planar grid to determine the key frame and using the point cloud data in the key frame to update the grid map, the real-time performance of updating the grid map is improved, which helps to enhance the mapping accuracy.

[0036] In some embodiments, determining the target cell in the current planar grid where the robot is located and the count value corresponding to the target cell includes: determining a historical planar grid generated at a historical time, where the historical planar grid is a planar grid generated with the position of the robot at the historical time as the central position; when the historical planar grid intersects with the current planar grid, determining, from the current planar grid, a second cell that intersects with at least one first cell in the historical planar grid; setting the count value corresponding to the second cell using the count values corresponding to the at least one first cell respectively, and setting the count values corresponding to other cells in the current planar grid to a preset value; determining the target cell in the current planar grid where the robot is currently located, and determining the count value corresponding to the target cell.

[0037] Among them, the historical planar grid is the previously generated planar grid. The intersection of the historical planar grid and the current planar grid means that the historical planar grid and the current planar grid have an overlapping area. As Figure 2 shown, both the historical planar grid 202 and the current planar grid 204 are 4×4 grids, and there is an overlapping area between the historical planar grid 202 and the current planar grid 204. The second cell is the cell in the current planar grid that is in the overlapping area, and the first cell is the cell in the historical planar grid that is in the overlapping area. Other cells in the current planar grid refer to cells in the current planar grid other than the second cell.

[0038] In some embodiments, when the second cell intersects with only one first cell, the count value corresponding to the first cell can be copied as the count value corresponding to the second cell. When the second cell intersects with at least two first cells, the count values corresponding to the two first cells can be statistically calculated, such as mean calculation, and the calculation result can be used as the count value corresponding to the second cell.

[0039] In some embodiments, when the historical plane grid intersects with the current plane grid, the count value corresponding to each cell in the current plane grid is initially set to a preset value, for example, all are set to 0.

[0040] In this embodiment, under normal circumstances, during the walking process of the robot, there will be an intersection with the original historical plane grid, so as to determine the count value corresponding to the cell in the current plane grid by combining the historical plane grid, which can improve the accuracy of the count value and the efficiency of determining the count value.

[0041] In some embodiments, the method for mapping an embodied robot further includes: obtaining a slip determination parameter, performing a slip determination according to the slip determination parameter to obtain a slip determination result; when the count value corresponding to the target cell is less than or equal to a preset count threshold, determining the current frame as a key frame, including: when the slip determination result is no slip and the count value corresponding to the target cell is less than or equal to the preset count threshold, determining the current frame as a key frame.

[0042] Among them, the slip determination parameter is a parameter used to determine whether the robot is currently slipping, and can be but is not limited to the data recorded in the odometer and the data recorded in the IMU (Inertial Measurement Unit), etc.

[0043] In some embodiments, a slip determination can be performed according to the slip determination parameter to obtain a slip determination result. When the slip determination result is no slip, determine the target cell where the robot is currently located in the current plane grid and the count value corresponding to the target cell. When the count value corresponding to the target cell is less than or equal to the preset count threshold, determine the current frame as a key frame. When the slip determination result is slip, determine that the current frame is a non-key frame.

[0044] In this embodiment, slipping can indicate that the current positioning is untrustworthy. Therefore, when the slip determination result is no slip and the count value corresponding to the target cell is less than or equal to the preset count threshold, determining the current frame as a key frame can ensure the accuracy of the key frame.

[0045] In some embodiments, the slip determination parameter includes at least one of the odometer estimated displacement, the positioning system estimated displacement, the first angle change amount corresponding to the odometer, the second angle change amount corresponding to the inertial measurement unit, the first positioning score at the current position, and the second positioning score at the most recent time when no slip occurred. Slip determination is performed based on the slip determination parameter to obtain a slip determination result, including: determining the displacement difference between the odometer estimated displacement and the positioning system estimated displacement; determining the angle change amount difference based on the difference between the first angle change amount and the second angle change amount; determining the score difference between the first positioning score and the second positioning score; and performing slip determination based on at least one of the displacement difference, the angle change amount difference, or the score difference to obtain the slip determination result.

[0046] Among them, the odometer estimated displacement refers to the displacement currently occurred by the robot estimated by the odometer, and the positioning system estimated displacement is the displacement estimated by the positioning system based on radar and / or camera.

[0047] The positioning score at the current position refers to the similarity matching score between the radar point cloud positioning parameter and / or the visual image positioning parameter and the environmental data (map environmental data) of the environment around the robot at the current moment; the positioning score at the most recent time when no slip occurred refers to the similarity matching score between the radar point cloud positioning parameter and / or the visual image positioning parameter corresponding to the historical positioning result and the environmental data (map environmental data) of the environment around the robot at the current moment.

[0048] In some embodiments, if the displacement difference reaches the first threshold, the robot may have slipped. If the angle change amount difference reaches the second threshold, the robot may have slipped. If the score difference reaches the third threshold, the robot may have slipped. Among them, the first threshold, the second threshold, and the third threshold can be preset as needed.

[0049] In some embodiments, if the displacement difference does not reach the first threshold, the angle change amount difference does not reach the second threshold, and the score difference does not reach the third threshold, it is determined that the slip determination result is no slip occurred; if any one of the conditions that the displacement difference reaches the first threshold, the angle change amount difference reaches the second threshold, and the score difference reaches the third threshold is satisfied, it is determined that the slip determination result is slip occurred.

[0050] As Figure 3 shown, a schematic diagram for determining key frames is provided. Among them, "whether the positioning is within the histogram range" means "whether the robot is currently within the current plane grid", "dynamic expansion histogram" means generating a new histogram, "whether the positioning is reliable" means "whether the slip determination result is no slip", and "whether the histogram grid value exceeds the threshold" means "whether the count value corresponding to the target grid is greater than the preset count threshold".

[0051] In this embodiment, slip determination is performed based on at least one of the displacement difference, the angle change difference, or the score difference to obtain a slip determination result, which improves the accuracy of slip determination.

[0052] In some embodiments, updating the grid map of the robot using the point cloud data in the key frame includes: mapping the data points in the point cloud data to the grid map of the robot to determine the grid corresponding to the data points in the point cloud data, obtaining a point cloud grid set corresponding to the point cloud data; mapping the position of the robot when the key frame is collected to the grid map to determine the robot grid corresponding to the robot; determining the grid distance between the point cloud grids in the point cloud grid set and the robot grid; dividing the point cloud grids in the point cloud grid set according to the grid distance to obtain a plurality of point cloud grid subsets; for each point cloud grid subset, determining the search radius corresponding to the point cloud grid subset according to the grid distance corresponding to the point cloud grids in the point cloud grid subset, where the search radius is positively correlated with the grid distance; performing grid correction on the point cloud grid subset based on the search radius corresponding to the point cloud grid subset to obtain an updated point cloud grid subset; and updating the grid map using the updated point cloud grid subset.

[0053] Among them, a plurality of point cloud grid subsets refers to at least two point cloud grid subsets. The data points may include coordinates, and the coordinates in the data points can be converted into grid coordinates in the grid map through coordinate changes. The grid represented by the grid coordinates is the point cloud grid corresponding to the data point, and the grid coordinates can also be called the index of the grid, such as (i,j) mentioned above. The robot grid refers to the grid corresponding to the position of the robot when the key frame is collected in the grid map.

[0054] Specifically, for the point cloud grid (such as grid 1) in the point cloud grid set, according to the grid coordinates of the point cloud grid (such as grid 1) and the grid coordinates of the robot grid, the distance between the point cloud grid (such as grid 1) and the robot grid is calculated, and this distance is the grid distance.

[0055] As Figure 4 shown, the black dots represent the respective point cloud grids in the point cloud grid set, the 4 different regions correspond to 4 different point cloud grid subsets, and the dot in the center represents the robot grid. It can be seen that the point cloud grid set is divided into 4 different point cloud grid subsets according to the grid distance. "The search radius is positively correlated with the grid distance" can be understood as that overall, the search radius is positively correlated with the grid distance. For example, the average grid distance corresponding to the point cloud grid subset can be calculated by taking the average of the grid distances corresponding to each point cloud grid in the point cloud grid subset, and the search radius is positively correlated with the average grid distance. As Figure 4Among them, since the grid distance corresponding to Region 1 < the grid distance corresponding to Region 2 < the grid distance corresponding to Region 3 < the grid distance corresponding to Region 4, the search radius corresponding to Region 1 < the search radius corresponding to Region 2 < the search radius corresponding to Region 3 < the search radius corresponding to Region 4.

[0056] In this embodiment, in the process of updating the grid map of the robot using the point cloud data at the key frame, the grid corresponding to the data point in the point cloud data is compensated (i.e., corrected) by the grid map, making the construction of the grid map more accurate.

[0057] In some embodiments, grid correction is performed on the point cloud grid subset based on the search radius corresponding to the point cloud grid subset to obtain the updated point cloud grid subset, including: determining the search radius corresponding to the point cloud grid subset as the search radius corresponding to the point cloud grid in the point cloud grid subset; for the point cloud grid in the point cloud grid subset, determining the grid path from the point cloud grid to the robot grid; searching for the occupied grid whose distance from the point cloud grid is less than the search radius in the grid path, and the area represented by the occupied grid has an object; in the case of finding an occupied grid, updating the point cloud grid in the point cloud grid subset to the occupied grid to obtain the updated point cloud grid subset.

[0058] Among them, taking the point cloud grid as Grid A and the robot grid as Grid B as an example, the grid path is the path composed of the grids passed from Grid A to Grid B. Grid A and Grid B are the two end points of the grid path, and thus can be called end point grids. The grids other than the end point grids in the grid path can be called intermediate grids. The object can be an obstacle.

[0059] Specifically, as Figure 5 shown, Real Point 1 and Real Point 2 are respectively the point cloud grids in two different point cloud grid subsets. The circle represents the robot. Since the distance between Real Point 1 and the robot is less than the distance between Real Point 2 and the robot, the search radius corresponding to Real Point 1 is less than the search radius corresponding to Real Point 2. The connection line between Real Point 1 and the robot is Grid Path 1, and the connection line from Real Point 2 to the robot is also Grid Path 2. Since there is an occupied grid on Grid Path 1 (i.e., the position where Grid Path 1 intersects with the black obstacle, i.e., the corrected end point in the figure), and the distance between this occupied grid and Real Point 1 is less than the search radius, the Real Point 1 in the point cloud grid subset can be changed to this occupied grid. And since no occupied grid is searched for Real Point 2, there is no need to correct Real Point 2.

[0060] In this embodiment, when an occupied grid is detected, it indicates that the positioning of the data points corresponding to the point cloud grid is inaccurate. Therefore, the point cloud grid in the subset of point cloud grids is updated to an occupied grid, and the updated subset of point cloud grids is obtained, thus achieving the correction of the point cloud grid.

[0061] In some embodiments, updating the grid map using the updated subset of point cloud grids includes: determining the probability increment and probability decrement corresponding to the updated subset of point cloud grids; for the end-point grids in the updated subset of point cloud grids, increasing the probability value of the end-point grids in the grid map using the probability increment, where the end-point grids are the point cloud grids in the updated subset of point cloud grids; and decreasing the probability value of the intermediate grids between the end-point grids and the robot grid in the grid map using the probability decrement, and the probability value of the grid is used to represent the probability that the area represented by the grid contains an object.

[0062] Among them, the probability increment is negatively correlated with the grid distance corresponding to the point cloud grid in the subset of point cloud grids, and the probability decrement is negatively correlated with the grid distance corresponding to the point cloud grid in the subset of point cloud grids. For example, Figure 4 in [example], the probability increment corresponding to region 1 > the probability increment corresponding to region 2 > the probability increment corresponding to region 3 > the probability increment corresponding to region 4, Figure 4 in [example], the probability decrement corresponding to region 1 > the probability decrement corresponding to region 2 > the probability decrement corresponding to region 3 > the probability decrement corresponding to region 4.

[0063] Specifically, the point cloud grid can be referred to as an end-point grid. For the end-point grids in the updated subset of point cloud grids, the end-point grid and its probability value are determined from the grid map, the probability increment is added to the probability value of the end-point grid to obtain the increased probability value, and the probability value of the end-point grid is changed to the increased probability value.

[0064] In some embodiments, for each end-point grid, the intermediate grids between the end-point grid and the robot grid can be determined, the probability value of the intermediate grid is determined from the grid map, the probability decrement is subtracted from the probability value of the intermediate grid to obtain the decreased probability value, and the probability value of the intermediate grid in the grid map is changed to the decreased probability value.

[0065] In this embodiment, in the process of updating the robot's grid map using the point cloud data in the key frames, the probability values in the grid map are updated in a segmented probability (sub-region) manner, and at the same time, the map is used to compensate the point cloud, making the construction of the grid map more accurate.

[0066] In some embodiments, the method for an embodied robot to build a map further includes: after updating the grid map, performing noise grid detection on the updated grid map to obtain a set of candidate noise grids; clustering the set of candidate noise grids to determine target noise grids from the set of candidate noise grids; and restoring the probability of the target noise grids to the initial probability, where the initial probability represents that it is unknown whether there is an object in the area corresponding to the target noise grids.

[0067] Among them, after using the updated grid map, a machine learning algorithm can be used to detect areas that may belong to noise, i.e., candidate noise grids, and a clustering algorithm can be used to find areas that belong to noise, i.e., target noise grids, in the areas that may belong to noise.

[0068] Specifically, before building the map, a grid map can be initialized, and the probability value corresponding to each grid in the grid map can be set to an initial probability value, which can be set as needed. During the map building process, by increasing or decreasing the probability value based on the initial probability value, areas with obstacles and areas without obstacles can be distinguished.

[0069] In some embodiments, the noise area (target noise grid) can be restored to the original grid probability (i.e., the noise area is deleted), restored to the original lower or original higher grid probability, and then the grid map is saved. Among them, the original lower or original higher grid probability refers to the initial probability value.

[0070] In this embodiment, before saving the map, the map is checked using machine learning methods to remove parts that may belong to noise, which can prevent the map from becoming cluttered due to noise superposition.

[0071] In some embodiments, as Figure 6 shown, an embodied robot system is provided. The embodied robot system can be understood as the combination of software and hardware in an embodied robot. The embodied robot system includes: a planar grid determination module 602, a count value determination module 604, a key frame determination module 606, and a map update module 608, where:

[0072] The planar grid determination module 602 is configured to determine the current position of the robot during the process of building a map in a target scene, and generate a current planar grid with the current position as the central position.

[0073] The count value determination module 604 is configured to determine the target grid where the robot is currently located in the current planar grid and the count value corresponding to the target grid when the robot is currently within the current planar grid, and the count value reflects the duration of the robot passing through the area represented by the target grid during the map building process.

[0074] The key frame determination module 606 is configured to determine the current frame as a key frame when the count value corresponding to the target grid is less than or equal to a preset count threshold.

[0075] The map update module 608 is configured to update the grid map of the robot by using the point cloud data at the key frame.

[0076] In some embodiments, the count value determination module 604 is further configured to determine a historical plane grid generated at a historical time, where the historical plane grid is a plane grid generated with the position of the robot at the historical time as the central position; in the case where the historical plane grid intersects with the current plane grid, determine a second grid in the current plane grid that intersects with at least one first grid in the historical plane grid; set the count value corresponding to the second grid by using the count values respectively corresponding to the at least one first grid, and set the count values corresponding to other grids in the current plane grid to a preset value; determine the target grid where the robot is currently located in the current plane grid, and determine the count value corresponding to the target grid.

[0077] In some embodiments, the key frame determination module 606 is further configured to obtain a slip determination parameter, perform a slip determination according to the slip determination parameter to obtain a slip determination result; and determine the current frame as a key frame when the slip determination result is no slip and the count value of the target grid is less than the preset count threshold.

[0078] In some embodiments, the slip determination parameter includes at least one of an odometer estimated displacement, a positioning system estimated displacement, a first angle change amount corresponding to the odometer, a second angle change amount corresponding to the inertial measurement unit, a first positioning score of the current position, and a second positioning score when no slip occurred last time. The key frame determination module 606 is further configured to determine a displacement difference between the odometer estimated displacement and the positioning system estimated displacement; determine an angle change amount difference based on a difference between the first angle change amount and the second angle change amount; determine a score difference between the first positioning score and the second positioning score; and perform a slip determination based on at least one of the displacement difference, the angle change amount difference, or the score difference to obtain a slip determination result.

[0079] In some embodiments, the map update module 608 is further configured to map the data points in the point cloud data to the grid map of the robot to determine the grid corresponding to the data points in the point cloud data, and obtain a point cloud grid set corresponding to the point cloud data; map the position of the robot when the key frame is collected to the grid map to determine the robot grid corresponding to the robot; determine the grid distance between the point cloud grid in the point cloud grid set and the robot grid; divide the point cloud grid in the point cloud grid set according to the grid distance to obtain multiple point cloud grid subsets; for each point cloud grid subset, determine the search radius corresponding to the point cloud grid subset according to the grid distance corresponding to the point cloud grid in the point cloud grid subset, and the search radius is positively correlated with the grid distance; perform grid correction on the point cloud grid subset based on the search radius corresponding to the point cloud grid subset to obtain an updated point cloud grid subset; and update the grid map by using the updated point cloud grid subset.

[0080] In some embodiments, the map update module 608 is further configured to determine the search radius corresponding to the point cloud grid subset as the search radius corresponding to the point cloud grid in the point cloud grid subset; for the point cloud grid in the point cloud grid subset, determine the grid path from the point cloud grid to the robot grid; search for the occupied grid whose distance from the point cloud grid is less than the search radius in the grid path, and the area represented by the occupied grid has an object; in the case where an occupied grid is searched, update the point cloud grid in the point cloud grid subset to the occupied grid to obtain an updated point cloud grid subset.

[0081] In some embodiments, the map update module 608 is further configured to determine the probability increment and probability decrement corresponding to the updated point cloud grid subset, the probability increment is negatively correlated with the grid distance corresponding to the point cloud grid in the point cloud grid subset, and the probability decrement is negatively correlated with the grid distance corresponding to the point cloud grid in the point cloud grid subset; for the end point grid in the updated point cloud grid subset, increase the probability value of the end point grid in the grid map by using the probability increment, and the end point grid is the point cloud grid in the updated point cloud grid subset; and decrease the probability value of the intermediate grid between the end point grid and the robot grid in the grid map by using the probability decrement, and the probability value of the grid is used to represent the probability that the area represented by the grid has an object.

[0082] In some embodiments, when the robot is currently outside the current plane grid, the plane grid determination module 602 is further configured to return the step of determining the current position of the robot and generating the current plane grid with the current position as the center position.

[0083] In some embodiments, the embodied robot further includes a noise processing module. The noise processing module is configured to perform noise grid detection on the updated grid map after updating the grid map using the updated set of grid cells, to obtain a candidate set of noise grids; cluster the candidate set of noise grids to determine target noise grids from the candidate set of noise grids; and restore the probability of the target noise grids to an initial probability, where the initial probability indicates that it is unknown whether there is an object in the area corresponding to the target noise grids.

[0084] It should be understood that although the steps in the flowcharts involved in the above-described embodiments are shown in sequence according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise clearly stated in this article, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, at least some of the steps in the flowcharts involved in the above-described embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be executed alternately or in turn with at least some of the steps or stages in other steps or other steps.

[0085] In some embodiments, a control device is provided. The control device is a system in a robot for controlling the robot, and its internal structure diagram can be as Figure 7 shown. The control device includes a processor, a memory, an input / output interface (Input / Output, abbreviated as I / O), and a communication interface. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, the processor of the control device is used to provide computing and control capabilities. The memory of the control device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the control device is used to store the data involved in the mapping method of the embodied robot. The input / output interface of the control device is used to exchange information between the processor and external devices. The communication interface of the control device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, it implements a mapping method for an embodied robot.

[0086] Those skilled in the art can understand, Figure 7The structure shown is only a block diagram of some structures related to the solution of this application, and does not constitute a limitation on the control device to which the solution of this application is applied. The specific control device may include more or fewer components than those shown in the figure, or combine some components, or have a different component layout.

[0087] In some embodiments, a control device is provided, including a memory and a processor. A computer program is stored in the memory, and when the processor executes the computer program, the steps in the above-mentioned embodied robot mapping method are implemented.

[0088] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned embodied robot mapping method are implemented.

[0089] In one embodiment, a computer program product is provided, including a computer program. When the computer program is executed by a processor, the steps in the above-mentioned embodied robot mapping method are implemented.

[0090] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data need to comply with relevant regulations.

[0091] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The databases involved in the embodiments provided in this application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the embodiments provided in this application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, artificial intelligence (AI) processors, etc., without limitation.

[0092] The technical features of the above embodiments can be combined arbitrarily. For the sake of concise description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope recorded in this application.

[0093] The above-described embodiments merely represent several implementation manners of the present application. The description thereof is relatively specific and detailed, but it should not be construed as a limitation to the patent scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all fall within the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the appended claims.

Claims

1. A method for mapping by an embodied robot, characterized in that: The method comprises: During the process of mapping the robot in the target scene, determining the current position of the robot, and generating a current plane grid with the current position as the center position; When the robot is currently in the current plane grid, determine the target grid where the robot is currently located in the current plane grid and the count value corresponding to the target grid, wherein the count value reflects the time length for which the robot passes through the area represented by the target grid during the mapping process; When the count value corresponding to the target grid is less than or equal to a preset count threshold, determining the current frame as a key frame; The grid map of the robot is updated using the point cloud data in the key frame.

2. The method according to claim 1, characterized in that: The determining the target grid where the robot is currently located in the current plane grid and the count value corresponding to the target grid includes: Determine a historical plane grid generated at a historical time, wherein the historical plane grid is a plane grid generated with the position of the robot at the historical time as the center position; In the case where the historical plane grid intersects with the current plane grid, determining a second grid from the current plane grid that intersects with at least one first grid in the historical plane grid; Using the count values ​​respectively corresponding to the at least one first grid, setting the count value corresponding to the second grid, and setting the count values ​​corresponding to other grids in the current plane grid to preset values; The target grid where the robot is currently located is determined from the current plane grid, and a count value corresponding to the target grid is determined.

3. The method according to claim 1, characterized in that The method further comprises: Obtaining a slip determination parameter, performing a slip determination according to the slip determination parameter, and obtaining a slip determination result; When the count value corresponding to the target grid is less than or equal to a preset count threshold, determining the current frame as a key frame includes: When the slip determination result is no slip and the count value corresponding to the target grid is less than or equal to a preset count threshold, the current frame is determined as a key frame.

4. The method according to claim 3, characterized in that: The skid determination parameter includes at least one of an odometer estimated displacement, a positioning system estimated displacement, a first angle change corresponding to the odometer and a second angle change corresponding to the inertial measurement unit, a first positioning score of the current position, and a second positioning score when no skidding occurred the most recent time. The skid determination is performed according to the skid determination parameter to obtain a skid determination result, including: Determining a displacement difference between the odometer estimated displacement and the positioning system estimated displacement; Determining an angle variation difference based on a difference between the first angle variation and the second angle variation; Determining a score difference between the first positioning score and the second positioning score; A slip determination is performed based on at least one of the displacement difference, the angle change difference or the score difference to obtain a slip determination result.

5. The method according to any one of claims 1 to 4, characterized in that: The step of updating the grid map of the robot using the point cloud data in the key frame comprises: Mapping the data points in the point cloud data to the grid map of the robot to determine the grids corresponding to the data points in the point cloud data, and obtaining a point cloud grid set corresponding to the point cloud data; Mapping the position of the robot when the key frame is collected to the grid map to determine the robot grid corresponding to the robot; Determining a grid distance between a point cloud grid in the point cloud grid set and a grid of the robot; Dividing the point cloud grids in the point cloud grid set according to grid distances to obtain a plurality of point cloud grid subsets; For each of the point cloud grid subsets, determining a search radius corresponding to the point cloud grid subset according to a grid distance corresponding to a point cloud grid in the point cloud grid subset, wherein the search radius is positively correlated with the grid distance; Performing grid correction on the point cloud grid subset based on the search radius corresponding to the point cloud grid subset to obtain an updated point cloud grid subset; The grid map is updated using the updated point cloud grid subset.

6. The method according to claim 5, characterized in that The performing grid correction on the point cloud grid subset based on the search radius corresponding to the point cloud grid subset to obtain an updated point cloud grid subset includes: Determine the search radius corresponding to the point cloud grid subset as the search radius corresponding to the point cloud grid in the point cloud grid subset; For the point cloud grids in the point cloud grid subset, determining a grid path from the point cloud grid to the robot grid; Searching the grid path for an occupied grid whose distance from the point cloud grid is less than the search radius, wherein an object exists in the area represented by the occupied grid; In the case where an occupied grid is searched, the point cloud grid in the point cloud grid subset is updated to the occupied grid to obtain an updated point cloud grid subset.

7. The method according to claim 5, characterized in that The updating of the grid map using the updated point cloud grid subset includes: Determine a probability increment and a probability decrement corresponding to the updated point cloud grid subset, wherein the probability increment is negatively correlated with a grid distance corresponding to a point cloud grid in the point cloud grid subset, and the probability decrement is negatively correlated with a grid distance corresponding to a point cloud grid in the point cloud grid subset; For an endpoint grid in the updated point cloud grid subset, increasing a probability value of the endpoint grid in the grid map by using the probability increment, the endpoint grid being a point cloud grid in the updated point cloud grid subset; The probability reduction is used to reduce the probability value of the intermediate grid between the endpoint grid and the robot grid in the grid map, and the probability value of the grid is used to represent the probability that an object exists in the area represented by the grid.

8. The method according to any one of claims 1 to 4, characterized in that: The method further comprises: In the case that the robot is currently outside the current plane grid, return to the step of determining the current position of the robot and generating the current plane grid with the current position as the center position.

9. The method according to any one of claims 1 to 4, characterized in that: The method further comprises: After the grid map is updated, noise grid detection is performed on the updated grid map to obtain a candidate noise grid set; Clustering the candidate noise point grid set to determine a target noise point grid from the candidate noise point grid set; The probability of the target noise grid is restored to an initial probability value, where the initial probability value indicates that it is unknown whether there is an object in the area corresponding to the target noise grid.

10. An embodied robot system, characterized in that: The embodied robotic system comprises: A plane grid determination module, used to determine the current position of the robot when the robot is in the target scene and to generate a current plane grid with the current position as the center position; a count value determination module, used to determine the target grid where the robot is currently located in the current plane grid and the count value corresponding to the target grid when the robot is currently in the current plane grid, wherein the count value reflects the time length for which the robot passes through the area represented by the target grid during the mapping process; A key frame determination module, configured to determine the current frame as a key frame when the count value corresponding to the target grid is less than or equal to a preset count threshold; A map updating module is used to update the grid map of the robot using the point cloud data in the key frame.

11. A control device, comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 9 are implemented.

Citation Information

Patent Citations

  • Robot tracking method and system based on SLAM, storage medium and electronic equipment

    CN116597330A

  • Mining area map construction method and device, equipment and storage medium

    CN119516129A

  • Mapping method, computer-readable storage medium, and robot

    US20230273620A1

  • Map building method for robot, and robot

    WO2023005377A1

  • 2d lidar-based localization method, 2d lidar-based mapping method, and system

    WO2024179092A1