• No results found

Sensorless collision detection with safe reaction for a robot manipulator.

N/A
N/A
Protected

Academic year: 2022

Share "Sensorless collision detection with safe reaction for a robot manipulator."

Copied!
67
0
0

Loading.... (view fulltext now)

Full text

(1)

DEGREE PROJECT IN THE FIELD OF TECHNOLOGY INDUSTRIAL ENGINEERING AND MANAGEMENT AND THE MAIN FIELD OF STUDY

MECHANICAL ENGINEERING, SECOND CYCLE, 30 CREDITS STOCKHOLM, SWEDEN 2019

Sensorless collision detection with safe reaction for a robot manipulator

MARTIN GYLLING

KTH ROYAL INSTITUTE OF TECHNOLOGY

(2)
(3)

Examensarbete TRITA TRITA-ITM-EX 2019:277

Kollisionsdetektering och reaktionsstrategier för en robot utan vridmomentsensorer

Martin Gylling

Godkänt

2019-08-21

Examinator

Lei Feng

Handledare

Bengt Olof Eriksson

Uppdragsgivare

Spectrogon AB

Kontaktperson

Tomas Landström

Sammanfattning

Detta examensarbete handlar om kollisionsdetektering och kollisionsreaktion för robotarmar utan vridmomentssensorer. Detekteringsmetoden som tidigare använts av [1], [2] bygger på en algoritm som uppskattar residual vridmomentet d.v.s. friktions- samt det externa vridmomentet i varje axel genom att enbart nyttja positionsgivare och strömsensorer på roboten.

De dynamiska modellerna för roboten som används i algoritmen för beräkning av residual vridmomentet framtags med hjälp av Lagranges ekvationer, dessa modeller består av olika komponenter som påverkar vridmomenten i robotens leder så som tröghetsmoment, centripetalacceleration, corioliseffekt samt gravitation.

Genom att ta fram modeller för friktionsvridmomenten i robotens axlar går det att jämföra de beräknade friktionsvridmomenten från modellerna med de uppskattade residual vridmomenten från algoritmen, skillnaden mellan dessa två vridmoment blir då en uppskattning på det externa vridmomentet som roboten utsätts för.

Tröskelvärden för de externa vridmomenten bestäms genom experiment, dessa tröskelvärden är till för att upptäcka kollisioner genom att övervaka när de externa vridmomenten överskrider dessa värden.

Till följd av att en kollision har upptäckts måste roboten reagera på ett sätt som minimerar risken att roboten eller omgivningen tar skada. Strategier för hur en robot kan reagera då en kollision inträffar har tagits fram av [3], ett par av dessa implementeras och jämförs för olika kollisionsfall i denna rapport.

Kollisionsdetekteringen samt olika reaktionsstrategier implementerades på en UR5-e robot från Universal robots. Resultaten visade att den enkla reaktionen där roboten bromsar och sedan bibehåller positionen med hjälp av positionsreglering var den reaktion som var snabbast att stoppa rörelsen av roboten.

På grund av risken att någon kan fastna mellan roboten och omgivningen valdes inte strategin som tidigare beskrevs. En strategi där roboten bromsar och sedan går in i ett fridrifts läge visade sig vara en bättre lösning då tiden att få stopp på roboten var bara något längre än den

(4)

snabbaste strategin samt att impulsen vid en kollision i genomsnitt var lägst av alla strategier som prövades.

Då tidigare forskning i området för sensorlös kollisonsdetektering som refereras i denna rapport enbart har fokuserat på kollision detekteringen, bygger denna rapport vidare på den forskning som utförts genom att lägga till och implementera olika strategier för kollisionsreaktion på en robot utan vridmomentsensorer eller vridmomentsreglering.

Genom att kombinera metoden för kollisionsdetektering tagen från [1], [2] med reaktions strategier från [3] har detta examensarbete visat hur en robotarm som inte har dyra vridmomentssensorer kan göras säkrare.

(5)
(6)

Master of Science Thesis TRITA TRITA-ITM-EX 2019:277

Sensorless collision detection with safe reaction for a robot manipulator

Martin Gylling

Approved

2019-08-21

Examiner

Lei Feng

Supervisor

Bengt Olof Eriksson

Commissioner

Spectrogon AB

Contact person

Tomas Landström

Abstract

This thesis is about collision detection and reaction for robot manipulators without joint torque sensors. The method for detecting collisions used by [1], [2] is based on an algorithm that estimates the residual torque i.e. the friction- and external torque in each joint by only using position data from encoders and the currents in each joint on the robot.

The dynamic models for the robot in the residual torque estimation algorithm are calculated using the Lagrangian formulation. These models consist of different components that influence the joint torques such as inertia, centripetal acceleration, coriolis acceleration and gravity. By modelling the friction torque in the joints, it is possible to compare the modelled friction torque with the estimated residual torque from the algorithm. The difference between these torques results in an estimation of the external torque acting on each joint.

Thresholds for the external torques are experimentally determined, when the external torques exceed these, a collision is detected by the robot. After a collision has been detected, the robot needs to react in a safe way to minimize the risk of damaging the robot and its environment. Collision reaction strategies have been proposed by [3], a few of these are implemented and compared between each other for different cases of collision in this thesis.

The collision detection and different collision reactions were implemented on a UR5-e robot from Universal robots. The results showed that the simple reaction of braking the robot and then maintaining the position using position control is the quickest way of stopping the motion of the robot after a collision has been detected.

Due to the hazard of someone getting stuck between the robot and the environment the former explained strategies were not chosen as an optimal collision strategy, instead a strategy where the robot brakes and then switches to a compliant control mode showed to be a better solution since the stopping time is only slightly longer but the impulse of the collision is the best of all the different strategies that were tested.

(7)

Where the previous research in the field of sensorless collision detection that has been referenced in this report only has focused on the method of detecting the collision, this thesis continues the research by applying different reaction strategies on a robot without torque sensors and torque control capabilities. By combining the method for collision detection from [1], [2] together with reaction strategies from [3], this thesis has shown how robot manipulators that do not have expensive torque sensors in each joint can be made safer.

(8)
(9)

FOREWORD

This Chapter is my way acknowledging all help and feedback that I received from my co- workers and supervisors during this thesis.

I’d like to thank Tomas Landström and Herman Högström for giving me the opportunity to do my master thesis at Spectrogon AB in Täby. I’d also like to thank my coworker Björn Hardestam for taking the pictures on the robot used in this thesis report.

At KTH I’d like to thank Fredrik Asplund and my supervisor Bengt Olof Eriksson for all the valuable feedback they gave me at the planning stage and during the work for this thesis.

Martin Gylling Stockholm, April and 2019

(10)
(11)

NOMENCLATURE

This page contains all the notations and abbreviations that are used in this thesis report.

Notations

Symbol Description

𝜏 Generalized torque (Nm)

𝐼 Inertia (kg·m2)

𝜌 Speed reduction ratio of gear

𝐾 Motor torque constant (Nm/A)

𝑖 Joint current (A)

𝑞 Joint position (rad)

𝑞̇ Joint velocity (rad/s)

𝑞̈ Joint acceleration (rad/s2)

𝐸 Kinetic energy (J)

𝑈 Potential energy (J)

𝐾 Cutoff frequency (Hz)

𝑇 Sampling period (s)

Abbreviations

EOM Equations of motion

COM Centre of mass

TCP Tool center point

DOF Degrees of freedom

(12)
(13)

TABLE OF CONTENTS

FOREWORD ... 7

NOMENCLATURE ... 9

1 INTRODUCTION ... 13

1.1BACKGROUND ... 13

1.2PURPOSE ... 13

