To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
In Chapter 2 it was shown how to represent the position and orientation of one coordinate system relative to another. Further, it was shown how to transform the coordinates of a point from one coordinate system to another.
The techniques introduced in Chapter 2 can also be used to define the rotation of a rigid body in space. Any rigid body can be thought of as a collection of points. Suppose that the coordinates of all the points of a body are known in terms of a coordinate system A. The body is then rotated γ degrees about a unit vector m that passes through the origin of the A coordinate system. The objective is to determine the coordinates of all the points in the rigid body after the rotation is accomplished (see Figure 12.1).
This problem is equivalent to determining the coordinates of all the points in a rigid body in terms of a coordinate system B that is initially coincident with coordinate system A but is then rotated – γ about the m axis vector (see Figure 12.2). This problem was solved in Chapter 2 using rotation matrices.
An alternate solution using quaternions will be introduced in this chapter. Quaternions in many instances may represent a more computationally efficient method of computing rotations of a rigid body compared to the rotation matrix approach. An increase in computational efficiency implies that fewer addition and multiplication operations are required.
In the previous chapter, it was shown that any serial manipulator can be transformed into a closed-loop spatial mechanism by constructing a hypothetical closure link. This chapter will focus on the geometry of the new closed-loop mechanism.
A new closed-loop mechanism called the equivalent spherical mechanism will be formed from the original spatial closed-loop mechanism. The first step in creating the equivalent spherical mechanism is to give all the unit joint vectors, Si, which label revolute or cylindric joint axes, self-parallel translations so that they all meet in a common point O and so that they all point outward from O (see Figure 6.1). Thus the directions of the Si vectors are the same for the original spatial mechanism and the cointersecting arrangement.
Consider now that a unit sphere is drawn, centered at point O. The unit vectors Si will meet this sphere at a sequence of points, i = 1, 2, 3,…, and so forth, as shown in Figure 6.2. Links (arcs of great circles) can be drawn on the unit sphere joining adjacent points, 12, 23, 34,…, and so forth. For example, Figure 6.2 illustrates a spherical link joining points 1 and 2 such that the angle between S1 and S2 is α12, that is, the same angle as between S1 and S2 in the original spatial mechanism.
A group 1 spatial mechanism was defined in Chapter 6 as a one-degree-of-freedom closed-loop kinematic chain with one link, the frame, fixed to the ground and whose equivalent spherical mechanism also has one degree of freedom. All the mechanism dimensions, the link lengths and twist angles, are assumed to be known at the outset. Also, the offset (joint angle) of each revolute (prismatic) joint connecting a pair of links that in general are skew is assumed to be known. The joint angle of a revolute pair (the input pair) connecting a link (the input link) to the frame is assumed to be known.
It will be seen in this chapter that the analysis of all group 1 spatial mechanisms can proceed by first determining the unknown joint parameters from sine, sine–cosine, and cosine laws for the equivalent spherical mechanism, which is essentially a spherical four-link mechanism because there can be no relative motion on a sphere of a pair of links connected by a prismatic joint. The remaining unknown displacements will then be determined from writing the vector loop equation for the mechanism and projecting this equation onto three linearly independent directions, which yields three scalar equations in three unknown displacement values. Two example mechanisms will be presented in this chapter followed by an analysis of the CCC spatial robot manipulator.
RCPCR mechanism
Figure 7.1 shows an RCPCR group 1 spatial mechanism and its equivalent spherical mechanism. Figure 7.2 shows a planar representation of the same mechanism.
This text provides a first-level understanding of the structure, mobility, and analysis of serial manipulators. A serial manipulator is an unclosed or open movable polygon consisting of a series of links and joints. One end is fixed to ground, and attached to the open end is a hand or end effector that can move freely in space.
The structure of a serial manipulator is established by labeling the skeletal form (the sequence of joints and links) with appropriate twist angles and perpendicular distances that define the relative positions of sequences of pairs of skew lines. In this way the geometry of the manipulator is defined, and subsequently it is possible to apply various coordinate transformations for points located on the links. Such transformations readily provide a so-called forward analysis, that is, they can be used to provide the position of some point on the end effector together with the orientation of the end effector measured relative to a coordinate system fixed to ground for a specified set of joint variables.
A more difficult problem is the solution of the so-called reverse or inverse analysis. Here, the position of a point on the end effector together with the end effector's orientation is specified. It is required to determine a corresponding set of six joint variables that will position and orient the end effector as desired. There are multiple solution sets of the six joint variables, in contrast to the forward analysis, where only one solution exists.
Jean-Daniel Boissonnat, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt,Mariette Yvinec, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt
Convexity is one of the oldest concepts in mathematics. It already appears in the works of Archimedes, around three centuries B.C. It was not until the 1950s, however, that this theme developed widely in the works of modern mathematicians. Convexity is a fundamental notion for computational geometry, at the core of many computer engineering applications, for instance in robotics, computer graphics, or optimization.
A convex set has the basic property that it contains the segment joining any two of its points. This property guarantees that a convex object has no hole or bump, is not hollow, and always contains its center of gravity. Convexity is a purely affine notion: no norm or distance is needed to express the property of being convex. Any convex set can be expressed as the convex hull of a certain point set, that is, the smallest convex set that contains those points. It can also be expressed as the intersection of a set of half-spaces. In the following chapters, we will be interested in linear convex sets. These can be defined as convex hulls of a finite number of points, or intersections of a finite number of half-spaces. Traditionally, a bounded linear convex set is called a polytope. We follow the tradition here, but we understand the word polytope as a shorthand for bounded polytope. This lets us speak of an unbounded polytope for the non-bounded intersection of a finite set of half-spaces.
Term rewriting is a branch of theoretical computer science which combines elements of logic, universal algebra, automated theorem proving and functional programming. Its foundation is equational logic. What distinguishes term rewriting from equational logic is that equations are used as directed replacement rules, i.e. the left-hand side can be replaced by the right-hand side, but not vice versa. This constitutes a Turing-complete computational model which is very close to functional programming. It has applications in algebra (e.g. Boolean algebra, group theory and ring theory), recursion theory (what is and is not computable with certain sets of rewrite rules), software engineering (reasoning about equationally defined data types such as numbers, lists, sets etc.), and programming languages (especially functional and logic programming). In general, term rewriting applies in any context where efficient methods for reasoning with equations are required.
To date, most of the term rewriting literature has been published in specialist conference proceedings (especially Rewriting Techniques and Applications and Automated Deduction in Springer's LNCS series) and journals (e.g. Journal of Symbolic Computation and Journal of Automated Reasoning). In addition, several overview articles provide introductions into the field, and references to the relevant literature [141, 74, 204]. This is the first English book devoted to the theory and applications of term rewriting. It is ambitious in that it tries to serve two masters:
The researcher, who needs a unified theory that covers, in detail and in a single volume, material that has previously only been collected in overview articles, and whose technical details are spread over the literature.
The teacher or student, who needs a readable textbook in an area where there is hardly any literature for the non-specialist.
Jean-Daniel Boissonnat, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt,Mariette Yvinec, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt
Jean-Daniel Boissonnat, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt,Mariette Yvinec, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt
Jean-Daniel Boissonnat, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt,Mariette Yvinec, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt
The first part of this book introduces the most popular tools in computational geometry. These tools will be put to use throughout the rest of the book.
The first chapter gives a framework for the analysis of algorithms. The concept of complexity of an algorithm is reviewed. The underlying model of computation is made clear and unambiguous.
The second chapter reviews the fundamentals of data structures: lists, heaps, queues, dictionaries, and priority queues. These structures are mostly implemented as balanced trees. To serve as an example, red–black trees are fully described and their performances are evaluated.
The third chapter illustrates the main algorithmic techniques used to solve geometric problems: the incremental method, the divide-and-conquer method, the sweep method, and the decomposition method which subdivides a complex object into elementary geometric objects.
Finally, chapters 4, 5, and 6 introduce the randomization methods which have recently made a distinguished appearance on the stage of computational geometry. Only the incremental randomized method is introduced and used in this book, as opposed to the randomized divide-and-conquer method.
Jean-Daniel Boissonnat, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt,Mariette Yvinec, Institut National de Recherche en Informatique et en Automatique (INRIA), Rocquencourt