Professional Documents
Culture Documents
RRT Ea 1
RRT Ea 1
DOCX
Villamosmérnöki és Informatikai Kar rendszertechnikája 2017.10.02.
Automatizálási és Alkalmazott előadás Dr. Tevesz Gábor
Informatikai Tanszék 1. fejezet I / 1. oldal
Robotirányítás
rendszertechnikája
Elektronikus jegyzet
1. fejezet
COPYRIGHT
BEVEZETÉS ...............................................................................................................4
1. ROBOTIRÁNYÍTÁSI ALAPISMERETEK ................................................................7
1.1 A robot, mint irányítandó folyamat ..................................................................7
1.2 Egy kis fejszámolás ......................................................................................11
1.3 A robot geometriája – direkt geometriai feladat ............................................15
1.3.1 Lineáris transzformációk ................................................................................15
1.3.2 Koordináta-transzformáció .............................................................................21
1.3.3 A Rodrigues-képlet ........................................................................................25
1.3.4 Az orientáció jellemzése Euler-szögekkel ......................................................26
1.3.5 Merev testek relatív helyzetének jellemzése homogén koordinátákkal ..........28
1.3.6 Merev, nyílt láncú elágazás nélküli robot leírása ............................................30
1.3.7 Robotok leírása a Denavit–Hartenberg-alak segítségével .............................32
1.4 A direkt geometriai feladat megoldása Puma-560 robotra............................36
1.5 Az inverz geometriai feladat megoldása Puma-560 robotra .........................46
1.6 A robot differenciális mozgása .....................................................................55
1.6.1 Egy csukló hatása .........................................................................................55
1.6.2 A robot Jacobi-mátrixa ...................................................................................57
1.6.3 Direkt kinematikai feladat ...............................................................................58
1.6.4 Inverz kinematikai feladat ..............................................................................58
1.6.5 Statikus erők és nyomatékok transzformálása ...............................................60
1.7 A robot dinamikája ........................................................................................62
1.8 Robotirányítási módszerek ...........................................................................64
1.8.1 Decentralizált szervóhajtások ........................................................................65
1.8.2 Kiszámított nyomaték (nemlineáris szétcsatolás) módszere ..........................66
1.8.3 Hibrid pozíció- és erőirányítás .......................................................................68
FÜGGELÉK...............................................................................................................73
F.1 Robotkar mozgásegyenletének alakja .............................................................73
F.1.1 Lagrange-féle másodfajú egyenletek .............................................................74
F.1.2 Példa: Kétszabadságfokú robotkar ................................................................76
IRODALOM ...............................................................................................................85
BEVEZETÉS
1. félév:
Specializáció elméleti tantárgyak:
o Beágyazott operációs rendszerek (BMEVIAUMA08)
o Nagyteljesítményű mikrokontrollerek és interfészek (BMEVIAUMA07)
o Számítógépes látórendszerek (BMEVIIIMA07)
Specializáció gyakorlati tantárgy:
o Önálló laboratórium 1 (BMEVIAUML02)
2. félév:
Specializáció elméleti tantárgyak:
o Alkalmazásfejlesztés (BMEVIAUMA09)
o Robotirányítás rendszertechnikája (BMEVIAUMA10)
Specializáció gyakorlati tantárgyak:
o Önálló laboratórium 2 (BMEVIAUML03)
o Rendszer és alkalmazástechnikai labor 1 (BMEVIAUMA11)
3. félév:
Specializáció gyakorlati tantárgyak:
o Rendszer és alkalmazástechnikai labor 2 (BMEVIAUMB03)
o Diplomatervezés 1 (BMEVIAUMT02)
4. félév:
Specializáció gyakorlati tantárgy:
o Diplomatervezés 2 (BMEVIAUMT03)
1. Robotirányítási alapismeretek
Ebben a fejezetben megismerkedünk a robotok, mint komplex irányítandó objektumok főbb
fajtáival, a robotgenerációkkal és a robottípusokkal. Áttekintjük a robotirányítás matematikai
alapjait, a pályatervezés alapjául szolgáló direkt és az inverz geometriai transzformációt.
Röviden elemezzük a robot kinematikáját és dinamikus modelljét, majd megismerkedünk a
legfontosabb robotirányítási elvekkel és módszerekkel.
3. Szabályozók és programozásuk
Megismerkedünk a robotokban alkalmazott digitális szabályozó algoritmusokkal (pozíció,
sebesség, nyomaték szabályozó közök). Az elintegrálódás kiküszöbölése.
4. Robotprogramozási nyelvek
Megismerkedünk a robot programozási nyelvek tulajdonságaival. On-line, off-line
programozás, explicit programozási nyelvek osztályozása. Kitekintés: a robotprogramozás
fejlődési irányai, implicit programozás.
Részletesen ismertetésre kerül a Nokia-Puma 560-as robot ARPS programnyele, utasításaival
és azok tulajdonságaival. Áttekintjük az ARPS nyelvi bővítésének lehetőségeit hibrid pozíció-
erő irányításhoz.
6. Mobil robotok
Mobil robotok legfontosabb ismertetőjegyei, osztályozásuk, irányításuk. Mobil robotok
szenzorai, a tájékozódás legfontosabb kérdései és megoldásai. Egyszerűbb pályatervezési
fogalmak.
A tantárgyat felvevő hallgatóknak egy (opcionális) otthoni feladatot és egy zárthelyi feladatot
kell teljesíteniük a félév során, majd a félév végén írásbeli vizsgát kell tenniük.
1. ROBOTIRÁNYÍTÁSI ALAPISMERETEK
beszélünk, ilyenkor a több lehetséges megoldás közül valamilyen optimalizálási eljárás szerint
választva határozzuk meg a robot mechanikus elemeinek helyzetét.
A robot felépítését tekintve szegmensekből (tagokból) áll, az egyes tagokat csuklók (izületek
- joint) kapcsolják össze. Az előbbi terminológiához kapcsolódva lehetséges, hogy egy
szegmens az előző szegmenshez képest lineáris mozgást végezhet (transzlációs csukló –
prismatic joint), vagy az előző szegmenshez képest elfordulhat (rotációs csukló – revolute
joint). A rotációs csukló legfontosabb jellemzője (ún. csuklókoordinátája) a szögelfordulás,
transzlációs csuklóé pedig az elmozdulás. Mindkét csuklótípus 1-1 szabadságfokot képvisel.
Nyílt láncú robotkar esetén a szegmensek megszámozhatók úgy, hogy az i-edik szegmens
helyzete csak az első i csuklókoordináta függvénye legyen, ezek teljes mértékben
meghatározzák az i-edik szegmensnek mind a pozícióját, mind az orientációját. A
szegmensláncolat végén található az adott munkavégzéshez illeszkedő végberendezés
(effektor).
A robot legfontosabb tulajdonsága, hogy előírt mozgást hajt végre. A mechanikailag egymásra
épülő szegmensek csuklóinak irányítása nem is olyan magától értetődő feladat, mint azt elsőre
gondolnánk.
3. A valóságos feladatok általában nem fogalmazhatók úgy meg, hogy ismerem a csuklók
kiindulási helyzetét és a megkívánt véghelyzetet; innen kezdve "minden csukló mozog
ahogy akar". Még a legegyszerűbb pozícióirányítás esetében is elvárás ma már, hogy a robot
manipulátora előírt pályán (nem biztos, hogy egyenes!) mozogjon, előírt sebességgel,
bizonyos tárgyakat kikerüljön, stb. A mozgás során a csuklók szabályozókörei újra és újra
"elemi feladatokat" kapnak, valakinek pedig a mozgás folytonosan, valós időben
koordinálnia kell.
1. Az első generációs robotok még csak a pályát leíró programjuk szerint vezérelve
működtethetők, az irányító számítógép programja adja meg mozgásuk útvonalát, határozza
meg az elvégzendő tevékenységeket. A környezet változásait nem érzékelik.
2. A második generációs robotok már környezetüket szenzorokkal vizsgálják, az így szerzett
és a saját működésükről nyert információk alapján a számítógép már képes módosítani a
robot mozgását, például kikerüli a váratlanul útjába került akadályokat. Feladataikat magas
szintű programnyelven határozhatjuk meg.
3. Az általában kutatási alkalmazásokban megtalálható harmadik generációnál egyértelmű a
mesterséges intelligencia térhódítása: jól alkalmazkodnak a környezet változásaihoz,
alakokat és helyzeteket ismernek fel, hanggal is vezérelhetők, amire képesek hanggal
válaszolni, önálló döntéseket hoznak, bonyolult feladatokat oldanak meg, alkalom adtán
maguktól módosítják a betáplált programot. Segítségükre vannak tanuló algoritmusaik;
általuk hasznosítják korábbi tapasztalataikat.
Debouncing
Start
N Y
Input
==State
N Y
DTimer
==DLimit
Clear DTimer
Debouncing
Stop
b) Hajtásszabályozás
Lépjünk egy szinttel magasabbra, és tételezzük fel, hogy már tudjuk, az adott motort milyen
sebességre kívánjuk szabályozni (vagy hová kívánjuk pozícionálni). A feladat csupán ezen
feladat elvégzése. Vegyünk egy viszonylag egyszerű PID irányítási algoritmust:
Ezt a feladatot egy korszerű hajtás esetében hozzávetőlegesen 100-500 μsec-ként kell
elvégeznünk. Egyelőre indoklás nélkül fogadjuk el, hogy a feladat 32 bites egész (fixpontos)
aritmetikával elvégezhető. Mikrokontrollereink számára ez hozzávetőlegesen a következő
időigénnyel jár:
c) A robotirányítás pályatervezése
Jelölje R n az n-dimenziós euklideszi vektorteret, és legyen P a tér egy pontja. Jelölje x a tér
origójából a P pontba mutató helyvektort. Rögzített e1 , e 2 ,..., e n bázisvektorok mellett x
egyértelműen felírható a következő alakban:
n
x x je j (1.3.1)
j 1
Jelen fejezet anyaga részletesebben megtalálható Dr. Lantos Béla: Robotok irányítása c. könyvében [1]
1
m
y yi fi (1.3.8)
i 1
vagyis
x' x 1 0 0 x x
y' A y 0 1 0 y y (1.3.17)
z' z 0 0 0 z 0
A a
def
(1.3.19)
a lineáris transzformáció mátrixát az i, j, k ortonormált bázisban.
A
R 3 R3
i i
j j (1.3.20)
k k
R 3
a
R3
Képezzük a bázisvektorok képét a szimbolikus determináns segítségével:
i j k
a i ax ay az az j a yk (1.3.21)
1 0 0
i j k
a j ax ay az axk az i (1.3.22)
0 1 0
i j k
a k ax ay az a y i ax j (1.3.23)
0 0 1
Tehát (1.3.12) alapján
0 az ay
a az 0
ax (1.3.24)
a y ax 0
ahol a és b konstans vektorok, és , jelöli a vektorok skaláris szorzását. Erre a műveletre a
későbbiekben lesz szükségünk, ott azonban majd a = b = t feltételezéssel fogunk élni, ahol t
egységvektor. Ilyenkor az (1.3.25) a következőre módosul:
A( x) t t , x (1.3.26)
Kövessük végig, hogy mi is történik az x vektorral ebben az esetben!
xt
t
1.3.3 ábra – A diadikus szorzat speciális esete
Először skalárisan szorozzuk x vektort t-vel, amely megadja xt hosszt, majd ahhoz, hogy ebből
t irányú xt vektor legyen, meg kell szoroznunk az xt skalár értéket t egységvektorral.
Természetesen az (1.3.25) transzformáció számára is előállíthatjuk a megfelelő a b mátrixot
i, j, k bázisban:
A
R 3 R3
i i
j j (1.3.27)
k k
R 3 ab
R 3
A bázisvektorok képei:
a b, i abx
a b, j aby (1.3.28)
a b, k abk
amelyek alapján az ismert módon felírhatjuk a transzformációs mátrixot
a x bx a x by a x bz
a b a ybx a y by
a y bz (1.3.29)
a z bx a z by a z bz
1.3.2 Koordináta-transzformáció
Legyenek a tengelyek irányába mutató bázisvektorok rendre i, j, k valamint i’, j’, k’. A P pont
közös, ezért P( x, y, z ) P( x, y, z ) , de mivel eltérő koordinátarendszerben jelentik ugyanazt a
pontot, ezért a koordináták (pl.: x és x’) eltérőek. Ebben az esetben az A I identikus
transzformációt alkalmazzuk (mivel a P pont helye a térben nem változik, csak a koordinátái
mások). A leképezés bázisfüggő A mátrixa viszont eltér I egységmátrixtól.
I
R 3 R3
i i
j j (1.3.30)
k k
R 3
A
R3
Tegyük fel, hogy ismerjük P pont koordinátáit az i’, j’, k’ bázisban, és keressük az i, j, k-beli
koordinátákat (hogy miért ezt, és nem a K K irányt választjuk, arra mindjárt fény derül).
Ha alkalmazzuk az identikus transzformációt a bázisvektorokra, azok nem változnak:
I(i) i, I( j) j, I(k ) k . Felhasználva az (1.3.10) és (1.3.12) eredményeket az identikus
transzformáció A mátrixa a következőképpen írható fel:
A i j k (1.3.31)
ahol az i’, j’, k’ vektorokat az i, j, k bázisban írtuk fel.
x x x
y A y i j k y (1.3.32)
z z z
Mivel A oszlopai az i’, j’, k’ vektorok felírva az i, j, k bázisban, ezért az A mátrix (1.3.31)
alapján megadja K’ koordinátarendszer orientációját K koordinátarendszerhez képest. (Ezért
választottuk az előbb a K K irányt a koordináta-transzformáció felírásánál, hogy az
elforgatott K’ koordinátarendszernek az „álló” K-hoz képesti orientációját fejezzük ki az A
mátrix segítségével.) A transzformáció ezen tulajdonsága később igen fontos lesz akkor, amikor
majd a robot csuklóihoz rögzített koordinátarendszerek között kell a transzformációkat
meghatároznunk. Másrészt viszont az A mátrix (1.3.32) alapján ugyanannak a mozdulatlan P
pontnak K és K’ koordinátarendszerben kifejezett koordinátái között is leírja a kapcsolatot.
Természetesen a két koordinátarendszer szerepe felcserélhető, ebben az esetben az A mátrix
inverzét felhasználva megkapjuk a fordított kapcsolatot:
x x x
y A 1 y i j k y (1.3.33)
z z z
xelf
xelf
yelf Rot ( z, ) yelf (1.3.36)
zelf zelf
Vizsgáljuk meg, mit jelent a kapott összefüggés! Ugyanaz a Rot( z , ) mátrix megadja az
összefüggést egy rögzített pont koordinátái között az elforgatott és az eredeti
koordinátarendszerben. Vagyis a Rot( z , ) mátrix szerepe kettős:
Egyrészt egy pont (vektor) z tengely körüli elforgatását végző ROT ( z , )
transzformációt reprezentálja (rögzített bázisban),
másrészt egy adott K koordinátarendszerhez képest a z tengely körül elforgatott K’
koordinátarendszerben megadott pontok koordinátáit transzformálja a K
koordinátarendszerbe (az I identikus leképezést reprezentálja egy új bázisban):
ROT ( z , ) I
R 3 R 3 R3 R3
P Pelf Pelf Pelf
i i i i
j j, j j (1.3.37)
k k k k
Rot ( z , ) z , )
R 3 R 3 R 3 Rot
( R 3
Ez utóbbi tulajdonság alapján határozzuk meg a Rot( z , ) mátrix alakját. Az (1.3.12)
összefüggés alapján
Rot( z , ) i j k , (1.3.38)
ahol az i’, j’, k’ vektorok az i, j, k bázisban vannak felírva. A vektorok számszerű felírásához
lássuk a 1.3.6 ábrát!
Vizsgáljuk most az elforgatás azon általános esetét, amikor egy tetszőleges, az origón átmenő
t egyenes mentén történik az elforgatás. Jelölje t egységvektor az egyenes irányát,
t t, t 1 . A pozitív forgatási irányt definiáljuk t körül a jobbcsavar-szabály szerint.
2
ROT ( t , )
R 3 R 3
i i
j j , (1.3.43)
k k
Rot ( t , )
R 3 R 3
Ilyenkor – a levezetést mellőzve – a rotációs mátrix a következőnek adódik
Rot(t, ) C I 1 C t t S t (1.3.44)
Amennyiben egy általános t irány körül elforgatjuk a tér pontjait szöggel, akkor ugyanezen
tengely mentén – szöggel elvégezve egy forgatást visszakapjuk az eredeti állapotot, tehát a
forgatásra, mint lineáris transzformációra igaz, hogy:
ROT (t, ) 1 ROT (t, ) (1.3.45)
Ez ugyanúgy igaz a transzformáció mátrixára is. Ráadásul a forgatást reprezentáló a mátrixok
inverze megegyezik a transzponáltjukkal:
Rot (t, ) Rot (t, ) 1 Rot (t, )T (1.3.46)
Ez látszik a (1.3.44) összefüggésből is, mivel a C és 1 C páros, az S páratlan függvény,
az I és t t szimmetrikus mátrixok, és t t T .
- Essen egybe K’ koordinátarendszer K-val, majd forgassuk el K’-t z tengely körül szöggel
úgy, hogy y’ és t egybeessen. Ezt biztosan megtehetjük, hiszen (1.3.48) értelmében t benne
van az [x, y] síkban.
- K’’-t vegyük K’-vel megegyezőnek, majd forgassuk el y’ körül szöggel úgy, hogy z’’
egybeessen az előre meghatározott z’’’ tengellyel. Ez is biztosan megtehető, hiszen z’ = z
és z’’ = z’’’ is merőleges t-re (1.3.48) értelmében.
- Ezek után válasszuk K’’’-at úgy, hogy K’’-vel egybeessen, majd forgassuk el z’’ körül
szöggel úgy, hogy y’’ tengelye egybeessen az előre adott y’’’-vel. Ez ugyancsak (1.3.48)
értelmében azért lehetséges, mert t benne van az [x’’’, y’’’] síkban, és erre merőleges
z’’ = z’’’.
x x
y Rot( y ' , ) y (1.3.50)
z z
x x
y Rot( z , ) y (1.3.51)
z z
l x mx nx
A l y my n y Euler( , , ) , (1.3.54)
l z mz nz
és az Euler-szögeket kívánjuk meghatározni. Ennek az ún. inverz Euler-feladatnak a
megoldását a következő fejezetben részletezzük, az inverz geometriai feladat részeként. Látni
fogjuk, hogy abban az esetben, amikor a robot 6 szabadságfokú, és az utolsó 3 tengely Euler-
kézcsuklót alkot, az inverz geometriai feladat egyszerűsödik, mivel a számítás szétesik egy
pozíció és egy orientációszámításra.
Az eddigi fejezetekben odáig jutottunk, hogy már kétféle eszközt ismerünk két
koordinátarendszer relatív orientációjának felírására: az Euler-szögeket és az általános A
orientációs mátrixot. Azonban nem foglalkoztunk még azzal az esettel, amikor a két
koordinátarendszer origója nem esik egybe. Egy robot szegmenseinek egymáshoz képesti
leírásánál is előfordulnak eltolások a forgatások mellett. Célszerű tehát bevezetni egy olyan
eszközrendszert, amellyel egységesen kezelhetjük mind a forgatásokat, mind az eltolásokat.
Ennek érdekében vezetjük be az ún. homogén koordinátákat a relatív helyzet jellemzésére.
r r 'p (1.3.55)
ezért felírhatjuk a P pont koordinátáit a K bázisban (1.3.32) alapján:
x x
y l m n y p x l y m z n p (1.3.56)
z z
1
A p A 1 A 1p
0T T (1.3.62)
1 0 1
Amennyiben A mátrix forgatást reprezentál, akkor (1.3.46) alapján
A 1 AT (1.3.63)
Amennyiben A A1A 2 ... mátrix egymás utáni forgatásokat jelent, akkor
Az [i] szegmens pozíciója és orientációja jól láthatóan csak az előtte található szegmensektől
függ. Legyen KB keret a robot abszolút bázisa (pl. a talapzathoz rögzítve). A [0] szegmens a
bázishoz képest nem mozdul el (hiszen ez a robot legelső, talapzathoz rögzített szegmense,
amelyen az első csukló található). A t0 tengely a [0] szegmenshez tartozik, viszont az itt definiált
q1 csuklóváltozónak csak az [1] szegmensre (és természetesen az utána következő többire is
közvetetten) van hatása, [0]-ra nem. Ez indokolja, hogy az elnevezésnél a ti–1 tengelyhez a qi
csuklóváltozót rendeltük. Általában igaz ezek után, hogy az [i–1] szegmenshez rögzített Ki–1
keret pozícióját és orientációját csak az előtte található szegmensek és csuklók határozzák meg,
így amennyiben ezt ismerjük, akkor qi alapján meghatározható Ki keret helyzete a
def
TKi 1Ki Ti1,i (1.3.65)
homogén mátrix segítségével.
Az emberi test analógiájára szokás a [0] – [3] szegmenseket karnak (arm), a [4] – [6]
szegmenseket kézcsuklónak (wrist), a végberendezést (pl. megfogót) pedig kézfejnek (hand)
nevezni, amelynél megkülönböztethetünk felerősítési- és szerszám középpont helyet.
A direkt geometriai feladat megoldásához szükség van arra, hogy meghatározzuk a T0,m
homogén mátrixot. Az Euler-szögek felírásánál is láttuk, hogy az egymás utáni elforgatások
összevonva egyszerűen a rotációs mátrixok szorzatával reprezentálhatóak, nincs ez másképpen
a homogén mátrixok esetén sem:
A p 0 ,m
T0,m T0,1T1, 2 ...Tm1,m 0T,m
1
(1.3.66)
0
A homogén mátrixok orientációs részére (1.3.59) igaz, hogy
A 0,m A 0,1A1, 2 ...A m1,m . (1.3.67)
Definiáljuk továbbá az [i–1] és [i] szegmensek közötti inverz transzformációt:
def
Ti ,i1 Ti11,i (1.3.68)
ahol igen fontos az indexek sorrendje: látható hogy ellenkező irányban elvégezve a
transzformációt, a homogén mátrix inverzével kell számolnunk. Vegyük észre, hogy a homogén
transzformációnál az invertálás művelete nem egyezik meg a transzponálással, az csak rotációt
reprezentáló 3x3-as mátrixokra igaz.
Láttuk, hogy a robot keretei közötti transzformáció lehet rögzített (TB,0, Tm,E), illetve a
csuklóváltozók által módosítható (T0,m). A direkt geometriai feladat során nekünk a qi
csuklóváltozók értékei alapján kell kiszámolnunk TB,E transzformációt, mivel a robot
megfogójának (KE) pozíciójára és orientációjára vagyunk kíváncsiak KB bázis keretben.
TB ,E TB , 0 T0,m Tm ,E (1.3.69)
Az (1.3.69) összefüggést reprezentálhatjuk egy robot transzformációs gráffal (1.3.10 ábra),
amelyen az élek irányítása megfelel egy transzformációnak az adott két keret között, és az élek
irányítása olyan, hogy a bal oldali indextől a jobb oldali felé mutat. Ezek alapján
T0,m TB,10 TB ,E Tm1,E , (1.3.70)
amelynek ilyen alakú felírása majd igazi jelentést az inverz geometriai feladatnál nyer, hiszen
ott a feladat a következő lesz: ismerve az előírt TB,E transzformációt és a konstans TB,0, ill. Tm,E
transzformációkat, keressük a T0,m transzformációt eredményező qi csuklóváltozók értékeit.
(1.3.70) alapján látszik, hogy a gráfon az élekkel szemben való haladás inverz transzformáció
alkalmazását jelenti. A gráf kiterjeszthető általánosabb esetre is, ilyenkor belevehetjük a
munkadarabot, a szállítószalagot, a kamerát, stb.
Az előző fejezetekben láttuk, hogy két koordinátarendszer relatív helyzetét egy 4x4-es
transzformációs mátrixszal jellemezhetjük, amelynek egy 3x3-as rotációs és egy 3x1-es
transzlációs része van. Mivel a rotációs rész három független paraméterrel jellemezhető (három
ortonormált egységvektor vagy három Euler-szög), így elmondhatjuk, hogy általános esetben
két merev test relatív helyzetét 6 független paraméterrel adhatjuk meg. Ebből is látható, miért
van szükség legalább 6-szabadságfokú robotkarra a végberendezés tetszőleges helyzetének
eléréséhez.
Azonban a robotok szomszédos szegmensei közötti transzformációkat megfelelő konvenciók
alkalmazása esetén már 4 független paraméter segítségével is megadhatjuk. A legelterjedtebb
ilyen felírás a Denavit–Hartenberg alak (vagy röviden DH-alak). Ennek levezetéséhez tekintsük
az 1.3.11 ábrát, amely egy robot néhány egymást követő szegmensét mutatja.
i legyen az a szög, amellyel a zi–1 körül el kell forgatni xi–1 tengelyt úgy, hogy az e
egyenesbe kerüljön. Ez lehetséges, hiszen e-t úgy definiáltuk, hogy merőleges legyen
zi–1-re, hiszen párhuzamos xi-vel, amely merőleges zi–1-re. A i szög zi–1 tengely körül
jobbcsavar szabály szerint pozitív értékű
di legyen az a távolság, amennyivel az e egyenest el kell tolni zi–1 mentén, hogy xi-be
kerüljön, zi–1 irányába pozitív értékű
Felhasználva a korábbi eredményeket, így felírható egy homogén transzformációs mátrix a két
csukló között:
Ti 1.i Rot ( z , i ) Trans( z , d i ) Trans ( x, ai ) Rot ( x, i )
Ci Si 0 0 1 0 0 0 1 0 0 ai 1 0 0 0
S Ci 0 0 0 1 0 0 0 1 0 0 0 Ci Si 0
i (1.3.71)
0 0 1 0 0 0 1 d i 0 0 1 0 0 Si Ci 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
Ci Si Ci Si Si ai Ci
S Ci Ci Ci Si ai Si
i
0 Si Ci di
0 0 0 1
Speciális esetek:
Ha ti–1 és ti párhuzamos, végtelen sok merőleges xi létezik, ilyenkor legyen például di=0,
vagy bármilyen más, az elrendezéshez alkalmasan megválasztott érték
Ha ti–1 és ti metszik egymást, akkor legyen ai = 0, és xi legyen párhuzamos a zi 1 zi
iránnyal
A [0] szegmens esetén z0 és t0 egybeesik, és x0 tetszőlegesen (ill. az elrendezéshez
alkalmasan) megválasztott merőleges z0-ra
Az [m] szegmens esetén zm tetszőlegesen megválasztható, xm pedig merőleges zm–1-re
Példa: Puma-560
i qi i di ai i
1 1 1 0 0 –90°
2 2 2 d2 a2 0°
3 3 3 0 0 90°
4 4 4 d4 0 –90°
5 5 5 0 0 90°
6 6 6 0 0 0°
Látható, hogy a qi oszlopban feltüntettük, hogy a négy paraméter közül melyik jelenti a
csuklóváltozót, a többi oszlop a paraméterek számértékeit tartalmazza. A csuklóváltozón kívül
a T0,m T0,1T1, 2 Tm1,m homogén mátrix nem tartalmaz változókat, hiszen a többi paraméter
számértékkel adott konstans.
Összefoglalás
transzformáció a teljes robotra. Az inverz geometriai feladat során viszont az előírt TB,E és a
robot geometriájából adódó konstans TB,0, Tm,E transzformációk ismeretében kifejezhetjük
T0,m TB,10 TB ,E Tm1,E
homogén mátrix értékét, és a feladat a qi csuklóváltozók meghatározása:
q1
A p 0,m
T0,m 0T,m q
0 1
qm
(1.3.73)
Az inverz geometriai feladat megoldása erősen robot specifikus, ezért ezzel a következő
fejezetben foglalkozunk.
Ahhoz, hogy egy robot direkt geometriai egyenletét fel tudjuk írni, szükség van a csuklókhoz
rögzített koordinátarendszerek felvételére. Az előző fejezetben ismertetett módon fogjuk
rögzíteni a robot kereteit, amelyek segítségével meghatározhatók a robot Denavit–Hartenberg
(a továbbiakban DH) paraméterei, így könnyedén felírhatóak lesznek Ti–1,i mátrixok.
Definiáljuk az K0 keretet az ábrán látható módon: x0, y0, z0. A tengelyek ilyen irányú felvételét
az indokolja, hogy a robot első csuklója mintegy törzsként forog, így a z0 tengely iránya adott,
hiszen konzekvensen a rotációs csuklók tengelyirányába (t0) vesszük fel azt. Nézzen felfelé
ebben az esetben. Az x0 irányát vegyük fel az ábrán látható módon, y0 iránya adódik, hiszen
minden keretünk jobbsodrású.
Ezek után szükségünk van K1 keret meghatározására. A robot második csuklója a t1 tengely
mentén fordul el, ezért z1 tengelynek ebbe az irányba kell néznie, a t0 és t1 tengelyek
merőlegesek egymásra. Itt már látszik, miért kellett x0 tengelyt az adott irányúnak választani:
x0 tengely mentén –90°-kal elforgatva K0 keretet, K1-et kapjuk meg. Ezek után definiáljuk a
DH paramétereket:
1: Az első csukló esetén – mivel a z0 tengely körül forog – ez lesz a csuklóváltozó, tehát a
T0,1 homogén mátrix kizárólag ennek az értékétől fog függeni, pl.: C1 jelentése cos(1 ) lesz,
stb.1 pozitív értékű a jobbcsavar szabály szerint (ld. 1.4.1 ábra).
d1 = 0, mivel a keretek origója megegyezik: metsző t0 és t1.
a1 = 0, szintén a közös origó miatt.
1 = –90°, hiszen láthattuk, hogy K1 keret egy x0 mentén történő elforgatás révén állt elő,
szintén a jobbcsavar szabály szerint pozitív az iránya.
i qi i di ai i
1 1 1 0 0 –90°
C1 0 S1 0
S 0 C1 0
T0,1 1 (1.4.2)
0 1 0 0
0 0 0 1
A (1.4.2) eredményen a következő elvárt eredmények látszanak:
Miután a K1 keretet már meghatároztuk, szükségünk van K2 keretre: origója a t2 tengelyen kell,
hogy legyen, és a z2 koordinátatengely is t2 irányú kell, hogy legyen. Mivel t1 és t2 tengely
párhuzamos, ezért itt egy különleges eset adódik: megállapodás szerint ilyenkor választhatjuk
d2-t pl. nullának (K2’ keret). Ilyenkor csak x1 mentén toltunk el (a2). De úgy is dönthetünk, hogy
egy nem zérus értékű d2 eltolást végzünk z1 irányban (K2 keret), hogy a K2 keret origója a
következő, t3 tengelyre kerüljön. A végeredmény mindkét esetben ugyanaz a T0,6 lesz. Lássuk
ezek után a DH paraméterek származtatását:
A K2’ keretre:
i qi i di ai i
2 2 2 0 a2 0°
C2 S2 0 C 2 a2
S C2 0 S 2 a2
T1, 2 2
(1.4.3)
0 0 1 0
0 0 0 1
A K2 keretre:
i qi i di ai i
2 2 2 d2 a2 0°
C2 S2 0 C 2 a2
S C2 0 S 2 a2
T1, 2 2 (1.4.4)
0 0 1 d2
0 0 0 1
Jól látható, hogy (1.4.3) és (1.4.4) között csak a d2-vel való z1 irányú eltolásban van különbség.
A robot K3 keretét is az eddigiekhez hasonlóan vesszük fel: a z3 tengely legyen t3 irányú, ezért
forgassuk K2 illetve K2’ keretet x2 körül 90°–kal. Az alábbi két eset adódik attól függően, hogy
hova választottuk K2-t:
3: Itt is3 lesz a csuklóváltozó, hiszen z2 körül forog a 3-as csukló
d3 = 0,15005m, ha K2’, és d3 = 0, ha K2 keretből érkezünk
a3 = 0, mivel x mentén nem mozdultunk el.
3 = 90°, hogy a z3 tengely t3 irányába mutasson.
i qi i di ai i
3 3 3 d3 0 90°
C3 0 S3 0
S 0 C3 0
T2,3 3 (1.4.5)
0 1 0 d3
0 0 0 1
K3 keretre, ha K2-ből érkeztünk:
i qi i di ai i
3 3 3 0 0 90°
C3 0 S3 0
S 0 C3 0
T2,3 3
0 1 0 0
0 0 0 1
(1.4.6)
A T0,3 mátrix meghatározása:
Amennyiben elvégezzük a három kapott mátrix szorzását, akkor (akár K 2, akár K2’ keretet
használtuk) a következő eredményt kapjuk:
C1C2C3 C1S 2 S3 S1 C1C2 S3 C1S 2C3 C1C2 a2 S1d 2
S C C S S S C1 S1C2 S3 S1S 2C3 S1C2 a2 C1d 2
T0,3 1 2 3 1 2 3
S 2 C3 C 2 S 3 0 S 2 S3 C2C3 S 2 a2
0 0 0 1
(1.4.7)
C1C23 S1 C1S 23 C1C2 a2 S1d 2
S C C1 S1S 23 S1C2 a2 C1d 2
1 23
S 23 0 C23 S 2 a2
0 0 0 1
ahol a C C és S S rövidített jelöléseket használtuk. Észrevehetjük, hogy (1.4.7)
felírásakor a K2 keretre felírt mátrixot használtuk, de mivel d2 és d3 numerikusan megegyezik,
a két felírás egyenértékű. A további számítások során az (1.4.7) szerinti alakot használjuk.
A K4 keretet a kézcsukló azon pontjába kell felvennünk, ahol a t3, t4, t5 tengelyek metszéspontja
van, hogy z4 a t4 tengelybe essen, ilyenkor:
A K4 keretre:
i qi i di ai i
4 4 4 d4 0 –90°
C4 0 S4 0
S 0 C4 0
T3, 4 4 (1.4.8)
0 1 0 d4
0 0 0 1
A T4,5 mátrix meghatározása:
A K5 keretre:
i qi i di ai i
5 5 5 0 0 90°
C5 0 S5 0
S 0 C5 0
T4,5 5
0 1 0 0
0 0 0 1
(1.4.9)
A T5,6 mátrix meghatározása:
K6 origója sem mozdul el K5-höz képest, illetve mivel z5 már t5 tengely irányba mutat, ezért
nem kell elforgatnunk sem, tehát:
A K6 keretre:
i qi i di ai i
6 6 6 0 0 0°
C6 S6 0 0
S C6 0 0
T5, 6 6
0 0 1 0
0 0 0 1
(1.4.10)
Felmerülhet a kérdés, hogy mi szükség van egy olyan eset felírására, amikor a keretek teljesen
egybeesnek. Vigyázzunk, a K5 és K6 keretek csak akkor esnek egybe, ha 6 = 0°, ilyenkor T5,6
mátrix egységmátrix. Viszont általános esetben ez már nem lesz igaz, ilyenkor a már jól ismert
z tengely körüli elforgatást látjuk az orientációs részben:
C S 0
Rot ( z , ) S C 0 (1.4.11)
0 0 1
Amennyiben 4 ,5 ,6 helyére , , -t írunk, akkor a d4 eltolást kivéve teljesen visszakapjuk
az (1.3.53) eredményt, tehát (1.4.12) felírható a következőképpen:
1 0 0 0 0
0
1 0 0 Euler(4 ,5 ,6 ) 0 Euler(4 ,5 ,6 ) 0
T3, 6
0 1 d 4 1
(1.4.13)
0 0T d4
0T 1
0 0 0 1
Mivel az Euler-szögek esetén beláttuk, hogy három megfelelő forgatás segítségével bármilyen
orientáció elérhető, ezért elvben a Puma robot Euler-kézcsuklójával (most már indokolt így
hívni) mindig be tudjuk állítani a kívánt orientációt. Euler-kézcsuklót akkor kapunk, ha az
utolsó három csuklótengelye a robotnak metszi egymást, és köztük az alábbi DH
paramétereknek megfelelő elforgatások definiáltak:
i qi i di ai i
4 4 4 d4 0 –90°
5 5 5 0 0 90°
6 6 6 0 0 0°
Szimuláció
Forgassuk most el a 4-es csuklót –90°-kal! Azt láthatjuk, hogy a K6 keret z tengelye továbbra
is egyállású KB z tengelyével, azonban az x6 tengely –y0, az y6 tengely pedig x0 irányú lett.
A KB és a K6 keretek itt is egyállásúak, nincs x irányú eltolás, viszont a z irányú eltolás értékében
felfedezhetjük az a2 és d4 fizikai méretek összegét:
1 0 0
0
0 1 0 0,15005
T0, 6 (1.4.20)
0 0 1 0,8636
0 0 0 1
Azt látjuk, hogy a hatdimenziós probléma, két kisebb, háromdimenziós részre bontható. Ez a
kedvező tulajdonság akkor áll fenn, ha az utolsó három csuklótengely egy pontban metszi
egymást, ahogyan a Puma-560 robot esetében is. Lássuk mindkét részfeladat részletes
megoldását!
A pozíció számítása
pz S 2 a2 C23d 4 (1.5.8)
Látható, hogy itt csak q1, q2, q3 lesz ismeretlen, hiszen px, py, pz adott, a2, d2, d4 pedig konstans.
Vegyük (1.5.6) egyenletet, szorozzuk be –S1-gyel, az (1.5.7) egyenletet pedig szorozzuk C1-
gyel, és adjuk őket össze. Ebből a következő trigonometrikus egyenlet adódik:
p y C1 px S1 d 2 (1.5.9)
AC α BS α D (1.5.10)
A 2
B 2 S2 2 DBS D 2 A2 0
S
2 DB 4 D 2 B 2 4 D 2 A2 A2 B 2
2 A2 B 2 (1.5.11)
DB A A2 B 2 D 2
S , 1
A2 B 2
A 2
B 2 C2 2 DAC D 2 B 2 0
C
2 DA 4 D 2 A2 4 D 2 B 2 A2 B 2
2 A2 B 2 (1.5.12)
DA B A2 B 2 D 2
C , 1
A2 B 2
Ez az egyenletrendszer összesen 4db megoldást szolgáltat, mivel Cα-ra és Sα-ra is 2-2 megoldást
kapunk. Ezek közül azonban csak azok a valódi megoldások (a négyből kettő ilyen lesz),
amelyek kielégítik a Cα2 Sα2 1 azonosságot, ahogy az az 1.5.1 ábrán is látható.
Ismét kaptunk egy AC α BS α D típusú egyenletet (q2 q3 ) -ra. Ezt megoldva ismét kapunk
2-2 megoldást, de mivel már q1-ből is 2 volt, ez így már összesen 4 különböző eset. Ezek után
q2 számítható (1.5.16) és (1.5.17) egyenletek segítségével, majd ennek ismeretében q3 is.
Megoldás
q1 q2 q3
sorszáma
1 0° 0° 0°
2 0° –90° 180°
3 –141,675° –90° 0°
4 –141,675° 180° 180°
Látható, hogy az 1. megoldás visszaadta a kívánt értékeket, van viszont ezen kívül még 3
további lehetőségünk, ezeket az 1.5.3 és 1.5.4 ábrákon láthatjuk.
Látható, hogy mind a négy esetben a megfogó pozíciója megegyezik, viszont az orientációja
nem, amely következik a
l m n A 0,3 (q1 , q2 , q3 ) A 3, 6 (q4 , q5 , q6 ) (1.5.20)
egyenletből, hiszen látható, hogy a végső orientáció az első 3 csuklótól is függ.
Az orientáció számítása
a) b)
a) Egybeeső t3 és t5 tengelyek
Ez az eset látható az 1.5.5.a ábrán. Ilyenkor q4 és q6 ugyanazon tengelyek körül forgatnak, így
hatásuk nem különböztethető meg az eredő A 3, 6 orientációs mátrixban. Ilyenkor biztosan igaz,
hogy nx ny 0 , amiből (1.5.22) alapján következik, hogy S 5 0 . Ezen belül – kihasználva,
hogy n egységvektor – két további eset lehetséges:
a1) nz C5 1 , vagyis q5 0 (az 1.5.5.a ábrán ábrázolt eset)
a2) nz C5 1 , vagyis q5 180 , ami csak elvi lehetőség, mert a valós Puma-560 robot
5. csuklója –100° és 100° között tud csak elfordulni (ellenkező esetben a 6. szegmensnek a 4.
szegmens belsejébe kellene befordulnia).
a1) nz C 5 1
Bár tudjuk, hogy a valós Puma-560 robot esetén ez nem valósulhat meg, általános esetben az
inverz Euler-feladat megoldása esetén ezzel az esettel is foglalkozni kell. Ilyenkor q5 180 ,
amikor igaz, hogy:
C 4 C6 S 4 S 6 C 4 S 6 S 4 C6 0 C6 4 S 6 4 0 l x mx nx
S C C S S 4 S 6 C 4 C6 0 S 64 C6 4 0 l y my ny (1.5.26)
4 6 4 6
ahol ismét élhetünk pl. a q6 0 választással, vagy ha tudjuk q4 és q6 előző értékét, akkor:
Ez az eset látható az 1.5.5.b ábrán. Ilyenkor q4, q5 és q6 különböző tengelyek körül forgatnak,
így hatásuk független egymástól. Ebben az esetben biztosan igaz, hogy nx ny 0 , amiből
2 2
0
ny
q4 arctan ( , ] (1.5.29)
nx
Mivel itt az atan2 függvényt nem használhatjuk, ezért két megoldás adódik. Igaz továbbá
(1.5.22) alapján, hogy
C4 nx S 4 ny C42 S 5 S 42 S 5 S 5 C42 S 42 S 5 ,
(1.5.30)
C5 nz
ezért itt egyértelmű eredményt kapunk, hiszen ismerjük a síknegyedet is:
q5 atan2 C4 nx S 4 ny , nz (1.5.31)
ahonnan
q6 atan2 S 4l x C4l y , S 4 mx C4 my (1.5.33)
meghatározható.
Összefoglalás
A kapott eredményt például a robot szimulációjára használhatjuk. Ezek után előírtuk T0,6 mátrix
elemeit. Ebben az esetben KB báziskeretet K0-val megegyezőnek vettük, illetve kizárólag az
utolsó szegmens K6 koordinátarendszerének pozícióját és orientációját néztük, nem vizsgáltuk
azt az esetet, amikor egy fix megfogó van szerelve a robotra. Így a
TB ,E TB , 0 T0, 6 T6,E
egyenletben TB,0 és T6,E is egységmátrix lesz, így a feladat (az általánosságot nem
veszélyeztetve) a
T0, 6 TB,10 TB ,E T6,1E
helyett az egyszerűbb
T0,6 TB,E
alakot ölti.
Az inverz geometriai feladat:
q1
A p 0, 6
0T,6 q
1
T0,6
0 q6
Láttuk, hogy a Puma-560 robot esetén ez két részre bontható: az első 3 csuklóval
meghatározható a megfogó pozíciója, majd az 4–6 csuklók segítségével (amelyek Euler-
kézcsuklót alkotnak) beállítható a kívánt orientáció.
írjuk fel:
m
v i ,m m d i 1q i (1.6.1)
m
ω i ,m m t i 1q i
A p
Ti 1,m T
1
(1.6.2)
0
Transzlációs csukló esetén (1.6.1 ábra) a K m keret origója s i 1 -el párhuzamosan mozdul el,
ezért qi megváltozása csak sebességet eredményez, szögsebességet nem ( m t i 1 0 ). A mozgás
iránya megegyezik az i–1-edik csuklótengely ( s i 1 ) irányával, ami K m -ben kifejezve:
m
d i 1 A 1 i 1 s i 1 (1.6.3)
zm
Km
m
d i 1
K i 1
z i 1
i 1
s i 1
Rotációs csukló esetén (1.6.2 ábra) az i–1-edik csuklótengely elfordulása egyrészt egy
ugyanolyan irányú parciális szögsebességet okoz K m origójában (mivel egy forgómozgást
végző merev test minden pontjának ugyanakkora a szögsebessége), másrészt a K i1 és K m
keretek közötti eltolás miatt egy – a szögsebességre merőleges irányú – parciális sebességet is.
zm
m
d i 1
Km
K i 1 p
m
t i 1
i 1
s i 1
z i 1
m
m
ω m m t i 1qi
i 1
A 0,m 0 m v m A 0,m 0 m
J q
0 A 0,m m ω m 0 A 0,m m
(1.6.11)
valamint bevezetjük a
A 0,m 0 m
0
J m
A 0,m m
J (1.6.12)
0
jelölést, megkapjuk a direkt kinematikai összefüggést az álló koordinátarendszerben:
0 vm 0
0 J m q (1.6.13)
ωm
0v
q 0 J m1 0 m (1.6.15)
ωm
Ennek feltétele, hogy a Jacobi-mátrix invertálható legyen. Mint említettük, 6-szabadságfokú
robot esetén J m kvadratikus mátrix, tehát invertálható, ha nem szinguláris. Azokat a
csuklókoordináta-értékeket, amelyek esetén J m szingulárissá válik, szinguláris pontoknak
nevezzük. Ezekben a pontokban a robot bizonyos irányok mentén nem mozgatható vagy
forgatható, ezért az inverz kinematikai feladat alkalmazásakor ezeket a pontokat
(csuklókonfigurációkat) kerülni kell. Lássunk erre egy példát az előző fejezetekben megismert
Puma-560 robot és az 1.6.3 ábra segítségével!
a) b)
Látható, hogy a mátrix szinguláris, mivel a 4. sora csupa nullákból áll. Ennek (1.6.6) alapján
tudhatjuk az okát: az x szögsebesség-komponensre egyik csuklónak sincs hatása! Ahhoz,
hogy ebben az irányban is tudjunk sebességet okozni, más konfigurációba kell hoznunk a
robotot. Az 1.6.3.b ábrán a robot a q 141,68 90 0 0 90 141,68
konfigurációban van. Észrevehetjük, hogy az utolsó szegmenséhez rögzített keret ugyanolyan
elhelyezkedésű és állású, mint az előző esetben, tehát geometriai szempontból egyenértékű a
két konfiguráció (ugyanahhoz a T0,6 transzformációhoz tartozó inverz geometriai feladat egy
másik megoldását választottuk). Azonban, ha a Jacobi mátrixra nézünk
0,15 0,3388 0 0 0 0
0,4318 0,2677 0 0 0 0
0 0,4318 0,4318 0 0 0
0
J 6 (q ) ,
0 0,6201 0,6201 0,7846 0,6201 0
0 0,7846 0,7846 0,6201 0,7846 0
1 0 0 0 0 1
láthatjuk, hogy már nem szinguláris, tehát az inverzét képezve megoldható az inverz
kinematikai feladat, más szóval minden sebességkomponens befolyásolható a csuklóváltozók
segítségével.
A 0
Jm (1.6.16)
B C
vagyis olyan A, B, C és 0 blokkokból áll, amelyek 33 típusúak, valamint A és C invertálható,
akkor
1 A 1 0
J 1 1 (1.6.17)
C BA C1
m
összefüggés érvényes, így a 66 típusú mátrix invertálása helyett elegendő két 33 típusú
mátrixot invertálni, ami numerikus szempontból egyszerűbb és gyorsabb. Azoknál a
robotoknál, amelyeknél az utolsó három csuklótengely egy ponton megy át (pl. Puma-560), a
Jacobi-mátrix mindig ilyen alakú.
2
Vegyük észre, hogy az m-edik szegmensre ható külső m nyomaték, illetve a általánosított csuklónyomaték-
vektor m eleme nem ugyanaz.
T
f
τ m Jm
T
(1.6.23)
τ m
és transzponálás után:
f
τ J Tm m (1.6.24)
τ m
Vagyis a robot utolsó szegmensében ható erők és nyomatékok, valamint az általánosított
csuklónyomatékok között a Jacobi-mátrix transzponáltja teremt kapcsolatot.
Már többször említettük, hogy a robot egy bonyolult nemlineáris rendszer. Geometriája
bonyolult trigonometrikus összefüggésekkel írható le, mozgása időben változó irányú
elmozdulásokból és változó irányú tengelyek körüli forgásokból áll. Ennek megfelelően a robot
dinamikai modellje is bonyolult.
Dii: Effektív inercia. Azt adja meg, hogy az adott (i-edik) csukló nyomatéka hogyan
befolyásolja ugyanazon csukló gyorsulását. Ezek az együtthatók a H (q) inerciamátrix
főátlóbeli elemei.
Dij: Csatoló inercia ( i j ). Azt adja meg, hogy az adott (i-edik) csukló nyomatéka
hogyan befolyásolja egy másik (j-edik) csukló gyorsulását. Ezek az együtthatók adják
az inerciamátrix többi elemeit. Mivel az egyes csuklópárok közötti csatolt hatás
kölcsönös, ezért Dij D ji , vagyis az inerciamátrix szimmetrikus.
Dijj: Centrifugális hatás. Csak a j-edik csuklókoordináta deriváltjától („sebességétől”)
függő zavaró nyomatékkomponens együtthatója. (Emlékezzünk: a centrifugális erő
forgó koordinátarendszerben minden testre hat, értéke a koordinátarendszer
szögsebességétől függ.)
Dijk: Coriolis-hatás ( j k ). A j-edik és k-adik csuklókoordináta deriváltjától függő zavaró
nyomatékkomponens együtthatója. (Emlékeztető: a Coriolis-erő két sebességtől függ,
a forgó koordinátarendszer szögsebességétől és a benne mozgó test sebességétől.)
3
Az érdeklődő olvasók számára a fejezet függelékében részletesebben is bemutatjuk a robot mozgásegyenletét,
valamint a mozgásegyenlet levezetéséhez használt Lagrange-féle másodfajú egyenleteket. Ugyanitt példát adunk
a mozgásegyenlet együtthatóinak számítására egy kétszabadságfokú robotkar esetében.
A fentieken kívül meg kell határoznunk az időparaméter eloszlását is a pálya mentén, tehát a
robot pályáját tulajdonképpen időfüggvények segítségével kell megadnunk. Az
időfüggvényekkel előírhatjuk a végberendezés referenciapontjának
A módszer egyszerűségéből fakad annak hátránya is. A robot által emelt teher, illetve a
szegmensek közötti csatoló hatások a pálya mentén jelentősen változó zavaró jellemzőt
eredményeznek, különösen nagyobb sebességek és gyorsulások esetén. A nagyobb mértékű
zavaró jelek eliminálása lokális szabályozókkal csak korlátozott mértékben lehetséges, ezért ez
a módszer nagyobb sebességű alkalmazásoknál nem szükségképpen elégíti ki a pontossági
követelményeket.
Mint már láttuk, a robot egy bonyolult, nemlineáris, csatolt rendszer, ezért célszerű olyan
megoldást keresni, amellyel a különböző szegmensek egymásra hatását megszüntetjük (a
rendszert szétcsatoljuk). A robot dinamikus modelljének ismeretében ez lehetséges. A
dinamikus modell:
h(q, q ) τ
H(q)q
(1.8.2)
ahol τ elemei a motorokra adott meghajtó nyomatékok. Az egyszerűség kedvéért tegyük fel,
hogy az előírt meghajtó nyomatékok hiba nélkül megvalósulnak, vagyis τ τ a , ahol τ a a
nyomaték-alapjel. Ha τ a -t a következő alakban állítjuk elő:
Pályatervezés Érzékelők
qa q a a
q q q
Decentralizált PID-szabályozók
t
ui qai k Pi (qai qi ) k Ii (qai qi )dt k Di (q ai qi )
0
u
Robot
τ H (q)q h(q,q )
Központi szabályozó H (q) τ h(q, q )
q 1
q
ˆ (q) és hˆ (q,q ) számítása,
H
q
ˆ (q)u hˆ (q,q )
τa H
τa
Áramszabályozott τ
DC-szervomotorok
Felmerülhet a kérdés, hogy nem hajtható-e végre pl. egy szerelési feladat csupán (megfelelően
pontos) pozícióirányítással. Elvben természetesen igen. Ehhez rendkívül pontos modellel kell
rendelkeznünk mind a robotkart, mind a rászerelt szerszámot, mind a környezetet illetően. Az
első kettő még teljesíthetőnek tűnik (bár az eddig használt merevtest-modell is csak közelítése
a valóságnak), a környezetet viszont aligha tudjuk az ehhez szükséges pontossággal modellezni.
A valódi probléma éppen a szabályozások alaptulajdonságából származik. Ha ugyanis a
modellezési hibák miatt pl. egy szerelőrobot kis mértékben „eltéveszti a célt”, és az általa tartott
alkatrész nem pontosan a helyére kerül, hanem kissé beleütközik a környezetébe, az akadály
miatt a végberendezés pozíciója kis mértékben eltér az előírt trajektóriától. A szabályozó
természetesen csökkenteni próbálja a hibát a szerszám célpont felé való mozgatásával, amit a
motorok meghajtó nyomatékának növelésével próbál elérni. Ez érthető módon a kontaktusnál
fellépő erők növekedését eredményezi, ami addig folytatódik, amíg a beavatkozó szervek elérik
nyomatékuk felső határát (telítésbe mennek), vagy amíg a kontaktusban lévő tárgyak
valamelyike el nem deformálódik vagy törik. Minél nagyobb a mozgatandó tárgyak és a
Nézzük meg az előbb elmondottakat egy konkrét példán keresztül. A feladat egy csavar
becsavarása egy menetes furatba. Az egyszerűség kedvéért tegyük fel, hogy a csavart már
belehelyeztük a furatba, már csak a becsavarás van hátra. Továbbá tegyük fel, hogy a csavar
súrlódásmentes (1.8.4 ábra).
Természetes Mesterséges
korlátozások korlátozások
vx 0 fx 0
zc
x 0 x 0
y 0 y 0
fy 0 vy 0
fz 0 v z p a
yc
Kc
xc z 0 z a
Az ábrán látható, hogy az engedékenységi keretet úgy vettük fel, hogy a zc tengely a csavar
tengelyével, az yc tengely pedig a csavarfej hornyának aktuális irányával esik egybe. Kc origója
a csavar tengelye és a felület metszéspontjában van. A geometriai elrendezésből a következő
természetes korlátozások adódnak:
Az xc-irányú mozgás a csavar hornya miatt nem lehetséges: v x 0
Az xc és yc tengelyek körüli elfordulás nem lehetséges, mivel a csavar már a furatban
van: x 0 , y 0
A többi irányban nincs természetes korlátozás, ezért azokban az irányokban az erők és
a nyomatékok zéró nagyságúak: f y 0 , f z 0 , z 0
A természetes korlátozások irányaiban erőirányítást kell alkalmaznunk, ezért a következő
mesterséges korlátozásokat írjuk elő:
Ne fejtsünk ki erőt a horony peremére, legyen f x 0 .
Ne próbáljuk meg hajlítással „kitépni” a csavart a helyéből, ezért legyen x 0 és
y 0.
A nem korlátozott irányokban pozícióirányításra van szükség, ehhez következő mesterséges
korlátozásokat adjuk:
Az yc-tengely irányába ne mozduljunk el, különben a csavarhúzó kicsúszna a horonyból,
legyen v y 0 .
A zc-tengely körül forgassuk a csavarhúzót az előírt a szögsebességgel, legyen
z a (az előjel a forgásirány miatt negatív).
A csavar behajtásához A zc-tengely irányában is mozgatni kell a szerszámot. Ha a csavar
menetemelkedése p, akkor legyen v z p a .
Az fenti sebesség- és erőértékeket az ábra mellett táblázatos formában is feltüntettük.
A hibrid pozíció- és erőirányítás sematikus vázlata az 5. ábrán látható. A robot motorjaira
beavatkozó jelként adott meghajtó nyomatékok több komponensből tevődnek össze. A középső
részen egy pozíciószabályozást láthatunk ( x a pozíció- és x a sebesség-alapjellel), az ábra felső
Az ábrán az egyes körökben a lánc elején található S blokkok az ún. szelekciós mátrixot jelölik
(I az egységmátrix). Ennek a mátrixnak a segítségével határozzuk meg, hogy mely irányokban
alkalmazunk pozíció-, és melyekben erőirányítást. Egy diagonálmátrixról van szó, amelynek
az átlójában 0-ák és 1-esek szerepelhetnek (1, ha pozícióirányítás, 0, ha erőirányítás szükséges
az adott irányban).
Fa +
IISS JJTT K
KFF
–
xa –
SS JJ11 K
Kpp
+ + + – xE
+
+
Robot
Robot
x a – x
– SS JJ11 K
Kvv
+
JJTT K
KEE
F
Érzékelő
Érzékelő
0 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
S (1.8.10)
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 1
Ez alapján határozzuk meg a szelekciós mátrix által kijelölt pozíció- és erőirányítási irányokat:
0 0 0 0 0 0 v x 0
0
1 0 0 0 0 v y v y
0 0 1 0 0 0 v z v z
Sv (1.8.11)
0 0 0 0 0 0 x 0
0 0 0 0 0 0 y 0
0 0 0 0 0 1 z z
pozícióirányítás esetén, míg
1 0 0 0 0 0 f x f x
0
0 0 0 0 0 f y 0
0 0 0 0 0 0 f z 0
(I S)f (1.8.12)
0 0 0 1 0 0 x x
0 0 0 0 1 0 y y
0 0 0 0 0 0 z 0
erőirányítás esetén.
FÜGGELÉK
Coriolis-mátrix:
m m
C11 (q, q) C1m (q, q) k
1
D11k (q) q k D1mk (q) qk
k 1
C(q, q )
m (F.1.4)
m
Cm1 (q, q ) Cmm (q, q ) Dm1k (q) q k Dmmk (q) q k
k 1 k 1
D1 (q)
Gravitációs hatás vektora: h g (q) (F.1.6)
Dm (q)
h ( q, q )
A Lagrange-mechanika alapvető eleme az ún. stacionárius hatás elve (más néven Hamilton-
elv, vagy hatáselv), aminek főbb fogalmait a következőkben összefoglaljuk. Jelölje x(t ) egy
részecske pozícióját, x (t ) a sebességét a t [t 0 , t1 ] időpillanatban, továbbá jelölje ~
x a
részecske trajektóriáját. Ezt úgy is mondhatjuk, hogy ~ x nem más, mint egy függvény, amely
minden t [t 0 , t1 ] időpillanathoz egy x (t ) R pozíciót4 rendel. Definiáljuk a következő, ún.
Lagrange-függvényt:
4
Bár itt x(t) egy valós szám (egydimenziós pozíció), általánosságban véve lehet bármilyen vektorral leírható
pozíció is, ami nem csak Descartes-koordinátákban értelmezhető. Látni fogjuk a későbbiekben, hogy a robotot egy
Lx(t ), x (t ), t (F.1.8)
Ez egy valós értékű függvény, amelynek argumentuma három valós szám, úgymint x (t ) R ,
x (t ) R és t [t0 , t1 ] R . A Lagrange-függvény segítségével felírható az ún. hatásintegrál:
t1
x ) Lx(t ), x (t ), t dt
( ~ (F.1.9)
t0
Ez nem más, mint egy függvényeken értelmezett függvény (más néven funkcionál5), amely egy
valós számot rendel minden ~ x trajektóriához, azaz összehasonlíthatóvá teszi a különböző
időfüggvényeket. A kérdés az, hogy egy bizonyos L(,,) Lagrange-függvény választása
mellett melyik ~x trajektória optimalizálja a (x~ ) hatástintegrált. A hagyományos analízisben
egy függvény szélsőértékének szükséges feltétele, hogy a szélsőérték helyén a derivált nulla
legyen. Ennek megfelelője igaz a funkcionálok körében is6. A variációszámítás alaptétele
alapján levezethető a (x~ ) hatásintegrál szélsőértékének szükséges feltétele:
d L L
0 (F.1.10)
dt x x
Ez az összefüggés az Euler-Lagrange-egyenlet (vagy más néven a Lagrange-féle másodfajú
egyenlet), amely minden olyan ~ x trajektóriára teljesül, ahol (x~ ) -nek szélsőértéke van7.
A Lagrange-féle mechanika a Lagrange-függvényt a kinetikus (mozgási) energia és a
potenciális (helyzeti) energia különbségeként definiálja:
L( x, x ) K ( x, x ) P( x) (F.1.11)
Vegyük észre, hogy a K ( x, x ) kinetikus energia és a P (x) potenciális energia csak a pozíciótól
és a sebességtől függenek, így az explicit időfüggést elhagytuk a Lagrange-függvény
jelöléséből.
A stacionárius hatás elve kimondja, hogy egy konzervatív erőtérben mozgó mechanikai
rendszer trajektóriája szükségképpen egybe kell essen a kinetikus és potenciális energia
különbségének segítségével felírt hatásintegrál stacionárius pontjával (emlékezzünk, hogy a
(x~ ) hatásintegrál egy funkcionál, melynek stacionárius pontja egy függvény). Más szóval, a
mechanikai rendszer trajektóriájának szükségképpen a következő Euler-Lagrange-egyenlet
megoldásának kell lennie:
d L( x, x ) L( x, x ) d K ( x, x ) K ( x, x ) P( x)
0 (F.1.12)
dt x x dt x x x
8
Ne feledjük, hogy x (t ) , x(t ) és (t ) is időfüggvények.
K1 (q ) 12 m1 11 12 I11 ,
2 2
(F.1.17)
ahol az első tag a sebességből, a második a szögsebességből adódó mozgási energiát
reprezentálja.
A második szegmens potenciális energiája:
P2 (q) m2 g d1 sin 1 2 sin 1 2 (F.1.18)
K 2 (q, q ) 12 m2p T p 12 I 2 1 2 ,
2
(F.1.19)
p 1 d1 sin 1 1 2 sin 1 2 1 2
d1 sin 1 2 sin 1 2 1 2 sin 1 2 2
(F.1.21)
p d cos cos
2 1 1 1 2 1 2 1 2
p T p q T P2T P2 q . (F.1.23)
d S 2 S12 2 S12 ~ p ~
p12
P2 1 1 ~11
p22
~ , (F.1.24)
d1C1 2C12 2C12 p21
~p ~
p21 ~
p11 ~
p12 ~ p112 ~ 2
p21 ~
p11 ~
p12 ~
p21 ~
p22
P2T P2 ~11 ~ ,
p22 ~
~ ~ ~ (F.1.25)
p12 p22 p21 p11 p12 ~p21 ~
p22 ~
p12 ~
2 2
p22
~
p112 ~ 2
p21 d12 S12 22 S122 2d1 2 S1S12 d12C12 22C122 2d1 2C1C12
d12 S12 C12 22 S122 C122 2d1 2 S1S12 C1C12
(F.1.26)
d12 22 2d1 2 S1S1C2 S1C1S 2 C1C1C2 C1S1S 2
d12 22 2d1 2C2
~
p11 ~
p12 ~
p21 ~
p22 d1 2 S1S12 22 S122 d1 2C1C12 22C122
22 S122 C122 d1 2 S1S12 C1C12 (F.1.27)
d1 2C2
2
2
~p 2 ~p 2 2 S 2 2 C 2 2 . (F.1.28)
12 22 2 12 2 12 2
I 2 1
I 2 1 2
2
I 212 2 I 212 I 222 1 2
II 2
q I 2q ,
T
(F.1.30)
q T
2 I
2 2
I2 q
12 q T H (q) q
azaz kifejezhető egy, a csuklósebességekben kvadratikus alakban (hasonlóan, ahogy egy
tömegpont mozgási energiáját írjuk fel 12 mv 2 -ként), ahol H (q) a robotkar tehetetlenségét
kifejező inerciamátrix. Az inerciamátrix elemei (F.1.26), (F.1.27), (F.1.28), (F.1.30), (F.1.33)
és (F.1.34) felhasználásával a következők:
H (q) m1P1T P1 I1 m2 P2T P2 I 2
m 2 0 I1 0
1 (F.1.35)
0 0 0 0
m2 ~
p112 ~ 2
p21
m2 ~
p11 ~
p12 ~ p22 I 2
p21 ~ I 2 D11 D12
m2 p11 p12 p21 p22
~ ~ ~ ~ ~
m2 p12 p22
2 ~
2
I 2 I 2 D21 D22
D11 ( 2 ) m1 12 I1 m2 d12 22 2d1 2 cos 2 I 2
D12 ( 2 ) D21 ( 2 ) m2 d1 2 cos 2 I 2
2
2 (F.1.36)
D22 m I 2
2
2 2
Figyeljük meg, hogy a D11, D12 és D21 elemek függenek 2 -től, tehát az inerciamátrix valóban
konfigurációfüggő, amint azt korábban is említettük.
Elvégezve a mátrixszorzásokat a kinetikus energia a következő alakban is felírható:
Helyettesítsünk be (F.1.41)-be:
D11( 2 ) 1 D12 ( 2 ) 2 2m2 d1 2 sin 2 21 m2 d1 2 sin 2 22
m1 1 m2 d1 g cos1 m2 g 2 cos1 2 (F.1.48)
D11( 2 ) 1 D12 ( 2 ) 2 m2 d1 2 sin 2 21 m2 d1 2 sin 2 1 2 2
C11 ( 2 ,2 ) C12 ( 2 ,2 )
C12 ( 2 ,1 ,2 ) m2 d1 2 sin 2 1 2 r ( 2 ) 1 2 (F.1.54)
1 D11 ( 2 ) D12 ( 2 ) 1 C11 ( 2 ,2 ) C12 ( 2 ,1 ,2 ) 1 D1 (1 , 2 )
D ( )
D22 2 C21 ( 2 ,1 )
(F.1.57)
2
D ( , )
2
C22
12
2
2 1 2
τ H (q )
q ( q , q ) q h (q )
C g
h ( q, q )
c
h ( q, q )
amelyekből
D111(q) D111 0
D112 (q) D112 ( 2 ) r ( 2 )
D121(q) D121 ( 2 ) r ( 2 )
D122 (q) D122 ( 2 ) r ( 2 )
(F.1.59)
D211(q) D211 ( 2 ) r ( 2 )
D212 (q) D212 0
D221(q) D221 0
D222 (q) D222 0
Ahhoz, hogy ilyen formában kapjuk meg a Dijk együtthatókat, szükség volt egy – első ránézésre
indokolatlannak tűnő – átalakításra az (F.1.48) egyenletben. Ellenőrzésképpen határozzuk meg
ugyanezeket az együtthatókat más módon is, az ún. Christoffel-szimbólum segítségével:
ahol Dij az inerciamátrix elemeit jelöli. Vegyük észre, hogy Dijk = Dikj. Ezt az összefüggést csak
azért adjuk meg, hogy rámutassunk: a centrifugális és a Coriolis-hatást reprezentáló
együtthatók szoros összefüggésben vannak a tehetetlenséget reprezentáló inerciamátrix
elemeivel (a levezetéstől itt eltekintünk). Írjuk fel ez alapján is a Dijk együtthatókat:
1 D ( ) D ( ) D ( )
D111(q) 11 2 11 2 11 2 0
2 1 1 1
1 D ( ) D ( ) D ( )
D112 (q) D121(q) 11 2 12 2 12 2 m2 d1 2 sin 2 r ( 2 )
2 2 1 1
1 D ( ) D ( ) D
D122 (q) 12 2 12 2 22 m2 d1 2 sin 2 r ( 2 )
2 2 2 1
1 D ( ) D ( ) D ( )
D211(q) 21 2 21 2 11 2 m2 d1 2 sin 2 r ( 2 )
2 1 1 2
1 D ( ) D D ( )
D212(q) D221(q) 21 2 22 12 2 0
2 2 1 2
1 D D D
D222(q) 22 22 22 0
2 2 2 2
(F.1.61)
Végül pedig a Dij, Dijk és Di paraméterek segítségével írjuk fel a mozgásegyenlet skaláris
formáját (F.1.2) alapján (az egyszerűség kedvéért a (F.1.2) egyenletet megismételjük):
m m m
i Dij (q) q j Dijk (q) q j q k Di (q) (F.1.2)
j 1 j 1 k 1
1 D11( 2 )1 D12 ( 2 )2 D111 11 D112 ( 2 )12 D121( 2 )21 D122 ( 2 )22 D1(1 , 2 )
D11( 2 ) 1 D12 ( 2 ) 2 2r ( 2 ) 12 r ( 2 ) 22 D1(1 , 2 )
(F.1.62)
2 D21( 2 )1 D22 2 D211( 2 )11 D21212 D22121 D22222 D2 (1 , 2 )
(F.1.63)
D12 ( 2 )1 D22 2 r ( 2 )12 D2 (1 , 2 )
illetve
1 D11( 2 ) 1 D12 ( 2 ) 2 2r ( 2 ) 12 r ( 2 ) 22 D1(1 , 2 )
2 D ( ) D
12 2 1 22 2 r ( ) 2
2 1 D2 (1 , 2 )
ahol
τ 1 , q 1,
2 2
D ( ) D12 ( 2 ) D ( , )
H(q) 11 2 C(q, q ) r ( 2 ) 2 1 2 , h g (q) 1 1 2 ,
D22
,
D12 ( 2 )
1 0 D2 (1 , 2 )
valamint
D11 ( 2 ) m1 12 I1 m2 d12 22 2d1 2 cos 2 I 2
D12 ( 2 ) m2 d1 2 cos 2 I 2
2
2
D22 m I 2
2
2 2
IRODALOM
[1] Lantos Béla: Robotok irányítása, Akadémiai Kiadó, Budapest, 2002, ISBN 963-05-7944-8
[2] Bruno Siciliano; Oussama Khatib (Eds.): Springer Handbook of Robotics, Springer Verlag,
2008, ISBN 978-3-540-23957-4
[3] B. Lantos, M. Lőrincz: Nonlinear Control of Vehicles and Robots. Springer Verlag London,
2011.
[4] S.M. LaValle: Planning Algorithms. Cambridge University Press, 2006.
[5] Hatáselv. Wikipédia, a szabad enciklopédia, http://hu.wikipedia.org/wiki/Hatáselv