A fast seat finding method, system and chip based on skeleton graph

Through the method based on the skeleton graph, undirected graphs and multi-fork trees are generated. The mobile robot explores the map according to the sequence, solving the problems of slow seat search speed and easy collision in the existing technology, and achieving a fast and orderly seat recovery process.

CN115454044BActive Publication Date: 2025-04-11AMICRO SEMICONDUCTOR CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110643719.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-06-09
Publication Date
2025-04-11
Estimated Expiration
2041-06-09

AI Technical Summary

Technical Problem

Existing robots' seat search methods are slow, which is prone to collisions and jams, especially when there is no charging stand signal and map records.

Method used

A quick seat-finding method based on the skeleton graph is adopted. By generating a skeleton graph that represents the connectivity of the global map, the boundary points and empty points are found, the undirected graph is generated and converted into a multi-fork tree, the multi-fork tree is traversed to obtain the sequence of points to be explored, and the mobile robot explores the map according to the sequence to achieve fast seat-back.

Benefits of technology

It realizes the orderly and rapid exploration of the map without charging stand signal and map records, reducing the risk of collision and improving the efficiency of seat search.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115454044B_ABST
    Figure CN115454044B_ABST
Patent Text Reader

Abstract

The present invention discloses a method, system and chip for quickly finding a seat based on a skeleton graph. The method described in the present invention enables a mobile robot to explore the map in an orderly manner by sorting the empty points and boundary points on the skeleton graph representing the connectivity of a global map; the mobile robot moves through the empty points to avoid unnecessary collisions and improve the movement efficiency; the seat return signal is detected through the boundary points, and the boundary points in the same set are not detected repeatedly, so that the mobile robot improves the seat finding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of intelligent robots, and in particular to a skeleton graph-based rapid seat finding method, system and chip. Background Art

[0002] Mobile robots, such as sweeping and mopping robots, disinfection robots or pet robots, are equipped with rechargeable batteries. Before the battery runs out, the robot must return to the charging station for charging. At present, robots generally use the automatic seat-finding method to return to their seats. Common seat-finding methods include random seat-finding, wall-finding and RRT (rapidly expanding random tree algorithm) seat-finding. However, the above seat-finding methods are not only slow, but also prone to collisions and jams. For example, when finding a seat by the wall-finding method, the robot needs to move along the edge of the entire space, which greatly increases the moving distance, and it will inevitably encounter obstacles located near the wall. Therefore, it is necessary to improve the existing seat-finding methods. Summary of the invention

[0003] To solve the above problems, the present invention provides a method, system and chip for quickly finding a seat based on a skeleton graph, which can explore the map in an orderly and rapid manner to realize the return to the seat when there is no information of the charging seat recorded on the map and no signal of the charging seat. The specific technical solutions of the present invention are as follows:

[0004] A fast seat finding method based on a skeleton graph, the method comprising the following steps: step S1, a mobile robot generates a skeleton graph representing the connectivity of a global map, then finds the boundary points and empty points on the skeleton graph and generates an undirected graph; wherein the mobile robot stores the global map; step S2, a multi-branch tree is generated based on the undirected graph, then the multi-branch tree is traversed to obtain a sequence of points to be explored; step S3, the mobile robot moves to the nearest empty point, then determines whether the first unexplored boundary point in the sequence of points to be explored is reachable in a straight line, if not, then enters step S4, if it is reachable, then moves to the boundary point Detect the return-to-seat signal, if the return-to-seat signal is detected, return to the seat, if the return-to-seat signal is not detected, go to step S5; step S4, the mobile robot determines whether the previous point of the first unexplored boundary point in the sequence of points to be explored is reachable in a straight line, if not, continue to judge the previous point until a point that can be directly reached is found and move to the point, and then return to step S3; step S5, the mobile robot divides the boundary points that meet the preset conditions into the same set and sets the explored mark for all boundary points in the set, and then executes step S3 again until all boundary points in the return seat or skeleton map are set with the explored mark. Compared with the prior art, the technical solution allows the mobile robot to explore the map in an orderly manner by sorting the empty points and boundary points on the skeleton map; moving through the empty points allows the mobile robot to avoid unnecessary collisions and improve movement efficiency; detecting the return-to-seat signal through the boundary points, and the boundary points in the same set are not detected repeatedly, so that the mobile robot improves the efficiency of finding a seat.

