24
http://ijr.sagepub.com Research The International Journal of Robotics DOI: 10.1177/0278364908092463 2008; 27; 832 The International Journal of Robotics Research Peng Tang and Jing Xiao Automatic Generation of High-level Contact State Space between 3D Curved Objects http://ijr.sagepub.com/cgi/content/abstract/27/7/832 The online version of this article can be found at: Published by: http://www.sagepublications.com On behalf of: Multimedia Archives can be found at: The International Journal of Robotics Research Additional services and information for http://ijr.sagepub.com/cgi/alerts Email Alerts: http://ijr.sagepub.com/subscriptions Subscriptions: http://www.sagepub.com/journalsReprints.nav Reprints: http://www.sagepub.com/journalsPermissions.nav Permissions: http://ijr.sagepub.com/cgi/content/refs/27/7/832 SAGE Journals Online and HighWire Press platforms): (this article cites 11 articles hosted on the Citations © 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.com Downloaded from

The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

http://ijr.sagepub.com

Research The International Journal of Robotics

DOI: 10.1177/0278364908092463 2008; 27; 832 The International Journal of Robotics Research

Peng Tang and Jing Xiao Automatic Generation of High-level Contact State Space between 3D Curved Objects

http://ijr.sagepub.com/cgi/content/abstract/27/7/832 The online version of this article can be found at:

Published by:

http://www.sagepublications.com

On behalf of:

Multimedia Archives

can be found at:The International Journal of Robotics Research Additional services and information for

http://ijr.sagepub.com/cgi/alerts Email Alerts:

http://ijr.sagepub.com/subscriptions Subscriptions:

http://www.sagepub.com/journalsReprints.navReprints:

http://www.sagepub.com/journalsPermissions.navPermissions:

http://ijr.sagepub.com/cgi/content/refs/27/7/832SAGE Journals Online and HighWire Press platforms):

