Approximate Cell Decomposition

 

 

Index:

·       Introduction

·       General Description

·       Approximate-and-Decompose

·       Hierarchical Graph Searching

·       Orientation Slicing

 

 

 

Introduction:

 

Here, we investigate another cell decomposition approach to path planning which is known as approximate cell decomposition approach. It consists again of representing the robot's free space Cfree as a collection of cells. But it differs from the exact cell decomposition approach in that the cells are now required to have a simple prespecified shape i.e. rectangloid shape. As with the exact cell decomposition approach, a connectivity graph representing the adjacency relation among the cells is built and searched for the path.

        The time and space complexity of the methods based on this approach grows quickly with the dimension m of the configuration space. So these methods are good for small dimensions say m < 5.

 

 

 

General Description:

 

A rectangloid is closed region of following form in Cartesian Space Rn:

 

               {(x1,x2,….,xn) | x1Î [x1′,x1′′], x2Î [x2′,x2′′],…, xnÎ [xn′,xn′′]}

 

The differences xi′′-xi′ , i = 1,2,..,n are called the dimensions of the rectangloid.

 

 

Let W=cl(R). So,it is a rectangloid of Rm where m is the dimension of the configuration space C.

 

A rectangloid decomposition P of W (=cl(R)) is a finite collection of rectangloids {ki}i=1,..r such that:

 

 

·        W = U ki  i=1,..,r


·        "i1, i2 Î[1,r] i1i2 , int[]   int[]  = f

 

Each rectangloid ki is called the a cell of the decomposition P of W.

 

Two cells are adjacent if and only if their intersection is a set of non-zero measure in Rn-1.

 

A cell Ki is classified as:

·        Empty : if and only if its interior doesn’t intersect the C-obstacle region.

int (ki) CB =
f

·        Full : if and only if ki is entirely contained in the C-obstacle region.

ki  CB

·        Mixed otherwise.

 

The connectivity graph associated with a decomposition P of W  is the non-directed graph G defined as follows:

·        The nodes of G are the empty and mixed cells of P.

·        Two nodes are G are connected by a link if and only if the corresponding cells are adjacent.

 

 

 

 

 

 

 

 

 

 


Approximate-and-Decompose

 

This is a method for computing a rectangloid decomposition of a MIXED cell k. The goal of this method is to reduce the total volume of the newly created MIXED cells relative to the volume of k, while producing a reasonably small total number of cells.

          For C = R2xS1, the method can be applied as follows:

 

1.Outline
         
The approximate-and-decompose consists of first approximating the intersection of the CB with the cell k to be decomposed as a collection of non-overlapping rectangloids.
          In order to generate EMPTY and FULL cells, as well as the MIXED cells, two types of approximations are computed: a bounding approximation and a bounded approximation.

 

Let CB(k) = CBk.

 

-         A bounding rectangloid approximation of CB(k) is a collection of non-overlapping rectangloids Ri, i=1,..,p whose union contains CB(k).

o       For every i[1,p] Ri  k

o       For every i, i' [1,p], ii¢ int(Ri)int(Ri¢) = f

o       CB[k]  

-         A bounded rectangloid approximation of CB(k) is a collection of non-overlapping rectangloids Ri¢, i=1,..,p¢ whose union is contained in CB(k).

o       For every i[1,p¢] R¢  k

o       For every i, i' [1,p¢], ii¢ int(Ri¢)int(Ri¢¢) = f

o       CB[k]


The EMPTY cells of the decomposition of k are obtained by computing the complement of in k.

The FULL cells of the decomposition are the Ri¢’s.

The MIXED cells are obtained by computing the complement of  in every Ri.

 

The following figure illustrates the notion of bounding and bounded approximation.




Generating bounded and bounding approximations of CB[k]

 

Let k = [xk,x′k] [yk,y′k] [qk,qk]

 

Then the method consists of the following two steps:

1. Decomposition of [qk,qk] :

          The range of orientations [qk,qk] is cut into non-overlapping intervals [gu,gu+1], u = 1,..r, r > 0 with g1=qk and gr+1=qk.  Denote [xk,x′k] [yk,y′k] [gu,gu+1] by ku.

 

For every u[1,r], we compute the outer projection and the inner projection of CB[ku] into the xy-plane.

 

