• No results found

Mathematical dry test for 3D concrete printing

N/A
N/A
Protected

Academic year: 2022

Share "Mathematical dry test for 3D concrete printing"

Copied!
60
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

MASTER

Mathematical dry test for 3D concrete printing software development

de Beer, M.

Award date:

2019

Link to publication

Disclaimer

This document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Student theses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the document as presented in the repository. The required complexity or quality of research of student theses may vary by program, and the required minimum study period may vary in duration.

General rights

Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.

(2)

Mathematical dry test for 3D concrete printing

Software development

Graduation report

Matthew de Beer

Micro Systems Research Group

Supervisors:

Prof.Dr.Ir. J.M.J. den Toonder L.N. Hendriks

2.5

Oss, June 2019

(3)
(4)

Currently 3D concrete printing is the new step towards automation and industry 4.0 - digitalisation - in civil and construction engineering, but still requires many improvements to enable large scale implementation.

The thesis work was carried out at CyBe Construction, 3D concrete printing company. To print objects CyBe uses an ABB robotic arm. The preparation phase of the printing process has the most inefficiencies, due to human errors. In this thesis, a mathematical dry test is developed and implemented in software, to be used as a checking tool in the printing preparation phase. This thesis will focus on the dry testing part within the preparation phase.

The main question of this thesis is: ”How will mathematical dry test software impact the setup time in 3D printing with concrete? ”. The following sub questions will be addressed:

1. Which inverse kinematic model will be used to develop the checking tool?

2. In what way will the checking tool use the kinematic model to check the given objects?

3. How will the tool interact with the robotic arm software to be fully integrated?

4. Which stages in the setup of a print are improved?

5. How much faster will the new setup time be compared with the previous method?

This thesis is split into 3 parts, each chapter solves a critical part within this research. The parts are split up in the following goals:

1. Create kinematic models of the robotic arm;

2. Create a checking tool to solve a 3D object;

3. Develop software to automate the dry test phase.

The kinematic models are based on an ABB 6650 robot, which is a robotic-arm that is commonly used in automation systems. The mathematical models are made in Matlab, and are validated by a simulation of the robotic arm in Matlab and the robotic arm available at CyBe. This ensures that the mathematical models are built correctly. These models are used to develop a tool that is able to carry out a mathematical dry test that simulates the whole robotic system. This tool is tested by placing objects within the range of the system and validating the range. The checking tool is the foundation of the software developed in chapter4.

The software developed in chapter 4is able to execute a mathematical dry test. As an answer to the main question of this thesis the mathematical dry test was found to be 1167% faster than the optimal dry test done currently by the operators.

It is recommended to use the developed software to carry out a mathematical dry test. This will reduce the time needed in the preparation phase substantially, resulting in an increase in production rate and making the whole process more economic.

(5)
(6)

Before you lies the thesis of Matthew de Beer, representing graduation work carried out at CyBe Construction from October 2018 to June 2019 in Oss. This thesis is the final report for completing the masters Manufacturing Systems Engineering in the Microsystems research group at the Mechanical Engineering department at the Technische Universiteit in Eindhoven.

I would like to thank my supervisor at the TUe, Prof.Dr.Ir. J.M.J. den Toonder for his support and guidance during my thesis and internship at CyBe.

Furthermore, I would like to thank my parents, uncle and aunt, my grandfather and my friends for their support during this masters study. Also big thanks to G.C. Rossenaar for finding CyBe;

without his help CyBe wouldn’t have crossed my mind. Of course I will thank my colleagues at CyBe for having such a great time at work. Last but not least I would like to thank L.N. Hendriks for giving me the opportunity to do my final thesis at CyBe and all the amazing experiences with our team.

Matthew de Beer Oss, June, 2019

(7)
(8)

Contents vii

List of Figures ix

List of Tables xi

1 Introduction 1

1.1 CyBe Construction . . . 1

1.2 The 3D printer . . . 1

1.3 Design to print . . . 2

1.4 Preparation to printing . . . 4

1.4.1 Positioning and levelling of the printer . . . 4

1.4.2 Measuring the position of the object . . . 4

1.4.3 Dry test . . . 4

1.5 Thesis outline . . . 7

1.5.1 Goals . . . 7

1.5.2 Main and sub questions . . . 7

1.5.3 Methods. . . 7

1.5.4 Reading guide . . . 8

2 kinematic models 9 2.1 Forward kinematics. . . 9

2.2 Simplifying the model . . . 13

2.3 Inverse kinematics . . . 14

2.4 Printer models . . . 16

2.4.1 The robotic arm . . . 16

2.4.2 Crawler . . . 17

2.4.3 Robot + leveled crawler . . . 18

2.4.4 Robotic arm + Crawler 3 legs. . . 18

2.5 Validation of the models . . . 19

2.5.1 Forward kinematic model . . . 19

2.5.2 Inverse kinematic model . . . 20

2.6 Conclusion . . . 21

3 Theoretical dry test 23 3.1 Creating the reach dome of the printer . . . 23

3.1.1 Forward kinematic model . . . 23

3.1.2 Differences between the printer and the robotic arm . . . 25

3.1.3 Standardized sizes of objects . . . 26

3.2 Pixel checker tool. . . 27

3.2.1 Forward kinematic model . . . 27

3.2.2 Inverse kinematic model . . . 28

(9)

3.2.3 Validation of the tool . . . 28

3.3 Conclusion . . . 30

4 CyBe print director 31 4.1 Work flow . . . 31

4.2 Communication . . . 33

4.3 Final tests . . . 33

5 Conclusions 37 5.1 Results. . . 37

5.2 Main and sub questions . . . 37

5.3 Improvements . . . 38

5.4 Recommendations . . . 38

Bibliography 41 Appendix 43 A Each P and R of the robotic arm 43 A.1 P . . . 43

A.2 R. . . 44

B T70 46

(10)

1.1 3D printers of CyBe. . . 2

1.2 An example of an object sliced by the CHYSEL plugin in Rhino. . . 2

1.3 The CyBe logo in a printed wall, with dimensions of 2x2 meters. . . 3

1.4 Tulips printed in a wall as a texture, with dimensions of 2x2 meters. . . 3

1.5 A picnic table for 8 persons. . . 3

1.6 Flowchart of the setup of the printer.. . . 4

1.7 The numbers of the axes and their positive and negative directions [1]. . . 5

1.8 The section of the reach of the robotic arm [1], dimensions are in mm. . . 6

