• No results found

Laser feedback control for robotics in aircraft assembly

N/A
N/A
Protected

Academic year: 2021

Share "Laser feedback control for robotics in aircraft assembly"

Copied!
79
0
0

Loading.... (view fulltext now)

Full text

(1)

Laser feedback control for robotics in

aircraft assembly

Examensarbete utf¨ort vid Produktionssystem i samarbete med Reglerteknik vid Tekniska H¨ogskolan i Link¨oping

av

Albin Sunnanbo Reg nr: LiTH-ISY-EX-3470-2003

(2)
(3)

Laser feedback control for robotics in

aircraft assembly

Examensarbete utf¨ort vid Produktionssystem i samarbete med Reglerteknik vid Tekniska H¨ogskolan i Link¨oping

av

Albin Sunnanbo Reg nr: LiTH-ISY-EX-3470-2003

Supervisor: Henrik Kihlman Erik Wernholt Examiner: Mikael Norrl¨of Link¨oping 19th December 2003.

(4)
(5)

Avdelning, Institution Division, Department

Institutionen för systemteknik

581 83 LINKÖPING

Datum Date 2003-12-19 Språk

Language Rapporttyp Report category ISBN

Svenska/Swedish

X Engelska/English Licentiatavhandling X Examensarbete ISRN LITH-ISY-EX-3470-2003

C-uppsats

D-uppsats Serietitel och serienummer Title of series, numbering ISSN

Övrig rapport

____

URL för elektronisk version

http://www.ep.liu.se/exjobb/isy/2003/3470/

Titel

Title Laseråterkopplad styrning av robotar i flygplansmontering Laser feedback control for robotics in aircraft assembly

Författare

Author Albin Sunnanbo

Sammanfattning

Abstract

The aim of this thesis is to investigate how the absolute accuracy of an industrial robot can be increased by monitoring the position of the robot. The motive is to automate high precision, low volume production such as aircraft industry. A laser tracker that can measure both position and orientation with very high accuracy is used to monitor the robot tool position. The robot and laser tracker are integrated via a standard computer.

The abilities and performance of the robot, with and without feedback from the laser tracker, are investigated. Robotic drilling is performed with supervision and control from the laser tracker. The system is implemented and tested on parts of a demonstrator for new aircraft assembly techniques. The ability to position components with internal friction to (+/-)0.05 mm absolute accuracy is shown.

Nyckelord

Keyword

Laser tracker, Leica LTD800, Robot, ABB IRB4400, Six degrees of freedom, Feedback controller, Robot drilling, High accuracy

(6)
(7)

Abstract

The aim of this thesis is to investigate how the absolute accuracy of an industrial robot can be increased by monitoring the position of the robot. The motive is to automate high precision, low volume production such as aircraft industry. A laser tracker that can measure both position and orientation with very high accuracy is used to monitor the robot tool position.

The robot and laser tracker are integrated via a standard computer.

The abilities and performance of the robot, with and without feedback from the laser tracker, are investigated. Robotic drilling is performed with supervision and control from the laser tracker.

The system is implemented and tested on parts of a demonstrator for new aircraft assembly techniques.

The ability to position components with internal friction to ±50 µm absolute accuracy is shown.

Keywords: Laser tracker, Leica LTD800, Robot, ABB IRB4400, Six degrees of freedom, Feedback controller, Robot drilling, High accuracy

(8)
(9)

Preface

This master thesis was performed at Production systems at IKP, Link¨opings uni-versitet during the autumn semester 2003.

This report is written in LATEX.

Acknowledgment

I would like to thank all the people that have helped and inspired me with this thesis. First all the people at Production Systems for helping me see the big picture and providing great friendship. Special thanks to my supervisor Henrik Kihlman for constantly providing new challenges and blue sky thinking.

My examiner Mikael Norrl¨of and my supervisor Erik Wernholt, both at the de-partment of Electrical Engineering, deserves great thanks for giving good academic review of the thesis.

I would also like to thank my girlfriend, friends and family for enlighten my days.

Finally I would like to thank the numerous people who found their ways to the lab and asked interesting questions.

(10)
(11)

Notation

Glossary

Homogeneous transformation A 4 × 4 matrix that describes the position and orientation of an object or coordinate system, see Section 3.3.

IRB4400 The type of robot used. See Section 2.2.

RAPID Program language used by the ABB S4 robot

controller to control the robot, see RAPID Ref-erensmanual [3].

Relation The distance and angle between two objects or coordinate system. The relation is often ex-pressed as a homogeneous transformation. Round Trip Time The time it take for a signal to go from sender

to receiver and then back to the sender again in a communication setup. Abbreviated RTT. S4Cplus The type of robot controller used. See

Sec-tion 2.2.1.

Tool Center Point 0 The position on the robot where the current tool is mounted. This is the robot position when no tool is mounted.

XML eXtensible Markup Language, a general purpose

description language

(12)

vi

Abbreviations

3D the same as 3DOF

3DOF 3 Degrees Of Freedom (translation if nothing else specified) 6D the same as 6DOF

6DOF 6 Degrees Of Freedom (3 translation and 3 rotation) MP Measure Point

RTT Round Trip Time, see glossary SDK Software Development Kit

TBR Tooling Ball Reflector, a special type of reflector TCP0 Tool Center Point 0, see glossary

Symbols

Degree 0 Minute of arc. 10= 1 60 ◦ 00 Second of arc. 100= 10 60 = 1 3600 ◦

k · k Matrix norm, if nothing else is specified the k · k2 norm is used TA

B A Transformation between location A and location B is denoted with T ,

see Chapter 3

c(α) When lack of space cos(α) is concatenated s(α) When lack of space sin(α) is concatenated

(13)

Contents

1 Introduction 1

1.1 Background . . . 1

1.1.1 The use of robots . . . 1

1.1.2 The ADFAST project . . . 2

1.2 Objectives . . . 2

1.3 Previous work . . . 2

1.4 Thesis Outline . . . 2

2 System description 3 2.1 Leica LTD800 laser tracker . . . 4

2.1.1 Ball prism . . . 4

2.1.2 6DOF Reflector . . . 4

2.1.3 emScon . . . 5

2.2 ABB IRB4400 Robot . . . 5

2.2.1 S4Cplus controller . . . 6 2.2.2 WebWare SDK . . . 6 2.3 ART modules . . . 6 2.4 Drilling . . . 7 3 Mathematics 9 3.1 Translation . . . 9 3.2 Rotation . . . 9 3.2.1 Rotation matrices, R . . . 10 3.2.2 Quaternions . . . 10

3.2.3 Euler Z’Y’X’ angles and fixed XYZ axes angles . . . 11

3.2.4 Transformations . . . 12

3.2.5 Mean values of rotations . . . 13

3.3 Homogeneous transformations . . . 14

4 Error compensation 17 4.1 Background and assumptions . . . 17

4.2 Translation . . . 18

4.3 Orientation . . . 19 vii

(14)

viii Contents 4.4 Homogeneous transformation . . . 20 4.5 Controller . . . 20 4.5.1 Stability . . . 21 4.6 Termination criteria . . . 21 5 System analysis 23 5.1 The ABB IRB4400 Robot . . . 23

5.1.1 Mechanical manipulator . . . 23

5.1.2 Computer network . . . 28

5.1.3 S4Cplus controller . . . 28

5.1.4 WebWare SDK . . . 31

5.1.5 Alternatives . . . 31

5.2 The Leica LTD800 laser tracker . . . 31

5.2.1 Alternatives . . . 32

5.3 Master controller . . . 33

6 System calibration 35 6.1 Tracker to Robot base and TCP0 to reflector . . . 35

6.1.1 Method for cooptimization of TT r Rob and TRef lT CP 0 . . . 36

6.1.2 Other methods . . . 38

6.2 Tip of drilling machine . . . 39

