6. ROBOTITE JUHTIMINE...6.2. Roboti liikumise kirjeldamine Roboti juhtimistarkvara (nt RobotWare)...
Transcript of 6. ROBOTITE JUHTIMINE...6.2. Roboti liikumise kirjeldamine Roboti juhtimistarkvara (nt RobotWare)...
6. ROBOTITE JUHTIMINE 6.1. Roboti juhtimise üldpõhimõtted Robot on paindtootmissüsteemi koostisosa. Selle süsteemi moodustavad omakorda üksikud tootmismoodulid, mis on ette nähtud tehnoloogilisteks operatsioonideks või toote detailide valmistamiseks. Neid automaatselt toimivaid tootmismooduleid nimetatakse robot-süsteemideks, mis koosnevad omakorda ühest või mitmest robotist, tehnoloogilisest ja transpordimasinast ja töödeldavate detailide hoidmiseks ette nähtud kassetist või alusest. Seepärast tähendab roboti juhtimine laiemalt kogu robotsüsteemi ja tootmisprotsessi juhtimist. Joonisel 6.1 on roboti juhtimiseks vajalikud riist- ja tarkvara komponendid. Siinkohal on esitatud näitena firma ABB roboti IRB140 juhtimissüsteemi koostisosad.
Manipulaator
Juhtpult
RobotWare tarkvara
Roboti dokumentatsioon
Sülearvuti
Serverarvuti
IRC juhtmoodul
IRC ajamimoodulRobotWare litsentsi võti
RobotStudio Online RobotStudio Online
Kalibreerimisandmed
Robotsüsteemi tarkvara
Joonis 6.1. Firma ABB tööstusroboti IRB 1600 koostisosad Roboti IRB 140 juhtimissüsteemi riisvara kujutab endast multiprotsessorsüsteemi, milles on kasutusel mitut liiki mäluseadmed (nt ümberprogrammeeritav Flash ja kõvakettal programmimälu). Süsteemi toidetakse katkematu toite allikast, mis vähendab ootamatuid tõrkeid robotsüsteemi talitluses. Juhtimissüsteemis on kasutusel objektorienteeritud struktuuriga tarkvara. Kasutusel on mitu RobotWare tarkvaratoodet, kusjuures programmeerimiseks kasutatakse kõrgkeelt RAPID. ABB roboti juhtseade IRC5 asub eraldi kapis, mille saab komplekteerida koos ühe või mitme ajamimooduliga või tehnoloogilise juhtmooduliga. Näitena on joonisel 6.2 esitatud kolmest
153
manipulaatorist koosnev robotsüsteem, mille juhtimiseks kasutatakse ühte juhtmoodulit ja kolme ajamimoodulit. Joonisel 6.3 on juhtmoodul koos punktkeevitusplokiga.
Ethernet PC-liides Kohtvõrk
Ajami- moodul
Ajami- moodul
Ajami- moodul
Juhtpult FlexPendant
RobotStudio Online Juhtmoodul
Joonis 6.2. Kolme manipulaatoriga robotsüsteem
Joonis 6.3. Roboti juhtmoodul koos punktkeevitusplokiga
154
Juhtmoodulis (Control Module) asuvad robotsüsteemi elektroonilised juhtplokid ehk roboti
jamimoodulis (Drive Module) asuvad robotsüsteemi ajamite jõuelektroonikalülitused. Kui
obotWare CD-plaadil sisaldab roboti juhtimiseks, hooldamiseks ja seadistamiseks vajalikku
oboti dokumentatsioon CD-plaadil sisaldab roboti elektrooniliselt salvestatud paigaldus-,
obotsüsteemi tarkvara (Robot system software) asub roboti juhtkontrolleri mälus ning selle
uhtpult (FlexPendant) ühendatakse roboti juhtkontrolleriga ning seda kasutatakse roboti
obotStudio Online on personaalarvutile ette nähtud mitmeotstarbeline baastarkvarapakett,
alibreerimisandmed on salvestatud andmekandjale (disketile) ning neid kasutatakse
õrguserverit kasutatakse robotsüsteemi tarkvara- (nt RobotWare) ja dokumendifailide
oboti tarkvara litsentsi võti (RobotWare license key) on tootja kood, milleta robotit
juhtkontroller (juhtarvuti). Arobotsüsteemis on mitu koordineeritud tegevusega manipulaatorit ja kasutatakse mitut ajamimoodulit, on tegemist multimanipulaatorsüsteemiga (MultiMove system). Rtarkvara. Rkasutus- ja ohutusjuhiseid. Rabil juhitakse robotsüsteemi talitlust. Tarkvara laaditakse juhtkontrollerisse serverarvutist kohtvõrgu (local area network, LAN) kaudu. Jjuhtimiseks. Juhtpuldil on värviline puuteekraan, juhthoob ning ainult 8 riistvaralist juhtnuppu. Rmida kasutatakse robotiga töötamiseks ning mis täiendab roboti juhtpuldilt (FlexPendant) juhtimist. Selle saab installeerida tavalisse arvutisse, mis võimaldab töötada Windows 2000 või hilisemate versioonidega. Tavaliselt installeeritakse see esmalt sülearvutisse. Sülearvutist laaditakse see edasi serverarvutisse ning kasutatakse robotsüsteemi konfigureerimiseks ning kõigi tarkvarakomponentide laadimiseks roboti juhtkontrollerisse. RobotStudio Online on eelkõige mõeldud tekstipõhiseks programmeerimiseks ja robotsüsteemi juhtimisega seotud ülesannete täitmiseks. Sellega saab koostada programme, milles on palju loogilisi või muid keerukaid struktuure. Ksüsteemi ja manipulaatori absoluutasendi täpseks seadistamiseks tehnoloogiliste valikute puhul (absolute accuracy option only). Vsalvestamiseks ja säilitamiseks. Server dubleerib sülearvuti funktsioone ning mõnel juhul võib selleks kasutada üht ja sama arvutit. Serveri võib ära jätta, kui serveri ja juhtkontrolleri vahel pole andmevahetust ette nähtud. Arvuti ühendatakse Ethernet-võrgu kaudu ühe või mitme juhtkontrolleri liidesega. Robotsüsteemi tarkvara hoidmiseks ja roboti programmeerimiseks saab kasutada nii sülearvutit kui ka serverarvutit. Rkasutada pole võimalik.
155
6.2. Roboti liikumise kirjeldamine Roboti juhtimistarkvara (nt RobotWare) põhineb mitmel koordinaadisüsteemil ehk koordinaadistikul, mille abil on hõlpus teostada roboti erinevaid juhtimisfunktsioone, sh vallasprogrammeerimist (off-line programming), programmi seadistamist, mitme roboti või roboti ja lisaseadmete talitluse koordineerimist, roomeliikumisi, anduripõhiseid rakendusi, programmide kopeerimist ühelt robotilt teisele jm. Roboti põhilised koordinaadistikud on joonisel 6.4. Roboti programmjuhtimisel on kõige olulisem juhtida haaratsi või tööriista (tool) liikumist. Kuna tööriistad või haaratsid võivad erineda, siis valitakse juhtimiseks tööriista või haaratsi tüübist sõltumatu punkt, mida nimetatakse tööriista tsentriks (tool centre point). Selle punktiga on seotud tööriista koordinaadistiku (tool coordinate system) alguspunkt. Tööriista koordinaadistiku asemel võib kasutada ka haaratsi või käelaba (wrist coordinate system) koordinaadistikku. Nende koordinaadistike seos tööriista, käelaba või haaratsiga on näidatud joonisel 6.5.
Tööriista tsenter (TCP)
Tööriista koordinaadistik
Baaskoordinaadistik
Objekti koordinaadistik
Kasutaja koordinaadistik
Ruumi koordinaadistik
Joonis 6.4. Roboti koordinaadistikud Tööriista tsenter on iseloomulik punkt tööriistal, nt keevituselektroodi tipp, mille asendit ruumis tuleb täpselt positsioonida. Tööriista tsenter määrab tööriista koordinaadistiku alguspunkti ja orientatsiooni ehk suunistuse. Tööriista koordinaadistik määratakse omakorda käelaba koordinaadistiku suhtes Käelaba ääriku külge monteeritud tööriistal on oma koordinaadistik selleks, et määrata eraldi tööriista kujust sõltuva tsentri asukoht, mis tööriista vahetamisel või kulumisel võib muutuda. Tööriista kahjustamisel või asendamisel tuleb tööriista koordinaadid määrata uuesti, sest tavaliselt sel juhul programmi ei vahetata. Roboti
156
roomeliikumise (jogging) korral saab tööriista koordinaadistikku kasutada sobiva liikumissuuna määramiseks.
a
Tööriista koordinaadistik
b
Käelaba koordinaadistik
c
Elektroodi tipp
d
Elektroodi tipp
Joonis 6.5. Tööriista ja käelaba koordinaadistikud a, b ning nende sidumine kaarkeevituselektroodi c ja
punktkeevitustangidega d Baaskoordinaadistik (base coordinate system) on seotud roboti paigaldusalusega. Lihtsate rakenduste puhul saab robotit hõlpsasti programmeerida baaskoordinaadistikus (joonis 6.6).
Joonis 6.6. Roboti baaskoordinaadistik Näiteks on põrandal asuvat robotit (floor-mounted robot) hõlpus programmeerida roboti alusega seotud baaskoordinaadistikus. Kui robot on monteeritud (riputatud) seinale või lakke, on baaskoordinaadistikus programmeerida märksa tülikam, sest telgede suunad pole samad kui tööruumi telgede olulised suunad. Sel juhul on otstarbekas eraldi määrata ruumi
157
koordinaadistik. Niisugust juhtumit illustreerib joonis 6.7. Ruumi koordinaadistik langeb kokku baaskoordinaadistikuga, kui seda spetsiaalselt ei defineerita. Ümbritseva ruumi koordinaadistik ehk lihtsalt ruumi koordinaadistik (world coordinate system) on seotud robotsüsteemi ühe põrandal asuva punktiga ning on aluseks teiste koordinaadistike määramisel. Mitme roboti koos töötamisel aitab ühine ruumi koordinaadistik koordineerida robotite tööd samas ruumiosas. Seda koordinaadistikku on otstarbekas kasutada ka juhul, kui tööprotsessis tuleb tegeleda paljude objektidega, mis on seotud ühe kindla punktiga. Joonisel on punktiirjoonega näidatud koordinaadistike seosed, mille kohta roboti tarkvara peab lahendama koordinaadistiku teisendusülesande.
2. Roboti baaskoordinaadistik
1. Roboti baaskoordinaadistik
Ruumi koordinaadistik
Joonis 6.7. Ruumi koordinaadistiku seos eri robotite baaskoordinaadistikega Kasutaja koordinaadistik (user coordinate system) on seotud tehnoloogilise protsessi oluliste asendipunktidega. Robot võib töötada mitme ruumis fikseeritud detailide kassetiga (fixtures) või tööpindadega töötlemisalusega, millel on ruumi suhtes erinev asend ja suunistus. Iga fikseeritud kasseti või tööpinnaga saab siduda omaette kasutaja koordinaadistiku (joonis 6.8), mille alguspunkt ja suunistus määratakse ruumi koordinaadistiku suhtes. Juhul kui detailide kõik asendid on määratud kasutaja koordinaadistikus, pole detailide kasseti või aluse asendi muutumisel vaja robotit ümber programmeerida. Piisab kasutaja koordinaadistiku alguspunkti või suunistuse muutmisest. Objekti koordinaadistik (object coordinate system) määrab ära, kuidas töödeldav detail asub töötlemispinnal või kassetis. Kui robotil tuleb töötada mitme kassetis või tööpinnal paikneva detailiga, on otstarbekas iga detailiga siduda vastav objekti koordinaadistik. Samuti lihtsustab see programmeerimist, kui objekt liigub või kui uut taolist objekti on vaja siduda mingi muu asukohaga. Obekti koordinaadistik sobib vallasprogrammeerimiseks (off-line programming), sest asendi koordinaadid leitakse tavaliselt tööobjekti jooniselt. Objekti koordinaadistik sobib ka roboti roomeliikumise (jogging) juhtimiseks. Objekti ja kasutaja koordinaadistike seost ruumi koordinaadistikuga on näidatud joonisel 6.9.
158
Kasutaja 1. baaskoordinaadistik
Kasutaja 2. baaskoordinaadistik
Ruumi koordinaadistik
Baaskoordinaadistik
Joonis 6.8. Robotsüsteemiga seotud erinevad kasutaja koordinaadistikud
Objekti 1. baaskoordinaadistik
Objekti 2. baaskoordinaadistik
Ruumi koordinaadistik
Kasutaja koordinaadistik
Joonis 6.9. Objekti ja kasutaja koordinaadistikud ruumi koordinaadistikus Objekti koordinaadistikku saab programmeerida teatud punktide asukohakoordinaatide arvuliste väärtuste etteandmisega või roboti liigutamisega läbi nende asendipunktide ja koordinaatide automaatse salvestamisega. Robotit liigutataklse roomeliikumiskiirusega.
159
Detailide programmeeritud asendid on määratud objekti koordinaadistikus. Kui deitailide kasseti või aluse asukoht ja/või suunistus muutub, saab selle muutuse kompenseerida objekti koordinaadistiku muutmisega. Mõnikord tuleb läbida sama detailiga sama trajektoor eri kohtades. Selleks et robotit ei peaks niisugusel juhul iga kord ümber programmeerima, määratakse nihutatud koordinaadistik (displacement coordinate system). Nihutatud koordinaadistik on omakorda määratud objekti koordinaadistikus (joonis 6.10).
Uus asend
Esialgne asend
Nihutatud ja pööratud koordinaadistik
Objekti koordinaadistik
Joonis 6.10. Nihutatud ja pööratud koordinaadistik Roboti liikumine põhineb liikumise plaanimisel, s.t koordinaadistike õigel valikul ja soovitud liikumise kirjeldamisel vastavas koordinaadistikus. Seejärel toimub tegeliku liikumise realiseerimine plaanitud liikumise kohaselt. Robot määrab oma lülide asendi (location) ajamitele paigutatud asendianduritega lülide koordinaadistikes (joint coordinate system). Manipulaatori kinemaatikaülesande lahendamisega määratakse asend roboti baas- või ruumi ristkoordinaadistikus. Juhul kui detaili asend muutub ajas, tuleb roboti tööprogrammi vastavalt modifitseerida, et töö detaili uues asukohas oleks võimalik. Koordinaadistike teisendatakse raamatu 2. peatükis kirjeldatud metoodika kohaselt. Manipulaatori trajektoori plaanimist kirjeldatakse 4. peatükis. Nüüdisrobotite tarkvara sisaldab nii koordinaadistike teisendamiseks kui ka liikumise plaanimiseks vajalikke tarkvaralisi lahendusi. Roboti kasutaja saab vastavas robotikeeles programmeerida roboti liikumise ja tegevuse. Programmi täitmine toimub käskude kaupa. Pärast käsu saamist, nt GOS 20, 30, 40, 0, 0, 0 (go straight) ehk mine otse etteantud koordinaatidega punkti, täidab robot loetletud ülesanded automaatselt. Seejuures on roboti kasutajal võimalik valida robotile mitmesugust liikumist ning töökeskkonnas käitumise viisi. Liikumise iseloom programmi täitmisel. Robot saab liikuda järgmiselt: − lülide liikumine (joint motion). Kõik lülid liiguvad üksteisest sõltumatult ning jõuavad
programmeeritud lõpp-asendisse ühel ja samal ajal − lineaarne liikumine (linear motion). Tööriista tsenter liigub mööda sirgjoont − ringliikumine (circle motion). Tööriista tsenter liigub mööda ringjoont. Trajektoori
ringinterpolatsiooni kasutatakse nii tööriista soovitud liikumiseks kui ka kõverjoonelise trajektoori etteantud vahepunktidest sujuvaks möödumiseks.
160
Pehme servoliikumine (soft servo). Välisjõudude toimel tekkinud positsioonimisvea ning kokkupõrke korral tagab ajami pehme servoliikumise moodus tööorgani järeleandvuse, mida saab kasutada mehaanilise järeleandvusega haaratsite (tööriistade) asemel. Pehme servoliikumise mooduses saab juhtida kõiki mootoreid, sh ka lisaajamite mootoreid. Roomeliikumine (jogging). Robotit saab käsitsi juhtida järgmiselt: − liikumine üks lüli korraga (axis-by-axis, i.e. one axis at a time) − lineaarne liikumine. Roboti tööorgani tsenter liigub ühes eelpool kirjeldatud
koordinaadistikus mööda sirgjoont − modifitseeritud liikumine ümber tööriista tsentri. Sammukaupa roomeliikumisel (incremental jogging) saab valida sammu pikkuse. Sammukaupa roomeliikumine võimaldab roboti tööorganit positsioonida suure täpsusega, sest robot liigub juhthoova liigutamisel edasi väga lühikeste sammudega. Käsijuhtimise ajal saab juhtpuldile (FlexPendant) kuvada nii roboti kui ka lisalülide ajamite (täiendavate liikuvusastmete) jooksvat asendit. Singulaarsuspunktide läbimine (singularity handling). Roboti talitlust juhitakse singulaarsete asendipunktide (milles kahe lüli teljed langevad kokku) läbimisel kindlal viisil. Seejuures on oluline, et roboti ajamite kiirus ja koormus ei ületakse lubatud piirväärtusi. Liikumise järelevalve (motion supervision). Roboti liikumisomadusi, sh asendit ja kiirust, jälgitakse pidevalt selleks, et tuvastada võimalikke kõrvalekaldeid normaaltalitlusest ja robot kiiresti peatada juhul, kui midagi pole korras. Valikuliste talitlusjärelevalve funktsioonide hulka kuulub ka kokkupõrke tuvastamine (collision detection). Täiendavad liikuvusastmed ja lisamootorid (additional motors). Roboti juhtimissüsteem võimaldab paindlikult lisada süsteemi täiendavaid mehhanisme (lisamootoreid) ning neid soovitud viisil juhtida. Sealjuures saab tõhusalt koordineerida nii roboti kui ka mitmest mootorist koosneva lisamehhanismi liikumist. Suure inertsimomendiga talitlus (big inertia). Dünaamikamudeli (dynamic model) rakendamine juhtimisel võimaldab robotil töötada ka juhul, kui koormus on suure inertsimomendiga. Ajami juhtimissüsteemi parameetrid seatakse automaatselt koormuse järgi. Tänu sellele saab suurte elastsete objektide teisaldamisel seadistada juhtimissüsteemi nii, et objekti võimalikud mehaanilised võnkumised on minimaalsed. Dünaamikamudel põhineb koormuse automaatsel tuvastamisel. Koormuse tuvastamine (load identification). Robotil on koormuse automaatse tuvastamise funktsioon, mis võimaldab korrigeerida manipulaatori käe dünaamikamudeli parameetreid koormuse suuruse järgi. Koormuse automaatse tuvastamise funktsiooni tõttu suureneb robotsüsteemi töökindlus ja eluiga ning roboti seadistamisel langeb ära vajadus teha spetsiaalseid koormuse mõõtmisi või arvutusi. Koormuse automaatse tuvastamise funktsioon on näiteks olemas ABB robotiperekondadel IRB 140, 1400, 1600, 2400, 4400, 6400RF jt. Kokkupõrke tuvastamine. Sisseehitatud kokkupõrketuvastaja (collision detector) näitab roboti ja töödeldava detaili vastastoimet. Kokkupõrketuvastaja aitab vältida ebameeldivaid üllatusi uue programmi käikulaskmisel. Seejuures on võimalik hinnata roboti töötsükli kestust
161
ning aidata kasutajal optimeerida roboti tööprogrammi. Enne tööprogrammi lõplikku laadimist kontrollerisse saab kogu programmi RobotStudio tarkvara abil siluda (debug). Kokkupõrketuvastaja rakendub ka juhul, kui roboti koormus ei vasta sätitud väärtusele. Seejuures kontrollitakse roboti tööriistale mõjuvat teisaldatava raskuse tekitatud ning käele mõjuvaid jõudusid. Kui tööriista või teisaldatava koormuse andmed on teada, saab koormuse automaatse tuvastamise tarkvara abil arvutada manipulaatorile mõjuvad jõud, kuid nii ei saa määrata käele kokkupõrkel mõjuvaid jõudusid. Kokkupõrke puhul reverseeritakse ajamite mootorid, rakendatakse mehaanilised pidurid ja peatatakse roboti käe liikumine. Seejärel liigub robot väikese sammu võrra piki trajektoori tagasi, et käele ei mõjuks enam lisajõudusid, mis kokkupõrke momendil tekkisid. Pärast seda peatub robot uuesti. Kokkupõrke tüüpiline liikumisdiagramm on joonisel 6.11. Liikumise esimesel etapil reverseeritakse mootori moment ja peatatakse robot. Liikumise teisel etapil liigub robot tagasi ja vabastab roboti ja tööorgani kokkupõrkel tekkinud jääkjõududest.
Kokkupõrke tuvastamine Kokkupõrke
tekkimine
Roboti peatumine
Kiiruse reverseerimine
Mootori kiirus
Mootori moment
Momendi reverseerimine
Aeg
Aeg
Liikumise peatumine
Joonis 6.11. Roboti tüüpiline liikumisdiagramm kokkupõrke tuvastamisel Liikumise talitlusjärelevalve funktsioon on aktiivne vaid juhul, kui vähemalt üks manipulaatori või lisamehhanismi lüli liigub. Seisva robotsüsteemi puhul pole see funktsioon aktiivne.
162
6.3. Robotsüsteemide tarkvaraline arenduskeskkond ehk virtuaalne robotitehnika
Arvutite töökiiruse ja mälumahu kiire kasv võimaldab üha tõhusamalt luua virtuaalseid keskkondi, milles töötamine on näiliselt lähedane tegelikule tööolukorrale. Nii saab arvuti ekraanil esitada ruumilises projektsioonis kuvasid robotsüsteemist, milles töötavad robotid ja/või toimub detaili liikumine, töötlemine, kontrollimine, ladustamine jm. Seejuures on kõige olulisem asjaolu, et kõigi virtuaalsete masinate ja objektide mõõtmed vastavad tegelike masinate ja objektide mõõtmetele. Ekraanil nähtavaid roboteid saab juhtida samas keeles ja samal põhimõttel, nagu juhitakse pärisroboteid. Niisugune arenduskeskkond võimaldab luua uusi robotsüsteeme, valida ja programmeerida roboteid ammu enne reaalse tehase valmimist ja pärisrobotite tarnimist tellijale. Tehnoloogiliste protseduuride ja robotite programmide silumine virtuaalses keskkonnas aitab oluliselt vähendada tehase käikulaskmiseks kuluvat aega, vältida eksimustest põhjustatud rikkeid ja suurendada süsteemi töökindlust. Robotsüsteemide tuntud tarkvaralise arenduskeskkonna näiteks on COSIMIR (cell oriented simulation of industrial robots), mis on mõeldud paindtootmissüsteemi roboti talitluse simuleerimiseks (http://www.cosimir.com/). Keskkond on kasutusel nt firma Festo tarnitavates robotsüsteemides, kuid seda kasutavad ka muud firmad. Roboti arenduskeskkondadest võib nimetada veel Taanis valminud Camelot ROPSIM’i ja firma ABB Robot Studio Online’i. Virtuaalse arenduskeskkonna näited robotsüsteemi programmeerimiseks on joonisel 6.12. Joonise ülemistel piltidel näeb robotsüsteeme COSIMIR-keskkonnas, alumisel pildil on roboti programmeerimise virtuaalse keskkonna RobotStudio kasutamine keevitusrobotite programmeerimiseks. Robotsüsteemi arendustarkvarad COSIMIR, Camelot ROPSIM ja RobotStudio kuuluvad virtuaalse robotitehnika valdkonda. Nüüdistasemel virtuaalne robotitehnika võimaldab luua keerukaid robotsüsteeme. Näiteks saab firma ABB RobotStudio MultiMove süsteemi abil korraga hõlpsasti töötada mitme robotiga või juhtida mitut robotit ühe kontrolleriga ning plaanida ja programmeerida nende liikumist. Keevitustööde plaanimisel ja programmeerimisel määratakse esmalt kindlaks keevisõmbluse geomeetriline asukoht. Seejärel sisestatakse tehnoloogilised parameetrid - põleti või elektroodi kaldenurk, keevisõmbluse iseloom, pöördenurgad, alustamise ja lõpetamise tingimused, liikumise iseloom ja liikumiskäsud. Roboti arenenud nüüdistarkvara hulka kuuluvad ka tüüpülesannete lahendamiseks mõeldud tarkvara tehnoloogilised paketid. Näiteks on firma ABB ArcWeld PowerPac, mis genereerib automaatselt roboti keevitusprogrammi vastavalt etteantud geomeetrilistele mõõtmetele (tehnilisele dokumentatsioonile), leiab töökohal keevituspõleti õige lähenemis- ja eemaldamistee, valib põleti vajalikud kalde- ja pöördenurgad, arvestab roboti manipulaatori liikumispiiranguid, väldib manipulaatori singulaarseid poose ning teavitab kasutajat võimalike probleemide tekkimisest.
163
Joonis 6.12. Virtuaalsed arenduskeskkonnad robotsüsteemi programmeerimiseks: ülal Festo Cosimir ja all ABB
RobotStudio Järgnevalt antakse lühiülevaade roboti arendustarkvara RobotStudio Online koostisosadest ja funktsioonidest. RobotStudio Online funktsioonidele pääseb ligi programmiga, mida võib nimetada roboti vaateaknaks (robot view explorer). Selle akna kaudu valitakse roboti tüüp, kui süsteemis on korraga kasutusel mitu robotit, ning robotsüsteemi komponendid, millega soovitakse töötada. RobotStudio Online keskkonna menüüd ja aknaid näeb joonisel 6.13.
• süsteem system builder), mis on ette nähtud süsteemi loomiseks, paigaldamiseks ja hooldamiseks
RobotStudio Online koostisosadeks on
iehitaja (
164
• robotsüsteemi redaktor (configuration editor), mis on ette nähtud paigaldatud süsteemi parameetrite redigeerimiseks
• programmiredaktor (program editor) sidustalitluses programmeerimiseks (on-line
up) tööriistad • administreerimise (administration) ja kasutaja autoriseerimise (user authorization)
• failiohjur (file manager) failide vahetamiseks PC ja juhtkontrollerite vahel
• lleri ja robotsüsteemi talitluse jälgimiseks ning
programming) • sündmuste logija (event log) robotsüsteemi talitluse jälgimiseks (monitoring) ja
sündmuste (robot events) salvestamiseks • süsteemi taastamise (system restoring) ja varutarkvara (backing
tööriistad
• tegumiaken (task window) igat liiki tegumite täitmiseks juhtkontrolleris muud tööriistad roboti juhtkontrojuhtimiseks.
Joonis 6.13. RobotStudio Online menüüd ja aknad
165
Joonisel 6.13 esitatud RobotStudio Online kuval on tähistatud järgmised objektid:
1. Menüüriba (menu bar), millelt saab valida faili, redaktori, vaate, robotivaate (Robot View), kontrolleri (controller), programmi (program), tööriistade (tools), akende (window) ja spikri (help) menüüsid.
2. Tööriistariba (toolbar), millel on nupud käskude kiireks leidmiseks ja kasutamiseks.
3. Kontrolleri olekuaken (controller status window) näitab käsitletava roboti kõigi kontrollerite olekuinfot.
4. Roboti vaateaken (robot view explorer) näitab jooksvalt käsitletava roboti kontrollereid.
5. Väljundiaknas (output window) kuvatakse teateid ja juhtimisoperatsioonide toimesignaale. Väljundiakent kasutatakse ka robotikeele RAPID väljunditeadete edastamiseks roboti programmi järgi töötamisel.
6. Töökeskkond (workspace) võimaldab kuvada ja valida avatud aknaid, nt käivitusakent, programmiredaktori akent, sisendite-väljundite akent.
7. Akna valija (windows tabs) võimaldab töötada mitme avatud aknaga. 6.4. Robotite programmeerimine ja programmikeeled Robotite programmeerimisviisid saab jaotada kahte alaliiki, s.o käsitsi programmeerimiseks ja automaatprogrammeerimiseks. Roboti käsitsi programmeerimise saab omakorda liigitada
kstipõhiseks ja graafiliseks programmeerimiseks (joonis 6.14). Tekstipõhise ogrammeerimine mõnes robotikeeles. Programm
sitatakse robotikeele käskude jadana, kusjuures vastavalt algoritmile võivad programmis olla argnemised, tsüklilised kordumised ja/või alamprogrammid. Sõltuvalt keeles kasutatavate äskude olemusest saab robotikeeled jaotada seadmepõhisteks (device based), rotseduuripõhisteks (procedure based) ja käitumispõhisteks (behavior based) keelteks. uurema näitlikkuse huvides on viimasel ajal üha enam tähelepanu pööratud graafilistele rogrammeerimisviisidele. Sel juhul esitatakse programm algoritmi graafskeemide, oodiagrammide või talitlusskeemide kujul. Graafiline programmeerimine on sageli levaatlikum ja inimene omandab selle kiiremini.
oboti automaatprogrammeerimine võib põhineda õppimissüsteemidel, inimese poolt
progtegevused salvestab robot autom ällu. Vajadusel suudab ta neid hiljem täpselt korrata.
teprogrammeerimise alla kuulub roboti prehkpSpvü Rettetehtud tegevuse jäljendamisega või käsusüsteemidel, mille abil robot genereerib etteantud ülesande järgi endale konkreetse tegevusprogrammi. Tööstusrobotite puhul kasutatakse
rammeerimiseks kõige enam ettetegemist õpetamispuldi abil. Etteantud trajektoori ja aatselt m
166
Käsitsi programmeerimine
Tekstipõhine Graafiline programmeerimine programmeerimine
Graafskeemid
Voodiagrammid
Käitumispõhised programmikeeled
Protseduuripõhised programmikeeled
Seadmepõhised programmikeeled
Talitlusskeemid
Joonis 6.14. Roboti käsitsi programmeerimise viisid
Automaat-programmee-
rimine
Programmee-rimine
ettetegemisega
Käsu-süsteemid
Õppimis-süsteemid
Kõne ja nägemise
vahendusel
Õpetamispuldi abil
Joonis 6.15. Roboti automaatprogrammeerimise viisid Robotite programmikeeled Roboti arenduskeskkond COSIMIR® Professional toetab mitut roboti programmikeelt. Mõni neist on orienteeritud kindla firma robotite programmeerimiseks, mõnda kasutatakse laiemalt.
167
Robotite programmikeelteks on näiteks Industrial Robot Language (ehk lühendatult IRL), a robotikeel Kuka Robot Language (KRL), firma
BB robotikeel RAPID, robotikeeled Movemaster Command (MRL) ja MELFA Basic, firma Bosch robotikeel Bosch Automatisierungsprogrammiersprache (BAPS), robotikeeled Simple Robot Programming Language (SRPL), V+ jt. TTÜ elektriajamite ja jõuelektroonika instituudi tootmise automatiseerimise labori robotsüsteemis kasutatavaid firma Mitsubishi roboteid programmeeritakse keeles Movemaster Command (MRL) ja MELFA Basic. Elektriajamite ja robotitehnika laboris asuv ABB robot programmeeritakse robotikeeles RAPID. Programmeerimine Tööde plaanimine Koostatakse ülesande täitmise üldplaan ja määratakse kindlaks roboti osa selles.
Koostatakse programmi algoritmi plokkskeem ja jaotatakse kogu ülesanne üksikuteks töödeks, sh
− juhul kui töö täitmiseks on vajalikud hargnemised, jaotatakse kogu töö tegevusteks (alamprogrammideks)
unktidele kindlad positsiooni numbrid
− määratakse vajalikud sisend- ja väljundsignaalid
i plokkskeem
Programmi käivitamine ja peatamine, hargnemine, kordamine, katkestamine, id.
sud e avamine ja sulgemine, mõnel juhul ka haardejõu juhtimine.
käsud (RS232C kaudu)
Muu
firma Unimation robotikeel VAL, firma KukA
− määratakse kõikidele positsioonimisp
− koostatakse algoritm
− koostatakse algoritmi plokkskeemile vastav robotiprogramm. Robotit programmeeritakse robotile sobivas programmikeeles. Tööstusrobotite erinevate programmikeelte ehk lihtsalt robotikeelte käsustike struktuur ja käskude olemus ja kasutamise põhimõtted on sageli küllaltki sarnased. Seepärast võib pärast programmeerimisoskuse omandamist ühes robotikeeles lihtsalt omandada ka muid robotikeeli. Järgnevalt on kirjeldatud robotikeele Movemaster Command käske ning toodud näiteid keele kasutamisest oboti lihtsate tegevuste programmeerimiseks. r
Asendi (positsiooni) ja liikumise juhtkäsud
Asendi, koordinaatide, trajektoori interpoleerimise, kiiruse, taimerite jm juhtimine.
Programmi juhtkäsud
loendusoperatsioon
Haaratsi juhtkäHaaratsi sõrmed
Sisend-väljundkäsud Sisend- ja väljundsignaalide juhtimine roboti koostööks muude seadmetega.
Andmeside Roboti sisemise info edastamiseks arvutisse.
d käsud Parameetrite sätted, programmide valik, veateadete ennistamine jm.
168
Pro am stamisel võta ja pane (pick and pla el 6.16 on näidatud lihtne võta ja pane tüüpi teis ust ktist ja viimine teise punkti. Seejuures kasutab rob ärg
a
datava esem rmed.
ne 3), käsi liigub paigaldusasendi kohale (asend 20) ja edasi paig iikumised 6 ja 7 10).
t algoritmile koo e jaoks on
gr meerimise näited põhinevad programmide kooce) tüüpi tegevuse sooritamiseks. Joonisald egevus - eseme võtmine ühest punot j misi positsioonimispunkte:
positsioon 1 – võtmise positsioon positsioon 2 – panemise positsioon positsioon 10 – lähtepositsioon võtmiseks positsioon 20 – lähtepositsioon panemiseks. Positsioonid 1 ja 2 programmeeritakse õpetamisega puldilt, positsioonid 10 ja 20 määratakse programmis vastavate arvväärtuste sisestamiseg Ülesande täitmine algab avatud sõrmedega haaratsi liikumisega lähtepunkti teisal
e kohale (asend 10). Seejärel liigub haarats eseme juurde (asend 1) ning sulgeb sõEse tõstetakse üles (liikumi
aldusasendisse (asend 2), haarats vabastab eseme ning käsi liigub tagasi (l) lähteasendisse (asend
Võ a ja pane tüüpi tegevuse algoritmi plokkskeem on joonisel 6.17. Vastavalt
statakse robotikeele käskudest programm, mille näide eelkirjeldatud ülesandesitatud tabelis 6.1.
Algkiiruse sättimine
Programmi käivitamine
1 Asend 20
2 3
4
5 6 7 20 mm
Asend 1
30 mm
Ase
A
nd 2
send 10
tüüpi tegevuse algoritmi plokkskeem
Liikumine asendi 1 kohale
Liikumine asendisse 1
Detaili haaramine Joonis 6.16. Võta ja pane tüüpi teisaldusülesanne
Liikumine asendi 2 kohale
Liikumine asendisse 2
Detaili vabastamine
Liikumine asendi 2 kohale
Tsükli lõpetamine ja kordamine
Joonis 6.17. Võta ja pane
169
Tabel 6.1
obotikeeles Movemaster Command koostatud programm võta ja pane tegevuse kordamiseks ispunktide 1 ja 2 vahel
Rea number Programmi käsk Selgitus
Rpositsioonim
10 PD 10,0,0,20,0,0,0 Asendi 10 määramine (position definition) asendi 1 suhtes z-telje sihis 20 mm kaugusel
20 PD 20,0,0,30,0,0,0 Asendi 20 määramine (position definition) asendi 2 suhtes z-telje sihis 30 mm kaugusel
30 SP 18 Algkiiruse (speed) sättimine 40 MA 1,10,O Sõrmede avam
kaugusine ja liikumine asendisse 10, 20 mm
ele asendist 1 50 MO 1,O Liikumine (move) avatud sõrmedega asendisse 1 60 GC Haaratsi sõrmede sulgemine (gripper close) ja eseme
haaramine 70 MA 1,10,C Liikumine (move) suletud sõrmedega asendi 1 kohale 20
mm kaugusele asendisse 10 80 MA 2,20,C Liikumine (move) suletud sõrmedega asendi 2 kohale 30
mm kaugusele asendisse 20 90 MO 2,C Liikumine (move) paigalduskohale asendisse 2 100 GO Haaratsi sõrmede avamine (gripper open) ja eseme
vabastamine 110 MA 2,20,O Liikumine (move) avatud sõrmedega asendisse 20 120 GT 40 Programmi kordamine, alates reast nr 40 (go to)
Sisendsignaali ja katkestuste kasutamine Eseme olemasolu tuvastamiseks kasutatakse robotsüsteemis andureid. Anduritelt saadud signaalid on roboti juhtimissüsteemi sisendsignaalideks ja neid saab kasutada roboti juhtimiseks. Programmi täitmisel võib sisendsignaaliga katkestada programmi täitmise ning hargneda programmis mingi muu tegevuse juhtimiseks. Näites tuvastab roboti haaratsil olev andur enne haaramist eseme, mis jääb haaratsi liikumisel piki z-koordinaati 50 mm võrra anduri teele ette. Anduri signaaliga keelatakse edasised katkestused, haaratakse ese ning jätkatakse programmi. Kui haaratavat eset sellel kohal pole, siis läheb robot tagasi positsiooni 1 ja kordab haaramist (joonis 6.18). Roboti haarats liigub 50 mm võrra piki -z suunda (programmirida 40). Kui haaramiskohal on ese (workpiece), siis peatab piirlüliti signaal roboti. Tegevus jätkub programmirealt 60, robot haarab eseme ning pärast katkestuste keelamist liigub positsiooni 1. Kui aga haaramiskohal eset pole, siis toimub hüpe programmirealt 50 reale 30 ning naastakse positsiooni 1. Edasi tegevus kordub. Algoritmi plokkskeem on joonisel 6.19.
170
Algkiiruse sättimine
Piirlüliti Haarats
Detail
Alla 50 mm
Asend 1Katkestuse lubamine
Liikumine asendisse 1
Liikumine x-telje sihm
is 50 m kaugusele detailist
J 6.18. ja katkestuste
J .19. ritmi plokkskeemtuse kasutamisel
oonis Sisendsignaali kasutamine
oonis 6 Roboti algokatkes
sisendsignaali ja
Katkestuse keelamine
Detaili haaramine
Katkestus ? EI
J
Tsükli lõpetamine ja ne kordami
AH
Tabel 6.2
rogrammeerimiskeeles Movemaster Command koostatud programmi näide sisendsignaali ja atkestuse kasutamise kohta
Rea
Pk
number Programmi käsk Selgitus
10 SP 20 Algkiiruse (speed) sättimine 20 EA +900,60 Katkestuse lubamine (enable interrupt) bitiga 900 30 MO 1,O Liikumine avatud sõrmedega (move, open) eseme kohale
asendisse 1 40 DS 0,0,-50 Liikumine z-telje sihis kuni 50 mm kaugusele detailist
(lineaarne interpoleerimine) 50 GT 30 Programmi siire (go to) reale 30, et katkestussignaali
puudumisel liikuda asendisse 1 60 DA 900 Katkestuse keelamine (disable interrupt) bitiga 900 70 GC Haaratsi sõrmede sulgemine (gripper close) 80 MO 1,C Liikumine suletud sõrmedega (move, closed) asendisse 1
171
Veidi keerukamaks kujuneb võta ja pane teisaldusülesande lahendamine juhul, kui robot õtab esemeid aluselt või asetab neid alusele, millel on palju positsioonimiskohti. Esemete
võtmine ühelt teisaldusaluselt, vahepealne töötlemine või testimine ja paigutamine teisele alusele on joonisel 6.20.
v
Alus (kassett) 1 Alus (kassett) 2
Testimisseade
Asend 10 Asend 11
Asend 12 Asend 13
Asend 20
Asend 21 Asend 23
Asend 22
Asend 30
Asend 50
Joonis 6.20. Esemete võtmine ü usaluselt, töötlemine ja paigutamine teisele alusele
Ülesande keerukust suurendab ka asjaolu, kui esemete võtmine ja tagasiasetamine toimub erineva kujuga alustele, mille asend ja orientatsioon ruumis samuti erinevad, näiteks kui esimesel alusel on esemete jaoks 10 x 6 pesa ja teisel alusel 15 x 4 pesa.
id pesi, tuleb esemete võtmiseks aluselt ja aigutamiseks teisele alusele sättida nt rea- ja veeruloendurid. Kahe aluse korral on vaja ättida kokku neli loendurit:
• loendur 11 – aluse 1 veeruloendur
eruloendur • loendur 22 – aluse 2 realoendur.
Peale loendurite tuleb määrata aluste kõik is juhtpuldilt õpetamisega m ata ki ende asendite ko hendamiseks on vaja m ata jä ite koordin
Asendite kirjeldamine
Asendi number Asendi kirjeldu
helt teisald
Juhul kui alusel on palju reeglipäraselt asetsevaps
• loendur 12 – aluse 1 realoendur • loendur 21 – aluse 2 ve
eloomulikud asendid ning äär ndlaks n ordinaadid. Antud ülesande laäär rgmiste asend aadid.
Tabel 6.3
s
Asend 1 Aluse 1 sätitud asend Asend 2 Aluse 2 sätitud asend Asend 10 Aluse 1 sätitud algasend Asend 11 Aluse 1 esimes e veeru lõpu sätitud asend Asend 12 Aluse 1 esimese rea lõpu sätitud asend Asend 13 Aluse 1 viimane sätitud asend
172
Asend 20 Aluse 2 sätitud algasend Asend 21 Aluse 2 esimese veeru lõpu sätitud asend Asend 22 Aluse 2 esimese rea lõpu sätitud asend Asend 23 Aluse 2 viimane sätitud asend Asend 30 Testimisseadme sätitud asend Asend 50 Positsioonimiskaugus alusest
Kirjeldatud ülesande lahendamine eeldab ka sisendsignaali „töötlemine on lõppenud” kasutamist. Robot saab eseme töötlemiskohalt ära võtta alles pärast vastava signaali tuvastamist süsteemi sisendis. Esemete teisaldusaluselt võtmise, töötlemise ja teisele alusele asetamise programm koosneb ühest põhiprogrammist ja kolmest alamprogrammist: haaramine aluselt 1, töötlemine ja asetamine alusele 2 (joonis 6.21).
Algkiiruse sättimine
Alamprogramm 1 ine
Algsättimine
Aluste 1 ja 2 rea- ja veeruloendurite sättimine
Lõpp
Tehtud? 10 x 6 korda
EI
JAH
Start Eseme haaram
Alamprogramm 1 Eseme haaramine
Alamprogramm 2 Eseme töötlemine
Alamprogramm 3 Eseme asetamine
Aluse 1 asendite sättimine Aluste 1 ja 2 asendipunktide sättimine
Liikumine asendi 1 kohale
Liikumine asendisse 1
Eseme haaramine
Liikumine asendi 1 kohale
Realoendur sisu +1
Rea lõpetamine ? EI
JAH
Realoenduri algsäte
Naasmine põhiprogrammi
J õhiprograoonis 6.21. P mm
Veeruloendur sisu +1
Joonis 6.22. Alamprogramm 1
173
Algkiiruse sättimine
Aluse 2 asendite sättimine
Liikumine asendisse 2
Naasmine põhiprogrammi
Rea lõpetamine ? EI
JAH
Alamprogramm 3 Eseme haaramine
AlE
amprogramm 2 seme testimine
Kiiruse sättimine Liikumine asendi 2 kohale
Liikumine asendi 30 kohale
Naasmine põhiprogrammi
Test lõppenud ? EI
JAH
Sisendan ete lugemine dm
Eseme asetamine
Kiiruse sättimine Eseme asetamine
Liikumine asendi 2 kohale
Realoendur sisu +1
Liikumine asendi 30 kohale
Joonis 6.22. Alamprogramm 2
Realoenduri algsäte
Veeruloendur sisu +1
Joonis 6.22. Alamprogramm 3
Tabel 6.4 Programm esemete võtmiseks, töötlemiseks ja paigutamiseks teisaldusalusele Rea number Programmi käsk Selgitus
10 PD 50,0,0,20,0,0,0 Määratakse asendi 50 kaugus (z = 20 mm) alusest 15 TL 145 Määratakse tööriista pikkus (tool lenght) 145 mm 20 GP 10,8,10 Sätitakse haaratsi avatud/suletud asendi parameetrid
Määratakse a ridade, veergude suund 10 (vertikaalselt) x 6 (horisontaalselt)
luse 1 sõlmpunktide arv ja25 PA 1,10,6
30 PA 2,15,4 Määratakse aluse 2 sõlmpunktide arv ja ridade, veergude suund 15 (vertikaalselt) x 4 (horisontaalselt)
174
35 SC 11,1 Aluse 1 veeruloenduri 11 algsäte (sätitakse 1) 40 SC 12,1 Aluse 1 realoenduri 12 algsäte (sätitakse 1) 45 SC 21,1 Aluse 2 veeruloenduri 21 algsäte (sätitakse 1) 50 SC 22,1 Aluse 2 realoenduri 22 algsäte (sätitakse 1) Põhiprogramm 100 RC 60 Sätitakse korratavate tsüklite arv 60 kuni reani 140 110 GS 200 Siirdumine alamprogrammi 1 (reale 200) 120 GS 300 Siirdumine alamprogrammi 2 (reale 300) 130 GS 400 Siirdumine alamprogrammi 3 (reale 400) 140 NX Naasmine reale 100 150 ED Lõpetamine Alamprogramm 1 Esemete võtmine aluselt 1 200 SP 25 Sätitakse kiirus 25 202 PT 1 Sätitakse aluse 1 positsioon 1 204 MA 1,50, O Liikumine avatud haaratsiga asendi 1 kohale (asend 50)
20 mm kaugusele asendist 1 206 SP 8 Sätitakse väiksem kiirus 8 208 MO 1, O Liikumine avatud haaratsiga asendisse 1 210 GC Haarats sulgub ja haarab eseme 212 MA 1,50, C Liikumine suletud haaratsiga asendi 1 kohale (asend 50)
20 mm kaugusele asendist 1 214 IC 11 Aluse 1 veeruloenduri sisu suurendamine +1 216 CP 11 Loenduri 11 sisu kirjutamine sisemisse registrisse 218 EQ 11,230 Siire reale 230, kui veerg on lõpetatud (loenduri 11 sisu
võrdlemine) Alamprogram ogrammi (return) mi lõpp, naasmine põhipr220 RT
230 SC 11,1 Loenduri 11 algsäte (sätitakse 1) 232 IC 12 Aluse 1 realoenduri 12 sisu suurendamine +1 234 RT Alamprogrammi lõpp, naasmine põhiprogrammi (return) Alamprogramm 2 Esemete töötlemine 300 SP 25 Sätitakse kiirus 25 302 MT 30,-50, C Liikumine testimisseadme kohale asendisse 30 304 SP 8 Sätitakse väiksem kiirus 8 306 MO 30, C Liikumine esemega testimiskohale asendisse 30 308 ID Andmete sisestamine 310 TB -7, 308 Oodatakse testimise lõppemist ja korratakse programmi,
alates reast 308 312 C MT 30,-50, Liikumine asendisse 30 testimisseadme kohale 314 RT mi (return) Alamprogrammi lõpp, naasmine põhiprogram
175
Alamprogramm 3 Esemete asetamine alusele 2 400 SP 25 Sätitakse kiirus 25 402 PT 2 Sätitakse aluse 2 positsioon 2 404 C (asend 50)
0 mm kaugusele asendist 2 MA 2,50, Liikumine avatud haaratsiga asendi 2 kohale
2406 SP 8 Sätitakse väiksem kiirus 8 408 MO 2, C Liikumine esemega asendisse 2 410 GO Haaratsi avamine (gripper open) ja eseme vabastamine 412 MA 2,50, O ale (asend 50) Liikumine suletud haaratsiga asendi 2 koh
20 mm kaugusele asendist 2 414 IC 21 Aluse 2 veeruloenduri sisu suurendamine +1 416 CP 21 Loenduri 21 sisu kirjutamine sisemisse registrisse 418 EQ 16,430 Siire reale 430, kui veerg on
võrdlemine) lõpetatud (loenduri 21 sisu
420 RT Alamprogrammi lõpp, naasmine põhiprogrammi (return) 430 SC 21,1 Loenduri 21 algsäte (sätitakse 1) 432 IC 22 Aluse 2 realoenduri 22 sisu suurendamine +1 434 RT Alamprogrammi lõpp, naasmine põhiprogrammi (return)
R i pro b järgmisel . Pärast jõudmist veeru lõppu initsSeejärel suurendab juhtseade realoveergu. (Alates 214. programmirea mireast kuni 432. programmireani.) Iga t a ootab töötlemisprotsessi lõpetamissignaa n määratud põhiprogrammi tsüklinum rammirida 100).
obot gramm tööta t: juhtseade suurendab kummagi aluse veeruloenduri sisuialiseeritakse loendurid ja robot naaseb veeru algusesse. enduri sisu kuni järgmise rea lõpuni ja alustab seejärel uut st kuni 232. programmireani ja alates 414. programoote võtmise järel viib robot selle töötlemisele jli (310. programmirida). Kogu programmi täitmine obriga (vt prog
176