2.1 Kinematics of a multibody system. . . 10

2.2 A representation of the 4 DH parameters between 2 links. . . 11

2.3 The dimensions(in mm) of all the links in the robot arm (CyBe uses IRB 6650-3.2 [1]). . . 12

2.4 Roll; Pitch; Yaw illustrated. . . 13

2.5 Section of the robotic arm during printing at an angle. . . 14

2.6 A position (the red dot) within the range of a robot with multiple axis solutions. . 14

2.7 Sketches of the sections. . . 15

2.8 Similar section to figure 2.3 to determine θ2 and θ3 by using the cosine rule. . . 17

2.9 Top section of the crawler.. . . 18

2.10 Sample 1, forward model robotic arm. . . 19

2.11 Sample 2, forward model robotic arm. . . 19

2.12 Sample 3, forward model robotic arm. . . 20

2.13 Sample 4, inverse model robotic arm. . . 20

2.14 Sample 5, inverse model robotic arm. . . 21

2.15 Sample 6, inverse model robotic arm. . . 21

2.16 Sample 7, crawler. . . 21

3.1 The point cloud that describes the reach of the printer. . . 24

3.2 The 3D dome that describes the reach of the printer. . . 24

3.3 Outline of the section of figure 3.2. . . 25

3.4 The outline of figure 3.3 in the reach of the robot of figure 1.8, where sections 1 and 2 are not reachable during printing, dimensions are in mm. . . 26

3.5 Outer object with margin set to 0. . . 29

3.6 Inner object with margin set to 50 millimeter.. . . 29

3.7 Inner object with margin set to 0. . . 29

4.1 Flowchart of the software to check a model. . . 32

4.2 Picture of the software. . . 33

4.3 An illustration of objects 1 and 2. . . 34

4.4 An illustration of objects 3 and 4. . . 34

4.5 An illustration of objects 5 and 6. . . 35

(11)
(12)

2.1 Denavit-Hartenberg parameters of the robot arm.. . . 11 2.2 Axis orientations of the robotic arm. . . 12 3.1 Standardized sizes of boxes that fit within the range with a width of 1000 mm. . . 26 3.2 Standardized sizes of boxes that fit within the range with a width of 2000 mm. . . 27 3.3 Standardized sizes of boxes that fit within the range with a width of 3000 mm. . . 27 3.4 Standardized sizes of boxes that fit within the range with a width of 4000 mm. . . 27 4.1 The duration for each type of dry test, time is in hh:mm:ss. . . 33 4.2 % difference between each dry test from table 4.1. . . 34

(13)
(14)

Introduction

This research has been carried out at CyBe Construction in Oss from October 2018 till June 2019, after the orientation internship conducted at the same company. First CyBe will be introduced to give a clear overview of the situation, then the printer and the printing process will be explained.

Finally the thesis outline will be stated.

1.1 CyBe Construction

CyBe is a tech company for the construction industry, redefining traditional approaches through far-reaching automation and digitalization. This is enhanced through enabling 3D concrete print- ing and parametric design tools. CyBe has developed new concepts to build objects1 via 3D printing with concrete. In addition to printing, CyBe also manufactures printers. CyBe has a vision to revolutionize the civil construction industry with help of 3D printing. The result of this thesis will form the first step in the automation of the civil construction industry. Robotic arms are most commonly used in the production industry for automated rapid prototyping, and the 3D printing industry has grown in the last couple of years. Yet, within the construction industry and civil engineering automation has not been applied. Although all phases of the 3D concrete printing process can be optimized, this research will focus on the preparation phase. Within the preparation phase dry-testing will be the main subject since the most errors currently occur in this part.

1.2 The 3D printer

The printer CyBe uses within their projects, and builds for their partners, is not a traditional overhead/gantry printer, but a mobile robotic arm from ABB. This robotic solution has been chosen due to its superior speed and inertia/agility compared to a gantry system. Such robotic arms are regularly used in the car industry and in automation systems. The robotic arm stands on a mobile system (crawler) or on a static foot attached to the ground as shown in figure1.1.

1Iconic buildings, affordable houses, benches, bridges, planters, manholes and many more different objects

(15)

(a) CyBe’s static printer. (b) The mobile printer.

Figure 1.1: 3D printers of CyBe.

1.3 Design to print

All objects that are printed are designed in a software program called Rhino2. A D2P3engineer is able to design an object in Rhino which will be converted to a print file. Within Rhino, CyBe has made a plugin, called CHYSEL, that is able to ”slice” the object into small pieces. These pieces are converted into points (black dots in figure 1.2) that the robot is able to read. The files are then loaded into the robot, this allows the robot to start printing the object. Figures1.3,1.4and 1.5are three objects illustrated where (a) represents the Rhino model and (b) the actual printed object.

Figure 1.2: An example of an object sliced by the CHYSEL plugin in Rhino.

2Rhino 6

3Design to Print

(16)

(a) Rhino model. (b) Printed outcome.

Figure 1.3: The CyBe logo in a printed wall, with dimensions of 2x2 meters.

(a) Rhino model. (b) Printed outcome.

Figure 1.4: Tulips printed in a wall as a texture, with dimensions of 2x2 meters.

(a) Rhino model. (b) Printed outcome.

Figure 1.5: A picnic table for 8 persons.

(17)

1.4 Preparation to printing

Before the robot can start printing, preparations need to be done. For the machine this preparation consist of the following steps:

ˆ Positioning the printer;

ˆ Levelling the printer;

ˆ Measuring the position of the ’to be placed’ object;

ˆ Dry testing the object.

1.4.1 Positioning and levelling of the printer

Positioning and levelling is currently performed manually by the operator. On average, these steps are performed in 20 minutes by two operators, where levelling the machine will take the biggest part of time. Within these steps only the levelling action can be automated to increase time efficiency.

1.4.2 Measuring the position of the object

The software that is used to control the robot is developed by CyBe. This software is able to measure certain reference points4 given by the operator. These reference points indicate the location where the to be printed object must be placed.

A flow chart of the steps is shown in figure 1.6. If a step is not possible to complete during preparation, the complete process is evaluated, in which it is checked from which step the prepar- ation has to be repeated. The most common failure during this phase is an insufficient reach to a number of points of the object. As a result the printer has to be repositioned, which makes the previously done work obsolete.

Figure 1.6: Flowchart of the setup of the printer.

1.4.3 Dry test