6.2.1 Measurement of TT r Bushing . . . 40

6.3 Location of drill frame . . . 41

6.4 Location of robot chuck . . . 43

7 System integration 45 7.1 Connection to robot controller . . . 45

7.1.1 Ordinary program flow . . . 45

7.1.2 Extraordinary program flow . . . 46

7.1.3 Emulating a discrete controller . . . 46

7.2 Connection to laser tracker controller . . . 46

7.3 CAD-system integration . . . 47

8 Results 49 8.1 System calibration . . . 49

8.2 Module positioning . . . 49

8.3 Drilling . . . 49

8.4 Process automation and CAD integration . . . 51

9 Conclusion 55 9.1 Further work . . . 55

9.2 Industrial implementation . . . 55

A Controlling RAPID program 59

(15)

Chapter 1

Introduction

This thesis presents a method for increasing the accuracy of an industrial robot by integrating a high accuracy measurement system in a feedback control loop. The performance of the system is evaluated on reconfiguring of ART modules and robotic drilling.

1.1

Background

Today robots are used for automation of high volume production, e.g. car indus-try. To achieve high enough accuracy for most manufacturing processes the robot process must be calibrated by hand. This takes long time and is not suitable for short series production. This thesis will treat the issue of increasing the accuracy of the robot so the calibration is not needed.

In manufacturing today large jigs are used for fastening the product in. Those jigs have to be constructed with very high precision for each part in a product. If a product changes the jig has to be rebuild. To lower costs the ADFAST project is developing affordable reconfigurable jigs. The jigs are to be reconfigured by a robot in combination with a high accuracy measurement system. The jigs must be reconfigured with the same precision as the traditional fixed jigs are manufactured.

1.1.1

The use of robots

Today robots are mostly used in large volume manufacturing applications, such as car industry. The programming of robots is a time consuming work and thus not affordable in low volume production.

An industrial robot of today has an absolute accuracy of ca. ±1 mm which is often too low for use without manual calibration for each operation.

(16)

2 Introduction

1.1.2

The ADFAST project

This thesis project is a part of the ADFAST project [4]. ADFAST stands for “Automation for Drilling, Fastening, Assembly, Systems Integration and Tooling”. It is part of the EU 5th framework, mainly directed toward developing automated

methods for air craft manufacturing.

1.2

Objectives

The objective in this thesis is analysis of the feasibility of using a laser tracker in a feedback control loop to increase the accuracy of the industrial robot. The increased accuracy is to be evaluated on different processes.

Four topics are of special interest to investigate.

• Reached absolute accuracy, both without loads and with hanging loads and friction loads

• Speed in continuous mode, where the robot is compensated continuously to stay within the necessary accuracy

• Dynamic load handling, where the robot is adjusted throughout a drilling cycle to assure the correct tolerance of the hole

• Participate in the implementation of a physical demonstrator being built in the robotic lab of Link¨opings universitet

1.3

Previous work

Kihlman and Loser [10] presents preliminary tests of controlling the robot via the Leica laser tracker. Seyed-Aghamiri [13] has investigated suitable methods and equipment needed for the reconfiguring of the ART modules. Also preliminary work on connecting the robot and laser tracker was done.

1.4

Thesis Outline

In Chapter 2 the equipment and components in the thesis are presented. In Chap-ter 3 the mathematics needed for understanding the details are brought forward. In Chapter 4 the problem of adjusting the robot is treated from a theoretical point of view. In Chapter 5 the performance of the equipment and components are an-alyzed. In Chapter 6 the methods for calibrating the system are presented. In Chapter 7 it is shown how the different subsystems are connected. In Chapter 8 the results are presented. In Chapter 9 a summary and conclusion is presented.

(17)

Chapter 2

System description

The system is built from a PC computer that connects to an ABB robot and a Leica laser tracker. The PC, which will be referred to as Master Controller, is running Microsoft Windows 2000. A Visual Basic program connects to the robot and laser tracker via a computer network. The Visual Basic program runs a control algorithm that controls the robot with information from the laser tracker and a reference value. In figure 2.1 the schematic connections are shown.

Figure 2.1. Robot and Tracker integration

(18)

4 System description

Figure 2.2. Leica LTD800 with T-cam

2.1

Leica LTD800 laser tracker

The LDT800 tracker, see Figure 2.2, is an upcoming product from Leica Geosystems The tracker can measure the location of a special reflector with laser interferometry with high accuracy and speed. With the new T-cam the tracker can also measure the orientation of the reflector by analyzing the projection of IR-diodes on the reflector.

2.1.1

Ball prism

For measuring 3DOF coordinates a ball prism is used, see Figure 2.3. The term prism is not correct for the 1.5 inch ball since it technically is a Cat’s eye reflector, but the term prism will be used anyway in this report. The diameter of the prism is 1.5 inch, that is 38.1 mm. The origin, the point that is measured, is located in the center of the sphere, 19.05 mm from the contact point of the measured surface.

2.1.2

6DOF Reflector

To measure 6DOF coordinates a customized 6DOF reflector is used. The 6DOF reflector can be used at up to ±40◦ angle from the tracker. A laser reflector is

used for measuring the distance. 10 IR diodes are used to identify the orientation. The origin is located inside the laser reflector on the 6DOF reflector according to Figure 2.4.

(19)

2.2 ABB IRB4400 Robot 5

Figure 2.3. 1/2 inch TBR reflector and 1.5 inch Cat’s eye

(a) Photo (b) Drawing

Figure 2.4. Customized 6DOF reflector with its coordinate system

2.1.3

emScon

emScon is a computer program from Leica that communicates with the laser tracker. emScon is implemented as a COM-object that can be integrated in a C++ or Visual Basic application. With the emScon object a computer program can start and stop measurements with the laser tracker, receive streamed measure-ments and change operation parameters.

2.2

ABB IRB4400 Robot

The robot used is an ABB IRB4400, see Figure 2.5(a). The IRB4400 is an ordinary industrial robot with good precision and high speed.

The robot is equipped with an automatic Capto chuck, see Figure 2.5(b), where the 6DOF reflector or a tool can be mounted, the Capto interface can be seen in Figure 2.6(c) . The chuck can also be used for docking with the ART modules, see

(20)

6 System description

(a) The ABB IRB4400 robot

(b) Robot chuck

Figure 2.5. Robot and chuck

Section 2.3. On each side of the chuck a Capto male interface is located where the 6DOF reflector can be fastened when the chuck is occupied.

2.2.1

S4Cplus controller

The S4Cplus controller from ABB is a standard robot controller. The controller has a built in programming language called RAPID, see RAPID Reference manual [3] for details. The controller is equipped with an ethernet interface for fast external communication. Electrical and pneumatic connections can be controlled from the S4Cplus controller.

2.2.2

WebWare SDK

WebWare SDK is a computer program from ABB that communicates with the S4Cplus controller. WebWare is implemented as an ActiveX control that can be integrated in a C++ or Visual Basic application. With the WebWare ActiveX control a computer program on a network connected computer can manipulate RAPID program execution, RAPID variable data and I/O-signals on the S4Cplus controller.

2.3

ART modules

One task of the ADFAST project is to develop so called ART1 modules, see

Fig-ure 2.6. The modules are movable in 6DOF. They can be locked in arbitrarily positions, but have no internal driving. Instead the modules are to be moved by the robot. On the modules, Capto r interfaces from Sandvik Coromant are

1

(21)

2.4 Drilling 7

Capto

(a) Hexapod (b) Pogostick (c) Capto r interface,

male part

Figure 2.6. ART modules and Capto interface

Figure 2.7. Self feeding drilling machine with bushing

mounted, see Figure 2.6(c). The Capto interfaces are used for mounting pickup units and docking with the robot.

2.4

Drilling

