Newcastle University, Faculty of Science, Agriculture and Engineering. E ngineering. The School of Mechanical and Systems Engineering, Stephenson Building.
ROBOT KINEMATIC ANALYSIS - ABB IRB140 INDUSTRIAL ROBOT
An Assignment Report for the MEC8026 ROBOTICS Module by BEDIAKO, Michael Osei Asare Asare [130513533]
December 2013
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
TABLE OF CONTENTS LIST OF FIGURES
LIST OF SYMBOLS AND ABBREVIATIONS
II
III
1 ASSIGNMENT OVERVIEW
1
2 ABB IRB140 ROBOT PROFILE
1
3
3
FORWARD KINEMATICS
3.1
JOINT AND FRAME ASSIGNMENT USING DHM
3
3.2
LINK PARAMETER TABLE
5
FORWARD KINEMATICS
5
4 4.1
GENERAL TRANSFORMATION MATRIX
5
4.2
MATLAB CODE FLOW CHART
6
4.3
MATLAB CODE EXECUTION PATH
7
4.4
CHARACTERITIC T6 EQUATIONS FOR ABB IRB 140 ROBOT FROM M-FILE
8
4.5
COMPUTATION OF ROLL -PITCH-YAW ANGLES
8
4.6
COMPUTATION OF QUARTERNIONS
9
5 5.1
VALIDATION M-FILE DISCUSSION
9 9
5.2 ARBITRARY POSES
10
5.3
12
ORTHOGONAL POSES
5.4 ACCURACY AND SOURCES OF ERROR
14
6
15
REFERENCES
BEDIAKO, Michael Osei Asare
i
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
LIST OF FIGURES Figure 2.1 ABB IRB140 Robot with Joint Axes indication (image source: ABB Robotics Product Manual: IRB140 Type c)
1
Figure 2.2: ABB IRB140 Robot Dimensions shown on rear, side (Zero pose) and top views (image source: ABB Robotics (2004) Product Manual: IRB140 Type c)
2
Figure 3.1 DHM convention for a pair of serially connected link( revolute joint) (image source: (CRAIG, John J., 2005))
3
Figure 3.2 ABB IRB140 Frame assignment using J.J Craig’s convention
4
Figure 4.1 MATLAB code Flow chart
6
Figure 4.2 M-File execution path
7
Figure 5.1: Line Diagram for Orthogonal Pose 1[ 0,0,0,90,-90,0] for ABB IRB140 Robot
12
Figure 5.2 Line diagram for Orthogonal Pose 2 [0, 90, -180, 0, 90, 360] for ABB IRB140 Robot
13
LIST OF TABLES
Table 1: ABB IRB Robot Performance chart for ISO 9283 test at rated load and 1.6m/s velocity on the inclined ISO test plane (Data source: ABB Robotics (2004) Product Manual: IRB140 Type C) ............ 2 Table 2: Link Parameter table for ABB IRB 140 Using J.J. Craig’s Convention .................................... 5 Table 3 Algorithm Results against Simulated results for Arbitrary Pose 1 on ABB IRB140 robot ...... 10 Table 4: Algorithm Results against Simulated results for Arbitrary Pose 2 on ABB IRB140 robot ..... 11 Table 5 Algorithm results against Simulated results for Orthogonal pose 1 (image source: RoKiSim 1.61(2011) .............................................................................................................................................. 12 Table 6 Algorithm results against Simulated results for Orthogonal Pose 2 (image source: RoKiSim 1.61(2011) .............................................................................................................................................. 13
BEDIAKO, Michael Osei Asare
ii
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
LIST OF SYMBOLS AND ABBREVIATIONS 1. Denavit-Hartenberg
DH
2. Modified Denavit-Hartenberg (Craig convention)
DHM
3. Degree of Freedom
DOF
4. Cosα; Sinα
cα; sα
5. Link Length; Link Twist
l, α
6. Joint angle; joint offset
θ; d
7. Transformation Matrix
T6
8. Roll-Pitch-Yaw
R-P-Y
BEDIAKO, Michael Osei Asare
iii
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
1
ASSIGNMENT OVERVIEW
In this assignment, the Forward Kinematics of an ABBIRB140 Six (6) Degree of Freedom (DOF) all revolute robot arm is evaluated. The modified Denavit-Hartenberg (DH) convention as used by J.J Craig (DHM) is adopted for the robot frame assignment. The resulting T6 Transform Matrix is also generated. MATLAB (version R2012a) is used to develop an algorithm (see attached pdf file) for computing: 1. The T6 Transformation, given the joint angles, j1-j6; 2. The Euler Roll-Pitch-Yaw, R-P-Y angles; 3. Quaternion (q1,q2,q3,q4)
2
ABB IRB140 ROBOT PROFILE
Figure 2.1 ABB IRB140 Robot with Joint Axes indication (image source: ABB Robotics Product Manual: IRB140 Type c)
BEDIAKO, Michael Osei Asare
1
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
Parameter
Values
IRB
140-6/0.8 and 140T-6/0.8
Pose repeatability, RP(mm)
0.03
Pose accuracy, AP(mm)
0.02
Linear Path repeatability
0.08
Linear Path accuracy, AT(mm)
0.67
Pose stabilization time, Pst(s) within 0.2mm of the position
0.08
Table 1: ABB IRB Robot Performance chart for ISO 9283 test at rated load and 1.6m/s velocity on the inclined ISO test plane (Data source: ABB Robotics (2004) Product Manual: IRB140 Type C)
Figure 2.2: ABB IRB140 Robot Dimensions shown on rear, side (Zero pose) and top views (image source: ABB Robotics (2004) Product Manual: IRB140 Type c)
BEDIAKO, Michael Osei Asare
2
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
3
FORWARD KINEMATICS
In analyzing the forward kinematics of a Robot, the robot configuration and end effector position and orientation is determined from the knowledge of the various joint angles. This is a solution in general terms expressed as the consecutive rotation and translation of joint frames from the base frame to the end effector frame. It is convenient to express the solution as a matrix, 0T6 containing both rotations and translations along respective joint axes. The following sections lays out the procedure for obtaining the 0T6 matrix as adopted from J.J. Craig’s convention of frame assignment and used in the development of the MATLAB ® program.
3.1
JOINT AND FRAME ASSIGNMENT USING DHM
Figure 3.1 DHM convention for a pair of serially connected link( revolute joint) (image source: (CRAIG, John J., 2005))
J.J. Craig’s modifications to the DH convention of frame assignment is adopted for this assignment. According to this convention, the following parameters are defined: 1.
the
minimum
perpendicular
distance
between
consecutive
joint
axis
pairs
(Zi and Zi-1) measured along the X i-1 axis. This is ai-1 (set as li-1 for this assignment) 2. the angle of twist required to set Z i-1 to Zi taken along the Xi-1 axis ; set as αi-1 (set as ai-1 for this assignment) 3. the displacement between X i-1 and Xi measured along Zi as the Joint offset di BEDIAKO, Michael Osei Asare
3
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
4. the angle required to set X i-1 and Xi measured about Zi as the Joint angle j i
With these parameters defined, The most iportant point of the convention is the Setting of the Base frame {0}equal to {1} when joint angle j 1=0. The final frame{N} is then set so as to make its joint angle J n=0. Figure 4 shows the frame assignment based on this convention. The resulting parameters are shown in Table 2.
Figure 3.2 ABB IRB140 Frame assignment using J.J Craig’s convention
BEDIAKO, Michael Osei Asare
4
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
3.2
LINK PARAMETER TABLE
Joint (i) 1 2 3 4 5 6
Link twist (αi-1)°
Link Length (l i-1)mm
Joint angle (θi) °
(α0) = 0 (α1) =-90 (α2) =0 (α3) = -90 (α4) =90 (α5) = -90
0 70 360 0 0 0
0 -90 0 0 0 180
Joint offset (di)mm d1 = 352 0 0 d4 = 380 0 d 6 = 65
Table 2: Link Parameter table for ABB IRB 140 Using J.J. Craig ’s Convention
4
FORWARD KINEMATICS
In analyzing the forward kinematics of a Robot, the robot configuration and end effector position and orientation is determined from the knowledge of the various joint angles. This is a solution in general terms expressed as the consecutive rotation and translation of joint frames from the base frame to the end effector frame. It is convenient to express the solution as a matrix, 0T6 containing both rotations and translations along respective joint axes. The following sections lays out the procedure for obtaining the 0T6 matrix as adopted from J.J. Craig’s convention of frame assignment and used in the development of the MATLAB® program.
4.1
GENERAL TRANSFORMATION MATRIX
From Craig’s convention, the resultant Homogenous transformation matrix from the DH method is replaced by Equation 1:
[ ] [ ]
This represents:
Equation 1
i-1
Ti =Rot(z, θi) Trans(z, d i) Rot(x,αi) Trans(x,ai)
BEDIAKO, Michael Osei Asare
Equation 2
5
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
4.2
MATLAB CODE FLOW CHART
Figure 4.1 MATLAB code Flow chart
BEDIAKO, Michael Osei Asare
6
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
4.3
MATLAB CODE EXECUTION PATH
Figure 4.2 M-File execution path
BEDIAKO, Michael Osei Asare
7
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
4.4
CHARACTERITIC
T6 EQUATIONS FOR ABB IRB140
ROBOT FROM M-FILE
T0= [cosd(j1) -sind(j1) 0 l0; sind(j1)*cosd(a0) cosd(j1)*cosd(a0) -sind(a0) -sind(a0)*d1; sind(j1)*sind(a0) cosd(j1)*sind(a0) cosd(a0) cosd(a0)*d1; 0 0 0 1]; T1= [cosd(j2) -sind(j2) 0 l1; sind(j2)*cosd(a1) cosd(j2)*cosd(a1) -sind(a1) -sind(a1)*d2; sind(j2)*sind(a1) cosd(j2)*sind(a1) cosd(a1) cosd(a1)*d2; 0 0 0 1]; T2= [cosd(j3) -sind(j3) 0 l2; sind(j3)*cosd(a2) cosd(j3)*cosd(a2) -sind(a2) -sind(a2)*d3; sind(j3)*sind(a2) cosd(j3)*sind(a2) cosd(a2) cosd(a2)*d3; 0 0 0 1]; T3= [cosd(j4) -sind(j4) 0 l3; sind(j4)*cosd(a3) cosd(j4)*cosd(a3) -sind(a3) -sind(a3)*d4; sind(j4)*sind(a3) cosd(j4)*sind(a3) cosd(a3) cosd(a3)*d4; 0 0 0 1]; T4= [cosd(j5) -sind(j5) 0 l4; sind(j5)*cosd(a4) cosd(j5)*cosd(a4) -sind(a4) -sind(a4)*d5; sind(j5)*sind(a4) cosd(j5)*sind(a4) cosd(a4) cosd(a4)*d5; 0 0 0 1];
T5= [cosd(j6) -sind(j6) 0 l5; sind(j6)*cosd(a5) cosd(j6)*cosd(a5) -sind(a5) -sind(a5)*d6; sind(j6)*sind(a5) cosd(j6)*sind(a5) cosd(a5) cosd(a5)*d6; 0 0 0 1];
T6=T0*T1*T2*T3*T4*T5;
4.5
COMPUTATION OF ROLL -PITCH-YAW ANGLES
Computation of Position and Orientation in Euler Roll-Pitch-Yaw configuration psir= atan2(rr 32/ rr 33); phir= atan2(rr 21/ rr 11); thetar=atan2(-rr 31/ (rr 11 cos (phir)+ rr 21sin(phir));
BEDIAKO, Michael Osei Asare
8
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
4.6
COMPUTATION OF QUARTERNIONS
The Euler angles computed in section 4.3 are computed from Equation 2.
Equation 3 Euler angles conversion to Quaternions (Equation source: (HENDERSEN, D. M., 1977))
Quaternions are of particular importance in this assignment mainly because it provides and quick and more accurate method of computing the end effector orientation. This is evident by the ±0.0001 accuracy obtained between the algorithm results and simulated results. Judging by degree of accuracy, it can be concluded that determining and thus, programming robot arms to use the quaternions ensure a higher degree of accuracy in Robot arm translation in the various frames as compared to the matrix approach requiring the Euler R-P-Y angles.
5
VALIDATION
The validity of the developed T6 algorithm is tested for several sets of Joint angles in the Forward Kinematics analysis. Two arbitrary poses (Tables 3 and 4) are evaluated from Laboratory sessions with an actual Robot arm and two other orthogonal poses (Table 5 and 6) are also evaluated with line diagrams (Figure 5.1 and 5.2) and also from the RoKiSim© robot simulator. Both cases are compared to results obtained from the algorithm. An error computation is also obtained and discussed in the final section of the report.
5.1
M-FILE DISCUSSION
The m-file was developed in MATLAB® R2012a. The computation of arctan2 in radians was converted to degrees ( radtodeg( )) for proceeding lines. The feature arctan2d, which computes the arctan2 value directly in degrees is not available until Version R2012b. By default all Joint Angles in the m-file have been set to zero degrees (0 °). This prevents the program from returning an error is not angle is input for any joint. On completion on each stage the program requests user input to move to the next stage.
BEDIAKO, Michael Osei Asare
9
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
In conclusion, I will say that the m-file was developed to be both interactive and concise. The code is heavily commented as a guide to the least advanced user. Instructions are also provided at the beginning to guide the user. Additional features of the code are the display of the full resulting T6 Matrix with, labeling, and also an image file to show the robot zero pose. Additional features are available to the user by choice.
5.2
ARBITRARY POSES
Arbitrary Pose 1 Position
Joint Angles
Algorithm (A)
Simulated (S)
Error (E= S-A)
Position(XYZmm)
247.62, -302.06, 737.0
247.8, -302.0, 737.7
0.18, 0.06, 0.7
Euler(R-P-Y°)
49.3, 36.0, 95.4
49.4, 36.0, 95.4
0.1, 0, 0
0.67724, 0.55234,
0.67685, 0.55270,
Quarternions
0.48246, 0.05913
0.48253, 0.05978
Table 3 Algorithm Results against Simulated results for Arbitrary Pose 1 on ABB IRB140 robot
BEDIAKO, Michael Osei Asare
10
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
Position
Joint Angles
Algorithm (A)
Simulated (S)
Error (E= S-A)
Position (XYZmm)
325.2, -566.6, 492.2
325.4, -566.2, 492.1
0.2, -0.4, -0.1
Euler(R-P-Y°)
68.3, -30.8, 129.6
68.4, -30.8, 129.6
0.1, 0, 0
0.205, 0.78518,
0.20476, 0.78497,
Arbitrary Pose 2
Quarternions
0.39649, 0.42927
0.39693, 0.42936
Table 4: Algorithm Results against Simulated results for Arbitrary Pose 2 on ABB IRB140 robot
BEDIAKO, Michael Osei Asare
11
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
5.3
ORTHOGONAL POSES
Figure 5.1: Line Diagram for Orthogonal Pose 1[ 0,0,0,90,-90,0] for ABB IRB140 Robot
Algorithm Results
Simulated Results
X-Y-Zmm
450, -65, 712
450, -65, 712
R-P-Y°
0, 0, 90
0, 0, 90
q1, q2,
0.70711, 0.70711,
0.70711, 0.70711,
0, 0
0, 0
q3, q4
Table 5 Algorithm results against Simulated results for Orthogonal pose 1 (image source: RoKiSim 1.61(2011)
BEDIAKO, Michael Osei Asare
12
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
Figure 5.2 Line diagram for Orthogonal Pose 2 [0, 90, -180, 0, 90, 360] for ABB IRB140 Robot
Algorithm Results
Simulated Results
X-Y-Zmm
495, 0, 732
495, 0, 732
R-P-Y°
0, 90, 0
0, 90, 0
q1, q2,
0.70711, 0,
0.70711, 0,
0.70711, 0
0.70711, 0
q3, q4
Table 6 Algorithm results against Simulated results for Orthogonal Pose 2 (image source: RoKiSim 1.61(2011)
BEDIAKO, Michael Osei Asare
13
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
5.4
ACCURACY AND SOURCES OF ERROR
Error, E =
Accuracy, % = 100% - E%; But
Equation 4
Equation 5
From the above validations the conclusion can be drawn that the developed algorithm has a high degree of accuracy with calibration errors on the actual robot being possible sources of errors encountered in algorithm results. From the datasheet for the IRB140, the manufacturer indicates a system repeatability of 0.03mm. Thus our computed accuracy is well within limits. Although this is a Kinematic Analysis, only the Forward Kinematic Solution is presented.
BEDIAKO, Michael Osei Asare
14
MEC8026 Assignment: ABB IRB140 Robot Kinematic Analysis
6
REFERENCES
1. ABB. 2004. Product Manual: Articulated Manual ABB IRB 140 type C; IRB 140T type C; IRB 140-6/0.8 type C; IRB 140T-6/0.8 type C. Vasteras: ABB Robotics Products. 2. BARKER, L. Keith. 1986. Modified Denavit-Hartenberg Parameters for Better Location of Joint Axis Systems in Robot ARms. Virginia: NASA. 3. CRAIG, John J. 2005. Manipulator Kinematics. In: THIRD, (ed). Introduction to Robotics - Mechanics and Control , Upper Saddle: Pearson Education International. 4. ECOLE DE TECHNOLOGIE SUPERIEURE. 2011. Robot Kinematics Simulator . [online]. 5. HENDERSEN, D. M. 1977. Euler Angles, Quaternions and Transformation Matrices. NASA. 6. SEDAR, Kucuk and Bingul ZAFER. 2006. Robot Kinematics: Forward and Inverse Kinematics. In: Sam CUBERO, (ed). IndustrialIndustrial Robotics: Theory, Modelling and Control , Pro Literatur Verlag, Germany / ARS, Austria, p.964. 7. SIEGWART, Roland and Illah R. NOURBAKHSH. 2004. Introduction to Autonomous Mobile Robots. In: Ronald C. ARKIN, (ed). Intelligent Robotics and Autonomous Agents, Cambridge: The MIT Press. 8. ZHOU, Chen. 1999. Robot Motion Analysis - Kinemat ics. Zhou Chen.
BEDIAKO, Michael Osei Asare
15