Outer projection, OCBxy[ku] = { (x,y)| q [gu,gu+1] : (x,y,q)  CB[ku] }

 

Inner projection, ICBxy[ku] = { (x,y)| q [gu,gu+1] : (x,y,q)  CB[ku] }

 

Clearly, ICBxy[ku]  OCBxy[ku]

 

2. Decomposition of [xk, x ′k] and [yk, y ′k]:

         

For every u[1,r], the interval [xk, x ′k] or [yk,y ′k] whichever is longer is cut into non-overlapping subintervals.

 

Let us assume that [xk, x ′k] is subdivided. The general subintervals are     [xv, x v+1], v=1,..,s, s > 0 with x1 = xk and xs+1 = x ′k.  Denote [xv,xv+1] [yk,y′k] [gu,gu+1] by kuv.

 

 

For every v[1,s], we compute the outer projection and the inner projection of OCBxy[ku] into the y-axis.

 

Outer projection, OCBy[kuv] = { y| x [xu,xu+1] : (x,y)  OCBxy[ku] }

 

Inner projection, ICBy[kuv] = { y| x [xu,xu+1] : (x,y)  ICBxy[ku] }

 

Clearly, ICBy[kuv]  OCBy[kuv]

 

Each rectangloid [xv,xv+1] [c,c′] [gu,gu+1] where [c,c′] is a maximal connected interval in OCBy[kuv] (resp. ICBy[kuv]) is a rectagloid Ri (resp. Ri¢) in the bounding (resp. bounded) approximation of CB[k].

 

Computation of Outer and Inner Projection of CB[ku]

 

Principle: Let us first assume that both A and B are convex polygons and that A’s reference point lies in int(A). In R2x[0,2p], CB is a volume bounded by faces formed by patches of ruled surfaces.

 

Consider a point (x0,y0) in the xy-plane and the segment {(x0,y0,q) | q [gu,gu+1] } above this point. If the segment pierces a face of CB then (x0,y0) is in OCBxy[ku] but not in ICBxy[ku]. If it pierces no face, then either (x0,y0) is not in OCBxy[ku] or it is in ICBxy[ku]. The segment {(x0,y0,q)|q [gu,gu+1] } pierces a face F if and only if (x0,y0) lies in projection of F into the xy-plane.

 

We show below that the intersection of every face with the interval [gu,gu+1] projects into the xy-plane according to a generalized polygon. Therefore, the projection of the boundary of CB that is comprised between gu and gu+1 is the union of generalized polygons. Under the assumptions made above, the union is a region with external boundary G1 and internal boundary G2. The generalized polygon bounded by G1 is OCBxy[ku] and generalized polygon bounded by G2 is ICBxy[ku].

 

The outer and inner projections of CB[ku] are computed by:

1.     Projecting all faces of CB (to the extent they are contained in the interval [gu,gu+1]) into the xy-plane.

2.     tracking G1and G2 and clipping them by the rectangle [xk,xk¢]  [yk,yk¢].


 


Projection of Type A face:

Let FA be the face of type A comprised between limit orientations f1 and f2. The contact is between the edge EA of A and vertex b of B.

The orientation f1(resp. f2) is achieved when the edge EA­ is collinear with the edge E (resp. E).

Assuming that [f1,f2] [gu,gu+1], the projection is shown in the figure. It is obtained by the union of the two regions shown before.

 

The case where [gu,gu+1] [f1,f2] is treated in the same way after drawing two fictitious edges from vertex b.


Projection of Type B face:

Let FB be the face of type B comprised between limit orientations f1 and f2.

The contact is between the edge EB of B and vertex a of A.

The orientation f1(resp. f2) is achieved when the edge EB­ is collinear with the edge E (resp. E).

Assuming that [f1,f2] [gu,gu+1], the projection is shown in the figure. It is obtained by the union of the two regions shown before.

 

The case where [gu,gu+1] [f1,f2] is treated in the same way after drawing two fictitious edges from vertex a.

 

 

Computation of OCBxy(ku) and ICBxy(ku)

 