Some drilling experiments were done. The drilling machine in Figure 2.7 is a self feeding pneumatic machine. The machine is equipped with pneumatic control of the feeding. A Capto interface is mounted on the machine to enable easy mounting in the robot chuck.

The drilling was made in 3 mm aluminum plates. The plates were fastened in a frame with fastening clamps , see Figure 2.8. The frame is movable, but a Capto interface can be used for locating the frame if moved.

(22)

8 System description

x

Capto

y

z

(23)

Chapter 3

Mathematics

In this chapter the mathematics needed to understand this thesis is presented and explained.

The location of an object in space has 6 degrees of freedom, 6DOF. First the position in a right handed Cartesian coordinate system (x, y, z)T and then rotation about the coordinate axes (γ, β, α)T. The location of an object is usually visualized as a coordinate system attached to the object. This fact makes it possible to treat the location of an object as a transformation from one coordinate system to another. A transformation from coordinate system A to B will be denoted TA

B.

This transformation makes the following relation hold: A = TA

B B.

A location is both the position and orientation of a coordinate system. In Figure 3.1 B is a location described in the coordinate system A.

3.1

Translation

All translations are in a given coordinate system. A translation v is a vector with three components v =   x y z   (3.1)

The vector v can also be a part of a homogeneous transformation, see (3.23). Translation of a vector A with the vector v is a vector addition A + v.

3.2

Rotation

There are many different ways to represent and calculate rotations. Each repre-sentation has its own benefits and drawbacks. No reprerepre-sentation can be said to be better than all other in every situation. Here a selection of representations are described.

(24)

10 Mathematics X Y Z B X Y Z A

Figure 3.1. Location B described in coordinate system A

3.2.1

Rotation matrices, R

Rotation matrices are introduced in every course on the topic linear algebra. They are easy to calculate with and have a lot of nice properties that mathematicians are fond of. The matrix can be parametrized by three numbers (γ, β, α). Rota-tion matrices are length preserving on multiplicaRota-tion. All rotaRota-tion matrices are orthonormal and thus have the following property

R−1= RT (3.2)

that can be used to save computational resources. Remember that multiplication is not commutative, that is AB 6= BA in the general case. ABv is a vector v first rotated by B and then by A. When referring to the individual elements of the matrix the indices

R =   r11 r12 r13 r21 r22 r23 r31 r32 r33   (3.3) are used.

3.2.2

Quaternions

A quaternion is a four dimensional vector. If the length of the quaternion is 1 it can be used to described rotations according to Craig [6].

Note that element 4 in Craig is called element 0 in this thesis according to Table 3.1. This is because ABB uses the latter notation.

(25)

3.2 Rotation 11

Table 3.1. Numbering of quaternions,  is Craig notation and q is the notation in this thesis.

q0 = 4

q1 = 1

q2 = 2

q3 = 3

Table 3.2. Quaternion definition.

q0 = cos  θ 2  q1 = x sin  θ 2  q2 = y sin  θ 2  q3 = z sin  θ 2 

If the quaternion has unit length the quaternion can represent a rotation. Then the elements in the quaternion are interpreted as in Table 3.2, where (x, y, z) is a vector of length one about which the rotation take place with the angle θ.

3.2.3

Euler Z’Y’X’ angles and fixed XYZ axes angles

Rotations can be described as rotation along the coordinate axes one after each other. There are two main philosophies regarding this. Fixed axes angle systems and Euler angle systems1. In a fixed axes angle system the coordinate axes are

fixed in space and the object to rotate is rotated about the axes one at a time. When describing Euler angle systems the coordinate system follows the rotated system. I.e. if a system first is rotated around the x axis and then around the y axis the second rotation is around the now tilted y axis. Euler angles which will be used mostly in this work, is denoted with a dash after each rotation axis. Z0Y0X0means an Euler angle system first rotated about the z axis, then about the

new y axis and finally about the (now twice rotated) x axis. Fixed angle systems are denoted without dashes. XY Z represents a rotation about the original x, y

1

(26)

12 Mathematics

and z-axes in that order. According to Craig [6, eq 2.64, 2.71] Euler Z0Y0X0 and

fixed angle XY Z systems are representing the same rotation. This result is not obvious but can be proved by simply calculate the rotation matrices.

In Table 3.3 a mapping between different notations of the rotational axes are presented.

Table 3.3. Notations for rotational axes

α = Roll = Rotation about ˆz β = Pitch = Rotation about ˆy γ = Yaw = Rotation about ˆx

3.2.4

Transformations

When integrating systems with different representations of rotation, converting between them are necessary. To convert between Euler angles and quaternions convert via rotation matrices.

EulerZYX to R

This conversion is from Craig [6, eq 2.64].

RZ0Y0X0(α, β, γ) = . . . 0 B B @ c(α)c(β) −s(α)c(γ) + c(α)s(β)s(γ) s(α)s(γ) + c(α)s(β)c(γ) s(α)c(β) c(α)c(γ) + s(α)s(β)s(γ) −c(α)s(γ) + s(α)s(β)c(γ)s(β) c(β)s(γ) c(β)c(γ) 1 C C A (3.4)

Where c(θ) is a short form for cos(θ) and s(θ) is a short form for sin(θ).

R to EulerZYX

This conversion is from Craig [6, eq 2.66-2.68]. Note that arctan2(y, x) is arctan(x y)

but with signs for both x and y. arctan2 is also called four quadrant arctan because the resulting angle can be in any of the four quadrants of a circle, 0 ≤ arctan2 ≤ 2π.

β = arctan2  −r31, q r2 11+ r221  (3.5) α = arctan2  r21 cos(β), r11 cos(β)  (3.6) γ = arctan2  r32 cos(β), r33 cos(β)  (3.7)

(27)

3.2 Rotation 13

If β = π

2 then the solution must be calculated as follows.

β = π

2 (3.8)

α = 0 (3.9)

γ = arctan2 (r12, r22) (3.10)

If β = −π

2 then the solution must be calculated as follows.

β = −π

2 (3.11)

α = 0 (3.12)

γ = − arctan2 (r12, r22) (3.13)

Quaternion to R

This conversion is from Craig [6, eq 2.91].

R =   1 − 2q2 2− 2q32 2 (q1q2− q3q0) 2 (q1q3+ q2q0) 2 (q1q2+ q3q0) 1 − 2q21− 2q32 2 (q2q3− q1q0) 2 (q1q3− q2q0) 2 (q2q3+ q1q0) 1 − 2q12− 2q22   (3.14) R to Quaternion θ = arccos r11+ r22+ r33− 1 2  (3.15) q0 = cos  θ 2  (3.16) q1 = r32− r23 4q0 (3.17) q2 = r13− r31 4q0 (3.18) q3 = r21− r12 4q0 (3.19) (3.20) To get (3.15) and (3.16) Craig [6, eq 2.81] is combined with Craig [6, eq 2.89] and Table 3.1.

3.2.5

Mean values of rotations

Because of the non linear properties of rotations a mean value is not a simple add and divide by n operation. When the angle between two rotations is 180◦, that

(28)

14 Mathematics

Figure 3.2. Slerp illustrated, qAand qB are quaternions

to calculate the mean value is to use spherical linear interpolation of quaternions, called slerp, see the command quaternion/qinterp in Robotics Toolbox [5]. Slerp is defined in (3.21) and (3.22) and is a function that rotates qAto qBalong a circular

path as t moves from 0 to 1 according to Figure 3.2.

slerp(qA, qB, t) = qAsin ((1 − t) θ) + qBsin (tθ)

sin θ , 0 ≤ t ≤ 1 0 < θ < π (3.21) θ = arccos         qA 0 qA 1 qA 2 qA 3     •     qB 0 qB 1 qB 2 qB 3         (3.22)

To take a mean value of qA and qB calculate the value of slerp qA, qB, 1/2.