[0005] Furthermore, the method for generating a skeleton graph representing the connectivity of the global map in step S1 specifically includes: step S11, extracting the edge points of obstacles in the global map and making judgments. If there are no other edge points in the eight neighborhoods of the edge points, the edge points are regarded as isolated points and deleted, and the remaining edge points are retained and step S12 is entered; step S12, constructing a Delaunay triangulation network based on the remaining edge points in step S11, and then generating the perpendicular bisector of each edge of each triangle in the Delaunay triangulation network; step S13, constructing Thiessen polygons with the perpendicular bisector as edges and the intersection of the perpendicular bisector as vertices, and the skeleton graph can be obtained after deleting the Delaunay triangulation network. Deleting isolated points can make the map as simple as possible, making it easier to find empty points and boundary points later; the skeleton graph can reflect the information of the connected domain.

[0006] Furthermore, the method for finding the boundary points and empty points on the skeleton graph and generating an undirected graph in step S1 specifically includes: step S14, superimposing the skeleton graph on the global map, and then taking the pixel points in the skeleton graph as the center, judging whether the number of pixel transformations in the eight neighborhoods of the pixel point as the center is 0, if so, setting the pixel point as the center as an empty point, otherwise, setting the pixel point as the center as a boundary point; wherein the empty point and the boundary point contain the map coordinate information of the point and the empty point and / or boundary point information connected to the point; step S15, connecting lines according to the connectivity of the empty point and the boundary point, and generating the undirected graph; wherein the connecting lines are the edges of the undirected graph. The number of pixel transformations in the eight neighborhoods of the pixel point as the center is not 0, indicating that the pixel point as the center is close to an obstacle, which may be a charging station, so it is set as a boundary point for exploration.

[0007] Furthermore, the method for determining the number of pixel transformations in step S14 specifically includes: step S141, after superimposing the skeleton map on the global map, traversing all points on the eight neighborhoods of a pixel point in the skeleton map, wherein the traversal starting point is any point and the traversal end point is the same as the traversal starting point; step S142, during the traversal process, if the colors of two adjacent points are inconsistent, a pixel transformation is recorded, and the number of pixel transformations of the pixel point can be obtained after the traversal is completed; wherein, different colors are used to mark open areas and obstacle areas on the global map. Using different colors to mark passable areas and obstacle areas allows pixels at different positions to have different numbers of pixel transformations, which is convenient for distinction and use.

[0008] Furthermore, the method for generating a multi-branch tree based on the undirected graph in step S2 specifically includes: setting the empty point closest to the mobile robot in the undirected graph as a root node, placing it at the top layer of the tree structure, placing the point directly connected to the empty point at the second layer of the tree structure, placing the point directly connected to the point in the second layer at the third layer of the tree structure, and so on, to generate the multi-branch tree. Converting the undirected graph into a multi-branch tree facilitates the subsequent sorting of empty points and boundary points.

[0009] Furthermore, in step S2, the mobile robot traverses the multi-branch tree using a depth-first search algorithm, which occupies less memory and can find all nodes in the multi-branch tree.

[0010] Furthermore, the method of dividing the boundary points satisfying the preset conditions into the same set in step S5 specifically includes: step S51, the mobile robot takes the current boundary point as the center and finds the boundary points in the circle with the preset length as the radius; step S52, judging whether the boundary points in the circle and the boundary points at the center are reachable in a straight line, if there are no boundary points reachable in a straight line, the boundary points at the center are divided into a set separately, if there are boundary points reachable in a straight line, then enter step S33; step S53, judging whether there are points belonging to the existing set among the boundary points reachable in a straight line, if not, all the boundary points reachable in a straight line and the boundary points at the center are divided into the same set, if so, ignore the points belonging to the existing set and divide the remaining boundary points reachable in a straight line and the boundary points at the center into the same set. Dividing boundary points that are relatively close to each other into the same set can reduce the moving distance and detection times of the mobile robot and improve the efficiency of finding a seat.

[0011] Furthermore, the method further includes: when there are multiple rooms and / or areas on the global map, first generate an undirected graph of the first room or area, and then execute steps S2 to S5; perform the same operations on the remaining rooms or areas in sequence until the mobile robot returns to its seat or all boundary points in the skeleton graph are marked as explored; wherein the rooms and / or areas are pre-planned and have corresponding numbers. Moving and finding seats by room or area can greatly reduce the walking distance of the mobile robot, improve the efficiency of finding seats, and is more in line with human thinking.

