Chapter 2 Kinematics of Mechanisms

Similar documents
Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

Forward kinematics and Denavit Hartenburg convention

Kinematic Model of Robot Manipulators

EEE 187: Robotics Summary 2

Introduction to Robotics

MTRX4700 Experimental Robotics

Robot mechanics and kinematics

Inverse Kinematics of 6 DOF Serial Manipulator. Robotics. Inverse Kinematics of 6 DOF Serial Manipulator

Robot mechanics and kinematics

Robot Inverse Kinematics Asanga Ratnaweera Department of Mechanical Engieering

MCE/EEC 647/747: Robot Dynamics and Control. Lecture 3: Forward and Inverse Kinematics

Kinematics. Kinematics analyzes the geometry of a manipulator, robot or machine motion. The essential concept is a position.

Kinematics, Kinematics Chains CS 685

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES

Robotics I. March 27, 2018

UNIVERSITY OF OSLO. Faculty of Mathematics and Natural Sciences

INSTITUTE OF AERONAUTICAL ENGINEERING

MDP646: ROBOTICS ENGINEERING. Mechanical Design & Production Department Faculty of Engineering Cairo University Egypt. Prof. Said M.

Robotics kinematics and Dynamics

-SOLUTION- ME / ECE 739: Advanced Robotics Homework #2

3. Manipulator Kinematics. Division of Electronic Engineering Prof. Jaebyung Park

Industrial Robots : Manipulators, Kinematics, Dynamics

Vector Algebra Transformations. Lecture 4

1. Introduction 1 2. Mathematical Representation of Robots

This week. CENG 732 Computer Animation. Warping an Object. Warping an Object. 2D Grid Deformation. Warping an Object.

ISE 422/ME 478/ISE 522 Robotic Systems

Serial Manipulator Statics. Robotics. Serial Manipulator Statics. Vladimír Smutný

10/11/07 1. Motion Control (wheeled robots) Representing Robot Position ( ) ( ) [ ] T

Differential Kinematics. Robotics. Differential Kinematics. Vladimír Smutný

SCREW-BASED RELATIVE JACOBIAN FOR MANIPULATORS COOPERATING IN A TASK

Dynamics Analysis for a 3-PRS Spatial Parallel Manipulator-Wearable Haptic Thimble

KINEMATIC ANALYSIS OF 3 D.O.F OF SERIAL ROBOT FOR INDUSTRIAL APPLICATIONS

Articulated Robots! Robert Stengel! Robotics and Intelligent Systems! MAE 345, Princeton University, 2017

θ x Week Date Lecture (M: 2:05p-3:50, 50-N202) 1 23-Jul Introduction + Representing Position & Orientation & State 2 30-Jul

Jacobian: Velocities and Static Forces 1/4

Jacobians. 6.1 Linearized Kinematics. Y: = k2( e6)

Jacobian: Velocities and Static Forces 1/4

Homogeneous coordinates, lines, screws and twists

MEM380 Applied Autonomous Robots Winter Robot Kinematics

Basilio Bona ROBOTICA 03CFIOR 1

Solution of inverse kinematic problem for serial robot using dual quaterninons and plucker coordinates

[2] J. "Kinematics," in The International Encyclopedia of Robotics, R. Dorf and S. Nof, Editors, John C. Wiley and Sons, New York, 1988.

Answers to practice questions for Midterm 1

Cecilia Laschi The BioRobotics Institute Scuola Superiore Sant Anna, Pisa

Modeling and Control of Manipulators

NATIONAL UNIVERSITY OF SINGAPORE. (Semester I: 1999/2000) EE4304/ME ROBOTICS. October/November Time Allowed: 2 Hours

Design of a Three-Axis Rotary Platform

[9] D.E. Whitney, "Resolved Motion Rate Control of Manipulators and Human Prostheses," IEEE Transactions on Man-Machine Systems, 1969.

6. Kinematics of Serial Chain Manipulators

Kinematics of Closed Chains

10/25/2018. Robotics and automation. Dr. Ibrahim Al-Naimi. Chapter two. Introduction To Robot Manipulators

ROBOTICS 01PEEQW. Basilio Bona DAUIN Politecnico di Torino