Dry testing is the final step before printing. A dry test is performed to check if the robotic arm is able to reach all points within the object. By performing this test, it is guaranteed that the printer can print the object. The challenge lies in the fact that the reach of the robotic arm is not easily defined, due to the doughnut shape of the reach. Dry testing is the most critical part of the preparation, if a dry test can not be successfully finished then printing the object is not possible.

After a successful dry test the actual printing process can start and the object will be printed.

4To place the model on the exact location compared to the object in Rhino.

(18)

The robot CyBe uses is a 6-axis articulated robotic arm. An example of such a 6-axis robotic arm is shown in figure1.7. This illustration shows where each axis is located. All the axes are rotational axes. The directions of the axes are indicated by the + and − signs.

Figure 1.7: The numbers of the axes and their positive and negative directions [1].

It is complex to place objects within the reach compared to a gantry printer5due to the shape of the reach. A cross section of the reach of the robotic arm CyBe uses is shown in figure1.8. The reach given in figure 1.8 is the full reach of the robot. The way CyBe uses the robotic arm for concrete printing brings the following limitations, which will be further explained:

ˆ The shape of the robot head6;

ˆ Singularities;

ˆ Break point of the 5th axis.

5The range of a gantry printer is the surface area beneath it up to its maximum height.

6The tool attached to the end vector of the robotic arm.

(19)

Figure 1.8: The section of the reach of the robotic arm [1], dimensions are in mm.

The shape of the robot head

Due to the shape of the robot-head it is not possible to use the full reach of the 5th axis of the robot. If the 5th axis would rotate to the end of its reach it will cause a collision between the robot-head and the 4th axis. Due to the shape of the current robot head, the 5th axis is limited to −117 and +117 degrees. This reduces the maximum height of the reach.

Singularities

When the 4th and 6th axes are in line with each other a singularity occurs. This only occurs if the 5th axis is in the 0 position, as shown in figure1.7. Near the singularity the solution for moving forward in it’s path has infinite amount of solutions. Singularities make the robot move slower and possibly stop completely around that area. These effects will cause problems during printing and can ruin the print.

Break point

The break point of an axis is when the axis is in 0 degree configuration. Every type of articu- lated robot has a break point at the 5th axis causing a singularity. If the 5th axis starts in a positive position then the robotic arm has to move over the singularity point to reach a negative configuration and vice versa. The reach of the positive part (0 to 117 degrees) of the 5th axis is significantly bigger than the negative side (0 to -117 degrees), this is explained in more detail in subsection3.1.2.

Due to these factors it is necessary to execute a dry test for bigger sized objects in order to check if the reach is sufficient. For carrying out the dry test there are two options:

1. The dry test is partially done by checking the layers where insufficient reach is expected.

2. The dry test is fully executed by checking every layer in the object.

(20)

1.5 Thesis outline

In order to provide a solution for the physical dry test problem, a research plan was made in the phase-one report [5]. In order to achieve satisfying results, goals are set for this project. The main and sub questions are validated to achieve the set goals.

Papers that involve 3D concrete printing mainly involve the research on the printed object itself.

For example Wangler et al. [12], Bos et al. [2] and De Schutter et al. [11] address the opportunities, challenges and perspective vision of digital concrete construction in general and 3D-concrete- printing in particular. Buswell et al. [3] utilized the published work and their own original research results to delineate the relationship between the properties of 3D-printable cementitious composites in fresh and hardened states and effects of rheology of fresh concrete and processing parameters on the geometry of 3D-printed elements[10].

1.5.1 Goals

The goal of this project is to develop software to replace the physical dry test by a mathematical dry test. This goal will allow the operator of the robot to perform a dry test without using the robot. This will result in a decrease of the setup time of the prints. The current way of working is explained in subsection1.4.3. These dry tests can take up to 1 hour or more. A mathematical dry test will drastically decrease the setup time [5]. The goals that are set:

ˆ Create an inverse kinematic model of the system;

ˆ Integrate the inverse model into a tool that is able to check a given model;

ˆ Integrate the checking tool into the software to use it in conjunction with the robot.

1.5.2 Main and sub questions

The earlier stated goals in section1.5.1are written as the main and sub questions of this thesis.

Where the main goal will be ”How will mathematical dry test software impact the setup time in 3D printing with concrete? ”. The sub questions can be defined as [5]:

1. Which inverse kinematic model will be used to develop the checking tool?

2. In what way will the checking tool use the kinematic model to check the given objects?

3. How will the tool interact with the robotic arm software to be fully integrated?

4. Which stages in the setup of a print are improved?

5. How much faster will the new setup time be compared with the previous method?

1.5.3 Methods

The goals will be validated by practical tests. These tests will validate if the goals are met. Each step will be checked by simulation or practical reference to ensure no errors occur. The methods used to create the kinematic models7 are taught during the courses of the master, for example Multibody and Nonlinear Dynamics from N. de Wouw [6]. These methods will be used as reference material during this thesis [5].

Since 3D concrete printing with a robotic arm is relatively new in the 3D printing industry, there is not much literature and research available yet on this topic regarding 3D concrete printing.

Within robotics research there is more literature available, for example developing kinematic models for robotic systems by B.A. Jones; I.D. Walker [8]. Yet these kinematic models do not have the same properties as the robotic system that is used by CyBe, due to the limitations mentioned in subsection1.4.3.

7kinematic models of multibody systems, such as a robotic arm.

(21)

1.5.4 Reading guide

Chapter 2 is about creating kinematic models that describe the position and orientation of the printer. Chapter 3 will describes the use of the models generated in chapter 2 to create a tool which is able to perform a mathematical dry test. Chapter4 will focus on making software with the tool created in chapter3, used as an implementation of the mathematical dry test. In chapter 5conclusions and recommendations for further research are presented.

(22)

kinematic models

kinematic models are used to describe a system in a mathematical way. In this chapter the kinematic models are used to solve equations that define the position and orientation of the system.

2.1 Forward kinematics

A forward kinematic model is able to use the axes configuration as an input to determine the position and orientation of the end effector. Not every input has a different solution, it is possible for two or more different inputs to have the same solution. The functionality of the forward kinematic model is as follows:

ˆ To base the inverse kinematic model on the forward kinematic model (further explained in section2.3);

ˆ To generate the cross section of the reach of the robot arm;

ˆ To be a control of the inverse model.