[0012] A fast seat finding system based on a skeleton graph comprises a mobile robot with a seat return detection signal and a charging seat with a seat return signal. The system is used to implement the fast seat finding method based on the skeleton graph. The mobile robot also includes: a skeleton graph generation module, which is used to generate a skeleton graph representing the connectivity of a global map to obtain open points and boundary points; an undirected graph generation module, which is used to generate an undirected graph based on the open points and boundary points in the skeleton graph; a multi-branch tree generation module, which is used to generate a multi-branch tree based on the undirected graph to facilitate depth-first traversal; a depth-first traversal module, which is used to traverse the multi-branch tree to achieve sorting of open points and boundary points to generate a sequence of points to be explored; a boundary point set and generation module, which is used to divide boundary points that meet preset conditions into the same set and; a seat return module, which is used to control the mobile robot to detect seat return signals at the boundary points according to the order of the sequence of points to be explored to achieve seat return; wherein the mobile robot stores a global map. Compared with the prior art, this technical solution uses a depth-first traversal module to sort the empty points and boundary points on the skeleton graph, so that the mobile robot can explore the map in an orderly manner; and uses a boundary point set and generation module to divide boundary points with relatively close distances into the same set, so that the mobile robot reduces the moving distance and the number of detections, thereby improving the efficiency of finding a seat.

[0013] A chip stores a computer program code, and when the computer program code is executed, the steps of the method for quickly finding a seat based on a skeleton diagram are implemented. Compared with the prior art, the technical solution can enable the mobile robot to explore the map in an orderly and rapid manner to achieve a seat return. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 This is a flow chart of a method for quickly finding a seat based on a skeleton graph according to an embodiment of the present invention.

[0015] Figure 2 A schematic diagram of a skeleton diagram according to an embodiment of the present invention.

[0016] Figure 3 A schematic diagram of an undirected graph according to an embodiment of the present invention.

[0017] Figure 4 A schematic diagram of pixel transformation according to an embodiment of the present invention.

[0018] Figure 5 A schematic diagram of a multi-branch tree according to an embodiment of the present invention.

[0019] Figure 6 A schematic diagram of a sequence of points to be explored according to an embodiment of the present invention. DETAILED DESCRIPTION

[0020] The specific embodiments of the present invention will be further described below in conjunction with the accompanying drawings. It should be noted that the following detailed descriptions are exemplary and are intended to provide further explanation of the present application. Unless otherwise specified, all technical and scientific terms used herein have the same meanings as those commonly understood by those of ordinary skill in the art to which the present application belongs.

[0021] It should be noted that the terms used herein are only for describing specific embodiments and are not intended to limit the exemplary embodiments according to the present application. As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. In addition, it should be understood that when the terms "comprise" and / or "include" are used in this specification, it indicates the presence of features, steps, operations, devices, components and / or combinations thereof.

[0022] In this embodiment, the global map is when the mobile robot is used for the first time, using the various sensors it carries (for example: accelerometer, gyroscope, ultrasonic rangefinder, camera, single-line laser radar, etc.) to search the movement area of ​​each room, sense the position, shape and size of each room, as well as the position, shape and size of obstacles encountered, and draw an environmental boundary map based on this. The map of the entire room is drawn by recording while walking indoors, and the map includes obstacle areas, open areas and unknown areas.

[0023] An embodiment of the present invention discloses a method for quickly finding a seat based on a skeleton graph, such as Figure 1 As shown, the method comprises the following steps:

[0024] Step S1, the mobile robot generates a skeleton graph representing the connectivity of the global map, and then finds the boundary points and empty points on the skeleton graph and generates an undirected graph; wherein the mobile robot stores the global map.

[0025] In the process of executing step S1, the method for the mobile robot to generate a skeleton graph representing the connectivity of the global map specifically includes:

[0026] Step S11, extract the edge points of obstacles in the global map and make a judgment. If there are no other edge points in the eight neighborhoods of the edge point, the edge point is regarded as an isolated point and deleted. The remaining edge points are retained and the process proceeds to step S12. Deleting the isolated points can make the map as simple as possible, which is convenient for finding the target point to be explored later. Step S12, construct a Delaunay triangulation based on the remaining edge points in step S11, and then generate the perpendicular bisector of each side of each triangle in the Delaunay triangulation. Step S13, construct a Thiessen polygon with the perpendicular bisector as the edge and the intersection of the perpendicular bisector as the vertex. After deleting the Delaunay triangulation, the following can be obtained. Figure 2 The skeleton diagram shown in Figure 2 shows the Figure 2 The left side shows the superposition of the skeleton graph and the static map, and the right side shows a separate skeleton graph. The skeleton graph can express the connected domain information of the map with very little information, which can ensure that the boundary points and empty points extracted later are related to each other, rather than randomly generated points without correlation.

[0027] After obtaining the skeleton graph, the method of finding the boundary points and empty points on the skeleton graph and generating an undirected graph specifically includes:

[0028] Step S14, superimpose the skeleton image on the global map, and then take the pixel point in the skeleton image as the center, and determine whether the number of pixel transformations in the eight neighborhoods of the pixel point as the center is 0. If so, set the pixel point as the center as an empty point, otherwise, set the pixel point as the center as a boundary point; wherein the empty point and the boundary point include the map coordinate information of the point and the empty point and / or boundary point information connected to the point; step S15, connect the empty point and the boundary point according to the connectivity of the empty point and the boundary point, and generate the following Figure 3 The undirected graph shown in FIG. 1 , wherein the connecting lines are edges of the undirected graph.

[0029] The method for determining the number of pixel transformations in step S14 specifically includes:

[0030] Step S141, after superimposing the skeleton graph on the global map, traverse all points in the eight neighborhoods of a pixel point in the skeleton graph, wherein the traversal starting point is any point and the traversal end point is the same as the traversal starting point. Figure 4 , there are eight points 1-8 in the eight-neighborhood with pixel 0 as the center point. If the traversal starting point is pixel 1, the traversal order is 1-2-3-4-5-6-7-8-1. For example, if the traversal starting point is pixel 3, the traversal order is 3-4-5-6-7-8-1-2-3. In this embodiment, the traversal starting point is assumed to be pixel 1. Step S142, during the traversal process, if the colors of two adjacent points are inconsistent, a pixel transformation is recorded, and the number of pixel transformations of the pixel point can be obtained after the traversal is completed; wherein, different colors are used to mark open areas and obstacle areas on the global map.

[0031] Reference Figure 3 (a), where white pixels 1, 3, and 6 represent points in the open area, and black pixels 2, 4, 5, 7, and 8 represent points in the obstacle area. Similarly, Figure 3 In (b), the white pixel 2 represents a point in the open area, and the black pixels 1, 3, 4, 5, 6, 7, and 8 represent points in the obstacle area. Figure 3 In (a), we start from pixel 1 and record the color inconsistency between adjacent pixels 1 and 2, the color inconsistency between pixels 2 and 3, the color inconsistency between pixels 3 and 4, and so on. Figure 3 In (a), there are 6 pairs of adjacent points with different colors, that is, there are 6 pixel transformations in the eight-neighborhood with pixel 0 as the center point. Using the same method, Figure 3(b) There are two pixel transformations. It is not difficult to see that, with the pixel point in the skeleton image as the center, the pixel point with zero pixel transformation times in the eight-neighborhood represents a point in the open area (or a point not close to the obstacle area), that is, an open point, while the pixel point with non-zero transformation times represents a point close to the obstacle area, that is, a boundary point. The pixel point as the center is close to the obstacle, indicating that it may be a charging station, so it is set as a boundary point for exploration.

[0032] It should be noted that when constructing a global map, since the environment of the target area is relatively complex, in order to express the characteristics of each local area in the target area, a corresponding grid state can be configured for each grid according to the situation of each object in the image. The grid state is used to characterize the situation of the pixel point here in the image, because the pixel point can belong to the pixel of the detected obstacle, the pixel without the detected obstacle, or the pixel whose state here is uncertain. Therefore, the grid state includes the state without obstacle, the state with obstacle and the uncertain state. Correspondingly, each grid state can be quantified. In this embodiment, the gray value of the pixel point where the grid is located is 255, which indicates the state without obstacle, that is, all grids in the detected and obstacle-free area are marked as white. The gray value of the pixel point where the grid is located is 0, which indicates the state with obstacle, that is, all grids in the detected and obstacle-free area are marked as black. The gray value of the pixel point where the grid is located is 0-225, which indicates the uncertain state, that is, all grids in the uncertain area are marked as gray. To simplify the map, all the pixels where the grid values ​​are 0-128 are marked as 0, that is, they are represented by black, and all the pixels where the grid values ​​are 129-255 are marked as 255, that is, they are represented by white.

