robotgeometria - elte

38
Robotgeometria Diplomamunka Kiss András Zoltán matematika BSc alkalmazott matematikus szakirány Témavezető: Dr. Szeghy Dávid Péter adjunktus Geometriai Tanszék Eötvös Loránd Tudományegyetem, Természettudományi Kar

Upload: others

Post on 03-Apr-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robotgeometria - ELTE

Robotgeometria

Diplomamunka

Kiss András Zoltán

matematika BSc

alkalmazott matematikus szakirány

Témavezető:

Dr. Szeghy Dávid Péter adjunktus

Geometriai Tanszék

Eötvös Loránd Tudományegyetem, Természettudományi Kar

Page 2: Robotgeometria - ELTE

Tartalomjegyzék

1. Bevezetés 1

1.1. Alapok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2. Problémák . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Denavit-Hartenberg konvenció 4

3. Koordináták a robotgeometriában 6

4. Direkt kinematikai feladat 7

4.1. Bevezetés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74.2. Számítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84.3. Futásidő . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.4. Konkrét példák . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5. Sebesség kinematikai feladat 13

6. Inverz sebesség kinematikai és inverz kinematikai feladat 14

6.1. Inverz sebesség kinematikai feladat . . . . . . . . . . . . . . . . . . . 146.2. Inverz kinematikai feladat . . . . . . . . . . . . . . . . . . . . . . . . 15

7. Útkeresési probléma 15

7.1. Konfigurációstér . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167.2. A konfigurációstér metrikája . . . . . . . . . . . . . . . . . . . . . . . 177.3. Geometriailag felírható konfigurációsterek . . . . . . . . . . . . . . . 197.4. Rövid példa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197.5. Akadályok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207.6. Ütközés teszt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

8. Lokális tervezők 22

9. Folytonos módszerek 23

9.1. Voronoi-gráf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239.2. Skeletonizáció . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259.3. Az egyenletes pontháló módszere . . . . . . . . . . . . . . . . . . . . 269.4. Véletlen szerű pontháló . . . . . . . . . . . . . . . . . . . . . . . . . . 27

II

Page 3: Robotgeometria - ELTE

10.Diszkretizálás 28

11.Cella dekompozíció 30

12.Egy lehetséges diszkrét módszer 31

12.1. Konkrét Példa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

13.Útkeresés 33

14.Összefoglalás 34

III

Page 4: Robotgeometria - ELTE

1. Bevezetés

A robotok egyre nagyobb szerepet kapnak manapság a gyártás, a kutatás, az orvos-tudomány és a művészetek terén is. Robotot olyan helyen alkalmazunk, ahol embertnem lenne célszerű biztonsága, precizitása, vagy megközelíthetetlensége miatt. Ro-botokat használunk az iparban olyan feladatokra, melyeket gyorsan és precízen kellvégrehajtani, robotot használunk az űr távoli szegleteiben, hogy eljusson oda, ahováember még nem merészkedett. De robotokat használunk gyógyításra is, műtétek-nél precíziós vágásokra, oltóanyag sokszorosításra. Ezek a gépek a művészetekbenábrázolt robotokkal ellentétben nem önállóan vezérlik magukat, hanem emberi uta-sításra hajtanak végre kisebb vagy nagyobb szubrutinokat. Az űrben járó szondákata Földről irányítják, de a jelkésés miatt, ami már a Föld - Hold távolságon is többmint 2 másodperc, az utasításoknak önállóan kell végbe menniük. Egy gyárban arobottól nem várjuk el, hogy önállóan felismerje a feladatát, de a programozásakorcélszerű lenne nem nyersen meghatározni, hogy melyik csukló mekkora elmozdulástprodukáljon, hanem megmondani a célkoordinátát és a többit a robotra bízni, erreleginkább a biztonság miatt van szükség. Nem szeretnénk, ha a robot a munkada-rabnak ütközne, vagy rosszabb esetben eltalálna például egy a munkaterébe lépettembert. Ezt nem szeretnénk arra bízni, hogy a programozó minden egyes lépésnélellenőrzi a helyzetet, jobb lenne, ha a robot önállóan kikerülné az őt akadályozóembert vagy legalább megállna és megvárná, amíg elmozdul.

Dolgozatomban a robotkarok geometriai jellemzését, vezérlésének alapjait, azakadályokkal teletűzdelt térben útvonalak keresését, valamint ezen feladatok haté-kony elvégzéséhez szükséges matematikai alapokat tekintem át.

1

Page 5: Robotgeometria - ELTE

1.1. Alapok

A robot karja egy nagyobb robot kis részét, míg a robotkar egy önálló gépet jelöl.A robotkar értelmezésénél a pontos definíció nehézkes volta miatt a szemléletre ha-gyatkozom, a robot karja mozgatható csuklókból és ezeket összekötő merev részekbőláll. Az alábbi fejezet a Robot Modeling and Control [1] könyvre és az AlkalmazottModul Geometriai transzformációk [4] jegyzetre épül.

1. Definíció (Szegmens). A robotkar merev részét szegmensnek, vagy linknek ne-vezzük.

2. Definíció (Csukló). A robotkar mozgatható része, ezek választják el egymástóla szegmenseket. Egy csukló lehet forgató (Rotációs, továbbiakban R) vagy eltoló(Prizmatikus, továbbiakban P).

3. Definíció (Kéz). Az utolsó csukló, amelyhez a szerszámcsonk kapcsolódik, a-mellyel a robot a tényleges munkát végzi.

4. Definíció (Munkatér). Azok a síkbeli vagy térbeli pontok halmaza, ahova a robotkeze eljuttatható.

5. Definíció (Hatás tengely). Prizmatikus csukló estén az eltolás irányába mutatótengelyt, a "fizikai tengelyt" nevezzük hatás tengelynek, míg rotációs csukló esetébenaz elfordulás tengelyét. Ez prizmatikus csuklóra nem egyértelmű, mivel a tengelybármilyen az eltolás vektorával párhuzamos tengely lehet.

A rotációs és prizmatikus csuklókból bármilyen csukló felépíthető egy 0 hosz-szúságú szegmens közbeiktatásával. Például az emberi kéz csuklója helyettesíthetőkét vagy három R típusú csuklóval, attól függően, hogy az orsózást a csuklóban,vagy a könyékben akarjuk megvalósítani. A robot testét - önálló robotkar esetén arögzítési pontot, tehát a világot - szokás nulladik szegmensnek nevezni, ehhez csat-lakozik a nulladik csukló, majd az első szegmens és ehhez az első csukló, egészenaz n. szegmensig melyhez az n+1. csukló, vagyis a robot keze kapcsolódik. Acsuklók felsorolása RRP, RPR jó közelítéssel leírja a kart. Az RRP egy forgó-forgó-teleszkópikus, míg az RPR egy forgó-teleszkópikus-forgó típusú kart jelöl. Egy ro-botkar lehet nyílt vagy zárt. Zártnak nevezzük akkor, ha az utolsó csukló a 0.szegmenshez csatlakozik, nyíltnak pedig, ha nem zárt.

2

Page 6: Robotgeometria - ELTE

1.2. Problémák

A robotkar kapcsán megoldandó matematikai feladatokat több kategóriába soroljuk,a dolgozatban leginkább az útkereséssel fogunk foglalkozni, így az ehhez szügségesdirekt kinematikai feladaton kívül a többit csak érintőlegesen tárgyaljuk.

Direkt kinematikai probléma: Csukló paraméterek ismertek (elfoldulási szög,eltolási hossz), ezen adatok alapján kell meghatározni, hol van a robot ke-ze a testéhez képest.

Inverz kinematikai probléma: Adott a robot kezének helyzete, kiszámítandó acsuklók paraméterei vagy adott a kéz helyzete és a cél koordinátái, milyensorrendben és mennyivel kell változtatni a csuklóparamétereket a kívánt ered-ményhez, illetve adni egy γ(t) görbét, amely mentén a kéz mozgatható.

Sebesség kinematikai feladat: Ismert a csuklók előjeles elmozdulási sebessége ésa kéz sebesség vektorát akarjuk meghatározni.

Inverz sebesség kinematikai feladat: Adott irányba, adott sebességgel szeret-nénk mozdítani a kart, milyen irányba és milyen sebességgel mozogjanak acsuklók.

Útkeresési probléma: Akadályok vannak a munkatérben, amelyeket mozgás köz-ben a robotkar minden részének el kell kerülnie, valamint elkerülendő a robot-kar önmagával történő ütközése.

A problémák megoldásához olyan koordináta rendszereket készítünk, amelyekbenkönnyebb lesz számolni.

3

Page 7: Robotgeometria - ELTE

2. Denavit-Hartenberg konvenció

6. Definíció (Denavit-Hartenberg konvenció). [1] Olyan ortonormált koordinátarendszerek létrehozása, amelyek kielégítik a következő feltételeket:

• Minden szegmenshez mereven rögzítsünk egy Descartes-féle koordináta rend-szert. Az i. szegmenshez tartozó i. koordináta rendszert jelölje (Oi, xi, yi, zi).Ahol Oi az i. koordináta rendszer origója, az xi, yi, zi irányított koordinátatengelyek.

• A zi koordináta tengely az i. csukló hatástengelye, az irányítása tetszőleges.

• Az xi koordináta tengelyt úgy válasszuk, hogy merőleges legyen a zi koordiná-tatengelyre valamint zi−1 koordinátatengelyre, és legyen közös pontjuk, teháta normál transzverzálisát kell választanunk, ha létezik. Abban az esetben, hanincs normál transzverzális, akkor a zi koordináta tengely párhuzamos zi−1koordinátatengellyel, így nincs egyértelmű megoldás, ekkor az xi tengelyt a ro-botkarhoz alkalmasan válasszuk, a tengely irányítása itt is tetszőleges.

• Az yi koordináta tengelyt pedig válasszuk meg úgy, hogy az xi, zi koordinátatengelyekkel jobb sodrású ortogonális rendszert alkosson.

1. Állítás. Létezik Denavit-Hartenberg konvenció szerinti koordináta-rendszer min-den robotkarra.