The robot arm uses Cartesian XY Z-coordinates to define the position, and quaternions to define the orientation of the end effector. CHYSEL uses Cartesian XY Z-coordinates for the positioning of the pixels1. The orientation of the pixels is defined in Euler angles. The conversion from Euler angles to quaternions [9] is done within CHYSEL. The input for pixels in the robot will remain in quaternions, only the output can be changed to Euler angles to divine the orientation, therefore the forward kinematic models are based on a Cartesian XY Z system and Euler angles.

The complete position and orientation of the forward kinematic model can be defined by the matrix T [4]. Matrix T is built up from all the links of the robot. The kinematic model can be described from the base to the end effector. A link is a body that connects two axes. In figure 2.1 the end effector is shown as the coordinate system. Matrix T can be used to describe the dynamics of the model, yet this is out of scope of this thesis, although it is common to write the model this way.

1The points the robot has to follow in order to print an object.

(23)

Figure 2.1: Kinematics of a multibody system.

Model Tend effectorbase can be calculated by multiplying the models T of each link from the base to the end effector as shown in equation2.1.

Tend effectorbase = T10T21...Tnn−1 (2.1)

Within T are the position P and the orientation R defined. Within the forward kinematics are both P and R a function of the set of θ. T can be written as [4].

Tend effectorbase =R PT

0 1



=

r11 r12 r13 px

r21 r22 r23 py

r31 r32 r33 pz

0 0 0 1

(2.2)

The orientation R and position P can be extracted from the T matrix to be written in a simplified form as

Pn0= P0+

n

X

i=1

Pii−1R0i , where n = end effector (2.3)

R0n= Rnn−1Rn−2n−1...R01 , where n = end effector (2.4)

Denavit-Hartenberg parameters (also called DH parameters) [7] are the four parameters associ- ated with a particular convention for attaching reference frames to the links of a spatial kinematic chain, or robot manipulator. In figure2.2two links are illustrated (link i and i − 1), within these links the DH parameters can be illustrated. θi is the angular difference between two links. αi is the angular difference between two axes on the same link. ai is the positional difference between two axes on the same link, expressed in the x-direction of joint i. di is similar to ai but in the z-direction.

(24)

Figure 2.2: A representation of the 4 DH parameters between 2 links.

With help of figure1.7and2.3the DH parameters are found. These parameters are presented in table2.1. θ1to θ6 represent the axes of the robot and their angular orientation. The tool can be defined as i = 7 in the DH parameters, the end effector is positioned on the nozzle where the concrete exits the pipe.

i θi [rad] αi [rad] ai [mm] di[mm]

0 0 0 0 L0Z

1 θ1 0 L0XY 0

2 θ2 0 0 L1

3 θ3 0 L3 L2

4 θ4 0 0 0

5 θ5 0 0 L4

6 θ6 0 0 0

7 0 12π 0 0

(a) DH parameters in variable form.

i θi [rad] αi[rad] ai [mm] di[mm]

0 0 0 0 780

1 θ1 0 320 0

2 θ2 0 0 1280

3 θ3 0 1542 200

4 θ4 0 0 0

5 θ5 0 0 200

6 θ6 0 0 0

7 0 12π 0 0

(b) DH parameters in their respective link lengths.

Table 2.1: Denavit-Hartenberg parameters of the robot arm.

(25)

Figure 2.3: The dimensions(in mm) of all the links in the robot arm (CyBe uses IRB 6650-3.2 [1]).

Each Pii−1can be constructed from the DH parameters as follows:

Pii−1=

 ai

0 di

 (2.5)

Each Rn−1n is a rotational matrix, the three rotational matrices are given in equation 2.6. The orientation of the axis determines which rotational matrix is used for each R. In table2.2are the chosen types given for each axis.

RX =

1 0 0

0 cos(θ) sin(θ) 0 − sin(θ) cos(θ)

, RY =

cos(θ) 0 − sin(θ)

0 1 0

sin(θ) 0 cos(θ)

, RZ =

cos(θ) sin(θ) 0

− sin(θ) cos(θ) 0

0 0 1

 (2.6) Axis Orientation

1 Z

2 Y

3 Y

4 X

5 Y

6 X

7 Y

Table 2.2: Axis orientations of the robotic arm.

T can be calculated by Pii−1and Rn−1n from equations2.3and2.4, each Pii−1can be calculated by using the DH parameters given in table2.1 and equation 2.5. Each Rn−1n can be defined by picking the correct rotational matrix from2.6. The correct type of rotational matrix is given in table 2.2. Each P and R are presented in appendix A. The final T70 that describes the forward kinematics of the model which can be found in appendixB.

(26)

2.2 Simplifying the model

The T70 model is quite complex, due to the 4th and 5th axis of the robot arm. The complexity is created due to the freedoms in three orientations: roll, pitch and yaw. These orientations are illustrated in figure2.4. The 4th axis creates the roll movement, axes 2, 3 and 5 create the pitch movement and the first and 6th axes the yaw movement.

Figure 2.4: Roll; Pitch; Yaw illustrated.

Printing is done orthogonally to the ground, also known as leveled, so the printer does not need this full complexity during the majority of the prints. Printing at an angle is only used when an object needs to be printed against another object, illustrated in figure2.5. If an object barely fits within the range of the printer it will not be certain if the printer is able to reach the pixels on the edge of the range when being printed at an angle. If the printer leans towards itself, as illustrated in figure2.5a, the object will be in range of the printer, unless it leans outside of the inner circle of the reach. If this is the case the printer can be moved backwards to solve this problem. If the robotic arm leans away from itself it means that an object is in between the robot and the print, as illustrated in figure2.5b.

The height of an obstacle can only be the height of the nozzle length2. If the obstacle is higher than the nozzle length, then the robot is not able to reach deep enough to print the first layer.

So it is not possible to move outside the reach by printing at an angle. Hence if a print fits inside the reach of printing orthogonal to the ground, printing at an angle will fit as well.

2The nozzle length is chosen by the operator.

(27)

(a) Printing between the robot and the obstacle, leaning towards the robotic arm.

(b) Having the obstacle between the print and the robot, leaning away from the robotic arm.

Figure 2.5: Section of the robotic arm during printing at an angle.

T70is based on all six axes of the robot, six DOF3, but when printing orthogonal to the ground only five axes are needed, because the end effector can be defined in four DOF, XY Z and roll.

The 4th axis will be ignored since this axis will not be needed when printing orthogonal to the ground, but is needed when printing at an angle to create the yaw and pitch orientation. The 5th axis is constraint to the 2nd and 3rd axes and has to be orthogonal to the ground at all times.