[0033] In this embodiment, the open area is composed of a plurality of blank pixels, and the obstacle area is composed of a plurality of black pixels. The pixel features of the pixels in the open area and the obstacle area are different. The pixel features can be represented by any suitable identifier, such as a grayscale value or a custom grid value. For example, the grayscale value of each pixel in the obstacle area is 0, and the grayscale value of each pixel in the open area is 255. For another example, the grid value of each pixel in the obstacle area is 0, and the grid value of each pixel in the open area is 1.

[0034] Step S2, generating a multi-branch tree based on the undirected graph, and then traversing the multi-branch tree to obtain a sequence of points to be explored.

[0035] In order to facilitate the subsequent depth-first search, in this embodiment, the undirected graph is converted into a multi-branch tree. The schematic diagram of the multi-branch tree can be referred to as Figure 5The method of generating a multi-branch tree specifically includes: setting the empty point closest to the mobile robot in the undirected graph as the root node and placing it at the top of the tree structure, referring to Figure 3 , assuming that the nearest open point to the mobile robot "R" is 1, so point 1 is placed at the top of the tree structure. Then, based on the connectivity between points in the undirected graph, the points directly connected to the open point are placed as follows Figure 5 The points 10, 2, and 3 in the tree are placed in the second layer of the tree structure, and the points directly connected to the points in the second layer are placed in the tree structure. Figure 5 The points 8, 7, 6, 5, and 4 are placed in the third layer of the tree structure, and so on, to generate the multi-branch tree.

[0036] In the process of executing step S2, the multi-branch tree is traversed using a depth-first search algorithm to obtain a sequence of points to be explored. The process can be referred to as Figure 6 , Figure 6 The upper side is the traversal process of the depth-first search algorithm, and the lower side is the sequence of points to be explored obtained by the traversal. Depth-first search (DFS) is a type of graph algorithm, and is a traversal algorithm for graphs and trees. Depth-first search is a classic algorithm in graph theory. The depth-first search algorithm can generate the corresponding topological sorting table of the target graph. The process is briefly to go deep into each possible branch path until it cannot go deeper, and each node can only be visited once. If there are unvisited nodes in the graph at this time, start from the next unexplored node and re-perform depth-first traversal until all nodes in the graph have been visited.

[0037] Step S3, the mobile robot moves to the nearest open point, and then determines whether it can be reached in a straight line from the first unexplored boundary point in the sequence of points to be explored. If it cannot be reached in a straight line, it proceeds to step S4. If it can be reached in a straight line, it moves to the boundary point to detect the return signal. If the return signal is detected, it returns to the seat. If no return signal is detected, it proceeds to step S5.

[0038] As mentioned above, the open point is a point that is not close to the obstacle area. Therefore, by moving with the help of the open point, the collision between the mobile robot and the obstacle in the process of finding the seat can be reduced as much as possible, the probability of getting stuck or navigation data errors can be reduced, and the movement efficiency can be improved. It should be noted that the open points in the sequence of points to be explored do not need to be explored, because the open points are not close to obstacles, which means that the charging seat is not near the open points. However, if in one embodiment, the mobile robot detects the return signal of the charging seat when it is at a certain open point, the mobile robot can return to the seat according to the guidance of the return signal.

[0039] In this embodiment, when the first unexplored boundary point in the sequence of points to be explored is reachable in a straight line, that is, when the mobile robot can directly reach the boundary point through the line connecting the empty point where it is located and the boundary point (judged with the help of the global map), the mobile robot moves to the boundary point in a straight line. Optionally, the mobile robot can also move to the boundary point along the empty point. However, this walking method is not smooth because each empty point is an inflection point. Therefore, the path can be smoothed first to improve the smoothness of the mobile robot when walking. The specific smoothing method is a prior art and will not be described here.

