Introduction to Robotics: Mechanics and Control (PDF)

Summary

This textbook provides an introduction to the science and engineering of mechanical manipulation, focusing on robotics. It covers topics from mechanical engineering and mathematics, along with control theory and computer science. The textbook uses several examples and programming assignments.

Full Transcript

# Introduction to Robotics: Mechanics and Control ## Preface - Scientists often have the feeling that, through their work, they are learning about some aspect of themselves. - Physicists see this connection in their work, as do psychologists and chemists. - In the study of robotics, the connection...

# Introduction to Robotics: Mechanics and Control ## Preface - Scientists often have the feeling that, through their work, they are learning about some aspect of themselves. - Physicists see this connection in their work, as do psychologists and chemists. - In the study of robotics, the connection between the field of study and ourselves is unusually obvious. - Unlike a science that seeks only to analyze, robotics as currently pursued takes the engineering bent toward synthesis. - Perhaps it is for these reasons that the field fascinates so many of us. - The study of robotics concerns itself with the desire to synthesize some aspects of human function through the use of mechanisms, sensors, actuators, and computers. - Obviously, this is a huge undertaking which seems certain to require a multitude of ideas from various “classical” fields. - Currently, different aspects of robotics research are carried out by experts in various fields. - It is usually not the case that any single individual has the entire area of robotics in his or her grasp. - A partitioning of the field is natural to expect. At a relatively high level of abstraction, splitting robotics into four major areas seems reasonable: mechanical manipulation, locomotion, computer vision, and artificial intelligence. - This book introduces the science and engineering of mechanical manipulation. - This subdiscipline of robotics has its foundations in several classical fields. - The major relevant fields are mechanics, control theory, and computer science. - Each chapter that is concerned predominantly with mechanics has a brief section devoted to computational considerations. - This book evolved from class notes used to teach “Introduction to Robotics” at Stanford University during the autumns of 1983 through 1985. - The first three editions have been used from 1986 to 2016. The fourth edition has benefited from this use, and incorporates corrections and improvements due to feedback from many sources. - This book is appropriate for a senior undergraduate- or first-year graduate level course. - It is helpful if the student has had one basic course in statics and dynamics, a course in linear algebra, and can program in a high-level language. - Additionally, it is helpful, though not absolutely necessary, that the student have completed an introductory course in control theory. - One aim of the book is to present material in a simple, intuitive way. - Specifically, the audience need not be strictly mechanical engineers, though much of the material is taken from that field. At Stanford, many electrical engineers, computer scientists, and mathematicians found the book quite readable. - Directly, this book is of use to those engineers developing robotic systems, but the material should be viewed as important background material for anyone who will be involved with robotics. - People not directly involved with the mechanics and control of robots should have some such background as that offered by this text. - Like the third edition, the fourth edition is organized into 13 chapters. - The material will fit comfortably into an academic semester, teaching the material within an academic quarter will probably require the instructor to choose a couple of chapters to omit. - One of the challenges of writing this book has been in trying to do justice to the topics covered within the time constraints of usual teaching situations. - One method employed to this end was to consider only material that directly affects the study of mechanical manipulation. - Each exercise has been assigned a difficulty factor, indicated in square brackets following the exercise’s number. - At the end of each chapter, there is a programming assignment in which the student applies the subject matter of the corresponding chapter to a simple three jointed planar manipulator. - This simple manipulator is complex enough to demonstrate nearly all the principles of general manipulators without bogging the student down in too much complexity. - Each programming assignment builds upon the previous ones, until, at the end of the course, the student has an entire library of manipulator software. - There are a total of 12 MATLAB exercises associated with Chapters 1 through 9. - These exercises were developed by Prof. Robert L. Williams II of Ohio University, and we are greatly indebted to him for this contribution. - These exercises can be used with the Robotics Toolbox for MATLAB® created by Peter Corke, Principal Research Scientist with CSIRO in Australia. ## Chapter 1: Introduction - The history of industrial automation is characterized by periods of rapid change in popular methods. - Either as a cause or, perhaps, an effect, such periods of change in automation techniques seem closely tied to world economics. - Use of the industrial robot, which became identifiable as a unique device in the 1960s, along with computer-aided design (CAD) systems and computer-aided manufacturing (CAM) systems characterizes the latest trends in the automation of the manufacturing process. - These technologies are leading industrial automation through another transition the scope of which is still unknown. - In North America, there was much adoption of robotic equipment in the early 1980s followed by a brief pull-back in the late 1980s. - Since that time, the market has been growing, although it is subject to economic swings, as are all markets. - A major reason for the growth in the use of industrial robots is their declining cost and increasing abilities. - By 2025 it is estimated that the average manufacturing employer will save 16% on labor by replacing human workers with robots. - In some countries, it is even more favorable to employ robots. As robots become more cost effective at their jobs, and as human labor continues to become more expensive, more and more industrial jobs become candidates for robotic automation. - This is the single most important trend propelling growth of the industrial robot market. - A secondary trend is that, economics aside, as robots become more capable, they become able to do more and more tasks that might be dangerous or impossible for human workers to perform. - This book focuses on the mechanics and control of the most important form of the industrial robot, the mechanical manipulator. - Devices such as that shown in Fig. 1.4 are always included, while numerically controlled (NC) milling machines usually are not. - The distinction lies somewhere in the sophistication of the programmability of the device; if a mechanical device can be programmed to perform a wide variety of applications, it is probably an industrial robot. - Machines which are for the most part limited to one class of task are considered fixed automation. - By and large, the study of the mechanics and control of manipulators is not a new science, but merely a collection of topics taken from “classical” fields. - Mechanical engineering contributes methodologies for the study of machines in static and dynamic situations. - Mathematics supplies tools for describing spatial motions and other attributes of manipulators. - Control theory provides tools for designing and evaluating algorithms to realize desired motions or force applications. - Developing good skills concerning the description of position and rotation of rigid bodies is highly useful even in fields outside of robotics. ## Forward Kinematics of Manipulators - Kinematics is the science of motion that treats motion without regard to the forces which cause it. - Within the science of kinematics, one studies position, velocity, acceleration, and all higher order derivatives of the position variables with respect to time or any other variable(s). - Hence, the study of the kinematics of manipulators refers to all the geometrical and time-based properties of the motion. - Manipulators consist of nearly rigid links, which are connected by joints that allow relative motion of neighboring links. - These joints are usually instrumented with position sensors, which allow the relative position of neighboring links to be measured. In the case of rotary orrevolute joints, these displacements are called joint angles. - Some manipulators contain sliding (or prismatic) joints, in which the relative displacement between links is a translation, sometimes called the joint offset. - The number of degrees of freedom that a manipulator possesses is the number of independent position variables that would have to be specified in order to locate all parts of the mechanism. - This is a general term used for any mechanism. - Because each joint position is usually defined with a single variable, the number of joints equals the number of degrees of freedom. - At the free end of the chain of links that make up the manipulator is the end effector. Depending on the intended application of the robot, the end-effector could be a gripper, a welding torch, an electromagnet, or another device. - We generally describe the position of the manipulator by giving a description of the tool frame, which is attached to the end-effector, relative to the base frame, which is attached to the nonmoving base of the manipulator. - A very basic problem in the study of mechanical manipulation is called forward kinematics. This is the static geometrical problem of computing the position and orientation of the end-effector of the manipulator. - Specifically, given a set of joint angles, the forward kinematic problem is to compute the position and orientation of the tool frame relative to the base frame. - Sometimes, we think of this as changing the representation of manipulator position from a joint space description into a Cartesian space description. - This problem will be explored in Chapter 3. ## Inverse Kinematics of Manipulators - In Chapter 4, we will consider the problem of inverse kinematics. - Given the position and orientation of the end-effector of the manipulator, calculate all possible sets of joint angles that could be used to attain this given position and orientation. - This is a fundamental problem in the practical use of manipulators. ## Velocities, Static Forces, Singularities - In addition to dealing with static positioning problems, we may wish to analyze manipulators in motion. - Often, in performing velocity analysis of a mechanism, it is convenient to define a matrix quantity called the Jacobian of the manipulator. - The Jacobian specifies a mapping from velocities in joint space to velocities in Cartesian space. - At certain points, called singularities, this mapping is not invertible. - Consider the rear gunner in a World War I–vintage biplane fighter plane. - While the pilot flies the plane from the front cockpit, the rear gunner’s job is to shoot at enemy aircraft. - To perform this task, his gun is mounted in a mechanism that rotates about two axes, the motions being called azimuth and elevation. - Using these two motions the gunner can direct his stream of bullets in any direction he desires in the upper hemisphere. - If the target flies directly over the gunner’s head, he would have to spin the gun on its azimuth axis at infinite speed. - This kind of phenomenon is caused by what is called a singularity of the mechanism. All mechanisms are prone to these difficulties, including robots. - Just as with the rear gunner’s mechanism, these singularity conditions do not prevent a robot arm from positioning anywhere within its workspace. - However, they can cause problems with motions of the arm in their neighborhood. - Manipulators do not always move through space, sometimes they are also required to touch a workpiece or work surface and apply a static force. - In this case, the problem arises: Given a desired contact force and moment, what set of joint torques is required to generate them? - Once again, the Jacobian matrix of the manipulator arises quite naturally in the solution of this problem. ## Dynamics - Dynamics is a huge field of study devoted to studying the forces required to cause motion. - In order to accelerate a manipulator from rest, glide at a constant end effector velocity, and finally decelerate to a stop, a complex set of torque functions must be applied by the joint actuators. - The exact form of the required functions of actuator torque depend on the spatial and temporal attributes of the path taken by the end-effector and on the mass properties of the links and payload, friction in the joints, and so on. - One method of controlling a manipulator to follow a desired path involves calculating these actuator torque functions by using the dynamic equations of motion of the manipulator. - Many of us have experienced lifting an object that is actually much lighter than we expected. - Such a misjudgment of payload can cause an unusual lifting motion. - This kind of observation indicates that the human control system is more sophisticated than a purely kinematic scheme. - Rather, our manipulation control system makes use of knowledge of mass and other dynamic effects. - Likewise, algorithms that we construct to control the motions of a robot manipulator should take dynamics into account. - A second use of the dynamic equations of motion is in simulation. By reformulating the dynamic equations so that acceleration is computed as a function of actuator torque, it is possible to simulate how a manipulator would move under application of a set of actuator torques. - As computing power becomes more and more cost effective, the use of simulations is growing in use and importance in many fields. - In Chapter 6, we will develop dynamic equations of motion, which may be used to control or simulate the motion of manipulators. ## Trajectory Generation - A common way of causing a manipulator to move from here to there in a smooth, controlled fashion is to cause each joint to move as specified by a smooth function of time. - Commonly, each joint starts and ends its motion at the same time, so that the manipulator motion appears coordinated. - Exactly如何to compute these motion functions is the problem of trajectory generation. ## Manipulator Design and Sensors - Although manipulators are, in theory, universal devices applicable to many situations, economics generally dictate that the intended task domain influence the mechanical design of the manipulator. - Along with issues such as size, speed, and load capability, the designer must also consider the number of joints and their geometric arrangement. - These considerations affect the manipulator’s workspace size and quality, the stiffness of the manipulator structure, and other attributes. - The more joints a robot arm contains, the more dextrous and capable it will be. - Of course, it will also be harder and more expensive to build. - In order to build a useful robot, that can take two approaches: build a specialized robot for a specific task, or build a universal robot that would able to perform a wide variety of tasks. - In the case of a specialized robot, some careful thinking will yield a solution for how many joints are needed. - For example, a specialized robot designed solely to place electronic components on a flat circuit board does not need to have more than four joints. - Three joints allow the position of the hand to attain any position in three-dimensional space, with a fourth joint added to allow the hand to rotate the grasped component about a vertical axis. In the case of a universal robot, it is interesting that fundamental properties of the physical world we live in dictate the “correct” minimum number of joints—that minimum number is six. - Integral to the design of the manipulator are issues involving the choice and location of actuators, transmission systems, and internal-position (and sometimes force) sensors. ## Linear Position Control - Some manipulators are equipped with stepper motors or other actuators that can directly execute a desired trajectory. - However, the vast majority of manipulators are driven by actuators that supply a force or a torque to cause motion of the links. - In this case, an algorithm is needed to compute torques that will cause the desired motion. - The problem of dynamics is central to the design of such algorithms, but does not in itself constitute a solution. - A primary concern of a position control system is to automatically compensate for errors in knowledge of the parameters of a system, and to suppress disturbances that tend to perturb the system from the desired trajectory. - To accomplish this, position and velocity sensors are monitored by the control algorithm, which computes torque commands for the actuators. - In Chapter 9, we will consider control algorithms whose synthesis is based on linear approximations to the dynamics of a manipulator. - These linear methods are prevalent in current industrial practice. ## Nonlinear Position Control - Although control systems based on approximate linear models are popular in current industrial robots, it is important to consider the complete nonlinear dynamics of the manipulator when synthesizing control algorithms. - Some industrial robots are now being introduced which make use of nonlinear control algorithms in their controllers. - These nonlinear techniques of controlling a manipulator promise better performance than do simpler linear schemes. - Chapter 10 will introduce nonlinear control systems for mechanical manipulators. ## Force Control - The ability of a manipulator to control forces of contact when it touches parts, tools, or work surfaces seems to be of great importance in applying manipulators to many real-world tasks. - Force control is complementary to position control, in that we usually think of only one or the other as applicable in a certain situation. - When a manipulator is moving in free space, only position control makes sense because there is no surface to react against. - When a manipulator is touching a rigid surface, however position-control schemes can cause excessive forces to build up at the contact, or cause contact to be lost with the surface when it was desired for some application. - Manipulators are rarely constrained by reaction surfaces in all directions simultaneously, so a mixed or hybrid control is required, with some directions controlled by a position-control law and remaining directions controlled by a force-control law. - A robot should be instructed to wash a window by maintaining a certain force in the direction perpendicular to the plane of the glass, while following a motion trajectory in directions tangent to the plane. - Such split or hybrid control specifications are natural for such tasks. ## Programming Robots - A robot programming language serves as the interface between the human user and the industrial robot. - Central questions arise: How are motions through space described easily by the programmer? How are multiple manipulators programmed so that they can work in parallel? How are sensor-based actions described in a language? - Robot manipulators differentiate themselves from fixed automation by being “flexible,” which means programmable. Not only are the movements of manipulators programmable, but, through the use of sensors and communications with other factory automation, manipulators can adapt to variations as the task proceeds. - In typical robot systems, there is a shorthand way for a human user to instruct the robot which path it is to follow. - First of all, a special point on the hand (or perhaps on a grasped tool) is specified by the user as the operational point, sometimes also called the TCP. - Motions of the robot will be described by the user in terms of desired locations of the operational point relative to a user-specified coordinate system. - Generally, the user will define this reference coordinate system relative to the robot’s base coordinate system in some task-relevant location. - Most often, paths are constructed by specifying a sequence of via points. - Via points are specified relative to the reference coordinate system and denote locations along the path through which the TCP should pass. - Sometimes, other modifiers can also be specified to affect the motion of the robot (e.g., different smoothness criteria, etc.). - From these inputs, the trajectory-generation algorithm must plan all the details of the motion: velocity profiles for the joints, time duration of the move, and so on. - The sophistication of the user interface is becoming extremely important as manipulators and other programmable automation are applied to more and more demanding industrial applications. The problem of programming manipulators encompasses all the issues of “traditional” computer programming and so is an extensive subject in itself. - Additionally, some particular attributes of the manipulator-programming problem cause additional issues to arise. ## Off-Line Programming and Simulation - An off-line programming system is a robot programming environment that has been sufficiently extended, generally by means of computer graphics, that the development of robot programs can take place without access to the robot itself. - A common argument raised in their favor is that an off-line programming system will not cause production equipment to be tied up when it needs to be reprogrammed, hence, automated factories can stay in production mode a greater percentage of the time. - They also serve as a natural vehicle to tie computer-aided design (CAD) databases used in the design phase of a product to the actual manufacturing of the product. - In some cases, this direct use of CAD data can dramatically reduce the programming time required for the manufacturing process ## Notation - Usually, variables written in uppercase represent vectors or matrices. Lowercase variables are scalars. - Leading subscripts and superscripts identify which coordinate system a quantity is written in. - Trailing superscripts are used (as widely accepted) for indicating the inverse or transpose of a matrix. - Trailing subscripts are not subject to any strict convention, but may indicate a vector component or may be used as a description. - We will use many trigonometric functions. Our notation for the cosine of an angle θ1 may take any of the following forms: cos θ1 = cθ1 = c3. - Vectors are taken to be column vectors, hence, row vectors will have the transpose indicated explicitly ## Bibliography ### General-Reference Books - *Robot Manipulators*, MIT Press, Cambridge, MA, 1981, by R. Paul - *Robot Motion*, MIT Press, Cambridge, MA, 1983, by M. Brady et al. - *Industrial Robots: Computer Interfacing and Control*, Prentice-Hall, Englewood Cliffs, NJ, 1985, by W. Synder - *Robotics for Engineers*, McGraw-Hill, New York, 1985, by Y. Koren - *Robot Analysis and Control*, Wiley, New York, 1986, by H. Asada & J.J. Slotine ### General-Reference Journals and Magazines - *IEEE/ASME Transactions on Mechatronics* - *IEEE Transactions on Robotics and Automation* - *International Journal of Robotics Research* (MIT Press) - *ASME Journal of Dynamic Systems, Measurement, and Control* - *International Journal of Robotics & Automation* (IASTED) ## Exercises - Make a chronology of major events in the development of industrial robots over the past 40 years. - Make a chart showing the major applications of industrial robots and the percentage of installed robots in use in each application area. - Find data on the cost of human labor in various specific industries (e.g., labor in the auto industry, labor in the electronics assembly industry, labor in agriculture, etc.) and create a graph showing how these costs compare to the use of robotics. - In a sentence or two, define kinematics, workspace, and trajectory. - In a sentence or two, define frame, degree of freedom, and position control. - In a sentence or two, define force control, and robot programming language. - In a sentence or two, define nonlinear control, and off-line programming. - Draw a graph about the usage of industrial robots in the last 10 years. - Make a chart indicating how industrial robot costs will drop by 2025 with advances in machine learning and computer vision. - Make a chart showing the major users of industrial robots (e.g., aerospace, automotive, etc.) and the percentage of installed robots in use in each industry - Write a simple pseudo-language program for an industrial manipulator to pick and place a cold drink bottle from a crate having 30 bottles equidistant at 8 cm by 8 cm center to center distance within a configuration of 5 rows and 6 columns. - From your experience or exposure, give examples of both mechanical manipulators and fixed automation machines. - Why are six degrees of freedom (DOF) required for a PUMA (Programmable Universal Machine for Assembly) manipulator? - Using the notation of this book, compute AP3 = S1AP1 + C2AP2 if θ1 = π/4, θ2 = π/3, AP1 = [2, 2, 6]T , and AP2 = [4, 2, 6]T. - For the manipulator of Fig. 1.10 with electric motors supplying torques τ1, τ2, and τ3, list pros and cons of placing the motors at the joints vs. using a belt-drive system to place the motors at the robot base. ## MATLAB Exercise 1 - Familiarize yourself with the MATLAB programming environment if necessary. - Using the color coded MATLAB editor, learn how to create, edit, save, run, and debug m-files. - Learn how to create arrays (matrices and vectors) and explore the built-in MATLAB linear-algebra functions for matrix and vector multiplication, dot and cross products, transposes, determinants, and inverses, and for the solution of linear equations. - Learn how to program logical constructs and loops in MATLAB. - Learn how to use subprograms and functions. - Learn how to use comments (%) for explaining your programs and tabs for easy readability. - Familiarize yourself with the Robotics Toolbox for MATLAB®, a third-party toolbox developed by Peter I. Corke of CSIRO, Pinjarra Hills, Australia. - This product can be downloaded for free from https://petercorke.com/toolboxes/robotics-toolbox/. ## Chapter 2: Spatial Descriptions and Transformations - Robotic manipulation, by definition, implies that parts and tools will be moved around in space by some sort of mechanism. - This naturally leads to a need for representing positions and the orientations of parts, of tools, and of the mechanism itself. - To define and manipulate mathematical quantities that represent position and orientation, we must define coordinate systems and develop conventions for representation. - Many of the ideas developed here in the context of position and orientation will form a basis for our later consideration of linear and rotational velocities, forces, and torques. - We adopt the philosophy that somewhere there is a universe coordinate system to which everything we discuss can be referenced. - We will describe all positions and orientations with respect to the universe coordinate system or with respect to other Cartesian coordinate systems that are (or could be) defined relative to the universe system. ## Descriptions: Positions, Orientations, and Frames - A description is used to specify attributes of various objects with which a manipulation system deals. - These objects are parts, tools, and the manipulator itself. - Once a coordinate system is established, we can locate any point in the universe with a 3 × 1 position vector. - In this book, vectors are written with a leading superscript indicating the coordinate system to which they are referenced (unless it is clear from context)—for example, AP. - Each of these distances along an axis can be thought of as the result of projecting the vector onto the corresponding axis. - We will describe the position of a point in space with a position vector. Other 3-tuple descriptions of the position of points, such as spherical or cylindrical coordinate representations, will be discussed in the exercises at the end of the chapter. - Often, we will find it necessary not only to represent a point in space, but also to describe the orientation of a body in space. - For example, if vector AP in Fig. 2.2 locates the point directly between the fingertips of a manipulator’s hand, the complete location of the hand is still not specified until its orientation is also given. - Assuming that the manipulator has a sufficient number of joints, the hand could be oriented arbitrarily while keeping the point between the fingertips at the same position in space. - In order to describe the orientation of a body, we will attach a coordinate system to the body and then give a description of this coordinate system relative to the reference system - Thus, positions of points are described with vectors, and orientations of bodies are described with an attached coordinate system. - One way to describe the body attached coordinate system, {B}, is to write the unit vectors of its three principal axes2 in terms of the coordinate system {A}. - We denote the unit vectors giving the principal directions of coordinate system {B} as Xˆ B, Yˆ B, and ZˆB. - When written in terms of coordinate system {A}, they are called AXˆ B, AYˆ B, and AZˆB. - It will be convenient if we stack these three unit vectors together as the columns of a 3 × 3 matrix, in the order AXˆ B, AYˆ B, AZˆB. - We will call this matrix a rotation matrix, and, because this particular rotation matrix describes {B} relative to {A}, we name it with the notation A BR. - Note that, by our definition, the columns of a rotation matrix all have unit magnitude, and, further, that these unit vectors are orthogonal. - As we saw earlier, a consequence of this is that A BR = B AR−1 = B ART. (2.10) - Because the columns of A BR are the unit vectors of {B} written in {A}, the rows of A BR are the unit vectors of {A} written in {B}. - So, a rotation matrix can be interpreted as a set of three column vectors, or as a set of three row vectors. - Hence, B AR, the description of frame {A} relative to {B}, is given by the transpose of (2.3); that is, B AR = A BRT. - This suggests that the inverse of a rotation matrix is equal to its transpose, a fact that can be easily verified as A BRT A BR = I3, - where I3 is the 3 × 3 identity matrix. - Hence, A BR = B AR−1 = B ART. - Indeed, from linear algebra , we know that the inverse of a matrix with orthonormal columns is equal to its transpose. - The information needed to completely specify the whereabouts of the manipulator hand in Fig. 2.2 is a position and an orientation. - The point on the body whose position we describe could be chosen arbitrarily, however, for convenience, the point whose position we will describe is chosen as the origin of the body-attached frame. ## Mappings: Changing Descriptions from Frame to Frame - In a great many of the problems in robotics, we are concerned with expressing the same quantity in terms of various reference coordinate systems. - In Fig. 2.4, we have a position defined by the vector BP. - We wish to express this point in space in terms of frame {A}, when {A} has the same orientation as {B}. - Because both vectors are defined relative to frames of the same orientation, we calculate the description of point P relative to {A}, AP, by vector addition. - Note that only in the special case of equivalent orientations may we add vectors that are defined in terms of different frames. - In this simple example, we have illustrated mapping a vector from one frame to another. - The quantity itself (here, a point in space) is not changed, only its description is changed. - We say that the vector APBORG defines this mapping because all the information needed to perform the change in description is contained in APBORG (along with the knowledge that the frames had equivalent orientation). ## Mappings Involving Rotated Frames - Section 2.2 introduced the notion of describing an orientation by three unit vectors denoting the principal axes of a body-attached coordinate system. - For convenience, we stack these three unit vectors together as the columns of a 3 × 3 matrix. - We will call this matrix a rotation matrix, and, if this particular rotation matrix describes {B} relative to {A}, we name it with the notation A BR. - Note that, by our definition, the columns of a rotation matrix all have unit magnitude, and, further, that these unit vectors are orthogonal. - As we saw earlier, a consequence of this is that A BR = B AR−1 = B ART. (2.10) - Therefore, because the columns of A BR are the unit vectors of {B} written in {A}, the rows of A BR are the unit vectors of {A} written in {B}. - So, a rotation matrix can be interpreted as a set of three column vectors, or as a set of three row vectors. - As in Fig. 2.5, the situation will arise often where we know the definition of a vector with respect to some frame, {B}, and we would like to know its definition with respect to another frame, {A}, where the origins of the two frames are coincident. - This computation is possible when a description of the orientation of {B} is known relative to {A}. - This orientation is given by the rotation matrix A BR, whose columns are the unit vectors of {B} written in {A}. - In order to calculate AP, we note that the components of any vector are simply the projections of that vector onto the unit directions of its frame. - The projection is calculated as the vector dot product. - Thus, we see that the components of AP may be calculated as: - Apx = BXˆ A · BP , - Apy = BYˆ A · BP , and - Apz = BZˆA · BP. - In order to express (2.12) in terms of a rotation matrix multiplication, we note from (2.11) that the rows of A BR are BXˆ A, BYˆ A, and BZˆA. - So (2.12) may be written compactly, by using a rotation matrix, as AP = A BR BP. ## Mappings Involving General Frames - Very often, we know the description of a vector with respect to some frame {B}, and we would like to know its description with respect to another frame, {A}. - We now consider the general case of mapping. Here, the origin of frame {B} is not coincident with that of frame {A} but has a general vector offset. - The vector that locates {B}’s origin is called APBORG. - Also, {B} is rotated with respect to {A}, as described by A BR. - Given BP, we wish to compute AP. - We can first change BP to its description relative to an intermediate frame that has the same orientation as {A}, but whose origin is coincident with the origin of {B}. - This is done by premultiplying by A BR as in the last section. We then account for the translation between origins by simple vector addition, as before, and obtain - AP = A BR BP + APBORG. (2.17) - Equation 2.17 describes a general transformation mapping of a vector from its description in one frame to a description in a second frame. - Note the following interpretation of our notation as exemplified in (2.17): the B’s cancel, leaving all quantities as vectors written in terms of A, which may then be added. - The form of (2.17) is not as appealing as the conceptual form AP = A BT BP - That is, we would like to think of a mapping from one frame to another as an operator in matrix form. This aids in writing compact equations and is conceptually clearer than (2.17 - In order that we may write the mathematics given in (2.17) in the matrix operator form suggested by (2.18), we define a 4 × 4 matrix operator and use 4 × 1 position vectors, so that (2.18) has the structure - AP 1 = A BR APBORG 000 1 BP 1. - In other words, - a “1” is added as the last element of the 4 × 1 vectors, and; - a row “[0 0 0 1]” is added as the last row of the 4 × 4 matrix. - We adopt the convention that a position vector is 3 × 1 or 4 × 1, depending on whether it appears multiplied by a 3 × 3 matrix or by a 4 × 4 matrix. It is readily seen that (2.19) implements - AP = A BR BP + APBORG 1 = 1. - The 4 × 4 matrix in (2.19) is called a homogeneous transform. - It can be regarded purelyとしてa construction used to cast the rotation and translation of the general transform into a single matrix form. - In other fields of study, it can be used to compute perspective and scaling operations (when the last row is other than “[0 0 0 1]” or the rotation matrix is not orthonormal). - Often, we will write an equation like (2.18) without any notation indicating that it is a homogeneous representation because it is obvious from context. - Note that, although homogeneous transforms are useful in writing compact equations, a computer program to transform vectors would generally not use them because of time wasted multiplying ones and zeros. - Thus, this representation is mainly for our convenience when thinking and writing equations down on paper. ## Operators: Translations, Rotations, and Transformations - The same mathematical forms used to map points between frames can also be interpreted as operators that translate points, rotate vectors, or do both. - This section illustrates this interpretation of the mathematics we have already developed. ### Translational Operators - A translation moves a point in space a finite distance along a given vector direction. - With this interpretation of actually translating the point in space only one coordinate system need be involved. - It turns out that translating the point in space is accomplished with the same mathematics as mapping the point to a second frame. - When a vector is moved “forward” relative to a frame, we may consider either that the vector moved “forward” or that the frame moved “backward.” - The mathematics involved in the two cases is identical, only our view of the situation is different. - Figure 2.9 indicates pictorially how a vector AP1 is translated by a vector AQ. - Here, the vector AQ gives the information needed to perform the translation. - The result of the operation is

Use Quizgecko on...
Browser
Browser