1.3DELIMITATIONS ... 14

1.4METHODOLOGY ... 14

2 FRAME OF REFERENCE ... 17

2.1LAGRANGIAN FORMULATION ... 17

2.2RESIDUAL TORQUE ESTIMATION... 17

2.3FRICTION TORQUE MODEL ... 19

2.4CONTROL MODES ... 20

3 IMPLEMENTATION ... 23

3.1DYNAMIC MODEL ... 23

3.2FRICTION MODELS ... 26

3.3COLLISION DETECTION ... 31

3.4REACTION STRATEGIES ... 34

3.5COLLISION EXPERIMENTS ... 35

4 RESULTS ... 41

4.1FRICTION MODELS ... 41

4.2COLLISION EXPERIMENTS ... 44

5 DISCUSSION & CONCLUSIONS ... 53

5.1DISCUSSION ... 53

5.2CONCLUSION ... 54

6 RECOMMENDATIONS AND FUTURE WORK ... 55

6.1RECOMMENDATIONS ... 55

6.2FUTURE WORK ... 55

7 REFERENCES ... 57

APPENDIX A... 59

A.1 JOINT_SIZE3_G5_REV1.CONF ... 59

A.2UR5E DATASHEET ... 60

A.3UR5E PARAMETERS ... 61

APPENDIX B... 62

B.1JOINT 1 COLLISION TESTS ... 62

B.2JOINT 2 COLLISION TESTS ... 63

B.3JOINT 3 COLLISION TESTS ... 64

(14)
(15)

1 INTRODUCTION

This Chapter contains the background of this project from the company’s point of view, the academic purpose behind the project, delimitations and methods that will be used to conduct the research.

1.1 Background

In companies where manufacturing of products includes some labour-intensive tasks can in some cases benefit from coming up with an automated solution rather than using manual labour. Robots are common in industries for performing tasks that are simple, dull, hazardous or dirty and will become more popular in the future [4].

Spectrogon AB is a company that manufactures state of the art optical filters using thin coat technology. It is important that the filters have the correct optical properties and do not have an excessive number of defects. As of today, measuring and sorting of filters are for the most part done by manual labour. These tasks can be tedious and take a lot of time, thus Spectrogon has plans for creating an automated solution for:

 Measurement of optical quality for their products.

 Measurement of cosmetic defects for their products.

 Sorting products with regards to the results from previous measurements.

1.2 Purpose

This thesis focuses on collision detection for a robot manipulator purposed for the last stage of the automated process, namely Sorting products with regards to the results from previous measurements. Since it in the future will be operating in an open environment, safety concerning collisions needs to be addressed. An algorithm for sensorless collision detection has been proposed by [1] and [2]. The algorithm observes the external torque on the robot using only encoder data as well as measuring the current in the joints. Should the residual error from the expected joint torque and the measured joint torque exceed a certain threshold, then a collision has occurred.

To further improve safety for this method, another reaction rather than braking and staying in place is needed because there is a risk of squeezing a person if the collision should occur in a narrow environment. Different strategies for reactions where the robot retracts and becomes easier to push have been proposed by [3]. These strategies however are dependent on torque sensors in the joints. If the robot does not have torque sensors for all the joints, then these proposed methods cannot directly be implemented.

This thesis investigates some of the strategies that have been recommended by [3] in combination with the sensorless collision detection method proposed by [1] and [2].

(16)

For this thesis the following research questions will be examined:

 Which reaction strategy results in the smallest impulse (force integrated over time) when a collision occurs?

 Which reaction strategy is quickest for stopping the movement of the robot after a collision has occurred?

From an academic point of view, this thesis will continue the research done by [1] and [2] by trying to add additional safety from the reaction strategies proposed by [3]. Should this combination of methods be successful, the conducted research would be useful for understanding how robots that do not rely on expensive torque sensors for detecting collisions can be made safe in an open environment.

1.3 Delimitations

Collision detection and reaction is only done on the first three joints of the robot (base, shoulder & elbow) to reduce the complexity of the system.

Static, coulomb and viscous friction are the only components that are taken into consideration for the friction model.

The robot’s payload is neglected since the carried products are small and only have a couple of grams.

Due to the time frame of this thesis the collision tests conducted doesn’t cover the whole state space, only a part of it will be considered.

1.4 Methodology

According to [5], if the research problem calls for:

a) Identifying parameters that influence the outcome.

b) The invention/solution utility.

c) Getting an understanding of the predictors of the outcome.

Then a quantitative approach is the best approach for the research methodology. The research for this thesis calls for point (a) since the research will require identification of the different parameters required for the dynamic model as well as the friction coefficients in the joints.

The research also calls for point (b) and (c) since the combination of the collision algorithm with the reaction strategies will be analysed and the results will show the utility of the combination of these methods. For research done within the area of robot manipulators, the experimental method is one of the most commonly used as can be seen in [1],[2] and [3] to name a few. With regards to the motivations above, a quantitative approach with an experimental design will be chosen as research methodology for this thesis.

The collaborative robot UR5e from Universal Robots will be used as the platform for research in this project, the datasheet for the robot can be found in Appendix A. Being a collaborative robot, the UR5e comes with a safety system where the user can set different constraint on the robot such as maximum allowed joint/TCP(Tool center point) velocities and allowed joint/TCP position. Another interesting feature in this system is that it comes with a collision detection as well.

When a collision is detected using the UR5e safety system, the robot stops and the program that is currently running on the robot is suspended. This results in that the robot stops sending

(17)

data packages to the client that is storing the data. The client however will continue to log the last data package received until it is closed. The result of this is that data stored by the client will remain constant after a collision has been detected when using the UR5e safety system, thus it is easy to see at what point in time the collision is detected but any further analysis such as collision impulse cannot be made.

In the factory pre-sets for the safety system, the stopping time after a collision detection ranges from most constricted (200 ms) to least constricted (1000 ms). Using both the most constricted and least constricted safety settings, the collision detection from the UR5e safety system will be compared with the collision detection method used in this thesis by looking at the delays between collision occurrence and detection.

(18)
(19)

2 FRAME OF REFERENCE

This Chapter will explain important methods and knowledge used for this thesis, gathered from different references within the research field of robot manipulators.

2.1 Lagrangian formulation

The Lagrangian formulation is an energy-based method that can be used to derive the dynamic model of a robot manipulator i.e. the EOM (Equations of motion). The first step as described by [6], [7] is to define a set of independent coordinates 𝑞 𝜖 𝑅 also called the generalized coordinates that describe the configuration of the robot. Using the generalized coordinates, the Lagrangian can be defined as

ℒ = 𝐸 − 𝑈, (2.1.1)

where 𝐸 is the total kinetic energy and 𝑈 the total potential energy of the robot links. By doing partial derivatives of the generalized coordinates and derivations with respect to time on (2.1.1), the EOM can be expressed as

𝜏 = 𝑑 𝑑𝑡

𝜕ℒ

𝜕𝑞̇−𝜕ℒ

𝜕𝑞, (2.1.2)

where 𝜏 is the generalized torque that contains the motor-, friction- and external torque components. From (2.1.2) the EOM can also be described as

𝜏 = 𝑀(𝑞)𝑞̈ + 𝐶(𝑞, 𝑞̇)𝑞̇ + 𝐺(𝑞), (2.1.3)

where 𝑀(𝑞) is the mass matrix, 𝐶(𝑞, 𝑞̇) the Coriolis matrix and 𝐺(𝑞) the gravity vector.

2.2 Residual torque estimation

According to [1] and [2] the EOM can be written similar to equation (2.1.3) as

𝜏 − 𝜏 = 𝑀(𝑞)𝑞̈ + 𝐶(𝑞, 𝑞̇)𝑞̇ + 𝐺(𝑞), (2.2.1)

where 𝜏 is the vector containing the joint torques and 𝜏 the vector containing the external torques. The joint torques contain the output torques supplied by the motors and gearboxes as well as the friction torques in the joints, thus 𝜏 can be written as

𝜏 = 𝜌𝐾 𝑖 − 𝜏 , (2.2.2)

where 𝜌 is the speed reduction ratio of the gear, 𝐾 the torque constant of the motor, 𝑖 the current in the motor windings and 𝜏 the joint friction. By substituting (2.2.2) into (2.2.1) you get the following expression:

𝜏 + 𝜏 = 𝜌𝐾 𝑖 − 𝑀(𝑞)𝑞̈ + 𝐶(𝑞, 𝑞̇)𝑞̇ + 𝐺(𝑞) . (2.2.3) Since the UR5e lacks the capability of measuring the joint accelerations 𝑞̈, in order to solve equation (2.2.3) an observer-based method proposed by [1] and [2] is used instead. The observer is designed using the generalized momentum that can be described as

𝑝 = 𝑀(𝑞)𝑞̇. (2.2.4)

(20)

According to [2] the time derivative of 𝑝 can be expressed as

𝑝̇ = 𝜌𝐾 𝑖 + 𝐶 (𝑞, 𝑞̇)𝑞̇ − 𝐺(𝑞) − 𝜏 + 𝜏 = 𝜌𝐾 𝑖 + 𝐶 (𝑞, 𝑞̇)𝑞̇ − 𝐺(𝑞) − 𝑟, (2.2.5) where 𝑟 is the residual torque vector that should be observed. Using a first order low-pass filter the following expression can be derived;

𝑟̂(𝑠) 𝑟(𝑠)= 𝐾

𝑠 + 𝐾 , (2.2.6)

where 𝐾 is the cutoff frequency of the filter and 𝑟̂(𝑠) is the filtered residual torque vector.

From the inverse Laplace transform of (2.2.6) you get

𝑟̂̇ = 𝐾(𝑟 − 𝑟̂), (2.2.7)

that in discrete time by using forward difference can be expressed as 𝑟̂(𝑘 + 1) − 𝑟̂(𝑘)

𝑇 = 𝐾[𝑟(𝑘) − 𝑟̂(𝑘)] , (2.2.8)

where 𝑇 is the sampling period. Summation on both sides of (2.2.8) together with the initial condition of (𝑟̂(0) = 0) results in the following equation

𝑟̂(𝑛 + 1) = 𝐾𝑇 {𝑟(𝑘) − 𝑟̂(𝑘)} . (2.2.9)

Substituting (2.2.5) into (2.2.9) gives

𝑟̂(𝑛 + 1) = 𝐾𝑇 𝜌𝐾 𝑖(𝑘) + 𝐶 𝑞(𝑘), 𝑞̇(𝑘) 𝑞̇(𝑘) − 𝐺 𝑞(𝑘) − 𝑝̇(𝑘) − 𝑟̂(𝑘) , (2.2.10)

𝑝̇(𝑘) can be estimated using the backward difference of 𝑝(𝑘) with the initial condition of (𝑝(0) = 0), doing this results in the final equation for the residual torque estimation

𝑟̂(𝑛 + 1) = 𝐾𝑇 𝜌𝐾 𝑖(𝑘) + 𝐶 𝑞(𝑘), 𝑞̇(𝑘) 𝑞̇(𝑘) − 𝐺 𝑞(𝑘) − 𝑟̂(𝑘) − 𝐾𝑝(𝑛) . (2.2.11)

(21)

2.3 Friction torque model

The friction model taken from [2] consist of three components; static friction 𝜏 which is the torque that the system needs to apply in order to initiate motion from rest, coulomb friction 𝜏 which is the friction component that counteracts the motion of the system and finally viscous friction 𝜏 which is the friction between layers of lubricants that have velocities relative to each other. According to [2] the friction model can thus be described as:

𝜏 =

𝜏 , 𝑖𝑓 𝑞̇ = 0 𝑎𝑛𝑑 |𝜏 | < 𝜏 𝜏 𝑠𝑔𝑛(𝜏 ), 𝑖𝑓 𝑞̇ = 0 𝑎𝑛𝑑 |𝜏 | ≥ 𝜏

𝜏 𝑠𝑔𝑛(𝑞̇) + 𝜏 (𝑞̇), 𝑖𝑓 𝑞̇ ≠ 0

(2.3.1)

where 𝜏 is the torque acting between the contact surfaces of the components in the harmonic drive in the joint and

𝜏 (𝑞̇) = 𝛽 𝑞̇ + 𝛽 𝑞̇ + 𝛽 𝑞̇ . (2.3.2)

The Figure below shows an illustration of the friction model from (2.3.1) in the stick region (𝑞̇ = 0) and the slip region (𝑞̇ ≠ 0)

Figure 1. Illustration of friction model.

In general, for an object at rest the torque 𝜏 depends on the torque applied to it. However, in the case of a position-controlled manipulator joint this torque is equal to the coulomb friction 𝜏 since torque applied to the harmonic drive will be maintained in order for the joint to reach its target position according to [2]. Thus, the torque in the harmonic drives becomes 𝜏 when the joint friction transitions from the stick to slip region resulting in the following friction model;

𝜏 =

𝜏 𝑠𝑔𝑛(𝜏 ), 𝑖𝑓 |𝑞̇| < 𝜀 𝑎𝑛𝑑 𝑞̇ = 0 𝜏 𝑠𝑔𝑛(𝜏 ), 𝑖𝑓 |𝑞̇| < 𝜀 𝑎𝑛𝑑 𝑞̇ ≠ 0 𝜏 𝑠𝑔𝑛(𝑞̇) + 𝜏 (𝑞̇), 𝑖𝑓 |𝑞̇| ≥ 𝜀

(2.3.3)

where 𝜀 is the maximum magnitude of the noise from the measurement of 𝑞̇ that is added to the model since the robot won’t fully be at rest (𝑞̇ = 0) because of noise from the encoders.

The target joint velocity 𝑞̇ is added to the model in order to capture when the friction torque is in the stick region (𝑞̇ = 0) or slip region (𝑞̇ ≠ 0).

(22)

2.4 Control modes

In the default control mode for the UR5e, the robot can be position controlled, velocity controlled or controlled with a combination of both position and velocity control. The robot can use two kinds of reference positions; either target joint positions

𝑞 = [𝑞 𝑞 𝑞 𝑞 𝑞 𝑞 ] (2.4.1)

where each element in the vector is a joint angle in radians, or target TCP position

𝑝𝑜𝑠𝑒 = 𝑥 𝑦 𝑧 𝑟 𝑟 𝑟 (2.4.2)

where the pose is the TCP coordinates with respect to the base of the robot as well as the TCP rotation around each axis. To move the UR5e the reference position can be used in multiple ways. One way is to move the robot linearly in joint space by using the command

𝑚𝑜𝑣𝑒𝑗(𝑞, 𝑎, 𝑣, 𝑡, 𝑟) (2.4.3)

where 𝑎 is the joint acceleration in rad/s2, 𝑣 the target joint velocity in rad/s, 𝑡 the time to reach the target position (optional) in seconds and 𝑟 the trajectory blend radius (optional) in meters. When a blend radius is set, the robot trajectory blends around the waypoint and does not stop at it, the figure bellow shows an example of how a blend radius can be used to create a smoother trajectory between three different waypoints.

Figure 2. Blend radius

Another way is to move the robot linearly in TCP-space by using the command

𝑚𝑜𝑣𝑒𝑙(𝑝𝑜𝑠𝑒, 𝑎, 𝑣, 𝑡, 𝑟) (2.4.4)

where 𝑎 is the TCP acceleration in m/s2, 𝑣 the target TCP velocity in m/s, 𝑡 and 𝑟 are optional and have the same definition as in (2.4.3). The UR5e also has a feature to move by setting the target joint velocities

𝑞𝑑 = [𝑞̇ 𝑞̇ 𝑞̇ 𝑞̇ 𝑞̇ 𝑞̇ ] (2.4.5)

using the joint speed command

𝑠𝑝𝑒𝑒𝑑𝑗(𝑞𝑑, 𝑎, 𝑡) (2.4.6)

that linearly accelerates the leading joint (the joint that has the highest target velocity) with the acceleration 𝑎 until the target velocities in 𝑞𝑑 has been reached. If 𝑡 is provided to the function the robot will continue to move for the time set regardless if the target velocities in 𝑞𝑑 has been reached or not. On the UR5e it is possible to switch from the default position/velocity control mode to a freedrive control mode. In freedrive mode the robot becomes compliant which means that it responds to external forces while monitoring the position of the joints and the TCP. This mode is primarily used to manually push or drag the

(23)

robot into desired positions and store the joint configurations as waypoints for later use. All the functions and control modes mentioned in this Section were taken from the URScript manual by [8].

(24)
(25)

3 IMPLEMENTATION

This Chapter presents the work process that were used to implement sensorless collision detection as well as the reaction strategies.

3.1 Dynamic model

As previously mentioned in Section 1.3 the implementation of collision detection has been limited to only three joints; the base-, shoulder- and elbow joint in order to reduce the complexity of the dynamic model, Figure 3 & 4 show the model that has been simplified from a 6-DOF(Degrees of freedom) to a 3-DOF robot manipulator.

Figure 3. Idealization of the UR5e robot (side view).

Figure 4. Idealization of the UR5e robot (top view).

(26)

One way to approach the modelling of the robot dynamics is to divide the system into two separate models. One model for the base joint (joint 1 in Figure 4) torque with respect to the coordinate system (x0, y0) as can be seen in Figure 4 and another model for the shoulder- and elbow joint (joint 2&3 in Figure 4) torques with respect to the coordinate system (x1, y1)as can be seen in Figure 3.

The torque in joint 1 will be dependent on the position of the total COM (Centre of mass) of the robot ((xtot, ytot) in Figure 4). The position of the total COM can be calculated by multiplying each of the link masses with its distance to the axis of rotation (Z0 in this case), adding them all together and finally dividing the sum with the total mass of the links, resulting in the expression bellow;

𝑥

𝑦 = 1

𝑚 + 𝑚 + 𝑚

𝑚 𝑑 sin(𝑞 ) + 𝑚 (𝑑 sin(𝑞 ) − 𝐵 cos(𝑞 )) + 𝑚 (𝑑 sin(𝑞 ) − 𝐴 cos(𝑞 ))

−𝑚 𝑑 cos(𝑞 ) + 𝑚 (−𝑑 cos(𝑞 ) − 𝐵 sin(𝑞 )) + 𝑚 (−𝑑 cos(𝑞 ) − 𝐴 sin(𝑞 )) (3.1.1)

The velocity of the COM can be calculated by taking the time derivative of (3.1.1);

𝑥̇

𝑦̇ = 𝑞̇

𝑚 + 𝑚 + 𝑚

𝑚 𝑑 cos(𝑞 ) + 𝑚 (𝑑 cos(𝑞 ) + 𝐵 sin(𝑞 )) + 𝑚 (𝑑 cos(𝑞 ) + 𝐴 sin(𝑞 ))

𝑚 𝑑 sin(𝑞 ) + 𝑚 (𝑑 sin(𝑞 ) − 𝐵 cos(𝑞 )) + 𝑚 (𝑑 sin(𝑞 ) − 𝐴 cos(𝑞 )) (3.1.2)

From Figure 1, the coordinates for COM 2 & 3 with respect to (x1, y1) can be expressed as;

𝑥

𝑦 = −𝑙 cos(𝑞 )

−𝑙 sin(𝑞 ) (3.1.3)

𝑥

𝑦 = −𝐿 cos(𝑞 ) − 𝑙 cos(𝑞 + 𝑞 )

−𝐿 sin(𝑞 ) − 𝑙 sin(𝑞 + 𝑞 ) (3.1.4)

and the velocities as;

𝑥̇

𝑦̇ = 𝑙 sin(𝑞 )

−𝑙 cos(𝑞 ) 𝑞̇ (3.1.5)

𝑥̇

𝑦̇ = 𝐿 sin(𝑞 ) + 𝑙 sin(𝑞 + 𝑞 )

−𝐿 cos(𝑞 ) − 𝑙 cos(𝑞 + 𝑞 )

𝑙 sin(𝑞 + 𝑞 )

−𝑙 cos(𝑞 + 𝑞 ) 𝑞̇

𝑞̇ (3.1.6)

Knowing the positions and velocities of all COM, two Lagrangians can be formulated according to equation (2.1.1).

ℒ =1

2 (𝑚 + 𝑚 + 𝑚 ) 𝑥̇ + 𝑦̇ + (𝐼 + 𝐼 𝜌 )𝑞̇ − 0 (3.1.7)

, =1

2 𝑚 𝑥̇ + 𝑦̇ + 𝑚 𝑥̇ + 𝑦̇ + (𝐼 + 𝐼 𝜌 )𝑞̇ + (𝐼 + 𝐼 𝜌 )𝑞̇ − 𝑔(𝑚 𝑦 + 𝑚 𝑦 ) (3.1.8)

From the Lagrangians, the EOM (Equations of motion) can be calculated according to equation (2.1.2);

𝐸 𝑈

𝐸 𝑈

(27)

𝜏 = 𝑀 𝑞̈ (3.1.9) 𝜏

𝜏 = 𝑀 𝑀

𝑀 𝑀

𝑞̈

𝑞̈ + 𝐶 𝐶

𝐶 𝐶

𝑞̇

𝑞̇ + 𝐵

𝐵 𝑞̇ 𝑞̇ − 𝐺

𝐺 (3.1.10)

where;

𝑀 = [(𝑚 𝑑 + 𝑚 𝑑 + 𝑚 𝑑 ) + (𝑚 𝐵 + 𝑚 𝐴) ] + 𝐼 + 𝐼 𝜌 ,

𝑀 = 𝑚 𝑙 + 𝑚 𝐿 + 𝑙 + 2𝐿 𝑙 cos(𝑞 ) + 𝐼 + 𝐼 𝜌 ,

𝑀 = 𝑚 𝑙 + 𝑚 𝐿 𝑙 cos(𝑞 ), 𝑀 = 𝑚 𝑙 + 𝑚 𝐿 𝑙 cos(𝑞 ),

𝑀 = 𝑚 𝑙 + 𝐼 + 𝐼 𝜌 ,

𝐶 = 0,

𝐶 = −𝑚 𝐿 𝑙 sin(𝑞 ), 𝐶 = 𝑚 𝐿 𝑙 sin(𝑞 ), 𝐶 = 0,

𝐵 = −2𝑚 𝐿 𝑙 sin(𝑞 ), 𝐵 = 0,

𝐺 = −𝑔(𝑚 𝑙 cos(𝑞 ) + 𝑚 (𝐿 cos(𝑞 ) + 𝑙 cos(𝑞 + 𝑞 ))), 𝐺 = −𝑔𝑚 𝑙 cos (𝑞 + 𝑞 ).

