Download as pdf or txt
Download as pdf or txt
You are on page 1of 85

BME Robotirányítás 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

Készítette: Dr. Tevesz Gábor egyetemi docens


BME Automatizálási és Alkalmazott Informatikai Tanszék
1117. Budapest, Magyar tudósok körútja 2.
Q ép. B szárny II. em. B216.
Tel: 463-2881
Fax: 463-2871 (adm.)
Mail: tevesz@aut.bme.hu

Hallgatják: Villamosmérnöki és Informatikai Kar


Nappali tagozat
Villamosmérnöki mesterszak (MSc)
Számítógép alapú rendszerek specializáció hallgatói

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 2. oldal

COPYRIGHT

Jelen dokumentum a BME Villamosmérnöki és Informatikai Kar hallgatói számára készített


elektronikus jegyzet. A dokumentumot a Robotirányítás rendszertechnikája c. tantárgyat
(BMEVIAUM255 ill. BMEVIAUMA10) felvevő hallgatók jogosultak használni, és saját
céljukra 1 példányban kinyomtatni. A dokumentum módosítása, bármilyen eljárással részben
vagy egészben történő másolása tilos, illetve csak a szerző előzetes engedélyével történhet.
Copyright © 2009-2017 / Dr. Tevesz Gábor

Köszönetemet fejezem ki Kiss Domokos és Varga Dániel tanársegédeknek az 1.3-1.8 fejezetek


kidolgozásában és ábraanyagának összeállításában nyújtott segítségükért.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 3. oldal

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

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 4. oldal

BEVEZETÉS

Ez a tantárgy a Budapesti Műszaki Egyetem Villamosmérnöki és Informatikai Kar nappali


tagozatán kerül előadásra azon villamosmérnöki mesterképzésben résztvevő hallgatók számára,
akik képzési szakterületként a Számítógép alapú rendszerek főspecializációt választották.

A differenciált szakmai ismeretek elsajátításához a hallgatóknak már a felvételi eljárás során


fő- és mellékspecializációt kell választaniuk. Minden főspecializációhoz 5-5 elméleti tantárgy
tartozik, melyeket valamennyi, az adott specializációhoz tartozó hallgatónak el kell sajátítania.
A főspecializáció gyakorlati ismereteit a két specializáció laboratórium, a két önálló
laboratórium és a két diplomatervezés tantárgyban ismerik meg a hallgatók. A villamosmérnöki
szakos hallgatók számára meghirdetett mellékspecializációk kínálatából – a főspecializációtól
függetlenül - tetszése szerint választhat mindenki.

A Számítógép alapú rendszerek főspecializáció felépítése tehát:

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)

A Robotirányítás rendszertechnikája c. tantárgy célkitűzése, hogy a hallgatók ismereteket


szerezzenek a komplex automatizált rendszerek egyik nagy családjának, a robotirányításnak a
területén használatos hardver és szoftver eszközökről, elsajátítsák a használatos irányítási
algoritmusok és architektúrák főbb jellegzetességeit. Megismerkednek a robotprogramozási

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 5. oldal

nyelvek szerkezetével és tulajdonságaival (on-line és off-line robotprogramozás, az explicit


robotprogramozási nyelvek osztályozása). Részletesen elemeznek egy robotprogramozási
nyelvet (ARPS), majd áttekintik a robotprogramozás fejlődési irányait, az implicit
programozást, egy szakértői rendszeren alapuló on-line programrendszer felépítését. A tantárgy
két hat szabadságfokú általános célú szerelőrobot példáján keresztül szemlélteti a tanultakat. A
tantárgy befejező részében a mobil robotok architektúrális és irányítási kérdéseivel
ismerkednek meg.

A tantárgy 6 fő fejezetet tartalmaz, ezek a következők:

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.

2. A Nokia-Puma 560-as robot irányító rendszere


Elemezzük a Nokia-Puma 560-as robot eredeti, decentralizált szervóhajtásokon alapuló irányító
rendszerének felépítését. Külön kitérünk a robot karban található inkrementális érzékelők
tulajdonságaira, a nagypontosságú pozíció és sebességszámítás lehetőségeire. A robot
továbbfejlesztett irányítórendszerét a korszerűbb irányítási algoritmusok realizálhatósága
szempontjából vizsgáljuk.

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.

5. A Mitsubishi MELFA RV-3SDB ipari szerelőrobot


Áttekintjük egy másik korszerű, 6 szabadságfokú ipari szerelőrobot architektúrális felépítését,
kompakt jelprocesszoros irányító- és betanító rendszerét, a robot programozásához szükséges
nyelvi elemeket. Megismerkedünk a mai korszerű robotok szimulációs lehetőségeivel.

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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 6. oldal

A tantárgy anyaga előadásokon és gyakorlatokon kerül ismertetésre. Az előadások és a


gyakorlatok az anyag ütemében váltogatják egymást, a gyakorlatokon példák, és
esettanulmányok formájában kerül elmélyítésre az előadásokon elhangzott elméleti tananyag.

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.

A Nokia-Puma 560-as robot A Mitsubishi RV-3SDB szerelőrobot

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 7. oldal

1. ROBOTIRÁNYÍTÁSI ALAPISMERETEK

1.1 A robot, mint irányítandó folyamat


A robot szót legtöbben a szláv nyelvek „robota” (munka,
szolgaság) szavából vezetik le. Általánosságban azt
mondhatjuk, hogy a robot egy olyan mesterségesen
előállított (elektro)mechanikai szerkezet, amely előírható
pályán mozog, a pálya mentén vagy annak meghatározott
pontjaiban előírható feladatokat lát el. A történelemből
sok olyan szerkezet, automatát ismerünk, amely ilyen vagy
olyan módon mozgásra volt képes és meghatározott
feladatot látott el (gondoljunk csak Kempelen Farkas
sakkozó automatájára 1769-ből). Bár ebben az időben az
elektronikus számítógépek még nem voltak ismertek,
napjaink robotjaira szorítkozva nyugodtan kijelenthetjük,
hogy ezek számítógépek által irányított, általában
programozható eszközök, melyeket egy adott feladat
ellátására készítenek fel. Az első modern ipari robotot az
„Unimates”-t, George Devol és Joe Engelberger készítette
az 50-es 60-as években, utóbbi később megalapította az
„Unimation” céget, amely az első robotgyártó vállalat volt, 1.1.1 ábra Kempelen Farkas
ezért őt nevezik ma a robotika atyjának. A robotok által sakkozó automatája
megoldható feladatok köre a mai világban egyre inkább
bővül, számtalan olyan alkalmazást ismerünk, ahol a robotok olyan feladatot látnak el, melyek
pontosságuk, veszélyességük, megkívánt végrehajtási sebességük miatt ember számára
megoldhatatlan feladat lenne.

Környezetünkben igen sokféle robot használatos, a fenti definíciónak gyakorlatilag minden


olyan mechanizmus megfelel, amely (irányítottan) mozogni tud és mozgásával a környezetére
valamilyen hatást képes kiváltani. Gondolhatunk itt a legegyszerűbb esetben egyetlen
pneumatikus munkahengerre, amelyet egy szállítószalag végén helyezkedik el, és az érkező
üvegeket áttolja egy másik (forgó) munkaasztalra, ahol pl. az üvegek töltését végzik a
palackozóüzemben. (Az ilyen egyszerű mechanikai szerkezetekre sokszor a robot szó helyett a
manipulátor kifejezést használják.) Ez a robot transzlációs mozgást végez (egy adott egyenes
mentén végez mozgást), és egyetlen szabadságfokkal rendelkezik. A mozgás jellegét tekintve
(egyszerűbb mechanikai megvalósíthatóságuk miatt) sokkal gyakoribbak az egy adott tengely
körül elforduló mechanikai elemek, ezt a megoldást rotációs mozgásnak és szabadságfoknak
fogjuk nevezni. Raktárakban gyakoriak azok az ún. rakodórobotok, amelyek a
koordinátarendszer 3 tengelyének irányába képesek mozogni, a kijelölt csomagot "megfogják"
és magukkal viszik. A legáltalánosabb (és egyben legbonyolultabb) mozgásra a 6
szabadságfokú (DOF = Degrees of Freedom) robotok képesek, ahol a robot végére erősített
szerszámnak nem csak az X-Y-Z koordináták szerinti helyzete adható meg (3 transzlációs
szabadságfok), hanem az is, hogy a szerszám milyen irányból közelít a munkadarabhoz (3
rotációs szabadságfok). Ahhoz, hogy a robot egy adott munkatérben tetszőleges feladatot el
tudjon látni, legalább 6 szabadságfokkal kell rendelkeznie. Amennyiben a mechanikai
adottságaiból adódóan a robot több, mint 6 szabadságfokkal rendelkezik, redundáns robotról

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 8. oldal

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).

1.1.2 ábra - Nyílt láncú robotkar

Aszerint, hogy az egyes szegmensek milyen csuklókkal épülnek egymásra, a csuklótípusokat


egyetlen betűvel jelezve (R = rotációs, T = transzlációs), betűsorokat adunk meg az egyes
robottípusok jellemzésére. Az egyes láncolatoknak saját elnevezéseket is adtak, így
megkülönböztetünk pl. TTT = Descartes (derékszögű koordinátás) kart, RTT =
hengerkoordinátás robotkart, RRR = tagolt (csuklós) robotkart (természetesen a betűk száma
megegyezik a csuklók számával, a fenti példák mindegyikében 3 csukló szerepel).

1.1.3 ábra - Descartes-, hengerkoordinátás és tagolt (csuklós) robotkarok

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 9. oldal

Amint azt már említettük, a legáltalánosabban használható robotkarok 6 szabadságfokkal


rendelkeznek. Ilyen a később ismertetésre kerülő mindkét konkrét robottípus is. Mindkettő ún.
humanoid (antropomorf, emberszabású) robot, amely az emberi test felépítését utánozza, ennek
megfelelően az emberi test egyes részeinek (törzs, váll, kar, könyök, csukló) elnevezéseit is
kapták főbb részeik.

1.1.4 ábra - A Mitsubishi SV-3SDB „emberi” testrészei

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.

 Pont-pont irányításról beszélünk, ha a robothajtások számára csak a következő elérendő


pont (pozíció, szöghelyzet) adott, és nincs előírva a robot végberendezésének pályája a
start- és célpozíció között. Ilyenkor minden egyes tengely csuklószabályozója alapjelként
megkapja a következő elérendő pont megfelelő csuklókoordinátáját, a csuklók eredő
szabályozási tranzienseitől függő trajektória mentén fog a robotkar mozogni. Ez az
irányítási mód akkor okozhat gondot, ha a robot környezetében akadályok találhatók, és az
egyébként elérhető kezdő és végpont között nem közlekedhetünk tetszőleges úton. A
trajektória természetesen függ az egyes csuklók mozgásának sebességétől is.
 Folytonos pályairányítás esetén a pályát tervező irányítórendszer már folyamatos
interpolációt végez a közbenső pályapontok meghatározása érdekében. A legelterjedtebb a
két végpont (sarokpont, tartópont) egyenessel történő összekötése a robot környezetéhez
rögzített koordinátarendszerben. Vegyük figyelembe, hogy egy ilyen egyszerűnek tűnő
előírás is mennyire komoly számítási feladatot ró az irányító rendszerre, hiszen ez eredőben
lineáris mozgás a geometriát leíró trigonometrikus összefüggések következtében biztosan
nem lineáris szöghelyzet-változást kíván meg a a rotációs csuklókat mozgató motoroktól.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 10. oldal

Foglaljuk össze azokat a tulajdonságokat, melyek számunkra, akik a robotot irányítani


kívánjuk, az elmondottak alapján a leglényegesebbek. Ezek szerint egy 6 szabadságfokú
humanoid robot, mint pl. a Nokia-Puma 560, szabályozástechnikailag a következő jelentős
tulajdonságokkal bír:

1. A 6 db tengelynek megfelelően 6 db motor fordulatszámát/áramát kell valós időben


szabályoznunk. A legegyszerűbb esetben a cél a csuklók pozícióinak (elmozdulásának vagy
elfordulásának) adott értékre való beállítása ill. tartása (a kézfejnél jelentkező terhelés ill. a
robot saját súlya ellenében), később azonban látni fogjuk, hogy bizonyos robottípusok
(szerelőrobotok, hegesztőrobotok) esetében ez a feltétel kevés, további feltételeket (a
kézfejnél fellépő erők, íváram, stb.) is figyelembe kell venni. Ennek megfelelően többféle
robotirányítási algoritmus terjedt el, ill. folyik ezek kutatása. Ezek közül többel is
foglalkozunk majd a félév során.

2. A 6 csukló mozgása a szerszám koordinátái szempontjából nem független. A feladat, hogy


pl. a szerszámot vízszintesen elmozdítsuk, nem oldható meg egyetlen tengely mozdításával.
Az egyes elemek (szegmensek) csuklótól csuklóig mért hossza és az ábrázolt felépítés a
robot geometriája, ennek ismeretében bonyolult trigonometriai függvények segítségével
adható meg, hogy egy-egy csukló elfordítása mit eredményez a szerszám helyzetében. Előírt
szerszámmozgás esetén (ez a valósában előforduló alapeset !) az előbbi feladatnak a
fordítottját, az un. inverz geometriai feladatot kell megoldanunk, ami - figyelembe véve az
alapvetően trigonometrikus függvényeket - nem a legegyszerűbb feladat !

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.

A robotokat ún. generációkba soroljuk feladatmegoldó képességük (bonyolultságuk) szerint:

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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 11. oldal

A félév során részletesen tárgyalni fogjuk ezen megoldások tulajdonságait és algoritmusait.