10. Cartesian Trajectory Planning for Robot Manipulators

ÉCOLE POLYTECHNIQUE DE MONTRÉAL

Position and Orientation Control of Robot Manipulators Using Dual Quaternion Feedback

CS 775: Advanced Computer Graphics. Lecture 3 : Kinematics

A Detailed Look into Forward and Inverse Kinematics

Inverse Kinematics Analysis for Manipulator Robot With Wrist Offset Based On the Closed-Form Algorithm

Motion Control (wheeled robots)

Inverse Kinematics. Given a desired position (p) & orientation (R) of the end-effector

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

Chapter 2 Mechanisms Abstract

Computer Graphics Hands-on

Dynamic Analysis of Manipulator Arm for 6-legged Robot

Basic Elements. Geometry is the study of the relationships among objects in an n-dimensional space

PPGEE Robot Dynamics I

Lecture «Robot Dynamics»: Kinematic Control

ME/CS 133(a): Final Exam (Fall Quarter 2017/2018)

Analysis of Euler Angles in a Simple Two-Axis Gimbals Set

FREE SINGULARITY PATH PLANNING OF HYBRID PARALLEL ROBOT

Advances in Engineering Research, volume 123 2nd International Conference on Materials Science, Machinery and Energy Engineering (MSMEE 2017)

Chapter 1: Introduction

Forward Kinematic Analysis, Simulation & Workspace Tracing of Anthropomorphic Robot Manipulator By Using MSC. ADAMS

Transformations. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Position and Orientation Control of Robot Manipulators Using Dual Quaternion Feedback

IntroductionToRobotics-Lecture02

DIMENSIONAL SYNTHESIS OF SPATIAL RR ROBOTS

Kinematics and dynamics analysis of micro-robot for surgical applications

Serially-Linked Parallel Leg Design for Biped Robots

Mobile Robot Kinematics

Introduction to Robotics

Research on the Control Strategy of Decoupled 3-DOF Joystick for Teleoperation

ON THE RE-CONFIGURABILITY DESIGN OF PARALLEL MACHINE TOOLS

Robots are built to accomplish complex and difficult tasks that require highly non-linear motions.

CS612 - Algorithms in Bioinformatics

Robot. A thesis presented to. the faculty of. In partial fulfillment. of the requirements for the degree. Master of Science. Zachary J.

Written exams of Robotics 1

Automatic Control Industrial robotics

CHAPTER 3 MATHEMATICAL MODEL

6. Find the equation of the plane that passes through the point (-1,2,1) and contains the line x = y = z.

Animation. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 4/23/07 1

ME5286 Robotics Spring 2014 Quiz 1 Solution. Total Points: 30

To Do. Outline. Translation. Homogeneous Coordinates. Foundations of Computer Graphics. Representation of Points (4-Vectors) Start doing HW 1

A simple example. Assume we want to find the change in the rotation angles to get the end effector to G. Effect of changing s

A Review Paper on Analysis and Simulation of Kinematics of 3R Robot with the Help of RoboAnalyzer

COPYRIGHTED MATERIAL INTRODUCTION CHAPTER 1

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

Essential Kinematics for Autonomous Vehicles

Development of Direct Kinematics and Workspace Representation for Smokie Robot Manipulator & the Barret WAM

4 DIFFERENTIAL KINEMATICS

Transcription:

Chapter Kinematics of Mechanisms.1 Preamble Robot kinematics is the study of the motion (kinematics) of robotic mechanisms. In a kinematic analysis, the position, velocity, and acceleration of all the links are calculated with respect to a fixed reference coordinate system, without considering the forces or moments. The relationship between motion and the associated forces and torques is studied in robot dynamics. Forward kinematics and inverse kinematics are the main components in robot kinematics. Forward kinematics (also known as direct kinematics) is the computation of the position and orientation of a robot s end effector as a function of its joint angles. Inverse kinematics is defined as: given the position and orientation of a robot s endeffector, calculate all possible sets of joint motion that could be used to attain this given position and orientation. From the viewpoint of robot structure, robot can be divided into two basic types: serial robot and parallel robot. Besides, there is a hybrid type, which is the combination of serial and parallel robots. Serial robots have open kinematic chain, which can be further classified as either articulated or cartesian robots. In the following, the basic mathematical and geometric concepts including position and orientation of a rigid body are presented (Sect..). Translational coordinate transformation, rotational coordinate transformation and homogeneous transformation are introduced in Sect... Denavit Hartenberg expression of kinematic parameters is discussed in Sect..4. Section.5 describes the derivation of Jacobian Matrix. Finally, the conclusions are given in Sect..6.. Position and Orientation of Rigid Body..1 Rotation Matrix To explain the relationship between parts, tools, manipulator etc., some concepts such as position vector, plane, and coordinate frame are utilized. D. Zhang, Parallel Robotic Machine Tools, DOI 10.100/98-1-4419-111-9, c Springer Science+Business Media, LLC 010 19