[0040] Step S4, the mobile robot determines whether the previous point of the first unexplored boundary point in the sequence of points to be explored is reachable in a straight line. If not, the mobile robot continues to determine the previous point until a directly reachable point is found and moves to the point, and then returns to step S3.

[0041] In step S3, when the mobile robot is not able to reach the first unexplored boundary point in the sequence of points to be explored, the mobile robot is first moved to the point that is closest to the boundary point and is reachable by a straight line. Specifically, the previous point of the boundary point is judged. If it is still not reachable by a straight line, another point is judged forward until a point that is reachable by a straight line is found, and then the mobile robot is moved to the point and step S3 is executed again. The moving method can refer to the above content. It should be noted that when the mobile robot itself is at an open point, the nearest open point to it is the open point where it is located.

[0042] In step S5, the mobile robot divides the boundary points that meet the preset conditions into the same set and sets the explored mark for all boundary points in the set, and then executes step S3 again until all boundary points in the back seat or skeleton map are set with the explored mark.

[0043] After executing step S3, if the mobile robot does not detect the return signal, an explored mark is set for the explored boundary points to avoid repeated exploration. In the process of executing step S5, the method of dividing the boundary points that meet the preset conditions into the same set specifically includes:

[0044] Step S51, the mobile robot takes the current boundary point as the center and finds the boundary points in the circle with the preset length as the radius; Step S52, judges whether the boundary points in the circle and the boundary points in the center are reachable in a straight line. If there are no boundary points reachable in a straight line, the boundary points in the center are divided into a set separately. If there are boundary points reachable in a straight line, enter step S33; Step S53, judges whether there are points belonging to the existing set among the boundary points reachable in a straight line. If not, all boundary points reachable in a straight line and the boundary points in the center are divided into the same set. If so, ignore the points belonging to the existing set and divide the remaining boundary points reachable in a straight line and the boundary points in the center into the same set. Dividing boundary points with relatively close distances into the same set can reduce the moving distance and detection times of the mobile robot and improve the efficiency of finding a seat. It should be noted that the maximum value of the preset length cannot exceed the sum of the radius of the mobile robot detecting the return seat signal and the radius of the charging seat radiating the return seat signal.

[0045] As another embodiment, when there are multiple rooms and / or areas on the global map, an undirected graph of the first room or area is generated first, and then steps S2 to S5 are executed; the same operations are performed on the remaining rooms or areas in sequence until the mobile robot returns to its seat or all boundary points in the skeleton graph are marked as explored; wherein the rooms and / or areas are pre-planned and have corresponding numbers. Moving and finding seats by room or area can greatly reduce the walking distance of the mobile robot, improve the efficiency of finding seats, and is more in line with human thinking.

[0046] The present invention also provides a quick seat finding system based on a skeleton diagram, comprising a mobile robot capable of detecting a seat return signal and a charging base capable of transmitting a seat return signal. Preferably, the seat return signal is an infrared signal or a UWB sensor signal. When the seat return signal is an infrared signal, the infrared signal is emitted by an infrared emitting lamp provided on the charging base, and the mobile robot is provided with an infrared sensor for detecting the infrared signal; when the seat return signal is a UWB sensor signal, the UWB sensor signal is emitted by a UWB base station provided on the charging base, and the mobile robot is provided with a UWB tag for detecting the UWB sensor signal. As for how the mobile robot returns to its seat after detecting the seat return signal, it is already a prior art and will not be elaborated here.

[0047] The mobile robot also includes:

[0048] A skeleton graph generation module is used to generate a skeleton graph representing the connectivity of a global map to obtain empty points and boundary points; an undirected graph generation module is used to generate an undirected graph based on the empty points and boundary points in the skeleton graph; a multi-branch tree generation module is used to generate a multi-branch tree based on the undirected graph to facilitate depth-first traversal; a depth-first traversal module is used to traverse the multi-branch tree to achieve the sorting of empty points and boundary points to generate a sequence of points to be explored; a boundary point set and generation module is used to divide boundary points that meet preset conditions into the same set and to avoid repeated exploration and improve exploration efficiency; a return seat module is used to control the mobile robot to detect the return seat signal at the boundary point according to the order of the sequence of points to be explored to achieve return seat; wherein the mobile robot stores a global map. Compared with the prior art, the mobile robot uses the depth-first traversal module to sort the empty points and boundary points on the skeleton graph, so that the mobile robot can explore the map in an orderly manner; the boundary point set and generation module is used to divide the boundary points that are relatively close into the same set and, so that the mobile robot reduces the moving distance and the number of detections, and improves the efficiency of finding a seat.