The masses (𝑚 , 𝑚 and 𝑚 ), the COM locations (𝑙 , 𝑙 , 𝑑 , 𝑑 and 𝑑 ) and length of link 2 (𝐿 ) were all taken from [9] in the Table for the UR5e robot which can also be found in Appendix A. Joint and motor parameters such as the motor torque constant(𝐾 ), rotor inertia(𝐼 ) and gear ratio(𝜌) were taken from a config file found in URsim which is an offline simulator for UR robots created by Universal robots, the contents of the config file can be found in Appendix A. To simplify the calculations of the link inertias, the robot’s links are idealized as solid cylinders. The link inertias (𝐼 , 𝐼 , 𝐼 ) can be calculated using the moment of inertia equations for a solid cylinder from [10];

(28)

Figure 5. Solid cylinder 𝐼 = 𝐼 = 1

12𝑚(3𝑟 + ℎ ) (3.1.11)

𝐼 =1

2𝑚𝑟 (3.1.12)

3.2 Friction models

With the identification of the dynamic model of the robot, residual torque estimators according to equation (2.2.11) can be implemented for each joint that should be observed.

The residual joint torque contains both external- and friction torque that’s acting on the joint as can be seen in equation (2.2.5). If the robot is moving without any collisions occurring the assumption can be made that the residual torque for the most part only consists of friction torque since 𝜏 ≈ 0 when the robot does not push against an object and does not have a payload.

To identify the friction models, linear regression with least-square optimization is a commonly used method for offline identification of model parameters according to [2]. Based on equation (2.3.1) the following regressor form can be used to identify the unknown parameters in the friction model;

𝜏 = 𝑟̂ = 𝑊𝜃 (3.2.1)

Where 𝜃 is the vector containing the unknown parameters that needs to be estimated

𝜃 = [𝜏 𝜏 𝛽 𝛽 𝛽 ] (3.2.2)

and 𝑊 the regressor matrix that contains all the components of the friction model

𝑊 = [𝑤 𝑠𝑔𝑛(𝜏 ) + 𝑤 𝑠𝑔𝑛(𝑞̇) 𝑤 𝑠𝑔𝑛(𝜏 ) 𝑤 𝑞̇ 𝑤 𝑞̇ 𝑤 𝑞̇]. (3.2.3) The variables 𝑤 , 𝑤 and 𝑤 are factors that are used to indicate which region the friction is in and are given by the following expressions;

𝑤 = 1, 𝑖𝑓 |𝑞̇| < 𝜀 𝑎𝑛𝑑 𝑞̇ = 0

0, 𝑂𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 (3.2.4)

𝑤 = 1, 𝑖𝑓 |𝑞̇| < 𝜀 𝑎𝑛𝑑 𝑞̇ ≠ 0

0, 𝑂𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 (3.2.5)

(29)

𝑤 = 1, 𝑖𝑓 |𝑞̇| ≥ 𝜀

0, 𝑂𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 (3.2.6)

By moving the robot along a determined trajectory where no collision occurs and calculating 𝑟̂ and 𝑊, equation (3.2.1) can be expressed as;

𝜏 =

⎣⎢

⎢⎢

⎡𝑟̂

⋮ 𝑟̂

⋮ 𝑟̂ ⎦⎥⎥⎥⎤

=

⎣⎢

⎢⎢

⎡𝑊

⋮ 𝑊

⋮ 𝑊 ⎦⎥⎥⎥⎤

𝜃 (3.2.7)

Where 𝑟̂ and 𝑊 are the sampled values of 𝑟̂ and 𝑊 at time index 𝑖. The noise magnitude 𝜀 used in equation (3.2.4), (3.2.5) and (3.2.6) can be determined by looking at the noise present in the angular velocities of each joint.

Figure 6. Velocity noise levels for each joint.

To implement the calculation of the regressor matrix on the UR5e robot some minor changes need to be done to the regressor. The first thing is the sign function 𝑠𝑔𝑛(𝜏 ), because the UR5e lacks the capability of measuring the torques acting on the harmonic drives. This function is changed to 𝑠𝑔𝑛(𝑖), because the direction of the currents in the joints will affect the direction of the torques in the harmonic drives.

Another change that is done to the regressor is that the elements that contains the viscous friction components that depends on the joint angular velocity 𝑞̇ are instead changed to the target joint angular velocity 𝑞̇ , then the collision detection algorithm can more easily detect collisions when sudden unexpected changes between the actual velocity and the target velocity occurs. The changes above results in a modified regressor matrix that can be expressed as;

𝑊 = 𝑤 𝑠𝑔𝑛(𝑖) + 𝑤 𝑠𝑔𝑛(𝑞̇) 𝑤 𝑠𝑔𝑛(𝑖) 𝑤 𝑞̇ 𝑤 𝑞̇ 𝑤 𝑞̇ . (3.2.8)

(30)

The following trajectory is used for friction model identification of joint 1.

Figure 7. Trajectory and residual torque for joint 1 offline friction model identification.

The position of joint 2 is changed as well in the robot’s trajectory since the residual torque in joint 1 is dependent on the position of the total COM as previously described in Section 3.1.

Looking at the residual torque plot, the torque does in fact change when the position of joint 2 is changed. The reason why the residual torque in joint 1 has this behaviour is because when the position of joint 2 and/or joint 3 changes, the COM distance between A and B changes as well which can be seen in the equations for A and B in Figure 4. If the distance between A and B increases, the torque required to move joint 1 increases as well since the position for the total COM of the robot moves further away from the axis of rotation of joint 1.

To compensate for the increasing torque when the COM moves further away from the axis of rotation of joint 1, the regressor matrix used for modelling the friction torque of joint 1 needs to be multiplied with a variable that is dependent on the lengths of A and B. By sampling the residual torques at some periodic peaks together with the total COM position component

|𝐴 + 𝐵|, the variable gain of the torque with respect to |𝐴 + 𝐵| can be determined.

(31)

Figure 8. Samples used for finding the variable gain.

Figure 9. Exponential fitting of samples.

Using the fit() command in MATLAB for the sampled values results in the exponential function seen in Figure 7. The residual gain can now be compensated for by multiplying the regressor matrix of joint 1 with the gain calculated from the exponential function. The trajectories used for friction model identification of joint 2 and 3 can be seen in Figures 10 &

11 respectively.

(32)

Figure 10. Trajectory and residual torque for joint 2 offline friction model identification.

Figure 11. Trajectory and residual torque for joint 3 offline friction model identification.

A phenomenon that can be observed in both residual torque plots is that there seems to be a component in the residual torque that is dependent on the angular position of the joint. This explains why the shape of the residual torque plot is not the exact inverse shape of the angular velocity. This torque component that is dependent on the position is most likely caused by gravity.

Even though the gravity torque in theory should be compensated for with the gravity term

”−𝐺(𝑞)” in equation (2.2.11), the residual torques in joint 2 and 3 still changes depending on the joint positions. Plotting the residual torque without the gravity term together with the residual that contains a gravity term, we can see that this residual error is caused by gravity.

This implies that there is a gravity torque error in the dynamic model (3.1.10) that needs to be identified and compensated for.

(33)

Figure 12. Comparison of residual errors with and without gravity compensation.

One way to compensate for this gravity torque error is to add a position term to the regressor matrix 𝑊 and another parameter for 𝜃 for joints 2 and 3;

𝑊 = 𝑤 𝑠𝑔𝑛(𝑖) + 𝑤 𝑠𝑔𝑛(𝑞̇) 𝑤 𝑠𝑔𝑛(𝑖) 𝑤 𝑞̇ 𝑤 𝑞̇ 𝑤 𝑞̇ 𝑞 (3.2.9)

