Belső Címlap Vámossy Zoltán Automatizált eszközök Budapesti Műszaki Főiskola Budapest, 2002. június
Belső Címlap hátoldala
Tartalomjegyzék Tartalomjegyzék ..................................................................................................3 Előszó ..................................................................................................................5 1. 1.1. 1.1.1. 1.1.2. 1.1.3. 1.1.4. 1.2. 1.3.
A robotika alapfogalmai ..........................................................................6 Robotok csoportosítása ............................................................................7 Robotgenerációk ......................................................................................8 Robotkarok és mobilrobotok ...................................................................8 Pályavezérlés szerinti csoportosítás .......................................................14 Alkalmazási területek ............................................................................14 Robotjellemzők ......................................................................................16 Robotosított rendszerek struktúrája .......................................................17
2. 2.1. 2.1.1. 2.1.2. 2.1.3. 2.1.4. 2.1.5. 2.1.6. 2.2.
A robotmanipulátorok modellezésének matematikai alapjai .................22 Homogén transzformációk.....................................................................23 Koordináta-rendszerek ...........................................................................23 Homogén koordináta-transzformációk ..................................................25 Forgatások és eltolások ..........................................................................27 Összetett homogén transzformációk („aktív” és „passzív” szempont).28 Rodrigues-transzformáció......................................................................30 Inverz homogén transzformáció ............................................................33 Céltárgyak és akadályok modellezése ...................................................34
Manipulátorkarok mozgásának geometriai modellezése .......................36 Kartagok ................................................................................................36 A Denavit–Hartenberg-leírás .................................................................37 Kartag és izületi kinematikai paraméterek ............................................37 Koordináta-rendszer-hozzárendelés Denavit–Hartenberg-konvenció szerint.....................................................................................................39 3.2.3. Izületi koordináták tere ..........................................................................43 3.3. Külső koordináták használata a manipulátor-modellezésben ................47 3.3.1. A csukló mozgásának leírása Euler-szögekkel ......................................48 3.3.2. A „Roll-Pitch-Yaw” transzformáció ......................................................51 3. 3.1. 3.2. 3.2.1. 3.2.2.
3
A direkt és az inverz kinematikai feladat ..............................................56 Direkt és inverz kinematikai feladat kitűzése ........................................56 A direkt kinematikai feladat szimbolikus megoldása ............................57 Előrehaladó és visszafelé haladó szimbolikus kapcsolatok ...................57 A direkt kinematikai feladat szimbolikus megoldása humanoid robotmanipulátor esetében .....................................................................59 4.3. Az inverz kinematikai feladat megoldási lehetőségei ...........................65 4.3.1. Az inverz mátrixok módszere ................................................................66 4.3.2. Részfeladatokra bontás ..........................................................................68 4. 4.1. 4.2. 4.2.1. 4.2.2.
5. 5.1. 5.2. 5.3. 5.3.1. 5.4.
Pálya- és útvonaltervezés .......................................................................73 Pályatervezés konfigurációs térben .......................................................73 Általánosított Voronoi-diagram (GVD) ................................................75 Finom mozgástervezés...........................................................................79 A spline-ok elmélete ..............................................................................80 Pályabejárás ...........................................................................................83
6. 6.1.
Az intelligens gép további lehetőségei és a szoftver-robotok ...............85 „A magába foglaló architektúra” ...........................................................85
Irodalomjegyzék ................................................................................................89
Előszó
A Budapesti Műszaki Főiskola Neumann János Informatikai Főiskolai Karán, illetve elődintézetében a műszaki informatikus képzés területén évek óta oktatják olyan automatizált szerkezetek, berendezések jellemzőit, amelyek egyre nagyobb szerepet kapnak az iparban, vagy a kutatás különbözö területein. Mivel több szakirány (és természetesen más karok) hallgatói is érdekeltek az ilyen eszközök megismerésében, egy több részes jegyzetsorozat elkészítését tervezzük. E kötetben manipulációs és mozgó eszközökhöz kapcsolódó ismeretekbe nyer alapozó betekintést az érdeklődő. Az általános jellemzők bemutatása után az ilyen szerkezetek geometriai modellezésével foglalkozunk. Mivel ezen eszközök legfontosabb jellemzője a mozgás, ezért a pályatervezés és navigáció területeibe is betekintést nyerhetünk.
5
1. A robotika alapfogalmai A robot kifejezés Karel Ĉapek színdarabjából származik (R.U.R. — Rossum’s Universal Robot, 1921). A szépirodalomban és a műszaki, technikai fogalomkörben is általában olyan eszközt, berendezést értenek rajta, amely az ember fizikai és/vagy szellemi munkájához hasonló tevékenységet végez. Ennek megfelelően a gyártási folyamatokban, a tudományos kutatásokban alkalmazott robotoktól olyan tulajdonságokat várunk el, amelyek lehetővé teszik, hogy saját tevékenységüket kisebb-nagyobb mértékben ellenőrizzék és korrigálják. Más szavakkal, eleget kell tenniük az intelligencia bizonyos alapfeltételeinek (érzékelés, információ-feldolgozó kapacitás, tudás illetve emlékezet, tanulási képesség és döntéseken alapuló közlési—cselekvési képesség, stb.). Ez az általános elvárás az egyes országok szabványaiban csak kis mértékben és eltérő módon jelenik meg. Egységes szemléletet tükröző definíciót tehát nem találunk, azonban a szabványokból kiemelhetjük az alábbi fő követelményeket és jellemzőket: – rugalmas újraprogramozhatóságra, – több szabadságfokú mozgáslehetőséggel, – anyagok, berendezések, szerszámok mozgatására vagy különböző feladatok megvalósítására tervezik a robotokat. A Japán Ipari Robot Szervezet (JIRA) ezzel szemben a robotok több csoportját ismerteti, az előzőnél jóval tágabb meghatározást engedve. Bonyolultsági fok szerint megkülönböztetnek – kézi manipulátorokat, amely az emberi kar mozgását utánozzák és objektumok felemelését és lerakását végzik; – sorrendvezérlésű robotokat, amelyek előre meghatározott feltételek és sorrend szerint hajtanak végre feladatokat; – visszajátszó robotokat, amelyekbe a munkafolyamatok sorrendjét és a helyzet- információkat előzetesen betanítják és ezeket játszatják vissza; – számjegyvezérlésű robotokat, amelyek a munkafolyamat sorrendjét és a pozíciókat is digitális formában tárolják;
– intelligens robotokat, amelyek már összetett érzékelő, felismerő és döntési képességgel rendelkező berendezések. A robot pontos definícióját ugyan nem határozzuk meg, de a kifejezésen olyan objektumokat (robotkarokat, mobilrobotokat, sőt, akár szoftver-robotokat) értünk majd, amelyekre jellemző az önálló tevékenység, általában a mozgás, és az, hogy tevékenységüket kisebb vagy nagyobb részben önállóan irányítják. Ha nem erre a talán többé vagy kevésbé intelligenciát tükröző minőségre, hanem – leginkább a robotkarok esetében – csak a fizikai konstrukcióra, szerkezetre fordítjuk a figyelmünket, akkor a manipulátor, vagy manipuátorkar kifejezést fogjuk használni. Célunk nem a robotalkalmazások széleskörű bemutatása, hanem, hogy bevezető alapismereteket adjunk, vagyis a robotalkalmazások működésének alapelveit szeretnénk megértetni. Ezért a hangsúlyt a robotmanipulátorok geometriai modellezésére és a pályatervezés különböző szintjeinek bemutatására helyezzük. Kiemelten foglalkozunk azzal, hogy a legáltalánosabban használt robotkarok esetében a szerkezet és az egyes mozgáslehetőségek paraméterei miként határozzák meg azokat a munkatér-helyzeteket, ahova a karon elhelyezkedő megfogó vagy szerszám eljuthat, illetve fordítva, hogyan kell beállítani a geometriai mozgások jellemzőit, ha egy adott térbeli helyzetbe szeretnénk mozgatni a robotkart. Nem tárgyaljuk a további meghatározókat, a sebesség és gyorsulás viszonyok, a fellépő erők és nyomatékok számítását, valamint a szabályozás és irányítás kérdéskörét. E témaköröket részletesen ismerteti Somló, Lantos és Cat könyve (Somló 1997). Bár a robotok intelligens tevékenységéhez elengedhetetlen a legkülönbözőbb érzékelők használata, a könyvrész bevezető jellegénél fogva kénytelenek vagyunk eltekinteni az érzékelők működési elveinek és az alkalmazási területeinek bemutatásától. Az utóbbi időben a robotikában is legáltalánosabban alkalmazott számítógépes látórendszerek jellemzőinek ismertetését pedig számos irodalom taglalja.
1.1. Robotok csoportosítása A robotok számos szempont szerint csoportosíthatóak. Ebben a szakaszban az intelligencia-szintjük szerinti generációkba sorolást, a külső megjelenésük alapján történő (robotkarok, mobilrobotok) és a pályavezérlés típusa szerinti osztályozást, valamint az alkalmazási területük szerinti besorolást mutatjuk be.
7
1.1.1.
Robotgenerációk
A robotika fejlődése a XX. század közepén indult meg. A robotok közvetlen elődei a teleoperátorok (ezek a szerkezetek áttételen keresztül valósították meg a radioaktív anyagok mozgatását), illetve a számjegyvezérlésű (NC) gépek voltak. Az első robotot (Unimate) George Devol az 1960-as évek elején készítette (Engelberger 1980). Magyarországon a Szegedi Egyetem Kalmár László vezette Matematika Tanszékén Muszka Dániel készítette az első ilyen berendezést. Az I. generációs robotokat a 60-as években alkalmazták felemelés–lerakás típusú feladatokra. Ezek nem rendelkeztek a környezet változásait vizsgáló külső érzékelőkkel, vagy ha igen, akkor azok csak védelmet, reteszelését biztosítottak. A programozhatóság alacsony szintű volt, a robot mozdulatait a program egyértelműen meghatározta. A II. generációs robotok a 70-es években jelennek meg. Ezek már környezetüket érzékelők segítségével vizsgálják és tevékenységüket a vett jelek alapján a pillanatnyi szituáció figyelembevételével módosítani tudják. Feladataikat magas szintű robotprogramozási célnyelven lehet meghatározni. A III. generációs robotokban kapnak nagyobb szerepet a mesterséges intelligencia elemei. Az érzékelőktől származó jeleket feldolgozzák, a magukról és a környezetről tárolt modellt képesek intelligens módon, önállóan módosítani, képesek információ kiválasztására és kombinálására. Megjelennek az önálló viselkedési algoritmusok és a döntési rendszerek. E generáció működésére az összetett tevékenység és a feladatok magas szintű, általános megfogalmazása jellemző. Az iparban alkalmazott robotok nagy része a második generációba soroltakból kerül ki. A harmadik generációs tulajdonságú robotokat csak igen kis számban, kutatási alkalmazásokban találunk, fejlesztésük jelenleg is folyik.
1.1.2.
Robotkarok és mobilrobotok
Az iparban fellelhető, gyártásra, szerelésre, osztályozásra alkalmazott robotberendezés többsége helyhez kötött. Az ilyen robotkarokat egy, esetleg több műveletből álló munkafázis elvégzésére alakították ki és programozták be. A robotkarok kartagokból (szegmensekből) épülnek fel és izületekkel csatlakoznak egymáshoz. Az általában egy mozgáslehetőséget, elfordulást (rotációt) vagy egyenes vonalú mozgást (transzlációt) engedélyező izületek a kartagok egymáshoz viszonyított elmozdulását biztosítják. A rotációs izületek esetében,
ha a kar tengelye megegyezik a forgómozgás tengelyével, csavaró izületről, ha pedig a mozgástengely merőleges a kar tengelyére, billentő izületről beszélünk. A karrendszer feladata a robot megfogószerkezetének vagy a hordozott szerszámnak, amelyeket röviden effektornak nevezzünk, a robot munkaterében történő mozgatása. A munkatér méretének megnövelése érdekében a robotkarokat néha további mozgáslehetőséget biztosító, sínen megvezetett szánokra vagy síkban elmozdulást biztosító kocsikra helyezik. Ilyenkor a további mozgáslehetőséget biztosító eszköz működtetését is a robotkart vezérlő számítógép végzi. Azt, hogy a robotkar a tér mely pontjaiba tud eljutni, – amit más megközelítésben úgy is fogalmazhatunk, hogy munkatere milyen alakú, – alapvetően az első három izület mozgáslehetősége határozza meg. A durvapozícionálást biztosító három főmozgás mellett a további izületek rendszerint az effektor finompozícionálását és orientációjának beállítását végzik. Az első három izület mozgástípusa alapján a következő robotkartípusokat lehet megkülönböztetni (1.1. ábra): – derékszögű koordinátás kar, – hengerkoordinátás kar, – gömbkoordinátás kar, – SCARA kar, – humanoid kar. A derékszögű koordinátás kar esetében az első három izület egymásra merőleges irányokban egyaránt transzlációs mozgást végez. Bár a transzlációs izületek segítségével nagy pontosságot lehet biztosítani, a viszonylag kisebb sebesség leszűkíti e típus alkalmazásának lehetőségeit. Speciális alosztálya a portál kar, amikor a robotot állványrendszerre függesztik. A hengerkoordinátás kar esetében az első csavaró izület függőleges tengely körüli forgatást biztosít. A második és harmadik transzlációs izület le-fel, illetve vízszintes irányú mozgást végez. A három főmozgás így henger alakú térrészbe juttatja el a robot effektorát. Gömbkoordinátás kar a robottípus elnevezése, ha az első izület a törzs csavaró mozgását, a második az előzőre merőleges síkban a kar billentő mozgását, míg a harmadik transzlációs izület az alkar ki-be irányokba történő mozgását biztosítja. Az így kapott munkatér gömbkoordináta-rendszerrel írható le egyszerűen. A SCARA (Selective Compliance Assembly Robot Arm) kartípus esetében a durvapozícionálást végző izületek mindegyike függőleges tengelyű: az első és 9
1.1. ábra - Robotkartípusok a második billentő izület a kart vízszintes síkban forgatja, a harmadik transzlációs izület a megfogót emeli, illetve süllyeszti. E kartípus nagy sebességeket és pontosságot biztosít és szerelési feladatokhoz alkalmazzák. A humanoid kartípus onnan kapta a nevét, hogy leginkább ez utánozza az emberi kar jellemzőit. Az ilyen berendezések durvapozícionálását három forgató izület végzi. A törzs beállítását csavaró, a felkar és az alkar pozícionálását egymással párhuzamos tengelyű billentő izületek biztosítják. Nagyfokú mozgékonysága miatt ez a legszélesebb körben alkalmazott robotkar. A robotok másik nagy kategóriájába a helyhez nem kötött mobilrobotok tartoznak. Ezek a szerkezetek sokszor nem ipari szerelési, technológiai vagy anyagmozgatási feladatot látnak el, hanem rendszerint a kutatók segédeszközeiként funkcionálnak, ugyanis képesek olyan helyeket is felkeresni, ahová az emberek – valamilyen oknál fogva – nem juthatnak el. Az ilyen típusok esetében mindig található visszacsatolás (külső környezeti érzékelő), ugyanis a feladat végrehajtásához elengedhetetlen a folyamatos információgyűjtés. A mobilrobot feladata sok esetben nem egzakt módon definiált, nemegyszer csak
„menj és gyűjts adatokat" típusú. Az, hogy mely adatok számítanak értékesnek és melyek a haszontalanok, rendszerint szintén a robot döntési körébe tartozik. Mindezekből kitűnik, hogy a mobilrobotokat komplex problémák megoldására tervezik. A mobilrobotok helyváltoztatására két alapvető koncepció alakult ki. Az egyik csoportot a kerekes robotok alkotják. A kerekek számát tekintve léteznek három-, négy- vagy hatkerekű megoldások. Általában a kisebb akadályok átlépésére sem képesek, az akadályokon inkább a kikerülés taktikájával igyekeznek túljutni. Az átlépés lehetőségének hiányát ellensúlyozza, hogy a kerekes robotok jóval mozgékonyabbak és fürgébbek lábakon közlekedő kollégáiknál. A mobilrobotok másik csoportjába a járó robotok tartoznak. E csoporton belül megkülönböztettünk lépegető és mászó típusokat attól függően, hogy közel vízszintes terepen, vagy meredek falakon végzik a feladatukat. A mászó és lépegető (elterjedt összefogó elnevezésük CLAWAR) robotok gyakorlati célú alkalmazhatóságát elsőként a nukleáris iparban és az űrkutatásban ismerték fel. Ezeken a területeken olyan jól definiált karbantartási és technológiai feladatokat, problémákat kell megoldani, amelyek az emberre veszélyesek és bonyolult geometriájú környezetben végzendők. A kutatók és fejlesztők figyelme azért a járó robotokra eset e feladatokban, mert a kerekes (néha lánctalpas) mobilrobotok ilyen, úgynevezett strukturálatlan munkatérben csak korlátozottan tudnak mozogni. A lépegető berendezések ezzel szemben jóval adaptívebb megoldásnak tűnnek. A nagyobb akadályokat azonban a kerekes robotokhoz hasonlóan szintén kénytelenek kikerülni. A lépegetés alapulhat mesterséges lábakon, ha a durva terepviszonyokhoz igazodni kell, illetve vákuumos-, vagy mágneses megfogós lábfejeken, amennyiben nagyon meredek, függőleges felületekre kell felmászni, esetleg födémszerű környezetben, lelógva kell dolgozni. A mászási feladatok során különleges kihívást jelent a függőleges és vízszintes falrészek közötti áthaladás. A falmászó robotokat elsősorban nehezen hozzáférhető környezetben, sokszor távfelügyeletes technikával vezérelve használják. A már említett nukleáris alkalmazásokon kívül az épületek felületeinek javítására, toronyházak ablakainak tisztítására is igénybe veszik a mászó robotokat. A víz alatti tevékenységi területhez sorolható a hidak lábainak, tengeri fúrótornyok, hajók oldalainak, valamint a csőhálózatok karbantartása, vizsgálata és tisztítása. A vegyiparban veszélyes anyagok összegyűjtésére és vizsgálatára alkalmazhatnak mászó, vagy lépegető berendezéseket. Az alagutak és csatornák feltérképezéséhez is megfelelő eszköz a lépegető robot. Nagy jelentőségű alkalmazási terület lehet a ta11
posó aknák felderítése, összegyűjtése, esetleg megsemmisítése. Ezekben a munkafeladatokban fontos szerepe van a nagyszámú környezeti érzékelő összehangolt felhasználásának. A legtöbb járó robot rovarszerű, hat lábon közlekedik, de létezik nyolc-, négy-, három-, kétlábú típus, sőt akad egy lábon ugráló is. E robottípusoknál az egyik igen komoly megoldandó feladat a járási stratégia kidolgozása, hiszen a szerkezet súlypontjának minden szituációban az alátámasztási pontok által kifeszített poligon alá kell esnie, más esetben ugyanis a robot felborulhat. A feladat nehézségét könnyen átérezhetjük, ha arra gondolunk, mi magunk is milyen nehezen tudjuk megtartani egyensúlyunkat egyenetlen vagy meredek terepen. A lépegető és járó robotok esetében is a következő feladatokat kell megoldani: – kinematikai feladat, – kinetikai feladat, – vezérlés és optimalizált működés. A kinematikai feladat egyik leglényegesebb részterülete az adott terepviszonyokhoz igazodó járási módszer meghatározása. A lábak mozgatásának sorrendje és időbeli ütemezése nemcsak a munkakörnyezettől, hanem a lábak számától is nagyban függ. A kinetikai probléma megoldása a kívánt teljesítmények átvitelének biztosítását jelenti különböző szempontok figyelembevételével. Ilyen feltétel lehet a minimális erők és nyomatékok az egyes szegmenseknél és izületeknél, a lehető legkisebb alkalmazandó motorteljesítmény, az optimális erőeloszlás, stb. A vezérlés és az optimális működés a legkevésbé ismert területe a jelenlegi kutatásoknak. Az egyik megoldási lehetőség az élővilágból megismert technikák alkalmazása. Azonban sok esetben nem tudjuk a legalapvetőbb mozgások vezérlési módszereit. Így például az emberi gyaloglás vezérlése is ismeretlen még a számunkra. A mobilrobotok fejlesztése világszerte elterjedt kutatási tevékenység. Ez nem csupán annak a vágynak köszönhető, hogy minél okosabb mozgó berendezéseket tudjunk építeni, hanem talán annak a ténynek is, hogy ez a terület magába foglalja a mesterséges intelligencia szinte összes területét. A hatlábú robotok nagy részét a rovarokhoz hasonló alakúra készítik. Speciális erdészeti feladatok megoldására tervezték a MECANT nevű robotot (Leppänen 1998). A 1.2. ábrán látható 1100 kg tömegű robotot 2 hengeres ultrakönnyű repülőgép motorral hajtják. A lábak úgynevezett pantográf szerkezetűek és három-három forgatómozgást biztosítanak. A járművet rádiótávvezérlés segítségével operátor irányítja.
1.2. ábra - MECANT lépegető robot (Leppänen 1998) A négylábúak esetében megkülönböztethetünk emlősszerű (mammal) és hüllőszerű (reptile) lépegető robotokat. A hüllő-szerű robotokat (1.3. ábra) bonyolult geometriájú felületeken alkalmazzák. Járásúk statikusan stabil, vagyis bármikor megállíthatók anélkül, hogy egyensúlyukat elveszítenék. Mozgásuk emiatt lassabb, a teherbírásuk azonban nagy, viszonylag kisebb energiafogyasztás mellett. Az emlős-szerű négylábúak általában gyors mozgásúak, nagyobbakat és gyakrabban lépnek (1.3. ábra). A lépegető robotok kutatása az utóbbi években a kétlábúak felé fordult. A leghíresebb kétlábú robot a HONDA (Hirai 1997). A 11 éves kutatássorozat célja olyan intelligens és mobilis berendezés (1.4. ábra) létrehozása volt, amely képes az ember mellett tevékenykedni, olyan jellemzőket mutat, amelyekre az ember nem képes és a mozgása új értéket jelent az egész emberiségnek.
1.3. ábra - A hüllőszerű TITAN-VIII robot(Hirose 1998) és az emlősszerű EXPLORATORES II. (Vámossy 1998) 13
1.4. ábra - HONDA robot (Hirai 1998)
1.1.3.
Pályavezérlés szerinti csoportosítás
A robotok pályavezérlésének két alapvető formája van: – pontról-pontra vezérlés (point-to-point vagy PTP vezérlés), – folyamatos pályavezérlés (continuous path vagy CP vezérlés). Pontról-pontra vezérlésről beszélünk, ha a pálya bizonyos pontjai (úgynevezett sarokpontjai) vannak megadva, amit az effektornak meg kell közelítenie. A sarokpontok között az izületi mozgások vezérlése nem eredményez folyamatosan meghatározott pályát, mivel az egyes pályapontok között az átmeneteket a robot kinematikai (geometriai) jellemzői határozzák meg. A folyamatos pályavezérlés esetében a sarokpontok között interpolációt hajt végre a vezérlés. Az interpoláció történhet derékszögű koordinátákban, vagy ha az izületek beállításai adottak, akkor izületi paraméterekben (izületi koordinátákban). A folyamatos vezérlés szinte tetszőleges pontossággal tudja követni az előírt pályát.
1.1.4.
Alkalmazási területek
A robotok alkalmazásuk szerint több csoportba oszthatók: Az iparban alkalmazott robotok lehetnek: – technológiai feladatot ellátó robotok, – anyagmozgató robotok, – szerelő robotok.
A kutatásban használt robotok többnyire – telerobotok, – mobilrobotok. Speciális feladatok megoldására alkalmazott robotok és egyéb robotrendszerek lehetnek – mikrorobotok, – gyógyászatban alkalmazott robotok. A technológiai robotok közé tartoznak a legtradicionálisabb alkalmazási területek berendezései, a festő és a ponthegesztő robotok. Az autógyártásban nagy számban és régóta alkalmazott robotok programozása a kívánt pályán történő kézi végigvezetéssel történik. Az ívhegesztésre használt robotok vezérlése bonyolultabb az előzőknél, mert folyamatos pályabejárást követel. A megfelelő minőségű varrat elkészítése érdekében gyakran használnak szenzorokat is. Szintén folyamatos pályavezérlést igényel a tisztító és sorjázó robotok alkalmazása. Az eltávolítandó ismeretlen geometriájú részek érzékelők használatát igénylik. Az eltávolítás során dinamikusan változó erőhatások ébrednek, amelyekkel szemben a robotkarnak megfelelően merevnek kell lennie. Az anyagmozgatás is hagyományos robotalkalmazási terület. A robotkar ilyenkor megfogóberendezést hordoz, amelynek segítségével megragadja a célobjektumot és a kívánt helyzetbe juttatja. A megfogó lehet általánosan használható vagy a feladathoz készített célszerszám. A vezérlés során általában elegendő, ha a bejárandó pályának csak bizonyos sarokpontjait ismerjük. Érzékelőket akkor alkalmaznak, ha kiválasztási, azonosítási, ellenőrzési feladatot is meg kell oldania a rendszernek, vagy az objektumok különböző pozícióban és helyzetben jelennek meg a munkatérben. A szerelő robotok nagyszámú érzékelővel vannak ellátva annak érdekében, hogy az egymáshoz illeszthető alkatrészeket azonosítani tudják. Mivel a folyamatos pályavezérlés mellett a nagy pontosságú pályabejárás is követelmény, az ilyen robotosított rendszerek vezérlőjének nagy mennyiségű számítási feladatot kell megfelelő gyorsasággal megoldania. A kutatás különböző területein alkalmazzák a telerobotokat és a mobilrobotokat. A telerobotok épp úgy felhasználhatók radioaktív anyagok kezelésére, mint az űrkutatásban és mélytengeri vizsgálatokban. A nagy távolságok vagy az extrém körülmények közötti működőképesség speciális követelménye a nagyfokú autonómia. A különleges munkaterületek és az összetett feladatok nagyszámú érzékelő használatát igénylik. Többnyire a robot helyi vezérlésének 15
kell döntést hoznia a követendő pályáról is. A telerobotok ígéretes új alkalmazási területe a mikrosebészet. Itt a miniatürizált méretek és az élő környezet miatt a nagy pontosságú tevékenység a legnagyobb kihívás.
1.2. Robotjellemzők A robot munkatere a tér azon pontjainak halmaza, ahová a robotkar az effektor szerszámközéppontját (programozhatósági pontját, Tool center point, vagy TCP) eljuttathatja. A munkatér meghatározásához ismernünk kell az izületek számát (mobilitásfokot), típusát, az izületek mozgástartományát és a kartagok jellemzőit. A munkatér meghatározását gyakran metszeti síkokkal adják meg, de használatosak gömb-, illetve hengerkoordináták is, amik rotációs mozgások leírásakor előnyösek, vagy Descartes-koordináták, amik transzlációs mozgások egyszerű kezelését teszik lehetővé. A kívánt pozíció és orientáció adott számú transzlációt, illetve rotációt leíró függvény kompozíciójaként kapható meg. A pályatervezés folyamán ilyen helyzetek sorozatát kell meghatározni a függvények paramétereinek számításával. A munkaterület két pozícionálási szemcsézettség szintjén járható be. A durva pozícionálásban, pl. humanoid robot esetében, részt vesz a törzs, ami képes egy elfordulásra, a váll egy forgómozgással, valamint a könyök egy tengely körüli elfordulással. E mozgások célja, hogy az effektor a munkatér megfelelő részébe kerüljön. A finom pozícionálást a csukló végzi, melynek jellemzője, hogy képes tengely körüli elfordulásra és a tengelyre merőleges bólintásra, esetenként pásztázó mozgásra is. E mozgássorozatot az effektor orientációjának beállítására is használják. Az elméleti és az elért pozíciók közötti eltérést egy-egy hibavektorral jellemezhetjük. A pontosságra vonatkozóan azonban nem e vektorsokaságot, hanem csak a leghosszabb vektor nagyságát szokás megadni. A szintén általánosan használt ismétlési pontosság azt határozza meg, hogy ha a kart egymás után többször elmozdítjuk, majd ugyanabba a pozícióba mozgatjuk, akkor a programozhatósági pont mennyire közelíti meg az adott célhelyzetet. A karrendszer állapotáról analóg-digitális átalakítókon keresztül jut információ a robotvezérlő számítógépbe. Az átalakító felbontása meghatározza, hogy melyek azok a legközelebbi szomszédos pontok, amelyekbe a karrendszer programozhatósági pontja eljuttatható. Ha az összes izület mozgáslehetőségeit figyelembe vesszük, akkor így egy térbeli rácsrendszert kapunk. A precízió mértéke azt határozza meg, hogy e rácsrendszerben a különböző irányokban milyen távolságra helyezkednek el a szomszédos rácspontok. Ha nagy pontosság az előírt
követelmény, olyan munkatérrészt kell kiválasztani a feladatmegoldásra, ahol a precízió értéke ezt biztosítja. A fentieken kívül számos további jellemzője van egy robotkarnak. Ezek közül kiemelten fontos a terhelhetőség, és az, hogy milyen maximális sebességek és gyorsulások léphetnek fel az effektornál.
1.3. Robotosított rendszerek struktúrája A robotosított rendszerek 1.5. ábra szerinti általános felépítését Siegler gondolataiból kiindulva (Siegler 1987) az alábbiakban foglalhatjuk össze. A robotszerkezet általában több izülettel (kinematikai párral) rendelkező karrendszer, esetleg lépegető rendszer vagy önjáró kocsi, illetve a kettő kombinációja. A robotszerkezet feladata, hogy a rászerelt effektort – vagy, ha a szerkezet mobilrobot, akkor sajátmagát – a munkaterén belül egy meghatározott célhelyzetbe és orientációba jutassa. A robotmanipulátor fő elemei a következők: – manipulátor mechanizmus, – hajtások (motorok és áttételrendszerek), – belső érzékelők. A manipulátorkar forgó vagy csúszó izületekből és az izületeket összekötő kartagokból épül fel. Az első kartag az alap, mely a karrendszert hordozza és lehet helyhez kötött vagy mozgó. Az utolsó kartagot az effektor (megfogó vagy szerszám) követi. Az effektor nem része a manipulátornak, hiszen a különböző feladatokhoz más-más szerszámot, megfogót használnak, azonban, – mivel a manipulátorkar hordozza, – szoros fizikai kapcsolatban áll vele. Teljesen általános az is, hogy az effektor működését is a robotirányító számítógép vezérli. Sőt, mivel az effektor modellje előre ismert, így jobban köthető a manipulátor beépített modelljéhez, mint a folyamatosan változó, nem teljesen ismert környezet leírásához. A hajtás a motor és az áttételek egysége. A motorok feladata a mozgatáshoz szükséges energia biztosítása. Működési elvük lehet – elektromos, – hidraulikus, – pneumatikus. 17
1.5. ábra - A robotosított rendszer általános felépítése Rendszerint minden egyes izülethez önálló hajtás tartozik az egyszerűbb vezérelhetőség miatt. Az áttételrendszerek, illetve hajtásláncok a motorok energiáját
közvetítik a manipulátorkar adott tagjához. A robotmanipulátorokban a hajtásláncra az alábbi okok miatt van szükség: – illeszteni kell a motor fordulatszámát (sebességét) és nyomatékát a hajtott elem követelményeihez, tehát áttételt kell létrehozni. Különösen a gyorsan forgó elektromos motorok esetén van szükség lassító áttételre; – a hajtáslánc segítségével el lehet távolítani a motort a robotmanipulátor megfogójának közeléből és így kisebb méretű szerkezetet lehet létrehozni; – a hajtáslánc a követelményeknek megfelelően forgó mozgásból haladó mozgást hoz létre, vagy fordítva. Ezzel a motormozgás jellegét illeszti a hajtott elem mozgásának jellegéhez. A hajtáslánc összetett feladatot teljesít és ezt az alábbi követelmények figyelembevételével kell végeznie: – előírt kinematikai kapcsolatot kell megvalósítania; – előírt teherbírása kell, hogy legyen; – a készítése során kis anyagfelhasználásra, kis tömegű szerkezet kialakítására kell törekedni; – merevnek kell lennie; – jó hatásfokkal (kis veszteséggel) kell eljuttatnia az energiát a célhelyzetbe. A hajtásláncokat a mozgás-átalakítás jellege alapján osztályozzuk. Ha a mozgás jellegét nem változtatják meg, akkor a mozgás paramétereit (például a fordulatszámát) módosítják. Így megkülönböztetünk: – haladó mozgást haladó mozgássá átalakító hajtásláncot, – haladó mozgást forgó mozgássá átalakító hajtásláncot, – forgó mozgást haladó mozgássá átalakító hajtásláncot, – forgó mozgást forgó mozgássá átalakító hajtásláncot. A belső érzékelők (vagy sokszor útmérő rendszereknek is nevezik) feladata az izületek pillanatnyi jellemzőinek mérése és a mért adatok továbbítása. A belső érzékelők jeleit használhatjuk betanításos programozáskor, amikor a robotkart végigvezetik a kívánt helyzeteken és eltárolják rendre az érzékelők által mért adatokat, vagy a feladat megoldásakor, amikor az aktuális és a kívánt jel különbsége alapján határozzák meg a motorok vezérlését. Az izületi mozgástengelyek mentén vagy azok körüli elmozdulások szabályozásához olyan érzéke19
lők szükségesek, amelyek az izületiszögek, utak, sebességek, esetleg gyorsulások és nyomatékok mérését végzik. Fizikailag ezeket a mennyiségeket potenciométerek, növekményes (inkrementális) útadók, optikai szögadók, indukciós jeladók (rezolverek), tachométerek mérik. Amíg a potenciométer és a tachométer analóg jeleit A/D átalakítón keresztül, addig a növekményes útadók jeleit közvetlenül lehet a vezérlő számítógépbe eljuttatni. Az útmérő rendszerek a mérőelmozdulás szerint lehetnek lineárisak vagy forgók; a mérési jel érzékelése szerint analógok vagy digitálisak; a mérési elv szerint: abszolút vagy növekményes (inkrementális) érzékelők. A robotmanipulátoroknál a leggyakrabban alkalmazott útmérő rendszerek a következők: – analóg - abszolút mérőrendszer: potenciométer, rezolver és induktoszin; – digitális - abszolút mérőrendszer: kódtárcsa vagy kódléc; – inkrementális mérőrendszerek: vonaltárcsa, vonalléc vagy optikai szögadók. A robotmanipulátoroknak a környezetükben elhelyezkedő tárgyak figyelembevételével kell az előírt feladatokat végrehajtaniuk. A munkatérben elhelyezkedő objektumokat két csoportba sorolhatjuk: – céltárgyak, – akadályok. Egy adott objektum a technológia egyik fázisában lehet céltárgy, egy másik alkalommal lehet akadály is, tehát a feladattól, az adott szituációtól is függ a besorolása. E megkülönböztetés azért fontos, mert a céltárgyak kiszolgálásához, manipulációjához általában sokkal pontosabb, részletesebb geometriai modellekre van szükség, mint az akadályok elkerüléséhez. A környezetről előzetes ismeretek és érzékelők segítségével alkothatunk képet. Az érzékelők egy részét (külső érzékelők 1) szokás a robotkarra, vagy az effektorra helyezni (pl. ha a manipulálandó tárgyat, a megfogás tényét, vagy az effektor működését kell vizsgálni). A külső érzékelők egy másik csoportja (külső érzékelők 2) maga is a robotkar környezetében helyezkedik el. Az érzékelőket a működési elv szerint szokás csoportosítani. A robottól elvárt tevékenységek robotprogram formájában állnak a vezérlés rendelkezésére. Ha a feladatot robotprogramozással oldjuk meg, akkor nemcsak a robotmegfogó vagy az egyes robotizületek kívánt mozgásának meghatározására van lehetőség, hanem a program végrehajtása az előzőekben felsorolt érzékelő típusok által menet közben szolgáltatott információktól is függővé te-
hetjük. Az újabb robotprogramozási nyelvekben ugyancsak lehetőség van a robot és a környezetében elhelyezkedő egyéb berendezések működésének koordinálására, a feladat-végrehajtás ütemezésére, illetve eseményfüggő lejátszására. Az off-line programozás speciális esete a grafikus mozgás-szimulációs programcsomagok használata. Ekkor a program működését a számítógép monitorján, grafikus modellen követheti a tervező. A legkorszerűbb szimulációs rendszerek nemcsak geometriai ellenőrzéseket hajtanak végre vagy jelenítenek meg, hanem a technológiához kapcsolódó paramétereket is figyelembe veszik. Az off-line feladatleírás ugyanakkor nem zárja ki az on-line programozás („mutatva tanítás") előnyeinek felhasználását. Azokat a pályapontokat, amelyeknek definiálása nehézkes lenne, a robot rávezetésével lehet definiálni – az előre megírt robotprogramban ezek a pontok szimbolikus nevükkel szerepelnek. Ezzel a módszerrel lehetőség van a menet közbeni programmódosításra és az érzékelés útján történő koordináta-meghatározásra is. A robotosított rendszert irányító számítógép feladata: a belső és külső érzékelők jeleinek figyelembevételével olyan vezérlési parancsokat adjon ki a robotkar számára, hogy az a robotprogramban meghatározott soron következő feladat végrehajtásának irányába haladjon. A robotprogram utasításainak és az érzékelők által szolgáltatott információknak a figyelembevétele a robotvezérlő parancsok generálásakor, a számítógép által tárolt modellek segítségével történik. A belső érzékelők jeleit (pl. az izületek pillanatnyi pozícióit) a robotkar irányítási modelljében használjuk fel. A külső érzékelők által szolgáltatott információ (pl. a céltárgy pillanatnyi távolsága) a környezet modelljébe épül be. Maga a robotprogram a végrehajtandó feladat belső, számítógépi leírásává alakul át. Magas szintű robotirányítás esetén mindezeknek a bemeneti információknak és tárolt modelleknek a felhasználását a vezérlésben egy átfogó vezérlési stratégia irányítja. Amint a fentiekből látható, előzetes ismeretek mindenképpen szükségesek a robotosított rendszerek működéséhez. E tudás biztosítása a robot és környezet modelljének felépítésével, valamint pályatervezési információk (tér- és időparaméterek) megadásával történik, amelyeket kiegészít a robot tevékenysége során szerzett információ. A következőkben ezért a robotika legalapvetőbb modellezési és pályatervezési módszereivel ismerkedünk meg.
21
2. A robotmanipulátorok modellezésének matematikai alapjai A robotmanipuláció egyik legfontosabb eleme, hogy megtaláljuk a manipulálandó tárgy és a manipulátor közötti speciális kapcsolatot. A manipulátorkar n merev testből (kartagokból) áll. A manipulátor kartagok egy bázisrendszerhez viszonyított helyzetének és orientációjának jellemzésére mátrixalgebrai megközelítést alkalmazunk. Mivel a kartagokat összekötő manipulátor-izületek vagy forgó, vagy egyenes vonalú mozgást végezhetnek egy bizonyos mozgástengely körül, illetve mentén, ezért az egyes izületekhez egy-egy koordinátarendszert rendelnünk. A mozgás geometriai leírása így arra a leegyszerűsített feladatra vezethető vissza, hogy transzformációs kapcsolatot találjunk az izületekhez rendelt koordináta-rendszerek és a bázis koordináta-rendszer között. A manipulátor geometriai modellezésének mátrixos reprezentáziójához négydimenziós, homogén koordinátákat és homogén transzformációkat alkalmaznak. A következőkben ezekkel a fogalmakkal ismerkedünk meg. Pont helyzetének homogén koordinátás leírása
A pont pozícióját egy v helyvektorral tudjuk leírni, amely a referenciául szolgáló koordináta-rendszer origójától a pontig mutat. A helyvektort felbonthatjuk a referencia koordináta-rendszer tengelyeinek irányába mutató komponensekre. Ha x, y, és z a derékszögű koordináta-rendszer egységvektorai, akkor a v = vxx + vyy + vzz (2.1) kifejezéssel definiált felbontásban vx, vy, vz a helyvektor koordinátái. A helyvektor háromdimenziós oszlopmátrixszal reprezentálható:
v x v v y . v z
(2.2)
Mivel azonban a geometriai leírás során a tömörséget is szem előtt tartjuk, ezért eggyel magasabb dimenziójú térbe lépünk majd át. Ez a négydimenziós tér a homogén koordináták tere. Egy vektor homogén koordinátás formában négyelemű oszlopmátrixszal írható le:
x1 x2 (2.3) v , x3 x4 ahol vx = x1/x4, vy = x2/x4, vz = x3/x4, és x4 nem nulla skálázó faktor. A robotikában e skálázó faktort egységnyinek szokták választani és így a négydimenziós homogén koordináták egyszerűen megkaphatók, ha a három fizikai koordinátát egységnyi negyedik komponenssel egészítjük ki. Hasonlóan a négydimenziós homogén koordinátákból a háromdimenziós fizikai koordinátákat úgy kaphatjuk, ha a negyedik koordinátát elhagyjuk. A homogén koordináták definíciójából következik, hogy azok nem egyértelműek, hiszen a fizikai koordináták csak a skálázó faktorral együtt határozzák meg a homogén koordinátákat. A zérusvektor homogén koordinátás alakja például [0, 0, 0, n]T, ahol n nem zérus skálázó faktor. (A T felső index pedig a transzponáltat jelöli). Az irányvektorok homogén koordinátás alakja [x1, x2, x3, 0]T, amely a végtelen távol elhelyezkedő pont irányába mutat.
2.1. Homogén transzformációk 2.1.1. Koordináta-rendszerek Ha egy merev test geometriai reprezentációja adott, és hozzárendelünk egy koordináta-rendszert, akkor a test tetszőleges helyzetében kiszámítható a koordináta-rendszer pozíciójának és orientációjának változása. Ennek a relatív pozíciónak és orientációnak a meghatározására a legtömörebb és leghatékonyabb forma a homogén transzformációk alkalmazása. A homogén transzformációk megismerése érdekében rögzítsünk egy pontot a B bázis (vagy más szóhasználattal abszolút, esetleg vonatkoztatási) koordinátarendszer origójaként. A bázis egységvektorai legyenek x, y és z. Egy v helyvektor leírja az L lokális (más szóhasználattal relatív, vagy mozgó) koordinátarendszer OL origóját a bázis OB origójához képest (2.1. ábra) v = vxx + vyy + vzz (2.4) vagy v = [vx, vy, vz]T . (2.5) 23
2.1. ábra - A bázis (rögzített) és a lokális (mozgó) koordináta-rendszerek A v vektor csak az OL origó helyzetét írja le. A második derékszögű koordináta-rendszer (e1, e2, e3) egységnyi hosszúságú bázisvektorainak, a bázis koordináta-rendszer bázis-vektoraihoz viszonyított orientációját egy mátrixszal (R) határozhatjuk meg. A háromdimenziós mátrix elemeit meghatározhatjuk, ha a lokális koordináta-rendszer bázisvektorait a bázis koordináta-rendszer egyes tengelyeire levetítjük:
e1x e2 x e3 x e1 e1 y , e 2 e2 y és e 3 e3 y . e2 z e1z e3 z
(2.6)
A 3x3-as R orientációs mátrix ortonormált, vagyis az e1, e2, e3 egységvektorok képei a bázis tengelyein olyan mátrixot alkotnak, melynek oszlopvektorai egységnyi hosszúságúak, két különböző oszlopvektor skaláris szorzata zérus, két oszlopvektor vektoriális szorzata a harmadik oszlopvektort eredményezi ciklikusan, és a mátrix determinánsa egységnyi. Könnyen belátható az előbbiek felhasználásával – és a későbbi számítások során alkalmazzuk, – hogy az ilyen tulajdonságú mátrix inverze egyszerűen megegyezik a transzponáltjával. Bázis és lokális koordináta-rendszerek bemutatására lehet példa, ha a manipulátor rögzített törzséhez rendelünk egy derékszögű abszolút koordináta-rendszert x, y, és z tengelyekkel és a megfogó szerszámközéppontjához (TCP) egy másik, lokális koordináta-rendszert. Ez utóbbi esetben az egységvektorokat speciális jelöléssel szokás azonosítani. A lokális koordináta-rendszer harmadik egységvektora egy manipulálandó objektum megközelítésének irányát határozza meg, ezért megközelítés-vektornak nevezik és a egységvektorral jelölik.
Ennek megfelelően a megközelítés-vektor azt az irányt határozza meg, amelybe a szerszám mutat. Az o orientációs egységvektor rendszerint a megfogószerszám egyik ujjától a másik ujj irányába mutat. A megközelítés és az orientációs vektorra egyaránt merőleges n egységvektort normálvektornak nevezik és az n = o x a összefüggéssel definiálják. Más megfogalmazásban azt mondhatjuk, hogy a normálvektor merőleges a megközelítés- és orientációs egységvektorok által meghatározott síkra. Az L koordináta-rendszer egységvektorainak orientációját a B bázis egységvektoraihoz képest a következő R orientációs mátrix írja le:
e1x e2 x e3 x R e1 y e2 y e3 y . e1z e2 z e3 z
(2.7)
2.1.2. Homogén koordináta-transzformációk Az alábbiakban arra a feladatra keresünk megoldást, hogy ha adottak egy P pont homogén koordinátái egy lokális koordináta-rendszerben, akkor milyen homogén koordináták határozzák meg e pontot a bázisrendszerben. Legyen a lokális koordináta-rendszerben adott pont
p1 p p2 p1 e1 p2 e 2 p3 e 3 . p3
(2.8)
2.2. ábra - Pont leírása lokális és bázis koordináta-rendszerben
25
Felhasználva (2.6)-ot a lokális koordináta-rendszer egységvektorainak a bázisba leképzésére, a következő egyenletet írhatjuk fel:
e1x e2 x e3 x r p1 e1 y p 2 e2 y p3 e3 y v . e1z e2 z e3 z
(2.9)
Ezért
e1x e2 x e3 x p1 r e1 y e2 y e3 y p 2 v . e1z e2 z e3 z p3
(2.10)
A P pont helyzetét tehát egy mátrixszorzással és vektorösszeadással számoltuk ki. Egészítsük ki az R mátrixot egy negyedik, csupa zérusokat tartalmazó sorral, majd a v pozícióvektor homogén koordinátás leírását tartalmazó vektorral, mint negyedik oszloppal. Ezek után, ha a p homogén koordinátás leírását tartalmazó oszlopvektort az így kapott mátrixszal szorozzuk, akkor az eredmény a P pont bázisrendszerben meghatározott homogén koordinátás leírása lesz:
r x e1x e2 x e3 x v x p1 r y e1 y e2 y e3 y v y p 2 . (2.11) r z e1z e2 z e3 z v z p3 0 0 1 1 1 0 A homogén transzformációs mátrix a v helyvektort az R orientációs mátrixszal kombinálja és így tömören biztosítja a lokális koordináta-rendszer orientációjának és pozíciójának leírását a bázis koordináta-rendszerben. Ha egy P pont koordinátáit szeretnénk transzformálni egy adott koordináta-rendszerből egy másikba, ahol a koordináta-rendszerek a 2.1. ábra szerint adottak, akkor az eredményt tömören a következő képlettel írhatjuk le. r = Tp . (2.12) A T homogén transzformációs mátrix legáltalánosabb formájában az alábbi részekre osztható. v R T T . persp n
(2.13)
Itt a bal felső sarokban álló 3x3-as R részmátrix az orientációs mátrix, amely a már megismert módon két koordináta-rendszer bázis-egységvektorainak ori-
entációja között teremt megfeleltetést. A 3x1-es v oszlopvektor a lokális koordináta-rendszer origójának helyzetét jelenti a bázis referenciarendszerben meghatározva. A T mátrix jobb alsó sarkában szereplő n skalárértéket általában egységnyire választják és ez a skálázási tényező. Végül a bal sarokban az 1x3as perspT sorvektor a perspektív vektor. Ez a vektor majdnem mindig zérusvektor, de ha például egy kamerakép koordináta-rendszere és egy háromdimenziós koordináta-rendszer között projekcióval biztosítunk megfeleltetést, akkor nem nulla értékeket használunk. Robotikai értelmezésben v leírhatja például a megfogó (TCP) helyzetét, R a szerszám, vagy kéz orientációját, perspT pedig a robot környezetét vizsgáló kamera perspektivikus képét határozza meg. Az n egységnyire állítása pedig a szokásos, nyújtás nélküli skálázást jelenti.
2.1.3. Forgatások és eltolások Az elemi forgatások és eltolások az általános 4x4-es homogén transzformációs mátrix fontos speciális eseteként értelmezhetők. Ha a lokális koordináta-rendszer egységvektorait úgy kapjuk meg, hogy a bázis koordináta-rendszer valamely tengelye körül, a (kezdetben a bázissal egybeeső) lokális koordinátarendszert megforgatjuk, akkor elemi forgatásról beszélünk. A bázis x, y, és z tengely körüli végzett elemi forgatások homogén transzformációs mátrixai rendre a következők:
0 1 0 cos Rot ( x, ) 0 sin 0 0 cos sin Rot ( z, ) 0 0
0 sin cos 0
sin cos 0 0
0 cos 0 0 , Rot ( y, ) sin 0 1 0
0 sin 1 0 0 cos 0 0
0 0 , 0 1
0 0 . (2.14) 0 1 A három elemi forgatómátrixnak tehát a következő a felépítése. Amely tengely körül végezzük a forgatást, annak koordinátái nem változnak, tehát egységvektor áll a tengelynek megfelelő oszlopban. Az orientációs mátrixrész 2x2-es megmaradó almátrixának főátlójában a forgatási szög koszinuszait, a főátlón kívül pedig a szög szinuszait találjuk. Az eltolásra jellemző v transzlációs vektor értelemszerűen zérusvektor. 0 0 1 0
27
A homogén koordináta-rendszerek és transzformációk használatának nagy előnye, hogy a transzformációs mátrixot eltolások leírására is alkalmazhatjuk. Például legyen B és L két, kezdetben egybeeső ortonormális koordináta-rendszer, és tételezzük fel, hogy az L lokális koordináta-rendszer origóját a B bázis egységvektorainak irányába szeretnénk elmozdítani. Ha az x, y, és z irányú eltolásokat vx, vy és vz jelöli, akkor a transzformációt leíró 4x4-es Tran(v) homogén mátrix a következő: 1 0 Tran ( v) 0 0
0 0 vx 1 0 v y . 0 1 vz 0 0 1
(2.15)
E mátrixban az orientációt meghatározó részmátrix egységmátrix, az eltolásra jellemző paraméterek pedig a negyedik oszlopban jelennek meg.
2.1.4. Összetett homogén „passzív” szempont)
transzformációk
(„aktív”
és
Általános esetben a homogén transzformációs mátrix az L lokális koordinátarendszer eltolását és elforgatását egyaránt leírja egy B vonatkoztatási bázishoz képest. Az elemi forgatások és eltolások sorozatát elemi homogén transzformációs mátrixok összeszorzásával számolhatjuk ki. Mivel a mátrixszorzás nem kommutatív művelet, ezért nem mindegy, hogy az egyes forgatásokat és eltolásokat milyen sorrendben hajtjuk végre. Sőt, az L lokális koordináta-rendszer elforgatható vagy eltolható nemcsak a B bázisrendszerhez viszonyítva, hanem a saját tengelyei körül vagy mentén is. Ezeknek a különböző operációknak a hatását az összetett transzformációs mátrixra az alábbi algoritmussal írhatjuk le (Schilling 1990): 1. Inicializáljuk a T transzformációs mátrixot az egységmátrixszal (T = I), amely azt fejezi ki, hogy kezdetben a B bázis és az L lokális ortonormált koordináta-rendszerek egybeesnek; 2. A forgatásokat és eltolásokat jellemezzük a homogén transzformációs mátrixokkal; 3. Az összetett forgatásokat bontsuk elemi homogén transzformációs forgatások sorozatára; 4. Ha az L lokális koordináta-rendszert a B bázis valamely egységvektora körül vagy mentén transzformáljuk (aktív szempont vagy mozgás leírás),
akkor a T homogén transzformációs mátrixot balról szorozzuk az aktuális elemi forgatási vagy eltolási homogén transzformációs mátrixszal; 5. Ha az L lokális koordináta-rendszert valamely saját egységvektora körül vagy mentén transzformáljuk (passzív szempont vagy vonatkoztatási rendszer megváltoztatása), akkor a T homogén transzformációs mátrixot jobbról szorozzuk az aktuális elemi forgatási vagy eltolási homogén transzformációs mátrixszal; 6. Ha még további elemi transzformációkat hajtunk végre, akkor folytassuk 4gyel, egyébként álljunk meg Az eredményként kapott T összetett homogén transzformációs mátrix az L lokális koordinátákat a B bázis koordinátáiba képzi le. Tehát az összetett homogén transzformációs mátrix az egységmátrixból kiindulva építhető fel. A B bázis egységvektorai mentén vagy akörül történő eltolások és elforgatások balról szorzást jelentenek a megfelelő elemi homogén transzformációs mátrixszal. Ha pedig az L lokális koordináta-rendszer valamely egységvektora körül vagy mentén történik az elemi homogén transzformáció, akkor jobbról kell szorozni a megfelelő transzformációs mátrixszal annak érdekében, hogy az összetett homogén transzformációt leíró mátrixot megkapjuk. Példaként tekintsük az y tengellyel párhuzamos tengely körüli forgatást, amit elemi transzformációkból felépített, összetett transzformációként határozunk meg. Ha a párhuzamos tengely az XZ síkot a v = [vx, 0, vz]T helyvektorral jellemzett pontban döfi, akkor az összetett transzformáció három elemi transzformációra bontható. Elsőként a párhuzamos tengelyhez rögzített L lokális koordináta-rendszert a -v vektorral a B bázis origójába toljuk. (2.3. ábra) Ezután végrehajtjuk az y tengely körüli forgatást a szöggel. A harmadik lépésben pedig az L lokális koordináta-rendszert az eredeti pozíciójába toljuk vissza. Mivel az egyes transzformációkat a B bázishoz viszonyítva határoztuk meg – vagyis aktív szemléletmódot választottunk – az összetett homogén transzformáció mátrixa a következő lesz: T = Tran(v) Rot(y, ) Tran(-v)
29
2.3. ábra - Forgatás az y tengellyel párhuzamos tengely körül 1 0 T 0 0
0 0 v x cos 1 0 0 0 0 1 v z sin 0 0 1 0
0 sin 1
0
0 cos 0
0
0 1 0 0 0 0 1 0
0 0 vx 1 0 0 .(2.16) 0 1 v z 0 0 1
A mátrixok összeszorzását elvégezve az alábbi eredményre jutunk: cos 0 T sin 0
0 sin 0 1 0 cos 0
0
v x (1 cos ) v z sin 0 . v z (1 cos ) v x sin 1
(2.17)
Az eredményeket úgy is interpretálhatjuk, hogy kezdetben a B bázis és az L lokális koordináta-rendszer egybeesik. Első lépésben a lokális koordináta-rendszert eltoljuk, majd az így kapott lokális koordináta-rendszer y tengelye körül hajtjuk végre a forgatást, végül a második lépésben kapott lokális koordinátarendszert –v vektorral eltoljuk.
2.1.5. Rodrigues-transzformáció Az általános forgatómátrixokra az a jellemző, hogy a determinánsuk egységnyi. Ha egy B bázishoz képest az L lokális rendszert tetszőlegesen elforgatjuk, akkor ez a transzformáció leírható egy megfelelően választott u egységvektor körül szöggel végzett forgatással. Ezt az operációt Rodrigues-transzformációnak szokás nevezni.
Legyen B és L két ortonormált koordináta-rendszer és kezdetben essenek egybe. Legyen u egységvektor és tételezzük fel, hogy az L lokális koordinátarendszert megforgatjuk az u körül egy ismert szöggel. Ekkor a Rodriguestranszformáció mátrixa, Rodr(u, ), amely az L koordinátáit B koordinátáiba képezi le: u12 (1 C ) C u1 u 2 (1 C ) u3 S Rodr (u, ) u1 u3 (1 C ) u 2 S 0 .
u1 u 2 (1 C ) u3 S 2 u 2 (1 C ) C
u1 u3 (1 C ) u 2 S u 2 u3 (1 C ) u1 S
u 2 u3 (1 C ) u1 S
u3 (1 C ) C
0
0
2
(2.18) A képletekben a következő jelölési konvenciót alkalmaztuk: C = cos és S = sin. A fentiek belátása érdekében alkalmazzuk a következőket. Ha u* = [u1, u2, 0]T az u vektor XY síkra vett merőleges vetületét jelenti, akkor u u * u12 u 22 .
(2.19)
2.4. ábra - Rodrigues-transzformáció 31
0 0 0 1
Mivel az x és u* által bezárt szöget és az u* és u által bezárt szöget jelöli, valamint ||u|| = 1, ezért az alábbi összefüggések a 2.4. ábráról leolvashatóak. C = u1/u ,
(2.20)
S = u2/u ,
(2.21)
C = u ,
(2.22)
S = u3 . (2.23) A bizonyítás érdekében a Rodrigues-transzformációt bontsuk fel elemi homogén transzformációkra. Elsőként az L lokális koordináta-rendszert forgassuk meg a bázis z tengelye körül – szöggel: T = Rot(z, -) I = Rot(z, -) . (2.24) E transzformáció az u egységvektort az XZ síkba forgatja. Másodikként a kapott L lokális koordináta-rendszert az y tengely körül forgassuk el szöggel. Mivel ebben a lépésben is a bázishoz viszonyítva alkalmazzuk a transzformációt, az összetett homogén transzformációs mátrixot balról szorzással kapjuk meg: T = Rot(y, ) Rot(z, -) . (2.25) Miután az u egységvektort beforgattuk az x egységvektorba, hajtsuk végre a kívánt szögű forgatást az u = x egységvektor körül. Az összetett homogén transzformációs mátrix a következő lesz: T = Rot(x, ) Rot(y, ) Rot(z, -) . (2.26) Ezek után fordított sorrendben transzformáljuk vissza u egységvektort az eredeti helyzetébe. A B bázis koordináta-rendszer y tengelye körül hajtsunk végre egy forgatást – szöggel. E lépés a következő összetett homogén transzformációs mátrixot eredményezi: T = Rot(y, -) Rot(x, ) Rot(y, ) Rot(z, -) . (2.27) Utolsó lépésként forgassuk az L lokális koordináta-rendszert a bázis z tengelye körül szöggel. Ez a transzformációs lépés visszaállítja az u egységvektort az eredeti helyzetébe és a következő homogén transzformációs mátrixot kapjuk: Rodr(u, ) = Rot(z, ) Rot(y, -) Rot(x, ) Rot(y, ) Rot(z, -) . (2.28) Ha az elemi homogén transzformációs mátrixokat behelyettesítjük az előző képletbe és alkalmazzuk a (2.20) – (2.23) egyenleteket, akkor egyszerűsítés után (2.18) képletet kapjuk a Rodrigues-transzformáció mátrixára.
Nyilvánvaló, hogy a három elemi forgató mátrix a Rodrigues-transzformációs mátrix speciális esetei (Paul 1981). Más oldalról az is igaz, hogy ha adott egy általános forgató mátrix, akkor meghatározható az u egységvektor és forgatási szög. Legyen például Rot az általános forgató homogén transzformációs mátrix, az egyes elemeit pedig Rotij jelölje. Ha a mátrix főátlójában elhelyezkedő elemek összegét (a mátrix nyomát) a szokásos módon Sp (Rot) jelöli, akkor, ha kiszámoljuk a Rodrigues-mátrix nyomát és végrehajtunk egyszerűsítéseket, a következőket kapjuk1: Sp (Rot) = 2 + 2cos . Ebből pedig a Rodrigues-transzformáció forgatási szöge a következő:
Sp (Rot ) 1 . 2
arccos
(2.29)
(2.30)
Ha már ismerjük a forgatási szöget, akkor az u egységvektor, ami körül forgatunk, szintén meghatározható. Tekintsük ugyanis a főátlóra szimmetrikusan elhelyezkedő elemek különbségét és fejezzük ki az u egységvektor koordinátáit:
u1 1 u 2 2 sin u3
Rot 32 Rot 23 Rot13 Rot 31 . Rot 21 Rot12
(2.31)
Fontos megjegyezni, hogy u csak akkor meghatározott, ha 0 < < . Számítógépes megvalósítás esetén pedig, ha értéke 0, vagy közelében van, akkor u koordinátáit nem kapjuk meg pontosan.
2.1.6. Inverz homogén transzformáció A T homogén transzformációs mátrix geometriai interpretációja tehát az, hogy egy L lokális koordináta-rendszer origójának helyzetét és az egységvektorainak orientációját meghatározza egy B bázis koordináta-rendszerhez viszonyítva. A robotmanipulátorok vizsgálata során néha arra is szükségünk lesz, hogy a B bázis helyzetét és orientációját az L lokális koordináta-rendszerhez képest fejezzük ki. Tehát a T homogén transzformációs mátrix inverzét kell meghatároznunk. Mivel T általában nem elemi forgatási transzformáció ortonormált koordináta-rendszerek között, (amikor az inverz olyan mátrix, ahol a forgatás 1
A szakirodalomban (pl. Schilling 1990) sokszor nem homogén transzformációs leírási módot alkalmaznak és ekkor más eredményeket találunk a (17.2–29) és (17.2–30) képletekre.
33
szögének (–1)-szeresét kell behelyettesíteni a mátrixelemekbe, vagy ami ugyanazt jelenti, az R orientációs részt transzponálni kell), ezért az inverz meghatározása összetettebb feladat. Ha azonban a perspektívára vonatkozó vektorrész zérus vektor és a skálázó faktor egységnyi, akkor a T homogén transzformáció inverze egyszerűen meghatározható. Legyen ugyanis T homogén transzformációs mátrix, amely két ortonormált koordináta-rendszer között úgy teremt kapcsolatot, hogy a bal felső 3x3-as részmátrix, R, az orientációt határozza meg, a negyedik oszlop, v pedig az origók eltolását. Ekkor T inverze RT 1 T 0 0
R v . 0 1 T
(2.32)
Könnyen meggyőződhetünk arról, hogy T–1 valóban teljesíti az inverzre vonatkozó definíciót. A baloldali inverzre vonatkozóan végezzük el a következő számítást.
0 R 0 1 . T T 0 0 0 1 (2.33) Mivel az R orientációs részmátrix ortonormált koordináta-rendszerek között létesít kapcsolatot, ezért a korábban említett tulajdonságok miatt RT = R–1. Tehát T–1 T = I, ahol T–1 az előbbiekben definiált. Hasonlóan belátható, hogy T T–1 = I. Így T transzformáció inverze adott. Mivel az inverz meghatározásához nincs szükség numerikus módszerekre, ezért a meghatározás számítástechnikailag gyors és pontos. E módszer előnyeit majd a 17.4.4. szakaszban használjuk ki az úgynevezett inverz kinematikai feladat egyfajta megoldásánál. T
T v R R R v R 0 1 0 0 0 1 0 0 0 T
2.2. Céltárgyak és akadályok modellezése A munkatér céltárgyait és akadályait ugyanazzal a technikával modellezzük. Az objektumok felületét síklapokkal közelítjük. Az így kapott csúcsokat valamilyen sorrendben indexszel azonosítjuk, majd meghatározzuk a csúcspontok
homogén koordinátás leírásait. Ha a modellezés során n számú csúcsot használunk, akkor a leíró vektorokat 4xn méretű mátrixba foglalhatjuk össze. x1 x2 y y 1 2 Objektum z1 z 2 1 1
xn yn . zn 1
(2.34)
A leírás részletességét – a felület közelítésekor használt síklapok számát - a céltárgyak esetében nagyobbra választjuk, mint az akadályok modellezésekor, mert a célobjektumok manipulálásához pontosabb geometriai ismeretekre van szükség, mint az akadályok kikerüléséhez. Ha a céltárgyat egy adott pozícióból egy másik helyzetbe kell eljuttatni, akkor a manipuláció leírására homogén transzformációs mátrixot (T) használunk és a mozgatás előtti és utáni objektummodell kapcsolatát a következő egyenlet jellemzi: Céltárgyúj helyzet = T Céltárgykiinduló helyzet (2.35)
35
3. Manipulátorkarok mozgásának geometriai modellezése Az emberi karra emlékeztető robotkar vagy más szokásos megnevezéssel a soros manipulátor izületekkel egymáshoz kapcsolt kartagok sorozatából áll. Az ipari manipulátornak azonban egyenes vonalú mozgást biztosító izületei is lehetnek. Ebben az alfejezetben szisztematikusan koordináta-rendszereket fogunk rendelni minden egyes kartaghoz annak érdekében, hogy a karrendszerek mozgását leíró általános karegyenleteket kapjunk. Ennek érdekében először pontosítunk néhány fogalmat (pl. kartag, izület), majd bizonyos paramétereiket definiáljuk, amelyeket a leíráshoz fogunk alkalmazni.
3.1. Kartagok Az n mobilitásfokkal rendelkező manipulátor n izülettel egymáshoz kapcsolt kartag. A kartagok feladata, hogy állandó és meghatározott kapcsolatot biztosítsanak a kartag két végén elhelyezkedő izület között. Az i-edik kartag egy Kartagi(Ki, Di) paraméterhalmazzal írható le, ahol Ki a kinematikai paraméterek részhalmaza és Di a dinamikai paraméterek részhalmaza. A Ki és Di paraméterhalmazokat különböző módon adhatjuk meg attól függően, hogy milyen modellt alkalmazunk a manipulátor leírására. A Rodrigues-transzformációt alkalmazza például Lantos (Lantos 1991). Mi a kinematikai paraméterek Denavit–Hartenberg-leírását mutatjuk be, amely elemi homogén transzformációk használatán alapszik. A Ki paraméterhalmaz tartalmazza többek között a kartaghoz rendelt lokális koordinátákat, a kartag irányvektorának jellemzőit és az izületi tengelyek egységvektorait, a kartagok sebesség és gyorsulás jellemzőit. A dinamikai paraméterek Di halmaza tartalmazza a kartag tömegét, tehetetlenségi nyomatékait, erőket és nyomatékokat. A kinematikai párok olyan Pik értékekkel írhatók le, amelyek két kapcsolódó kartag (Kartagi, Kartagk) kinematikai értékeit tartalmazzák (Vukobratoviĉ 1986). Az izületi kapcsolódás típusától függően megkülönböztetjük a kinematikai párok osztályait. Ha két szomszédos kartag n szabadságfokú izülettel
kapcsolódik egymáshoz (n = 1, 2, …, 5), akkor j = 6 – n a kinematikai pár osztályát jelenti. Kartagok izületekkel sorban történő összekapcsolását kinematikai láncnak nevezzük. A kinematikai lánc tehát olyan paraméterhalmazzal jellemezhető, amely n darab egymással összekötött kinematikai pár paramétereit tartalmazza. A kartagok kapcsolódási szerkezetétől függően a kinematikai láncok lehetnek egyszerűek, összetettek, nyíltak, vagy zártak. Egyszerűnek nevezünk egy kinematikai láncot, ha nincsen benne egyetlen olyan kartag sem, amely kettőnél több kinematikai párhoz kapcsolódna. Összetett a kinematikai lánc, ha legalább egy kartag kettőnél több kinematikai párhoz kapcsolódik. A nyílt kinematikai lánc tartalmaz legalább egy olyan kartagot, amely csak egyetlen kinematikai párhoz tartozik. Ha minden egyes kartag legalább két kinematikai párhoz tartozik, akkor zárt kinematikai láncról beszélünk. A manipulátorok modellezésekor ebben a könyvben egyszerű, nyílt kinematikai láncokat tételezünk fel.
3.2. A Denavit–Hartenberg-leírás A manipulátorok kinematikai modellezésére alkalmazott, széles körben elterjedt egyik módszer a Denavit–Hartenberg-leíráson alapszik (Denavit, Hartenberg 1955). Ezt a technikát mechanizmusok kinematikai analízisére fejlesztették ki. Az alábbiakban bevezetjük azokat a jellemzőket, amelyeket a módszer alkalmaz, majd bemutatjuk azt az algoritmust, amivel lokális koordináta-rendszereket rendelünk az egyszerű, nyílt kinematikai lánc kartagjaihoz.
3.2.1. Kartag és izületi kinematikai paraméterek Tételezzünk fel egy egyszerű, nyílt kinematikai láncot n darab izülettel. Minden egyes kartag két paraméterrel jellemezhető, mint ahogy azt a 3.1. ábra szemlélteti. Itt az i-edik kartag az (i-1)-edik izületet az i-edik izülettel köti öszsze. A kartagra jellemző két paraméter az (i-1)-edik és i-edik mozgástengelyek közös normálisával kapcsolatban kerülnek meghatározásra. (Két kitérő egyenes közös normálisán, vagy más szavakkal normál transzverzálisán azt a szakaszt értjük, ami mindkét egyenesre merőleges. Belátható, hogy két kitérő egyenesnek pontosan egy közös normálisa van.) 1. Az a távolságot, amely a két, egymást követő izület tengelyeinek közös normálisa, a kartag általánosított hosszának, vagy egyszerűen a kartag hoszszának fogjuk nevezni. 37
2. A kartag csavarási szögét (a két kitérő tengely hajlásszögét) -val fogjuk jelölni és úgy kaphatjuk meg, ha az egyik izületi tengelyt önmagával párhuzamosan a közös normális mentén a másik izületi tengelyig toljuk. Abban a kivételes esetben, ha = 0, végtelen sok közös normális létezik, hiszen ilyenkor párhuzamos mozgástengelyekről van szó.
3.1. ábra - Kartag és izületi paraméterek Egyszerű, soros szerkezetű manipulátorok esetében minden egyes izület két kartagot kapcsol egymáshoz. Ezért minden izületi mozgástengely mentén két közös normálist definiálhatunk, egyet-egyet az egyes kapcsolódó kartagokhoz. Így a kartagok egymáshoz viszonyított elhelyezkedését két további paraméterrel írhatjuk le: 1. A b-vel jelölt mennyiség a két közös normálisnak az adott izületi tengelyen mért távolsága. A továbbiakban ezt izületi távolságnak fogjuk nevezni. 2. Az izületi szög a két kapcsolódó kartag közös normálisának az egymással bezárt szöge, amelyet a zi izületi tengelyre merőleges síkban mérünk úgy, hogy az egyik normálist párhuzamosan a másik közös normálisig toljuk az izületi tengely mentén. A b izületi távolság és az izületi szög az izület paraméterei. A manipulátor struktúrában különbséget teszünk eltolást és elforgatást biztosító izületek között. Azt, hogy melyik paraméter változik a mozgás során, az izület típusa határozza meg. Ha a kartag elcsavarodhat vagy billenhet az izületi tengely körül, akkor a mozgásra jellemző változó. Abban az esetben pedig, ha a kartag a tengely mentén egyenes vonalú mozgást végez, akkor b izületi távolság a változó paraméter. Az izületi paraméterekkel szemben a kartagparaméterek értékei mindig konstansok és a mechanikai tervezés alapján határozható meg értékük. Az iparban alkalmazott manipulátorok esetében a kartag csavarási szöge
/2 egész számú többszöröse. Néhány esetben az (i-1)-edik és az i-edik izületi tengely metszi egymást, ilyenkor a kartag általánosított hossza nulla. A kartag és az izületi paramétereket együttesen Denavit–Hartenberg kinematikai paramétereknek nevezzük. Egy n számú mozgástengelyt tartalmazó manipulátor esetében legalább 4n kinematikai paraméter szükséges annak biztosítására, hogy a manipulátor kinematikai konfigurációja meghatározott legyen. A négy kinematikai paraméter közül tehát három olyan konstans érték, melyet a mechanikai tervezés határoz meg, míg a negyedik érték a mozgás típusától függő változó. Derékszögű koordinátás kar esetében, amikor három, egymásra merőleges mozgástengely mentén történik a mozgás, a három izületi távolság a változó, míg az emberszerű manipulátorok esetében az első három mozgás paramétere az izületi szög. Minden más eset (henger-, gömbkoordinátás kartípus, SCARA manipulátor) e két szélsőség közé sorolható be, és az első három izületi változó között mind az izületi szöget, mind az izületi távolságot megtaláljuk.
3.2.2. Koordináta-rendszer-hozzárendelés a Denavit–Hartenberg-konvenció szerint Annak érdekében, hogy meghatározzuk a kinematikai lánc egyes elemei közötti kapcsolatot, minden egyes izülethez szisztematikusan egy-egy koordinátarendszert fogunk rendelni. Az i-edik kartag végéhez rögzítjük az Li lokális koordináta-rendszert. A Denavit–Hartenberg-konvenciók szerint a következő algoritmussal végezzük el a koordináta-rendszerek izületekhez rendelését: 1. A kartagok és izületek azonosításának érdekében úgy indexeljük az egyes kartagokat és koordináta-rendszereket, hogy az i-edik Li lokális koordinátarendszer az i-edik kartag végén helyezkedjen el; 2. A zi koordinátatengely mindig a mozgástengely irányába mutasson; 3. Meghatározzuk a zi-vel azonosított mozgástengelyek közös normálisát. Ekkor az xi lokális egységvektort zi-1 és zi irányvektorok keresztszorzatával a következő módon számolhatjuk: xi = zi-1 x zi ; (3.1) 4. Az Li koordináta-rendszer origóját a mozgástengely és az i-edik kartag közös normálisának metszéspontjába helyezzük; 5. Az yi koordinátatengelyeket úgy definiáljuk, hogy az aktuális xi és zi irányokkal jobbsodrású rendszert alkossanak: yi = zi x xi . 39
3.2. ábra - Szomszédos koordináta-rendszerek kapcsolata A Denavit–Hartenberg-konvenciókat követve, a manipulátor izületeihez rögzített koordináta-rendszerek közötti kapcsolatot négy elemi transzformáció sorozatával biztosíthatjuk. A két elemi forgatásból és két eltolásból felépülő öszszetett homogén transzformáció az i-edik koordináta-rendszert az (i-1)-edik koordináta-rendszerbe képezi le. A passzív szemléletű módszer szerint minden egyes lépésben az éppen aktuális lokális koordináta-rendszer valamely tengelye mentén vagy akörül hajtunk végre transzformációt. Érdemes megjegyezni, hogy a szakirodalomban aktív szemléletű leírást is találunk a szomszédos koordináta-rendszerek egymásba térképezésére (Wloka 1992). Az eljárás az (i-1)edik és i-edik koordináta-rendszer közötti megfeleltetésre a 3.3. ábrákon látható. Az egymást követő elemi transzformációk rendre a következők: 1. Az (i-1)-edik koordináta-rendszert forgassuk el a zi-1 tengely körül az i izületi szöggel. Ennek a transzformációnak az lesz az eredménye, hogy az így transzformált xi-1 tengely a rákövetkező xi tengellyel párhuzamos lesz. 2. Az első lépésben kapott lokális koordináta-rendszer z tengelye mentén toljuk el a lokális koordináta-rendszert az izületi távolsággal. A második transzformáció azt eredményezi, hogy az így kapott lokális koordináta-rendszer xi-1 tengelye és az i-edik koordináta-rendszer xi tengelye egy irányba mutat. 3. Ha a második lépésben kapott lokális koordináta-rendszert az xi-1 egységvektora irányában a kartag általánosított hosszával eltoljuk, akkor a transzformáció eredményeként kapott lokális koordináta-rendszer origója és xi-1 tengelye, valamint az i-edik koordináta-rendszer Oi origója és xi tengelye egybe fog esni.
3.3. ábra - A Denavit–Hartenberg-transzformáció elemei 4. Végül forgassuk el a kapott lokális koordináta-rendszert a kartag csavarási szögével az xi-1 egységvektora körül. E transzformáció eredményeként a kapott lokális koordináta-rendszer és az i-edik koordináta-rendszer egybe fog esni. Írja le a pi, és pi-1 ugyanazt a P pontot az i-edik és (i-1)-edik lokális koordinátarendszerben: 41
pi = [xi, yi, zi, 1]T , (3.2) T pi-1 = [xi-1, yi-1, zi-1, 1] . (3.3) Ekkor a két vektort a következők szerint feleltethetjük meg egymásnak: pi-1 = Ai-1,i pi , (3.4) ahol az Ai-1,i transzformációs mátrix az előbbiekben meghatározott négy elemi transzformációból származtatott összetett transzformációs mátrix. A következőkben ezt, az úgynevezett Denavit–Hartenberg-mátrixot határozzuk meg. A zi-1 tengely körül i szöggel történő forgatás transzformációs mátrixa: cos i sin i sin i cos i Rot ( z i 1 , i ) 0 0 0 0
0 0 0 0 . 1 0 0 1
(3.5)
A bi izületi távolsággal végrehajtott eltolás a zi-1 tengellyel egybeeső irányban:
1 0 Tran (0,0, bi ) 0 0
0 0 0 1 0 0 . 0 1 bi 0 0 1
(3.6)
A harmadik lépésben a rákövetkező xi tengellyel azonos irányban ai kartag hosszal mint paraméterrel végrehajtott eltolás transzformációs mátrixa: 1 0 Tran (ai ,0,0) 0 0
0 0 ai 1 0 0 . 0 1 0 0 0 1
(3.7)
Végül az xi egységvektorral egybeeső vektor körüli i szögű forgatás transzformációs mátrixa:
0 0 1 0 cos i sin i Rot ( xi , i ) 0 sin i cos i 0 0 0
0 0 . 0 1
(3.8)
A négy elemi műveletet tehát (i-1)-edik lokális koordináta-rendszer egységvektorai mentén, illetve körül hajtjuk végre, így az egyes homogén transzformációs mátrixokkal jobbról kell megszorozni az egységmátrixot, hogy az öszszetett homogén transzformációs mátrixot megkapjuk. A két szomszédos koordináta-rendszer közötti kapcsolatot biztosító transzformációs mátrix tehát Ai-1,i = Rot(zi-1, i) Tran(0,0,bi) Tran(ai,0,0) Rot(xi, i) . (3.9) A szorzásokat elvégezve az alábbi kartagkoordináta-transzformációt meghatározó eredményt kapjuk:
A i 1,i
cos i sin i cos i sin i sin i ai cos i sin i cos i cos i cos i sin i ai sin i .(3.10) 0 sin i cos i bi 0 0 1 0
A (3.9) egyenlettel meghatározott transzformációs mátrix a legáltalánosabb esetben biztosítja az i-edik koordináta-rendszer leképzését az (i-1)-edik koordináta-rendszerbe. Az Ai-1,i mátrix tehát egy olyan homogén transzformációt ír le, amely a második indexben megadott koordináta-rendszert az első indexnek megfelelő koordináta-rendszerbe mint bázisba képezi le. Az Ai-1,i mátrix negyedik oszlopa az Oi origó helyvektora az Li-1 koordináta-rendszerben. Miután megkaptuk két szomszédos koordináta-rendszer kapcsolatát leíró homogén transzformációs mátrixot (Ai-1,i, i = 1,..., n), könnyen meghatározható a j-edik és k-adik, (0 k < j n) koordináta-rendszerek között kapcsolatot teremtő homogén transzformáció mátrixa Ak,j = Ak,k+1 Ak+1,k+2... Aj-1,j , 0 k < j n . (3.11) E mátrix amellett, hogy leírja a j-edik koordináta-rendszer egységvektorait a kadik koordináta-rendszerben, még az Lj lokális koordináta-rendszer origójának pozícióját is megadja az Lk koordináta-rendszerben. A fenti indexértékek azért futhatnak n-ig, mert annak érdekében, hogy a szerszámközéppont (TCP) mozgását a lehető legegyszerűbben és a kartagok hasonló módon írjuk le, egy koordináta-rendszert az effektorhoz is szoktak rögzíteni.
3.2.3. Izületi koordináták tere Az izületi koordináták skalár mennyiségek, amelyek a kartagok egymáshoz viszonyított helyzetét határozzák meg. Izületi koordináta forgató izület eseté43
ben az izületi szög, míg egyenes vonalú mozgást biztosító izület esetében az izületi távolság. A gyakorlatban legtöbbször előforduló ötödosztályú kinematikai pár esetében egyetlen szabadságfokú relatív mozgást írhatunk le az (i-1)edik és i-edik kartag között a qi izületi koordináta segítségével. Fontos azonban megjegyezni, hogy az izületi koordináták referencia-értéke, azaz a qi = 0 (i = 1, 2, …, n) helyzet függ attól, hogy miként rendeltük az egyes koordináta-rendszereket a kartagokhoz. Egy nyílt, egyszerű kinematikai lánc esetén az izületi koordináták egy n dimenziós q vektort alkotnak:
q1 q 2 . q . . . q n
(3.12)
Az izületi koordináták tere (Q) n dimenziós, a (valós számokon alapuló) Rn valós tér altere. Q = {q: qi min < qi < qi max}, ahol q az izületi koordináták vektora, qi min és qi max, i = 1, ..., n az egyes izületi koordinátáknak a konstrukciós feltételek által meghatározott határértékei, n pedig az izületek száma. A manipulátor helyzete a munkatérben egyértelműen meghatározott, ha adott egy q vektor, amely eleme a Q térnek. A manipulátor-izületek leírása (Siegler 1987) során elsőként a forgó izületeket tárgyaljuk, ahol i az izületi koordináta vagy változó. A megismert általános esetben a zi egységvektorral a mozgástengelyt azonosítottuk, az xi egységvektor pedig a zi-1 és zi tengelyek közös normálisának irányába mutat. Az i-edik Li koordináta-rendszer Oi origója az izületi tengely és a közös normális metszéspontjában helyezkedik el. Geometriai szempontból azonban ki kell emelni két, gyakran előforduló esetet: amikor a két szomszédos izületi tengely párhuzamos egymással, illetve amikor metszik egymást. Szomszédos, párhuzamos mozgástengelyek esetén az Oi origó helyzetét úgy célszerű felvenni, hogy a bi+1 izületi távolság a következő kartag esetében zérus legyen. A megvalósított manipulátorok esetében sokszor előfordul, hogy a szomszédos mozgástengelyek metszik egymást. Ilyenkor, az általános esethez hasonlóan, az xi egységvektor a zi-1 és zi vektorokra egyaránt merőleges és a keresztszorzat segítségével számítható.
Transzlációs mozgást biztosító izület esetében bi izületi távolság az izületi koordináta vagy más szóval izületi változó.A Denavit–Hartenberg-módszer algoritmusa A manipulátorok előbb megismert kinematikai leírását az alábbi algoritmusban foglalhatjuk össze Schilling leírásához hasonlóan (Schilling 1990): 1. azonosítsuk az egyes izületeket 0-tól kezdődően (n-1)-ig; 2. az L0 ortonormált, jobbsodrású koordináta-rendszert úgy rendeljük a manipulátorkar első izületéhez, hogy a z0 egységvektor az izület mozgástengelyével egybeessék. Állítsuk az i indexet 1-re; 3. állítsuk a zi egységvektorokat az izületi mozgástengelyek irányába; 4. helyezzük az egyes Li lokális koordináta-rendszerek origóját vagy a zi és zi-1 mozgástengelyek metszéspontjába, vagy – kitérő egyenesek esetében – a közös normális és a zi tengely metszéspontjába; 5. a zi és zi-1 egységvektorok ismeretében keresztszorzással kiszámoljuk az xi egységvektorokat. Ha zi és zi-1 párhuzamos, akkor alkalmazzuk a fentiekben meghatározott szabályokat; 6. válasszuk yi-t úgy, hogy Li jobbsodrású koordináta-rendszert alkosson; 7. legyen i = i + 1. Ha i < n, lépjünk vissza 3-ra; egyébként folytassuk az algoritmust 8-cal; 8. helyezzük az Ln lokális koordináta-rendszer origóját a szerszámközéppontba (TCP). Mutasson zn a szerszám megközelítés-vektorának (a) irányába, yn az orientációs vektor és xn a normálvektor irányába. Legyen i = 1; 9. határozzuk meg i izületi szöget; 10. határozzuk meg bi izületi távolságot; 11. határozzuk meg ai általánosított kartaghosszt; 12. határozzuk meg i kartag csavarási szöget; 13. legyen i = i + 1. Ha i n, folytassuk 9-cel, egyébként fejezzük be az algoritmust. A fenti módszer tehát két fő részből áll. A 0-tól 8-ig tartó lépésekben (n+1) darab lokális koordináta-rendszert {L0, L1, ..., Ln} rendelünk a kartagok végeihez. Az algoritmus második felében (9-től 13. lépés), a kinematikai paraméterek értékét határozzuk meg az adott struktúrára vonatkozóan. A szerszámközépponthoz rendelt koordináta-rendszerből a bázis koordinátarendszerbe történő leképezés úgy kapható meg, ha a szerszámközéppontba el45
helyezet koordináta-rendszert a megelőző koordináta-rendszerbe képezzük le, majd lépésenként visszafelé hajtjuk végre a transzformációkat. Az A0,n transzformáció a szerszámközépponthoz rendelt, Ln koordináta-rendszert a 0 indexű bázisba képezi le. Ezt a transzformációt gyakran karmátrixnak is nevezik: A0,n(q) = A0,1(q1) A1,2(q2) ... An-1,n(qn) . (3.13) Ebben az egyenletben, ahogy az összetett homogén koordináta-transzformációt sorban kiszámoljuk, az egyes mátrixok második indexe mindig a leképzendő koordináta-rendszert jelöli, míg az első index a viszonyítás alapjául szolgáló bázist. A karmátrix kiszámítása érdekében sokszor célszerű a csuklónál két részre bontani a számítást. Ilyenkor két alfeladatot kapunk, melyek közül az első a karrendszer (szerszám) durva pozícionálását jelenti, míg a második a kéz és vele együtt a szerszám finompozícióját, orientációját határozza meg. E szétbontás azért is indokolt sok esetben, mert az alap kartípusok leírását az irodalomban megtalálhatjuk (Ránky 1985, Lantos 1991), a kéz mozgásainak leírására pedig más, hatékony modellek is rendelkezésre állnak, mint ahogy azt a későbbi pontokban látni fogjuk. Tehát ha a harmadik mozgástengely után, a csuklónál két részre bontjuk a karmátrix kiszámítását, akkor a következőket kapjuk: A0,csukló(q1, q2, q3) = A0,1(q1) A1,2(q2) A2,3(q3) = A0,3(q1, q2, q3) (3.14) Acsukló,n(q4, q5, …, qn) = A3,4(q4) A4,5(q5) ... An-1,n(qn) = = A3,n(q4, q5, …, qn) . (3.15) Az A3,n(q4, q5, …, qn) összetett homogén transzformáció a szerszámközépponthoz rendelt koordinátákat a csuklóhoz rendelt koordinátákba képzi le. Hasonlóan, A2,3(q3) csuklókoordinátákból könyökkoordinátákba, A1,2(q2) könyökkoordinátákból vállkoordinátákba és A0,1(q1) vállkoordinátákból a törzs báziskoordinátáiba biztosít leképezést. Tehát az A0,3(q1, q2, q3) összetett homogén transzformáció a csuklókoordinátákat a törzs viszonyítási rendszerébe térképezi. Ha a csuklónál kettévágott részek leírása ismert, akkor szorzással a teljes karrendszer leírása azonnal megkapható: A0,n(q) = A0,3(q1, q2, q3) A3,n(q4, q5, …, qn) . (3.16) A két mátrix összeszorzásával az egész manipulátort leírtuk. Ha pedig ismert a manipulátor leíró mátrixa, akkor az behelyettesíthető a következő egyenletbe (ezt az egyenletet manipulátor-egyenletnek is nevezik):
v(q) R(q) . (3.17) A 0,n 0 0 1 0 Az izületi változó (q) minden egyes értékére az A0,n(q) manipulátor-mátrix kiszámítható. Az R(q) 3x3-as bal felső sarokmátrix a szerszám orientációját határozza meg, míg a v(q) 3x1-es vektor a szerszámközéppont helyzetét adja. Az orientációs mátrix három oszlopvektora a szerszámhoz rendelt (n) normál-, (o) orientációs és (a) közelítés-vektort a bázis koordináta-rendszerhez viszonyítva jelenti. Az általános bevezetés után a 17.4.2.2 pontban egy konkrét példán mutatjuk majd be a Denavit–Hartenberg-modell felépítését és számítástechnikailag hatékony, szimbolikus számítását.
3.3. Külső koordináták használata a manipulátormodellezésben A Denavit–Hartenberg-módszer mellett más, tömör technikákat is alkalmaznak manipulátorok modellezésére. Ebben a szakaszban is ilyen leírási lehetőségekkel foglalkozunk. A külső, vagy világ koordináták (Vukobratoviĉ 1986) olyan xei, i = 1, ..., m paramétereket jelentenek, amelyek részben vagy teljesen leírják a manipulátor kezének helyzetét és orientációját egy viszonyítási bázishoz képest. A bázis megválasztása az adott alkalmazástól függhet. A leggyakrabban egy fix koordináta-rendszert rögzítenek a manipulátor törzséhez és ez jelenti a viszonyítási rendszert. Az xei külső koordináták egy m dimenziós xe vektort alkotnak: xe1 xe 2 . xe . . . xem
(3.18)
A külső koordináták megválasztása és a vektor dimenziója nagyban függ a feladattól és magától a manipulátortól. A gyakorlatban előforduló ipari manipulátorok esetében m = 6 a legáltalánosabb, amely lehetővé teszi tetszőleges pozíció és orientáció azonosítását. Ezért hatdimenziós külső koordinátákat fogunk 47
használni. Az általánosan használt technika szerint a külső koordináták első három eleme a szerszámközéppont helyzetét határozza meg, míg a többi koordináta az orientációt jelenti a bázishoz képest. A külső koordináták vektorát két részre bontva xT x e Te I , x e II
(3.19)
ahol xeI R3 az effektor helyzetét és xeII Rm–3 az effektor orientációját jelenti. A helyzetet az alábbiak valamelyikével szokás megadni: 1. xeI = [x, y, z]T . (3.20) 2.
xeI = [r, , z]T .
(3.21)
3.
xeI = [r, , ]T .
(3.22)
Az x, y és z a derékszögű koordinátákat, r, , z a hengerkoordinátákat és r, , a gömbkoordinátákat jelenti. A derékszögű koordinátáknak szerepe elsődleges az ipari gyakorlatban, de a henger- és gömbkoordináták használata bizonyos feladatokban kényelmes és hatékony lehet. A pozíciót meghatározó külső koordinátákkal általános ismertségük miatt a továbbiakban nem foglalkozunk. A robotika témájú szakkönyvekben azonban szokásos e koordináta-rendszerek kapcsolatát leíró homogén transzformációs mátrixok levezetése (Paul 1981, Siegler 1987). Az effektor orientációjának meghatározására különböző technikákat alkalmaznak (Schilling 1990). A legelterjedtebb azonban az Euler-szögekkel való leírás. Az xeII vektor ilyenkor az alábbi formátumú xeII = [, , ]T .
(3.23)
Az , , szögek a koordinátatengelyek körüli forgatás paraméterei. Az Eulerszögek különböző típusait szokták megadni attól függően, hogy az egyes elemi forgatások milyen sorrendben játszódnak le az x, y és z tengelyek körül.
3.3.1. A csukló mozgásának leírása Euler-szögekkel Ha egy manipulációs feladatot kell megoldanunk, akkor a manipulátor effektor orientációja egy bázishoz mint vonatkoztatási rendszerhez képest a Denavit– Hartenberg transzformációs mátrixokból származtatható. A szerszámközépponthoz rendelt koordináta-rendszer és a bázis kapcsolatát leíró transzformációs mátrixot a (3.13) egyenlet adja meg.
Az orientáció azonban a teljes 3x3-as sarokmátrix használata helyett három szöggel is leírható. Ezek a változók az Euler-szögek lesznek. A közönséges tér egy valódi forgatását leíró R mátrix, ahol a det(R) = 1, többféleképpen felbontható három elemi forgatási transzformációt leíró mátrix szorzatára. Ilyen felbontás például az R = Rot(z, ) Rot(y, ) Rot(z, ) = TEuler .
(3.24)
E képletben , , és az Euler-szögek. Robotikai szakirodalmakban az így definiált szögeket „Roll-Pitch-Roll” szögeknek is szokás nevezni utalván, a kéz csavaró és billentő mozgatásaira. A C, S, C, S, C és S rövidítések jelöljék a cos, sin, cos, sin, cos és sin trigonometrikus függvényeket. Ekkor a homogén forgató mátrix: cos sin R 0 0
sin cos 0 0
0 0 cos 0 0 0 1 0 sin 0 1 0
CCC SS SCC CS SC 0 (3.25)
0 sin 1
0
0 cos 0
0
0 cos 0 sin 0 0 1 0
CCS SC
CS
SCS CC
SS
SS
C
0
0
sin cos 0 0
0 0 0 0 1 0 0 1
0 0 0 1
A három Euler-szög , és egyértelműen meghatározza az R forgatást. A = 0 és = esetek kivételével, 2 egész számú többszöröseinek erejéig, az adott forgatás is egyértelműen meghatározza az Euler-szögeket. Ezért bármely orientáció – az elfajuló eset kivételével – leírható egy z tengely körüli, szögű forgatással, amelyet az így kapott y’ tengely körüli szöggel jellemezhető forgatás követ, végül a kapott lokális koordináta-rendszer z” tengelye körül forgatunk szöggel. Speciális „Roll-Pitch-Roll” geometriát kapunk, ha a második forgatás szöge = 0, vagy = . Ekkor az első és harmadik forgatás ugyanazon tengely körül történik, és az Euler transzformációt leíró homogén mátrixok a következők lesznek.
49
cos( ) sin( ) sin( ) cos( ) T Euler ( , 0, ) 0 0 0 0
0 0 1 0
0 0 , (3.26) 0 1
3.4. ábra - „Roll-Pitch-Roll” típusú Euler-szögek (Korn 1975) alapján
cos( ) sin( ) 0 sin( ) cos( ) 0 T Euler ( , , ) 0 0 1 0 0 0
0 0 0 1
. (3.27) Az R forgató mátrixot hat különböző módon fejezhetjük ki két különböző koordinátatengely körüli forgatások szorzataként. Egy másik gyakran használt reprezentáció R = Rot(z, *) Rot(x, *) Rot(z, *) = TRYR .
(3.28)
Ebben az úgynevezett „Roll-Yaw-Roll” transzformációban a második forgatás pásztázó típusú. A fentieken kívül szintén hat lehetőségünk van arra, hogy a forgató mátrixot három különböző tengely körüli elemi forgatásra bontsuk. E lehetőségek közül az úgynevezett „Roll-Pitch-Yaw” megvalósítást a robotikán kívül széles körben alkalmazzák repülők, űrhajók, hajók és pörgettyűk mozgásának leírására.
3.3.2. A „Roll-Pitch-Yaw” transzformáció Ha adott a csavarás (), a bólintás () és a pásztázás () szöge, akkor az R forgató mátrix: R = Rot(z, ) Rot(y, ) Rot(x, ) = TRPY . (3.29) Az első és második szög ekkor megegyezik az elsőként tárgyalt, szűkebb értelmű Euler-szögekkel, míg a harmadik forgatás az új lokális koordináta-rendszer x” tengelye körül történik. A már megismert rövidítéseket alkalmazva, az egyes Euler-szögek trigonometrikus függvényeire az alábbi transzformációs egyenletet kapjuk T RPY cos sin 0 0 cos 0 sin 0 1 sin cos 0 0 0 1 0 0 0 0 0 1 0 sin 0 cos 0 0 0 0 1 0 0 0 1 0 0 CC CSS SC CSC SS SC SSS CC SSC CS S CS CC 0 0 0
0 cos sin
0 sin cos
0
0
0 0 (3.30) 0 1
0 0 0 1
51
3.5. ábra - „Roll-Pitch-Yaw” geometria robotkéz esetében Elfajuló „Roll-Pitch-Yaw” transzformációt kapunk, ha a második elemi forgató transzformáció szöge = /2, vagy = -/2. Ekkor az első és a harmadik forgatási tengely egybeesik és ellentétes vagy azonos irányú az szög előjelétől függően:
0 sin( ) cos( ) 0 cos( ) sin( ) T RPY ( , 90, ) 1 0 0 0 0 0 0 sin( ) cos( ) 0 cos( ) sin( ) T RPY ( , 90, ) 1 0 0 0 0 0
0 0 , 0 1 (3.31)
0 0 0 1 . (3.32) Összegezve, azt tapasztalhatjuk, hogy ha adott három Euler-szög, akkor bármely konfiguráció esetében a forgató mátrix relatíve kis számítási igénnyel meghatározható.
Másrészt, ha ismert az R orientációs részmátrix, akkor az ehhez tartozó „RollPitch-Yaw” típusú Euler-szögek a következőképpen számíthatóak. Tételezzük fel, hogy adott az A0,n transzformációs mátrix, mely a szerszámközépponthoz rendelt koordinátákat a bázisba leképezi: A 0,n
Orientáció s almátrix T 0
pozíció vektor . 1
(3.33)
A pozíciót leíró negyedik oszlopvektorral most nem foglalkozunk, ezért:
A 0,n
nx ox a x ny oy ay nz oz a z 0 0 0
. CC CSS SC SC SSS CC . T RPY S . CS 1 0 0
CSC SS SSC CS CC 0
. . . 1
. (3.34) Így az egyenletrendszer kilenc, nem triviális egyenletet tartalmaz a három ismeretlen szögre. Egyfajta megoldás rögtön adódik, ha a mátrix következő elemeit tekintjük: -nz = S
= arcsin(-nz) ,
(3.35)
oz = SC
= arcsin(oz /cos) ,
(3.36)
ny = SC = arcsin(ny /cos) . (3.37) Ez a megoldási módszer ugyan megfelelőnek tűnik, azonban numerikus számítások esetén nem ad megfelelően stabil megoldásokat a következő problémák miatt (Siegler 1987): 1. a (3.36) és (3.37) nem definiált, ha = -/2, vagy = /2, tehát ezek speciális esetként kezelendőek; 2. ha az arcsin függvényt használjuk, nemcsak a kapott szög előjele határozatlan, hanem a számítás pontossága is nagyban függ a trigonometrikus függvény értékétől; 3. az (3.36) és (3.37) egyenletekben ismét használjuk az arcsin függvényt, sőt, a kapott szög koszinuszával osztunk is, ami újabb pontatlanságot eredményezhet. Annak érdekében, hogy elkerüljük e problémákat, a szögek meghatározására az arctg függvény kétparaméteres változatát használjuk. E függvény numerikusan stabilabb megoldásra vezet, mert a pontosság az egész értelmezési tartományon 53
közel azonos és a két érték előjele alapján a teljes 2 tartományban ad értéket. A legtöbb programnyelvben ez az inverz függvény adott, ha pedig nem könyvtári elem, akkor magunk is könnyen elkészíthetjük az egy paraméteres inverz tangens függvény használatával. A numerikusan stabilabb eredmény érdekében tehát a , , Euler-szögek tangenseit próbáljuk meghatározni. Ilyen megoldásra mutat példát az alábbi módszer: -nz = S ,
(3.38)
2 2 2 2 2 nx n y oz a z 2(C ) .
(3.39)
E két egyenletből a szög meghatározható: ar ctg(
nz (n n o2z a2z ) / 2 2 x
2 y
) .
(3.40)
1. Abban az esetben, ha (C)2 0, azaz a (3.34) egyenletrendszerben -nz 1, a „Roll” típusú forgatás szögét, -t a következő módon számolhatjuk ki: CC = nx ,
(3.41)
SC = ny ,
(3.42)
amiből rögtön adódik, hogy = arctg(ny / nx) .
(3.43)
A „Yaw”-nak nevezett szög pedig az alábbiak szerint számítható: CS = oz ,
(3.44)
CC = az , És ebből az arkusztangens függvényt alkalmazva
(3.45)
= arctg(oz / az) .
(3.46)
2. Abban az esetben, ha (C) = 0, azaz = /2 és a (3.34) egyenletrendszerben -nz = 1, akkor a szögek meghatározására az alábbi módszert használhatjuk: 2
ha = /2, azaz nz = -1: ay - ox = SSC - CS - CSS + SC = = (SC - CS)(S + 1) = sin( - )(sin + 1) , (3.47) ax + oy
= CSC + SS + SSS + CC =
= (CC + SS)(S + 1) = cos( - )(sin + 1) . (3.48) Ebből pedig a két Euler-szög különbsége, - = arctg((ay - ox) / (ax + oy)) .
(3.49)
Hasonlóan kaphatjuk a két Euler-szög összegére a megoldást az = -/2, azaz nz = 1 esetben: ay + ox = (SC + CS)(S - 1) = sin( + )(sin - 1) , (3.50) ax - oy = (CC - SS)(S -1) = cos( + )(sin - 1) , (3.51) és így + = arctg((ay + ox) / (ax - oy)) .
(3.52)
55
4.
A direkt és az inverz kinematikai feladat
4.1. Direkt és inverz kinematikai feladat kitűzése A manipulátor szerszámközéppont helyzete és orientációja a külső koordináták terében egyértelműen meghatározott, ha adott egy izületi koordinátákat tartalmazó q vektor. Egy n szabadságfokú manipulátor esetében az izületi változók vektora a 17.3.2.3 pont szerint q = [q1, q2, …, qn-1, qn]T . (4.1) Az ismeretlen külső koordináták vektora pedig a következő: xe = [xe1, xe2, …, xem-1, xem]T . (4.2) Az alábbi egyenlet megoldása az úgynevezett direkt kinematikai feladat megoldását jelenti. xe = (q) . (4.3) Tehát ha ismerjük az egyes izületek beállítását és ebből meghatározzuk a szerszámközépponthoz rendelt koordináta-rendszer helyzetét, valamint orientációját, akkor a direkt kinematikai feladatot oldottuk meg. Az inverz kinematikai feladaton azt értjük, hogy ha ismert a szerszámközéppont elvárt helyzete és orientációja (külső koordinátákban), akkor milyen izületi beállításokkal valósíthatjuk ezt meg. E problémát úgy is megfogalmazhatjuk, hogy a q = –1(xe) (4.4) egyenlet megoldását keressük. Ez a feladat sokkal összetettebb, mint a direkt kinematikai probléma, hiszen nemlineáris, trigonometrikus függvényeket tartalmazó egyenletrendszert kell megoldani.
4.2. A direkt kinematikai feladat szimbolikus megoldása A robotmanipulátor kinematikai egyenleteinek szimbolikus megoldása a manipulátorok hatékony vezérelhetősége miatt rendkívül fontos feladat. Az alacsony költségű számítógépek világában a valós idejű mozgásvezérlés egyre fontosabb elvárás. E jellemző elérése érdekében a legkisebb számítási igényt jelentő módszert kell választani. A szimbolikus megoldás használata esetleges numerikus számítási módszerek helyett azért lényeges, mert felgyorsítja a manipulátor pályájához szükséges vezérlő jelek meghatározását. A szimbolikus alakú kinematikai egyenletek explicit trigonometrikus formában írják le a manipulátor szerszám helyzetét és orientációját az izületi koordináták függvényében. Ilyenkor a számítás a valós számkörben a lehető legkevesebb művelettel oldható meg.
4.2.1. Előrehaladó és visszafelé haladó szimbolikus kapcsolatok A direkt kinematikai feladat számítógépes megoldása a Denavit–Hartenbergleíráson alapszik. E módszer lehetővé teszi a homogén transzformációs mátrixok előrehaladó és visszafelé haladó rekurzív szimbolikus számítását. A számítások irányát az határozza meg, hogy a szerszámközépponthoz rendelt koordináta-rendszer helyzetét és orientációját vizsgáljuk visszafelé haladva a csukló, a könyök, a váll és végül a törzs koordináta-rendszerében, vagy báziskoordinátákba képezzük le egymás után a váll, a könyök, a csukló és végül a szerszámközépponthoz rendelt rendszer koordinátáit. Az Ai-1,i homogén transzformációs mátrix a szomszédos koordináta-rendszerek között teremt kapcsolatot úgy, hogy az Li koordinátáiba képezi le az Li-1 lokális koordinátákat. A transzformációt a (3.10) Denavit–Hartenberg-mátrix írja le. A direkt feladat szimbolikus megoldása során ezeket a transzformációs mátrixokat használjuk fel az A0,n homogén transzformációs mátrix előállítására. Mivel ez a mátrix a szerszámközépponthoz rendelt Ln koordináta-rendszer helyzetét és orientációját a bázishoz képest definiálja, ezért, ha sikerül A0,n elemeit meghatározni adott q izületi koordináták esetében, akkor a külső koordinátákat könnyen megkaphatjuk. Ha derékszögű koordinátákat alkalmazunk, akkor a mátrix negyedik oszlopa rögtön szolgáltatja a pozíciót, henger- és gömbkoordináták esetében pedig ismert összefüggésekkel (Paul 1981) kapunk eredményt. Az orientációt 17.3.3 szakaszban bemutatott módon meghatározhatjuk 57
az Euler-szögekkel. Ezek alapján a következőkben azt tételezzük fel, hogy a direkt kinematikai feladat megoldásához elegendő meghatározni az A0,n. homogén transzformációs mátrixot q izületi koordináták függvényében. A manipulátort leíró mátrix (3.13) szerint A0,n = A0,1 A1,2 ... An-1,n . (4.5) A mátrixok szorzása ebben az egyenletben elvégezhető úgy is, hogy a jobb oldalon kezdünk és az Ai-1,i i = n-1, ..., 1 mátrixokkal rendre balról szorozzuk a részeredményeket, de indulhatunk a bal oldalról is és az Ai-1, i i = 2,..., n mátrixokkal jobbról szorzunk. Abban az esetben, ha az A0,n számításához balról szorzunk rekurzívan, akkor visszafelé haladó szimbolikus megoldásról beszélünk: A0,n = (A0,1 (A1,2 (... (An-2,n-1 An-1,n)))) . (4.6) Ilyenkor a következő visszafelé haladó relációk szolgáltatják a részeredményeket: Ai-1,n = Ai-1,i Ai,n , i = n-1, ..., 1 . (4.7) Az Ai-1,n bal felső 3x3-as részmátrixa az Ln lokális rendszer orientációját írja le az Li-1 lokális rendszerben (4.1. ábra), negyedik oszlopa pedig a szerszámközéppont (Ln origójának) helyvektora az Li-1 lokális origóhoz képest. Az Ai-1,n mátrix elemei sebesség adatok meghatározásán kívül felhasználhatóak a későbbiekben az úgynevezett inverz kinematikai feladat megoldásához is.
4.1. ábra - Rekurzív visszafelé haladó kapcsolatok (Vukobratoviĉ 1986) alapján
4.2. ábra - Előrehaladó rekurzív kapcsolatok (Vukobratoviĉ 1986) alapján Ha a másik oldalról kezdjük a szorzást, akkor az A0,n mátrix a következők szerint is meghatározható: A0,n = ((((A0,1 A1,2) ... )An-2,n-1)An-1,n) . (4.8) Az előrehaladó szimbolikus rekurzív kapcsolatokat az alábbi mátrixok szolgáltatják A0,i = A0,i-1 Ai-1,i , i = 2,..., n . (4.9) Az A0,i mátrix 3x3-as felső sarokmátrixa az Li lokális koordináta-rendszer orientációját jelenti a bázisrendszerhez viszonyítva, míg a mátrix negyedik oszlopa a bázis origójától az i-edik kartag végéhez mutató helyvektor. Az A0,i i = 2, ..., n mátrixokat is több helyen felhasználják. Így a sebesség- és gyorsulásjellemzők számításában, vagy a robotmanipulátorok grafikus mozgásszimulációjakor is alkalmazzák. Mi a 17.4.4. szakaszban az inverz kinematikai feladat megoldásához fogjuk felhasználni. Az előrehaladó és a visszafelé haladó rekurzív szimbolikus megoldások számítástechnikai komplexitása közel azonos. Az eltérés csak a paraméterek csoportosításából adódik.
4.2.2. A direkt kinematikai feladat szimbolikus megoldása humanoid robotmanipulátor esetében A humanoid manipulátorkar (4.3. ábra) az egyik legszélesebb körben alkalmazott típus. A manipulátor első függőleges mozgástengelye körül elfordulhat a 59
4.3. ábra - Humanoid kartípus törzs. A váll és a könyök párhuzamos tengelyű, billentő, forgó izület. A csukló az előzőekkel szintén párhuzamos mozgástengely körül billent. A kéz – a finom pozícionálás érdekében – a tengelye körül csavaró mozgást végez. Bizonyos manipulátoroknál a kéz pásztázó mozgáslehetősége biztosítja a hatodik szabadságfokot. Az egyszerűség kedvéért mi egy öt szabadságfokú manipulátorra (pl. ROB3) mutatjuk be az előrehaladó, majd utána a visszafelé haladó rekurzív megoldást. Elsőként a Denavit–Hartenberg-algoritmus (17.3.2.4. pont) szerint jobbsodrású derékszögű koordináta-rendszereket rendelünk az egyes izületekhez és a szerszámközépponthoz (4.4. ábra).
4.4. ábra - Az öt szabadságfokú karhoz rendelt koordináta-rendszerek és paraméterek
Az első izület mozgástengelye függőleges, tehát a z0 tengely ilyen irányú és felfelé mutatónak választhatjuk. Az x0 és y0 tengelyek a z0-ra merőleges síkban fekszenek és ezen belül szabadon választhatók meg. A második, billentő izület mozgástengelye vízszintes. A modellünkben a tengely befelé mutat, a rajz síkjára merőlegesen. A z0 és z1 tengelyek metszik egymást, így az L1 koordináta-rendszer origóját e pontba helyezzük. Az x1 és y1 egységvektorokat keresztszorzással határozzuk meg: x1 = z0 x z1 , y1 = z1 x x1 . (4.10) A következő izület mozgástengelye (z2) párhuzamos az előző, z1 iránnyal, tehát egy síkban fekszenek. A lokális koordináta-rendszer origója a felkar végén helyezkedik el. A két mozgástengelyre egyaránt merőleges irány, vagyis a kartag iránya lesz az x2 tengely. Az y2 megválasztása a jobbkézszabály szerint történik. A negyedik izületre pontosan ugyanazok a geometriai viszonyok igazak, mint amit az előző izület esetében már tárgyaltunk. Így z3 párhuzamos z2-vel és x3 alkar irányú. Az utolsó mozgáslehetőség a csavaró forgás. Ekkor a z4 tengely iránya megegyezik a kéz tengelyének irányával. Az L4 koordináta-rendszer origója egybeesik az L3 koordináta-rendszer origójával és a csuklóban helyezkedik el. Mivel z3 a manipulátorkar síkjára merőleges (a 4.4. ábrán befelé mutat) és z4 kéz irányú, ezért az x4 irány keresztszorzattal számolható. Befejezésül, helyezzünk egy jobbsodrású derékszögű koordináta-rendszert a szerszámközéppontba. Válasszuk a z5 irányt úgy, hogy az a megközelítés iránya legyen. Ekkor z5 kézirányú lesz és így a z4 vektorral azonos irányba mutat. Az y5 egységvektor az orientációt határozza meg és ezért az egyik ujjtól a másik irányába mutat. Végül x5 a normális iránya. Szokás a szomszédos koordináta-rendszerek kapcsolatát leíró transzformációk paramétereit táblázatban összefoglalni. A 4.1. Denavit–Hartenberg-táblázat sorai az egymás utáni koordináta-rendszerek közötti leképzést ismertetik. Az első oszlopban a transzformáció indexe szerepel, a másodikban a leképzés izületi változójáról kapunk felvilágosítást, míg a további oszlopokban az elemi transzformációk aktuális paramétereit olvashatjuk.
61
4.1. táblázat A humanoid kar Denavit–Hartenberg kinematikai paraméterei Transzfor -máció 01 12 23 34 45
Izületi koordináta (változó) qi
1 2 3 4 5
Forgatás zi-1 körül i szöggel
1 2 3 4 5
Eltolás zi-1 mentén bi távolsággal b1 0 0 0 b5
Eltolás xi irányban ai távolsággal 0 a2 a3 0 0
Forgatás xi körül i szöggel 90° 0° 0° 90° 0°
A humanoid kartípus Denavit–Hartenberg-féle transzformációs mátrixait a (3.10) egyenletbe történő behelyettesítéssel kaphatjuk. Az Ai,i-1 i = 1,..., 5 homogén transzformációs mátrixok rendre a következők, ha C1, C2, …, C5, és S1, S2, …, S5 rövidítéseket alkalmazunk az első, második, …, ötödik (qi = i) izületi koordináta megfelelő trigonometrikus függvényeire:
A 0,1
C1 S1 0 0
A1, 2
C 2 S 2 S 2 C2 0 0 0 0
0 a2 C 2 0 a2 S 2 , 0 1 0 1
(4.12)
A 2,3
C 3 S 3 S 3 C3 0 0 0 0
0 a 3 C 3 0 a3 S 3 , 1 0 0 1
(4.13)
A 3, 4
C 4 S4 0 0
0 0 , 0 1
(4.14)
0 S1 0 C1 1 0 0 0
0 S4 0 C4 1 0 0 0
0 0 , b1 1
(4.11)
C 5 S 5 S 5 C5 0 0 0 0
0 0 0 0 . (4.15) A 4,5 1 b5 0 1 Az egyes transzformációk ismeretében a direkt kinematikai feladat rekurzív, visszafelé haladó szimbolikus megoldását mutatjuk be. A szerszámközépponthoz rendelt koordináta-rendszert a csukló koordináta-rendszerébe a következő mátrix képezi le:
A 3, 5 A 3, 4 A 4 , 5
C 4 C 5 C 4 S 5 S 4 b5 S 4 S 4 C 5 S 4 S 5 C 4 b5 C 4 . S5 0 0 C5 0 0 1 0
(4.16)
Ha alkalmazzuk a C2,3 és S2,3 rövidítéseket a megfelelő izületi szögek összegének szinuszára és koszinuszára, akkor a következő mátrix a szerszámközéppont koordinátáit a könyök koordinátáiba képezi le:
A 2,5 A 2,3 A 3,5
C 3, 4 C 5 C 3, 4 S 5 S 3, 4 b5 S 3, 4 a3 C 3 S 3, 4 C 5 S 3, 4 S 5 C 3, 4 b5 C 3, 4 a3 S 3 . S5 0 0 C5 0 0 1 0
(4.17) Fontos megjegyeznünk, hogy egymás utáni párhuzamos tengelyű forgató izületek esetén az izületi változók a szögfüggvények argumentumában egyszerűen összeadódnak, mint ahogy azt a (4.17) egyenletben is látjuk. A szerszámközépponthoz rendelt koordináta-rendszer vállba történő leképzését az A1,5 transzformáció írja le. A C2,4 és S2,4 rövidítések a második, harmadik és negyedik izületi szög összegének szinuszát és koszinuszát jelölik a kifejezésben.
A1,5 A1, 2 A 2,5
C 2, 4 C 5 C 2, 4 S 5 S 2, 4 b5 S 2, 4 a3 C 2,3 a 2 C 2 S 2, 4 C 5 S 2, 4 S 5 C 2, 4 b5 C 2, 4 a3 S 2,3 a2 S 2 . S5 0 0 C5 0 0 1 0 (4.18) 63
Végül a manipulátor transzformáció a következő: A 0,5 A 0,1 A1,5 C1 C 2, 4 C 5 S 1 S 5 C1 C 2, 4 S 5 S 1 C 5 C1 S 2, 4 C1 (b5 S 2, 4 a3 C 2,3 a 2 C 2) S 1 C 2, 4 C 5 C1 S 5 S 1 C 2, 4 S 5 C1 C 5 S 1 S 2, 4 S 1 (b5 S 2, 4 a3 C 2,3 a 2 C 2) . C 2, 4 b5 C 2, 4 a3 S 2,3 a 2 S 2 b1 S 2, 4 S 5 S 2, 4 S 5 0 0 0 1
(4.19) Az A0,5 mátrix harmadik és negyedik oszlopában a megközelítés vektora és a v helyzetvektor – a vártnak megfelelően – független az 5 izületi szögtől. A fenti képletekből az is látható, hogy bár az egyes kifejezések viszonylag összetettek, a mátrixok számítása során 10 trigonometrikus függvényhívással, 22 szorzással és 13 összeadással a számítások megvalósíthatók. A szimbolikus megoldás kihasználja a párhuzamos mozgástengelyek adta egyszerűsítési lehetőségeket és ezért számítástechnikailag gyorsabb megoldáshoz vezet. Az előrehaladó rekurzív szimbolikus kapcsolatok meghatározása érdekében rendre jobbról szorozzuk össze a mátrixokat. A könyök és a törzs kapcsolatát leíró transzformáció az alábbi:
A 0, 2 A 0,1 A1, 2
C1 C 2 C1 S 2 S1 a 2 C1 C 2 S1 C 2 S1 S 2 C1 a 2 S1 C 2 . S2 0 C2 a 2 S 2 b1 0 0 1 0
(4.20)
A következő transzformáció a csuklókoordinátákat képezi le a törzs koordinátáiba:
A 0,3 A 0, 2 A 2,3
C1 C 2,3 C1 S 2,3 S1 C1 (a3 C 2,3 a 2 C 2) S1 C 2,3 S1 S 2,3 C1 S1 (a3 C 2,3 a2 C 2) , S 2,3 0 C 2,3 a3 S 2,3 a 2 S 2 b1 0 0 1 0 (4.21)
A 0 , 4 A 0 , 3 A 3, 4
C1 C 2, 4 S1 C1 S 2, 4 C1 (a3 C 2,3 a 2 C 2) S1 C 2, 4 C1 S1 S 2, 4 S1 (a3 C 2,3 a2 C 2) . S 2, 4 0 C 2, 4 a3 S 2,3 a 2 S 2 b1 0 0 1 0
(4.22) A humanoid kar A0,5 transzformációs képlete megegyezik a visszafelé haladó számításnál már közölt (4.19) mátrixszal. Fontos megjegyezni, hogy a szerszámközéppont helyzete a megközelítés irányából és a csukló helyvektorából, azaz A0,3 negyedik oszlopából is számítható.
C1 S 2, 4 C1 (a3 C 2,3 a2 C 2) S 1 S 2 , 4 S 1 ( a3 C 2 , 3 a 2 C 2 ) v b5 b5 a v csukló . C 2, 4 a3 S 2,3 a2 S 2 b1 1 0
4.3. Az inverz lehetőségei
kinematikai
feladat
(4.23)
megoldási
Az inverz kinematikai feladat során adott a szerszám (középpontjának) helyzete és orientációja külső koordinátákkal, és meghatározandó, hogy milyen izületi beállításokkal biztosítható ez a helyzet. Másként ezt úgy fogalmazhatjuk, hogy keressük a q = –1(xe) (4.24) egyenlet megoldását, ahol q a keresett izületi koordináták vektora, és xe az ismert külső koordináták vektora. Az inverz kinematikai feladat megoldása általában nem egyértelmű. Az úgynevezett kinematikailag redundáns manipulátorok esetében, ahol a mozgáslehetőségek száma nagyobb, mint a külső koordináták dimenziója, végtelen sok q vektor található, amely kielégíti az (q) = xe egyenletet. Ilyen berendezéseket akkor alkalmaznak, ha a mozgássorozatot nagyszámú akadály között kell megvalósítania a manipulátorkarnak. A kinematikailag nem redundáns manipulátorok esetében csak véges sok megoldás létezhet. Könnyen elképzelhetjük például, hogy ugyanazt a pontot azonos kézorientációval megközelíthetjük felemelt és leeresztett könyökkel is. A továbbiakban az inverz feladat megoldási 65
lehetőségeit csak nem redundáns manipulátorokra tárgyaljuk. A probléma megoldása során nemlineáris egyenletrendszert kell megoldani. A gyökök meghatározására két megközelítési módot találunk a szakirodalomban. Az egyik esetben általános numerikus megoldási módszereket alkalmaznak (pl. Newton-módszer). Más technikáknál az adott manipulátortípusra zárt formában szimbolikus megoldást keresnek. A következő szakaszban ez utóbbi módszereket mutatjuk be.
4.3.1. Az inverz mátrixok módszere Az inverz mátrixok módszere (Paul 1981) a legtöbb manipulátor esetében alkalmazható, ha a homogén transzformációs leírás trigonometrikus egyenletrendszerre vezet. A megoldás során olyan egyenleteket próbálunk kiválasztani, amelyekből az izületi változók kétváltozós arkusztangens függvény formájában fejezhetők ki. Ha például az öt mobilitásfokú manipulátor A0,5 transzformációs mátrixa, már ismert a direkt feladat szimbolikus megoldásából, akkor az a következő öt, ismert mátrix szorzatával számolható: A0,5 = A0,1 A1,2 A2,3 A3,4 A4,5 . (4.25) Az inverz feladat esetén az egyenlet bal oldalán álló mátrixot a következő formában ismerjük:
nx ox a x v x ny oy a y v y A 0,5 . (4.26) nz oz a z vz 0 0 0 1 Ha a (4.26) egyenletet rendre megszorozzuk az Ai-1,i Denavit–Hartenberg-mátrixok inverzével balról, akkor négy mátrixegyenletet kapunk. Az inverzek meghatározásához kihasználhatjuk e mátrixok ortonormált tulajdonságát (17.2.2.6 pont). 1
A 0,1 A 0,5 A1,5 , 1
1
1
1
1
1
1
1
A1, 2 A 0,1 A 0,5 A 2,5 ,
A 2,3 A1, 2 A 0,1 A 0,5 A 3,5 , 1
A 3, 4 A 2,3 A1, 2 A 0,1 A 0,5 A 4,5 .
(4.27) (4.28) (4.29) (4.30)
A fenti egyenletek bal oldalán az ismert A0,5 mátrix szerepel és az első (i-1) izületi változó. A jobb oldalon rendre az i-edik, (i+1)-edik, …, ötödik izületi változó kifejezése és konstansok találhatók. E mátrix a visszafelé haladó szimbolikus megoldásból ismert. Elsőként induljunk el (4.27) egyenletből. Ha olyan, az első izületi koordinátát tartalmazó elemet keresünk a bal oldalon, amelynek megfelelő elem a jobb oldalon konstans vagy 0, akkor ebből az egyenletből az első izületi változó (q1) meghatározható. Ennek ismeretében folytatjuk a számítást a következő (4.28) egyenlettel. Itt ismételten olyan mátrixelemet keresünk a bal oldalon, amiből a q2 izületi koordináta egyszerűen kifejezhető, a jobb oldalon pedig konstans szerepel. Lépésenként folytatva ezt a technikát, minden mátrixegyenletből újabb és újabb izületi változót fejezhetünk ki. Példaként tekintsük a humanoid manipulátort. Vizsgáljuk meg, hogy miként határozható meg ezzel a módszerrel az első izületi változó értéke adott kézhelyzet és orientáció esetén. Ha az A0,5 ismert mennyiségeket tartalmazó mátrixot balról megszorozzuk a (4.11) képlet szerinti A0,1 mátrix inverzével, akkor a következő egyenletrendszert kapjuk: C1 S 1 0 0 n x o x a x v x 0 0 1 b1 n y o y a y v y S 1 C1 0 0 n z o z a z v z 0 0 1 0 0 0 1 0 C1 n x S1 n y C1 o x S1 o y C1 a x S1 a y C1 v x S 1 v y nz oz az v z b1 .(4.31) S 1 n x C 1 n y S 1 o x C 1 o y S 1 a x C 1 a y S 1 v x C1 v y 0 0 0 1
A (4.27) alapján a (4.31) a visszafelé haladó szimbolikus megoldásból meghatározott A1,5 mátrixszal egyenlő (4.18). Ha a jobb oldalon konstans elemet keresünk és tekintjük a jobb oldalon ugyanazt az elemet, amely az ismeretlen izületi szög kifejezését tartalmazza, akkor ebből az egyenletből 1 számítható. Tekintsük például mindkét oldalon a harmadik sor negyedik elemét: S1 vx -C1 vy = 0 . (4.32) Az első izületi változó ebből, ha a periodicitástól eltekintünk:
1 = arctg(vy / vx) .
(4.33) 67
A további izületi beállításokat is hasonlóan kaphatjuk meg. Ha egymás után párhuzamos mozgástengelyű, forgó izületeink vannak, akkor ezeknek a változóknak csak az összegére kapunk kifejezést.
4.3.2. Részfeladatokra bontás A manipulátorok igen széles körben alkalmazott csoportjára mutat be módszert Siegler idézett műve (Siegler 1987). Ha a kéz mozgástengelyei, vagyis az utolsó három vagy két forgó mozgás tengelye egy pontban metszi egymást, akkor az inverz feladatot két, egyszerűbben megoldható részfeladatra választhatjuk szét. Ebben az esetben nem öt, vagy esetenként hat ismeretlennel kell egyszerre dolgoznunk, hanem csak két, maximum három izületi változót tartalmazó egyenletrendszer megoldása szükséges. A TCP adott orientációjának és helyzetének ismeretében elsőként meghatározzuk, hogy a csuklót milyen pozícióba kell eljuttatni, hogy az előző feltételek teljesüljenek. A csukló ismert koordinátáit az első három izületi változó, q1, q2 és q3 határozza meg. Miután kiszámoljuk e három paraméter értékét, a kéz izületi paramétereit (q4, q5 és – hat mobilitás-fokkal rendelkező manipulátor esetében – q6 értékét) határozzuk meg. Példaként tekintsük ismét a humanoid manipulátorkart. A kéz billentő és csavaró mozgásának tengelye a csuklóban metszi egymást. Az alábbiakban adott inverz feladatot tehát két részfeladatra bonthatjuk majd:
nx ox a x v x ny oy a y v y A 0,5 . (4.34) nz oz a z vz 0 0 0 1 Amint a direkt kinematikai feladat szimbolikus megoldásánál láthattuk, a csukló koordinátái egyfelől adottak a (4.21) egyenlettel, másfelől a (4.23) egyenletből is meghatározhatók a megközelítésvektor és a kéz paraméterének (b5) ismeretében: C1 (a3 C 2,3 a 2 C 2) ( S 1 a3 C 2 , 3 a 2 C 2 ) v csukló v b5 a . a3 S 2,3 a2 S 2 b1 1
(4.35)
Az első három izületi változó meghatározására tehát az alábbi egyenletrendszer adódik: xcsukló = C1(a3C2,3 + a2C2) , (4.36)
4.5. ábra - A durvapozícionálás meghatározására szolgáló paraméterek (Siegler 1987 alapján) ycsukló = S1(a3C2,3 + a2C2) , (4.37) zcsukló - b1 = a3S2,3 + a2S2 . (4.38) A bal oldalon a (4.35) alapján ismert csuklókoordináták találhatók. Az első izületi változó értéke rögtön adott akár A0,5 kifejezéséből is:
1 = arctg(vy / vx) . Használjuk a 4.5. ábra szerint a következő jelöléseket: K = a3C2,3 + a2C2 , L = a3S2,3 + a2S2 . A (4.36) és (4.37) egyenletekből 2 2 2 K xcsukló ycsukló .
(4.39) (4.40) (4.41) (4.42) 69
A (4.40) és (4.41) egyenleteket négyzetre emelve és összeadva: K2 + L2 = (a3C2,3 + a2C2)2+ (a3S2,3 + a2S2)2 .
(4.43)
Ha itt alkalmazzuk a C2,3 C2 + S2,3 S2 = cos(2 + 3 – 2) = C3 azonosságot, akkor 2 2 2 2 K L a3 a2 2 a2 a3 C3 .
(4.44)
Ebből a harmadik izületi változó koszinusza: C3
2 2 2 2 K L a3 a 2 . 2 a 2 a3
(4.45)
Mivel 2 S 3 (1 C3) ,
(4.46)
így
3 arctg(
2 2 4 a22 a32 ( xcsukló ycsukló ( z csukló b1) 2 a32 a22) 2 2 2 2 2 2 xcsukló ycsukló ( z csukló b1) a3 a2
) .
(4.47) A pozitív, illetve negatív előjel a könyök felső, illetve alsó helyzetét jelenti. A második izületi változó meghatározása érdekében szorozzuk meg a (4.36) egyenletet a C1 és a (4.37) egyenletet az S1 kifejezéssel, adjuk össze az eredményeket, majd alkalmazzuk a koszinusz függvényre az összegzésre vonatkozó tételt: C1 xcsukló + S1ycsukló = (a3C3 + a2)C2 - a3S3S2 . (4.48) A (4.38) egyenletben a szinusz függvényre alkalmazva az összegzésre vonatkozó tételt: zcsukló - b1 = (a3C3 + a2)S2 + a3S3C2 . (4.49) Szorozzuk meg a (4.48) egyenlet mindkét oldalát az a3S3 szorzattal, a (4.49) egyenletet az (a3C3 + a2) kifejezéssel és az így kapott második egyenletből vonjuk ki az elsőt: (zcsukló - b1)(a3C3 + a2) - (C1xcsukló + S1ycsukló)a3S3 = = S2 ((a3C3 + a2)2 + (a3S3)2) . (4.50) Ebből
S2
( z csukló b1)(a3 C 3 a2) (C1 xcsukló S1 ycsukló) a3 S 3 . (a3 C 3 a2) 2 (a3 S 3) 2
(4.51)
Ha a (4.48) mindkét oldalát az (a3C3 + a2) kifejezéssel, a (4.49) egyenletet pedig az a3S3 kifejezéssel szorozzuk, majd összeadjuk az így kapott egyenleteket: (zcsukló - b1)a3S3 + (C1xcsukló + S1ycsukló)(a3C3 + a2) = = C2 ((a3C3 + a2)2 + (a3S3)2) . (4.52) Rendezve:
C2
( z csukló b1) a3 S 3 (C1 xcsukló S1 ycsukló)(a3 C 3 a2) . (a3 C 3 a2) 2 (a3 S 3) 2
(4.53)
Végül a második izületi változó:
2 arctg(
( z csukló b1)(a3 c3 a2) (C1 xcsukló S1 ycsukló) a3 S 3 ) . ( z csukló b1) a3 S 3 (C1 xcsukló S1 ycsukló)(a3 C 3 a2)
(4.54) Miután meghatároztuk az adott csuklóhelyzet megvalósításához szükséges izületi beállításokat, a kéz izületi szögeit számítjuk ki. Jelölje R0,3 az A0,3 és R3,5 az A3,5 homogén transzformációs mátrixok orientációs részmátrixát. Mivel ortonormált koordináta-rendszerek kapcsolatát írtuk le, ezért a (4.34) egyenlet orientációs részmátrixát megszorozva R0,3 inverzével és kihasználva azt, hogy az inverz éppen a transzponált (17.2.2.6 pont), az alábbi egyenletet kapjuk:
R 3, 5
nx ox a x R 0,3 n y o y a y . n z o z a z T
(4.55)
Az R3,5 orientációs részmátrix a visszafelé haladó szimbolikus számításokból ismert (4.16), míg az R0,3 orientációs részmátrixa az előrehaladó szimbolikus számításokból adott a (4.21) egyenlettel. Ezért a (4.55) bal oldala felírható
R 3, 5
C 4 C 5 C 4 S 5 S 4 S 4 C 5 S 4 S 5 C 4 S 5 0 C5
(4.56)
alakban. A (4.55) egyenlet jobb oldala: 71
T
n x o x a x C1 C 2,3 C1 S 2,3 S1 n x o x a x T R 0,3 n y o y a y S1 C 2,3 S1 S 2,3 C1 n y o y a y n z o z a z S 2,3 0 n z o z a z C 2,3 C1 C 2 , 3 S 1 C 2,3 S 2,3 n x o x a x C1 S 2,3 S1 S 2,3 C 2,3 n y o y a y S1 0 n z o z a z C1 (4.57) A mátrixszorzást elvégezve, a harmadik oszlopból, illetve a harmadik sorból kapjuk az izületi szögek kifejezését:
C1 C 2,3 a x S1 C 2,3 a y S 2,3 a z , C S a S S a C a 1 2 , 3 x 1 2 , 3 y 2 , 3 z
(4.58)
S1 n x C1 n y . S1 o x C1 o y
(4.59)
4 arctg
5 arctg
Ha az inverz kinematikai feladatot bármely időpillanatban meg tudjuk oldani, akkor az eredmények felhasználásával összetettebb útvonal- és pályatervezési feladatokat is megvalósíthatunk.
5.
Pálya- és útvonaltervezés
Ez az alfejezet olyan problémákra keres választ, ami típustól függetlenül csaknem minden robotnál előtérbe kerül. Konkrétan az a kérdés, hogy milyen pályán lehet eljuttatni a megfogószerkezetet vagy magát a robotot egy adott forráshelyről egy célpozícióba anélkül, hogy a robotkar vagy a mobilrobot akadályokba ütközne. E témakörben megkülönböztetünk durva és finom pályatervezést. Durva pályatervezés esetén a cél a pálya főbb sarokpontjainak megtalálása, míg finom pályatervezéskor (a durva pályatervezés eredményét felhasználva, két sarokpont között) az összes izületre a lehető legfinomabban lebontva kell leírni a bejárandó utat. A pályatervezés készülhet előre ismert, részben ismert, vagy teljesen ismeretlen munkakörnyezetet feltételezve. Az akadályok elhelyezkedése lehet statikus, vagy időben változó. Ha előírásaink vannak az útvonalon kívül még az időbeli ütemezésre is, trajektória-tervezésről beszélünk. Más szempontokat figyelembe véve, szintén megkülönböztethetünk valós időben történő és egylépéses pályatervezést aszerint, hogy az útvonaltervezést csak egy egységnyi távolságra végezzük el, majd rögtön végrehajtjuk, vagy az egész útra előre megtervezzük az útvonalat, s azt a végrehajtás során már nem módosítjuk. A pályabejárás, vagy navigáció során a megtervezett pályát követjük a robottal. Legnagyobb problémát a robot tervezett és realizált helyzete közötti különbség jelenti. Megoldást a nagyszámú környezeti szenzor által szolgáltatott adatok összehangolt feldolgozásával érhetünk el.
5.1. Pályatervezés konfigurációs térben Konfiguráción (Lozano-Perez 1983) egy objektumnak azokat a jellemzőit értjük, melyek egyértelműen leírják a helyzetét a munkaterületen. Ez általában az objektum pozícióját és irányát, míg a konfigurációs tér a lehetséges konfigurációk összességét jelenti. A konfigurációs térben történő pályatervezés a kiterjedt objektumok útkeresését egy egyszerűbb problémára redukálja: pontszerű objektum útját keressük a megnövelt akadályok konfigurációs terében. 73
5.1. ábra - A mobil objektum (A), az akadály (B), valamint a munkaterület határa által meghatározott konfigurációs térbeli akadály (BA) A konfigurációs tér az alábbi példában legyen kétdimenziós, a mobil objektum pedig az első megközelítésben csak egyenes vonalú transzlációs mozgást végezhessen. Az egyszerű kezelhetőség érdekében mind a mobil, mind a statikus objektumok legyenek poligonok. Tekintsünk a 5.1. ábra szerinti (A) kiterjedt konvex mobil objektumot és (B) akadályt egy téglalap alakú munkaterületen. Feladat, hogy a mobil objektum számára biztonságos utat találjunk, melynek végigjárása során a B akadállyal és a munkaterület határával nem ütközik. Az A mobil objektumon kiválasztunk egy r referenciapontot, amely a keresés során reprezentálja az egész objektumot, s a ponttá zsugorítást kompenzálandó, az akadályokat megnöveljük a megfelelő mértékben. Ezt a növelést azáltal érjük el, hogy a mobil objektumot az akadályok határvonala mentén végigcsúsztatjuk, és a referenciapont mozgási pályájára burkológörbét illesztve, megkapjuk a megnövelt akadályozó objektumot (BA). BA-ra mint az A objektum által indukált konfigurációs térbeli akadályra hivatkozunk. Mivel a mobil objektum a munkaterület határait sem érintheti, azokat is meg kell növelni. A robot munkaterületének határai akadálynak tekinthetők, így a munkaterület falai befelé növekednek akkora mértékben, amekkorát az A objektum a munkaterület falai mentén körülcsúszva meghatároz. Az akadályok elkerülésének feltétele így már egyszerűen meghatározható: Amíg az r referenciapont a BA konfigurációs térbeli akadályon kívül marad, addig az ütközés veszélye nem fenyeget. Így az eredeti problémát, melyben egy kiterjedt objektum számára kellett utat találni, leredukáltuk egy pont útjának keresésére. Ha adott a kiindulási pont és a cél,
valamint az egyenes vonalú mozgást végző (A) poligon az r referenciaponttal és Bk (0 < k < m) konvex akadályok, akkor a startponttól a célig vezető pálya szakaszokból áll, és a szakaszok végpontjai a konfigurációs térbeli akadályok csúcspontjainak halmazából választhatók ki. Konkáv objektumok problémájának megoldását jelenti, hogy a konkáv objektumot konvex részekre bonjuk egy közös r referenciaponttal, amely mindegyik részobjektumnak eleme. Ezekre külön-külön végrehajtjuk az akadálynövelést, s az egyes növelések eredményének unióját képezzük. A mobil objektum forgó mozgásának kezelésére több lehetőség is adódik. Kiválaszthatunk két vagy több kitüntetett irányt, amelyekbe a mobil objektumot elforgatva külön-külön végrehajtjuk az akadálynövelést, és olyan pozíciókat keresünk a munkaterületen, melyekben a két elfordulási irány között transzformáció lehetséges, vagy a két növelés eredményének unióját vesszük. Másik lehetőség, hogy az eredeti mobil objektum helyett egy megnövelt objektummal indukáljuk a konfigurációs teret. A mobil objektum megnövelését annak valamilyen tengely körüli forgatásával nyerjük.
5.2. Általánosított Voronoi-diagram Voronoi Diagram, GVD)
(Generalized
Az általánosított Voronoi-diagram (generalized Voronoi diagram, GVD) azon pontok mértani helye a síkban, amelyek a legközelebb eső akadályoktól egyenlő távolságra fekszenek. Ez egyben azt is jelenti, hogy az általánosított Voronoi-diagram meghatározásával kiszámított pálya biztonságosan bejárható, az akadályoktól a legmesszebb vezető utat eredményezi. Ha az akadályokat poligonokkal közelítjük és az akadályok csúcsait pontoknak, az éleiket szakaszoknak tekintjük, akkor az általánosított Voronoi-diagram három elméleti alaptípusát különböztethetjük meg, amelyekből felépíthetjük majd a teljes pályát. – két pont által meghatározott GVD, – szakasz és pont által kijelölt GVD, – két csatlakozó szakasz által definiált GVD. Két pont által meghatározott GVD Ez a legegyszerűbb eset: nyilvánvaló, hogy a két ponttól egyenlő távolságra a két pontot összekötő szakasz felezőmerőlegese helyezkedik el (5.2. ábra). 75
5.2. ábra - Két pont közötti GVD A GVD pontjainak távolsága P1 és P2 pontoktól a következő összefüggés alapján számítható:
R(α) =
d , 2cos(α)
(5.1)
ahol -/2 /2 a P1P2 szakasz és a vizsgált irány által bezárt szög, míg d a két pont távolsága. Szakasz és pont által kijelölt GVD Ebben az alapesetben a P1P2 szakasz és P3 pont között egyenlő távolságra elhelyezkedő pontok halmaza parabolarészt alkot. A keresett R() függvény a GVD-nek P1P2 szakasztól való távolságát adja meg a szakasz P1 végpontjától mért távolság függvényében.
5.3. ábra - Szakasz és pont között elvezető GVD
Az 5.3. ábra jelöléseit használva, legyen d a P3 pont és a P1P2 szakasz távolsága. A Pitagorasz tételből rendezés után kapjuk:
d 2 x2 R . 2d
(5.2)
Így a P1 csúcstól mért távolság függvényében a GVD:
R ( )
d 2 ( l1) 2 , 2d
(5.3)
ahol 0 l2 . Két csatlakozó szakasz által meghatározott GVD A 5.4. ábra jelölései szerint a P1P2 és P3P4 szakaszok egyetlen közös pontja legyen P3. A csatlakozó szakaszoktól egyenlő távolságra a szakaszok által alkotott szög szögfelezője van. A keresett R() függvény a GVD P1P2 szakasztól mérhető távolságát adja meg a szakasz P1 végpontjától mért távolság függvényében. A 5.4. ábrán X1 a GVD tetszőleges pontját, X2 pedig e pont merőleges vetületét jelöli. Az összefüggés meghatározása érdekében, legyen P5 a P4 végpont merőleges vetülete a P1P2 szakaszra (vagy meghosszabítására), d jelölje P4P5 szakasz hosszát, végül a P6 pontot úgy vegyük fel, hogy P3P6P4 egyenlőszárú háromszög legyen. Ekkor a P3X2X1 és a P4P5P6 háromszögek hasonlóságát felhasználva: R( ) P3 X 2 . P5 P6 P4 P5
(5.4)
Mivel P3X2 = - l0, valamint P5P6 = l0 + l2- l1, ezért ha l0 min (l0 + l3, l0 + l2 ) (l0 l2 l1 )( l0 ) . d Ha a baloldali Voronoi-diagramrészletet szeretnénk megkapni, akkor R ( )
R ( )
(l0 )d (l0 l 2 l1 )
(5.5)
(5.6)
teljesül, ahol 0 l0 .
77
5.4. ábra - Két csatlakozó szakasz által meghatározott GVD rész Mindhárom alapesetben a legbonyolultabb összefüggés is csak négyzetes kifejezést tartalmazott. Ebből következik, hogy bármilyen bonyolult konfiguráció esetén sem kapunk a másodiknál magasabb fokszámú GVD-t. A három alapeset kombinációjaként megalkotható az általános esetre vonatkozó összefüggés. Példaként tekintsük a két, független helyzetű élszakasz által meghatározott GVD-t (5.5. ábra). Az Ei -vel jelölt pontok által határolt szakaszokon a 3 alapeset az alábbiak szerint váltakozik P1P2 szakasz mentén: – P1 és E1 között a szakasz és pont közötti alapeset érvényesül: pontként P4 szerepel; – E1 és E2 között a szakasz és szakasz közötti alapeset érvényesül: a második szakasz a P3P4; – E2 és E4 között a szakasz és pont közötti alapeset érvényesül: pontként P3 szerepel; – E4 és E5 között a szakasz és szakasz közötti alapeset érvényesül: a második szakasz P3P4; – E5 és P2 között a pont és szakasz közötti alapeset érvényesül: pontként ismét P4 szerepel.
5.5. ábra - A Voronoi-diagram az általános esetben Ez a módszer a legbiztonságosabb útvonalat nyújtja, azonban ez az útvonal szinte soha nem az optimális abban az értelemben, hogy az algoritmus a szükséges biztonságot nagymértékben meghaladó pályát eredményez.
5.3. Finom mozgástervezés Miután meghatároztuk a pályának azokat a sarokpontjait, amelyeket a manipulátor szerszámközéppontjának vagy a mobilrobotnak be kell járnia, a következő teendő, hogy a sarokpontok között megtervezzük a mozgást. Kézenfekvőnek tűnhet két megközelítési mód. Akár izületi, akár külső koordinátákban adottak a sarokpontok, az első elképzelés szerint polinomokat illeszthetünk ezekre a pontokra. A pontok számának növekedésével azonban ilyenkor egyre magasabb fokszámú polinomot kellene választani. A gyakorlati megoldás során azért kell elvetni ezt a megoldási ötletet, mert a magas fokszámú polinomok oszcillálnak és így nem kívánatos mozgásokat, rezgéseket eredményeznének. Ha rendre lineáris szakaszokkal kötjük össze az adott pontokat, a sarokpontoknál végtelen rövid idő alatt kellene megváltoztatni a mozgásjellemzőket, amit szintén nem lehet megvalósítani. A tervezést ezért alacsony fokszámú polinomok, spline-ok alkalmazásával vagy lineáris szakaszokkal szokás végezni úgy, hogy a sarokpontoknál folyamatos, parabolikus átmenetet biztosítunk 79
(Siegler 1987). A spline-ok elméletének alapjait Bajcsay alapján (Bajcsay 1980) a következőkben tárgyaljuk.
5.3.1. A spline-ok elmélete Legyen adott (n+1) darab xi, yi (i = 0, 1, …, n) sarokpont. Az yi értékekről tételezzük fel, hogy kétszer folytonosan deriválható függvény értékkészletéből származnak. A sarokpontok összekötésére olyan, szakaszonként harmadfokú polinomokat, úgynevezett spline részeket keressünk, amelyre teljesülnek, hogy az xi helyen az yi értéket veszik fel és eleget tesznek a „sima” csatlakozási feltételeknek. A simaság kifejezés azt jelenti, hogy az xi helyen nincs törés a csatlakozó polinomrészek első és második deriváltjaiban sem. Tételezzük fel, hogy az alappontok xi koordinátái nagyság szerint rendezettek és különbözőek. Ekkor jelöljük hk-val a k-adik részintervallum hosszát (hk = xk – xk-1, ahol k = 1, 2, …, n). Definiáljunk n darab k(x) függvényt, amely az [xk-1, xk] intervallumban értelmezett és kielégíti az alábbi feltételeket:
k(xk-1) = yk-1 , illetve k(xk) = yk , k = 1, 2, …, n,
(5.7)
,k ( xk 0) ,k 1 ( xk 0) , k = 1, 2, …, n-1 ,
(5.8)
,k, ( xk 0) ,k, 1 ( xk 0) mk , k = 1, 2, …, n-1 .
(5.9)
A –0, illetve a +0 szimbólum a fenti kifejezésekben azt jelenti, hogy bal-, illetve jobb- oldali deriválttal kell számolnunk, hiszen a függvények értelmezési tartományából csak ez következhet. Az mk értékek a csatlakozási pontokban a második derivált (gyorsulás vagy görbület) ismeretlen nagyságát jelentik. A (5.7) – (5.9) egyenletek 4n-2 számú feltételt jelentenek. Ha a k(x) függvényeket harmadfokú polinomrészeknek választjuk, akkor 4n darab együtthatóra kapunk majd egyenletrendszert, tehát két szabad feltételünk lehet. Ha az első és az utolsó sarokpontban a második derivált értékét zérusnak választjuk, akkor a természetes spline-ok esetét kapjuk, amit a továbbiakban tárgyalunk majd. Meg kell jegyezni azonban, hogy a robotikában a legelső és a legutolsó sarokpont esetében szokásos nemcsak a gyorsulás értékét, hanem a sebességek nagyságát is előre zérusnak választani, vagyis nyugalmi helyzetből indul és oda is érkezik a vizsgált effektor. Ekkor az első és utolsó intervallumra nem elegendő a harmadfokú polinomok által biztosított paraméterek száma, és ilyenkor e szakaszokon negyedfokú polinomrészeket kell választani (Ránky 1985).
Amennyiben harmadfokú polinomrészekkel dolgozunk, akkor a második derivált lineáris. Ezért a (5.9) feltételeknek eleget téve a k(x) függvények második deriváltját az alábbiak szerint választhatjuk meg:
,k, ( x) mk 1
x xk x xk 1 , k = 1, 2, …, n . mk xk xk 1 xk xk 1
(5.10)
Ha a nevezőkbe az intervallum hosszát írjuk, akkor a következőket kapjuk:
,k, ( x) mk 1
x xk x xk 1 , k = 1, 2, …, n . mk hk hk
(5.11)
Ezeket az egyenleteket kétszer integrálva, az első deriváltakra és a függvényekre nyerünk összefüggéseket:
,k ( x) mk 1
( x xk ) 2 ( x xk 1) 2 mk ak , k = 1, 2, …, n , 2h k 2h k
(5.12)
k ( x) mk 1
( x xk ) 6h k
3
mk
( x xk 1) 6h k
3
a k x bk ,
k = 1, 2, …, n (5.13) Az integrálásból származó konstansokat a (5.7) feltételekből határozhatjuk meg. Behelyettesítés és rendezések után az ak és bk együtthatókra az alábbi értékek adódnak: ak
bk
y k y k 1 hk
mk mk 1 hk , k = 1, 2, …, n , 6
y k 1 xk y k xk 1 hk
(5.14)
xk mk 1 hk xk 1 mk hk , k = 1, 2, …, n . 6
(5.15) Behelyettesítve a kapott ak értékeket a (5.12) kifejezésbe és figyelembe véve a (5.8) feltételeket, rendezés után az ismeretlen mk második derivált értékekre a Clapeyron-féle egyenletrendszert kapjuk: hk mk 1 2(hk hk 1) mk hk 1 mk 1 6(
k = 1, 2, …, n-1, m0 = mn = 0 .
y k 1 y k hk 1
y k y k 1
)
,
hk
(5.16) 81
Az inhomogén egyenletrendszer következő, mátrixos formájából látszik, hogy az együtthatómátrix speciális szerkezetű. A főátlóban és közvetlenül a főátló alatt, illetve felett szerepelnek csak nem zérus értékek, sőt, a főátlóban lévő értékek abszolútértéke nagyobb a főátlón kívül elhelyezkedő elemek abszolút értékének összegénél (azaz a főátlóbeli elemek dominálnak). 0 2(h1 h2) h2 2(h2 h3) h3 h2 0 2(h3 h4) h3 . . . . . . . . . 0 0 0 0 0 0 y 2 y1 y1 y 0 h2 h1 y 3 y 2 y 2 y1 h3 h2 . . 6 . y y y y n 3 n2 n 1 n2 hn 1 hn 2 y n y n 1 y n 1 y n 2 hn hn 1
.
.
.
.
.
.
. . .
.
.
.
m1 . 0 0 m2 . . . . . . . . . . . . 0 . 2(hn2 hn 1) hn 1 m n2 0 2(hn hn1) mn 1 hn1 .
0
0
(5.17)
Belátható, hogy az ilyen együtthatómátrixú inhomogén lineáris egyenletrendszer mindig megoldható, az együtthatómátrix inverze létezik. Speciális, de igen gyakran előforduló eset, ha az alapintervallumok hossza azonos (hk = h = állandó). Ekkor a megoldás nemcsak mindig létezik, hanem előállítható a következő formában (Bajcsay 1980):
i n 1 y j sin 24 sin 2 2n j 1 1 n 1 mk 2 h i 1
(n 1)i i 6 y 0 sin y n sin n n i n 2 sin 2 3 2n ji n
ki sin n
k = 1, 2, …, n-1 . (5.18) Az mk együtthatók ismeretében a spline-részek (5.13) egyenletébe visszahelyettesítve, hirtelen gyorsulás- és sebességváltozástól mentes, sima pályát kapunk: k ( x) mk 1
( x xk ) 3
6h k y k 1 xk y k xk 1 hk
mk
( x xk 1) 3
y y k 1 mk mk 1 k hk x 6 hk
6h k x m hk xk 1 mk hk k k 1 6
k = 1, 2, …, n .
(5.19)
5.4. Pályabejárás Annak érdekében, hogy a robot valós környezeti viszonyok között bejárja az előírt pályát elengedhetetlen a pontos helymeghatározás. A helymeghatározásnak megkülönböztetik statikus és dinamikus változatait (Takeda 1994). Az első esetben a robot szenzorjelek által megadott pozícióját hasonlítják a lehető legpontosabban össze a környezeti modell előzetesen ismert leírásával. A dinamikus helyzetmeghatározás ezzel szemben verifikálás jellegű: a korábbi szenzorjellemzők által szolgáltatott (helyzet, sebesség, stb.) információkból kalkulált helyzetnek és a mozgó robot aktuális állapota közötti különbséget újra és újra ismétlődően kiértékelik és ha kell, módosítják az adatokat. Figyelembe véve a szenzorjelek pontatlanságát, bizonytalanságát a helyzetmeghatározás gyakran útjelzők használatával történik. Az útjelző (landmark) a környezet karakterisztikus fizikai jellemzője, amelyet a robot érzékel és a nyert információt a helyzetének pontosítására, (vagy esetleg az útvonal követésének ellenőrzésére) használ. A robot navigálás során az útjelzőtől útjelzőig mozog. A korábbi kutatások során az útjelzőket binárisnak adatként kezelték, attól függően, hogy érzékelhető-e, vagy sem. Az újabb kutatások 83
azonban figyelembe veszik, hogy a robot és az útjelzők egymáshoz viszonyított helyzetétől nagyban függ a kiértékelés. A navigálás alkalmával gyakran szimbolikus formájú adatokat használ a robotvezérlés az útjelzők és a környezet más objektumainak azonosítására. A környezeti elemeket, egyedeket (helyszínek, utak, stb.) három fajta jellemzőrendszerrel írják le (Stuck 1996). Az első csoportba a helyzetfüggetlen jellemzők tartoznak. Ilyen például az egyed megnevezése, mérete, alakja, esetleges részei, vagy a színe. Ezeket az információkat használja azonosításra elsősorban a navigációs rendszer. A jellemzők egy másik csoportja helyzetfüggő: például arról nyújt információt, hogy milyen irányban és milyen messze helyezkedik el az adott tárgy az érkező robothoz viszonyítva és melyik oldala látható. A jellemzők harmadik halmaza a tévedések lehetőségének csökkentését célozza meg azzal, hogy megadja, hogy mely egyedekkel téveszthető össze az adott objektum. A navigációs rendszer olyan útleírást tartalmaz, amely sorrendben megadja azokat az instrukciókat, amiknek a segítségével a célba érhet a robot. Ezek az instrukciók tartalmazhatnak végrehajtható mozgásutasításokat, vagy leíró jellegű információkat. Az első csoportba tartozik például a "menj", "fordulj", stb. parancsok a távolság, szög és útjelző paramétereikkel. A leíró instrukciók arról adnak információt, hogy milyen egyedeket kell érzékelni az úton, vagy milyen globális orientációval kell haladni. (Például a jelzőfény mindig balról világít az adott útszakaszon.) Ebbe az osztályba tartozik az esetleges hibás tevékenységre utaló leírás is. (Ha például ezt és ezt érzékeli a szenzor, akkor túlfutott a robot az útjelzőn.) A szenzorok, a környezet és a robot leíró modelljének jellemzői, pontatlansága gyakran okoz hibát, vagy tévedést a pályabejárás során. A navigálás témakörében hiba (error) alatt valamilyen előírt értéktől történő mennyiségi eltérést értenek, míg a tévedés (mistake) arra utal, hogy valamely útjelzőt nem azonosított a szenzorrendszer, vagy félreértelmezte azt.
6. Az intelligens gép további lehetőségei és a szoftver-robotok 6.1. „A magába foglaló architektúra” A mesterséges intelligenciakutatás, ezen belül a mobilrobotok fejlesztésének egyik ígéretes irányzata Rodney A. Brooks, (Brooks 1991a) nevéhez kötődik. A hozzá kapcsolódó iskola véleménye szerint csak úgy érthetjük meg és bonthatjuk fel az összetett emberi intelligenciát, és intelligens robotot is csak úgy építhetünk, ha az intelligencia lényegesen egyszerűbb formái segítségével gyűjtünk előbb tapasztalatokat. A hagyományos, intelligens robotrendszerekben az információ-feldolgozás az érzékeléstől a cselekvésig a következő sorozat eredményeként jön létre: érzékelés modellezés tervezés terv végrehajtás mozgásvezérlés . Ezzel szemben Brooks (Brooks 1991b) egy új információ feldolgozó architektúrát javasol. A magába foglaló architektúra (subsumption architecture) esetében egy hierarchikus, az alacsonyabb rétegeket is magába foglaló, összetett rétegrendszerű struktúra jön létre. Ebben a megközelítésben az érzékelést a mozgásvezérléssel összekötő információ-feldolgozás nem soros kapcsolatú folyamatok eredménye, hanem az alábbi modulok vagy rétegek párhuzamos munkájának összessége: környezet manipulációja érzékelés
térképek kialakítása megismerés tárgy elkerülése
mozgásvezérlés
mozgás
85
A magába foglaló architektúra célja olyan autonóm mozgó és intelligensnek tekinthető „lény” (creature), ágens létrehozása, amely az emberekkel együtt „él”. Ezért az alábbi elvárásokat támasztjuk e rendszerekkel szemben: – megfelelően és időben tudjon reagálni a dinamikusan változó környezeti hatásokra; – felépítésük hibatűrő legyen, ami jelen esetben azt jelenti, hogy a környező világ kismértékű változása nem okozhatja a lény viselkedésének teljes összezavarodását; – e lényeknek célokkal kell rendelkezniük. Az építés során az intelligens gép képességeit inkrementálisan (lépésről lépésre) úgy lehet létrehozni, hogy minden egyes részfunkció megvalósítása során biztosítjuk a rendszer teljes működését. Az egyes részfeladatokat megvalósító alrendszerek önálló érzékelő és beavatkozó képességgel rendelkeznek és kapcsolatban állnak a környezetükkel. Az alrendszerek serkentő illetve gátló üzenetekkel tartják egymással a kapcsolatot. Mivel az élőlényekben működő alrendszerek többnyire gátló hatással szabályozzák egymást, a mesterséges rendszerekben is célszerű a gátlást alkalmazni. A magába foglaló architektúrát tehát az alábbiak jellemzik: – a részfunkciókat önállóan valósítják meg, az alrendszerek nem várják el a felettük lévő rendszerek kontrollját; – minden rétegnek önálló szerepe van; – az összetett rendszer építése inkrementálisan, lépésről lépésre történik, a magasabb rétegek építik be (foglalják magukba) az alacsonyabb rétegeket; – a rétegek az elnyomás (supression) és a tiltás (inhibition) gátló mechanizmusain keresztül működnek együtt. A céloknak nincs központi reprezentációja, amelyek közül valamilyen központi eljárás választana. Minden alrendszer a saját feladatát végzi. Ahány részcél megfogalmazásra kerül, annyi alrendszer lehet. (A magába foglaló architektúra e tulajdonsága miatt a Brooks-i irányzatot szituációs aktivitás (situational activity) irányzatnak is szokták nevezni.). Az alrendszerek tesztelése mindig valóságos helyzetben történik. Így elkerülhető a mesterséges intelligencia rendszerekkel kapcsolatban gyakran emlegetett probléma, miszerint a mesterséges intelligencia csak leegyszerűsített problémákkal foglakozik.
A magába foglaló architektúra alrendszereinek tipikus felépítését a 6.1. ábra szemlélteti. A véges állapotú alrendszer részei közül a regiszterek az üzenetek fogadására, illetve a belső állapotok tárolására szolgálnak. A véges állapotú gép olyan egyszerű információ-feldolgozó kapacitással rendelkezik, mint például vektorösszegek számítása. Az alrendszerek tevékenységük során rögzített hosszúságú üzeneteket fogadnak és küldenek. Az üzeneteken kívüli kommunikációra más lehetőség nincs. Az aszinkron működést adatok vezérlik. Az állapot változásait új üzenet érkezése, vagy a korábban érkezett üzenet feldolgozásához tartozó idő eltelte aktivizálja.
6.1. ábra - A magába foglaló architektúra egy alrendszerének sémája Brooks alapján (Brooks 1989) Az elvek helyességének igazolására az elmúlt tíz évben számos alkalmazást, ezek között lépegető robotot is építettek. Itt csak a legkorábbi kísérletet mutatjuk be. Az egyik első sikeres példány a hatlábú, 35 cm hosszú, 25 cm magas, egy kg tömegű, Genghis nevet viselő robot volt. Merev lábai vállban mozogtak és két szabadságfokkal rendelkeztek. Mozgatásukat két-két repülőgép modell motor végezte. Az egyik motor a haladást, a másik pedig a láb emelését biztosította. A lábak pozícióját a szervomotorok működési jellemzői alapján azonosították. Az információ-feldolgozást és a vezérlést négy darab nyolc bites mikroprocesszor végezte, amelyeket egy 62,5 Kbaud-os (token ring) hálózat kötötte össze. A memória egy kilobájtos RAM és 10 kilobájtos EPROM modult tartalmazott. Az autonómia biztosítása érdekében a tápellátó három ezüst–cink akkumulátor is a robot hátán foglalt helyet. A lábhelyzetek érzékelésén túl a 87
szenzoros bemenetet két tapogató és görbülést jelző csáp szolgáltatta. A hat darab, egyenként 6 fokos felbontású passzív infravörös szenzor 45 fokos tértartományt érzékelt. A robot a következő hat feladattal birkózott meg: – felállás a tápfeszültség bekapcsolása után; – sétálás sima talajon; – a láb átemelése ütközés esetén az akadályon; – az akadályok elkerülése a tapintók jelei alapján; – egyensúly megtartása; – közeli mozgó tárgyak észlelése és követése. A felsorolt – egyre összetettebb – képességek vezérlését a lépésről lépésre hozzáadott, egymással kommunikáló egyszerű alrendszerek végezték. A teljes működést összesen 57 véges állapotú alrendszer biztosította. A hat láb mozgatásához nyolc-nyolc közvetlenül motorvezérlő feladatokat ellátó alrendszert építettek. A tapintó szenzorok kezelésére két-két alrendszer szolgált. Az egész test egyensúlyozása és a mozgó tárgy követése öt alrendszeren alapult.
6.2. ábra - A Genghis nevű robot. (Brooks 1989)
Irodalomjegyzék (Bajcsay 1980) Bajcsay, P.: Numerikus analízis, Tankönyvkiadó, Budapest, 1980. (Brooks 1989) Brooks, R.: A Robot that Walks; Emergent Behaviors from a Carefully Evolved Network, Neural Computation 1, 1989., 253-262 (Brooks 1991a) Brooks, R.: Intelligence without Representation. Artificial Intelligence, 47, 1991., 139-160 (Brooks 1991b) Brooks, R.: New Approaches to Robotics, Science, Volume 253, 1991. szeptember 13., 1227-1232. (Engelberger 1980) Engelberger, J. F.: Robotics in Practise, IFS Publication Ltd., Kempston, 1980. (Freeman 1997) Freeman, J.: Agents, InfoBots, and Knowbots, http://union.ncsa.uiuc.edu/HyperNews/get/computing/agents.htm, 1997. (Hirai 1997) Hirai, K.: Current and Future Perspective of Honda Humanoid Robot, International Conference on Intelligent Robot and Systems, IROS'97, Grenoble, 1997., Volume II. 500-508. (Hirose 1998) Hirose, S., Kato, K,: Quadruped Walking Robot to Perform Mine Detection and Removal Task, First International Symposium on CLAWAR'98, Brussels, 1998. 261-266. (Kalakota 1996) Kalakota, R., Whinston, A.: Frontiers of Electronic Commerce. Addison-Wesley Publishing Company Inc., 1996. (Korn 1975) Korn, G. A., Korn. T. M.: Matematikai kézikönyv műszakiaknak, Műszaki Könyviadó, Budapest, 1975. (Lantos 1991) Lantos, B.: Robotok irányítása, Akadémiai Kiadó, Budapest, 1991. (Lozano-Perez 1983) Lozano-Perez, T.: Spatial Planning: A Configuration Space Approach, IEEE Trans. Computers, Vol. C-32, 224-238. 1983. (Paul 1981) Paul, R.: Robot Manipulators: Mathematics, Programming and Control, MIT, 1981. (Ránky 1985) Ránky, P., Ho, C. Y.: Robot Modelling: Control and Applications with Software, Springer-Verlag, 1985. (Schilling 1990) Schilling, R. J.: Fundamentals of Robotics: Analysis and Control, Prentice-Hall International, 1990. 89
(Siegler 1987) Siegler, A.: Robotirányítási modellek, LSI, Budapest, 1987. (Somló 1997) Somló, J., Lantos, B., Cat, P., T.: Advanced Robot Control, Akadémiai Kiadó, Budapest, 1997. (Stonier 1992) Stonier, T.: Beyond Information, the Natural History of Intelligence. Springer-Verlag, 1992. (Stuck 1996) Stuck, E. R., Detecting and Diagnosting Mistakes in Vision-based Navigation, Robotics and Autonomous Sytems, Elsevier, Volume 17, Number 4, 1996, 259-285. (Takada 1994) Takada, H., Facchinetti, C., Latombe J.-C., Planning the Motions of a Mobile Robot in a Sensory Uncertanity Field, Pattern Analysis and Machine Intelligence, IEEE Computer Society, Volume 16, Number 10, 1994 október, 1002-1018. (umbc 1998) http://www.cs.umbc.edu/agents/, 1998. július (Vámossy 1998) Vámossy, Z., Molnár, A., Brünner, R., Varga, L.: EXPLORATORES II., the Four-Legged Mobile Robot, First International Symposium on CLAWAR'98, Brussels, 1998. 41-45. (Vukobratoviĉ 1986) Vukobratoviĉ, M., Kirĉanski, N.: Kinematics and Trajectory Synthesis of Manipulation Robots, Scientific Fundamentals of Robotics 3, Springer-Verlag, 1986. (Wloka 1992) Wloka, D. Roboter systeme: I. Technische Grundlagen, II. Graphische Simulation, III. Wiessenbasierte Simulation; Springer-Verlag, 1992.