Bizonyítás. [4] Algoritmust adunk az előállítására: z0 koordinátatengelyt felvesszüka 0. csukló hatástengelye szerint. O0 origót és x0, y0 koordinátatengely választásatetszőleges, amíg a z0 koordinátatengellyel jobb sodrású rendszert alkot. Teljes in-dukcióval tegyük fel, hogy az i-edik csuklóra adott a Denavit-Hartenberg konvenciószerinti koordináta-rendszer. Ekkor zi+1 koordinátatengelyt felvesszük a csukló ha-tástengelye szerint, xi+1 tengelyt felvesszük úgy, hogy mind zi koordinátatengelyre,mind zi+1 koordinátatengelyre merőleges legyen és legyen közös pontjuk, ez nemmindig egyértelmű, de a későbbiekben mutatok rá egy előnyös választást. Az Oi+1

legyen az xi+1, zi+1 koordinátatengelyek metszéspontja, yi+1 koordinátatengelyt pe-dig vegyük fel úgy, hogy együtt jobb sodrású rendszert alkossanak.

4

Page 8: Robotgeometria - ELTE

1. ábra. Az algoritmus eredménye egy RR típusú karra

2. Állítás. Két koordináta-rendszer közötti áttérés 4 paramáterrel leírható (di, Θi,ai, αi) és ai, αi a mozgás során nem változik, mert csak a szegmens geometriaialakjától függ. Θi csak Rotációs, míg di csak Prizmatikus izület esetén változik.

Bizonyítás. [4] Hozzuk létre a (O′i, x′i, y′i, z′i) átmeneti koordináta rendszert O′i le-gyen zi koordináta tengely és xi+1 koordináta tengely metszéspontja, x′i koordinátatengely legyen az xi+1 koordináta tengely, z′i koordináta tengely pedig a zi koor-dináta tengely, valamint y′i koordináta tengelyt válasszuk meg úgy, hogy x′i és z′ikoordináta tengelyekkel jobb sodrású rendszert alkosson.Legyen di az OiO

′i előjeles távolság a zi koordináta tengely irányítása szerint, Θi

legyen az xi koordináta tengely és az x′i koordináta tengely által bezárt, a zi koordi-náta tengely irányítása szerinti előjeles szög. Az ai legyen O′iOi+1 előjeles távolságaz xi+1 koordináta tengely irányítása szerint, valamint αi legyen a z′i koordináta ten-gely és a zi+1 koordináta tengely által bezárt, az xi+1 koordináta tengely irányításaszerinti előjeles szög.Ez a négy paraméter elég, mert az OiO

′i áttérésnél a zi tengely fix és e mentén tolunk

el, xi az eltolás után egy síkban van x′i-vel és egy előjeles szöggel átvihető bele, azeltolást di előjeles távolsággal a forgatást Θi előjeles szöggel leírhatjuk, hasonlóanaz O′iOi+1 áttérésnél az xi+1 tengely fix és ementén történik az eltolás ai előjelestávolsággal, így a z′i koordináta tengely a zi+1 koordináta tengellyel egy síkba kerülés átvihető az αi forgatással. Ezzel két szöggel és két távolsággal leírtuk az áttérést.Ha az i-edik izület forgató, akkor zi+1 koordináta tengely forog a zi koordináta ten-

5

Page 9: Robotgeometria - ELTE

gely körül, de a szögük nem változik, ekkor xi+1 koordináta tengely is forog így O′ifix, vagyis di, ai, αi fix, és Θi változik.Ha az i-edik izület eltoló, akkor zi+1 koordináta tengely eltolódik a zi mentén, tehátΘi, ai, αi fix, és di változik.

Ebből látszik, hogy xi+1 tengelyt úgy célszerű felvennünk párhuzamos zi, zi+1

koordináta tengelyek esetén, hogy a di távolság nulla legyen, és ez rotációs csuklókramindig megválasztható így, illetve prizmatikus csuklókra úgy, hogy egyik állapotbannulla legyen. Megjegyzendő, hogy a felírás így sem lesz egyértelmű, mert a tengelyekirányítása az yi, yi+1 tengelyektől eltekintve önkényes.

3. Koordináták a robotgeometriában

A robotkarok hatékony kezeléséhez szükséges koordináta-rendszereket áttekintet-tük, de még a koordinátákat magukat is kicsit át kell értelmeznünk. Minden P pont(x, y, z) koordinátáihoz rendeljük a (x, y, z, 1) koordinátákat. Minden w (w1, w2, w3)

szabadvektorhoz pedig rendeljük a (w1, w2, w3, 0) koordinátákat. Ez egyébként aprojektív terekben használatos homogén koordinátáknak felel meg. Előnye, hogyegységesen tudjuk kezelni a szabad és helyvektorokat, valamint minden transzfor-máció leírható lesz egy mátrixszal.

Mivel a szegmensek geometriája nem változik, így végig egybevágósági transzfor-mációkról beszélhetünk, és minden egybevágósági transzformáció leírható egy mátrixszorzással és egy vektor hozzáadással. Tehát felírható Ax + v, A ∈ O(3) x, v ∈ R3

alakban. A számítások során 2n transzformációra lesz szükségünk, melyekkel