This results in a four DOF model, where only the orientation of the XY -plane is free together with the XY Z-axes. T70 with four DOF is given explicitly in appendixB.

2.3 Inverse kinematics

An inverse kinematic model is able to use the position (XY Z) and orientation (roll, pitch and yaw) as an input to determine the axes configuration of the robot. Within the range there are several options for the position of the axes that lead to the same position and orientation of the end effector as shown in figure 2.6. Due to the reduction of the DOF’s in section2.2 the inverse kinematic model can be derived more easily from the forward kinematic model in section2.1.

Figure 2.6: A position (the red dot) within the range of a robot with multiple axis solutions.

Deriving the orientation and position of the model is simplified by the reduction of DOF. The XY -plane orientation and the X and Y coordinate can be derived by looking at the top view section of the robot, which is projected on the XY -plane in figure2.7a. The Z coordinate can be derived by looking at the section parallel to the 1st axis in figure2.7b. The XZ and Y Z-plane orientation is constrained to be orthogonal to the ground.

3Degrees of Freedom

(28)

(a) Top-view section of the robot arm. (b) Parallel section of the robot arm.

Figure 2.7: Sketches of the sections.

Equations 2.7 to 2.9 are obtained by analysing the projections of the sections in figure 2.7.

Equation2.7is obtained from figure2.7a, the orientation in the XY -plane is only affected by axis one and six when printing orthogonal to the ground. The rotation done by axis one has to be countered with the rotation of axis six. Because the end effectors X and Y axes are pointing the opposite direction relative to the base, π is added to the equation to make the axes point in the same direction relative to the base. This leads to equation2.7.

Rxy = θ1− θ6+ π (2.7)

Equation2.8 is derived from figure 2.7b and the constraint from section 2.2. Axes two, three and five are related to the rotation in the XZ-plane where axes five is constrained to be orthogonal to the ground at all times. Rxz has to be zero at all times to comply with the constraint. The rotation in the XZ-plane can be modelled by taking the negative rotation of axes two and three and constraint of the 5th axis. This leads to a 90 degrees offset of the orientation due to the 5th axis that has to be rotated 90 degrees to be in the constrained position. Therefore 12π is subtracted to offset this rotation. This leads to equation2.8.

Rxz = −θ2− θ3− (θ5−3

2π) (2.8)

The orientation in the Y Z-plane is only affected by 4th axis rotation. Due to the constraint of not moving the 4th axis Ryz has to be π at all times to be orthogonal. Therefore θ4 needs to be zero at all times and π is added to the equation. This leads to equation2.9.

Ryz= θ4+ π (2.9)

The positional equations of Px and Py can be derived from the sections shown in figure 2.7.

Equations 2.10 and 2.11are derived by calculating the projected lengths of all the links on the ground from figure2.7b. This length must be multiplied with either cos(θ1) for PX or sin(θ1) for PY, as can be seen in figure2.7a. Each row in equation2.10and2.11represents a link (1 to 4) of the robot. For simplicity are cos(θx) and sin(θx) are from now on written as Cθxand Sθxto save space.

PX=600Cθ1

+ 1280Cθ12

+ Cθ1(Cθ2(2042Cθ3+ 200Sθ3) + Sθ2(200Cθ3− 2042Sθ3))

+ Cθ1(Cθ2(200Cθ35− 200Sθ35) − Sθ2(200Cθ35+ 200Cθ53))

(2.10)

(29)

PY =600Sθ1 + 1280Sθ12

+ Sθ1(Cθ2(2042Cθ3+ 200Sθ3) + Sθ2(200Cθ3− 2042Sθ3))

+ Sθ1(Cθ2(200Cθ35− 200Sθ35) − Sθ2(200Cθ35+ 200Cθ53))

(2.11)

The positional equations of Pz can be derived from the section in figure2.7b. Equation2.12of PZ has similar properties as equations2.10and2.11. This equation can be determined by taking the projected height of the links, similar as for equations 2.10and2.11. Similar as in equations 2.10and2.11each line in the equation2.12is a link of the robotic arm.

PZ =630

+ 1280Cθ2

+ Cθ2(200Cθ3− 2042Sθ3) − Sθ2(2042Cθ3+ 200Sθ3)

− Cθ2(200Cθ35+ 200Cθ53) − Sθ2(200Cθ35− 200Sθ35)

(2.12)

2.4 Printer models

The kinematic models that are given in subsections2.4.1to 2.4.4represent the inverse kinematic models that are used during the course of this project. These models are checked by plotting the results by the real robot as shown in section2.5. The link lengths that are used in the following models are defined in figure2.8. The models made in section2.3are the foundation of the following subsections.

2.4.1 The robotic arm

θ1 can be derived from the top section in figure2.7a.

θ1= arctan(PX

PY

) (2.13)

θ2 can be derived from figure2.8by rewriting θ2by using the cosine rule.

θ2

2 − arccos((L4− L0Z+ PZ)2+ L21− L22− L23+ (L0XY −pPX2 + PY2)2 2 ∗ L1

q

(L4− L0z+ PZ)2+ (L0XY −pPX2 + PY2)2 )

+ arctan( L4− L0Z+ PZ

L0XY −pPX2 + PY2)

(2.14)

Similar to θ2, θ3is derived by using the cosine rule from figure2.8.

θ3= π − arctan(L3

L2

) − arccos(L21− (L4− L0Z+ PZ)2+ L22+ L23− (L0XY −pPX2 + PY2)2 2 ∗ L1∗pL22+ L23 )

(2.15) θ4 is derived from equation2.9.

θ4= RY Z− π (2.16)

θ5 is bound by the constraint given in equation2.8.

θ5= 3

2π − θ2− θ3− RXZ (2.17)

θ6 is derived from equation2.7 and is a function of θ1.

θ6= θ1+ π − RXY (2.18)

(30)

θ6= arctan(PX

PY) + π − RXY (2.19)

Figure 2.8: Similar section to figure 2.3to determine θ2 and θ3by using the cosine rule.

2.4.2 Crawler

The model of the crawler is derived from the top-view section of the base. This section is shown in figure2.9. From this section the position of the legs can be calculated. The input for this model comes from the orientation of the ground and the expected elevation. The length of each leg is calculated in order to obtain the given elevation of the machine in a leveled position, where H is the given height.

H1= −XL1∗ sin(RGXZ) − YL1∗ sin(RGY Z) + H (2.20)