To take a weighted mean value, like (1 − t)A + tB, use slerp qA, qB, t. Slerp is

implemented in the Matlab command qinterp in Robotics Toolbox.

3.3

Homogeneous transformations

To describe both rotation and translation simultaneously 4 × 4 homogeneous trans-formations are used. A homogeneous transformation consists of a rotation matrix, a positional vector and a row (0, 0, 0, 1) as

TA B =     r11 r12 r13 x r21 r22 r23 y r31 r32 r33 z 0 0 0 1     (3.23)

When ordered in such a way ordinary matrix multiplication is equivalent with first rotating with the rotation matrix and then translate with the vector (x, y, z)T.

(29)

3.3 Homogeneous transformations 15

Homogeneous transformations can be inverted and then represents the inverse transformation: TA

B

−1 = TB

A. This makes the following equations equivalent

A = TBAB ⇔ B = TBA

−1

A ⇔ B = TABA (3.24)

where A and B both are either homogeneous transforms or position vectors (x, y, z, 1)T. A homogeneous transformation can be parametrized into a 6-element vector (x, y, z, γ, β, α) where (γ, β, α) is the parametrization of the rotation matrix.

(30)
(31)

Chapter 4

Error compensation

This chapter describes the laser feedback control method developed for improving the absolute accuracy of the robot.

The robot itself is not capable of reaching the absolute accuracy required for aircraft assembly by only using the internal control system of the robot. But since the relative accuracy is better than the allowed tolerances the robot can be adjusted until the absolute accuracy is good enough. Whether adjustment is made continuously or only at distinct time events is not important. All measurements must be in the same coordinate system and be synchronized.

First the compensation method is described for translation and rotation sepa-rately, then it is shown how they can be described together with a homogeneous transformation.

4.1

Background and assumptions

The reference value for the end effector of a robot is called location B (the refer-ence value in tracker coordinate system) in Figure 4.1. The current position and orientation of the robot’s end effector is measured with the laser tracker and the measured location is called L. L is assumed to be correct measured1.

The robot reports that the end effector is in the location R. The robot is assumed to be able to do accurate relative movements from R. The goal is to make L to be as close to B as possible. The goal is achieved by instructing the robot to go to a new position S (steer point). V is the error of the robot location.

1

The laser tracker is the most accurate measure tool the project possesses

(32)

18 Error compensation

Reference value

Measured value

L

R

S

B

V

Figure 4.1. Robot and laser tracker. Definition of B, L, R, S and V .

4.2

Translation

For a location P the position is denoted as

Definition 4.1 A point is the position part of a locationP . The point is denotedP.pos =

  Px Py Pz  

The difference between L.pos and B.pos is a vector

V.pos = B.pos − L.pos =   Bx By Bz  −   Lx Ly Lz   (4.1)

V.pos is the error in the position. In Figure 4.1 it can be seen that the difference between the current robot position, R, and the new steer point, S, is

V.pos = S.pos − R.pos =   Sx Sy Sz  −   Rx Ry Rz   (4.2)

(33)

4.3 Orientation 19

(4.1) and (4.2) are combined to solve S.pos V.pos = V.pos

S.pos − R.pos = B.pos − L.pos ⇔

S.pos = B.pos − L.pos + R.pos (4.3)

⇔   Sx Sy Sz   =   Bx By Bz  −   Lx Ly Lz  +   Rx Ry Rz   (4.4)

4.3

Orientation

The concept of compensating deviations in orientation is the same as for compen-sating position with the conceptual difference that all vectors are replaced with orientations. V.rot should be viewed as a rotation but R.rot, S.rot, L.rot and B.rot should be viewed as orientations.

First some notation: Rotations are in this context represented as rotational matrices. The calculations are depending on the use of rotational matrices. All other representations of orientations must be transformed into rotation matrices in advance. A vector v1is rotated with V1 into the vector v2 by the equation

v2= V1· v1 (4.5)

To turn v2 into v3 with V2the equation

v3= V2· v2 (4.6)

is used. It can be seen that v3 = V2· V1· v1 and V21 = V2· V1 is a rotation that

first rotates V1 and then V2.

For a location P the orientation is denoted as

Definition 4.2 An orientation is the rotational part of a location P and is de-noted P.orient =   P11 P12 P13 P21 P22 P23 P31 P32 P33   (4.7)

The given orientations are L.orient, B.orient and R.orient. The goal is to solve S.orient.

The rotation V.orient is the rotation that turns L.orient to B.orient, as

B.orient = V · L.orient (4.8)

To get

(34)

20 Error compensation

(4.8) is multiplied with L.orient−1 from the right.

With the same reasoning as with position, V.orient is applied on R.orient to get S.orient as

S.orient = V · R.orient = B.orient · (L.orient)T · R.orient (4.10)

4.4

Homogeneous transformation

The outline is the same as for orientation, but here 4 × 4 homogeneous transfor-mations are used. In

V = B L−1 (4.11)

the transformation V is the “difference” between the current and desired position. The new position S to give to the robot is calculated as

S = V R = B L−1R (4.12)

4.5

Controller

The implemented controller compensate the location of the robot at discrete times for reasons described in Section 7.1. Together with the internal controller in the S4Cplus the error compensation controller is a cascade connected system.

In Figure 4.2 the controller model is shown. f is an internal model of the robot in the S4Cplus control system, the input is the reference value sent to the S4Cplus controller by the master controller and the output is the position sent back. n is the actual deviations from the model. The deviations are noise in the measurements, backlash, nonlinearities in the robot coordinate system as in Figure 5.3, vibrations and other dynamic effects in the construction. r is the reference value for the master controller. K is an amplification that is 1. 1

z is a delay until the next

iteration in the control loop.

(35)

4.6 Termination criteria 21

Figure 4.3. Simplified controller model

4.5.1

Stability

An important property of a controller is stability. To analyze stability first the amplification of each block is analyzed. The S4Cplus controller in the f -block will make its internal model equal to the incoming value before the RAPID-program signals back to the master controller. The output from the f -block becomes equal to the input of the f -block. The block can then be substituted with a constant amplification of 1.

The box G can be written as a block with the system function

G = 1

z − 1 (4.13)

The controller model can then be written as in Figure 4.3. n is the deviation between the state of the internal robot model and the location measured by the laser tracker. n is partially depending on yrob internal, but has a bound of approximately

±2 mm. Because n is bounded n does not affect stability, but if n does not converge to a constant the controller may not reach the desired accuracy. The closed loop system from r to ylaser becomes

Gc=

K

z − 1 + K (4.14)

and the criteria for stability is that Gc has all poles inside the unit circle, |z| =

|1 − K| < 1. The controller is stable for 0 < K < 2. Thus the used controller with K = 1 is stable.

4.6

Termination criteria

The transformation V in (4.11) can be seen as the error in the robot location. When the robot is adjusted towards the desired position, the requirements are defined on V . There are two different requirements, positional accuracy ap and rotational

accuracy ar. Typical values are ap = 0.05 mm and ar = 0.0005 rad ≈ 0.03◦.

(36)

22 Error compensation

rotational accuracy is compared with the rotational error r in (4.16).

p = kV.posk (4.15)

r = Vθ= 2 arccos (V.q0) (4.16)

In (4.16) θ is the angle part of the quaternion equivalent with V.orient. To convert between quaternions and rotational matrices see Section 3.2.4.

If p> apor r> arthe robot is not within the required accuracy. In such case

(37)

Chapter 5

System analysis

In this chapter the subsystems are analyzed and stressed to find limitations and bottlenecks.

5.1

The ABB IRB4400 Robot

A robot is a complicated mixture of several types of systems, the mechanical ma-nipulator, the electronic controller and in this case a computer network. Those parts have been broken down and analyzed separately in following sections.

5.1.1

Mechanical manipulator