The contours G1 and G2 are computed by sweeping a line across the xy-plane. Assuming that [xk,xk¢] interval will be decomposed next in order to compute OCBy(kuv) and ICBy(kuv), the sweep line is chosen parallel to x-axis. The sweep starts from the smallest ordinate of all the points in the generalized polygons. During the sweep, the contours G1 and G2 are tracked by labeling the intervals comprised between the abscissae listed in the sweep line status as being outside OCBy(kuv), inside ICBy(kuv) but outside OCBy(kuv),or inside ICBy(kuv).

          Once G1 and G2 have been extracted in the form of sequences of straight and circular edges, they are clipped by rectangle [xk,xk¢]  [yk,yk¢].

 

 

Hierarchical Graph Searching

The first cut planning algorithm searches successive connectivity graphs Gi, i=1,2,.., until either it finds an channel of EMPTY cells connecting init to qgoal (success) or it doesn’t find any channel connecting these two configurations (failure ). Each graph Gi, i > 0 is obtained by from the previous one Gi-1, by decomposing the MIXED cells contained in the channel of MIXED cells found in Gi-1.

          The major drawback of this algorithm is that the search work done in Gi-1 is not used to help the search Gi, although large subsets of these graphs may be identical.

 

Improved Algorithm:

The improved algorithm constructs a hierarchy of cg’s (connectivity graphs). The cg at the root corresponds to the first decomposition 1 of W and we denote this cg by GW. Every other cg in the hierarchy corresponds to the decomposition of the mixed cell k and denoted by Gk.

 

·        Graph GW is searched for a channel connecting qinit and qgoal. Assume that the outcome of the search is an M-channel P1.

·        Every mixed cell k in P1 is recursively decomposed and searched for a channel that connects appropriately to the rest of P1.


Once the M-channel P1 been found out in GW, P2 is initialized to the empty sequence of cells and the planner consider every successive cell k in P1 starting from the cell that contains qinit. If k is empty it is simply appended at the end of P2 , if k is mixed it is decomposed into a set Pk of smaller cells. Let Gk be the cg associated with this decomposition. Gk is searched for a channel Pk that verifies following four conditions:

1.     If k is the first cell in P1,hence it contains qinit then the first cell in Pk also contains qinit.

2.     If k is the last cell in P1, hence it contains qgoal then the last cell in Pk also contains qgoal.

3.     If k is not the first cell in P1, the first cell of Pk is adjacent to the last cell of the current P2.

4.     If k is not the last cell in P1, the last cell of Pk is adjacent to the cell following k in P1.

 

Pk is called as subchannel.

 

If the planner succeeds to in generating Pk, P2 is modified by appending Pk to it. The case when the planner fails, corresponds to the situation where the free space in the M-channel P1 is disconnected by the C-obstacle region.

 

 

Orientation Slicing

 

This method consists of decomposing the range of the orientations of A into a finite number of intervals. In every interval, the area swept out by A as it rotates around its reference point OA is computed and approximated by a polygon. This polygon is then considered as a translating object.

 

Let qinit = (xinit,yinit,qinit) and qgoal = (xgoal,ygoal,qgoal). The overall algorithm is as follows:

 

1.     Decompose the range of orientations of A into a finite number of consecutive closed intervals [qk,qk¢]  k=1,2,..p, such that q1=0, qk+1=qk¢ (for all k Î [1,p-1]) and qp¢= 2p.

2.     For every k Î [1,p], compute the area swept out by A when it rotates around  OA from the orientation q=qk to the orientation q=qk¢. Approximate this area by a bounding polygon SAk.

3.     For every k Î [1,p], treat SAk as the robot that is only allowed to translate with O as the reference point. Compute CBk in SAk configuration space Ck=R2. Set Ck,free to Ck\CBk.

4.     For every k Î [1,p], decompose Ck,free into convex polygonal cells, using any method.( one is exact trapezoidal decomposition). Construct the cg Gk representing the adjacency relation between these cells.

5.     Merge the graph Gk into a graph G by linking any two nodes X1ÎGk1, and X2ÎGk2, with k2 = k1+1 mod p, whenever the two cells corresponding to X1 and X2 intersect at a subset of non-zero area in R2.

6.     Search G for a path joining the initial cell to the goal cell. If the search terminates successfully, then return the sequence of cells along the path that has been found. Otherwise return failure.