H2= −XL2∗ sin(RGXZ) − YL2∗ sin(RGY Z) + H (2.21)

H3= r ∗ sin(RGY Z) + H (2.22)

Where Xi and Yi are the following:

Xi = r ∗ cos(θLi) (2.23)

Yi = r ∗ sin(θLi) (2.24)

(31)

Figure 2.9: Top section of the crawler.

2.4.3 Robot + leveled crawler

Only θ2and θ3change from the model given in subsection2.4.1when taking the height of the legs into account. Due to the height difference of the system PZ is changed to PZ+ H.

θ2

2 − arccos((L4− L0Z+ PZ+ H)2+ L21− L22− L23+ (L0XY −pPX2 + PY2)2 2 ∗ L1∗q

(L4− L0z+ PZ+ H)2+ (L0XY −pPX2 + PY2)2 )

+ arctan(L4− L0Z+ PZ+ H L0XY −pPX2 + PY2)

(2.25)

θ3= π − arctan(L3

L2

) − arccos(L21− (L4− L0Z+ PZ+ H)2+ L22+ L23− (L0XY −pPX2 + PY2)2

2 ∗ L1∗pL22+ L23 )

(2.26)

2.4.4 Robotic arm + Crawler 3 legs

The complete model of the robot can be defined by taking subsections 2.4.2 and 2.4.3together (θi and Hi). The positioning and orientation of the pixels does not affect the legs, since these parameters are set during the levelling phase, and will be constant after that phase. This model is validated in section2.5.

(32)

2.5 Validation of the models

2.5.1 Forward kinematic model

Validation of the forward kinematic model from section2.3will be done by checking the equations 2.7to2.12. In order to prove that the forward kinematic model is correct, three random samples are taken. Each sample is validated by the kinematic model, simulation and by the robot. The samples are shown in figures 2.10to 2.12. (a) represents a Matlab simulation of the axes configuration.

(b) illustrates a picture of the robotic arm configuration with the given input. This configuration must be exactly same as (a) in order to be correct. (c) shows the output corresponding to the configuration in (b). (d) is a table with given inputs for the simulation and robotic arm and outputs of the model. Comparison of (a), (c) and (d) in the figures shows that the simulation, robotic-arm and kinematic model all give the same result, and from this it can be concluded that the forward kinematic model is correct.

2000 0 1500

500 1000 500

500 1000

0 0 1500 2000

(a) Simulation (b) Robot configura- tion

(c) Real robot

θi Input [deg] Model Output [mm]

1 12.78 PX 1961.4

2 15.34 PY 444.9

3 24.36 PZ 951.4

4 0 RX 180

5 50.30 RY 0

6 55.8 RZ 136.98

(d) The input and output

Figure 2.10: Sample 1, forward model robotic arm.

0 500

2000 600

1000

-200-400 200400 1500

-600 -2000 2000 2500

(a) Simulation (b) Robot configura- tion

(c) Real robot

θi Input [deg] Model Output [mm]

1 -44.2 PX 611.7

2 -38.56 PY -594.9

3 11.78 PZ 2476.8

4 0 RX 180

5 116.78 RY 0

6 -77.89 RZ -146.31

(d) The input and output

Figure 2.11: Sample 2, forward model robotic arm.

(33)

0 1000 400 500 500

200 0

1000

0 1500 2000

(a) Simulation (b) Robot configura- tion

(c) Real robot

θi Input [deg] Model Output [mm]

1 15.78 PX 1140.2

2 -34.6 PY 322.2

3 34.59 PZ 1833.9

4 0 RX 179.99988

5 90.1 RY -0.0900

6 -0.78 RZ -163.44

(d) The input and output

Figure 2.12: Sample 3, forward model robotic arm.

2.5.2 Inverse kinematic model

Validation of the inverse kinematic model derived in subsection 2.4.1 is done by checking the equations in subsection2.4.1and2.4.2. CyBe does not have a crawler that is able to give an input for the legs, so it is not possible to check the legs, neither it this possible for the complete model in 2.4.4. The robot can only be tested in the same way as the forward kinematic model in subsection 2.5.1. The legs will be tested by a Matlab simulation. The samples are taken at random and are shown in figures2.13to2.16.

Similar to subsection2.5.1the inverse models are validated. (a) represents a Matlab simulation of the axes configuration. (b) is a picture of the robotic arm configuration with the given input.

(c) shows the output corresponding to the configuration in (b). (d) shows a table with the given inputs for the simulation and robotic arm and the outputs of the inverse kinematic model. The simulation, robotic arm and model all give the same result, from this it can be concluded that the model is correct. Figure2.16only has a Matlab simulation in the subfigure2.16aand the inputs and outputs of the crawler model, given in subsection2.4.2, in table2.16b.

0 1500 500 1000 500

500 1000

0 0 1500 2000

(a) Simulation (b) Robot configura- tion

(c) Real robot

Model Input θi Output [deg]

PX 1940.2 mm 1 12.36

PY 425.2 mm 2 6.87

PZ 1317.1 mm 3 19.72

RX 180 deg 4 0

RY 0 deg 5 63.41

RZ -159.74 deg 6 -7.9

(d) The input and output

Figure 2.13: Sample 4, inverse model robotic arm.

(34)

0 500

0 1500

1000

-500 1000 1500

-1000 500 2000

0

(a) Simulation (b) Robot configura- tion

(c) Real robot

Model Input θi Output [deg]

PX 1402.1 mm 1 -37.94

PY -1093.1 mm 2 -4.86

PZ 1507.0 mm 3 24.56

RX 180 deg 4 0

RY 0 deg 5 70.3

RZ 63.35 deg 6 78.71

(d) The input and output

Figure 2.14: Sample 5, inverse model robotic arm.

2000 0 1500

200 1000 500

0 500 -200 1000

0 1500

(a) Simulation (b) Robot configura- tion

(c) Real robot

Model Input θi Output [deg]

PX 2407.0 mm 1 -5.78

PY -243.6 mm 2 22.85

PZ 1675.0 mm 3 -12.67

RX 180 deg 4 0

RY 0 deg 5 79.82

RZ -167.61 deg 6 -18.17

(d) The input and output

Figure 2.15: Sample 6, inverse model robotic arm.

1000 -200

0 200 400 600

-1500 -1000 -500 0 500 1000 1500 -1000 0

(a) Simulation

Unit Input Model Output [mm]

RGY Z 1

4∗ π rad H1 511.89 RGXZ 3

