 : The General Case
: The General Case
Unfortunately, the cases in which 
 is polygonal or polyhedral
are quite limited.  Most problems yield extremely complicated C-space
obstacles.  One good point is that
 is polygonal or polyhedral
are quite limited.  Most problems yield extremely complicated C-space
obstacles.  One good point is that 
 can be expressed using
semi-algebraic models, for any robots and obstacles defined using
semi-algebraic models, even after applying any of the transformations
from Sections 3.2 to 3.4.  It might not be
true, however, for other kinds of transformations, such as warping a
flexible material [32,577].
 can be expressed using
semi-algebraic models, for any robots and obstacles defined using
semi-algebraic models, even after applying any of the transformations
from Sections 3.2 to 3.4.  It might not be
true, however, for other kinds of transformations, such as warping a
flexible material [32,577].
Consider the case of a convex polygonal robot and a convex polygonal
obstacle in a 2D world.  Assume that any transformation in  may
be applied to
 may
be applied to  ; thus,
; thus, 
 and
 and 
 .  The task is to define a set of algebraic
primitives that can be combined to define
.  The task is to define a set of algebraic
primitives that can be combined to define
 .  Once again, it is important to distinguish between Type
EV and Type VE contacts.
Consider how to construct the algebraic primitives for the Type EV contacts; Type VE can be handled in a
similar manner.
.  Once again, it is important to distinguish between Type
EV and Type VE contacts.
Consider how to construct the algebraic primitives for the Type EV contacts; Type VE can be handled in a
similar manner.
For the translation-only case, we were able to determine all of the
Type EV contacts by sorting the edge normals.
With rotation, the ordering of edge normals depends on  .  This
implies that the applicability of a Type EV
contact depends on
.  This
implies that the applicability of a Type EV
contact depends on  , the robot orientation.  Recall the
constraint that the inward normal of
, the robot orientation.  Recall the
constraint that the inward normal of  must point between the
outward normals of the edges of
 must point between the
outward normals of the edges of  that contain the vertex of
contact, as shown in Figure 4.21.  This constraint can be
expressed in terms of inner products using the vectors
 that contain the vertex of
contact, as shown in Figure 4.21.  This constraint can be
expressed in terms of inner products using the vectors  and
 and
 .  The statement regarding the directions of the normals can
equivalently be formulated as the statement that the angle between
.  The statement regarding the directions of the normals can
equivalently be formulated as the statement that the angle between  and
and  , and between
, and between  and
 and  , must each be less than
, must each be less than  .
Using inner products, this implies that
.
Using inner products, this implies that 
 and
 and 
 .  As in the translation case, the condition
.  As in the translation case, the condition 
 is required for contact.  Observe that
 is required for contact.  Observe that  now depends on
 now depends on
 .  For any
.  For any 
 , if
, if 
 ,
,
 , and
, and 
 , then
, then 
 .  Let
.  Let  denote the set of configurations that satisfy
these conditions.  These conditions imply that a point is in
 denote the set of configurations that satisfy
these conditions.  These conditions imply that a point is in 
 .
Furthermore, any other Type EV and Type
VE contacts could imply that more points are in
.
Furthermore, any other Type EV and Type
VE contacts could imply that more points are in
 .  Ordinarily,
.  Ordinarily, 
 , which implies that the
complement,
, which implies that the
complement, 
 , is a superset of
, is a superset of 
 (thus,
 (thus, 
 ).  Let
).  Let 
 .  Using the
primitives
.  Using the
primitives
|  | (4.39) | 
|  | (4.40) | 
|  | (4.41) | 
 .
.
It is known that 
 , but
, but  may contain points
in
 may contain points
in 
 .  The situation is similar to what was explained in
Section 3.1.1 for building a model of a convex polygon
from half-planes.  In the current setting, it is only known that any
configuration outside of
.  The situation is similar to what was explained in
Section 3.1.1 for building a model of a convex polygon
from half-planes.  In the current setting, it is only known that any
configuration outside of  must be in
 must be in 
 .  If
.  If  is
intersected with all other corresponding sets for each possible Type
EV and Type VE contact,
then the result is
 is
intersected with all other corresponding sets for each possible Type
EV and Type VE contact,
then the result is 
 .  Each contact has the opportunity to
remove a portion of
.  Each contact has the opportunity to
remove a portion of 
 from consideration.  Eventually, enough
pieces of
 from consideration.  Eventually, enough
pieces of 
 are removed so that the only configurations
remaining must lie in
 are removed so that the only configurations
remaining must lie in 
 .  For any Type EV contact,
.  For any Type EV contact, 
 .  A similar statement can be
made for Type VE contacts.  A logical
predicate, similar to that defined in Section 3.1.1, can
be constructed to determine whether
.  A similar statement can be
made for Type VE contacts.  A logical
predicate, similar to that defined in Section 3.1.1, can
be constructed to determine whether 
 in time that is
linear in the number of
 in time that is
linear in the number of 
 primitives.
 primitives.
One important issue remains.  The expression  is not a
polynomial because of the
 is not a
polynomial because of the 
 and
 and 
 terms in the
rotation matrix of
 terms in the
