The Configuration Space Method For Kinematic Design of Mechanisms
The Configuration Space Method For Kinematic Design of Mechanisms
The Configuration Space Method For Kinematic Design of Mechanisms
All rights reserved. No part of this book may be reproduced in any form by any elec-
tronic or mechanical means (including photocopying, recording, or information
storage and retrieval) without permission in writing from the publisher.
This book was set in Stone Serif and Stone Sans on 3B2 by Asco Typesetters, Hong
Kong. Printed and bound in the United States of America.
10 9 8 7 6 5 4 3 2 1
I dedicate this book to my wife, Jennifer, the light of my life.
Elisha
Preface xi
Acknowledgments xiii
1 Introduction 1
1.1 Mechanisms and Kinematic Function 3
1.2 Kinematic Design 5
1.3 Content and Organization of the Book 9
1.4 Notes 10
2 Mechanisms 11
2.1 Geometry of a Part 11
2.1.1 Planar Parts 11
2.1.2 Spatial Parts 14
2.2 Configurations and Motions of Parts 16
2.2.1 Planar Parts 16
2.2.2 Spatial Parts 20
2.3 Kinematic Pairs 21
2.3.1 Representation of Configuration Space 21
2.3.2 Lower and Higher Pairs 24
2.4 Mechanisms 25
2.5 Classification of Mechanisms 29
2.6 Notes 32
3 Contact of Features 33
3.1 Simple Planar Feature Contact 33
3.1.1 Tangency Equations 34
3.1.2 Boundary Equations 35
3.1.3 Subsumed Contacts 36
3.2 Fixed-Axis Planar Pairs 37
3.2.1 Tangency Curves 37
3.2.2 Contact Curves 43
3.3 General Planar Pairs 45
viii Contents
5 Analysis 81
5.1 Kinematic Analysis by Examination of Partition 81
5.1.1 Disk Indexing Pair 82
5.1.2 Lever Indexing Pair 83
5.1.3 Intermittent Gear Mechanism 86
5.2 Kinematic Simulation 87
5.2.1 Simulation Algorithm 88
5.2.2 Computation of Velocity for Fixed-Axis Mechanisms 90
5.2.3 Computation of Velocity for General Planar Mechanisms 93
5.3 Dynamical Simulation 95
5.4 Notes 98
6 Tolerancing 99
6.1 Specifications of Parametric Tolerance 99
6.2 Tolerance Analysis 100
6.3 Algorithms for Kinematic Pairs 103
6.4 Algorithms for Mechanisms 107
6.5 Notes 108
7 Synthesis 109
7.1 Kinematic Design Cycle 109
7.2 Parameter Synthesis 111
7.2.1 Design Change 112
7.2.2 Structure Change 113
7.2.3 Multiple Draggers 115
7.3 Parameter Optimization 117
7.4 Notes 120
Contents ix
9 Conclusion 133
Research Directions 134
Glossary 183
References 187
Index 193
Preface
We wish to thank the many people who have contributed to this book.
Min-Ho Kyung at Ajou University, Sowon, South Korea, developed the pa-
rameter synthesis and optimization algorithms. Ku-Jin Kim at Ajou Univer-
sity developed the partition algorithm for a spatial fixed-axis configuration
space. Vijay Srinivasan from the IBM T.J. Watson Research Center, York
town Heights, participated in our early research on contact zones and
Min-Ho Kyung participated in our research on nonlinear contact zones.
Ralf Schultheiss and Uwe Hinze at Ford Motors, Cologne, Germany, intro-
duced us to automotive design, provided the manual gearshift case study,
and supported our research with a Ford grant. Jim Allen, Steve Barnes, and
many others at Sandia National Laboratories, Albuquerque, New Mexico,
introduced us to the design of MEMS mechanisms and provided the case
study of the torsional ratcheting actuator. The National Science Foundation
in Washington, D.C. and the Israel Science Foundation in Jerusalem sup-
ported this work. Ruby Shamir from Hebrew University of Jerusalem pro-
vided valuable comments on the first part of this book.
I, Elisha, wish to thank my parents for raising me to love books and in-
dependent thinking. I enjoyed and learned from discussions with many
people, especially Hal Abelson, Jim Allen, Bruce Donald, Mike Erdman, Pat
Hanrahan, Chris Hoffman, Matt Mason, Victor Milenkovic, Tomas Lozano-
Perez, Ralf Schultheiss, Herb Simon, Gerry Sussman, and Ken Yip. Leo Jos-
kowicz introduced me to mechanism design and to configuration spaces.
He hosted me for many years in Paris, New York, and Jerusalem, and has
always been a loyal friend. My wife, Jennifer, and daughters, Sarah, Talia,
and Anat, encouraged me along the way and offered marketing advice. Sad
to say, we will not be able to use ‘‘Passion in the Desert’’ as the title, nor
can a romantic oasis scene appear on the cover. I realize that equations
and diagrams are sorry substitutes. Last but not necessarily least, my cat,
xiv Acknowledgments
Fluffer, has kept me company (often asleep on the couch) for most of the
long hours that I spent writing and revising this book.
I, Leo, wish to thank my parents; my daughters, Yael and Dana, and my
many beloved friends around the world for their support and patience
in good and bad times. I thank Elisha Sacks for being a perseverant and
outstanding partner in this long journey. I also want to thank Sanjaya
Addanki, Sesh Murthy, Scott Penberthy, Jarek Rossignac, and former col-
leagues at the IBM T.J. Watson Research Center, Yorktown Heights, NY,
for their support and fruitful discussions on mechanical design and re-
search. The Institute of Computer Science, now the School of Engineering
and Computer Science at the Hebrew University of Jerusalem, Israel, pro-
vided an optimal environment for writing this book.
The Configuration Space Method for Kinematic Design of
Mechanisms
1 Introduction
Mechanisms are assemblies of moving parts that perform useful tasks. They
are pervasive in modern life and include familiar mechanical systems, such
as door locks, transmissions, and gearboxes, and specialized ones, such as
industrial robots and microscopic mechanisms fabricated on silicon chips
(MEMS). The designing of mechanisms is an important engineering task
that motivates research in design methods and in computer-aided design
(CAD) tools.
A key aspect of this task is kinematics. This is the branch of mechanics
that studies the motion of parts independently of the forces acting on
them. It assumes that parts are rigid bodies with fixed shapes. A mecha-
nism performs a task by transforming input motions into output motions
through the contact of parts. The transformation of motions is called
the kinematic function of the mechanism. The design goal is to ensure
that the intended and actual motions match. Studying the kinematics is
an early and crucial step in designing a mechanism. It helps answer many
questions about the workings of mechanisms and is a prerequisite for
further mechanical studies involving dynamics, stress, and deformation.
The main kinematic design tasks are analysis, synthesis, and tolerancing.
Analysis derives the kinematic function of a mechanism from a specifica-
tion of its parts’ shapes and motion constraints. For example, a rotating
gear wheel is specified by its profile (how many teeth and what shape) and
the configuration (position and orientation) of its rotation axis. A pair of
gears is analyzed to determine its gear ratio. Synthesis is the inverse task
of devising a mechanism that performs a specified function. The starting
point can be a prior design or a novel design concept. Analysis and synthe-
sis disregard the imprecision of manufacturing, which causes actual parts to
vary from their intended shapes and configurations. The tolerancing design
task is to determine the kinematic effect of variation in manufacturing
2 1 Introduction
Figure 1.1
Kinematic design of a mechanism using configuration spaces.
Figure 1.2
Indexer mechanism.
the indexer’s teeth, a cylindrical hole that fits over the cam, and a rectangu-
lar slot that fits over the pin. Its motion is constrained by the driver and the
pin. The frame holds the parts together. The indexer mechanism has six
lower pairs (indexer, pawl, driver and pin mounted on the frame, lever-
pin, and driver-lever), and two higher pairs (indexer-pawl, indexer-lever).
The rotations of the parts are as indicated by the arrows. (The following
conventions for arrows are used throughout the book. The intended part
rotation and translation directions are indicated with thick-headed arrows.
The rotation angle is always measured in the standard counterclockwise di-
rection even when the arrow points clockwise. The translation is always
measured along the standard right-handed coordinate axis even when the
arrow points left. A double thick-headed arrow indicates back-and-forth
motion.)
The kinematic function of the indexer mechanism is to advance the in-
dexer wheel by one tooth (15 ) for every turn of the driver. As the driver
turns clockwise, the lever tip traces a closed trajectory whose form is deter-
mined by the relative position of the driver and pin rotation axes, the driv-
er’s offset, and the length of the lever. This causes the indexer to rotate
counterclockwise by 15 . The pawl prevents clockwise rotation of the in-
dexer. Figure 1.3 shows four snapshots of one cycle: (a) the start configura-
tion, (b) the lever tooth engaging the wheel tooth, (c) the lever driving the
wheel, and (d) the lever tooth disengaging the wheel tooth.
In designing a mechanism, the kinematic function is usually derived first
because it sets the stage for the study of other physical phenomena. In our
example, dynamical analysis determines the driver and indexer torques
based on their mass and shape. Stress analysis determines the indexer tip
deformation based on its load and material properties. In both analyses,
the kinematic function constrains the motions and contacts of the parts.
1.2 Kinematic Design 5
Figure 1.3
Snapshots of the kinematic function of an indexer mechanism.
We illustrate the design cycle using the indexer mechanism. Figure 1.5
shows a parametric model for the conceptual design described here. The
parameters include the relative positions of the fixed axes, the offset of the
driver, and the radii of the indexer teeth. The parts are modeled in the xy
plane because they have a constant cross-section along the z axis. Likewise,
their motions are modeled in the xy plane. The indexer, pawl, driver, and
pin are mounted on cylindrical shafts, so each is modeled with a pin joint.
6 1 Introduction
Figure 1.4
Kinematic design cycle. Boldface indicates tasks covered in this book.
Figure 1.5
Indexer mechanism: functional parameters (in millimeters).
1.2 Kinematic Design 7
Figure 1.6
Kinematic function of the indexer mechanism.
Figure 1.7
Lever pin failures (detail): (a) tip too wide, (b) tip too long, (c) tip too short.
The kinematic function rarely has a closed form, especially for mecha-
nisms with changes in part contact. Numerical kinematic simulation is often
used instead. Kinematic simulation takes a driving motion of a part as in-
put and computes motions for the other parts according to the principle
that rigid parts cannot overlap. The snapshots in figure 1.3 were generated
from a simulation of the indexer mechanism. Rotation of the driver is the
driving motion. The lever is assigned a motion that preserves its contacts
with the driver and the pin. When the lever tip engages the indexer, the
indexer is assigned an angular velocity that prevents tip and tooth overlap.
The drawback of simulation is that it only provides information for one
input motion. Unexpected behaviors can be missed. In our example, the
simulation assumes that the only driving motion is the driver’s rotation.
An unexpected force can make the pawl rotate clockwise, disengage from
the indexer, and so fail to perform its function. Unexpected behaviors usu-
ally involve changes in the contact of parts.
Once the nominal function of the mechanism has been achieved, the
next step is to assign tolerances. The goal is to ensure that the kinematic
function is preserved for small variations in the shape and configuration
of parts. Figure 1.7 shows three examples in which failures occur that are
due to small variations of the lever tip. The nominal tip width is 1 mm
and its nominal length is 7.5 mm. Too wide a tip (1.8 mm) causes the tip
to hit the tooth top (figure 1.7a). Too long a tip (11 mm) causes blocking
(b). Too short a tip (5 mm) fails to engage the indexer tooth (c). Toler-
ance analysis derives the kinematic variation for given tolerances. Synthesis
adjusts the parameter values and tolerances to prevent these failures.
Kinematic design can be difficult and time-consuming. The designer has
to optimize the design to comply with multiple, conflicting requirements.
Many parameter values and tolerances must be adjusted. The adjustments
require extensive analysis of many design instances. The analysis involves
1.3 Content and Organization of the Book 9
This book describes our configuration space method for mechanism design,
which we have developed over the past 20 years. The presentation is self-
contained and tutorial, with references to related work by ourselves and
others. It is a research monograph rather than a textbook, so the reader
should be prepared to work out some technical details.
The book is organized as follows. In chapters 2–4 we describe our config-
uration space representation of kinematics. In chapter 2, we review basic
geometry concepts, describe the configuration space representation, and
discuss kinematic pairs and classification of mechanisms. The shape of a
part in defined in terms of geometric features that form its boundary. In
chapter 3, we study contacts between two features. We formulate contact
equations for basic features, provide closed-form solutions for some cases,
and provide general numerical solutions. In chapter 4, we study the config-
uration spaces of kinematic pairs and describe efficient algorithms for com-
puting them.
In chapters 5–7 we present algorithms for kinematic analysis, toleranc-
ing, and synthesis based on configuration spaces. In chapter 5 we present
algorithms for kinematic analysis of a mechanism based on examination
of configuration space and kinematic simulation. In chapter 6 we describe
tolerance analysis based on a parametric worst-case tolerance model. In
chapter 7 we present two methods for kinematic optimization of planar
mechanisms.
In chapter 8 we illustrate the configuration space method for designing
mechanisms using four case studies taken from industry. The case studies
are an optical filter mechanism, a manual transmission gearshift, a MEMS
torsional ratcheting actuator, and an automotive asynchronous spatial re-
verse gear pair. In chapter 9 we conclude with a summary and research
directions.
10 1 Introduction
1.4 Notes
Figure 2.1
A lever (a) and its cross-section (b).
Figure 2.2
A part with two extruded cross-sections (a) and its cross-sections (b).
Figure 2.3
Planar part A coordinate system.
part are the closed curves, curve segments, and segment endpoints of its
boundary.
Closed curves and curve segments are specified with respect to a part’s
coordinate system. The coordinate system of a part A consists of a point
o A , called the origin, and of orthogonal unit vectors x A and y A , called
axes. The coordinates of point p in the coordinate system ðo A ; x A ; y A Þ are
denoted by ð pxA ; pyA Þ (figure 2.3).
Curves can be represented explicitly, implicitly, or parametrically. An ex-
plicit representation is y A ¼ f ðx A Þ. An implicit representation is f ðx A ; y A Þ ¼
0. A parametric representation is x A ðtÞ ¼ f ðtÞ and y A ðtÞ ¼ gðtÞ where t is the
curve’s parameter. For example, 2x A þ 3y A þ 5 ¼ 0 is the implicit represen-
tation of a line, and ðx A Þ 2 þ 4ðy A Þ 2 ¼ 1 is the implicit representation of an
ellipse. We use the implicit representation of curves because it is general
and convenient for deriving contact relations.
A boundary is represented by a sequence of adjacent segments. The two
endpoints of a segment are labeled tail and head, so that the part’s interior
is on the left when the segment is traversed from tail to head. Two seg-
ments are adjacent when they share an endpoint. The segment sequence
is chosen so that the head of each segment is the tail of the next segment.
This ordering implies that outer boundaries are traversed counterclockwise,
whereas inner boundaries are traversed clockwise. The outer boundary of
the lever in figure 2.4 consists of the 12 segments a1 a2 ; a2 a3 ; . . . ; a12 a1 with
ai the segment’s endpoints. The rectangular slot boundary consists of the 4
segments c1 , c2 , c3 , c4 , c1 .
In some design tasks we employ a more general, parametric representa-
tion of a part. Each boundary segment is specified by a function f ðx; y; pÞ
¼ 0 with p ¼ ð p1 ; . . . ; pn Þ a parameter vector. The value of the nominal
parameter vector defines the part’s shape. The shape can be changed by
14 2 Mechanisms
Figure 2.4
Boundary representation of a lever part. The dots represent segment endpoints and
arrows indicate segment orientation.
Figure 2.5
Parametric representation of a lever.
Figure 2.6
Faces: (a) planar, (b) cylindrical, (c) spherical.
Figure 2.7
Spatial boundary representation: (a) a Geneva pair with part of the follower’s inner
spherical patch boundary highlighted, (b) flattened projection of part of the inner
spherical patch follower’s boundary profile. Dots represent vertices.
The spatial Geneva pair illustrates these concepts (figure 2.7). The cam
consists of a plate with a cylindrical pin and a half cylinder mounted on
it. The follower is a hollow hemisphere with four evenly spaced slots and
circular cutouts. The boundary representation consists of spherical and cy-
lindrical faces bounded by line and arc segments. The follower’s inner
boundary consists of a spherical patch with four slots and four cutouts.
The boundary of each slot consists of two parallel circle segments on the
sides and a semicircle at the bottom. The slot’s boundary and the circle seg-
ment’s cutout are connected by a circle segment. The pattern repeats four
times to form a closed boundary. Figure 2.7b shows a flattened projection
of part of this boundary. The vertices ai correspond to boundary segment
16 2 Mechanisms
Figure 2.8
Planar part coordinate systems: (a) world and part coordinate system, (b) a configura-
tion space coordinate system.
2.2 Configurations and Motions of Parts 17
cos yA sin yA
RA ¼
sin yA cos yA
that maps the part’s axes to the world axes. Part coordinates, p A ¼
ð pxA ; pyA Þ, are mapped to world coordinates, p ¼ ð px ; py Þ, by the Euclidean
transformation
p ¼ tA þ RA p A :
Figure 2.9
A part in configurations c1 , c2 , c3 , c4 in the plane.
18 2 Mechanisms
Figure 2.10
Part configurations c1 , c2 , c3 , c4 in configuration space.
Figure 2.11
Representative motion snapshots of the planar motion of a part.
Figure 2.12
Planar motion time plots: (a) xA ðtÞ, (b) yA ðtÞ, (c) yA ðtÞ.
20 2 Mechanisms
Figure 2.13
Planar motion of a part in configuration space.
with yA the roll angle around xA , fA the pitch angle around yA , and cA the
yaw angle around zA . The transpose of this product is RA .
The configuration space of a spatial part is six-dimensional, with position
variables xA , yA , zA and orientation variables yA , fA , cA . The position vari-
2.3 Kinematic Pairs 21
Figure 2.14
Spatial coordinates system and configuration of a part: (a) world and parts coordinate
system, (b) configuration of a part.
able domain is the real line and the orientation variable domain is ½180 ;
þ180 . As in the plane, spatial motions specify configurations of a part as
a continuous function of time. We only study spatial parts that rotate or
translate around fixed axes.
Figure 2.15
Coordinate systems and configuration variables for a part.
is a contact configuration.
We consider the cases of fixed-axis pairs and general pairs. In a fixed-
axis pair, four of the six configuration variables of the pair are constant.
For example, in figure 2.15, suppose part A rotates around its origin oA
and part B translates along its xB axis. The pair configuration, ðxA ; yA ; yA ;
xB ; yB ; yB Þ is ð3; 2; yA ; xB ; 1:75; 45 Þ, so it can be simplified to ðyA ; xB Þ, which
defines a two-dimensional configuration space. There are three types of
two-dimensional configuration spaces for planar fixed-axis pairs: rotation-
rotation with configuration space coordinates yA and yB ; rotation-
translation with configuration space coordinates yA and xB , xA , and yB ; and
translation-translation with configuration space coordinates xA and xB .
In a general planar pair, each part has three degrees of freedom. Instead
of describing pair configurations in the world coordinate system, we de-
scribe the configuration of moving part A relative to fixed part B (figure
2.16). Part B is fixed at the world coordinate system’s origin with its axes
aligned with the world axes, so its configuration is ð0; 0; 0 Þ. Part A con-
figuration variables xA , yA , yA become the coordinates of A relative to B.
The pair configuration ðxA ; yA ; yA ; xB ; yB ; yB Þ is replaced by ðxA ; yA ; yA Þ, which
defines a three-dimensional configuration space.
For the spatial case, let A and B be two spatial parts with configuration
variables xA , yA , zA , yA , yA , fA , cA and xB , yB , zB , yB , yB , fB , cB . The configu-
ration variables define a 12-dimensional configuration space. In a fixed-axis
pair, each part has one degree of freedom and we choose coordinate sys-
tems in which four of the six configuration variables are constant. In a gen-
eral pair, we can employ relative coordinates.
2.3 Kinematic Pairs 23
Figure 2.16
Relative coordinates for general planar pair.
Figure 2.17
Contact types.
Figure 2.18
The six kinematic lower pairs.
the parts’ shapes and motion axes, and p specifies the nominal parameter
values.
cylindrical, helical, and spherical, also called cylinder, screw, and sphere
joints. Revolute and prismatic pairs have one degree of freedom: rotation
or translation along a fixed axis. Plane pairs have all three planar degrees
of freedom. Helical pairs have one degree of freedom: linearly coupled rota-
tion and translation along a fixed axis. Cylindrical pairs have independent
rotation and translation along a fixed axis. Spherical pairs have three inde-
pendent rotations around a fixed point.
Higher pairs can be further classified by their motion types: fixed-axis or
general, and planar or spatial. Planar pairs consist of two planar parts with a
common plane whose motion is parallel to that plane. Planar fixed-axis
pairs have one degree of freedom per part. General planar pairs contain
parts with planar motions and three degrees of freedom, whereas general
spatial pairs contain parts with spatial motions and up to six degrees of
freedom.
Figure 2.19 shows four examples of kinematic pairs. The examples use
thick-headed arrows to indicate intended motion directions, as explained
in section 1.1. Figure 2.19a shows a sector gear pair, which is a fixed-axis
planar pair. Each gear rotates around its center on a fixed axis. The contin-
uous rotation of the driver intermittently turns the follower half a turn in
the opposite direction. Figure 2.19b shows a general planar pair. The gear
and driver cam are fixed-axis parts, and the enclosed finger cam rotates
and translates in the plane. Figure 2.19c is a spatial fixed-axis pair in which
the worm gear and the follower gear rotate around fixed axes that are
orthogonal to each other. The spatial geometry of the worm screw and the
gear teeth makes the pair spatial rather than planar. Figure 2.19d shows a
ball-bearing ratchet mechanism. When the driver rotates counterclockwise
around the fixed axis at its center, it drives the follower clockwise by means
of four ball bearings, which form general spatial pairs with the driver and
the follower. Motion in the clockwise direction is prevented by the shape
of the cam’s inner notches.
2.4 Mechanisms
Mechanisms consist of interacting fixed and moving parts. The fixed parts,
called the frame, serve as a support for the moving parts. The moving parts
interact among themselves and with the frame via contacts. Their shapes
and interactions are designed to achieve useful kinematic functions.
As for kinematic pairs, we represent a mechanism’s configurations in
configuration space. In a planar mechanism with n moving parts, each
part contributes up to three configuration variables, so the configuration
26 2 Mechanisms
Figure 2.19
Examples of kinematic higher pairs: (a) planar fixed-axis, (b) general planar, (c) spa-
tial fixed-axis, (d) general spatial.
Figure 2.20
Planar mechanisms: (a) link-gear dwell, (b) Dennis clutch.
Figure 2.21
Topology graphs of the mechanisms in figure 2.20: (a) link-gear dwell and (b) Dennis
clutch.
Figure 2.22
Two examples of entries from Artobolevsky’s Mechanisms in Modern Engineering
Design.
2.5 Classification of Mechanisms 31
Table 2.1
Survey of kinematic pairs
Degrees of
freedom Geometry
Planar
Volume Total a2 >2 planar spatial fixed-axis
Notes: The first column shows the total number of pairs. The following two columns
show the number of pairs with two or fewer degrees of freedom, or with more than
two. The fourth and fifth columns indicate the number of planar and spatial pairs.
The last column indicates the number of fixed-axis pairs.
Table 2.2
Survey of Mechanisms
Motion type
Notes: The first column shows the total number of mechanisms. The following three
columns show the number of linkage, fixed-axes (FA), and linkage and fixed-axes
(Both) mechanisms. The fifth columns shows the number of remaining mechanisms.
The sixth column shows the number of mechanisms with varying contacts (VC). The
last column shows the number of spatial mechanisms.
32 2 Mechanisms
copiers, cameras, and VCRs. Mechanisms with one degree of freedom, such
as the link-gear dwell mechanism, are the most common.
2.6 Notes
Representation of the shape of parts has been the topic of extensive re-
search in the solid modeling community for the past 30 years. An excellent
textbook on the subject is by Mantyla [53].
The motions of parts are studied in classic mechanical engineering and
robotics literature. There are textbooks by Erdmann and Sandor [22] and
Paul [62].
The configuration space representation of locations and motions of parts
is presented in Latombe [47], and more recently in Choset et al. [16].
Collections and encyclopedias describing many useful and practical
mechanisms include those by Artobolevsky [5], Horton and Jones [30], Chi-
ronis [15], and Jensen [33]. More details on the survey we conducted on
Artobolevsky’s encyclopedia can be found in Joskowicz and Sacks [40].
Tsai [79] addresses classification of mechanisms based on graph theory to
characterize the structure and function for mechanisms with permanent
contacts.
The KMODDL on-line Cornell University Reuleaux Collection of Kine-
matic Mechanisms includes many historical texts, mechanisms, and their
animations at http://kmoddl.library.cornell.edu.
Appendix B describes the representation of parts and mechanisms in
HIPAIR. It covers fixed-axis planar parts whose boundaries are line and cir-
cle segments.
3 Contact of Features
This chapter begins the study of contacts of parts with the concept of con-
tacts of features. Two features are in contact when they share one or more
points, called contact points, and do not intersect. We study the contact of
features in the configuration space of a kinematic pair. We compute the
contact configurations by formulating and solving contact equations. We
solve the equations in closed form when possible and use a numerical
solver in other cases. Using a closed-form solution is faster and more accu-
rate than using a numerical solver, but is less general.
The simplest planar features are line segments, circle segments, and their
endpoints, called vertices. These are the most common features in planar
kinematic pairs. In the first three sections, we formulate their contact equa-
tions and derive closed-form solutions. We formulate contact equations for
general planar features in section 3.4 and for spatial features in section 3.5.
Few cases have closed-form solutions, so we turn to numerical solutions.
There are six pairs of simple planar features: circle-circle, circle-line, line-
line, vertex-vertex, circle-vertex, and line-vertex. Each pair defines a contact
type. In this section we derive contact equations for the first two types and
reduce the other four types to these two. We solve the contact equations
for fixed-axis pairs in section 3.2 and for general planar pairs in section 3.3.
Two segments are in contact when the underlying circles or lines are tan-
gent (figure 3.1a) and the point of tangency lies on both segments (figure
3.1b). The tangency configurations form the solution set of a circle-line
or circle-circle tangency equation. The contact configurations are a subset
bounded by the configurations where the point of tangency coincides with
a vertex (figure 3.1c). The boundary configurations are the solutions of
vertex-line and vertex-circle boundary equations.
34 3 Contact of Features
Figure 3.1
Tangency (a), contact (b), and boundary configuration (c) at q.
Figure 3.2
Tangency conditions: (a) circle-line, (b–c) circle-circle.
oa ¼ RA oaA þ tA
hb ¼ RB hbB þ tB
nb ¼ RB nbB
to obtain
Figure 3.3
Boundary conditions: (a) line, (b–c) circle.
where db ¼ nbB hbB replaces ðRB nbB Þ ðRB hbB Þ using the invariance of inner
products under rotation.
Figure 3.2b–c shows the tangency condition for a circle, a, with radius ra
and center oa , and a circle, b, with radius rb and center ob . When the circles
touch on the outside (figure 3.2b), the distance between the centers equals
the sum of the radii: kob oa k ¼ ra þ rb with k k denoting the vector norm
kvk ¼ ðvx2 þ vy2 Þ 1=2 . When the outside of a touches the inside of b (figure
3.2c), the distance between the centers equals the difference of the radii,
kob oa k ¼ rb ra , and rb > ra . We express these equations in part coordi-
nates by substituting
oa ¼ RA oaA þ tA
ob ¼ RB obB þ tB
to obtain
Figure 3.4
Subsumed contacts: (a) line-line, (b) identical circles, (c) vertex-vertex, (d) segment-
vertex.
Figure 3.3b shows the boundary conditions for a vertex, v, and a circle, b.
The vertex is on the line and the outward normals are opposite. The equa-
tions are ob G rb nb ¼ v, using the circle property that v ob is colinear with
nb , and nb ¼ na . Substituting the second equation into the first and intro-
ducing part coordinates yields
tA þ RA v A G rb RA naA ¼ tB þ RB obB
tA þ RA e ¼ tB þ RB obB ; ð3:5Þ
with e ¼ v A G rb naA .
Figure 3.5
Fixed-axis pair: (a–d) contact configurations a–d, (e) contact curve (thick) and tan-
gency curve (thin).
A fixed-axes pair has a single tangency equation whose variables are the
two degrees of freedom, while the other part coordinates are constant. The
solution set is a curve in the pair’s configuration space, called a tangency
curve. The solution set of the boundary equations is a subcurve of the tan-
gency curve, called a contact curve. Figure 3.5a–d shows contact configura-
tions a–d of a rotating circle segment, a, and a translating line segment, b.
Figure 3.5e shows the tangency and contact curves. The contact point coin-
cides with an a vertex in configuration a, is interior to both segments in
configurations b and c, and coincides with a b vertex in configuration d.
given here yields one interval, other equations yield several intervals. We
saw in section 2.3 that there are three types of fixed-axis pairs: rotation-
rotation, rotation-x translation, and x translation-y translation. These types
combine with the two tangency equations to generate eight cases: rotating
circle-translating line, rotating circle-rotating circle, and so on. In this sec-
tion we solve the five cases involving rotation. We solve the three transla-
tion cases at the end of section 3.3 since their main use is in general planar
pairs.
n tB ¼ n ðRA oaA þ tA Þ ra db :
nx xB ¼ n ðRA oaA þ tA Þ ra db ny yB :
to obtain
Figure 3.6
Rotating circle-translating line: (a) configuration c ¼ ð0 ; 1Þ, (b) configuration d ¼
ð90 ; 1Þ, (c) tangency curve.
Figure 3.7
Degenerate case: (a) configuration c ¼ ð150 ; 0Þ, (b) configuration d ¼ ð30 ; 0Þ, (c)
tangency curve.
Figure 3.8 shows a typical pair. The constant configuration variables are
yA ¼ 0, yA ¼ 0, xB ¼ 0, and yB ¼ 0. The curve parameters are oaA ¼ ð2; 0Þ,
40 3 Contact of Features
Figure 3.8
Translating circle-rotating line: (a) configuration c ¼ ð0; 0Þ, (b) configuration d ¼
ð90 ; 0Þ, (c) tangency curve.
ra ¼ 1, hbB ¼ ð2; 0Þ, and nbB ¼ ð1; 0Þ. The solution is xA ¼ ð3 2 cos yB Þ=
cos yB . The tangency curve has vertical asymptotes at yB ¼ G90 where the
denominator equals zero. There is no tangency for any xA value because a
translates parallel to b (figure 3.8b).
ðtB þ fÞ 2 ¼ ðrb G ra Þ 2 :
tB2 þ 2f tB þ f 2 ðrb G ra Þ 2 ¼ 0:
A A A A
f tB ¼ xB ðex þ oay sin yA oax cos yA Þ þ yB ðey oax sin yA oay cos yA Þ
A
2ðoay yB þ oaA eÞ cos yA þ e 2 þ ðoaA Þ 2 þ 2ey yB ðrb G raÞ 2 ¼ 0:
3.2 Fixed-Axis Planar Pairs 41
Figure 3.9
Rotating circle-translating circle: (a) configuration c ¼ ð0 ; 1:73Þ, (b) tangency
curves.
with
Let k4 ¼ ðk12 þ k22 Þ 1=2 and define a by sin a ¼ k2 =k4 and cos a ¼ k1 =k4 . Divid-
ing the tangency equation by k4 yields
42 3 Contact of Features
Figure 3.10
Rotating circle-rotating line: (a) configuration c ¼ ð0 ; 75:52 Þ, (b) tangency curves.
ðh þ t pÞ 2 ¼ ðrb G ra Þ 2 :
Expansion yields
with
Figure 3.11
Rotating circle-rotating circle: (a) configuration c ¼ ð97:4 ; 0 Þ, (b) tangency curves.
Expanding q yields
Figure 3.11 shows a typical pair. The constant configuration variables are
xA ¼ 0, yA ¼ 0, xB ¼ 2, and yB ¼ 0. The curve parameters are oaA ¼ ð2; 0Þ,
ra ¼ 1, obB ¼ ð0; 1Þ, and rb ¼ 1. The tangency equation is
Figure 3.12
Contact curve (thick), tangency curve (thin), and boundary equation solutions (dots
plus feature snapshots).
on the segment. For a line segment, the vertex coordinates are between
those of the segment’s vertices. For a circle segment, the ray from the cir-
cle’s center to the vertex is between the rays from the circle’s center to
its tail and head. We split the tangency curve at the boundary configura-
tions. The contact curves are the subcurves whose midpoints are contact
configurations.
Figure 3.12 illustrates this for on a rotating circle segment, a, and a trans-
lating circle segment, b. There are six boundary equation solutions, labeled
with dots, and two boundary configurations: s where an a vertex is on b
and e where a b vertex is on a. The se subcurve is the contact curve.
yA þ ex sin yA þ ey cos yA ¼ yB þ oy ;
with o ¼ RB obB constant. The second equation is solved for yA , then the first
is solved for xB . Likewise when A translates and B rotates.
Figure 3.12 shows typical rotating arc-translating arc contact curves. The
constant configuration variables are xA ¼ 0, yA ¼ 0, yB ¼ 0, and yB ¼ 0.
The curve parameters are oaA ¼ ð0; 2Þ, ra ¼ 1, taA ¼ ð1; 2Þ, haA ¼ ð1; 2Þ, obB ¼
ð0; 1Þ, rb ¼ 1, tbB ¼ ð0:71; 0:29Þ, and hbB ¼ ð0; 2Þ. The equations for v ¼ ha are
2 cos yA 2 sin yA ¼ xB
2 sin yA þ 2 cos yA ¼ 1:
The first solution is the boundary configuration s ¼ ð24:3 ; 2:64Þ and the
second is c ¼ ð114 ; 2:64Þ where ha is only on the b circle.
Figure 3.13
General segment contacts: (a) moving circle-fixed line, (b) moving line-fixed circle,
(c) moving circle-fixed circle.
Moving Circle Segment-Fixed Line Segment Figure 3.13a shows the con-
tact conditions for a circle segment, a, with radius ra and center oa , and a
line segment, b, with point hb and unit normal nb . Tangency occurs when
the distance from oa to the line equals ra . The tangency equation is
nb ðRA oaA þ tA Þ ¼ ra þ db ;
Figure 3.14
Moving circle segment-fixed line segment: (a) contact configurations, (b) contact
curves, (c) contact surface.
Moving Line Segment-Fixed Circle Segment Figure 3.13b shows the con-
tact conditions for a line segment, a, with point ha and unit normal na , and
a circle segment, b, with radius rb and center ob . Tangency occurs when the
distance from ob to the line equals rb . The tangency equation is
na ðob ha Þ ¼ rb ;
which yields
A A A A
ðnax cos ya nay sin ya ÞðxA obx Þ þ ðnax sin ya þ nay cos ya ÞðyA oby Þ
þ rb da ¼ 0;
with da ¼ naA haA . The tangency curve is a line that forms an angle of yA
with a and whose distance from the origin is jrb da j. Its inward normal an-
A A
gle is n þ yA with n ¼ arctanðnay ; nax Þ the inward normal angle of a.
Contact occurs when the point of tangency lies on b: n þ yA is in the
interval of b outward normal angles, ½ab ; b b , so yA A ½ab n; b b n. The
boundary configurations are where the point of tangency coincides with
48 3 Contact of Features
Figure 3.15
Moving line segment-fixed circle segment: (a) contact configurations, (b) contact
curves, (c) contact surface.
s ¼ ob þ RA ðgaA rb naA Þ
e ¼ ob þ RA ðhaA rb naA Þ;
Moving Circle Segment-Fixed Circle Segment Figure 3.13c shows the con-
tact conditions for a circle segment, a, with radius ra and center oa , and a
circle segment, b, with radius rb and center ob . The distance between the
centers equals the sum or difference of the radii when the circles touch on
the outside or on the inside. The tangency equation is
using equation 3.1 with tB ¼ ð0; 0Þ and yB ¼ 0. The tangency curve is a cir-
cle of radius r centered at o ¼ ob RA oaA . As y increases, it rotates on a circle
3.3 General Planar Pairs 49
Figure 3.16
Moving circle segment-fixed circle segment: (a) contact configurations, (b) contact
curves, (c) contact surface.
oa ob ¼ qðgÞ þ RA oaA ob
fA ð pxA ; pyA Þ ¼ 0
fB ðqxB ; qyB Þ ¼ 0
Figure 3.17
General segment contact: (a) quadratics, (b) splines.
3.4 General Boundary Segments 51
t A þ R A p A ¼ tB þ R B q B
with ‘f ¼ ðqf =qx; qf =qyÞ. The first two equations state that p and q are on a
and b, the third equation equates these points, and the fourth equation
makes the outward normals colinear. Contact occurs when p and q lie on
a and b:
pxA A ½gax
A A
; hax ; pyA A ½gay
A A
; hay ; qxB A ½gbx
B B
; hbx ; qyB A ½gby
B B
; hby :
The inequalities assume that a and b are monotonic with respect to x and y.
If not, they are split into monotonic subsegments.
As an example, we derive the equations for the two quadratics in figure
3.17a. Segment a has equation x A þ ðy A Þ 2 ¼ 0, vertices ga and ha , and ver-
tex coordinates gaA ¼ ð1; 1Þ and haA ¼ ð1; 1Þ. Segment b has equation
x B ðy B Þ 2 ¼ 0, vertices gb and hb , and vertex coordinates gbB ¼ ð1; 1Þ and
hbB ¼ ð1; 1Þ. The tangency equations are
pxA þ ð pyA Þ 2 ¼ 0
qxB ðqyB Þ 2 ¼ 0
t A þ R A p A ¼ tB þ R B q B
Each segment is split at ð0; 0Þ into two monotonic subsegments. The con-
tact inequalities for the two upper subsegments are
pxA A ½1; 0; pyA A ½0; 1; qxB A ½0; 1; qyB A ½0; 1
pxA þ ð pyA Þ 2 ¼ 0
qxB ðqyB Þ 2 ¼ 0
52 3 Contact of Features
and the unknowns are yA , xB , pxA , pyA , qxB , qyB . The solution shown in figure
3.17a is where all six unknowns equal zero. For a general planar pair, we
have three degrees of freedom, six equations in seven unknowns, and the
solution is a surface in a six-dimensional space whose projection is the con-
tact surface.
We need to approximate the contact curve or surface to a specified accu-
racy. The first step is to solve the tangency equations. If we pick values for
all but one degree of freedom, we can solve for the last one by Newtonian
iteration. The iteration requires a starting point, which can be hard to de-
rive, and can fail near multiple roots. The approximate contact curve or
surface consists of the numerical solution points that satisfy the contact
inequalities.
Spatial contact is more general than planar contact. There are three types of
boundary features: faces, edges, and vertices. Each combination of two fea-
ture types yields a contact type. It suffices to analyze face-face, face-edge,
and edge-edge contacts. The proof that the other cases are covered by this
analysis is similar to that for the planar case (section 3.13). The analysis fol-
lows the planar pattern: derive tangency equations, solve for the tangency
configurations, and use boundary configurations to delimit the contact set.
We derive the equations for face-face, face-edge, and edge-edge contacts.
The equations are much harder to solve than in the plane because the fea-
ture dimension grows from two to three, the number of degrees of freedom
for a part grows from three to six, and the boundaries change from points
to curves. For fixed-axis pairs, we have developed closed-form solutions for
planar, spherical, and cylindrical faces with linear and circular edges.
Face-Face The tangency equations are the same as for general planar fea-
tures, except that the points, vectors, and rotations are three-dimensional.
The additional condition for face contact is that the contact points lie on
the faces. The structure of the contact inequalities reflects that of the face
boundaries.
3.5 Spatial Pairs 53
Figure 3.18
Spatial contacts: (a) cylindrical face-spherical face contact, (b) cylindrical face-linear
edge contact, (c) circular edge-linear edge contact.
ð pxA Þ 2 þ ð pyA Þ 2 ¼ 1
t A þ R A p A ¼ tB þ R B q B
tA þ RA p A ¼ tB þ RB q B
ð pxA Þ 2 þ ð pyA Þ 2 ¼ 1
qyB ¼ 0
qzB ¼ 0
tA þ RA p A ¼ tB þ RB q B
RA ½0; 1; 0 t RB ½1; 0; 0 t ;
since the edge’s tangent direction is ð0; 1; 0Þ ð0; 0; 1Þ ¼ ð1; 0; 0Þ. The edge’s
inequalities are 2 a qxB a 2.
tA þ RA p A ¼ tB þ RB q B
and the edge inequalities are as before. Figure 3.18c shows a contact be-
tween the above linear edge and a circular edge on A with equations
ðx A Þ 2 þ ðy A Þ 2 ¼ 1 and z A ¼ 0, vertices ð0; 1; 0Þ and ð0; 1; 0Þ, and configura-
tion ð2; 0; 0; 0; 0; 0Þ.
3.6 Notes 55
3.6 Notes
Figure 4.1
Circle-circle pair: (a) free configuration a ¼ ð3; 3Þ, (b) contact configuration b ¼
ð2:6; 1:5Þ, (c) blocked configuration c ¼ ð1:5; 1:5Þ, (d) configuration space partition.
Figure 4.2
Circle-box pair: (a) double contact configuration a, (b) configuration space partition.
Figure 4.3
Translation pair: (a) configuration a ¼ ð0; 0Þ, (b) b ¼ ð2:65; 1:35Þ, (c) c ¼ ð1:29; 0Þ, (d)
d ¼ ð0:65; 0:65Þ, (e) e ¼ ð1; 1:5Þ, (f) f ¼ ð2; 1:5Þ, (g) g ¼ ð3; 1:5Þ, (h) h ¼ ð3:5; 0Þ,
(i) configuration space partition.
move the boundaries less than this amount. Contact space is a closed set
because it is the complement of the union of these two open sets. At a con-
tact configuration, outward motion along the contact normal frees the
parts and inward motion blocks them.
The configuration space partition of a pair provides a global view of its
kinematic function that reveals the pairs of features that come in contact,
the configurations where the point of contact shifts between feature pairs,
and the working modes. We illustrate this view with a simple planar pair
(figure 4.3). Circle A translates horizontally with a degree of freedom xA ,
and triangle B translates vertically with a degree of freedom yB . Figure
4.3a–h show configurations a–h, while figure 4.3i shows the configuration
space partition with these configurations labeled. Configuration a lies in
the single free region. The contact space geometry encodes the parts’
60 4 Contact of Parts in Configuration Space
Figure 4.4
Cam pair: (a) configuration a ¼ ð0 ; 1:05Þ, (b) configuration b ¼ ð180 ; 2:5Þ, (c) con-
figuration c ¼ ð180 ; 1:05Þ, (d) configuration space partition.
4.2 Fixed-Axis Pairs 61
clockwise and the two-headed arrow indicates that the follower translates
up and down. Free space is a single region since the verticals yA ¼ G180
represent one line in the cylinder’s configuration space. The contact curves
express the vertical distance between the cam’s origin and the follower’s or-
igin as a function of the cam’s angle. For example, yA ¼ 0:55 þ 0:5 ¼ 1:05 at
configuration a, using the displayed dimensions. While the configuration
follows a contact curve, the cam rotates and the follower translates with
nonlinear coupling between the degrees of freedom.
Figure 4.5 shows a rotating one-tooth ratchet with a rotating pawl.
Clockwise rotation of the ratchet is blocked when the pawl tip engages the
ratchet tooth (contact transition configuration a). Since configuration a is a
concave point, a clockwise rotation of the ratchet cannot proceed without
the pawl rotating clockwise as well. This corresponds to the blocking func-
tion of the ratchet-pawl contact. Conversely, contact transition configura-
tions b and c are convex, so clockwise and counterclockwise rotations of
both parts are possible. In this case, the pawl slides over the ratchet tooth.
The verticals yA ¼ G180 and the horizontals yB ¼ G180 each represent
one line in the torus configuration space.
When a rotating part has rotational symmetry or a translating part has
translational symmetry, the configuration space is symmetric in the part’s
degree of freedom. A part with repeated geometry produces repeated con-
tact curves. For example, a ratchet with four identical teeth yields a config-
uration space partition with four shifted copies of the one-tooth contact
curves (figure 4.6).
Figure 4.7 shows the configuration space partition of the spatial Geneva
pair. The free space is a single channel composed of four slanted and
four horizontal segments. The channel width determines the mechanical
play, which governs the coupling between the cam and the follower. The
Figure 4.5
Ratchet pair: (a) configuration a ¼ ð111 ; 30 Þ, (b) configuration b ¼ ð103 ; 25 Þ, (c)
configuration c ¼ ð21 ; 89 Þ, (d) configuration space partition.
62 4 Contact of Parts in Configuration Space
Figure 4.6
Four-tooth ratchet pair at a ¼ ð111 ; 30 Þ, (a) configuration, (b) configuration space
partition.
Figure 4.7
(a) A spatial Geneva pair and (b) its configuration space partition.
We construct the partition of a fixed-axis pair from its contact curves. The
feature contact curves are augmented with boundary lines that enforce the
4.3 Partition Algorithm for Fixed-Axis Pairs 63
Figure 4.8
Partition structure of a ratchet pair.
Figure 4.9
Partition algorithm for fixed-axis pairs.
Figure 4.10
Approximation of a contact curve.
which yields order n events, written as OðnÞ, when the number of intersec-
tions per curve is constant. Thus, the total running time is Oðn log nÞ.
We compute the intersection points of two curves by intersecting the
underlying curves and returning the solutions that lie on both curves. The
underlying curves must be intersected numerically because a closed-form
solution does not exist, even for line and circle segments. We approximate
the contact curves to a specified accuracy using line segments and then in-
tersect the approximate curves.
The approximation algorithm, illustrated in figure 4.10, is as follows. Fit a
line through the contact curve’s endpoints, s and e. Sample the curve at
mx ¼ 0:5ðsx þ ex Þ to obtain the point m. If the distance, d, from m to the
line is less than the specified accuracy, the curve approximation is ðs; eÞ.
Otherwise, split the curve at m, recursively approximate the two pieces,
and concatenate the results. In our example, the initial d is too large, so
the curve is split. The sample spacing shrinks from s to e as the curvature
increases.
Edges The edge between two vertices, p and q, is represented by two ori-
ented edges called twins: pq from p to q and qp from q to p. Edge pq is
called outgoing at p and is called incoming at q. Each vertex, v, is assigned
a list of outgoing edges in clockwise order. The list consists of the twins of
the incoming edges in sweep-list order followed by the outgoing edges in
reverse sweep-list order. In the ratchet example (figure 4.8), the incoming
edges of v are ev then dv, and the outgoing edges are vh then vf, so the
edge list is (ve, vd, vh, vf).
Figure 4.11
(a) Simple pair and (b) its configuration space partition.
step, the next edge is the successor of the twin of the current edge in the
clockwise order of its head.
In figure 4.8, vertex p is traversed first and yields the loops pabmnhio
and poij ga. Edge ij follows oi in the second loop because the twin of
oi is io and ij follows io in clockwise order. Vertex a yields one loop, ag
jihvfevdcb, since its other outgoing edges were traversed in p loops. Vertex
b yields bcdvhnm. Vertices m, c, d yield no loops. Vertex e yields efv. The
final loop encloses face 5.
The faces are formed along with the loops. The traversal begins with a
single face that is unbounded; hence it has no outer loop. When a vertex
is first traversed, its first loop is an inner loop of the enclosing face. Every
other loop is the outer loop of a new face. In our example, face 4 has an
outer loop efv, face 3 has outer loop ag jihvfevdcb, and the unbounded
face has inner loop pabmnhio. Figure 4.11a shows the simple pair from
section 4.1 and figure 4.11b shows the four faces in its partition. Face 3
has one outer loop and one inner loop.
Figure 4.12
Examples of point-in-polygon test: (a) m ¼ 0, (b) m ¼ 1, (c) m ¼ 2, (d) m ¼ 3 where m
is the intersection count of the vertical dotted line.
General planar pairs have spatial configuration spaces. Free space and
blocked space have dimension three. Contact space has dimension two
and is a subset of the feature contact surfaces. The yA ¼ y0 cross-section of
the A=B partition is the planar partition where A translates at orientation y0
relative to B. Cross-sections are useful for visualizing and computing spatial
partitions.
We illustrate spatial partitions on a fastener pair composed of a pin and a
box (figure 4.13). The pin is vertical at yA ¼ 0 (figure 4.13a) and horizontal
at yA ¼ 90 (c). The yA ¼ 0 cross-section (figure 4.13b) has two free regions,
which indicates that the pin cannot translate out of the box. The yA ¼ 90
cross-section (figure 4.13d) has one free region, which indicates that the
pin can translate out of the box. As yA decreases from 90 , the clearance be-
tween the pin and the opening decreases until the pin touches the top and
the bottom of the opening and the cross-section free region splits into two
regions.
Figure 4.13e and f show bottom and top views, respectively, of the yA A
½0 ; 90 part of the spatial partition. The y ¼ 0 cross-section appears in
the bottom view and the y ¼ 90 cross-section appears in the top view.
68 4 Contact of Parts in Configuration Space
Figure 4.13
Fastener pair: (a–b) yA ¼ 0 cross-section, (c–d) yA ¼ 90 cross-section, (e–f) bottom
and top views of spatial configuration space partition.
Although some cross-sections have two free regions, the spatial partition
has one free region. The pin can move between any two free configurations
by rotating until it is horizontal, translating to the second position, and
rotating to the second orientation. The pin can be moved out of the box
for yA A ½46 ; 134 .
The next example is a constant-breadth cam with a square follower (fig-
ure 4.14). When the cam rotates, the follower rotates in step and translates
around a circle. In configuration space, the cam moves relative to the fol-
lower. Figure 4.14b shows the free region where the cam is inside the
follower: a curved channel with a square cross-section. Figure 4.14c shows
selected cross-sections projected onto the ðxA ; yA Þ plane. The center of the
square indicates the cam’s position when the follower has zero clearance.
For the actual clearance, the cam can translate around the nominal posi-
tion within the square. The clearance is the same regardless of the orien-
tation. A second free region in which the cam is outside the follower lies
beyond the blocked region that encloses the channel.
4.5 Partition Algorithm for General Planar Pairs 69
Figure 4.14
Cam pair (a), spatial configuration space partition (b), and projected cross-sections (c).
Figure 4.15
Partition structure for a cam pair.
Figure 4.16
Partition algorithm for general planar pairs.
Figure 4.17
Fastener pair configurations and partitions before (a–b), at (c–d), and after (e–f) a
contact curve tangency.
faces, edges, and vertices of the planar partition trace the cells, faces, and
edges of the spatial partition. In figure 4.15, the planar face bounded by
abcd traces the channel; planar edges a and b trace spatial faces f and g;
and planar vertex v traces spatial edge e. The planar partition is a continu-
ous function of yA when its graph is fixed. The contact curves move, which
makes the edges move, which makes the vertices move, which makes the
faces deform. The graph changes when the edge set or the face set changes.
The edge set changes when yA equals the start or end angle of a contact
surface, so a curve appears or disappears. Figures 3.14, 3.15, and 3.16 show
the three types of contact curves. The edge set also changes when two
curves are tangent. Figure 4.17 shows how a tangency changes the free
4.5 Partition Algorithm for General Planar Pairs 71
Figure 4.18
Fastener pair configurations and partitions before (a–b), at (c–d), and after (e–f) a
face collapses.
space of the fastener pair from one region to two regions. The face set
changes when a face collapses to a point, which occurs when three curves
intersect. Figure 4.18 shows that a fastener pair face collapses when the
upper pin touches the upper slanted box segment (contact a), the lower
pin touches the lower slanted segment (contact b), and the upper pin also
touches the upper horizontal segment (contact c). Contacts a–c are labeled
in the triple contact configuration (figure 4.18c) and in the three partitions
(figure 4.18b,d,f).
The contact curve’s start and end angles are described in section 3.3. Two
curves are tangent when the underlying curves are tangent and the point of
tangency lies on both curves. Tangency occurs when the parametric expres-
sions from section 3.3 satisfy the contact equations from section 3.1.1.
There is one case for each pair of contact types. For example, consider the
contact line of moving circle a and fixed line b, and the contact circle of
moving circle e and fixed circle f . A line with normal n and distance from
the origin k is tangent to a circle with center o and radius r when n o ¼
r þ k. Equations 3.7 and 3.8 yield n ¼ nb , o ¼ of RA oeA , r ¼ jre G rf j, and
k ¼ ra þ db nb RA oaA . The resulting equation has a closed-form solution.
The same is true of the other cases.
Three curves intersect when the underlying curves intersect and the in-
tersection point lies on all three curves. The intersection configurations are
72 4 Contact of Parts in Configuration Space
the solutions of the three parametric contact curves. There is one case for
each triple of contact types. Numerical solutions are required.
The planar partition is updated at angles where its graph changes. When
a curve appears, it is added to the partition, which entails splitting the
edges that it intersects and updating the vertices and faces. When a curve
disappears, it is removed from the partition, which entails merging edges
that it formerly split and faces that it formerly separated. When disjoint
curves become tangent and then intersect, the edges that contain the point
of tangency are split and the face that they bound splits into two faces
(figure 4.17b,d,f). When the opposite occurs, the edges that formerly inter-
sected are merged and two faces merge. When a face collapse occurs, the
old face is replaced with a new one.
The spatial partition is constructed from the evolving planar partition.
Planar faces, edges, and vertices generate spatial cells, faces, and edges. A
spatial vertex is formed when two spatial edges from the same surface meet
at its start or end angle, and when two edges from different surfaces meet
at a face collapse. Although the construction is straightforward, there are
many details and special cases.
4.6 Mechanisms
Figure 4.19
Indexing mechanism: (a) disengaged, (b) engaged, (c) disengaging.
Figure 4.20
Indexing mechanism pair configuration space partitions: (a) driver-indexer (detail),
(b) driver-pawl, (c) indexer-pawl.
tom indexer pin to rotate the right pawl arm out of the way (figure 4.19b).
When it disengages, the left pawl arm returns to its rim and the right arm
re-locks the indexer (figure 4.19c).
Figure 4.20 shows details of the configuration space partitions of the
indexing mechanism’s pairs. The driver-indexer free space consists of ten
diagonal channels where the finger engages the ten pins. The negative
slope indicates that the parts rotate in opposite directions. The rest of the
free space is the regions to the left and right of the channels where the
driver is disengaged. The driver-pawl free space is bounded from below by
the rim-left arm contact curve, which is horizontal, and by the notch-left
arm contact curves, which form a v-shape (figure 4.20b). The horizontal
curve blocks downward vertical motion, clockwise pawl rotation, whereas
the slanted curves permit it. The indexer-pawl free space (figure 4.20c) is
bounded from above by the pin-right arm contact curves, which form ten
inverted v-shapes. When yI increases or decreases, yP decreases along one
74 4 Contact of Parts in Configuration Space
Figure 4.21
Illustration of the configuration space partition of the indexer mechanism as a com-
position of its pair configuration space partitions.
Figure 4.22
Gear pair with detail (a–b) and partition with detail (c–d).
Figure 4.23
Half-gear pair and its partition.
Figure 4.24
Crank-and-slider configurations: (a) a ¼ ð30 ; 17 ; 2:9Þ, (b) b ¼ ð135 ; 25 ; 1:0Þ, (c)
c ¼ ð150 ; 17 ; 0:9Þ, (d) d ¼ ð45 ; 25 ; 2:7Þ.
coupled motion, and contact changes. In our example, the free space con-
sists of 16 diagonal channels where the gears mesh, surrounded by a region
where they disengage. The 16 channels represent the 16 teeth of B that can
mesh with the lead tooth of A.
lA cos yA ¼ xB
lA sin yA ¼ yB
78 4 Contact of Parts in Configuration Space
Figure 4.25
Kinematic function of a crank and slider.
xB þ lB cos yB ¼ xC
yB þ lB sin yB ¼ 0;
with lA and lB the link’s lengths. These four equations define a curve in the
five degrees of freedom. We can eliminate xB and yB from the last three
equations using the first two equations. The reduced system defines a curve
in ðyA ; yB ; xC Þ whose projection onto ðyA ; xC Þ is the linkage input-output
function (figure 4.25).
4.8 Notes
The contact of parts is closely related to the contact of features and has
been extensively studied in the mechanical engineering and robotics litera-
ture. Mechanical engineering research addresses part contacts for cam, gear,
and linkage mechanisms. In cam and gear mechanisms, the contact se-
quence between parts is predetermined [4, 26, 51], and feature contacts are
determined as described in chapter 3. Linkage mechanisms are described as
rigid links connected by standard joints with no play.
Robotics studies the contact of parts within the configuration space
method for planning robot motion [16, 47, 52]. The research provides algo-
rithms for partitioning configuration space for planar polygons [11, 52]
and partial algorithms for polyhedral parts [20]. The research does not ad-
dress curved parts. Bajaj and Kim [6, 7] describe algorithms for computing a
configuration space partition for parts with algebraic curves and surface
contours.
For a detailed description of the sweep-line algorithm and related compu-
tational geometry tasks, see Berg et al. [18].
4.8 Notes 79
The next four chapters explore kinematic design using configuration spaces.
This chapter addresses analysis. The purpose of analysis is to determine
how a mechanism functions. Kinematic analysis studies the functional
consequences of the requirement that the configuration of every mecha-
nism must lie in free space or in contact space. Partitions of the configura-
tion space provide a geometric view of these spaces that facilitates the
analysis. The feature contact spaces reveal the structure of the individual
contacts, while their intersection spaces reveal the coupling among con-
tacts. The benefit is greatest when seemingly unrelated features interact.
In section 5.1 we discuss kinematic analysis through an examination of
configuration space partition. The strategy is to relate the geometric proper-
ties of partitions to functional properties and then to compare mechanisms
by comparing their geometric properties. We illustrate this strategy with
several examples. The remainder of the chapter is devoted to simulation.
Simulation predicts the function of a mechanism by solving differential
equations that express Newton’s laws of motion. In kinematic simulation,
the initial values and velocities of the mechanism’s degrees of freedom
are given, whereas in dynamical simulation the initial state and the exter-
nal forces are given. Simulation is less general than examination in that
many inputs may be required to capture every aspect of the mechanism’s
function. We present a kinematic simulation algorithm in section 5.2 and
extend it to dynamical simulation in section 5.3. The use of configuration
space partitions enables us to predict contact changes, whereas prior simu-
lators are limited to mechanisms with permanent contacts or with known
contact changes.
Figure 5.1
Disk indexing pair: (a) drive configuration a, (b) dwell configuration b, (c) drive con-
figuration c in next period.
Figure 5.2
(a) Configuration space partition and (b) detail.
Figure 5.2a shows the configuration space partition with the three config-
urations from figure 5.1. There is one free region with ten slanted segments
that represent drive periods and ten horizontal segments that represent
dwell periods. The segment width corresponds to the play between the in-
dexer and the driver. The play is largest at transitions between drive and
dwell periods. The partition reveals a failure mode. If the spring is too
weak, the driver slot will pass the indexer pin before it can engage, so the
indexer will not advance (the path in figure 5.2b from configurations b to
c instead of from b to a).
We present two examples of how changes in the partition reflect changes
in kinematic function. Figure 5.3 shows the effect of decreasing the dis-
tance between the centers of rotation by 1% from 33 mm to 32.7 mm.
The free space splits into ten regions where the driver blocks on the ten in-
dexer pins. The driver can rotate one pin, but cannot disengage from it and
rotate to the next pin (figure 5.3c). Figure 5.4 shows the effect of decreasing
the width of the driver slot mouth by 15% from 6 mm to 5.1 mm. The free
space again contains ten regions, which show a second type of blocking
(figure 5.4b). The driver can engage and disengage the indexer pins, but
cannot rotate the indexer by one-tenth of a turn (figure 5.4c).
Figure 5.3
(a) Modified disk indexing pair with centers of rotation too close, (b) partition, (c)
detail.
Figure 5.4
(a) Modified disk indexing pair with slot too narrow, (b) partition, (c) detail.
drive periods, the driver lever engages an indexer pin and advances the in-
dexer one-eighth of a turn. In dwell periods, the locking arc engages two
adjacent indexer pins and prevents rotation.
Figure 5.6 shows the configuration space partition with the six configura-
tions from figure 5.5. The slanted and horizontal segments in figure 5.6a
represent the drive and dwell periods. The intended kinematic function
occurs along the path abcde in figure 5.6b. The partition reveals two failure
modes. The indexer can rotate clockwise from b to f and block. It can also
rotate counterclockwise from d to a and repeat the previous cycle.
We can remove both failures by modifying the driver (figure 5.7). The
first failure occurs when the leading side of the locking arc touches an
5.1 Kinematic Analysis by Examination of Partition 85
Figure 5.5
Lever indexing pair: (a) drive configuration a, (b) transition to dwell at configuration
b, (c) dwell configuration c, (d) end of dwell at configuration d, (e) start of next drive
period at configuration e, (f) blocking configuration f.
Figure 5.6
(a) Configuration space partition, and (b) detail.
indexer pin and forms a contact curve with a negative slope. As the driver
angle increases, the indexer angle decreases until the configuration reaches
a blocking configuration (like the ratchet pair in figure 4.5). We assign the
contact curve a positive slope, which eliminates the blocking configura-
tion, by beveling the locking arc side. The second failure occurs because
the locking arc needs to engage two indexer pins for dwell. It must dis-
engage one pin before the dwell ends, so that it can disengage the second
86 5 Analysis
Figure 5.7
(a) Revised lever indexing pair, (b) configuration space partition, and (c) detail.
pin at the start of the next drive period. We prevent indexer rotation by
increasing the outer radius of the locking arc so it locks another pin.
The configuration space partition of the modified pair resembles that of
the spatial Geneva pair (figure 4.7). Both partitions exhibit slanted driving
segments linked by horizontal dwell segments. The number of segments
equals the drive ratio of the pair. The Geneva partition has smooth seg-
ment boundaries, which indicates smooth motion of parts, whereas the
second partition has irregular boundaries. The partition of the first indexer
pair resembles these partitions since all three pairs have the same kinematic
function, but it is also spanned by horizontal segments, owing to its failure
mode (figure 5.1).
Figure 5.8
Intermittent gear mechanism: (a) right follower pawl engaged, (b) follower dis-
engaged, (c) left pawl engaged.
right pawl disengages at yC ¼ 82 (figure 5.8b); the follower rotates inde-
pendently while the gear dwells; then the left pawl engages the gear at
yC ¼ 90 and the cycle repeats (figure 5.8c).
Figure 5.9 shows the cross-sections of the gear-follower partition that cor-
respond to the snapshots. The follower’s configuration is ð0; 0; 0Þ and the
gear degrees of freedom are ðxG ; yG Þ. In figure 5.9a, the free space consists
of three regions. In the middle region, which contains the snapshot config-
uration, the right follower pawl engages a gear tooth. The gear motion is
about 10 mm, whereas its outer radius is 175 mm. In the region above or
below, the pawl engages the tooth below or above. In figure 5.9b, the three
regions have merged into a single region, which shows that the follower
can now cross over the two gear teeth. In figure 5.9c, the free space once
again consists of three regions and the middle region contains the snapshot
configuration in which the left pawl engages a gear tooth.
Figure 5.9
Gear-follower partition cross-sections: (a) yG ¼ 0 , (b) yG ¼ 5 , (c) yG ¼ 9 .
Figure 5.10
(a–e) Kinematic simulation of a translation pair, (f) time plots, (g) motion path in
configurations a–e configuration space.
Figure 5.11
Kinematic simulation algorithm.
figure 4.3, the fixed contact intervals are from a to b, from b to d, and from
d to e.
Figure 5.11 summarizes the kinematic simulation algorithm. The input is
a mechanism, an initial configuration xð0Þ, a driving motion d, a stop time
te , a time step h, and an accuracy . The output is a sequence of configura-
tions xðt 0 Þ; . . . ; xðte Þ. Configuration xðtiþ1 Þ is computed by integrating the
equations x_ ¼ fðx; tÞ from ti to tiþ1 with accuracy . When the contacts of
the parts are fixed on ½ti ; ti þ h, tiþ1 equals ti þ h; otherwise, tiþ1 is the con-
tact change time.
90 5 Analysis
Figure 5.12
Collision: (a) free configuration a, (b) overlap configuration b, (c) contact configura-
tion c, (d) configuration space partition.
Figure 5.13
Contact breaks: (a) contact configuration a, (b) free velocity configuration b, (c) free
configuration c, (d) configuration space partition.
The inputs to the integrator are the pairs’ partitions, xðti Þ, d, h, , and the
velocity computation module described later. The integrator first computes
xðti þ hÞ under the assumption that the contacts are fixed on ½ti ; ti þ h. It
uses a standard ordinary differential equation solver that invokes the veloc-
ity module multiple times to ensure accuracy. It then tests for contact
changes. Two parts make contact when their configuration enters blocked
space. A contact breaks when the velocity points into free space. Figures
5.12 and 5.13 illustrate this using the driver-indexer pair of the indexing
mechanism from section 4.6. When a change is detected, the integrator
finds the change configuration by a bisection search on ½ti ; ti þ h.
Figure 5.14
Blocked simulation: (a–b) configurations a–b, (c) motion path.
Figure 5.15
Computation of a mechanism’s velocity.
contact space, A does not drive B and x_ ¼ v. The translation pair exhibits
this behavior in configuration d in figure 5.10d, g. If n v < 0, v causes
overlap of parts and a tangential x_ is obtained by solving n x_ ¼ nx x_ A þ
ny x_ B ¼ 0 for x_ B . There is no solution when ny ¼ 0, so we set x_ ¼ ð0; 0Þ. The
simulation blocks because the driving velocity v is parallel to the contact
normal n (figure 5.14).
The computation algorithm for a mechanism’s velocity is as follows. The
topology graph for the input configuration is traversed starting at the driv-
ing part. When part B is traversed from A, the pair algorithm is invoked
with A as the driving part. If B is assigned a velocity, its children are tra-
versed. In figure 5.15, part A is assigned a driving velocity x_ A , B is traversed
from A and is assigned x_ B ¼ x_ A , D is traversed from B and is assigned
x_ D ¼ x_ B , C is traversed from A without being assigned a velocity, and so E
is not traversed.
Figure 5.16 shows a kinematic simulation of the indexing mechanism.
The driving velocity is y_D ¼ 1 hertz. In figure 5.16a, the driver assigns
y_I to the indexer, which assigns y_P to the pawl. The indexer time plot (fig-
ure 5.16d) shows that y_I is positive. The driver-indexer partition (figure 5.16f)
shows that this is because y_D and the contact curve slope are negative. The
92 5 Analysis
Figure 5.16
Kinematic simulation of an indexing mechanism: (a–c) configurations a–c, (d–e)
time plots, (f–h) motion paths in configuration space.
5.2 Kinematic Simulation 93
pawl time plot (figure 5.16e) shows that y_P is negative and the indexer-pawl
partition (figure 5.16h) explains why. In figure 5.16b, the driver assigns
velocities to the indexer and to the pawl. In figure 5.16c, the driver assigns a
velocity to the pawl and the indexer is stationary.
is solved with a linear equation solver. When the equations are singular,
the simulation is overconstrained, so we assign the parts zero velocity.
We illustrate the algorithm using the constant-breadth cam pair from
section 4.4 (figure 5.17). The cam is part 1 and the follower is part 2. The
driving velocity is y_1 ¼ 1 hertz, so d ¼ ð0; 0; 1; 0; 0; 0Þ. The revolute joint
that connects the cam to the frame is modeled with contacts between
cam points a 1 ¼ ð1; 0Þ and b 1 ¼ ð0; 1Þ and the frame circle, s, with a center
94 5 Analysis
Figure 5.17
Kinematic simulation of a cam pair: (a–d) configurations a–d, (e–g) time plots.
and x_ ¼ ð0; 0; 0:55; 0:2; 0:09; 0:45Þ. The driver rotates, the follower rotates
and translates, and the sum of the angular velocities equals the driving an-
gular velocity. Unlike the fixed-axis algorithm, the driving velocity is modi-
fied in the same way as the other velocities of parts.
my€ ¼ fy þ cy
I y€ ¼ t þ cy
with m the mass of the part, x€ and y€ the components of its linear accelera-
tion, fx and fy the external force acting on the part, cx and cy the contact
force, I the moment of inertia, y€ the angular acceleration, t the external
torque, and cy the contact torque.
The rigid part model contradicts the Newtonian equations when parts
collide. The parts must change velocity instantaneously to prevent overlap,
but the velocity is continuous and only acceleration can change instanta-
neously. The contradiction is resolved by employing a separate collision
model. When the parts are smooth, the postcollision velocities are deriva-
ble from the conservation of momentum. Continuum mechanics provides
a more general model in which parts deform during collision, then return
to their original shapes.
Numerical solution of the extended Newtonian equations is called
dynamical simulation. It provides designers of mechanisms with informa-
tion that goes beyond the realm of kinematics. The most robust designs
96 5 Analysis
Figure 5.18
Dynamical simulation of escapement: (a–d) configurations a–d.
Figure 5.19
Anchor-ratchet motion paths: (a) correct, (b) failure.
meter) for the balance, 1 N cm 2 for the anchor, and 5 N cm 2 for the
escapement. Friction is neglected. A spring coefficient of p 2 produces a nat-
ural spring period of two cycles per second. Simulating the mechanism
with a range of driving torques reveals that it works with 20 N cm, but
fails with 30 N cm. Figure 5.19 shows the two anchor-ratchet motion
paths. The bad path (figure 5.19b) starts correctly but fails to clear the hor-
izontal contact curve at configuration d, reverses direction, and blocks in
configuration c.
5.4 Notes
Figure 6.1
(a) Lever mechanism and (b) kinematic variation.
Figure 6.2
Circle-box pair: (a–c) nominal shapes and two valid instances in configuration a ¼
ð4; 5Þ, (d–f) nominal and instance partitions of configuration space.
Figure 6.3
Circle-box pair contact zone (a) with detail (b).
Figure 6.4
Circle-box pair with larger variation: (a) blocked instance, (b) configuration space
partition, (c) contact zone.
Figure 6.5
Disk indexer pair: (a) nominal design, (b) nominal partition, (c) narrow contact zone,
(d) failure instance, (e) failure partition, (f) wider contact zone.
6.3 Algorithms for Kinematic Pairs 105
Figure 6.6
Gear-follower contact zone cross-sections: (a) yc ¼ 0 , (b) yc ¼ 5 , (c) yc ¼ 9 .
Figure 6.7 summarizes the algorithm. Steps 1 and 2 sample the contact
space. For a fixed-axis pair, the contact curves are sampled as described
in section 4.3.1. For a general planar pair, cross-sections are formed at a
specified yA spacing and the resulting fixed-axis pairs are sampled. Step 3
computes the contact zone boundary points in the outward and inward
normal directions for each sample of contact space. Step 4 forms the con-
tact zone boundary from the boundary points. Figure 6.8 illustrates the al-
gorithm for the figure 6.3 contact zone.
Figure 6.7
Algorithm for the computation of the contact zone.
Figure 6.8
Contact zone computation: (a) contact space sampling, (b) contact zone boundary
points at a and b, (c) contact zone boundaries.
1 1 X qf
k¼ q fp ¼ qi :
fc f c fc f c i qpi
This formula shows that k is maximal when qi ¼ ui for qf =qpi > 0 and
qi ¼ li otherwise. It is minimal when li and ui are interchanged.
We illustrate the computation using the circle-box pair (figure 6.8b). The
sole parameter is p ¼ ra with p ¼ 1, l ¼ 0:2, and u ¼ 0:2. Configuration a ¼
ð9; 6Þ lies on the moving circle-fixed line contact curve f ðxa ; ya ; ra Þ ¼ xa
ra 8 ¼ 0, using equation 3.7 with nb ¼ ð1; 0Þ, oaA ¼ ð0; 0Þ, and db ¼ 8. The
gradient is ðqf =qxa ; qf =qya Þ ¼ ð1; 0Þ and k ¼ qðqf =qra Þ ¼ q with 0:2 a q a
0:2. The maximum, k ¼ 0:2, occurs when q is largest and generates the con-
6.4 Algorithms for Mechanisms 107
tact zone’s outer boundary point ð9:2; 6Þ. The minimum, k ¼ 0:2, occurs
when q is smallest and generates the inner boundary point ð8:8; 6Þ. Con-
figuration b ¼ ð4; 3Þ lies on the moving circle-fixed circle contact curve
ð2 ra Þ 2 ðxa 4Þ 2 ðya 4Þ 2 ¼ 0, using equation 3.8 with oaA ¼ ð0; 0Þ,
obB ¼ ð4; 4Þ, and rb ¼ 2. The gradient is 2ð4 xa ; 4 ya Þ ¼ ð0; 2Þ and
k ¼ 0:2q. The maximum and minimum generate the outer and inner
boundary points ð4; 2:8Þ and ð4; 3:2Þ.
The error that results from the linear Taylor series is quadratic in the tol-
erance interval widths. Usually this error is negligible because the tolerance
intervals are narrow, but there are cases where the error is significant. We
can derive the true maximum and minimum via constrained nonlinear
optimization, which takes longer than linear optimization, but is still
practical.
Step 4 In a fixed-axis pair, each free region boundary yields an outer and
an inner sequence of contact zone boundary points. We link the points in
each sequence to obtain curves (figure 6.8c). These curves partition the
configuration space into faces. The faces that contain the contact space are
the contact zone. When the tolerance intervals are narrow, the contact
zone is a narrow band around the contact curves (figure 6.3). When the
intervals are wide enough, the curves intersect and the contact zone topol-
ogy is more complicated (figure 6.4). In a general planar pair, the approxi-
mate contact zone boundaries are triangular meshes that generate a spatial
partition.
The computation algorithm for a contact zone cannot be used for mecha-
nisms because we cannot in general construct mechanism partitions. If we
could, the algorithm would extend directly. Instead we compute error
bounds at sample configurations on the nominal path for a given driving
motion, which we compute by kinematic simulation (section 5.2). A con-
figuration, c, lies on a set of contact surfaces, f j ðc þ d; p þ qÞ ¼ 0, that lin-
j j
earize to fc d þ fp q ¼ 0. We seek a maximal d subject to the linearized f j
constraints and li a qi a ui . The d metric is task specific. A common crite-
rion is that an output configuration variable be maximized with the driving
variables fixed at their nominal values.
We illustrate using a lever mechanism (figure 6.1). The configuration
space coordinates are ðyC ; yF ; yL Þ. The tolerance parameter vector is p ¼ ðr;
h; m; w; vÞ with p ¼ ð1; 0:25; 2; 2; 3Þ and with li ; ui ¼ 0:01. The cam-follower
108 6 Tolerancing
6.5 Notes
This chapter studies the design task of kinematic synthesis. The goal is to
design a mechanism that realizes a kinematic function. Synthesis is the in-
verse process of analysis. It is inherently more difficult because many mech-
anisms can realize the same kinematic function. We focus on parameter
synthesis: given a parametric model of a mechanism, a kinematic function,
and its allowed variability, the goal is to find nominal parameter values and
tolerance intervals that realize the kinematic function with the allowed
variability.
In section 7.1 we review the kinematic design cycle before focusing on
parameter synthesis. In section 7.2 we present a parameter synthesis algo-
rithm that finds parameter values that realize a kinematic function. In
section 7.3, we describe a parameter optimization algorithm that adjusts
parameter values to ensure correct kinematic function for a given tolerance
space. We discuss mechanisms composed of fixed-axis higher pairs.
Figure 7.1
Kinematic design scenario: (a) design requirements, (b) nominal design, (c) intended
kinematic function, (d) nominal partition, (e) contact zone detail, (f) failure instance,
(g) failure partition.
7.2 Parameter Synthesis 111
Figure 7.2
Algorithm for parameter synthesis.
partitions to remove the flaws, and inputs the changes. The algorithm
translates the changes into an objective function and computes a local
minimum starting from the current parameter values. The cycle repeats
until the design is acceptable.
Figure 7.3
Circle-box pair: (a) initial design instance, (b) initial configuration space partition, (c)
dragger, (d) rA ¼ 1:15 modification, (e) wB ¼ 2:2 modification.
Figure 7.4
Driver-follower pair: (a) detail of initial instance, (b) partition, (c) detail with dragger,
(d) local change, (e–f) topology change with detail.
partway through the optimization (figure 7.4d). The contact curve, c, of the
driver arc-follower arc tip crosses the pin-slot curve, a, and enters contact
space. A topology change occurs when c hits the upper channel boundary,
b, and blocks the channel (figure 7.4e–f).
The parametric synthesis algorithm prevents topology changes. The new
free space is matched against the old one. If the structures match, the new
design instance is accepted. Otherwise the algorithm searches the line seg-
ment in parameter space between the old and the new instances for the
first point, pc , where the structure changes. If the change is local, the opti-
mization resumes from pc . In a topology change, two contact curves (on
the same loop or on different loops) are disjoint on one side of pc , tangent
at pc , and intersect on the other side of pc . The algorithm adds penalty
terms to the objective function to prevent the tangency and restarts the
optimizer at the old instance.
In our example, the tangent curves are a and c (figure 7.5a). One penalty
term prevents a from crossing a barrier point below the tangency and the
other prevents c from crossing a barrier above it. The barriers appear as
a single filled circle because they are so close together (figure 7.5b). The
7.2 Parameter Synthesis 115
Figure 7.5
Topology change (a), barriers (b), and final partition (c).
Figure 7.6
Dennis clutch mechanism: (a–f) configurations a–f.
finger of the arm hits the pawl (figure 7.6e), disengages it from the ratchet,
and locks it (figure 7.6f). The cam rotates to its initial angle owing to inertia
(figure 7.6a).
The designer achieves the intended function by parameter synthesis. The
first change in design fixes a cam-arm design flaw: when the operator
rotates the arm, it hits the cam arm before it can release the pawl. Partition
of the cam-arm configuration space shows the design flaw (figure 7.7a). The
initial configuration is p and the dashed line marks the angle at which the
arm releases the pawl. The intended path for the motion is the vertical
from p to the release line, but the path ends prematurely at q when the
arm hits the cam’s rim. The designer raises the contact curve with two drag-
gers (figure 7.7b). The revised partition shows a correct function (figure
7.7c). The arm rotates from p to q, where it releases the pawl. The cam
rotates from q to r, where its pin hits the upper finger of the arm. The cam
rotates the arm from r to s, where the pin passes under the finger. The
cam rotates to p to end the work cycle.
The second design change fixes a ratchet-pawl design flaw: when the
pawl spring is too weak, the pawl tip can slide over a ratchet slot without
engaging. A ratchet-pawl partition shows the design flaw (figure 7.8a). The
intended motion path is from p, where the pawl tip reaches the edge of a
7.3 Parameter Optimization 117
Figure 7.7
Cam-arm: (a) faulty partition, (b) synthesis, (c) correct partition.
Figure 7.8
Ratchet-pawl: (a) faulty partition, (b) synthesis, (c) correct partition.
ratchet slot, to q, where it hits the slot side, to r, where it engages. The
actual path is governed by the pawl’s spring and the parts’ inertias. If the
spring is too weak, the pawl tip can pass the ratchet slot and hit the top of
the next tooth at s. The designer lowers the right contact curve with a drag-
ger (figure 7.8b). In the revised partition (figure 7.8c), the pawl tip hits the
slot’s side and engages independently of the spring’s strength.
Figure 7.9
Algorithm for parameter optimization.
Figure 7.10
Circle-box pair: (a) nominal, maximal instances for (b) left, (c) right, and (d) both
channel sides.
Figure 7.11
Parameter revision: (a) closest correct instances, (b) revision of one instance, and re-
vision of two instances using one (c) and two (d) parameters.
The maximal instances are computed in two steps. The first step collects
the parameter values that maximize the variation in the individual con-
tacts. These are the values that generate the contact zone boundary points
in step 3 of section 6.3. Each boundary point is determined by the values of
the parameters in its contact equation. These values define a partial design
instance. The other design parameters are called free. In our example, the
partial instances are ð3:25; f Þ and ðf ; 3:25Þ for the left and right channels,
with f denoting a free parameter.
The second step forms the instances that maximize the variation in mul-
tiple contacts. Partial instances a and b are compatible when for every i ei-
ther ai is free, bi is free, or ai ¼ bi . They can be merged into a new partial
instance whose ith element is free when ai and bi are free, equals ai when
bi is free, and equals bi otherwise. The merge assigns each partial instance
its maximal parameter values; hence it maximizes the variation in both
contacts. We merge all compatible sets of partial instances. We obtain the
maximal instances by assigning the free parameters of the merges their
nominal values. The two partial instances in our example are compatible
and their merge, ð3:25; 3:25Þ, is the joint maximum.
7.4 Notes
Kinematic synthesis has been the subject of intense study for the past four
decades. Most research has focused on linkages and other permanent con-
tact mechanisms [25, 27, 57]. For a survey of earlier work, see Erdman [21];
a more recent survey is presented in McCarthy and Joskowicz [58]. Special-
ized techniques for synthesis of cam and gear mechanisms are described in
Gonzales-Palacios and Angeles [26] and Litvin [51]. Software for synthesis
of kinematic linkage includes Erdman’s LINCAGES-2000, KINSYN, SyMech,
and the ADAMS/View packages, among others.
Kinematic synthesis has also been studied in the broader context of
mechanism design. Formal theories of mechanism design, including con-
ceptual and configuration design, address these issues [29, 43]. Parameter
synthesis as an optimization problem has gained much acceptance as an
approach for optimal design [61] and has been applied to optimization of
cam mechanisms [4].
The configuration space paradigm has been used for the synthesis of
higher-pair mechanisms [12, 34, 49, 64]. Our work addresses parameter
synthesis [45] and robust synthesis [46]. The constant-time partition-
matching algorithm appears in Kyung and Sacks [45]. Robust synthesis
couples nominal parameter and tolerance synthesis so that nominal and
tolerance changes are evaluated together [76]. The nominal design is modi-
fied to reduce its sensitivity to variations of parts. Tolerances are then allo-
cated to guarantee correct function and minimize cost.
The algorithms in this chapter extend in principle to general planar pairs,
but they have not been implemented because of the complexity of manip-
ulating three-dimensional configuration space.
8 Case Studies
This chapter presents four case studies of actual mechanisms taken from
industry. They illustrate the use of the configuration space method in the
analysis and design of mechanisms. Section 8.1 describes the kinematic
synthesis of an optical filter mechanism. Section 8.2. describes the tolerance
analysis of a selector mechanism for an automotive gearshift. Section 8.3
describes the redesign of a torsional ratcheting MEMS device. Section 8.4
describes the redesign of a spatial asynchronous reverse gear pair from an
automotive transmission.
The optical filter mechanism [76] is from Israel Aircraft Industries and was
introduced in section 7.1. The mechanism consists of a lens, a driver, and
three filters mounted on identical followers (figure 8.1). The lens is attached
to a fixed frame (not shown). The followers are stacked on a shaft and ro-
tate independently. The driver consists of three slices that rotate together
on a common shaft. Each driver slice drives the corresponding follower.
The figure shows details of the top and middle driver slices and followers.
Each slice consists of a driving pin and a locking arc. The second and third
slices are rotated by 90 and 180 relative to the first slice. In the initial
state, the filters are off the lens. When the driver shaft is rotated counter-
clockwise, the three followers are engaged in sequence. Each driver pin
engages its follower slot and rotates the follower until the filter covers the
lens. Rotating the driver clockwise resets the filters to the initial state.
The initial design scenario is discussed in section 7.1. The design task is
to devise a mechanism to engage and reset the followers in the intended
manner. The mechanism must be robust and compact because it will
be mounted on a vehicle. The design concept is a Geneva mechanism
with one driver and one follower per filter. The parametric model has 25
122 8 Case Studies
Figure 8.1
(a) Optical filter mechanism and (b–c) details of two driver-follower pairs.
Figure 8.2
(a) Driver-follower configuration space partition with details of (b) original and (c)
tightened contact zones.
functional parameters, including the centers of rotation, the pin and lock-
ing arc radii, and the slot dimensions.
We assign nominal parameter values that produce correct function using
the synthesis algorithm from section 7.2. We assign tolerances to the
parameters and assess their effects. Figure 8.2 shows a detail of the driver-
follower contact zone in the area where the driver unlocks the follower
and the pin enters the follower slot. The width of the contact zone varies
with the sensitivity of the nominal contact configuration to the tolerance
parameters. The upper and lower zones of the diagonal channel intersect,
which suggests that the tolerance space contains design instances that
block.
8.2 Manual Transmission Gearshift 123
Figure 8.3
Gearshift mechanism.
Figure 8.4
Cam-piston (a) configuration space partition and (b) detail of contact zone.
pin. For the pin, we tolerance the circle. Line segments are toleranced by
varying the coordinates of the two endpoints; circle segments are toler-
anced by varying the radius and the center coordinates. To account for
variability in the position of the rotation axes, we also tolerance the centers
of rotation of the cam and the pin. Since we chose the piston as the refer-
ence part of the assembly, there was no need to tolerance the orientation of
its translation axis. The model has 86 tolerance parameters for the cam, 8
for the piston, 5 for the pin, and 99 overall. We assign every parameter an
independent tolerance of G0:1 mm.
Figures 8.4a and 8.5a show the configuration space partitions of the cam-
piston and cam-pin pairs. The degrees of freedom are the cam orientation,
yA , the piston offset along its axis of motion, xB , and the pin orientation,
yC . The cam-piston free space is a narrow diagonal channel whose top and
bottom boundaries represent contacts between the cam pin and the left
and right vertical line segments of the piston slot. The channel width
quantifies the functional play. The kinematic relation is nearly linear. The
cam-piston contact space consists of six ‘‘valleys’’ where the pin is in the
cam slots, separated by ‘‘hills’’ where it switches slots.
We use tolerance analysis to determine the variation of the piston dis-
placement for each cam setting. Figures 8.4b and 8.5b show details of the
pair contact zones. The piston position, xB , has a worst-case variation of
0.41 mm–0.45 mm and the pin orientation, yC , has a worst-case variation
of 0:75 –1:03 .
8.3 Torsional Ratcheting Actuator 125
Figure 8.5
Cam-pin (a) configuration space partition and (b) detail of contact zone.
The torsional ratcheting actuator [70] is a MEMS device designed and fabri-
cated at Sandia National Laboratories Albuquerque, New Mexico. The
design task is to remove intermittent blocking failures. The mechanism
consists of a driver, a ratchet, a ring gear, and an antireverse (figure 8.6a).
The gear and the antireverse are mounted on the substrate with pin joints
and the ratchet is attached to the driver with a pin joint. The driver is
attached to the substrate by springs that allow planar rotation but prevent
translation. The driver is rotated 2:5 counterclockwise by an electrostatic
126 8 Case Studies
Figure 8.6
Torsional ratcheting actuator: (a) image courtesy of Sandia National Laboratories, (b)
detail of the CAD model.
comb drive. The ratchet engages the inner teeth of the gear and rotates it
counterclockwise. When the voltage drops, the springs restore the driver
to its start orientation, which disengages the ratchet. The antireverse pre-
vents the gear from rotating clockwise. Its outer teeth drive an external
load.
We analyze the mechanism using the configuration space method (figure
8.7). The gear-antireverse partition shows that the pair functions correctly.
The slanted contact curve that contains the displayed configuration is due
to the long side of a gear tooth and the top of the antireverse. This contact
causes the antireverse to follow the gear profile when the gear is driven.
The steep contact curve to the left of this curve is due to the short side of
a gear tooth and the side of the antireverse. This contact prevents the gear
from rotating clockwise since every direction in which yG decreases lies in
blocked space. The contact zone shows that both contact curves have the
correct slope for every design instance.
The gear-ratchet pair has a three-dimensional configuration space be-
cause the ratchet rotates around a point on the driver and the driver rotates
around a point on the frame. The contacts are invariant when the driver
and the ratchet are rotated by the same angle, so we analyze the gear-
ratchet pair in a two-dimensional space whose coordinates are the gear ori-
entation and the angle between the driver and the ratchet. Equivalently,
we fix the driver orientation at 0o , which fixes the ratchet’s center of rota-
tion. Figure 8.7e shows the configuration space partition. The near-vertical
8.3 Torsional Ratcheting Actuator 127
Figure 8.7
Initial design: (a–c) details of gear-antireverse pair, partition, and contact zone, (d–f)
details of gear-ratchet pair, partition, and contact zone.
contact curve to the left of the displayed configuration is due to the short
side of a gear tooth and the ratchet tip. This contact causes the gear to ro-
tate with the driver. The contact curve to the right is due to the long side of
the gear tooth and the ratchet back. This contact allows the ratchet to ro-
tate clockwise and disengage the gear.
The contact zone (figure 8.7f) reveals a design flaw that causes intermit-
tent failures: the near-vertical contact curve can have a positive slope in
some design instances, which implies that the gear can rotate clockwise, es-
cape the ratchet, and jump to the next tooth. The failure is intermittent be-
cause friction and inertia normally prevent jumps. We fix the design flaw
with the parameter synthesis algorithm. In the revised design (figure 8.8),
the gear tooth and ratchet slopes are larger, which makes the slope of the
contact curve negative in every design instance.
128 8 Case Studies
Figure 8.8
Gear-ratchet redesign: (a) before tooth and configuration space partition (detail),
(b) draggers, (c) after.
Figure 8.9
(a) Asynchronous gear pair and (b) geometry of reverse gear tooth.
130 8 Case Studies
Figure 8.10
(a) Faculty configuration space partition, and (b) cross-section at c ¼ 0 .
each other until the D patches touch (point 2). The D patch contact ends
when the involutes B mesh (point 3).
The designers observed occasional blocking in which the idler stops
translating before the gears mesh, owing to an interfering contact. Figure
8.9b also shows the path of the blocking contact point. The chamfer arcs e
touch (point 4) then slide along each other until the C patches touch
(point 5). The motion ends prematurely, owing to a contact between the
C patches of an adjacent pair of teeth (point 6).
We use the configuration space method to find the initial configurations
that lead to blocking and modify the design to eliminate blocking. The
degrees of freedom are the idler rotation y and translation z, and the reverse
gear rotation c. Hence, the free space is three-dimensional and the contact
space is two-dimensional. The contact space consists of two ‘‘hills’’ sepa-
rated by a sloping ‘‘valley’’ (figure 8.10). We have not discussed the con-
struction of three-dimensional partitions for spatial parts. The algorithm is
analogous to the one for fixed-axis pairs, with contact curves and planar
partitions replaced by contact surfaces and spatial partitions.
Figure 8.10b shows an engaging path and a blocking path in the c ¼ 0
cross-section. The driving motion is idler translation in the negative z direc-
tion. Initially, the idler is away from the reverse gear and the gear orienta-
tions y and c can take any value. The idler translates (z decreases) until
contact and then the gears rotate together. The idler engages if the path
reaches z ¼ 0 mm and blocks if the path ends in the valley. A path blocks
8.4 Spatial Asynchronous Gear Pair 131
Figure 8.11
(a) Correct partition of configuration space (b) with cross-section.
based on its initial y and c values. Measuring the contact space valley
shows that 4% of paths block.
We eliminate blocking in two steps. A manual search of the design space
reveals a design instance with 0.5% blocking. The contact space peaks
move closer together, but the valley remains. The parameter synthesis algo-
rithm might find a better design and would certainly be faster, but it has
not been implemented for spatial parts. We eliminate blocking by remov-
ing every second idler guiding chamfer, which is a conceptual redesign.
Figure 8.11 shows the partition of the modified design with the original
dimensions of the parts. One peak has disappeared, so there is no valley
and thus no blocking.
9 Conclusion
We have presented the configuration space paradigm for the kinematic de-
sign of mechanisms. This paradigm supports robust and optimal kinematic
design of mechanisms by automating key tasks in the design cycle (figure
1.4). The main contribution of our work is support for higher-pair design.
Our research strategy is to identify important mechanism classes, to study
them in depth, and to develop efficient algorithms that support their de-
sign and analysis.
Configuration space is a complete, compact geometric representation of
the motion and interaction of parts. It provides a principled approach to
modeling the kinematics of mechanisms uniformly and systematically,
including planar and spatial mechanisms with lower and higher pairs, con-
tact changes, and topology changes. It covers nominal kinematics and ki-
nematic variation that is due to manufacturing variation.
Within the configuration space paradigm, we have developed an efficient
computational approach to the kinematics of contacts between parts. We
systematically derived explicit, closed-form algebraic contact models for
the most common planar feature contacts and outlined a general numerical
contact model. We developed computational geometry algorithms for the
construction of two- and three-dimensional configuration space partitions
to model the contacts in kinematic pairs. The algorithms construct kine-
matic models from parametric descriptions of the parts’ shapes and degrees
of freedom.
Based on the representation of configuration space, we developed effi-
cient algorithms to supports the core design tasks of analysis, tolerancing,
and synthesis. For analysis, we developed algorithms for kinematic and
dynamical simulation of mechanisms with changes in contact. For toler-
ancing, we developed algorithms for parametric worst-case tolerance analy-
sis that are more accurate, efficient, and comprehensive than Monte Carlo
134 9 Conclusion
Research Directions
Contents
The pair consists of a rotating cam with orientation yC that drives a verti-
cally translating follower with position yF . The cam contour consists of
three arc segments whose endpoints lie on a circle. The center of rotation
coincides with the common endpoint of two incident arcs. The follower
consists of a rectangular frame whose inner parallel horizontal line seg-
ments touch the cam.
A full rotation of the cam drives the follower up and down with two
dwell periods in between. The dwell periods are at configurations where
the common endpoint at the center of rotation touches the frame’s upper
and lower horizontal line segments. The contact point between the arc seg-
ment opposite the contact point and the follower lies on a circle of con-
stant radius. The pair is bidirectional.
The configuration space partition consists of a single narrow channel
whose nearly constant vertical height is the follower’s backlash (play). The
upper and lower horizontal channel segments correspond to the dwell pe-
riod. The slanted left and right channel segments correspond to the driving
periods. Its boundaries are sinusoidal curves.
140 Appendix A: Catalog of Mechanisms
The pair consists of a rotating cam with orientation yC that drives a verti-
cally translating follower with position yF . The cam contour consists of
three arc segments whose endpoints lie on a circle. Its center coincides
with the cam’s center of rotation. The follower consists of a rectangular
frame whose inner horizontal line segments touch the cam. The distance
between the upper and lower contact points is constant, so the cam fits
tightly inside the follower without interference.
A full rotation of the cam drives the follower up and down three times at
evenly spaced intervals. In each interval, one cam arc segment touches one
horizontal follower line segment. The transitions occur at the cam’s end-
points. The pair is bidirectional.
The configuration space partition consists of a single narrow channel
whose vertical width is the follower’s backlash. The slanted left and right
channel segments correspond to the driving periods, whose boundaries are
sinusoidal curves. The short horizontal segments represent the dwell peri-
ods when the cam rotates inside the follower without pushing it. The rising
and falling segments represent the periods when the cam pushes the fol-
lower right and left. The cam arc segment breaks contact with one side of
the follower at the start of each dwell period. The next arc segment makes
contact with the opposite vertex of the cam at the end of the dwell period.
The vertical channel width is the follower’s backlash. Although the pair is
structurally similar to pair 1 (the offset three-arc cam pair), the change in
the cam rotation center yields a different kinematic function.
3 Six-Arc Cam Pair 141
The pair consists of a rotating cam with orientation yC that drives a hori-
zontally translating follower with position xF . The cam’s contour consists
of three convex circular arc lobes connected by three concave tangent cir-
cular arcs. The follower consists of two circular pins mounted on a rectan-
gular frame.
A full rotation of the cam drives the follower left and right three times at
evenly spaced intervals. The cam lobes alternately push the left and right
pins. Since the distance between the left and right contacts is constant,
the cam fits tightly between the two pins without interference. The pair is
bidirectional.
The configuration space partition consists of a single narrow channel
whose nearly uniform vertical width is the follower’s backlash. The slanted
left and right channel segments correspond to the driving periods, whose
boundaries are sinusoidal curves. The rising and falling segments of the
kinematic simulation represent the periods when the cam pushes the fol-
lower right and left. Pair 2 has a similar function, but this pair has less back-
lash and no dwell.
142 Appendix A: Catalog of Mechanisms
6 Geneva Pair
The pair consists of a rotating driver with orientation yD and a rotating in-
verse Geneva wheel with orientation yW . The driver consists of a driving
pin and a concentric locking arc segment. The Geneva wheel consists of a
cylindrical base with three slots on which three locking arc segments are
symmetrically mounted.
As the driver rotates, the pin engages the inverse Geneva wheel slots and
rotates the wheel in the same direction. The locking arc segments of the
driver engage those of the wheel during the idle periods, thereby prevent-
ing the wheel from rotating. A full rotation of the driver causes a nearly
uniform, intermittent rotation of the wheel, with three dwell periods and
three drive periods. The pair is bidirectional.
The configuration space partition consists of a single narrow channel
whose nearly uniform vertical width is the wheel’s backlash. The slanted
channel segments correspond to the driving periods, whose boundaries are
sinusoidal curves. Compared with the pair 6 partition, the channels are
slanted in the opposite direction and the driving periods are longer.
146 Appendix A: Catalog of Mechanisms
The pair consists of a rotating driver with orientation yD and a rotating fol-
lower with orientation yF . The driver consists of a rectangular pin mounted
on a base. The follower consists of two square pins symmetrically mounted
on a disk. The centers of rotation for both parts are offset.
As the cam rotates, its rectangular pin pushes the follower square pin for
half a turn. The pins then slide out of engagement because of the eccentric-
ity of the axes of rotation. The follower is idle during the second half of the
cam rotation. The rectangular pin of the cam then engages the second
square pin of the follower for another half turn. The pair is bidirectional.
The configuration space partition consists of two slanted elongated strips
that nearly span a full turn. The strip boundaries correspond to the contact
of the driver pin with one of the square follower pins. The kinematic simu-
lation has a horizontal segment in free space where the driver rotates and
the follower is idle, and a slanted segment where the driver rotates the fol-
lower for nearly half a turn.
9 Interlock Pair 147
9 Interlock Pair
The pair consists of a rotating driver lock with orientation yD and a rotating
star-shaped follower with orientation yF . The driver lock consists of an arc
segment centered at the center of rotation and of a line segment. The fol-
lower star consists of six arc segments whose centers coincide with the cen-
ter of rotation of the lock.
The driver lock locks the follower star at six orientations. The orienta-
tion of the follower star can be changed by first turning the lock so that the
line segment faces it vertically, then rotating it. When the follower star is
spring loaded one way and the driver rotates the other way, the follower
turns one-sixth of a turn for each rotation of the driver lock. The pair is
bidirectional.
The configuration space partition consists of six identical slabs that span
360 . The narrow horizontal channels between slabs correspond to config-
urations in which the driver rotates and the follower is locked. At the end
of the channel, the follower star turns until it enters the next horizontal
channel.
148 Appendix A: Catalog of Mechanisms
The pair consists of a rotating driver with orientation yD and a rotating star-
like indexer with orientation yI . The driver consists of a disk with a recess
that allows the cusps of the indexer arc segment to pass underneath. The
indexer consists of ten arc segments whose centers coincide with the center
of rotation of the driver. The indexer is spring loaded counterclockwise.
A full counterclockwise rotation of the driver advances the indexer clock-
wise by one-tenth of a turn and locks it for the rest of the rotation. If the
indexer were not spring loaded counterclockwise, it would not engage the
driver slot and thus would not advance. If the spring is too weak, the driver
slot passes the indexer pin before it can engage, so the indexer does not ad-
vance. The pair is unidirectional.
The configuration space partition consists of ten horizontal and ten
slanted narrow channels. The horizontal channels correspond to the dwell
periods of the indexer. The slanted channels correspond to the driving peri-
ods. The channel width is the backlash between the driver and the indexer,
which is largest at transitions between drive and dwell periods. The config-
uration space partition, and thus the kinematic function, is nearly identical
to that of pair 11.
11 Disk Indexer Pair 149
The pair consists of a rotating driver with orientation yD and a rotating in-
dexer with orientation yI . The driver consists of a driving finger and a lock-
ing arc mounted on a disk (not shown). The indexer has eight trapezoidal
pins evenly spaced on a circular base.
Continuous counterclockwise rotation of the driver causes intermittent
clockwise rotation of the indexer. In drive periods, the driver pin engages
one indexer pin and advances the indexer one-eighth of a turn. In dwell
periods, the locking arc engages two adjacent indexer pins and prevents
the rotation of the indexer. The pair is unidirectional.
The configuration space partition consists of eight horizontal narrow
channels and eight free space regions in between. The horizontal channels
correspond to the dwell periods of the indexer. The channels’ width is the
play between the driver and the indexer. The free space regions have a nar-
row channel. The kinematic simulation consists of a slanted segment where
the driver pushes the indexer, followed by a long horizontal segment, fol-
lowed by a short slanted segment. Unlike pairs 10 and 11, spring loading
the indexer is unnecessary. The configuration space partitions are similar.
13 Interlock Drive Pair 151
14 Ratchet Pair
15 Escapement Pair
The pair consists of a rotating wheel with orientation yW and a rotating an-
chor with orientation yA . The wheel consists of 30 slanted triangular teeth.
The anchor consists of left and right triangular pallets that alternately en-
gage the wheel teeth. Attached to the anchor is a pendulum (not shown)
that oscillates with a constant period. The wheel rotates counterclockwise,
owing to a torque acting on its hub.
As the anchor oscillates, the pallets alternately engage teeth on the left
and right sides of the wheel. The wheel advances one tooth each oscilla-
tion. It rotates at a constant velocity that is determined by the period of
the anchor. The timing is such that the wheel advances one tooth every
second.
The figure shows a detail of the configuration space partition. The upper
and lower boundaries correspond to contacts of the right and left anchor
pallets with the teeth. The interleaved boundaries prevent the wheel from
rotating freely. In the kinematic simulation curve, the nearly horizontal
segments on the boundary show that the anchor oscillates back and forth
while the wheel follows it. The nearly vertical segments in free space show
that the wheel rotates quickly in between.
154 Appendix A: Catalog of Mechanisms
The pair consists of a rotating sector gear with orientation yG and a hori-
zontally translating follower with position xF . The sector gear has teeth
that span less than half of its circumference. The follower has geared racks
at the top and the bottom of its inner perimeter. The upper and lower racks
are offset with respect to each other. The sector gear alternately engages the
upper and lower racks, pushing the follower left and right.
Continuous rotation of the sector gear causes the follower to move left
and right without dwell. The maximum displacement of the follower is
equal to the perimeter of the sector gear. The pair is bidirectional.
The configuration space partition consists of a narrow channel with three
nearly linear segments: two right slanted and one left slanted. The channel
width is the play between the driver and the indexer. The slanted segments
correspond to the right and left motions of the follower.
17 Sector Gears Pair 155
The pair consists of a rotating sector gear with orientation yA and a rotating
full gear with orientation yB . The gears have equal radii. The sector gear has
8 teeth, while the full gear has 16. When the gears are engaged and one
gear rotates in either direction, the other gear rotates in the opposite direc-
tion by the same angle. Two pairs of teeth are engaged at all times. The
transmission ratio is almost linear, with slight backlash and chatter. When
the gears are disengaged, their rotations are independent.
Continuous rotation of the sector gear causes the full gear to alternately
rotate half a turn and dwell. Continuous rotation of the full gear causes the
half gear to rotate in the opposite direction by at most half a turn. The pair
is bidirectional.
The configuration space partition consists of 16 slanted narrow channels
and a free space region (right). The slanted channels correspond to the driv-
ing periods at each of the 16 possible relative orientations in which the
gears are engaged. The channel width is the play between the two gears.
The horizontal segment of the kinematic simulation represents the dwell
period when the sector gear turns and the full gear is at rest. The slanted
line segment represents the gears rotating in opposite directions.
156 Appendix A: Catalog of Mechanisms
The pair consists of a rotating driver sector gear with orientation yD and a
rotating follower gear with orientation yF . The driver is a concentric arc seg-
ment mounted on a gear sector with ten trapezoidal teeth. The follower is a
star-shaped disk mounted on a gear wheel. It has ten outer locking arc seg-
ments and ten teeth. The pair is a combination of pairs 9 and 17.
As the driver rotates counterclockwise, the driver sector gear engages and
turns the gear wheel clockwise. When the sector disengages, the concentric
arc segment engages one of the ten concave arcs of the star-shaped disk,
thereby locking it in a dwell position. A full rotation of the driver advances
the follower by one-tenth of a rotation. The pair is bidirectional.
The configuration space partition consists of ten horizontal and ten
slanted narrow channels. The horizontal channels correspond to the dwell
periods of the indexer. The slanted channels correspond to the driving peri-
ods. The channel width is the play between the driver and the follower
gears, which is largest at transitions between drive and dwell periods. The
configuration space partition is similar to those of pairs 9–12.
19 Double-Sector Gears Pair 157
The pair consists of two rotating parts with orientations yA and yB . Each
part consists of concentric large and small sector gears. Part A has a large
gear sector with 10 teeth on top and a small gear sector with 17 teeth be-
low. Part B has a small gear sector with 10 teeth on top and a large gear sec-
tor with 18 teeth below. The corresponding small and larger gear sectors on
top and bottom alternatively engage. The pair has a structure similar to pair
17.
Rotating A causes B to rotate once in the opposite direction. The gear
ratio is 2:3 when the lower gears segments mesh and is 2:1 when the upper
gears segments mesh. The transmission is almost linear, with slight play
and chatter. The pair is bidirectional.
The configuration space partition consists of two types of slanted narrow
channels and two free space regions. The slanted channels correspond to
the driving periods at each relative orientation in which the gears engage.
The channel width corresponds to the play between the two gears. The dif-
ferent inclinations of the channels correspond the gear ratios of 2:1 and
2:3. The configuration space partition is the overlay of two shifted versions
of the pair 17 partition.
158 Appendix A: Catalog of Mechanisms
The pair consists of a rotating driver with orientation yD and a rotating fol-
lower with orientation yF . The driver consists of two cylindrical guides con-
nected by a slanted crossover. The follower is a gear with 21 rectangular
teeth. The rotation axes of the parts are perpendicular.
A full rotation of the driver advances the follower by one tooth. The
crossover rotates the follower, then the guides lock it for the remainder of
the driver’s rotation. The pair is bidirectional.
The figure shows a detail of the configuration space partition; the full
partition consists of 21 horizontal and slanted channels. The horizontal
channels correspond to the dwell periods of the follower. The slanted chan-
nels correspond to the driving periods. The channel width is the play be-
tween the driver and the follower.
160 Appendix A: Catalog of Mechanisms
The pair consists of a rotating cam with orientation yA and a rotating fol-
lower with orientation yB . The cam is a plate with a cylindrical pin and a
half cylinder mounted on it. The follower is a hollow hemisphere with
four evenly spaced slots and circular cutouts. The follower’s inner boundary
consists of a spherical patch with four slots and four cutouts. As the cam
rotates, the pin engages the follower slots and rotates it nonuniformly in
the opposite direction. The cam cylinder engages a follower cutout during
the idle periods, preventing its rotation.
As the driver rotates, the pin engages the Geneva wheel slots and rotates
it nonuniformly in the opposite direction. The locking arc segments of the
driver engage those of the wheel during the idle periods, thereby prevent-
ing the wheel from rotating. A full rotation of the driver causes a nonuni-
form, intermittent rotation of the wheel with four dwell periods and four
drive periods. The pair is bidirectional.
The configuration space partition consists of single narrow channel
whose nearly uniform vertical width is the wheel’s backlash. The slanted
channel segments correspond to the driving periods, whose boundaries are
sinusoidal curves. The configuration space partition is nearly identical (with
a 90 shift) to that of the planar Geneva pair 6.
23 Spatial Orthogonal Gear Pair 161
engage. The channel width is the play between the two gears. The free
space corresponds to independent gear rotations. The configuration space
partitions are identical to that of pair 17.
25 Counter Mechanism
The pinion rotates clockwise and advances the gear by one tooth per ro-
tation. Reverse rotation is prevented by the pawl blocking against the an-
chor. Forward rotation is limited to one tooth per cycle.
The figure shows details of the configuration space partitions of the two
pairs. Both partitions consist of slanted elongated strips forming narrow
channels. The kinematic simulation consists of horizontal segments in free
space where the pinion rotates and the gear is idle, and of a slanted seg-
ment where the pinion rotates the gear clockwise by one-seventy-second
turn, which in turn rotates the pawl clockwise.
the driver is disengaged (a), its rim aligns with the left pawl arm, which pre-
vents clockwise rotation, and the right pawl arm prevents indexer rotation
by engaging two pins. When the driver engages the indexer, its notch
aligns with the left pawl arm, which allows the bottom indexer pin to ro-
tate the right pawl arm out of the way (b). When it disengages, the left
pawl arm returns to its rim and the right arm re-locks the indexer (c). The
mechanism is unidirectional.
The driver-indexer free space consists of ten diagonal channels where the
finger engages the ten pins. The negative slope indicates that the parts ro-
tate in opposite directions. The rest of free space consists of the regions to
the left and right of the channels where the driver is disengaged. The driver-
pawl free space is bounded from below by the rim-left arm contact curve,
which is horizontal, and by the notch-left arm contact curves, which form
a v-shape. The horizontal curve blocks downward vertical motion, which
corresponds to clockwise pawl rotation, whereas the slanted curves permit
it. The indexer-pawl free space is bounded from above by the pin-right arm
contact curves, which form ten inverted v-shapes. When yI increases or
decreases, yP decreases along one side of the v-shape. Thus, indexer rota-
tion in either direction causes clockwise rotation of the pawl.
166 Appendix A: Catalog of Mechanisms
ures. The follower configuration is ð0; 0; 0Þ and the gear degrees of free-
dom are ðxG ; yG Þ. In (a), free space consists of three regions. In the middle
region, which contains the snapshot configuration, the right follower pawl
engages a gear tooth. In the region above and below, the pawl engages the
tooth below and above, respectively. In (b), the three regions have merged
into a single region, which shows that the follower can now cross over the
two gear teeth. In (c), free space once again consists of three regions and
the middle region contains the snapshot configuration in which the left
pawl engages a gear tooth.
to follow the indexer teeth. The pin is a rectangular block. The lever has a
rounded triangular tip shaped to engage the indexer teeth, a cylindrical
hole that fits over the cam, and a rectangular slot that fits over the pin.
The mechanism advances the indexer wheel by one tooth (15 ) for every
turn of the driver. As the driver turns clockwise, the lever tip traces a closed
trajectory whose form is determined by the relative position of the driver
and pin rotation axes, the driver’s offset, and the length of the lever. This
causes the indexer to rotate counterclockwise by 15 . The pawl prevents
clockwise rotation of the indexer. The mechanism is unidirectional.
The indexer-pawl partition detail shows that the vertical boundary seg-
ment is what prevents clockwise rotation of the indexer. The pair 14 parti-
tion is similar. The right-hand figure is a detail of the cross-section of the
indexer-lever partition.
Figure A.1
Camera shutter mechanism: (a) 3D view, (b) 2D view.
30 Camera Shutter Mechanism 171
Figure A.2
Pairs and details of their configuration space partitions: (a–b) driver-shutter tip, (c–d)
driver-shutter lock, (e–f) driver-film.
172 Appendix A: Catalog of Mechanisms
Figure A.3
Pairs and details of their configuration space partitions: (a–b) driver-film counter,
(c–d) shutter lock-shutter pin, (e–f) advance wheel-pawl.
30 Camera Shutter Mechanism 173
driver-film is a single narrow channel that shows the nearly linear relation
between the driver’s rotation and the film advance with almost no play.
Figure A.3b,d,f shows details of configuration space partitions for three
driver pairs. The configuration space partition for the driver counter-film
counter consists of narrow channels at each tooth orientation. Note that
the driver counter locks the film counter when not advancing it (figure
A.3b). The notch in the configuration space partition for the shutter lock-
shutter pin (figure A.2d) shows how the shutter lock locks and releases the
shutter pin. The configuration space partition for the advance wheel-pawl
(figure A.2f) is similar to the configuration space partition for pair 14.
Appendix B: HIPAIR Software
B.1 Installation
% make
% hipair ex/3finger
If the argument is omitted, HIPAIR prompts for it and reads it from stan-
dard input. In Windows, create a project with the source file suffix changed
to .cpp and with glut installed.
The program opens a parts windows and one cspace (configuration space)
window per pair (figure B.1). The windows can be resized. The parts win-
dow shows the parts in the current configuration. Each cspace window
shows its configuration space with the animation path in red, the
176 Appendix B: HIPAIR Software
Figure B.1
Parts window (a) and cspace window (b) for ex/3finger.
current configuration as a green dot, and the contact zone in green when
requested. The program normally displays the current animation step. The
user can increase or decrease the step, or can animate the mechanism. The
animation starts at the current step and ends at the last step or when inter-
rupted. The animation speed is specified as a multiple of one-thirtieth of a
second. The user can specify an arbitrary configuration with the mouse.
The next animation request resets the configuration to the current anima-
tion step. The user can set the contact zone width and can toggle the con-
tact zone display.
The program is controlled by the mouse. Press, drag, and release the left
button to zoom to a rectangle. Click the middle button in a cspace window
to set its two configuration parameters to the mouse’s position. Click the
right button to bring up this menu. The menu entries can also be invoked
by typing the letters in parentheses.
n
Start/stop animation (a).
n
Next animation step (n).
n
Previous animation step (p).
n
Set animation speed (s).
n
Draw parts in wireframe/filled (f).
n
Restore initial viewing box (r).
n
Show/hide contact zones (z).
n
Set contact zone width (w).
n
Save window in postscript (o).
n
Exit (q).
B.3 Mechanisms 177
Figure B.2
Square-circle pair (a) and its configuration space partition (b).
B.3 Mechanisms
B.3.1 Parts
A part is specified in a parts coordinate system. The part consists of regions
in the xy plane that are extruded over intervals on the z axis. A region has
an outer boundary and may also have inner boundaries. A boundary is a
simple loop of line and circle segments.
For example, a cylinder of 10 mm height is specified as a circle in the xy
plane that is extruded over 0 a z a 10. The region boundaries of a slice
must be disjoint, but slices may overlap. A part has an initial position and
orientation in world xy coordinates. It has one degree of freedom: rotation
around its origin, which is fixed at its initial position, or translation along a
line that passes through its initial position.
Figure B.2a shows a simple mechanism composed of two parts. Each part
consists of a single slice with z range ½0; 1. The first part is a unit square. Its
origin is the bottom left corner. Its boundary consists of four line segments.
The part rotates with initial position ð1; 1Þ and orientation 0. The second
part is a circle of radius 1 whose origin is the circle’s center. The part trans-
lates horizontally with initial position ð3; 1Þ and orientation 0.
178 Appendix B: HIPAIR Software
Figure B.3
Square-circle contact zone.
B.4 Input Format 179
tact space, which shows that variation in the parts merely perturbs the
nominal kinematic function.
B.4.1 Mechanisms
The mechanism format is specified by the following BNF formulas. The first
line specifies the number of parts and pairs, then come the parts, then the
pairs. The parts are assigned indices starting from zero. A pair is specified by
two part indices and the accuracy of the configuration space computation.
B.4.2 Parts
A part is specified by a name, number of slices, color, parameters, and slices.
The name is a character string. The color is three integers in the range
½0; 255 followed by a dummy integer. The parameters are seven doubles.
Parameter 1 is the motion type: 1 for translation along the x axis, 2 for
translation along the y axis, 3 for rotation, and 4 for translation along a
slanted axis. Parameters 2–4 are the initial position and orientation of the
part. Parameters 5–6 are the lower and upper bounds of the part’s motion
parameter. For motion type 4, parameter 7 is the slope of the translation
axis. The motion parameter and its bounds are measured along this axis.
A slice is specified by the number of boundaries, the lower and upper z
values, the outer boundary, and the inner boundaries. A boundary is speci-
fied by the number of segment groups followed by the groups. A group is a
sequence of incident segments and a sequence of offsets. A segment is
specified by a dummy index, 0 or 1 for a line or circle, a tail ðtx ; ty Þ, a head
180 Appendix B: HIPAIR Software
Figure B.4
Square-circle file format.
ðhx ; hy Þ, and a flag that is 1 when the part’s interior lies to the left when the
segment is traversed from tail to head. A circle segment also has a center
ðcx ; cy Þ, radius r, start angle s, and end angle e.
The segments in the group are repeated noffset times and the ith copy is
offset by the ith element of the offset sequence. The offset is along the part’s
motion axis: the segments of a rotating part are rotated and the segments
of a translating part are translated. Offsets are optional since any boundary
can be specified as one group with noffset 1 and offset 0.
Figure B.4 illustrates the file format with the square-circle mechanism
from figure B.2. The first line indicates two parts and one pair. Lines 3–11
describe the first part. Line 3: name ‘‘square,’’ one slice, and red green blue
(RGB) color ð255; 0; 0Þ. Line 4: motion type 3 (rotation), initial position
ð1:0; 1:0Þ, initial orientation 0:0 radians, and rotation range ½p; p radians.
Line 5: the slice has one boundary and has z extent ½0:0; 1:0. Line 6: the
boundary consists of one sgroup with four segments. Lines 7–10: four line
segments. Line 11: trivial shift sequence, explained next. Lines 13–20 spec-
ify the circle: name ‘‘circle,’’ one slice, RGB color ð0; 255; 0Þ, motion type 1
B.4 Input Format 181
Figure B.5
Geneva pair (a) and its configuration space (b).
Figure B.6
Follower file format.
7.0 1 0 -1.0
5.0 1 1 3.0
0 3
The display data are two dummy values followed by a part bounding box.
It is
0 0 -5 5 -5 5
in our example.
Glossary
conceptual design the task of selecting a design concept that captures the desired
kinematic function.
configuration space vector space that specifies all possible configurations for a part
or a mechanism.
configuration space, contact space subspace of configuration space where parts are
in contact.
configuration space, free space subspace of configuration space where parts are
disjoint.
contact parts whose interiors are disjoint and whose boundaries overlap.
184 Glossary
contact equations equation in the configuration variables of two parts whose zero
set consists of contact configurations.
contact type contact between two features of a part. Contact types between simple
planar features include circle-circle, circle-line, line-line, vertex-vertex, circle-vertex,
and line-vertex contacts.
contact zone union of the contact spaces of the mechanisms in a tolerance space.
design space hyperbox in a configuration space that is the cross-product of one de-
sign interval per parameter.
dynamical simulation computation of the motions of parts resulting from the input
and external forces acting on the parts.
feature element of a part’s boundary. Simple features include points and line and
arc segments in the plane and vertex, edges, or faces in space.
fixed-axis mechanism mechanism whose parts move along axes that are fixed in
space.
general planar pair two parts whose relative motions are circumscribed to a plane.
higher pair two parts not in permanent surface contact that move relative to each
other.
HIPAIR open-source Cþþ software package that implements some of the kinematic
design methods for mechanisms described in this book.
kinematic variation changes in the kinematic function of a mechanism that are due
to variations in the shapes and configuration of its parts.
lower pair two parts in permanent surface contact that move relative to each other.
nominal model parametric model with parameter values that achieve the intended
kinematic function in the absence of variation that is due to manufacturing.
parametric design search for values of parameters that achieve a design goal.
tolerance space hyperbox in parameter space that is the cross-product of one toler-
ance interval per parameter.
[3] Jorge Angeles, Gunter Hommel, and Peter Kovacs. Computational Kinematics.
Springer-Verlag, New York, 1999.
[4] Jorge Angeles and Carlos Lopez-Cajun. Optimization of Cam Mechanisms. Kluwer
Academic Publishers, Dordrecht, Boston, London, 1991.
[5] Ivan Artobolevsky. Mechanisms in Modern Engineering Design, vols. 1–4. MIR Pub-
lishers, Moscow, 1979. English translation.
[6] Chandrajit L. Bajaj and M.-S. Kim. Generation of configuration space obstacles:
The case of moving algebraic curves. Algorithmica, 4(1):157–172, 1989.
[7] Chandrajit L. Bajaj and M.-S. Kim. Generation of configuration space obstacles:
The case of moving algebraic surfaces. International Journal of Robotics Research,
9(1):92–112, 1990.
[8] Eric Ballot and Pierre Bourdet. A computation method for the consequences of
geometric errors in mechanisms. In H. Elmaraghy, editor, Geometric Design Toleranc-
ing: Theories, Standards, and Applications, pages 197–207. Chapman and Hall, 1998.
[9] Pierre Bourdet and Luc Matthieu. Geometric Product Specification and Verification:
Integration of Functionality. Kluwer Academic Publishers, Dordrecht, Boston, London,
2003.
[10] Randy Brost and Kenneth Goldberg. A complete algorithm for synthesizing
modular fixtures for polygonal parts. IEEE Transactions on Robotics and Automation,
12(1):31–46, 1996.
[12] Michael E. Caine. The design of shape interactions using motion constraints. In
Proc. of the IEEE Int. Conference on Robotics and Automation, pages 366–371, 1994.
[13] Kenneth Chase. Basic tools for tolerance analysis of mechanical assemblies. In
H. Geng, editor, Manufacturing Engineering Handbook, chapter 7. McGraw-Hill, 2004.
[14] Sao-Chyi Chen, Gary L. Kinzel, and David J. Kuhlmann. A numerical method
for the kinematic analysis of planar higher pairs in rolling contact. Mechanism and
Machine Theory, 20(6):565–575, 1985.
[17] André Clemént, Alain Rivière, and Catherine Valade. The TTRS: 13 oriented
constraints for dimensioning, tolerancing, and inspection. In F. Pavese P. Ciarlini,
M. G. Cox and D. Richter, editors, Advanced Mathematical Tools in Metrology III, vol-
ume 45 of Series on Advances in Mathematics for Applied Sciences, pages 24–42. World
Scientific, 1997.
[20] Bruce R. Donald. A search algorithm for motion planning with six degrees of
freedom. Artificial Intelligence, 31(3):295–353, 1987.
[21] Arthur G. Erdman. Modern Kinematics: Developments in the Last Forty Years.
Wiley, New York, 1993.
[22] Arthur G. Erdmann and George N. Sandor. Mechanism Design: Analysis and Syn-
thesis, vols. 1–2. 3rd ed. Prentice Hall, Englewood Cliffs, NJ, 1997.
[26] Max Gonzales-Palacios and Jorge Angeles. Cam Synthesis. Kluwer Academic Pub-
lishers, Dordrecht, Boston, London, 1993.
References 189
[30] J. Horton and F. Jones, editors. Ingenious Mechanisms for Designers and Inventors,
vols. 1–4. Industrial Press, New York, 1951.
[32] Javier Garcia de Jalon and Eduardo Bayo. Kinematic and Dynamic Simulation of
Multibody Systems. Springer-Verlag, New York, 1993.
[33] Preben W. Jensen. Classical and Modern Mechanisms for Engineers and Inventors.
Marcel Dekker, New York, 1991.
[34] Leo Joskowicz and S. Addanki. From kinematics to shape: An approach to inno-
vative design. In Proc. of the National Conference on Artificial Intelligence, pages 347–
352. AAAI Press, 1988.
[35] Leo Joskowicz and R. H. Taylor. Interference-free insertion of a solid body into a
cavity: An algorithm and a medical application. International Journal of Robotics Re-
search, 15(3):211–229, 1996.
[37] Leo Joskowicz. Reasoning about the kinematics of mechanical devices. Interna-
tional Journal of Artificial Intelligence in Engineering, 4(1):22–31, 1989.
[38] Leo Joskowicz. Mechanism comparison and classification for design. Research in
Engineering Design, 1(3–4):149–167, 1990.
[39] Leo Joskowicz and Dorothy Neville. A representation language for mechanical
behavior. Artificial Intelligence in Engineering, 10(1):109–116, 1996.
[40] Leo Joskowicz and Elisha Sacks. Computational kinematics. Artificial Intelligence,
51(1–3):381–416, 1991.
[41] Leo Joskowicz, Elisha Sacks, and Vijay Srinivasan. Kinematic tolerance analysis.
Computer-Aided Design, 29(2):147–157, 1997.
[42] Ku-Jim Kim, Elisha Sacks, and Leo Joskowicz. Kinematic analysis of spatial fixed-
axis higher pairs using configuration spaces. Computer-Aided Design, 35(3):279–291,
2002.
190 References
[43] Shridar Kota and Shean-Juinn Chiou. Design representation and computational
synthesis of mechanical motions. In Design theory and Methodology. ASME Press,
1992.
[44] Min-Ho Kyung and Elisha Sacks. Nonlinear kinematic tolerance analysis of pla-
nar mechanical systems. Computer-Aided Design, 35(10):901–911, 2003.
[45] Min-Ho Kyung and Elisha Sacks. Parameter synthesis of higher kinematic pairs.
Computer-Aided Design, 35:567–575, 2003.
[46] Min-Ho Kyung and Elisha Sacks. Robust parameter synthesis for planar higher
pair mechanical systems. Computer-Aided Design, 38(5):518–530, 2006.
[47] Jean-Claude Latombe. Robot Motion Planning. Kluwer Academic Publishers, Bos-
ton, 1991.
[48] Leo Joskowicz and Dorothy Neville. A representation language for mechanical
behavior. Artificial Intelligence in Engineering, 10:109–116, 1996.
[49] C. L. Li, K. W. Chan, and S. T. Tan. A configuration space approach to the auto-
matic design of multiple-state mechanical devices. Computer-Aided Design, 31:621–
653, 1999.
[50] Ming C. Lin, Dinesh Manocha, Jon Cohen, and Stefan Gottschalk. Collision de-
tection: Algorithms and applications. In Jean-Paul Laumond and Mark Overmars,
editors, Algorithms for Robotic Motion and Manipulation, pages 129–141. A. K. Peters,
Boston, MA, 1997.
[51] Faydor L. Litvin. Gear Geometry and Applied Theory. Prentice Hall, Engleword
Cliffs, NJ, 1994.
[53] Martti Mantyla. An Introduction to Solid Modeling. Computer Science Press, Col-
lege Park, MD, 1988.
[55] John M. McCarthy. Kinematics of Robot Manipulators. MIT Press, Cambridge, MA,
1987.
[59] Parviz E. Nikravesh. Planar Multibody Dynamics. CRC Press, Abingdon, England,
2007.
[61] Panos Papalambros and Douglass Wilde. Principles of Optimal Design. Cambridge
University Press, 1988.
[62] Richard P. Paul. Robot Manipulators: Mathematics, Programming, and Control. MIT
Press, Cambridge, MA, 1981.
[63] Umberto Prisco and Giuseppe Giorleo. Overview of current CAT systems. Inte-
grated Computer-Aided Engineering, 9(4):373–387, 2002.
[64] Rajan Ramaswamy. ‘‘Computer tools for preliminary parametric design.’’ PhD
thesis, Massachussetts Institute of Technology, Cambridge, MA, 1993.
[65] Charles F. Reinholtz, Sanjay G. Dhande, and George N. Sandor. Kinematic anal-
ysis of planar higher pair mechanisms. Mechanism and Machine Theory, 13:619–629,
1978.
[68] Elisha Sacks. Practical sliced configuration spaces for curved planar pairs. Inter-
national Journal of Robotics Research, 18(1):59–63, 1999.
[69] Elisha Sacks. Path planning for planar articulated robots using configuration
spaces and compliant motion. IEEE Transactions on Robotics and Automation, 19(3),
2003.
[70] Elisha Sacks and Steven M. Barnes. Computer-aided kinematic design of a tor-
sional ratcheting actuator. In Proc. of the Fourth Int. Conference on Modeling and Simu-
lation of Microsystems. Nara Sciences and Technology Institute, Hilton Head, SC,
2001.
[71] Elisha Sacks and Leo Joskowicz. Computational kinematic analysis of higher
pairs with multiple contacts. Journal of Mechanical Design, 117(2(A)):269–277, 1995.
[72] Elisha Sacks and Leo Joskowicz. Parametric kinematic tolerance analysis of pla-
nar mechanisms. Computer-Aided Design, 29(5):333–342, 1997.
192 References
[73] Elisha Sacks and Leo Joskowicz. Parametric kinematic tolerance analysis of gen-
eral planar systems. Computer-Aided Design, 30(9):707–714, 1998.
[74] Elisha Sacks, Leo Joskowicz, Ralf Schultheiss, and Min-Ho Kyung. Towards ro-
bust kinematic synthesis of mechanical systems. In P. Bourdet and L. Mathieu, edi-
tors, Geometric Product Specification and Verification: Integration of Functionality, pages
135–144. Springer, New York, 2003.
[75] Elisha Sacks, Leo Joskowicz, Ralf Schultheiss, and Uwe Hinze. Computer-assisted
kinematic tolerance analysis of a gear selector mechanism with the configuration
space method. In 25th ASME Design Automation Conference, Las Vegas, ASME Press,
1999.
[76] Elisha Sacks, Leo Joskowicz, Ralf Schultheiss, and Uwe Hinze. Redesign of a spa-
tial gear pair using configuration spaces. In Proc. of the 2002 Association of Mechanical
Engineers Design Automation Conference, Montreal, 2002.
[78] Joseph E. Shigley, Charles R. Mischke, and Richard G. Budynas. Mechanical Engi-
neering Design. 7th ed., McGraw-Hill, New York, 2004.
[81] Daniel Whitney, Olivier Gilbert, and Marek Jastrzebski. Representation of geo-
metric variations using matrix transforms for statistical tolerance analysis. Research
in Engineering Design, 6(4):191–210, 1994.
[82] Daniel E. Whitney. Mechanical Assemblies. Oxford University Press, Oxford, En-
gland, 2004.
[83] Kyeonah Yu and Kenneth Goldberg. A complete algorithm for fixture loading.
International Journal of Robotics Research, 17(11):1214–1224, 1998.
Index
spatial, 26 tolerance
theory, 75 analysis, 100–103
topology, 27, 90 model, 99
motion nominal, 99
constraints, 1 parametric, 99
fixed-axis, 18 revision, 119
rotation, 18 space, 100
translation, 18 specifications, 99
movie film advance, 168 worst-case, 99
tolerancing, 1, 8, 99–108, 134
optical filter, 110, 121 topology graph, 27
torsional ratcheting actuator, 125
parametric
design, 5 visualization, 135, 175
model, 5, 99 volume representation, 11
optimization, 117
representation, 13
synthesis, 109
tolerancing, 99
part
acceleration, 95
configuration, 16
force, 94
orientation, 16
planar, 12, 177
position, 16
spatial, 14
torque, 94
velocity, 88, 90, 93
simulation, 8, 81, 87
solid modeling, 11
state, 88
sweep-line algorithm, 64
synthesis, 1, 110, 134
design change, 111
draggers, 115
maximal instances, 118
parametric, 114
structure change, 113