Számunkra kiindulásként az kell szolgáljon, hogy a robotok irányítása meglehetősen
számításigényes, nagy kapacitású és sebességű számítási teljesítmény szükséges ahhoz, hogy
az irányítási feladatot el tudjuk végezni. Iránymutatásként jegyezzünk meg két hozzávetőleges
adatot: a legegyszerűbb, tisztán pozíció irányítás esetén is a koordinátor kb. 10-100 msec-ként
új "elemi feladatot" kell adjon a szabályozóköröknek, egy digitális szervo körrel szemben ma
már elvárás a 100-500 sec-on belüli ciklusidő.

1.2 Egy kis fejszámolás


A robot irányítórendszerének megtervezésekor sok szempontot kell figyelembe vennünk.
Ennek egy meghatározó eleme lesz a megfelelő architektúra és a megfelelő mikrokontrollerek
(mikroprocesszorok) kiválasztása. A Mikrokontroller alapú rendszerek c. alapképzéses (BSc)
tantárgy elején megvizsgáltunk mikrokontrollereket bizonyos feladattípusok végrehajtása
szempontjából. Idézzük fel bevezetésként ezeket a számításokat !

Vegyünk három egyszerű feladattípust, amikről elképzelhető, hogy egy-egy beágyazott


rendszerrel kívánunk elvégezni!
a) Egy egyszerű kis intelligens folyamatmodul (intelligens szenzor) digitális bemeneteket
fogad az irányított folyamat (pl. autó gyártósor) egy helyszínén, azokat pergésmentesíti,
megformálja az impulzustulajdonságokat (pl. minimális hossz, minimális távolság,
stb.), majd az állapotokat ciklikusan továbbítja egy terepi buszon (CAN, Profibusz, stb.)
az irányító PLC felé.
b) Egy mobilis robot hajtómotorjainak szabályozási feladatát ellátó intelligens
hajtásprocesszor megvalósítása
c) Az előbbi robotunk mozgásának pályatervezése valós időben

A feladathoz vessünk össze 3 mikrokontroller típust, melyek mindegyike rendelkezésünkre áll


a feladat megoldásához:
1) A 70-es években az egész világot uraló Z80-as mikroprocesszor felgyorsított,
„mikrokontrolleresített” változatát mind a mai napig gyártják (Zilog, Hitachi, stb.)
Konzervatív fejlesztőnk a múltbeli ismeretekhez való ragaszkodása miatt mérlegeli
ennek a típusnak az alkalmazását.
2) A 8 bites mikrokontrollerek világában – hasonlóan a PC-k 80x86-os világához – az Intel
cég 8051-es kontrollereinek mai változatai uralják a piacot (lassan 20 éve). Gyártók sora
kínálja ennek a típusnak a különböző klónjait (Atmel, Philips, Infineon, Silicon
Laboratories, stb.)
3) Manapság rendkívül népszerűek az ARM család Cortex M4-es mikrokontrollerei,
melyek már a nagyobb teljesítőképességű processzáló elemek közé tartoznak és
rendkívül elterjedtek. Az előtanulmányaikban részletesen foglalkoztunk velük.

Összeállítottunk egy táblázatot a fontosabb szóba jövő műveletek végrehajtási


időszükségletéről. A logikai műveletek mindhárom mikrokontroller esetében 1-1 utasítással
elvégezhetők, ezek időszükséglete megegyezik az adott kontroller típus utasítás végrehajtási
idejével. A 16 és 32 bites műveletek a 8 bites mikrokontrollerek számára már mindenképpen
több utasítás végrehajtását jelentik, hasonlóan a lebegőpontos műveletekhez, melyek csak a

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 12. oldal

jelprocesszor számára végezhetők el egyetlen utasítással (a legkisebb teljesítményű


mikrokontroller esetében itt már nem is adunk meg számokat, a végrehajtási idők ugyanis
irreálisan magasak lennének a többi kontroller adataihoz képest). Ugyanez igaz az osztás
műveletére a jelprocesszor esetében.

20 MHz Z180 22 MHz C8051F040 180 MHz STM32F446RE


8 bit 8 bit 32 bit
Művelet
átl. 6-8 T/utasítás átl. 1-2 T/utasítás 1 T/utasítás
HW szorzó HW szorzó, osztó HW szorzó, osztó, FPU
Logikai ÉS
Logikai VAGY 0.3 sec 0.045 sec 0.0056 sec
8 + 8 = 8 bit
16 + 16 = 16 bit 2 sec 0.6 sec -
32 + 32 = 32 bit 8 sec 1.2 sec 0.0056 sec
16 * 16 = 16 bit 12 sec 2.6 sec -
32 * 32 = 32 bit 36 sec 6.4 sec 0.0056 sec
16 / 16 = 16 bit 80 sec 10.4 sec -
32 / 32 = 32 bit 160 sec 25.6 sec 0.0667 sec
FADD, FSUB - 10 sec 0.0056 sec
FMUL - 12 sec 0.0056 sec
FDIV - 49 sec 0.0778 sec

1.2.1 táblázat - Aritmetikai műveletek végrehajtási sebessége

a) Digitális jel feldolgozása alapműveletekkel

A jelfeldolgozás nem igényel komolyabb aritmetikai műveletsort. Az alábbi blokkvázlat


(indoklás nélkül) a megoldást mutatja. Az algoritmus elvégzése a lefordított program elemzése
alapján kb. 15-20 utasítás végrehajtását jelenti a mikrokontrollerek számára (aritmetikai és
logikai műveletek, időzítők tárolása). Számoljunk 15 utasítással, viszont 32 db ilyen bemenet
kezelését kell elvégeznünk, az elvárt ciklusidő max. 100 μsec. A feladat ciklikus végrehajtása
mellett a terepi busszal való kommunikáció (céláramkör!) időigénye elhanyagolható.

1.2.2 ábra - A digitális jel pergésmentesítésének értelmezése

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 13. oldal

Debouncing
Start

N Y
Input
==State

N Y
DTimer
==DLimit

Increase DTimer Toggle State


DTimer

Clear DTimer

Debouncing
Stop

1.2.3 ábra - A digitális jel pergésmentesítésének algoritmusa

Feladat Z180 C8051F040 STM32F446RE


1 bemenet kezelése 4.5 sec 0.675 sec 0.083 sec
32 bemenet kezelése 144 sec 21.6 sec 2.67 sec
Terhelés 144% 21.6% 2.67%

1.2.4 táblázat - Százalékos leterheltség a digitális jel feldolgozása során

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:

Y  K p  Qr  Ki  Qr  Yie  Kd ( Qr  Qre ) (1.2.1)

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:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 14. oldal

Feladat Z180 C8051F040 STM32F446RE


Qr = Qa – Qe 8 sec 1.2 sec 0.0056 sec
Kp * Q r 36 sec 6.4 sec 0.0056 sec
Ki * Q r 36 sec 6.4 sec 0.0056 sec
Qr – Qre 8 sec 1.2 sec 0.0056 sec
Kd*(Qr – Qre) 36 sec 6.4 sec 0.0056 sec
Összeadás (3 x) 24 sec 3.6 sec 0.0167 sec
Összesen 148 sec 25.2 sec 0.0444 sec
Terhelés 148% 25.2% 0.044%

1.2.5 táblázat - PID algoritmus számításának időszükséglete

c) A robotirányítás pályatervezése

Általánosságban a robot pályatervezése mátrixegyenletek megoldását jelenti, mely mátrixok


tipikusan 4x4-esek és trigonometrikus függvényeket (is) tartalmaznak (ezen kijelentések
indoklása csak mélyebb robotirányítási elmélet ismeretekkel lehetséges). Próbaképpen
szorozzunk össze 2 db 4x4-es mátrixot, amiben nincs kihasznált szabályosság és egyelőre
hanyagoljuk el a trigonometrikus függvényeket. Z180-as mikrokontrollerünk esetében még 32
bites egész (fixpontos) aritmetikával kísérletezünk (bár az alkalmazhatóság erősen kilátástalan),
másik két processzorunk lebegőpontos számításokat végezzen. A műveletből legalább 10-et
kellene elvégeznünk kb. 10 msec alatt.

1.2.6 ábra - Időszükséglet = 10 x [(4 db * ; 3 db +) * 16 ]

Feladat Z180 C8051F040 STM32F446RE


4 db szorzás 144 sec 48 sec 0.022 sec
3 db összeadás 24 sec 30 sec 0.017 sec
1 mátrixszorzás 2688 sec 1248 sec 0.622 sec
Összesen (10x) 26800 sec 12500 sec 6.222 sec
Terhelés 268% 125% 0.062%

1.2.7 táblázat - Mátrixszorzás elvégzésének időszükséglete

Milyen következtetést tudunk leszűrni a fenti (hangsúlyozzuk, erősen közelítő!) számításokból?

a) Z180-asunk elavult. Legnagyobb gondja a nem pipeline jellegű műveletvégzés, ettől


megközelítőleg azonos órajel mellett is stabilan 4-5-ször lassabb, mint 8051-esünk. Ehhez
még hozzájárul, hogy elavult architektúrája miatt folytonos mentésekre kényszerül a

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 15. oldal

részeredményeknél. A feladatot a 8051-es kiválóan el tudja látni, mintegy 5-10-szer


drágább ARM processzorunk teljesen felesleges a feladat számára – a neki abszolút nem
passzoló egyszerű műveletek miatt alig gyorsabb kis mikrokontrollerünknél (kb. 180/22 ≈
nyolcszoros utasítás végrehajtási sebesség miatt kb. 8x is gyorsabb).
b) Ennél a feladatnál már 8051-es mikrokontrollerünk is kezd „leterhelődni”, korábbi 8:1
terhelésaránya a Z180-hoz képest lecsökken 6:1-re (teljesen normális, ez kb. 4-5-szeresre
állna be végtelen terhelés esetén az utasítás végrehajtási idők és az órajelek eltérése miatt).
A feladat a 8 bites mikrokontrollerek számára is elvégezhető, Cortex M4-esünk „üresen jár”
ezzel a terheléssel.
c) Itt már 8 bites mikrokontrollereink „elvéreztek”. Az eltérés extrém: miből adódik ez a
12500/6.222 = 2009-szeres faktor? Az órajelek különbözőségéből? Az utasítás végrehajtási
sebességek kb. 180/22 = 8-szoros eltérést indokolna. A beépített lebegőpontos
aritmetikából? Valamennyi lehet ebben, hiszen a lebegőpontos műveleteket összehasonlítva
10/0.0056=1786-szoros szorzóhoz jutunk. Hardver szorzónk ugyan sokat segít a helyzeten,
de ha mélyebben belegondolunk, rá kell jöjjünk: az igazi ok valójában a szóhossz. 8 bites
mikrokontrollereink csak 4 lépésben tudják elvégezni a 32 bites feladatot, ami egyszerűbb
műveletek esetében még azonos órajelnél is "csak" kb. 10-12-szeres időt jelentene (4-szer a
művelet elvégzése és mindegyik művelethez a megfelelő regiszterek töltögetése/tárolása). A
szorzásnál azonban a részletszorzatok miatt ez már hatványozottan jelenik meg (egész
számoknál: 6.4/0.0056=1143, lebegőpontos számok esetében pedig 12/0.0056=2143).

Trigonometrikus egyenletek esetén ne is próbálkozzunk: a fixpontos számítás szinte lehetetlen,


a függvények számításához az aritmetikai processzor megléte elengedhetetlen. Ide bizonyítás
nélkül csak egy hozzávetőleges szám: egy korszerű hibrid pozíció-erő robotirányítás számítási
igényeinek elvárásainál egy asztali PC kb. 2...3-szor lassabb.

1.3 A robot geometriája – direkt geometriai feladat1


A direkt geometriai feladat arra ad választ, hogy a robot végberendezésének pozíciója és
orientációja hogyan függ a csuklóváltozóktól (rotációs csukló esetén annak szögelfordulásától,
transzlációs csukló esetén pedig elmozdulásától) a robot bázis koordinátarendszerében. A
feladat megfordítása, hogy a végberendezés előírt pozíciójának és orientációjának ismeretében
kívánjuk meghatározni a csuklóváltozók értékét, ilyenkor az ún. inverz geometriai feladatról
beszélünk.

1.3.1 Lineáris transzformációk

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

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 16. oldal

A 3-dimenziós térben például ez a következő formában használatos egy általános r vektor


leírására, e1  i, e 2  j, e3  k , illetve r1  x, r2  y, r3  z jelöléssel:
r  x i  y j z k (1.3.2)
ahol i, j, k ortonormált (egymásra merőleges és egységnyi) bázisvektorok. Megjegyezzük, hogy
az (1.3.1) általános esetben a bázisvektorok nem kell, hogy ortonormáltak legyenek, viszont
lineárisan függetleneknek kell lenniük.

Egy adott, rögzített bázisban az x vektor egyértelműen jellemezhető a koordinátáiból képezett


szám n-essel:
 x1 
x 
x   2 (1.3.3)

 
 xn 
Amíg az (1.3.1) vektoregyenlet az R n térben egy tényleges x vektort eredményez, addig (1.3.3)
kifejezésben x már csak egy oszlopvektor, amely önmagában, az e1 , e 2 ,..., e n bázisvektorok
ismerete nélkül nem mond semmit. Viszont az
 x1 
n x 
x   x j e j  e1 e 2  en   2  (1.3.4)
j 1 
 
 xn 
mátrixszorzást elvégezve visszakapjuk a vektoregyenletünket.
Vektorterekben transzformációknak, leképezéseknek nevezzük a vektorokon értelmezett,
vektorértékű függvényeket. Például A : R n  R m egy n-dimenziós Euklideszi térbeli
vektorhoz egy m-dimenziós vektort rendel képként.
Az A : R n  R m leképzést (függvényt, transzformációt) lineáris transzformációnak
nevezzük, amennyiben
A( x   y )  A(x)  A(y ) (1.3.5)
teljesül. Legyen például az A leképzés egy, a térben történő forgatás,  és  skalár értékek,
illetve x és y vektorok. A skalárral való szorzás geometriailag nyújtást jelent. A példát két
dimenzióban az 1.3.1 ábra illusztrálja. Látható, hogy az A -val jelölt forgatás lineáris
transzformáció, hiszen mindegy, hogy a két vektort először megnyújtjuk, majd összeadjuk és
végül elforgatjuk, vagy először forgatjuk el őket egyenként, majd megnyújtjuk, és csak azután
adjuk össze őket.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 17. oldal

1.3.1 ábra – Példa lineáris transzformációra

A bázisok megválasztásától független A leképzés (transzformáció) felírható egy A bázisfüggő


mátrixszal. A továbbiakban a következő jelölési konvenciót használjuk: a kézírásos nagybetű
magát a transzformációt jelöli, míg a félkövér nagybetű az azt reprezentáló, bázisfüggő
mátrixot. Nézzünk tehát egy általános A transzformációt, mely az R n -beli vektorokat R m -be
képezi le. Az R n bázisvektorai legyenek e1 , e 2 ,..., e n , R m bázisát pedig f1 , f 2 ,..., f m jelöli.
Mindezt tömören a következőképpen írhatjuk:
A
Rn  Rm
x y
 e1   f1 
  (1.3.6)
   
en  f m 
Rn  R m
A

A vektorokat koordinátáik és a bázisvektorok segítségével felírhatjuk az ismert alakban:


n
x   x je j (1.3.7)
j 1

m
y   yi fi (1.3.8)
i 1

Mivel az A leképezés lineáris, az (1.3.5) alapján teljesül, hogy


 n  n
y  A(x)  A   x j e j    x j A(e j ) (1.3.9)
 j 1  j 1
Jelölje a transzformált A(e j ) bázisvektorok koordinátáit f1 , f 2 ,..., f m bázisban a1 j , a2 j ,..., amj :
def m
A(e j )   aij fi (1.3.10)
i 1

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 18. oldal

Így y a következő alakba írható át:


n n
 m  m  n 
y   x j A(e j )   x j   aij fi      aij x j fi (1.3.11)
j 1 j 1  i1  i1  j 1 
A koordinátákból képzett oszlopvektorokra igaz a következő mátrixegyenlet:
 y1   a11  a1n   x1 
          
    
 ym  am1  amn   xn  (1.3.12)
 
A(e1 ) A(e n )
ahol az A(e1 ),, A(e n ) vektorok az f1 ,..., f m bázisban vannak felírva. Az (1.3.10) és (1.3.12)
egyenletekből látszik, hogy az A lineáris transzformáció A mátrixának j-edik oszlopa a
kiindulási tér e j bázisvektorának A(e j ) képe, a képtér ( f1 ,..., f m ) bázisában felírva.

1. példa: Vektor levetítése az [x, y] síkra

Legyen r  R 3 egy vektor az [x, y, z] tengelyek által meghatározott


koordinátarendszerben, és legyenek az ortonormált egységvektorok
szokás szerint i, j és k.

Legyen az A lineáris transzformáció (leképezés) a következőképpen


értelmezett: 1.3.2 ábra
def
A(r )  r , (1.3.13)

ahol r  legyen az r vektor [x, y] síkba vetített képe.

Bár a feladat alapján a leképezés eredménye a kétdimenziós [x, y] síkban is értelmezhető, az


egyszerűség kedvéért az A leképezés dolgozzon az [x, y, z] koordinátarendszerből ugyanebbe
az [x, y, z] koordinátarendszerbe, azaz
A
R 3  R3
i i
 j  j (1.3.14)
   
k  k 
R 3 A
R3
Az (1.3.6) jelölésrendszernek megfelelően e1  i, e 2  j, e3  k , és f1  i, f 2  j, f3  k . Az
A transzformáció definíciója alapján igaz, hogy
A(i )  i, A( j)  j, és A(k )  0 (1.3.15)

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 19. oldal

Ebből következik, hogy a transzformáció mátrixa


1 0 0
A  0 1 0 (1.3.16)
0 0 0

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 leképezés mátrixa szinguláris, azaz a leképezés nem megfordítható (a vetületből az eredeti


vektort nem tudjuk visszaállítani, hiszen a z koordináta a vetítés során elveszett).

2. példa: Vektorok szorzása

Legyen r  R 3 egy vektor a háromdimenziós Euklideszi térben, és jelölje


def
A( x)  a  x (1.3.18)
a konstans a vektorral való vektorszorzást reprezentáló lineáris transzformációt. Jelölje

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

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 20. oldal

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 

A mátrix felírását egyszerűsítette, hogy a két bázisrendszer megegyezik.

3. példa: Diadikus szorzat

Legyen adott az alábbi művelet az x vektoron:


A ( x )  a b, x , (1.3.25)

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:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 21. oldal

A
R 3  R3
i i
 j  j (1.3.27)
   
k  k 
R 3 ab 
 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ó

Fontos megjegyeznünk, hogy az előző példákban az A transzformáció geometriailag


módosította a kiindulási vektort, viszont a vektor képét ugyanabban a koordinátarendszerben
írtuk fel. A most következő koordináta-transzformáció esetében viszont a transzformáció
helyben hagyja a vektort, viszont a kiindulási és a képtér különbözik. Vagyis geometriai
változtatás nélküli transzformációt hajtunk végre, amely csak a koordinátákat cseréli le a képtér
bázisának megfelelően.

Vegyük a K és K’ koordinátarendszereket, amelyeknek közös az origója, és rendelkeznek a P


közös ponttal (1.3.4 ábra).

1.3.4 ábra – Koordináta-transzformáció

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 22. oldal

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 

Ebben az esetben az i, j, k bázisvektorok koordinátáit az i’, j’, k’ koordinátarendszerben kell


felírnunk.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 23. oldal

Példa: Forgatás a z tengely körül  szöggel

A rotációs csuklók esetén az adott tengelyek körüli elforgatások transzformációs mátrixainak


jelentős szerepe lesz, ezért fontos azok meghatározása az x, y, és z tengelyek körül. Mi itt csak
a z tengely körüli elforgatást dolgozzuk ki, de a másik két eset meghatározása is hasonló, ezért
ott csak a megoldást közöljük.

1.3.5 ábra – z tengely körüli elforgatás

Elforgatás előtt essen egybe K és K’ koordinátarendszer. Forgassuk el K’ koordinátarendszert


a z tengely körül  szöggel (1.3.5 ábra), és forgassuk vele a P( x, y, z ) pontot is, amelyből az
elforgatás után Pelf ( xelf , yelf , zelf ) keletkezik. Vezessük be a ROT ( z ,  ) jelölést az elforgatást
végző lineáris transzformációra:
ROT ( z , )
R 3   R 3
P Pelf
i i  xelf   x
 j  j,     (1.3.34)
     yelf   Rot ( z , )  y ,
k  k   zelf   z 
 
Rot ( z , )
R 3   R 3
ahol a transzformáció mátrixát Rot( z ,  ) jelöli. A Pelf pont koordinátáit kifejezhetjük az
 , yelf
elforgatott K’ koordinátarendszerben is: Pelf ( xelf  , zelf
 ) . Továbbá azt is tudjuk, hogy mivel
a pont együtt fordult a koordinátarendszerrel, P koordinátái K-ban megegyeznek Pelf
koordinátáival az elforgatott K’ koordinátarendszerben:
   x
 xelf
   
  y
 yelf (1.3.35)
 
 zelf
   z 
 
Vagyis (1.3.34) és (1.3.35) alapján igaz a következő összefüggés:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 24. oldal

 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!

1.3.6 ábra – Az elforgatás a z tengely felől nézve

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 25. oldal

Az ábráról könnyen leolvashatók a következő összefüggések:


i  cos   i  sin   j  0  k
j   sin   i  cos   j  0  k (1.3.39)
k  0  i  0  j  k
Vezessük be a C  cos  és a S  sin  rövidített jelöléseket. Ezek alapján a rotációs mátrix
a következő alakot ölti:
C  S 0
Rot ( z ,  )   S C 0 (1.3.40)
 0 0 1
A fenti megfontolások alapján az x és y tengely körüli elforgatásokat is lehet definiálni, ezekre
a következő két eredmény adódik:
 C 0 S 
 
Rot ( y,  )   0 1 0 (1.3.41)
  S 0 C 

1 0 0 
 
Rot ( x,  )  0 C  S  (1.3.42)
0 S C 

1.3.3 A Rodrigues-képlet

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)

ahol I az egységmátrix, valamint  t t  a (1.3.29) szerint,  t  pedig (1.3.24) szerint


értelmezendő, amennyiben a = b = t választással élünk.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 26. oldal

Példa: A forgatás inverze

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 .

1.3.4 Az orientáció jellemzése Euler-szögekkel

Láttuk korábban, hogy K koordinátarendszer origójába felvett K’ orientációja K-hoz képest


leírható egy 3x3-as A mátrix segítségével:
A  l m n  (1.3.47)
ahol K’ koordinátarendszer l, m, n bázisvektorai K koordinátarendszer bázisában van felírva
(lásd: (1.3.30)–(1.3.32)). A következőkben megmutatjuk, hogy bármilyen A orientációjú K’
koordinátarendszerbe eljuthatunk K-ból három adott irányú forgatás segítségével.

1.3.7 ábra – Euler-szögek

Legyen K és K’’’ koordinátarendszer közös origójú. Határozzunk meg 3 elforgatást, amellyel


K-ból K’’’-be el lehet jutni.

- Képezzük t egyenest (1.3.7 ábra), amely a K és K’’’ koordinátarendszerekben felvett [x, y]


síkok metszésvonala:
t  x, y   x, y (1.3.48)

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 27. oldal

- 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’’’.

Alkalmazva az (1.3.36) eredményt a forgatások a következőképpen alakulnak:


 x   x 
 y  Rot( z, )  y (1.3.49)
   
 z   z  

 x   x 
 y  Rot( y ' ,  )  y (1.3.50)
   
 z    z  

 x  x 
 y   Rot( z ,  )  y (1.3.51)
   
 z   z  

A fentiek alapján vonjuk össze az eredményeinket:


 x  x 
 y   Rot ( z ,  ) Rot ( y, ) Rot( z , )  y (1.3.52)
   
 z   z  

Definiáljuk az Euler-szögekkel megvalósított forgatást leíró mátrixot jelölést:


Euler( ,  , )  Rot( z ,  ) Rot( y,  ) Rot( z , ) 
C  S 0  C 0 S  C  S 0
  S C 0  0 1 0   S C 0  (1.3.53)
 0 0 1  S 0 C   0 0 1
C C C  S S  C C S  S C C S 
 
  S C C  C S  S C S  C C S C 
  S C S S C 

Vagyis a ( ,  , ) Euler-szögek ismeretében (1.3.53) segítségével megkapjuk az orientációs
mátrix elemeit. Képzeljük el a fordított esetet, amikor előírjuk K’’’ orientációját számszerűen:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 28. oldal

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.

1.3.5 Merev testek relatív helyzetének jellemzése homogén koordinátákkal

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.

1.3.8 ábra – Homogén koordináta-transzformáció

Vegyünk két merev testet, és rögzítsünk hozzájuk egy-egy derékszögű K és K’


koordinátarendszert (1.3.8 ábra). Ebben az esetben mindkét test bármely pontja egyértelműen
felírható a hozzá rögzített koordinátarendszerben, hiszen feltettük, hogy a testek nem
deformálódnak. Relatív helyzetük jellemezhető K és K’ koordinátarendszerek (coordinate
frame, továbbiakban: keret) relatív helyzetével, amely egy forgatásból és egy eltolásból tevődik
össze. Vegyük fel K keret origójába az x’, y’, z’ tengelyekkel párhuzamos l, m, n
egységvektorokat; p vektor a K és K’ origója közötti eltolást jellemző vektor. Amennyiben
P (x, y, z) = P (x’, y’, z’) a második szegmens egy pontja, illetve r és r’ az egyes keretek
origójából a P pontba mutató helyvektorok, akkor

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 29. oldal

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  

ahol l, m, n egységvektorokat i, j, k bázisban írtuk fel. Az egyenletet átírhatjuk az alábbi alakra:


 x  x   x 
 y l m n p   y  A p   y 
    ,
 z   0 0 0 1   z    0T  (1.3.57)
1   z 
     
1  1 1
hiszen ennek az egyenletrendszernek az első három egyenlete megegyezik az (1.3.57)-ben
felírttal, az utolsó sora pedig az 1=1 azonosság. Adódik tehát, hogy a K és K’ keretek közötti
relatív helyzet leírható a
A p  l m n p 
TKK    T 
1  0 0 0 1 
, (1.3.58)
0
úgynevezett homogén koordinátás mátrixszal, a továbbiakban csak röviden homogén
mátrixszal. Ez megadja a K’ keret orientációját és pozícióját K-hoz képest, valamint
amennyiben ismerünk egy pontot K’-ben annak x’, y’, z’ koordinátái alapján, akkor megadja
ugyanennek a pontnak (a pont nem mozdul el!) a K keretben vett x, y, z koordinátáját.

Homogén mátrixokra érvényes szabályok

Az alábbiakban – a levezetések részletezése nélkül – ismertetünk néhány, homogén mátrixokra


vonatkozó szabályt:
 A1 p1   A 2 p 2   A1A 2 A1p 2  p1 
 0T 1   0T 
1   0T  (1.3.59)
  1 
A fenti összefüggésből látszik, hogy két homogén mátrix szorzata esetén az orientációk
szorzódnak, viszont a pozíciók nem csak összeadódnak, hanem azok értéke függ az
orientációtól is
I p  A 0  A p
0T 
1  0T 1 0T 1 
(1.3.60)

A 0  I p  A Ap
0T 
1 0T 1  0T 1 
(1.3.61)

A fenti két összefüggés bal oldala egy tisztán eltolást és egy tisztán forgatást leíró homogén
mátrixból áll, viszont jól látszik, hogy azok sorrendje nem felcserélhető.
A homogén mátrixok inverzére igaz a következő összefüggés:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 30. oldal

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

A 1  ...A 21A11  ...AT2 A1T (1.3.64)

1.3.6 Merev, nyílt láncú elágazás nélküli robot leírása

Legyenek a robot szegmensei számozva a [0],[1],, [m] tartományban, és a szomszédos


szegmenseket csukló (transzlációs v. rotációs) kapcsolja össze. Az egyes csuklók állapotát a
q1 ,  , qm csuklóváltozókkal jellemezzük. A csuklóváltozó indexe úgy értendő, hogy az i-edik
csukló az i-edik szegmenst mozgatja. A transzlációs csukló hosszanti elmozdulást végez a
tengelye mentén (később d vagy a fogja jelölni az elmozdulást, ilyenkor a qi csuklóváltozó ezek
valamelyike). A rotációs csukló a tengelye körül forgat (vagy  szöggel, ebben az esetben
ezek egyike a qi csuklóváltozó). A robot végén található a végberendezés, amely az [m]
szegmenst követi (1.3.9 ábra).

1.3.9 ábra – Nyílt láncú robot

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

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 31. oldal

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  Ti1,i (1.3.65)
homogén mátrix segítségével.

Látható, hogy a csuklókoordináták segítségével K0 és Km keretek között tudunk beavatkozni, a


robot [m] szegmense után és [0] szegmense előtt már csak konstans transzformációk találhatóak
(pl.: Tm,E, TB,0). Az ilyen robotot, ahol a csuklók száma m, és minden csukló egy
szabadságfokkal rendelkezik, m-szabadságfokú robotnak nevezzük. Az ilyen robotok egyik
jellemzője a csuklóképlet, amely a csuklók típusának felsorolása (R – rotációs, T –
transzlációs), például RTRRRR, amely egy 6-szabadságfokú robotot jelöl. Kizárólag 6, vagy
annál több szabadságfokú robotok esetén érhető el, hogy a robot végberendezését – elvben –
bármilyen pozícióba és orientációba irányíthassuk. Természetesen a geometriai méretek
további megkötéseket tartalmaznak, ezek alapján számolható a robot valós munkatere.

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 robot transzformációs gráfja

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 ...Tm1,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 m1,m . (1.3.67)
Definiáljuk továbbá az [i–1] és [i] szegmensek közötti inverz transzformációt:
def
Ti ,i1  Ti11,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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 32. oldal

1.3.10 ábra – Robot transzformációs gráf

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 Tm1,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.

1.3.7 Robotok leírása a Denavit–Hartenberg-alak segítségével

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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 33. oldal

1.3.11 ábra – Denavit–Hartenberg paraméterek

Éljünk a következő kikötésekkel:

 rotációs csukló esetén a csukló forgási tengelye z irányú


 transzlációs csukló esetén az elmozdulás esik z irányba

Éljünk a következő feltételezésekkel:

 Ki–1 keretet már megválasztottuk


 legyen ti–1 tengely az [i–1] és [i], ti pedig az [i] és [i+1] szegmensek közötti tengelyek
iránya
 zi–1 iránya megegyezik az [i–1] és [i] szegmensek közötti ti–1 tengely irányával
 legyen Ki keret xi tengelye merőleges ti–1 és ti tengelyekre, amely egyértelmű, ha azok
kitérőek
 legyen Ki origója abban a pontban, ahol xi és ti metszi egymást
 zi essen ti irányába
 Ki–1 origójából húzzunk párhuzamost xi-vel (e)
 Ki origójából húzzunk párhuzamost zi–1-gyel (f)

Vezessük be a Denavit-Hartenberg paramétereket:

 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ű

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 34. oldal

 ai legyen az a távolság, amellyel zi–1 és xi metszéspontját xi mentén el kell tolni ahhoz,


hogy Ki origójába kerüljön, xi irányába pozitív értékű
 αi legyen az a szög, amellyel az f egyenest el kell forgatni xi körül ahhoz, hogy zi
tengelybe kerüljön. Ez lehetséges, mivel xi tengelyt úgy definiáltuk, hogy merőleges
legyen zi-re és zi–1-re, ezért merőleges f-re is, hiszen f párhuzamos zi–1-gyel. Az xi tengely
körül jobbcsavar szabály szerint 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 ) 
Ci  Si 0 0 1 0 0 0  1 0 0 ai  1 0 0 0
S Ci 0 0 0 1 0 0  0 1 0 0  0 Ci  Si 0
  i  (1.3.71)
0 0 1 0  0 0 1 d i  0 0 1 0  0 Si Ci 0
    
0 0 0 1  0 0 0 1  0 0 0 1  0 0 0 1
Ci  Si Ci Si Si ai Ci 
S Ci Ci  Ci Si ai Si 
  i
0 Si Ci 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

Az alábbi táblázatban példaként felírtuk a gyakorlaton részletesen kidolgozandó, a direkt és az


inverz geometriai feladat alapjául szolgáló Puma-560 robot Denavit–Hartenberg paramétereit.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 35. oldal

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°

1.3.1 táblázat - A Puma-560 Denavit-Hartenberg paraméterei

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  Tm1,m homogén mátrix nem tartalmaz változókat, hiszen a többi paraméter
számértékkel adott konstans.

Összefoglalás

Láthattuk, hogy homogén mátrixokkal leírt koordináta-transzformációk segítségével


meghatározhatjuk egy tetszőleges nyílt láncú, merev, elágazás nélküli robot szegmenseinek és
megfogójának koordinátáit a robot bázisában, amennyiben tudjuk qi csuklóváltozók értékét. Ezt
neveztük direkt geometriai feladatnak:
 q1 
A p 0 ,m 
q      T0,m   0T,m
1 
(1.3.72)
qm   0

Ezek után már számítható a


TB ,E  TB , 0 T0,m Tm ,E

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 Tm1,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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 36. oldal

1.4 A direkt geometriai feladat megoldása Puma-560 robotra

A homogén mátrixok meghatározása

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.

1.4.1 ábra – A Puma 560-as robot koordinátarendszerei

A T0,1 mátrix meghatározása:

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:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 37. oldal

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.

Írjuk fel táblázatosan az első DH paramétersort:

i qi i di ai i
1 1 1 0 0 –90°

Ezek után az ismert (1.3.71) eredményt felhasználva, megkaphatjuk a T0,1 mátrixunkat.


Ci  Si Ci Si Si ai Ci 
S Ci Ci  Ci Si ai Si 
Ti1.i   i (1.4.1)
0 Si Ci di 
 
0 0 0 1 

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:

 Kizárólag 1-től függ


 Mivel az utolsó oszlopában az első 3 elem 0, ezért nem tartalmaz eltolást (K0, K1 origója
közös)
 Az orientációs rész oszlopainak abszolút értéke 1, ezt el is vártuk, hisz tudjuk, hogy az
orientáció nem más, mint a K1 keret bázisvektorai felírva K0 keret bázisában.

A T1,2 mátrix meghatározása:

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:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 38. oldal

 2: Itt is 2 lesz a csuklóváltozó, hiszen z1 körül forog a 2-es csukló


 d2 = 0, ha K2’, és d2 = 0,15005m (katalógusadat), ha K2 keretet használjuk
 a2 = 0,4318m (katalógusadat) mindkét esetben
 2 = 0°, mivel a két koordinátarendszer egyállású

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 T2,3 mátrix meghatározása:

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 is3 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.

K3 keretre, ha K2’-ből érkeztünk:

i qi i di ai i
3 3 3 d3 0 90°

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 39. oldal

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 T3,4 mátrix meghatározása:

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:

 4 lesz a csuklóváltozó, hiszen z3 körül forog a 4-es csukló


 d4 = 0,4318m (katalógusadat), hiszen z3 mentén eltolást kell végeznünk
 a4 = 0, mivel x3 mentén nem mozdultunk el
 4 = –90°, hogy a z4 tengely t4 irányba mutasson

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 40. oldal

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:

K5 keret a t3, t4, t5 tengelyek metszéspontjában marad, de hogy z5 a t5 tengelybe essen, a


következő DH paraméterek szükségesek:

 5 lesz a csuklóváltozó, hiszen z4 körül forog az 5-ös csukló


 d5 = 0, mert az origók megegyeznek
 a5 = 0, szintén a megegyező origók miatt
 5 = 90°, hogy z5 tengely t5 irányba mutasson, x4 mentén el kell forgatnunk

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:

 6 lesz a csuklóváltozó, hiszen z5 körül forog az 6-os csukló


 d6 = 0, mert az origók megegyeznek
 a6 = 0, szintén a megegyező origók miatt
 6 = 0°, mivel z5 már a megfelelő irányba mutatott eddig is

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 41. oldal

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

A T3,6 mátrix meghatározása:

Végezzük el az utolsó három T mátrix szorzását, ebben az esetben


C4C5C6  S 4 S6  C4C5 S6  S 4C6 C4 S 5 0
S C C  C S  S 4C5 S6  C4C6 S 4 S5 0 
T3, 6   4 5 6 4 6
(1.4.12)
  S 5 C6 S5 S 6 C5 d4 
 
 0 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:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 42. oldal

i qi i di ai i
4 4 4 d4 0 –90°
5 5 5 0 0 90°
6 6 6 0 0 0°

Egyéb esetekben nem fogjuk megkapni az (1.4.12) képletet.

A T0,6 mátrix meghatározása:

Ezek után írjuk fel a robot teljes direkt geometriai összefüggését:


 0
Euler( , , ) 0  l m n p 
T0, 6  T0,3   4 5 6   (1.4.14)
 d 4  0 0 0 1 
 0T 1 

ahol ismerjük 1 ,,6 (továbbiakban q1 ,, q6 ) csuklóváltozókat, és kíváncsiak vagyunk l, m,
n, p értékére. Ezt felírhatjuk más alakban is, felhasználva az
 A1 p1   A 2 p 2   A1A 2 A1p 2  p1 
 0T 1   0T 1    0T  (1.4.15)
    1 
eredményt:
 0
Euler( , , ) 0 
T0, 6  T0,3   4 5 6 
 d4 
 0T 1 

 0
l 
m 0,3 n 0,3 p 0,3  Euler(4 ,5 ,6 ) 0 
  0,3  
1  
(1.4.16)
0 0 0 d4 
 0T 1 

 A  Euler(4 ,5 ,6 ) p 0,3  d 4n 0,3  l m n p 
  0,3   0 0 0 1 
 0T 1   
Látható, hogy az orientációk egyszerűen csak szorzódnak, viszont a megfogó pozícióját
nemcsak az első 3 szegmens p0,3 pozíciója, hanem azok orientációja is (n0,3) befolyásolja, mivel
a kézcsuklóhoz tartozó K4, K5, K6 keretek origója K3-hoz képest el vannak tolva d4 távolsággal.
Ugyanakkor az is megfigyelhető, hogy az utolsó keret pozíciója csak az első három
csuklóváltozótól függ (ezt ki fogjuk használni az inverz geometriai feladat megoldásánál).
Elvégezve a mátrixszorzásokat, a direkt geometriai feladat megoldása a következő egyenleteket
eredményezi:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 43. oldal

l x  C1C23 (C4C5C6  S 4 S6 )  S1 ( S 4C5C6  C4 S6 )  C1S 23 S5C6


l y  S1C23 (C4C5C6  S 4 S6 )  C1 ( S 4C5C6  C4 S6 )  S1S 23 S5C6
l z   S 23 (C4C5C6  S 4 S6 )  C23 S5C6
mx  C1C23 (C4C5 S6  S 4C6 )  S1 ( S 4C5 S6  C4C6 )  C1S 23 S5 S6
m y   S1C23 (C4C5 S6  S 4C6 )  C1 ( S 4C5 S6  C4C6 )  S1S 23 S5 S6
mz  S 23 (C4C5 S6  S 4C6 )  C23 S5 S6
(1.4.17)
nx  C1C23C4 S5  S1S 4 S5  C1S 23C5
n y  S1C23C4 S5  C1S 4 S5  S1S 23C5
nz   S 23C4 S5  C23C5
p x  C1C2 a2  S1d 2  C1S 23d 4
p y  S1C2 a2  C1d 2  S1S 23d 4
p z   S 2 a2  C23d 4

Szimuláció

Amennyiben a fenti képlethalmazt meg szeretnénk jeleníteni valamilyen formában, nagy


segítséget nyújtanak a robotszimulátor programok. Egy intuitív grafikus felhasználói felülettel
rendelkező, ingyenesen elérhető program például a Robot Development Kit (RoboDK), amely
bárki számára letölthető a http://www.robodk.com/ oldalról.
A program tartalmazza a Puma-560-as robotot, segítségével – számos más hasznos funkció
mellett – könnyedén mozgathatjuk megadott csuklópozíciókba, illetve tanulmányozhatjuk a
szegmensek relatív helyzetét.

Alapértelmezés szerint vegyük fel KB bázis keretet K0-val megegyezőnek, és vizsgáljuk a K6


keretet. Ezek után jelenítsük meg a robotot:

1.4.2 ábra – A Puma-560 robot alapállapota, K0 és K6 keretei

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 44. oldal

Látható, hogy a K6 keret q = [0 0 0 0 0 0] csuklóváltozókat megadva egyállású a KB báziskeret


irányaival. Amennyiben az (1.4.17) egyenletekbe mindenhova 0 radiánt helyettesítünk be,
akkor az alábbi T0,6 mátrixot kapjuk:
1 0 0 0,4318 
0 1 0 0,15005
T0, 6  (1.4.18)
0 0 1 0,4318 
 
0 0 0 1 
Jól látható, hogy K6 egyállású a KB kerettel, hiszen az orientáció egységmátrix, valamint x
irányban a2 = 0,4318m, y irányban d2 = 0,15005m, valamint z irányban d4 = 0,4318m a megfogó
pozíciója, ami a DH paraméterek meghatározása alapján várható volt.

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.

1.4.3 ábra – A 4-es csukló forgatása

A forgatás elvégzése után a következő transzformációs mátrixot kapjuk, amelynek orientációs


részében jól látszanak a megváltozott bázisvektorok, a pozíciós része pedig változatlan maradt:
0 1 0 0,4318 
 1 0 0 0,15005
