Ipari Robotok Programozása
BEVEZETÉS
Előadó: Nagy István (A65) Gyakorlatvezető: Tolnai András Ajánlott irodalom: B. Leatham-Jones: Elements of Industrial Robotics, Pitman Publishing, 1987. CH. Blume, W. Jakob: Ipari Robotok Programozási nyelvei, Műszaki Könyvkiadó, Bp 1987
Robotok kiválasztásával kapcsolatos alapfogalmak: Mivel különböző robotformák léteznek, ezek különböző feladatok ellátására optimálisak. Mindegyik konfigurációnak megvan a maga előnye/hátránya, az egyes feladatokhoz ki kell választani a legmegfelelőbb konfigurációt. Amellett, hogy a robot-konfigurációk meghatározzák a robotok fizikai alakját, méreteit a következők paramétereket is tartalmazzák még: -Kiterjedés (karhossz) -Munkatér -Terhelhetőség (függ az aktuátorok (robotkart mozgató motor) meghajtásától, meghajtás minőségétől / konfigurációtól / a robot fizikai méreteitől, merevségétől, szilárdságától / maximális karhossztól / sebesség, pontosság, ismételhetőség (mennyire tartja a pontosságot ismételt feladat-végrehajtásnál) / megfogó (végrehajtó) súlya (ez még hozzáadódik a teher súlyához) -Megfogó tulajdonságai -Pontosság -Ismételhetőség -Manőverezhetőség -Művelet-végrehajtási gyorsaság -Mozgásvezérlés típusa (ponttól-pontig pályatervezés, folytonos pályatervezés) -Érzékelők elhelyezése Ezeknek a paramétereknek a közös figyelembevételével kell kiválasztani a megfelelő robotot. A konfiguráció általában szilárd testek, csuklókkal való összekapcsolása = manipulátor / robotkarnak is nevezik. Az erő- és merevségszámolásnál figyelembe kell venni: - A teher kezelését (a kezelt anyag súlya) / a megfogó súlyát -A dinamikus illetve tehetetlenségi erőket, mint gyorsulások, lassulások következményeit -Maga a robotszerkezet súlyát.
Munkaterek: Valójában minden robotkonfigurációhoz más-más munkatér tartozik. A munkatér definíciója: a megfogó tengelykeresztmetszeteinek (3D-s környezetben), a robottesttől a megadható legtávolabbra eső, és a robottesthez megadható lehető legközelebb eső terek közti rész. Más szóval: 3D-ben, a megfogó legtávolabbi pályája és legközelebbi pályája közti terület. (természetesen ez kisebb mint a robot kiterjedése; l+ - az összes kar kinyújtott állapotban, l- - az összes kar behúzott állapotban) n
n
WS b( j ) l b( j ) l(i ) i 1
(i )
i 1
Ideális munkatér: ha a robotkar a testhez végtelen közel, és a robottesttől végtelen távol is hozzáfér a térhez minden irányban. Sajnos ez a robot szerkezete miatt nem lehetséges.
Halott zóna: azok a terek, melyekhez a robotkar a robot szerkezete révén nem fér hozzá. A munkaterek meghatározhatóak a robotkonfigurációból a robot fizikai és geometriai tulajdonságai (szerkezet) alapján. A munkaterek nagyon fontosak a megfelelő robotkiválasztásban: -A munkatér alakja és formája nagyon fontos / a halott zóna nagysága / a robot körüli biztonságos zóna meghatározásában. -A robotkar meghosszabbításának lehetőségei / munkaterek átkonfigurálhatóságának lehetőségei. -Figyelembe kell venni, hogy az egyes konfigurációknál a munkaterek határaihoz közeledve változik (csökken) a robotkar terhelhetősége / a pozícionálási pontosság / ---------------------------------------------------------------------------------------------------------------------A b(j) mozgás megállapítása: rögzítjük az egyik koordinátát az x- pontban, majd elvégezzük a lehetséges mozgást (min-max-ig) a másik két (y,z) karral y,zmin sík. -Ugyanezt megcsináljuk az x+ pontban y,zmax. sík -Eredmény: WS = Munkatér = a két sík közötti munkatér.
Robotkonfigurációk: derékszögű – koordinátás (Kartezián), Descartes (Dékárt) konfiguráció Három, egymásra merőleges (ortogonális) mozgást végző merev tengely –x, y, z.
Tulajdonságok: -
Könnyen vezérelhető / programozható / Könnyen értelmezhető x y, z koordináták
-
Nagy pontosság / A pontosság, sebesség, terhelés konstans az egész mozgás-pályáján
-
Egyszerű vezérlő-rendszer
-
Merev konstrukció pontosság
-
Nagy munkatér lefedés / nagy teherbírás
-
Egyszerű struktúra - moduláris / könnyen bővíthető
Felhasználás: - Ahol nagy pontosság szükséges / ahol lineáris mozgások lehetnek / aránylag nagy teherbírással
Derékszögű konfiguráció munkatere: Jellemzők: 1.
A munkatér egy hasáb /
2.
nincs halott zóna /
3.
a robotkar képes a teljes terheléssel és pontossággal dolgozni az egész munkatéren belül
Henger - koordinátás (cilindrikus) konfiguráció: Kombinálja a vertikális, horizontális (transzlációs) mozgásokat a vertikális tengely körüli forgó mozgással.
Tulajdonságok: - Könnyen vezérelhető / programozható / egyszerű vezérlő-rendszer - Jó pontosság (annyira nem mint a derékszögű) / gyors műveleti sebesség - Elölről és oldalról jól hozzáférhető a manipulátor / egyszerű struktúrájú a mechanika
Felhasználás: - Sugárirányú horizontális munkaterekben, ahol nincsenek akadályok, rakodásra használatosak. Általában a kiszolgálást valamilyen futószalag végzi. Ez a k ép most nem jeleníthető meg.
Hengerkoordinátás konfiguráció munkatere: Jellemzők: 1.
A munkatér egy henger (vastag falú cső) /
2.
Van halott zóna / (ha körbe tudna fordulni a kar – 3600 nincs halott zóna
3.
a terhelést csökkenteni kell a munkatér széleinél = nővekszik a nyomaték
4.
A robotkar nem tud a földre lenyúlni.
Csukló koordinátás konfiguráció: Ezt a konfigurációt többféleképpen is nevezik (antropomorf, humanoid). A magyar elnevezés a 3 csuklókapcsolatból ered. Minden mozgás a csuklók szögmegadásán alapszik egyenes út megadása = bonyolult számolás. A képen látunk egy: - nyitott kinematikájú struktúrát (bal oldali): rugalmasabb, de nem annyira merev a konstrukció pontosság rovására megy. -Zárt kinematikájú struktúra: merevebb konstrukció pontosság
Tulajdonságok: -Kiterjedés (karok hossza) az egyes karok csuklójától mért távolságok összege -Jó manőverezhetőség / könnyű hozzáférés: elölről, oldalról, hátulról -A karcsúság miatt (nyitott) bonyolult helyekre is beférhet -Gyors csukló forgó mozgások
Humanoid típusú robotkar: Szintén a csukló-koordinátás konfigurációhoz tartozik, csak az emberi karhoz való hasonlósága alapján kapta ezt az elnevezést: Csukló / Alkar / könyök / felkar / váll / törzs / A tulajdonságok ugyanúgy érvényesek. A képen egy tipikus PUMA robotkar elrendezés látható.
Csukló konfiguráció munkatere: Ide sorolható a PUMA típusú robotkar is.
Jellemzők: 1.
nagy munkatér amely a talaj felé csökken / alakja általában gömb, de a robotkar kivitelezésétől függ
2.
halott zóna – nehezen leírható (PUMA: majdnem teljes gömb) /
3.
a munkatér minden pontja többféleképpen megközelíthető – optimális pályatervezés
Gömb-koordinátás konfiguráció: Két forgó mozgást kombinál egy transzlációs mozgással (ágyúcső konfiguráció).
Tulajdonságok: -Könnyen vezérelhető / programozható -Könnyen érthető koordináták = jó -Nagy terhelhetőség / gyors műveleti sebességek = jó -Pontosság / ismételhetőség = átlagos Tipikus felhasználás: - Berakodás zárt helyekre (csövek, szekrények) melyekhez elölről jó hozzáférés van.
Gömb-konfiguráció munkatere: Jellemzők: 1.
A munkatér két (rész-) gömb közti tér /
2.
halott zóna: a szögmozgások és konstrukció következményei /
3.
Az igazi munkatér nehezen elképzelhető az operátor (programozó) részére nehezebb programozás
SCARA konfiguráció: Mozaikszó (Selective Compliance Assembly robot Arm). A hengeres és csukló-koordinátás rendszerek kombinációja.
Tulajdonságok: -Nagyon jó manőverezhetőség / a munkaterülethez nagyon jó a hozzáférés -Nagy pontosság / gyors műveleti sebesség / aránylag nagy terhelhetőség
Felhasználás: - Általában egy adott horizontális síkban rakodó/összerakó műveletek.
SCARA konfiguráció munkatere: Jellemzők: 1.
A munkatér mint egy lekerekített szív alakzat / nagy lefedettség
2.
Halott zóna / aránylag kicsi
3.
a robotkar, horizontális síkokban, kimondottan összerakó/összeszerelő műveletekre lett tervezve
Szabadságfok / nyomatékfok: Ezek gyakran összekevert, fogalmak a robotikai irodalomban.
Szabadságfok: A testnek a térben lévő elhelyezkedésére és orientációjára utal. Minden testnek a térben 6 szabadságfoka van:
- 3 a három tengely mentén lévő egyenes-vonalú mozgásból (ezzel a testet pozícionálhatjuk a térben) - 3 a három tengely körüli forgó mozgásból (ezzel a test orientációját megadhatjuk a térben)
A nyomatékfok: valójában a robotkar nyomatéktengelyeit jelenti:
Figyelem: A megfogó szerkezetéből származó szabadságfokok nem számítanak bele a robotkar szabadságfokába.
Mozgások / kapcsolatok: Alapvetően 2 robotkar-mozgást különböztetünk meg:
1.
egyenes-vonalú (transzlációs – T-) mozgást. A kapcsolat a mozgó alkatrészek között – egymásba csúszó hasábok (prizmák), hengerek. Pozícionálás: x, y, z megadása.
2.
forgó (csukló –R-) mozgást. A kapcsolat a mozgó alkatrészek között csukló. Pozícionálás: , , megadása
Gyakran a robotkonfigurációkat mikor megadják, ezekkel a mozgásokkal / kapcsolatokkal jellemzik: Derékszögű: TTT (mozgások: T – transzlációs, R -rotációs)
PPP (kapcsolatok: P – prizmatikus; R - csukló)
Hengeres:
RTT
RPP
Gömb:
RRT
RRP
SCARA:
RRR(T)
RRR(P)
Pályatervezés - PTP:
A pályatervezésnél alapvetően két koncepciót követhetünk: -
Ponttól pontig (PTP) való pályatervezés:
-
Folytonos útvonalon (CPP) való pályatervezés:
A PTP pályatervezés alapja: a végrehajtó szerv (megfogó) érje el a legrövidebb idő alatt az x, y, z koordinátákkal megadott pozíciót. A megadott ábrán az A-ból B-be jutás 3 módszerét követhetjük: a.: a leghosszabb / leglassúbb út (minden tengely külön-külön kapta az instrukciókat) – viszont könnyű a vezérlése b.: A leggyorsabb mert a legrövidebb úton megy. Bonyolultabb programozás, mivel „egyszerre” mozgatjuk a tengelyeket. A vezérlésnél általában lineáris interpolációt használunk (így nehéz teljesen egyenes utat leírni, de legjobban közelíti). c.: Általában CNC gépeknél használatos, az előző kettő keveréke. Először mindkettő tengely teljes sebességgel mozog (450), majd amikor az egyik tengely elérte a kívánt pozíciót, csak a másik mozog a célkoordinátáig. (Talán ez az amit a leggyakrabban használnak)
Pályatervezés - CPP: A folytonos pálya tervezésénél 3 metódust követhetünk: Lineáris interpoláció (kis egyenes szakaszokból összerakott pálya); Kör interpoláció (körvonalakból összerakott pálya); parabola interpoláció (parabolisztikus görbékből összerakott pálya)
Lineáris interpoláció: amennyiben a cél és kiindulás között a pálya nem egyenes – felosztjuk rövid egyenesekre, melyek különböző szögekben közelítenek a cél felé.
Sajnos az egyes egyenesek kapcsolatánál nincs folytonosság nem deriválható (sebesség?). Egy kör állhat 5,-6, -12 szögből több kis szakasz = nagyobb felbontás = hű pályakövetés. A képlet amivel dolgozhatunk: Y = k.x + q (az egyenes egyenlete)
Kör (cirkuláris) interpoláció: a pálya körvonalakból tevődik össze (kapcsolódási pontok –
nincs összekötés nem deriválható). A képlet amivel dolgozunk: r2 = x2 + y2 (a kör egyenlete)
Parabola interpoláció: a pálya parabolákból tevődik össze, már jobban megközelítheti a „szabad” görbéket, sajnos a kapcsolódási pontokra ugyanazok a hátrányok jelen vannak. A képlet: Y = x2 (ez az általános alak)
A valóságban ezen 3 tervezési metódus kombinációjával nagyon bonyolult pályákat le
tudunk írni, és ezt is használjuk. A gond, hogy az egyes kapcsolatoknál a függvények nem folytonosak nem deriválhatóak nincs sebességvezérlés (azért általában a tehetetlenségi erő átlendíti a megfogókat ezen a ponton)
Napjainkban egyre elterjedtebb a SPLINE-ok (lágygörbe) segítségével történő pályatervezés. Előnyük: mindenhol deriválhatóak. Hátrányuk: bonyolultabb számolás.
Robotvezérlés: A vezérlés a következő kategóriákat foglalja magába: -
Tengelyek vezérlése → pozíció / sebesség
-
Program (amit a felhasználó rendel meg) – ami a tengelyek koordinációját és vezérlését adja meg
-
Ki- / Bemeneti berendezések vezérlése
-
Általános rendszer vezérlés (pl.: hogy a második műveletet csak akkor kezdje, ha az elsőt sikeresen (vagy sikertelenül –de hibajelentéssel) befejezte.
Egy tipikus ipari robot-rendszer összetevői: - Aktuátorok (motorok) / Manipulátor (robotkar) / Vezérlő rendszer / végrehajtó szerv (megfogó) / Visszacsatolások (sebesség, pozíció) / Interfészek / Érzékelők / (járószerkezet) – ha a robot a helyét is tudja változtatni.
Összefoglalás és definíciók: Az ipari robot, német szabvány szerinti definíciója: Az ipari robotok univerzálisan alkalmazható, több tengely körüli elforgatást lehetővé tevő műveletvégző automaták, amelyeknél az egyes mozgások, a helyzet-beállítási sorrend, az elmozdulási úthosszak, ill. a szögek szabadon programozhatók (tehát mechanikus beavatkozás nem szükséges), ill. adott esetben külső érzékelők által vezérelt, azaz szabályozott mozgást valósítanak meg. Az ipari robotokra különféle megfogó-szerkezetek, szerszámok vagy más gyártóeszközök is felszerelhetők, de megoldhatunk velük munkadarab-mozgatási és/vagy gyártási feladatokat is.
Ezzel kapcsolatban fontos kiemelni, hogy olyan programozható készülékről van szó, amely motorok és forgástengelyek segítségével különféle mozgásokat képes megvalósítani a háromdimenziós munkatérben.
Összefoglalás és definíciók: Az érzékelőkkel kapcsolatban: Az ipari robotokhoz ezenkívül érzékelőket is csatlakoztathatunk, melyek gyakorlatilag perifériaként működnek. Az érzéke|ők olyan készülékek, amelyek az érzékszervekhez hasonlóan fizikai jeleket érzékelnek (így pl. fényhullámokat, a csuklós karok nyomását vagy helyzetét), ezeket regisztrálják, elektromos vagy digitális jelekké alakítják és a robot vezér|ő számítógépe felé továbbítják. Az érzékelőtől származó jelek ezután kiértékelhetők, és a program menetének megfelelően módosíthatók.
A végrehajtó szervekkel kapcsolatban: A robot karjának végére megfogószerkezet, szerszám vagy valamilyen más gyártóeszköz szerelhető, amelyeket összefoglaló néven végrehajtó szerveknek nevezünk. Ezeknek a végrehajtó szerveknek
szintén vezérelhetőknek és érzékelőkkel irányíthatóknak kell lenniük.
A műveletekkel kapcsolatban: Az ipari robotok mechanikai felépítésüknél fogva végrehajtó szerveik segítségével különféle műveletek sokoldalú elvégzésére alkalmasak. Végrehajthatnak különféle beállításokat, amelyek vezérlése függhet az érzékelőktől, érzékelő-vezérléssel vagy anélkül működtethetnek megfogó-eszközöket vagy szerszámokat, és/vagy módosíthatják a programmenetet.
Egyéb alapdefiníciók: Az ipari robotok külső kialakítása már a konstrukció fázisában is nagy jelentőségű kérdés - ugyanez á|l a méretekre és a geometrióra is -, mivel ezek határozzák meg a munkateret és annak lehetőségét, hogy tetszőleges helyzetek beállíthatók legyenek, valamint hogy a végrehajtó szervet tetszőleges irányba lehessen állítani. Ennek biztosításához hat szabadságfokra van szükség.
Szabadságfokon egy olyan független mozgástengely meglétét értjük, amelynek mozgása nem állítható elő a többi mozgástengely valamilyen összetett mozgásából. Az ipari robotok mozgástengelyét a hajtás, a hajtómű és a csukló kombinációja alkotja. Az ipari robotok egyes csuklói alkalmasak lehetnek egyenesvonalú (transzlációs), vagy forgó (rotációs) mozgás végrehajtására. Az elmozdulást ennek megfelelően az elmozdulási úthossz, vagy szög megadásával írhatjuk le. Bonyolult műveletek közvetlen - más szóval direkt – programozása a több mozgástengelyű robotok esetében ezért az egyes csuklók szögelfordulásának és az eltolási úthosszak egyenként történő megadása miatt elég fáradságos, hiszen az egyes szögérték-megváltozásoknak a végrehajtó szerv mozgására gyakorolt eredő hatását a programozó már nem tudja minden további nélkül kiszámítani. Ezért a karok mozgását először a könnyebben kezelhető derékszögű koordinátarendszerben adjuk meg, ezeket az adatokat azután átszámítjuk a megfelelő csuklókhoz tartozó szögelfordulás- és egyenes vonalú elmozdulás-értékekre. Az átszámítást koordináta-transzformáció segítségével hajtjuk végre. Hasonlóképpen a robot helyzetéről a helyzetértékelők által szolgáltatott koordináták átszámítása derékszögű koordináta-rendszerbe is koordináta-transzformációval végezhető. Az ipari robotoknak saját geometriai viszonyaival és a különféle mozgásokkal kapcsolatos problémái a kinematika (mozgástan) keretében tárgyalhatók. Ennek során mindazokat az erőket, amelyek a mozgással kapcsolatban fellépnek, valamint a mozgatott testek tömegét figyelmen kívül hagyjuk. A közelítés általában elegendőnek bizonyul, azonban a robot vezérléséhez már dinamikus modellre is szükség van, hogy ennek segítségével lehessen a robotot a pályatervezés során meghatározott térbeli görbe mentén vezérelni. Ez már a robotra ható összes erőt figyelembe veszi, így a tehetetlenségi, a gravitációs, a centrifugális és a Coriolis erőket is. Ipari robotok programozhatók programszöveg használatával vagy anélkül, mivel a tisztán mozgásprogramozásra redukálódott eljárásokhoz nincs szükség feltétlenül programozási nyelvre.
Egyéb alapdefiníciók - mozgásprogramozás: - A mozgásprogramozás eljárásai a következők: - Kézi programozás (végállásjelzők beállítása). - Beállítási eljárás (a robotkart hajtás nélkül a pá|ya egy pontjában előírt helyzetbe, ún. pozícióba és irányba állítjuk HOMING). - Követőprogramozás (a robotkart a hajtás segítségével mozgatjuk a pá|ya előzetes bejárása céljából). - Master-slave-programozás (a programozó a kicsiny yezető robotkart (master-t) vezeti, amelynek mozgásai átadódnak a nagy, ún. másoló (slave) karra. A programozás ilyenkor abból áll, hogy a robotkarral bejárjuk a pálya egyes pontjait, az ennek során generált programkód pedig általában csak a pályapontok koordinátáiból áll. Kizárólag betanítási (teach-in) eljárás segítségével állíthatók be a tiszta mozgásprogramozáson túlmenő adatok, mint pl.: - a mozgás sebessége, - a mozgás időtartama, - a programszünetek, - egyszerű programhurkok, - megszakítás esetén egyszerű programelágazások (az érzékeőkjeleitől függően), -különleges funkciók beállítása (pl. a vezérlés módja, lépésköz, osztás). Ehhez a programozónak le kell nyomnia a megfelelő funkcióbillentyűt. A numerikus paraméterek (pl. időtartam) megadásához meg kell adni a választott konstans számjegyeinek sorozatát. A betanítási eljárás tehát már tartalmaz egy bizonyos szövegrészt is. Mivel minden egyes funkciót, ill. minden egyes parancsot egy-egy megfelelő billentyű
lenyomásával választunk ki, így nincs is lényeges elvi különbség a betanítási eljárás és a szövegszerű programozás között, amelynél az egyes műveleteket és adatokat szimbolikusan, azaz jelsorozatok formájában adjuk meg. Az egyes szimbólumok összessége az adott programnyelv szókészletét jelenti, azok a nyelvtani szabályok pedig, hogy miképpen
lehet az egyes nyelvi elemeket egymással kombinálni, képezik a nyelv ún. szintaxisát. A programozási nyelvek ilyen értelemben vett szintaxisa bizonyos mértékig korlátok közé van szorítva. Ennek során figyelmen kívül marad az, hogy mi a szimbólumok vagy ezek kombinációinak jelentése, más néven a nyelv szemantikája. Fontos szempont az is, ahogyan a nyelvet gyakorlatilag alakítjuk, használjuk. Ezt nevezik a nyelv pragmatikájának.
Gyakorlati példák – TCP koordináták kiszámolása – Derékszögű koordinátás robot (vezérlő paraméterek: TTT): Szerkezeti méretek:
l1, l2min, l3min, l4min Megfelelő karok elmozdulásai:
S21, S32, S43
Gyakorlati példák – TCP koordináták kiszámolása – Henger koordinátás robot (vezérlő paraméterek: RTT):
Gyakorlati példák – TCP koordináták kiszámolása – Gömb koordinátás robot (vezérlő paraméterek: RRT):
Gyakorlati példák – TCP koordináták kiszámolása – Csukló koordinátás robot (vezérlő paraméterek: RRR):
a.) Függőleges síkmozgású
Gyakorlati példák – TCP koordináták kiszámolása – Csukló koordinátás robot (vezérlő paraméterek: RTT):
b.) vízszintes síkmozgású - SCARA
Gyakorlati példák – munkatér kiszámítása:
Gyakorlati példák – munkatér kiszámítása:
Gyakorlati példák – PTP pályatervezés:
Gyakorlati példák – CP pályatervezés: