Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Aleš Škrobar
AVTOMATIZIRANA ROBOTSKA CELICA S
SISTEMOM FANUC VISION
Diplomsko delo
Maribor, maj 2013
Aleš Škrobar, Diplomsko delo I
Diplomsko delo visokošolskega študijskega programa
AVTOMATIZIRANA ROBOTSKA CELICA S SISTEMOM
FANUC VISION
Diplomsko delo
Študent: Aleš Škrobar
Študijski program: visokošolski, elektrotehnika
Smer: avtomatika in robotika
Mentor: red. prof. dr. Riko Šafarič
Somentorica: doc. dr. Suzana Uran
Maribor, maj 2013
Aleš Škrobar, Diplomsko delo II
Aleš Škrobar, Diplomsko delo III
ZAHVALA
Za pomoč pri nastajanju diplomskega dela se
zahvaljujem obema mentorjema, red. prof. dr.
Riku Šafarič in doc. dr. Suzani Uran.
Zahvalo namenjam tudi g. Alešu Simon za vso
strokovno pomoč in podporo s strani robotov
Fanuc.
Hvala tudi mojim sodelavcem, ki so me podpirali
in nadomeščali v času študija.
Posebno zahvalo namenjam mojim domačim za
vso podporo in spodbujanje v času študija.
Aleš Škrobar, Diplomsko delo IV
AVTOMATIZIRANA ROBOTSKA CELICA S SISTEMOM
FANUC VISION
Ključne besede: robot, robotska celica, robotski vid, kamera.
UDK: 681.51:007.52(043.2)
Povzetek:
Za podjetje, ki je močno vpeto v avtomobilsko industrijo, smo izdelali že več popolnoma
avtomatiziranih linij za izdelavo zobatih vencev avtomobilskih vztrajnikov. Avtomatizirana
linija med sabo povezuje različne obdelovalne stroje (rezkanje, kaljenje, struženje,
merjenje). Za posluževanje med stroji je na avtomatizirani liniji nameščenih več različnih
robotov proizvajalca Fanuc. Konkretno je v aplikaciji, ki je opisana v mojem diplomskem
delu uporabljen robot Fanuc M-710iC/50 z nameščeno pnevmatsko prijemalno glavo
prilagojeno za pobiranje zobatih vencev s stolpca na transporterju. Na fiksnem delu, na
mestu pobiranja, je nameščena robotska kamera, ki skrbi za nastavljanje položaja robota
pri pobiranju, saj je stolpec zobatih vencev med transportom pogosto nagnjen ali
raztresen v več smeri. S kamero tako kontroliramo nagnjenost in raztresenost stolpca in
na podlagi tega spreminjamo koordinate robota pri pobiranju. Naloga kamere je tudi
zaznavanje zadnjega kosa na transporterju in nastavljanje položaja robota pri pobiranju
novega kosa z novega stolpca, saj tudi ustavljanje na transporterju kljub mehanski blokadi
zaradi vztrajnosti ni optimalno.
Aleš Škrobar, Diplomsko delo V
AUTOMATED ROBOT CELL WITH FANUC VISION
SYSTEM
Key words: robot, robot cell, robot vision, camera.
UDK: 681.51:007.52(043.2)
Abstract:
For a company strongly presented in automotive industry we have made several
completely automated lines for production of gear rings. Automated line links together
different machines (milling, hardening, turning machine, measurement). For operation
between the machines there are Fanuc robots placed on automated line. Application
presented in this paper work is using robot Fanuc M-710iC/50 with pneumatic head for the
purpose of collecting gear rings from transporter. On fixed / collection part there is a
robotic camera assuring appropriate position of a robot, because column of gear rings
often inclined or distracted in different directions. On this basis one is able to change
coordinates on collection. Camera also perceives the last piece on transporter and
adjusting position of robot while collecting new pieces from a new column. Due to
persistence, stopping on transporter is not optimal regardless of mechanical interlock.
Aleš Škrobar, Diplomsko delo VI
KAZALO VSEBINE
1 UVOD ........................................................................................................................ 1
2 ROBOT FANUC ......................................................................................................... 4
2.1 Predstavitev robota ............................................................................................. 4
2.2 Tehnični podatki robota ...................................................................................... 7
2.3 Upravljanje robota............................................................................................... 8
2.4 Prijemalo robota ................................................................................................11
2.5 Robotska celica .................................................................................................12
3 ROBOTSKI VID ........................................................................................................13
3.1 Teorija robotskega vida .....................................................................................13
3.2 Predstavitev kamere in značilnosti .....................................................................20
3.3 Povezava kamere v sistem Fanuc Vision ...........................................................22
3.4 Nastavitev kamere .............................................................................................23
3.5 Programska oprema in nameščanje ..................................................................24
3.6 Nastavitev sistema Fanuc Vision V-500iA/2DV ..................................................25
4 IZVEDBA ROBOTSKEGA PROGRAMA ...................................................................28
4.1 Opis naloge .......................................................................................................28
4.2 Gibanje robota ...................................................................................................34
4.3 Diagram poteka .................................................................................................37
4.4 Program za nastavljanje položaja robota s sistemom Fanuc Vision ...................39
4.5 Opis programa ...................................................................................................42
5 SKLEP ......................................................................................................................47
6 VIRI IN LITERATURA ...............................................................................................50
7 PRILOGE..................................................................................................................52
Aleš Škrobar, Diplomsko delo VII
KAZALO SLIK
Slika 2.1: Robot Fanuc M-710iC/50 .................................................................................. 4
Slika 2.2: Ročna konzola robota ....................................................................................... 6
Slika 2.3: Koordinatni sistemi robota ................................................................................. 9
Slika 2.4: Prijemala robota ...............................................................................................11
Slika 2.5: Robotska celica ................................................................................................12
Slika 3.1: Perspektivistična projekcija ..............................................................................13
Slika 3.2: Ekvivalentna ravnina slike ................................................................................14
Slika 3.3: Postavitev koordinatnih sistemov pri geometrijski projekciji robotskega vida ....17
Slika 3.4: Preslikava treh točk ..........................................................................................19
Slika 3.5: Kamera Sony XC-HR50 ...................................................................................20
Slika 3.6: Komponente kamere Sony XC-HR50 ...............................................................20
Slika 3.7: Povezava kamere v sistem Fanuc Vision .........................................................22
Slika 3.8: Zadnja stran kamere za nastavitve ...................................................................23
Slika 3.9: Kalibracija kamere ............................................................................................26
Slika 3.10: Projekcija mrežastega vzorca v kameri ..........................................................26
Slika 3.11: Različni primeri spremembe koordinatnega izhodišča robotovega prijemala ..27
Slika 4.1: Avtomatizirana linija za izdelavo zobatih vencev ..............................................29
Slika 4.2: Težave robota pri pobiranju kosov ....................................................................30
Slika 4.3: Pobiranje zobatega venca s transporterja ........................................................31
Slika 4.4: Namestitev kamere z dodatno osvetlitvijo .........................................................32
Slika 4.5: Kako kamera vidi stolpec zobatih vencev? .......................................................33
Slika 4.6: Prikaz gibanja robota ........................................................................................36
Slika 4.7: Diagram poteka robotskega programa za vision sistem....................................38
Aleš Škrobar, Diplomsko delo VIII
KAZALO TABEL
Tabela 2.1: Tehnični podatki robota Fanuc M-710iC/50 .................................................... 7
Tabela 3.1: Tehnični podatki kamere Sony XC-HR50 ......................................................21
Aleš Škrobar, Diplomsko delo IX
UPORABLJENE KRATICE IN SIMBOLI
2D dvodimenzionalna slika
3D tridimenzionalna slika
A/D analogno / digitalna pretvorba
ASCII American Standard Code for Information Interchange
DC Direct Current
fps Frames per second
HD High-definition video
IP Ingress Protection Rating, ponekod tudi
International Protection Rating
J1, J2, J3, J4, J5, J6 Oznake osi robota
PUMA Programmable Universal Manipulation Arm TCP Tool Center Point
VD Video digital
VGA Video Graphic Array
Aleš Škrobar, Diplomsko delo 1
1 UVOD
V diplomskem delu sem želel svoje pridobljeno znanje pri predmetu ROBOTIKA I in
ostalih strokovnih predmetih, ki sem jih poslušal v času študija, še nadgraditi s praktičnim
delom. Področje robotike je močno povezano in vpeto v različne industrijske procese, ki
jih med delom srečujem. Robotika je področje, ki si je v industrijskih okoljih že pred časom
izborilo svoj prostor in je z različnimi aplikacijami in novimi tehnološkimi rešitvami še
vedno v precejšnjem vzponu.
Ker sem se skozi moje delo v razvojnem podjetju srečal z zanimivo robotsko aplikacijo z
vgrajenim robotskim vidom, ki skrbi za korekcijo nastavljanja položaja robota pri pobiranju
kosov s transporterja, sem se odločil to področje podrobneje raziskati in opisati.
Za podjetje, ki je močno vpeto v avtomobilsko industrijo, smo izdelali že več popolnoma
avtomatiziranih linij za izdelavo zobatih vencev avtomobilskih vztrajnikov. Avtomatizirana
linija med sabo povezuje različne obdelovalne stroje (rezkanje, kaljenje, struženje,
merjenje). Za posluževanje med stroji je na avtomatizirani liniji nameščenih več različnih
robotov proizvajalca Fanuc. Konkretno je v aplikaciji, ki je opisana v mojem diplomskem
delu uporabljen robot Fanuc M-710iC/50 (6 osni rotacijski – antropomorfni ″PUMA1″ robot)
z nameščeno pnevmatsko prijemalno glavo prilagojeno za pobiranje zobatih vencev s
stolpca na transporterju. Na fiksnem delu, na mestu pobiranja, je nameščena robotska
kamera Sony XC-HR50, ki skrbi za nastavljanje položaja robota pri pobiranju, saj je
stolpec zobatih vencev med transportom pogosto nagnjen ali raztresen v več smeri. S
kamero tako kontroliramo nagnjenost in raztresenost stolpca in na podlagi tega
spreminjamo koordinate robota pri pobiranju. Naloga kamere je tudi tipanje zadnjega kosa
na transporterju in nastavljanje položaja robota pri pobiranju novega kosa z novega
stolpca, saj tudi ustavljanje na transporterju kljub mehanski blokadi zaradi vztrajnosti ni
optimalno.
1 Univerzalna programabilna roka industrijskega robota povzeta po človeški zgradbi roke.
Aleš Škrobar, Diplomsko delo 2
Na začetku zagona avtomatizirane linije so se na mestu pobiranja zobatih vencev s
transporterja pojavljale velike težave zaradi nagnjenosti in raztresenosti stolpca zobatih
vencev. Ti zaradi potrebe po ohlajanju po postopku kaljenja najprej potujejo skozi več
verižnih transporterjev. Na prehodih med transporterji se stolpec višine okrog 800 mm
pogosto nagne, posamezni zobati venci v njem pa se raztresejo v več smeri. Ko takšen
stolpec prispe na zadnji transporter je pogosto tako nagnjen in raztresen, da je bilo
pobiranje zobatih vencev z robotom praktično nemogoče in na liniji so se pojavljali zastoji.
Prav tako je bil stolpec večkrat zamaknjen v levo ali desno stran. Druga težava, ki se je
pojavljala, je bilo tipanje zadnjega kosa na transporterju. Tipanje prisotnosti je bilo sprva
izvedeno z zrcalno zaporo, vendar zaradi različnih debelin zobatih vencev nezanesljivo.
Posledično je zaradi tega večkrat prišlo do nenadzorovanega premika stolpcev zobatih
vencev na transporterju in tako do trka robota v stolpec. To je povzročalo poškodbe na
prijemalih robota, močno krajšanje življenjske dobe robota in seveda dolge zastoje na
liniji, ki pa so v tem času nesprejemljivi.
V ta namen je bila na tej lokaciji predlagana rešitev uporabe robotskega vida. Nad zadnjim
stolpcem na transporterju smo namestili fiksno nameščeno dvodimenzionalno kamero
Sony XC-HR50 s sistemom Fanuc Vision V500iA/2DV. S kamero gledamo in določimo
center stolpca, ki predstavlja tudi center robotovih prijemal. S tem zlahka ugotovimo koliko
je zgornji zobati venec v stolpu zamaknjen in korigiramo koordinate robota za pobiranje.
Prijemala robota so izdelana tako, da se pri pobiranju naslonijo na zgornji rob zobatega
venca. Tu koristimo senzor za merjenje sile in tako določimo globino pomika robota, ki je
potrebna za prijem kosa. V primeru, da je zobati venec zamaknjen, ga robot ne bo mogel
prijeti, zato bo izvršil prijem v prazno. Pri ponovnem poizkusu bo kamera robotu že
sporočila korekcijo zamika in prijem zobatega venca bo uspešen.
Z vlogo kamere pri pobiranju zadnjega kosa s transporterja smo se rešili nezanesljivega
delovanja zrcalne zapore. Kamera zazna, da je bil s transporterja pobran zadnji kos in
kdaj je transporter prazen. Preko digitalnih signalov sporoči transportnemu sistemu, da se
lahko izvrši premik stolpcev zobatih vencev naprej. Ko kamera ponovno zazna zobati
venec, robotu sporoči koordinate centra in podatek, da je na transporterju nov stolpec
zobatih vencev. Robot v tem primeru preide v režim za tipanje višine stolpca, v katerem
se s počasnim premikom približuje vrhu stolpca. Ko senzor za merjenje sile zazna
nastavljeno silo, robot ve da je dosegel vrh stolpca in preide v normalni režim za pobiranje
zobatih vencev s transporterja.
Aleš Škrobar, Diplomsko delo 3
V naslednjem poglavju diplomskega dela je opisan robot Fanuc M-710iC/50 (opis
mehanske enote, krmilne enote in ročne konzole), njegovi tehnični podatki in način
upravljanja (načini gibanja, ročno pomikanje, programiranje). Prav tako je zaradi lažjega
razumevanja problematike na kratko opisana izvedba robotske celice v kateri je
nameščen robot z robotskim vidom.
V tretjem poglavju je na kratko predstavljena teorija robotskega vida. Tu je podrobneje
opisana kamera s svojimi značilnostmi, način povezave kamere z robotom, postopek
kalibriranja kamere, potrebna programska oprema, način instaliranja in postopek
programiranja kamere in Fanuc Vision sistema.
Četrto poglavje predstavlja jedro diplomskega dela v katerem je podrobno predstavljena
problematika zaradi katere je bilo potrebno uporabiti robotski vid, analiza problematike,
podrobna predstavitev uporabljenih rešitev, delovanje in predstavitev programa izvedbe
robotskega vida v aplikaciji.
Aleš Škrobar, Diplomsko delo 4
2 ROBOT FANUC
2.1 Predstavitev robota
Robot serije M-710iC/50 predstavlja zadnjo generacijo 6 osnih rotacijskih
(antropomorfnih2) industrijskih robotov namenjenih za srednje obremenitve. Robot je
primeren za različne možnosti uporabe (prenašanje materiala, posluževanje obdelovalnih
centrov, nameščanje elementov, pakiranje in paletiziranje, varjenje, uporabo v livarstvu,
uporabo v okoljih z visokimi temperaturami…). Uporaba robota pri aplikacijah z zelo hitrimi
pomiki še vedno zagotavlja dobro nastavljanje položaja in ponovljivost. Robot je zgrajen z
IP67 zaščito, kar omogoča njegovo uporabo tudi v agresivnejših okoljih. Vsaka od osi
robota ima svoj reduktor. Osi v zapestju so vgrajene ena v drugo tako, da na samem
zapestju robota ni motorjev [10].
Slika 2.1: Robot Fanuc M-710iC/50
2 Antropomorfni robot je robot s samimi rotacijskimi sklepi, katerega gibanje je podobno
gibanju človeške roke [1].
Aleš Škrobar, Diplomsko delo 5
Prednosti in značilnosti robota so:
o več rešitev za namestitev zunanjih komponent (prijemalna glava, ventili,
senzorji...),
o vitka roka in gibljivo zapestje omogoča gibanje v omejenih prostorih,
o robot je zasnovan tako, da ne potrebuje protiuteži,
o možna velika bremenitev J3-osi (do 15 kg),
o pripravljena električna in pnevmatska instalacija za enostavno priključitev orodja,
o robustno zapestje omogoča prenašanje težkih obdelovancev,
o velika hitrost, ki omogoča optimalne taktne čase,
o zasnova robota s čim manj komponentami, kar poveča zanesljivost delovanja in
zmanjša možnosti okvar,
o veliko območje dosega vrha robota,
o 360° vrtenje J1-osi robota,
o omogočeno nastavljanje hitrega ustavljanja robota v oseh J1, J2 in J3 [10].
Krmilna enota robota R30iA/R-J3C je ločena od same mehanske enote robota. Na vratih
krmilne enote je nameščeno glavno stikalo za vklop napajanja robota, osnovne komandne
tipke in lučke (rdeča gobasta tipka blokadne izvedbe za izklop v sili, preklopnik s ključem
za izbiro režima delovanja robota, zelena tipka za vklop avtomatskega cikla delovanja,
modra tipka za brisanje napake, bela lučka za prikaz vklopljenega napajanja in rdeča
lučka za prikaz napake) in števec delovnih ur robota. Znotraj krmilne enote robota se
nahajajo servo regulatorji posameznih pogonov osi, krmilnik z vhodno / izhodnimi
perifernimi enotami in varnostna elektronika. Krmilnik lahko komunicira s sodobnimi
komunikacijskimi protokoli (ethernet, profibus, DeviceNet, CCLink). Varnostna elektronika
je namenjena priključitvi varnostnih signalov za vrata robotske celice, rdeče gobaste tipke
blokadne izvedbe za izklop v sili in varnostne signale za delovanje krmilne enote. Vsi
varnostni signali se priključujejo dvokanalno. Na krmilni enoti je običajno nameščena tudi
ročna konzola (Teach iPendant) za upravljanje z robotom. Z ročno konzolo ga lahko ročno
upravljamo, programiramo, spreminjamo program in parametre, spremljamo diagnostiko,
spremljamo stanja digitalnih vhodov / izhodov, simuliramo pogoje za delovanje [11].
Aleš Škrobar, Diplomsko delo 6
Na čelni strani ročne konzole najdemo naslednje pomembnejše elemente:
o rdeča gobasta tipka blokadne izvedbe za izklop v sili,
o preklopnik za vklop / izklop ročne konzole (ON / OFF),
o barvni LCD zaslon,
o funkcijske F1 – F5 za potrditev trenutne funkcije na zaslonu,
o tipka MENU za vstop v menijska okenca robota,
o tipka FCTN za priklic podmenija,
o kurzorske tipke za pomikanje med meniji na zaslonu,
o numerične tipke za vnos parametrov,
o tipka STEP za izvajanje programa po korakih,
o tipka ENTER za potrditev vstopa v izbrani meni ali za potrditev vnosa,
o tipke za ročno pomikanje robota (za vseh 6 osi J1, J2, J3, J4, J5 in J6),
o tipka HOLD za ″mehko″ ustavljaje robota,
o tipki FWD in BWD za izvrševanje programa naprej / nazaj,
o programske tipke (SELECT, EDIT, DATA) za izvršitev programskih funkcij,
o tipki ″+%″ in ″-%″ za dviganje oziroma zmanjševanje hitrosti pomikanja robota [2].
Na zadnji strani ročne konzole je sprožilec - varnostno stikalo (deadman) za ročno
pomikanje robota [2].
Slika 2.2: Ročna konzola robota
Aleš Škrobar, Diplomsko delo 7
2.2 Tehnični podatki robota
Tehnični podatki robota Fanuc M-710iC/50 so predstavljeni v spodnji tabeli [10]:
Tabela 2.1: Tehnični podatki robota Fanuc M-710iC/50
TEHNIČNI PODATEK
VREDNOST
Število osi 6 Maksimalna obremenitev 50 kg Maksimalna obremenitev J3-osi 15 kg Maksimalni doseg 2050 mm Ponovljivost ±0,07 mm Radij robota 368 mm
Območje gibanja posamezne osi robota
J1 320 ° / 360 ° / 370 ° J2 225 ° J3 440 ° J4 720 ° J5 250 ° J6 720 °
Hitrost gibanja posamezne osi robota
J1 175 °/s J2 175 °/s J3 175 °/s J4 250 °/s J5 250 °/s J6 335 °/s
Moment v zapestju J4 206 Nm J5 206 Nm J6 127 Nm
Vztrajnostni moment zapestja
J4 28 kg⋅m2 J5 28 kg⋅m2 J6 11 kg⋅m2
Mehanska zavora na vseh oseh Teža 560 kg Temperaturno območje delovanja 0 °C do +45 °C Vlažnost 75 % ali manj Povzročanje vibracij 4,9 m/s2 ali manj (0,5 G ali manj) IP zaščita telo robota IP54, zapestje IP67
Aleš Škrobar, Diplomsko delo 8
2.3 Upravljanje robota
Ročno upravljanje robota poteka preko tipk za ročno pomikanje na ročni konzoli, na kateri
moramo držati pritisnjeno stikalo sprožilca (deadman) z vključenim stikalom za
programiranje. Za gibanje robota v ročnem režimu moramo poznati koordinatne sisteme
robota, saj se ta lahko giblje v petih različnih koordinatnih sistemih med katerimi
preklapljamo s tipko COORD:
o Kartezični (pravokotni) koordinatni sistem (WORLD FRAME) je osnovni
koordinatni sistem robota, kjer so osi X, Y in Z med seboj pravokotne. Ta
koordinatni sistem je določen z zgradbo robota in se ga ne da spreminjati.
o Notranji koordinatni sistem (JOINT FRAME) predstavlja vrtišče vsake osi okrog
svojega središča in ga tudi ni možno spreminjati.
o Koordinatni sistem orodja (TOOL FRAME) lahko določimo poljubno in
predstavlja relativno gibanje okrog koordinatnega izhodišča (lahko določimo
poljubno), ki je definirano kot center orodja (Tool Center Point – TCP). Privzeti
TCP se nahaja na sredini prirobnice J6-osi. Koordinatni sistem orodja lahko
določimo po metodi treh točk (definiramo tri položaje iz treh smeri), metodi šestih
točk (definiramo tri položaje iz treh smeri in dodatne tri točke, ki definirajo smer) ali
z direktnim vnosom (potrebujemo natančne podatke proizvajalca orodja).
o Uporabniški koordinatni sistem (USER FRAME) je prav tako kartezični
(pravokotni) koordinatni sistem, le da mu lahko izhodišče določimo poljubno, ni pa
to nujno in obnaša se kot kartezični koordinatni sistem. Uporabniški koordinatni
sistem določimo po metodi treh točk (definiramo tri položaje iz treh smeri).
o JOG koordinatni sistem (JOG FRAME) se uporablja za lažje premikanje robota v
ročnem režimu in se uporablja kadar je ravnina gibanja različna od privzete [2] in
[5].
Aleš Škrobar, Diplomsko delo 9
S pomočjo koordinatnih sistemov določamo položaj vrha robota v prostoru oziroma orodja
robota v prostoru, kjer je njegova lokacija določena s koordinatami X, Y in Z v milimetrih
(mm) in orientacijami R (nagib – roll), P (naklon – pitch) in Y (odklon – jaw), ki
predstavljajo rotacije okrog X, Y in Z v stopinjah (°). Vrh robota predstavlja sečišče vseh
treh osi, ki predstavljajo orientacijo robota in središčna točka prijemala robota skupaj z
orientacijo robota [5] in [6].
Slika 2.3: Koordinatni sistemi robota
Aleš Škrobar, Diplomsko delo 10
Pred začetkom programiranja poti gibanja robota kreiramo robotski program in ga
poimenujemo. Za kreiranje robotskega programa uporabimo učni postopek robota (teach-
in), kjer robota ročno vodimo med zastavljenimi in ključnimi točkami na poti gibanja. V
vsaki točki določimo način gibanja robota do naslednje ciljne točke. Načini gibanja so
naslednji:
o JOINT – izračun gibanja po najhitrejši trajektoriji,
o LINEAR – pomik v naslednjo točko se izvede linearno,
o CIRCULAR – TCP med gibanjem opiše lok skozi tri točke [2] in [5].
V vsaki točki določimo tudi hitrost gibanja robota v naslednjo točko, ki pa je odvisna od
izbire načina gibanja. Pri gibanju po izračunani najhitrejši trajektoriji (JOINT) se simultano
premikajo vse osi, hitrost gibanja pogojuje najpočasnejša os, hitrost pa je določena z
odstotkom skupne vrednosti hitrosti. Pri linearnem gibanju (LINEAR) in krožnem gibanju
(CIRCULAR) so hitrosti določene v enotah mm/s, cm/min, in/min ali °/s. Način, kako bo
robot dosegel posamezno točko, določimo na dva načina:
o z natančnim določanjem položaja (FINE) v katerem robot natančno doseže položaj
in se v položaju pred gibanjem do naslednjega položaja ustavi in
o z neprekinjenim določanjem položaja (CONTINOUS), kjer nastavljeni položaj
predstavlja vmesno točko pomika robota in jo ta obide brez ustavljanja. Kako
natančno se robot približa tej točki nastavimo med 0 in 100 [5].
Aleš Škrobar, Diplomsko delo 11
2.4 Prijemalo robota
Robot za pobiranje zobatih vencev uporablja tipsko triprsto pnevmatsko prijemalno glavo
proizvajalca Schunk na kateri so nameščena prilagojena triprsta prijemala za prijem
zobatega venca z zunanje strani. Prijemalna glava je pnevmatsko krmiljena, za kontrolo
stanja prijemala (prijemalo odprto / zaprto) pa sta nameščena dva magnetna (reed)
stikala.
Slika 2.4: Prijemala robota
Aleš Škrobar, Diplomsko delo 12
2.5 Robotska celica
Robotska celica predstavlja zaključeno skupino robotov, obdelovalnih strojev in dodajalnih
naprav, v kateri se proizvajajo določeni sestavni deli, izdelki ali delovne operacije [1].
Robotska celica je sestavljena iz verižnega transporterja, robota 4 z robotskim vidom
(kamera na fiksnem delu), stružnice, merilnice, robota 5 in izhodne palete. Stolpec zobatih
vencev se ustavi na koncu verižnega transporterja nad katerim je nameščena robotska
kamera. Ko ta zazna prisotnost zobatih vencev sporoči robotu 4 center zobatega venca.
Robot 4 začne pobirati zobate vence s stolpca in jih vstavlja v obdelavo v stružnico. Po
vsakem odlaganju kosa v stružnico počaka na vmesnem položaju, da stružnica odda že
obdelani kos, ki ga nato odloži na odlagalno mesto v merilnici. Zobati venec nato potuje
skozi merilne postaje v merilnici do konca, kjer ga pobere robot 5 in odloži na eno od
izhodnih palet.
Robotska celica je varovana z zaščitno ograjo. Na mestu vstopa v robotsko celico so
nameščena vrata varovana z varnostnim stikalom, ki je direktno vezano na varnostni vhod
(FENCE) varnostne elektronike robota. V primeru odprtja vrat se pomik robota takoj
ustavi.
Slika 2.5: Robotska celica
Aleš Škrobar, Diplomsko delo 13
3 ROBOTSKI VID
3.1 Teorija robotskega vida
Robotski vid predstavlja uporabo senzorjev vida (kamera) in računalnika za zajemanje,
interpretacijo in procesiranja vidne informacije. V robotiki je na osnovi vidne informacije
pomembno vodenje robotske roke. Z uporabo robotskega vida se izognemo natančnemu
nastavljanju položaja predmetov, s katerimi manipulira robot. Ravno ta razlog je bil ključen
tudi pri uporabi robotskega vida v naši aplikaciji. Naloga robotskega vida je prepoznavanje
geometrije predmeta z digitalne slike. Kot osnovo robotskega vida predstavlja zveza med
koordinatami točk dvodimenzionalne (2D) slike p[u,v] iz kamere in koordinatami točk
tridimenzionalne (3D) slike P[xc, yc, zc] iz resničnega okolja. Iz osnov optike poznamo, da
se pri projekciji točke preslikajo na isto ravnino preko premic, ki se sekajo v skupni točki
(središče projekcije). Ta točka se nahaja v središču objektiva kamere. S koordinatnim
sistemom opišemo tudi lego kamere v prostoru. Preslikavo lahko predstavimo s
poenostavljenim matematičnim modelom kamere, kjer objektiv obravnavamo kot luknjico
skozi katero priteka svetloba na ravnino slike (slika 3.1). Takšno projekcijo imenujemo
perspektivistična projekcija [1].
Slika 3.1: Perspektivistična projekcija
Aleš Škrobar, Diplomsko delo 14
Pri kinematiki robotskih mehanizmov smo na vsako togo telo postavili koordinatni sistem.
Prav tako storimo tudi s kamero. S tem lahko preko lege izbranega koordinatnega sistema
opisati položaj kamere. Os zc koordinatnega sistema kamere smo usmerili vzdolž optične
osi, izhodišče pa postavili v središče projekcije. Po metodi desnosučnega koordinatnega
sistema določimo še osi xc (vzporedna z vrsticami slike) in yc (vzporedna s stolpci slike).
Razdalja med lečo in dvodimenzionalno sliko se imenuje goriščna razdalja fc. Ravnina
dvodimenzionalne slike kamere je za središčem projekcije, zato je goriščna razdalja
negativna. To lahko poenostavimo tako, da dvodimenzionalno sliko kamere prestavimo
pred središče projekcije in dobimo ekvivalentno dvodimenzionalno ravnino slike, ki je
simetrična in vzporedna z ravnino slike (slika 3.2), razlika pa je samo v predznaku
goriščne razdalje [1].
Slika 3.2: Ekvivalentna ravnina slike
Na ravnino slike pripnemo koordinatni sistem pri katerem izhodišče postavimo v
presečišče optične osi z ravnino slike, osi x in y pa sta vzporedni osem xc in yc
koordinatnega sistema kamere. S tem je kamera predstavljena z dvema koordinatnima
sistemoma: koordinatni sistem kamere in koordinatni sistem ravnine slike [1].
Preslikavo predmeta iz 3D robotskega delovnega prostora v 2D slikovni prostor zapišemo
v matrični obliki, ki predstavlja direktno projekcijo robotskega vida:
0 0 0
0 0 0
1 0 0 1 01
c
c
c
c
c
xfx
ys y f
z
= ⋅
, (3.1)
Aleš Škrobar, Diplomsko delo 15
kjer je:
o s je faktor skaliranja, ki ga ne poznamo;
o vektor [x y 1]T predstavlja projicirane koordinate točke p ali q v koordinatnem
sistemu slike – inverzna projekcija robotskega vida in
o vektor [xc, yc, zc, 1]T predstavlja koordinate originalnih točk P ali Q v koordinatnem
sistemu kamere – inverzna projekcija robotskega vida [1].
Zaradi lažjega programiranja in ker je slika v kameri razdeljena na piksle (najmanjši
element rastrske računalniške slike), uvedemo indeksni koordinatni sistem. Vrednost
piksla dobimo z A/D pretvorbo izhoda senzorja, ki zajema osvetljenost geometrijske točke
piksla pravokotnika z dimenzijami Dx in Dy. Shranjena slika se opiše z matriko vrednosti
pikslov po vrstičnih in stolpčnih indeksih u in v, ki predstavljata indeksni koordinatni sistem
in sta brez enot. Izhodišče indeksnega koordinatnega sistema predstavljata točki u0 in v0.
Preslikavo iz koordinatnega sistema ravnine slike x, y v ravnino slike indeksnega
koordinatnega sistema zapišemo z enačbo:
0
10
10 0
1 10 0 1
x
y
uD
u x
v yD
= ⋅
, (3.2)
kjer sta zvezi med koordinatnim sistemom [x,y] in [u,v] naslednji:
0
0
x
y
xu u
D
yv v
D
= +
= +
, (3.3)
zvezi x
x
D in
y
y
D pa pomenita število digitalnih pretvorb vzdolž vrstice oziroma stolpca [1].
Aleš Škrobar, Diplomsko delo 16
Z združitvijo obeh enačb (3.1) in (3.2) dobimo naslednji zapis:
00
10 00
0 0 01
0 0 0 0 0 0 0 0
1 0 0 1 01 1 10 0 1 0 0 1 0
c
c c cxxc
c c ccc
y c y c c
fuu
x x xDDfu
y y yfs v f P
D z D z z
= ⋅ ⋅ = ⋅ =
(3.4)
kjer je:
0
0
0 0
0 0
0 0 1 0
x
y
f u
P f v
=
in (3.5)
cx
x
c
y
y
ff
D
ff
D
=
=
, (3.6)
pri tem matrika P predstavlja perspektivistično projekcijo iz koordinatnega sistema kamere
v pripadajoči indeksni koordinatni sistem, spremenljivki fx in fy pa goriščni razdalji kamere
vzdolž osi x in y. Parametre fx, fy, u0 in v0 imenujemo tudi lastne parametre kamere, ki pa
jih je zaradi netočnih specifikacij kamere skoraj nemogoče poznati, zato pa jih ocenimo s
procesom kalibracije kamere. Parametra Dx in Dy izračunamo iz resolucije digitalne slike rx
in ry. Tako lahko iz dveh parametrov izračunamo širino w in višino h slike z naslednjima
enačbama [1]:
x x
y y
w r D
h r D
=
=. (3.7)
Aleš Škrobar, Diplomsko delo 17
Na podlagi parametrov kamere (goriščna razdalja kamere fc, resolucija digitalne slike (rx in
ry) in kotu odprtine v vertikalni θv in horizontalni θu smeri), ki jih poda proizvajalec
izračunamo velikost piksla z naslednjima enačbama [1]:
2tan
2
2tan
2
c ux
x
c vy
y
fD
r
fD
r
θ
θ
=
=
. (3.8)
Na naslednji sliki (slika 3.3) je prikazana preslikava točke Q iz 3D robotskega delovnega
prostora v točko q v 2D prostoru slikovne ravnine glede na referenčni koordinatni
sistem robota [1].
Slika 3.3: Postavitev koordinatnih sistemov pri geometrijski projekciji robotskega vida
Preslikava točke Q iz referenčnega koordinatnega sistema xr, yr, zr v koordinatni sistem
kamere xc, yc, zc je podana z naslednjo enačbo:
11
c r
c r
rc
x x
y yM
zz
=
, (3.9)
Aleš Škrobar, Diplomsko delo 18
kjer matrika M predstavlja matriko 4 x 4 preslikave iz referenčnega koordinatnega sistema
v koordinatni sistem kamere oziroma položaj in orientacijo fiksno nameščene kamere v
prostoru. Z združitvijo obeh enačb (3.4) in (3.9) dobimo enačbo direktne projekcijske
preslikave:
11 1
r r
r r
r r
x xu
y ys v P M H
z z
= ⋅ =
, (3.10)
kjer so koeficienti matrike P lastni parametri kamere, koeficienti matrike M pa zunanji
parametri kamere. Matriko H imenujemo kalibracijska matrika kamere. Zgornjo enačbo
uporabimo pri zapisu navidezne kamere v simulacijskih programih ali pri kalibraciji
kamere, kjer določimo lastne in zunanje parametre kamere [1].
Za določitev koordinat [xr, yr, zr] pri znanih koordinatah slike točke in kalibracijske matrike
H vpeljemo inverzno projekcijsko preslikavo. Faktor skaliranja s je še vedno neznan.
Za eno točko imamo tri enačbe in štiri neznanke. Rešitev poizkusimo poiskati s tremi
točkami (slika 3.4). Za tri točke (A, B, C) poznamo razdalje med njimi in njihove koordinate
(xri,yri,zri), i = 1,2,3. Koordinate pripadajočih točk so (ui,vi), i = 1,2,3. Pri tem zapišemo
direktno projekcijsko preslikavo v obliki zapisa:
11
ri
i
ri
i
ri
xu
ys v H
z
=
, (3.11)
iz katerega dobimo 9 enačb in 12 neznank. Do rešitve pridemo samo, če dodamo še tri
enačbe, ki pa jih lahko dobimo iz velikosti trikotnika, ki ga omejujejo točke A, B in C.
Dolžine stranic AB, BC in CA nadomestimo z razdaljami l12, l23 in l31 [1].
Aleš Škrobar, Diplomsko delo 19
Dobimo naslednje enačbe:
2 2 2 2
12 1 2 1 2 1 2
2 2 2 2
23 2 3 2 3 2 3
2 2 2 2
31 3 1 3 1 3 1
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
r r r r r r
r r r r r r
r r r r r r
l x x y y z z
l x x y y z z
l x x y y z z
= − + − + −
= − + − + −
= − + − + −
, (3.12)
s katerimi lahko pridemo do rešitve. Ker so zadnje tri enačbe nelinearne, jih moramo
reševati numerično s posebnim računalniškim programom (Matlab) [1].
Slika 3.4: Preslikava treh točk
Aleš Škrobar, Diplomsko delo 20
3.2 Predstavitev kamere in značilnosti
V aplikaciji smo uporabili dvodimenzionalno kamero Sony XC-HR50. Kamero lahko
uporabimo v najrazličnejših aplikacijah, še posebno kjer je potrebna hitrost. Vgrajena je v
robustno ohišje, ki omogoča zadostno odpornost v industrijskih okoljih in enostavno
namestitev. Primerna je za uporabo v zaprtih in čistih prostorih. Kamera uporablja VGA
standard z zadovoljivo resolucijo kamere 659 x 494 pikslov in hitrostjo 60 fps (frames per
second) [9].
Slika 3.5: Kamera Sony XC-HR50
Pri uporabi kamere Sony-HR50 potrebujemo še kabel za povezavo kamere ustrezne
dolžine (2 – 25 m), adapter kamere z napajalnikom DC-700/700CE, nosilec kamere in
ustrezen objektiv VCL-50Y-M [7].
Slika 3.6: Komponente kamere Sony XC-HR50
Aleš Škrobar, Diplomsko delo 21
Tehnični podatki kamere Sony XC-HR50 so predstavljeni v spodnji tabeli [9]:
Tabela 3.1: Tehnični podatki kamere Sony XC-HR50
TEHNIČNI PODATEK
VREDNOST
Resolucija kamere 659 (H) x 494 (V) Število vrstic 648 (H) x 494 (V) - VGA Velikost celice 7,4 µm (H) x 7,4 µm (H) Frekvenca izhodnega signala 59,94 Hz Zunanji signali HD/VD (2 – 5 Vp-p, 75 Ω) Odzivnost manj kot 20 ns Video izhod 1,0 Vp-p, negativen, 75Ω Horizontalna resolucija 500 vrstic Občutljivost 400 lx (F 5.6, γ=OFF, FIX GAIN (0 dB)) Minimalna osvetlitev 1.0 lx (F 1.4, γ=OFF, GAIN (+18 dB)) Razmerje signal / šum 58 dB Ojačenje 0 do 18 dB Beli šum 820 mV ± 70 mV
Hitrosti komunikacije 1/100, 1/125, 1/500, 1/1000, 1/2000, 1/4000, 1/10000, 1/15000, 1/30000 s
Zunanje prožilne hitrosti 1/100, 1/125, 1/250, 1/500, 1/1000, 1/2000,
1/4000, 1/10000, 1/25000, 1/50000, 1/100000 s
Zunanje proženje 2 µs do 250 µs, vhodna impedanca 10 kΩ Napajanje 12 V DC Moč 1,8 W Dimenzije 29 x 29 x 30 mm Teža 50 g Delovna temperatura -5 do +45 °C Temperatura shranjevanja -30 do +60 °C Vlažnost za obratovanje 20 do 80 % Vlažnost za shranjevanje 20 do 95 % Povzročanje vibracij 20 Hz do 200 Hz
Aleš Škrobar, Diplomsko delo 22
3.3 Povezava kamere v sistem Fanuc Vision
Pri povezavi kamere XC-HR50 s kablom do dolžine 10 m uporabimo adapter z
napajalnikom Sony DC-700CE. Kamero povežemo z originalnimi kabli preko adapterja na
sistem Fanuc Vision V-500iA/2DV, ki predstavlja vgrajeno vmesniško kartico Aval Data
APC-3322 v računalniku. Za komunikacijo med računalnikom in krmilno enoto robota
R30iA/R-J3C uporabimo eno od standardnih povezav ethernet ali RS-232-C. Povezavo
sistema robotskega vida Fanuc Vision predstavlja spodnja slika [3].
Slika 3.7: Povezava kamere v sistem Fanuc Vision
Aleš Škrobar, Diplomsko delo 23
3.4 Nastavitev kamere
Kamero pripravimo na uporabo z nastavitvami na zadnjem delu kamere, kar je prikazano
na spodnji sliki.
Slika 3.8: Zadnja stran kamere za nastavitve
Nastavljamo lahko naslednje:
o Na stikalu za nastavitev hitrosti in režima (položaj 2) nastavimo:
o bite 1 – 4 nastavimo na OFF (normalni odzivni čas kamere),
o bit 5 = OFF (visoka stopnja skeniranja vključena),
o bite 6 = OFF, 7 = ON in 8 = ON (stalno proženje),
o bit 9 = OFF (nastavitev ojačenja je izklopljena),
o bit 0 = OFF (povezovalni način je izklopljen).
o Na stikalu za izbiro HD / VD vhodno / izhodnih signalov (položaj 4) izberemo EXT
– zunanji signali.
o Potenciometra za nastavitev ojačenja ne spreminjamo.
o Če uporabljamo adapter Sony DC-700CE izključimo 75 Ω zaključni upor tako, da
stikalo 75 Ω (položaj 5) prestavimo na OFF [3] in [7].
Aleš Škrobar, Diplomsko delo 24
3.5 Programska oprema in nameščanje
Za delovanje sistema Fanuc Vision V-500iA/2DV moramo v računalniku namestiti nekaj
programske opreme. Namestiti je potrebno gonilnike za vmesniško kartico Aval Data
APC-3322 in program Fanuc Vision V-500iA/2DV, ethernet komunikacijo in nekatere
opcijske programe (vhodno / izhodni vmesnik, če je v uporabi). Pri nameščanju
upoštevamo naslednji vrstni red:
o na računalniku mora biti nameščen operacijski sistem Windows,
o vgradimo vmesniško kartico Aval Data APC-3322 in namestimo njene gonilnike,
o namestimo program vmesniške kartice Aval Data APC-3322,
o vgradimo vhodno / izhodni vmesnik in namestimo potrebne gonilnike (opcija),
o namestimo program za vhodno / izhodne vmesnike (opcija),
o namestimo komunikacijske programe,
o namestimo program Fanuc Vision V-500iA/2DV [4].
Za pravilno in nemoteno delovanje sistema je potrebno upoštevati nekaj pravil, ki jih
opisuje ta odstavek. Na računalniku nastavimo 32 bitno kakovost barve z resolucijo 1024
x 768. Pri nastavitvah napajalne sheme računalnika izklopimo vse možnosti izklopov, prav
tako izklopimo funkciji požarnega zidu in avtomatske nadgradnje programov. Za ethernet
komunikacijo med krmilno enoto robota in računalnikom najprej povežemo obe enoti z
ethernet kablom, nato nastavimo IP naslova obeh enot (za krmilnik robota 172.16.0.1 in
za računalnik 172.16.0.03 z masko 255.255.0.0). Pri nameščanju vmesniške kartice Aval
Data APC-3322 in Fanuc Vision V-500iA/2DV ni nekih posebnih zahtev, zato samo
sledimo čarovniku za nameščanje, ki nas uspešno vodi skozi postopek nameščanja.
Vhodno / izhodnih vmesnikov pri tej aplikaciji nismo uporabljali, zato jih ni potrebno
nameščati. V primeru, da bi se odločili za njihovo uporabo si pri nameščanju pomagamo s
čarovnikom za nameščanje [4].
Aleš Škrobar, Diplomsko delo 25
3.6 Nastavitev sistema Fanuc Vision V-500iA/2DV
Ko na računalniku zaženemo program Fanuc Vision V-500iA/2DV, se nam na monitorju
že pokaže živa slika s kamere. S pomočjo programskih ukazov lahko to sliko zajamemo v
računalnik ali prikazujemo živo sliko. Prikazano sliko lahko povečamo ali manjšamo,
vendar ne manj od originalne slike, prav tako lahko povečano sliko za pregled detajlov
premikamo. Pri zajemu slike iz kamere vision sistem robotu posreduje položaj centra
objekta in jo zapiše v njegov register. Ker nastavljanje položaja robota temelji na položaju
objekta, mora biti ta položaj znotraj koordinatnega sistema robota. To pomeni, da mora
vision sistem pretvoriti položaj objekta iz koordinatnega sistema slikovnega prostora
kamere v referenčni koordinatni sistem robota. Pri tem je pomembna kalibracija kamere,
saj nam ta podatek pove dejanski položaj kamere in njeno območje gledanja [4].
Za kalibracijo kamere imamo na razpolago dva načina: enostavna 2-točkovna kalibracija
ali kalibracija z mrežastim vzorcem. Mi smo uporabili slednjo, ki je natančnejša. Kalibracija
z mrežastim vzorcem se uporablja za kalibracijo kamere pri dvo-dimenzionalnih 2D in tri-
dimenzionalnih 3D aplikacijah. Kot osnova služi posebno kreirana mreža, ki jo postavimo
v vidno polje kamere. Mrežo izberemo glede na velikost objekta, saj je priporočljivo, da je
kalibracijska mreža večja od objekta, ki ga bomo s kamero zaznavali. Pred kalibracijo
nastavimo še razmik med točkami izbranega mrežastega vzorca. Ko mrežasti vzorec
postavimo v vidno polje kamere, to sliko zajamemo in kliknemo na funkcijo ″Find Grid
Pattern″, da se najdene točke v mreži označijo (slika 3.9). Ko je mreža pravilno zaznana,
se na štirih večjih krogih pojavi rdeči kurzor v obliki kroga s križcem. Če to ni tako,
postopek kalibracije ponavljamo tako dolgo, da to dosežemo. V okencu za nastavitev
mreže se pojavijo koordinate kalibrirane kamere znotraj koordinatnega sistema robota.
Položaj in orientacija kamere se direktno prebere v formatu XYZWPR (položaj X, Y, Z v
milimetrih in orientacije W-jaw (odklon), P-pitch (naklon), R-roll (nagib) v stopinjah). Poleg
položaja in orientacije kamere s postopkom kalibracije dobimo tudi nekatere pomembne
parametre za kamero, kot so skala kamere (mm/piksel), faktor skaliranja, center slike
(piksel) in velikost piksla [4].
Aleš Škrobar, Diplomsko delo 26
Slika 3.9: Kalibracija kamere
Spodnja slika prikazuje projekcijo štirih točk iz mrežastega vzorca za kalibracijo, ki
določajo položaja osi X in Y v kameri. Koordinatni sistem mrežastega vzorca je pri tem
vzporeden koordinatnemu sistemu mrežastega vzorca v kameri [8].
Slika 3.10: Projekcija mrežastega vzorca v kameri
Aleš Škrobar, Diplomsko delo 27
V naslednjem koraku moramo nastaviti vidno polje kamere. Tu s kamero zajamemo živo
sliko objekta in sliko zajamemo. Vidno polje kamere nastavljamo s funkcijo ″Train″. Po
vklopu funkcije se pojavi rdeči kvadratek, ki ga premaknemo v center objekta (zobatega
venca), stranice pa povlečemo tako, da kvadratek razširimo toliko, kot naj bi bilo veliko
vidno polje kamere. Če se v vidnem polju kamere poleg objekta pojavijo tudi drugi
elementi, ki bi lahko zmotili pravilno delovanje vision sistema, s posebnim orodjem
izločimo okolico ali elemente, ki jih ne želimo zaznavati. Ko vklopimo funkcijo se slika
znotraj označenega vidnega polja obarva rdeče, nato preprosto z miško pobarvamo polja,
ki jih želimo gledati. Ostala polja, ki ostanejo obarvana rdeče, ne bodo zajeta v vidno polje
kamere. S to funkcijo tudi odstranimo prisotnost šumov v sliki [4].
Na koncu nastavitev sistema Fanuc Vision moramo določiti še funkcijo delovanja vision
sistema. V okencu ″Vision Process″ izberemo hitrost zajemanja slike, način shranjevanja
in tip izhodnega podatka. Pri izbranem izhodu za 2D slike, položaja X in Y predstavljata
položaj objekta, rotacija R-roll (nagib) pa orientacijo objekta. Vrednosti položaja Z in
orientacij W-jaw (odklon) in P-pitch (naklon) so vedno 0. Z nastavitvijo sistema Fanuc
Vision določimo položaj centra objekta in njegovo orientacijo, ki jo program modelira in
posreduje robotu. Ta center nato predstavlja tudi center robotovih prijemal. Pri zaznavanju
zobatega venca v 2D sliki bosta aktualni samo koordinati centra, medtem ko zaradi
okrogle oblike zobatega venca orientacija ni pomembna. Center zobatega venca se bo
spreminjal glede na različne premere zobatega venca in glede na zamike, ki pa morajo biti
znotraj vidnega polja kamere. Slika 3.11 prikazuje primere sprememb koordinatnega
izhodišča robotovega prijemala [4].
Slika 3.11: Različni primeri spremembe koordinatnega izhodišča robotovega prijemala
Aleš Škrobar, Diplomsko delo 28
4 IZVEDBA ROBOTSKEGA PROGRAMA
4.1 Opis naloge
Kot je bilo omenjeno že v uvodu, je robotska aplikacija z vgrajenim robotskim vidom
namenjena korekciji nastavljanja položaja robota pri pobiranju zobatih vencev s
transporterja, kot del avtomatizirane linije za obdelavo zobatih vencev. Avtomatizirana
linija je zgrajena precej kompleksno, saj povezuje različne obdelovalne stroje s petimi
roboti Fanuc v treh robotskih celicah, ki morajo imeti med sabo usklajene taktne čase, saj
skupni taktni čas obdelave naj nebi presegal 18 sekund. Robotske celice linije so
naslednje:
o robotsko celico 1 sestavlja robot 1 in rezkalni stroj Liebherr,
o robotsko celico 2 sestavljajo robot 2, robot 3, brusilna enota in kalilni stroj Eldec,
o robotsko celico 3 sestavljajo robot 4, robot 5, stružnica Okuma, merilnica in
avtomatske izhodne palete.
Na začetku linije je nameščen robot 1, ki ima vgrajen sistem Fanuc Vision s kamero
nameščeno na roki robota in skrbi za nastavljanje položaja robota 1 pri pobiranju
neobdelanih kosov iz palete. Robot 1 ima nameščeno prilagojeno prijemalno glavo za
pobiranje obročev do višine stolpca 250 mm. Robot 1 pobrani stolpec odloži v čeljusti
glave rezkalnega stroja Liebherr. Po odmiku robota 1 iz delovnega območja rezkalnega
stroja, se ta zasuče in robot 1 lahko iz drugih čeljusti pobere rezkane kose zobatih vencev
in jih odloži na posebno odlagalno mesto.
Zobate vence na odlagalnem mestu posamezno pobira robot 2. Robot 2 vsak kos odnese
v brusilno enoto, kjer ga na posebni brusilni glavi obrusi in ščetka, ter ga odloži na glavo v
kalilnem stroju Eldec. Tu se zobati venec kali. Po končanem kaljenju robot 3 iz kalilnega
stroja pobere zobati venec in ga odloži na verižni transporter 1. Robot 3 nalaga zobate
Aleš Škrobar, Diplomsko delo 29
vence v stolpec do višine 800 mm. Ko je višina stolpca dosežena, se transporterji
premaknejo za en položaj naprej.
Transportni sistem je zgrajen iz štirih verižnih transporterjev. Njegova naloga je v
nekakšnem zalogovniku stolpcev zobatih vencev, ki se morajo po postopku kaljenja dovolj
ohladiti pred nadaljnjo obdelavo v stružnici in kasneje za merjenje dimenzijske ustreznosti.
Posamezne zobate vence s konca verižnega transporterja 4 pobira robot 4 z vgrajenim
sistemom Fanuc Vision, ki skrbi za nastavljanje položaja robota 4 pri pobiranju zobatih
vencev s stolpca. Ta aplikacija je tudi podrobneje razdelana in predstavljena v tem
diplomskem delu. Robot 4 pobere zobati venec s stolpca na transporterju 4 in ga vstavi v
obdelavo v stružnico Okuma. Po vsakem odlaganju kosa v stružnico robot 4 počaka na
vmesnem položaju, da stružnica odda že obdelani kos in ga nato odloži na odlagalno
mesto v merilnici. V merilnici se na treh merilnih postajah izvedejo dimenzijske meritve
zobatega venca (zunanji in notranji premer, krožnost, premer naseda, debelina zobatega
venca), ter vizualna kontrola (razpoka zvara, igla na zobu, ustreznost zobljenja), ki se
izvaja na spodnji in zgornji površini zobatega venca. Na koncu se ustrezni venci signirajo
z ustrezno karakteristično kodo. Na tem položaju vsak zobati venec prevzame robot 5, ki
ustrezne zobate vence odlaga po slojih na več stolpcev na eno od izhodnih palet. Ko
robot 5 napolni izhodno paleto, se ta pomakne izven linije, zobate vence pa začne
nalagati na naslednjo izhodno paleto, da lahko posluževalec brez ustavljanja linije
zamenja paleto. Robot 5 iz linije izloča vse neustrezne zobate vence in sicer na zato
pripravljenih pet odlagalnih mest po določenih kriterijih napak.
Slika 4.1: Avtomatizirana linija za izdelavo zobatih vencev
Aleš Škrobar, Diplomsko delo 30
Pri pobiranju zobatih vencev z robotom 4 iz transporterja 4 so se pojavljale velike težave
zaradi nagnjenosti in raztresenosti stolpca zobatih vencev. Ti zaradi potrebe po ohlajanju
po postopku kaljenja najprej potujejo skozi več verižnih transporterjev. Na prehodih med
transporterji se stolpec višine okrog 800 mm pogosto nagne, posamezni zobati venci v
njem pa raztresejo v več smeri. Ko takšen stolpec prispe na zadnji transporter je pogosto
precej nagnjen, kosi v njem pa raztreseni, kar je oteževalo pobiranje zobatih vencev z
robotom, pojavljali pa so se precejšnji zastoji na liniji. Težava pri pobiranju je nastajala tudi
zaradi pogostih zamikov celega stolpca v levo ali desno stran. Druga težava se je
pojavljala pri zaznavanju zadnjega kosa na transporterju. Tipanje prisotnosti je bilo sprva
izvedeno z zrcalno zaporo, vendar zaradi različnih debelin zobatih vencev nezanesljivo.
Posledično je zaradi tega prihajalo do nenadzorovanega premika stolpcev zobatih vencev
na transporterjih naprej in premika stolpca v točki pobiranja. Pogosto so se stolpci
nakopičili eden do drugega, kar je povzročalo trk robota v stolpec, s tem pa poškodbe na
prijemalih robota in posledično močno krajšanje življenjske dobe robota. Tudi zastoji linije,
ki so se s tem povzročali so v tem tempu proizvodnje nesprejemljivi.
Slika 4.2: Težave robota pri pobiranju kosov
V ta namen je bila na tej lokaciji predlagana rešitev uporabe robotskega vida. Nad zadnjim
stolpcem na transporterju smo namestili fiksno nameščeno dvodimenzionalno kamero
Sony XC-HR50 s sistemom Fanuc Vision V500iA/2DV. S kamero gledamo in določimo
center stolpca, ki predstavlja tudi center robotovih prijemal. S tem zlahka ugotovimo koliko
je zgornji zobati venec v stolpu zamaknjen in korigiramo koordinate robota za pobiranje.
Aleš Škrobar, Diplomsko delo 31
Prijemala robota so izdelana tako, da se pri pobiranju naslonijo na zgornji rob zobatega
venca. Tukaj koristimo senzor za merjenje sile, in tako določimo globino pomika robota, ki
je potrebna za prijem kosa. V primeru, da je zobati venec zamaknjen, bo kamera robotu
pred pobiranjem že sporočila korekcijo zamika in prijem zobatega venca bo uspešen.
Slika 4.3: Pobiranje zobatega venca s transporterja
Z vlogo kamere pri pobiranju zadnjega kosa s transporterja smo se rešili nezanesljivega
delovanja zrcalne zapore. Kamera zazna, da je bil s transporterja pobran zadnji kos in
kdaj je transporter prazen. Preko digitalnih signalov sporoči transportnemu sistemu, da se
lahko izvrši premik stolpcev zobatih vencev naprej. Ko kamera ponovno zazna zobati
venec, robotu sporoči koordinate centra in podatek, da je na transporterju nov stolpec
zobatih vencev. Robot v tem primeru preide v režim za tipanje višine stolpca, v katerem
se s počasnim premikom približuje vrhu stolpca. Ko senzor za merjenje sile zazna
nastavljeno silo robot ve, da je dosegel vrh stolpca in preide v normalni režim za pobiranje
zobatih vencev s transporterja.
Pri uporabi robotskega vida smo sicer naleteli na nekaj novih, manjših težav, ki pa smo jih
brez večjih težav uspešno odpravili.
Aleš Škrobar, Diplomsko delo 32
Največ motenj na zanesljivo delovanje sistema Fanuc Vision je povzročalo spreminjanje
svetlobe okolice (sonce, noč, oblačno vreme). To težavo smo odpravili z dodatno
osvetlitvijo z belo svetlobo, ki poudarja črno barvo objekta in zagotavlja konstantne pogoje
za kamero. Druga težava povezana s svetlobo pa je nastala pri pojavljanju sence objekta.
Vpliv sence smo uspešno odpravili z namestitvijo rdeče svetlobe. Da smo še dodatno
zmanjšali vpliv svetlobe iz okolice, smo kamero z obema osvetlitvama namestili v zaščitni
okrov, ki preprečuje direktni vstop svetlobe do kamere.
Slika 4.4: Namestitev kamere z dodatno osvetlitvijo
Nekaj začetnih težav na zanesljivo delovanje vision sistema je predstavljalo tudi
spreminjanje višine stolpca zobatih vencev med pobiranjem. Ker je razdalja med kamero
in transporterjem fiksna, vmes pa se spreminja višina stolpca za vsaj 800 mm, kamera
stolpec vidi kot stožec katerega premer se z oddaljenostjo od kamere manjša. To kamera
z nižanjem stolpca zobatih vencev prepozna kot dva zobata venca z drugačnima
premerom vendar istim centrom (vzporednost). Težava se pojavi pri zamiku enega od
zobatih vencev v stolpcu glede na drugega, kar pomeni dva različna centra objekta. V tem
primeru kamera na podlagi obeh centrov izračuna novi center katerega koordinate
posreduje robotu kot spremenjeni center pobiranja, ki pa ni pravilen in robot ni mogel
prijeti kosa pravilno. Ta pogrešek smo zmanjšali tako, da smo v več slojih npr. na vsake
Aleš Škrobar, Diplomsko delo 33
200 mm uporabili drugo kalibracijsko masko in s tem zmanjšali vpliv spremembe centra
objekta glede na razdaljo med kamero in objektom. S tem smo zagotovili zadostno
zanesljivost pobiranja zobatih vencev s stolpca.
Slika 4.5: Kako kamera vidi stolpec zobatih vencev?
Aleš Škrobar, Diplomsko delo 34
4.2 Gibanje robota
Gibanje robota je prikazano na sliki 4.6. Izhodiščni položaj robota se nahaja v bližini
stolpca zobatih vencev na transporterju. Pot gibanja robota poteka po naslednjih korakih:
o KORAK 1: Robot se pomakne nad stolpec obročev zobatih vencev.
o KORAK 2: Robot se s polno hitrostjo spusti nad stolpec na višino, ki jo je izračunal
pri pobiranju predhodnega kosa. Ta višina je z vsakim pobranim kosom nižje. Pri
pobiranju kosa z vrha novega stolpca je ta fiksno določena, saj je takrat robot v t.i.
režimu za tipanje višine stolpca. V tem režimu se drugi korak preskoči.
o KORAK 3: Ko robot doseže določeno višino, ki predstavlja tudi varno razdaljo pred
trkom v zgornji zobati venec v stolpcu, se hitrost gibanja zmanjša. V tem režimu
se robot vedno pomika po Z osi z zmanjšano hitrostjo. Ko čeljusti robota dosežejo
zgornji rob zobatega venca se s pomočjo senzorja sile na glavi robota prebere
trenutni položaj robota. S tem se ugotovi položaj vsakega zobatega venca za
prijem.
o KORAK 4: V tem koraku se konča tipanje zgornjega roba zobatega venca in robot
se nekoliko odmakne od stolpca.
o KORAK 5: Robot se ponovno pomakne na položaj za prijem zobatega venca,
vklopijo se prijemala in zobati venec se pobere s stolpca.
o KORAK 6 in 7: Robot se s prijetim zobatim vencem pomakne v bližino stružnice,
kjer čaka na pogoj stružnice, da lahko odda zobati venec na odlagalno mesto v
stružnici.
o KORAK 8: Ko stružnica odda signal pogoja za odlaganje zobatega venca na
odlagalno mesto v stružnici, se robot pomakne v stružnico in zobati venec z
zgornje strani odloži na odlagalno mesto v stružnici, kjer ga nato pobere
prijemalna glava stružnice.
o KORAK 9, 10 in 11: Po končanem odlaganju zobatega venca se robot odmakne iz
območja stružnice, obrne prijemalo in počaka na mestu za prevzem zobatega
Aleš Škrobar, Diplomsko delo 35
venca iz stružnice. Po končanem struženju se prijemalna glava stružnice
pomakne na mesto nad robotova prijemala, odprejo se prijemala na glavi
stružnice in zobati venec se spusti v prijemala robota. Za prijem obroča se dvakrat
vklopijo prijemala robota. S tem je zagotovljen dober prijem in je nemogoče, da bi
bil kos prijet postrani.
o KORAK 12 in 13: Robot se pomakne proti merilnici. Za odlaganje v merilnico sta
na voljo dva načina: z zgornje oz. s spodnje strani. Če robot zobati venec odloži z
zgornje strani, je potrebno prijemala robota pred odlaganjem še obrniti. Robot
počaka v bližini odlagalnih vilic v merilnici na pogoj, da lahko odloži zobati venec v
merilnico.
o KORAK 14: Ko so odlagalne vilice v merilnici prazne, se robot pomakne nad vilice
v merilnici in odloži zobati venec. Da je odlaganje čim bolj točno, na robotu
dvakrat vklopimo in izklopimo prijemala. S tem se zagotovi dobro centriranje kosa
pred merjenjem.
o KORAK 15, 16 in 17: V teh korakih se robot vrne v izhodiščni položaj. Če je robot
kos v merilnico odlagal s spodnje strani, je potrebno prijemala robota še obrniti
tako, da so ta z zgornje strani.
Koraki 1 – 5 gibanja robota predstavljajo program za nastavljanje položaja robota s
sistemom Fanuc Vision in so podrobneje opisani v naslednjih treh točkah diplomskega
dela.
Naloga robota je tudi vstavljanje kalibracijskega zobatega venca v merilnico. Kalibracija
merilnice poteka ciklično po nastavljenem številu izmerjenih kosov (na primer vsakih 100
kosov). V tem primeru je manipulacija robota nekoliko drugačna. Namesto da se robot iz
izhodiščnega položaja pomakne v točko pobiranja, se ta pomakne v točko kjer pobere
kalibracijski zobati venec in ga odnese direktno merilnico, ga tam odloži in se vrne nazaj v
izhodiščni položaj.
Aleš Škrobar, Diplomsko delo 36
Slika 4.6: Prikaz gibanja robota
Aleš Škrobar, Diplomsko delo 37
4.3 Diagram poteka
ZAČETEK VISION PROGRAMA
DEFINICIJA PROIZVODNIH PARAMETROV DELOVANJA
INICIALIZACIJA
NAPAKA
BRANJE REFERENČNGA POLOŽAJA OBJEKTAPR[30:MasterPos24]
PODATKI PREBRANIR[40:VisionSTATUS]=1
DA
NE
SKOK V ZANKO LBL[2]
SKOK V ZANKO LBL[99]
BRANJE DEJANSKEGA POLOŽAJA OBJEKTA IZ KAMERE, PR[32:FoundPos]
BRIŠI NAPAKO
PODATKI PREBRANIR[40:VisionSTATUS]=1
DA
NE
IZRAČUN ZAMIKA POLOŽAJA OBJEKTAPR[33:VisionOFST]=PR[32:FoundPos]-PR[30:MasterPos24]
Aleš Škrobar, Diplomsko delo 38
Slika 4.7: Diagram poteka robotskega programa za vision sistem
Aleš Škrobar, Diplomsko delo 39
4.4 Program za nastavljanje položaja robota s sistemom Fanuc
Vision
Program za nastavljanje položaja in korekcijo pobiranja robota s sistemom Fanuc Vision
poteka po vrsticah in zgleda takole:
/PROG VISION
/ATTR
OWNER = MNEDITOR;
COMMENT = "Neparni red";
PROG_SIZE = 1194;
CREATE = DATE 12-10-27 TIME 14:14:18;
MODIFIED = DATE 12-10-27 TIME 14:26:18;
FILE_NAME = VISION_1;
VERSION = 0;
LINE_COUNT = 67;
MEMORY_SIZE = 1690;
PROTECT = READ_WRITE;
TCD: STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = 1,*,*,*,*;
CONTROL_CODE = 00000000 00000000;
/APPL
/MN
1: UFRAME_NUM=0 ;
2: PR[97:ACT]=LPOS ;
3: CALL MATRIX(97,98,99) ;
4: ;
5: UFRAME_NUM=9 ;
6: ;
7: UFRAME[9]=PR[99:VOFST] ;
Aleš Škrobar, Diplomsko delo 40
8: PR[99,1:VOFST]=0 ;
9: PR[99,2:VOFST]=0 ;
10: PR[99,3:VOFST]=270 ;
11: PR[99,4:VOFST]=(-180) ;
12: PR[99,5:VOFST]=0 ;
13: PR[99,6:VOFST]=0 ;
14: ;
15: ;
16: IF (F[15:VisNomRun]),JMP LBL[2] ;
17: ;
18: ;
19: !******** REFRENCE RUN **** ;
20: R[40:VisonSTATUS]=(-1) ;
21: PCVIS RUN ODLJEV1 [ST=R[40],OF=PR[30]] ;
22: WAIT R[40:VisonSTATUS]=1 ;
23: F[15:VisNomRun]=(ON) ;
24: IF R[40:VisonSTATUS]=(0), JMP LBL[99] ;
25: ;
26: LBL[2] ;
27: !******** NOMINAL RUN **** ;
28: R[40:VisonSTATUS]=(-1) ;
29: PCVIS RUN ODLJEV1 [ST=R[40],OF=PR[32]] ;
30: WAIT R[40:VisonSTATUS]=1 ;
31: IF R[40:VisonSTATUS]=(0), JMP LBL[99] ;
32: ;
33: ;
34: PR[33:VisonOFST]=PR[32:FoundPos]-PR[30:MasterPos24] ;
35: ;
36: R[42:VOFST -X]=PR[33,1:VisonOFST] ;
37: ;
38: R[43:VOFST -Y]=PR[33,2:VisonOFST] ;
39: ;
40: R[44:VOFST -Z]=PR[33,6:VisonOFST] ;
41: ;
42: ;
Aleš Škrobar, Diplomsko delo 41
43: PR[61,3:PickUp13]=R[36:VisHvat13] ;
44: ;
45: OpenGriper ;
46: ;
47: !Aproach Point ;
48: J PR[61:PickUp13] 50% CNT100 Tool_Offset,PR[10:TollOffset]
Offset,PR[33:VisonOFST] ;
49: ;
50: !PickUp Point ;
51: L PR[61:PickUp13] 80mm/sec FINE Offset,PR[33:VisonOFST] ;
52: ;
53: CloseGriper ;
54: ;
55: !Retreat Point ;
56: L PR[61:PickUp13] 250mm/sec CNT100 Tool_Offset,PR[10:TollOffset]
Offset,PR[33:VisonOFST] ;
57: ;
58: END ;
59: ;
60: ;
61: !***** ERROR - NOT FOUND *** ;
62: LBL[99] ;
63: SO[5:User LED#1]=ON ;
64: WAIT SI[4:User PB#1]=ON ;
65: SO[5:User LED#1]=OFF ;
66: JMP LBL[2] ;
67: END ;
/POS
/END
Aleš Škrobar, Diplomsko delo 42
4.5 Opis programa
V tej točki je opisan program za korekcijo nastavljanja položaja robota pri pobiranju
zobatih vencev s stolpca in predstavlja samo del robotskega programa (podprogram) za
celotno manipulacijo zobatega venca med transportnim sistemom, stružnico in merilnico
(koraki 1 – 5 pri opisu gibanja robota – točka 4.2).
Robotski program, ki je namenjen pregledovanju na računalniku je zapisan v ASCII
formatu v datoteki s končnico *.ls. Datoteko lahko odpremo in urejamo v beležnici.
Robotski program mora biti napisan in izveden tako, da čas gibanja robota ne bo daljši od
taktnega časa obdelave linije, ki znaša največ 18 sekund. Robot ima za manipulacijo na
razpolago celih 18 sekund, podprogram za nastavljanje položaja robota in pobiranje
zobatega venca pa potrebuje 4 – 6 sekund, odvisno od višine stolpca zobatih vencev.
Taktnemu času linije z gibanjem robota brez težav sledimo, saj nastavljene hitrosti robota
še niso maksimalne, kar zaradi občasne počasnosti stružnice ali merilnice tudi ni
potrebno.
Robotski program vision sistema je zgrajen po naslednji strukturi:
o glava programa z osnovnimi opisi programa,
o definicija proizvodnih parametrov delovanja,
o programske vrstice:
o začetne nastavitve parametrov in registrov (inicializacija),
o branje referenčnih položajev objekta (zobati venec) iz kamere,
o glavni program:
o branje dejanskih položajev objekta (zobati venec) iz kamere,
o postavitev vrednosti registrov za položaje X, Y in Z,
o definicija pomika in pristopne točke robota,
o definicija pomika in točke pobiranja robota,
o definicija pomika in točke umika robota,
o napaka v iskanju objekta (zobati venec).
Aleš Škrobar, Diplomsko delo 43
Delovanje robotskega programa temelji na registrih:
o registri R, ki predstavljajo posamezne vrednosti,
o registri položaja PR, ki so zapisan v formatu XYZWPR in predstavljajo položaje X,
Y, Z in orientacije W-jaw (odklon), P-pitch (naklon) in R-roll (nagib),
o zastavice F, ki predstavljajo posamezne spominske bite v programu.
Številko registra zapišemo v oglatih oklepajih, lahko mu določimo tudi ime registra. To
naredimo tako, da za številko registra napišemo dvopičje in ime registra.
Robotski program je zapisan v vrsticah, vsako vrstico zaključimo s podpičjem. Komentarje
v programu označimo na dva načina:
o komentarji pred programskimi vrsticami se označijo s poševno črtico in
o komentarji v programskih vrsticah se označijo s klicajem in zaključijo s podpičjem.
Na začetku robotskega programa je glava programa, ki vsebuje naslednje podatke:
o podatke o avtorju programa,
o komentar programa,
o datum in čas nastanka programa,
o datum in čas zadnjega popravka,
o ime datoteke,
o verzijo programa,
o število vrstic, ki jih program vsebuje,
o velikost pomnilnika, ki ga program zaseda,
o vrsta zaščite programa (branje, branje / popravljanje).
Glavo programa lahko tudi prikažemo ali skrijemo na prikazovalniku ročne konzole robota
s kombinacijo tipk SELECT in DETAIL.
Pred programskimi vrsticami definiramo proizvodne parametre, ki so vezani na
posamezne tipe zobatih vencev in posredno vplivajo na delovanje robotskega programa.
Aleš Škrobar, Diplomsko delo 44
Na začetku programskih vrstic se izvede inicializacija programa, kjer postavimo začetne
vrednosti posameznih registrov pri vklopu (vrstice 1 – 18).
Na začetku je za iskanje referenčne slike zobatega venca (vrstice 19 do 25) register
R[40:VisionSTATUS] na vrednosti -1. Z ukazom PCVIS RUN zajamemo podatke o sliki
zobatega venca iz vision programa ODLJEV1. Počakamo, da se preberejo podatki o
referenčni sliki zobatega venca v register položaja PR[30:MasterPos24] – referenčni
položaj zobatega venca pri prvem branju slike, register R[40:VisionSTATUS] se postavi
na 1. Če se podatki ne preberejo, se register R[40:VisionSTATUS] postavi na 0. V tem
primeru skočimo v zanko LBL[99] v vrstico 62, kjer so koraki za napako. Branje
referenčnega položaja zobatega venca se izvrši samo enkrat po vklopu robota ali pri vsaki
menjavi stolpca zobatih vencev in služi kot referenčno izhodišče pri pobiranju prvega kosa
z vrha stolpca zobatih vencev.
Glavna programska zanka LBL[2] je napisana od vrstice 26 naprej. V registru
R[40:VisionSTATUS] je vpisana vrednost -1. Z ukazom PCVIS RUN zajamemo podatke o
sliki zobatega venca iz vision programa ODLJEV1. Počakamo, da se preberejo podatki o
dejanski sliki zobatega venca v register položaja PR[32:FoundPos] – dejanski položaj
zobatega venca, register R[40:VisionSTATUS] se postavi na 1. Če se podatki ne
preberejo, se register R[40:VisionSTATUS] postavi na 0. V tem primeru skočimo v zanko
LBL[99] v vrstico 62, kjer so koraki za napako. Branje trenutnega položaja zobatega
venca se izvrši v vsakem ciklu pobiranja novega kosa s stolpca zobatih vencev.
V register položaja PR[33:VisionOFST] zapišemo razliko registrov položajev
PR[32:FoundPos], ki predstavlja dejanski položaj zobatega venca in PR[30:MasterPos24],
ki predstavlja referenčni položaj zobatega venca. Register položaja PR[33:VisionOFST]
predstavlja trenutni zamik zobatega venca glede na referenčni položaj zobatega venca.
Vrednosti v registrih položajev so zapisane v formatu XYZWPR in predstavljajo položaje
X, Y, Z in orientacije W-jaw (odklon), P-pitch (naklon) in R-roll (nagib). Razlika vrednosti v
obeh registrih predstavlja dejanski zamik zobatega venca glede na prebrano referenčno
vrednost (vrstica 34).
V registre R[42:VOFST –X], R[43:VOFST –Y] in R[44:VOFST –Z] vpišemo dejanske
položaje iz registra položaja PR[33:VisionOFST] vseh treh položajev X, Y in Z
zamaknjenega zobatega venca. S tem dobimo potrebne nove koordinate za pomik robota
Aleš Škrobar, Diplomsko delo 45
v položaj za pobiranje zobatega venca. Orientacij zobatega venca W, P in R zaradi
okrogle oblike ne potrebujemo (vrstice 36, 38 in 40).
V vrstici 43 v register položaja PR[61,3:PickUp13] zapišemo vrednost registra
R[36:VisHvat13] v katerem je zapisana vrednost položaja Z osi, ki predstavlja točko
pobiranja robota. V register R[36:VisHvat13] se ob vsakem pobranem kosu zapiše nova
vrednost, ki se pri vsakem naslednjem pobiranju zmanjša za nastavljeno debelino
zobatega venca. Vrednosti registra R[36:VisHvat13] se računajo v enem od drugih
podprogramov robota.
Način pomika robota v točko za pobiranje zobatega venca določimo s tremi različnimi
pomiki:
o točka pristopa robota pomeni končno točko pomika robota po X in Y osi iz
njegovega izhodiščnega položaja v točko, ki je v bližini pobiranja zobatega venca,
o točka pobiranja robota predstavlja točko v katero se robot pomakne po Z osi in bo
dejansko pobral zobati venec z vrha stolpca,
o točka umika robota predstavlja končno točko pomika robota po X in Y osi v katero
se robot pomakne pred naslednjim pomikom, ki je že definiran v drugem
podprogramu v robota.
Pred pomikom robota na položaj za pobiranje odpremo prijemala, nato določimo način
pomika robota na ta položaj. V vrstico 48 zapišemo ukaz za pomik robota po najhitrejši
trajektoriji (J) na položaj za pobiranje, ki je zapisana v registru položaja PR[61:PickUp13].
Pomik robota po najhitrejši trajektoriji (J) smo izbrali, ker pot do točke pobiranja ni
pomembna in jo želim čim hitreje doseči. Pri tem pomiku se med gibanjem simultano
premikajo vse osi robota, hitrost pomika pa pogojuje najpočasnejša os robota. Določimo
hitrost pomika na 50 %, končno točko pa dosežemo tako, da obidemo vmesno točko po
najkrajši poti (CNT100). Ukaz Tool_Offset premakne robota v položaj glede na vrednost
registra PR[10:TollOffset] in predstavlja višino glede na predhodno točko pobiranja. Ukaz
Offset premakne robota v položaj glede na vrednost registra PR[33:VisionOFST], ki
predstavlja korekcijo zamika točke na podlagi točke zobatega venca iz vision sistema
(vrstice 45 – 49).
Aleš Škrobar, Diplomsko delo 46
Ko se z robotom približamo položaju za pobiranje, določimo še točko pobiranja (vrstica
51). V točki pobiranja izberemo linearni pomik robota (L) na položaj v registru položaja
PR[61:PickUp13]. Linearni pomik robota (L) smo izbrali zaradi tega, ker je robot že v
položaju pobiranja (osi X in Y) in v tej vrstici izvršimo le še linearni pomik robota po Z osi v
točko prijema zobatega venca. Ukaz Offset premakne robota v položaj glede na vrednost
registra PR[33:VisionOFST], ki predstavlja korekcijo zamika točke na podlagi točke
zobatega venca iz vision sistema. Določimo hitrost pomika 80 mm/sek z natančnim
ustavljanjem v končni točki. Po premiku robota v končno točko zapremo prijemala (vrstice
50 – 54).
Po prijemu zobatega venca s stolpca definiramo naslednjo točko (vrstica 56). Z robotom
se umaknemo po linearnem gibu (L) na položaj, ki je zapisan v registru položaja
PR[61:PickUp13]. Linearni gib v tem primeru uporabimo zato, da ne zrušimo stolpca
zobatih vencev. Določimo hitrost pomika na 250 mm/sek, končno točko pa dosežemo
tako, da obidemo vmesno točko po najkrajši poti (CNT100). Ukaz Tool_Offset premakne
robota v položaj glede na vrednost registra PR[10:TollOffset] in predstavlja višino glede na
predhodno točko pobiranja. Ukaz Offset premakne robota v položaj glede na vrednost
registra PR[33:VisionOFST], ki predstavlja korekcijo zamika točke na podlagi točke
zobatega venca iz vision sistema (vrstice 55 – 57).
Zanko LBL[2] zaključimo z ukazom END (vrstica 58).
Kot je že bilo omenjeno, se ob neprebranih podatkih iz vision sistema register
R[40:VisionSTATUS] postavi na 0 in izvrši skok v zanko [99] v vrstico 62, kjer so koraki za
napako. Napaka je definirana tako, da najprej vklopi sistemski izhod za takojšnjo
prekinitev izvajanja robotskega programa in izhod za rdečo lučko FAULT na krmilni enoti
robota. Program v vrstici 64 nato čaka, da se vklopi sistemski vhod (modra tipka RESET
FAULT) na krmilni enoti robota, s katerim brišemo pojav napake v delovanju (izklopimo
sistemski izhod za prekinitev izvajanja robotskega programa). Za ponovno izvajanje
robotskega programa skočimo nazaj v glavno programsko zanko LBL[2] v vrstico 26.
Zanko LBL[99] zaključimo z ukazom END (vrstice 61 – 67).
Aleš Škrobar, Diplomsko delo 47
5 SKLEP
Težave pri nezanesljivem pobiranju zobatih vencev s stolpca, ki je lahko nekoliko nagnjen,
raztresen ali zamaknjen, smo uspešno rešili z uporabo robotskega vida. Prav tako smo s
tem rešili težavo, ki se je pojavljala pri tipanju zadnjega kosa na transporterju in s tem
preprečili možnost trka robota v premaknjen in nepravilno ustavljen stolpec, kar je
povzročalo poškodbe na prijemalih robota in posledično zastoje na liniji. Nad zadnjim
stolpcem na transporterju smo namestili fiksno nameščeno dvodimenzionalno kamero
Sony XC-HR50 s sistemom Fanuc Vision V500iA/2DV. S kamero gledamo in določimo
center stolpca, ki predstavlja tudi center robotovih prijemal. S tem zlahka ugotovimo koliko
je zgornji zobati venec v stolpcu zamaknjen in korigiramo koordinate robota za pobiranje.
Ker robotski vid predstavlja uporabo senzorjev vida (kamera), potrebujemo za zajemanje
in procesiranje slike poleg kamere XC-HR50 in napajalnega vmesnika Sony DC-700CE
še nadzorni računalnik z vgrajeno vmesniško kartico Aval Data APC-3322 na katerem se
odvija vision sistem. Za komunikacijo med računalnikom in krmilno enoto robota R30iA/R-
J3C smo uporabili standardno ethernet povezavo.
Sliko zobatega venca zajamemo s programom Fanuc Vision V-500iA/2DV. Pri zajemu
slike iz kamere vision sistem robotu posreduje položaj centra zobatega venca in jo zapiše
v njegov register. Ker nastavljanje položaja robota temelji na položaju zobatega venca,
mora biti ta položaj znotraj koordinatnega sistema robota. To pomeni, da mora vision
sistem pretvoriti položaj zobatega venca iz koordinatnega sistema slikovnega prostora
kamere v referenčni koordinatni sistem robota. Pri tem je pomembna kalibracija kamere,
saj nam ta podatek pove dejanski položaj kamere in njeno območje zaznavanja. Mi smo
uporabili metodo kalibracije z mrežastim vzorcem, ki je primerna za natančno kalibracijo
kamere pri 2D aplikacijah. S kalibracijo dobimo položaj in orientacijo kamere, ki se
direktno prebere v formatu XYZWPR (položaj X, Y, Z v milimetrih in orientacije W-jaw
(odklon), P-pitch (naklon), R-roll (nagib) v stopinjah). Poleg položaja in orientacije kamere
s postopkom kalibracije dobimo tudi nekatere pomembne parametre za kamero, kot so
skala kamere (mm/piksel), faktor skaliranja, center slike (piksel) in velikost piksla.
Aleš Škrobar, Diplomsko delo 48
Po kalibraciji nastavimo še vidno polje kamere, ki predstavlja območje tipanja zobatih
vencev. Če se v vidnem polju kamere poleg zobatega venca pojavijo tudi drugi elementi,
ki bi lahko zmotili pravilno delovanje vision sistema, s posebnim orodjem izločimo okolico
ali elemente, ki jih ne želimo zaznavati. Pri izbranem izhodu za 2D slike, položaja X in Y
predstavljata položaj zobatega venca, rotacija R-roll (nagib) pa orientacijo zobatega
venca. Vrednosti položaja Z in orientacij W-jaw (odklon) in P-pitch (naklon) so vedno 0. Z
nastavitvijo sistema Fanuc Vision določimo položaj centra zobatega venca in njegovo
orientacijo, ki jo program modelira in posreduje robotu. Ta center nato predstavlja tudi
center robotovih prijemal. Pri zaznavanju zobatega venca v 2D sliki bosta aktualni samo
koordinati centra, medtem ko zaradi okrogle oblike zobatega venca orientacija ni
pomembna. Center zobatega venca se bo spreminjal glede na različne premere zobatega
venca in glede na zamike, ki pa morajo biti znotraj vidnega polja kamere.
Pri uporabi robotskega vida smo sicer naleteli na nekaj novih, manjših težav, ki pa smo jih
brez večjih težav uspešno odpravili. Največ motenj na zanesljivo delovanje sistema Fanuc
Vision je povzročalo spreminjanje svetlobe okolice (sonce, noč, oblačno vreme). To
težavo smo odpravili z dodatno osvetlitvijo z belo svetlobo, ki poudarja črno barvo
zobatega venca in zagotavlja konstantne pogoje za kamero. Druga težava povezana s
svetlobo pa je nastala pri pojavljanju sence zobatega venca. Vpliv sence smo uspešno
odpravili z namestitvijo rdeče svetlobe. Da smo še dodatno zmanjšali vpliv svetlobe iz
okolice, smo kamero z obema osvetlitvama namestili v zaščitni okrov, ki preprečuje
direktni vstop svetlobe do kamere. Nekaj začetnih težav na zanesljivo delovanje vision
sistema je predstavljalo tudi spreminjanje višine stolpca zobatih vencev med pobiranjem.
Ker je razdalja med kamero in transporterjem fiksna, vmes pa se spreminja višina stolpca
za vsaj 800 mm, kamera stolpec vidi kot stožec katerega premer se z oddaljenostjo od
kamere manjša. To kamera z nižanjem stolpca zobatih vencev prepozna kot dva zobata
venca z drugačnima premeroma vendar istim centrom (vzporednost). Težava se pojavi pri
zamiku enega od zobatih vencev v stolpcu glede na drugega, kar pomeni dva različna
centra zobatega venca. V tem primeru kamera na podlagi obeh centrov izračuna novi
center katerega koordinate posreduje robotu kot spremenjeni center pobiranja, ki pa ni
pravilen in robot ni mogel prijeti kosa pravilno. Ta pogrešek smo zmanjšali tako, da smo v
več slojih npr. na vsake 200 mm uporabili drugo kalibracijsko masko in s tem zmanjšali
vpliv spremembe centra zobatega venca glede na razdaljo med kamero in zobatim
vencem. S tem smo zagotovili zadostno zanesljivost pobiranja zobatih vencev s stolpca.
Aleš Škrobar, Diplomsko delo 49
V času po končani izvedbi robotskega vida v aplikaciji za korekcijo nastavljanja položaja
robota pri pobiranju kosov s transporterja je proizvajalec Fanuc ponudil nov sistem Fanuc
Vision (iRVision – integrated Robot Vision), ki je integriran v krmilno enoto R-30iA robota,
pri tem pa ne potrebujemo dodatnega računalnika. Če bi sistem Fanuc Vision V-
500iA/2DV še ne bil realiziran, bi zaradi nekaterih prednosti novega sistema uporabili
novejšo rešitev, ki pa bo verjetno uporabljena pri novih linijah. Kot je že bilo omenjeno,
novi integrirani ″vision″ sistem ne potrebuje dodatnega računalnika, saj je vsa elektronika
vgrajena v krmilno enoto robota, programiranje pa poteka kar preko ročne konzole robota.
Z uporabo robotskega vida smo dosegli rešitev glavnega problema zaradi nezanesljivega
pobiranja in s tem povezanimi zastoji na liniji. Sistem pobiranja zobatih vencev s
transporterja je z uporabo robotskega vida postal precej zanesljiv. Za realizacijo te
aplikacije je bilo potrebno predhodno preučiti delovanje in možnosti uporabe sistema
Fanuc Vision v povezavi z robotom Fanuc. Prav tako se je bilo potrebno naučiti
programiranja robota, za lažje razumevanje in reševanje problematike pa tudi teorijo
robotskega vida.
Za realizacijo aplikacije na podlagi katere je nastalo to diplomsko delo je bilo potrebno
namestiti in nastaviti izbrano kamero, jo povezati s sistemom Fanuc Vision in nastaviti
potrebne parametre in opraviti kalibracijo kamere. V programu robota je bilo potrebno
dodati podprogram za nastavljanje položaja robota glede na položaj zobatega venca, ki
ga zaznavamo s sistemom Fanuc Vision. Ker pa nikoli ne gre brez težav, je bilo potrebno
najti rešitev vpliva spreminjanja svetlobe iz okolice, kar pa smo rešili z namestitvijo
dodatne osvetlitve in s tem še povečali zanesljivost delovanja sistema.
Aleš Škrobar, Diplomsko delo 50
6 VIRI IN LITERATURA
KNJIŽNI VIRI:
[1] Bajd, T., Mihelj, M., Lenarčič, J., Stanovnik, A., Munih, M. Robotika. Ljubljana:
Fakulteta za elektrotehniko, 2008.
[2] Fanuc LTD. FANUC Robot series R-J3/B CONTROLLER: Operators Manual.
Fanuc LTD, 2001.
[3] Fanuc LTD. FANUC VISION V-500iA/2DV: Operators Manual. Fanuc LTD, 2004.
[4] Fanuc LTD. V-500iA2DV: Operation Manual. Fanuc LTD, 2004.
[5] Fanuc robotics. R-J3iB/R-30iA-SLO: Priročnik za operaterje – TPEA. Praga. Fanuc
robotics Czech s.r.o., 2011.
[6] Lenarčič, J., Bajd, T. Robotski mehanizmi. Ljubljana: Fakulteta za elektrotehniko,
2003.
[7] Sony Corporation. CCD Black-and-White Video Camera Module: Operators
Manual XC-H50. Sony Corporation, 2002.
Aleš Škrobar, Diplomsko delo 51
INTERNETNI VIRI:
[8] http://cdn.intechopen.com/pdfs/11037/In-Tech-
Advanced_techniques_of_industrial_robot_programing.pdf [2.4.2013]
[9] http://pro.sony.com/bbsccms/assets/files/Brochures/xchr2.pdf [14.3.2013]
[10] http://www.fanucrobotics.com/cmsmedia/datasheets/M-710iC%20Series_20.pdf
[7.3.2013]
[11] http://www.fanucrobotics.lu/en/products/controllers/r-30ia [18.3.2013]
Aleš Škrobar, Diplomsko delo 52
7 PRILOGE
V prilogi so naslednji dokumenti:
o KRATEK ŽIVLJENJEPIS,
o IZJAVA O AVTORSTVU,
o IZJAVA O USTREZNOSTI DIPLOMSKEGA DELA,
o IZJAVA O ISTOVETNOSTI TISKANE IN ELEKTRONSKE VERZIJE
Aleš Škrobar, Diplomsko delo 53
Kratek življenjepis
Ime in priimek: Aleš Škrobar
Naslov: Topolšica 49
Pošta: 3326 Topolšica
E-mail: [email protected]
Študijski program: visokošolski, elektrotehnika
Smer: Avtomatika in robotika
Rodil sem se 7.7.1980 v Slovenj Gradcu. Po končani osnovni šoli Karla Destovnika –
Kajuha v Šoštanju sem se vpisal na Poklicno in tehnično elektro in računalniško šolo
Šolskega centra Velenje, kjer sem najprej zaključil poklicno izobraževanje za poklic
elektrikar – elektronik, nato pa še poklicno – tehnično izobraževanje za poklic
elektrotehnik – elektronik. Po končani poklicni maturi sem šolanje nadaljeval s študijem
elektronike na Višji strokovni šoli v Velenju in si pridobil izobrazbo inženir elektronike. Po
zaključeni diplomi leta 2002 sem se zaposlil v podjetju Jan & Florjan d.n.o. iz Velenja na
delovnem mestu inženir elektroavtomatike, kjer sem zaposlen še danes.
Leta 2008 sem se vpisal na visokošolski izredni študij elektrotehnike, smer avtomatika in
robotika Fakultete za elektrotehniko, računalništvo in informatiko Univerze v Mariboru.
Aleš Škrobar, Diplomsko delo 54
Aleš Škrobar, Diplomsko delo 55
Aleš Škrobar, Diplomsko delo 56