A0(A1(...(A2n−1(A2nx+ v2n) + v2n−1)...+ v1) + v0

alakban számolhatunk, ahol ∀i : Ai ∈ SO(3) irányítástartó ortogonális mátrix.Ezért az (x, y, z) koordinátákhoz hozzá rendeljük a (x, y, z, 1) homogén koordinátá-

kat. Az An mátrixhoz és a vn vektorhoz pedig a Bn =

[An vn

0 0 0 1

]4x4-es mátrixot

rendeljük, így pontokra:

Bi

x

y

z

1

=

(ai)1 ∗ (x, y, z)T + (vi)1

(ai)2 ∗ (x, y, z)T + (vi)2

(ai)3 ∗ (x, y, z)T + (vi)3

1

Ahol (ai)k az Ai mátrix k. sora, a (vi)k pedig

6

Page 10: Robotgeometria - ELTE

a vi vektor k. koordinátája. Az előbbi mátrixegyenlet jobb oldalán az első háromkoordináta pontosan Aix + vi-nek felel meg. Hasonlóképpen a szabad vektorokra:

Bi

w1

w2

w3

0

=

(ai)1 ∗ (w1, w2, w3)

T

(ai)2 ∗ (w1, w2, w3)T

(ai)3 ∗ (w1, w2, w3)T

0

, ami meg is felel az elvárásainknak, mivel a szabad

vektorok eltolás invariánsak. Így innentől B0B1...Bnx alakban számolunk.

3. Állítás. B−1i létezik, ha A−1i létezik.

Bizonyítás. Elég belátni, hogy ekkor a Bi mátrix determinánsa nem nulla. Mivelez egy blokk felső háromszögmátrix, így determinánsa egyenlő a blokkok determi-nánsainak szorzatával, tehát az Ai mátrix determinánsával, így ha Ai determinánsanem nulla, akkor Bi determinánsa sem nulla, ez pedig ekvivalens azzal, hogy A−1i

létezik. Sőt B−1i =

[A−1i −A−1i vi

0 0 0 1

]

4. Direkt kinematikai feladat

4.1. Bevezetés

A kéz helyzete az utolsó szegmens koordináta rendszerében a (xn, yn, zn) helyet fog-lalja el, ezért úgy vezetjük be az n+1. koordináta rendszert a Denavit-Hartenbergkonvenciókat tartva, hogy a kéz az n+1. koordináta rendszer origójába kerüljön. Afeladat átfogalmazható úgy, hogy a kéz koordináta rendszerének origójának koordi-nátáit akarjuk meghatározni a robot koordináta rendszerében, tehát a 0. koordináta-rendszerben. Ehhez 4-dimenziós homogén koordinátákat használunk. Tehát a fel-

adat a

0n+1

0n+1

0n+1

1n+1

vektor

u0

v0

w0

10

koordinátáinak meghatározása, ahol az indexek azt a

koordináta rendszert jelölik, amelyben felírtuk az adott pont koordinátáit. Továb-biakban a konstansoknál, ahol egyértelmű nem használunk indexet. Először vegyükaz i+1. koordináta rendszerről az i. koordináta rendszerre való áttérést. [1][4]

7

Page 11: Robotgeometria - ELTE

4.2. Számítás

Írjuk le az Oi+1 → Oi áttérést két részben:

1. Oi+1 → O′i

2. O′i → Oi

Ahol O′i az előző bizonyításban szereplő köztes koordináta-rendszer. Tehát ha aP pont koordinátái az i+1-dik koordináta rendszerben (ui+1, vi+1, wi+1), határozzuk

meg az (ui, vi, wi) koordinátákat. Ez homogén koordinátákkal:Pi+1=

ui+1

vi+1

wi+1

1

, illetve

Pi=

ui

vi

wi

1

Ehhez mindig létezik egyMi csak (di ,Θi, ai, αi) változóktól függő mátrix,

melyre Pi=MiPi+1. Innen áttérünk az (O′i, x′i, y′i, z′i) köztes koordináta-rendszerbe.Ez megtehető egy forgató és egy eltoló mátrixszal:

1 0 0 0

0 cos(αi) −sin(αi) 0

0 sin(αi) cos(αi) 0

0 0 0 1

1 0 0 ai

0 1 0 0

0 0 1 0

0 0 0 1

ui+1

vi+1

wi+1

1

=

u′i

v′i

w′i

1

Először eltoljuk az xi+1 tengely mentén az Oi+1-et O′i-be, ez az (O′i, x′i, y′i, z′i) közteskoordináta rendszerben olyan, mintha minden pont az xi+1 mentén eltolódna ai-vel,majd αi-vel elfordítjuk z′i-t zi+1-be, ekkor x′i fixen marad, így a forgatás leírható azx′i körüli forgató mátrixszal.A két mátrix egyesített alakja:

1 0 0 0

0 cos(αi) −sin(αi) 0

0 sin(αi) cos(αi) 0

0 0 0 1

1 0 0 ai

0 1 0 0

0 0 1 0

0 0 0 1

=

1 0 0 ai

0 cos(αi) −sin(αi) 0

0 sin(αi) cos(αi) 0

0 0 0 1

Innen áttérünk az i-edik koordináta rendszerbe:

8

Page 12: Robotgeometria - ELTE

cos(Θi) −sin(Θi) 0 0

sin(Θi) cos(Θi) 0 0

0 0 1 0

0 0 0 1

1 0 0 0

0 1 0 0

0 0 1 di

0 0 0 1

u′i

v′i

w′i

1

=

ui

vi

wi

1

Hasonlóan az előbbihez először eltolunk a zi mentén, majd forgatunk körülötte, ígyegy zi menti eltoló és egy zi körüli forgató mátrixszal leírhatjuk az áttérést.A két mátrixot ismét egyesítjük:

cos(Θi) −sin(Θi) 0 0

sin(Θi) cos(Θi) 0 0

0 0 1 0

0 0 0 1

1 0 0 0

0 1 0 0

0 0 1 di

0 0 0 1

=

cos(Θi) −sin(Θi) 0 0

sin(Θi) cos(Θi) 0 0

0 0 1 di

0 0 0 1

Így a két koordináta rendszer közti áttérés felírható egy 4x4-es mátrixszal:cos(Θi) −sin(Θi) 0 0

sin(Θi) cos(Θi) 0 0

0 0 1 di

0 0 0 1

1 0 0 ai

0 cos(αi) −sin(αi) 0

0 sin(αi) cos(αi) 0

0 0 0 1

=

cos(Θi) −sin(Θi)cos(αi) sin(Θi)sin(αi) aicos(Θi)

sin(Θi) cos(Θi)cos(αi) −cos(Θi)sin(αi) aisin(Θi)

0 sin(αi) cos(αi) di

0 0 0 1

Ezt a mátrixot, vagyis az i+1. koordináta rendszerről az i. koordináta rendszerre

áttérés mátrixát jelöljük Mi(Θi, αi, ai, di). Így a direkt kinematikai feladat annyitjelent, hogy az n+1-edik koordináta rendszerről (a kéz koordináta-rendszeréről)áttérünk a 0-dik koordináta rendszerre (a robot teste, vagyis a világ koordináta-rendszere)

M0M1 ... Mn−1Mn

un+1

vn+1

wn+1

1

=u0

v0

w0

1

Az M0M1 ... Mn−1Mn mátrixok 4n paramétert tartalmaznak, de ebből 3n para-

méter fix, mert csak a szegmensek geometriájától függ, így n paraméter változik. Ígya mátrix paraméteresen előre kiszámítható. Ha a robotkéz koordinátái a kéz koor-

9

Page 13: Robotgeometria - ELTE

dináta rendszerében

0

0

0

1

, akkor a munkatérbeli koordináta pontok kiszámításánál,

csak az M0M1 ... Mn−1Mn utolsó oszlopára van szükségünk:u0

v0

w0

1

=

Fx(Θ0, α0, a0, d0, ...,Θn, αn, an, dn)

Fy(Θ0, α0, a0, d0, ...,Θn, αn, an, dn)

Fz(Θ0, α0, a0, d0, ...,Θn, αn, an, dn)

1

Ezt az alakot nevezzük függvényes felírásnak.

4.3. Futásidő

A Denavit-Hartenberg konvenciók alkalmazásának oka, hogy úgymond kényelmesentudjunk számolni, ez annyit jelent, hogy optimális legyen a felhasznált memória ésprocesszor idő. A régi futásidő számítási módszer szerint, csak a szorzásokat számol-juk egy feladat megoldása során, mivel az akkori processzorok architektúrájukbólkifolyólag a szorzást lényegesebben lassabban végezték el, mint az összeadást. A maiarchitektúrák már ugyanolyan gyorsan szoroznak, mint összeadnak, így ezt veszemalapul. Viszont mivel a robot programozási környezetében nem feltétlenül létezik aszinusz illetve koszinusz, mint előre megírt függvény, így ezek kiszámítási idejét s-elfogom jelölni.Először nézzük egy mátrix kiszámítását:A futás során csak a Θi vagy a di értéke fog változni, így a programba előre bele-égethetjük a többi értéket, ezzel spórolva az értékes processzor időn, így prizmatikuscsukló esetén a mátrix számítása nem vesz igénybe számítási kapacitást, csak be kellolvasni a memóriából, ezzel 10 egység memóriát használva fel. Rotációs csukló ese-tén kell a szinusz Θi és a koszinusz Θi és el kell végezni 6 szorzást, valamint beolvasni4 értéket, tehát 6 + 2s egységnyi számítási kapacitás, valamint 4 egység memóriaszükséges. Egy áttérés 8 szorzást és 8 összeadást jelent, mert a mátrix alsó sorávalnem kell számolnunk, az utolsó oszlopot nem kell szorozni. Így az első két sorbankell 3 szorzás és 3 összeadás, a harmadik sorban viszont, mivel az első tag 0, csakkét szorzás és két összeadás szükséges, tehát r darab rotációs és p darab prizmatikuscsukló esetén legfejebb r∗(16+6+2s)+p∗16 egység számítási kapacitást és 4r+10p

memória egységet jelent. Vagyis a műveletigény a csuklók számában lineáris.

10

Page 14: Robotgeometria - ELTE

4.4. Konkrét példák

Nézzünk először egy RR típusú két dimenziós robotkart, ez egy egyszerűsített szá-mítást tesz lehetővé és később is fel tudjuk használni.

Ez alapján:

M0=

cos(Θ0) −sin(Θ0)cos(0) sin(Θ0)sin(0) a0cos(Θ0)

sin(Θ0) cos(Θ0)cos(0) −cos(Θ0)sin(0) a0sin(Θ0)

0 sin(0) cos(0) 0

0 0 0 1

=cos(Θ0) −sin(Θ0) 0 a0cos(Θ0)

sin(Θ0) cos(Θ0) 0 a0sin(Θ0)

0 0 1 0

0 0 0 1

Hasonlóan: M1=

cos(Θ1) −sin(Θ1) 0 a1cos(Θ1)

sin(Θ1) cos(Θ1) 0 a1sin(Θ1)

0 0 1 0

0 0 0 1

Így M0M1=[

cos(Θ0)cos(Θ1) − sin(Θ0)sin(Θ1) −cos(Θ0)sin(Θ1) − sin(Θ0)cos(Θ1) 0 a1cos(Θ1)cos(Θ0) − a1sin(Θ1)sin(Θ0) + a0cos(Θ0)

sin(Θ0)cos(Θ1) + cos(Θ0)sin(Θ1) −sin(Θ0)sin(Θ1) + cos(Θ0)cos(Θ1) 0 a1cos(Θ1)sin(Θ0) + a1sin(Θ1)cos(Θ0) + a0sin(Θ0)

0 0 1 0

0 0 0 1

]

Ennek az RR típusú karnak mozgása két dimenzióra terjed ki, de ha teszünkelé még egy függőlegesen álló R típusú csuklót, akkor az egyik leggyakoribb iparirobotkartípust kapjuk. Példának egy AGILUS KR 10 R900 sixx WP a KUKArobotics által gyártott ipari hegesztő robotot veszünk. Ennek a robotnak a szegmenshosszai 400, 455 és 500 milliméteresek.[2]

Így az M0=

cos(Θ0) −sin(Θ0)cos(

π2) sin(Θ0)sin(π

2) 0cos(Θ0)

sin(Θ0) cos(Θ0)cos(π2) −cos(Θ0)sin(π

2) 0sin(Θ0)

0 sin(π2) cos(π

2) 400

0 0 0 1

=cos(Θ0) 0 −sin(Θ0) 0

sin(Θ0) 0 cos(Θ0) 0

0 1 0 400

0 0 0 1

11

Page 15: Robotgeometria - ELTE

2. ábra. A KUKA által gyártott Agilus [2]

Ezek alapján az M0M1M2 egyesített mátrix (c-vel és s-sel rövidítve a koszinuszés a szinusz):[

c(Θ0)(c(Θ1)c(Θ2) − s(Θ1)s(Θ2)) c(Θ0)(−c(Θ1)s(Θ2) − s(Θ1)c(Θ2)) s(Θ0) c(Θ0)(500c(Θ2)c(Θ1) − 500s(Θ2)s(Θ1) + 455c(Θ1))

s(Θ0)(c(Θ1)c(Θ2) − s(Θ1)s(Θ2)) s(Θ0)(−c(Θ1)s(Θ2) − s(Θ1)c(Θ2)) −c(Θ0) s(Θ0)(500c(Θ2)c(Θ1) − 500s(Θ2)s(Θ1) + 455c(Θ1))

s(Θ1)c(Θ2) + c(Θ1)s(Θ2) −s(Θ1)s(Θ2) + c(Θ1)c(Θ2) 0 400 + 500c(Θ2)s(Θ1) + 500s(Θ2)c(Θ1) + 455s(Θ1)

0 0 0 1

]

Függvényes felírással:

Fx = c(Θ0)(500c(Θ2)c(Θ1)− 500s(Θ2)s(Θ1) + 455c(Θ1))

Fy = s(Θ0)(500c(Θ2)c(Θ1)− 500s(Θ2)s(Θ1) + 455c(Θ1))

Fz = 400 + 500c(Θ2)s(Θ1) + 500s(Θ2)c(Θ1) + 455s(Θ1)

A trigonometrikus azonosságok felhasználásával össze lehet vonni az alakokat,így elegánsabb képletet kapunk, bár továbbra is három szinuszt és három koszinusztkell számolni, vagyis csak a szorzásokon tudunk időt spórolni:

Fx = c(Θ0)(500c(Θ2 + Θ1) + 455c(Θ1))

Fy = s(Θ0)(500c(Θ2 + Θ1) + 455c(Θ1))

Fz = 400 + 500s(Θ2 + Θ1) + 455s(Θ1)

Ezzel a direkt kinematikai feladatot megoldottuk erre a konkrét karra.

12

Page 16: Robotgeometria - ELTE

5. Sebesség kinematikai feladat

Adott t pillanatban ismertek (Θi(t), αi(t), ai(t), di(t)), valamint a deriváltjaik (Θ′i(t),α′i(t), a′i(t), d′i(t)) minden i-re. A sebesség kinematikai feladat átfogalmazása: meg-

mondani az

x′0(t)

y′0(t)

z′0(t)

0

vektort, melyet az előző M0M1 ... Mn−1Mn mátrix szorzat

deriválásával kapunk.x′0(t)

y′0(t)

z′0(t)

0

=n∑i=0

(M0M1...Mi−1(d

dtMi)Mi+1...Mn−1Mn

xn(t)

yn(t)

zn(t)

1

A mátrixok összeszorzásával kapott függvényes felírással, a

0

0

0

1

jobb oldalra:

x0(t)

y0(t)

z0(t)

1

=

Fx(Θ0(t), l0(t), α0(t), a0(t), ...,Θn(t), ln(t), αn(t), an(t))

Fy(Θ0(t), l0(t), α0(t), a0(t), ...,Θn(t), ln(t), αn(t), an(t))

Fz(Θ0(t), l0(t), α0(t), a0(t), ...,Θn(t), ln(t), αn(t), an(t))

1

Ezt deriválva egy 4n változós 3x4n-es

J(Θ0(t), l0(t), α0(t), a0(t), ...,Θn(t), ln(t), αn(t), an(t))

Jacobi mátrixot kapunk, mellyel balról szorozva a paraméterváltozásokat tartalmazó4n változós vektorral kapjuk a sebesség kinematikai feladat megoldását:

13

Page 17: Robotgeometria - ELTE

x′0(t)

y′0(t)

z′0(t)

= J(Θ0(t), l0(t), α0(t), a0(t), ...,Θn(t), ln(t), αn(t), an(t))

Θ′0(t)

l′0(t)

α′0(t)

a′0(t)...

Θ′n(t)

l′n(t)

α′n(t)

a′n(t)

Mivel korábbi ismereteinkből tudjuk, hogy ezen 4n változóból 3n csak a kar

geometriájától függ, tehát az t függvényében konstans, így a jobb oldali vektor 4nismeretlenéből 3n mindig 0. Így mind a 0 koordinátákat, illetve a J mátrix hozzájuktartozó oszlopait töröljük, így egy 3xn-es J∗ mátrixot illetve egy n dimenziós vektortkapunk.

6. Inverz sebesség kinematikai és inverz kinematikai

feladat

Ezek a feladatok és megoldásaik nem képezik ezen szakdolgozat tárgyát, így csak rö-viden ismertetem őket. Továbbá ezen feladatokat önmagukban megoldani nehézkesés felesleges, mert az útkeresési probléma megoldása végül megoldja ezeket is.

6.1. Inverz sebesség kinematikai feladat

Adott helyen van a robotkar keze, megmozdítható-e a vége egy v sebességvektorral,illetve, hogyan változtassuk a csukló paramétereket, hogy adott sebesség vektorralinduljon el a kar.

Ekkor az előző egyenlet bal oldalát illetve a J mátrixot ismerjük, míg a jobb olda-li 4n dimenziós vektor adja a megoldást. A Gauss-elimináció viszont csak akkor aderedményt, ha a nem nulla ismeretlenekhez tartozó oszlopok által kifeszített altér-ben van a sebességvektor. Azokat a pozíciókat, melyekre ez nem teljesül, nevezzükszinguláris konfigurációknak.

14

Page 18: Robotgeometria - ELTE

7. Definíció (Szinguláris konfiguráció). Szinguláris konfigurációnak nevezzük a mun-katér azon pontjait, ahonnan a robotkar keze nem mozgatható el akármilyen sebes-ségvektorral.

Viszont mivel csak a nem nulla értékekhez tartozó oszlopokra van szükségünk,elég a J∗ mátrixot és az n dimenziós vektort vizsgálnunk, hiszen a konkrét feladatbanegyértelműen meghatározhatóak a nulla koordináták.

6.2. Inverz kinematikai feladat

Keresni kell egy olyan γ(t) görbét, amin a kéz úgy fog haladni, hogy elkerüli a szin-guláris pozíciókat, vagy azokon a megengedett irányokban halad keresztül. Ekkor azelőző egyenletben a sebességvektor ismert lesz, valamint a jobb oldal kezdeti értékeiis ismertek lesznek, így egy Cauchy-feladatot kapunk, melyet numerikusan megoldvamegkapjuk az inverzkinematikai feladat megoldását. Ez számítógépesen megoldhatóvalamilyen numerikus módszerrel például valamely Runge-Kutta-módszerrel.[5]

7. Útkeresési probléma

A robotkart ábrázolhatjuk a munkatérben úgy, hogy minden szegmens végpontjátfelírjuk három koordinátával ((x0, y0, z0), (x1, y1, z1), ..., (xn, yn, zn)). Ezzel a mód-szerrel minden konfiguráció leírható, de nem minden leíráshoz tartozik helyes kon-figuráció. Mivel a szegmensek hossza nem változik, így bizonyos kényszereket kellbevezetnünk a pontok távolságára, melyek viszont nem lineárisak, hiszen mindegyiklényegében egy gömbegyenlet. Az akadályok szintén a munkatérben vannak meg-adva 3-dimenziós testekként, de attól, hogy létezik olyan felírás, amely megoldjaa feladatot és eleget tesz a kényszereknek, nem biztos, hogy létezik út a jelenlegipozíció és a felírásban szereplő célpozíció között, valamint a munkatér nehézkesen ésrosszul kezeli a mozgó akadályokat, már pedig minden robotkar munkaterében vanegy nagy mozgó akadály: a robotkar saját maga. Ezért van szükségünk a konfigu-rációstér fogalmára. [1]

15

Page 19: Robotgeometria - ELTE

7.1. Konfigurációstér

A számítások megkönnyítéséhez bevezetjük a konfigurációsteret. A robotkar mind-egyik izülete leírható egy számmal, forgató izület esetén Θi-vel, prizmatikus csuklóesetén di-vel, így a robotkar helyzete leírható egy vektorral.

8. Definíció (Konfiguráció). Legyen q ∈ Rn n-dimenziós vektor, melynek i-dik ko-ordinátája az i-dik csukló helyzetét reprezentálja, forgató izület esetén Θi-vel, priz-matikus csukló esetén di-vel. Ekkor q-t konfigurációnak nevezzük.

9. Definíció (Konfigurációstér). Azon Q ⊂ Rn halmazt, mely minden, adott karhozlehetséges q konfigurációt tartalmaz, konfigurációstér térnek nevezzük.

Ellenben attól, hogy egy konfiguráció elvben lehetséges, még nem biztos, hogyténylegesen elérhető, mivel a munkatér általában nem akadálymentes, hiszen a cél-pontnak is van fizikai kiterjedése, illetve a robotkar saját magával való ütközése iskerülendő.

10. Definíció (Tiltott konfiguráció). Egy q konfigurációt tiltottnak nevezünk, ha arobotkar a q által reprezentált helyzetben ütközne, önmagával vagy akadállyal.

Azokat a konfigurációkat, ahol a kar saját magával ütközik célszerű külön kezel-ni, hiszen ezek helyzete a konfigurációstérben nem fog változni.

Meg kell különböztetnünk két típusú rotációs csuklót, mert ezek mátrixa ugyanegyforma, de a konfigurációstérben hozzájuk tartozó dimenzió nem.

11. Definíció (Korlátozott rotációs csukló). Ha egy rotációs csukló nem fordíthatókörbe tetszőlegesen sokszor, korlátozottnak nevezzük.

1. Megjegyzés. Fontos megjegyeznünk, hogy a robotkar geometriájából adódóanelképzelhető, hogy egy korlátozott csukló paramétere nagyobb intervallumon is értel-mezhető mint 2π.

A prizmatikus és a korlátozott rotációs csuklók dimenziója egyszerű, egy inter-vallum. A nem korlátozott (akárhányszor körbeforgatható) rotációs csuklók eseténmás a helyzet, itt a teljes dimenzió 2π-ként periódikus. Így periódikusan fel kellvenni a célpontokat is végtelen sokszor.

16

Page 20: Robotgeometria - ELTE

Elméleti szempontból célszerűbb a tengelyeket végtelennek tekinteni, és a nemelérhető részeket akadályokkal lezárni, illetve a nem korlátozott rotációs csuklóknálperiódusonként megismételni a többi dimenziót a végtelenségig.

Programozási szempontból viszont könnyebb a tengelyeket végesnek venni, és a0=2π megfeleltetést alkalmazni a nem korlátozott rotációs csuklóknál. Tehát cik-likussá tesszük a konfigurációsteret, mivel a ciklikusságot könnyebb programozni,mint a végtelent.

Például az R típusú robotkar elérhető pozícióinak halmaza a munkatérben egykör, míg az RR típusú robotkaré egy tórusz, a PR típusúé pedig egy henger.

3. ábra. Konfigurációstér [3]

7.2. A konfigurációstér metrikája

Be kell vezetnünk egy metrikát a konfigurációkra, hogy tudjunk két konfiguráció tá-volságáról beszélni, de ehhez először rendbe kell tennünk a konfigurációsteret, miveljelenleg a tengelyek skálázása a paraméterekből következik, így a pontok euklideszitávolsága semmitmondó. A csuklók mozgatásának különböző költségei vannak, anagyobb sorszámú csukló mozgatása kevesebbe kerül, mert csak a nála nagyobb sor-számú szegmenseket kell mozgatnia, míg a kisebb sorszámúnak az utána következőszegmenseket is mozgatnia kell, így a nagyobb sorszámú csuklót és a hozzá tartozószegmenseket is. Ezért minden tengelyt a csuklók mozgatási költségének arányá-ban megnyújtunk, újraskálázunk úgy, hogy egy egységnyi mozgás minden tengelyenugyanannyi költségbe kerüljön.

17

Page 21: Robotgeometria - ELTE

Ezután két konfiguráció metrikus távolságát definiálhatjuk úgy, mint a "legrövi-debb" odavezető út hossza az átskálázott konfigurációstérben, ahol az út hosszát amegszokott euklideszi távval mérhetjük.

12. Definíció (Metrikus távolság). A q1, q2 ∈ Q konfigurációk metrikus távolsá-ga alatt, a fenti átskálázott térben a q1 megfelelőjéből q2 megfelelőjébe vezető utakhosszainak infímumát értjük.

4. Állítás. Ez tényleg metrika.

Bizonyítás. A szimmetria teljesül, mert ugyanaz az út járható visszafelé is. Könnyűlátni, hogy az egybeeső pontok távolsága nulla, illetve ha nulla a távolság, akkor alegrövidebb út hossza nulla, tehát így a két pont euklideszi távolsága is nulla, vagyisa két pont egybe esik. A háromszög egyenlőtlenség szintén könnyen látható, mivelaz út összeköthető így, ha q1-ből q2-be vezetne q3-on keresztül rövidebb út, mint aq1 q2 távolság, akkor ez is szerepelne a q1 q2 utak között, azaz az infimum ennélkisebb kellene legyen, ami ellentmondás.

A továbbiakban távolság alatt az euklideszi távot, míg metrikus távolság alattezt a metrikát értem.

2. Megjegyzés. Egy munkatérbeli ponthoz általában nem egy konfiguráció tartozik.

3. Megjegyzés. A munkatér és a konfigurációstér kapcsolata folytonos, abban azértelemben, hogy egymáshoz közel lévő munkatérbeli pontokhoz tartozik, olyan konfi-guráció pár, ami egymáshoz szintén közel van, illetve egy egymáshoz közeli konfigu-ráció párhoz tartozó munkatérbeli pontok is egymáshoz közel helyezkednek el.

18

Page 22: Robotgeometria - ELTE

7.3. Geometriailag felírható konfigurációsterek

Bizonyos speciális esetekben a munkatér konfigurációstér kapcsolata felírható geo-metrilag is. Ez általában az olyan robotkarokra jellemző, melyeknek 3 csuklója vanés egy csukló a tér csak egy bizonyos irányáért felel. Például ilyen egy toronydarukonfigurációstere. A daru robotkarként való értelmezésben egy rotációs csuklóvalkezdődik a tengelyénél, majd egy viszintes irányú prizmatikus csukló következik, eztestesíti meg a kocsit, melyre rögzítve van a csörlő, illetve egy függőleges prizmati-kus csukló mely a kötelet hivatott szimulálni, valamint a kampó, mint a robot keze.Ezesetben a konfigurációstér megfelel a munkatér henger koordinátázásának, tehátbármely alakzatot a munkatérben egyenlettel megadva, majd henger koordinátákraáttérve megkapjuk a konfigurációstérbeli egyenletét. De már egy síkbeli RR karrasem egyértelmű a helyzet, ugyanis minden munkatérbeli ponthoz, két konfigurációs-térbeli pont tartozik, kivéve a szinguláris pozíciókat.

7.4. Rövid példa

Vegyük a már ismert RR típusú sík robotkart. Próbáljuk meg megoldani a problémáta munkatérben. Az első szegmens végpontjának koordinátái (b, c) a kéz koordiátáipedig (d, e). Világos, hogy az első szegmens vége egy kör mentén mozog a 0. csuklókörül, ami legyen az origóban. Illetve a kéz a (b, c) pont körül mozog egy körön. Ígya0, a1 szegmens hosszokkal a feladat munkatérbeli megoldása során a következő kétkényszer teljesül: b2 + c2 = a20, illetve (d− b)2 + (e− c)2 = a21, azazd2 − 2db + e2 − 2ec + a20 = a21. Amely koordináta párok ezeket az egyenleteketkielégítik, egy lehetséges konfigurációt írnak le.

Kicsit változtatva a helyzeten, ha a második szegmens vízszintestől való eltérésétegy Θ∗-al jelöljük, akkor a d = a0cos(Θ0) + a1cos(Θ

∗) illetve az e = a0sin(Θ0) +

a1sin(Θ∗) egyenletek adódnak, melyekbe a Θ∗ = Θ0 + Θ1-et írva visszajutunk aDenavit-Hartenberg konvenció szerinti függvényes felíráshoz.

19

Page 23: Robotgeometria - ELTE

4. ábra. RR típusú sík robotkar

7.5. Akadályok

Nagy előnye a munkatérnek, hogy mint a célpont, ahova a robotkart juttatni kell,illetve az akadályok is a munkatérben vannak megadva. Az akadályok a munka-térben valamilyen geometriai felírásban szerepelnek, viszont feltehetjük róluk, hogyfelírhatóak félterek metszeteként, mivel vagy konvex alakzatok vagy felbonthatóakkonvex alakzatok uniójára. A robotkar szegmenseit hengerekként írjuk fel, egy szeg-menst akár több henger is reprezentálhat. Mivel a robotkar nem teljesen pontosanmozog, ezért bevezetünk egy h biztonsági konstanst, amely nagyobb a robotkar hi-bahatáránál, de nem sokkal nagyobb. Ezzel a távval megnöveljük az akadályokatolymódon, hogy vesszük mindegyikhez az akadály és az origó középpontú h sugarúgömb Minkowski-összegét. Kevésbé precízen, de programozási szempontból egysze-rűbb minden félteret egy rá merőleges h hosszúságú vektorral "kifelé" mozdítani, eza lapoknál ugyanazt, az éleknél és a csúcsoknál pedig egy nagyobb távolságot ad.Későbbiekben ezt veszem alapul a könnyebb számítás és a biztonságosabb távolságmiatt.

Az akadályokat nem csak a robot kezének, hanem minden egyes részének el kellkerülnie, így a munkatér egyes pontjaiba nem léphet a kar, míg másokba igen. Min-den akadály egy pontja tehát a konfigurációstérben nem egy pontot, hanem egyalakzatot tilt le. A továbbiakban feltételezzük, hogy a munkatér adott, és benne atiltott alakzatok valamilyen geometriai módon szintén adottak, valamint a célpont

20

Page 24: Robotgeometria - ELTE

a munkatérben és a kiinduló pont a konfigurációstérben adott. A legelső dolgunkmeghatározni a célpont helyzetét a konfigurációstérben. Ehhez az inverz kinema-tikai feladatot kellene megoldani, de általánosan egy célpontnak végtelen sok őselehet a konfigurációstérben, ha túl nagy a robotkar szabadsági foka, így várhatóanvégtelen sok megoldást kapunk, melyek általános esetben a konfigurációstérben nemis egymás mellett találhatóak. Így az egy munkatérbeli pont által letiltott konfigurá-cióstérbeli pontok halmaza nem biztos hogy konvex és általában nem is összefüggő.Valamint a megtalálása is gyakorlatilag lehetetlen, mert ez egy bonyolult alul defini-ált nem lineáris egyenlet. A célpont egy lehetséges konfigurációjának meghatározásanem elegendő, mert lehet, hogy az a konfiguráció nem elérhető a tiltások miatt, demég az sem jelent kiutat, hogy addig keressük a megoldásokat, amíg egy elérhetőtnem találunk, mert ezek a célpontok nem feltétlenül egyenlő metrikus távolságravannak a kiinduló ponttól, így meg kell határoznunk a legközelebbi elérhető célpon-tot. Innentől egy konfigurációstérbeli akadály alatt, a konfigurációstérben a hozzátartozó munkatérbeli akadály által letiltott pontok halmazát értem. Ez nem fogzavarni, mert mindig egyértelmű lesz, hogy melyik térben vagyunk.

7.6. Ütközés teszt

Mivel egy munkatérbeli pont által letiltott konfigurációstérbeli halmaz meghatáro-zása túl bonyolult, ezért fordítva számolunk, vagyis egy konfigurációstérbeli pont-ról mondjuk meg, hogy melyik alakzat tiltja. Ez egyszerűbb, mert csak a direktkinematikai feladatot kell megoldanunk kis módosítással, a kéz helyzetét könnyűkiszámolni, ezután minden szegmenshez kiszámoljuk a burkoló hengereket. Ezt úgytesszük meg, hogy a i + 1 szegmenshez az első i mátrixszal kell végrehajtanunk adirekt kinematikai számítást. Tehát minden egyes pont ütközés tesztjéhez összesenhengerenként 2 pont helyzetét kell meghatároznunk. Ezután felírjuk a hengereket amunkatérben, majd megvizsgáljuk, hogy mely akadályokkal ütközött. Előnye, hogygyors a számítás és egyértelmű az eredmény, hátránya viszont, hogy az egész konfi-gurációsteret végig kell tesztelni, ahhoz, hogy letiltsuk az akadályhoz tartozó összeskonfigurációt még egy viszonylag kis akadály esetén is.

Érdemes egy adatbázisban minden tesztelt konfigurációhoz eltárolni, hogy a kézmilyen munkatérbeli ponton van, így ebben az adatbázisban közelítő kereséssel meg-határozható, a legközelebbi konfigurációk helyzete. Valamint célszerű a teszteket

21

Page 25: Robotgeometria - ELTE

először az első szegmensre, majd a második szegmensre és így tovább sorban vég-rehajtani, mivel ha az első szegmens ütközik, akkor az ahhoz tartozó többit márnem szükséges tesztelnünk, tehát az első szegmens ütközése az n-dimenziós konfigu-rációstérben egy hipersíkot, míg az elsőt rögzítve a másodiké egy (n − 2)-dimnziósalteret tilt le, egészen az utolsó szegmensig, ami többit rögzítve csak egy pontot.

Továbbiakban az útvonal tervező algoritmusokkal fogok foglalkozni, ezek előttviszont meg kell említeni a lokális tervezőket.

8. Lokális tervezők

Míg a konfigurációsteret bejáró algoritmusok az egész térben keresnek útvonalatkét pont között, addig a lokális tervezők két viszonylag közeli pontot kötnek össze,illetve kisebb részeket derítenek fel. Ezek kisebb szubrutinoknak tekinthetők a na-gyobb útvonal tervező algoritmusban, melyek segítenek eldönteni egy pontról, hogyjárható-e vagy sem, illetve utat terveznek a kiinduló pontból az útvonal tervező általmegtalált gráfig vagy a gráftól a célpontig. Alapvetően sorozatos ütközés teszteketvégeznek valamilyen helykijelölő algoritmus alapján. Azon alapulnak, hogy konfigu-rációstér és a munkatér kapcsolata folytonos, abban az értelemben, hogy minden qkonfigurációstérbeli ponthoz tartozó, munkatérbeli pont kis környezetén belüli pon-tokhoz létezik olyan konfiguráció amely a q pont ε sugarú környezetében van. Ígyha egy pont letilt egy konfigurációt annak egy ε sugarú környezetét is letiltjuk veleegyütt, tehát nem kell minden konfigurációra tesztelnünk egy egyenes mentén, elég2ε-onként végezni egy tesztet. Az akadályok esetleges "átugrását" úgy kerüljük el,hogy 2ε-t olyan kicsinek választjuk, hogy a kar pontjainak maximális elmozdulásah-nál kisebb legyen, mivel minden akadály szélessége legalább 2h, így maximum abiztonsági növelésbe metszhetünk bele.

1. Sorban vesszük a pontokat 2ε távolságra egymástól egy egyenes mentén. Ezakkor hatékony, ha egy adott ponthoz közeli megengedett pontot szeretnénktalálni egy adott irányban.

2. Úgynevezett "bináris tesztet" végzünk, ez veszi a szakasz közepét, aztán hanem tilos, akkor a két résszakaszt megint elfelezi és így tovább, amíg el neméri az 2ε távolságot. Szakaszok ütközéstesztjénél használatos, mert gyorsabbantalálja meg az akadályokat.

22

Page 26: Robotgeometria - ELTE

3. Csigavonal szerűen haladunk kifelé, folyamatosan növelve a lépéshosszt és azelfordulási szöget, leginkább akadályok "körberajzolásánál" hatékony.

4. Egyenletes eloszlás szerint választunk egy irányt, ebben az irányban kezdünktesztelni egyre növekvő lépéshosszal, szintén körberajzolásnál hatékony, ha fel-tételezhetjük, hogy viszonylag sokszor fogunk eltalálni, egy akadályt, akkor acsigavonal szerű lépegetés nem lesz hatékony, mivel többször is körberajzol,míg ez a módszer sok pont esetén minden ponthoz egy pontot talál az aka-dály peremén, tehát az akadály méretével arányos mennyiségű ponttal rajzoljakörbe. Illetve a Voronoi-gráfra lépéskor hasznos, mivel egy pontra egyenestfektetve, a pontból indulva az egyik irányban biztosan a Voronoi-gráf lesz.

9. Folytonos módszerek

9.1. Voronoi-gráf

A Voronoi-gráf azokat a sík konfigurációstérbeli pontokat tartalmazza, amelyek kettővagy több akadálytól egyenlő távolságra vannak a konfigurációstérben. A Voronoi-gráf a szó szoros értelmében nem matematikai gráf, de csomópontokból és ezeketösszekötő görbékből áll, így az útkereső algoritmusaink működnek rajta. Ehhezazonban szükségünk van a konfigurációstér egy folytonos felírására. Segít az algo-ritmusnak, ha a nem összefüggő akadályokat külön akadálynak tekintjük, illetve akonkáv halmazokat is több akadállyá vágjuk úgy, hogy konvex akadályokat kapjunk,valamint a teret lezáró akadályokat, tehát a prizmatikus csukló teljesen kitolt és be-húzott állapotát lezáró, és a korlátozott rotációs csuklók túlfordulást gátló szakasza-inkat is hozzá vesszük. A konvex akadályokra bontás azért kell, hogy a Voroni-gráfa konfigurációstér minden pontjáról egy egyenes vonallal elérhető legyen. [3]

1. Első lépésként ε-nál kisebb távolságonként a konfigurációstérben ütközés tesz-tet végzünk, ebből kapunk egy tiltott ponthálót.

2. Akadályonként vesszük a tiltott pontháló konvex burkát.

3. Elkészítjük a Voronoi-gráfot.

23

Page 27: Robotgeometria - ELTE

4. Építünk egy matematikai gráfot, a csomópontok lesznek a csúcsok, és mindengörbét egy éllel helyettesítünk. Minden egyes él költségét a hozzá tartozó görbehosszára állítjuk.

5. Meghatározzuk a célponthoz és a kiindulóponthoz metrikus értelemben legkö-zelebbi pontokat a Voronoi-gráfon, valamilyen lokális tervezővel. Ezzel kapunkkét új csomópontot a Voronoi-gráfhoz.

6. Ezen két csomópont között keresünk útvonalat a matematikai gráfban.

7. Egy egyenes vonallal a kiinduló pontból a hozzá legközelebbi Voronoi-gráfpontra ugrunk.

8. Ezután a megtalált út alapján megállapítjuk, hogy a Voronoi-gráf csomópont-jait milyen sorrendben kell érintenünk, majd a görbék mentén végighaladunkrajta egészen a célhoz legközelebbi pontig.

9. Innen egy egyenes vonallal a cél koordinátákra mozdulunk.

Magának a Voronoi-gráfnak az elkészítése egy bonyolult feladat, sík konfiguráci-ósterekben még lehetséges, ha megvan egy folytonos felírása a konfigurációstérnek,ellenben már 3-dimenziós konfigurációsterekben is felületeket adna a görbék helyett,melyeken az útkeresés problémás lenne. Ellenben a Voronoi-cellák megoldást kínál-nak minderre. Alapvetően a Voronoi-cellák diszkrét ponthalmazra vannak definiálva,tulajdonképpen egy cellán belül azok a pontok vannak, melyek a halmaz egy pontjá-hoz vannak legközelebb. Formálisan az X metrikus térben ∀k ∈ K index halmazraPk ponthoz tartozó Vk Voronoi-cella a következő:

Vk = {x ∈ X d(x, Pk) ≤ d(x, Pj)∀j ∈ K, j 6= k}

Ahol a d(x, y) az adott X feletti metrika. Ezt annyiban módosítjuk, hogy egyakadályhoz vesszük a legközelebbi pontokat, így a Q konfigurációstérre ∀k ∈ K

index halmazra Ak akadályhoz tartozó Vk Voronoi-cella a következő:

Vk = {q ∈ Q d(q, Ak) ≤ d(q, Aj)∀j ∈ K, j 6= k}

Ahol d(q, Ak) = min{d(q, pj) ∀pj ∈ Ak}, pj a tiltott pontháló elemei, d(q, pj) pedigaz euklideszi metrika.

24

Page 28: Robotgeometria - ELTE

Ez a felírás csak konvex ponthalmazokkal működik, így a konkáv halmazokatfeldaraboljuk konvexek úniójára, majd ezeket a továbbiakban külön akadálynak te-kintjük.

Ezen cellák határai adják a Voroni-gráf alapját, tehát azok a pontok melyek kétvagy több cellához is tartoznak. Ez még nem elég, mert az összeérő akadályok közöttis vannak vonalak, ezeket törölni kell, de nem az egész vonalat, csak az akadályonbelüli részt.

Ez már használható magasabb dimenziókra is. Könnyű látni, hogy míg síkbana cellák határai a Voroni-gráfot határozzzák meg, térben poliéder cellák esetén mégmegoldás lehet, hogy a lokális tervezővel a cella oldalára lépünk, majd onnan egyegyenes vonallal a cella élére és az élek és csúcsok által meghatározott gráfon ha-ladunk, de a cellák még poliéder akadályok esetén sem mindig poliéderek, így aVoroni-gráf csak két dimenzióban működik. Hátránya, hogy üres, kevés akadállyalrendelkező konfigurációstérben túl nagy kerülőket tesz, de a lehető legbiztonságo-sabb utat választja.

9.2. Skeletonizáció

A Voronoi-gráf módszere tehát készít ütközés teszttel egy ponthálót, amelynek veszia konvex burkát, majd ezekhez képest készít egy újabb ponthalmazt melyre görbéketilleszt. A skeletonizáció ötletét az adja, hogy próbáljuk meg ezeket az interpoláci-ókat teljesen kihagyni, vagy legalább elhalasztani és csak a legvégén interpolálniegyet. Illetve a Voronoi-gráf ad egy hálót, amely szétválasztja az akadályokat, denagyon lassú. Viszont nekünk nem kell teljesen pontosan a felénél szétválasztanunkőket, elég ha valamilyen módon elválasztjuk őket egymástól. Ezt az elválasztó hálótnevezzük skeletonnak, pontjait skeleton pontoknak. Az összes skeletonizációs algo-ritmus nagy előnye, hogy ellentétben a Voronoi-gráfos, Voronoi-cellás módszerekkel,több lehetséges útvonallal is dolgozik egyszerre, így kisebb kerülőket tesz, viszontpont ezért közelebb megy az akadályokhoz, és így kevésbé biztonságos az útvonal.[3]

25

Page 29: Robotgeometria - ELTE

9.3. Az egyenletes pontháló módszere

1. A konfigurációstérben valamilyen viszonylag nagy lépésközökkel egy ponthálótveszünk fel, ezek lesznek a skeletonpontok.

2. Minden skeleton pontra elvégezzük az ütközés tesztet.

3. A nem letiltott skeleton pontok között megpróbálunk egy hálózatot építeni olymódon hogy az egymással szomszédos pontokat megpróbáljuk egyenes vona-lakkal összekötni, természetesen a vonalak sem haladhatnak keresztül tiltottzónán, ennek ellenőrzésére lokális tervezőket használunk.

4. Az így kapott vázat kiegészítjük a kiinduló és cél pontokkal és őket is bekötjüka szomszédos csúcsokba, szintén lokális tervezők használatával.

5. Ezután mint a Voronoi-gráfon keresünk egy utat a kiinduló pontból a célpont-ba.

6. Ha nem találunk utat, akkor sűritjük a hálót és folytatjuk a 2. lépéssel, amígnem lesz meg az út, vagy egy bizonyos sűrűséget el nem érünk, ekkor leállunk.

A szomszédos pontok meghatározására alapvetően két lehetséges mód van. Azegyik bizonyos távolságon belüli pontokat tekint szomszédosnak, a másik pedig alegközelebbi k pontot veszi. Mindkettőnek vannak hátrányai, közös probléma, hogyizolált ponthalmazok alakulhatnak ki, illetve a legközelebbi k pontot vevő algorit-musnál lehet, hogy túl távoli pontokat köt össze ezáltal az ütközés tesztet túlságosanelnyújtja, vagy lehet, hogy a legközelebbi k pont mind olyan irányban fekszik, hogyaz összekötő szakasz egy tiltott zónán halad keresztül. Az adott távolságon belülipontokat vevő algoritmus hibája, hogy esetleg egy pontnak túl nagy lehet a foka, il-letve olyan pontokkal is össze lehet kötve, amiket egy másik csúcson keresztül is elérezáltal bonyolítva az útkeresést. Egy lehetséges megoldás valamilyen kevert mód-szer. Amely egy bizonyos távon belül köt össze, majd ha nem érte el a k darabot,akkor növeli a távot.

A pontok összekötésére, ha a pontháló h távolságnál sűrűbb, használhatunk egyegyszerűbb algoritmust. Minden pontot két osztályba osztunk, lesznek kék pontokmelyek nem ütköztek, és pirosak amik igen. Minden kék pontot a legfeljebb 1, 5h

távolságra levő szomszédaival összekötünk. Ha két kék szomszédos pont közül van

26

Page 30: Robotgeometria - ELTE

legalább az egyiknek piros szomszédja, akkor a köztük haladó élt egy lokális tervező-vel át kell vizsgálnunk, viszont a többi kék-kék élt elfogadhatjuk. A piros-kék éleketa piros pontokkal együtt töröljük.

9.4. Véletlen szerű pontháló

Az egyenletes pontháló hátránya, hogy az egész konfigurációsteret végig teszteli,illetve, hogy ha egyszeri lefutásra nem talált megoldást, akkor újrafuttatásra ugyan-azt az eredményt adja. Ennek az áthidalására használjuk a véletlen útgenerálóalgoritmusokat.

1. Valamilyen eloszlás alapján véletlen pontokat helyezünk el a konfigurációstér-ben.

2. Ezek között feszítenek ki egy gráfot a fent látott módon, a 2-3-4. pontokalapján.

3. Keresünk egy utat a kiinduló pontból a célpontba.

4. Ha nem találunk utat, akkor a véletlen algoritmus miatt előlről kezdjük, amígnem lesz meg az út, vagy egy bizonyos lépésszámot el nem érünk, ekkor leál-lunk.

Ezen véletlen útgeneráló algoritmusok alapjaikban mind a fent vázolthoz hasonló-ak, viszont a pontok generálásában különbözőek. A legegyszerűbb verzió egyenleteseloszlással osztja szét a pontokat, ezzel könnyen és egyszerűen találhatunk utat akonfigurációstérben és nem lesz gondunk az újrafuttatással, de továbbra is az egészkonfigurációsteret végig teszteljük. Egy jobb módszer, hogy ahol az átjárót sejtjük,vagy éppen ellenkezőleg, ahol az akadály léte valószínűbb, sűrűbben helyezzük el apontokat. Erre az egyik lehetőség, hogy ha egy pont akadályba kerül, akkor egylokális tervezővel megkeressük a hozzá közeli nem ütköző pontokat, ezáltal az aka-dályokat kvázi körberajzoljuk. Fontos megjegyezni, hogy kell egy biztonsági határ,aminél tovább nem hagyjuk a lokális tervezőt dolgozni, mert lehet, hogy egy szűkátjárót átugrunk és már egy másik akadályt kezdünk el felderíteni és így túl sokáigtartana egy pont körülrajzolása.

Ez az algoritmus két további nyitott kérdéssel rendelkezik az egyenletes pont-háló módszeréhez képest, nevezetesen, hogy milyen lokális tervezőt használunk az

27

Page 31: Robotgeometria - ELTE

akadályok körbe rajzolására illetve, hogy hogyan osztjuk el a pontokat. A pontokelosztására választhatunk különböző véletlen algoritmusokat. Például:

1. Használhatunk egy n dimenziós normális eloszlást a konfigurációstér mértaniközepére koncentrálva.

2. Használhatunk rögtön két n dimenzós normális eloszlást a cél, illetve a kiindulópontra koncentrálva.

3. Egy nem túl nagy felbontású térrácsot helyezünk a konfigurációstérre és akiinduló és a cél pont közti kockákban sűrűn generáljuk a pontokat, onnankifele haladva pedig egyre ritkábban, így elkerüljük azt az esetet, hogy egyviszonylag nagy részre nem jut pont, ezáltal egyesítve a determinisztikus és avéletlen algoritmusok előnyeit.

5. ábra. A Voronoi gráf és a véletlen pontháló [3]

10. Diszkretizálás

Eddig nem tértünk ki rá, hogy a robot honnan ismeri a munkatér felépítését. Eztegyszer, valamilyen módon, például egy radarral vagy valamilyen tényleges scanner-rel, legvégső esetben egy kamerával és valamilyen utólagos feldolgozással le kell ké-pezni, ebből a képből alakítunk ki egy három dimenziós képet. A scannelés soránegy diszkrét ponthalmazt kapunk, amiből a program valamilyen módszerrel, példáulvonalháló modellel vagy síkok illesztésével utólag összeállítja a folytonos teret.

Ezután ezt a teret kapjuk meg, majd állítjuk elő belőle a konfigurációsteret, éskezdjük meg a feladat megoldását. Ez nyitja meg az utat a diszkrét módszerek

28

Page 32: Robotgeometria - ELTE

irányába, hiszen ha kihagyjuk a féltér metszetek elkészítését, majd visszaalakításátdiszkrét ponthalmazzá, időt és számítási kapacitást takarítunk meg, valamint egysokkal kezelhetőbb felírást kapunk. Ez a közelítő megoldás nem okoz adat veszte-séget, mert csak az általunk interpolált részektől tekintünk el, későbbre halasztva atér folytonossá tételét, jelentős mennyiségű számítást spórolva meg. A kar hengeresközelítését meghagyjuk, így el tudjuk kerülni azt, hogy ütközés nélkül haladjunkát. Valamint megnöveljük a szegmensek sugarát a h távolsággal, így az esetlegespontatlanságokat is kiküszöböljük.

Ezentúl sok esetben az is igaz, hogy a robot kezét, nem feltétlen kell teljesenpontosan a célra illesztenünk, illetve, hogy a robotkar fizikai tulajdonságai miatt,nem tudunk pontos koordinátákra állni, csak bizonyos hibahatáron belül, illetve,hogy nem is szeretnénk pontosan megoldani a feladatot, csak egy jó közelítést adni.Például egy darutól nem várunk el centiméternél pontosabb helymeghatározást, mígegy génsebészedi robottól ugyan pikométeres pontosságot várunk, de a munkatereegy Petri-csészére korlátozódik. Általánosságban igaz az, hogy a nagy munkaterűrobotoktól kis pontosságot, illetve a nagy pontosságú robotkaroktól kisméretű mun-kateret várunk el, pár nagyon specifikus esetet kivéve, tehát arányaiban nem változika pontosság mértéke.

A diszkrét módszerek sok esetben célravezetőbb, illetve ebben a konkrét robot-karra előre elvégezhetők egy nagyobb számítógépes hálózaton, nem szükséges a robotkiskapacitású számítógépét terhelni vele.

13. Definíció (Voxel, Voxel-háló). Egy n-dimenziós ortogonális teret minden ten-gely mentén egyenlő darabokra bontva a tér egy voxel-hálóját kapjuk. Ennek egydarabját voxelnek nevezzük.

4. Megjegyzés. A voxel eredetileg informatikai fogalom, a pixel kiterjesztése ma-gasabb dimenziókba (volume pixel).

5. Megjegyzés. Lehet k méretű voxelről vagy k-voxelről beszélni, ez azt a voxeltjelöli, amit akkor kapunk, ha k hosszú darabokra osztjuk a tengelyeket.

Vezessük be a fx, fy, fz konstansokat, melyek a munkatér felbontásának finom-ságát fogják reprezentálni, oly módon, hogy megadják hány voxelt veszünk fel egy amunkatér x, y, z irányába mutató egyenesen. Megjegyzendő, hogy a voxel mérete amunkatér irányaiban egyenlő kell legyen, mert hiába kell az egyik tengelyen kisebb

29

Page 33: Robotgeometria - ELTE

felbontás, mint a másikon, mivel a feladatot a konfigurációstérben fogjuk megol-dani, és könnyen elképzelhető, hogy egyes csuklók forgatásával egy másik csuklóhatástengelyének iránya megváltozik, így azt muszáj a legnagyobb felbontás szerintparaméterezni. Ez a korábbi h távolság, hiszen ennél pontosabb úgy sem szükséges.

11. Cella dekompozíció

A konfigurációstér diszkretizálásán alapuló módszer az úgynevezett cella dekompo-zíció. [3] Tegyük fel, hogy az algoritmus már tart valahol és a konfigurációstér felvan bontva nem egyenlő méretű fehér, fekete és szürke cellákra.

A szürke cellákat a következő módon dolgozzuk fel:

• ha a cella "térfogata" kisebb, mint egy ε méretű voxelé, végzünk benne együtközés tesztet, és ha ütközik, akkor feketére, ha nem akkor fehérre színezzük.

• ha nagyobb a mérete akkor minden tegelye mentén felezzük, ezáltal 2n darabkisebb szürke cellát kapunk.

Tegyük fel, hogy már valahol tart az algoritmus, ekkor egy lépése:

1. Minden fehér és szürke cellát reprezentáljon egy pont, majd ezen pontok közüla szomszédosokat kössük össze egy éllel.

2. Az így kapott gráfban keresünk egy utat csak a fehér pontok használatával, ésegy másikat, aminek megengedjük a szürke pontok használatát is.

3. Ha a szürkéket is használó útvonal lényegesen rövidebb, mint a csak fehére-ket használó, az érintett szürke cellákat feldolgozzuk, majd folytatjuk az 1.ponttal. Ha nem, akkor a csak fehéreket használó útvonalat elfogadjuk.

Így megkapjuk a konfigurációstér cella dekompozícióját oly módon, hogy lesznekfehér cellák, amikben nincs ütközés, fekete cellák, amelyek minden pontja ütközöttés szürke cellák, amelyek adott esetben tovább bonthatók. Ha az akadályok helyzetenem változik, akkor újra használhatjuk ezt a felbontást a következő célponthoz.

Az algoritmus indítása legegyszerűbben úgy történik, hogy az egész konfiguráci-ósteret egy szürke cellának tekintjük, de mivel ez az első pár lépésben csak bontanáa cellákat, célszerűbb ha már kezdetben egy térhálót helyezünk a konfigurációstérre,és e mentén bontjuk cellákra amiket szürkére színezünk.

30

Page 34: Robotgeometria - ELTE

Ha a cél vagy a kiinduló pont fekete cellába kerül, akkor nincs megoldás.Ha aszürke cellák használatával sincs út, akkor a célpont elérhetetlen. A gráfban azok apontok lesznek összekötve melyek cellájának van közös oldala. Így kevesebb vélet-len faktor van az algoritmusban, de nem kell ütközéstesztet végrehajtanunk az utakmentén, mert a fehér zónákon akadálytalanul haladhatunk át. További előnye, a leg-szűkebb átjárókat is megtalálja, ellentétben a skeletonizációs módszerekkel, valamintmindig csak azokat a részeket teszteli le amire szükség van. Hátránya viszont az,hogy a célpont általában a munkatérben van meghatározva, így nehéz megmondani,hogy hol van a konfigurációstérben.

12. Egy lehetséges diszkrét módszer

Megpróbálunk egy a számítógép számára könnyen emészthető felírását előállítani akonfigurációstérnek. Lényegében egy gyors és könnyen kezelhető adatbázist fogunklétrehozni, amely tartalmazza a konfigurációstér - munkatér sok-egy kapcsolatát éskönnyen kereshető. Mivel a munkatér egy pontjához tartozó konfigurációstérbelipontok felderítése bonyolult és hosszadalmas számításokat vesz igénybe és úgyisminden pontot meg kell vizsgálnunk, ezért a konfigurációstér szerint fogunk haladni.A legnagyobb probléma itt az, hogy a felbontás finomsága általában a munkatérbenvan megadva.

A konfigurációstér minden tengelyét úgy bontjuk fel egyenlő részekre, hogy egyikvoxelből a másikba ugráskor a kar minden pontja h-nál kisebb távolságot tegyen meg,ez a korábbi ε.

Ebből megkapjuk a konfigurációstér egy felosztását, ami most egy f1 ∗ f2 ∗ ...fnvoxelből álló n dimenziós ortonormált diszkrét tér. Itt ejtsünk néhány szót magá-ról a készülő adatbázisról. Az adatbázis a háttértáron fog helyet foglalni, minden(x, y, z) koordináta hármashoz két pointert rendelünk. Egy tömbben tartunk min-den konfigurációstérbeli ponthoz egy logikai értéket, ez jelzi hogy az adott pontelérhető avagy le van tiltva. Az adatbázis koordináták szerint rendezve van, tehát(0, 0, 0), (0, 0, 1), ...(0, 0, fz), (0, 1, 0), (0, 1, 1), ...(0, 1, fz), ...(0, fy, fz),

(1, 0, 0), ...(fx, fy, fz). Így az adatbázis minden eleme konstans időben elérhető. Aholfx, fy, fz a munkatér felbontásának finomsága. Mindkét pointer egy-egy listára mu-tat, az első listában az a konfigurációkra mutató pointerek vannak, amikre a robototmozditva a kar az (x, y, z) koordinátákra kerüljön, a másikban azokra a konfigurá-

31

Page 35: Robotgeometria - ELTE

ciókra mutató pointerek, amik, ha ebben a voxelben akadály van, tiltottak lesznek.Ezután megkezdjük a scannelést a konfigurációstér voxelei alapján, minden kon-

figurációstérbeli voxel középpontjához kiszámoljuk a kéz helyzetét és elmentjük azelső listába. Majd ütközéstesztet végzünk, és minden olyan munkatérbeli voxelhez,amivel ütközne, beírjuk az adatbázis második listájába a konfigurációstérbeli voxelt.Az adatbázis felírása jól párhuzamosítható, olyan módon, hogy az első csukló fel-bontása szerint külön feladatokként fogjuk fel. Mivel ezt egy nagyobb rendszerenvégezzük el, tovább gyorsíthatjuk, ha nem a normál processzort, hanem a videó-kártyát vesszük igénybe, ugyanis az adatbázis felírása során sok három dimenzióspontot kell transzformálnunk, mátrixokkal. További előnye, hogy a felderítést robot-szériánként egyszer kell elvégeznünk. Az adatbázist csak olvasni szükséges a robotélete során, így nem kell lehetővé tenni annak módosítását, és csak az aktuálisanvizsgált munkatérbeli voxel listáját kell betölteni a memóriába, majd ezek alapjánletiltani a jelzett logikai értékeket. Ennek a feldolgozása is történhet párhuzamosan,hiszen új akadályok bevételével csak letilthatunk, fel nem oldhatunk, így nem lehetabból probléma, hogy egy értéket kétszer tiltunk le.

Amikor a robotkar a konkrét munkatérben keresi az utat az akadályokat megkap-ja voxelenként, amin végighalad és a konfigurációkat letiltja, majd bekéri a célpontotés a hozzá tartozó voxeleket megjelöli célnak. Ezután a kész konfigurációstérben acella dekompozícióban látottak alapján keresünk utat, a voxelen belül pedig egyenesvonalakkal mozoghatunk, mert elég kicsik ehhez.

12.1. Konkrét Példa

Vegyük ismét az ismert KUKA robotot, a munkaterét hengerrel közelítve egy 1753mm átmérőjű és 1620 mm magas hengert kapunk. Ez belefér egy 1753 mm oldalúkockába, így ezzel számolunk. A pontossága a dokumentáció szerint 0,02 mm amia h távolság, tehát a munkateret tengelyenként 87 650 darabra kell osztani, vagy-is 673 373 097 125 000 voxelt kapunk. Az ε távolságot megkapjuk, ha a nulladikcsuklóban mozdítjuk a teljesen kinyújtott kart, ennek hossza 1355 mm mivel mind-egyik csukló Rotációs így radiánban vesszük a konfigurációstér beosztását ekkor εa h ívhoszhoz tartozó középponti szög, vagyis kerekítve 1.476 ∗ 10−5, vagyis a ten-gelyeket a konfigurációstérben 2 ∗ π/1.476 ∗ 10−5 ≈ 425678 darabra kell osztani,tehát 77 133 602 658 765 752 voxelt kapunk. A korábban látottak miatt ennek a

32

Page 36: Robotgeometria - ELTE

karnak a konfigurációsterében egy munkatérbeli ponthoz, két konfigurációstérbelipont tartozik. Így az adatbázis minden rekordja két pointert tartalmaz, tehát ateljes mérete 32 bites pointerekkel, 673373097125000 ∗ 2 ∗ 32 = 43095878216000000

bit vagyis 4 900 TB. A konfigurációstér voxelei alapján ütközés teszteket végzünk,ez a teljes konfigurációstérre r ∗ (16 + 6 + 2s) + p ∗ 16 = 66 + 6s művelet vo-xelenként, tehát 5090817775478539632 + 462801615952594512s művelet, a szinusztpolinommal közelítjük, egy n-ed fokú polinom kiértékelse O(3n) művelet, vegyünka π/4 közepű n = 30 fokú Taylor-polinomot ez az első negyedben elég pontos, atöbbi negyedet abból tudjuk számítani tehát s-et becsüljük 100-nak és tegyük fel,hogy egy művelet kevesebb mint 10 gépi művelet, vagyis az egész konfigurációstérakadálytesztje 513709793707379908320 gépi művelet ami egy személyi számítógép 8magos és 2,5GHz processzorrával, 2000 évig tartana, de jól párhuzamosítható és egynagyméretű felhőben gyorsan elvégezhető.

13. Útkeresés

Mind a véletlen út generáló algoritmusok, mind a cella dekompozíció és az adatbá-zisos módszer is egy nagy gráfot ad, melyen utat kell keresnünk a kiinduló pontbóla célpontba. A dolgozat elején említettem, hogy várhatóan nem egy célpont van.Ezt eddig nem vettük figyelembe, mert nem változtatott az algoritmusokon. Ittannyiban változik a helyzet, hogy a célpontokat egy új fiktív pontba kötjük és idetervezünk útvonalat. Az élekhez távolságokat rendelünk, ez a Voronoi-gráfból kép-zett matematikai gráf esetén a csúcsok metrikus távolsága, míg a többi esetben elég apontok euklideszi távját vennünk. Mivel a kiinduló pont adott, ebből a pontból kellmegkeresnünk a legrövidebb utat. Használhatunk egy egyszerű szélességi keresést,ha nem számít a költség, a többi esetben viszont komolyabb algoritmusra van szük-ségünk, ellenben minden távolságfüggvényünk pozitív, így használhatjuk Dijkstraalgoritmusát. Mind a két algoritmust leállíthatjuk, amint elérte a cél csúcsot.

Az utolsó probléma, hogy honnan tudjuk meg a célpont helyzetét a konfiguráci-óstérben. A Voronoi-gráfnál, illetve a skeletonizációs módszereknél a közeli teszteltpontokból lokális tervezővel kereshetünk, az adatbázisnál csak le kell kérdeznünk,mert a scannelésnél elmentettük. A cella dekompozíciónál viszont fogalmunk sincshol lehet, így ha nem adják meg konkrétan, akkor meg kell oldani az inverzkinema-tikai feladatot, bár ez lassú, de csak a célpontra kell megoldanunk numerikusan.

33

Page 37: Robotgeometria - ELTE

14. Összefoglalás

Dolgozatomban a robotkarok mozgatását fejtettem ki részletesebben. A robotokvezérlése és ennek matematikai, fizikai háttere ennél jóval összetettebb, részletesebb.

A problémák ismertetése után, ismertettem a Denavit-Hartenberg konvenciókatés a koordináta rendszereket. Bemutattam eljárásokat az útvonal keresésére, vala-mint konkrét példákon keresztül szemléltettem működésüket, ezután mutattam egyszámítógépes megvalósítását.

Ez természetesen egy nagyon kis szelete a robotikának, de talán már ebből islátszik, hogy mekkora területről van szó. A dolgozat során végig a robot útvona-lát illetve pályáját próbáltuk meghatározni, feltételezve, hogy a robot az általunkmegadott görbét képes követni. Többször megemlítettem a dolgozatban, hogy egyespályák biztonságosabbak másoknál. Ez azt jelenti, hogy a munkatérbeli megfelelő-jük távolabb halad el az akadályok mellett. Ha a robotkar pontosan tudná tartania megkapott görbéket, ezzel nem kéne foglalkoznunk, hiszen nem térne le az útvo-nalról. Ellenben a robotkar saját tehetetlensége miatt, illetve a kontrolláló szervekpontatlansága miatt, általában nem vagyunk képesek pontosan a pályán tartani arobotkart. A pontos pálya meghatározásához magasabb fizikai ismeretekre is szük-ségünk lenne, ezért nem tértem ki rá dolgozatomban.

Az algoritmusokban sok paramétert hagytam nyitva, mivel minden robotkarramás és más paraméterek az optimálisak. Az algoritmusok között sem állítottam fölsemmilyen rangsort, mivel adott helyzetben mindegyik máshogy viselkedik. Az út-keresés során használható gráfelméleti algoritmusokba sem mentem bele részletesen,mivel ez a dolgozat keretein kívülre esik.

34

Page 38: Robotgeometria - ELTE

Hivatkozások

[1] Spong Mark W., Hutchinson Seth és Vidyasagar M., Robot Modeling and Cont-rol, John Wiley and Sons, Inc., 2005

[2] KR AGILUS sixx WP technikai dokumentáció, KUKA Robotics, 2017

[3] Mesterséges Intelligencia Elektronikus Almanach,http://project.mit.bme.hu/mi_almanach/books/aima/ch25s04, 2017.05.03

[4] Alkalmazott Modul Jegyzet Geometriai transzformációk, Dr. Szeghy Dávid Pé-ter, 2013

[5] Gergó Lajos, Numerikus Módszerek, Eötvös Kiadó, 2010

35