• Nem Talált Eredményt

Pályagenerálás világ koordinátarendszerben

In document Robottechnika II. (Pldal 81-96)

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

T

F

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 FT

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.

In document Robottechnika II. (Pldal 81-96)