T0, 6  (1.4.19)
0 0 1 0,4318 
 
0 0 0 1 

Végül állítsuk be a q  0  90  90 0 0 0 csuklókonfigurációt! Az látjuk, hogy az első


három szegmens párhuzamossá válik, a robot felfelé „nyújtózkodik”.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 45. oldal

1.4.4 ábra – Kinyújtott, függőleges helyzet

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 

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 46. oldal

1.5 Az inverz geometriai feladat megoldása Puma-560 robotra


Inverz geometria dekompozícióval

Vezessük be a következő jelölést:


A 3, 6  Euler (4 ,5 ,6 ) (1.5.1)
(1.4.16) alapján tehát:
l m n p  A 0,6 p   A 0 , 3  A 3, 6 p 0 , 3  d 4 n 0 , 3 
T0,6   
   T  (1.5.2)
0 0 0 1  0 0 0 1   0 1 
Az inverz geometriai feladat esetén ismerjük l, m, n, p számszerű értékeit, és meghatározandó
q1,…,q6. Először vegyük a homogén mátrix pozíciós részének megfelelő egyenletrendszert:
p  p 0,3 (q1 , q2 , q3 )  d 4  n 0,3 (q1 , q2 , q3 ) (1.5.3)
Itt p és d4 ismert, q1, q2, q3 ismeretlen, tehát van 3 ismeretlenünk és 3 egyenletünk, vagyis az
egyenletrendszer megoldható. Miután ezt megoldottuk, vegyük az orientációknak megfelelő
részt:
l m n   A 0,3 (q1 , q2 , q3 )  A 3, 6 (q4 , q5 , q6 ) (1.5.4)
és szorozzuk be balról A0,3 inverzével (jelen esetben a transzponáltjával)
A 3,6 (q4 , q5 , q6 )  AT0,3 (q1 , q2 , q3 )  l m n (1.5.5)
mivel q1, q2, q3 csuklóváltozókat már kiszámoltuk és l, m, n ismert, ezért megint előáll egy
egyenletrendszer, amely segítségével kiszámolhatjuk q4, q5, q6 értékeit.

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

Vegyük a már ismert (1.4.17) egyenletek közül a pozícióra vonatkozó 3 egyenletet:


px  C1C2 a2  S1d 2  C1S 23d 4 (1.5.6)
p y  S1C2 a2  C1d 2  S1S 23d 4 (1.5.7)

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)

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 47. oldal

Mielőtt továbbhaladnánk, nézzük meg, hogyan lehet megoldani a fentihez hasonló,


AC α  BS α  D típusú egyenleteket! Először vegyük az

AC α  BS α  D (1.5.10)

egyenlet négyzetét, majd kifejezve C -t, illetve S -t az (1.5.10) egyenletből és felhasználva a


jól ismert Cα2  Sα2  1 azonosságot, az alábbi alakokat kapjuk:

A 2
 
 B 2 S2  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 C2  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ó.

1.5.1 ábra – Valódi és hamis gyökök trigonometrikus egyenletek megoldásakor

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 48. oldal

Az (1.5.11)–(1.5.12) megoldások vizsgálata alapján arra juthatunk, hogy a


( ,  )  (1,1)
(1.5.13)
( ,  )  (1,1)
párok adódnak valódi megoldásnak. De miért keresünk Cα, Sα párokat? A gyakorlatban azért
nem használjuk egyszerűen csak Cα vagy Sα értékét, mivel az arccos és arcsin függvények az
1 és a –1 értékek közelében a legkisebb hibára is nagyon pontatlan eredményt szolgáltatnak.
(Gondoljunk bele: a függvény érintője ezekben a pontokban 90 fokos!) Ezért helyettük az
arctan(Sα/Cα) használata ajánlott, amely viszont csak –π/2 és π/2 között szolgáltat egyértelmű
megoldást. Mivel tudjuk Cα és Sα értékét, így meg tudjuk mondani, hogy melyik síknegyedben
helyezkedhet el a megoldás. Egy jó tanács: a MATLAB atan2 függvénye mindkét problémát
megoldja, amennyiben Cα és Sα rendelkezésre áll.

De térjünk vissza az eredeti


p y C1  px S1  d 2

egyenlethez. A megoldáshoz felhasználhatjuk az előző eredményeinket, ilyenkor tehát


A  py
B   px (1.5.14)
D  d2
helyettesítéssel élve 2db q1 értéket kapunk. Ezek után szorozzuk meg az (1.5.6) egyenletet C1-
gyel, valamint az (1.5.7) egyenletet S1-gyel, és adjuk össze őket:
def
C2 a2  d 4 S23  S1 p y  C1 px  e (1.5.15)
ahol e-re ugyancsak 2 értéket kapunk (mivel 2 db q1 volt). Átrendezve:
e  d 4 S 23
C2  (1.5.16)
a2
Rendezzük át az (1.5.8) egyenletet is:
d 4C23  pz
S2  (1.5.17)
a2
Emeljük négyzetre, majd adjuk össze az (1.5.16) és az (1.5.17) egyenleteket:
(2 pz d 4 )C23  (2ed 4 ) S 23  a22  e 2  pz2  d 42 (1.5.18)

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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 49. oldal

1.5.2 ábra – Megoldások

Végezzük el a számításokat az első 3 csuklóra, kiindulásként felhasználva azt a T0,6 mátrixot,


amelyet a direkt geometriai feladat során a q = [0 0 0 0 0 0] csuklóváltozókra számoltunk ki (a
robot alapállapota):
1 0 0 0,4318 
0 1 0 0,15005
T0, 6  (1.5.19)
0 0 1 0,4318 
 
0 0 0 1 

Ilyenkor az első három csuklóra a következő értékeket kapjuk:

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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 50. oldal

1.5.3 ábra – Az 1. és a 2. megoldás

1.2.4 ábra – A 3. és a 4. megoldás

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.

Természetesen valamilyen módszerrel a 4 megoldás közül választanunk kell. Ehhez többféle


szempontot is figyelembe kell vennünk: Amennyiben egy mozgás során tudjuk az előző
csuklóváltozó értékeket, akkor célszerű a következőket úgy megválasztani, hogy minél kisebb
elmozdulással legyenek megvalósíthatóak. A választásban sokszor segít, hogy a gyakorlatban

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 51. oldal

fizikailag nem kivitelezhető az összes megoldás a robot csuklóinak korlátozott


mozgástartománya miatt, vagy amiatt, hogy a robot beleütközne saját magába.

Az orientáció számítása

Miután kiszámítottuk az első 3 csuklókoordinátát, számítsuk ki


A 3,6 (q4 , q5 , q6 )  AT0,3 (q1 , q2 , q3 )  l m n (1.5.21)
értékét. Legyen
A 3, 6 (q4 , q5 , q6 )  Euler(4 ,5 ,6 ) 
C4C5C6  S 4 S6  C4C5 S6  S 4C6 C4 S 5 
  S 4C5C6  C4 S6  S 4C5 S6  C4C6 S 4 S5   (1.5.22)
  S 5 C6 S5 S 6 C5 
l x mx nx 
 l y my ny   AT0,3 (q1 , q2 , q3 )  l m n 
l z mz nz 
ahol csak a q4, q5, q6 ismeretlen, a többi adott, illetve már kiszámítottuk. Itt is törekedni fogunk
arra, hogy mind Ci, mind Si értékeket meghatározzunk, hogy a síknegyed egyértelműen
eldönthető legyen. Külön felhívjuk a figyelmet arra, hogy a fejezet további részében az l x ,, nz
jelölésekkel az A 3, 6 mátrix elemeit jelöljük, amelyek nem tévesztendők össze a teljes
transzformációra vonatkozó l, m, n vektorokból képzett A 0, 6 mátrix elemeivel (1.4.17)! Innen
kezdve a feladatot a következő esetekre kell szétválasztanunk:

a) b)

1.3.5 ábra – (a) Egybeeső t3 és t5 tengelyek, (b) általánosan elhelyezkedő t3 és t5 tengelyek

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 52. oldal

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 nx  ny  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) nz  C5  1 , vagyis q5  0 (az 1.5.5.a ábrán ábrázolt eset)
a2) nz  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) nz  C 5  1

Láttuk, hogy ilyenkor q5  0 , ebben az esetben ezt behelyettesítve a következőt kapjuk:

C4C6  S 4 S 6  C 4 S 6  S 4 C6 0 C46  S 46 0 l x mx nx 


S C  C S  S 4 S 6  C 4 C6 0   S 46 C46 0  l y my ny 
 4 6 4 6

 0 0 1  0 0 1 l z mz nz 


(1.5.23)
tehát
q4  q6  atan2 l y , l x 
(1.5.24)
ahol élhetünk pl. a q6  0 választással, vagy ha tudjuk q4 és q6 előző értékét, akkor:
(q4  q6 )  (q4  q6 ) régi
q4  q4 régi 
2 (1.5.25)
(q4  q6 )  (q4  q6 ) régi
q6  q6 régi 
2
a2) nz  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 mx nx 
 S C  C S S 4 S 6  C 4 C6 0    S 64 C6  4 0   l y my ny  (1.5.26)
 4 6 4 6

 0 0  1  0 0  1 l z mz nz 

q6  q4  atan2 mx , my  (1.5.27)

ahol ismét élhetünk pl. a q6  0 választással, vagy ha tudjuk q4 és q6 előző értékét, akkor:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 53. oldal

(q6  q4 )  (q6  q4 ) régi


q4  q4 régi 
2 (1.5.28)
(q6  q4 )  (q6  q4 ) régi
q6  q6 régi 
2

b) Általános elhelyezkedésű t3 és t5 tengelyek

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 nx  ny  0 , amiből
2 2

következik az is, hogy S 5  0 . Ha megvizsgáljuk az (1.5.22) egyenletet, észrevehetjük, hogy


ny és nx hányadosából (az osztás elvégezhető, mert nx  0 ) megkaphatjuk q4 értékét:

 0 
 ny   
q4  arctan       ( ,  ] (1.5.29)
 nx    
 
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 nx  S 4 ny  C42 S 5  S 42 S 5  S 5 C42  S 42  S 5 ,
(1.5.30)
C5  nz
ezért itt egyértelmű eredményt kapunk, hiszen ismerjük a síknegyedet is:
q5  atan2  C4 nx  S 4 ny , nz  (1.5.31)

hasonló módon (1.5.22) alapján:


 
 S 4l x  C4l y  S 6 C42  S 42  S 6
 
(1.5.32)
 S 4 mx  C4 my  C6 C42  S 42  C6

ahonnan
q6  atan2   S 4l x  C4l y ,  S 4 mx  C4 my  (1.5.33)
meghatározható.

Amennyiben a pozíció meghatározásánál a négy közül az első megoldást választottuk, amikor


q1 = q2 = q3 = 0°, akkor az orientáció megoldása során visszakapjuk a q4 = q5 = q6 = 0°
eredményt. Természetesen megtehetjük, hogy mind a négy variációra kiszámítjuk a q4, q5, q6
értékét, és mind a 6 csuklóváltozó alapján döntünk, hogy melyik megoldás a megfelelő.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 54. oldal

Összefoglalás

Láttuk tehát, hogy a DH paraméterek meghatározásával felépíthető a Puma-560 robot T0,6


mátrixa, amely értékét meghatározhatjuk a csuklóváltozók értékei alapján:
 q1 
A p 0, 6 
q      T0,6   0T, 6
0 1 
q6 

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ó.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 55. oldal

1.6 A robot differenciális mozgása

Az előzőekben láttuk, hogy a robot geometriájából következően a csuklókoordináták, valamint


a pozíció és orientáció között nemlineáris (transzcendens) függvénykapcsolat áll fenn. A
pályatervezés alapjául szolgáló inverz geometriai feladat, amikor a végberendezés pozíciója és
orientációja adott, és az ezt megvalósító csuklókoordinátákat keressük, bizonyos robotok
esetében megoldható zárt alakban, de általában véve nem. Az inverz geometriai feladatot ezért
általános esetben csak numerikus eljárások és iterációk segítségével lehet megoldani, amelyek
valósidejű alkalmazásokban nem előnyösek.

Célszerű ezért a nemlineáris függvénykapcsolatot lokálisan linearizálni, és deriváltakra


(sebességekre) áttérni. Ebben a megközelítésben tehát a robot differenciális mozgásának
vizsgálata a cél. Így – mint látni fogjuk – sokkal egyszerűbb alakban írható fel a
csuklókoordináták és a robot végberendezésének mozgása közötti kapcsolat. Viszont az
összefüggés konfigurációfüggő lesz, vagyis csak lokálisan alkalmazható.

1.6.1 Egy csukló hatása

Vizsgáljuk meg először egyetlen qi csuklókoordinátának a megfogó K m felerősítési helyének


v m sebességére és ω m szögsebességére kifejtett hatását (1.6.1 és 1.6.2 ábrák). Mivel jelenleg
csak qi változik, ezért a K i 1 keretet álló koordinátarendszernek tekintjük, az i,…,m
szegmensek együttesét pedig merev testnek. A következő képletekben a bal felső index a
keretet fogja jelölni, amelyben a koordinátákat éppen kifejezzük.
Az i-edik szegmenst megelőző csukló ( qi ) irányát jelölje s i 1 . Ha a kereteket a Denavit-
Hartenberg konvenciók szerint vettük fel, s i 1 egybeesik a z i 1 tengellyel. Vizsgáljuk meg,
hogy transzlációs, illetve rotációs csukló esetén a qi csuklóváltozó differenciális megváltozása
milyen parciális sebességet ( v i ,m ) és parciális szögsebességet ( ω i ,m ) eredményez a K m
m m

keret origójában. A parciális sebesség irányát jelölje m


d i 1 , a parciális szögsebesség irányát
pedig t i 1 . A parciális sebesség és szögsebesség vektorait a K m keretben a következő alakban
m

írjuk fel:
m
v i ,m  m d i 1q i (1.6.1)
m
ω i ,m  m t i 1q i

