robotska delovna celica s 6-osnim paralelnim robotom fanuc m … · 2017. 11. 28. · paralelnim...
TRANSCRIPT
I
ROBOTSKA DELOVNA CELICA S 6-OSNIM
PARALELNIM ROBOTOM FANUC M-1IA
Diplomsko delo
Študent: Miha TERTINEK
Študijski program: Univerzitetni študijski program 1. stopnje Mehatronika
Smer: Mehatronika
Mentor FERI: izr. prof. dr. Aleš Hace
Mentor FS: izr. prof. dr. Karl Gotlih
Maribor, september 2013
II
III
UNIVERZA V MARIBORU
FAKULTETA ZA STROJNIŠTVO
Miha TERTINEK
ROBOTSKA DELOVNA CELICA S 6-OSNIM
PARALELNIM ROBOTOM FANUC M-1IA
Diplomsko delo
univerzitetnega študijskega programa 1. stopnje
Mehatronika
Maribor, september 2013
IV
V
ZAHVALA
Zahvaljujem se mentorjema izr. prof. dr. Alešu Hacetu
in izr. prof. dr. Karlu Gotlihu za pomoč in vodenje pri
opravljanju diplomskega dela.
Posebna zahvala velja moji druţini, za omogočen
študij in podporo.
VI
ROBOTSKA DELOVNA CELICA S 6-OSNIM PARALELNIM
ROBOTOM FANUC M-1IA
Ključne besede: paralelni robot Fanuc M-1iA, virtualna robotska celica, strojni vid, kamera,
pnevmatsko prijemalo, Roboguide
UDK: 004.896:621.865.8(043.2)
POVZETEK
Diplomsko delo opisuje pripravo in realizacijo delovne celice z majhnim in hitrim paralelnim
robotom Fanuc M-1iA, na katerem teče zanimiva demonstracijska aplikacija metanja igralne
kocke. V naši robotski aplikaciji, ki smo jo imenovali Hazarder, robot vrže igralno kocko pod
nadzorom uporabnika, in v kolikor pade šestica, robot uporabnika nagradi s čokoladico.
Izdelava naše robotske aplikacije je obsegala programiranje meta igralne kocke tako, da smo
robota naučili trajektorij, po katerih se naj giblje. Uvedli smo tudi strojni vid za
prepoznavanje in lociranje objektov (kocke) ter štetja (pik). Priklopili smo še preprosto
uporabniško konzolo za nadzor meta. Pri programiranju gibov in obdelavi podatkov s kamere
je bil uporabljen Fanuc-ov preprosti robotski programski jezik TP. Izdelali smo tudi virtualno
delovno celico v okolju Roboguide, da smo lahko preverili gibanje robota, ugotovili omejitve
orientacije prijemala in možnosti kolizij z objekti v delovnem prostoru robota.
VII
ROBOTIC WORK CELL WITH 6-AXIS PARALLEL ROBOT FANUC M-
1IA
Key words: parallel robot Fanuc M-1iA, machine vision, virtual robotic work cell, camera,
pneumatic gripper, Roboguide
UDK: 004.896:621.865.8(043.2)
ABSTRACT
This thesis presents the preparation and realization of the work cell with a small and fast
parallel robot Fanuc M-1iA with an interesting demonstrative dice-throwing application
installed. In our robotic application, named Hazarder, the dice is thrown by the robot under
user's surveillance. If the outcome of the throw are six pips, the user is rewarded by being
offered a chocolate bar. The production of our robotic application included programming the
dice throw, so that the robot was taught on which paths it has to move; and we also
incorporated a machine vision for the purposes of object recognition, location (dice), and
counting (pips). Moreover, we added a simple user console to control the throwing. The
movements and camera data processing were done via Fanuc's simple robotic program
language TP. We also built a virtual work cell in the Roboguide environment in order to
understand the robot's movements; to find out what the holder's orientation wise limitations
are; and to see if there are any collision possibilities with the objects in the robot's
workspace.
VIII
KAZALO
1 UVOD ........................................................................................ 1
1.1 Opis splošnega področja diplomskega dela .............................................. 1
1.2 Struktura diplomskega dela ....................................................................... 2
2 PREDSTAVITEV ROBOTA FANUC M1-IA/0.5A ........... 3
2.1 Osnovne značilnosti ................................................................................... 3
2.2 Tehnični podatki ........................................................................................ 3
2.3 Gibi ............................................................................................................ 4
2.4 Aktuator ..................................................................................................... 6
2.5 Prenosna ročna programirna enota ............................................................ 7
2.6 Kamera in strojni vid ............................................................................... 10
3 ZASNOVA APLIKACIJE…....…………………………… 15
3.1 Delovna miza ....................................................................................................... 16
3.2 Uporabniška konzola in tipka za zasilni izklop .................................................... 18
3.3 Namestitev kamere ............................................................................................... 20
3.4 Kalibracija kamere in nastavitve .......................................................................... 22
3.5 Simulacija............................................................................................................. 27
3.6 Načrtovanje programa .......................................................................................... 33
4 SKLEP ................................................................................... 38
LITERATURA ........................................................................... 39
Priloga 1:Koda in opis TP programov ................................................................ 40
Priloga 2: Koda in opis programa KAREL ......................................................... 46
Priloga 3: Preglednice uporabniških povezav ..................................................... 49
IX
Kazalo slik
Slika 2.1: Primer giba od točke do točke ............................................................................... - 4 -
Slika 2.2: Primer linearnega giba .......................................................................................... - 5 -
Slika 2.3: Paralelni robot Fanuc M1-iA z označenimi sklepi za rotacije in translacije ......... - 6 -
Slika 2.4: Pnevmatsko prijemalo ........................................................................................... - 6 -
Slika 2.5: Prenosna ročna programirna enota ........................................................................ - 8 -
Slika 2.6: Omejen delovni prostor ......................................................................................... - 9 -
Slika 2.7: Ponazorjeni moţni koti zasuka v zapestju .......................................................... - 10 -
Slika 2.8: Označeno slepo območje prikaza kamere ........................................................... - 11 -
Slika 2.9: Skica nastanka slike ............................................................................................ - 12 -
Slika 2.10: Projekcija slike skozi lečo ................................................................................. - 12 -
Slika 2.11: Centralna perspektiva ........................................................................................ - 13 -
Slika 2.12: Primer pribliţevanja vzporednih črt .................................................................. - 14 -
Slika 2.13: Mlinsko kolo projicirano kot elipsa .................................................................. - 14 -
Slika 3.1: Zamišljena skica delovanja aplikacije ................................................................. - 15 -
Slika 3.2: Skica območja pobiranja in zaznavanja s kamero ............................................... - 16 -
Slika 3.3: Načrt za delovno mizo v programu "Catia" ........................................................ - 17 -
Slika 3.4: Notranji in zunanji del delovne mize .................................................................. - 17 -
Slika 3.5: Sprednja stran krmilnika R-30iA ........................................................................ - 18 -
Slika 3.6: Uporabniška konzola in njeni vhodi na zadnji strani krmilnika.......................... - 19 -
Slika 3.7: Tipka za zasilni izklop in točke meta .................................................................. - 20 -
Slika 3.8: Stara (zgoraj) in nova (spodaj) pozicija kamere.................................................. - 21 -
Slika 3.9: Kalibracijska mreţa ............................................................................................. - 21 -
Slika 3.10: Kalibracija in nastavitve kamere ....................................................................... - 23 -
Slika 3.11: Koordinate točk na kalibracijski mreţi ............................................................. - 23 -
Slika 3.12: Maskiranje objekta ............................................................................................ - 24 -
Slika 3.13: Zaznan objekt .................................................................................................... - 25 -
Slika 3.14: Maskiranje pik in spodaj preštete pike .............................................................. - 26 -
Slika 3.15: Priprava orodja za štetje pik .............................................................................. - 26 -
Slika 3.16: Virtualna in realna delovna celica ..................................................................... - 28 -
Slika 3.17: Nastavitve prijemala, ki omogoča pobiranje in odlaganje ................................ - 29 -
Slika 3.18: Nastavitve podlage za pobiranje in odlaganje objektov .................................... - 30 -
Slika 3.19: Virtualno prijemalo ........................................................................................... - 30 -
X
Slika 3.20: Okno programa simulation editor ..................................................................... - 32 -
Slika 3.21: Skica delovanja meta kocke .............................................................................. - 34 -
Slika 3.22: Diagram poteka celotnega programa................................................................. - 35 -
Slika 3.23: Diagram poteka za programa "Vision" in "Cokolada" ...................................... - 36 -
Slika 3.24: Diagram poteka za programa "Met_Kocke" in "Met_Kocke_OP" ................... - 36 -
Slika 3.25: Okno za urejanje in prevajanje programa v "karelu" ........................................ - 37 -
XI
Kazalo preglednic
Preglednica 2.1: Tehnični podatki ......................................................................................... - 3 -
Preglednica 2.2: Tehnične značilnosti kamere CIS ............................................................. - 10 -
Preglednica 6.1: Uporabniške povezave na priključku "CRMA 62" .................................. - 49 -
Preglednica 6.2: Uporabniške povezave na priključku "CRMA 63" .................................. - 50 -
Preglednica 6.3: Uporabniške povezave na priključku "CRMA 64" .................................. - 51 -
XII
UPORABLJENI SIMBOLI
zo - razdalja do objekta
zi - razdalja do slike
f - goriščna razdalja
C - ţarišče kamere
XIII
UPORABLJENE KRATICE
CAD - Computer Aided Design
CMOS - Complementary Metal–Oxide–Semiconductor
SCARA - Selective Compliance Assembly Robot Arm oz. Selective Compliance
Articulated Robot Arm
TCP - Tool Center Point
CNT - Continous
IO - Input/Outputs
VGA - Video Graphics Array
NO - Normally Opened
NC - Normally Closed
DO - Digital Output
DI - Digital Input
IP - Internet Protocol
PNS - Program Name Select
VR - Visual Register
OP - Odpri Prijemalo
ZP - Zapri Prijemalo
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 1 -
1 UVOD Pred 100 in več leti je bil glavni način dela z uporabo fizične sile. Obdelovanje polj z motiko
so kmalu po iznajdbi motorja na notranje izgorevanje zamenjali kmetijski stroji. Glavni razlog
je bil razbremenitev človeka od teţkih naporov. To je bil tudi eden izmed razlogov za kasnejši
razmah robotike. Z uporabo robotov se je povečala produktivnost in natančnost ter zvišala
splošna stopnja kvalitete produktov in dobička v podjetjih. Tudi roboti so se sprva uporabljali
le za prenašanje teţjih bremen, sestavnih delov ali obdelovancev. S časom so bili zmoţni
dosegati vedno boljšo ponovljivost. V zadnjem času pa se vse pogosteje pojavljajo
takoimenovani pick and place roboti, ki precej olajšajo za človeka monotono in izčrpno delo
sortiranja izdelkov. Robotski manipulatorji s paralelno strukturo intenzivno prodirajo tudi v
industrijske panoge, kot so ţivilska, farmacevtska, računalniška industrija in industrija
zabavne elektronike. Odlikuje jih predvsem velika hitrost manipulacije. Tudi zato sem se
odločil in se v okviru diplomske naloge posvetil spoznavanju in delu z robotsko delovno
celico s 6-osnim paralelnim robotom, japonskega proizvajalca Fanuc, model M1-iA/0,5A.
1.1 Opredelitev diplomskega dela
Zaradi vedno večje potrebe po robotih in njihovih operaterjih, je moţnost diplomskega dela
na enem izmed pravih industrijskih robotov dobra priloţnost za osvojitev nabora novih, med
drugim tudi praktičnih znanj.
Temelj diplomske naloge je bila postavitev delovne celice z robotom Fanuc. Glavni
cilj je bila demonstracijska aplikacija metanja, prepoznavanja in lociranja ter pobiranja
igralne kocke, zaradi katere smo morali delovno celico sproti prilagajati, z namenom, da jo
lahko uporablja vsakdo, ne le izkušen programer.
Začeli smo na ideji, ki je ţe bila poskusno realizirana, ampak ni dala dovolj dobrih
rezultatov. Pobiranje igralne kocke s CMOS kamero proizvajalca CIS, ki je nameščena
statično na ohišju robota, se je vršilo ne le na zasuk kocke ampak tudi glede na postavitev pik.
To pomeni, da se je zapestje robota vrtelo za ±180°, zaradi česar je nastal problem v
dostopanju robota do kocke. Prav tako je bilo večkrat potrebno izboljševati gibanje prijemala
med metom, da bi bilo čimbolj podobno človeškemu.
Z namenom preverjanja moţnosti niţjih stroškov in krajšega časa snovanja aplikacije,
smo napravili še virtualno delovno celico v Fanucovem simulacijskem programu.
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 2 -
1.2 Struktura diplomskega dela
V uvodu je predstavljena tematika diplomske naloge, razlogi za izbor ter cilji diplomskega
dela.
V drugem poglavju je predstavljen robot Fanuc M1-iA, ki je glavna točka našega dela.
V tretjem poglavju je predstavljena zamisel za aplikacijo ter predvidene rešitve in
realizacija.
Četrto poglavje je posvečeno strojnemu delu in prilagajanju delovne celice, pripravi
delovne mize in prostora, zunanje konzole, ter namestitvi kamere ter njeni pripravi za
delovanje.
V petem poglavju je opisano programsko delo, torej priprava simulacije ter
načrtovanja programa na realni delovni celici.
Šesto poglavje prikazuje sklepe, oblikovane tekom diplomske naloge.
V sedmem poglavju pa so navedeni viri.
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 3 -
2 PREDSTAVITEV ROBOTA FANUC M1-IA/0.5A
2.1 Osnovne značilnosti
6-osni robot Fanuc M1-iA s paralelnim mehanizmom se, kot je ţe omenjeno, uporablja v
farmacevtski, prehrambeni in elektronski industriji. Z uporabo kamere lahko ţeljene objekte:
sortira,
prebira,
montira.
Npr. Ločevanje tablet, čipov, montiranje delov na matično ploščo.
Prednosti:
Je majhen,
lahek,
kompakten in
izredno hiter (do 2000 mm/s pri linearnih gibih).
Lahko se uporablja v manjših prostorih. Odlikujejo ga tudi različne moţnosti
montaţe. V primerjavi s klasičnimi SCARA roboti je izjemno fleksibilen in
vsestranski. Njegova masa 17 kg je ob nosilnosti 0,5 kg majhna. 6-osna zasnova
omogoča podajanje objektov s strani, kar poveča prostor za manipulacijo.
Slabost:
V primerjavi s klasičnimi roboti ima omejen delovni prostor.
2.2 Tehnični podatki
Preglednica 2.1: Tehnični podatki
TIP M-1iA/0.5A
Število osi 6
Doseg (mm) Dia. 280, Ht. 100
Ponovljivost (mm) ± 0.02
Kot zasuka zapestja
(stopinje)
J4 720
J5 300
J6 720
Hitrost zapestja J4 1440
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 4 -
(stopinje na sekundo) J5 1440
J6 1440
Zavore Vse osi.
Masa robota brez stojala (kg) 17
Moţnost montaţe Talna, stropna, kotna.
Obratovalna temperatura (°C) Od 0 do 45.
Obratovalna vlaţnost Normalna < 75%.
Kratkotrajna (mesec dni) < 95%.
Brez kondenza.
Vibracije m/s 0.5 ali manj.
IP stopnja (s) IP 20
Krmilnik R-30iA, Mere (mm) (ŠxVxD) 370 x 200 x 450.
Napetost 200-230VAC, 50-60Hz, 1-faza.
Vhodna moč 1.0 KVA
Povprečna poraba 200 Wattov.
2.3 Gibi
Gibi, ki jih lahko izvaja, so standardni. To pomeni, da lahko izvede gib od točke do točke
(point to point), kjer ni pomembna pot, ampak hitrost dosega cilja.
Slika 2.1: Primer giba od točke do točke
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 5 -
V tesnejših predelih delovnega prostora, kjer so moţnosti kolizij večje, lahko
uporabljamo linearne gibe, pri katerih se robot premika po navidezni premici med dvema
točkama.
Slika 2.2: Primer linearnega giba
Moţni so še gibi: po kroţnici, po krivuljah med določenimi točkami, rotacijski gib
zapestja okoli trenutnega poloţaja vrha orodja, ki pa za nas niso prišli v poštev. Poloţajne
spremenljivke so oblike XYZWPR, kjer prve tri koordinate predstavljajo poloţaj v ravnini
glede na osi x, y, z, druge tri pa rotacije okoli prvih treh osi. Točke skozi katere potekajo gibi
so lahko končne ali prehodne. Končne so tiste, ki jih TCP robota popolnoma doseţe in se šele
potem giblje do naslednje, medtem ko se prehodnim le v določenem odstotku pribliţa. To
lahko pri ukazu CNT tudi nastavljamo. Bolj se mora robot točki pribliţati, bolj počasno je
celotno gibanje in obratno, dlje kot jo lahko obide, hitrejši je gib do naslednje točke.
Za premikanje po oseh x, y in z, skrbijo trije motorji, ki premikajo sklepe paralelnega
mehanizma (slika 1: rdeča barva). Tri palice znotraj pa skrbijo za rotacije v zapestju okoli
omenjenih osi (slika 1: modra barva).
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 6 -
Slika 2.3: Paralelni robot Fanuc M1-iA z označenimi sklepi za rotacije in translacije
2.4 Aktuator
Nameščen aktuator je pnevmatsko prijemalo, ki ob proţenju dveh robotskih izhodov
izmenično premika ventile in polni komore. Tako se prijemalo zapira in odpira.
Slika 2.4: Pnevmatsko prijemalo
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 7 -
Dodali smo mu še aluminijaste L-profile, ki se jih lahko poljubno obrača, pri tem pa
spreminjamo moţno velikost predmeta manipulacije. Na te profile so pritjeni plastični
podaljški, s katerimi se objekte prijema. Do prijemala vodijo črni vodniki, ki skrbijo za
proţenje magneta v ventilu. Po modrih cevkah pa dovajamo stisnjen zrak v obe komori.
Uporaba pnevmatskega prijemala je botrovala k dodajanju kompresorja za stisnjen zrak.
Prijemalo tehta okoli 300 gramov.
Robot sam ne more in ne zna obratovati, zato je sestavljen iz dveh sklopov. Prvi je
robot, ki izvaja operacije, drugi pa robotski krmilnik R-30iA, ki je predhodno obdelal
informacije in je nameščen pod robotom ter povezan s kablom.
2.5 Prenosna ročna programirna enota
To je prenosna ročna naprava s tipkami, stikali in krmilnimi palicami, ki omogoča razvoj
programa ter pozicioniranje in orientiranje vrha robota. Upravljanje poteka v celoti prek
uporabniškega vmesnika, imenovanega tudi »teach pendant«, ki je prav tako vezan na
krmilnik. Uporablja se za programiranje in nadzorovanje robota. Poleg ustvarjanja novih
programov, lahko urejamo tudi obstoječe in jih nato poganjamo naprej in nazaj. Zagon je
moţen tudi po korakih, kjer se izvede vsaka vrstica posebej. Nastavljamo % maksimalne
hitrosti. S prenosno ročno programirno enoto lahko premikamo vrh robota v poljuben poloţaj
v delovnem območju ("jogging"), v treh različnih koordinatnih sistemih ("world", "user",
"joint"). Prvi je bazni koordinatni sistem robota v katerem se premikamo po navideznih oseh
x, y in z, ki sovpadajo s podlago. Okoli omenjenih osi se lahko s prijemalom tudi vrtimo.
Drugi je v osnovi enak, le da je to nov koordinatni sistem, določen s strani uporabnika ("user
frame"), ki leţi na določeni oddaljenosti od baznega koordinatnega sistema. Tako ima enaka
točka v obeh sistemih različne koordinate. Koordinatni sistem "joint" pa nam omogoča
premikanje vsakega sklepa robota posebej. Ta nam pride prav v določenih poloţajih, kjer se
lahko pojavi nevarnost singularnosti. Prav tako lahko spreminjamo razne nastavitve krmilnika
in verzijo programske opreme. Moţno je nadzirati robotske, analogne in digitalne vhode in
izhode, ki jih pri aplikaciji nujno potrebujemo. Preko vhoda USB in reţe za kartico pa je
moţno nalaganje programov na krmilnik, ki smo jih napisali ročno ali pa v simulacijskem
programu.
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 8 -
Slika 2.5: Prenosna ročna programirna enota
S "teach pendantom" lahko ustvarjamo tudi koordinatni sistem orodja oziroma "user
tool", saj je razdalja od zadnje prirobnice robota, do vrha TCP odvisna od orodja, ki je
nameščeno. S tem preprečimo kolizije s podlago, objekti ki so predmet manipulacije, ter
moţnimi drugimi roboti v celici.
Fanuc ponuja v okviru strojnega vida namestitev kamere, ter pripradajočo programsko
opremo IrVision za kalibracijo, učenje in pripravo aplikacije. Kar je opisano kasneje.
Nekaj pogosto uporabljenih menijev:
Shift tipka,
nujen
pritisk ob
uporabi
modrih tipk
Menijska
tipka
Tipka za
preklop
med okni
Tipka za
izvajanje
programa
po korakih
Nastavitev
%
maksimalne
hitrosti
Zasilni izklop
Tipke za
učenje in
funkcije
Tipka za
vklop in
izklop
Teach
pendanta,
za »auto«
način
Tipka za
izbiro
programov.
Tipke za
premikanje
robota
(jogging)
Tipke za
izvajanje
programa
naprej in
nazaj
Kurzorji
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 9 -
Za prijavo ter spreminjanje programov in nastavitev: Menu > Passwords > Login.
Nalaganje datotek iz zunanjega medija: Menu > File > File > Utilize > Set device.
Prikaz in sprememba vhodov in izhodov: Menu > IO > Digital/ Analog/ Robot/ UOP
Nastavljanje uporabniške ravnine in vrha orodja: Menu > Frames > Other > Tool/User
Prikaz slike zajete s kamero: Menu > Status > Vision
Ogled koordinat trenutne pozicije: Menu > Position > World/ Joint/ User
Delovni prostor na tem robotu je precej omejen, ker je namenjen le pobiranju in
sortiranju izdelkov na majhnem prostoru. Zaradi tega je pomik po vertikalni osi z zelo
omejen. To je povzročalo preglavice pri načrtovanju trajektorije meta, ki naj bi čimbolj
posnemal človeško gibanje roke pri metanju igralne kocke. Teţave smo rešili z izdelavo
ustrezne delovne mize, ki je delovno površino pribliţala delovnemu prostoru.
Slika 2.6: Omejen delovni prostor
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 10 -
Slika 2.7: Ponazorjeni moţni koti zasuka v zapestju
2.6 Kamera in strojni vid
Za uporabo na našem robotu je bila montirana analogna, črnobela, CMOS kamera
proizvajalca CIS, resolucije VGA.
Ključne lastnosti:
Lahko obratuje pri normalni ali dvojni hitrosti zajemanja slike.
Ima elektronsko zaslonko, ki omogoča čas odpiranja od 1/60 s do 1/20000 s.
Omogoča proţenje s pulznoširinskim modulatorjem (čas ¼ s – 1/20000 s).
Visoka hitrost branja: 60 sličic na sekundo in več pri manj podrobnem zajemanju.
Je majhna, saj je njena masa le 44 g, prostornina pa 29 kubičnih milimetrov.
Preglednica 2.2: Tehnične značilnosti kamere CIS
Značilnost Specifikacija
Poraba energije (W) 1.6 - 2
Obratovalna napetost (V) 12V
Dimenzije š x d x v (mm) 29 x 29 x 29
Natančnost optične osi Center pike 0.1 mm
Resolucija (pik) 659 (h) x 494 (v)
ZAPESTJE
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 11 -
Efektivna resolucija (pik) 648 (h) x 494 (v)
Obratovalna temperatura (°C) Od -5 do 45
Slika 2.8: Označeno slepo območje prikaza kamere
Strojni vid
Slika, ki jo vidimo na zaslonu, je pravzaprav preslikava 3D predmeta iz realnega sveta na
dvodimenzionalno raven, kakršno lahko zaznavamo. 2D digitalna slika je matrika mnoţice
delov slike ali slikovnih elementov. Ta je bila zapisana kot pretvorba analognega signala v
digitalni, med procesom vzorčenja in kvantizacije. Bistvena značilnost strojnega vida je
simulacija človeških moţganov, ki si na podlagi dvodimenzionalne slike ustvarijo podobo
resničnega sveta. Strojni vid podobno naredi z elementi prej omenjene matrike, torej si
vizualizira 3D sceno.
Prvi koraki zajemanja slike segajo v 19. stoletje s takoimenovano kamero na luknjico.
To je bila v bistvu škatla, ki ni prepuščala svetlobe, na sredini pa je imela majhno luknjico. Na
stranici za luknjico se je pojavila obrnjena slika. Luknjica je sluţila za izostritev slike. Na
podoben način delujejo tudi človeške oči pri močnejši svetlobi. Majhna luknjica prepušča zelo
malo svetlobe in posledično so slike precej temne oziroma je potrebno dovolj zunanje
svetlobe.
Efektivna
površina
Slepo
področje
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 12 -
Slika 2.9: Skica nastanka slike
Kamere z lečami so bile razvite ravno iz tega razloga. Leče, ki imajo lahko večji
premer, zbirajo svetlobo na večjem območju in lahko formirajo enako sliko kot kamera z
luknjico, le da je slika svetlejša. Pri tem nastane prav tako obrnjena in nekoliko manjša slika
od realne.
Slika 2.10: Projekcija slike skozi lečo
(2.1)
Pri čemer velja enačba (2.1) in je zo razdalja do objekta, zi je razdalja do slike in f
goriščna razdalja leče.
Virtualna
slika
Luknjica
Projekcija
predmeta
Realni objekt
Projekcija
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 13 -
Pri strojnem vidu je bolj pogosta uporaba centralne perspektive. Ţarki se zbirajo v
ţarišču kamere {C}, neinvertirana slika pa se projecira na razdalji z = f od kamere. Z uporabo
podobnih trikotnikov potrdimo, da je točka iz 3D koordinatnega sistema P=(X,Y,Z)
projecirana na dvodimenzionalno ravnino kot p=(x,y). Kjer veljata enačbi (2.2) in (2.3).
(2.2)
(2.3)
Slika 2.11: Centralna perspektiva
Nekaj lastnosti takšne projekcije:
Transformacija iz 3D prostora na 2D ravnino.
Ravne črte v prostoru se na ravnini projicirajo v ravne, medtem ko se vzporedne črte
vedno bolj pribliţujejo druga drugi in se na »obzorju« zdruţijo.
Stoţnice so projicirane kot stoţnice, naprimer kroţnica se lahko pojavi kot kroţnica ali
kot elipsa, odvisno od kota zasuka med kamero in objektom.
Točk iz prostora ne moremo nikakor enačiti s točkami v ravnini.
Univerza v Mariboru - Fakulteta za strojništvo Diplomsko delo
- 14 -
Slika 2.12: Primer pribliţevanja vzporednih črt
Slika 2.13: Mlinsko kolo projicirano kot elipsa
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 15 -
3 ZASNOVA APLIKACIJE
Zahteva, ki naj bi jih aplikacija zadovoljevala, je bila metanje igralne kocke pod nadzorom
uporabnika, na podlagi števila pik pa izročitev nagrade oziroma nov poskus.
V smislu zasnove aplikacije je bilo potrebno te zahteve npr. kupca, prevesti v inţenirske, to
pomeni določiti rešitve za ţeleno delovanje, pri tem pa upoštevati omejitve in znanje.
Predvideni so bili koraki, ki si sledijo in določajo potek aplikacije:
1. korak: Lociranje in pobiranje kocke (strojni vid).
2. korak: Signaliziranje uporabniku, da lahko s pritiskom na tipko prične z metom kocke.
3. korak: Robot izvaja met po vnaprej določeni trajektoriji, dokler je funkcijska tipka
pritisnjena. V trenutku, ko je funkcijska tipka sproščena se prijemalo odpre ter tako spusti
kocko.
4. korak: Vnovično lociranje kocke in identifikacija števila pik.
5. korak: Preverjanje in primerjanje števila pik.
6. korak: Število pik je med 1 in 5. Sledi pobiranje kocke in poziv k ponovnem metu.
7. korak: Število pik je 6. Sledi pomik na pozicijo zalogovnika in pobiranje čokolade.
8. korak: Signal uporabniku, da lahko ob pritisku tipke sprejme čokolado. Vrnitev v začetno
pozicijo in priprava na ponovni met.
Slika 3.1: Zamišljena skica delovanja aplikacije
Točka meta Smer metanja
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 16 -
3.1 Delovna miza
Na podlagi predvidenega poteka, je bilo potrebno zasnovati delovno celico za nemoteno
izvajanje aplikacije. Na obstoječi sistem smo dodali delovno mizo, uporabniško konzolo ter
dodatno tipko za zasilni izhod. Neizogibne so bile tudi spremembe pozicije kamere.
Slika 3.2: Skica območja pobiranja in zaznavanja s kamero
Nujna je bila prilagoditev delovnega prostora z dvigom spodnje ploskve, kar smo
izvedli z delovno mizo. Najprej smo jo glede na ţeljene mere izrisali v programu za
oblikovanje Catia. Za okvir smo izbrali les, zaradi enostavnosti obdelave in ugodne teţe.
Sredinski del je iz stiropora, ki ob nenamerni koliziji prej popusti kot prijemalo. Tako smo
zaščitili stroj pred poškodbami. Dodani so bili še aluminijasti in plastični profili, ki so omejili
padec kocke na območje, kjer je moţno pobiranje in branje s kamero. Najbolj primerna
podlaga za branje je bil črn šeleshamer papir, saj ne odbija neţelene svetlobe. Barva igralne
kocke je bela s črnimi pikami, ker tako najbolj pride do izraza kontrast, potreben za uspešno
branje. Aplikacija se lahko uporablja v vsakem prostoru, saj smo dodali še dodatno osvetlitev,
ki je bistvena za uspešno prepoznavanje kocke.
Območje delovnega
prostora robota. Le tukaj
TCP doseţe našo kocko.
Območje zaznavanja
kamere
Naris
Tlorisni pogled
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 17 -
Slika 3.3: Načrt za delovno mizo v programu "Catia"
Slika 3.4: Notranji in zunanji del delovne mize
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 18 -
3.2 Uporabniška konzola in tipka za zasilni izklop
Upravljanje robota lahko poteka preko prenosne ročne programirne enote v ročnem reţimu,
lahko pa tudi preko zunanje uporabniške konzole v avtomatskem reţimu. V ročnem je hitrost
omejena na 250 mm/s. Takrat poteka upravljanje v celoti prek teach pendanta. S ključem
lahko preklopimo v avtomatski reţim. Takrat tudi izklopimo prenosno ročno programirno
enoto in aktivna postane uporabniška konzola. Z njo lahko upravljamo vnaprej s programirano
aplikacijo. V avtomatskem reţimu so dosegljive hitrosti do 2000 mm/s.
Slika 3.5: Sprednja stran krmilnika R-30iA
Naša konzola vsebuje bel vrtljiv preklopnik s tremi pozicijami, na katerem izberemo
program, ki ga ţelimo zaganjati. Izbiramo lahko med dvema prednastavljenima programoma.
Zelena start tipka, s katero program zaţenemo ter rdeča tipka za prekinitev. Te tipke so
povezane na sistemske vhode krmilnika, kar pomeni, da imajo stalno funkcijo, ki je
programsko ne moremo spremeniti. Na drugi strani pa je na digitalni vhod povezana bela
funkcijska tipka, ki je predvidena za interakcijo z uporabnikom. Njena funkcija se lahko
programsko poljubno spreminja, trenutno pa se z njeno pomočjo izvaja met in oddajanje
čokolade. Na lučko bele tipke smo sprogramirali utripanje, ko ţelimo od uporabnika neko
akcijo.
Zelena, rdeča in lučka na preklopniku indicirajo naslednje poteke: program je izbran,
teče, je ustavljen. Povezave s krmilnikom so podrobneje opisane v prilogi 3. Stikalo za zeleno
tipko je NO, torej ko ga pritisnemo ga sklenemo. Rdeča tipka pa je kombinacija dveh NC in
Gumb za vklop
in izklop.
Preklop med ročnim
in avtomatskim
načinom.
Reţa za spominsko
kartico.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 19 -
NO stikal. Ta tipka proţi dva vhoda, prvega s pritiskom sklenemo, drugega pa razklenemo.
To ima varnostno funkcijo, saj bi se v primeru pretrganja vodnika delovanje ustavilo, enako
kot ob pritisku tipke.
Slika 3.6: Uporabniška konzola in njeni vhodi na zadnji strani krmilnika
Signali in povezave, ki smo jih uporabili so sledeči:
Priključek CRMA 62:
Bela lučka je povezana na mesto A št. 1 in digitalni izhod 101,
bela tipka na mesto B št. 1 digitalni izhod 101.
NO stikalo rdeče tipke je priključeno na mesto B št. 2 in digitalni vhod 102.
Mesti SDICOM 1 in 2 smo po navodilih povezali na maso. DOSRC 1 pa na +24V.
Priključek CRMA 63
Na 13. mesto dela B, CMDENBL, smo povezali lučko preklopnika. Na 14. signal
FAULT ter lučko rdeče tipke, na 16. Mesto pa lučko zelene tipke in signal BUSY.
Na delu A smo povezali 1. mesto na signal XHOLD ki ga aktivira NC rdeča tipka ter
s tem zaustavi potek programa. 3. mesto zaseda zelena tipka in signal START za
zagon programa. Na mesta 5-8 smo povezali signale PNS za zagon programa po
imenu, ki ga določimo s smerjo preklopnika. Četrto mesto in signal ENBL smo morali
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 20 -
povezati na +24 V, za omogočeno delovanje. Iz enakega razloga pa mesto devet in
SDICOM3 na 0 V.
Dodali smo še dodatno tipko za zasilni izklop. Ta je laţje dosegljiva kadar rokujemo z
uporabniško konzolo. Namestili smo jo levo, na podstavek robota.
Sestavljena je iz dveh NC stikal, ki sta povezani na priključek CRMA 64. Uporabljena so bila
prva štiri mesta na delu B. Nanje smo po vrsti povezali izhod ter vhod za prvo NC stikalo, ter
izhod in vhod za drugo NC stikalo.
Slika 3.7: Tipka za zasilni izklop in točke meta
3.3 Namestitev kamere
Predhodno je bila na robotu ţe nameščena kamera, pritrjena s posebnim nosilcem. Poloţaj
kamere nam glede na območje zajemanja ni ustrezal, saj je kamera zajemala preveč prostora,
kjer robot ni mogel doseči in pobrati kocke. Na prvotni lokaciji tudi premikanje in
nastavljanje poloţaja kamere ni bilo mogoče zaradi oviranja ohišja. Zato smo izdelali nov
nosilec. Ta je nameščen niţje in bliţje podnoţju robota. Rezkane ima dodatne utore, da lahko
kamero poljubno premikamo po nosilcu, kar nam omogoča uporabo tudi za druge aplikacije.
P4
P3
P2
P1
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 21 -
Slika 3.8: Stara (zgoraj) in nova (spodaj) pozicija kamere
Kamero je bilo za pravilno delovanje potrebno najprej konfigurirati in nastaviti. V ta
namen smo ţe prej določili vrh orodja robota ter uporabniško ravnino tako, da smo se z
vrhom orodja pomaknili do skajnih točk osi x in y, ter se dotaknili centra kalibracijske mreţe
kamere (metoda 3 točk). Tako smo poskrbeli za usklajenost uporabniške ravnine in delovnega
območja kamere. Le na tak način se lahko pravilno izvede preračun razdalje in zasuka od
naučene lege predmeta. Kalibracijsko mreţo smo kasneje uporabili za konfiguracijo kamere.
Slika 3.9: Kalibracijska mreţa
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 22 -
Kamera in njene funkcije se programirajo preko računalnika in mreţnega kabla. V
programu internet explorer smo vpisali IP naslov: 192.168.0.1, ki nas vodi do programskega
paketa iR Vision. To je IP naslov robota.
3.4 Kalibracija kamere in nastavitve
Kamero je bilo potrebno pred uporabo kalibrirati, nato pa jo naučiti na zaznavanja objektov in
štetja.
Najprej smo pognali "Vision Setup" in nato "Camera Setup". Tu lahko nastavimo ali je
kamera montirana na robotu ali pa fiksna, kot v našem primeru, zato smo morali okence pri
"Robot mounted camera" pustiti prazno. To je osnovna nastavitev kamere. Za kalibracijo smo
pognali "Grid Pattern Calibration", kar pomeni kalibracija kamere glede na kalibracijsko
mreţo. Za to je najbolje, da se ujema z uporabniško ravnino, kjer mečemo kocko. Pri
nastavitvah smo morali izbrati prej določeno uporabniško ravnino.
Prav tako je bilo potrebno vnesti goriščno razdaljo kamere, ki je 8.0 mm in razdaljo
med točkami na kalibracijski mreţi, ki smo jo uporabili, v našem primeru 19.5 mm. Lahko bi
uporabili katerokoli od predlog, odvisno od velikosti področja, ki ga ţelimo zajemati.
Ko smo nastavili vse potrebne parametre, smo kliknili še na "Set Frame" ter "Find".
Program nam je sam sporočil ali je kalibracija kamere potekla uspešno, z zeleno obarvanim
tekstom »trained«. Kamera na tak način svoje vidno območje razdeli na manjše odseke in jih
lokalizira. Kasneje, ob padcu kocke, določi odmik in zasuk od izhodiščne lege ter jo tako
lahko pobere.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 23 -
Slika 3.10: Kalibracija in nastavitve kamere
Slika 3.11: Koordinate točk na kalibracijski mreţi
Pravilnost zaznanih točk smo preverili glede na izpis koordinat na sliki 3.11. Uporaba
enostavnih geometrijskih enačb pride še kako prav. V primeru, da imajo določene točke dva
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 24 -
centra, torej enega rdečega ter enega zelenega, to preprosto ponazarja razliko med prebrano
ter izračunano točko. Če pa je bila točka dislocirana od mreţe, oziroma prebrana med dvema
kalibracijskima točkama, smo jo preprosto označili ter pobrisali v stranskem oknu pod
zavihkom "points".
Po kalibraciji in konfiguraciji je bila kamera pripravljena za učenje prepoznavanja
objektov. Za konfiguracijo prepoznavanja kocke in pik je bilo potrebno ustvariti nov 2-D
"Single Vision Process", ki smo ga našli v meniju "Vision Process Tools". Novo
ustvarjenemu procesu smo dodali orodji za iskanje poloţaja ter štetje pik.
Za prepoznavanje objekta smo si morali najprej načrtati sredino območja, od koder se
je lahko računal odmik od začetne lege. To smo s svinčnikom fizično označili na podlago.
Nastavili smo referenčno pozicijo na prej označeno sredino in zadevo shranili. Ponovno se je
izpisal zeleni tekst "trained". V to pozicijo smo kasneje kocko tudi postavili in jo učili
poloţaja.
Dobro je, da je kocka obrnjena pravokotno na ravnino, saj tako laţje poteka začetno
zaznavanje in maskiranje. Nadaljevali smo z učenjem iskanja kocke ter maskiranjem
površine. Dodali smo orodje "Geometric pattern tool" (slika 3.12).
Slika 3.12: Maskiranje objekta
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 25 -
Za maskiranje smo se odločili, ker bi bila drugače pri sami orientaciji kocke
upoštevana tudi postavitev pik, pri čemer je pri nekaterih ploskvah omogočena rotacija kocke
za 360° torej +180° ter -180°. Posledično bi se tako obrnilo tudi prijemalo. Če pa je površina
kocke maskirana, lahko s prijemalom po objektu posega le s kotom zasuka 90° torej +45° ali
-45°, saj je kocka z vseh strani enaka.
Maskiranje smo nastavili tako, da smo obkljukali okvirček "Training mask" in ga
povlekli preko kocke. Za najboljše se je izkazalo, da kocko maskiramo skoraj po celotni
površini. Nastavitev smo shranili in preizkusili s pritiskom na "Snap and Find". Izpisalo se je
nahajališče objekta glede na kalibracijsko mreţo.
Slika 3.13: Zaznan objekt
Ko smo objekt uspešno zaznali, smo morali na njem prešteti še pike. Dodali smo
"Geometric Pattern Tool". Postopek je bil v celoti enak kot pri prepoznavanju kocke, le da
smo maskirali vse ostalo, razen pike in malega kolobarja okoli nje. Tako je bila lahko zaznana
na vsaki ploskvi vsaka pika posebej.
Ponovno smo preizkusili delovanje s "Save" in nato "Snap and Find", ki nam je vrnilo
pravilno število pik na kocki.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 26 -
Slika 3.14: Maskiranje pik in spodaj preštete pike
Do zdaj smo vse pike zaznali, nismo pa jih še prešteli. Zato smo dodali nov proces:
"Measurement Output Tool".
Izbrali smo ime našega procesa za prepoznavanje pik. Nato smo izbrali kam v vizualni
register se bo podatek shranil. Tega smo potrebovali za nadaljno obdelavo in delovanje, kjer
je bil uporabljen kot pogoj v logiki programa. Preizkus nam je vrnil število pik, ki jih je
zaznal.
Slika 3.15: Priprava orodja za štetje pik
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 27 -
3.5 Simulacija
Po uspešni namestitvi in pripravi vseh perifernih modulov, smo ţeleli začeti s
programiranjem programa za metanje kocke. To je program, ki vsebuje vse točke, skozi
katere se giblje prijemalo pri metu. Na tem mestu se nam je zataknilo, saj nismo vedeli točnih
meja delovnega prostora ter moţnosti kolizij z drugimi objekti.
Zato smo se odločili uporabiti Fanucov programski paket Roboguide, ki omogoča
simuliranje uporabnikove delovne celice in tako virtualizirali naš proces.
Roboguide
Nov projekt smo odprli s klikom na gumb file in nato new cell. Nato smo izbrali ime celice in
s klikom naprej prišli do menija, kjer smo lahko izbirali med novim robotom ali pa takim, ki
smo ga ţe uporabili v kakšni prejšnji delovni celici. V naslednjem koraku smo izbrali verzijo
programske opreme, ki smo jo ţeleli uporabljati na našem virtualnem robotu. Nato smo izbrali
še aplikacijo za poganjanje. Pri nas je bil to Handling Tool. Peti korak je bila izbira ţelenega
robota iz velikega nabora podprtih. V naslednjem koraku smo lahko izbrali dodatnega robota
v našo delovno celico. Klik na gumb naprej nam je pokazal dodatne progamske opcije na
robotu, kot so 2D vision, karel in ostali. S čarovnikom smo tako končali. Med nalaganjem in
inicializacijo virtualne celice, nas je program še vprašal za kota med robotom in stojalom ter
stojalom in podlago. V našem primeru sta oba kota 0°. Za vnos tega smo morali najprej
razširiti virtualni teach pendant in spodaj izbrati ikono "TP KeyPad". Inicializacija se je
nadaljevala in pokazala se je naša delovna celica z robotom, ki smo jo lahko nato oblikovali
po ţelji.
V manjšem oknu cell browser lahko dodajamo ovire oziroma objekte, kreiramo programe in
vnašamo spremenljivke. Gumbi v orodni vrstici izdajo svojo funkcijo ob postanku z miško
nad vsakim.
Roboguide nam omogoča tudi natančno modeliranje delovne celice z CAD modeli,
nekaj jih je vključenih ţe v knjiţnici. Prav tako lahko vse elemente pozicioniramo in
dimenzioniramo primerljivo realnim razmeram.
Izmeriti in skicirati je bilo potrebno stojalo v realni delovni celici. Na podlagi teh mer,
smo izdelali CAD dele v programu Catia. Morali smo konstruirati tudi stojalo na katerem
robot stoji, saj ga knjiţnica ni ponujala. Po izvozu v primeren format smo pozicionirali
posamezne dele v prave dimenzije, ter tako sestavili stojalo in delovno mizo. Pomagali smo si
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 28 -
z moţnostjo "measure". V meniju "objects" smo izbrali objekte, ki jih bomo pobirali,
prenašali in spuščali. Tudi kocka in čokolada sta realnih dimenzij.
Najprej smo morali prijemalu nastaviti koordinate vrha orodja, glede na zadnjo
prirobnico zapestja. To smo določili glede na realno prijemalo. Po meritvah prijemala smo mu
nastavili tudi natančne dimenzije in maso. Naslednji korak je bilo dodajanje in spoznavanje
objektov ter njihove lokacije in orientacije. Obkljukali smo objekta čokolada in kocka, ki smo
ju ţeleli premikati. V oknu za prikaz odmika od koordinatnega izhodišča je prikazan poloţaj
objekta v prijemalu. Tukaj lahko spreminjamo vrednosti, lahko pa ga premikamo kar s
prijemanjem posamezne osi koordinatnega sistema objekta. Za vsak objekt je bilo potrebno
določiti tudi na katerem delu konstrukcije leţi in izbrati ustrezno poleg gumba »Move to«.
Nato smo s pritiskom tega gumba poskusili ali prijemalo lahko doseţe objekt. Podrobne
nastavitve so vidne na spodnji sliki.
Slika 3.16: Virtualna in realna delovna celica
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 29 -
Slika 3.17: Nastavitve prijemala, ki omogoča pobiranje in odlaganje
Objekte smo morali določiti tudi na določeni ploskvi, na kateri se pojavljajo. Prav tako
jih je bilo potrebno pozicionirati ter jim določiti mere, enake realnim. Obkljukati je bilo
potrebno še dve okenci na desni sliki, s čimer podlaga dovoljuje, da se z nje objekti pobirajo
in nanjo polagajo. Dodana je bila še zakasnitev pred uničenjem, ki mora biti malo večja, saj
drugače objekt prehitro izgine. Ponovno smo s pritiskom na gumb »Move to« preverili ali se
prijemalo lahko premakne do objekta in ga pobere. Nastale so teţave z orientacijo objektov
napram orientaciji prijemala. Zato smo se ponovno vrnili v okno za pozicioniranje in z
rotiranjem okoli osi objekte pravilno obrnili.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 30 -
Slika 3.18: Nastavitve podlage za pobiranje in odlaganje objektov
Slika 3.19: Virtualno prijemalo
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 31 -
Zaradi zadovoljitve zahteve po kompatibilnosti programa med virtualno in realno
delovno celico, smo prilagodili še uporabniški koordinatni sistem oziroma uporabniško
ravnino. Ta je precej odstopala od bazne, saj je ničla tega sistema nekje v ohišju robota in
praktično nedosegljiva. Uporabniška ravnina se od bazne razlikuje le za razdaljo med
središčema obeh koordinatnih sistemov.
Lotili smo se načrtovanja programa. Najprej smo z virtualnim teach pendantom v
programu Roboguide le premikali vrh robota in tako iskali meje ter moţne kolizije z elementi
in delovno mizo. Met smo poskušali načrtovati, da bi izgledal čimbolj naraven. Preizkusili
smo tudi pobiranje igralne kocke ter čokolade. Glede na omejitve delovnega prostora, smo
morali delovno mizo malenkost spremeniti, da je zadovoljevala naše ţelje.
Izdelali smo enostaven program, ki vključuje vse pozicije identične realnim. Ker so
nas zanimale le kolizije in omejitve, smo poloţaj kocke izbrali fiksno. Določili pa smo
trajektorijo za pribliţevanje kocki ter zalogovniku za čokolade. Poleg tega smo preizkusili
tudi funkcijsko tipko in navidezno šestico na kocki, ki smo ju simulirali z dvema digitalnima
izhodoma. Prvi je bil pogoj za vračanje v osnovno pozicijo in ponoven poskus meta oziroma
za spuščanje kocke in odpiranje prijemala. Drugi pa je pogojeval pot k zalogovniku za
čokolade oziroma pobiranje kocke in ponovno metanje.
Programiranje je moţno kot na realnem robotu v virtualni prenosni ročni programirni
enoti, le da moramo za simulacijo pobiranja in odlaganja stalno znova poganjati podprogram.
Lahko pa programiramo prek Simulation editorja, ki sam doda simulacijo za pobiranje in
enostavno beleţi trenutne poloţaje in poloţaje na objektih. Koordinate lahko tudi ročno
popravimo, nastaviti pa je moţno še orientacijo, hitrost ter ali je točka končna ali pa se v
bliţini ţe začne premikati v naslednjo. Večina gibov, ki niso v bliţini objektov manipulacije,
je od točke do točke. Ti so čimhitrejši, točke pa obidemo z najmanj pribliţevanja. Kjer pa
obstaja nevarnost trka, pa smo se odločili za linearne gibe. Za samo logiko smo uporabljali
labele in pogojne skoke.V simulacijo smo ţeleli vključiti tudi kamero in pa naključno
pojavljanje igralne kocke na delovni mizi, ampak smo bili za to prikrajšani zaradi
pomankljive podpore za kamero v študentski verziji programa Roboguide.
Dokončan program, ki je zadovoljil naše zahteve po delovanju na virtualni celici, smo
prek usb ključa prenesli na realno celico. Namesto animacij odpiranja in zapiranja prijemala
je bilo potrebno vstaviti pravilne robotske izhode. Poskusni zagon, ki je bil uspešen, smo
opravili pri hitrosti 5% zaradi varnosti. Tako smo dokazali, da je uporaba programov za
načrtovanje virtualnih celic smotrna. V enakem časovnem obdobju lahko na virtualnem
modelu dela več ljudi, na realnem pa le posameznik. Prav tako prihranimo čas in denar, ki bi
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 32 -
bila potrebna za morebitno popravilo ob nenamerni poškodbi dela robota med učenjem
poloţajev.
Slika 3.20: Okno programa simulation editor
Z oranţno so označene ikone in funkcije, ki jih uporabljamo za načrtovanje programa.
S tipko "Record" lahko posnamemo trenutni poloţaj, do katerega smo prišli s prostim
premikanjem prijemala v virtualnem teach pendantu. Koordinatne točke lahko tudi poljubno
spreminjamo, nastavljamo hitrost, vrsto giba in pa ali je točka končna ali prehodna. Naslednji
gumb je "Move to", ki nam omogoča direkten premik TCP do posameznega objekta ali pa do
katerekoli točke v našem programu, če prej nanjo kliknemo, da se obarva modro, nato pa
pritisnemo gumb "Move to". Z gumboma "Forward" in "Backward" lahko poganjamo
program naprej in nazaj. Gumb "Inst" pa ima enake funkcije kot na realnem robotu. Tukaj se
nam odpre meni za izvedbo simulacije za pobiranje in odlaganje objektov, nastavitve
zakasnitev, izvedbo programskih skokov, pogojnih ukazov ter label.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 33 -
Na podlagi izsledkov in spoznanj, ki so nam jih dali rezultati simulacije, smo začeli
pripravljati programe, ki bodo tekli na realnem robotu in bodo zajeli vse zahteve opisane na
začetku.
3.6 Načrtovanje programa
Najprej se poţene program, ki ga aktiviramo s preklopnikom na konzoli in pritiskom na tipko
start. Poimenovan je "PNS 0101", saj smo v taki konfiguraciji vezali preklopnik na
uporabniške izhode na konektorjih na zadnjem delu robota. Funkcija se imenuje "Program
name select". Vanjo dostopamo prek teach pendanta, gumb "Meni" > "Setup">"Prog Select".
Ta program kliče prvi program imenovan "Fanuc kocka", ki robota postavi v referenčno
točko. Nato se poţene program "Vision". V njem poteka vision proces, torej z uporabo
kamere beremo poloţaj, orientacijo kocke ter število pik. Odvisno od števila pik robot kocko
pobere ali pa nas nagradi s čokolado. Podatek o poloţaju in rotaciji, ter številu pik igralne
kocke je zapisan v vizualnem registru "VR[1]". Nato smo število pik prepisali v register
"R[200]" saj smo ga potrebovali kot pogoj za vejitev.
V primeru, da je število pik 6, skoči v program "Cokolada", kjer se prijemalo pribliţa
zalogovniku za čokolade, jo prime in preda uporabniku. Na tem mestu se poţene program
"Utripanje_fun_tipk", s katerim z utripanjem bele tipke od igralca pričakujemo akcijo. Robot
po pritisku funkcijske tipke prebere registre, kjer sta zapisana poloţaj in orientacija kocke, jo
pobere in čaka v referenčnem poloţaju za met. Lahko ponovno mečemo.
Če pa nam ni uspelo vreči šestice, se program "Vision" izvede do konca. Kocko se
locira in pobere ter vrne v referenčno točko. Zaţene se program "Met_kocke", z njim pa
utripanje lučke, ki od nas ţeli, da s pritiskom na funkcijsko tipko pričnemo izvajati met.
Pritisk na fukncijsko tipko je pogoj za zagon podprograma "Met_kocke_OP" . Robot premika
prijemalo od ene do druge skrajne lege za metanje tako dolgo, dokler tipke na smiselnem
mestu ne spustimo.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 34 -
Slika 3.21: Skica delovanja meta kocke
Med metanjem kocke se nam je pojavil problem, saj smo pri višjih hitrostih teţko
zadeli kamerino območje prepoznavanja. Ali je bil met predčasen ali pa smo kocko spustili
med metom nazaj. Zato smo dodatno zaščito pred neţelenim prehitrim ali prepoznim metom
izvedli z ukazom, ki postavi digitalni izhod, ko je prijemalo v določeni oddaljenosti od
končne točke. Iz meta kocke ponovno skočimo v program "Vision".
"Met_kocke_OP" se izvaja cel cikel metanja kocke in skrbi, da se v trenutku spuščene
funkcijske tipke in ob pogoju bliţine končne točke prijemalo odpre. Sama trajektorija meta pa
se kljub odprtemu prijemalu izvede do konca, saj je bila to najuspešnejša metoda, da je kocka
zadela ţeleno območje.
Za bolj nazorno predstavo teţje razumljivih delov poteka programa, so priloţeni tudi
diagrami potekov. V prilogi so zaradi dolţine dodane tudi komentirane kode vseh programov.
Načrtovana
trajektorija meta
Območje, kjer
met ni dovoljen Območje, kjer je spuščanje
kocke dovoljeno v obe
smeri meta. V radiju 80
mm okoli točke
r=80
mm
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 35 -
Slika 3.22: Diagram poteka celotnega programa
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 36 -
Slika 3.23: Diagram poteka za programa "Vision" in "Cokolada"
Slika 3.24: Diagram poteka za programa "Met_Kocke" in "Met_Kocke_OP"
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 37 -
Karel
Karel je eden izmed jezikov, ki jih podpira Fanuc. Pravzaprav je to programski jezik, ki
temelji na Pascalu, Fanuc pa ga je prilagodil svojim potrebam in ga preimenoval v Karel. Bil
naj bi del vsake kompleksne robotske aplikacije. Skupaj z jezikom TP, ki je bolj uporaben za
določanje in učenje pozicij, tvorita celoto. Karel pa pokriva programiranje zahtevnejše logike.
Zato smo tudi mi, enostavno aplikacijo, ki je bila prej namenjena za simulacijo
sprogramirali še v Karelu. Uporabili smo programski paket Roboguide, ki vključuje
prevajalnik in razhroščevalnik. Lahko pa pišemo kar v beleţnici in dodamo končnico .KL. To
datoteko nato prevajalnik prevede v datoteko s končnico .PC, katere lahko nalagamo na
robotski krmilnik.
Program smo zasnovali z ročnim vnosom točk. Spremenljivkam smo določili tudi tip.
Tu smo imeli veliko teţav z nastavitvijo trenutne uporabniške ravnine in orodja, saj je bil na
voljo le uporabniški priročnik za izkušene Fanucove programerje. Po raziskovanju na
številnih tujih forumih, smo končno prišli do premika. Program je potekal tako, da je prebral
trenutni poloţaj, nato pa se je na osnovi podanih točk premikal po ţeljeni trajektoriji. Glede
na okoliščine giba smo prilagodili tudi njegov tip.
Slika 3.25: Okno za urejanje in prevajanje programa v "karelu"
Tipka za
prevajanje
programa.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 38 -
4 SKLEP
Zamisel za aplikacijo oziroma zahteve "kupca" smo najprej pretvorili v zahteve za inţenirja.
Torej, kaj kupec ţeli, ter kako smo se mi tega lotili. Rezultati dela so vidni na strojnem
oziroma fizičnem področju, ter v programskem. To so prek simulacije načrtovana in izdelana
delovna miza, dodane zunanje kontrole, spremenjena pozicije kamere. Povezava kamere z
računalnikom in programsko opremo na njem ter njena kalibracija in konfiguracija. Kreiranje
najprej simulacijskega ter nato programa za tek na realnem robotu. Z reševanjem raznih
programskih teţav smo utrdili znanje programiranja. Z virtualno delovno celico smo potrdili
tezo, da je virtualni način hitrejši, naredimo lahko manj škode ob ugotavljanju omejitev
delovnega prostora in kolizij, prav tako laţje načrtujemo spremembe delovnega prostora in
celice, saj lahko sproti konstruiramo dodatne dele. Nekoliko zamudno je le natančo merjenje
in nato modeliranje in pozicioniranje delovne celice, ter robota. Pokazali smo da je bil prenos
programa iz simulacije na realni model uspešna.
Problem teţjega pobiranja kocke je bil rešen z ločenim štetjem pik in ločenim
lociranjem. Locirana je bila prazna kocka, naknadno pa preštete pike. To je močno
poenostavilo pobiranje in reduciralo vrtenje zapestja na ±45°.
Občasne teţave kamere z branjem števila pik in pozicije kocke smo rešili z dodatno
osvetljavo.
Neraziskana pa je ostala zadeva s filtri, ki prepuščajo določeno valovno dolţino
svetlobe in s tem določeno barvo. Z uporabo teh, naj bi se zmanjšal vpliv odboja svetlobe in
izboljšala kvaliteta zajete slike.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 39 -
VIRI IN LITERATURA
[1] Fanuc Karel navodila za uporabo in vzdrţevanje [svetovni splet]. Fanuc.
Dostopno na WWW: https://cours.etsmtl.ca/gpa774/Cours/old-24-03
04/Documentations/Fanuc/index.htm [15. 12. 2012].
[2] Podatkovni list za Fanuc M1-iA [svetovni splet]. Fanuc. Dostopno na WWW:
http://www.robots.com/fanuc/m-1ia [19. 11. 2012].
[3] Seznam in opis ukazov za programski jezik Karel. Fanuc. [svetovni splet].
Dostopno na WWW:https://cours.etsmtl.ca/gpa774/Cours/old-24-03
04/Documentations/Fanuc/ssr51198.boo/div0029.htm [5. 5. 2013].
[4] Podatkovni list za CMOS kamero CIS [svetovni splet]. CIS. Dostopno na WWW:
http://www.surevision.com.tw/CIS/VCC-G20V30%20maunal.pdf [20. 5. 2013].
[5] Uporabnik piecitopunk: Vodič za program Roboguide [svetovni splet]. Dostopno
na WWW: http://www.youtube.com/watch?v=Ue9xqVS-zo8 [21. 3. 2013].
[6] Fanuc robot forum: Diskusija na temo programiranja v Karel [svetovni splet].
Dostopno na WWW: http://www.robot-forum.com/robotforum/fanuc-robot-
forum/?PHPSESSID=tb51ng140ubooolbl6skkehn7ijbt6b8 [10. 4. 2013].
[7] Fanuc robot forum: Diskusija na temo programiranja pozicij [svetovni splet].
Dostopno na WWW: http://www.roboterforum.de/roboter-forum/fanuc-
roboter/aktuelle-position-des-roboters-bestimmen-in-karel/ [10. 4. 2013].
[8] Uporabnik polarbear60: Vodič za začetnike v programu Catia [svetovni
splet].Dostopno na WWW:http://www.youtube.com/watch?v=36Fjy5NQnzA [1.
4. 2013].
[9] Uporabnik Rosanna Daniel: Vodič za sestavljanje delov v programu Catia
[svetovni splet]. Dostopno na
WWW:http://www.youtube.com/watch?v=HgwEzMljFd4 [18. 4. 2013].
[10] Bajd Tadej, Mihelj Matjaţ, Lenarčič Jadran, Stanovnik Aleš, Munih Marko.
Robotika: univerzitetni učbenik. Ljubljana: Fakulteta za elektrotehniko, 2008.
[11] Kovačič Stanislav. Strojni vid: predavanja. Ljubljana: Fakulteta za
elektrotehniko.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 40 -
PRILOGE
PRILOGA 1: Koda in opis TP programov
FANUC_ KOCKA:
V programu "Fanuc kocka" najprej kličemo podprogram za odpiranje prijemala. V 3. vrstici
preverjamo ali je preklopnik vklopljen ali ne. Če ni, čakamo na njegov vklop. V 6. vrstici
kličemo podprogram "Vision", počakamo pol sekunde in se pripravimo na drugi cikel branja
kocke, s skokom v labelo 100.
VISION
V prvi in drugi vrstici izbiramo uporabniško ravnino in koordinatni sistem orodja, nato se z
gibom pomaknemo v domačo pozicijo P1. Zaţene se prepoznavanje kocke. Podatki o lokaciji
se shranijo v VR[1]. Če slika ni bila prepoznana, se program izvede ponovno. V register
R[200] prepišemo podatke o številu pik na kocki, saj jih kasneje potrebujemo za primerjavo.
Če smo vrgli 6, kličemo program čokolada, če pa šestice nismo vrgli, se pomaknemo v dva
poloţaja za pribliţevanje zalogovniku za čokolade (9., 10. vrstica). Nato se prijemalo zapre in
prične se oddaljevanje ter vračanje v domačo pozicijo, kjer se zaţene program "Met_kocke".
COKOLADA
Premaknemo se proti zalogovniku za čokolade in zapremo prijemalo. Izvedemo 4 linearne
gibe, s katerimi se odmaknemo od zalogovnika. Z naslednjim gibom ponudimo čokolado
igralcu, ta pa je pozvan na akcijo z zagonom programa za utripanje funkcijskih tipk. Če je
tipka pritisnjena skočimo na labelo 3, kar pomeni, da se prijemalo odpre, če pa tipka ni
pritisnjena pa čakamo na signal.
MET KOCKE
Program "Met kocke" začnemo z gibom v izhodiščno točko, nato preventivno čakamo pol
sekunde. Zaţene se program za utripanje funkcijske tipke, ki poziva igralca, da jo pritisne in s
tem prične z metom. Tako nadaljujemo do labele 3, kjer končamo program za utripanje.
Prične se gib za metanje kocke in ko doseţemo 3. točko, se ob pritisku tipke in ob pogoju, da
smo od 4. točke oddaljeni 80 mm ali manj (vrstica 16) zaţene program za odpiranje prijemala.
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 41 -
Ob dosegu končne točke P4, se konča program za odpiranje prijemala. Če kocke nismo vrgli,
se lahko met ponovno izvede. V primeru, da je kocka padla, skočimo naprej in ponovno
pošljemo pulz, ki zaključi program za odpiranje prijemala, nato pa se premaknemo proti
začetni poziciji. V vrstici 29 najdemo ukaz, ki zaustavi program ob izklopu preklopnika. Če
pa preklopnik pustimo, se program izvede do konca.
MET KOCKE OP
Pri programu za odpiranje prijemala med metom kocke najprej čakamo, da doseţemo okolico
točke P4. Ob pridrţani funkcijski tipki čakamo, dokler ni spuščena, nato pa odpremo
prijemalo. Programu za met kocke s pulzom na digitalni izhod 103 sporočimo, da je prijemalo
odprto. Če je bil v vrstici 3 zaznan pulz za končanje programa, skočimo takoj na konec.
UTRIPANJE_FUN_TIPK
Program za utripanje funkcijske tipke deluje enostavno tako, da 0,2 sekunde pošiljamo signal
na digitalni vhod, kjer je priključena lučka, nato pa 0,4 sekunde čakamo in to ponavljamo,
dokler nekdo tipke ne pritisne, nato pa se utripanje kočna ter s tem tudi program.
Podrobnejša vloga posameznih vrstic, pa je prikazana v komentarjih kod programov.
FANUC_KOCKA
1: CALL OP ; Kliče program za odprtje prijemala
2: LBL[99] ;
3: IF DI[85]=ON,JMP LBL[100] ; Preverja ali je preklopnik vklopljen
4: JMP LBL[99] ; Če preklopnik ni vklopljen čaka dokler, da ga vklopimo
5: LBL[100] ;
6: CALL VISION ; Klic programa Vision
7: WAIT .50(sec) ;
8: JMP LBL[100] ; Ponovno se pripravi za klic programa vision
/POS
/END
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 42 -
VISION
1: UFRAME_NUM=1 ; Izbira uporabniške ravnine št. 1
2: UTOOL_NUM=1 ; Izbira koordinatnega sistema orodja št. 1
3: LBL[9] ;
4:L P[1:HOME] 4000mm/sec FINE ; Gib v domačo pozicijo.
5: VISION RUN_FIND 'DEMIFANUC' ; Zagon prepoznavanja kocke
6: VISION GET_OFFSET 'DEMIFANUC' VR[1] JMP LBL[9] ; Podatki o lokaciji se
shranijo v VR[1]. Če ni prepoznal to izvede še enkrat
7: R[200]=VR[1].MES[1] ; V register R[200] prepišemo podatke o številu pik na kocki iz
VR[1].
8: IF R[200]=6,CALL COKOLADA ; V primeru, da je na kocki šestica se zaţene program
COKOLADA
9:L P[2:APP] 3500mm/sec FINE VOFFSET,VR[1] ; Če nismo vrgli 6 se pobira kocka:
Ukaz za pribliţevanje po x in y oseh
10:L P[3:GRASP] 3500mm/sec FINE VOFFSET,VR[1] ; Pribliţevanje po z osi.
11: CALL ZP ; Podprogram za zaprtje prijemala.
12:L P[2:APP] 3500mm/sec FINE VOFFSET,VR[1] ; Vrnemo se nazaj v točko pobiranja
nad kocko.
13: CALL MET_KOCKE ; Kličemo program MET_KOCKE in pričnemo z metanjem
kocke.
/END
COKOLADA
1:J P[1] 100% FINE ; Premik proti zalogovniku za čokolade
2:L P[2] 4000mm/sec FINE ; Linearni gib do čokolade
3: CALL ZP ; Zapiranje prijemala.
4:L P[3] 3000mm/sec FINE ; Naslednji 4 gibi se oddaljujejo od zalogovnika, ter
5:L P[4] 3000mm/sec FINE ; pripravljajo trajektorijo proti točki, kjer čokolado
6:L P[5] 3000mm/sec FINE ; ponudimo igralcu.
7:J P[6] 100% FINE ;
8: RUN UTRIPANJE_FUN_TIP ; Zagon programa za utripanje lučk - ţeljena akcija
uporabnika
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 43 -
9: LBL[2] ;
10: IF DI[101]=ON,JMP LBL[3] ; Če je funkcijska tipka pritisnjena skočimo na
labelo 3 (skok)
11: IF DI[101]=OFF,JMP LBL[2] ; Če pa ni pa čakamo dokler je ne pritisnemo.
labela 2 (skok)
12: LBL[3] ;
13: DO[104]=PULSE,1.0sec ; Postavljen digitalni izhod da prekinemo izvajanje
utripanja lučk.
14: CALL OP ; Odpremo prijemalo
15:J P[7] 100% FINE ; Pomaknemo se proti izhodiščni točki za ponovni met.
16: ;
/END
MET_KOCKE
1: LBL[1] ;
2:L P[1] 4000mm/sec FINE ; Gib v izhodiščno točko
3: WAIT .50(sec) ; Preventivno čakamo pol sekunde
4: RUN UTRIPANJE_FUN_TIP ; Zagon programa utripanje fun. tipke,
čakamo na akcijo uporabnika, da začne z metom.
5: LBL[2] ;
6: IF DI[101]=ON,JMP LBL[3] ; Če je tipka pritisnjena nadaljujemo do labele 3
7: IF DI[101]=OFF,JMP LBL[2] ; Če tipka ni pritisnjena čakamo dokler je ne pritisnemo.
8: LBL[3] ;
9: DO[104]=PULSE,1.0sec ; Končamo program utripanje fun. tipke
10: LBL[4] ;
11:J P[2] 100% FINE ; Začetek giba za met kocke
12: LBL[5] ;
13:J P[3] 100% CNT100 ; Druga točka giba za met kocke
14: RUN MET_KOCKE_OP ; Zagon programa za odpiranje prijemala Met
kocke op
15: ;
16:J P[4] 100% CNT100 DB 80.0mm,DO[111]=PULSE,0.5sec ; V okolici točke
80mm lahko spuščamo kocko
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 44 -
17:J P[4] 100% FINE DB 0.0mm,DO[102]=PULSE,0.5sec ; Ko doseţemo točko
končamo program za odpiranje prijemala
18: IF DO[103]=ON,JMP LBL[7] ; V primeru, da smo kocko
vrgli se postavi digitalni izhod 103 in preskočimo do labele 7
19: LBL[6] ;
20:J P[3] 100% CNT100 ; Gib nazaj
21: ;
22:J P[2] 100% FINE ; Naslednja točka giba nazaj
23: IF DO[103]=ON,JMP LBL[7] ; Ponovno preverjamo ali je
kocka padla. če je skočimo do labele 7
24: DO[102]=PULSE,0.2sec ; zaključimo program met
kocke op
25: IF DO[103]=OFF,JMP LBL[4] ; če pa kocka ni padla,
skočimo do labele 4 in met se lahko ponovno izvede
26: LBL[7] ;
27: DO[102]=PULSE,1.0sec ; Zaključimo program za met
kocke če se slučajno še ni.
28:J P[1] 100% FINE ; Pomaknemo se proti izhodišču
29: IF UI[9:RSR1/PNS1]=OFF,JMP LBL[100] ; Če preklopnik izklopimo,
prisilno izklopimo tudi program
30: JMP LBL[200] ; Če pa ga ne pa se izvede do
konca
31: LBL[100] ;
32: ABORT ;
33: LBL[200] ;
/END
MET_KOCKE_OP Macro
1: WAIT DO[111]=ON ; Čakamo na okolico točke
2: LBL[1] ;
3: IF DI[101]=OFF,JMP LBL[2] ; če je tipka spuščena skočimo do labele 2
4: IF DO[102]=ON,JMP LBL[3] ; Če je poslan pulz za končanje programa skočimo na
labelo 3
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 45 -
5: IF DI[101]=ON,JMP LBL[1] ; Če je tipka pritisnjena čakamo, dokler ni spuščena-
gremo na labelo 1
6: LBL[2] ;
7: RO[1]=OFF ; z RO[1] in [2] odpremo prijemalo.
8: RO[2]=ON ;
9: ;
10: DO[103]=PULSE,2.0sec ; Programu za met kocke sporočimo, da je prijemalo odprto.
11: ;
12: LBL[3] ;
13: ABORT ; predčasno zaključevanje programa
/POS
/END
UTRIPANJE_FUN_TIPK
1: LBL[1] ;
2: DO[101]=PULSE,0.2sec ; Postavimo digitalni izhod, kamor je priklopljena lučka v
funkcijski tipki
3: WAIT .40(sec) ; čakamo 0,4 sekunde
4: IF DO[104]=ON,JMP LBL[2] ; če tipko pritisnemo se utripanje konča - skočimo do
labele 2
5: JMP LBL[1] ; če pa je ne pa se lučka ponovno priţge za 0,2 sekundi
6: LBL[2] ;
/POS
/END
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 46 -
PRILOGA 2: Koda in opis programa KAREL
Pod ukazom VAR definiramo spremenljivke, ter jim določimo tip. BEGIN je ukaz za začetek
programa. Nato smo določili spremenljivko za uporabniško ravnino in TCP (group_no=1).
To smo v naslednjih 2 vrsticah tudi uporabili in izbrali uporabniško ravnino 1 in TCP 1. Z
ukazom CURPOS smo brali trenutni poloţaj in ga vpisali v spremenljivko start. Nato smo
izbrali še vrsto giba in orientacijo. Sledil je zapis posameznih točk, ter gibanje od ene do
druge z ukazom MOVE TO.
PROGRAM karelov
VAR -- definiranje spremenljivk, ter njihov tip.
start, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11: XYZWPREXT
group_no, prog_index: INTEGER
BEGIN -- ukaz za začetek
group_no = 1 -- zaporedna številka uporabniške ravnine in koordinatnega sistema orodja
$GROUP[group_no].$UFRAME = $MNUFRAME[group_no,
$MNUFRAMENUM[group_no]] -- spremenljivko group_no zapišemo v register$UFRAME
in nastavimo obstoječo uporabniško ravnino
$GROUP[group_no].$UTOOL = $MNUTOOL[group_no, $MNUTOOLNUM[group_no]] --
Spremenljivko group_no zapišemo v $UTOOL in nastavimo koordinatni sistem orodja
obstoječ pod številko 1.
start = CURPOS(0,0) -- branje trenutne pozicije
$MOTYPE=7 -- vrsta giba
$ORIENT_TYPE=1 -- orientacija
start.x = -49 -- koordinate posameznih točk
start.y = 129
start.z = 29
start.w = 91
start.p = -1
start.r = 93
p1.x = 14.904
p1.y = 19.134
p1.z = 44.178
p1.w = 90
p1.p = -1
p1.r = 90
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 47 -
p2.x = 14.9
p2.y = 19.134
p2.z = 5.298
p2.w = 90
p2.p = -1
p2.r = 90
p3.x = -16
p3.y = 215
p3.z = 65
p3.w = 70
p3.p = -57
p3.r = 111
p4.x = 33
p4.y = 123
p4.z = 25
p4.w = 92
p4.p = -7
p4.r = 86
p5.x = 6
p5.y = 24
p5.z = 59
p5.w = 86
p5.p = 53
p5.r = 86
p6.x = -119
p6.y = 128
p6.z = 28
p6.w = 84
p6.p = -2
p6.r = -178.7
p7.x = -119
p7.y = 136
p7.z = -14
p7.w = 84
p7.p = -2
p7.r = -178.7
p8.x = -119
p8.y = 136
p8.z = -4
p8.w = 84
p8.p = -2
p8.r = -178.7
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 48 -
p9.x = -119.3
p9.y = 89.8
p9.z = -3.9
p9.w = 84
p9.p = -2
p9.r = -178.7
p10.x = -119
p10.y = 89.8
p10.z = 34.2
p10.w = 84
p10.p = -2.6
p10.r = -178.7
p11.x = 60
p11.y = 104.1
p11.z = 51.5
p11.w = 109.4
p11.p = 60.8
p11.r = -158.4
MOVE TO start -- ukaz za premik
MOVE TO p1
CALL_PROG('OP', prog_index) -- ukaz za klic programa OP (odpri prijemalo)
MOVE TO p2
MOVE TO p1
MOVE TO start
MOVE TO p3
MOVE TO p4
MOVE TO p5
MOVE TO start
MOVE TO p6
MOVE TO p7
MOVE TO p8
MOVE TO p9
MOVE TO p10
MOVE TO p11
MOVE TO start
END karelov -- konec programa
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 49 -
PRILOGA 3: Preglednice uporabniških povezav.
Preglednica 4.1: Uporabniške povezave na priključku "CRMA 62"
OPIS POVEZAVE IME POVEZAVE NA KONEKTORJU OPIS POVEZAVE
MESTO MESTO
B-DEL B-DEL A-DEL A-DEL
1 Bela lučka DO101 DI101 Bela tipka
2 DO102 DI102 NO red tipka
3 DO103 DI103
4 DO104 DI104
5 DO105 DI105
6 DO106 DI106
7 DO107 DI107
8 DO108 DI108
9 SDICOM1 0 V
10 DI109
11 DI110
12 DI111
13 DI112
14 DI113
15 DI114
16 DI115
17 +24 V DOSRC1 DI116
18 +24 V DOSRC1 DI117
19 0V DI118
20 0V DI119
21 24F DI120
22 24F SDICOM2 0V
23 24F 0V
24 FG 0V
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 50 -
Preglednica 4.2: Uporabniške povezave na priključku "CRMA 63"
OPIS POVEZAVE IME POVEZAVE NA KONEKTORJU OPIS POVEZAVE
MESTO MESTO
B-DEL B-DEL A-DEL A-DEL
1 DO109 XHOLD NC Red tipka
2 DO110 RESET
3 DO111 START Zelena tipka
4 DO112 ENBL + 24 V
5 DO113 PNS1 Preklopnik [gor]
6 DO114 PNS2 Preklopnik [dol]
7 DO115 PNS3 0 V
8 DO116 PNS4 0 V
9 DO117 SDICOM3 0 V
10 DO118
11 DO119
12 DO120
13 Preklopnik lucka CMDENBL
14 Red lucka FAULT
15 BATALM
16 Zelena lucka BUSY
17 + 24 V DOSRC2
18 + 24 V DOSRC2
19 0V
20 0V
21 24F
22 24F
23 24F 0V
24 FG 0V
Univerza v Mariboru– Fakulteta za strojništvo Diplomsko delo
- 51 -
Preglednica 4.3: Uporabniške povezave na priključku "CRMA 64"
OPIS POVEZAVE IME POVEZAVE NA KONEKTORJU
B-DEL A-DEL
1 Izhod /na NC #1 EES1 ESPB1
2 Vhod / Iz NC #1 EES11 ESPB11
3 Izhod / na NC #2 EES2 ESPB2
4 Vhod / iz NC #2 EES21 ESPB21
5 EAS1 ESPB3
6 EAS11 ESPB31
7 EAS2 ESPB4
8 EAS21 ESPB41
9 EXT24V
10 INT24V
11 INT0V
12 EXT0V