0 Kinematics of Mechanisms Fig..1 Presentation of position The motion of a robot can be described by its position and orientation, which is called pose as well. Once the reference coordinate system has been established, any point in the space can be expressed by a ( 1) vector. For orthogonal coordinate system fo a x a y a z a g, any point p in the space can be written as follow: p x a p D 4 p y 5 ; (.1) p z where p x ; p y ; p z denote the components of the vector p along the coordinate axis x a ; y a ; z a, respectively. Here, p is called position vector, which is shown in Fig..1. To investigate the motion and manipulation of robots, not only the description of position is needed, but also the orientation is likewise important. To define the orientation of point b, we should assume that there is an orthogonal coordinate system fo b x b y b z b g attached to the point. Here, x b ; y b ; z b denote the unit vectors of the coordinate axes. With respect to the reference coordinate system fo a x a y a z a g, the orientation of point b is expressed as follow: a b R D r 11 r 1 r 1 a x a b y a b z b D 4r 1 r r 5 ; (.) r 1 r r where a b R is called rotation matrix. a R has nine elements in total, but only three of b them are independent. The following constraint conditions should be satisfied by the nine elements: a x b a x b D a y b a y b D a z b a z b D 1; (.) a x b a y b D a y b a z b D a z b a x b D 0: (.4) It can be concluded that the rotation matrix a R is orthogonal, and the following b condition should be satisfied: a b R 1 D a b RT I j a brjd1: (.5)

. Position and Orientation of Rigid Body 1 The rotation matrix with respect to the rotation transformation by an angle about the axis x;y;z, respectively, can be calculated: 1 0 0 R.x; / D 40 c s5 ; (.6) 0 s c c 0 s R.y; / D 4 0 1 0 5 ; (.) s 0 c c s 0 R.z;/D 4s c 05 ; (.8) 0 0 1 where s D sin and c D cos Suppose that coordinate frames fbg and fag have the same orientation. But the original points of the two coordinate frames do not overlap. Using the position vector a p Ob to describe the position related to frame fag. a p Ob is called the translational vector of frame fbg with respect to frame fag. If the position of point p in the coordinate frame fbg is written as b p, then the position vector of p with respect to frame fag can be written as follows: a p D b p C a p Ob ; (.9) That is equation of coordinate translation which is shown in Fig... Suppose that coordinate frames fbg and fag have the same orientation, but their orientation is different. Using the rotation matrix a R to describe the orientation of b {B} p z b z a {A} a p b p O a y b O a y a x b x a Fig.. Translational transformation

Kinematics of Mechanisms Fig.. Rotational transformation frame fbg with respect to frame fag, then the transformation of point p in frames fag and fbg can be deduced as: a p D a b R b p; (.10) where a p denotes the position p with the reference coordinate system fag, and b p denotes the position p with the reference coordinate system fbg. It is called equation of coordinate rotation which is shown in Fig... The following equation can be deduced: b a R D a b R 1 D a b R T : (.11) For the common condition, neither the original points of frames fag and fbg overlap nor they have the same orientation. Use the position vector a p Ob to describe the original point of frame fbg with respect to frame fag; use the rotation matrix ar to describe the orientation of frame fbg with respect to frame fag. To any point b in the space, the transformation can be found: a p D a b R b p C a p Ob : (.1).. Euler Angles The Euler angle I, shown in Fig..4, defines a rotation angle around the z-axis, then a rotation angle around the new x-axis, and a rotation angle ' around the new z-axis. c s 0 1 0 0 c' s' 0 R z D 4s c 05 ; R 0 u D 40 c s5 ; R 00 w ' D 4s' c' 05 : 0 0 1 0 s c 0 0 1 (.1)

