6. ROBOTOK PROGRAMOZÁSA
6.1. Robotok pályagenerálása betanító és világ koordináta-rendszerben
6.1.2. Pályagenerálás világ koordinátarendszerben
A világ koordinátarendszerben történő ún. közvetett programozás ma-gas szintű programnyelvek segítségével történik. A programozáshoz az előző pontban leírtaktól eltérően nincs szükség a robotra, a program számítógépen, vagy a robot irányítórendszerén parancsok, utasítások segítségével előállítha-tó. A programozási eljárást ezért nevezik közvetettnek (Off-line). A közve-tett programozási eljárások közül leggyakrabban a szöveges utasításokkal történő programozás terjedt el. Az eljárásnak nagy előnye, hogy a szenzorin-formációk könnyen integrálhatók, mintegy szituációfüggő illesztést tesznek
lehetővé. A hátránya, hogy a program összeállítása képzett programozót igé-nyel.
A szöveges utasításokkal való programozás több koncepción alapulhat:
kísérő koordinátarendszer (csukló koordinátarendszer, frame) kon-cepció,
explicit programozás,
implicit programozás.
Elterjedtségét tekintve, részletesebben a kísérő koordinátarendszer koncepci-óját ismertetjük részletesebben.
Az eddigiek során a robot jellemzésére (4. fejezet) három csukló-koordinátát használtunk, amelyek a robot osztályok meghatározására is szolgáltak. E három csuklókoordináta segítségével a robot TCP pontja ugyan tetszőleges pályát leírhat, tetszőleges pozíciókat felvehet, azonban a munkavégzéshez szükséges orientáció velük nem írható le. Ezért szükséges még (robottípus-tól függően) kettő vagy három csukló-koordináta, amelyek segítségével a megfogószerkezet vagy bármely szerszám orientációja meghatározható. A robot mozgása gyakorlatilag a pozíciómozgással és az orientációs mozgással jellemezhető. A robotkar pozícióján a robot által megfogott szerszám vég-pontját vagy a megfogószerkezet TCP vég-pontját értjük. Az orientáció azt adja meg, hogy melyik irányból és a szerszám vagy megfogószerkezet milyen mértékű elfordításával közelítjük meg az adott pozíció helyzetet. A robot mozgása pedig a kísérőkoordináta-rendszerek egymáshoz viszonyított hely-zetével írhatók le. A csuklókoordinátákkal történő programozással ellentét-ben a kísérő koordináta rendszer a pályapontbeli pozíciót derékszögű koordi-nátákkal írja le, az orientációt pedig a megfogószerkezet tengelyei körüli elfordulási szögek segítségével adja meg. Ezekhez az adatokhoz a viszonyí-tási rendszert egy valós térbeli báziskoordináta rendszer adja, amely általá-ban a robot világkoordináta rendszere. A robot pozíció és az orientáció ér-telmezését a 6.2. és a 6.3. ábra mutatja.
x y
z
rTCP
rTCP = pozíció
z
, y ,
x TCP ,
6.2. ábra
x y
z
z ,
y , x
,
TCP
rTCP
{x , y , z } = orientáció, , ,
6.3. ábra
A különböző programnyelvek a kísérő koordinátarendszereket eltérően defi-niálják. Pl. az AL-nyelvben egy pályapont a megfogószerkezet orientációjá-val együtt úgy definiálható, hogy először deklarálunk egy objektumot a kísé-rő koordinátarendszerével és explicit értékadással adjuk meg egy háromdi-menziós vektor és egy vagy több rotáció értékét. A program szintaktikája:
FRAME box; (a box a kísérő koordinátarendszer típusú változó deklaráció-ja)
box FRAME ROT (y, 180*GRAD), VECTOR (650, 950, 300)*MM .
A FRAME egy olyan kísérő koordinátarendszert jelent, amelynek origója a bázis koordinátarendszerben (világ koordinátarendszerben) x = 650 mm , y
= 950 mm és z = 300 mm, és elforgattuk az y tengely körül 180°-kal, ennek következtében a z tengely lefelé mutat
z
y
x
P MUNKADARAB
P, 950
x
650
300
z
x, y,
,
6.4 ábra
A kísérő koordinátarendszer használata lehetővé teszi, hogy a programozó a pozíció és az orientáció megadásánál tetszőleges térbeli koordináta-rendszert; derékszögű koordinátákat vagy polárkoordinátákat, vagy bármi mást használjon. A robotkarok mozgatását az irányító rendszer azonban csuklókoordinátákban mozgatja. Ennek következtében a program-rendszernek olyan modulokkal kell rendelkezni, amelyek végrehajtják ezt a transzformációt. A transzformációs modul lehetővé teszi azt is, hogy a
ro-botkart valamilyen explicit értékmegadással beprogramozott kísérő koordi-náta helyzetbe közvetlenül is be lehessen állítani.
Ha a pálya pozíció- és orientációadatainak koordinátáit explicit módon kí-vánjuk megadni, ezt megtehetjük szövegszerűen leírt adatokkal, vagy az elő-ző (fejezet) pontban leírt betanítási eljárás segítségével. A programozónak mindegyik esetben ismerni kell a robot által kezelendő objektumok (munka-darabok) pozícióját és ehhez a helyzethez viszonyítva a robot-megfogó ori-entációját. Ismerni kell ezen kívül az egyes objektumok geometriai viszonya-it, hogy a beprogramozott útvonal mentén ne forduljon elő ütközés. Ehhez új fogalmakat kell bevezetni:
a megközelítési kísérő koordinátarendszer,
az elhagyási kísérő koordinátarendszer.
A fenti két kísérő koordinátarendszer a cél egy adott környezetében az oda-, illetve a visszavezető utat definiálja – 6.5. ábra.
ütközéshez vezetõ
pálya y,,
z ,,
megközelítési útvonal megközelítési koordinátarendszer
6.5. ábra
Ezeket a kísérő koordinátarendszereket vagy a kiindulási, vagy a cél kísérő koordinátarendszerhez viszonyítva kell megadni, annak érdekében, hogy a robot megfogó szerkezete a célt meghatározott irányból közelítse meg, és a kiindulási pontot adott irányban hagyja el.
A 6.5. ábrán vázolt megközelítési, illetve elhagyási elvet egy példa keretében nézzük meg részletesebben. Legyen a megfogandó tárgy geometriai közép-pontja a robot kísérő koordinátarendszerében adott:
xF = 40 cm = 400 mm
yF = 30 cm = 300 mm
zF = 10 cm = 100 mm
koordinátákkal – 6.6. ábra. A megfogandó munkadarab kísérő koordináta-rendszerét a 6.6. ábra alapján
z
y
x
F
x = 400
z
y x
F y = 300
F
z = 100 F
e e
e
6.6. ábra
F:=FRAME(ROT (y, 180)*ROT (x, 30), VECTOR (40,30,10)*CM)
szimbólumokkal (AL nyelv) transzformáljuk át a megfogószerkezet kísérő koordinátarendszerévé, azaz forgassuk el β = 180°-kal az ye és 30°-kal a ze tengely körül, akkor a transzformációt a robot világ koordinátarendszeré-ben a homogén koordinátákkal az
mátrix szorzással írhatjuk le, ahol az első mátrix fejezi ki az eltolás mértékét, a második az ye tengely körüli elforgatást, a harmadik pedig a ze tengely kö-rüli elforgatást. A szorzások elvégzésével a transzformációs mátrix:
A jellemző értékek behelyettesítésével a transzformációt
koordinátarendszerbe kell illeszkedni a megfogó kísérő koordinátarend-szerének.
Ahhoz, hogy a megfogószerkezet (6.2), illetve (6.3) mátrixszal meg-határozott helyzetbe kerüljön, a robotkarhoz való csatlakozási felületét jel-lemző P pontnak a ze tengely irányát meghatározó vonalon kell lenni. Jelöl-jük a TCP pont és a csatlakozó felület közötti szerkezeti távolságot k-val – 6.7. ábra.
6.7. ábra
A P pont helyzetét homogén koordináták segítségével az
T
F, F, F
TF
Pr 0 0 1 1 k x y z k , 1
r (6.4)
vektor írja le. (6.4) felhasználásával a P pontban (6.2) alatti transzformáció
1 0
0 0
k z cos sin
sin cos
sin
y 0 cos
sin
x sin
sin cos cos
cos
F F F
P (6.5)
z
y
x
F = TCP
x F y F
z F z
ye xe
e
k
54
65
76 P
illetve k = 12 cm esetén
1 0 0 0
22 1 0
0
30 0 866 , 0 5 , 0
40 0 5 , 0 866 , 0
P (6.6)
mátrixszal fejezhető ki. Ahhoz, hogy a megfogószerkezet a 6.7. ábra szerinti
54, 65 és 76 orientációs szögekkel megvalósítsa a P pontban értelmezett (a megfogószerkezet alaphelyzetének megfelelő) kísérő koordinátarendszer (6.5), illetve (6.6) szerinti elforgatását, ismerni kell a megfogó illeszkedési pontjának (6.4)-gyel definiált helyzetéhez vezető utat. Erre azért van szük-ség, hogy a megfogó orientációs mozgása során elkerülhető legyen a megfo-gandó tárgy és a megfogószerkezet ütközése. Tételezzük fel, hogy ha a robot megfogó illeszkedési pontját
F F F T
1
P x y (z ks) 1
r (6.7)
vektorral jellemzett P1 közelítési pontból indítjuk, akkor elegendő hely lesz az orientáció ütközésmentes végrehajtására. A megközelítési kísérő koordi-nátarendszer egyszerű transzlációval átvihető a cél kísérő koordinátarend-szerbe – 6.8. ábra.
z
yeP xeP
eP P
z
yeP xeP
eP P
1
1 1
1 s (transzláció)
Megközelítési kísérõ koordinátarendszer
koordinátarendszer Cél kísérõ
6.8. ábra
(6.7) és (6.5) felhasználásával a P1 pontbeli kísérő koordinátarendszer transz-formációja
1 0
0 0
s k z cos sin
sin cos
sin
y 0
cos sin
x sin
sin cos cos
cos
F F F
P1 (6.8)
illetve s = 20 cm = 200 mm esetén
mátrixokkal hajtható végre. (6.5) és (6.8) mátrixok figyelmesebb átnézésével látható, hogy egymáshoz viszonyítva definiáltak. A robotprogramozási nyel-vek némelyike pl. az AL és a VAL is a cél-, illetve a kiindulási kísérő koor-dinátarendszerhez viszonyítva definiálja a megközelítési kísérő koordináta-rendszert.
A megfogószerkezet csatlakozási pontja amikor az irányítórendszer által meghatározott 21, 32 és 43 csuklókoordináták alapján rp1. helyzetbe került, a megfogószerkezetét jellemző kísérő koordinátarendszer nem egyezik meg (6.9)-cel, hanem egy teljesen általános helyzetet foglalhat el. A számítások egyszerűsítése érdekében azonban tételezzük fel, hogy a megfogószerkezet TCP pontja a 4 robotkar középvonalának meghosszabbításán helyezkedik el.
Ehhez tartozó kísérő koordinátarendszert jelöljük P1*-gal – 6.9. ábra. Legyen a 6.9 ábrán lévő
robot karjainak mérete:
43 szögkoordináták (5.26) alapján
. elfor-gatással, illetve (6.7) szerinti eltolással hozható létre:
A szorzások elvégzésével (6.11)-ből
mátrixot kapjuk, amelybe (6.10) alatti értékek helyettesítésével a kísérő ko-ordinátarendszer numerikus alakja:
Ezt a kísérő koordinátarendszert kell P1-be forgatni. A számítások a 6.7. áb-rán vázolt esetben – ha a 54, 65 és 76 forgástengelyek egy pontban met-szik egymást – egyszerűen végezhetők, hiszen
(y, 54) (x, 65) (z, 76)
1
1 P Rot Rot Rot
P (6.15)
transzformációt kell végrehajtani.
A példánkban lévő számítások egyszerűsítése érdekében az orientációt csak a
54 = 4 és a 76 = 6 csuklószögekkel hajtsuk végre 65 = 6 = 0 legyen.
Alakítsuk át (6.15) mátrixegyenletet
)
alakúra. Az egyenlet jobb oldalán levő mátrix szorzásból
adódik. A bal oldali szorzáshoz képezzük P1* inverzét
amellyel elvégezve a szorzást
mátrixot kapjuk eredményül.
Az orientációs szögek (6.17) és (6.19) alapján
3809
egyenletrendszerekből
4 = 14,582° (6.21)
6 = 67,666° (6.22) A robotmegfogónak a 4 = 54 és 6.= 76 orientációs szöggel való beállítá-sa után a TCP pontnak, illetve a megfogó cbeállítá-satlakozási pontnak a P1 pontból a P pontba függőleges irányban s = 200 mm-t el kell mozdulni a tárgy meg-fogásához. A P pont helyzetét ekkor (6.4) vektor írja le. A robotkarok új csuklószögei (5.26) felhasználásával:
O 43
3
O 32
2
O 21
1
27 , 52
, 59 , 34
, 86 , 36
(6.23)
értékekre adódnak.
Az ismertetett mátrixműveleteket a különböző programnyelvek szimbolikus utasításokkal hajtjuk végre, és az irányítórendszer a kiszámított adatok alap-ján realizálja a mozgást. Az AL programnyelv a fenti mozgást;
MOVE ARM TO CÉLFRAME
WITH APPROACH = VECTOR (40, 30, 42) WITH DEPARTURE = VECTOR (40, 30, 22)
utasítás formában deklarálja. Látható, hogy a megközelítési és az elhagyási kísérő koordinátarendszer ebben az esetben megőrzi a célpont, illetve a kiin-dulási pont kísérő koordinátarendszerének orientációját.
A leggyakrabban használt programnyelvek az AL,
VAL, HELP, SIGLA, ROBEX.
Ezeket a nyelveket főleg az ipari robotok előállítói fejlesztették ki. A nyelvek konkrétan a robot irányítórendszer követelményeihez illeszkednek. A mű-ködtetési utasításokat is úgy alakították ki, hogy a programozó jól megvá-laszthassa a különböző vezérlési és interpolációs eljárásokat. Szintaktikailag ezek a nyelvek általában egyszerűek, hogy az interpretert (fordítóprogramot)
viszonylag csekély tárolókapacitás igénybevételével magán az irányítórend-szeren lehessen implementálni. a programban általában a vezérlésátadások, az aritmetikai műveletek és az alprogramok használatának lehetőségei – kü-lönösen a régebbi berendezéseknél – korlátozottabbak, ami a strukturált programozás megvalósításának bizonyos korlátokat szab. Az ipari alkalma-zásokban ezek a korlátozások a mai korszerű irányítórendszerek esetén nem jelentenek megkötéseket. A programnyelvek részletes ismertetésétől terje-delmi okok miatt eltekintünk.