A K i1 és K m keretek közötti transzformációt jelölje

A p
Ti 1,m   T
1 
(1.6.2)
0

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 56. oldal

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

1.6.1 ábra – A robot differenciális mozgása: egy transzlációs csukló hatása

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 i1 és K m
keretek közötti eltolás miatt egy – a szögsebességre merőleges irányú – parciális sebességet is.

A megfelelő irányok K m -ben kifejezve:


m
t i 1  A 1 i 1 s i 1 (1.6.4)
m
d i 1  A 1  i 1
s i 1  p

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 57. oldal

zm
m
d i 1
Km

K i 1 p
m
t i 1

i 1
s i 1
z i 1

1.6.2 ábra – A robot differenciális mozgása: egy rotációs csukló hatása

1.6.2 A robot Jacobi-mátrixa

A megfogó K m felerősítési helyének tényleges v m sebessége és ω m szögsebessége az egyes


csuklók mozgásának hatására létrejövő parciális sebességek és szögsebességek összege:
m
m
v m   m di 1qi (1.6.5)
i 1

m
m
ω m   m t i 1qi
i 1

Az összefüggéseket mátrixos formában is felírhatjuk:


 m v m   m d0 m
d1 ... m
d m1 
m    m   q (1.6.6)
 ωm   t 0
m m
t1 ... t m1 
ahol a
 m d0 m
d1 ... m
d m1 
m
Jm   m m m  (1.6.7)
 t0 t1 ... t m1 

mátrixot a robot m-edik szegmenséhez tartozó, K m keretben kifejezett Jacobi-mátrixának


nevezzük. Egy 6-szabadságfokú robotkar esetében a Jacobi-mátrix egy 6-odrendű kvadratikus
mátrix.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 58. oldal

1.6.3 Direkt kinematikai feladat

A direkt kinematikai feladat tehát egy egyszerű lineáris összefüggés a csuklókoordináták


deriváltjai és a sebességek, ill. szögsebességek között:
 m vm  m
 m   J m q (1.6.8)
 ωm 
Megjegyezzük, hogy a Jacobi-mátrix elemei az aktuális csuklókoordinátáktól függenek (ez az
1.6.2–1.6.7 egyenletekből következik).
Felhasználói szempontból kényelmesebb az álló K 0 keretben felírni a kinematikai
mennyiségeket:
0
v m  A 0,m m v m (1.6.9)
0
ω m  A 0 ,m m ω m
vagy kissé más alakban:
 0 v m   A 0 ,m 0  m vm 
0    0 A 0,m   m ω m 
(1.6.10)
 ωm  
Ha ennek segítségével átalakítjuk a K m keretben felírt direkt kinematikai egyenletet:

 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 

1.6.4 Inverz kinematikai feladat

A kapott összefüggés lehetőséget ad a nemlineáris


 l m n p
T0,m (q)   
0 0 0 1  (1.6.14)
geometriai egyenlet lokális linearizálására (azért lokális, mert a Jacobi-mátrix elemeinek
értéke függ a csuklókoordinátáktól). Tehát ha az inverz geometriai feladat nem oldható meg
zárt alakban, akkor a sebességekre áttérve a kinematikai összefüggés lehetőséget ad q

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 59. oldal

meghatározására, és ebből integrálással q számítására. Ilyenkor a pálya menti sebességet és


szögsebességet kell előírni, amelyből q kiszámítható:

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)

1.6.3 ábra – (a) Szinguláris pont, (b) nem szinguláris pont

Az 1.6.3.a ábrán a robot a q  0 0 0 0 0 0 konfigurációban van, Jacobi-mátrixa pedig


a következő:
 0,15005 0,4318 0,4318 0 0 0
 0,4318 0 0 0 0 0

 0  0,4318 0 0 0 0
0
J 6 (q)   
 0 0 0 0 0 0
 0 1 1 0 1 0
 
 1 0 0 1 0 1

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 60. oldal

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.

Mint tudjuk, a mátrixok invertálása számításigényes művelet. Speciális felépítésű mátrixoknál


azonban lehetőség van egyszerűsítésekre. Így például abban az esetben, ha J m alakja

A 0 
Jm    (1.6.16)
 B C
vagyis olyan A, B, C és 0 blokkokból áll, amelyek 33 típusúak, valamint A és C invertálható,
akkor

1 A 1 0 
J  1 1  (1.6.17)
 C BA C1 
m

összefüggés érvényes, így a 66 típusú mátrix invertálása helyett elegendő két 33 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ú.

1.6.5 Statikus erők és nyomatékok transzformálása

A robot Jacobi-mátrixának egy további hasznos tulajdonságával is megismerkedünk.


Kérdésünk az, hogy ha egy külső erő, illetve nyomaték hat a robot utolsó szegmensére, az
milyen csuklónyomatékokat eredményez. Vagy fordítva megfogalmazva: adott
csuklónyomatékok milyen erőket és nyomatékokat eredményeznek a robot utolsó
szegmensében.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 61. oldal

A sebességekhez és gyorsulásokhoz hasonlóan a külső erőket és nyomatékokat is összevonva,


hatelemű vektorként ábrázoljuk:
fm 
τ 
 m
ahol f m tartalmazza az m-edik szegmensre ható x, y, z irányú erőkomponenseket, τ m pedig az
x, y, z tengelyek körüli nyomatékkomponenseket.

A továbbiakban minden koordinátavektort a rögzített K 0 keret bázisában fejezünk ki, és a bal


felső indexet elhagyjuk.

Jelölje τ  ( 1 ,  ,  m )T az ún. általánosított csuklónyomatékok m-elemű vektorát. Ennek elemei


rotációs csuklók esetén nyomatékokat, transzlációs csuklók esetén erőket jelentenek. 2 A K m
keretben ható statikus f m erővel és τ m nyomatékkal ekvivalens általánosított
csuklónyomatékok kifejezéséhez a virtuális munka elvét használjuk fel. Ennek során olyan
K m -ben ható erőt és nyomatékot keresünk, hogy ekvivalens differenciális virtuális
elmozdulások esetén a virtuális munkák egyenlők legyenek a csuklókban ható általánosított
nyomatékok által végzett virtuális munkákkal.
W  τ T q (1.6.18)
virtuális munka a csuklóknál,
T
f   v 
W   m    m  t (1.6.19)
 τ m  ω m 
pedig a virtuális munka a K m keretben. Ezekből következik, hogy
T
f   v 
τ q   m    m  t
T
(1.6.20)
τ m  ω m 
Helyettesítsük be a
 vm  q
ω   J m t (1.6.21)
 m
direkt kinematikai összefüggést, ezzel
T
f 
τ q   m  J m q
T
(1.6.22)
τ m 
ahonnan

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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 62. oldal

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.

1.7 A robot dinamikája


A robot dinamika a robot tengelyeire ható nyomatékok (illetve transzlációs csuklók esetében
erők) és az általuk okozott gyorsulások közötti összefüggésekkel foglalkozik. A robotkart
általában egy merev testekből álló rendszerként modellezzük, tehát a robot dinamika nem más,
mint a merev testek dinamikai összefüggéseinek alkalmazása robotokra. A robot dinamika
feladata kétféleképpen fogalmazható meg:

 Adottak a nyomatékok, határozzuk meg a gyorsulásokat (direkt dinamikai feladat).


 Adottak a gyorsulások, határozzuk meg a nyomatékokat (inverz dinamikai feladat)

A direkt dinamika leginkább a robot mozgásának szimulációjában alkalmazható. A


robotirányítás területén az inverz dinamikai megközelítés használatos.

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.

A csuklóerők és gyorsulások közötti összefüggést a robot mozgásegyenlete adja meg. Mielőtt


ezt felírnánk, emlékeztetőül lássunk két, a fizikából jól ismert összefüggést:
F  ma (1.7.1)
M  
Ez a két egyenlet Newton II. törvénye egy tömegpont mozgására, illetve egy merev test
forgására felírva. Láthatjuk, hogy a gyorsulás (szöggyorsulás) és az erő (forgatónyomaték)
között a vizsgált tömegpont, ill. merev test tehetetlenségét jellemző mennyiség (tömeg, ill.
tehetetlenségi nyomaték) teremt kapcsolatot.

A robot mozgásegyenlete a fentiekhez hasonló felépítésű, de várhatóan bonyolultabb


mátrixegyenlet. Levezetés nélkül megadjuk a mozgásegyenlet irányítási szempontból kedvező
alakját:
  h(q, q )  τ
H (q)q (1.7.2)

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 63. oldal

Az ebben szereplő mátrixok és vektorok mind a csuklókoordináták terében értelmezettek. A τ


csuklónyomaték-vektor a következő komponensekből tevődik össze:

 H (q)q : inerciális rész. Az a nyomaték-komponens, amely a csuklók tényleges


gyorsulását okozza. H (q) egy pozitív definit, szimmetrikus mátrix, az ún.
inerciamátrix, amely a robot tehetetlenségét jellemzi. A jelölésből látszik, hogy
elemeinek értéke függ a csuklókoordinátáktól. Ezt legegyszerűbben úgy képzelhetjük
el, ha arra gondolunk, hogy különböző csuklóállások esetén a robot más-más „alakú”,
ezért más-más tehetetlenségi nyomatékot képvisel például egy adott tengely körüli
forgásra nézve.
 h(q, q ) : zavaró hatások. Az a nyomaték-komponens, amely ahhoz kell, hogy a csuklók
gyorsulásértékei ne változzanak. Függ a csuklókoordinátáktól és a csuklósebességektől.
Az egyik legkézenfekvőbb ilyen hatás a gravitáció. Ha a robot mozdulatlanul áll, a
csuklónyomatékok nem lehetnek nullák, mivel a robotkart az egyes szegmensek súlya
ellenében tartani kell. Ha a csuklók egyenletes sebességgel forognak (tehát a
gyorsulásuk ebben az esetben is nulla), a gravitáció hatásán túlmenően a forgó
koordinátarendszerekben fellépő centrifugális és Coriolis-erőket is ellensúlyozni kell.

A fenti mozgásegyenlet levezethető pl. a Lagrange-féle másodfajú egyenletekből, amelyek a


robot kinetikus és potenciális energiáján alapulnak. A levezetéstől itt eltekintünk3, a
végeredmény skaláris formában felírva:
m m m
 i   Dij q j   Dijk q j q k Di (1.7.3)
j 1 j 1 k 1

Az egyes Dij, Dijk, Di együtthatók értékei mind függnek a csuklókoordináták pillanatnyi


értékétől. Fizikai jelentésük a következő:

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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 64. oldal

Di: Gravitációs hatás. A csuklókoordináták deriváltjaitól nem, csak a csuklókoordináták


pillanatnyi értékétől függő zavaró nyomatékkomponens.

A fejlettebb robotirányítási algoritmusok megkövetelik a robot dinamikus modelljének


ismeretét. Ehhez egyrészt szükség van a robot inerciális paramétereinek (pl. a szegmensek
tehetetlenségi mátrixainak) ismeretére, amelyeket adott esetben identifikációval kell
meghatározni a robot dinamikus viselkedésének mérésével. Továbbá az algoritmus futása
közben folyamatosan szükség van a mozgásegyenlet együtthatóinak számítására, amire
rekurzív és direkt módszerek is léteznek.

1.8 Robotirányítási módszerek


Robotalkalmazásoknál a megoldandó feladat legtöbb esetben két részre osztható. A robot
először megfog egy tárgyat, és szabadon mozog a feladat célpontja felé, majd a célpontot elérve
kontaktusba kerül a környezetével (pl. helyére tesz egy alkatrészt, vagy behajt egy csavart). Az
első részfeladatnál, mivel nincs kontaktus a környezettel, elég csak a végberendezés pozícióját
irányítanunk (szabad mozgás irányítása). Mint minden szabályozásnak, a pozícióirányítási
algoritmusoknak is van hibája, vagyis a robot végberendezésének tényleges pályája valamilyen
mértékben mindig eltér az előírt pályától. A szabad mozgásnál ez nem okoz gondot (ha a hiba
ésszerű határokon belül marad), azonban ha a robot kontaktusba kerül a környezetével, már
egészen kicsi pozícióhibák hatására is megengedhetetlenül nagy erők és nyomatékok léphetnek
fel a kontaktuspontban. A fellépő erők a robot végberendezése, vagy a kontaktusfelület
megrongálódását is okozhatják. Ezért ebben az esetben pozícióirányítás helyett rendszerint
hibrid pozíció- és erőirányítást célszerű alkalmazni.

Mielőtt rátérnénk a különböző irányítási módszerek bemutatására, tekintsük át, milyen


formában írhatjuk elő a robot pályáját, vagyis a szabályozás alapjelét. A pályát rendszerint a
környezethez rögzített derékszögű koordinátarendszerben fogalmazzuk meg. Ezért a megadott
pályát általában át kell transzformálnunk a csuklóváltozók terébe, és az alapjelet, ill. az attól
való eltérést a szabályozás számára csuklókoordinátákban kell kifejeznünk.

A robot végberendezésének pályáját legegyszerűbben sarokpontok megadásával jelölhetjük ki,


általában Descartes-koordinátákban. Pont-pont irányítás esetén az inverz geometriai feladat
megoldásával először csuklókoordinátákba transzformáljuk a sarokpontokat, majd minden
egyes tengely pozíciószabályozója alapjelként megkapja a soron következő pont
csuklókoordinátáját (pontonként konstans alapjel). Ez a megközelítés igen egyszerű, de
hátránya, hogy a végberendezés útvonala a sarokpontok között az egyes csuklók szabályozási
köreinek tranzienseitől függ. Ha a robot közelében akadályok vannak, nem célszerű ilyen
irányítást alkalmazni.

A robot mozgását a sarokpontok között is koordinálni tudjuk, ha folytonos pályairányítást