. Position and Orientation of Rigid Body Fig..4 Euler angle I Fig..5 Euler angle II Resultant Eulerian rotation matrix generates: cc' ss'c cs' sc'c s's R D R z R 0 u R 00 w ' D 4sc' C cs'c ss' C cc'c cs5 : s's c's c (.14) The Euler angle II, shown in Fig..5, defines a rotation of angle around the z-axis, then a rotation of angle around the new y-axis, and finally a rotation angle ' around the new z-axis. Note the opposite (clockwise) sense of the third rotation. Matrix with Euler Angle II generates: ss' C cc'c sc' sc'c cs 4 cs' C sc'c cc' sc'c s's5 (.15) c's s's c

4 Kinematics of Mechanisms. Homogeneous Transformation If the coordinates of any point in an orthogonal coordinate system is given, then the coordinates of this point in another orthogonal coordinate system can be calculated by homogeneous coordinate transformation. The transformation (.1) is inhomogeneous to point b p, but it can be expressed by an equivalent homogeneous transformation: a p a D b R a p Ob D 1 0 1 1 b p 1 ; (.16) where the vector.4 1/ denotes the coordinates in three-dimensional space. It still can be noted as a p or b p. The above equation can be rewritten in the format of matrix: a p D a b T b p C a p Ob ; (.1) where the vector.4 1/ of a p and b p is called homogeneous coordinates, here, a p Ob a a b T D b R 0 41 1 : (.18) In fact, the transformation (.18) is equivalent to (.1). The (.1) can be rewritten as a p D a b R b p C a p Ob : (.19) Suppose vector ai C bj C ck describes one point in the space, where i;j;k are the unit vector of the axes x;y;z, respectively. This point can be expressed by the translational homogeneous transformation matrix. 1 0 0 a Trans(a,b,c) D 60 1 0 b 40 0 0 c5 ; (.0) where Trans denotes translational transformation. If a rigid body rotates about x, y and z-axis with, then the following equations can be obtained: 1 0 0 0 Rot.x; / D 60 c s 0 40 s c 05 ; (.1)

. Homogeneous Transformation 5 c 0 s 0 Rot.y; / D 6 0 1 0 0 4 s 0 c 05 (.) c s 0 0 Rot.z;/D 6s c 0 0 4 0 0 1 05 (.) where Rot denotes rotational transformation. As the transformation is based on the fixed reference frame, a left-handed multiplication of transformation sequences is followed. For example, a rigid body rotates 90 ı about the z-axis of the reference frame, then it rotates another 90 ı about the y-axis and finally it translates 4 unit lengths along x-axis of the fixed reference frame, the transformation of this rigid body can be described as: 0 0 1 4 T D Trans(4,0,0)Trans(y,90)Trans(z,90) D 61 0 0 0 40 1 0 05 : (.4) The above matrix represents the operations of rotation and translation about the primary reference frame. The six points of the wedge-shaped object (Fig..6(a)) can be expressed as: 0 0 1 4 1 1 1 1 1 1 61 0 0 0 61 0 0 0 4 4 40 1 0 05 40 0 0 0 1 1 1 1 1 1 5 D Figure.6(b) shows the result of transformation. 4 4 6 6 4 4 64 1 1 1 1 1 40 0 4 4 5 : 1 1 1 1 1 1 (.5) Fig..6 Transformation of wedge-shaped object

6 Kinematics of Mechanisms In the above sections, the rotational transformation matrix with respect to rotations about x, y and z-axis has been analyzed. Here is the rotation matrix in the common situation: rotation about any vector (axis) with. Suppose f is the unit vector of z-axis in coordinate frame C, namely: n x o x a x 0 C D 6n y o y a y 0 4n z o z a z 05 ; (.6) f D a x i C a y j C a z k: (.) Therefore, rotation about vector f is equivalent to rotation about z-axis in coordinate frame C, thus one has, Rot.f; /D Rot.c; /: (.8) If the coordinate frame ftg is known with respect to reference coordinate frame, then another coordinate frame fsg can be calculated with respect to frame fcg, because, T D CS; (.9) Where, S is the relative position of T with respect to C, then, S D C 1 T: (.0) The rotation of T about f is equivalent to the rotation of S about z-axis of frame fcg, Then the following equation can be derived, Rot.f; /T D CRot.z; /S; (.1) Rot.f; /T D CRot.z; /C 1 T: (.) Rot.f; /D CRot.z; /C 1 : (.) As f is the z-axis of frame fcg, then it can be found that Rot.z; /C 1 is just the function of f, because, 1 n x o x a x 0 c s 0 0 n x o x a x 0 CRot.z; /C 1 D 6n y o y a y 0 6s c 0 0 6n y o y a y 0 4n z o z a z 05 4 0 0 1 05 4n z o z a z 05 : (.4)

.4 Denavit Hartenberg Representation Note that z D a; vers D 1 c; f D z. Equation (.4) can be simplified as, f x f x vers C c f y f x vers f z s f z f x vers C f y s 0 Rot.f; /D 6f x f y vers C f z s f y f y vers C c f z f y vers f x s 0 4f x f z vers C f z s f y f z vers C f x s f z f z vers C c 05 (.5) Each basic rotation transformation can be derived from the general rotation transformation, i.e., if f x D 1; f y D 0 and f z D 0, then Rot.f; /D Rot.x; /. Equation (.5) yields, 1 0 0 0 Rot.x; / D 60 c s 0 40 s c 05 ; (.6) which is identical to (.1)..4 Denavit Hartenberg Representation Denavit Hartenberg (DH) representation is a generic and simple method to define the relative motion parameters of two consecutive links and joints. Any arbitrary type of mechanism can be represented using the DH method to relate the position and orientation of the last link to the first one. In studying the kinematic motion between two jointed links, the DH method defines the position and orientation of two consecutive links in a chain, link i with respect to link.i 1/ using a 4 4 homogeneous transformation matrix. With reference to Fig.., let axis i denotes the axis of the joint connecting link.i 1/ to link i. Four parameters should be determined, which are i ;d i ;a i, and i. i denotes the rotation angle measured from axis x i 1 to x i with respect to z i axis. d n denotes the displacement measured from axis x n 1 to x n with respect to z n axis. a i denotes the displacement measured from axis z i to z ic1 with respect to x i axis. i denotes the rotation angle measured from axis z i to z ic1 with respect to x i axis. Following steps can help to determine the link and joint parameters of the whole kinematic model. Number the joints from 1 to n starting with the base and ending with the endeffecter Establish the base coordinate system. Establish a right-handed orthonormal coordinate system.x 0 ;y 0 ; z 0 / at the supporting base with z 0 axis lying along the axis of motion of joint 1 Establish joint axis. Align the z i with the axis of motion (rotary or sliding) of joint i C 1

8 Kinematics of Mechanisms Fig.. Denavit Hartenberg kinematic description Establish the origin of the ith coordinate system. Locate the origin of the ith coordinate at the intersection of the z i and z i 1 or at the intersection of common normal between the z i and z i 1 axes and the z i axis Establish x i axis. Establish x i D.z i 1 z i /=kz i 1 z i k or along the common normal between the z i 1 and z i axes when they are parallel Establish y i axis. Assign y i DC.z i x i /=kz i x i k to complete the right-handed coordinate system Find the link and joint parameters With the parameters defined in Fig..5, the DH model transformation matrix can be obtained as follows i 1 i T D A i D Rot.z; i / Trans.0;0;d i / Trans.a i ;0;0/ Rot.x; i/; (.) c i s i c i s i s i a i c i A i D 6s i c i c i c i s i a i s i 4 0 s i c i d i 5 : (.8).5 Jacobian Matrix To describe a micro-motion of robot, differential coefficient is utilized for coordinate transformation. Given a coordinate frame ftg, T C dt D Trans.dx; dy; dz/rot.f; d/t; (.9)