The manipulator of the IRB4400 robot has an almost open kinematic structure. That is a link i is connected to i − 1 in one end and i + 1 in the other end. The only exception is a static connection between link 2 and link 3. The position of a link i is depending on the position of all links j where 1 ≤ j ≤ i − 1. This construction makes the robot able to reach into narrow structures but makes it less stiff than a robot with closed kinematic loops. The working range of the IRB4400 is shown in Figure 5.1.

The mechanical links and joints are quite stiff, but bends slightly and backlashes when put under load. When the end effector of the robot is under load the robot controller is not aware of the position and movements of the end effector, but have to rely on its internal model of the robot. Several methods for measuring the head of the robot has been proposed, e.g. accelerometers as used in Iterative Learning Control, Gunnarsson et al. [8] and Hovland et al. [9]. They have different weak-nesses, ILC today is not compensating in real time, but in an off line calibration process.

The servos have very good precision and resolution. When the robot is loaded with static forces relative motions of ca 5 µm can be performed. This assumes that the last movement of the robot was in the same direction. If the robot moves

(38)

24 System analysis

Figure 5.1. Working range of the ABB IRB4400/60 from [2]

in another direction backlash can occur and the robot will not move as much as specified. The robot will however not1 move more than the specified distance.

Linear movements

The ability of the robot to follow a straight line was tested. A MoveL command made the robot move from (1000, 1000, 1600) mm to (1000, −1000, 1600) mm ac-cording to Figure 5.2. The movement was measured with the Laser Tracker and the measurements was transformed into the position of T CP 0 in robot base coordinate

1

(39)

5.1 The ABB IRB4400 Robot 25

Figure 5.2. The linear movement of the robot

system. The mean value and slope of the x- and z-axes are subtracted with the Matlabcommand detrend. Figure 5.3 shows the deviation from an ideal line in x-and z-axes as function of the y-position.

The step in the x-position of 0.1 mm at y ≈ 0 clearly shows the backlash when joint 2 changes from contraction to extending direction. The z-position varies about 0.6 mm with the radial distance from the middle of the robot to the end effector. The main cause of this can be referred to gravity. When the end effector moves further away from the center, gravity causes increasing torque on the joints and mounting.

Backlash

As seen in the analysis of linear movement backlash can occur. To analyze the backlash the robot was moved according to a special program, see Figure 5.4. The program was run for each axis one at a time.

(40)

26 System analysis −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −5 −4 −3 −2 −1 0 1 2 3 4x 10 −4 y−position [m] Deviation [m] Straight line, 100 mm/s x z

Figure 5.3. Robot motion along a straight line, 100mm/s

The idea is to first move the axis to the zero position from positive direction to ensure repeatability. Then small steps (0.01◦) is taken in one direction, and then

the same number of steps back. This is to test repetitiveness in relative motion when going in the same direction. Then steps of increasing sizes are taken, but returning to zero between each step. This is done to find how much backlash it is when the joint is changing direction. The location of the TCP0 in robot base coordinate system TRob

T CP 0 was measured with the laser tracker.

An irb4400 robot model, see Appendix B, was constructed and verified in robotics toolbox. The ikine command in Robotics Toolbox was used to trans-form the homogeneous transtrans-formation into the corresponding joint angles for the IRB4400 robot. The measured angles were compared with the reference value for each axis.

In Figure 5.5 the measured angles for axis 1 are compared with the reference values. It can be seen that the difference between the reference value and the measured value goes up when the axis turns toward + and down when the axis

(41)

5.1 The ABB IRB4400 Robot 27 0 10 20 30 40 50 60 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Program steps for one axis

Step no.

angle [

o]

Figure 5.4. Reference values for axis movements

0 20 40 60 80 100 120 0.091 0.092 0.093 0.094 0.095 0.096 0.097 0.098 0.099 0.1 0.101 Play Axis 1 Step no. angle [ o]

Figure 5.5. Backlash in axis 1, difference between measurment and reference

turns toward −. The backlash is quite constant and not depending on the amount moved before changing direction. The difference between the mean value of the upper points and the mean value of the lower points is 0.0075◦.

(42)

28 System analysis

5.1.2

Computer network

The connection between the main controller, the ABB S4Cplus controller and the emScon server is made over the public IKP2network. In Table 5.1 results from a

PING3-test is shown. The tests are done from a UNIX4computer on the university

network to the S4Cplus controller. Empirical test show that the delays in the network are small and are not a bottleneck in the current setup.

Table 5.1. Ping to robot controller

----130.236.##.### PING

Statistics----37 packets transmitted, Statistics----37 packets received, 0% packet loss round-trip (ms) min/avg/max = 0/0/4

5.1.3

S4Cplus controller

The controller has an internal dynamic model of the mechanical unit. The model state is recalculated continuously to follow a reference value. The model outputs reference values for all 6 joints. Internal PID controllers for each joint adjust the current that drives the servos to reflect the output from the model.

The time it takes for the controller to process commands sent to it via the net-work is important. It adds to the round trip time, that is reducing system band-width. The response time has been measured in two different situations. Reading the current position of the robot with the WebWare function S4ProgramVariableRead with an S4RobTarget variable was performed 100 times after each other. A mea-surement was not started before the previous request had returned. The time for each request to complete was measured. The result is shown in Figure 5.6 and a summary is shown in Table 5.2.

Testing of write speed was performed with the same process as for testing of read speed with the difference that the S4ProgramVariableRead call was replaced

2

Ordinary 100 Mbit switched ethernet

3

A computer program for measuring the time it takes for a data packet to travel across the network

4

The PING utility on the main controller computer could not measure times below 10 ms

Table 5.2. Summary WebWare read

Mean value 9.1 ms Min value 0 ms Max value 58.6 ms

(43)

5.1 The ABB IRB4400 Robot 29 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50

60 Read time from IRB 4400 via WebWare

Round trip time [ms]

Figure 5.6. WebWare read

Table 5.3. Summary WebWare write

Mean value 4.8 ms Min value 0.0 ms Max value 11.7 ms

Most values 0 ms < t < 12 ms

with a S4ProgramVariableWrite call with a S4RobTarget variable as parameter. The result is shown in Figure 5.7 and a summary is shown in Table 5.3.

To test the reaction of doing some processing on the S4Cplus controller be-fore returning the result the read test was performed once more. This time the S4ProgramVariableReadcall was replaced by a call to S4CurrentPositionGet. This reads the current position of the robot instead of a variable. The result is shown in Figure 5.8 and a summary is shown in Table 5.4. The processing on the S4Cplus controller adds a delay of about 20 ms to the round trip time, RTT.

There are some things to note about these tests. The influence from the com-puter network is small according to Section 5.1.2, hence the delays are either in the WebWare Server on the main controller computer or in the S4Cplus controller. The increasing response time when processing is done on the S4Cplus controller leads to the conclusion that the S4Cplus controller is the bottleneck in the communication. The programming language of the controller is adapted to run predefined pro-grams with interaction with the environment only at a limited rate and extension, see Section 7.1. One effect of this is that the robot can not be controlled directly

(44)

30 System analysis 0 10 20 30 40 50 60 70 80 90 100 0 2 4 6 8 10

12 Write time to IRB 4400 via WebWare

Round trip time [ms]

Figure 5.7. WebWare write

Table 5.4. Summary WebWare read current position

Mean value 24.7 ms Min value 7.8 ms Max value 50.8 ms Most values 20 ms < t < 30 ms 0 10 20 30 40 50 60 70 80 90 100 5 10 15 20 25 30 35 40 45 50

55 Read time from IRB 4400 via WebWare, including function call on robot

Round trip time [ms]

(45)

5.2 The Leica LTD800 laser tracker 31

from WebWare, but indirectly via control variables in a RAPID program. Ac-cording to Section 7.1.3 a discrete controller can be emulated, but not with good performance.