𝜃 = [𝜏 𝜏 𝛽 𝛽 𝛽 𝛼] (3.2.10)

This way identifies the gravity torque error together with the friction torque using the least squares method, therefore in the case of joint 2 and 3 the equation (3.2.7) is changed to;

𝜏 + 𝐺 =

⎣⎢

⎢⎢

⎡𝑟̂

⋮ 𝑟̂

⋮ 𝑟̂ ⎦⎥⎥⎥⎤

=

⎣⎢

⎢⎢

⎡𝑊

⋮ 𝑊

⋮ 𝑊 ⎦⎥⎥⎥⎤

𝜃 (3.2.11)

where

𝐺 = 𝛼𝑞 . (3.2.12)

3.3 Collision detection

A method for detecting collisions proposed by [2] is to observe the external torque, when the external torque reaches a certain threshold value the observer will interpret that a collision has occurred. As previously mentioned, the residual torque 𝑟 consist of both friction torque 𝜏 and external torque 𝜏 . By using the residual torque estimator and the calculated friction from the friction models, an estimation of the external torque can be expressed as;

𝜏̂ = 𝑟̂ − 𝜏 (3.3.1)

Thresholds for the external torque in each joint should be set as low as possible for the observer to detect a collision as quickly as possible. At the same time it should be set high enough so that the friction model errors do not accidently trigger a collision detection without an actual collision occurring. An easy way of setting the values for these thresholds is to move the robot along a trajectory and log the external torque in the joints and set the thresholds with respect to the highest and lowest values that have been logged.

(34)

The figures below show individual tests of each joint with the case of no collision as well as the case of a collision occurring.

Figure 13. External torque observed in joint 1.

Figure 14. External torque observed in joint 2.

(35)

Figure 15. External torque observed in joint 3.

(36)

3.4 Reaction strategies

When a collision is detected, the robot needs a reaction strategy. There are many different strategies such as the following from [3];

 Immediate stop with simultaneous position control (Strategy 1).

o The robot stops upon impact and tries to maintain its position using position control.

 Zero-gravity torque reaction (Strategy 2).

o The robot stops upon impact and floats in space. The robot becomes compliant i.e. the robot can be pushed around by applying an external force to it.

 Reflex torque reaction (Strategy 3).

o The robot switches to torque control, the joint reference torques are generated by the residual torques resulting in the robot retracting when colliding with an object.

Strategy 1 is the simplest strategy to implement. When the robot collides with an object, a command to stop any movement is sent to the robot. The current position is then sent to the position controller so that the robot maintains its position. Since the UR5e robot is classified as a collaborative robot, Universal robots has already implemented a safety feature for detecting collisions and the following collision reaction is like this strategy.

As previously mentioned in Section 2.4, when switching mode on the UR5e to freedrive mode the robot switches from the default position control to a compliant control mode. In freedrive mode the robot floats in space and can with ease be moved by hand. For implementing Strategy 2 on the robot the reaction is to simply switch into freedrive mode when a collision is detected.

Implementing Strategy 3 in the way that [3] proposes is impossible on the UR5e robot since it does not have a torque control mode or a current control mode. Instead of having a reflex torque reaction, the robot will instead have a reflex velocity reaction followed by switching to freedrive mode. For the joint that detects a collision the reference velocity of the joint is set to 0,5 rad/s with the acceleration of 3,0 rad/s2 in the opposite direction when a collision occurs.

(37)

3.5 Collision experiments

The experiments for evaluating the performance of the collision detection method in combination with the different reaction strategies use the quantitative research format proposed by [5]. In this format the following things must be stated for the experiments;

a) Sample, population and participants.

b) Variables, materials and instruments for data collection.

c) Procedures for data analysis.

d) Ethical issues that has been anticipated for the study.

Following the format above, the experiments are setup as follows;

a) The experiments are conducted on the base-, shoulder- and elbow joint. The robot trajectories and environments used for the experiments can be seen in the Figure below. The three different tests are setup in a way so that each joint is isolated, thus each strategy is evaluated on each joint in order to see if the strategies behave differently depending on the joint.

Figure 16. Joint 1,2 &3 collision tests setup.

b) The experiments are conducted on a UR5e collaborative robot from Universal robots.

Data from the robot is sent via Ethernet connection to a computer using the built-in Realtime Data Exchange (RTDE) interface and an RTDE client on the computer. The RTDE client receives data packages from the robot at a rate of 125 Hz which is the maximum rate allowed for this interface.

A cushion made from foam packaging material is used for the robot to collide with since it does not deform after repeated collisions and it is soft enough that there are no risks of damaging the robot during the tests.

(38)

The TCP force/torque sensor that the UR5e is equipped with is used to measure the collision forces and capturing the moment of impact. The tables below show the parameters used for each collision test.

Table 1. Collision tests for joint 1.

Test run Strategy Joint velocity [rad/s] Threshold [Nm]

1 1 0,25 1,0

2 1 0,25 1,0

3 1 0,25 1,0

4 1 0,25 1,0

5 1 0,25 1,0

6 1 0,50 1,0

7 1 0,50 1,0

8 1 0,50 1,0

9 1 0,50 1,0

10 1 0,50 1,0

11 2 0,25 1,0

12 2 0,25 1,0

13 2 0,25 1,0

14 2 0,25 1,0

15 2 0,25 1,0

16 2 0,50 1,0

17 2 0,50 1,0

18 2 0,50 1,0

19 2 0,50 1,0

20 2 0,50 1,0

21 3 0,25 1,0

22 3 0,25 1,0

23 3 0,25 1,0

24 3 0,25 1,0

25 3 0,25 1,0

26 3 0,50 1,0

27 3 0,50 1,0

28 3 0,50 1,0

29 3 0,50 1,0

30 3 0,50 1,0

(39)

Table 2. Collision tests for joint 2.

Test run Strategy Joint velocity [rad/s] Threshold [Nm]

1 1 0,20 1,0

2 1 0,20 1,0

3 1 0,20 1,0

4 1 0,20 1,0

5 1 0,20 1,0

6 1 0,40 1,0

7 1 0,40 1,0

8 1 0,40 1,0

9 1 0,40 1,0

10 1 0,40 1,0

11 2 0,20 1,0

12 2 0,20 1,0

13 2 0,20 1,0

14 2 0,20 1,0

15 2 0,20 1,0

16 2 0,40 1,0

17 2 0,40 1,0

18 2 0,40 1,0

19 2 0,40 1,0

20 2 0,40 1,0

21 3 0,20 1,0

22 3 0,20 1,0

23 3 0,20 1,0

24 3 0,20 1,0

25 3 0,20 1,0

26 3 0,40 1,0

27 3 0,40 1,0

28 3 0,40 1,0

29 3 0,40 1,0

30 3 0,40 1,0

(40)

Table 3. Collision tests for joint 3.

Test run Strategy Joint velocity [rad/s] Threshold [Nm]

1 1 0,25 0,70

2 1 0,25 0,70

3 1 0,25 0,70

4 1 0,25 0,70

5 1 0,25 0,70

6 1 0,50 0,70

7 1 0,50 0,70

8 1 0,50 0,70

9 1 0,50 0,70

10 1 0,50 0,70

11 2 0,25 0,70

12 2 0,25 0,70

13 2 0,25 0,70

14 2 0,25 0,70

15 2 0,25 0,70

16 2 0,50 0,70

17 2 0,50 0,70

18 2 0,50 0,70

19 2 0,50 0,70

20 2 0,50 0,70

21 3 0,25 0,70