4∗ π rad H2 122.08 RGXY12 ∗ π rad H3 758.82

H 500 mm

(b) The input and output

Figure 2.16: Sample 7, crawler.

2.6 Conclusion

The forward kinematic model from section 2.3has been validated in subsection2.5.1. The valid- ation shows that all samples have the same values for the inputs and outputs. This confirms that the forward kinematic model is correct.

The inverse kinematic model from subsection2.4.1has been validated in subsection2.5.2. The validation shows that all samples have the same values for the input and output. This confirms that the inverse kinematic model is correct. The inverse kinematic model of the crawler in subsection

(35)

2.4.2can only be validated by a simulation. Because the crawler is not able to perform this process, it cannot be concluded with certainty that the kinematic model of the crawler is correct.

In chapter3 the forward and inverse kinematic model will be used to create the tool to check an object that needs to be printed.

(36)

Theoretical dry test

The most accurate result of performing a dry test is to check each pixel individually. This method is currently used and is suitable for simple objects. For models with increased complexity this method is not suitable anymore. The complexity of the objects is the bottleneck of the pixel checker tool. The objects to be printed used to have up to 1000 pixels. Currently, CyBe is printing with objects of 60.000+ pixels. Therefore the reach of the robot needs to simplify the number of pixels per object, and only check the expected problem areas of the reach.

3.1 Creating the reach dome of the printer

The reach of the robotic-arm is shown in figure1.8, yet the printing range is smaller due to the factors given in subsection1.4.3, these were the following factors:

1. The shape of the robot head;

2. Singularities;

3. Breakpoint of the 5th axis.

The reach of the printer is calculated with help of the forward kinematic model given in section 2.3, equations 2.7 to 2.12. The exact range of the printer will be used for a pre-check. By placing the to be printed object in the exact range, all pixels will be checked and a pre-check is executed. By performing this check, the tool is able to exclude the set of pixels that are located deep within the range of the printer, where no errors can occur. After this check, only the pixels that are located on the edge or outside of the range, are checked by the inverse kinematic model of subsection2.4.1. The operator will check these pixels in the current situation by doing a physical dry test. This approach eliminates the biggest proportion of the pixels in the object and reduces the calculation time.

3.1.1 Forward kinematic model

By plotting every combination of θ2 and θ3 where θ5 is being determined by the constraints all the possible points within the reach are determined. Each point represents a combination of axes 2, 3 and 5. All combinations need to fit the constraints stated in section2.3. This creates a point cloud that is the section of the reach, this mesh is shown in figure3.1. Every point that is colored blue in figure3.1is reachable by the robotic-arm.

(37)

Figure 3.1: The point cloud that describes the reach of the printer.

The point cloud is loaded into Rhino. The outline can be traced to describe the exact reach of the printer. The section can be revolved around the Z-axis to create the 3D dome of the reach, this dome is visible in figure 3.2. This dome can be used by the D2P engineers to check if the objects they design fit within the reach. The object cannot intersect the dome to ensure that the reach is sufficient. The D2P engineer has to keep in mind that if the printer is standing in its lowest position it cannot print lower than the ground, unless the ground is in fact lower at the print position.

Figure 3.2: The 3D dome that describes the reach of the printer.

A test is done to check if a pixel fits within the reach of the robot by checking if the pixel is between the inner point and outer point of the dome. Figure3.3shows the outline, where the inner points are coloured red and the outer points are blue. The inner and outer points are calculated with the angle from the X-axis and the exact length of the vector from 0 to the point. The set of angles are put in order. A delta is taken from the set, which the shortest and longest vector are

(38)

saved. These vectors represent the inner and outer point of the dome for the taken delta. Doing this for each delta in set of points will result in the outline of the dome.

An offset of the outline can be made with the same method as the outline, by subtracting an offset length from each outerpoint-vector and adding the offset length to the innerpoint-vector.

Afterwards a check is needed to confirm if the points are within the reach. The inner offset has to be shorter compared to the outer offset vector length and vice versa. This offset can be used to create a border zone between the safe space within the reach and the space that needs to be checked by the inverse kinematic model. The pixels can be checked in a similar way as the outline and offset are created:

1. By calculating the vector length and angle of the pixel relative to the robot base.

2. By comparing the vector length of the pixel to the vector length of the section that fits within the delta angle in the set.

If the angle is not available in the set, the pixel is either above or below outside the reach. If the length of the vector is longer than the outerpoint or shorter than the innerpoint, then the pixel is outside the reach as well. A similar comparison is applicable to the offset points to check if the pixel is within the safe zone or in the ”danger” zone. The set that is outside the safe zone (the points in the danger zone and outside the reach) will be sent to the inverse pixel checker for further inspection. The set which fits in the safe area can be neglected.

Figure 3.3: Outline of the section of figure3.2.

3.1.2 Differences between the printer and the robotic arm

The differences between the printer reach and the robotic-arm reach are shown in figure3.4. There are two zones in the reach that are outside the printer range. Zone 1 due to the singularity and break point of the 5th-axis. The red line that separates zone 1 and the printer range is a line where singularities occur. The area indicated by 1 is only reachable if the 5th-axis is in a negative configuration.

Zone 2 - including the area behind the robot - can not be reached due to the break point of axis 5. The 3rd-axis has to go over its break point as well in order to gain access to that area. So printing in that area is not possible in any way.

(39)

The small reach limitation of the 5th-axis due to the printer head is not visible in figure 3.4.

This reach problem has a small effect on the top blue line next to number 2. The robot is able to extend this line a little upward with the full reach of the 5th-axis and due to the singularity problem in the bottom, there is no limitation there. The reach limitation is not visible because it is relatively small. Figure3.4validates the cross-section of the reach by placing the cross-section from figure3.3over the full reach of the robot from figure1.8. The outer blue line is exact on the edge of the outside reach, and the inner red line is exact on the edge of the inner reach.

Figure 3.4: The outline of figure3.3 in the reach of the robot of figure1.8, where sections 1 and 2 are not reachable during printing, dimensions are in mm.

3.1.3 Standardized sizes of objects

With the dome created in Rhino standardized objects sizes can be made. These object sizes give the D2P engineers the possibility to create objects that are not too big or barely fit within the range of the printer. This also helps the clients of CyBe, who have difficulties finding a printer with the correct range for the product they want to make. If an object fits within the standardized size it will automatically fit within the range, so no further inspection is required to ensure printability.

The standardized sizes are located in table3.1to3.3. These objects all have rectangular shapes.