Both the processing delays of commands and the lack of continuous controlling lowers the bandwidth of the control loop. The bandwidth is about 3 Hz which does not allow for dynamic load compensation, e.g. the operating of a drilling machine.

5.1.4

WebWare SDK

WebWare SDK provides a good interface with a high level of abstraction. WebWare SDK is fast and easy to develop with. There are no good methods for manipulating the motion of the robot, but that is due to limitations in the S4Cplus controller.

5.1.5

Alternatives

The ABB IRB4400 is one of the more accurate conventional robots from ABB. There are some new robots with higher stiffness and accuracy, e.g. IRB940 which claims to have an absolute accuracy of approximately 0.2 mm, see IRB940 Data sheet [1]. No robot on the market was found with 0.1 mm absolute accuracy with varying loads. Hence the need for external measurement control is justified.

The communication speed of the S4Cplus controller as well as the limited in-teraction is a limiting factor. For the ABB robots there are no faster controllers available, but according to Nilsson and Johansson [11] modifications can be made to bypass the slow update of the reference signal. Such modification would be required for improved performance.

5.2

The Leica LTD800 laser tracker

For measuring the position of the end effector of the robot the LTD800 laser tracker from Leica is used.

The performance of the laser tracker is specified in Table 5.5. The typical distance from the reflector origin to the object of interest (e.g. pickup) is below 100 mm. On 100 mm distance the angular accuracy of the laser tracker corre-sponds to a translation accuracy of ±35 µm. On 4 m distance from the tracker the positional error is ±40 µm which gives a total error of ±75 µm on the object of interest.

To study the quality of the measurements from the laser tracker the 6DOF reflector was firmly fastened on four meters distance from the tracker. On this distance the absolute accuracy is specified to be ±40 µm. The position of the reflector was measured with a continuous 6DOF measurement. The sample rate used was 100 Hz. Figure 5.9 shows that the variation is significantly smaller than the ±40 µm limit specified as absolute accuracy. If the absolute accuracy also is within ±40 µm can not be seen. Bias in the measurement can not be detected since there is no better reference available to compare with.

(46)

32 System analysis

Table 5.5. Leica LTD800 specification, from Leica Geosystems webpage [7]

Tracking

Maximum target speed in direction of laser beam > 6.0 m/s Maximum target speed at right angles to laser beam > 4.0 m/s Range of measurement Horizontal 235◦ Vertical 45◦ Distance 0 − 40 m Accuracy Angle resolution 0.1400 Distance resolution 1.26 µm

Absolute accuracy (2sigma) of a coordinate for static tar-gets

±10 ppm (µm/m) Absolute accuracy (2sigma) of a coordinate for slow moving

targets

±20 ppm (µm/m) Absolute accuracy (2sigma) of a coordinate for fast moving

targets

±40 ppm (µm/m) Absolute distance metering

Resolution 1 µm

Accuracy (2sigma) ±25 µm

Orientation measurement

Absolute accuracy, 1.5m < reflector distance < 15m ±0.02◦

Sample frequency

6DOF measurement 100 Hz

The frequency spectra in Figure 5.10 shows that most variance has a frequency below 1 Hz. The low frequency resulted in the decision to not filter the readings from the laser tracker. The majority of the variance in the laser readings is believed to originate from vibrations in the work show floor.

One problem with this type of measurement equipment is that free sight is required from the laser tracker to the reflector. When working in complex con-structions and frameworks extensive planning of the tracker location might be needed.

5.2.1

Alternatives

Different types of sensors could be used to measure the position of the robot. If lower accuracy can be allowed a cheaper measurement system can be used.

(47)

5.3 Master controller 33 0 1 2 3 4 5 6 7 8 −0.03 −0.02 −0.01 0 0.01 0.02

0.03 Variance for laser, positional deviation

Time [s]

Deviation from mean value [mm]

0 1 2 3 4 5 6 7 8 −0.025 −0.02 −0.015 −0.01 −0.005 0 0.005 0.01 0.015 0.02

0.025 Variance for laser, angular deviation

Time [s]

Deviation from mean value [degrees]

Rx Ry Rz x y z

Figure 5.9. Variation around mean value in the laser measurement on 4 meter distance

PosEye

The upcoming product PosEye from MEEQ Measurement Equipment, see Schofield [12], is based on a camera mounted on the robot arm. The camera can locate its position in space by analyzing the angle to different luminous tapes mounted in the robot surrounding and on components.

5.3

Master controller

The master controller is an ordinary PC computer running Microsoft Windows. The speed is not a limiting factor in this project. The main controller computer is fast enough for managing complex calculations in real time. Figure 2.1 shows how the controller is connected to the laser tracker and the robot controller.

(48)

34 System analysis 0 5 10 15 20 25 30 35 40 45 50 0 0.5 1 1.5 2

2.5 FFT of the positional deviation

Frequency [Hz]

x y z

(49)

Chapter 6

System calibration

Before the compensation can start the relation between all components in the system must be measured. This chapter describes the methods developed for mea-suring transformations between different components.

In this project lots of physical objects are involved and good measurements of the components are needed. What good measurements are depends on the ap-plication. In this project the requirement is ±200 µm in the complete structure. Individual modules and operations must have higher accuracy. For robot position-ing ±100 µm accuracy with unknown affectposition-ing forces is assumed to be enough.

6.1

Tracker to Robot base and TCP0 to reflector

To use the laser tracker to supervise the actions of the robot their coordinate systems must be calibrated against each other. Although the error compensation algorithm described in Section 4 is stable also for big errors in the transformations the compensation becomes faster with more accurate transformations.

When the laser tracker is placed on the floor and the 6DOF reflector is mounted on the robot there is a constant distance between the tracker and the robot base coordinate system (TT r

Rob) and from TCP0, the end of the robot arm before

mount-ing any tool, to the origin of the reflector (TT CP 0

Ref l ). Those distances can not be

measured directly since they are not reachable by physical measuring tools, e.g. inside the robot foundation. Hence the distances must be measured indirectly.

According to Figure 6.1 there are four transformations, see Table 6.1, in a kinematic loop. This relation can be used in different ways to calculate parts of the chain by measuring other parts.

Several methods to measure and calculate the unknown fixed relations have been developed and evaluated.

(50)

36 System calibration

Figure 6.1. Definition of TT r

Rob, TT CP 0Rob , TRef lT CP 0and TRef lT r

Table 6.1. Homogeneous transformations in the kinematic loop in Figure 6.1

TT r

Rob The location of the robot base in tracker coordinate system

TRob

T CP 0 The location of TCP0 in robot base coordinate system, reported by

the robot if tool0 is used

TT CP 0

Ref l The relation from TCP0 to the 6DOF reflector, if TRef lT CP 0is defined as

the robot tool the robot will report the coordinates of the laser prism on the 6DOF reflector

TT r

Ref l The location of the 6DOF reflector in tracker coordinate system,

re-ported by the laser tracker

C1, C2 Different notation for Ref l when the reflector is mounted on the spe-cific mount points C1 and C2 on the robot

6.1.1

Method for cooptimization of T

RobT r

and T

Ref lT CP0

This method is based on the idea that if the robot is moved to different configura-tions it will give more information to an equation system.

When the robot is moved to different locations in robot base coordinate system the coordinates, TRob

T CP 0, can be read from the robot controller. For all of those

locations the location of the 6DOF reflector in the tracker coordinate system, TT r Ref l,

can be read from the laser tracker. Then TT r

Rob and TRef lT CP 0 which are fixed all

the time, but unknown, are to be calculated. From the kinematic relations the expression

TRobT r TT CP 0Rob TRef lT CP 0= TRef lT r (6.1)

can be derived, where TRob

(51)

6.1 Tracker to Robot base and TCP0 to reflector 37

