Embodied Robot Mapping Method, Embodied Robot System and Control Device

By generating the current plane grid and determining the count value of the target grid during the robot mapping process, the problem of poor real-time performance in traditional mapping methods is solved, and more accurate and real-time raster map updates are achieved.

CN120122663BActive Publication Date: 2025-07-08WOCAO TECH (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In traditional robot map construction methods, keyframes are determined by relying on time/space change values, resulting in poor real-time quality of map construction, which affects the accuracy of map construction.

Method used

By generating the current plane grid at the center of the robot's current position, the count value of the target grid is determined. The count value reflects the duration of passing through the area. When the count value is less than or equal to the preset threshold, the current frame is determined as a keyframe, and the raster map is updated using the keyframe.

Benefits of technology

Improve the real-time and accuracy of robot mapping, ensuring accurate determination of keyframes and effective update of raster maps.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120122663B_ABST
    Figure CN120122663B_ABST
Patent Text Reader

Abstract

The present application relates to a method for an embodied robot to map, an embodied robot system and a control device. The method includes: during the process of mapping by the robot in a target scene, determining the current position of the robot, and generating a current planar grid with the current position as the central position; in the case that the robot is currently within the current planar grid, determining the target grid where the robot is currently located in the current planar grid and the count value corresponding to the target grid, the count value reflecting the duration of the robot passing through the area represented by the target grid during the mapping process; in the case that 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. Using this method can improve the accuracy of mapping.
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 a 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 becoming more and more extensive. For example, robots can be used for floor cleaning or cargo handling, etc. Usually, before a robot officially executes a task, it needs to build a map first.

[0003] In traditional technology, a robot can build a map by collecting environmental data (frame by frame) through sensors (radar / camera). Key frames include point cloud data, and the point cloud data is filled into a grid map. 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 in traditional technology, key frames are usually determined according to the change values of time / space, the real-time performance is poor, which affects the accuracy of map building. Summary of the Invention

[0005] Based on this, in view of 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 center 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 by 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, and 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 by 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 by 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 in the following description 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 the method for mapping of an embodied robot 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 structural diagram of a control device in an embodiment. Detailed implementation manners

[0020] In order to make the purpose, technical solutions and advantages of the present application clearer, the following further details 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 mapping of an embodied robot provided by the embodiments of the present application. In the present application, the robot is a robot system, which 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 sweeping robot (also known as a cleaning robot), a towing robot driven by a sweeper (i.e., a sweeping 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 mapping of an embodied robot 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 the target scene, determine the current position of the robot, and generate a current plane 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 plane grid contains multiple rectangular cells, and the plane grid can be a 2D (two-dimensional) histogram. The size of the plane grid can be set as needed. The size of the cells in the plane grid can be set as needed, for example, it can be 20 cm × 20 cm. The current plane grid is a plane grid generated according to the current position of the robot, and the central position of the current plane grid is the current position.

[0025] Step 104, when the robot is currently within the current plane grid, determine the target cell where the robot is currently located in the current plane 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 the threshold. When it exceeds the threshold, the count value will no longer increase. Since after constructing the current plane 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 plane grid.

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

[0028] Step 106, 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.

[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, 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 triangular 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, which is composed of multiple data points, and each data point can contain position information, which 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 through the radar) is not used to update the grid map of the robot (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 grid map of the robot 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 in 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 scene, the current position of the robot is determined, and the current plane grid is generated with the current position as the central position. When the robot is currently within the current plane grid, the target grid where the robot is currently located in the current plane 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 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 plane 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 improve the mapping accuracy.

[0036] In some embodiments, 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: determining the historical plane grid generated at the 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; when the historical plane grid intersects with the current plane grid, determining, from the current plane grid, the second grid that intersects with at least one first grid in the historical plane grid; setting the count value corresponding to the second grid using the count values corresponding to the at least one first grid respectively, and setting the count values corresponding to the other grids in the current plane grid to a preset value; determining the target grid where the robot is currently located from the current plane grid, and determining the count value corresponding to the target grid.

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

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

[0039] In some embodiments, when the historical plane grid intersects with the current plane grid, the count value corresponding to each grid 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 combine the historical plane grid to determine the count value corresponding to the grid in the current 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 slip determination according to the slip determination parameter to obtain 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, including: when the slip determination result is no slip and the count value corresponding to the target grid 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, 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 grid where the robot is currently located in the current plane grid and the count value corresponding to the target grid. When the count value corresponding to the target grid 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 grid 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. The 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 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.

[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 corresponding to the historical positioning result, and / or the visual image positioning parameter, 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 a first threshold, the robot may have slipped. If the angle change amount difference reaches a second threshold, the robot may have slipped. If the score difference reaches a 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; 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.

[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 extended 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 a displacement difference, an angular change difference, or a 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, and the search radius is in a positive correlation 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, the plurality of point cloud grid subsets refers to at least two point cloud grid subsets. The data points may include coordinates, and through coordinate transformation, the coordinates in the data points can be converted into grid coordinates in the grid map, and the grid represented by the grid coordinates is the point cloud grid corresponding to the data point. The grid coordinates can also be called the index of the grid, such as the above (i,j). 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 in a positive correlation with the grid distance" can be understood as that overall, the search radius is in a positive correlation with the grid distance. For example, the grid distances corresponding to each point cloud grid in the point cloud grid subset can be averaged to obtain the average grid distance corresponding to the point cloud grid subset, and the search radius is in a positive correlation 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, during 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) using 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 an 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 occupied grids in the grid path whose distance to the point cloud grid is less than the search radius, where the area represented by the occupied grid has an object; in the case where an occupied grid is found, updating the point cloud grid in the point cloud grid subset to the occupied grid to obtain an 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 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 line connecting Real Point 1 and the robot is Grid Path 1, and the line connecting Real Point 2 and 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 sub - set of point cloud grids is updated to an occupied grid, obtaining an updated sub - set of point cloud grids, thereby realizing the correction of the point cloud grid.

[0061] In some embodiments, updating the grid map using the updated sub - set of point cloud grids includes: determining the probability increment and probability decrement corresponding to the updated sub - set of point cloud grids; for the end - point grids in the updated sub - set 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 sub - set 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. The probability value of a 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 sub - set of point cloud grids, and the probability decrement is negatively correlated with the grid distance corresponding to the point cloud grid in the sub - set 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 called an end - point grid. For the end - point grids in the updated sub - set of point cloud grids, determine the end - point grid and its probability value from the grid map, add the probability increment to the probability value of the end - point grid to obtain an increased probability value, and change the probability value of the end - point grid 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, subtract the probability decrement from the probability value of the intermediate grid to obtain a decreased probability value, and change the probability value of the intermediate grid in the grid map to the decreased probability value.

[0065] In this embodiment, during the process of updating the robot's grid map using the point cloud data in the key frame, 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, namely candidate noise grids, and a clustering algorithm can be used to find areas that belong to noise, namely target noise grids, among 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 the initial probability value, which can be set as needed. During the map building process, by increasing or decreasing the probability value on the basis of 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 avoid the map 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 plane 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 plane grid determination module 602 is configured to determine the current position of the robot during the process of building a map when the robot is in a target scene, and generate a current plane 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 plane grid and the count value corresponding to the target grid when the robot is currently within the current plane 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; when the historical plane grid intersects with the current plane grid, determine a second grid that intersects at least one first grid in the historical plane grid from the current plane grid; set the count value corresponding to the second grid by using the count values corresponding to the at least one first grid respectively, 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 from 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; when the slip determination result is no slip and the count value of the target grid is less than the preset count threshold, determine the current frame as a key frame.

[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 and a second angle change amount corresponding to the inertial measurement unit, a first positioning score at the current position, and a second positioning score at the time 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; 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 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 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 grids in the point cloud grid set and the robot grid; divide the point cloud grids 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 grids 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 grids in the point cloud grid subset; for the point cloud grids in the point cloud grid subset, determine the grid path from the point cloud grid to the robot grid; search for occupied grids 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 grids in the point cloud grid subset, and the probability decrement is negatively correlated with the grid distance corresponding to the point cloud grids in the point cloud grid subset; for the end point grids in the updated point cloud grid subset, increase the probability value of the end point grids in the grid map by using the probability increment, and the end point grids are the point cloud grids in the updated point cloud grid subset; and decrease the probability value of the intermediate grids between the end point grids 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 sequentially shown according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise clearly stated in this document, 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 either, 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 the 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 arrangement.

[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, a database, or other media 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 processors, graphics processors, 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 to be within 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 on 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. An embodied robot mapping method, characterized in that, The method includes: During the process of mapping when the robot is in a target scenario, determining the current position of the robot, and generating a current planar grid with the current position as the central position; When the robot is currently within the current planar grid, determining the target cell in which the robot is currently located in the current planar grid and the count value corresponding to the target cell, where 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 a preset count threshold, determining the current frame as a key frame; Updating the grid map of the robot using the point cloud data in the key frame.

2. The method according to claim 1, wherein The determining the target cell in which the robot is currently located in the current planar grid 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, second cells that intersect with at least one first cell in the historical planar grid; Setting the count values corresponding to the second cells using the count values respectively corresponding to the at least one first cell, and setting the count values corresponding to other cells in the current planar grid to a preset value; Determining the target cell in which the robot is currently located from the current planar grid, and determining the count value corresponding to the target cell.

3. The method according to claim 1, characterized in that, The method further includes: Obtaining a slip determination parameter, performing slip determination according to the slip determination parameter, and obtaining a slip determination result; The determining the current frame as a key frame when the count value corresponding to the target cell is less than or equal to a preset count threshold includes: When the slip determination result is no slip and 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.

4. The method according to claim 3, wherein 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 at the current position, and a second positioning score at the time of the most recent non-slip. The performing slip determination according to the slip determination parameter and obtaining a slip determination result includes: Determining a displacement difference between the odometer estimated displacement and the positioning system estimated displacement; Based on the difference between the first angle change amount and the second angle change amount, determining an angle change amount difference; Determining a score difference between the first positioning score and the second positioning score; Performing slip determination based on at least one of the displacement difference, the angle change amount difference, or the score difference, and obtaining a slip determination result.

5. The method according to any one of claims 1 to 4, characterized in that The 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 grids corresponding to the data points in the point cloud data, and obtaining 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 grids 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 grids 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; Update the grid map using the updated point cloud grid subset; 6. The method according to claim 5, wherein 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 grids in the point cloud grid subset; For the point cloud grids in the point cloud grid subset, determine the grid path from the point cloud grid to the robot grid; Search for occupied grids in the grid path whose distance from the point cloud grid is less than the search radius, 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; 7. The method according to claim 5, characterized in that, The updating the grid map using the updated point cloud grid subset includes: 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 grids in the point cloud grid subset, and the probability decrement is negatively correlated with the grid distance corresponding to the point cloud grids in the point cloud grid subset; For the end point grids in the updated point cloud grid subset, increase the probability value of the end point grids in the grid map using the probability increment, and the end point grids are the point cloud grids in the updated point cloud grid subset; Use the probability decrement to decrease the probability value of the intermediate grids between the end point grids and the robot grid in the grid map, and the probability value of the grid is used to represent the probability that the area represented by the grid has an object; 8. The method according to any one of claims 1 to 4, characterized in that, The method further includes: In the case where 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 includes: After updating the grid map, perform noise grid detection on the updated grid map to obtain a candidate noise grid set; Cluster the candidate noise grid set to determine the target noise grid from the candidate noise grid set; Restore the probability of the target noise grid to the initial probability value, and 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 robot system includes: A planar grid determination module, configured to determine the current position of the robot during the process of mapping in a target scenario, 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; A map update module, configured to update the grid map of the robot by using the point cloud data in the key frame.

11. A control device, comprising a memory and a processor, the memory storing a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 9.

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