SYSTEM AND METHOD OF REPLANNING FOR COVERAGE OF ENVIRONMENTS WITH UNKNOWN OBSTACLES

A system and method to replan coverage paths for a robot operating in an environment with initially unknown static obstacles. Existing coverage approaches reduce coverage time by covering along the minimum number of coverage lines (straight-line paths). However, recomputing such paths online can be computationally expensive resulting in robot stoppages that increase coverage time. An alternative is greedy detour replanning, i.e., replanning with minimum deviation from the initial path, which is efficient to compute but may result in unnecessary detours. In this work, an anytime coverage replanning approach named OARP-Replan is proposed that performs near-optimal replans to an interrupted coverage path within a given time budget. This is accomplished by solving linear relaxations of mixed-integer linear programs (MILPs) to identify sections of the interrupted path that can be optimally replanned within the time budget.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to and the benefit of U.S. Provisional Patent Application Ser. No. 63/487,622, entitled “SYSTEM AND METHOD OF REPLANNING FOR COVERAGE OF ENVIRONMENTS WITH UNKNOWN OBSTACLES” filed on Mar. 1, 2023, and U.S. Provisional Patent Application Ser. No. 63/602,426, entitled “SYSTEM AND METHOD OF REPLANNING FOR COVERAGE OF ENVIRONMENTS WITH UNKNOWN OBSTACLES” filed on Nov. 23, 2023, the disclosure of which is incorporated herein by reference in its entirety.

BACKGROUND

The embodiments described herein relate to semi-autonomous cleaning devices, in particular to a system and method for a mapping and localization framework for a semi-autonomous cleaning device.

Autonomous and semi-autonomous cleaning device or cleaning robot can move about a surface in an environment. Examples of the autonomous mobile robots include cleaning robots that autonomously perform cleaning tasks within an environment (e.g., a home, a shopping mall, an airport). Many kinds of cleaning robots are autonomous to some degree and in different ways. A cleaning robot can include a controller configured to autonomously navigate the robot about an environment such that the robot can ingest debris as it moves.

Coverage planning problems show up in many real-world applications such as cleaning, manufacturing, and agriculture. Informally, the coverage planning problem is to find a path that has the robot covering its entire environment with an onboard sensor or tool and minimizes a cost function. In this disclosure, the goal is to tackle the problem of replanning optimal coverage paths that have been interrupted by previously unknown static obstacles. This is known as the coverage replanning problem. This problem arises when businesses such as retail stores and warehouses change their environments frequently to accommodate new products and remapping beforehand each time would be too costly.

One approach to coverage replanning is to stop executing the current coverage path and plan a new path for the uncovered environment with the new obstacle(s). However, coverage planning is a difficult problem and this approach does not scale well for large environments with many unknown obstacles. Moreover, an obstacle may only affect a small section of the path (i.e., the unbroken parts of the path may still be drivable and near-optimal).

An alternate approach is to only replan the affected section(s) of the path (i.e., local replanning) while keeping the rest of the path intact. A simple example of local replanning would be where the robot simply drives around the obstacle whenever a collision is imminent. However, a more practical approach would be to use the time while driving towards the blockage to find more optimal solutions.

SUMMARY

A system and method to replan coverage paths for a robot operating in an environment with initially unknown static obstacles. Existing coverage approaches reduce coverage time by covering along the minimum number of coverage lines (straight-line paths). However, recomputing such paths online can be computationally expensive resulting in robot stoppages that increase coverage time. An alternative is greedy detour replanning, i.e., replanning with minimum deviation from the initial path, which is efficient to compute but may result in unnecessary detours. In this work, an anytime coverage replanning approach named OARP-Replan is proposed that performs near-optimal replans to an interrupted coverage path within a given time budget. This is accomplished by solving linear relaxations of mixed-integer linear programs (MILPs) to identify sections of the interrupted path that can be optimally replanned within the time budget. This approach is validated in simulation using maps of real-world environments and compared against a greedy detour replanner and other state-of-the-art approaches.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating the effect of an obstacle on replanning a coverage path consisting of ranks.

FIG. 2 is a diagram illustrating an example run of OARP-Replan with one obstacle.

FIG. 3 is a diagram illustrating Algorithm 1 for OARP-Replan.

FIG. 4 is a diagram illustrating Integral orthogonal polygon (IOP) of an environment where each grid cell is either oriented horizontally or vertically.

FIG. 5 is a diagram illustrating the matching edges used to detect ranks for a given row of grid cells.

FIG. 6 is a diagram illustrating the cases considered for Lemma 1's proof.

FIG. 7 is a diagram illustrating possible changes to ranks.

FIG. 8 is an example of possible changes to an initial rank tour consisting of only horizontal ranks.

FIG. 9 is a diagram illustrating data used to estimate TOUR-REPLAN runtime.

FIG. 10 is a diagram illustrating a comparison of the coverage replanning approaches using the fixed clutter dataset.

FIG. 9A is a diagram illustrating a Turtlebot 3 covering an environment with unknown obstacles.

FIG. 9B is a diagram illustrating qualitative results of replanning an initial coverage path for the example environment with unknown obstacles.

FIG. 10 is a diagram illustrating data used to estimate TOUR-REPLAN runtime.

FIG. 11 is a diagram illustrating a comparison of the coverage replanning approaches using the fixed clutter dataset.

FIG. 12 are diagrams illustrating a comparison of the coverage replanning approaches using the fixed clutter dataset.

FIG. 13 are diagrams illustrating a comparison of average MILP runtime between the OARPReplan approaches.

FIG. 14 is a graph that illustrates the results of comparing coverage cost of OARP-Replan and OARP-Offline against the BCD-Offline method.

FIG. 15 is a block diagram illustrating an exemplary coverage replanning framework for a cleaning robot.

DETAILED DESCRIPTION

According to this disclosure, an anytime coverage replanner that utilizes the time spent driving to conduct near-optimal replans on the provided coverage paths is disclosed.

According to previous disclosures, an Optimal Axis-Parallel Rank Partitioning (OARP) approach to plan coverage paths that minimizes the number of turns in the solution is disclosed. Minimizing turns is motivated by path quality and optimality as robots can have decreased performance while turning (speed and coverage).

According to the disclosure, OARP solves this using the following three-step framework:

    • i) decomposing the environment into grid cells,
    • ii) using the decomposition to compute the minimum number of axis-parallel (horizontal and vertical) ranks, i.e. long rectangles that match the width of the robot's coverage tool while covering along a straight-line path, and
    • iii) finding an optimal tour of the ranks to obtain the coverage path.

According to the disclosure, the OARP concept is extended to provide a coverage replanning approach, namely OARP-Replan, that replans coverage paths. The following contributions have been added:

    • 1. a) a Mixed-Integer Program (MILP) that replans the ranks of a coverage path such that a tour of the ranks (i.e. a coverage path) can be replanned within a time budget.
    • 1. b) leverage LP relaxations of this MILP to replan ranks in polynomial time (efficient to compute).
    • 2. present a second MILP that reduces the number of decision variables, and therefore replans the coverage ranks faster than the first MILP.
    • 3. provide an anytime coverage replanning method named OARP-Replan that leverages the above MILPs to conduct near-optimal replans to the coverage path within a given time budget.
    • 4. conduct simulations using maps of real-world environments that show that our proposed approach achieves better coverage performance than other state-of-the-art approaches, including an offline approach (obstacles are known).

The Coverage Planning Problem