least two pairs are needed, but the more pairs the better.

TT r Rob= . . . 2 6 6 6 6 6 4 c(γA)c(βA) −s(γA)c(αA) + c(γA)s(βA)s(αA) s(γA)s(αA) + c(γA)s(βA)c(αA) xA s(γA)c(βA) c(γA)c(αA) + s(γA)s(βA)s(αA) −c(γA)s(αA) + s(γA)s(βA)c(αA) yA −s(βA) c(βA)s(αA) c(βA)c(αA) zA 0 0 0 1 3 7 7 7 7 7 5 (6.2)

(where c(θ) is a short form for cos(θ) and s(θ) is a short form for sin(θ)) and TT CP 0 Ref l = . . . 2 6 6 6 6 6 4 c(γC)c(βC) −s(γC)c(αC) + c(γC)s(βC)s(αC) s(γC)s(αC) + c(γC)s(βC)c(αC) xC s(γC)c(βC) c(γC)c(αC) + s(γC)s(βC)s(αC) −c(γC)s(αC) + s(γC)s(βC)c(αC) yC −s(βC) c(βC)s(αC) c(βC)c(αC) zC 0 0 0 1 3 7 7 7 7 7 5 (6.3)

are constructed out of the variables that matlab will optimize, see (6.6). In each of TT r

Roband TRef lT CP 0there are 6 unknowns (x, y, z, γ, β, α), that makes 12

unknowns in the whole equation. If the homogeneous transformation is parametrized it is possible to solve 6 unknowns with one set of values for the equation. To solve all 12 unknowns another set of values are used:

 TT r

RobTT CP 0,1Rob TRef lT CP 0 = TRef l,1T r

TT r

RobTT CP 0,2Rob TRef lT CP 0 = TRef l,2T r



(6.4)

If TRob

T CP 0,16= TT CP 0,2Rob and thus TRef l,1T r 6= TRef l,2T r the equation system can be solved

exactly. This solution is very sensitive for noise in the measurements.

To improve the accuracy of the solution many measurements are made. Then a sort of mean value of the solutions is calculated. This is done in Matlab Opti-mization Toolbox. Since Matlab only can minimize scalar valued functions a cost function has to be defined. A cost function is a function that evaluates how close to the solution the equation system is. The cost function is a function of all the variables in the system to solve, it must grow when the system is further away from the solution, it should also be continuous. When the system is as close to its optimal solution as possible the cost function is in its minimum and the other way around: when the minimum of the cost function is found, the best solution to the equation system is found. The function f in (6.5) is continuous and growing for larger errors.

f =X

i

TRobT r TT CP 0,iRob TRef lT CP 0− TRef l,iT r

(6.5)

f can be interpreted as the sum of the deviations for each measurement from the calculated transformations.

If the world was perfect and the robot could move with the same precision as the laser tracker can measure f would have been 0 when the optimal solution was found. In reality f > 0. The value of f is the sum of the deviations from the

(52)

38 System calibration

calculated transform for each measured value. Optimization Toolbox also needs a vector to optimize and a starting value for that vector. The vector to optimize is x in (6.6).

x = (xA, yA, zA, γA, βA, αA, xC, yC, zC, γC, βC, αC) (6.6)

x0is initialized with rough guesses and then the fmincon function in Optimization

Toolbox is used to calculate the values of x that gives the smallest value of f .

6.1.2

Other methods

BAE method forTT CP 0

Ref l

Parallel to the cooptimization method a method for calculating TT CP 0

Ref l was

de-veloped by BAE Systems. The method uses small relative motions to identify the transformation. The performance of the BAE method is comparable to the cooptimization method with respect to the TT CP 0

Ref l transformation.

A stepwise procedure to computeTT CP 0 Ref l

Early in the project a method was developed for finding TT CP 0

Ref l . A short sequence

of actions will produce the transformation. 1. Put the 6DOF reflector in the chuck

2. Measure the position of the 6DOF reflector, call it P . 3. Rotate joint 6.

The prism will make (part of) a circle. This circle will be in a plane. The normal vector of this plane is the ˆz-axis. The center of the circle is the origin in the x-y plane.

4. Go to P again, then rotate joint 5. The prism will again make another circle. The normal vector through this plane is the ˆy-axis. The origin of the ˆz-axis is 140 mm from the center of the circle according to Figure 5.1.

5. Calculate the ˆx-axis by taking the cross product between the ˆy and ˆz axes:

ˆ

x = ˆy × ˆz (6.7)

6. Now the orientation and origin of all axes are determined. Thus the coordi-nate system for TCP0 is known, the position P of the reflector is measured in 6DOF. Calculate the difference between TCP0 and the 6DOF reflector. This method worked well in theory but worse in practice. Since the methods of measurements in the software Axyz1 is not able to measure the necessary 6DOF

coordinates in Step 2 the method failes to produce any result. Although some more 1

(53)

6.2 Tip of drilling machine 39

Figure 6.2. Bushing with its coordinate system

work and small modification of the method could produce results this method is abandoned in favor of the cooptimizing method, see Section 6.1.1. This is both because the stepwise procedure has a weakness in returning exactly to P in Step 4. The cooptimizing method simultaneously returns TT r

Rob. The whole procedure is

also time consuming to perform.

Direct method for computingTT r Rob

In the beginning of the project a rough value for the TT r

Rob transformation was

needed. The accuracy of this transformation is not so important since it is supposed to be canceled out by the adjustment algorithm anyway.

This method is quick for calculating a fast estimate of the TT r

Robtransformation.

First an estimation of the TT CP 0

Ref l transformation, possibly produced by measuring

by hand, must be available. Then values of TRob

T CP 0 and TRef lT r are measured by the

robot controller and laser tracker respectively. The transformation is calculated straight forward as

TRobT r = TRef lT r TT CP 0Rob TRef lT CP 0

−1

(6.8)

6.2

Tip of drilling machine

The point on the drilling machine that is of interest is the tip of the bushing on the machine. The bushing is pressed against the working object when drilling is performed. When the drilling machine is used the 6DOF reflector is located on either side of the chuck, on the C1 or C2. To be able to calculate the position of the bushing on the drilling machine the transformation TBushingRef l is needed. The position of the bushing can be adjusted by screwing the sleeve in and out to allow for different hole depths. This has the effect that the transformation must be remeasured if the hole depth is changed. The transformation can not be measured directly but TT r

Bushingas well as TRef lT r can be measured. Then T

Ref l

(54)

40 System calibration

(a) Prism on bushing tip (b) Prism against bushing sleeve

(c) Prism against bushing sleeve

Figure 6.3. Measurements on drill machine

as TBushingRef l = TT r Ref l −1 TT r Bushing (6.9) TT r

Ref l can be measured directly with the reflector mounted on e.g. C2 but TBushingT r

must be measured either indirectly according to Section 6.2.1 or in a coordinate measurement machine.

6.2.1

Measurement of T

T r Bushing

To measure the location of the bushing coordinate system in Figure 6.2 both the position of the origin and the orientation of the z-axis must be measured. The direction of x and y-axes can be defined arbitrarily. To measure the origin of the bushing coordinate system a set of points in the middle of the tip of the bushing were measured as in Figure 6.3(a). One set of different points on the front surface of the bushing, see Figure 6.2 were measured. To locate the position and orientation of the z-axis a third set of points were measured on different locations on the cylindrical surface along the sleeve as seen in Figure 6.3(b) and 6.3(c). The sleeve cylinder has its center axis aligned with the z-axis. The reason for not sliding the prism in the slots on the sleeve is that they are not perfectly symmetrical.