(this article cites 11 articles hosted on the Citations

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 2: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Peng TangJing XiaoUniversity of North CarolinaCharlotte, NC 28223, [email protected]

Automatic Generation ofHigh-level Contact StateSpace between3D Curved Objects

Abstract

Information of high-level, topological contact states is useful andsometimes even necessary for a wide range of applications, from ro-botic tasks involving compliant motion to virtual prototyping and sim-ulation. This paper addresses how to represent concisely and gener-ate automatically graphs of contact states between 3D curved objectsof a broad class, which may include smooth curved or planar sur-faces. The approach is sound and complete if the step size of dis-cretization is smaller than a finite threshold. By exploiting topologi-cal and geometrical constraints, it is also quite efficient. The imple-mented examples demonstrate the effectiveness of the approach.

KEY WORDS—Contact states, 3D curved objects, principalcontacts, automatic generation, compliant motion

1. Introduction

Many robotic tasks involve objects in contact and compli-ant motion. Compliant motion is preferred in high-precisionassembly operations to reduce uncertainty and is needed intasks that require scribing, painting, grinding, polishing, con-tour following, object aligning and plotting in manipulation.For such tasks, it is often necessary to know not just the con-tact configurations between two objects but also the high-level,discrete, topological contact state shared by two or more con-tact configurations� this is more descriptive of the topologicaland physical characteristics of contact. For example, to polisha desk, the control strategy to keep the robotic tool contactingthe desk top is usually different from that of keeping the toolcontacting a side of the desk, and so on. The tool on the desktop can be considered a different contact state from the tool

The International Journal of Robotics ResearchVol. 27, No. 7, July 2008, pp. 832–854DOI: 10.1177/0278364908092463c�SAGE Publications 2008 Los Angeles, London, New Delhi and SingaporeFigures 18–24 appear in color online: http://ijr.sagepub.com

on the side of the desk. Each contact state describes a set ofcontact configurations of the tool with respect to the desk.

In general, contact states between two objects can be con-sidered as partitioning the surface of configuration space ob-stacles (C-obstacles) (Lozano-Pérez 1983) of one object withrespect to the other. Contact states and adjacency informa-tion can be captured by a contact state graph, where eachnode denotes a contact state and each arc links two adjacentcontact states. Information of a contact state graph is usuallyneeded for automatic assembly planning or control (Sturgesand Laowattana 1995�McCarragher 1996� Pan and Schimmels2003� Lefebvre et al. 2005). Such information is also requiredfor general compliant motion planning and control.

Planning compliant motion means planning motion on thesurface of C-obstacles. However, computing C-obstacles ex-actly in high-dimensional space remains a formidable task todate (Canny 1988). Most of the relevant work is limited to 3DC-obstacles (i.e. C-obstacles of planar objects) (Avnaim et al.1988� Brost 1989� Rosell et al. 1997� Sacks and Bajaj 1998),and only a few approximations of C-obstacles of 3D polyhedra(Donald 1985� Joskowicz and Taylor 1996).

If a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph searchproblem to plan a sequence of contact state transitions in thecontact state graph at the high level, and (2) planning mo-tion compliant to a known contact state and the transition toa neighboring contact state at the low level, which is a lowerdimension and smaller scope motion-planning problem. In-deed, a method for planning motion compliant with a knowncontact state was introduced for contacting polyhedral objectswithout requiring the construction of the C-obstacle in a 6Dconfiguration space (Ji and Xiao 2001). The method takes ad-vantage of known geometric features of the physical objects inthe known contact state.

Such a two-level planning approach is also preferredto provide naturally the correspondences between contactconfigurations and higher level contact states that a compli-ant controller requires to execute a compliant motion plan

832

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 3: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 833

(Lefebvre 2003� Meeussen et al. 2005). To enable compli-ant control it is not sufficient to know only a path of con-tact configurations. The information of a sequence of high-level contact state transitions is necessary for designing propercompliant controllers (Meeussen et al. 2005). In other words,it is not possible to have a compliant control law applica-ble to all contact configurations. A practical way is to havea stratification of compliant control strategies based on differ-ent contact states and transitions, i.e. information of a contactstate graph is necessary.

In haptic rendering and dynamic simulation (e.g. Ruspiniand Khatib 1999� Luo and Xiao 2004), collision detection isinevitably subject to digital error. If object models are based onpolygonal mesh approximation, which is very common, thereare additional approximation errors. As a result, although mul-tiple collisions are detected at the same time during simula-tion, not all of these collisions may be able to happen at thesame time in reality. In other words, a false contact state maybe identified. A false contact state leads to false force and dy-namic effects, which should be prevented in high-fidelity sim-ulation. Clearly, with a pre-determined graph of (valid) contactstates, a simple search of the graph can rule out impossiblecontact states. Hence, information of a contact state graph isalso needed.

For contacting polyhedral objects, it is common to de-scribe or represent a contact state as a set of primitive con-tacts. Each primitive contact is defined in terms of a pair ofcontacting surface elements, which are faces, edges and ver-tices. One common representation (Lozano-Pérez 1983� Don-ald 1985) defines primitive contacts as point contacts in termsof vertex-edge contacts for 2D polygons, and vertex-face andedge-edge contacts for 3D polyhedra. Another representation(Xiao 1993) uses the notion of principal contacts as primitivecontacts, where a principal contact can be a face contact, anedge contact or a point contact. Figure 1a shows different typesof principal contacts (PCs) between two polyhedral objects.Figure 1b shows an example contact state described as a set ofPCs. For convex curved objects, contact states are describedsimilarly with each primitive contact defined in terms of a pairof contacting curved surface elements (Thompson II and Co-hen 1999).

However, if non-convex curved surfaces or curves arepresent, there can be one or more than one contact regionformed between the same pair of curved surface elements, re-sulting in different contact states with different contact con-straints. Figure 2 shows an example. To resolve the ambi-guity caused by such one-to-many mappings, one approachwas to divide curved surface elements into so-called curvaturemonotonic segments (Luo et al. 2004� Tang and Xiao 2006a) sothat between two curvature monotonic segments only one con-tact region can be formed (i.e. a one-to-one mapping). How-ever, this approach of artificially dividing natural surface ele-ments leads to a large number of contact states. A more con-cise approach is used (Tang and Xiao 2006b) to represent point

Fig. 1. Contact states between two polyhedral objects.

Fig. 2. Different numbers of contact regions can be formedbetween the same pair of contacting surfaces.

contacts between strictly curved objects (i.e. without line seg-ments in their surfaces).

If ruled curved surfaces (i.e. curved surfaces that includeline segments) are involved, there can be different types of con-tact regions between the same pair of surface elements. Fig-ure 3 shows an example where there can be either a point con-tact or a line contact which have different contact constraints(or degrees of freedom). This type of ambiguity was not ad-dressed before.

Under a suitable representation of contact states, automaticgeneration of a contact state graph is much desired. This is

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 4: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

834 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

Fig. 3. Different types of contact regions can be formed be-tween the same two contacting surfaces.

because building a contact state graph by hand is tedious fortasks of even simple geometry and is practically infeasible forcases involving (1) a large number of contact states and/or (2)contact states that are difficult to be visualized correctly (espe-cially when curved objects are involved).

An early approach (Hirukawa et al. 1994) enumerated allpossible contact states and connections between two convexpolyhedra. A general approach was later developed to auto-matically generate graphs of contact states between polyhedralobjects (Xiao and Ji 2001), where each contact state is repre-sented as a set of principal contacts. The basic idea is to gen-erate so-called goal-contact relaxation (GCR) graphs and thenmerge them, all done automatically. A GCR graph is grownfrom a seed contact state and includes its less-constrainedneighboring contact states, their less-constrained neighboringcontact states, and so on. However, a randomized strategy issometimes used to find a valid neighboring transition. As such,the algorithm is not a complete algorithm. More recently, amethod of automatically generating point-contact states be-tween strictly curved objects was introduced (Tang and Xiao2006b), but the issue of completeness has not been discussed.

In this paper, we study the problem not addressed by pre-vious work: representing contact states and automatically gen-erating contact state graphs between curved objects of a broadclass (with curved, ruled or planar surfaces). In particular, weseek sound and complete algorithms for automatic generationof contact states between such general objects. We first de-scribe the class of basic curved objects in Section 2. Next weintroduce a concise representation of contact states betweenthese objects that consist of point, line and planar types ofcontact regions in Section 3. Special neighboring relations be-tween contact states are considered. In Section 4, we presentthe details of our approach to automatically generate contactstate graphs and analyze the soundness and completeness ofthe approach. In Section 5, we describe some implementationresults. In Section 6, we provide a discussion of complexity.We conclude the paper in Section 7.

2. Basic Curved Objects

Definition 2.1 (basic curved object): A basic curved object isa solid object in R3 with its boundary consisting of smoothsurface patches or closed smooth surfaces of finite size (suchas spheres or ellipsoids) that satisfy the conditions:

1. each surface patch or closed surface can be describedparametrically, referred to as face�

2. each face is bounded by curve segments or a closedcurve of finite length that are planar, not self-intersected,and can be described parametrically (including line seg-ments), referred to as edges�

3 each face can be curved or flat and has no self-intersection�

4. two adjacent faces are connected by either a commonedge or a common point� and

5. the intersection point of three adjacent faces (i.e. the in-tersection point of two adjacent edges) or the contactpoint of two adjacent faces defines a vertex.

Many types of faces (surface patches) satisfy the above con-ditions, including those constructed by rotating or sweepinga planar parametric curved segment without self-penetration,quadric surface patches and non-degenerate parametric sur-face patches such as bicubic, Bezier and B-spline surfacepatches (Mortenson 1985). In fact, many man-made objectsfrom CAD/CAM design satisfy the above conditions on theirboundary surfaces. Figure 4 shows some different examples ofapplicable surface patches.

We do not consider objects with space curves (edges) in thispaper, which can make contact regions more complex.

Definition 2.2 (surface element): Faces, edges and vertices asdefined in Definition 2.1 are called surface elements of basiccurved objects. Moreover, a face that is not closed is boundedby edges and vertices, and an edge that is not closed is boundedby vertices. Such edges and vertices are referred to as bound-ing elements of a face and an edge, respectively.

Definition 2.3 (adjacent elements): Two elements of a basiccurved object are adjacent elements if one is the bounding el-ement of the other.

For simplicity, we use f , e and � to denote face, edge andvertex, respectively, in the rest of the paper.

3. Contact States between Basic Curved Objects

We first analyze and describe the contact primitives betweenbasic curved objects and then introduce a concise representa-tion of contact states.

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 5: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 835

Fig. 4. Examples of different surface patch elements (faces),constructed by (a) rotating a curve segment� (b) sweeping acurve segment along a line� and (c) sweeping a curve segmentalong a curve segment. (d) An example of elliptic paraboloid(not a surface patch or revolution of sweeping).

3.1. Contact Regions between Two Surface Elements

We consider the following types of contact region between twosurface elements:

� point contact: the contact region is an isolated point�

� line contact: the contact region is a continuous line seg-ment� and

� plane contact: the contact region is a continuous set ofpoints on a plane, which can be on a curve but not on aline.

A point contact can happen between many different surfaceelements, not necessarily involving a vertex, as shown in Fig-ure 5. However, between two planar faces or one planar faceand one straight line edge, no point contact can be formed.A line contact can happen between two ruled surfaces or astraight line edge and a ruled surface. Figure 6 shows two ex-amples of line contacts. A plane contact can happen betweentwo planar faces or between a planar face and a planar curvededge. Figure 7 shows two examples of plane contacts. Fig-ure 7a is an example of a plane contact between two planarfaces. Figure 7b is an example of a plane contact between aplanar face and a planar curved edge.

Fig. 5. Examples of different point contacts between two non-vertex surface elements.

Fig. 6. Examples of line contacts.

Fig. 7. Examples of plane contacts.

We do not consider the cases where two curved edges forma contact region that is also a curve or two curved faces forma contact region that is a non-flat surface region, because thesecases hardly occur in practice. As shown in Figure 8, in or-

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 6: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

836 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

Fig. 8. Contact cases that rarely occur in practice.

der for the contact region in case (a) to be a curve, the twocontacting edges have to have identical portions in size andcurvature that happen to be in contact. Similarly, the contactregion in case Figure 8b can be a curved surface region only ifthe two faces have identical portions that happen to be in con-tact. Usually a point contact will only occur in case (a), and aline contact or multiple (isolated) point contacts will occur incase (b).

3.2. Contact Primitives between Two Surface Elements

We can extend the notion of principal contacts introduced be-tween polyhedral objects (Xiao 1993) to describe a contact re-gion between two surface elements of curved objects, takinginto account contact types as follows.

Definition 3.1 (principal contact): A principal contact (PC)between two curved objects A and B describes a continuouscontact region between a pair of surface elements (i.e. faces,edges and vertices) �A and �B that are not bounding elementsof other pair(s) of contacting surface elements at a subset ofthe region. This is denoted

PC � �A

�� �B� where � � �P�L�PL��and P, L and PL indicate the type of the contact region as pointcontact, line contact and plane contact, respectively.

Moreover, a PC between two faces is a face tangential con-tact because the two faces are tangent to each other. A PC be-tween a face and an edge is an edge tangential contact but nota face tangential contact.

A PC between two edges is either an e-e-touch PC if thetangent lines of the two edges are collinear or an e-e-cross PC,otherwise. An e-e-touch PC can be either a point contact if

Fig. 9. PCs for both (a) degenerate and (b) non-degeneratecases.

one of the edges is curved or a line contact if both edges arestraight-line edges. An e-e-cross PC is a point contact. An e-e-cross PC, e-e-touch PC or a PC involving a vertex is neitherface tangential nor edge tangential because there is no face–face or face–edge pairs that are tangent to each other� these arereferred to as non-tangential contacts.

Note that PCs of types �-� , �-e and e-e-touch have bothdegenerate cases, defined as extremely unstable contacts thatrarely occur in practice. Note that this definition is differ-ent from what degeneracies usually mean in solid model-ing (Edelsbrunner and Mucke 1990� Stroud 1990) and non-degenerate cases, as illustrated in Figure 9. We consider thesePC types because of the non-degenerate cases.

We further define the contact plane and contact line for cer-tain types of PCs as follows.

Definition 3.2 (contact plane and contact line): The contactplane of a PC involving at least one face is the plane tangentto the face and passing the contact region. For an edge-edge-cross PC, it is the plane determined by the two tangent linesof the two edges at the contact point. The contact line of a

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 7: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 837

Fig. 10. A contact formation between two curved objects.

vertex-edge PC or an edge-edge-touch PC is the tangent lineof the edge or both edges at the contact point.

Note that no single contact plane or contact line can bedefined for a vertex-vertex PC.

3.3. Contact Formations between Curved Objects

As shown in Figures 2 and 3, there can be different numbersand types of PCs between two non-vertex surface elements oftwo contacting curved objects. Therefore, we characterize ageneral topological contact state between two curved objectsby specifying the number and types of PCs involved, as fol-lows.

Definition 3.3 (contact formation): A contact formation(CF)between two general curved objects is defined as the set ofprincipal contacts (PCs) formed, where the same PC may beformed more than once, denoted

CF � �PC1� n1�� �PC2� n2�� � � � � �PCm� nm��

where ni � N�N is the set of positive integers i � 1� � � � �m.Moreover, the cardinality of a CF is denoted as:

card�CF� � n1 � n2 � � � �� nm �

Figure 10 illustrates a contact formation between two curvedobjects.

3.4. Contact States and CF-Compliant Path

Given two objects A and B in a contact formation (CF), wedenote the geometrical representation of a CF as the set of

relative contact configurations of A with respect to B (as ex-pressed by the homogeneous transformation matrix B TA) thatsatisfy the contact conditions of all the PCs in the CF at thesame time.

In general, the set of contact configurations in the geometri-cal representation of a contact formation may consist of one ormore connected regions of contact configurations, called CF-connected regions on the configuration space obstacle (i.e. C-obstacle) surface. Moving from one configuration to anotherwithin a CF-connected region does not need to change the CF.We therefore define a contact state as follows

Definition 3.4 (contact state): A single CF-connected regionof contact configurations between two curved objects definesa contact state between the objects, represented by the CF anda representative contact configuration C in the region, denotedas a pair � C F�C .

Definition 3.5 (CF-compliant motion): Within a contact state,from any contact configuration to any other, there exists a pathas a continuous curve of contact configurations constrained bythe CF, called a CF-compliant motion.

3.5. Neighboring Contact States and Contact Formations

Clearly, a C-obstacle surface (in the configuration space) ispartitioned by contact states, and two adjacent contact statesare called neighboring contact states. Alternatively, neighbor-ing contact states can be defined in terms of neighboring tran-sition motions.

Definition 3.6 (neighboring contact states, neighboring transi-tion motion and neighboring CFs): Two different contact states� C Fi �Ci and � C Fj �C j , i � j are called neigh-boring contact states if there exists a C Fi -compliant motionsucceeded by a transition to a C Fj -compliant motion from Ci

to C j , and such a compliant motion from � C Fi �Ci to� C Fj �C j is called a neighboring transition motion. More-over, C Fi and C Fj are called neighboring contact formations.

A contact state space between two curved objects canbe represented as a contact state graph � which includesnodes and arcs, where each node denotes a valid contact state� C F�C , and each arc connects two neighboring contactstates.

If two single-PC CFs C Fi � ��PCi � 1�� and C Fj ���PC j � 1�� are neighboring contact formations, then PCi andPC j are called neighboring PCs. Neighboring PCs satisfy cer-tain topological conditions, described as follows.

Theorem 3.1: If PCi = �i A

� i��i B and PC j = � j A

� j�� j B areneighboring PCs, then one of the following is true.

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 8: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

838 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

1. If � i � � j , then either (i) �i A � � j A and �i B and � j B

are adjacent, or (ii) �i A and � j A are adjacent and �i B �� j B or (iii) �i A and � j A are adjacent and �i B and � j B

are adjacent.

2. If � i � � j , then either (i), (ii) or (iii) above is true or�i A � � j A and �i B � � j B .

Proof: Suppose PCi and PC j are neighbors but neither con-dition in the theorem is held. If �i A and � j A are neither equalnor adjacent, changing the contact from PCi and PC j so that�i A is changed to � j A requires a compliant motion that has togo through another element �k A, which results in another PC.This contradicts the fact that PCi and PC j are neighbors. �

We now describe the topological conditions satisfied by twoneighboring CFs.

Theorem 3.2: If two CFs C Fi and C Fj are neighboring CFs,and if card�C Fj � card�C Fi �, then every PC in C Fj eitherbelongs to C Fi or is a neighboring PC of a PC in C Fi .

Proof: We only need to prove that from a contact state in C Fi

to a contact state in C Fj , a PC can be broken, changed to aneighboring PC compliantly or kept in the neighboring transi-tion motion, but no new PC can be added. Suppose a new PCPC j is added during the transition from C Fi to C Fj . A PCin C Fi , PCk , has to be broken in order to have card�C Fj � card�C Fi �. As breaking a PC requires only infinitesimal mo-tion, but gaining a new PC requires a finite motion, breakingPCk has to occur before the new PC j is established. This im-plies that the transition has to go through at least another con-tact formation: either C Fi � PCk or C Fj � PC j before C Fj

is reached, contradicting the fact that C Fi and C Fj are neigh-bors. �

We can further distinguish two types of neighboring rela-tions, as follows.

Definition 3.7 (locally-defined neighbor): If C Fi and C Fj areneighboring CFs, and card�C Fj � card�C Fi �, we call C Fj

a locally-defined neighbor (LN) CF of C Fi . Accordingly, thecontact state � C Fj �C j is a locally-defined neighboringcontact state of the contact state � C Fi �Ci .

Figure 11 shows an example, where C F1 and C F2 are two(mutually) LN CFs.

Definition 3.8 (globally-defined neighbor): If C Fi and C Fj

are neighboring CFs, and card�C Fi � card�C Fj �, we callC Fi a globally-defined neighbor (GN) CF C Fj . Accordingly,� C Fi �Ci is a globally-defined neighboring contact stateof � C Fj �C j .

The reason we differentiate LNs and GNs is that given C Fi ,according to Theorem 3.2, the topological information of its

Fig. 11. An example of locally-defined neighbor (LN) CFs.

Fig. 12. Example of a locally-defined neighbor (LN) and aglobally-defined neighbor (GN) CF.

LN CFs can be derived directly from the topological infor-mation of C Fi � i.e. from the PCs in C Fi , one can obtain thepossible PCs of the LN CFs of C Fi . In the example shownin Figure 12, C F1 is a LN CF of C F2, which is derived fromC F2 by simply dropping the edge-face PC of C F2. However,one cannot derive C F2, which is a GN CF of C F1, directlyfrom C F1.

Such a property means that given a contact state� C Fs�Cs , the subsets of PCs in C Fs provide possible LNCFs of C Fs . In other words, possible LN CFs can be enumer-ated directly from C Fs , which can facilitate automatic genera-tion of the corresponding LN contact states. We define the LNgraph of � C Fs�Cs as an undirected graph consisting of�C Fs�Cs, its LN contact states, their subsequent LN con-tact states and so on. Clearly the LN graph is finite.

On the other hand, it is difficult to enumerate all possibleGN CFs of C Fs because there is no upperbound on the num-ber of combinations of PCs (especially since the same PC canoccur multiple times in a CF).

Fortunately, to obtain an entire contact state graph, it issufficient to simply automatically generate the largest LNgraphs and merge them, as explained in Section 4.

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 9: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 839

Algorithm 1 Generating LN Graph1: Initialize the LN graph L N G with a single node containing � C Fs�Cs 2: Initialize the FIFO queue new with a single node � C Fs�Cs 3: while new is not empty do4: Remove node � C Fi �Ci from new5: Hypothesize topologically all possible LN CFs of C Fi

6: for each hypothesized LN CF, C Fh , of C Fi do7: if L N G has no node with C Fh as the CF then8: if there exists a feasible neighboring transition motion from Ci in � C Fi �Ci to configuration Ch with C Fh then9: create a node for � C Fh�Ch , link it to the node of � C Fi �Ci in L N G, and add it to the end of new

10: end if11: else12: for each node � C Fh�Ch�k in L N G do13: if there is no link between it and� C Fi �Ci and there exists a feasible neighboring transition motion from Ci in

� C Fi �Ci to Ch�k in � C Fh�Ch�k , then14: build a link between the node � C Fh�Ch�k and the node � C Fi �Ci in L N G15: end if16: end for17: if there exists a feasible neighboring transition motion from Ci to a different configuration Ch�� (Ch�� � Ch�k , for all

k), then18: create a node � C Fh�Ch�� , link it to the node of � C Fi �Ci in L N G, and add it to the end of new19: end if20: end if21: end for22: end while23: Output L N G

4. Generation of Contact State Graphs betweenCurved Objects

Our approach is to generate special subgraphs of the contactstate graph � automatically and to merge these subgraphs au-tomatically. That may appear similar to the approach used inXiao and Ji (2001) for polyhedral objects, but there are majordifferences as listed below.

1. First, the special subgraphs here are LN graphs, whichare different from and less restrictive than the GCRgraphs considered in Xiao and Ji (2001). Given a seedcontact state� C Fs�Cs , its LN graph is usually muchlarger than its GCR graph. Fewer LN graphs are neededfor obtaining �, especially by using seed CFs of locallymaximum cardinality (i.e. number of PCs in a CF) whichare much fewer than the seeds for GCR graphs (whichare the locally most constrained CFs).

2. Second, curved objects are considered here, for whichcontact state representations are different and neighbor-ing transition motions are more complex.

3. Lastly, our approach for generating LN graphs automat-ically is assured to be sound and complete under a finiteresolution for discretization.

Starting from a seed contact state � C Fs�Cs , the LNgraph can be grown by repeatedly obtaining LN contact statesuntil all the LN contact states have been generated in a breadth-first search. We explain the details in the following subsec-tions.

4.1. Algorithm for Generating LN Graphs

Algorithm 1 for constructing an LN graph from a seed contactstate � C Fs�Cs is outlined below.

Note that in Algorithm 1, if two or more contact states aregenerated under the same contact formation C Fh , it means thatthe geometrical representation of C Fh has two or more C Fh-connected regions in the configuration space, and Ch�k is therepresentative contact configuration of the kth C Fh-connectedregion.

There are two key procedures in the algorithm.

1. From a known contact state�C Fi �Ci, hypothesize itsLN CFs based on the topological information of C Fi .

2. Determine if there exists a feasible neighboring transi-tion motion from Ci under C Fi to some configurationC j under a hypothesized LN CF C Fj . If so,�C Fj �C j is a valid LN contact state of�C Fi �Ci .

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 10: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

840 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

We explain both procedures in detail in the following sub-sections.

4.2. Hypothesizing Locally-defined Neighbor (LN) ContactFormations (CFs)

To obtain a hypothesized LN CF of a single-PC CF, C Fi ���PCi � 1��, is to change PCi � �A

�� �B to one of its neigh-boring PCs. This involves changing either the type of contact� or a surface element �A or �B to an adjacent element. Wecan avoid hypothesizing topologically impossible PCs basedon different kinds of topological properties of surface elementsas detailed in Appendix A.

For a CF with multiple PCs, i.e. card�C F� � 2, we use thefollowing action sets to hypothesize its possible LN CFs.

� Action set 1: keep some PCs and change some otherPCs to their neighboring PCs.

� Action set 2: keep some PCs and remove some PCs.

Note that no keep action can be applied simultaneously toall PCs in the CF, and no remove action can be applied simul-taneously to all PCs in the CF. Note also that the neighbor-ing PCs should be topologically possible, according to Appen-dix A.

Once LN CFs are hypothesized, we next check if they aregeometrically feasible by considering the relevant neighboringtransition motions.

4.3. Neighboring Transition Motions

Between two neighboring contact states of two curved objectsA and B, a neighboring transition motion can be one of thefollowing four types of compliant motions of object A withrespect to object B or certain combinations of these types:

� slidingA, where the contact points of A do not changebut the contact points of B changes (Figure 13a)�

� slidingB, where the contact points of B do not changebut the contact points of A changes (Figure 13a)�

� pure rotation about an axis through a contact point,which is usually either normal or tangent to the contactplane (if the contact plane exists) (Figure 13b)� or

� pure translation along the contact plane of a line con-tact or plane contact (Figure 13b).

Note that neither slidingA nor slidingB are pure rotationsor translations.

Neighboring transition motions can also be of the followingtypes of combined motions:

Fig. 13. Types of neighboring transition motions.

� a combined slidingA and slidingB, where the contactpoints of A and B both change (note that if the contactpoints of A and B change in equal displacements, themotion is in fact a rolling motion) (Figure 13a)�

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 11: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 841

� a combined sliding and rotation motion, where aslidingA or a slidingB motion or a combined slidingis combined with a pure rotation (Figure 13a)�

� a combined translation and rotation motion (Fig-ure 13b).

In order to implement a neighboring transition motion, weneed to set up a good moving task frame. The origin of thetask frame should be at a contact point. For a PC with a contactplane, the x � y plane is along the contact plane and the z axisis along the normal direction of the plane. Moreover, using theparametric representation of a face s � s�u� ��, either the x orthe y axis can be along one parametric derivative vector su ors� . For an e-e-cross PC, either the x or the y axis can be alongthe tangent line of one of the edges.

For a PC with a contact line the x axis is along the contactline. If the edge (or one of the edges) at the contact point isa curved edge, the z axis is on the plane formed by the con-tact line and that edge at the contact point, and is normal tothe edge. In all other cases, the axes of the task frame can beset based on a neighboring PC that the transition is aimed at,which should have either a contact plane or a contact line.

Each slidingA and slidingB can be generally viewed as anintegral of instantaneous pure translation ds combined withan instantaneous pure rotation d , and the results can be im-plemented by a summation of digitized small motion steps.Each small motion step is implemented as a small translation�s combined with a small rotation � . Specifically, by digi-tizing the u and � parameters of a face, we get a grid of pointson the face. Each small sliding motion along the face is im-plemented as a small translation from one grid point p to anadjacent grid point q on the face followed by a small rotationalong an axis through q on the tangent plane and orthogonal tothe translation vector from p to q. The angle � of the rota-tion is determined by the tangent plane T1 at p and the tangentplane T2 at q. A similar strategy can be used to implement asmall sliding step along an edge.

Each combined motion can be similarly implemented as anintegral (or summation) of small motion steps such that eachsmall step consists of one small single-type motion �1 followedby another small single-type motion �2, etc.

4.4. Feasibility Check of Neighboring Transition Motions

Given a valid contact state � C Fi �Ci and a hypothesizedLN CF C Fj between two curved objects A and B, to deter-mine if there exists a valid LN contact state � C Fj �C j of � C Fi �Ci is to check if there is a feasible neigh-boring transition motion from Ci to a configuration C j of� C Fj �C j . Any neighboring transition may involve re-move, keep or change one or more PCs of C Fi , based on Sec-tion 4.2. The change action is to change a PC to a neighboringPC.

The types of possible compliant motions to keep or main-

tain a principal contact PCi � �iA

���iB depends on the contact

type � and the types of the surface elements of �iA and �i

B , aspresented in Appendix B.

The types of possible compliant motions to change a prin-cipal contact PCi to a neighboring PC j between objects Aand B may consist of a keep motion of PCi (i.e. object A’smotion compliant to PCi ) followed by a transition motion toPC j . The keep motion is to bring A to a configuration wherethe change of PCi to PC j can happen. This configuration isdetermined based on the contact types of PCi and PC j as wellas which boundary element in PCi is changed from PCi toPC j . Once A is in such a configuration, a rotation is neededfor the transition motion between:

� a face- or edge-tangential contact and a non-tangentialcontact�

� a face-tangential contact and an edge-tangential contact�and

� two PCs sharing the same contacting elements but hav-ing different � types.

In general, if a neighboring transition from state� C Fi �Ci to a hypothesized LN state � C Fj �C j re-quires changing some PCs while keeping or removing someother PCs, our strategy is to realize a change action from aPC PCk to a desired neighboring PC PCk . If multiple PCsneed to be changed to their neighbors, we prefer to pick suchPCk and PCk that do not involve a face to have lower degreesof motion freedom. Once a pair of PCk and PCk are chosen,we construct a possible compliant motion of A to realize thechange action from PCk to PCk .

On the other hand, if a neighboring transition from state� C Fi �Ci to a hypothesized LN state � C Fj �C j onlyrequires keeping some PCs while removing other PCs, ourstrategy is to realize a keep action of one PC under a direc-tion to remove another PC. If multiple PCs need to be kept,we prefer to pick a PC that does not involve a face or is notof e-e-cross type to have lower degrees of motion freedom.With the chosen PC and the direction to remove another PC,we construct a possible compliant motion of A to keep it.

If a compliant motion can be constructed without causingadditional collisions and is able to keep, change or removeother PCs required by the transition, the motion is consid-ered feasible and the hypothesized contact state is considereda valid LN contact state.

Sometimes a compliant motion can be immediately recog-nized as unfeasible even without construction. This happenswhen a chosen motion to change a PC is not a type of mo-tion that can keep another PC also required by the neighboringtransition. If such a motion is the only possible compliant mo-tion, then the corresponding hypothesized LN CF is not valid.For example, the only type of motion that can keep a � � �

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 12: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

842 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

Fig. 14. An example of a hypothesized LN CF that is invalid.

PC is a pure rotation. As shown in Figure 14, a pure rotation isneeded to keep the �-� type of PC from C F1 to a hypothesizedC F2, but to change the e-e type of PC to the neighboring e-�type of PC requires a sliding motion. C F2 is therefore not avalid LN CF.

If a neighboring transition motion is constrained to be a 1-DOF motion, there are only a finite number of possible neigh-boring transition motions. Our algorithm simply checks thefeasibility of each possible neighboring transition motion oneby one until either (1) a feasible motion is found to concludethat the corresponding LN CF and the LN contact state exists�or (2) no motion is feasible to conclude that the hypothesizedLN CF is not valid and the LN contact state does not exist.

If a neighboring transition motion has two or more DOFs,there are an infinite number of possible neighboring transi-tion motions and discretization is necessary. For example, inthe case where neighboring transition is to remove a PC whilekeeping another PC that involves a face (i.e. a face-face, edge-face or vertex-face PC), there can be an infinite number of pos-sible directions for the motion, but the motion itself can beinfinitesimal and only needs a small step in practice. Our strat-egy is to discretize the directions and check the motion alongeach direction to see if a feasible small motion step exists ornot.

Another case is where a neighboring transition motion hasto have a finite length (more than a small step) and has morethan one degree of freedom (DOF). For example, to change

C Fi = �� f AP� fB� 1�� (i.e. a CF with a single face-face contact)

to C Fj = �� fAP�eB� 1��, where eB is an edge of face fB , there

can be an infinite number of possible C Fi -compliant motionsto move A along fB to reach (any point on) eB before a ro-tation can be done to make the transition. For such cases, wehave developed an obstacle-tracing algorithm to check if thereexists a feasible motion (or not) as detailed below.

4.5. Obstacle-tracing Algorithm for Finding NeighboringTransition Motions

If a neighboring transition motion has more than one degree offreedom and has to be finite (i.e. not infinitesimal so that more

Fig. 15. Conversion of a multiply-connected region to a simplyconnected region.

than a small step is required), it involves moving an object Acompliantly along a face of the other object B to reach an edgeor vertex of the face. In such a case, there are an infinite num-ber of possible neighboring transition motions. Without losinggenerality, consider moving A along the face fB of B compli-antly to reach an edge eB of fB for neighboring transition. Ourgoal is to either find a feasible motion if one exists or reportthat no feasible motion exists.

The basic idea of our algorithm, called obstacle-tracing, ap-plies to a simply-connected fB . If fB is a multiply-connectedregion, it can be pre-converted to a simply connected regionby introducing pseudo edges, before the obstacle-tracing algo-rithm is applied. Figure 15 depicts an example of conversionto a simply connected region.

The algorithm moves object A compliantly on fB towardsthe boundary edges of fB until either an edge of fB is reachedor an obstacle is encountered. Then it makes A follow theboundary of fB in one direction by either moving along bound-ary edges of fB that A can reach without collision or tracingthe extruding parts of obstacles that prevent A from reachingsome boundary edges of fB . In this way, A will either reach eB

(the desired edge of B) or travel in some loops. The algorithmsearches a feasible motion by discretizing starting orientationsof A and, for each starting orientation, moving A in digitizedsteps as described in Section 4.3. For each small step, it triesdifferent possible moves of A and does collision checking foreach move. We describe the algorithm in detail below.

First, a path as a sequence of curves on fB , with para-metric representation fB�u� ��, is constructed in the followingway: starts from the point �u0� �0� on fB that A’s task frameorigin oA contacts. It continues along the u axis (or the � axis)

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 13: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 843

Fig. 16. An example path for a point contact.

until A contacts a point on an edge e B of fB (i.e. by updatingonly the u (or �) value). If e B � eB , the path ends. If not, thepath makes a turn to continue along e B until another edge(i.e. a vertex of another edge) is encountered by A, and so on,until eB is reached. Figure 16 shows an example of a path of .

Our obstacle-tracing algorithm is outlined in Algorithm 2.It starts by making A follow path . When a collision is de-tected, the motion is deviated to trace the obstacle boundarywhile avoiding it until an edge of fB is reached or certain con-ditions are satisfied. If an edge is reached, the motion will con-tinue along the edge when a collision may again occur so thatthe motion may again deviate to trace the obstacle boundary.A feasible neighboring transition motion is found if eB can bereached eventually, and the algorithm returns ‘solution is true’.

There are two conditions indicating that eB cannot bereached by the current motion. One condition is that the firstsurface element � c of B which has collided is encounteredagain after A collides with some other elements of B, M times.Here the integer M 2 depends on the characteristics of � c. Itis set to make sure that after M times, some loops have been ac-complished. The other condition is to deal with the case whereA can only collide with � c and no other element of B. Thelarge integer N depending on the size of � c is set to ensure thatafter N collisions of A with � c, some loops have been accom-plished. If either condition is satisfied, the obstacle-tracing al-gorithm changes the starting orientation of A and again con-structs a motion as described above. If no feasible motion isfound for all possible starting orientations, the algorithm con-cludes that no feasible neighboring transition motion existsand returns ‘solution is false’.

The function FollowPath checks if a feasible motion can befound by having A’s task frame origin oA following the path step by step: the motion starts from the point p on and calls afunction TryPossibleStepMotions to see if there is a feasiblestep motion from p to the next point on . If such a step motionexists, the motion is made and the function FollowPath con-

Algorithm 2 Obstacle-tracing1: Initialize , p � �u0� �0�, CA � C0

2: repeat3: collision � f alse4: �p� � �� FollowPath�p� � collision�5: if collision then6: � c � � {Remember the first collided surface ele-

ment of B}7: m � 18: n � 19: repeat

10: �p� � �� ObstacleTrace�p� � c� � �11: collision � f alse12: if A reaches an edge of fB then13: �p� � �� FollowEdge�p� collision� � c� � �14: end if15: until eB is reached OR m � M OR n � N16: end if17: if eB is reached then18: solution � true and go to 2619: else20: FindNewStart�u0� �0�CA�21: end if22: until no new start configuration23: if no new start configuration then24: solution � f alse25: end if26: report solution

tinues to check for the next step motion and so on until either:(1) eB is reached, i.e. the end of is reached� or (2) there is acollision. If (1), it returns the end point of and sets the flagthat eB is reached to be true. If (2), it sets collision to be trueand returns the collided surface element � of B and the pointfrom which the next step causes the collision.

The function TryPossibleStepMotions checks possiblestep motions to return a feasible one if it exists. A step mo-tion is a slidingA motion with or without a rotation along anaxis through oA. In the case of neighboring transitions betweena C Fi of a single PC fA � fB and an LN CF C Fj of a sin-gle PC fA � eB (or fA � �B), there are three possible stepmotions: a small slidingA and two small combined motionsof slidingA and rotation about an axis through oA and nor-mal to fB . The two combined motions involve clockwise andcounter-clockwise rotations, respectively. Note that the rota-tion amount does not vary� it is a fixed small angle in one smallstep in either direction. If fB is flat, slidingA becomes a trans-lation.

In some other cases of neighboring transition, there can bean infinite number of possible step motions. For example, inthe case of a neighboring transition between a C Fi of a sin-gle �- f PC and an LN C Fj of a single �-e PC, the possible

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 14: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

844 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

Algorithm 3 Procedure of ObstacleTrace1: ObstacleTrace�p� � c� � �2: D1 � le f t (or right)3: D2 � right (or le f t , the opposite of D1)4: � 1 � � � � 2 � �5: repeat6: from p perform a trace step by turning D1 to find the next point p1

7: if TryPossibleStepMotions�p� p1� does not return a feasible step motion then8: from p turning D1 again to find the next point p2

9: p1 � p2

10: � 1 � � 211: � 2 � the new collided surface element of B12: else13: p � p1

14: from p perform an approach step by turning D2 to find the next point p1

15: f easible � true16: repeat17: if TryPossibleStepMotions�p� p1� returns a feasible step motion AND an edge of fB is not reached then18: p � p1

19: from p perform another approach step without changing direction to find the next point p1

20: if TryPossibleStepMotions�p� p1� returns a feasible step motion AND an edge of fB is not reached then21: p � p1

22: from p perform another approach step by turning D2 to find the next point p1

23: else24: f easible � f alse25: � 1 � � 226: � 2 � the collided surface element of B27: end if28: else29: f easible � f alse30: � 1 � � 231: � 2 � the collided surface element of B32: end if33: until NOT f easible OR an edge of fB is reached34: if � 2 � � 1 AND � 2 � � c then35: m � m � 1 {� c is encountered again}36: else if m � 1 AND � 2 � � c then37: n � n � 138: end if39: end if40: until an edge of fB is reached OR m � M OR n � N41: return p� � 2

step motions include: a small slidingA motion and an infinitenumber of small combined motions of slidingA and rotation asthere are an infinite number of possible rotation axes throughthe contacting vertex oA. In such a case, TryPossibleStepMo-tions discretize the space of rotation axes in order to discretizepossible step motions into a finite set to find a feasible motionamong them. If no feasible motion can be found, TryPossi-bleStepMotions reports that and returns the collided elementsof B.

The function FollowEdge checks if a feasible motion canbe found step by step to reach the desired eB by following an-other edge, where the direction of p is the direction of motion.The feasible motion will be along a sequence of edges until eB

is reached. Note that A could change its contact points withan edge by sliding or translating in directions orthogonal to pduring the edge following.

The function ObstacleTrace as shown in Algorithm 3 iscalled once a collision is detected. It finds a motion to trace

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 15: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 845

the obstacle by alternating trace steps to move sideway (in theouter loop) and approach steps to move towards the obstacle(in the inner loop). Note that two global variables m and n areincremented in this procedure. The algorithm terminates wheneither an edge of fB is reached or some loops are formed, asindicated by m � M or n � N (Algorithm 2).

Figure 17 uses an example to illustrate how ObstacleTraceworks. Figure 17a shows a contact state under a CF of a singlef-f PC. Figure 17b shows the top view of the face fB of objectB, in which object A is viewed as a disc. The shadow areaindicates the protrudent region of object B projected to fB ,which causes collision with object A. The path starts from�u0� �0� along � to reach eB , the desired edge. The resultingpath as a curve on fB from ObstacleTrace is shown in thicklines until another edge e B is reached.

The procedure FindNewStart is called when the previousstarting configuration of A cannot result in a feasible motionto reach eB , even although A’s orientation during the motionmay also be adjusted step by step by TryPossibleStepMo-tions. The procedure FindNewStart finds a different startingorientation of A compliant to C Fi and, if necessary, a differentstarting point �u0� �0� of . Given the previous starting point�u0� �0� of that A’s task frame origin oA contacts, A’s ori-entation can be changed by pure rotations about an axis (oraxes) through �u0� �0� or slidingB in different directions anddifferent amount as long as there is no collision.

As there can be an infinite number of starting orientations,FindNewStart systematically discretizes the possible direc-tions (axes) and amounts of rotation so that the number ofstarting orientations form a finite set. If an orientation changeby rotation or slidingB cannot be achieved at �u0� �0� due tocollision, a one-step slidingA motion (or a translation for a flatfB) in the opposite direction of , e.g. in the opposite directionof u, is conducted before the orientation change.

If the orientation change still cannot be achieved, a one-stepslidingA motion sideways (i.e. along � if starts by along u) isconducted before the orientation change. This process of one-step back slidingA or one-step sideways slidingA followed bythe orientation change is repeated until either (1) the orienta-tion change is done or (2) a new collision is formed so that C Fi

cannot be maintained. If (2) occurs, it means that the intendedorientation change cannot happen. FindNewStart then pro-ceeds to seek the next possible orientation change. Note thateach sliding (or translation) motion will move oA away from�u0� �0�. In such a case, we either update A’s task frame andmake the point contacting �u0� �0� be the new origin oA (in thecase of slidingB) or update �u0� �0� (in the case of slidingA).

Alternatively, in order to apply to multiply-connected facesdirectly, our algorithm can be modified in a similar way toBug algorithms (Lumelsky and Stepanov 1986� Kutulakos etal. 1993). In general, the path in our approach is similar tothe M-line in Bug algorithms. In the basic Bug algorithms, therobot initially moves towards the goal until it encounters anobstacle� it then follows obstacle boundary. It leaves the ob-

Fig. 17. Obstacle tracing example.

stacle boundary when some conditions are satisfied. In our ap-proach, the TryPossibleStepMotions could be used to find thehit point as in Bug algorithms. Our ObstacleTrace procedurecan be extended to include functionality of finding the leavepoint as in the Bug algorithms.

4.6. Soundness and Completeness

We now analyze our algorithm for generating LN graphs interms of soundness and completeness. Recall that the algo-rithm generates an LN graph in a breadth-first search fashion,starting from a known seed contact state, and the generation of

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 16: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

846 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

each locally-defined (LN) contact state consists of hypothesisand test steps.

The first procedure, i.e. hypothesizing LN CFs, does notmiss any topologically possible combinations of PCs in pro-ducing hypothesized LN CFs, and each hypothesized LN CFC Fj of a CF C Fi satisfies the requirements presented in The-orem 3.2 and Definition 3.7 for LN CFs. This procedure istherefore sound and complete.

We now examine the second procedure, i.e. checking ifthere exists a feasible neighboring transition motion fromconfiguration Ci of a valid contact state � C Fi �Ci to aconfiguration C j under a hypothesized LN CF C Fj . Here dis-cretization is involved in a number of ways. Recall that a pos-sible neighboring transition motion is constructed step by stepas described in Section 4.3 to achieve compliant motion alonga curved surface and, in each step, collision (other than thedesired contact) is also checked.

In the cases where there are an infinite number of possi-ble directions of one-step neighboring transition motions toremove some PCs, the directions are discretized and the stepmotion along each direction is checked until either a feasiblemotion is found or no motion is feasible. In the cases wherethe obstacle-tracing algorithm is used to find a feasible neigh-boring transition motion, if there is a solution under the dis-cretizations of FindNewStart and TryPossibleStepMotions,the algorithm will find it� otherwise, it will report no solution.

We can show that there exists a finite threshold for thestep size of discretization under which the second procedureis sound and complete. That is, it will find a feasible neigh-boring transition motion if one exists and it will discover andreport correctly if no feasible motion exists. Let A and B bethe two objects in contact.

Recall that a neighboring transition motion is a curve � onthe C-obstacle surface (of the configuration of A with respectto B) between two neighboring contact states � C Fi �Ci and � C Fj �C j . � consists of a C Fi -compliant continu-ous segment � i and a C Fj -compliant continuous segment � j

(Definitions 3.5 and 3.6). A feasible � is one such that both � i

and � j are free of collisions other than the contacts requiredby C Fi and C Fj respectively, i.e. both � i and � j are feasible.

Theorem 4.1: If there exists a feasible neighboring transitionmotion � between � C Fi �Ci and � C Fj �C j , and if aC Fi -compliant motion has more than 1 DOF, then there existsat least a homotopy class of infinite number of C Fi -compliantmotions that � i of � belongs to, all leading to the feasible � j of� . These homotopic C Fi -compliant curves form a continuoushyper-region Si of a finite size in the patch of � C Fi �Ci onthe C-obstacle (hyper)surface based on the Continuum Theory.

Proof: Suppose the theorem does not hold, then there is eitheronly one feasible C Fi -compliant motion � i , or at least anotherfeasible C Fi -compliant motion � i that is not homotopic to � i

but also meets � j at its starting point. This means that the re-

gion of� C Fi �Ci on the C-obstacle surface is a hypercurve(or a set of connected hypercurves), which has only 1 DOF(or independent variable). That contradicts the given conditionthat a C Fi -compliant motion has more than 1 DOF. �

Based on the above theorem, as long as the discretized stepsize for each dimension is smaller than the size of Si alongthat dimension, our procedure always finds a feasible � i if oneexists. If a C Fi -compliant motion has only 1 DOF, there isonly a finite set of possible feasible candidates. By checkingeach candidate one by one, a feasible � i can always be foundif one exists. Thus, our procedure can find a feasible � i if oneexists and correctly report no feasible � i if it cannot find one.We can prove a similar theorem for C Fj -compliant motion.

To determine the size of Si along each dimension, we findthe smallest non-zero range for each dimension by mating twoobjects A and B in the most limiting way, which usually in-volves contacting the most narrow concave region of one ofthe objects. We then try to move A along that dimension tofind out the range of motion, which determines the smallestnon-zero size of Si along that dimension. This is practicallydoable with an interactive system, such as the system movinga virtual A via a haptic device to contact a virtual B (Chou andXiao 2005).

In summary, our algorithm for generating LN graphs is bothsound and complete under a finite step size. This can be foundrather easily based on the given geometry of the two objectsA and B, taking into account the tolerances between their ele-ments when the two objects are in contact.

5. Implementation

We have implemented the general algorithm as described inSection 4 for automatic generation of an LN graph from aseed contact state between two basic curved objects A and B.The algorithm is implemented in Microsoft Visual C++ 6.0.We currently use the free OPCODE collision detection library(Terdiman Terdiman) for detecting collisions other than the de-sired contacts in feasibility checking of neighboring transitionmotions. Note that all we need to know here is whether a colli-sion happens beyond the desired contacts and is not how a col-lision happens. Thus, a mesh-based detection package servesthe purpose well. Other polygonal mesh-based collision detec-tion packages could be used too. On the other hand, it shouldbe emphasized that our approach generates exact contacts di-rectly from contacting smooth surface features (representedparametrically) without polygonal mesh approximation.

Figures 18–20 show three examples where our algorithmhas been applied. In Figure 18, objects are strictly curved ob-jects without any planar region. In Figures 19 and 20, objectsinclude some curved surfaces and planar surfaces. For all threeexamples, the step size for angular discretization is ��24. Thestep size for non-angular discretization is usually 1�25 unit in

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 17: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 847

Fig. 18. Example 1.

the parametric domain and larger for contacts occurring on theouter surface of B.

In Figure 18, object A has a surface consisting of two el-liptic paraboloid faces: fA0 and fA1 which meet at edge eA0.Object B includes three different faces: the upper part fB0 is anelliptic paraboloid concave face, the middle one fB1 is a part ofa sphere and the lower part fB3 is an elliptic paraboloid face. Italso includes two planar circular edges eB0 and eB1. The para-metric equations of the objects are in Appendix C.

In Figure 19, object A is a quarter of a solid ellipsoid. Itssurface consists of three different smooth surface patches: anelliptic face fA0 and two planar faces fA1 and fA2. Its surfacealso includes two curved edges eA0 and eA2, one straight lineedge eA1 and two vertices vA1 and vA2. Object B is a curved ob-ject with three faces: the upper part fB0 is an elliptic paraboloidconcave face, the middle part fB1 is a cylinder and the lowerpart fB2 is an elliptic paraboloid face. It also has two circularedges eB0 and eB1. The corresponding parametric equationsare in Appendix C.

In Figure 20, object A is the first quadrant of a solid spherewhich includes one face fA0, three planar faces fA1, fA2 andfA3, four vertices �A0, �A1, �A2 and �A3, three curved edgeseA3, eA4 and eA5 and three straight line edges eA0, eA1 and eA2.Object B is a solid sphere with the first quadrant cut off. It

Fig. 19. Example 2.

includes one curved face fB0, three planar faces fB1, fB2 andfB3, four vertices �B0, �B1, �B2 and �B3, three curved edgeseB3, eB4 and eB5 and three straight line edges eB0, eB1 andeB2. The corresponding parametric equations can be found inAppendix C.

In order to have a clear observation, the objects are dis-played with transparency and edges are drawn in solid lines.The seed contact states for the three examples are shown inFigures 18b, 19b and 20b respectively, with the contact for-mations labeled. In Figure 18b, the seed contact state shows acase where two point contacts are between two different pairsof surface elements. In Figure 18b, the seed contact state showsa case where two point contacts are between the same pairof surface elements. In Figure 19b, the seed contact state hasthree plane contacts among three pairs of planar faces.

For Example 1 in Figure 18, our algorithm has generated aLN graph of 18 valid nodes automatically from the seed con-tact state C Ss , which is the complete contact state graph forthat example. Figure 21 displays some valid contact states gen-erated. Figure 22 displays the entire contact state graph with 18states. For Example 2 in Figure 23, our algorithm has gener-ated a LN graph of 43 valid nodes including the seed from the

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 18: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

848 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

Fig. 20. Example 3.

seed contact state C Ss . This is the complete contact state graphfor Example 2. Figure 23 displays some valid contact statesgenerated for this example. For Example 3 in Figure 20, ouralgorithm has generated its LN graph consisting of 156 validnodes (including the seed) automatically from C Ss . Figure 24displays some valid contact states generated.

From these examples we can see that because a seed con-tact state is chosen to maximize the number of PCs, if there isone such contact state globally a complete contact state graphcan be generated from the seed. This is a very nice propertyof an LN graph. If a complete contact state graph requires themerging of two or more LN graphs, the minimum number ofnecessary seed contact states (or LN graphs) is the numberof local maxima states, i.e. states that have the most numberof PCs compared to all neighboring states. A local maximumstate usually involves concave elements in contact.

The program was executed on a Pentium 4, 2.8 GHz ma-chine with 1024 MB RAM. The running time for Example 1(in Figures 18 and 21) is 27.364 s. The running time for Exam-ple 2 (in Figures 19 and 23) is 21.484 s. The running time forExample 3 (in Figures 20 and 24) is 42.007 s.

Fig. 21. Some contact states generated in Example 1.

6. Discussion of Complexity

The complexity of our algorithm for generating a LN graphmainly depends on the total number of hypothesized nodes inthe LN graph the number of collision checks in constructing

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 19: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 849

Fig. 22. The contact state graph for Example 1.

neighboring transition motions, and the time for each collisiondetection query.

Let NA and NB be the total number of surface elementsof two contacting curved objects A and B, respectively. Fora pair of elements �A and �B , there are up to three differentcontact types (i.e. point, line and plane contacts). Thus, an up-per bound on the total number of different single-PC CFs is3NA NB . In a multi-PC CF, there could be the same PC formultiple times, depending on the geometric characteristics ofthe contacting elements of the PC related to convexity and con-cavity. Therefore, the greatest upper bound on the total numberof hypothesized contact states with no more than three PCs is:

9NA NB ��� 3NA NB

2

���

�� 3NA NB

3

��

which is of O�N 3A N 3

B�. In practice, the actual number ofhypothesized contact states is much smaller, with topologi-cally impossible cases eliminated according to Appendix A.For the three examples presented in the previous section,the actual numbers of hypothesized contact states are 57,212 and 3163 respectively. These numbers are 5.3%, 2.9%and 0.0093% of the greatest upper bounds respectively. Notealso that, as shown in the previous section, the actual num-ber of valid contact states generated for these examples are

18, 43 and 156 respectively, which represent 31%, 20% and5% of hypothesized states, respectively. The more combina-tions of PCs, the more drastic is the reduction of numbers inpercentage.

Note also that for m 3, an m-PC CF is likely to con-tain redundancy in contact constraints because an object canusually be immobilized by three contact points. Therefore, anLN CF of a m-PC CF (m 3) is usually a two-PC CF or asingle-PC CF.

7. Conclusions

We have presented a general and concise representation ofcontact states between two basic curved objects and provideda systematic approach for automatic generation of such con-tact state space as contact state graphs. The approach is soundand complete if the step size of discretization is smaller thana finite threshold. By exploiting topological and geometricalconstraints, it is also quite efficient.

Automatic generation of contact state graphs betweencurved objects is not only highly desirable (because it is te-dious to generate such states manually), but also necessarysince many contact states cannot be accurately visualized eas-ily. Unlike contact states between polyhedral objects, it is often

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 20: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

850 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

Fig. 23. Some contact states generated in Example 2.

much less obvious to human eyes whether a contact state is ac-tually possible or not between two curved objects. On the otherhand, there are more curved objects than polyhedral objects inthe real world.

Fig. 24. Some contact states generated in Example 3.

As a future step, our work can be extended to address con-tact states between an even broader class of curved objects,including those with space curves (edges).

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 21: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 851

Acknowledgements

This work is supported by the US National Science Foundationunder grant No. IIS-#0328782.

Appendix A: Ruling Out TopologicallyImpossible Principal Contacts

Given a pair of surface elements only certain types of principalcontacts (PCs) are possible and, in some cases, no PC is possi-ble – all depending on the topological properties of the surfaceelements.

Based on different properties, we can differentiate surfaceelements into different types. First, we say that a curved face isconvex if all its outward normals point away from each other,concave if all its outward normals point toward each other oris convex-concave if it contains both convex and concave seg-ments. We say that two faces of an edge form a valley if theedge’s neighboring points on the faces have normals pointingtoward each other� otherwise, they form a hump.

We further define the different types of vertices and edges:

� convex edge: an edge that is a convex curve or a linesegment and whose faces form a hump�

� convex vertex: a vertex such that every pair of adjacentfaces form a hump, or it is a singular point on a convex(part of a) face�

� concave edge: an edge that is a concave curve or a linesegment and whose faces form a valley�

� concave vertex: a vertex such that every pair of adjacentfaces form a valley, or it is a singular point on a concave(part of a) face�

� convex-edge in valley: an edge that is a convex curve andwhose faces form a valley�

� concave-edge on hump: an edge that is a concave curveand its faces form a hump� and

� convex-concave vertex: a vertex with both valleys andhumps formed between its adjacent faces.

Figure 25 shows some examples of different kinds of faces,vertices and edges.

We now can use simple rules to eliminate topologically im-possible PCs:

� no PC with a vertex can be a line or plane contact�

� no PC with two planar faces can be a point contact�

� no PC with a straight-line edge and a planar face can bea point or plane contact�

Fig. 25. Different types of vertices and edges.

� no PC with two edges can be a plane contact�

� no PC with a curved edge can be a line contact�

� no PC with a non-ruled face can be a line contact�

� no PC can be formed between two concave surface ele-ments�

� no PC can be formed between a convex-in-valley edgeor concave edge and a face�

� no PC can be formed between a concave vertex and aface or an edge�

� no PC can be formed between a concave-on-hump edgeand a concave face/edge� and

� no PC can be formed between a concave face and a pla-nar face or a straight-line edge.

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 22: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

852 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

Appendix B: Possible Compliant Motions toMaintain a Principal Contact

The types of possible compliant motions to keep or maintain a

principal contact PCi � �iA

���iB depends on the contact type

� and the types of the boundary elements of �iA and �i

B , asfollows.

� To keep a v-v point PC, the only possible motion is apure rotation.

� To keep a v-e/v-f point PC, if �iB is a curved edge or non-

ruled surface, the possible motions are pure rotation,slidingA motion, or combined slidingA and rotation.If �i

B is a straight-line edge or a ruled surface, additionalpossible motions are pure translation and combinedrotation and translation.

� To keep a e-v/f-v point PC, the possible motions are sim-ilar to the case of a v-e/v-f PC but the edge/face in thiscase is �i

A, and slidingA above becomes slidingB.

� To keep an e-f point PC, if the edge e is curved andthe face f is a non-ruled surface, the possible motionsare pure rotation (about the tangent line of the edgeor about the normal line at the contact point), slidingA,slidingB along the edge (i.e. one-dimensional), com-bined slidingA and slidingB, and combined slidingand rotation motions� if the edge e is a straight line edgeor the face f is a ruled surface, then additional possiblemotions are pure translation and combined transla-tion and rotation.

� To keep a f-e point PC, the possible motions are similarto the above for case e-f, except that slidingA is alongthe edge.

� To keep a f-f point PC where no face is a ruled sur-face, the possible motions are pure rotation about thecontact normal, slidingA, slidingB, combined slidingAand slidingB, and combined sliding and rotation mo-tions.

� To keep a f-f point PC where at least one face is a ruledsurface but no face is planar, the possible motions arepure rotation about the contact normal, pure transla-tion, slidingA, slidingB, combined slidingA and slid-ingB, combined sliding and rotation, and combinedtranslation and rotation motions.

� To keep a f-f point PC where one face is a planar, thepossible motions are pure rotation about the contactnormal, pure translation, slidingA if �i

A is the planarface, else slidingB, combined translation and rotationand combined sliding and rotation.

� To keep an e-e-touch point PC where both edges arecurved, the possible motions pure rotation about thetangent line, slidingA along the edge of B, slidingBalong the edge of A, combined slidingA and slidingB,and combined sliding and rotation.

� To keep an e-e-touch point PC where one edge is curvedand the other is a straight line edge, the possible mo-tions are pure rotation about the straight line edge,pure translation along the straight line edge, combinedtranslation and rotation, slidingA if the edge of B iscurved, else slidingB and combined sliding and rota-tion.

� To keep an e-e-touch point PC where both edges arestraight line edges, the possible motions are pure ro-tation about the straight line(s), pure translation alongthe straight line(s) and combined translation and rota-tion.

� To keep an e-e-cross point PC where both edges arecurved, in addition to the motions possible for an e-e-touch point PC where both edges are curved, pure rota-tion about the contact normal is also possible.

� To keep an e-e-cross point PC where one edge is curvedand the other is a straight line edge, in addition to themotions possible for an e-e-touch point PC where oneedge is curved and the other is a straight line edge, purerotation about the contact normal and a combined trans-lation, rotation and sliding motion are possible.

� To keep an e-e-cross point PC where both edges arestraight line edges, the possible motions are pure ro-tation about the straight line(s) or about the contact nor-mal, pure translation and combined translation androtation.

� To keep an e-f/f-e line PC where the edge e is straightline and the face f is planar, the possible motions arepure rotation (about the edge or about a contact nor-mal), pure translation and combined translation androtation.

� To keep an e-f/f-e line PC where the edge e is straightline and the face f is a ruled surface, the possible mo-tions are pure rotation about the edge, pure transla-tion along the edge, combined translation and rota-tion, slidingA if �i

A is the edge e else slidingB and com-bined sliding and rotation motions.

� To keep an f-f plane contact, the possible motions arepure rotation, pure translation and combined trans-lation and rotation motions.

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 23: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

Tang and Xiao / Automatic Generation of High-level Contact State Space between 3D Curved Objects 853

Appendix C: Parametric Equations of ExampleObjects

Object A (Example 1, Figure 18)

fA0 : x � 1�5� cos u� y � 1�5� sin u� z � 2� 2�2�

fA1 : x � 1�5� cos u� y � 1�5� sin u� z � 2�2 � 2

where u � [0� 2� ]� � � [0� 1]�

Object B (Example 1, Figure 18)

fB0 : x � 3�1734� cos u� y � 3�1734� sin u�

z � 4�2 � 1�56495

where u � [0� 2� ]� � � [0� 1]�

fB1 : x � 4 cos u sin �� y � 4 sin u sin �� z � 4 cos v

where u � [0� 2� ]� � ��

7

24��

1

2�

��

fB2 : x � 4� cos u� y � 4� sin u� z � 4�2 � 4

where u � [0� 2� ]� � � [0� 1]�

Object A (Example 2, Figure 19)

f A0 : x � 2 cos u sin �� y � 2 sin u sin �� z � 2�5 cos �

where u ��0��

2

�� � � [0� �]�

fA1 : x � � sin u� y � 0� z � 1�25� cos u

where u � [0� �]� � � [0� 2]�

f A2 : x � 0� y � � cos u� z � 1�25� sin u

where u ����

2��

2

�� � � [0� 2]�

Object B (Example 2, Figure 19)

fB0 : x � 3� cos u� y � 3� sin u� z � 3�2 � 2

where u � [0� 2� ]� � � [0� 1]�

fB1 : x � 3 cos u� y � 3 sin u� z � �where u � [0� 2� ]� � � [0� 5]�

fB2 : x � 3� cos u� y � 3� sin u� z � �3�2

where u � [0� 2� ]� � � [0� 1]�

Object A (Example 3, Figure 20)

f A0 : x � 2 cos u sin �� y � 2 sin u sin �� z � 2 cos �

where u ��0��

2

�� � �

�0��

2

�and

fA1 : x � � cos u� y � 0� z � � sin u�

fA2 : x � 0� y � � cos u� z � � sin u�

fA3 : x � � cos u� y � � sin u� z � 0

where u ��0��

2

�� � � [0� 2]�

Object B (Example 3, Figure 20)

Upper fB0 : x � 3 cos u sin �� y � 3 sin u sin ��

z � 3 cos �

where u ��

0�3�

2

�� � �

�0��

2

��

Lower fB0 : x � 3 cos u sin �� y � 3 sin u sin ��

z � �3 cos �

where u � [0� 2�]� � ��0��

2

��

fB1 : x � � cos u� y � 0� z � � sin u�

fB2 : x � 0� y � �� cos u� z � � sin u�

fB3 : x � � cos u� y � �� sin u� z � 0

where u ��0��

2

�� � � [0� 3]�

References

Avnaim, F., Boissonnat, J. D., and Faverjon, B. (1988). A prac-tical exact motion planning algorithm for polygonal objectsamidst polygonal obstacles. In Proceedings of IEEE Inter-national Conference on Robotics & Automation, pp. 1656–1661.

Brost, R. (1989). Computing metric and topological propertiesof configuration-space obstacles. In Proceedings of IEEEInternational Conference on Robotics & Automation, pp.170–176.

Canny, J. (1988). The Complexity of Robot Motion Planning.MIT Press, Cambridge, MA.

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from

Page 24: The International Journal of Robotics ResearchIf a contact state graph is known, however, planning com-pliant motion can be greatly simplified as (1) a graph search problem to plan

854 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / July 2008

Chou, W. and Xiao, J. (2005). An interactive approach to de-termining complex contact states. In Proceedings of 2005IEEE Symposium on Assembly & Task Planning, pp. 106–111.

Donald, B. (1985). On motion planning with six de-grees of freedoms: Solving the intersection problems inconfiguration space. In Proceedings of IEEE InternationalConference on Robotics & Automation, pp. 536–541.

Edelsbrunner, H. and Mucke, E. (1990). Simulation of simplic-ity: A technique to cope with degenerate cases in geomet-ric algorithms. ACM Transactions on Graphics, 9(1): 66–104.

Hirukawa, H., Paperguy, Y., and Mastui, T. (1994). A motionplanning algorithm for convex polyhedra in contact undertranslation and rotation. In Proceedings of IEEE Interna-tional Conference on Robotics & Automation, pp. 3020–3027.

Ji, X. and Xiao, J. (2001). Planning motion compliant to com-plex contact states. International Journal of Robotics Re-search, 20(6): 446–465.

Joskowicz, L. and Taylor, R. H. (1996). Interference-free in-sertion of a solid body into a cavity: An algorithm and amedical application. International Journal of Robotics Re-search, 15(3): 211–229.

Kutulakos, K. N., Lumelsky, V. J., and Dyer, C. R. (1993).Vision-guided exploration: A step toward general motionplanning in three dimensions. In Proceedings of IEEE In-ternational Conference on Robotics and Automation, pp.289–296.

Lefebvre, T. (2003). Contact Modeling, Parameter Iden-tification and Task Planning for Autonomous Compli-ant Motion using Elementary Contacts. Ph. D. thesis,Katholieke Universiteit Leuven, Leuven, Belgium.

Lefebvre, T., Xiao, J., Bruyninckx, H., and Gersem, G. D.(2005). Active compliant motion: A survey. Advanced Ro-botics, 19(5): 479–500.

Lozano-Pérez, T. (1983). Spatial planning: A configurationspace approach. IEEE Transactions on Computing, 32(2):108–120.

Lumelsky, V. J. and Stepanov, A. A. (1986). Dynamic pathplanning for a mobile automaton with limited informationon the environment. IEEE Transactions on Automatic Con-trol, 31(11): 1058–1063.

Luo, Q., Staffetti, E., and Xiao, J. (2004). Representation ofcontact states between free-form objects. pp. 3589–3595.

Luo, Q. and Xiao, J. (2004). Physically accurate haptic ren-dering with dynamic effects. IEEE Computer Graphics andApplications (Special Issue: Touch-Enabled Interfaces), 24:60–69.

McCarragher, B. J. (1996). Task primitives for the discreteevent modeling and control of 6-DOF assembly tasks. IEEETransactions on Robotics and Automation, 12(2): 280–289.

Meeussen, W., De Schutter, J., Bruyninckx, H., Xiao, J., andStaffetti, E. (2005). Integration of planning and executionin force controlled compliant motion. In Proceedings ofIEEE/RSJ International Conference on Intelligent Robotsand Systems, pp. 1217–1222.

Mortenson, M. E. (1985). Geometric Modeling. John Wiley &Sons Inc, New York, NY.

Pan, F. and Schimmels, J. M. (2003). Efficient contact stategraph generation for assembly applications. In Proceedingsof IEEE International Conference on Robotics & Automa-tion, pp. 2591–2598.

Rosell, J., Basañez, L., and Suárez, R. (1997). Determiningcompliant motions for planar assembly tasks in the pres-ence of friction. In Proceedings of IEEE/RSJ InternationalConference on Intelligent Robots & Systems, pp. 946–951.

Ruspini, D. and Khatib, O. (1999). Collision/contact modelsfor dynamic simulation and haptic interaction. In Proceed-ings of 9th International Symposium on Robotics Research,pp. 185–194.

Sacks, E. and Bajaj, C. (1998). Sliced configuration spaces forcurved planar bodies. International Journal of Robotics Re-search, 17(6): 639–651.

Stroud, I. (1990). Modeling with degenerate objects.Computer-Aided Design, 22(6): 344–351.

Sturges, R. H. and Laowattana, S. (1995). Fine motion plan-ning through constraint network analysis. In Proceedings ofInternational Conference on Assembly and Task Planning,pp. 160–170.

Tang, P. and Xiao, J. (2006a). Automatic generation of contactstate graphs based on curvature monotonic segmentation. InProceedings of IEEE International Conference on Robotics& Automation, pp. 2633–2640.

Tang, P. and Xiao, J. (2006b). Generation of point-contact statespace between strictly curved objects. In Proceedings ofRobotics: Science and Systems Conference, pp. 31–38.

Terdiman, P. http://www.codercorner.com/opcode.htm.Thompson II, T. V. and Cohen, E. (1999). Direct haptic render-

ing of complex trimmed nurbs models. ASME Haptic Inter-faces for Virtual Environment and Teleoperator Systems.

Xiao, J. (1993). Automatic determination of topological con-tacts in the presence of sensing uncertainties. In Proceed-ings of IEEE International Conference on Robotics & Au-tomation, pp. 65–70.

Xiao, J. and Ji, X. (2001). On automatic generation of high-level contact state space. International Journal of RoboticsResearch, 20(7): 584–606.

© 2008 SAGE Publications. All rights reserved. Not for commercial use or unauthorized distribution. by Jing Xiao on July 24, 2008 http://ijr.sagepub.comDownloaded from