Home

Sensor Based Robot Control - DTU Electronic Theses and

image

Contents

1. Force on the Y axis N Force on the X axis N eo o I I I oa eo 01 M eo DD eo Po i EX p pine mm i Q o 2 v S a Sr 9 Oo 3 n E s 3 3 o o oO o E E 2 3 Cf gt D e SL J J ce e hen _ z e To S a TE Jooo c Lee e e gt gt gt S28 S28 S28 xo E xo xo dil dil XE 2 m 2n 2m 32 22 38 2 n 2 2 z z Ez 3 3 3 3 3 3 c c c 3 3 3 Figure A 9 Graphic representation of noise received on the force sensor when the robot is in a horizontal stretched position with the tool pointing upward Appendix B CD List of Contents 9230 05 1278 pdf Drawning of the Mini40 R force sensor BondyS051976 WahlgreenS042157 pdf Copy of the report with signatures connectionregulatortest py Program for all communication between the user pc and the robot controller Drawing deburr igr Drawing of the model of the deburr tool opens in SmartSketch Drawing deburr pdf Drawing of the model of the deburr tool Drawing tool igr Drawing of the victim element opens in SmartSketch Drawing tool pdf Drawing of the victim element opens in SmartSketch force py Program for all communication between the user pc and the sensor pc force test py Test program which reads out data from the sensor for analyze force test txt Test data from force sensor
2. f read socket stream myfilel open force txt a myfilel write f f f n 96 force 0 force 1 force 2 myfilel close time sleep 0 5 self approach zx x 1 1 2 4 self translate 0 0 0 2 0 0 self decouple Z 0 10 0 turncounter turncounter 1 if turncounter 4 self rotate turncounter else self rotate 0 2 0 turncounter 1 125 0 APPENDIX F SOURCE CODE 92 if class Results Program that converts the recieved data binary into data __init_ self time values self time time self values values Comments from edge 1 has to be copied here self move to deburr pos time sleep 0 5 f bias self approach zx x 1 1 2 4 f send to socket force f read socket stream myfilel open force txt a myfilel write f f f n force 0 force 1 force 2 myfilel close self translate 0 005 0 0 005 0 0 0 125 3 time sleep 0 5 f bias self approach zx x 1 1 1 5 f send to socket force f read socket stream myfilel open force txt a myfilel write 9Gf 96f 96fNn force 0 force 1 force 2 myfilel close time sleep 2 self approach zx x 1 1 2 4 self translate 0 0 0 2 0 0 2 0 turncounter 1 125 0 self decouple Z 0 10 0 turncounter turncounter 1 if turncounter lt 4 self rotate turncounter else self rotate 0 repr self return lt Results time s values d gt 96 self time
3. a myfile write 17f 17f 17f 17f 17f 17f n 96 pos 0 pos 1 p myfile close self socket send movej s a 1 0 v 0 5 n pos self socket send movel p f f f f f f a 1 0 v 0 5 n pos 1 0 while i 5 results self read socket stream if results values i 30 lt pos i 0 001 and results values i 30 gt i 7 M self socket close def deburr self turncounter Runs the four sides of a plate over the d self initialize print m print print ZH Deburring plate HEN print print APPENDIX F SOURCE CODE 90 The deburring of the first edge start self move to deburr pos HApproaching the deburr machine while turncounter lt 4 self rotate 0 Rotates the plate to the first position time sleep 0 5 ZThe robot has to be completly stopped before removir Removes bias gravity from force sensor f Force 7192 38 66 2527 12345 f bias self approach_zx_x 1 1 2 4 Moves the plate against the deburring i self translate 0 005 0 0 005 0 0 0 125 3 Moves a little away fro time sleep 0 5 The robot has to be still before removing bias f bias self approach_zx_x 1 1 0 5 Moves the plate against the deburring time sleep 0 5 self approach_zx_x 1 1 2 4 Moves the plate back against the debur self translate 0 0 0 2 0 0 5 0 turncounter 1 125 0 Moves the robot self decouple Z 0 10 0 Lift the robot away from the tool
4. counter 0 while 1 counter counter 1 results self test_receive 1 if counter 3 Sending commands at 41Hz 125Hz 3 fo send to socket force fo read socket stream if force 2 lt 0 4 self send speed to socket approach speed 0 0 0 0 0 04 else self send speed to socket 0 0 0 0 0 0 0 04 self close break counter 0 def write_to_file self matrix Writes out data into a file By Om amp E myfile open output txt w for i in range matrix shape 1 myfile write f n matrix 0 1 def position self Z Reads out the position of the robot By Orn amp Einir self establish connection results self read socket stream pos self forward_kin results values 30 results values 31 results v self close return pos def del self Fundamental function in Python Called when the insta self close def close self 4 Close down every socket connection if self socket self socket close def random self Function to test send and receive speed from robot APPENDIX F SOURCE CODE 84 f 0 myfiles e open randomit txt a while t lt 5 self connect s2 self socket send random s self read_random myfile3 write S2 s S s t f n 96 s2 s t t t 1 self socket close myfile3 close return s def read random self Function to read out the returned msg from robot msg size time struct unpack gt id self socket recv 12
5. Remove bias gravity on force sensor f Force 7192 38 66 2527 12345 f bias HApproach to table self approach z x 1 Activate Suctionscop print Ww print Ul M print WEE Securing plate JE print M M print m time sleep 3 self decouple z 0 10 turncounter def deliver self Z Drops off the plate in a holder self connect Move to position for delivering plate pos 0 58933449904424062 2 35443412600472210 0 80623840453672335 self socket send movej s a 1 0 v 0 5 n 96 pos i 0 while i lt 5 While loop which controls that the robot have moved ir results self read socket stream if results values i 30 lt pos i 0 001 and results values i 30 gt pi APPENDIX F SOURCE CODE 89 is i p 1 self socket close time sleep 0 5 Remove bias gravity on force sensor f Foree 192 38 66 252 12345 f bias Approach the table self approach z x 1 Deactivate Suctionscop print nu print print ZH Releasing plate HF print print time sleep 3 def move to deburr pos self Moves the robot to the deburring tool witl self connect results self test receive l postool results values 35 Move to position for deburring the plate pos 0 33146529146213632 2 70883406010032957 0 88330808564727037 pos 0 33146529146213632 2 70883406010032957 0 88330808564727037 pos 0 8447 0 1583 0 09008 0 0 2 35 0 0 myfile open data txt
6. print print print 4 Finished deburring plates 744 print n print In use if selection deburrpos systemclear c move to deburr pos time sleep 5 In use if selection toolend c connect results c test receive 1 print results values 35 time sleep 5 selection APPENDIX F SOURCE CODE 76 F 0 2 connectionregulatortest py TCP client import numpy from numpy import import socket socket setdefaulttimeout 1 0 from time import clock time from time import x jimport time import time import locale locale setlocale locale LC NUMERIC import struct from force import Force import locale locale setlocale locale LC NUMERIC class Connection def init self ip port Init of the Connection program By Orn amp self ip e ip self port port def connect self Z Connector Partly by Orn amp Einir self socket socket socket socket AF INET socket SOCK STREAM try data2 self socket connect self ip self port except Exception e print Error Socket error was e Remember to establish connec exit nBuy n self socket settimeout 1 0 def establish connection self Establish the connection By Orn amp Eini self connect def test receive self n Function that reads the socket stream and ret for i in range n try data self read socket stream except Exception e
7. tion feedback through the PI regulators This was done in the draw function of the connection class The position feedback uses the forward kinematics in order to find the Cartesian coordinates from the data received by the robot Since the victim element at the tool point creates a force bias due to gravity the force sensors bias needs to be removed after most of the movements are completed This function is defined in the force class Some of the used functions were already written by Ingolfsson and Gudlaugsson But many of them are partially or completely rewritten in order to fit into this project e g the original approach function only moved in the Z direction parallel to the X axis while the rewritten one moves in a combination of X and Z axes The source code has been commented in order to make clear which functions are based on Ing lfsson et al original functions Two python modules are loaded into the program numpy and socket Numpy or numerical python is in charge of the mathematics and creating different matrices Socket is in charge of TCP communication with the robot controller and adding this module allows to functions like socket rcv and socket send to be called It is mainly due to the capabilities of this module that python was chosen as the programming language by Ingolfsson and Gudlaugsson 7 2 User manual for the program To start up the program it should first by assured that the robot user pc and sensor pc
8. T06 2 1 T06 2 2 eros 3 1 Fo 0 Fo 1 Fo 2 APPENDIX F SOURCE CODE 79 K dot R F K 2 0 K 2 0 x 1 because of 180 degree difference between Z axes return K def send speed to socket self Xspeed Yspeed Zspeed time Sends speedl self socket send speedl 96f f f 0 0 0 0 0 0 1 f n 96 Xspeec def send cartesian to socket self Xpos Ypos Zpos Sends coodinates to 1 self connect self socket send movel p f f 96 0 0 1 57 0 a 0 01 v 0 01 t 10 self socket close def polynomial self begin end tf Cubic polynomial By Orn amp Einir if tf lt 0 1 tf 0 1 res 125 3 4Resolution the rate that we send commands to the robot t arange 0 tf 1 float res Make a time vector a0 begin a2 3 tf 2x end begin a3 2 tf 3 end begin position zeros 1 len t speed zeros 1 len t for i in range len t position 0 i a0 a2 t i 2 a3 t 1 x 3 speed 0 i 2 a2 t i 3 a3 t i 2 return position speed def polynomial2 self begin end tf resolution Cubic polynomial takes 1 if tf lt 0 1 tf 0 1 res float resolution Resolution the rate that we send commands to t arange 0 tf 1 float res Make a time vector a0 begin a2 3 tf 2 end begin a3 2 tf 3 end begin position zeros 1 len t speed zeros 1 len t for i in range len t position 0 i
9. a0 a2 t i 2 a3 t i 3 speed 0 i 2 a2 t i 3 a3 t i 2 return position speed APPENDIX F SOURCE CODE 80 def calculate time self beginX beginY beginZ endX endY endZ Function 1 tf sqrt beginX endX 2 begin Y endY 2 beginZ endZ 2 0 05 return tf def translate self Xend Yend Zend Fref turncounter Freg res Function 1 self connect results self test receive l f self forward kin results values 30 results values 31 results vali regulatorbreytaX f 0 regulatorbreytaY f 1 regulatorbreytaZ f 2 self close T self calculate time 0 0 0 Xend Yend Zend kl self polynomial2 0 Xend T res k2 self polynomial2 0 Yend T res k3 self polynomial2 0 Zend T res K k1 0 regulatorbreytaX k2 0 regulatorbreytaY k3 0 regulatorbreyt self draw K Fref turncounter Freg def draw self k Fref turncounter Freg Important function Works as po The function also writes position and force data to a file for further Xp k 0 ZX position Yp k 1 Y position Zp k 2 ZZ position Xd k 3 ZX speed Yd k 4 Y speed Zd k 5 Z speed myfile open draw txt a Initialize variables correctionX 0 correctionY correctionZ integratorX integratorY integratorZ correction 0 integratorFx 0 added for regulation on plates integratorFy 0 added for regulation on plates integratorFz 0 Orns original regulation
10. edging machines for sheet metal end finishing machines for tubes and bars single purpose machines designed for specialized deburring gear deburring machines or robotic deburring 4 1 1 Robot deburring For robotic deburring the typical applications use industrial robots to deburr large objects a specific part or parts of a close geometric family Precision deburring is not preformed CHAPTER 4 THEORY 10 a The most commonly used hand b Small machine for deburring and tools for deburring chamfering c Tool mounted on a drill for chamfering de d A chamfer tool for deburring two edges burring holes of a workpiece Figure 4 1 Different hand tools or machines used for deburring either manually or auto maticaly CHAPTER 4 THEORY 11 by robots due to the fact that most of them are not capable of performing precision movements When robots are used to deburr large objects the robot moves around the object but when deburring smaller objects with a low weight the robot moves the object around between the tools Depending on the assignment the robot should have at least 5 or 6 joints high accuracy and repeatability continuous path capability the capability for easy and quick tool or spindle changes rigidity and low inertia Extra desirable features could be easy off line programming circular interpolation and the ability to translate movements to similar features on the same workpiece To achieve a good repeatability f
11. else print Error The one or both inputs in decouple are wrong def rotate self counter Z Function which rotates the TCP of the robot 1 if counter 0 Rotate to start position 0 degress self connect results self test receive l pos 0 17551645190320445 self socket send movej 96s 96s 96s 96s s Ms a 2 0 v 2 0 Xn i 0 while i lt 0 results self read socket stream if results values 35 lt pos 0 0 005 and results values 35 gt pos f Force 192 38 66 252 12345 f bias break self socket close elif counter 1 Rotate to second position 90 degress self connect results self test receive l pos 1 570796327 0 17551645190320445 self socket send movej s 96s s s s Ms a 2 0 v 2 0 n 96 APPENDIX F SOURCE CODE 87 i eg while i 0 results self read socket stream if results values 35 lt pos 0 0 005 and results values 35 gt pos f Force 7192 38 66 2527 12345 f bias break self socket close myfile open data txt a myfile write 96s 96s 96s 96s 96s Vos n results values 30 results myfile close elif counter 2 Rotate to third position 135 degress self connect results self test receive l pos 3 141592654 0 17551645190320445 self socket send movej s 96s s s s s a 2 0 v 2 0 n i 0 while i 0 results self re
12. len self valu F 0 3 force py TCP client import numpy from numpy import APPENDIX F SOURCE CODE 93 import socket socket setdefaulttimeout 5 0 import time import struct class Force def init self ip port Init of the Force program By Orn amp Einir self ip ip self port port self addr ip port def connect self Connector Partly by Orn amp Einir self socket socket socket socket AF INET socket SOCK STREAM try self socket connect self ip self port except socket error print Socket Error in force py print nu print Remember to turn on the VB script on the PC running the force nu print def establish connection self Connector By Orn amp Einir self connect def test receive self n Test of connection Partly by Orn amp Einir for i in range n try data self read socket stream except Exception e print i Error e trying to reconnect self connect return data def read socket stream self Reads out data Partly by Orn amp Einir try data addr self socket recvfrom 45 except socket timeout print print Socket timeout in force py line 50 APPENDIX F SOURCE CODE 94 print mu return 0 0 0 0 0 0 0 0 first data 0 12 second data 13 25 third data 26 38 stamp data 39 len data data2 self commaToDot first self commaToDot second self commaToDo i 0 while i lt 3 if data2 i gt 150 0 or dat
13. o E o a I e Figure E 2 Technical drawing no 2 of the deburr tool model Not in scale see Appendix F Source code F 0 1 maindeburr py ji coding cp1252 x def systemclear This clears the screen depending on the OS used import os if os name posix Unix Linux MacOS BSD etc os system clear elif os name in nt dos DOS Windows os system CLS ee T import numpy from numpy import x import time import locale locale setlocale locale LC NUMERIC from connectionregulatortest import Connection from force import Force c Connection 192 38 66 237 30003 boe 0 while t 0 systemclear print Moving robot into start position please wait c initialize systemclear f Foree 192 38 66 252 12345 f bias c init variables 4 0 02 0 0005 1 65 APPENDIX F SOURCE CODE 66 plates 1 print print n print ZH Welcome to 3H H7 print JA the deburr program AAT print n print print The commands for this program are print deburr Start deburring print debug Enter debug menu print exit Exit the program print print If no or a wrong input is given print you will return to this screen print choice raw input Command print if choice deburr plates raw input How many plates should be deburred MAX 10 try plates float plates except Exception e print Err
14. print i Error e trying to reconnect self establish connection return data APPENDIX F SOURCE CODE TT def test receive2 self n force Function that takes force vector as i for i in range n try data self read socket stream p self forward_kin data values 30 data values 31 data values 3 f self force rotation data values 30 data values 31 data values except Exception e print i Error e trying to reconnect self establish connection f 0 0 0 return array p f def read socket stream self Function that converts the bytestream fro msg size time struct unpack gt id self socket recv 12 4 int t msg size msg size 12 data self socket recv msg size values struct unpack 6dd 6 msg size 8 data return Results time values def initialize self Moves the robot to start position Partly by Orn amp self connect pos 0 000000 1 553417118727561 1 5863126739797573 0 036943518 pos 0 000000 1 553417118727561 1 5863126739797573 0 036943518 posl 0 00 1 55 L58 0 03 1 57 0 01 self socket send movej s a 1 0 v 0 31975511965976 Xn pos jt self socket send movej 0 001279959781185732 1 553417118727561 1 1 0 while i lt 5 While loop which controls that the robot have moved ir results self read socket stream if results values i 30 lt pos i 0 001 and results
15. Equipment description 21 5l FOrLCESENSOL MENT 21 5 2 The UR 6 85 5 A robot aa 22 6 Implementation 25 6 1 Analysis of Solutions ok xo ee eee Poe Sew bn CASE foe sk Ode Red 25 6 2 Method Implementation llle 25 6 2 1 Deburr Process soe s atomos eh ae ew wR Oe 28 6 2 2 Linear control design and kinematic values 29 7 Programming the robot 32 1 1 Functions and their uses ox 4x OX 96 s 3 9 09 Reo ES DHE PURA 32 7 2 User manual for the program 4 249 soe osx 484 daw eed ao 33 8 Calibration and Test 35 8 1 Test of communication speed a a a o s 35 8 2 Force feedback during deburr oaoa aaa a eee eee ene 36 CONTENTS Eg Noise on the force Sensor 9x 69 xo x04 o3 3 9 3 Re RR SOEUR E SUR Errors in the robot 0 Conclusion 1 Future Work References A Force error on the axes B CD List of Contents C Drawing of force sensor D Drawing of the victim element E Drawing of the deburr tool model H te un o f 5 e o o o jen D F01 maindeburr Py e se eg ee RS ee eR a Ga pa a ea e C a E G F 0 2 connectionregulatortest py o a a a a a llle F03 MORE DY e bone ot n eee WE oe Soke dde dui de ER F 0 4 force_test py 2aoe RoxnkoR S RERO R4 a Reading guide All of the concepts and theories needed to understand how the solution presented in this report works can be found in the theory section It is not required to have a deep under standig of the pres
16. SOO C C APPENDIX F SOURCE CODE 81 global GFref Fref GFref global lagbuster If lagbuster is on then the program will clear the Regulation in sensor Z axis counter 1 1 0 self connect myfile open testit txt a fo Force 192 38 66 252 12345 fo establish connection global Kpf for j in range Xd shape 1 3 results self test receive 1 if counter 3 Sending commands at 41 6Hz 125Hz 3 timel clock tf print 5Hmovingiz4 self send speed to socket Xd 0 i correctionX Yd 0 i correctio fo send to socket force fo read socket stream myfile4 open draw txt a myfile4 write 96f f f f ME Mf Mf n 96 Xd 0 i correctionX Yd myfile4 close f self forward_kin results values 30 results values 31 results jHHiError and Integration errorX Xp 0 i f 0 errorY Yp 0 i f 1 errorZ Zp 0 i f 2 integratorX integratorX errorX integratorY integratorY errorY integratorZ integratorZ errorZ errorFz Fref force 2 HHHHHHHHC orrections jHHiForce PI Regulat orp integratorFz integratorFz errorFz Kif 0 0005 20 APPENDIX F SOURCE CODE 82 c sel def forward kin self t1 t2 t3 t4 t5 t6 a2 a3 d1 d4 d5 d6 T01 T12 T23 T34 T45 T56 T06 correctionX KpfxerrorFz KifxintegratorFz Position PI Regulator Kp 5 Ki 0 05 correctio
17. cutting and therefore compensate for robot arm deflec tions For robot deburring there are three philosophical approaches to accommodate for robot inaccuracies and workpiece variations to obtain more precise results Compliant approach This means that the tools mounted on the robot are mounted in a setup which adds extra compliance in one or more directions of the robot than the robot gives Rigidity in a setup like this is the key to success but also fast servos could help the system to compensate for it but these ideal servos do not exist Fine tuned robot approach This applies that the servos and resolvers have to be fine tuned which can increase robot accuracy by a factor of two or three This slows down the system a bit and also risks to put the servos in a overload position when trying to reach a specific position Theoretically this approach is the most accurate but due to workpiece variations the need to minimize chatter and maximize reliability this approach is discarded in most scenarios Every time something happens to the robot like maintenance or smaller accidents all the programs have to be retaught and reprogrammed Force feedback approach This approach is more established due to the use in other applications but is not used for most parts because of the difficulties to define and control the dynamic effects Moreover force feedback is seen as one upcoming so lution to robotic inaccuracies workpiece tolerance variation
18. random position force test deburri txt Test data from force sensor 1 st side position force test deburr2 txt Test data from force sensor 2 nd side position force test deburr3 txt Test data from force sensor 3 rd side position force test deburr4 txt Test data from force sensor 4th side position force test init txt Test data from force sensor init position force test stretch txt Test data from force sensor horizontal stretch of robot with tool at maximum range force test stretch down txt Test data from force sensor horizontal stretch of robot with tool downward 56 APPENDIX B CD LIST OF CONTENTS 57 force test stretch up txt Test data from force sensor horizontal stretch of robot with tool upward maindeburr py Main program file scriptmanual en pdf URScript Manual from UR testit fourthrun txt Test data from force sensor while deburring one element UR 6 85 5 A Produktblad web UK pdf Datasheet for the UR 6 85 5 A Appendix C Drawing of force sensor 59 APPENDIX C DRAWING OF FORCE SENSOR PROPERTY OF ATI INDUSTRIAL AUTOMATION INC NOT TO BE REPRODUCED IN ANY MANNER EXCEPT ON ORDER OR WITH PRIOR WRITTEN AUTHORIZATION OF ATI F 26 419 40 013 10 051 0 013 MOUNTING ADAPTOR 13 098 0 013 EQUALLY SPACED 5 0 DEEP SEE NOTE 5 amp 7 T 50Dee 06 35 Thru Hole SEE NOTE 7 Radial Cable Only hb me MINI40 R CABLE EXIT X Radial Cable Only MOUNTING SIDE NOTES 2 MOUNTING AND TOO
19. results in the need of complicated regulation The needed regulation is taught at D TU as part of a masters course and due to limitations on time a simpler solution is chosen The regulation solution will have the following properties e Force feedback and regulation in the robot s x and z axis e Position feedback and regulation in the robot s y and z axis e A hybrid force position regulation scheme e A slightly underdamped system which gives a better result CHAPTER 6 IMPLEMENTATION 30 Forward Kinematics Force Control Force Sensor Figure 6 5 Block model of a hybrid force position control scheme from OI09 Note that the forward kinematics are used to transform the joint positions 0 to Cartesian coordinates which are used as feedback for the position controller This regulation was achieved in the draw function of the python code see chapter 7 on page 32 for more information The tuning of the values K and K was made by hand trying different values although the initial values were found using the Ziegler Nichols criteria as described in 0109 The values for the Denavit Hartenberg notation used are shown in table 6 2 The values are then inserted into the homogenous transform as stated in chapter 4 2 on page and using eq 4 4 the homegenous transform oT s which will be used in the programming for movement and location of the robot gt CHAPTER 6 IMPLEMENTATION 31 Table 6 2 Denavit Hartenberg val
20. the tool tip which amplifies the error readings at the sensor CHAPTER 8 CALIBRATION AND TEST 39 When the robot moves there is also noise on the sensor but this phenomenon has not been analyzed in this project When the force sensor is used throughout this project the noise coming from the vibrations of the robot has been discarded as always being within a margin of 4N during a move through the deburr tool This can be seen in section 8 2 on page 36 During the project this noise has been taken into account regarding the linear control which led to the use of a PI regulator instead of a PID regulator In noise problems were minimal due to the small weight of the tool on the tip of the sensor This noise was not taken into account since most of the noise came from the contact point between the chalk and the surface of the chalkboard or between the peg and the block of tree with a hole 3See chapter 4 4 on page 19 Chapter 9 Errors in the robot The robot used in this project is a prototype model used for tests inside UR This means it was built as one of the first of its type and some parts of the robot and its controls may have changed in newer version This section will explain some of the problems which were encountered throughout this project When the robot is being turned on for the first time after long period of inactivity it does not always work and needs to be restarted The error consists in some kind of failure in t
21. values i 30 gt i 7 1 print s 96 i i self socket close def init variables self Fref speed kp lagbust Sets all global constant global approach speed global GFref global Kpf global cost global cost counter global lagbuster global Kpf matrix APPENDIX F SOURCE CODE 78 approach speed float speed GF ref float Fref Kpf float kp cost zeros 1 15 cost counter 0 Kpf_matrix zeros 1 15 Kpf_counter 0 Way 0 lagbuster int lagbust self self self connect socket send set payload 0 5 socket close def force rotation self t1 t2 t3 t4 t5 t6 Fo Convert force data from a2 a3 dl d4 d5 d6 T01 T12 T23 T34 T45 T56 T06 R z R 0 0 R 0 1 R 0 2 R 1 0 R 1 1 R 1 2 R 2 0 R 2 1 R Z 2 F z F 0 0 F 1 0 F 2 0 0 425 0 39243 0 0892 0 109 0 093 0 082 array cos t1 0 sin t1 0 sin t1 0 cos t1 0 0 1 0 d1 C array cos t2 sin t2 0 a2 cos t2 sin t2 cos t2 0 a2 sin aud ud op quu e D p Ea array cos t4 0 sin t4 0 sin t4 0 cos t4 0 0 1 0 d4 C array cos t5 0 sin t5 0 sin t5 0 MARK 5 01 0 1 0 d5 peri Me Md e E OB 6 1050 0 20 1 d6 0 dot T01 dot T12 dot T23 dot T34 dot T45 T56 eros 3 3 T06 0 0 To6 0 1 To6 0 2 T06 1 0 T06 1 1 T06 1 2 T06 2 0
22. 1 02102 and 31012 on JAVA and C programming give a good basic understanding of how a programming language works which is easily ported into Python 4 4 Linear control Linear control techniques were used to achieve precision in the movements of the robot This section explains how a proportional integrator regulator PI regulator works The PI regulator has the advantage of having a good precission without the stationary error a proportional regulator P regulator produces The transfer function in the laplace domain of a PI regulator can be seen in eq 4 10 T s 1 1 Ge s Kp rs Kp gt 4 10 where K is the proportional amplification the regulation and 7 is the time constant From the righthand side of the equation it is clear that the regulator consists of a proportional amplification of the error the K factor and the integration of the error the 1 7 s factor The integrator adds a 90 phase turn and therefore an extra zero is added at s OJO6 The control signal created by the PI controller can also be expressed as in eq 4 11 which is easier to implement as an algorithm in a computer htb u t K e t Ki ema 4 11 Both these courses are part of a group of obligatory programming introduction courses for almost all bachelor students at DTU CHAPTER 4 THEORY 20 Reference controlsignal Figure 4 3 A block diagram for a PI controller note that the error is integrated and amplified twi
23. 4 int t msg size msg size 12 data self socket recv msg size values struct unpack 96dd 96 msg size 8 data values2 array str values 55 str values 56 myfile open data txt a i 0 while t lt 11 myfile write myfile write myfile write myfile write t t 1 myfile close return values2 0 values2 1 value 40 indeholder s n 96 value 55 indeholder s n 96 value 56 indeholder s n 96 value 60 indeholder s n 96 values 40 values 55 values 56 values 60 KR So a So def approach_z_x self direction When the x direction of the sensor are self connect fo Force 192 38 66 252 12345 fo establish connection counter 0 p e while 1 i 14 counter counter 1 results self test_receive 1 if counter 10 Sending commands at 41Hz 125Hz 3 fo send_to_socket force fo read socket stream if force 2 gt 3 0 and force 2 lt 3 0 APPENDIX F SOURCE CODE 85 if direction 1 self send speed to socket 0 0 0 0 approach speed 0 04 Move elif direction 1 self send speed to socket 0 0 0 0 approach speed 0 04 Moves elif foree 2 gt 3 0 self send speed to socket 0 0 0 0 0 0 0 04 self close break elif force 2 lt 3 0 self send speed to socket 0 0 0 0 0 0 0 04 self close break else self send speed to socket 0 0 0 0 0 0 0 04 self close break counter 0 def a
24. L ADAPTOR MADE OF EITHER ALUMINUM OR SST CUSTOMER SPECIFIED TRANSDUCER MADE OF HARDENED STAINLESS STEEL 3 USE M3 TAPPED HOLES AND 3MM DOWEL PIN HOLES ON TOOL AND MOUNTING ADAPTOR FOR INTERFACING 4 CONNECTOR NOT SHOWN HAS 17MM DIAMETER AND IS 67 5MM LONG 5 MOUNTING SCREW LOCATION 125mm 6 WARNING DO NOT LOOSEN OR REMOVE INTERFACE PLATES DUE TO POTENTIAL DAMAGE 7 DO NOT EXCEED INTERFACE DEPTH MAY CAUSE DAMAGE 8 FOR RADIAL CABLE UNITS DO NOT ALLOW ITEMS PASSING THROUGH CENTER HOLE TO TOUCH BOTH THE MOUNTING AND TOOL ADAPTER PLATES OR PERFORMANCE WILL BE COMPROMISED 3 M3 5 TAP B C 33 1 MINI40 IS AVAILABLE WITH EITHER A RADIAL MINI40 R OR AXIAL MINI40 A CABLE EXIT 12 25 Frame Origin SIDE VIEW TOOL ADAPTOR Sensing Reference Rev Description Initiator Date Eco 7160 Update moximum thread engagement Lad depth from 3 4 to 3 0 rad T12 2008 3 058 2 02234 2 54 Dp 2 95035 p Au n 15 156 013 SEE NOTE 7 26 250 0 013 Ref datum C MINI40 R CABLE EXIT Radial Cable Only MINI40 R ISOMETRIC VIEW RADIAL CABLE EXIT 17 500 0 013 Ref datum B Sensing Reference Frame Origin 3 M3 5 TAP B C 33 EQUALLY SPACED MINI40 R CABLE EXIT 3 0 DEEP Radial Cable Only SEE NOTE 5 amp 7 TOOL SIDE MINI40 A SIDE VIEW AXIAL CABLE EXIT MINI40 A CABLE EXIT MINI40 A MOUNTING SIDE AXIA
25. L CABLE EXIT NOTES UNLESS OTHERWISE SPECIFIED DO NOT SCALE DRAWING DRAWN IN SOLIDWORKS ALL DIMENSIONS ARE IN MILLIMETERS 4 rd ANGLE PROJECTION INDUSTRIAL AT MUS ee 1031 Goodworth Drive Apex NC 27539 USA Tel 1 919 772 0115 Email fo ati ia com Fax 1 919 772 8259 www ati ia com ISO 9001 Registered Company DRAWN BY D Swanson 3 9 06 ME CHECKED BY D Perry 3 9 06 Mini40 Transducer Radial amp Axial Cable Exit WEIGHT LBS SCALE SIZE 2 1 B JASSEMBLY REF DRAWING NUMBER 9230 05 1278 04 PRODUCT RELEASE DATE SHEET OF Figure C 1 Technical drawing of the force sensor A Appendix D Drawing of the victim element APPENDIX D DRAWING OF THE VICTIM ELEMENT 61 10 100 OSL 9PIS doy E Z amp E S E Surimgop 10 ayy Figure D 1 Technical drawing the victim element Not in scale see B Appendix E Drawing of the deburr tool model APPENDIX E DRAWING OF THE DEBURR TOOL MODEL 63 S 5 i g a E S z g M e E sjeays 7 Jo I PATH JON opour eurqoeur zurmnqeq Figure E 1 Technical drawing no 1 of the deburr tool model Not in scale see APPENDIX E DRAWING OF THE DEBURR TOOL MODEL 64 xpeg 022 oly OS m M N q panpa 60 cULC TT TBEM CO PTN q uai PIS s ysz Jo I J 0 c E d B ja EB 5 o e E B
26. Reference F Maximum amp Minimum Force on the X axis N N Actual F Reference F Maximum amp Minimum Force on the Y axis N b o 7 Fm FE l A is to Actual F Reference F Maximum amp Minimum Force on the Z axis N Sample point Figure 8 3 Graphic representation of noise recieved on the force sensor when the robot is in the first deburr position see also Appendix With the high peak errors removed from the data sets the force sensor still experiences errors but smaller than 2 N This can be seen in figure The figure show force measurements from all three axis at the moment where the robot is at a waypoint just before it starts deburring the first edge of an elelement If these numbers are compared to the rest of the measurements in the Appendix A it is apparent that the force sensing depends on when exactly the force bias is removed from all three axis It is concluded that the measured noise comes from the robot While standing still in a position in space and turned on the robot will always vibrate a little and this movement is measured by the force sensor The vibrations come from the motors in the robot which are trying to hold the robot still in the preprogrammed position while working against gravity The hight vibration measurements are due to the weight of the element at
27. Technical University of Denmark Mikkel rum Wahlgreen s042157 Daniel Esteban Morales Bondy s051976 Sensor Based Robot Control Bachelor thesis November 2009 DTU Electrical Engineering un Sensor Based Robot Control Report written by Mikkel rum Wahlgreen s042157 Daniel Esteban Morales Bondy s051976 Advisor s Nils Axel Andersen Ole Ravn DTU Elektro Technical University of Denmark 2800 Kgs Lyngby Denmark studieadministration elektro dtu dk Project period 24 08 09 30 11 09 ECTS 15 points Education B Science Field Electro technology Class Public Edition 1 edition Remarks This report is submitted as partial fulfillment of the requirements for graduation in the above education at the Technical University of Denmark Copyrights Wahlgreen Mikkel rum amp Bondy Daniel Esteban Morales 2009 Ud Cour apta agit Abstract This projects describes the efforts to create a solution to an industrial problem A 6 joint 6 degree of freedom robot arm was used to simulate the deburring of a metal plate A 6 axis force torque sensor was placed at the tool tip allowing force regulation in the process A mock up of a deburring machine was built and the robot managed to simulate the deburr proces of four sides of a metal plate Abstract Gennem dette projekt er bestr belserne p at finde en l sning p en industriel prob lematik beskrevet En 6 leds 6 friheds grader robot arm var b
28. a few degrees so the plate ends up being completely flat against the deburr sledge 8 3 Noise on the force sensor The force sensor used in this project has been described in chapter 5 1 on page BII and it has been noted that it had an unpredictable error which showed as a a peak read out of a force larger than what the sensor should be able to measure In the Appendix A on page 46 sets of data are listed containing information read out from the force sensor in nine different positions in the workspace of the robot e Random position e Deburr positions 1 4 just before the robot starts moving towards the deburr setup e Initialize position e Stretched out horizontal with the tool at maximum reach downward and upward CHAPTER 8 CALIBRATION AND TEST 38 In each data set there are values which are out of the measuring range of the force sensor It should be noted that the sensor cannot measure more than 40 N of force in the x axis and y axis and 120 N of force in the z axis see table on page The data received reaches numbers up to 255 N or even 256 10 N and this error is not connected to only one axis These peak errors have to be removed from the data sent to the system otherwise the corrections for the robots movements can be fatal for the equipment and setup Still the setup has completed the deburr process of 10 elements in a row without crashing or having serious errors First deburr position Actual F
29. a2 i lt 150 0 data2 i 70 0 print Force reading on i is out of bounce i rl return data2 def send to socket self Send 1 flag to server By Orn amp Einir data 1 try self socket send data except socket timeout print wi print Socket timeout in force py line 68 nu print def send to socket init self Send init to server By Orn amp Einir data clear self socket send data def commaToDot self s Converts from comma to dot notation By Orn amp E comma s find dot s find if comma gt 1 if dot lt 0 no dots comma separates decimals s s replace return float s def bias self Removes bias if sensor measures more than 0 1 Newton self establish_connection self send_to_socket force self read socket stream APPENDIX F SOURCE CODE 1 0 while i 2 if force i lt 0 1 self send to socket init if force i 0 1 self send to socket init i i l1 F 0 4 force test py TCP client import numpy from numpy import import socket socket setdefaulttimeout 1 0 from time import import time from force import Force i d f Force 7192 38 66 252 12345 f establish connection f bias myfile open force_test txt a myfile write n New run Zn while i lt 1500 f send to socket data f read_socket_ stream myfile write s n data P ipd p
30. ablishing waypoints where the robot arm has to stop These points are called through the move com mand Approach with sensor feedback These functions were made by having loops moving the tooltip in a desired direction with the speedl script while comparing the data of the force sensor to a given reference value In most cases this reference value was 4 N This kind of function is also used to simulate the pickup and delivering of the elements to be deburred lFor specific details on the working of these commands refer to URscript Manual 32 CHAPTER 7 PROGRAMMING THE ROBOT 33 Decoupling movements These movements are made with the speedl script moving only short distances away from the deburr setup The original script was made by Ing lf sson and Gudlaugsson but this function is now divided into two different scripts decoupling on different axes Rotation of the tool point This is achieved by logging the current position of the joints and then using the movej script to rotate wrist 3 of the robot The rotation is made with a slight bias due to the general position of the robot arm relative to the setup Translation of the tool point with force regulation activated This is the most im portant movement of the project since it is the one that defines the precission of the deburr work This movement was achieved by creating a path as described in chapter 4 2 2 and continously sending the information from the force sensor and the posi
31. ad socket stream if results values 35 lt pos 0 0 005 and results values 35 gt pos f FPoree 192 38 66 252 12345 f bias break self socket close myfile open data txt a myfile write s 9s Vs s 96s sYn 96 results values 30 results myfile close elif counter 3 Rotate to fourth position 180 degress self connect results self test receive l pos 4 712388981 0 17551645190320445 self socket send movej 96s 96s 96s 96s s Ms a 2 0 v 2 0 Xn 96 i 0 while i 0 results self read socket stream if results values 35 lt pos 0 0 005 and results values 35 gt pos f Force 192 38 66 252 12345 f bias break self socket close myfile open data txt a APPENDIX F SOURCE CODE 88 myfile write 96s s s s s sYn 96 results values 30 results myfile close else print An error occured in the rotate function def collect self turncounter Make the robot pick up a plate from a ho self connect Move to position for collecting plate pos 1 26525439665243500 1 44560270287730370 1 68035001330557070 self socket send movej 96s a 1 0 v 0 5 n 96 pos 1 0 while i lt 5 While loop which controls that the robot have moved ir results self read socket stream if results values i 30 lt pos i 0 001 and results values i 30 gt toe self socket close time sleep 0 5
32. are connected and are on the same network The IP settings for the robot should be IP 192 38 66 237 Subnet 255 255 255 0 the IP settings for the user pc should be IP 192 38 66 x Subnet 255 255 255 0 and the IP settings for the sensor pc should be IP 192 38 66 252 Subnet 255 255 255 0 Control the connection between the sensor and the sensor pc is plugged in correctly x should be a number between 1 255 except 252 and 237 CHAPTER 7 PROGRAMMING THE ROBOT 34 Then the Visual Basic 6 script written for OI09 on the sensor PC should be started press the following buttons Listen Initialize sensor Remove bias and Fetch data The last one is to check that everything is working and if the data is not close to zero it might suggest an error Turn on the robot follow the text on the screen to initialize it Remove anything withing 20 cm of the robot arm before turning the power on and be careful not to hit anything while moving the arm during this stage When the robot is initialized choose Program Robot on the main screen and go to the Log tab This will help understanding any problem if one should occur Make sure the Ethernet controller does not have packet loss at this stage otherwise restart the robot right away Now it is possible to start the user interface at the user pc Make sure that the user pc has Python version 2 5 and the source code from this project Start the file called maindeburr py from Appendix F 0 1 on Micr
33. call to the robot is locked to 41 Hz as in OI09 The only function not having the same frequency restriction is the approach z_ x which has even more strict limitations on the speed of the socket send calls 8 2 Force feedback during deburr The read out of the force sensor was logged for analysis purposes and can be seen in fig 8 2 From this graph it is clear that regulation toward a force reference of 4 N is achieved The graph shows the force feedback each time a side of an element is passed through the deburr setup It is also quite clear here that the force regulation is very sensitive CHAPTER 8 CALIBRATION AND TEST 37 4 Actual Force Reference Force ZIN 2 fi fi 1 L fi Time Figure 8 2 Force feedback during the deburring of the four sides of an element The first third and fourth deburr maintain a stable pressure agains the deburr sledge to the start position of the robot and whether the victim element is completely aligned with the debur sledge or not The first third and fourth runs maintain an even force regulation while the second loses its grip against the deburr sledge This happens because the alignment angle between the sledge and element is too big when the element is rotated into the second position for deburring This could be solved by having a tool tip which is able to bend and adapt
34. ce before it used as feedback The reference signal is established by the designer Further fig shows the block diagram of a PI controller This is the structure which will be used in this project The use of a proportional integrator differential regulator PID regulator is also very common but has an inherent problem in the differentiation term That is differentiating systems with high frequency noise can render the whole system unstable Therefore this project focuses on the use of PI regulators Chapter 5 Equipment description 5 1 Force sensor In order to measure forces at the tool tip of the robot a Mini40 sensor by ATI Industrial Automation is used This sensor comes with a DAQ card for use in a PC The sensor is a transducer which together with the DAQ card reads out 6 axis force torque signals For the connection between the DAQ card and a PC an ISA port is used An older PC is needed to read out the force data because this form of connection is no longer used in new PC s This setup means that the sensor cannot be connected directly to the robot through the I O interface on the robot or inside the controller to the robot but needs to be connected to a separate PC running Windows 2000 The output from the sensor are 6 components consisting of 3 forces and 3 torques Fy Fy F Te Ty Tz which are given in a Cartesian coordinate system around the sensor see Appendix The F T transducer reacts to applied forces and tor
35. ched to the robot tooltip Figure 6 3 A flow chart of the deburring process CHAPTER 6 IMPLEMENTATION 28 should be kept in mind that the size and speed of the cylinder doing the deburring depends on which material it should work on how much material it should remove and how fine the result should be Appendix D on page also shows a sketch of the victim element mounted on the robot The mounting between the element sensor and the robot is not included since it was already made before this project started The element ends up being mounted approximately 10 cm from the center of the tool tip of the robot 6 2 1 Deburr Process The movements before and after the element is near the deburring machine are easy to program as point to point movements This also includes the rotation of the victim element to change side for deburring and the position before the deburr process is started While the robot is to collect or deliver an element the force sensor is used to make sure that the robot is pushed against the element or the element underneath before a vacuum is activated or deactivated if a suction cup was implemented The elements ready to be picked up by the robot are to be placed in a holder where the elements are fixed in a precise position In this way the robot always picks up an element in almost the same position Due to programming a small deviation of 1 mm in this position is allowed Th
36. contact with the robot 3 Robot s sudden release of workpiece or tooling 4 High feed rates 5 High spindle speeds 6 Noise level 7 Flying debris from broken wheels burrs flash broken wire form brushes and sparks from grinding Number 1 and 3 together can end up sending a tool or workpiece flying wildly at high operate speeds A high noise level may also require a walled installation to bring down noise levels overall in the production if workers are present 4 2 Kinematics and Mathematics All of the mathematical and kinematic equations used in this project were researched and established by OI09 and therefore only a superficial explanation will be given in this section For further reading Cra04 and OI09 are recommended CHAPTER 4 THEORY 16 Kinematics are the basic study of how mechanical systems behave In this project the study of kinematics of robotic manipulators will refer to all geometrical and time based properties of the manipulator s motion Kinematics are an excellent tool to obtain the position and orientation of each manipu lator joint and when used for this purpose it is refered to as forward kinematics Position and orientation are determined by assigning a reference frame to each joint A reference frame is defined as a coordinate system with an orientation and position vector relating the coordinate system to another frame This is useful since it allows to describe joint po sitions and orientation in d
37. ctivate Suctionscop systemclear print APPENDIX F SOURCE CODE 74 print print Z4 Securing plate 757 print print time sleep 3 if selection del while 1 systemclear Move to collect position c deliver time sleep 0 2 Remove bias gravity on force sensor f Force 192 38 66 252 12345 f bias Approach to table c approach z x 1 Deactivate Suctionscop systemclear if selection deburr systemclear print Moving robot into start position please wait c initialize systemclear f Force 7192 38 66 2527 12345 f bias c init variables 4 0 02 0 0005 1 plates 1 plates raw input How many plates should be deburred MAX 10 try plates float plates except Exception e print Error e Please make sure you put in a number between 1 exit nTry starting the program again n if plates gt 10 print print print 444 Deburring plates 10 HHF print print APPENDIX F SOURCE CODE 75 plates 10 elif plates lt 0 print print print 4 NOT Deburring any plates 757 print n print time sleep 3 deburred plates 0 systemclear while deburred plates lt plates print print print 44 Plate no 96s is running 4 str deburred_plates 1 print n print turncounter 0 c collect turncounter c deburr turncounter c deliver deburred plates deburred plates 1 c initialize systemclear
38. d if myfile3 is None myfile 1 else print Test 96s 96 myfile closed myfile3 close print Myfile3 is closed c connect c close exit nBuy n old interface adopted partly from Orn amp Einir pos display current robot position indi initialize the robot force current force reading bias remove force bias goto goto cartesian position move translate end effector test Rotation test movement from python random testing of controller speed not working properly exit exits program approachx for testing purpose only approachy for testing purpose only col Collect plate del Deliver plate deburr Deburr program selection raw input Enter your selection APPENDIX F SOURCE CODE 69 if if if selection init systemclear global cost print Wwe print AAA print initializing robot print MAHHHHHHP print nu import time c initialize f Foree 192 38 66 252 12345 f bias c init variables 2 0 03 0 0015 1 print Please wait until the robot has stopped moving before calling print nu selection bias systemclear print print AAAI print initializing Force Sensor print HEHHHHHHP print nw f Force 7192 38 66 2527 12345 f bias selection goto systemclear c establish connection results c read socket stream f c fo
39. d and how the instru ments were calibrated in order to get precise and accurate measurements Further the collected graphs and data are discussed and compared 8 1 Test of communication speed Ing lfsson and Gudlaugsson observed that communication over Ethernet between the con trol PC sensor PC and the robot not always worked as described in the data sheet of the robot The sensor PC did not show problems of communication due to the fact that it does not communicate with the robot but only with the sensor and the control PC A model of the network can be seen in figure In the script manual of the robot it is stated that the robots real time Run timeMachine can handle communication at a speed of 125 Hz This frequency has proven to be difficult to mantain while running communication over Ethernet The robot crashed with the error No Controller and stopped if calls were sent at this rate By restricting the send rate to 41 Hz the crash error was prevented from occurring everytime This crash error still appears sporadically without any clear reason To test the controller crash problem a small piece of code was designed to call one of the UR Script commands at a determined rate This also gave an opportunity to learn move about the UR Script The random command was chosen because the robot does not have to move for this command to work and thereby does not have to ensure that it always stays inside its own workspace This command is als
40. described in on page 9 the wear and tear on the deburr tool will make the deburring less precise for every run and at some point the tool needs to be sharpened or replaced When a tool has been chosen the amount runs before the tool needs to be changed has to be determined if the tool manufacturer has not stated this already A solution to extend the life of a tool can be to made through a mechanism that moves the angle of attack on the tool between or during each run Deburring all eight sides of an element Another future feature can be to design a regrip fixture for the setup inorder to make the robot capable of deburring all eight edges of a victim element Expansion of the control to force feedback in several axes The SISO system de veloped in this project can be optimized into a multiple input multiple out MIMO system that is able to use force feedback from all axes of the sensor or even the torque outputs This would make the victim elements follow all the sides of the modelled deburr tool even smoother Noise reduction A filtering system can be built inorder to remove even more noise from the force sensor at the TCP of the robot This would make the controlled movements 43 CHAPTER 11 FUTURE WORK 44 even smoother Completion of test setup The setup can be completed adding a suction cup at the tool tip and a vacuum system mounted near the robot Also the holders beside the robot for the arriving and leaving victim elements can be
41. designed and put into the setup A real grinding mill could be installed too although some security measure should be established Bibliography A Cra04 CW76 Eis99 Gi199 Har HDY04 Is005 MWS05 0109 OJ06 Roba Robb ATI L A Mini40 r On line http www ati ia com products ft ft__models aspx id Mini40 John J Craig Introduction to Robotics Mechanics and Control Prentice Hall 3rd edition 2004 Raymond F Veilleux Charles Wick Tool and Manufacturing Engineers Hand book Materials Finishing and Coating volume III chapter 16 McGraw Hill Book Co 1976 Jens Eising Lineaer Algebra Institut for Matematik DTU 1999 LaRoux K Gillespie Deburring and edge finishing handbook Asme Books 1999 Tom Harris How robots work How Stuff Works On line http science howstuffworks com robot2 htm Roger A Freedman Hugh D Young University Physics with Modern Physics chapter 14 page 516 Pearson Addison Wesley 11 edition 2004 James Isom A brieg history of robotics On line http robotics megagiant com history html 2002 2005 Mathukumalli Vidyasagar Mark W Spong Seth Hutchinson Robot Modeling and Control chapter 3 page 496 Wiley 2005 Einir Gudlaugsson Orn Ing lfsson Flexible control of a robot arm using sensor feedback Master s thesis DTU Electrical Engineering July 2009 Paul Haase Soerensen Ole Jannerup Reguleringsteknik Polyteknisk For
42. e dimensions 10 cm x 15 cm Figure 6 3shows a flowchart of how the robot deburrs all four sides of the elements An element has been mounted on the existing tool of the robot from the project OI09 The idea behind this setup is to simulate a deburring process of four sides of this element in a model of a setup around the robot For this setup a model has been drawn for a deburring platform see appendix E on page 62 With help from the AUT department this model was made in wood and mounted within the workspace of the robot The model was mounted on a small table next to the robot in the lab with clamps to prevent it from moving when the robot pushes the victim element against it The robot was programmed to simulate the process of picking up the element deburring its four sides and then delivering the element for further work elsewhere The programming for this task will be discussed in chapter 7 on page 32 The tool chosen to be simulated is like the one in figure 4 1 b The size of the tool is determined depending on the size of the element which in this case is 10 cm x 15 cm but the size of the tool can easily be changed if the size of the workpiece should be changed It CHAPTER 6 IMPLEMENTATION 27 suction cup and pressure sensor UR robot arm deburr tool deburred plates AE rough plates Figure 6 1 A simplified model of the theoretical setup of the deburring process Figure 6 2 Test bench setup with an element atta
43. e movement is controlled by a PI regulator trying to maintain a constant force in the Z direction Position regulation along the X and Z axes is desired and two PI regulators maintain the wanted position along these two axes When one side has been deburred the robot deburrs three more sides before it is done 2TCP Tool Center Point named by UR CHAPTER 6 IMPLEMENTATION 29 Yr Figure 6 4 Model of approach to deburr tool The Y and Y axis are chosen according to the right hand rule A spindle is and ready to drop off the victim element again In a production line the element would be turned upside down at the drop off point and put trough the process once more to deburr all eight edges but this is outside of both our time line and main problem and will therefore be saved for future work 6 2 2 Linear control design and kinematic values The regulation used for the project was based on the hybrid control used in 0109 Fig 6 5 shows a general block diagram of how the desired regulation is achieved The ideal solution for the deburring process would have force regulation between the victim element and the deburr platform on the robot s X and Z axes see fig6 4 The resulting system to be regulated would be of the multiple input multiple output MIMO kind This fact paired up with torques and forces generated on the force sensor due to torsion when the victim element is not exactly aligned with the deburring sledge
44. e position of the holder for unloading the plates does not have to be in a fixed position either The holder is allowed to deviate in both rotation and position by 1 mm In the position for deburring no matter which side of the element is chosen for debur ring force measurements must be used for impact control and regulation First impact control must be used to make the element move all the way to touch the deburring tool in two directions The robot is programmed to move towards the deburring tool in one direction the Z direction of the force sensor see fig This corresponds to a continous movement along the X axis and Z axis of the robot until the force sensor measures a given reference value To complete the positioning of the element before the actual deburring is done contact has to be made with the rest of the sled of the deburring setup This is completed by moving the plate a 5 mm away from the machine and approaching the sled in the force sensor s X direction which correspond to the X direction and Z direction of the robot until a force reference value is reached once more Then the approach in the force sensor s Z direction is called once more to make the plate reach the sled as close as possible Fixed in the sled the element is ready to be run by the deburring mill which means the element is moved along the robots Y axis while it is pushed against the tool sled in the force sensor s Z and X direction Th
45. e put inside the workspace of the robot to give it access to handle all edges of a workpiece 4 1 2 Tool Considerations Three approaches commonly used for toolchanging are e Design integral multiple motors on the end effector at 90 to each other to eliminate the need for changing tools CHAPTER 4 THEORY 14 e Change preset spindles e Change grippers and tools These approaches are used for changing the tool when it is on the tool tip of the robot not changing tools in fixed tools within the workspace of the robot When a change of the tool is done the motor driving the tool is often changed as well This is easier than designing tools for one motor unit only if the operation of the tool is changed by the tool change It is often faster to make the change in the afore mentioned way Most tools used for manual deburring can be used for robot deburring but a common fact for all tools is that they will get worn out over time and therefore need to be changed after a certain amount of runs The deburring process will in some cases leave small burrs and these can in some cases be minimized with a second run see table especially when using cutters or chamfer tools Table 4 1 Combinations of first and second run tools appropriate for robot deburring Subsequent finishing approaches Principal Abrasive Approach Rubber Brushing Bur balls X Chamfer tools X Grinding wheels Reverse radius cutters Abrasive rubber Abrasive fill
46. ed along the Z axis of the sensor and proved to be moderately adequate for the task Other control techniques might have been better for force regulation in two axes but knowledge of those techniques was outside the scope of this project The solution is not as precise as it was hoped it could be This stems from the fact that only force regulation in one axis was achieved At the same time a solution was expected to be found for removing dampening the vibrations generated by the robot but they only became worse due to the heavy weight on the tool tip The team is satisfied with the knowledge acquired during this project and with the results achieved 42 Chapter 11 Future Work Throughout this project more problems have been revealed during the search for solutions to the stated questions in the problem statement Some of these have been outside the frame of this project others were too time consuming and some have had to be discarded due to the lack of the knowledge needed to solve the problem The following points are tasks or problems which could be solved in the future as a special course or simply for the challenge Change in size of the elements to be deburred The product of this project can be made to take an input of the dimensions of the victim elements and thereby adjust all the waypoints in the procedure to take the dimensions into account before moving from waypoint to waypoint Improving the use of the deburr tools As
47. ed cotton Brushing Grinding belts Reciprocating files PA pA pA p Some considerations about the optimum use of cutters e Correct contact point errors often lead to vibrations e Correct contact angle correct angle avoids secondary burrs CHAPTER 4 THEORY 15 e Correct path direction incorrect direction of the tool motion relative to the rotation of the tool often results in vibrations e Correct path velocity depends on type of burrs desired quality and other factors e Correct resilient mounting compliance Another common tool used for robotic deburring is rotating files made of high speed steel or carbide but these wear and also need to be changed periodically Reciprocating or oscillating files are also used but do not work well together with soft metals like aluminum which tend to accumulate in the teeth of the file The deburring can also be done by abrasive belt grinding but here the chamfer size is hard to control if the grinding belt is not spring or air loaded Furthermore the longer the belt is the smaller the change in frequency A last possibility is brushing this leaves a smooth blend and can remove all normal burrs It is also easy to compensate for wear without changing the result because the result does not depend greatly on the applied force 4 1 3 Safety Considerations When handling robots there are seven major safety hazards in robot deburring as follows 1 Robot runaway 2 Inadvertent human
48. ed into the program A simpler method is to feed a constant offset into the program but the main idea is to automatically adjust to wear of the tool at all times The geometric shape of the workpiece also plays a role in the deburring quality cost and programming difficulty It gets easier with more straight lines without any bending or curves and harder if there are a lot of shallow areas small bends and holes in difficult areas which need deburring in the same process When a specific workpiece is the target for the operation it must be considered whether the robot has to handle a tool or handle the workpiece A robot can handle a maximum of weight at the tool tip and this confines the size of a tool or a tool together with the workpiece If the robot is equipped with the tool then the workpiece has to come to the robot on a turning table a conveyor belt or similiar A fixture must lock the workpiece in a known orientation and a change in the workpiece shape or size needs its own fixture and more can be needed to have the robot work continuously If the workpiece is light the robot will also have the possibility of lifting the workpiece and maneuver it around between one or more fixed tools The robot can either deliver the workpiece to a tool or pass the workpiece over the tool tip When the process is done the workpiece can be passed on to another conveyor belt or the like and the robot can grab a new workpiece A regrip fixture can also b
49. eeks off the projects time schedule When taken apart it was clear what was wrong one wire from the 48 V Internal power supply had been torn out from its socket on the main controller board This apparently happened due to the length of the wire and vibrations between the power supply and the main controller board While the controller was taken apart it was also noted that two out of three ceramic resistors had almost broken completely off This also occurred due to 40 CHAPTER 9 ERRORS IN THE ROBOT 41 vibrations and because the resistors had not been mounted correctly but had only been installed in a socket in one end The weight of each resistor had then been enough to move it around every time the controller box was shaken or moved due to gravity After some time the wires connecting the resistances must have become weak and broken off Representative of UR stated that the resistors are used to burn off energy when the robot is deaccelerating and no damage should have been done as long as the robot had not been used intensively over a long period Two new resistors were sent from Odense and installed upon arrival this time secured by strips to avoid the same error again later on UR claims that this construction error has now been corrected In section 8 1 on page 35 an error concerning the controller crashing has been explained During the project this error has appeared on different occasions and was mentioned to UR It was discussed
50. ented concepts although if the reader wishes to have more knowledge related to these topics it is recommended to read the references especially OI09 This report is written by two Bachelor of Science students at DTU and is meant to doc ument a test bench solution for a given problem This problem is to simulate a deburr process of a plate of aluminium with the UR 6 85 5 A robot To be able to read and un derstand this report the reader should have some basic knowledge about topics concerning control of robots math and programming languages The following topics are essential for a clear understanding of the described solution e Math taught to first year Bachelor students concerning changing coordinates from one coordinate system to another e Physics concerning gravitation forces and forces affecting two objects pushed against each other e Basic knowledge in programming languages like C and Python It is not a must for the reader to know Python since it is easy to compare to the syntax of C or Matlab e How a robot arm with 6 joints moves around in its workspace e Linear control designs of the single input single output type e How a transducer sensor works Anyone is welcome to read the report even if they do not have knowledge in all the fields mentioned above but it is not guaranteed that they will understand everything described throughout the report The intended readers of this report are the supervisor of the project and the se
51. he Ethernet card or driver which does not start up the Ethernet properly The log states Ethernet 001 Packets loss which does not explain much but implies that the error lies in the network communication drivers of the robot Another error comes after the control box for the robot has been moved The wires for the touchscreen might be moved as well and an error occurs with the touchscreen making it impossible to control the robot without an external mouse or keyboard This error has not been present all the time but appears due to wear and tear on the wires which go into the control box When these wires were installed at UR nothing was used to prevent the sharp edges of the control box to cut into the wires and if a closer look is taken it is now possible to see through most of the isolation cap and into the cores or shields of almost all the wires This model was not meant to be transported moved or placed in an environment which vibrates in any way This limitation has not been commented to the AUT group or any student working with the robot The limitation became apparent when the log suddenly one morning simply stated 48 V Internal power supply is at 0V at start up The robot had the day before shown no problems when turned off Universal Robots was contacted and the problem was explained The solution was that the control box should be taken apart an examined at D TU rather than sending it to Odense and back which could have taken w
52. he light weight of the UR 6 85 5 A it is expected that the setup of the robot arm will be moved around to different positions in a production line In order to reach results that are realistic compared to the actual use of the robot the setup will not be fastened to a 10096 stable armature but will stand on a table without actually being bolted to it Furthermore it is assumed that the robot will only deburr the same kind of elements in a series i e it will only deburr plates of the same size or cylinders of same diameter and will know beforehand which kind of object it is to deburr In this case the test bench will prove that 10 cm x 15 cm aluminium plates can be deburred From now on these plates will be refered to as victim elements or elements The programming of the computer will be made in the Python programming language and will be sent to the robot arm over Ethernet using the TCP IP protocol as a set of instructions If UR find the program satisfying they will easily be able to integrate it into their own Linux operative system Further this project builds on an earlier project made at Automation and Control AUT by Orn Ing lfsson and Einir Gudlaugsson see OIO9 A pressure sensor has already been attached to the end effector of the UR robot arm and this project is going to use their setup as start condition Chapter 4 Theory Like most engineering solutions this project combines concepts and theories fr
53. hrough the definition of wavepoints This GUI is only used in this 3See chapter 3 2 1 in OI09 CHAPTER 5 EQUIPMENT DESCRIPTION 23 Figure 5 1 The links of the UR 6 85 5 A and its composition Note that all the joints are revolute project to startup the robot and to log errors from the robot arm All other programming occurs through network protocols as explained in sec 4 3 The GUI is a high level program that works on top of a low level language designed by UR called URScript This script sends basic commands to the robot controller like the command movej q a 3 v 0 75 t 0 r 0 which receives q a vector with six joint positions and moves to the given position with the acceleration a velocity v time t and blend radius r The afore mentioned controller is a mini ITX PC in the controller cabinet and if programming at script level is desired it must occur using a TCP IP socket connecting to this controller from another computer The URScript programs are executed in real time on the URControl Runtime Machine RTMachine which communicates with the controller at a frequency of 125 Hz The mount flange of the robot can be seen in fig Many different kinds of tools can be mounted on this flange but for this project only a force sensor is mounted CHAPTER 5 EQUIPMENT DESCRIPTION 24 Front Tilted Figure 5 2 The workarea of UR 6 85 5 A Figure 5 3 The mounting flange of UR 6 85 5 A Chapter 6 Implementati
54. iding motion along a single axis Revolute joint This joint has one degree of freedom and provides rotating motion along a single axis CHAPTER 4 THEORY 17 Furthermore there are four parameters defining a link the connection between two joints e Link length denoted by a 1 is the mutually perpendicular line between joint axes i landi e Link twist denoted by o is the angle between joint axes 1 and i e Link offset denoted by di is a joint variable for a prismatic joint In case a prismatic joint is described the other three variables will remain fixed and depend on the dimensions and construction of the robot e Joint angle denoted by 6 is a joint variable for a revolute joint In case a revolute joint is described the other three variables will remain fixed and depend on the dimensions and construction of the robot Ideally any robot arm can be described by these four variables and when done it is referred to as the Denavit Hartenberg notation A coordinate system is assigned to each of the joints in the robot arm this can be seen in fig 4 2 aj 2 1 l I j i l Figure 4 2 Denavit Hartenberg frame assignment taken from MW S05 The finer details of the Denavit Hartenberg notation will not be explained here for further information refer to and MWS05 As can be seen in fig the Z axis zi ls coincident with joint axis the X axis z goes along the mutual perpendicular a fro
55. if the heat that building up inside the controller box could affect the controllor UR insisted that is was not the case because the temperature should not rise above the maximum working temperature for all the components inside the controller box Chapter 10 Conclusion Throughout the realization of this project several branches of engineering and tools have been used Programming linear control physics and mathematics are among the most prominent and they were all used together to achieve a result This result is the creation of a test bench which proves that a robot arm UR 6 85 5 A is able to deburr four sides of a metal plate victim element using a force sensor installed on its tool tip A setup was created to simulate the deburring process which is divided into the following steps 1 The user chooses how many elements are to be deburred 2 The robot arm simulates picking up an element with a suction cup 3 Using force regulation in order to follow a surface the robot passes the victim ele ments four sides by a mock up of a deburring machine 4 The robot arm simulates delivering the deburred plate at a given position 5 The robot repeats the procedure if necessary Programming was made with the Python language and proved to be very effective to the task It eased the use of the URScript language and communication with the robot arm Force regulaton was achieved through the use of a PI regulator acting in the software It regulat
56. ifferent coordinate systems or a single basis coordinate system if desired Six parameters are needed to describe an object three position parameters and three orientation parameters Therefore a transformation of reference frames includes translation and rotation in one frame with respect to the other This can be achieved through linear algebra as described in Es99 Let az be a coordinate in base a and pz a coordinate in base b then following is valid i a a R o 4 1 where ot is a matrix defining translation from one coordinate to another and a is a matrix that rotates from b coordinates to a coordinates In robot kinematics eq 4 1 is usually expressed as 8 Fei P re And in a simpler form eq 4 2 can be expressed as ak a Toz 4 3 Matrix 41 called the homogeneous transform and has the following property oZ N o Z1 1D2 N 2 T N 1 N 1 LN 4 4 This allows the description of the position and orientation of the tool tip on the robot arm in the the coordinate system of the base joint If transformation from base b to a is desired it can be done through the inverse homoegenous transform boMa 4M uc 4 2 1 Denavit Hartenberg Notation One way of expressing the forward kinematics of the robot arm is using the Denavit Hartenberg notation When talking about robot arms two kinds of joints exist Prismatic joint This joint has one degree of freedom and provides sl
57. int print HHHH Robot is been tested analyse randomit txt after each run THHHHHP APPENDIX F SOURCE CODE 72 print print myfile3 open randomit txt w values c random myfile3 write d n double values 0 myfile3 close it s lection exit systemclear try myfile except NameError myfile None try myfile2 except NameError myfile2 None try myfile3 except NameError myfile3 None if myfile is None myfile 1 else myfile close if myfile2 is None myfile 1 else myfile2 close if myfile3 is None myfile 1 else myfile3 close c connect c close exit nBuy n APPENDIX F SOURCE CODE 73 if selection approachx systemclear print Testing X force c approach zx x 1 if selection approachy systemclear print Testing Y force c approach y z 1 if selection approachz systemclear print Testing Z force c connect results c test receive 1 c socket send movej s 96s 96s 1 7 Vs 96s a 2 0 v 2 0 n re c close time sleep 5 c approach z z 1 Not in use if selection turn systemclear c rotate 3 if s lection col systemclear Move to collect position e collect time sleep 0 5 Remove bias gravity on force sensor f Foree 192 38 66 252 12345 f bias HApproach to table c approach z x 1 A
58. int UAE print Current robot position is 96 6f 96 6 96 6 96 0 1 2 print print selection force systemclear f Force 192 38 66 252 12345 f establish connection f send to socket force f read socket stream c establish connection APPENDIX F SOURCE CODE 71 results c read socket stream f2 c force rotation results values 30 results values 31 results va print nw print EEHHHHHHP print Current force vector in force sensor coordinate system is 4s print With respect to robot coordinate system 4sN 4sN 4sN 96 print eee print m Not in use if selection test systemclear global cost print print AAAH print initializing robot print HAE print import time c initialize time sleep 3 afterwards you re welcome to give a new po f Foree 192 38 66 252 12345 f establish connection f send to socket force f read socket stream if foree 2 gt 0 1 f send to socket init c init variables 2 0 03 0 0015 1 newx raw input Choose a new x position newy raw input Choose a new y position newz raw input Choose a new z position c connect c socket send movel p f Wf 9f 0 0 1 57 0 a 0 01 v 0 01 t 10 c socket send movel p 0 475 0 119 0 604 f f f a 0 01 v 0 01 c socket close if selection random systemclear print We pr
59. ition APPENDIX A FORCE ERROR ON THE AXES 51 Parca ohne 2 8 De Force on the Y axis N Force on the X axis N o o o o o o 29 OO o mw y Oc o OG N o N BDO BK N o m eo i e eo ET o 3 LIE a gt e D c oO 3 o p 5 o SE o p o E 2 e e eo Eae a e eo gt gt gt FE SOS Sag 4 0 C 4 0 C X otc FE FE 238 5 m 5 m 5 m 38 38 38 z z z 3 3 3 3 3 3 c cC c 3 3 3 Figure A 5 Graphic representation of noise received on the force sensor when the robot is in the fourth deburr position APPENDIX A FORCE ERROR ON THE AXES 52 Force on the Z axis N Force on the X axis N i Force on the Y axis N i i i o o0 o o o o o o n eo ine A Po eo ine O AB ine eo ine i T L l AN ee el Ji __ a c1 eo e 1 i 8 E Q 2 o 2 D mi o o 2 2 S E eee ERE o 3 SET e CERT pm SS umo ms e Eu m 1 LJ 1 1 eo TE TE FE xO S xoc X otc 225 ae d 387 387 38 Qo n Qo 2 n z z zZ 3 3 3 3 3 3 c c c 3 3 3 Figure A 6 Graphic representation of noise received on the force sensor when the robot is in the initialize po
60. lag 4th edition 2006 Universal Robots UR 6 85 5 A Users Manual Universal Robots On line PDF http www universal robots com 1 1 edition Universal Robots The URScript Programming Language Universal Robots On line PDF www universal robots com 45 Appendix A Force error on the axes APPENDIX A FORCE ERROR ON THE AXES 47 Force on the Z axis N l o or Force on the Y axis N Force on the X axis N I M eo M A no eo M 0 S O L 00S 10q01 y JO uoiisod WOpUeY 0001 Mp rfl A 00G L zr 2r FE oc oc oc a 2 a gt o 2 p 87 87 n a m wnwlulN 9 UInuJlXxe N UInullul A 9 UInuJlxe N UInuJlul A 9 UInuJiXe N Figure A 1 Graphic representation of noise received on the force sensor when the robot is in a random position APPENDIX A FORCE ERROR ON THE AXES 48 Force on the Z axis N Force on the X axis N Force on the Y axis N o o o o l I o o o o ec eo N Co AR N eo N N e N AR o gt 01 eo e T o p E 2 9 2 o o Hej o o n gt o 2 e eo eo C1 e e I D gt I D gt Zo sao EOS S285 X otc X otc x o Z FE FE FE 5 m 5 m 5 n zo EE 38 em ioe Sn 3 3 3 3 3 3 c c c 3 3 3 Figure A 2 Gra
61. m joint axis 7 to joint axis 1 and finally the Y axis Y is chosen according to the right hand rule in order to complete the i frame It is essential in the study of kinematics to be able to define frame i in terms of frame i 1 This transformation is usually a function of one of the joint variables CHAPTER 4 THEORY 18 and the remaining fixed link parameters These four variables fit into eq 4 3 and the homogenous transform becomes the following cos 6 sin 6 0 ic um sin 0 cos a 1 cos 0 cos o 1 sin a _1 sin oj i d 4 5 pee sin 0 sin o 1 cos 0 sin a 1 cos oj 1 cos a 1 di 0 0 0 1 Eq 4 5 defines the individual link transformation and accordingly the coordinates of the end effector of a robot can be found by inserting eq 4 5 into eq 4 4 giving an equation as a function of all joint variables 4 2 2 Path generation This subsection explains how a smooth path is generated between two points in spaced It was the method chosen in OI09 and since this project is a continuation of OIO9 the same method was used A more detailed explanation can be found in 0109 The method cubic polynomials is used to find the desired path from an initial position to a destination in a certain amount of time Four constraints are established in order to create a single smooth motion p 0 po 4 6a ty Py 4 6b lt p 0 0 4 6c L pits 0 4 6d where po is the start posi
62. nY KpxerrorY KixintegratorY correctionZ KpxerrorZ KixintegratorZ if Freg 0 correctionX 0 correctionY 0 correctionZ 0 HWrite position speed control signal and force data to a file myfile write 96f AE WE 96f WE f UE Af Af 96f n Xd 0 i Yd O counter 0 i i 1 time2 clock This routine clears the socket buffer if lag is detected if lagbuster 1 if time2 timel gt 0 1 print YHHHHHH ag detected HHHHHHH Clearing i socket packets for count in range 1 5 int floor 125x time2 timel self test receive 1 ounter counter 1 f close 0 425 0 39243 0 0892 0 109 0 093 0 082 array cos t1 0 sin t1 0 sin t1 0 cos t1 0 0 1 0 d1 C array cos t2 sin t2 0 a2 cos t2 sin t2 cos t2 0 a2 sin array cos t3 sin t3 0 a3 cos t3 D pean array cos t4 0 sin t4 0 sin t4 0 cos t4 0 0 1 0 d4 C array cos t5 0 sin t5 0 sin t5 0 A 5 0 0 1 0 d5 array cos t6 sin t6 0 0 sin t6 cost 6 0 0 0 0 1 d6 0 dot TO0l dot T12 dot 123 dot T34 dot T45 T56 9 x T06 0 3 0 0606 Calculate forward kinematics by APPENDIX F SOURCE CODE 83 y T06 1 3 z T06 2 3 return x y z def approach self Moves the robot near the blackboard By Orn amp Einir self connect fo Force 192 38 66 252 12345 fo establish connection
63. nsor at the bachelor exam as well as any potential buyer of the UR 6 85 5 A robot the producer of the robot and other people with a interest in our project lCommonly known as SISO CONTENTS 5 Reviewing or Reading Depending what the goal for reading this report is there are two guidelines for going through the report e The report can be read from one end to another in order to ensure a thorough understanding of the content of the report and the effort invested in the project e Or the highlights of the report can be read which are the problem statement in chap ter 2 on page 7 the problem delimitation in chapter Blon page 8 and the conclusion in chapter 10 on page If more understanding is needed of a certain topic then the chapter concerning that specific topic must be consulted Chapter 1 Introduction The term robot comes from the Czech word robota generally translated as forced labor Har and was coined by the Czech writer Karel Capek in 1921 Is005 Although robots no longer have the single purpose of forced labor that Capek once envisioned for them doing jobs too complicated or too tiresome for the human being is still their main appliance One of the kinds of robot which has become common in modern industry is the robotic arm Robotic arms have developed greatly during the last decades and have found several uses in modern culture Their jobs can vary greatly serving as prosthetics doing work in an as
64. nt is calculated by a computer program doing replay after the points are put into the program much the same way as with continuous path robots These points are then saved as a location of the tool center instead of the position of each joint Controlled path robots often come with one or more different interpolation types like joint linear and curvilinear interpolation e Joint interpolation means that all the joints reach their position at the same time e Linear interpolation results in a linear motion of the tool center point CHAPTER 4 THEORY 12 e Curvilinear interpolation moves the tool center along a desired curvature During the actual programming of a robot the operator can be placed next to the robot and control the movements with a joystick or other interfaces On line or he she can do the programming elsewhere like with a NC CNC machine Offline The on line programming is often used as a trial and error method when the robot has to work with simple parts and the on line programming can be used with an off line program that needs one or more corrections Using on line programming raises some issues like shutdown of production during pro gramming different equipment may block sight during programming and precision adjust ments cannot be done and complex parts may be time consuming to program for precise results For off line programming the operator must be able to tell the program about weight of tools or forces done by
65. o supposed to return a value to the control PC like most of all other commands that move the robot This small program consist of a while loop where the speed of the loop can be controlled to determine the frequency of the call of the socket send command The idea was then to run the loop at different frequencies and see how long it would run without See chapter 5 2 on page 22 2In the log PolyScope disconnected from Controller 35 CHAPTER 8 CALIBRATION AND TEST 36 IN User PC World Wide Web amp The update server at Universal Robots Odense DK Figure 8 1 A model of the network around the robot getting the error on the touchscreen of the robot To determine if this command actually reached the robot and the robot answered a program was included in the loop which wrote the answer from the robot with a time stamp to a file This file did work but the answer from the robot was not as expected since it consisted of the position of the robot and not a random number from 0 1 as the UR Script manual stated Also the time stamp to control the frequency in the text file was not working as planed and needed reprogramming to be sure it was accurate Due to the failure of completion of this test the project was continued with restrictions on the communication speed This means that when a movement is done which depends on a read out from the force sensor the frequency for every socket send command
66. om several different fields The essential concepts used for this project will be described in this chapter where each field will have its own subsection 4 1 Deburring This section comes from CW76 and for further information on the topic reading this source and is recommended Whenever one wants to cut or stamp out a piece of material there will be a burr of some kind left on the edges On a piece of metal these burrs are mostly undesired because they are often sharp and can cut personnel or other materials during handling To get rid of these burrs there are several solutions It can be done by manually using hand tools or machines or it can be done automatically by machines or robots If the deburring is to be repeated during a production of thousand objects then the automated approach is preferred but only if the objects are not too complex If the latter is the case then a hand tool is preferred due to the fact that machines cannot get the job done if the holes or edges are too small or too close to something else If the objects have to be deburred by hand it can be done with several different tools the most common are shown in figure 4 1 a but for manual deburring it is also possible to use machines like the one shown in figure or like the drill shown in figure 4 1 c and figure 4 1 d For automated deburring it is possible to use NC CNC machines with all kinds of specialized deburring tools or brushes trimming presses
67. on 6 1 Analysis of Solutions There are two different ways to approach the problem of converting the UR robot arm into a deburring tool e To place a grinding machine on the end effector This would allow the robot arm to deburr big objects which fit into the arms working area e To place a gripper tool like a suction cup on the end effector and pass the desired object through deburring tools This solution is focused on smaller objects since the arm can only lift up to 5 kg with precision A comparison of the two methods for a solution has been made in table Each of these solutions has strengths and weaknesses but the most important aspect aimed at in this project is precision If a grinding mill was to be used the force sensor would not be able to feel a steady push from the tool tip since the mill would be shaving off pieces of the object to deburr This would mean that the amount shaved off the object to deburr depends on the precision of movement of the robot arm and the time of displacement of the tooltip Since neither can be assumed to be reliable the second method is concluded to be the best solution see figure In short the solution consists of a controlled path robot behaviour combining joint and linear interpolation along with the force feedback approach 6 2 Method Implementation Since this project is only a testbench the suction cup method is tested without an active suction cup i e a victim element is placed
68. on the end effector simulating an element which is attached to the end effector through a suction cup see fig Furthermore the element In tbl 6 1 on the following page it is assumed that the density of steel is 7 8 g cm HDY04 and thus the arm is capable of lifting a square plate with a thickness of 5 mm and sides of 35 cm 25 CHAPTER 6 IMPLEMENTATION 26 Table 6 1 Method comparisons Tool mounted on Workpiece mounted end of robot on end of robot Weight of object N A 5 Kg to deburr Reach of robot arm Radius of arm Depends on the weight and size of the object to deburr Size of object Must be inside the reach Depends on the weight to deburr of the robot arm of the object Precision of Depends on the odometry Depends on the force deburr process of the robot arm since sensorand software code force sensor does not work The forcesensor permits effectively with a adaptability therefore grinding mill Therefore high precisionis assumed low precision is assumed Strength of Not necessarily soft All kind of materials material metals like aluminium as long as a gripper can be designed Speed Highest Higher than most machine or hand deburring processes holders will not be built but it is assummed that all elements are picked up at the exactly same position with the same rotation For the proof of concept it is assumed that the robot is standing in a production line where it has to deburr metal plates with th
69. or e Please make sure you put in a number between 1 exit nTry starting the program again n if plates gt 10 print print print EE Deburring plates 10 HA print print plates 10 elif plates lt 0 print print print 4 NOT Deburring any plates 757 print print time sleep 3 deburred_ plates 0 systemclear while deburred plates lt plates print APPENDIX F SOURCE CODE 67 print n print 44 Plate no 96s is running 4 str deburred_plates 1 print n print global turncounter turncounter 0 c collect turncounter c deburr turncounter c deliver deburred plates deburred plates 1 c initialize systemclear print nu print M N print 4 Finished deburring plates 7477 print M N print nu if choice debug t 1 if choice exit systemclear try myfile except NameError myfile None try myfile2 except NameError myfile2 None try myfile3 except NameError myfile3 None if myfile is None myfile 1 else print Test s myfile closed APPENDIX F SOURCE CODE 68 choice nu Debugmode the while 1 print print print print print print print print print print print print print print myfile close print Myfile is closed if myfile2 is None myfile 1 else print Test s 96 myfile closed myfile2 close print Myfile2 is close
70. or a robot in the industry there is a good guideline in a combination of the following factors e The accuracy and positioning repeatability of the robot mechanism e Consistency in positioning the edges of the workpiece to a reference surface clamping force can significantly deflect some parts e Nature of the edge before deburring burr uniformity thickness and location consis tency e Repeatability of the deburring tool in the robot holder e Repeatability and accuracy of the cutting tool geometry When working with a precision robot the robot is often built as a point to point ma chine Modern control methods are being used now to control robots which leads to continuous path robots and controlled path robots The point to point mode means that the robot moves from one point to another in space with the end effector and the motion and speed of each joint of the robot cannot be predicted Each time a point is defined all the joint positions must be saved into a memory block When the robot moves some of the joints move into position before others and therefore the path between two points cannot be predicted easily Continuous path mode means the operator is often able to grab and move the robot from one place to another and thereby teaching the robot how to behave Often this data is read into a memory at continuous time with a sampling rate from 60 to 80 Hz When the controlled path mode is used the path between each point of moveme
71. osoft Windows 2000 or newer This can be done by a double click on the file or by running the file in command window In Unix Linux systems it can be run in a terminal window The program will start moving the robot to the first position and when it is done the main screen will show see figure The following choices are possible deburr Choosing this will make it possible for the user to choose how many elements to deburr and then start the process The maximum number of elements is 10 pieces debug Choosing this will make it possible for an advanced user to access the temporary menu used to do the programming This menu is partly a copy of the one use by OI09 with a few extra options exit Choosing this will shut down the program after closing any open files or sockets HETETETETETETETETETETETETETETETETETETETETETETETETETETETETETETETEIT HH Welcome to HHH the deburr program HHH BEDE DEDE DE DEDE DE DEDE DEDE DEDE DE DEDE DE DEDE DE DEDE BEDE DE DEDE DE LEDET The commands for this program are deburr Start deburring debug Enter debug menu exit Exit the program a wrong input is given return to this screen Figure 7 1 Mainscreen for the user interface at the user pc connected to the robot controller and sensor pc Before any use of the robot always read the safety instruction in the user manual for the robot Roba Chapter 8 Calibration and Test This chapter shows how the solution for the given problem was teste
72. phic representation of noise received on the force sensor when the robot is in the first deburr position APPENDIX A FORCE ERROR ON THE AXES 49 meee Gn ie EQUI Force on the Y axis N Force on the X axis N o o NT o o o 9 e X C E e es s OG o OG BP i o N RK v N o a eo c1 eo eo ep CD 9 o ep 5 D a 3 Q B z D c B 3 zy e o o o Est gt eo eo c1 eo eo ZIP zD ZI posco poo posco 335 325 ENS Do D D C 5 m Con c 5 m 3o Set 3m em on em 3 3 3 3 3 3 c c c 3 3 3 Figure A 3 Graphic representation of noise received on the force sensor when the robot is the second deburr position APPENDIX A FORCE ERROR ON THE AXES 30 Force on the Z axis N Force on the X axis N Force on the Y axis N i i o o o o o o 29 o N eo N AR N e N o gt gt N eo N a B e eo E g gt d 8 S E 8 3 zi S 3 I e eo Il Elen eo zr 2r FE oc oc oc a 2 a gt o 2 p 87 87 n a m UInuJlul A g unwxeny UInuJlul A g unwxey UInuJlul A g UInuJixe N Figure A 4 Graphic representation of noise received on the force sensor when the robot is in the third deburr pos
73. pproach zx x self zdirection xdirection f ref When the x directi self connect fo Force 192 38 66 252 12345 fo establish connection counter 0 i 0 while 1 i gl counter counter 1 results self test receive 1 if counter 10 Sending commands at 41Hz 125Hz 3 fo send to socket force fo read socket stream if force f gt ref and force f lt ref if zdirection l1 if xdirection l1 self send speed to socket approach speed 4 0 0 approach sp elif xdirection 1 self send speed to socket approach speed 4 0 0 approach spe elif zdirection 1 if xdirection 1 self send speed to socket approach speed 4 0 0 approach spee elif xdirection 1 self send speed to socket approach speed 4 0 0 approach speec elif force f gt ref APPENDIX F SOURCE CODE 86 self send speed to socket 0 0 0 0 0 0 0 04 self close break elif force f lt ref self send speed to socket 0 0 0 0 0 0 0 04 self close break else self send speed to socket 0 0 0 0 0 0 0 04 self close break counter 0 def decouple self plane distance turncounter Function which moves tl if plane e x or plane X self translate distance 0 0 0 0 0 turncounter 0 125 3 elif plane y or plane Y self translate 0 0 distance 0 0 0 turncounter 0 125 3 elif plane z or plane Z self translate 0 0 0 0 distance 0 turncounter 0 125 3
74. pter 7 on page 32 The graphical user interface GUI for the sensor output is written in Visual Basic 6 by for the PC connected to the sensor This program has been used without any changes and although only one value F was used before attempts to use force sensing in all three axes were made 5 2 The UR 6 85 5 A robot The Automation and Control group at DTU has received a 6 joint robot arm from Uni versal Robots in Odense which has been made available for students to make experiments and do project work The model of the robot is UR 6 85 5 A and is a light robot arm weighing only 18 kg and capable of lifting up to 5 kg payloads Details about the robot can be found in the User Manual and on the webpage www universal robots com Only a quick introduction will be given here Fig 5 1 shows the different parts of the UR robot e A the base of the robot where the robot is mounted e B the shoulder of the robot e C the elbow of the robot e D E F wrists 1 2 and 3 of the robot where a tool is attached to the robot By coordinating movement the robot can move freely in 6 DOF with the constraints shown in fig which shows that there is a cylindrical workspace along the robots base Z axis where the tool point cannot work Also the figure shows that the robots working area is a sphere of diameter 175 cm around the base The robot comes with a GUI called PolyScope which is easily programmable and allows point to point movement t
75. ques using Newtons third law The force applied to the transducer flexes three symmetrically placed beams using Hookes law c E 5 1 where c the stress applied to the beam is proportional to the applied force E is Young s modulus of the beam and e is the strain applied to the beam The force sensor was calibrated before it was mounted on the robot by Ingolfsson and Gudlaugsson OI09 There is no apparent reason to repeat the calibration since there has been no observable change in readings from the sensor during tests and the sensor is still in the same environment The sensors measuring capabilities can be seen in tab Ingolfsson and Gudlaugsson observed that large peak values appeared without any force applied to the sensor except gravity The same observation was made during this project but the cause of the error has not been found This error can be disastrous for the equipment due to high correction movements sent to the robot depending on this reading I Data Acquisition card nside a building in normal humidity and temperatures around 23 degrees Celsius 21 CHAPTER 5 EQUIPMENT DESCRIPTION 22 Table 5 1 Metric ranges and resolution of the ATI Mini40 6 axis F T sensor Sensing ranges F F N zEIN zcrT7 T T N m 40 120 2 Resolutions F F IN F N a T T Ts N m 1 400 1 200 1 16000 Therefore changes have been made to the original Python code made by Ing lfsson and Gudlaugsson see cha
76. rint f i myfile close f socket close exit n Bye data can be analyzed in force test txt Vn 95 www elektro dtu dk Department of Electrical Engineering Automation and Control Technical University of Denmark rsteds Plads Building 348 DK 2800 Kgs Lyngby Denmark Tel 45 45 25 38 00 Fax 45 45 93 16 34 Email info elektro dtu dk
77. rugt til at simulere afgrat ningsprocessen af en metalplade En 6 akselede kr ft moment sensor blev placeret for enden af robotten hvilket gav en tilbagekobling i processen En tr model af en afgrat ningsmaskine blev bygget og robotten var i stand til at simulere afgratningsprocessen p fire kanter af metalpladen Foreword We would like to thank the people at AUT DTU especially the following people Nils Axel Andersen and Ole Ravn our supervisors Henrik Poulsen who built our mock up of the deburr tool Also a thanks to Universal Robots for letting us borrow their robot especially Esben H stergaard who helped with troubleshooting Last but not least a thanks to Rene Bondy who showed us how deburring is done in the industry and providing positive feedback Contents 1 Introduction 6 2 Problem Statement 7 3 Problem Delimitation 8 4 Theory 9 AI eget MON S a e ccecce aesa radad SE ORAE Row woe RUE sl AXE a 9 4 1 1 Robot deburring nos 4 osck ee Ge ede Ron x RUE Rory ee ER 9 4 1 2 Tool Considerations e eee eee eee eee eee XR RR 13 4 1 3 Safety Considerations 4 99 woo o RR RR eu as I5 4 2 Kinematics and Mathematics 2 2229 3 oo o RE RW 15 4 21 Denavit Hartenberg Notation 0 4 16 4 2 2 Path generabinlle umo ke Ox ne X EGE A CE Ned ac 18 4 3 Python programming 1 an s piod fecu dos Ae me o opone Boso Rd RSS os 19 4A Linear Controls vie amp eov KE Se ROE OAS S X RE E ADAE Xub xU 19 5
78. rward kin results values 30 results values 31 results values print print print Current robot position is 6f 6f 6f 96 0 1 2 print AAAA print 9 x raw input Enter X coordinate m y raw input Enter Y coordinate m z raw input Enter Z coordinate m c send cartesian to socket float x float y float z systemclear APPENDIX F SOURCE CODE 70 if if if selection move systemclear c establish connection results c read socket stream f c forward_kin results values 30 results values 31 results values close raw input Enter X displacement m raw input Enter Y displacement m raw input Enter Z displacement m init variables 2 0 03 0 0015 1 translate float x float y float z 0 0 0 establish connection results c read socket stream f2 c forward_kin results values 30 results values 31 results values c close print Total movement was 4f 4f 4f 9e f2 0 0 f2 1 1 2 c x y Z c c c selection pos systemclear c establish connection results c read socket stream f c forward_kin results values 30 results values 31 results values c close myfile open data txt a myfile write 17f 17f 17f 17f 17f 17f n results values myfile close print pr
79. s and incorporation of on line databases and off line programming There are four constraints preventing the more frequent use of force feedback e The robotic system cannot respond quickly enough for many needs e The dynamic response of the robot system is difficult to define for all arm positions Numerical Controled Computer Numerical Control CHAPTER 4 THEORY 13 e General algorithms that provide the robot logic are difficult to generalize for three dimensional curvilinear geometries having variable burr size and fluctuat ing part geometries e Robot compliance affects sensor data Force sensing is often used for simple tasks together with a fettling device where the variations of the burrs are very small and the movement is in straight lines This will work well as long as the burrs do not change much in dimensions If the burrs change the robot does not know how the burr has changed and ends up going too close or too far away from the workpiece leaving a mark Wear and tear of the tool can also change the parameters for the force sensing system Depending on the tool and setup used for the process the force sensing can be used to measure wear of the tool This can be done by putting the tool into a hole with an already known size and then pushing against the sides thereby finding the size of the tool Comparing the new size to the one before the robot started the process will yield the wear of the tool The offset is then f
80. sembly line or even doing reparations at the International Space Station One of the reasons their use has become more common in today s society is that their precision in movement has increased greatly This is caused by improvements in fields of control theory in electronical measurements and sensing and electro mechanics Robotic arms are important in modern society because they can do work that a human being would not be able to Since the use of robot arms has become widespread it has become important for up coming robotic engineers to learn about them It is essential for any robotic engineer to understand modern concepts and theories in the fields of control and regulation physics mathematics programming and electronics Not only knowledge in the individual fields is required but also knowledge about how to integrate the different fields is needed inorder to create solutions which help the society Due to the challenges and opportunities to learn the study of the field of robotic arms offers an electronical engineer student a project related to said field has been chosen at the Automation and Control group at the Technical University of Denmark as finishing exam for the Bachelor study This project will consist in creating a solution to an industrial problem based upon sensor control of a robot arm Chapter 2 Problem Statement Autonomous arms or robotic arms have become a common element in modern industrial processes Their
81. sition APPENDIX A FORCE ERROR ON THE AXES 53 Force on the Z axis N Force on the Y axis N Force on the X axis N e e I I I I 01 eo c1 A ine eo ine ine eo 00S juiod ajdwes 10901 y JO u918JlS Je UOZHOH 0001 un V 00G L dIemoy Jd yenjoy Jd enjoy 4 eouaJeJau 4 QOUdIOJOY 4 eouaJeJau UInullul A g unwxeny UInullul A g unwxeny UInullul A g UInuJlxe N Figure A 7 Graphic representation of noise received on the force sensor when the robot is in a horizontal stretched position with the tool pointing outward APPENDIX A FORCE ERROR ON THE AXES 54 Force on the Z axis N Force on the Y axis N Force on the X axis N e gt o I l M oO M A o M o k M e N Co eo du juiod ajdwes 0001 PJEMUMOP pouJn 00 BU 10901 y JO uojeJis jejuozuoH ll F i a ae e e gt gt gt SEES Sag SOS x oS X otc x ot XE FE FE 5 m 5 m 5 m zo EE 38 Q m amp n 2 E E E gt gt gt 3 3 3 c c c 3 3 3 Figure A 8 Graphic representation of noise received on the force sensor when the robot is in a horizontal stretched position with the tool pointing downward APPENDIX A FORCE ERROR ON THE AXES 95 Force on the Z axis N
82. tasks have become manifold with time which leads to a demand of better precision from the robot arms The problem tackled in this project can be summarized in the following questions e How to do a delicate and precise procedure using the robot arm a pressure sensor and a tool e What can be done to make the robot adaptive to the surface or the structure it is working on e How can vibrations be damped and or removed in the process This should be done to make the arm more accurate in fields like glass cutting engraving on metal plates and deburring Chapter 3 Problem Delimitation The topics discussed in the problem statement are very wide and can be applied to many fields of work for automatized robot arms Therefore certain limitations to the problem statement need to be applied The project is done in cooperation with the company Universal Robots UR which has provided AUT with a robot arm model UR 6 85 5 A This robot arm has six degrees of freedom DOF six joints and has been added a six axis force torque sensor Since many of UR s clients want to use this model as a deburring tool this project will focus on integrating the pressure sensor with the robot arm and making a program for deburring work The aim of this project is to create a solution to an industrial problem which UR can use as marketing for their product Because of time and budget constraints this project will only be a testbench for the solution Due to t
83. tion py is the goal position and ty is the duration of the motion These constraints are satisfied by eq and its derivatives p t ag ait aot agt 4 7a d 2 ye Q 2a t 3aat 4 7b d Pl 2a2 Bast 4 7c Solving eqs 4 7 with the constraints from eqs yields the following coefficients ao Po 4 8a Py Po 4 8c CHAPTER 4 THEORY 19 lp po 4 84 f In the case a velocity limitation is needed on the motion of the end effector t can be changed from a constant to 3 lpr pol 4 9 Umax 4 3 Python programming Python is a general purpose high level programming language Its design philosophy em phasizes code readability and easy network programming The reason Python is used as programming language is due to the fact that the code most of this project is based upon is already written in Python The people behind this code have chosen the Python code because of the easy implementation of the TCP protocol which the UR robot uses for communication over Ethernet Furthermore using this language to send commands to the robot allows bigger flexibility than using the GUI of the robot arm which also al lows programming to a certain degree and simplifies the integration of the force sensor data feedback Another reason for using Python is the easy access to help via the inter net and its similarities to other programming languages Programming techniques learned from the courses 0210
84. turncounter turncounter 1 if turncounter lt 4 Rotates the TCP to the next edge to deburr self rotate turncounter else self rotate 0 E Comments from edge 1 has to be copied here Ihe deburring of the second edge start self move to deburr pos time sleep 0 5 f bias self approach zx x 1 1 2 4 f send to socket force f read socket stream myfilel open force txt a myfilel write f f fYn force 0 force 1 force 2 myfilel close self translate 0 005 0 0 005 0 0 0 125 3 time sleep 0 5 f bias self approach zx x 1 1 1 5 f send to socket APPENDIX F SOURCE CODE 91 force f read socket stream myfilel open force txt a myfilel write f f f n force 0 force 1 force 2 myfilel close time sleep 0 5 self approach zx x 1 1 2 4 self translate 0 0 0 2 0 0 self decouple Z 0 10 0 turncounter turncounter 1 if turncounter lt 4 self rotate turncounter else self rotate 0 2 0 turncounter 1 125 0 Comments from edge 1 has to be copied here self move to deburr pos time sleep 0 5 f bias self approach zx x 1 1 2 4 f send to socket force f read socket stream myfilel open force txt a myfilel write f f f n 96 force 0 force 1 force 2 myfilel close self translate 0 005 0 0 005 0 0 0 125 3 time sleep 0 5 f bias self approach zx x 1 1 0 5 f send to socket force
85. ues used for the robot They are obtained through measurements made on the robot arm i frame a 1 a 1 m d m 4 1 0 0 0 0892 0 2 90 0 0 1357 62 3 0 0 42500 0 1357 05 4 0 0 39243 0 1090 64 5 90 0 0 0930 05 6 90 0 0 0820 6s Chapter 7 Programming the robot 7 1 Functions and their uses The code for this project builds upon the program from an earlier project OI09 After an analysis of this code functions which were needed to complete the task had to be written or modified Afterwards all the functions which were no longer in use had to be erased The purpose of the new functions are described on the flowchart in figure on page These functions created with Python work as a high level programming language work ing on top the URScript There are two classes which were made e The force class containing functions designed to retrieve information and remove bias from the force sensor F 0 3 e The connection class containing functions designed to speak with the robot and thus send all movement scripts to the robot These two classes each have their own file and a third file called maindeburr py serves as a primitive GUI These three files can be seen in Appendix F and can be analyzed if a detailed understanding of the different classes and functions is desired Mainly five kinds of tasks need to be scripted in order to do the deburring work Large movements in workspace These movements are made by est

Download Pdf Manuals

image

Related Search

Related Contents

  Conceptronic 16 port Gigabit Rackmountable 11" Switch  Septembre - Centre International Lebret  Le Ceri lance une encyclopédie des massacres en ligne  Yamaha HiFi Component  取扱説明書 - 日立の家電品  Fujitsu 510 User's Manual  Norman Virus Control per workstation Versione 5.81 Guida di  ボイストレックVN  TM 1-1520-240-MTF - Chinook Helicopter  

Copyright © All rights reserved.
Failed to retrieve file