rotation matrix of  .  If polynomials could be substituted for
these expressions, then everything would be fixed because the
expression of the normal vector (not a unit normal) and the inner
product are both linear functions, thereby transforming polynomials
into polynomials.  Such a substitution can be made using stereographic
projection (see [588]); however, a simpler approach is to use
complex numbers to represent rotation.  Recall that when
.  If polynomials could be substituted for
these expressions, then everything would be fixed because the
expression of the normal vector (not a unit normal) and the inner
product are both linear functions, thereby transforming polynomials
into polynomials.  Such a substitution can be made using stereographic
projection (see [588]); however, a simpler approach is to use
complex numbers to represent rotation.  Recall that when  is
used to represent rotation, each rotation matrix in
 is
used to represent rotation, each rotation matrix in  is
represented as (4.18), and the
 is
represented as (4.18), and the 
 homogeneous transformation matrix becomes
homogeneous transformation matrix becomes
|  | (4.42) | 
![$ [x \; y \; 1]$](img1452.gif) results in the
point coordinates
 results in the
point coordinates 
 .  Thus, any
transformed point on
.  Thus, any
transformed point on  is a linear function of
 is a linear function of  ,
,  ,
,  , and
, and
 .
.
This was a simple trick to make a nice, linear function, but what was
the cost?  The dependency is now on  and
 and  instead of
 instead of  .
This appears to increase the dimension of
.
This appears to increase the dimension of  from 3 to 4, and
 from 3 to 4, and 
 .  However, an algebraic primitive
must be added that constrains
.  However, an algebraic primitive
must be added that constrains  and
 and  to lie on the unit circle.
 to lie on the unit circle.
By using complex numbers, primitives in 
 are obtained for each
Type EV and Type VE
contact.  By defining
 are obtained for each
Type EV and Type VE
contact.  By defining 
 , the following algebraic
primitives are obtained for a Type EV
contact:
, the following algebraic
primitives are obtained for a Type EV
contact:
|  | (4.43) | 
|  | (4.44) | 
|  | (4.45) | 
 .  To preserve the correct
.  To preserve the correct
 topology of
 topology of  , the set
, the set
|  | (4.46) | 
 .  The set
.  The set  remains fixed over all Type
EV and Type VE contacts;
therefore, it only needs to be considered once.
 remains fixed over all Type
EV and Type VE contacts;
therefore, it only needs to be considered once.
 )    
 Consider adding rotation to the model described in Example
4.15.  In this case, all possible contacts between pairs of
edges must be considered.  For this example, there are
)    
 Consider adding rotation to the model described in Example
4.15.  In this case, all possible contacts between pairs of
edges must be considered.  For this example, there are  Type
EV contacts and
 Type
EV contacts and  Type VE  contacts.  Each contact produces
 Type VE  contacts.  Each contact produces  algebraic
primitives.  With the inclusion of
 algebraic
primitives.  With the inclusion of  ,
this simple example produces
,
this simple example produces  primitives!  Rather than construct
all of these, we derive the primitives for a single contact.  Consider
the Type VE  contact between
 primitives!  Rather than construct
all of these, we derive the primitives for a single contact.  Consider
the Type VE  contact between  and
 and
 -
- .  The outward edge normal
.  The outward edge normal  remains fixed at
 remains fixed at ![$ n =
[1,0]$](img1464.gif) .  The vectors
.  The vectors  and
 and  are derived from the edges
adjacent to
 are derived from the edges
adjacent to  , which are
, which are  -
- and
 and  -
- .  Note that
each of
.  Note that
each of  ,
,  , and
, and  depend on the configuration.  Using
the 2D homogeneous transformation (3.35),
 depend on the configuration.  Using
the 2D homogeneous transformation (3.35),  at configuration
 at configuration
 is
 is 
 .  Using
.  Using
 to represent rotation, the expression of
 to represent rotation, the expression of  becomes
 becomes 
 .  The expressions of
.  The expressions of  and
 and  are
 are 
 and
 and 
 , respectively.  It follows
that
, respectively.  It follows
that 
![$ v_1 = a_2 - a_3 = [a - 2b, 2a + b]$](img1471.gif) and
 and 
![$ v_2 = a_1 - a_3 = [2a -
b, a + 2b]$](img1472.gif) .  Note that
.  Note that  and
 and  depend only on the orientation
of
 depend only on the orientation
of  , as expected.  Assume that
, as expected.  Assume that  is drawn from
 is drawn from  to
 to  .
This yields
.
This yields 
![$ v = a_3 - b_4 = [-a + b + x_t- 1, -a - b + y_t+ 1]$](img1473.gif) .
The inner products
.
The inner products 
 ,
, 
 , and
, and  can
easily be computed to form
 can
easily be computed to form  ,
,  , and
, and  as algebraic
primitives.
 as algebraic
primitives.
One interesting observation can be made here.  The only nonlinear
primitive is 
 .  Therefore,
.  Therefore, 
 can be considered as
a linear polytope (like a polyhedron, but one dimension higher) in
 can be considered as
a linear polytope (like a polyhedron, but one dimension higher) in
 that is intersected with a cylinder.
 that is intersected with a cylinder. 