22 3 0,25 0,70

23 3 0,25 0,70

24 3 0,25 0,70

25 3 0,25 0,70

26 3 0,50 0,70

27 3 0,50 0,70

28 3 0,50 0,70

29 3 0,50 0,70

30 3 0,50 0,70

(41)

c) The data packages received from the RTDE interface are stored in .csv files and imported into MATLAB to visualize and analyse the data. Using the TCP Force sensor, it is possible to get the point in time where a collision occurs by looking at which point during the test that the TCP Force data makes a sudden change. The delay for the collision detection algorithm can be calculated by measuring the time between the collision occurrence and the collision detection. The time it takes for each reaction strategy to stop the robot’s movement after a collision has been detected can be calculated by measuring the time between the collision detection and the time where the joint velocity has settled within the level of noise for the joint.

d) There will be a lot of data gathered for these experiments since each joint will be tested 30 times. There is almost a certainty that some tests will be outliers/anomalies when compared to the other tests. One way to address this issue is to report all contrary findings collected in the research and include these anomalies in the results.

(42)
(43)

4 RESULTS

In this Chapter, all the results derived from the methods used in Chapter 3 are presented and analyzed.

4.1 Friction models

Using MATLAB to solve equation (3.2.7) for each joint, the following figures show the results of the least squares linear regression method for offline friction torque identification;

Figure 17. Modelled friction in joint 1.

(44)

Figure 18. Modelled friction in joint 2.

Figure 19. Modelled friction in joint 3.

As can be seen in the figures above, the compensations and modifications done to the friction model in Chapter 3.2 reduce the model errors. Ideally the error should be as close to zero as possible, since in the difference between the calculated residual torque and the modelled friction is interpreted as external torque. With smaller model errors the thresholds for detecting collisions can be set lower. The following figures show the friction-velocity plots of the friction models.

(45)

Figure 20. Joint 1 friction model.

Figure 21. Joint 2 friction model.

(46)

Figure 22. Joint 3 friction model.

The calculated parameters for the friction models are presented in the Table below.

Table 4. Friction model parameters.

Joint 1 Joint 2 Joint 3 𝜏 0,0698 0,3585 0,0106 𝜏 0,0414 -0,0514 0,0644 𝛽 -2,1746 -2,0796 -6,3591 𝛽 0,2877 0,2659 0,0627 𝛽 -17,677 -46,69 -20,522 𝛼 - -0,0673 -0,1372

4.2 Collision experiments

For each strategy, joint and velocity the mean values are calculated for the TCP Force, angular velocity and external torque to get an average for evaluating the performance of the collision detection in combination with the different strategies. The results from all the tests from Tables 1,2 and 3 can be found in Appendix B. The following figures show the results from the averages for each joint;

(47)

Figure 23. Results of the averages for joint 1 at a low angular velocity.

Figure 24. Results of the averages for joint 1 at a high angular velocity.

(48)

Figure 25. Results of the averages for joint 2 at a low angular velocity.

Figure 26. Results of the averages for joint 2 at a high angular velocity.

(49)

Figure 27. Results of the averages for joint 3 at a low angular velocity.

Figure 28. Results of the averages for joint 3 at a high angular velocity.

In all the Figures 23-28 the top plot depicts the TCP Force over the time period for each collision test. The middle plots show the angular velocity during these tests and the bottom plot represents the calculated external torque. A phenomenon in all the plots for the TCP force is that the measurements are offset from 0 N i.e. they have a bias error. To more easily find the collision occurrence in the TCP force plots as well as getting more accurate calculations of the impulses, the biases can be calculated by taking the average value of the TCP force over the time period before the collision occurrence since there are no contact forces acting on the robot at that point in time.

Another phenomenon is that sometimes a collision is detected even though the external torque does not exceed its threshold value. The reason for this is that the robot controller operates at a 500 Hz frequency whereas the RTDE interface sends packages at a rate of 125

(50)

Hz. Consequently, the robot reacts to a collision before a data package has been sent to the RTDE client. For these cases the time when a collision has been detected can instead be determined by looking for sudden changes in the external torque when it is close to the threshold value. The tables below contain the results of the collision tests.

Table 5. Results for collisions at a low angular velocity.

Impulse [Ns] Stop time [ms]

S1 S2 S3 S1 S2 S3 Detection delay [ms]

Joint 1 3,4551 0,7097 1,1430 168 440 800 136 Joint 2 14,6420 2,1367 2,5849 200 440 688 120 Joint 3 3,4391 0,7612 0,9075 100 380 570 180

Average: 145

Table 6. Results for collisions at a low angular velocity.

Relative to sum of Impulses

[%] Relative to sum of stop times [%]

S1 S2 S3 S1 S2 S3

Joint 1 65,1% 13,4% 21,5% 11,9% 31,3% 56,8%

Joint 2 75,6% 11,0% 13,3% 15,1% 33,1% 51,8%

Joint 3 67,3% 14,9% 17,8% 9,5% 36,2% 54,3%

Average 69,3% 13,1% 17,6% 12,2% 33,5% 54,3%

Table 7. Results for collisions at a high angular velocity.

Impulse [Ns] Stop time [ms]

S1 S2 S3 S1 S2 S3 Detection delay [ms]

Joint 1 4,7879 1,3953 1,8851 264 648 616 40 Joint 2 30,0440 8,8864 10,3970 224 576 600 88 Joint 3 10,9070 10,1130 10,0580 184 432 576 32

Average: 53

Table 8. Results for collisions at a high angular velocity.

Relative to sum of Impulses

[%] Relative to sum of stop times [%]

S1 S2 S3 S1 S2 S3

Joint 1 59,3% 17,3% 23,4% 17,3% 42,4% 40,3%

Joint 2 60,9% 18,0% 21,1% 16,0% 41,1% 42,9%

Joint 3 35,1% 32,5% 32,4% 15,4% 36,2% 48,3%

Average 51,8% 22,6% 25,6% 16,2% 39,9% 43,8%

The results of the same collision tests using the UR5e safety system for the two different factory pre-sets “Least restricted” and “Most restricted” can be seen in the following figures.

(51)

Figure 29. Results of Joint 1 UR5e collision tests at a low angular velocity.

Figure 30. Results of Joint 1 UR5e collision tests at a high angular velocity.

(52)

Figure 31. Results of Joint 2 UR5e collision test at a low angular velocity.

Figure 32. Results of Joint 2 UR5e collision test at a high angular velocity.

(53)

Figure 33. Results of Joint 3 UR5e collision tests at a low angular velocity.

Figure 34. Results of Joint 3 UR5e collision tests at a high angular velocity.

The following tables contain the results derived from these tests.

Table 9. Results for UR5e collision tests at a low angular velocity.

Least restricted delay

[ms] Most restricted delay [ms]

Joint 1 232 96

Joint 2 296 236

Joint 3 480 352

Average 336 228

(54)

Table 10. Results for UR5e collision tests at a high angular velocity.

Least restricted delay

[ms] Most restricted delay [ms]

Joint 1 160 88

Joint 2 216 200

Joint 3 312 232

Average 229 173

(55)

5 DISCUSSION & CONCLUSIONS

In this chapter, results from Chapter 4 related to the research questions presented in Chapter 1.2 are discussed and analyzed in the Discussion Section. The conclusions drawn from these results are presented in the Conclusions Section.

5.1 Discussion

Looking at the performance of the collision detection algorithm from Tables 4 & 6 it seems that the collision detection method on average detects collision quicker when the robot is moving at higher velocities. This seems to indicate that the collision detection method detects sudden impacts easier than a gradually increasing external force. Looking at the results of strategy 1 for all the joints, the impulses are infinite should the TCP Forces be integrated over an infinite period. The reason is that the contact force is never lost when strategy 1 is used since the robot retains the position after a collision has been detected. This behaviour poses a great hazard since a person could get stuck between the robot and another contact surface.