.5 Jacobian Matrix 9 where Trans.dx; dy; dz/ denotes the differential translation of dx; dy; dz; and Rot.f; d/ denotes the differential rotation about the vector f. Then dt can be calculated as follows: dt D ŒTrans.dx; dy; dz/rot.f; d/ I T: (.40) The homogeneous transformation expressing differential translation is 1 0 0 dx Trans.dx; dy; dz/ D 60 1 0 dy 40 0 1 dz5 : (.41) For the formula of general rotation transformation Rot.f; d/ f x f x vers C c f y f x vers f z s f z f x vers C f y s 0 D 6f x f y vers C f z s f y f y vers C c f z f y vers f x s 0 4f x f z vers C f z s f y f z vers C f x s f z f z vers C c 05 (.4) Since lim!0 sin D d;lim!0 cos D 1; lim!0 vers D 0; differential rotational homogeneous transformation can be expressed as, 1 f z d f y d 0 Rot.f; d/ D 6 f z d 1 f x d 0 4 f z d f x d 1 05 : (.4) Since D Trans.dx; dy; dz/rot.f; d/; it yields, 1 0 0 dx 1 f z d f y d 0 1 0 0 0 D 60 1 0 dy 40 0 1 dz5 D 6 f z d 1 f x d 0 4 f y d f x d 1 05 60 1 0 0 40 0 1 05 0 f z d f y d dx D 6 f z d 0 f x d dy 4 f y d f x d 0 dz5 (.44) 0 0 0 0

0 Kinematics of Mechanisms The differential rotation d about vector f is equivalent to the differential rotation with respect to the x, y and z-axis, namely ı x ;ı y ; and ı z, respectively. Then f x d D ı x ;f y d D ı y ;f z d D ı z : Displace the above results into (.44) yields: 0 ı z ı y dx D 6 ı z 0 ı x dy 4 ı y ı x 0 dz5 : (.45) If d D d x i C d y j C d z k; ı D ı x i C ı y j C ı z k, then the differential motion vector of rigid body or coordinate frame can be expressed as follows: D D dx dy dz ı x ı y ı z T D d ı : (.46) The linear transformation between motion speed of manipulator and each joint can be defined as the Jacobian matrix of a robot. This Jacobian matrix represents the drive ratio of motion velocity from the space of joints to the space of end-effector. Assume the motion equation of manipulator x D x.q/ (.4) represents the displacement relationship between the space of operation (endeffector) and the space of joints. Differentiating (.4) with respect to time yields, Px D J.q/Pq; (.48) where Px is the generalized velocity of end-effector in operating space. Pq is the joint velocity. J.q/ is 6 n partial derivative matrix which is called Jacobian Matrix. The component in line i and column j is: J ij.q/ D @x i.q/ @q j ; i D 1;;:::;6I j D 1;;:::;n (.49) From (.49), it is observed that Jacobian Matrix J.q/ is a linear transformation from the velocity of joints space. The generalized velocity Px of rigid body or coordinate frame is a six-dimensional column vector composed of linear velocity v and angular velocity w. Px D v D lim w t!0 1 t d : (.50) ı

.6 Conclusions 1 Equation (.50) can be rewritten as D D Replace (.48) into (.50), one has: d D lim Px t: (.51) ı t!0 D D lim J.q/Pq t; (.5) t!0 D D J.q/dq: (.5) For a robot with n joints, its Jacobian matrix is a 6n matrix, in which the first three lines denote the transferring rate of end-effector s linear velocity, and the last three lines denote the transferring rate of end-effector s angular velocity. Jacobian matrix can be expressed as: Pq 1 v Jl1 J D l J ln Pq D 6 : w J a1 J a J an 4 : 5 : (.54) Pq n The linear velocity and angular velocity of an end-effector can be expressed as the linear function of each joint velocity Pq v D J l1 Pq 1 C J l Pq CCJ ln Pq n I w D J a1 Pq 1 C J a Pq CCJ an Pq n ; (.55) where J li and J ai means the linear velocity and angular velocity of end-effector resultedinjointi..6 Conclusions In this chapter, kinematics of robot manipulators is introduced, including the concept of reference coordinate frame, translational transformation, rotational transformation and homogeneous transformation, as well as the basic knowledge in robot kinematics, such as Euler angle, Denavit Hartenberg representation, and Jacobian matrix of robot. These are the important knowledge in parallel robotic machine design.

http://www.springer.com/98-1-4419-1116-