Path determination method and device, readable storage medium and self-moving cleaning equipment
By using a mixed integer linear programming model in a sweeping robot to optimize the access order of path points and generate the optimal cleaning path, the problem of the cleaning path not being the shortest or being inefficient in the existing technology is solved, and the cleaning efficiency and battery life are improved.
Patent Information
- Application Number
- CN202410352698.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-26
- Publication Date
- 2025-09-26
AI Technical Summary
In the existing technology, when a sweeping robot cleans multiple areas, it cannot ensure the shortest cleaning path or the highest efficiency, resulting in a longer moving path and low cleaning efficiency. Especially when cleaning a large area, the robot may suffer from insufficient battery life.
A mixed integer linear programming model is used to determine multiple path points in the area to be cleaned, and the order of visiting the path points is optimized. The optimal cleaning path is generated by combining the arcuate route planning algorithm.
The cleaning path is optimized to make it the shortest or take the shortest time, thereby improving the cleaning efficiency and the endurance of the self-propelled cleaning equipment.
Smart Images

Figure CN120704314A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of path planning technology, and in particular to a path determination method and device, a readable storage medium, and a self-moving cleaning device. Background Art
[0002] In related technologies, if a robot vacuum wants to clean a designated area, it first needs a grid map of the area. This map includes uncleanable areas such as boundaries, cliffs, and obstacles. Related technologies use geometric region segmentation algorithms such as BCD (Boustrophedon Cellular Decomposition, a grid map decomposition method) to divide the area to be cleaned into several cleanable and uncleanable rectangular areas. Then, based on the known cleaning arch intervals, evenly distributed arch lines within the cleanable rectangular areas serve as cleaning paths.
[0003] When multiple areas need to be cleaned, the robot vacuum determines the cleaning order based on its current location and pre-set rules, such as prioritizing the rectangular area closest to the robot, the rectangular area closest to the door, or the left side of the recently cleaned rectangular area. These rules cannot guarantee the shortest cleaning path or the highest efficiency. Summary of the Invention
[0004] This application aims to solve at least one of the technical problems existing in the prior art or related art.
[0005] To this end, a first aspect of the present application proposes a path determination method for a self-moving cleaning device.
[0006] A second aspect of the present application provides a path determination device for a self-moving cleaning device.
[0007] A third aspect of the present application provides a path determination device for a self-moving cleaning device.
[0008] A fourth aspect of the present application provides a readable storage medium.
[0009] A fifth aspect of the present application provides a self-moving cleaning device.
[0010] In view of this, the first aspect of the present application provides a path determination method for a self-moving cleaning device, including: determining multiple path points corresponding to the area to be cleaned based on an area map of the area to be cleaned; determining a target cleaning path based on a mixed integer linear programming model and multiple path points, the target cleaning path being the moving path of the self-moving cleaning device when cleaning the area to be cleaned, and the target cleaning path passes through each of the multiple path points in sequence.
[0011] In this technical solution, the self-moving cleaning equipment includes sweeping robots, mopping robots, sweeping and mopping robots, window cleaning robots and other movable platform devices that can move autonomously and complete cleaning tasks during movement.
[0012] In related technologies, taking a sweeping robot as an example, when the sweeping robot performs a ground cleaning task, the sweeping robot first loads a grid map of the area to be cleaned. The grid map includes cleanable areas and uncleanable areas. For example, the uncleanable areas include room boundaries such as walls or doors, cliffs with height differences such as steps, and obstacles such as furniture and home appliances.
[0013] The sweeping robot divides the area to be cleaned into sections based on the grid map and the set area segmentation algorithm such as BCD, and obtains multiple cleanable rectangular areas. The sweeping robot distributes evenly distributed bow lines in the cleanable rectangular areas as the cleaning path according to the preset cleaning bow intervals.
[0014] When there are a large number of cleanable rectangular areas, the sweeping robot cleans each cleanable rectangular area in sequence according to its current location and preset rules. For example, the preset rules may be: give priority to cleaning the rectangular area closest to the sweeping robot, give priority to cleaning the rectangular area closest to the room door, or give priority to cleaning the left side of the rectangular area that has just been swept, etc.
[0015] This preset rule cannot guarantee that the sweeping robot's cleaning path is the shortest or the cleaning efficiency is the highest, resulting in problems such as the sweeping robot's moving path becoming longer, the cleaning efficiency becoming lower, and the cleaning time increasing. When the cleaning area is large, the low cleaning path efficiency will also lead to problems such as insufficient robot endurance, seriously affecting the cleaning efficiency of the self-propelled cleaning equipment.
[0016] In response to the technical problems in the above-mentioned prior art, the technical solution of the present application determines multiple path points in the area to be cleaned, wherein each path point corresponds to a key point in the area to be cleaned. These path points can be entrance path points or exit points of the area to be cleaned, or turning points on the bow-shaped cleaning route, etc. These path points are points that the self-moving cleaning equipment must pass through when performing the cleaning task.
[0017] After the area to be cleaned is abstracted into multiple path points, the mixed integer linear programming model is used to combine information such as path length and path moving speed to optimize the order of visiting multiple path points, thereby obtaining the optimal visiting order.
[0018] After obtaining the optimal access order, these path points are connected in series in the optimal access order in combination with the bow route planning algorithm. The target cleaning path obtained is the optimal cleaning path. The target cleaning path can at least meet one of the shortest path length or shortest cleaning time, thereby optimizing the cleaning efficiency.
[0019] The technical solution of the present application determines the necessary path points in the area to be cleaned, and optimizes the order of visiting the path points through a mixed integer linear programming model, so as to plan the optimal target cleaning path. The target cleaning path can ensure that the cleaning path is the shortest or the most efficient. Therefore, when the self-moving cleaning equipment performs the cleaning operation according to the target cleaning path, it can effectively improve the cleaning efficiency.
[0020] In addition, the path determination method of the self-moving cleaning device in the above technical solution provided by this application may also have the following additional technical features:
[0021] In some technical solutions of the present application, optionally, the step of determining the target cleaning path based on a mixed integer linear programming model and multiple path points specifically includes: determining the starting point of the path among multiple path points; based on the mixed integer linear programming model, sequentially determining the subsequent path points corresponding to each path point after the path starting point to obtain a path point sequence; and generating the target cleaning path according to the path point sequence.
[0022] In this technical solution, the target cleaning path is specifically a path formed by sequentially connecting multiple path points. For example, the target cleaning path can be a broken line path formed by sequentially connecting the ends of multiple straight lines, where the two endpoints of each straight line are the two path points visited by the self-mobile cleaning device in sequence. The path starting point is specifically the first path point on the target cleaning path, which is the starting point of the self-mobile cleaning device's cleaning task.
[0023] After selecting the starting point of the path, the optimal next path point after the starting point is determined based on the mixed integer linear programming model, which is recorded as the first path point. The optimal next path point after the first path point is determined, which is recorded as the second path point, and so on, until all path points are sorted and the path point sequence with the optimal access order is obtained. Starting from the starting point of the path, each path point is connected in series in the order of the path point sequence to obtain the final target cleaning path.
[0024] Specifically, the cost between any two path points is defined as C ij , where the cost value C ij It can be the distance value between path point i and path point j. For example, if path point i and path point j are reachable in a straight line, the cost value C can be expressed using the Euclidean distance. ijIf a straight line between path point i and path point j is not reachable, the path length between path point i and path point j can be calculated using a route planning algorithm such as the A* algorithm. Alternatively, the path length between path point i and path point j can be evaluated according to a set application scenario, such as moving in an arc, an oblique line, or an arched line to calculate the path length C. ij .
[0025] Cost value C ij It can also be the travel time between waypoint i and waypoint j. Combined with map information, the average travel speed between waypoint i and waypoint j can be predicted. For example, different scenarios such as straight-ahead travel, bow-shaped turns, continuous navigation along curves, deceleration near obstacles, passing through long-haired carpets, passing through short-haired carpets, passing through threshold slopes, etc. can all estimate a realistic average speed. Then, the travel time C can be obtained by combining the distance value between waypoint i and waypoint j with the estimated average speed. ij .
[0026] The optimization function of the mixed integer linear programming model is as follows:
[0027]
[0028] Where T is the cleaning path between path point i and path point j; N is the number of path points; i and j are both integers greater than or equal to 0 and less than or equal to N-1; C ij is the cost between path point i and path point j; X ij Indicates whether path point i and path point j are reachable, which is also the variable to be optimized. ij = 0 means that it is unreachable from path point i to path point j, X ij =1 means it is possible to move from point i to point j.
[0029] Select a suitable optimizer to solve the above formula (1). Since the optimization target variable X ij The value range of is an integer, specifically 0 or 1, so the above optimization process is a typical mixed integer linear programming problem, so the commonly used Gurobi solver, CBC solver, etc. can be used for solution.
[0030] Finally, X ij By connecting the path points i and j with =1 in series, the optimal cleaning order, that is, the target cleaning path, can be obtained.
[0031] The technical solution of the present application optimizes the order of visiting the necessary path points in the cleaning area through a mixed integer linear programming model, so as to obtain the optimal cleaning path, that is, the target cleaning path. The target cleaning path can meet the shortest path or shortest time requirement, thereby improving the cleaning efficiency of the self-moving cleaning equipment.
[0032] In some technical solutions of the present application, optionally, the area map includes at least two sub-cleaning areas, and the target cleaning path passes through each of the at least two sub-cleaning areas; the path points include an entry path point and an exit path point of the sub-cleaning area, and the self-mobile cleaning equipment moves into the sub-cleaning area via the entry path point, and moves out of the sub-cleaning area via the exit path point.
[0033] In this technical solution, the area map includes cleanable areas and uncleanable areas. The uncleanable areas will divide the entire area to be cleaned into multiple different cleanable areas, namely sub-cleaning areas. The sub-cleaning areas do not include inaccessible areas such as obstacles. Therefore, each sub-cleaning area can independently plan an arch path as the cleaning path within the area.
[0034] Once the path planning within each sub-cleaning area is completed, the problem of optimizing the cleaning path can be simplified to the process of optimizing the cleaning order of different sub-cleaning areas.
[0035] Since each sub-cleaning area is not a simple "point", and the arc-shaped path inside each cleaning area must have a starting point and an end point, each sub-cleaning area can be abstracted as a combination of an entry path point and an exit path point. The self-mobile cleaning equipment enters a sub-cleaning area through the entry path point, and performs the cleaning task in the sub-cleaning area according to the planned arc-shaped path, and finally arrives at the exit path point and leaves the current sub-cleaning area through the exit path point.
[0036] Therefore, simplifying each sub-sweeping area into an entry path point and an exit path point can effectively reduce the number of path points and reduce the calculation scale during path optimization.
[0037] The technical solution of this application simplifies each sub-cleaning area in the area to be cleaned into an entry path point and an exit path point, and uses the traditional bow path planning algorithm for internal path planning. It can reduce the complexity and calculation scale of the path planning problem, reduce the calculation time, and improve the path planning efficiency while ensuring the optimal cleaning order of multiple sub-cleaning areas.
[0038] In some technical solutions of the present application, one of any two adjacent path points in a path point sequence is an entry path point, and the other path point is an exit path point.
[0039] In this technical solution, the path point sequence is the optimal access sequence of all path points obtained after sorting all path points. Any two adjacent path points in the path point sequence are two path points reached successively by the mobile cleaning device.
[0040] Since the target cleaning path connects multiple different sub-cleaning areas in series, when the self-mobile cleaning device repeatedly enters the same sub-cleaning area, or passes the starting point of a sub-cleaning area but does not enter, or passes the exit path point of a sub-cleaning area before entering a sub-cleaning area, it means that the current cleaning path is not the optimal path and the cleaning path is still unreasonable.
[0041] When the path is reasonable, the self-moving cleaning device will first enter a sub-cleaning area through the entrance path point of the sub-cleaning area, and leave the sub-cleaning area through the exit path point of the sub-cleaning area, and move to the entrance path point of the next sub-cleaning area to enter the next sub-cleaning area, and so on, and then enter each sub-cleaning area in sequence, and will not repeatedly enter the same sub-cleaning area or "detour" to other sub-cleaning areas in advance.
[0042] The technical solution of the present application can avoid the problem of unreasonable repeated paths by constraining two adjacent path points in the path point sequence to be the entry path point and the exit path point, thereby improving the path planning efficiency and the working efficiency of the self-moving cleaning equipment.
[0043] In some technical solutions of the present application, optionally, the at least two sub-cleaning areas include a first sub-cleaning area and a second sub-cleaning area, and the starting point of the target cleaning path is located in the first sub-cleaning area; the sub-cleaning areas and the target cleaning path meet the following conditions:
[0044] The in-degree of the sub-sweeping area is 1, the maximum out-degree of the sub-sweeping area is 1, the in-degree of the second sub-sweeping area is greater than or equal to the out-degree, the sum of the in-degrees of at least two sub-sweeping areas is equal to the number of sub-sweeping areas, the sum of the out-degrees of at least two sub-sweeping areas is equal to the number of sub-sweeping areas, and the target cleaning path does not include a loop path.
[0045] In this technical solution, the optimization function for establishing the mixed integer linear programming model is the following formula (2):
[0046]
[0047] Where T is the cleaning path between path point i and path point j; N is the number of entry path points; i and j are both integers, and i∈[0,N-1], j∈[0,N-1]; C ij is the cost between path point i and path point j; X ijIndicates whether path point i and path point j are reachable, which is also the variable to be optimized. ij = 0 means that it is unreachable from path point i to path point j, X ij =1 means it is possible to move from point i to point j.
[0048] For example, a sub-sweeping area is defined as a cell. Assuming that the sub-sweeping area cell is a rectangular area, the constraints that the above optimization model needs to comply with are as follows:
[0049]
[0050]
[0051] Where N is the number of entry path points; i and j are both integers, and i∈[0,N-1], j∈[0,N-1]; X ab Indicates whether path point a and path point b are reachable; i, i+1, i+2, i+3 are the four vertices of the rectangular sub-sweep area cell.
[0052] The constraint (3) above is used to constrain each sub-sweep area cell to be reached only once, that is, the in-degree is 1. The constraint (4) above constrains the out-degree of the first sub-sweep area as the starting point to be 1, and the remaining second sub-sweep areas can only be set out once at most, that is, the maximum out-degree is 1. The out-degree of the last cell in the planning result is 0, and the sweep is completed at this point, and no other cells will be visited.
[0053]
[0054]
[0055] Where N is the number of entry path points; i and j are both integers, and i∈[0,N-1], j∈[0,N-1]; X ji Indicates whether path point j is reachable from path point i, X ij Indicates whether path point i and path point j are reachable.
[0056] The above constraint (5) constrains each cell outside the starting point to have an in-degree greater than or equal to its out-degree. The above constraint (6) is used to indicate that the total out-degree and total in-degree of all cells are equal to the number of cells.
[0057] u i -u j +NX ij ≤N-1,i∈[1,N-1],j∈[1,N-1]; (7)
[0058] Where N is the number of entry path points; X ijIndicates whether path point i and path point j are reachable; u is an integer, and u∈[1,N-1].
[0059] The above constraint (7) constrains that the path connecting all entry path points does not contain a loop.
[0060] X ij =0,ij is the same as cell; (8)
[0061] Among them, i and j are both integers, and i∈[0,N-1], j∈[0,N-1].
[0062] The above constraint (8) constrains the cost of two points in the same cell to be 0, because there is no need to consider the movement between points in the cell.
[0063] The technical solution of the present application can ensure that the optimized target cleaning path will not repeatedly enter the same cleaning area and will not "detour" to other sub-cleaning areas in advance by setting reasonable constraints. It can ensure that the target cleaning path obtained is the most efficient path and ensure the working efficiency of the self-moving cleaning equipment.
[0064] In some technical solutions of the present application, optionally, the target cleaning path is a broken line path, and the path points include the starting point, end point and inflection point of the broken line path.
[0065] In this technical solution, path points are the points along the path that the self-propelled cleaning device must pass through when cleaning the area to be cleaned. Path points include a starting point, an end point, and an inflection point. The starting point is the path starting point mentioned above, specifically the first path point on the target cleaning path, which is also the starting point of the self-propelled cleaning device's cleaning task. The end point is specifically the last path point on the target cleaning path, which is also the end point of the self-propelled cleaning device's cleaning task.
[0066] To ensure the autonomous cleaning device can effectively clean the entire area to be cleaned, the target cleaning path must completely cover the area to be cleaned. This arcuate path effectively covers the area to be cleaned. Specifically, the arcuate path is a broken line path, which abstracts the autonomous cleaning device as a point mass, regardless of its radius. As the autonomous cleaning device moves along the arcuate path, it must change direction when encountering boundaries such as walls and cliffs, or obstacles such as furniture and appliances. The point where the autonomous cleaning device changes direction due to being unable to continue moving in a straight line is recorded as an inflection point.
[0067] At this point, the entire area to be cleaned can be abstracted into a starting point, an end point, and several viewpoints. These turning points are distributed along the boundaries of the area to be cleaned and the outlines of obstacles.
[0068] The technical solution of this application determines the path points of key locations such as the starting point, end point and turning point within the entire area to be cleaned, and plans the cleaning path based on these path points. There is no need to divide the area to be cleaned, and it can ensure that the cleaning path is the shortest and most efficient, thereby improving the cleaning efficiency and endurance of the self-moving cleaning equipment.
[0069] In some technical solutions of the present application, optionally, the path points and the target cleaning path meet the following conditions: the in-degree of the end point and the inflection point is 1, the maximum out-degree of the path point is 1, the target cleaning path does not include a loop path, and the cleaning section between any two path points is only passed once.
[0070] In this technical solution, the optimization function for establishing the mixed integer linear programming model is the following formula (9):
[0071]
[0072] Where T is the cleaning path between path point i and path point j; N is the number of path points; i and j are both integers greater than or equal to 0 and less than or equal to N-1; C ij is the cost between path point i and path point j; X ij Indicates whether path point i and path point j are reachable, which is also the variable to be optimized. ij = 0 means that it is unreachable from path point i to path point j, X ij =1 means it is possible to move from point i to point j.
[0073] For example, a sub-sweeping area is defined as a cell. Assuming that the sub-sweeping area cell is a rectangular area, the constraints that the above optimization model needs to comply with are as follows:
[0074]
[0075]
[0076] Among them, X ij Indicates whether path point i and path point j are reachable; i and j are both integers greater than or equal to 0 and less than or equal to N-1; N is the number of path points.
[0077] The above constraint (10) constrains that, except for the starting point, all other path points, including the end point and the inflection point, can only be reached once, that is, the in-degree is 1. The above constraint (11) constrains that all path points, including the starting point, inflection point, and end point, can only be triggered once at most, that is, the maximum out-degree is 1. The last turning point in the planning result, that is, the end point, has an out-degree of 0, and the area is cleared at this point, and no other points in the area will be visited.
[0078] u i -uj +NX ij ≤N-1,i∈[1,N-1],j∈[1,N-1]; (12)
[0079] Where N is the number of path points; X ij Indicates whether path point i and path point j are reachable; u is an integer, and u∈[1,N-1].
[0080] The above constraint (12) constrains that the path connecting all path points does not contain a loop.
[0081] X i,i+1 +X i+1,i =1,i∈[1,N-1] and i is an odd number; (13)
[0082] Among them, X ij Indicates whether path point i and path point j are reachable; N is the number of path points.
[0083] The above constraint (13) constrains any two path points to be a one-way street, which can only be passed once. For example, if i=1, X 12 =1, then X 21 =0, that is, you can only move from waypoint 1 to waypoint 2, and cannot move from waypoint 2 to waypoint 1.
[0084] The technical solution of this application can ensure the optimal cleaning path by setting reasonable constraints, ensuring that the cleaning path is the shortest and most efficient, thereby improving the cleaning efficiency and endurance of the self-moving cleaning equipment.
[0085] The second aspect of the present application provides a path determination device for a self-moving cleaning device, including: a determination module for determining multiple path points corresponding to the area to be cleaned based on an area map of the area to be cleaned; and determining a target cleaning path based on a mixed integer linear programming model and multiple path points, the target cleaning path being the moving path of the self-moving cleaning device when cleaning the area to be cleaned, and the target cleaning path passes through each of the multiple path points in sequence.
[0086] In this technical solution, the self-moving cleaning equipment includes sweeping robots, mopping robots, sweeping and mopping robots, window cleaning robots and other movable platform devices that can move autonomously and complete cleaning tasks during movement.
[0087] In related technologies, taking a sweeping robot as an example, when the sweeping robot performs a ground cleaning task, the sweeping robot first loads a grid map of the area to be cleaned. The grid map includes cleanable areas and uncleanable areas. For example, the uncleanable areas include room boundaries such as walls or doors, cliffs with height differences such as steps, and obstacles such as furniture and home appliances.
[0088] The sweeping robot divides the area to be cleaned into sections based on the grid map and the set area segmentation algorithm such as BCD, and obtains multiple cleanable rectangular areas. The sweeping robot distributes evenly distributed bow lines in the cleanable rectangular areas as the cleaning path according to the preset cleaning bow intervals.
[0089] When there are a large number of cleanable rectangular areas, the sweeping robot cleans each cleanable rectangular area in sequence according to its current location and preset rules. For example, the preset rules may be: give priority to cleaning the rectangular area closest to the sweeping robot, give priority to cleaning the rectangular area closest to the room door, or give priority to cleaning the left side of the rectangular area that has just been swept, etc.
[0090] This preset rule cannot guarantee that the sweeping robot's cleaning path is the shortest or the cleaning efficiency is the highest, resulting in problems such as the sweeping robot's moving path becoming longer, the cleaning efficiency becoming lower, and the cleaning time increasing. When the cleaning area is large, the low cleaning path efficiency will also lead to problems such as insufficient robot endurance, seriously affecting the cleaning efficiency of the self-propelled cleaning equipment.
[0091] In response to the technical problems in the above-mentioned prior art, the technical solution of the present application determines multiple path points in the area to be cleaned, wherein each path point corresponds to a key point in the area to be cleaned. These path points can be entrance path points or exit points of the area to be cleaned, or turning points on the bow-shaped cleaning route, etc. These path points are points that the self-moving cleaning equipment must pass through when performing the cleaning task.
[0092] After the area to be cleaned is abstracted into multiple path points, the mixed integer linear programming model is used to combine information such as path length and path moving speed to optimize the order of visiting multiple path points, thereby obtaining the optimal visiting order.
[0093] After obtaining the optimal access order, these path points are connected in series in the optimal access order in combination with the bow route planning algorithm. The target cleaning path obtained is the optimal cleaning path. The target cleaning path can at least meet one of the shortest path length or shortest cleaning time, thereby optimizing the cleaning efficiency.
[0094] The technical solution of the present application determines the necessary path points in the area to be cleaned, and optimizes the order of visiting the path points through a mixed integer linear programming model, so as to plan the optimal target cleaning path. The target cleaning path can ensure that the cleaning path is the shortest or the most efficient. Therefore, when the self-moving cleaning equipment performs the cleaning operation according to the target cleaning path, it can effectively improve the cleaning efficiency.
[0095] The third aspect of the present application provides a path determination device for a self-moving cleaning device, comprising: a memory for storing programs or instructions; a processor for implementing the steps of the path determination method for a self-moving cleaning device provided in any of the above-mentioned technical solutions when executing the programs or instructions, and therefore also including all its beneficial effects. To avoid repetition, they will not be repeated here.
[0096] The fourth aspect of the present application provides a readable storage medium on which a program or instruction is stored. When the program or instruction is executed by the processor, the steps of the path determination method for a self-moving cleaning device provided in any of the above technical solutions are implemented, and therefore all its beneficial effects are also included. To avoid repetition, they will not be repeated here.
[0097] The fifth aspect of the present application provides a self-moving cleaning device, including: a path determination device for the self-moving cleaning device as provided in any of the above technical solutions; and / or a readable storage medium as provided in any of the above technical solutions, and therefore also includes all its beneficial effects, which will not be repeated here to avoid repetition. BRIEF DESCRIPTION OF THE DRAWINGS
[0098] The above and / or additional aspects and advantages of the present application will become apparent and easily understood from the description of the embodiments in conjunction with the following drawings, in which:
[0099] Figure 1 A flow chart showing a method for determining a path of a mobile cleaning device according to some embodiments of the present application is shown;
[0100] Figure 2 A schematic diagram of path planning for a sweeping robot in related art is shown;
[0101] Figure 3 A schematic diagram showing an area to be cleaned in some embodiments of the present application;
[0102] Figure 4 A schematic diagram showing a target cleaning path of some embodiments of the present application is shown;
[0103] Figure 5 A schematic diagram of cleaning path planning in some embodiments of the present application is shown;
[0104] Figure 6 A schematic diagram of cleaning path planning in some embodiments of the present application is shown;
[0105] Figure 7 A schematic diagram of cleaning path planning in some embodiments of the present application is shown;
[0106] Figure 8 A flowchart showing path planning in some embodiments of the present application is shown;
[0107] Figure 9A schematic diagram showing sub-cleaning areas of some embodiments of the present application is shown;
[0108] Figure 10 A schematic diagram showing sub-cleaning areas of some embodiments of the present application is shown;
[0109] Figure 11 A flowchart showing path planning in some embodiments of the present application is shown;
[0110] Figure 12 A structural block diagram of a path determination device for a self-moving cleaning device according to some embodiments of the present application is shown;
[0111] Figure 13 A structural block diagram of a path determination device for a self-moving cleaning device according to some embodiments of the present application is shown. DETAILED DESCRIPTION
[0112] In order to more clearly understand the above-mentioned objects, features and advantages of the present application, the present application is further described in detail below in conjunction with the accompanying drawings and specific embodiments. It should be noted that the embodiments of the present application and the features therein can be combined with each other in the absence of conflict.
[0113] In the following description, many specific details are set forth to facilitate a full understanding of the present application. However, the present application may also be implemented in other ways different from those described herein. Therefore, the scope of protection of the present application is not limited to the specific embodiments disclosed below.
[0114] Refer to the following Figures 1 to 13 The present invention describes a path determination method and apparatus, a readable storage medium, and a self-moving cleaning device according to some embodiments of the present application.
[0115] In some embodiments of the present application, a method for determining a path of a self-moving cleaning device is provided. Figure 1 A flow chart showing a method for determining a path of a mobile cleaning device according to some embodiments of the present application is shown. Figure 1 As shown, the method includes:
[0116] Step 102, determining a plurality of path points corresponding to the area to be cleaned according to the area map of the area to be cleaned;
[0117] Step 104 : determining a target cleaning path based on a mixed integer linear programming model and a plurality of path points. The target cleaning path is a moving path of the self-mobile cleaning device when cleaning the area to be cleaned, and the target cleaning path passes through each of the plurality of path points in sequence.
[0118] In this embodiment, the self-moving cleaning equipment includes a sweeping robot, a mopping robot, a sweeping and mopping robot, a window cleaning robot, and other movable platform equipment that can move autonomously and complete cleaning tasks during movement.
[0119] In related technologies, taking a sweeping robot as an example, when the sweeping robot performs a ground cleaning task, the sweeping robot first loads a grid map of the area to be cleaned. The grid map includes cleanable areas and uncleanable areas. For example, the uncleanable areas include room boundaries such as walls or doors, cliffs with height differences such as steps, and obstacles such as furniture and home appliances.
[0120] Figure 2 A schematic diagram of the path planning of a sweeping robot in related art is shown in FIG. Figure 2 As shown, the sweeping robot partitions the area to be cleaned according to the grid map and based on the set area segmentation algorithm such as BCD, and obtains multiple cleanable rectangular areas. The sweeping robot distributes evenly distributed bow lines in the cleanable rectangular areas according to the preset cleaning bow intervals as the cleaning path.
[0121] When there are a large number of cleanable rectangular areas, the sweeping robot cleans each cleanable rectangular area in sequence according to its current location and preset rules. For example, the preset rules may be: give priority to cleaning the rectangular area closest to the sweeping robot, give priority to cleaning the rectangular area closest to the room door, or give priority to cleaning the left side of the rectangular area that has just been swept, etc.
[0122] This preset rule cannot guarantee that the sweeping robot's cleaning path is the shortest or the cleaning efficiency is the highest, resulting in problems such as the sweeping robot's moving path becoming longer, the cleaning efficiency becoming lower, and the cleaning time increasing. When the cleaning area is large, the low cleaning path efficiency will also lead to problems such as insufficient robot endurance, seriously affecting the cleaning efficiency of the self-propelled cleaning equipment.
[0123] In response to the technical problems in the above-mentioned prior art, the embodiment of the present application determines multiple path points in the area to be cleaned, wherein each path point corresponds to a key point in the area to be cleaned. These path points can be entrance path points or exit points of the area to be cleaned, or turning points on the bow-shaped cleaning route, etc. These path points are points that the self-moving cleaning equipment must pass through when performing the cleaning task.
[0124] After the area to be cleaned is abstracted into multiple path points, the mixed integer linear programming model is used to combine information such as path length and path moving speed to optimize the order of visiting multiple path points, thereby obtaining the optimal visiting order.
[0125] After obtaining the optimal access order, these path points are connected in series in the optimal access order in combination with the bow route planning algorithm. The target cleaning path obtained is the optimal cleaning path. The target cleaning path can at least meet one of the shortest path length or shortest cleaning time, thereby optimizing the cleaning efficiency.
[0126] The embodiment of the present application determines the necessary path points in the area to be cleaned, and optimizes the order of visiting the path points through a mixed integer linear programming model, so as to plan the optimal target cleaning path. The target cleaning path can ensure that the cleaning path is the shortest or the most efficient. Therefore, when the self-moving cleaning device performs the cleaning operation according to the target cleaning path, the cleaning efficiency can be effectively improved.
[0127] In some embodiments of the present application, optionally, the step of determining the target cleaning path based on a mixed integer linear programming model and multiple path points specifically includes: determining the path starting point among multiple path points; based on the mixed integer linear programming model, sequentially determining the subsequent path points corresponding to each path point after the path starting point to obtain a path point sequence; and generating the target cleaning path according to the path point sequence.
[0128] In this embodiment, the target cleaning path is specifically a path formed by sequentially connecting multiple path points. For example, the target cleaning path can be a broken line path formed by sequentially connecting multiple straight line segments, where the two endpoints of each straight line segment are the two path points visited by the self-mobile cleaning device in sequence. The path starting point is specifically the first path point on the target cleaning path, i.e., the starting point of the self-mobile cleaning device's cleaning task.
[0129] After selecting the starting point of the path, the optimal next path point after the starting point is determined based on the mixed integer linear programming model, which is recorded as the first path point. The optimal next path point after the first path point is determined, which is recorded as the second path point, and so on, until all path points are sorted and the path point sequence with the optimal access order is obtained. Starting from the starting point of the path, each path point is connected in series in the order of the path point sequence to obtain the final target cleaning path.
[0130] Specifically, the cost between any two path points is defined as C ij , where the cost value C ij It can be the distance value between path point i and path point j. For example, if path point i and path point j are reachable in a straight line, the cost value C can be expressed using the Euclidean distance. ijIf a straight line between path point i and path point j is not reachable, the path length between path point i and path point j can be calculated using a route planning algorithm such as the A* algorithm. Alternatively, the path length between path point i and path point j can be evaluated according to a set application scenario, such as moving in an arc, an oblique line, or an arched line to calculate the path length C. ij .
[0131] Cost value C ij It can also be the travel time between waypoint i and waypoint j. Combined with map information, the average travel speed between waypoint i and waypoint j can be predicted. For example, different scenarios such as straight-ahead travel, bow-shaped turns, continuous navigation along curves, deceleration near obstacles, passing through long-haired carpets, passing through short-haired carpets, passing through threshold slopes, etc. can all estimate a realistic average speed. Then, the travel time C can be obtained by combining the distance value between waypoint i and waypoint j with the estimated average speed. ij .
[0132] The optimization function of the mixed integer linear programming model is as follows:
[0133]
[0134] Where T is the cleaning path between path point i and path point j; N is the number of path points; i and j are both integers greater than or equal to 0 and less than or equal to N-1; C ij is the cost between path point i and path point j; X ij Indicates whether path point i and path point j are reachable, which is also the variable to be optimized. ij = 0 means that it is unreachable from path point i to path point j, X ij =1 means it is possible to move from point i to point j.
[0135] Select a suitable optimizer to solve the above formula (1). Since the optimization target variable X ij The value range of is an integer, specifically 0 or 1, so the above optimization process is a typical mixed integer linear programming problem, so the commonly used Gurobi solver, CBC solver, etc. can be used for solution.
[0136] Finally, X ij By connecting the path points i and j with =1 in series, the optimal cleaning order, that is, the target cleaning path, can be obtained.
[0137] The embodiment of the present application uses a mixed integer linear programming model to optimize the order of visiting the necessary path points in the cleaning area, so as to obtain the optimal cleaning path, that is, the target cleaning path. The target cleaning path can meet the shortest path or shortest time, thereby improving the cleaning efficiency of the self-moving cleaning equipment.
[0138] In some embodiments of the present application, optionally, the area map includes at least two sub-cleaning areas, and the target cleaning path passes through each of the at least two sub-cleaning areas; the path points include an entry path point and an exit path point of the sub-cleaning area, and the self-mobile cleaning device moves into the sub-cleaning area via the entry path point, and moves out of the sub-cleaning area via the exit path point.
[0139] In this embodiment, the area map includes cleanable areas and uncleanable areas, wherein the uncleanable areas divide the entire area to be cleaned into multiple different cleanable areas, namely sub-cleaning areas. The sub-cleaning areas do not include inaccessible areas such as obstacles, so each sub-cleaning area can independently plan an arch path as the cleaning path within the area.
[0140] Once the path planning within each sub-cleaning area is completed, the problem of optimizing the cleaning path can be simplified to the process of optimizing the cleaning order of different sub-cleaning areas.
[0141] Since each sub-cleaning area is not a simple "point", and the arc-shaped path inside each cleaning area must have a starting point and an end point, each sub-cleaning area can be abstracted as a combination of an entry path point and an exit path point. The self-mobile cleaning equipment enters a sub-cleaning area through the entry path point, and performs the cleaning task in the sub-cleaning area according to the planned arc-shaped path, and finally arrives at the exit path point and leaves the current sub-cleaning area through the exit path point.
[0142] Therefore, simplifying each sub-sweeping area into an entry path point and an exit path point can effectively reduce the number of path points and reduce the calculation scale during path optimization.
[0143] The embodiment of the present application simplifies each sub-cleaning area in the area to be cleaned into an entry path point and an exit path point, and uses the traditional bow path planning algorithm for internal path planning. It can reduce the complexity and calculation scale of the path planning problem, reduce the calculation time, and improve the path planning efficiency while ensuring the optimal cleaning order of multiple sub-cleaning areas.
[0144] In some embodiments of the present application, one of any two adjacent waypoints in a waypoint sequence is an entry waypoint, and the other waypoint is an exit waypoint.
[0145] In this embodiment, the path point sequence is the optimal access sequence of all path points obtained after sorting all path points. Any two adjacent path points in the path point sequence are two path points reached successively by the mobile cleaning device.
[0146] Since the target cleaning path connects multiple different sub-cleaning areas in series, when the self-mobile cleaning device repeatedly enters the same sub-cleaning area, or passes the starting point of a sub-cleaning area but does not enter, or passes the exit path point of a sub-cleaning area before entering a sub-cleaning area, it means that the current cleaning path is not the optimal path and the cleaning path is still unreasonable.
[0147] When the path is reasonable, the self-moving cleaning device will first enter a sub-cleaning area through the entrance path point of the sub-cleaning area, and leave the sub-cleaning area through the exit path point of the sub-cleaning area, and move to the entrance path point of the next sub-cleaning area to enter the next sub-cleaning area, and so on, and then enter each sub-cleaning area in sequence, and will not repeatedly enter the same sub-cleaning area or "detour" to other sub-cleaning areas in advance.
[0148] The embodiment of the present application can avoid the problem of unreasonable repeated paths by constraining two adjacent path points in the path point sequence to be the entry path point and the exit path point, thereby improving the path planning efficiency and the working efficiency of the self-moving cleaning equipment.
[0149] In some embodiments of the present application, optionally, the at least two sub-cleaning areas include a first sub-cleaning area and a second sub-cleaning area, and the starting point of the target cleaning path is located in the first sub-cleaning area; the sub-cleaning areas and the target cleaning path meet the following conditions:
[0150] The in-degree of the sub-sweeping area is 1, the maximum out-degree of the sub-sweeping area is 1, the in-degree of the second sub-sweeping area is greater than or equal to the out-degree, the sum of the in-degrees of at least two sub-sweeping areas is equal to the number of sub-sweeping areas, the sum of the out-degrees of at least two sub-sweeping areas is equal to the number of sub-sweeping areas, and the target cleaning path does not include a loop path.
[0151] In this embodiment, the optimization function for establishing the mixed integer linear programming model is the following formula (2):
[0152]
[0153] Where T is the cleaning path between path point i and path point j; N is the number of entry path points; i and j are both integers, and i∈[0,N-1], j∈[0,N-1]; C ij is the cost between path point i and path point j; X ijIndicates whether path point i and path point j are reachable, which is also the variable to be optimized. ij = 0 means that it is unreachable from path point i to path point j, X ij =1 means it is possible to move from point i to point j.
[0154] For example, a sub-sweeping area is defined as a cell. Assuming that the sub-sweeping area cell is a rectangular area, the constraints that the above optimization model needs to comply with are as follows:
[0155]
[0156]
[0157] Where N is the number of entry path points; i and j are both integers, and i∈[0,N-1], j∈[0,N-1]; X ab Indicates whether path point a and path point b are reachable; i, i+1, i+2, i+3 are the four vertices of the rectangular sub-sweep area cell.
[0158] The constraint (3) above is used to constrain each sub-sweep area cell to be reached only once, that is, the in-degree is 1. The constraint (4) above constrains the out-degree of the first sub-sweep area as the starting point to be 1, and the remaining second sub-sweep areas can only be set out once at most, that is, the maximum out-degree is 1. The out-degree of the last cell in the planning result is 0, and the sweep is completed at this point, and no other cells will be visited.
[0159]
[0160]
[0161] Where N is the number of entry path points; i and j are both integers, and i∈[0, N-1], j∈[0, N-1]; X ii Indicates whether path point j is reachable from path point i, X ij Indicates whether path point i and path point j are reachable.
[0162] The above constraint (5) constrains each cell outside the starting point to have an in-degree greater than or equal to its out-degree. The above constraint (6) is used to indicate that the total out-degree and total in-degree of all cells are equal to the number of cells.
[0163] u i -u j +NX ij ≤N-1, i∈[1, N-1], j∈[1, N-1]; (7)
[0164] Where N is the number of entry path points; X ijIndicates whether path point i and path point j are reachable; u is an integer, and u∈[1, N-1].
[0165] The above constraint (7) constrains that the path connecting all entry path points does not contain a loop.
[0166] X ij =0, ij is the same as cell; (8)
[0167] Wherein, i and j are both integers, and i∈[0, N-1], j∈[0, N-1].
[0168] The above constraint (8) constrains the cost of two points in the same cell to be 0, because there is no need to consider the movement between points in the cell.
[0169] By setting reasonable constraints, the embodiment of the present application can ensure that the optimized target cleaning path will not repeatedly enter the same cleaning area and will not "detour" to other sub-cleaning areas in advance. It can ensure that the obtained target cleaning path is the most efficient path and ensure the working efficiency of the self-moving cleaning equipment.
[0170] In some embodiments of the present application, optionally, the target cleaning path is a broken line path, and the path points include the starting point, end point and inflection point of the broken line path.
[0171] In this embodiment, a path point is a path point that the self-propelled cleaning device must pass through when cleaning the area to be cleaned. The path points include a starting point, an end point, and an inflection point. The starting point is the path starting point, specifically the first path point on the target cleaning path, which is also the starting point of the self-propelled cleaning device's cleaning task. The end point is specifically the last path point on the target cleaning path, which is also the end point of the self-propelled cleaning device's cleaning task.
[0172] To ensure the autonomous cleaning device can effectively clean the entire area to be cleaned, the target cleaning path must completely cover the area to be cleaned. This arcuate path effectively covers the area to be cleaned. Specifically, the arcuate path is a broken line path, which abstracts the autonomous cleaning device as a point mass, regardless of its radius. As the autonomous cleaning device moves along the arcuate path, it must change direction when encountering boundaries such as walls and cliffs, or obstacles such as furniture and appliances. The point where the autonomous cleaning device changes direction due to being unable to continue moving in a straight line is recorded as an inflection point.
[0173] At this point, the entire area to be cleaned can be abstracted into a starting point, an end point, and several viewpoints. These turning points are distributed along the boundaries of the area to be cleaned and the outlines of obstacles.
[0174] The embodiment of the present application determines the path points of key positions such as the starting point, end point and turning point within the entire area to be cleaned, and plans the cleaning path based on these path points. There is no need to divide the area to be cleaned into regions, which can ensure that the cleaning path is the shortest and most efficient, thereby improving the cleaning efficiency and endurance of the self-moving cleaning equipment.
[0175] In some embodiments of the present application, optionally, the path points and the target cleaning path meet the following conditions: the in-degree of the end point and the inflection point is 1, the maximum out-degree of the path point is 1, the target cleaning path does not include a loop path, and the cleaning section between any two path points is only passed once.
[0176] In this embodiment, the optimization function for establishing the mixed integer linear programming model is the following formula (9):
[0177]
[0178] Where T is the cleaning path between path point i and path point j; N is the number of path points; i and j are both integers greater than or equal to 0 and less than or equal to N-1; C ij is the cost between path point i and path point j; X ij Indicates whether path point i and path point j are reachable, which is also the variable to be optimized. ij = 0 means that it is unreachable from path point i to path point j, X ij =1 means it is possible to move from point i to point j.
[0179] For example, a sub-sweeping area is defined as a cell. Assuming that the sub-sweeping area cell is a rectangular area, the constraints that the above optimization model needs to comply with are as follows:
[0180]
[0181]
[0182] Among them, X ij Indicates whether path point i and path point j are reachable; i and j are both integers greater than or equal to 0 and less than or equal to N-1; N is the number of path points.
[0183] The above constraint (10) constrains that, except for the starting point, all other path points, including the end point and the inflection point, can only be reached once, that is, the in-degree is 1. The above constraint (11) constrains that all path points, including the starting point, inflection point, and end point, can only be triggered once at most, that is, the maximum out-degree is 1. The last turning point in the planning result, that is, the end point, has an out-degree of 0, and the area is cleared at this point, and no other points in the area will be visited.
[0184] u i -uj +NX ij ≤N-1, i∈[1, N-1], j∈[1, N-1]; (12)
[0185] Where N is the number of path points; X ij Indicates whether path point i and path point j are reachable; u is an integer, and u∈[1, N-1].
[0186] The above constraint (12) constrains that the path connecting all path points does not contain a loop.
[0187] X i,i+1 +X i+1,i =1, i∈[1, N-1] and i is an odd number; (13)
[0188] Among them, X ij Indicates whether path point i and path point j are reachable; N is the number of path points.
[0189] The above constraint (13) constrains any two path points to be a one-way street, which can only be passed once. For example, if i=1, X 12 =1, then X 21 =0, that is, you can only move from waypoint 1 to waypoint 2, and cannot move from waypoint 2 to waypoint 1.
[0190] By setting reasonable constraints, the embodiments of the present application can ensure that the optimal cleaning path is obtained, ensuring that the cleaning path is the shortest and most efficient, thereby improving the cleaning efficiency and endurance of the self-moving cleaning equipment.
[0191] In some embodiments of the present application, Figure 3 Schematic diagrams showing areas to be cleaned in some embodiments of the present application are shown, such as Figure 3 As shown, the area to be cleaned 300 includes a boundary 302, obstacles 304, and a cleanable area 306. The robot vacuum is abstracted as a point mass, ignoring its radius. Given the direction of the long side of the arc (assuming it is horizontal) and the arc spacing, the grid attributes of the map are traversed row by row from top to bottom and from left to right. When a switch occurs between a walkable and non-walkable state, the point is marked as a turning point 308.
[0192] Figure 4 Schematic diagrams of target cleaning paths of some embodiments of the present application are shown, such as Figure 4 As shown, the cleaning robot 402 moves along the target cleaning path 404, wherein the direction of the arrow is the moving direction of the cleaning robot.
[0193] First, the objective function to be optimized is designed as:
[0194]
[0195] Where N is the number of turning points (including the starting point), i and j are integers in the range [0, N-1], and C ij is the cost from point i to point j, X ij Is the sign of whether it is possible to go from point i to point j, that is, the target variable to be solved. ij = 0 means that it is not possible to go from point i to point j, X ij =1 means you need to go from point i to point j.
[0196] Static considerations, C ij It can be considered as the distance from point i to point j, so the optimization goal min(T) is to find the shortest path. If the two points are reachable in a straight line, the Euclidean distance can be used; otherwise, the path planning algorithm such as the A* algorithm can be used to calculate the path length between the two points. Figure 5 Schematic diagrams of cleaning path planning for some embodiments of the present application are shown. Figure 5 As shown, waypoint 502 is the starting point and waypoint 504 is the end point.
[0197] Figure 6 Schematic diagrams of cleaning path planning for some embodiments of the present application are shown. Figure 6 As shown, users can also decide how to evaluate the distance between two points based on their own application scenarios. For example, a short arc line often moves in an arc in practice.
[0198] Figure 7 Schematic diagrams of cleaning path planning for some embodiments of the present application are shown. Figure 7 As shown, if you do not want to take a diagonal line (A→C) between adjacent arches, you can try to use the arch line (A→B→C) to make the path more beautiful. In this case, the AC spacing = |AB| + |BC|.
[0199] Dynamic considerations, C ij It can be considered as the time taken to get from point i to point j, so the optimization goal min(T) is to find the path with the least time. At this time, it is necessary to evaluate the average speed between the two points based on the movement mode of the machine and the map information. For different scenarios such as straight-line movement, bow-shaped turns, continuous navigation on curves, slowing down when approaching obstacles, passing long-haired carpets, passing short-haired carpets, passing threshold slopes, etc., an average speed close to reality should be estimated. Then, the result of dividing the speed by the distance between the two points (i.e., the time taken) is used as C ij value.
[0200] From the above, we can see that the design of the objective function can be combined with the specific and diverse scenarios and business logic of the machine, which is closer to reality and the optimization results are more instructive.
[0201] Then, the design constraints are:
[0202]
[0203] Constraint (1) means that except for the starting point, the other turning points can only be reached once, that is, the in-degree is 1.
[0204]
[0205] Constraint (2) means that all turning points can only be started once at most, that is, the maximum out-degree is 1. The out-degree of the last turning point (that is, the last path point) in the planning result is 0, and the area is cleared at this point, and no other points in the area will be visited.
[0206] u i -u j +NX ij ≤N-1, i∈[1, N-1], j∈[1, N-1]; (3)
[0207] Constraint (3) means that the path connecting all turning points does not contain a loop. Where u is an integer in [1, N-1].
[0208] X i,i+1 +X i+1,i =1, i∈[1, N-1] and is an odd number; (4)
[0209] Constraint (4) indicates that the road between the two points is a one-way street and can only pass through once. (If i = 1, X 12 =1, then X 21 =0, that is, it can only go from 1 to 2, not from 2 to 1)
[0210] Finally, choose a suitable optimizer to solve the problem. ij The value range of is integer, more specifically 0 or 1. This is a typical mixed integer linear programming problem, and commonly used solvers include Gurobi, CBC, etc. ij The optimal cleaning order is when points i and j with ∑ i = 1 are connected in series.
[0211] Figure 8 Flowcharts showing path planning in some embodiments of the present application are shown in FIG. Figure 8 Shown, including:
[0212] Step 802, updating the map;
[0213] Step 804, calculating the turning point in the area to be cleaned;
[0214] Step 806, calculating the cost between any two points;
[0215] Step 808, establishing an optimization model;
[0216] Step 810, calling the optimizer to solve;
[0217] Step 812, connecting the optimal cleaning paths in series according to the optimization results;
[0218] Step 814, performing cleaning according to the optimal path;
[0219] Step 816, determine whether an obstacle is encountered; if yes, proceed to step 818, otherwise return to step 814;
[0220] Step 818: Obtain the obstacle outline; then return to step 802.
[0221] If an unknown obstacle or anomaly is encountered while cleaning along the optimized path, the map can be updated by updating the obstacle's outline based on sensor data or by following the obstacle's path around it. For the uncleaned areas in the updated map, turning points are recalculated and the process continues as described above.
[0222] In some embodiments of the present application, Figure 2 As shown, after the horizontal area segmentation, four sub-sweeping areas 202 are obtained. In order to enable continuous arc-shaped cleaning, the upper, right and lower sub-sweeping areas are merged for processing.
[0223] Take the simplest case, where the sub-sweep area is a rectangle, as an example. Figure 9 Schematic diagrams of sub-sweeping areas of some embodiments of the present application are shown, such as Figure 9 As shown in the figure, a sub-sweep area is defined as a cell. Usually, the sweep starts from a corner point and ends at a certain position. For ease of understanding, this article assumes that the sweep ends at another corner point of the rectangular cell. Then a cell will have 4 entry points and corresponding 4 exit points. Figure 9 As shown, when the entry point is 1, the exit point is 4; when the entry point is 2, the exit point is 3; when the entry point is 4, the exit point is 1, and when the entry point is 3, the exit point is 2.
[0224] When cleaning, the robot will select one entry point to enter, and after completing the bow-shaped cleaning, it will reach the corresponding exit point, then navigate to the next cell, and enter the entry point of the new cell. This cycle will be repeated until the room is cleaned.
[0225] First, the objective function to be optimized is designed as:
[0226]
[0227] Where N is the number of entry points (including the starting point), ij is an integer in the range [0, N-1], and C ijis the cost from point i to point j, X ij Is the sign of whether it is possible to go from point i to point j, that is, the target variable to be solved. ij = 0 means that it is not possible to go from point i to point j, X ij =1 means you need to go from point i to point j.
[0228] Static considerations, C ij This can be considered the distance from point i to point j. The optimization goal, min(T), is to find the shortest path. If the two points are reachable in a straight line, the Euclidean distance can be used; otherwise, a path planning algorithm such as the A* algorithm can be used to calculate the path length between the two points. Users can also decide how to evaluate the distance between the two points based on their application scenario.
[0229] Figure 10 Schematic diagrams of sub-sweeping areas of some embodiments of the present application are shown, such as Figure 10 As shown, it should be noted that the distance from point A1 to point B1 cannot be directly calculated using the coordinates of two points ( Figure 10 Instead of the dotted line shown above, we need to calculate the distance between the exit point (A4) and point B1 corresponding to the cell where point A1 is located ( Figure 10 As shown by the solid line). Figure 10 As shown in the figure, the distance from A1 to B1 is actually the distance from A4 to B1. It can also be seen here that although the present invention emphasizes the one-to-one correspondence between cell entry points and exit points, and entry points are usually corner points, it does not require that exit points must also be corner points, because exit points are only used in the inter-point cost calculation stage.
[0230] Dynamic considerations, C ij It can be considered as the time taken to get from point i to point j, so the optimization goal min(T) is to find the path with the least time. At this time, it is necessary to evaluate the average speed between the two points based on the movement mode of the machine and the map information. For different scenarios such as straight-line movement, bow-shaped turns, continuous navigation on curves, slowing down when approaching obstacles, passing long-haired carpets, passing short-haired carpets, passing threshold slopes, etc., an average speed close to reality should be estimated. Then, the result of dividing the speed by the distance between the two points (i.e., the time taken) is used as C ij value.
[0231] From the above, we can see that the design of the objective function can be combined with the specific and diverse scenarios and business logic of the machine, which is closer to reality and the optimization results are more instructive.
[0232] Then, the design constraints are:
[0233]
[0234] Constraint (1) means that each cell can only be reached once, that is, the in-degree is 1. i, i+1, i+2, i+3 are the four corner points of the cell.
[0235]
[0236]
[0237] Constraint (2) indicates that the out-degree of the starting point is 1, and the remaining cells can only be started once at most, that is, the maximum out-degree is 1. The out-degree of the last cell in the planning result is 0, and the cleaning is completed at this point, and no other cells will be visited.
[0238]
[0239] Constraint (3) means that for every cell outside the starting point, its in-degree must be greater than or equal to its out-degree.
[0240]
[0241] Constraint (4) means that the total out-degree and total in-degree of all cells (including the starting point) are equal to cells (the number of cells, excluding the starting point).
[0242] u i -u j +NX ij ≤N-1,i∈[1,N-1],j∈[1,N-1]; (5)
[0243] Constraint (5) means that the path connecting all entry points does not contain a cycle. Where u is an integer in [1, N-1].
[0244] X ij =0,ij is the same as cell; (6)
[0245] Constraint (6) means that the cost of two points in the same cell is 0, because there is no need to consider the movement between points in the cell.
[0246] Finally, choose a suitable optimizer to solve the problem. ij The value range of is integer, more specifically 0 or 1. This is a typical mixed integer linear programming problem, and commonly used solvers include Gurobi, CBC, etc. ij The optimal inter-cell cleaning order is the connection between points i and j where ∑ = 1. The arcuate path within the cell has already been determined before optimization and can be executed according to it without recalculation.
[0247] Figure 11 Flowcharts showing path planning in some embodiments of the present application are shown in FIG. Figure 11 Shown, including:
[0248] Step 1102, updating the map;
[0249] Step 1104, dividing the area to be cleaned;
[0250] Step 1106: merging cells.
[0251] Step 1108, determine all possible entry points of the cell;
[0252] Step 1110 , plan an arcuate path within the cell and calculate an exit point for each entry point;
[0253] Step 1112, calculating the cost between any two points;
[0254] Step 1114, establishing an optimization model;
[0255] Step 1116, calling the optimizer to solve;
[0256] Step 1118, connecting the optimal cleaning paths in series according to the optimization results;
[0257] Step 1120, performing cleaning according to the optimal path;
[0258] Step 1122, determine whether an obstacle is encountered; if yes, proceed to step 1124, otherwise return to step 1120;
[0259] Step 1124, obtain the obstacle outline; then return to step 1102.
[0260] If an unknown obstacle or anomaly is encountered while cleaning along the optimized path, the map can be updated by updating the obstacle's outline based on sensor data or by following the obstacle's path. The remaining areas in the updated map are replanned and the process continues as described above.
[0261] As can be seen from the above process, the present invention does not restrict cells to rectangular shapes, entry and exit points to corner points, or the number of corner points per cell to four. As long as a large map can be divided into smaller areas, the start cleaning point for each small area can be extracted, and the corresponding end cleaning point can be calculated based on a pre-set arcuate path, the present invention can be applied to calculate the optimal cleaning order. In this way, even for large maps, the problem scale and solution time are only related to the number of cells in the divided sub-areas, which are generally not very large, ensuring the real-time performance of the algorithm.
[0262] In some embodiments of the present application, a path determination device for a self-moving cleaning device is provided. Figure 12The structure block diagram of the path determination device of the self-moving cleaning device in some embodiments of the present application is shown as follows Figure 12 As shown, the path determination device 1200 includes:
[0263] Determination module 1202 is used to determine multiple path points corresponding to the area to be cleaned based on the area map of the area to be cleaned; and determine the target cleaning path based on the mixed integer linear programming model and the multiple path points. The target cleaning path is the moving path of the self-mobile cleaning device when cleaning the area to be cleaned, and the target cleaning path passes through each of the multiple path points in sequence.
[0264] In this embodiment, the self-moving cleaning equipment includes a sweeping robot, a mopping robot, a sweeping and mopping robot, a window cleaning robot, and other movable platform equipment that can move autonomously and complete cleaning tasks during movement.
[0265] In related technologies, taking a sweeping robot as an example, when the sweeping robot performs a ground cleaning task, the sweeping robot first loads a grid map of the area to be cleaned. The grid map includes cleanable areas and uncleanable areas. For example, the uncleanable areas include room boundaries such as walls or doors, cliffs with height differences such as steps, and obstacles such as furniture and home appliances.
[0266] The sweeping robot divides the area to be cleaned into sections based on the grid map and the set area segmentation algorithm such as BCD, and obtains multiple cleanable rectangular areas. The sweeping robot distributes evenly distributed bow lines in the cleanable rectangular areas as the cleaning path according to the preset cleaning bow intervals.
[0267] When there are a large number of cleanable rectangular areas, the sweeping robot cleans each cleanable rectangular area in sequence according to its current location and preset rules. For example, the preset rules may be: give priority to cleaning the rectangular area closest to the sweeping robot, give priority to cleaning the rectangular area closest to the room door, or give priority to cleaning the left side of the rectangular area that has just been swept, etc.
[0268] This preset rule cannot guarantee that the sweeping robot's cleaning path is the shortest or the cleaning efficiency is the highest, resulting in problems such as the sweeping robot's moving path becoming longer, the cleaning efficiency becoming lower, and the cleaning time increasing. When the cleaning area is large, the low cleaning path efficiency will also lead to problems such as insufficient robot endurance, seriously affecting the cleaning efficiency of the self-propelled cleaning equipment.
[0269] In response to the technical problems in the above-mentioned prior art, the embodiment of the present application determines multiple path points in the area to be cleaned, wherein each path point corresponds to a key point in the area to be cleaned. These path points can be entrance path points or exit points of the area to be cleaned, or turning points on the bow-shaped cleaning route, etc. These path points are points that the self-moving cleaning equipment must pass through when performing the cleaning task.
[0270] After the area to be cleaned is abstracted into multiple path points, the mixed integer linear programming model is used to combine information such as path length and path moving speed to optimize the order of visiting multiple path points, thereby obtaining the optimal visiting order.
[0271] After obtaining the optimal access order, these path points are connected in series in the optimal access order in combination with the bow route planning algorithm. The target cleaning path obtained is the optimal cleaning path. The target cleaning path can at least meet one of the shortest path length or shortest cleaning time, thereby optimizing the cleaning efficiency.
[0272] The embodiment of the present application determines the necessary path points in the area to be cleaned, and optimizes the order of visiting the path points through a mixed integer linear programming model, so as to plan the optimal target cleaning path. The target cleaning path can ensure that the cleaning path is the shortest or the most efficient. Therefore, when the self-moving cleaning device performs the cleaning operation according to the target cleaning path, the cleaning efficiency can be effectively improved.
[0273] In some embodiments of the present application, optionally, the determination module is also used to determine the starting point of the path among multiple path points; based on the mixed integer linear programming model, the subsequent path points corresponding to each path point after the path starting point are sequentially determined to obtain a path point sequence; the path determination device also includes: a generation module, used to generate a target cleaning path according to the path point sequence.
[0274] In this embodiment, the target cleaning path is specifically a path formed by sequentially connecting multiple path points. For example, the target cleaning path can be a broken line path formed by sequentially connecting multiple straight line segments, where the two endpoints of each straight line segment are the two path points visited by the self-mobile cleaning device in sequence. The path starting point is specifically the first path point on the target cleaning path, i.e., the starting point of the self-mobile cleaning device's cleaning task.
[0275] After selecting the starting point of the path, the optimal next path point after the starting point is determined based on the mixed integer linear programming model, which is recorded as the first path point. The optimal next path point after the first path point is determined, which is recorded as the second path point, and so on, until all path points are sorted and the path point sequence with the optimal access order is obtained. Starting from the starting point of the path, each path point is connected in series in the order of the path point sequence to obtain the final target cleaning path.
[0276] Specifically, the cost between any two path points is defined as C ij , where the cost value C ij It can be the distance value between path point i and path point j. For example, if path point i and path point j are reachable in a straight line, the cost value C can be expressed using the Euclidean distance. ij If a straight line between path point i and path point j is not reachable, the path length between path point i and path point j can be calculated using a route planning algorithm such as the A* algorithm. Alternatively, the path length between path point i and path point j can be evaluated according to a set application scenario, such as moving in an arc, an oblique line, or an arched line to calculate the path length C. ij .
[0277] Cost value C ij It can also be the travel time between waypoint i and waypoint j. Combined with map information, the average travel speed between waypoint i and waypoint j can be predicted. For example, different scenarios such as straight-ahead travel, bow-shaped turns, continuous navigation along curves, deceleration near obstacles, passing through long-haired carpets, passing through short-haired carpets, passing through threshold slopes, etc. can all estimate a realistic average speed. Then, the travel time C can be obtained by combining the distance value between waypoint i and waypoint j with the estimated average speed. ij .
[0278] The optimization function of the mixed integer linear programming model is as follows:
[0279]
[0280] Where T is the cleaning path between path point i and path point j; N is the number of path points; i and j are both integers greater than or equal to 0 and less than or equal to N-1; C ij is the cost between path point i and path point j; X ij Indicates whether path point i and path point j are reachable, which is also the variable to be optimized. ij = 0 means that it is unreachable from path point i to path point j, X ij =1 means it is possible to move from point i to point j.
[0281] Select a suitable optimizer to solve the above formula (1). Since the optimization target variable X ij The value range of is an integer, specifically 0 or 1, so the above optimization process is a typical mixed integer linear programming problem, so the commonly used Gurobi solver, CBC solver, etc. can be used for solution.
[0282] Finally, X ij By connecting the path points i and j with =1 in series, the optimal cleaning order, that is, the target cleaning path, can be obtained.
[0283] The embodiment of the present application uses a mixed integer linear programming model to optimize the order of visiting the necessary path points in the cleaning area, so as to obtain the optimal cleaning path, that is, the target cleaning path. The target cleaning path can meet the shortest path or shortest time, thereby improving the cleaning efficiency of the self-moving cleaning equipment.
[0284] In some embodiments of the present application, optionally, the area map includes at least two sub-cleaning areas, and the target cleaning path passes through each of the at least two sub-cleaning areas; the path points include an entry path point and an exit path point of the sub-cleaning area, and the self-mobile cleaning device moves into the sub-cleaning area via the entry path point, and moves out of the sub-cleaning area via the exit path point.
[0285] In this embodiment, the area map includes cleanable areas and uncleanable areas, wherein the uncleanable areas divide the entire area to be cleaned into multiple different cleanable areas, namely sub-cleaning areas. The sub-cleaning areas do not include inaccessible areas such as obstacles, so each sub-cleaning area can independently plan an arch path as the cleaning path within the area.
[0286] Once the path planning within each sub-cleaning area is completed, the problem of optimizing the cleaning path can be simplified to the process of optimizing the cleaning order of different sub-cleaning areas.
[0287] Since each sub-cleaning area is not a simple "point", and the arc-shaped path inside each cleaning area must have a starting point and an end point, each sub-cleaning area can be abstracted as a combination of an entry path point and an exit path point. The self-mobile cleaning equipment enters a sub-cleaning area through the entry path point, and performs the cleaning task in the sub-cleaning area according to the planned arc-shaped path, and finally arrives at the exit path point and leaves the current sub-cleaning area through the exit path point.
[0288] Therefore, simplifying each sub-sweeping area into an entry path point and an exit path point can effectively reduce the number of path points and reduce the calculation scale during path optimization.
[0289] The embodiment of the present application simplifies each sub-cleaning area in the area to be cleaned into an entry path point and an exit path point, and uses the traditional bow path planning algorithm for internal path planning. It can reduce the complexity and calculation scale of the path planning problem, reduce the calculation time, and improve the path planning efficiency while ensuring the optimal cleaning order of multiple sub-cleaning areas.
[0290] In some embodiments of the present application, one of any two adjacent waypoints in a waypoint sequence is an entry waypoint, and the other waypoint is an exit waypoint.
[0291] In this embodiment, the path point sequence is the optimal access sequence of all path points obtained after sorting all path points. Any two adjacent path points in the path point sequence are two path points reached successively by the mobile cleaning device.
[0292] Since the target cleaning path connects multiple different sub-cleaning areas in series, when the self-mobile cleaning device repeatedly enters the same sub-cleaning area, or passes the starting point of a sub-cleaning area but does not enter, or passes the exit path point of a sub-cleaning area before entering a sub-cleaning area, it means that the current cleaning path is not the optimal path and the cleaning path is still unreasonable.
[0293] When the path is reasonable, the self-moving cleaning device will first enter a sub-cleaning area through the entrance path point of the sub-cleaning area, and leave the sub-cleaning area through the exit path point of the sub-cleaning area, and move to the entrance path point of the next sub-cleaning area to enter the next sub-cleaning area, and so on, and then enter each sub-cleaning area in sequence, and will not repeatedly enter the same sub-cleaning area or "detour" to other sub-cleaning areas in advance.
[0294] The embodiment of the present application can avoid the problem of unreasonable repeated paths by constraining two adjacent path points in the path point sequence to be the entry path point and the exit path point, thereby improving the path planning efficiency and the working efficiency of the self-moving cleaning equipment.
[0295] In some embodiments of the present application, optionally, the at least two sub-cleaning areas include a first sub-cleaning area and a second sub-cleaning area, and the starting point of the target cleaning path is located in the first sub-cleaning area; the sub-cleaning areas and the target cleaning path meet the following conditions:
[0296] The in-degree of the sub-sweeping area is 1, the maximum out-degree of the sub-sweeping area is 1, the in-degree of the second sub-sweeping area is greater than or equal to the out-degree, the sum of the in-degrees of at least two sub-sweeping areas is equal to the number of sub-sweeping areas, the sum of the out-degrees of at least two sub-sweeping areas is equal to the number of sub-sweeping areas, and the target cleaning path does not include a loop path.
[0297] In this embodiment, the optimization function for establishing the mixed integer linear programming model is the following formula (2):
[0298]
[0299] Where T is the cleaning path between path point i and path point j; N is the number of entry path points; i and j are both integers, and i∈[0,N-1], j∈[0,N-1]; C ij is the cost between path point i and path point j; X ij Indicates whether path point i and path point j are reachable, which is also the variable to be optimized. ij = 0 means that it is unreachable from path point i to path point j, X ij =1 means it is possible to move from point i to point j.
[0300] For example, a sub-sweeping area is defined as a cell. Assuming that the sub-sweeping area cell is a rectangular area, the constraints that the above optimization model needs to comply with are as follows:
[0301]
[0302]
[0303] Where N is the number of entry path points; i and j are both integers, and i∈[0, N-1], j∈[0, N-1]; X ab Indicates whether path point a and path point b are reachable; i, i+1, i+2, i+3 are the four vertices of the rectangular sub-sweep area cell.
[0304] The constraint (3) above is used to constrain each sub-sweep area cell to be reached only once, that is, the in-degree is 1. The constraint (4) above constrains the out-degree of the first sub-sweep area as the starting point to be 1, and the remaining second sub-sweep areas can only be set out once at most, that is, the maximum out-degree is 1. The out-degree of the last cell in the planning result is 0, and the sweep is completed at this point, and no other cells will be visited.
[0305]
[0306]
[0307] Where N is the number of entry path points; i and j are both integers, and i∈[0, N-1], j∈[0, N-1]; X ji Indicates whether path point j is reachable from path point i, X ij Indicates whether path point i and path point j are reachable.
[0308] The above constraint (5) constrains each cell outside the starting point to have an in-degree greater than or equal to its out-degree. The above constraint (6) is used to indicate that the total out-degree and total in-degree of all cells are equal to the number of cells.
[0309] u i -u j +NX ij ≤N-1, i∈[1, N-1], j∈[1, N-1]; (7)
[0310] Where N is the number of entry path points; X ij Indicates whether path point i and path point j are reachable; u is an integer, and u∈[1, N-1].
[0311] The above constraint (7) constrains that the path connecting all entry path points does not contain a loop.
[0312] X ij =0, ij is the same as cell; (8)
[0313] Wherein, i and j are both integers, and i∈[0, N-1], j∈[0, N-1].
[0314] The above constraint (8) constrains the cost of two points in the same cell to be 0, because there is no need to consider the movement between points in the cell.
[0315] By setting reasonable constraints, the embodiment of the present application can ensure that the optimized target cleaning path will not repeatedly enter the same cleaning area and will not "detour" to other sub-cleaning areas in advance. It can ensure that the obtained target cleaning path is the most efficient path and ensure the working efficiency of the self-moving cleaning equipment.
[0316] In some embodiments of the present application, optionally, the target cleaning path is a broken line path, and the path points include the starting point, end point and inflection point of the broken line path.
[0317] In this embodiment, a path point is a path point that the self-propelled cleaning device must pass through when cleaning the area to be cleaned. The path points include a starting point, an end point, and an inflection point. The starting point is the path starting point, specifically the first path point on the target cleaning path, which is also the starting point of the self-propelled cleaning device's cleaning task. The end point is specifically the last path point on the target cleaning path, which is also the end point of the self-propelled cleaning device's cleaning task.
[0318] To ensure the autonomous cleaning device can effectively clean the entire area to be cleaned, the target cleaning path must completely cover the area to be cleaned. This arcuate path effectively covers the area to be cleaned. Specifically, the arcuate path is a broken line path, which abstracts the autonomous cleaning device as a point mass, regardless of its radius. As the autonomous cleaning device moves along the arcuate path, it must change direction when encountering boundaries such as walls and cliffs, or obstacles such as furniture and appliances. The point where the autonomous cleaning device changes direction due to being unable to continue moving in a straight line is recorded as an inflection point.
[0319] At this point, the entire area to be cleaned can be abstracted into a starting point, an end point, and several viewpoints. These turning points are distributed along the boundaries of the area to be cleaned and the outlines of obstacles.
[0320] The embodiment of the present application determines the path points of key positions such as the starting point, end point and turning point within the entire area to be cleaned, and plans the cleaning path based on these path points. There is no need to divide the area to be cleaned into regions, which can ensure that the cleaning path is the shortest and most efficient, thereby improving the cleaning efficiency and endurance of the self-moving cleaning equipment.
[0321] In some embodiments of the present application, optionally, the path points and the target cleaning path meet the following conditions: the in-degree of the end point and the inflection point is 1, the maximum out-degree of the path point is 1, the target cleaning path does not include a loop path, and the cleaning section between any two path points is only passed once.
[0322] In this embodiment, the optimization function for establishing the mixed integer linear programming model is the following formula (9):
[0323]
[0324] Where T is the cleaning path between path point i and path point j; N is the number of path points; i and j are both integers greater than or equal to 0 and less than or equal to N-1; C ij is the cost between path point i and path point j; X ij Indicates whether path point i and path point j are reachable, which is also the variable to be optimized. ij = 0 means that it is unreachable from path point i to path point j, X ij =1 means it is possible to move from point i to point j.
[0325] For example, a sub-sweeping area is defined as a cell. Assuming that the sub-sweeping area cell is a rectangular area, the constraints that the above optimization model needs to comply with are as follows:
[0326]
[0327]
[0328] Among them, X ij Indicates whether path point i and path point j are reachable; i and j are both integers greater than or equal to 0 and less than or equal to N-1; N is the number of path points.
[0329] The above constraint (10) constrains that, except for the starting point, all other path points, including the end point and the inflection point, can only be reached once, that is, the in-degree is 1. The above constraint (11) constrains that all path points, including the starting point, inflection point, and end point, can only be triggered once at most, that is, the maximum out-degree is 1. The last turning point in the planning result, that is, the end point, has an out-degree of 0, and the area is cleared at this point, and no other points in the area will be visited.
[0330] u i -u j +NX ij ≤N-1, i∈[1, N-1], j∈[1, N-1]; (12)
[0331] Where N is the number of path points; X ij Indicates whether path point i and path point j are reachable; u is an integer, and u∈[1, N-1].
[0332] The above constraint (12) constrains that the path connecting all path points does not contain a loop.
[0333] X i,i+1 +X i+1,i =1, i∈[1, N-1] and i is an odd number; (13)
[0334] Among them, X ij Indicates whether path point i and path point j are reachable; N is the number of path points.
[0335] The above constraint (13) constrains any two path points to be a one-way street, which can only be passed once. For example, if i=1, X 12 =1, then X 21 =0, that is, you can only move from waypoint 1 to waypoint 2, and cannot move from waypoint 2 to waypoint 1.
[0336] By setting reasonable constraints, the embodiments of the present application can ensure that the optimal cleaning path is obtained, ensuring that the cleaning path is the shortest and most efficient, thereby improving the cleaning efficiency and endurance of the self-moving cleaning equipment.
[0337] In some embodiments of the present application, a path determination device for a self-moving cleaning device is provided. Figure 13 The structure block diagram of the path determination device of the self-moving cleaning device in some embodiments of the present application is shown as follows Figure 13As shown, the path determination device 1300 includes:
[0338] The memory 1302 is used to store programs or instructions; the processor 1304 is used to implement the steps of the path determination method for the self-moving cleaning device provided in any of the above embodiments when executing the programs or instructions, and therefore also includes all its beneficial effects. To avoid repetition, they will not be repeated here.
[0339] In some embodiments of the present application, a readable storage medium is provided on which a program or instruction is stored. When the program or instruction is executed by a processor, the steps of the path determination method for a self-moving cleaning device provided in any of the above embodiments are implemented, and therefore all its beneficial effects are also included. To avoid repetition, they will not be repeated here.
[0340] In some embodiments of the present application, a self-moving cleaning device is provided, including: a path determination device for the self-moving cleaning device as provided in any of the above embodiments; and / or a readable storage medium as provided in any of the above embodiments, and therefore also including all its beneficial effects, which will not be repeated here to avoid repetition.
[0341] The methods may be implemented in a variety of different ways depending on the specific features and / or example applications. For example, the methods may be implemented through a combination of hardware, firmware, and / or software. For example, in a hardware implementation, the processor may be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, electronic devices, other device units for performing the above functions, and / or combinations thereof.
[0342] A computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium can be, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: a portable computer floppy disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory card, a floppy disk, an encoding mechanical device (such as a punched card or a groove with a raised structure on which instructions are recorded), and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be understood as a transmission signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium, or electrical signals transmitted through wires.
[0343] In the description of this application, the term "plurality" refers to two or more, unless otherwise expressly defined. The orientation or positional relationship indicated by the terms "upper" and "lower" is based on the orientation or positional relationship described in the accompanying drawings, and is only for the convenience of describing this application and simplifying the description, and does not indicate or imply that the device or element referred to must have a specific orientation, be constructed and operated in a specific orientation, and therefore cannot be understood as a limitation on this application; the terms "connect", "install", "fixed", etc. should be understood in a broad sense. For example, "connection" can be a fixed connection, a detachable connection, or an integral connection; it can be directly connected or indirectly connected through an intermediate medium. For ordinary technicians in this field, the specific meanings of the above terms in this application can be understood according to specific circumstances.
[0344] In the description of this application, the terms "one embodiment," "some embodiments," "specific embodiments," etc., mean that the specific features, structures, materials, or characteristics described in conjunction with that embodiment or example are included in at least one embodiment or example of this application. In this application, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials, or characteristics described can be combined in any suitable manner in any one or more embodiments or examples.
[0345] The above description is merely a preferred embodiment of the present application and is not intended to limit the present application. Various modifications and variations are possible for those skilled in the art. Any modifications, equivalent substitutions, or improvements made within the spirit and principles of the present application shall be included within the scope of protection of the present application.
Claims
1. A method for determining a path of a self-moving cleaning device, characterized in that: include: Determining a plurality of path points corresponding to the area to be cleaned according to an area map of the area to be cleaned; A target cleaning path is determined based on a mixed integer linear programming model and a plurality of the path points. The target cleaning path is the moving path of the self-moving cleaning device when cleaning the area to be cleaned, and the target cleaning path passes through each of the plurality of the path points in sequence.
2. The path determination method according to claim 1, wherein: The step of determining the target cleaning path based on the mixed integer linear programming model and the plurality of path points specifically includes: determining a path starting point among the plurality of path points; Based on the mixed integer linear programming model, sequentially determining subsequent path points corresponding to each of the path points after the path starting point to obtain a path point sequence; The target cleaning path is generated according to the path point sequence.
3. The path determination method according to claim 2, wherein: The area map includes at least two sub-cleaning areas, and the target cleaning path passes through each of the at least two sub-cleaning areas; The path points include an entry path point and an exit path point of the sub-cleaning area. The self-moving cleaning device moves into the sub-cleaning area via the entry path point and moves out of the sub-cleaning area via the exit path point.
4. The path determination method according to claim 3, wherein: Among any two adjacent path points in the path point sequence, one path point is the entry path point, and the other path point is the exit path point.
5. The path determination method according to claim 3, wherein: The at least two sub-cleaning areas include a first sub-cleaning area and a second sub-cleaning area, and the starting point of the target cleaning path is located in the first sub-cleaning area; The sub-cleaning area and the target cleaning path meet the following conditions: The in-degree of the sub-sweeping area is 1, the maximum out-degree of the sub-sweeping area is 1, the in-degree of the second sub-sweeping area is greater than or equal to the out-degree, the sum of the in-degrees of at least two of the sub-sweeping areas is equal to the number of the sub-sweeping areas, the sum of the out-degrees of at least two of the sub-sweeping areas is equal to the number of the sub-sweeping areas, and the target cleaning path does not include a loop path.
6. The path determination method according to claim 2, characterized in that: The target cleaning path is a broken line path, and the path points include a starting point, an end point, and an inflection point of the broken line path.
7. The path determination method according to claim 6, characterized in that: The path points and the target cleaning path meet the following conditions: The in-degree of the end point and the inflection point is 1, the maximum out-degree of the path point is 1, the target cleaning path does not include a loop path, and the cleaning section between any two path points is only passed once.
8. A path determination device for a self-moving cleaning device, characterized in that: include: A determination module, configured to determine a plurality of path points corresponding to the area to be cleaned based on an area map of the area to be cleaned; as well as A target cleaning path is determined based on a mixed integer linear programming model and a plurality of the path points. The target cleaning path is the moving path of the self-moving cleaning device when cleaning the area to be cleaned, and the target cleaning path passes through each of the plurality of the path points in sequence.
9. A path determination device for a self-moving cleaning device, characterized in that: include: Memory, used to store programs or instructions; A processor is configured to implement the steps of the path determination method for a self-moving cleaning device according to any one of claims 1 to 7 when executing the program or instruction.
10. A readable storage medium having a program or instruction stored thereon, characterized in that: When the program or instruction is executed by a processor, the steps of the path determination method for a self-moving cleaning device according to any one of claims 1 to 7 are implemented.
11. A self-moving cleaning device, characterized in that: include: The path determining device of the self-moving cleaning device according to claim 8 or 9; and / or The readable storage medium according to claim 10.
Citation Information
Patent Citations
Regional full-coverage path planning method and device, equipment and storage medium
CN113759907A
Path planning method and device for unmanned aerial vehicle cluster, controller and storage medium
CN114355985A
Path planning method and device, electronic equipment and medium
CN116185045A
Robot moving path planning method and system and cleaning robot
CN116548870A
Path optimization support system, path optimization support method, component arrangement, path optimization support system, component arrangement, and path optimization support method
JP2002149723A
Cited By
Cleaning robot control method and device, cleaning robot and storage medium
CN122195019A