Consider a 2D non-convex environment with known obstacles, where W⊆R2 is a closed and bounded set that represents all free points within the environment. Now consider a robot with a state composed of its position x∈W and a heading θ∈[0, 2π) radians. The robot is carrying a coverage tool with a footprint given by A⊆R2. Assume that the coverage tool is a square of width I>0. Let A(x, θ)⊆W represent the placement of the tool with respect to the robot's state. In reality, a square tool may only be able to cover a subset of the environment {tilde over (W)}⊆W. However, for simplicity of notation, assume that {tilde over (W)}=W. Now formally define the coverage planning problem (CPP) of interest as follows.

Problem 1 (Coverage Planning Problem (CPP):

Given a 2D environment W and a robot carrying a coverage tool of footprint A, plan a path P from the set P of all possible paths which solves the following equations where J(P) is the cost of the path P.

min P 𝒫 J ( P ) ( 1 ) s . t . ( x , θ ) P 𝒜 ( x , θ ) = 𝒲 , ( 2 )

According to the disclosure, the path cost J(P) to be the time for the robot to cover the given environment along P.

Optimal Axis-Parallel Rank Partitioning (OARP)

According to the disclosure, the focus of the Optimal Axis-Parallel Rank Partitioning (OARP) approach is to plan optimal coverage paths in which the coverage tool moves only in axis-parallel directions (horizontal and vertical) during coverage. The OARP approach uses a three-step framework to plan coverage paths:

    • (i) decompose the environment W into an Integral Orthogonal Polygon (IOP), which is a set of square grid cells of size I,
    • (ii) place the minimum number of axis-parallel (horizontal or vertical) ranks (straight-line paths) to cover the IOP, and
    • (iii) compute a tour of the ranks to construct the coverage path.

To place the minimum number of ranks in the IOP, OARP solves a linear program (LP) to compute the coverage orientation of each cell in the IOP. Once the ranks are obtained, a tour of the ranks is computed by solving a Generalized Travelling Salesman Problem (GTSP) that minimizes the cost of transitioning (driving) between ranks.

The resulting coverage path is represented as a series of ranks connected by cost-minimizing transition paths, which are collision-free dynamically feasible paths to traverse between ranks. Note that, unlike ranks, transition paths do not have to be axis-parallel.

Coverage Replanning Problem

Consider the case where the robot is trying to follow its initial coverage path P but it observes a set O of previously unknown obstacles. In other words, the actual environment is W⊆W\O. Assume that the robot is equipped with a sensor that can observe its environment within a sensor footprint relative to the robot's position (e.g., an optical range sensor).

Suppose, at position xi, the robot detects a new obstacle interrupting the path. Let t be the time in which the robot would reach the obstacle along its current path from xi. While the robot might be able to continue along P for time τ, the subsequent path must be replanned. One solution is to solve the full CPP for the new environment W. While this method would give the optimal coverage path, it has a major drawback. If solving CPP takes longer than τ, the robot may have to stop and wait for a new path, which is undesirable. To address this, one instead solves the coverage replanning problem that takes into account a time budget τ.

Let Pr be the remaining path after the first interruption by the obstacle. Let Wr⊆W be the area covered by Pr, where O⊆Wr. The replanning problem is to plan a new coverage path P′r before τ such that it covers the same areas as Pr without colliding into O.

Problem 2 (Coverage Replanning Problem (CRP)

Given a path P covering W, a set of newly observed obstacles O, a time τ until the first such obstacle is encountered along P, the remaining path Pr after the first encounter, and the area Wr covered by Pr, find a new coverage path P′r within time t which solves

min P ? 𝒫 J ( P r ) ( 3 ) s . t . ( x , θ ) P ? 𝒜 ( x , θ ) = 𝒲 ? \ 𝒪 . ( 4 ) ? indicates text missing or illegible when filed

CRP is similar to CPP when t is infinite and P=Pr. However, for a finite τ, CRP must find a trade-off between minimizing coverage cost and ensuring a path is computed within τ. The larger the τ value, the closer the coverage cost is to the optimal path (CPP solution).

Rank-Based Coverage Replanning

CPP is NP-Hard, which indicates that CRP is intractable. Therefore, one looks for relaxations of Problem 2 that are more solvable. A common approach is to solve this problem in stages. While this may remove some optimal solutions in the search space, it reduces the complexity of the problem and makes it tractable.

According to this disclosure, the focus is on replanning initial coverage paths that are represented as a series of axis-parallel (horizontal/vertical) ranks covering an IOP decomposition of our initial environment (e.g., paths generated by OARP). With this setup, Problem 2 is shown in two stages: (i) rank replanning, and (ii) touring.

In the rank replanning stage, the minimum number of axis-parallel ranks is computed to cover the IOP of the remaining region Wr\O. In the touring stage, the replanned path P′r is obtained by computing a tour of the ranks that minimizes the cost of transitioning between the ranks.

Problem 3 (Rank-Based Coverage Replanning)

Given a set of newly observed obstacles O that interrupts the remainder Pr of the coverage path P, and a time budget t before the robot's first encounter with an obstacle in O, compute the following within time τ:

    • (i) a minimum set of ranks that covers the IOP representation of the uncovered free region Wr \O and
    • (ii) a tour of the ranks that minimize the total cost of transition between ranks.

Solution Framework

According to the disclosure, one objective is to solve rank replanning efficiently so that the majority of the time budget is available for the touring stage, which is formulated as a Generalized Travelling Salesman Problem (GTSP), an NP-hard problem. However, the rank replanning output affects the GTSP input size, and in turn, the runtime. Therefore, the rank replanning stage was designed such that the tour of the replanned ranks can be computed within the time budget τ.

To better understand this coupling, consider the example coverage path shown in FIG. 1 with an initial set of horizontal ranks. FIG. 1 is a diagram illustrating the effect of an obstacle on replanning a coverage path consisting of ranks. According to FIG. 1, an obstacle is introduced in diagram 100 for which rank replanning returns two different sets of ranks. Each set contains ranks 108 that are unchanged from the initial path and new ranks 114 (i.e., ranks that were not in the initial solution).

FIG. 1 illustrates the effect of an obstacle (black box) on replanning a coverage path consisting of ranks 108 and transition paths 110 and 112. The ranks 108 of the initial path (left) when interrupted can be replanned in many ways, two of which are shown here. Example 1 104 has fewer new ranks 114 (dotted box) than Example 2 106 and is preferable for shorter planning time. Example 2 106 has fewer total ranks and is preferable for shorter drive time.

To reduce the computational complexity of the touring step, sections of the initial path to cover unchanged ranks are reused. This allows us to spend the time budget on connecting new ranks to the unchanged path sections. As a result, the GTSP problem size is driven by the number of new ranks.

FIG. 2 is a diagram illustrating an example run of OARP-Replan with one obstacle. According to FIG. 2, an example run of OARP-Replan with one obstacle 200 is shown. Each encounter (dots 1, 2 and k) with the new obstacles along the current path is evaluated. For encounter i≤k, the planner attempts to replan the remaining path 206 within the time τi to reach the encounter (black path). To compute τi, previous encounters are replanned using GD replan 202 (dotted lines).

According to FIG. 2, E.g. 1's second stage has a GTSP size of 6 sets (4 new ranks+2 retained paths), whereas E.g. 2 has a GTSP size of 7 sets (6 new ranks+1 retained path of one rank) despite having fewer total ranks. Note that the number of unchanged disconnected path sections is also bounded by the number of new ranks.

Let m be the number of total ranks in the replanned solution and mnew≤m be the number of new ranks. The GTSP input size is dependent on mnew and the estimated GTSP runtime would be a monotonically increasing function {circumflex over (T)}(mnew). Therefore, given a time budget τ, bound mnew such that Î(mnew)≤τ. In other words, a larger t allows us to change more ranks (mnew) so that can minimize the total number of ranks (m). To compute this bound, one first determines {circumflex over (T)} using data collected from previous GTSP runs. Set {dot over (m)}={circumflex over (T)}−1 (τ) as the maximum GTSP instance size, where {circumflex over (T)}−1 is the inverse of {circumflex over (T)}. Thus, the following constraint was added in rank replanning to ensure that the touring stage finishes within time τ:

m new T ^ - 1 ( τ ) = m _ . ( 5 )

Algorithm

A high-level algorithm of the proposed approach, namely OARP-Replan, for which the pseudocode is given in Algorithm 1. FIG. 3 is a diagram illustrating Algorithm 1 for OARP-Replan. According to FIG. 3, OARP-Replan300 is run when new obstacles blocking the current path P are detected. Let k be the number of projected encounters with all newly detected obstacles along P. For each encounter, the robot has the option of replanning the remaining path (the preferred solution) or simply going around the obstacle while covering the interrupted rank (if there is no time to replan).

The latter method is referred to as the greedy detour (GD) replan, which can be performed using a local planner with little to no computational time and thus no robot stoppage. GD replan is proposed as a fallback method in the case where the main planner does not have enough time to replan the path.

According to the disclosure, FIG. 3 illustrates an example run of the algorithm. Each obstacle encounter is iterated and one evaluates whether the main planner can replan the path after i encounters, where i≤k. In other words, an obstacle encounter that gives the planner enough time to replan the path after the encounter. The path for all previous obstacle encounters ({1, 2, . . . i−1}) is replanned using GD replan. Let Tibe the time for the robot to reach the ith encounter along the current path, which will be the time budget for the replan.

To evaluate if the path after encounter i can be replanned, the planner runs a sub-routine named RANK-REPLAN to get a set of replanned ranks for which a tour can be computed in time τi (Line 7). If RANK-REPLAN returns a set of replanned ranks, compute a tour of the ranks using another sub-routine called TOUR-REPLAN (Line 9) that solves the GTSP to obtain our replanned path. This sub-routine runs as a background process while the robot continues to follow the current coverage path. However, if RANK-REPLAN returns an empty set, then this indicates that there is no solution that will finish within the expected time budget. In that case, GD replan is used to replan encounter i (Line 12), and the procedure is repeated for the next encounter. In the end, a replanned path is obtained where some (or all) encounters are replanned using GD replan, while the remaining path undergoes a near-optimal replan before the robot reaches the corresponding encounter.

According to the disclosure, OARP-Replan is executed using the path that the robot is currently executing (i.e. if a new obstacle is detected before P′ is returned), a new replan of P is started.

The Base MILP

According to the disclosure, the RANK-REPLAN subroutine minimizes the number of replanned ranks while constraining the number of new ranks within a budget {dot over (m)}. The mixed-integer linear program (MILP) from the OARP is further elaborated upon.

Consider an integral orthogonal polygon (IOP) containing grid cells representing the input environment, where each cell ci for 1≤i≤n is of size I×I (I is the tool width). The goal of the MILP is to assign a coverage orientation (horizontal or vertical) for each cell ci such that the number of ranks covering the cells is minimized. Ranks are obtained by merging similarly-oriented neighboring grid cells. To this end, variables are introduced to represent cell orientations and count the resulting ranks after all merges are complete.

Let xHi and xVi be binary variables that denote whether cell ci is oriented horizontally or vertically (cannot be both). FIG. 4 is a diagram illustrating Integral orthogonal polygon (IOP) of an environment where each grid cell is either oriented horizontally or vertically. FIG. 4 shows an example IOP 400 with oriented grid cells and their corresponding ranks. Further, variables were added to identify the rank endpoints. Let yLi and yRi be binary variables that indicate whether the cell ci is the left endpoint and/or right endpoint of a horizontal rank. Similarly, let yTi and yBi be binary variables that indicate whether ci is a top and/or bottom endpoint of a vertical rank. This notation is different from the original OARP approach, which only has indicator variables for the left and top endpoints. FIG. 4 also illustrates all endpoint variables and rank endpoints for the oriented grid cells.

Let xH, xV, yL, yR, yT, yB be n-dimensional binary vectors of the corresponding variables for all grid cells. Let

y H = [ y L T y R T ] T and y V = [ y T T y B T ] T

be the vectors of all horizontal rank and vertical rank endpoints respectively, where


WH,yV∈{0,1}2n,

Since each rank has exactly two endpoints, the number of coverage ranks m is given by half the sum of all rank endpoints:

m = 1 2 ( 1 T y H + 1 T y V ) , ( 6 )

where 1 is the column vector of ones. This constitutes the objective of the optimization problem.

To formulate the MILP constraints, one must encode the relationship between the orientations (x variables) and endpoints (y variables). Following from our previous work, directed graphs were used in the IOP to detect whether a neighboring cell can be merged. Let GL and GR be directed graphs composed of all horizontal path flows for each grid cell from its left and right neighbors respectively. For cells at the IOP border, artificial nodes called border identifiers were added to simulate path flow into those cells. Similarly, let GT and GB be the graphs composed of all vertical path flows for each grid cell from its top and bottom neighbors respectively. From these graphs, let AL, AR, AT, and AB be matrices representing the corresponding graphs, where each row of a matrix signifies a directed edge in the graph, with a −1 for a source grid cell (outgoing edge), a +1 for a sink grid cell (incoming edge), and Os otherwise. These matrices resemble the node-arc incidence (NAI) matrices for the graphs GL, GR, GT, and GB.

A rank minimization MILP is proposed, namely MILP-0, that will extend in the rest of this section:

MILP 0 min x H , x V , y H , y V m ( 7 ) s . t . [ A L T A R T ] T x H - y H 0 ( 8 ) [ A T T A B T ] T x V - y V 0 ( 9 ) x H + x V = 1 ( 10 ) x H , x V { 0 , 1 } n ( 11 ) y H , y V { 0 , 1 } 2 n . ( 12 )

In this MILP, equations 8 and 9 ensure that, for an optimal solution of MILP-0, vectors yH and yV correspond to the endpoints of the optimal number of ranks covering the IOP. Equation 10 ensures that each cell is only assigned one orientation (can be either horizontal or vertical).

Constraining New Ranks

According to the disclosure, a means to constrain the number of new ranks mnew to be within the rank budget m is considered. To compute mnew, identify the new ranks in the replanned solution by comparing them with the ranks from the initial path. This comparison requires an encoding of ranks using the MILP variables. To this end, an encoding based on perfect matching is proposed that matches the endpoints for each rank in the MILP solution. The new ranks are therefore the difference between the old and new endpoint matchings.

To simplify the explanation of the encoding, the horizontal case is first discussed and the same ideas are simply extended to the vertical case. Consider a horizontal row of connected (unobstructed) grid cells in the IOP as depicted in FIG. 5. FIG. 5 is a diagram 500 illustrating the matching edges used to detect ranks for a given row of grid cells. According to FIG. 5, each cell ci has edges that match it with another cell in the row if ci is a right (using magenta edges) or left (using cyan edges) endpoint. Here, an example is shown where ci is a left endpoint and is matched with a right endpoint in the row (bold cyan edge). No matching occurs if c; is not an endpoint.

Now, consider the case where the row contains a horizontal rank with a left endpoint at a cell ci. This indicates that the rank either (i) covers cells to the right of ci or, (ii) covers only ci. In both cases, it is observed that there must exist a cell to the right of ci (including cc) that is the right endpoint of this rank. Rank is identified by matching its left and right endpoints.

Variables that represent directed edges are added between ci and every cell cr to its right if formulated, as any of them could be a right endpoint. Also, edge is added from ci to itself to account for a single-cell rank. For each edge between ci and a cell cr, add a binary variable zir∈{0, 1} that takes a value of 1 if the edge is included in the matching (i.e. cr is a right endpoint). To ensure that ci and cr are matched only if they are left and right endpoints respectively, the following constraints was enforced:

r z ir = y L i , ( 13 ) i z ir = y R r , ( 14 ) z ir { 0 , 1 } 1 i , j n . ( 15 )

Lemma 1

FIG. 6 is a diagram 600 illustrating the cases considered for Lemma 1's proof. Consider a horizontal row of connected IOP grid cells and two cells ci and cr in this row where cr is to the right of ci. Then there exists a horizontal rank with its left endpoint at ci and right endpoint at cr iff zir=1. If there exists a rank between ci and cr, then yLi=1 and yLr=1. As a result, the following for ci:

r z ir = 1 , and i z ir = 1.

Assume that zir=0 (see FIG. 6(a)). This indicates that ci must be matched with another right endpoint ck to its right (i.e. zik=1). Since there exists a rank between ci and ci, ck cannot be between the two cells. Therefore, ck must be to the right of cr. WLOG, assume that the rank between ci and cr is the left-most horizontal rank in the row, meaning that there are no other left endpoints for cr to match with. This is an infeasible solution for the set of constraints unless zir=1, thereby proving the statement.

If zir=1, then yLi and yRr have to both be 1, indicating that they are left and right endpoints respectively. However, consider the case where there is a vertically-oriented cell between them, indicating that there is no horizontal rank between ci and cr (see FIG. 6(b)). In this case, there must exist another cell ck that is a right endpoint (to the left of the vertical cell), where yRk=1. WLOG, let us assume that ci is the only endpoint to the left of ck. This indicates that ck has no other left endpoint to match with, which in turn gives an infeasible solution unless zik=1 and zir=0. This contradicts the fact that zir=1, and therefore shows that there must exist a rank between ci and cr if zir=1. This proves the lemma.

Following Lemma 1, a way of representing a horizontal rank as a matching of its endpoints is shown. Each horizontal row of connected grid cells in the given IOP is extracted the following constraints for each cell c; in the row:

r z ir = y L i , where c r is to the right of c i , ( 16 ) t z ii = y R i , where c i is to the left of c i , ( 17 ) z ij { 0 , 1 } 1 i , j n . ( 18 )

The setup to represent vertical ranks as a matching of its endpoints in a vertical row of connected grid cells is extended. For each cell ci in the vertical row, the following constraints were added:

b z ib = y T i , where c b is to the bottom of c i , ( 19 ) t z ii = y B i , where c i is to the top of c i ( 20 ) z ij { 0 , 1 } 1 i , j n . ( 21 )

Now, let zij be an input to the MILP such that zij is 1 if the initial path contains a rank with cells ci and cj as endpoints and 0 otherwise. From Lemma 1, if the MILP solution has a rank with ci and cj as endpoints (zij=1), then it is a new rank if zij=0. Using this relation for all pairs of cells ci and cj with matching edges, compute mnew as follows:

m new = i j ( 1 - z _ ij ) z ij . ( 22 )

An extended MILP is proposed, namely MILP-1, that minimizes the number of ranks in the replanned solution while constraining the number of new ranks to be within a budget m. The term ∈mnew to the MILP's objective function is added, where ∈>0 is used to compute the rank-minimizing solution with the smallest mnew. The resulting MILP is as follows:

MILP 1 : min x H , x V , y H , y V m + ϵ m new ( 23 ) s . t . Eqs . ( 8 ) , ( 9 ) , ( 10 ) , Eqs . ( 16 ) , ( 17 ) , ( 19 ) ( 20 ) , 1 i n , m new m _ . ( 24 ) z ij { 0 , 1 } 1 i , j n . ( 25 ) x H , x V { 0 , 1 } n , ( 26 ) y H , y V { 0 , 1 } 2 n . ( 27 )

MILP-1 is shown to solve the rank replanning stage (Problem 3(i)) optimally, i.e. the solution (i) minimizes the number of ranks m, (ii) subject to the constraint that mnewm.

On Reducing MILP Variables

According to the disclosure, the formulated MILP-1 solves the rank replanning step optimally. However, one drawback of MILP-1 is that it adds a large number of decision variables (O(n2)), which affects the runtime of the MILP. Another MILP extension, namely MILP-2, that uses fewer decision variables, which can be more successfully used for large environments. Instead of matching rank endpoints, count new ranks by identifying changes to the rank endpoints from a previous solution. FIG. 7 illustrates all possible changes to ranks with the introduction of an obstacle. FIG. 7 is a diagram 700 illustrating possible changes to ranks. Each row shows horizontal lines and vertical lines ranks blocked by obstacles (i.e., black boxes) and the corresponding replanned ranks. In each case, changes to the rank endpoints were observed, which is used to formulate a bound for mnew.

The horizontal ranks to present our approach was analyzed and extend the same approach to vertical ranks. Consider a binary vector yH∈{0,1}2n that indicates if a cell was a horizontal (left or right) endpoint for a rank in the initial path. The vector is taken as an input to the MILP. Vectors yH and yH was compared to identify rank endpoint changes. Specifically, look to identify two types of changes: (i) an added endpoint and (ii) an extended endpoint.

An added endpoint represents an endpoint in yH but not in yH. This helps count the first four of the five possible rank changes illustrated in FIG. 7, as each rank after the change has at least one added ENDPOINT. LET αH∈R be the number of added horizontal endpoints, which was computed as follows:

α H = ( 1 - y _ H ) T y H .

However, in the case of a merged rank (FIG. 7), the new rank may not contain any added endpoints. To account for this, extended endpoints that measure cells that were endpoints in yH and are not endpoints in yH were counted while still maintaining the same coverage orientation (horizontal in this case). Suppose a cell ci was a left endpoint in yH, i.e. y−tL=1. The cell is considered an extended endpoint if yLt=0 and the cell is still covered horizontally (xHi=1).

The following piece-wise equation for cell ci to capture this relationship is considered:

y _ L i ( 1 - y L i ) + ( x H i - 1 ) = { 1 if c i is an extended left endpoint 0 otherwise

Now, let βH be a vector of binary variables that represents whether each cell is an extended horizontal endpoint. This is used to compute a value βH that counts the number of extended horizontal endpoints as follows:

β H = 1 T β H , where β H y _ H ( 1 - y H ) + ( [ x H T x H T ] T - 1 ) , β H { 0 , 1 } 2 n ,

where the º operator is the element-wise product of two vectors. To extend these concepts to the vertical case. Let yV be a binary vector indicating whether a cell was a vertical endpoint for a rank in the initial path. The total number of added endpoints α and extended endpoints β is then obtained as follows:

α = ( 1 - y _ H ) T y H + ( 1 - y _ V ) T y V ( 28 ) β = 1 T β H + 1 T β V , ( 29 ) where β H y _ H ( 1 - y H ) + ( [ x H T x H T ] T - 1 ) , ( 30 ) β V y _ V ( 1 - y V ) + ( [ x V T x V T ] T - 1 ) , ( 31 ) β H , β V { 0 , 1 } 2 n . ( 32 )

One now looks to bound the number of new ranks mnew using α and β, to exploit the following property.

Lemma 2

Consider a and B to be the number of added and extended endpoints respectively for a set of replanned ranks. Then the number of new ranks mnew in the set is bounded as follows:

m new α + β / 2.

By considering all possible changes to the ranks as illustrated in FIG. 7. For the first four possible changes, the minimum number of added endpoints is 1. However, for a merged rank, the number of endpoints added is 0, so instead count the minimum number of extended endpoints. Merging two ranks can be thought of as extending two endpoints enough that the ranks join. Therefore, a merged rank results in at least two extended endpoints. This is because merging more than 2 ranks results in more extended endpoints. As a result, the maximum number of merged ranks is β/2. With this, the following bound on mnew which proves the lemma:

m new α + β / 2 ,

A second MILP extension using the result from Lemma 2. Following Proposition 1, an additional term ∈(α+β/2) was added to the objective function, where ∈=1/({dot over (m)}+1), to compute a solution with the smallest mnew without dominating the minimization of m. The resulting MILP is as follows:

MILP 2 : min x H , x V , y H , y V m + ϵ ( α + β / 2 ) ( 33 ) s . t . Eqs . ( 8 ) , ( 9 ) , ( 10 ) , ( 28 ) - ( 32 ) α + β / 2 m _ ( 34 ) x H , x V { 0 , 1 } n ( 35 ) y H , y V { 0 , 1 } 2 n . ( 36 )

If feasible, solving MILP-2 guarantees a solution where mnew≤{dot over (m)}. Moreover, MILP-2 has O(n) decision variables, and expect MILP-2 to run faster than MILP-1. Remark 1 is also applicable for this MILP, one solves the linear relaxation to obtain integral solutions. However, since there are negative terms involving yH and yV (Eqs. (30), (31)), an additional constraint must be added to the linear relaxation to ensure that the problem is bounded:


yH,yV≤1.

The TOUR-REPLAN Subroutine

According to the disclosure, an approach to compute a tour of the replanned ranks to obtain our new coverage path is disclosed. A Generalized Travelling Salesman Problem (GTSP) on an auxiliary graph representing all path connections is disclosed. Each set in the graph represents a rank and consists of two vertices representing the directions in which the rank can be traversed. These sets are known as rank sets. The graph edges are the transition costs between the vertices, which depend on the robot's dynamics and design. Assume robot dynamics where (i) the robot traverses a straight line with piecewise constant acceleration with a maximum velocity and (ii) the robot stops and turns in place with a constant angular velocity.

However, the disclosure looks to address two additional challenges in the tour replan. Firstly, to limit the size of the GTSP instance by considering only the interrupted sections of the initial path. FIG. 8 is an example of possible changes to an initial rank tour consisting of only horizontal ranks.

According to the disclosure, FIG. 8, tour changes occur due to ranks that (i) change orientations to vertical ranks (purple circles), (ii) are split due to obstacles, and (iii) become unreachable due to an obstacle (black circle). The resulting GTSP sets are shown consisting of (i) path sets (yellow), (ii) rank sets corresponding to each new rank, and (iii) artificial nodes representing the start and end of the initial path. The graph contains a directed zero-cost edge connecting the artificial nodes.

According to the disclosure, FIG. 8 gives an illustration of possible path interruptions caused by (i) ranks changing orientations (ii) ranks split by an obstacle, and (iii) unreachable ranks. The ranks that are unchanged correspond with sub-sections of the initial path that are unchanged. To retain each such section by representing it as its own GTSP set, consisting of two vertices representing possible traversal directions. And is referred to this set as a path set. The GTSP is computed on a graph containing these path sets and rank sets that each represent a new rank obtained from RANK-REPLAN to be added to the tour.

The second challenge is to take into account the position of the robot and the desired end of the tour. To address this, artificial start and end vertices were added to the GTSP graph, as in FIG. 8. To ensure that the solution is a path from the start vertex to the end vertex, a directed zero-cost edge from the end vertex to the start vertex was added. Solving the GTSP on this graph results in the replanned coverage path.

Simulation Results

The robot covering partially known environments was simulated; the base environment is known but there are unknown obstacles that the robot discovers during coverage. Initial coverage paths were planned for the base environments using the OARP method and replanning the path as new obstacles were detected.

A dataset of 7 real-world 2D maps were obtained from Avidbots as our base environments, with their minimum coverage path lengths ranging from 145 m to 1900 m. Randomly generated obstacles were added with varying sizes and orientations to create a set of unknown environments. Specifically, two datasets of unknown environments were created: (i) fixed clutter dataset where the new obstacles occupy 10% of the base map's free area for all maps, and (ii) varying clutter dataset where starting with a candidate base environment, unknown environments were generated by varying the % area occupied by new obstacles.

For the varying clutter dataset, the base environment was chosen to be the one used in FIG. 11 and tested with 2 to 20% area occupied. The data was anonymized and presented diagrams 900 and 920 in FIGS. 9A and 9B. FIG. 9A is a diagram illustrating a Turtlebot 3 covering an environment with unknown obstacles 902 and 904. FIG. 9B is a diagram illustrating qualitative results of replanning an initial coverage path for the example environment with unknown obstacles 922, 924 and 926. FIG. 9B shows an example base environment containing three unknown obstacles for which the initial coverage path (dark path) needs replanning.

Replan Runtime Estimator

To determine our rank replanning budget {dot over (m)}, one estimate the runtime {circumflex over (T)} (m) needed to compute a tour for m ranks. This runtime includes (i) the estimated time to compute transition paths {circumflex over (T)}trans(m), and (ii) the estimated time to solve the GTSP {circumflex over (T)}GTSP(m). Transition path computation is included as it is a time-intensive process, especially for large maps. Formally,

T ^ ( m ) = T ^ trans ( m ) + T ^ GTSP ( m ) .

Data is collected from previous coverage planning runs to estimate each function. To estimate {circumflex over (T)}GTSP by fitting a cubic polynomial through the data as shown in FIG. 10. FIG. 10 is a diagram 1000 illustrating data used to estimate TOUR-REPLAN runtime. For {circumflex over (T)}trans (m), to use the following map-specific linear estimator. Let tavg be the average time to compute the transition paths for one rank in the given map. To compute {circumflex over (T)}trans(m) as follows:

T ^ trans ( m ) = t avg m .

The inverse of {circumflex over (T)}(m) to compute the replanning budget, i.e. m={circumflex over (T)}−1(τ).

Coverage Cost Comparisons

The total coverage cost (drive time+stop time) of the two proposed OARP-Replan approaches was compared against two other replanning approaches: (i) GD replan, which resembles the practical case of following a turn-minimizing coverage path with a local planner; and (ii) the OARP approach as proposed in [6]. OARP is an offline planner, was modified and used online for replanning. The online approach as OARP-Original which is implemented as follows: (i) ranks are replanned by solving the linear relaxation of MILP-O from Section V (identical to the MILP in), and (ii) the tour of the resulting ranks is computed by solving the GTSP as formulated.

The results from the fixed clutter dataset was reviewed. For each base environment, 5 trials were run where each trial was generated with a new random set of obstacles occupying 10% of the free space in the environment. FIG. 11 is a diagram 1100 illustrating a comparison of the coverage replanning approaches using the fixed clutter dataset. FIG. 11 shows the results of the comparison, where FIG. 11(a) and FIG. 11(b) plot the coverage cost and the minimum stop time for each method respectively (shown as graphs 1102 and 1104). To compare coverage costs, one plots the cost difference from that of an offline planner (OARP) provided with all obstacle information a-priori.

According to the disclosure, both OARP-Replan approaches result in faster coverage relative to GD replan, with an average improvement of about 13% across all maps. To visualize this improvement, one shows an example map with three unknown obstacles in FIGS. 9(a) and 9(b) (i.e., diagrams 922 and 924) where the initial path was replanned using GD replan and OARP-Replan-1 respectively. FIG. 9(c) (diagram 926) shows two examples where qualitative differences were observed between the approaches. In example 1, paths replanned using GD replan have multiple long detours around the obstacle, whereas OARP-Replan-1 has no such detours. In example 2, GD replan generates messy overlapping paths when avoiding the large obstacle, while OARP-Replan-1 reorients the ranks in this region to obtain a path with fewer overlaps.

Using OARP-Replan-2, similar improvements were observed in the replanned path for this example. Since the tour of the replanned ranks is computed with little to no stoppage, the replanning time does not affect the total coverage cost.

When comparing with OARP-Original, both OARP-Replan approaches achieve faster coverage, with the gap increasing as initial paths get longer (larger maps). This is because MILP-0 does not limit the change to the coverage path, leading to longer replanning times and resulting robot stoppages (diagram 1104 of FIG. 11(b)). In contrast, OARP-Replan approaches cause little to no stoppage. This difference in performance may be exaggerated in weaker computation setups, such as onboard computers on robot platforms. Between the OARP-Replan approaches, OARP-Replan-1 consistently produces slightly better path costs than OARP-Replan-2.

Similar experiments were conducted using the variable clutter dataset, where 5 trials were run for each clutter level. FIG. 12 are diagrams 1200 illustrating a comparison of the coverage replanning approaches using the fixed clutter dataset. According to FIG. 12, a comparison of the coverage replanning approaches using the varying clutter dataset: (a) Difference in coverage cost from an offline optimal planner with complete obstacle information about the map shown in diagram 1202. (b) Difference in minimum stop time of the robot during coverage (GD omitted as replanning time is negligible) shown in diagram 1204.

FIG. 12 shows the results of the coverage cost comparisons. In diagram 1202 of FIG. 12(a), the cost difference between the OARP-Replan approaches and GD replan increases with increasing clutter is observed, where OARP-Replan improves the cost by 18% on average. This is because, with more obstacles, GD replan causes many detours, while the OARP-Replan approaches tend to shorten such detours. In comparison with OARP-Original, the OARP-Replan approaches plan slightly longer coverage paths. However, OARP-Original tends to experience longer stops with increasing clutter (shown as diagram m1204 of FIG. 12(b)). Some stoppage was observed using the OARP-Replan approaches in environments of 20% clutter. This may be the result of not updating the runtime estimator during an experiment, making it inaccurate for highly cluttered environments (e.g. computing transitions take more time with more obstacles). A more sophisticated estimator that updates itself during coverage may eliminate this stoppage.

MILP Runtime Comparisons

The average runtimes of the rank replanning MILPs for both OARP-Replan approaches are compared. In solving the MILP efficiently, one looks to allow more time for solving the GTSP to compute a tour. The MILP from OARP-Original is excluded from this comparison as it does not constrain the GTSP input size.

FIG. 13 are diagrams 1300 illustrating a comparison of average MILP runtime between the OARP-Replan approaches. FIGS. 13(a) and 13(b) (diagrams 1302 and 1304) shows the comparison results for the fixed clutter and the varying clutter datasets respectively. For the fixed clutter dataset, MILP-2's runtime scales better than MILP-1 as the size (area) of the environment increases. This is mainly due to the reduction in the MILP variables that speed up runtime. This difference may be exaggerated when computation power is constrained, e.g. for low-cost robot hardware. For such applications, MILP-2 is recommended over MILP-1. A future improvement of this work could involve combining both MILPs, with MILP-2 as a fallback for MILP-1.

For the varying clutter dataset, the average runtimes of both MILPs are comparable, with MILP-1 performing better overall. Increasing clutter seems to slightly change both MILPs' runtimes, and as such, observed no drastic runtime difference as with the fixed clutter dataset.

Comparison Against BCD

In addition to the above comparisons, the proposed OARP-Replan (i.e. OARP-Replan-1) approach was compared against the Boustrophedon Cell Decomposition (BCD) method. For this comparison, the dataset from the BCD consists of around 300 scans of environments with varying numbers of obstacles or holes. The outer boundary of each map is a square, which is then filled with the obstacles observed in the scans. The maps are arranged in the order of increasing complexity, which is given by the number of hole vertices (e.g., one square hole consists of 4 vertices). To perform this comparison, similar robot parameters were used as a tool width of 3 m, maximum velocity of 3 m/s, linear acceleration of ±1 m/s2, and turn-in-place dynamics with an angular velocity of 30°/s.

BCD is an offline planning method, which requires prior information about the obstacles in the environment. While there are online variations of BCD, such as BA*, the BCD approach as proposed in the Bahnemann et al paper (“Revisiting Boustrophedon Coverage Path Planning as a Generalized Traveling Salesman Problem”) which aims to minimize turns and is therefore chosen as our baseline.

For this comparison, all obstacle information to the offline BCD planner is provided, while providing no information to OARP-Replan. OARP-Replan must therefore replan an initial path covering the unobstructed base environment (a simple square) whenever the robot detects obstacles. The results of using the offline OARP planner from were added, as it represents OARP-Replan when provided with all obstacle information and unlimited solver time. For clarity, two offline approaches as BCD-Offline and OARP-Offline.

FIG. 14 is a graph 1400 that illustrates the results of comparing coverage cost of OARP-Replan and OARP-Offline against the BCD-Offline method. FIG. 14 shows the results of comparing the total coverage cost of using all approaches. The BCD-Offline 1402 and OARP-Offline 1404 planners are given all obstacle information beforehand, while OARP-Replan 1406 is provided with no obstacle information must replan an initial path online.

According to FIG. 14, both OARP-Replan 1406 and OARP-Offline 1404 are observed to outperform BCD-Offline 1402 across all maps. OARP-Replan 1406 improves the coverage cost by about 18.6% on average from BCD-Offline 1402, while OARP-Offline 1404 improves the cost by about 25.5%. This improvement is due to the optimal coverage lines produced by both OARP-based methods, as BCD-Offline paths tend to overlap closer to cell boundaries and obstacles. Thus, one may conclude that using OARP-Replan with a simple initial path is a competitive alternative to using BCD-Offline with complete obstacle information. However, if obstacle information is available beforehand, OARP-Offline is a better alternative as it computes truly optimal paths.

ROS Simulation Case Study

According to this disclosure, a case study of a Turtlebot 3 replanning coverage paths in a ROS simulation using GD replan and OARP-Replan (i.e. OARP-Replan-1) is provided. This is to demonstrate the real-world applicability of our replanning approach. In an anonymized environment as shown in FIG. 9, for which an initial coverage path was generated as shown in FIG. 9(a), new obstacles to the environment that occupied 10% of the initial area were added. As the robot observes new obstacles blocking this path, the robot replans the path either using OARP-Replan or GD replan. The replanning is done while driving and the robot switches to the new path when available. The robot is also equipped with a local planner to traverse the path and make small changes if the path goes close to the walls. FIG. 9(b) shows a snapshot of the robot replanning the coverage path using OARP-Replan.

According to the disclosure, robot parameters from Table I for this simulation with some changes to use the default Turtlebot controller in ROS: set maximum velocity to 0.3 m/s and linear acceleration to 1 m/s2. With these parameters, OARP-Replan covered the environment 16.5% faster than GD replan along a path that was 12.2% shorter. This difference is mainly due to the reduction in long detours where the robot travels around obstacles many times.

Observations

According to the disclosure, an anytime coverage replanning approach called OARP-Replan to replan coverage paths for environments with unknown static obstacles is proposed. OARP-Replan solves this problem in two stages: (i) rank replanning, and (ii) touring. The first stage replans the ranks (straight-line paths) of an obstructed coverage path, while the second stage computes a tour of the replanned ranks to obtain the new path. Two mixed-integer linear programs (MILPs) are proposed where each solve the rank replanning stage so that the resulting touring stage is completed within a time budget τ.

Simulations on maps of real-world environments showed that the OARP-Replan variants using each MILP achieve better coverage performance than both a greedy replanner and a state-of-the-art coverage planner modified for online replanning. Moreover, OARP-Replan is compared with an offline approach (treating all obstacles as known) where a 19% improvement in coverage cost is observed.

According to further embodiments, this approach may be extended to address dynamic obstacles. This would involve detecting areas that could be free at a later time and coming back to cover them without long detours. Another future direction involves replanning proactively using predictions about environment occupancy to balance coverage and exploration, which can be competing objectives. Removing the axis-parallel constraint and allowing multiple directions of coverage may also improve coverage paths for non-orthogonal environments.

FIG. 15 is a block diagram illustrating an exemplary coverage replanning framework for a cleaning robot. According to FIG. 15, block diagram 1500 for a cleaning robot consists of multiple modules of robot navigation software 1502 (i.e., coverage replanner 1508, local planner 1510, local controller 1512, coverage replanner 1516) and robot hardware 1504 (i.e., LIDAR and cameras 1518 and motors and actuators 1520) which will be elaborated further below.

According to FIG. 15, block diagram 1500 initiates with a cleaning plan for a client environment 1506. Next, block diagram 1500 moves to coverage planner 1508 of robot navigation software 1502. Coverage planter 1508 is responsible for converting the cleaning plan to sectors (i.e., straight line paths). It uses a connection planter to connect sectors and compute the coverage path and to avoid obstacles.

According to FIG. 15, once the coverage path is computed, it is sent to the local planner 1510 and coverage replanner 1514. The local planner 1510 splits the coverage path to executable parts for the controller. It makes small changes to the path to go around detected obstacles. If large changes to the path are required, it then requests a coverage path to be replanned. The output of local planner 1510 are executable paths which are sent to the local controller 1512. Furthermore, Obstacle detection data using LIDAR and/or cameras 1518 from robot hardware 1504 is sent as input into the local planner 1510.

According to FIG. 15, the local controller 1512 moves the robot to cover the environment along the executable paths. If new obstacles are detected, it then asks the local planner 1510 for a new path. The output of the local planner is sent as feedback 1514 to local planner 1510 and moves the robot by actuating robot motors and/or actuators 1520 of the robot hardware 1504. Feedback 1514 consists of reporting executable path progress and completion and reporting whether the robot is stuck.

According to FIG. 15, the coverage path is also sent to the coverage replanner 1516. Coverage replanner 1516 receives information about the new obstacles from the local planner 1510 and to reach the obstacle. The coverage replanner 1516 then replans the remainder of the coverage path optimally given the available time. The output of coverage replanner is then sent to the local replanner 1510 as a replanned coverage path. Furthermore, local planner 1510 also provides feedback 1522 to the coverage replanner 1516. Feedback 1522 consists of reporting coverage plan progress, new obstacles and time along the current path to reach a new obstacle.

According to the disclosure, a system for coverage re-planning of an environment with unknown obstacles for a semi-autonomous cleaning apparatus is disclosed. The system comprises a processor, one or more LIDAR sensor or cameras configured for obstacle detection, one or more motors or actuators configured for movement of the cleaning apparatus, and a cleaning apparatus navigation software module. The cleaning apparatus navigation software module further comprising a coverage planner module, a local planner module, a local controller module and a coverage replanner module. The navigation software modules are configured to receive a cleaning plan and compute a executable coverage paths and the navigation software modules are configured to provide feedback to create coverage paths and replanned coverage paths.

According to the disclosure, the coverage planner module of the system is configured to convert cleaning path plant to sectors or straight-line paths, avoid known obstacles and uses connection planner to connect sectors and compute a coverage path. The local planner module of the system splits the coverage path to executable path for the local controller and makes small changes to the path to go around detected obstacles. If larger changes to path are required a request is sent to conduct a coverage replan.

According to the disclosure, the local controller module of the system is configured to move the apparatus to cover the environment along the executable paths and if new obstacles are detected, ask the local replanner for a new path. The local controller module is further configured to provide feedback of the executable path progress and completion and report whether the robot is stuck.

According to the disclosure, the coverage replanner module of the system is configured to receive information about new obstacles from the local planner and the time to reach the obstacles and optimally replans the remainder of the coverage path given the available time. The coverage replanner module of the system further provides feedback to the local planner by providing info on coverage plan progress, new obstacles and time along current path to reach new obstacles.

According to the disclosure, the LIDAR sensor and cameras of the system are provided to input data to the local planner module. The local controller module of the system executes the executable paths by moving the apparatus by actuating motors and actuators.

According to the disclosure, an OARP-Replan coverage replanning method is used to perform replanning by solving linear relaxations of mixed-integer linear programs (MILPs) to identify sections of the interrupted path that can be optimally replanned within the time budget. The coverage replanner module utilizes the time spent driving to conduct near-optimal replans on the provided coverage paths.

According to the disclosure, an Optimal Axis-Parallel Rank Partitioning (OARP) approach is used to plan coverage paths is used whereby the OARP approach minimizes the number of turns.

According to the disclosure, a computer-implemented method for a semi-autonomous cleaning apparatus comprising a processor, hardware and navigation software, the cleaning apparatus configured for coverage re-planning of an environment with unknown obstacles. The method comprising the steps of receiving a cleaning plan for an environment, sending the cleaning plan to a coverage planner module of the navigation software, the coverage planner module configured to compute a coverage path, sending the computed coverage path to a local planner module and a coverage replanner module, the local planner module configured to split the coverage plan into one or more executable paths and the coverage replanner module configured for replanning the coverage path and sending the executable paths to the local planner module, the local planner module configured to send instructions to move the apparatus along the executable path. The navigation software modules are configured to provide feedback to create coverage paths and replanned coverage paths.

According to the disclosure, the coverage planner module of the method is configured to convert cleaning path plant to sectors or straight-line paths, avoid known obstacles and uses connection planner to connect sectors and compute a coverage path. The local planner module of the method splits coverage path to executable path for the local controller and makes small changes to the path to go around detected obstacles.

According to the disclosure, if larger changes to path are required a request is sent to conduct a coverage replan. The local controller module of the method is configured to move the apparatus to cover the environment along the executable paths and if new obstacles are detected, ask the local replanner for a new path.

According to the disclosure, the local controller module of the method is further configured to provide feedback of the executable path progress and completion and report whether the robot is stuck. The coverage replanner module of the method is configured to receive information about new obstacles from the local planner and the time to reach the obstacles and optimally replans the remainder of the coverage path given the available time.

According to the disclosure, the coverage replanner module of the method further provides feedback to the local planner by providing info on coverage plan progress, new obstacles and time along current path to reach new obstacles. The LIDAR sensor and camera of the method s provide input data to local planner.

According to the disclosure, the local controller module of the method executes the executable paths by moving the apparatus by actuating motors and actuators. The OARP-Replan coverage replanning method is used to perform replanning by solving linear relaxations of mixed-integer linear programs (MILPs) to identify sections of the interrupted path that can be optimally replanned within the time budget.

According to the disclosure, the coverage replanner module of the method utilizes the time spent driving to conduct near-optimal replans on the provided coverage paths. Furthermore an Optimal Axis-Parallel Rank Partitioning (OARP) approach to plan coverage paths is used on the method whereby the OARP approach minimizes the number of turns. Minimizing turns is motivated by path quality and optimality as robots can have decreased performance while turning (speed and coverage).

According to the disclosure, a computer-implemented method for a semi-autonomous cleaning apparatus comprising a processor, hardware and navigation software, the cleaning apparatus configured for coverage re-planning of an environment with unknown obstacles by solving an Optimal Axis-Parallel Rank Partitioning (OARP) approach. The method further comprises the steps of decomposing the environment into grid cells, using the decomposition to compute the minimum number of axis-parallel ranks and finding an optimal tour of the ranks to obtain the coverage path.

According to the disclosure, the axis-parallel ranks of the method further comprising horizontal and vertical ranks. The axis-parallel ranks of the method further comprising long rectangles that match the width of the robot's coverage tool while covering along a straight-line path.

The methods disclosed herein comprise one or more steps or actions for achieving the described method. The method steps and/or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is required for proper operation of the method that is being described, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.

As used herein, the term “plurality” denotes two or more. For example, a plurality of components indicates two or more components. The term “determining” encompasses a wide variety of actions and, therefore, “determining” can include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” can include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” can include resolving, selecting, choosing, establishing and the like.

The phrase “based on” does not mean “based only on,” unless expressly specified otherwise. In other words, the phrase “based on” describes both “based only on” and “based at least on.”

While the foregoing written description of the system enables one of ordinary skill to make and use what is considered presently to be the best mode thereof, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiment, method, and examples herein. The system should therefore not be limited by the above-described embodiment, method, and examples, but by all embodiments and methods within the scope and spirit of the system. Thus, the present disclosure is not intended to be limited to the implementations shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A system for coverage re-planning of an environment with unknown obstacles for a semi-autonomous cleaning apparatus comprising:

a processor;
one or more LIDAR sensor or cameras configured for obstacle detection;
one or more motors or actuators configured for movement of the cleaning apparatus;
cleaning apparatus navigation software modules, further comprising: a coverage planner module; a local planner module; a local controller module; and a coverage replanner module;
wherein the navigation software modules are configured to receive a cleaning plan and compute a executable coverage paths;
wherein the navigation software modules are configured to provide feedback to create coverage paths and replanned coverage paths.

2. The system of claim 1 wherein the coverage planner module is configured to convert cleaning path plant to sectors or straight-line paths, avoid known obstacles and uses connection planner to connect sectors and compute a coverage path.

3. The system of claim 1 wherein the local planner module splits the coverage path to executable path for the local controller and makes small changes to the path to go around detected obstacles.

4. The system of claim 1 wherein if larger changes to path are required a request is sent to conduct a coverage replan.

5. The system of claim 1 wherein the local controller module is configured to move the apparatus to cover the environment along the executable paths and if new obstacles are detected, ask the local replanner for a new path.

6. The system of claim 1 wherein the local controller module is further configured to provide feedback of the executable path progress and completion and report whether the robot is stuck.

7. The system of claim 1 wherein the coverage replanner module is configured to receive information about new obstacles from the local planner and the time to reach the obstacles and optimally replans the remainder of the coverage path given the available time.

8. The system of claim 1 wherein the coverage replanner module further provides feedback to the local planner by providing info on coverage plan progress, new obstacles and time along current path to reach new obstacles.

9. The system of claim 1 wherein the LIDAR sensor and cameras are provided to input data to the local planner module.

10. The system of claim 1 wherein the local controller module executes the executable paths by moving the apparatus by actuating motors and actuators.

11. The system of claim 1 wherein an OARP-Replan coverage replanning method is used to perform replanning by solving linear relaxations of mixed-integer linear programs (MILPs) to identify sections of the interrupted path that can be optimally replanned within the time budget.

12. The system of claim 1 wherein the coverage replanner module utilizes the time spent driving to conduct near-optimal replans on the provided coverage paths.

13. The system of claim 1 wherein an Optimal Axis-Parallel Rank Partitioning (OARP) approach is used to plan coverage paths is used whereby the OARP approach minimizes the number of turns.

14. A computer-implemented method for a semi-autonomous cleaning apparatus comprising a processor, hardware and navigation software, the cleaning apparatus configured for coverage re-planning of an environment with unknown obstacles, the method comprising the steps of:

receiving a cleaning plan for an environment;
sending the cleaning plan to a coverage planner module of the navigation software, the coverage planner module configured to compute a coverage path;
sending the computed coverage path to a local planner module and a coverage replanner module, the local planner module configured to split the coverage plan into one or more executable paths and the coverage replanner module configured for replanning the coverage path; and
sending the executable paths to the local planner module, the local planner module configured to send instructions to move the apparatus along the executable path;
wherein the navigation software modules are configured to provide feedback to create coverage paths and replanned coverage paths.

15. The method of claim 14 wherein the coverage planner module configured to convert cleaning path plant to sectors or straight-line paths, avoid known obstacles and uses connection planner to connect sectors and compute a coverage path.

16. The method of claim 14 wherein the local planner module splits coverage path to executable path for the local controller and makes small changes to the path to go around detected obstacles.

17. The method of claim 14 wherein if larger changes to path are required a request is sent to conduct a coverage replan.

18. A computer-implemented method for a semi-autonomous cleaning apparatus comprising a processor, hardware and navigation software, the cleaning apparatus configured for coverage re-planning of an environment with unknown obstacles by solving an Optimal Axis-Parallel Rank Partitioning (OARP) approach, the method comprising the steps of:

decomposing the environment into grid cells;
using the decomposition to compute the minimum number of axis-parallel ranks; and
finding an optimal tour of the ranks to obtain the coverage path.

19. The method of claim 18 wherein the axis-parallel ranks further comprising horizontal and vertical ranks.

20. The method of claim 18 wherein the axis-parallel ranks further comprising long rectangles that match the width of the cleaning apparatus coverage tool while covering along a straight-line path.

Patent History
Publication number: 20240292994
Type: Application
Filed: Mar 1, 2024
Publication Date: Sep 5, 2024
Inventors: Megnath RAMESH (Waterloo), Francis Christopher IMESON (Kitchener), Stephen SMITH (Kitchener), Baris FIDAN (Kitchener)
Application Number: 18/593,009
Classifications
International Classification: A47L 11/40 (20060101);