alkalmazunk. Ebben az esetben a sarokpontok között közbülső pontokat jelölünk ki, ami
leggyakrabban lineáris interpolációt jelent a Descartes- vagy csuklókoordinátákban. Ha az
interpolációt Descartes-koordinátákban végezzük, egyenes szakaszokat kapunk a térben,
viszont adott esetben minden egyes közbülső pontra meg kell oldani az inverz geometriai
feladatot. Ha csuklókoordinátákban interpolálunk, akkor rengeteg számítást „megspórolunk”,
de általában nem kapunk térbeli egyenest. Ugyanis a végberendezés pozíciója a rotációs

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 65. oldal

csuklók miatt nemlineárisan függ a csuklóváltozóktól, tehát egy csuklókoordinátákban lineáris


pálya egyenes helyett hullámos görbét eredményez a térben. Ezért egy teljesen koordinált,
precíz mozgáshoz elengedhetetlen, hogy a pálya minden részletét Descartes-koordinátákban
határozzuk meg.

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

 pozícióját és orientációját: TBE (t ) (pozícióalgoritmus),


 sebességét és szögsebességét: v E (t ) , ω E (t ) (sebességalgoritmus).
B B

Pozícióalgoritmus esetén a csuklókoordinátákat (q) az inverz geometriai feladat megoldásával


határozhatjuk meg. Sebességalgoritmus esetén a csuklókoordináták deriváltjait ( q ) az inverz
kinematikai feladat megoldásával kapjuk:
v 
q  J E1  E  (1.8.1)
ω E 
ahol J E a robot végberendezéshez tartozó Jacobi-mátrixa. Vegyük észre, hogy
sebességalgoritmus esetén ismernünk kell az aktuális csuklókoordináta-értékeket is (mivel J E
függ a csuklóváltozóktól). A számításokat minden mintavételi időpontban el kell végeznünk,
és az így meghatározott csuklókoordinátákat (vagy azok deriváltjait) kell alapjelként
megadnunk a szabályozási algoritmus számára.

A következőkben két példát látunk a robot szabad mozgásának irányítására, végül


megismerkedünk a hibrid pozíció- és erőirányítás elvével.

1.8.1 Decentralizált szervóhajtások

A legtöbb mai ipari robotvezérlő a decentralizált szervóhajtások elvén működik. A robot


dinamikus modelljének tárgyalásánál láttuk, hogy a robot egy bonyolult nemlineáris rendszer,
ahol az egyes szegmensek különböző csatolt hatások révén hatással vannak a többi szegmens
mozgására. Ezzel szemben a tengelyek meghajtását végző beavatkozó szervek (pl. egyenáramú
motorok) lineáris modellel jól leírhatók. Ezért kézenfekvő az a megoldás, hogy egymástól
függetlenül szabályozzuk az egyes csuklókat (mint lineáris tagokat), a többi tag csatoló hatását
pedig tekintsük zavaró jelnek (1.8.1.ábra).
q ai + ii qi
Szabályozó Motor

1.8.1 ábra – A decentralizált szervóhajtások elve

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 66. oldal

A decentralizált módszer előnye, hogy a szabályozás megvalósítása lényegesen kevesebb


számítást igényel, mint más módszerek esetében, ezért kisebb számítási teljesítményű
processzorok is alkalmasak a szabályozó algoritmus (pl. PID-szabályozó) megvalósítására. Ne
felejtsük azonban el, hogy mivel a szabályozás csuklókoordinátákban történik (pl.
tengelypozícióra vagy sebességre szabályozunk), szükség van egy központi processzorra,
amely az inverz geometriai vagy kinematikai feladat megoldásával pozíció- vagy sebesség-
alapjelet biztosít az egyes csuklóprocesszorok számára.

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.

1.8.2 Kiszámított nyomaték (nemlineáris szétcsatolás) módszere

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ő:

τ a  H(q)u  h(q, q ) (1.8.3)


akkor u és q közötti kapcsolat a következőre egyszerűsödik:
  h(q, q )  H(q)u  h(q, q )
H(q)q
(1.8.4)
  u
q
Ehhez felhasználtuk H (q) -nak azt a tulajdonságát, hogy pozitív definit, és ezért invertálható.
Tehát ha ismerjük a robot dinamikus modelljét, akkor a fenti u beavatkozó jel bevezetésével a
rendszert egymástól független kettős integrátorokra csatoltuk szét. Egy-egy integrátor
szabályozására a következő PID-algoritmust vezetjük be:
t
u i  qai  k Pi (q ai  qi )  k Ii  (q ai  qi )dt  k Di (q ai  q i ) (1.8.5)
0

Ez a módszer alapjelként igényli a csuklókoordináták időfüggvényeit ( qai ), valamint azok első


és második deriváltját is ( q ai , qai ).

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 67. oldal

A qi  u i feltételt behelyettesítve, az előző egyenlet a következő alakot ölti:


t
(qai  qi )  k Di (q ai  q i )  k Pi (q ai  qi )  k Ii  (q ai  qi )dt  0 (1.8.6)
0

A szabályozási hibára vezessük be a qdi : qai  qi jelölést, és deriváljuk idő szerint az


egyenletet:
qdi  k Di qdi  k Pi q di  k Ii q di  0 (1.8.7)
Tehát a szabályozási hiba időfüggvénye kielégíti a fenti harmadrendű differenciálegyenletet.
Ha k Pi , k Di , k Ii szabályozó-paramétereket kedvezően választjuk meg, exponenciálisan
lecsengő szabályozási hibát kapunk a differenciálegyenlet megoldásaként. (A paraméterek
meghatározásának részleteivel itt nem foglalkozunk.)

Pályatervezés Érzékelők

qa q a  a
q q q

Decentralizált PID-szabályozók
t
ui  qai  k Pi (qai  qi )  k Ii  (qai  qi )dt  k Di (q ai  qi )
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

1.8.2 ábra – A kiszámított nyomaték módszere szerinti szabályozó vázlata

A robot dinamikus modelljének paramétereit egy központi szabályozó számítja, ez a bemenetén


megkapja a független PID-szabályozók által előállított ui „beavatkozó jeleket”, kimenetén
pedig szolgáltatja a kiszámított nyomatékokat (alapjeleket) a tengelyeket meghajtó
áramszabályozott DC-motorok számára (1.8.2 ábra). A megvalósuló nyomatékok mozgatják a

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 68. oldal

robotot, vagyis a robot „megoldja a direkt dinamikai feladatot”, és az elmozdulásokat érzékelők


segítségével megmérve záródik a visszacsatolás köre.

A szabályozás pontatlanságát a rendelkezésre álló robotmodell pontatlansága határozza meg


(például a szegmensek tehetetlenségi paraméterei pontatlanul ismertek, pontatlanul modellezett
súrlódások vannak a rendszerben, a teher eltér a névlegestől stb.) A központi szabályozó által
számított (a valóságot csupán közelítő) dinamikus modell paramétereit jelölje Hˆ (q) és hˆ (q,q )
, ekkor a rendszer működését leíró egyenlet:
H (q)q ˆ (q)u  hˆ (q,q )
  h(q,q )  H (1.8.8)
amiből átrendezéssel következik, hogy

ˆ (q)u  hˆ (q,q )  h(q,q )
  H(q) 1 H
q  (1.8.9)
vagyis a ténylegesen realizálódó q tengelygyorsulások eltérnek u-tól. Emiatt ilyen irányítás
alkalmazásakor szimulációval ellenőrizni kell, hogy a választott PID paraméterek mellett a
szabályozás mennyire viseli el a robotparaméterek pontatlanságát.

A módszer realizálásához szükség van csuklónként egy kisebb teljesítményű processzorra a


független PID-algoritmusok párhuzamos futtatásához, valamint egy központi szabályozó
processzorra a dinamikus modell számításához. Mivel ez a módszer is a csuklókoordináták
terében van megfogalmazva, ezért szükség van egy további processzorra, amely az alapjelek
Descartes-koordinátákból csuklókoordinátákba való transzformációját végzi.

1.8.3 Hibrid pozíció- és erőirányítás

A legtöbb robotikai alkalmazásnál elengedhetetlen a környezettel való kontaktus megfelelő


kezelése (szerelési feladatok, felület-megmunkálás stb.) A környezettel való érintkezés ún.
kinematikai korlátozásokat támaszt a robot számára, azaz korlátozza a robot szabad
mozgását. Az ilyen feladatok sikeres végrehajtásához a végberendezés pozíciója és orientációja
mellett a rá ható erőket és nyomatékokat is szabályozni kell.

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

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 69. oldal

környezet mechanikai merevsége, illetve minél nagyobb a megkövetelt pontosság, annál


könnyebben fordulhat elő az előbb vázolt szituáció.

Erőirányításnál alapvető fontosságú, hogy mérni tudjuk a kontaktuspontban ható erőket és


nyomatékokat, hiszen e nélkül zárt szabályozás nem képzelhető el. Ezt egyrészt megtehetjük
pl. a tengelyeket hajtó DC-motorok áramának mérésével, majd az ezekből visszaszámolt
nyomatékok kontaktuspontba transzformálásával. Ez igen egyszerű és költséghatékony
megoldás, mivel nem igényel külön szenzort, viszont az egyébként is jelenlévő csatolt
erőhatások miatt inkább csak a külső erő becslésére alkalmas. Ehelyett célszerű a robotcsukló
utolsó szegmense és a szerszám közé szerelhető hatkomponensű erő- és nyomatékérzékelő
(1.8.3 ábra) használata, amely gyakorlatilag közvetlen információt szolgáltat a szerszám és a
környezet között fellépő erőkről és nyomatékokról.

1.8.3 ábra – Hatkomponensű erő- és nyomatékérzékelő (ATI)

A hibrid pozíció- és erőirányítás lényege, hogy azokban az irányokban, amelyekben a mozgás


korlátozva van, az erőket (ill. nyomatékokat) szabályozza, a korlátozás nélküli irányokban
pedig a pozíciót (ill. orientációt). A feladat áttekinthető megfogalmazásához egy speciális
derékszögű koordinátarendszert kell definiálnunk, ez az ún. engedékenységi keret (Kc,
compliance frame). Ezt úgy választjuk meg, hogy a szerelési elrendezésből fakadó ún.
természetes korlátozások Kc tengelyei irányába essenek. Általában mindenféle szóba jöhető
feladathoz található ilyen keret. A Kc keretben összesen hat irányt definiálunk, a három
koordinátatengely mentén való elmozdulások és a tengelyek körüli elfordulások irányait. Így a
természetes korlátozások a szerszám mozgásának hat szabadságfokát két ortogonális halmazra
bontják, és a két halmazba tartozó szabadságfokokat eltérő kritériumok szerint kell irányítani.
A természetes korlátozások irányában erőirányítást, a többi irányban pedig pozícióirányítást
alkalmazunk. A nem korlátozott irányokban ún. mesterséges korlátozásokat vezetünk be, más
szóval rendelkezünk a pozíciókról és erőkről az egyes tengelyek mentén. A pozíció és az
orientáció, illetve az erő és nyomaték (hatdimenziós) vektorait a Kc keretben értelmezzük.

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).

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 70. oldal

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

1.8.4 ábra – Engedékenységi keret, természetes és mesterséges korlátozások

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ő

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 71. oldal

részén pedig az erőszabályozás köre záródik ( Fa jelöli az erő-alapjelet). x E jelöli a


kontaktuspontban létrejövő rugalmas alakváltozást, amely F  K E (x  x E ) kontaktuserőt
eredményez. Az ábra jobb alsó részében megfigyelhető, hogy a kontaktuserő a Jacobi-mátrixon
keresztül közvetlenül is hatást gyakorol a tengelynyomatékokra.

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 +
IISS JJTT K
KFF

xa –
SS JJ11 K
Kpp
+ + + – xE
+
+
Robot
Robot
x a – x
– SS JJ11 K
Kvv
+

JJTT K
KEE

F
Érzékelő
Érzékelő

1.8.5 ábra – A hibrid pozíció- és erőirányítás elvi vázlata

A fenti példánknál maradva, a szelekciós mátrix a következőképpen alakul:

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

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 72. oldal

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.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 73. oldal

FÜGGELÉK

F.1 Robotkar mozgásegyenletének alakja


Egy merev testekből álló rendszer (pl. robotkar) mozgásegyenletének irányítási szempontból
kedvező alakja a következő:
  h(q, q )  τ
H (q)q (F.1.1)
A τ csuklónyomaték-vektor a következő komponensekből tevődik össze:
 H (q)q : inerciális rész. Az a nyomaték-komponens, amely a csuklók tényleges
gyorsulását okozza. H (q) egy pozitív definit, szimmetrikus mátrix, az ún.
inerciamátrix, amely a robot tehetetlenségét jellemzi.
 h(q, q ) : zavaró hatások. Az a nyomaték-komponens, amely ahhoz kell, hogy a csuklók
gyorsulásértékei ne változzanak. Két részből tevődik össze:
o Coriolis-hatás: csuklósebességektől függő zavaró hatás (centrifugális és
Coriolis-erők)
o Gravitációs hatás: csak a csuklókoordinátáktól függő zavaró hatás
A fenti mozgásegyenlet levezethető pl. a Lagrange-féle másodfajú egyenletekből (ld. később),
amelyek a robot kinetikus és potenciális energiáján alapulnak. A végeredmény skaláris
formában felírva:
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

Vezessük be a következő mátrix- és vektorjelöléseket, illetve elnevezéseket:


 D11 (q)  D1m (q) 
Inerciamátrix: H (q)       (F.1.3)
 Dm1 (q)  Dmm (q)

Coriolis-mátrix:
m m

 C11 (q, q)  C1m (q, q)   k
 
1
D11k (q) q k   D1mk (q) qk 
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 

Coriolis-hatás vektora: h c (q, q )  C(q, q )q (F.1.5)

 D1 (q) 
Gravitációs hatás vektora: h g (q)     (F.1.6)
 Dm (q)

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 74. oldal

Ezek alapján az (F.1.1) mozgásegyenlet felépítése világosabban látszik:


τ  H (q)q
  C(q, q )q  h g (q) (F.1.7)
 
h ( q, q )

c

h ( q, q )

Az egyes Dij, Dijk, Di együtthatók értékei mind függnek a csuklókoordináták pillanatnyi


értékétől. Fizikai jelentésük a következő:
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.)
Di: Gravitációs hatás. A csuklókoordináták deriváltjaitól nem, csak a csuklókoordináták
pillanatnyi értékétől függő zavaró nyomatékkomponens.

F.1.1 Lagrange-féle másodfajú egyenletek

A robot mozgásegyenletét legegyszerűbben a Lagrange-féle mechanikai formalizmus


segítségével lehet levezetni. Ennek előnye a hagyományos Newton-Euler-féle mechanikához
képest, hogy összefüggései megfogalmazásához nem igényli az inerciarendszer fogalmát,
ugyanakkor természetesen ugyanazokra az összefüggésekre vezet. Segítségével a
mozgásegyenletek nem csak derékszögű koordináta-rendszerben írhatók fel, hanem pl. robotok
esetén csuklókoordinátákban is.

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

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 75. oldal

Lx(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 )   Lx(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

csuklókoordináta-rendszerben mozgó „részecskeként” is tekinthetjük, és az itt felírt összefüggések ebben az


esetben is változatlanul érvényesek.
5
A funkcionálanalízis a matematikának azon területe, amely a függvényeken értelmezett függvényekkel
foglalkozik.
6
A funkcionálanalízisben a hagyományos analízishez hasonlóan értelmezettek a funkcionálok szélsőértékei,
illetve a függvény szerinti derivált is. A függvények terében végzett optimalizációval a variációszámítás témaköre
foglalkozik.
7
Pontosabban fogalmazva nem szélsőértéke, hanem stacionárius pontja (ami lehet nyeregpont is). Innen ered a
stacionárius hatás elve elnevezés is.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 76. oldal

Ez az összefüggés egy konzervatív erőtérben szabadon mozgó mechanikai rendszer mozgását


adja meg. Abban az esetben, ha külső beavatkozásunk is van, az egyenlet a következő alakot
ölti:
d L L
  , (F.1.13)
dt x x
ahol  egy általánosított beavatkozó nyomatékot jelöl8. A fenti egyenlet akkor is igaz, ha x
többdimenziós, például egy robotkar csuklókoordinátákban kifejezett q konfigurációját jelenti:
d L(q, q ) L(q, q )
 τ (F.1.14)
dt q q
Egy m-szabadságfokú robot esetében ez tulajdonképpen m darab skaláregyenletet jelent:
d L(q, q ) L(q, q )
  i , i  1,.., m (F.1.15)
dt qi qi
Ezek azok a Lagrange-féle másodfajú egyenletek, amelyek a robot mozgásegyenletének
alapjául szolgálnak.

F.1.2 Példa: Kétszabadságfokú robotkar

Adott egy függőleges síkban mozgó, kétszabadságfokú robotkar, melynek paramétereit az


F.1.2.1. ábrán láthatjuk.

F.1.2 ábra – Kétszabadságfokú robotkar paraméterei

A robotkar két szegmense A1 és A2, amelyek egy-egy rotációs csuklóval csatlakoznak a


talapzathoz, illetve egymáshoz. A robot konfigurációját egy kételemű csuklókoordináta-vektor
reprezentálja: q  [1 ,  2 ] . Mindkét csuklónál egy-egy nyomatékkal tudunk beavatkozni, ezek
T

vektora az általánosított nyomatékvektor: τ  [ 1 , 2 ] . Jelölje d1 az első szegmens hosszát,  1


T

8
Ne feledjük, hogy x (t ) , x(t ) és  (t ) is időfüggvények.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 77. oldal

és  2 a szegmensek tömegközéppontjának távolságát a szegmens előtti csuklótengelytől, m1 és


m2 a szegmensek tömegét, illetve I1 és I2 a tehetetlenségi nyomatékukat. Jelölje p  [ p1 , p2 ] a
T

második szegmens tömegközéppontjának pozícióját a bázis-koordinátarendszerben felírva.


Célunk az, hogy a Lagrange-féle másodfajú egyenletekből kiindulva felírjuk a robot
mozgásegyenletét mind skaláris, mind mátrixos formában.

A kinetikus és potenciális energiák felírása

Az első szegmens potenciális energiája a következő:


P1 (q)  m1 g  1 sin 1 , (F.1.16)
ahol g a gravitációs gyorsulást jelöli. A kinetikus energia a következő formában írható fel:

 
K1 (q )  12 m1  11  12 I11 ,
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)

A második szegmens kinetikus energiája:


K 2 (q, q )  12 m2p T p  12 I 2 1  2 ,
2
 (F.1.19)

ahol p p a második szegmens tömegközéppontjának sebességnégyzete. Vegyük észre, hogy a


T

K2 kinetikus energia nem csak a sebességektől függ, hanem az aktuális csuklókonfigurációtól


is. Ezt mindjárt jobban láthatjuk, ha felírjuk a p pozíciót és deriváltját:
p1  d1 cos1   2 cos1   2 
(F.1.20)
p2  d1 sin 1   2 sin 1   2 


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

 d1 cos1   2 cos1   2   1   2 cos1   2   2


A pozíció deriváltja a következő mátrixos formában is kifejezhető:
 d sin 1   2 sin 1   2    2 sin 1   2  1 
p   1       P2  q (F.1.22)

d1 cos   
1 2 
cos  1 

 2   cos 
21 
   
2   2 
 
P2 q

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 78. oldal

Az (F.1.19)-ben szereplő p p szorzat ennek segítségével így írható fel:


T

p T p  q T P2T P2 q . (F.1.23)

Vezessük be az Si  sin  i , Ci  cos  i , Sij  sin  i   j  és Cij  cos i   j  jelöléseket,


használjuk ki az S i2  Ci2  1 , az Sij  S i C j  Ci S j , valamint a Cij  Ci C j  Si S j
T
trigonometrikus azonosságokat, és fejezzük ki a P2 P2 mátrix elemeit a következőképpen:

 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

A második szegmens kinetikus energiáját írjuk fel ezek segítségével:

K 2 (q, q )  12 m2q T P2T P2 q  12 I 2 1  2 ,


2
  (F.1.29)

és alakítsuk ás az I 2 1  2  kifejezést is mátrixos alakra:


2

I 2  1 

I 2 1  2 
2
 I 212  2 I 212  I 222  1 2

 
   II 2
     q I 2q ,

T
(F.1.30)
q T 
2 I
2  2

I2 q

így (F.1.29) a következő alakot ölti:


K 2 (q, q )  12 m2q T P2T P2 q  12 q T I 2q , (F.1.31)

Hasonló mátrixos alakra hozhatjuk az első szegmens kinetikus energiáját is:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 79. oldal

K1 (q )  12 m1 1212  12 I11  12 m1q T P1T P1 q  12 q T I1q ,


2
(F.1.32)
ahol
 0   I 0
P1   1  és I1   1  (F.1.33)
 0 0  0 0
A robotkar teljes kinetikus energiája a két szegmens kinetikus energiáinak összege:
K (q, q )  K1 (q )  K 2 (q, q )  12 m1q T P1T P1 q  12 q T I1q  12 m2q T P2T P2 q  12 q T I 2q 

 12 q T m1P1T P1  I1  m2 P2T P2  I 2 q 
  
 (F.1.34)
H (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ó:

1    D11 ( 2 ) D12 ( 2 ) 1 


K (q, q )  12 q T H(q) q   1  2    
D22  2 
2  D12 ( 2 ) (F.1.37)
 12 D11( 2 ) 12  D12( 2 ) 12  12 D2222

Írjuk fel a teljes potenciális energiát is:


P(q)  P1 (q)  P2 (q)  m1 g 1 sin 1  m2 g d1 sin 1   2 sin 1   2  (F.1.38)

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 80. oldal

A Lagrange-féle másodfajú egyenletek alkalmazása

Amint azt korábban láttuk, a Lagrange-függvény a kinetikus és potenciális energiák


különbsége:
L(q, q )  K (q, q )  P(q) (F.1.39)

Ez alapján a Lagrange-féle másodfajú egyenletek a következők lesznek:


d L(q, q ) L(q, q ) d K (q, q ) K (q, q ) P(q)
     τ, (F.1.40)
dt q q dt q q q
azaz
d K (q, q ) K (q, q ) P(q)
   1
dt 1 1 1
(F.1.41)
d K (q, q ) K (q, q ) P(q)
  2
dt 2  2  2
Számítsuk ki a deriváltakat:
d K (q, q ) d
dt 1

dt

D11( 2 ) 1  D12 ( 2 ) 2  
 D11( 2 ) 1  D 11( 2 ) 1  D12 ( 2 ) 2  D 12 ( 2 ) 2  (F.1.42)
 D11( 2 ) 1  D12 ( 2 ) 2  2m2 d1 2 sin  2  21  m2 d1 2 sin  2  22
K (q, q )
0 (F.1.43)
1
P(q)
 m1 g 1 cos1  m2 g d1 cos1  m2 g  2 cos1   2  
1 (F.1.44)
 m1 1  m2 d1 g cos1  m2 g  2 cos1   2 
d K (q, q ) d
dt 2

dt

D12( 2 ) 1  D22 2  
 D12( 2 ) 1  D12( 2 ) 1  D222  (F.1.45)
 D12( 2 ) 1  D222  m2 d1 2 sin  2  12
K (q, q ) 1 D11( 2 )  2 D12 ( 2 )  
 1  1 2 
 2 2  2  2 (F.1.46)
 m2 d1 2 sin  2  12  m2 d1 2 sin  2  12
P(q)
 m2 g  2 cos1   2  (F.1.47)
 2

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 81. oldal

Helyettesítsünk be (F.1.41)-be:

d K (q, q ) K (q, q ) P(q)


1    
dt 1 1 1

 D11( 2 ) 1  D12 ( 2 ) 2  2m2 d1 2 sin  2  21  m2 d1 2 sin  2  22 
m1 1  m2 d1 g cos1  m2 g  2 cos1   2   (F.1.48)

 D11( 2 ) 1  D12 ( 2 ) 2  m2 d1 2 sin  2  21  m2 d1 2 sin  2 1  2 2 
     
 
C11 ( 2 ,2 ) C12 ( 2 ,2 )

 m1 1  m2 d1 g cos1  m2 g  2 cos1   2 



D1 (1 , 2 )

d K (q, q ) K (q, q ) P(q)


2    
dt 2  2  2

 D12 ( 2 ) 1  D222  m2 d1 2 sin  2  12 


(F.1.49)
 m2 d1 2 sin  2  12  m2 d1 2 sin  2  12  m2 g  2 cos1   2  

 D12 ( 2 ) 1  D22  m2 d1 2 sin  2  11  m2 g  2 cos1   2 


   
C21 ( 2 ,1 ) D2 (1 , 2 )

Vezessük be a következő rövidített jelöléseket:

D1 1 , 2   m1 1  m2 d1 g cos 1  m2 g  2 cos1   2  (F.1.50)


D2 1 , 2   m2 g  2 cos1   2  (F.1.51)
r ( 2 )   m2 d1 2 sin  2
(F.1.52)
C11 ( 2 ,2 )  m2 d1 2 sin  2  2  r ( 2 )2 (F.1.53)

 
C12 ( 2 ,1 ,2 )  m2 d1 2 sin  2 1  2  r ( 2 ) 1  2   (F.1.54)

C21 ( 2 ,1 )  m2 d1 2 sin  2  1  r ( 2 ) 1 (F.1.55)


C22  0 (F.1.56)

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 82. oldal

Ezeket felhasználva megkapjuk a mozgásegyenlet (F.1.7) szerinti mátrixos alakját:

 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 )

A mozgásegyenlet skaláris formájának felírásához még meg kell határoznunk a Dijk


együtthatókat, amelyeket a (F.1.4) egyenlet alapján tudunk kifejezni.
2
C11 ( 2 ,2 )   D11k (q) qk  D111(q)1  D112(q)2  r ( 2 )2
k 1

 D12 k (q) qk  D121(q)1  D122(q)2  r ( 2 )1  2 


2
C12 ( 2 ,1 ,2 ) 
k 1
2
(F.1.58)
C21 ( 2 ,1 )   D21k (q) qk  D211(q)1  D212(q)2  r ( 2 )1
k 1
2
C22   D22 k (q) qk  D221(q)1  D222(q)2  0
k 1

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:

1  D (q) Dik (q) D jk (q) 


Dijk (q)   ij   , (F.1.60)
2  qk q j qi 

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:

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 83. oldal

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 11  D112 ( 2 )12  D121( 2 )21  D122 ( 2 )22  D1(1 , 2 ) 
 D11( 2 ) 1  D12 ( 2 ) 2  2r ( 2 ) 12  r ( 2 ) 22  D1(1 , 2 )
(F.1.62)
 2  D21( 2 )1  D22 2  D211( 2 )11  D21212  D22121  D22222  D2 (1 , 2 ) 
(F.1.63)
 D12 ( 2 )1  D22 2  r ( 2 )12  D2 (1 , 2 )

amely megegyezik az (F.1.48) és (F.1.49) egyenletekkel.

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 84. oldal

Összegzésképpen írjuk fel még egyszer a kétszabadságú robotkar mozgásegyenletét mátrixos


és skaláris formában:
τ  H (q)q
  C(q, q )q  h g (q) ,

illetve
1  D11( 2 ) 1  D12 ( 2 ) 2  2r ( 2 ) 12  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

r ( 2 )  m2 d1 2 sin  2


D1 1 , 2   m1 1  m2 d1  g cos1  m2 g  2 cos1   2 
D2 1 , 2   m2 g  2 cos1   2 

Copyright © 2009-2017 / Dr. Tevesz Gábor


BME Robotirányítás 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 / 85. oldal

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

Copyright © 2009-2017 / Dr. Tevesz Gábor

You might also like