One problem when measuring the middle of the bushing in the front is that the edge of the hole is chamfered some tenths of a millimeter so the 1.5 inch ball prism will sink a little bit lower in the hole than if the hole was just 6 mm wide. This is the reason for also measuring on the front surface. The bushing coordinate system has its origin in the middle of the bushing with the ˆx and ˆy axes in the front surface and the ˆz axis pointing in the drilling direction. To optimize the transformation the characteristic measurements of the points in each of the three data sets must be identified to form a cost function.

For set one the points should be as close to the center of the ˆx and ˆy axes as possible, but in the ˆz axis the point should be a little bit in front of the bushing.

(55)

6.3 Location of drill frame 41

The cost function for the points measured in the hole in the tip is calculated as

ftiphole= X tip points x2 m+ y 2 m+ (zm+ d − 19.05) 2 (6.10)

where xm, ym and zm are the measured coordinates of one measurement

trans-formed by TT r

Bushing, d is the constant distance that the ball prism sinks down in

the hole in the bushing and 19.05 is the radius of the ball prism. ftiphole can be

interpreted as the sum of the deviation from the calculated bushing origin for each measured value in set one.

The second set, with points measured on the bushing front surface have the only restriction that they should be as close to 0 as possible in the ˆz axis. For those points the cost function is

fbushsurf = X bushing surface points (zm− 19.05) 2 (6.11)

where zm is the z-coordinate of each measured value transformed by TBushingT r .

fbushsurf can be interpreted as the sum of the deviations in the z-coordinate from

the calculated bushing front surface for each point in set two.

For the third set of points, the ones on the sleeve surface, the characteristic is that the distance to the ˆz axis is constant, with a radius r. The points are on the negative side of the ˆz axis, thus positive z-coordinates are punished. Thus the cost function is fsleeve= X sleeve surface points x 2 m+ y 2 m− (r + 19.05) 2 + Γ (6.12)

where xmand ymare coordinates of each measured value transformed by TBushingT r

of each measurement, r is the radius of the bushing sleeve. Γ = 0 if zm< 0 and

Γ = zmif zm≥ 0. fsleevecan be interpreted as the deviation in the distance to the

calculated ˆz-axis, that is the unevenness in the cylindrical surface.

The total cost function is just the sum of the cost functions for the different set of points, see (6.13)

f = ftiphole+ fbushsurf+ fsleeve (6.13)

The variable vector (x, y, x, γ, β, α) is used to form TT r

Bushing. Like in

Sec-tion 6.1.1 Matlab optimizaSec-tion toolbox is used to minimize f by manipulating the variable vector and thus get the optimal value of the transformation.

6.3

Location of drill frame

The origin of the drilling frame, in Figure 2.8, relative to the Capto interface on the frame is needed for easy recalibration if the frame is moved. To measure the

(56)

42 System calibration

(a) Prism on plate top surface (b) Prism on plate front sur-face

(c) Prism on plate upper surface

Figure 6.4. Measurements on drill plate

TF rameF rCaptransformation both TT r

F rame and TF rCapT r is measured. Then the relation

TF rameF rCap= TF rCapT r

−1

TF rameT r (6.14)

can be calculated. The TT r

F rCapis measured by putting the 6DOF reflector on the

Capto on the frame. For measuring the TT r

F rametransformation three sets of points on the drill plate

is measured with the 1.5 inch prism. One set on the top surface, see Figure 6.4(a), one set on the front side of the frame 6.4(b) and finally one set on the upper side of the frame 6.4(c).

The characteristics of the different measurements of the plate are straight for-ward to identify. For the ˆz axis the coordinate should be equal to the ball prism radius in negative direction. Also xmand ymshould be positive. The cost function

ftop= X top surface (zm+ 19.05) 2 + Γx+ Γy (6.15)

is calculated where zm is the z-coordinate of each measurement transformed by

TT r

F rame. To punish coordinate axes turned in the wrong direction Γx is positive if

xm< 0 and 0 if xm≥ 0. Γy is defined accordingly.

Following the same pattern the cost function for the front side is defined as

ffront=

X

front side

(xm+ 19.05)2+ Γy+ Γz (6.16)

and the cost function for the upper side is defined as

fupper= X upper side (ym+ 19.05) 2 + Γx+ Γz (6.17)

(57)

6.4 Location of robot chuck 43

Finally the total cost function is defined as

f = ftop+ ffront+ fupper (6.18)

The variable vector (x, y, x, γ, β, α) is used to form TT r

F rame. Like in Section 6.1.1

Matlab optimization toolbox is used to minimize f by manipulating the variable vector and thus get the optimal value of the transformation.

6.4

Location of robot chuck

There is a need for knowing the transformation between the Capto interface C2 on the side of the chuck where the 6DOF probe is mounted and a male Capto docked in the robot chuck. This relation is called TC2

ext. This is used after a dynamic

module is probed with the 6DOF reflector mounted on the modules Capto to dock with the robot when robot is guided by the 6DOF reflector.

To measure the transformation first the position of the reflector mounted on the robot TT r

C2 is measured while the robot is docked with the Capto on a dynamic

module, then the robot is undocked from the Capto and the position of the Capto on the unmoved module is measured with the 6DOF reflector TT r

ext. Finally he

transform is calculated as

TextC2= TC2T r

−1

(58)
(59)

Chapter 7

System integration

To be able to use the laser to increase the positional performance of the robot, the laser tracker controller and the robot controller must be connected somehow. The measurements from the laser must also be interpreted in the system and new actions must be decided. For this purpose an ordinary PC was used as proposed by Seyed-Aghamiri [13].

On the PC a main system controller is implemented in Microsoft Visual Basic. The controller program uses emScon to connect to the Leica tracker and WebWare SDK to connect to the S4Cplus robot controller, see Figure 2.1.

In the following sections the different parts in the integration are discussed.

7.1

Connection to robot controller

The WebWare SDK used for communication with the robot controller is imple-mented as an ActiveX control. This means it easily can be integrated into Win-dows applications written in e.g. Visual Basic or Visual C++. WebWare SDK uses the Robot Application Protocol (RAP) for communicating with the S4Cplus robot controller. The available functions includes reading and manipulating PERS vari-ables, reading and writing I/O, starting and stopping program execution. Though direct control of the running application is not possible.

The lack of direct control of the robot leads to a solution where the program execution is controlled indirectly. The solution was to use a RAPID-program, see Appendix A, which performs different actions depending on the values of variables and I/O signals. The RAPID program also has the ability to synchronously signal back to the WebWare application. This is used e.g. when the robot is done with moving to a given position and the RAPID program is ready to process new tasks.

7.1.1

Ordinary program flow

After initialization the RAPID program does nothing but spins waiting for NextAction to be larger than 0. When the main controller decides that the robot shall move

References

Related documents

Wise-ShopFloor 52 2010-05-31 The controller implements two RAPID programs concurrently using the option of RobotWare Multitasking, which will allow it to send data to the robot

Embedding human like adaptable compliance into robot manipulators can provide safe pHRI and can be achieved by using active, passive and semi active compliant actua- tion

This work presents the design of safe human robot collaboration by equipping an indus- trial robot cell with SICK laser scanners, safety monitoring system and trap routine speed

- perspektivtotalisering, dvs.psykoanalytikern dikterar själv det psykologiska perspektivet om att Quick återgestaltar i sina mord de övergrepp (motsagda av syskonen) som han skall

Han skulle kunna vara den som Wenell (2001) menar har en form av tävlingsinstinkt, vilket bidrar till att han arbetar för mycket men inte själv ser att det kan leda till

Comparing the dog HCC between breed groups suggests that the ancient breed group is the least affected by the owner and their relationship together, the solitary hunting dogs

För genomförandet av den här studien har en kombination av metoder valts. Se Figur 1 nedan för en schematisk bild över hur arbetsprocessen har sett ut och vilka metoder som

I Spirits fall vill man säkerställa att inte system disc och såbillar sjunker(under transport) eller lyfts upp(under arbete), för vingarna används låset för att