Width [mm] Depth [mm] Height [mm]

1000 300 3450

1000 500 3050

1000 1000 2600

1000 1500 2250

1000 1750 1900

Table 3.1: Standardized sizes of boxes that fit within the range with a width of 1000 mm.

(40)

Width [mm] Depth [mm] Height [mm]

2000 300 3350

2000 500 2900

2000 1000 2450

2000 1500 2050

2000 1750 1500

Table 3.2: Standardized sizes of boxes that fit within the range with a width of 2000 mm.

Width [mm] Depth [mm] Height [mm]

3000 300 3000

3000 500 2700

3000 1000 2250

3000 1500 2100

3000 1750 1000

Table 3.3: Standardized sizes of boxes that fit within the range with a width of 3000 mm.

Width [mm] Depth [mm] Height [mm]

4000 300 2550

4000 500 2300

4000 1000 1580

4000 1500 550

4000 1750 250

Table 3.4: Standardized sizes of boxes that fit within the range with a width of 4000 mm.

3.2 Pixel checker tool

The checking tool checks the object in two steps. The tool first uses the forward kinematic model to exclude any pixels that are placed deep within the reach. Then the inverse kinematic model will check the critical pixels to insure reachability. This tool is created in Matlab, and will be converted to a Visual Basic solution in chapter4. Validation of the tool is done by executing different types of tests by the robot and tool. The tool requires the following parameters to determine the exact location of the model relative to the robot:

ˆ Tool length and offset;

ˆ Workobject position and orientation1;

ˆ Robot type, link lengths and axes limitations.

3.2.1 Forward kinematic model

The forward kinematic model is used to create the section of the reach dome similar to figure 3.3. It is able to offset a certain length as stated in subsection 3.1.1. The type of robot will determine the link lengths and the axes limitations that will create the shape of the section. The tool parameters will shift the dome into the correct position relative to the robot base. The workobject will determine the position and orientation of the loaded model relative to the robot and the section.

1Origin position and orientation

(41)

The offsetted section will be used to evaluate the pixels if they are located outside this dome.

This is done by calculating the vector length and angle towards the XY -plane2 of each pixel relative to the robot base. In a similar way as stated in subsection3.1.1the pixels are evaluated to check which pixel is inside the offsetted reach. The pixels which are located inside the reach are discarded. The set that is in the ”danger” zone will be evaluated by the inverse kinematic model. If the size of the rejected set is equal to 0, then every pixel fits within the safety zone so, the model is printable and does not need further inspection by the inverse kinematic model.

3.2.2 Inverse kinematic model

The set of pixels that is rejected by the forward kinematic model needs a second inspection by the inverse kinematic model because the check with the forward kinematic model is not exact. For this inspection, the equations2.13to2.19from subsection2.4.1are used. The input of the equations are the orientation and position of the pixels, relative to the base of the robot. If the equations can be solved and the result of the equation fits within the boundaries of the axes limitations, then the pixel is reachable from the current position. The whole set is evaluated by the inverse kinematic model, unless the model finds a pixel that is not reachable. Then the calculation is aborted and it is not possible to print this model without changing the current parameters. If the whole set is evaluated and no pixel is found outside the boundaries, then the model is printable with the current parameters.

3.2.3 Validation of the tool

The validation of the tool is done by checking 5 objects that are made to test the edge of the reach dome. Three tests to validate the first step - the forward model - and two tests to validate the second step - the inverse model.

The forward model will be tested by taking a part of the dome reach and offsetting this 15 mm inwards and outwards. The inner part needs to be within the range and the outside part cannot be reached. This is visualized in Matlab. The offset3 of the dome will be 0 to check if the inner part is within the reach as visualized in figure3.7and the outer part is out of reach as visualized in figure 3.5. The black line in figures3.5, 3.6and 3.7 represents the cross section of the reach from figure3.3. A third check is done to validate the offset by setting the margin to 50 mm and rechecking the inner part. This test is visualized in figure3.6, the inner part that was previously in the safe zone is the danger zone. The blue parts in figure3.5and3.6are pixels that are located deeper inside the range, those pixels are reachable. These pixels are the seam where the printer jumps from layer to layer.

2Leveled floor.

3Margin.

(42)

Figure 3.5: Outer object with margin set to 0.

Figure 3.6: Inner object with margin set to 50 millimeter.

Figure 3.7: Inner object with margin set to 0.

(43)

The pixels that are located in the ”danger” zone will be checked by the inverse kinematic model. It is not possible to generate a visualisation of these models. As expected the outer shell is not reachable. The inner shell that was only in the ”danger” zone and not out of bounds, is completely reachable. This shows that the kinematic models are applied correctly and the previous tests validate the tool.

3.3 Conclusion

The tool created in section 3.2 uses a forward kinematic model to determine which pixels are located ”deep” inside the range. The pixels that are not within this area will be passed on for further inspection by the inverse kinematic model that is able to check exact if a pixel is in range or not. If a single pixel is found to be out of range then it is not possible to print that object.

The pixel checking tool is validated in section 2.5 and is found to be working correctly. The software that is developed in chapter4 will be based on the pixel checker tool from section3.2.

Referenties

GERELATEERDE DOCUMENTEN

Recommendation and execution of special conditions by juvenile probation (research question 5) In almost all conditional PIJ recommendations some form of treatment was advised in

Procentueel lijkt het dan wel alsof de Volkskrant meer aandacht voor het privéleven van Beatrix heeft, maar de cijfers tonen duidelijk aan dat De Telegraaf veel meer foto’s van

5 To suggest that adults like Karen Klein are capable of being bullied by children represents an abdication of the responsibilities of adulthood itself.. In situations like the

In addition, in this document the terms used have the meaning given to them in Article 2 of the common proposal developed by all Transmission System Operators regarding

Gegeven dat we in Nederland al meer dan twintig jaar micro-economisch structuurbeleid voeren, vraagt men zich af waarom de aangegeven verandering niet eerder plaats vond, op

In doing so, the Court placed certain limits on the right to strike: the right to strike had to respect the freedom of Latvian workers to work under the conditions they negotiated

Als we er klakkeloos van uitgaan dat gezondheid voor iedereen het belangrijkste is, dan gaan we voorbij aan een andere belangrijke waarde in onze samenleving, namelijk die van

Mr Ostler, fascinated by ancient uses of language, wanted to write a different sort of book but was persuaded by his publisher to play up the English angle.. The core arguments