[0049] The present invention also discloses a chip, which is used to store computer program code and can be set in the aforementioned mobile robot. When the computer program code is executed, the steps of the aforementioned fast seat finding method based on the skeleton graph are implemented. Alternatively, when the chip executes the computer program code, the functions of each module in the above-mentioned mobile robot embodiment are implemented. Exemplarily, the computer program code can be divided into one or more modules / units, and the one or more modules / units are stored in the chip and executed by the chip to complete the present application. The one or more modules / units can be a series of computer program instruction segments that can complete specific functions, and the instruction segments are used to describe the execution process of the computer program code in the mobile robot. For example, the computer program code can be divided into: a skeleton graph generation module, an undirected graph generation module, a multi-branch tree generation module, a depth-first traversal module, a boundary point set and generation module, and a seat return module in the aforementioned mobile robot embodiment. Compared with the prior art, the chip can enable the mobile robot to explore the map in an orderly and rapid manner to achieve seat return.

[0050] Obviously, the above-mentioned embodiments are only some embodiments of the present invention, rather than all embodiments, and the technical solutions between the various embodiments can be combined with each other. In addition, if the terms "center", "upper", "lower", "left", "right", "vertical", "horizontal", "inside", "outside" and the like appear in the embodiments, the orientation or position relationship indicated is based on the orientation or position relationship shown in the accompanying drawings, which is only for the convenience of describing the present invention and simplifying the description, rather than indicating or implying that the device or element referred to must have a specific orientation or be constructed and operated in a specific orientation, and therefore cannot be understood as a limitation on the present invention. If the terms "first", "second", "third" and the like appear in the embodiments, it is to facilitate the distinction of related features, and cannot be understood as indicating or implying their relative importance, order or number of technical features.

[0051] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server or network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes: U disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), mobile hard disk, disk or optical disk, etc. Various media that can store program codes.

[0052] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.

Claims

1. A fast seat finding method based on skeleton graph, characterized in that: The method comprises the following steps: Step S1, the mobile robot generates a skeleton graph representing the connectivity of the global map, and then finds the boundary points and empty points on the skeleton graph and generates an undirected graph; wherein the mobile robot stores the global map; Step S2, generating a multi-branch tree based on the undirected graph, and then traversing the multi-branch tree to obtain a sequence of points to be explored; Step S3, the mobile robot moves to the nearest open point, and then determines whether the first unexplored boundary point in the sequence of points to be explored is reachable in a straight line. If not, the robot proceeds to step S4. If so, the robot moves to the boundary point to detect a return signal. If a return signal is detected, the robot returns to its seat. If no return signal is detected, the robot proceeds to step S5. Step S4, the mobile robot determines whether the previous point of the first unexplored boundary point in the sequence of points to be explored is directly reachable, if not, continues to determine the previous point until a directly reachable point is found and moves to the point, and then returns to step S3; Step S5, the mobile robot divides the boundary points that meet the preset conditions into the same set and sets the explored mark for all boundary points in the set, and then executes step S3 again until all boundary points in the back seat or skeleton map are set with the explored mark; The method for generating a skeleton graph representing global map connectivity in step S1 specifically includes: Step S11, extracting edge points of obstacles in the global map and making judgments. If there are no other edge points in the eight neighborhoods of the edge point, the edge point is regarded as an isolated point and deleted, and the remaining edge points are retained and the process proceeds to step S12; Step S12, constructing a Delaunay triangulation based on the remaining edge points in step S11, and then generating the perpendicular bisector of each edge of each triangle in the Delaunay triangulation; Step S13, constructing Thiessen polygons with the perpendicular bisectors as edges and the intersections of the perpendicular bisectors as vertices, and deleting the Delaunay triangulation to obtain the skeleton graph.

2. The method for quickly finding a seat based on a skeleton diagram according to claim 1, characterized in that: The method for finding boundary points and empty points on the skeleton graph and generating an undirected graph in step S1 specifically includes: Step S14, superimposing the skeleton image onto the global map, and then taking the pixel point in the skeleton image as the center, determining whether the number of pixel transformations in the eight neighborhoods of the pixel point as the center is 0, if so, setting the pixel point as the center as an empty point, otherwise, setting the pixel point as the center as a boundary point; wherein the empty point and boundary point include the map coordinate information of the point and the empty point and / or boundary point information connected to the point; Step S15, connecting lines according to the connectivity of the empty points and the boundary points, so as to generate the undirected graph; wherein the connecting lines are the edges of the undirected graph.

3. The method for quickly finding a seat based on a skeleton diagram according to claim 2, characterized in that: The method for determining the number of pixel transformations in step S14 specifically includes: Step S141, after superimposing the skeleton graph on the global map, traverse all points in the eight neighborhoods of a pixel point in the skeleton graph, wherein the traversal starting point is any point and the traversal end point is the same as the traversal starting point; Step S142, during the traversal process, if the colors of two adjacent points are inconsistent, a pixel transformation is recorded, and the number of pixel transformations of the pixel point can be obtained after the traversal is completed; wherein, different colors are used to mark open areas and obstacle areas on the global map.

4. The method for quickly finding a seat based on a skeleton diagram according to claim 2, characterized in that: The method for generating a multi-branch tree based on the undirected graph in step S2 specifically includes: The empty point closest to the mobile robot in the undirected graph is set as the root node and placed at the top level of the tree structure. Place the points directly connected to the empty point in the second layer of the tree structure. The points directly connected to the points in the second layer are placed in the third layer of the tree structure, and so on, to generate the multi-branch tree.

5. The method for quickly finding a seat based on a skeleton diagram according to claim 4, characterized in that: In step S2, the mobile robot traverses the multi-branch tree using a depth-first search algorithm.

6. The method for quickly finding a seat based on a skeleton graph according to claim 1, characterized in that: The method of dividing the boundary points satisfying the preset conditions into the same set in step S5 specifically includes: Step S51, the mobile robot takes the current boundary point as the center and finds a boundary point within a circle with a preset length as the radius; Step S52, determining whether the boundary points in the circle and the boundary points at the center are reachable by a straight line, if there are no boundary points reachable by a straight line, dividing the boundary points at the center into a set separately, if there are boundary points reachable by a straight line, proceeding to step S53; Step S53, determine whether there are points belonging to the existing set among the boundary points reachable by a straight line. If not, divide all boundary points reachable by a straight line and the boundary points at the center into the same set. If yes, ignore the points belonging to the existing set and divide the remaining boundary points reachable by a straight line and the boundary points at the center into the same set.

7. The method for quickly finding a seat based on a skeleton diagram according to claim 1, characterized in that: The method further comprises: When there are multiple rooms and / or areas on the global map, an undirected graph of the first room or area is generated first, and then steps S2 to S5 are executed; the same operations are performed on the remaining rooms or areas in sequence until the mobile robot returns to its seat or all boundary points in the skeleton graph are marked as explored; wherein the rooms and / or areas are pre-planned and have corresponding numbers.

8. A fast seat finding system based on skeleton graph, comprising a mobile robot with a detection signal for returning to the seat and a charging seat with a transmission signal for returning to the seat, characterized in that: The system is used to implement the skeleton graph-based rapid seat finding method according to any one of claims 1 to 7, and the mobile robot further includes: A skeleton graph generation module is used to generate a skeleton graph representing the connectivity of the global map to obtain empty points and boundary points; An undirected graph generation module, used to generate an undirected graph based on empty points and boundary points in the skeleton graph; Multi-branch tree generation module, used to generate multi-branch trees based on undirected graphs to facilitate depth-first traversal; Depth-first traversal module, used to traverse the multi-branch tree, sort the empty points and boundary points, and generate a sequence of points to be explored; A boundary point set generation module is used to divide the boundary points that meet the preset conditions into the same set; A return seat module, used to control the mobile robot to detect a return seat signal at the boundary point according to the sequence of the to-be-explored points to realize the return seat; Among them, the mobile robot stores a global map.

9. A chip storing computer program code, characterized in that: When the computer program code is executed, the steps of the skeleton graph-based rapid seat finding method according to any one of claims 1 to 7 are implemented.

Citation Information

Patent Citations

  • Discovery method and system suitable for a plurality of hidden confounding factor data

    CN109325600A

  • Multi-robot map exploration method based on rapidly-exploring random tree

    CN110221614A