That’s why strategy 1 should be avoided even though the stopping time is far shorter when compared to the other strategies.

Comparing the impulses between strategies 2 and 3, reaction strategy 2 on average gives a smaller impulse than strategy 3 for low and high collision velocities. The stopping time for strategy 2 is shorter than strategy 3 in all cases except for high velocity collisions of joint 1.

This could imply that strategy 3 is better for collisions with high momentum (velocity times the mass) since this is the test case with the most mass and velocity. However, further experiments should be done to determine whether this is true or not.

As previously mentioned in Section 1.3, since the tests only covered a part of the state space, depending on the task, location and payload of the robot a collision can have different effects on a human being that has not been covered in this report. That is why a hazard analysis needs to be conducted if the same methods used in this report are going to be used outside of an experimental environment.

Since this thesis has implemented sensorless collision detection and reaction strategies on a UR5-e robot it is not safe to assume that the sensorless collision detection in combination with the reaction strategies is going to work in general cases. For robots with payloads that are non-negligible the payload will directly affect the dynamic model, such as increasing the gravity torque. In the cases where the payloads cannot be neglected the dynamic parameters needs to be updated accordingly.

(56)

5.2 Conclusion

“Which reaction strategy results in the smallest impulse (force integrated over time) when a collision occurs?”

In all the test cases done in this thesis, Strategy 2 is the reaction strategy that resulted in the smallest impulse.

“Which reaction strategy is quickest for stopping the movement of the robot after a collision has occurred?”

Strategy 1 is the best when it comes to stopping the movement of the robot when a collision has been detected, however this strategy should be avoided because of the previously mentioned hazard it poses.

If only one strategy should be implemented on all the joints, strategy 2 is the one that should be used since it has the smallest impulse and shortest stopping time on average at low and high collision velocities.

(57)

6 RECOMMENDATIONS AND FUTURE WORK

In this chapter, recommendations on more detailed solutions and future work for this research are presented.

6.1 Recommendations

The Lagrangian formulation for determining the dynamic model becomes more and more complex with increasing degrees of freedom. One recommendation would be to investigate a more complex friction model that contains more components than static, coulomb and viscous friction. For example Stribeck friction [11] and see if it reduces the error when trying to model the friction term of the residual torque. Comparing different identification schemes to the Least-squares linear regression method would be of interest here as well.

Cumulative sum (CUSUM) is used for change detection in variable data. It could be of interest to investigate if this method improves the collision detection compared to the threshold method used in this thesis.

It would also be interesting to compare the performance of the sensorless collision detection with other methods in the same field of research such as the method of looking at velocity deviation proposed by [12] to see if the detection delay can be improved.

6.2 Future work

Future research would be to implement the collision detection on all the joints on the robot and investigate the different methods mentioned in Chapter 6.1. The work needs to be focused on reducing the errors between the friction model and the residual torque so that the collision detection can be more sensitive to external forces without increasing the risk of any false collision detections caused by model errors.

(58)
(59)

7 REFERENCES

[1] S. Chen, M. Luo, and F. He, ‘A universal algorithm for sensorless collision detection of robot actuator faults’, Advances in Mechanical Engineering, vol. 10, no. 1, 2018.

[2] S.-D. Lee and J.-B. Song, ‘Sensorless collision detection based on friction model for a robot manipulator’, Int. J. Precis. Eng. Manuf., vol. 17, no. 1, pp. 11–17, Jan. 2016.

[3] A. D. Luca, A. Albu-schäffer, S. Haddadin, and G. Hirzinger, ‘Collision detection and safe reaction with the DLR-III lightweight manipulator arm’, in Proc. of the 2006 IEEE Int. Conf. on Intelligent Robots and Systems, Beijing, China, 2006, pp. 9–15.

[4] S. Bøgh, O. Skov Nielsen, M. Hvilshøj, and O. Madsen, ‘Autonomous industrial mobile manipulation (AIMM): past, present and future’, Industrial Robot, vol. 39, no. 2, pp.

120–135, Mar. 2012.

[5] J. W. Cresswell, Research Design: Qualitative, Quantitative, and Mixed Methods Approaches, 4th ed. SAGE Publications, Inc., 2014.

[6] K. M. Lynch and F. C. Park, Modern robotics: mechanics, planning, and control.

Cambridge New York, NY Port Melbourne: Cambridge University Press, 2017.

[7] L. Sciavicco and B. Siciliano, Modelling and control of robot manipulators, 2. ed., 6.

print. London: Springer, 2005.

[8] Universal Robots, ‘URScript Manual’. [Online]. Available: https://s3-eu-west- 1.amazonaws.com/ur-support-site/50689/scriptManual.pdf. [Accessed: 06-May-2019].

[9] ‘Parameters for calculations of kinematics and dynamics - 45257 | Universal Robots’.

[Online]. Available: https://www.universal-robots.com/how-tos-and-faqs/faq/ur- faq/parameters-for-calculations-of-kinematics-and-dynamics-45257/. [Accessed: 19- Feb-2019].

[10] C. Nordling and J. Österman, Physics handbook for science and engineering, 6th ed.

Lund, Sweden: Studentliteratur AB, 1999.

[11] M. Längkvist, Online Identification of Friction Coefficients in an Industrial Robot.

2009.

[12] X. Wenzhong, X. Xi, and J. Xinjian, ‘Sensorless robot collision detection based on optimized velocity deviation’, Jinan, China - 2017 Chinese Automation Congress, CAC 2017, 2017, vol. 2017-January, pp. 6200–6204.

(60)
(61)

APPENDIX A

A.1 joint_size3_G5_rev1.conf

## SafetyParameters ##

[Joint]

size = 3 # -1 -> NULL joint, 0 -> size 0, 1 -> size 1, ...

gear_ratio = 101 torque_max = 150

temperature_model_parameters = [3.637679, -0.011074, 1.362321, - 0.085741]

[Motor]

rotor_inertia = 187.740e-06

## SafetyParameters ##

[Joint]

min_limit = -6.3355451848 max_limit = 6.3355451848 v_max = 3.341592653589793 a_max = 40.0

torque_window_min = 14.5 # 15Nm in safety - 0.5Nm tolerance torque_window_max = 70

[Motor]

winding_resistance = 0.3 torque_constant = 0.098322

(62)

A.2 UR5e Datasheet

(63)

A.3 UR5e parameters

(64)

APPENDIX B

B.1 Joint 1 collision tests

(65)

B.2 Joint 2 collision tests

(66)

B.3 Joint 3 collision tests

(67)

TRITA TRITA-ITM-EX 2019:277

References

Related documents

For this reason, the scenario has been created to be able to evaluate the latency referred to the time it takes for a message to be published by the MQTT Client hosted in Docker,

In order to evaluate motion performance of MR fluid based compliant robot manipulator in performing pHRI tasks, we have designed some physical human robot interaction scenarios

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

Embedding human like adaptable compliance characteristics into robot manipulators can provide safe physical human robot interaction in constrained motion tasks.. In robotics,

The idea is to improve the control algorithms of Saturne system in necessary part so as to alleviate the influence of unpredictable Internet time delay or connection rupture,

To answer the research question, the experiment is divided into five parts, material selection and soft gripper fabrication, Finite Element Analysis, angle recognition and

It seems a realistic expectation that the further development of converging tech- nologies will allow humans to hear sounds where they assumed only silence existed (like in the

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