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
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,q′k]
Then
the method consists of the following two steps:
1. Decomposition
of [qk,q′k] :
The
range of orientations [qk,q′k] is cut into non-overlapping
intervals [gu,gu+1], u = 1,..r, r > 0
with g1=qk and gr+1=q′k. 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 qinit 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 P1 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 OA 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.