Budapesti Műszaki és Gazdaságtudományi Egyetem Gépészmérnöki kar Műszaki Mechanika Tanszék
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval Tudományos Diákköri Dolgozat Szerző: Patkó Dóra Ipari termék-, és formatervező szakos hallgató, II. évf. Budapesti Műszaki és Gazdaságtudományi Egyetem Konzulens: Zelei Ambrus Tudományos segédmunkatárs MTA-BME Gépek és Járművek Dinamikája Kutatócsoport 2015 októbere
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval Tudományos Diákköri Dolgozat Kivonat A dolgozat témája az ember karjának mozgását leginkább leíró algoritmus megkeresése különféle inverz kinematikai megoldási módszerek közül. A cél, hogy képet kapjunk arról, hogy az emberi agy mi szerint döntheti el, milyen szögállást vegyenek fel az ízületek mozgás során. Először kinematikailag határozott rendszereket vizsgáltam. Rajtuk keresztül próbáltam ki a különféle módszerek működését, amiket később, a redundáns rendszereknél alkalmaztam. Kinematikai redundancia esetén a szabadsági fokok száma több, mint ami a feladat megoldásához minimálisan szükséges lenne. Síkmozgás esetén az emberi kar egy háromcsuklós redundáns rendszernek tekinthető, amennyiben a feladat egy előre megadott pálya pontjainak követése. Mind a kinematikailag határozott, mind a redundáns esetben először a direkt kinematikai felírással foglalkoztam, amikor a csuklószögek ismeretében felírtam a végpont helyének koordinátáit. Ezután az inverz kinematikai probléma megoldására többféle módszert kerestem. Ekkor a végpont koordinátáit ismerjük, és ebből határozzuk meg a csuklószögeket. Robotok mozgástervezésénél használjuk ezt, ugyanis általában magát a pályát ismerjük, amely mentén mozgatni akarjuk a rendszer végpontját, és a karok helyzetét ennek ismeretében állítjuk be. Az általam vizsgált inverz kinematikai módszerekkel kapott megoldásokat animációkkal szemléltettem, amik megmutatják, hogy különböző pályákon hogyan alakulnak egyes esetekben a szögek, valamint mindegyiknél kiszámoltam, hogy mekkora hibával haladnak végig a kijelölt pályán a karok. A dolgozatom második részében az így kapott eredményeket hasonlítom majd össze a néhány személyből álló csoporton elvégzett mérés eredményeivel. A mérésben részt vevő személyek egy előre kijelölt görbe mentén vezetik végig a kezükben tartott mutatópálcát, miközben egy videokamerás rendszer és képelemzés segítségével rögzítjük, hogy az ízületeik milyen szögben állnak. Hogy minél pontosabb eredményt kapjunk az összehasonlításnál, a szimulált robotkart a részt vevő személyek által bejárt görbén vezetem végig.
1
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Similarities between motion planning of redundant robots and human arm Abstract The work is about to find the motion planning algorithm of redundant robotic arms which is the most similar to humans’ motion planning. The purpose is to get a little bit closer to the understanding of the brain’s behaviour regarding the motion planning of the the body. At first I had examined kinematically not redundant systems for which I had applied several methods that I used later. In case of the kinematically redundancy there are more degrees of freedom than it would be minimally needed to solve the problem. In case of planar motion the human arm is considered to be a three-joint redundant system if it’s role is to follow the points of a given path. In both kinematically not redundant and kinematically redundant cases, the endpoint’s coordinates can be defined as function of the joint angles, which is called direct kinematics. I tested various solution methods for the inverse kinematic problem, when the joint angles are the unknowns. This is used in the robots’ motion planning, when the arms’ position depends on the prescribed path of the endpoint. The motion of the robot arm in case of different inverse kinematic methods is visualized by animations. As well as the error between the path and the prescribed endpoint is calculated too. In the other part of the work, the simulation results are compared with the measurement results obtained by videocapturing the motion of a small group of people. Each person had to follow a prescribed path with a pointer in their hands, while the joint angles were being recorded. For the sake of more accurate comparison the simulated robotic arm’s endpoint followed the path that was previously generated by the people.
2
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Tartalomjegyzék Bevezetés .................................................................................................................................. 5. Felhasznált matematika ............................................................................................................. 6. Pszeudoinverz .................................................................................................................... 6. Norma ................................................................................................................................ 8. Kinematikailag határozott rendszerek ................................................................................ 10. Direkt kinematika .................................................................................................................... 11. Inverz kinematika .................................................................................................................... 11. Zárt alakú megoldás ......................................................................................................... 12. Megoldás numerikus gyökkereséssel............................................................................... 14. Megoldás sebesség szinten .............................................................................................. 16. Kinematikailag redundáns rendszerek ............................................................................... 19. Direkt kinematika .................................................................................................................... 22. Inverz kinematika .................................................................................................................... 22. Rugópotenciál optimalizálás ............................................................................................ 23. Zárt alakú megoldás ......................................................................................................... 24. Megoldás rugópotenciál optimalizálással és numerikus gyökkereséssel ........................ 30. Megoldás numerikus gyökkereséssel, a pszeudoinverz felhasználásával ....................... 31. Megoldás sebesség szinten súlyozatlan pszeudoinverzzel .............................................. 31. Megoldás sebesség szinten súlyozott pszeudoinverzzel .................................................. 32. Megoldás sebesség szinten csuklólimitek figyelembevételével ...................................... 32. Megoldás sebesség szinten manipulability maximalizálással ......................................... 34. Megoldás sebesség szinten dynamic manipulability maximalizálással ........................... 34. Szimuláció .............................................................................................................................. 36. Kinematikailag határozott rendszer ......................................................................................... 37. Kinematikailag redundáns rendszer ........................................................................................ 39. Zárt alakú megoldás ......................................................................................................... 39. Rugópotenciál optimalizálással és numerikus gyökkereséssel ........................................ 40. Numerikus gyökkereséssel, a pszeudoinverz felhasználásával ....................................... 42. Súlyozatlan pszeudoinverzzel sebesség szinten .............................................................. 43. Súlyozott pszeudoinverzzel sebesség szinten .................................................................. 43. Csuklólimitek figyelembevételével sebesség szinten ...................................................... 45. Manipulability maximalizálással sebesség szinten .......................................................... 47. 3
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Dynamic manipulability maximalizálással sebesség szinten........................................... 48. Szimuláció eredményeinek összehasonlítása egyes megoldási módoknál.............................. 50. Mérés, és eredményeinek kiértékelése ................................................................................. 51. Nagy tömegű rúddal ................................................................................................................ 55. Lassú mozgás ................................................................................................................... 55. Közepesen gyors mozgás ................................................................................................. 57. Gyors mozgás .................................................................................................................. 57. Könnyű rúddal ......................................................................................................................... 57. Lassú mozgás ................................................................................................................... 57. Közepesen gyors mozgás ................................................................................................. 57. Gyors mozgás .................................................................................................................. 57. Kiértékelés ............................................................................................................................... 58. Összefoglalás .......................................................................................................................... 59. Irodalomjegyzék .................................................................................................................... 60. Függelék ................................................................................................................................. 61.
4
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
1., Bevezetés A dolgozat témája az ember karjának mozgását leginkább leíró algoritmus megkeresése különféle inverz kinematikai megoldási módszerek közül. A cél, hogy képet kapjunk arról, hogy az emberi agy mi szerint tervezi meg, milyen szögállást vegyenek fel az ízületek mozgás során. Amennyiben ezt tudnánk, képesek lennénk olyan robotokat készíteni, melyek eszerint mozognak. A gyógyászatban a mozgásszervi rendellenességekkel rendelkező embereken lehetne segíteni ezáltal. Először kinematikailag határozott rendszereket vizsgáltam. Ekkor a rendelkezésünkre álló információ elegendő mennyiségű a feladat megoldásához. Rajtuk keresztül próbáltam ki a különféle inverz kinematikai módszerek működését, amiket később, a redundáns rendszereknél általánosítva alkalmaztam. Kinematikai redundancia esetén a szabadsági fokok száma több, mint ami a feladat megoldásához minimálisan szükséges lenne. Síkmozgás esetén az emberi kar és kézfej egy háromcsuklós redundáns rendszernek tekinthető, amennyiben a feladat egy előre megadott pálya pontjainak követése. Mindkét esetben először a direkt kinematikai felírással foglalkoztam, amikor a robot csuklószögeinek függvényében határozzuk meg a végpont helyét- esetleg térben az orientációját. Ezután az inverz kinematikai probléma megoldására többféle megoldási módszert kerestem. Ekkor a végberendezés helyzetének függvényében határozzuk meg a csuklókoordinátákat, azaz kiszámítjuk, hogyan kell őket változtatni az adott trajektória bejárásához. Robotok mozgástervezésénél használjuk ezt, ugyanis olyankor magát a pályát ismerjük, amely mentén mozgatni akarjuk a rendszer végpontját, és a csuklószögeket ennek ismeretében állítjuk be. Az általam vizsgált inverz kinematikai módszerekhez Matlabban készítettem szimulációt, ami megmutatja, hogy különböző pályákon hogyan alakulnak a csuklószögek, valamint mindegyiknél kiszámoltam, hogy mekkora hibával haladnak végig a kijelölt pályán a karok. Annak céljából, hogy a munkateret alaposan végigpásztázva ellenőrizhessük le, hogy megfelelően működnek-e a megírt algoritmusok, Archimédeszi spirálon vezettem végig a végpontot. Ez egy olyan görbe, mely pontjainak egy adott középponttól mért távolsága a körülfordulással egyenes arányban nő. A dolgozatom második részében a vizsgált inverz kinematikai módszerekkel kapott eredményeket hasonlítom majd össze a mérés során kapottakéval, amikor egy előre meghatározott görbe mentén emberek vezetik végig a kezük. Hogy megnöveljük a kézfej „hosszát”, az alanyok egy-egy fém rudat tartanak a kezükben. Felvesszük, hogy az ízületeik milyen szögben állnak mozgás során. Mivel egyes inverz kinematikai megoldások érzékenyek a sebességre, így mérés során vizsgálok gyorsabb, és lassabb útbejárást is, valamint a rudak súlyával is variáltam. A görbe egy szív alakú pálya, melyet egy abszolút érték függvényből, és két körívből raktam össze, tehát a pálya tartalmaz egyenes valamint íves szakaszt, ezenfelül hirtelen törést is, ahogyan egy általános pálya is ezekből az elemekből épülhet fel. Hogy minél pontosabb eredményeket kapjunk az összehasonlításnál, nem ezen, hanem az emberek által rajzolt pályán vezetettem majd végig a rendszereim végpontját. 5
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
1.1. Felhasznált matematika 1.1.a Pszeudoinverz[1] A pszeudoinverz vagy más néven Moore-Penrose féle általánosított inverz egy mátrix inverzének olyan általánosítása, mely képes bármely 𝑨𝒛 = 𝒃 egyenletrendszerből a legjobban illeszkedő megoldást a mátrix inverzéhez hasonló módon megadni akkor is, ha az egyenletek és az ismeretlenek száma nem egyezik. Működését síkbeli egyenes illesztéssel fogom szemléltetni. Síkban két pont egyértelműen meghatároz egy egyenest (1.1.a.1-es ábra). A két pontra, melyek most legyenek 𝑃 és 𝑄, felírható egy-egy egyenlet. 𝑦𝑃 = 𝑚𝑥𝑃 + 𝑐
(1.a)
𝑦𝑄 = 𝑚𝑥𝑄 + 𝑐
(2.a)
Az egyenest meghatározó skalár ismeretlenek 𝑚, amely az egyenes meredekséget takarja, és 𝑐. A fenti egyenletekből a következő lineáris egyenletrendszert kapjuk rájuk: 𝑥𝑃 𝑥𝑄
𝑦𝑃 1 𝑚 1 𝑐 = 𝑦𝑃
(3.a)
1.1.a.1. ábra: Egyenes illesztés két pontra Két egyenlet jut két ismeretlenre, ezért az együtthatómátrix jelen esetben 2 × 2-es lesz, tehát négyzetes. Ilyen esetekben is létezik pszeudoinverz, de ilyenkor megegyezik magával a mátrix inverzével. Amennyiben az eredeti mátrixunk 𝑛 × 𝑚-es, a pszeudoinverzünk 𝑚 × 𝑛-es lesz. A fent bemutatott eset, mint majd a későbbiekben látni fogjuk a kinematikailag határozott rendszerekével egyezik meg. Ott az együtthatómátrix a Jacobi mátrix, az ismeretleneket tartalmazó vektorban pedig a két csuklószög szerepel. 6
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Három, nem egy egyenesre eső pontnál ellentmondásba ütközhetünk (1.1.a.2-es ábra). Tegyük fel, hogy van egy 𝑃, 𝑄 és 𝑆 pontunk, melyre egyenest szeretnénk illeszteni. Ilyenkor használhatjuk a Moore-Penrose féle általánosított inverzet (angolul pseudoinverse), hogy megtaláljuk a legmegfelelőbb megoldást. Jelen esetben három egyenlet írható fel, melyek közül az első kettő megegyezik az (1.a) és (2.a) egyenletekkel, a harmadik pedig hozzájuk hasonlóan az alábbi módon néz ki: 𝑦𝑆 = 𝑚𝑥𝑆 + 𝑐
(4.a)
Az együtthatómátrix ebben az esetben 3 × 2-es, mivel egy ℝ2 → ℝ3 típusú leképezésről beszélünk, a lineáris egyenletrendszer pedig így írható fel: 𝑥𝑃 𝑥𝑄 𝑥𝑆
𝑦𝑃 1 𝑚 1 = 𝑦𝑄 𝑐 𝑦𝑆 1
(5.a)
1.1.a.2. ábra: Egyenes illesztés három pontra Az együtthatómátrixot jelöljük 𝑨-val. Mivel 𝑨 teljes oszloprangú, ezért a hozzá tartozó pszeudoinverzet így írhatjuk le: 𝑨† = 𝑨𝑻 𝑨
−1
𝑨𝑇 ,
(6.a)
ahol 𝑨𝑇 az 𝑨 mátrix transzponáltja. Láthatjuk, hogy a Moore-Penrose féle általánosított inverz valóban 2 × 3-as. A konstansokat tartalmazó vektort jelöljük 𝒃-vel, az ismeretleneket pedig 𝒛-vel. Az ismeretlenek értékét az alábbi módon fejezhetjük ki általános alakban: 𝒛 = 𝑨† 𝒃
(7.a)
Az 1.1.a.2 ábrán látható, hogy a pszeudoinverz számítás alkalmazásával a megadott pontokra a legkisebb négyzetek értelmében legjobban illeszkedő egyenest kapjuk. A harmadik lehetőség, mikor nem áll megfelelő mennyiségű információ a rendelkezésünkre, például, ha az egyenes meghatározásához csak egy pontot kapunk, mely legyen most 𝑃 7
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
(1.1.a.3-as ábra). Ilyenkor csupán az (1.a) egyenlet írható fel. A lineáris egyenletrendszerben az 𝑨 együttható mátrixunk 1 × 2-es lesz. 𝑥𝑃
1
𝑚 = 𝑦𝑃 𝑐
(8.a)
Mivel most 𝑨 teljes sorrangú, a pszeudoinverz így adódik: 𝑨† = 𝑨′ 𝑨𝑨′
−1
,
(9.a)
ami egy 2 × 1-es mátrixot takar. Az ismeretlenek számítása a (7.a) egyenletnek megfelelően történik. Ilyenkor a megadott ponton áthaladó 45°-os egyenest adja a módszer.
1.1.a.3 ábra: Egyenes illesztés egy pontra A kinematikailag redundáns eseteknél ez a helyzet áll fenn. Az esetekhez tartozó együttható mátrix a későbbiekben kiszámított Jacobi mátrix, amelynek az általánosított inverze az alábbi módon számítható ki [2]: 𝑱† = 𝑱′ 𝑱𝑱′
−1
(10.a)
1.1.b Norma[3] A norma olyan leképezés, mely a vektortér bármely vektorához, kivéve a nullvektort egy pozitív számot rendel. A munkám a során a leggyakrabban használt normákat, azaz az 1normát, és 2-normát alkalmaztam. Egy, még gyakran használt norma, a végtelen norma, de munkám során nem alkalmaztam. 𝑥
1
=
𝑥
2
=
𝑛 𝑖=1
𝑥𝑖
𝑛 𝑖=1
(1.b) 𝑥𝑖
2
(2.b)
8
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Lentebb található két kép arról, hogy a különböző normákat használva, milyen kétdimenziós képet kapunk az egységgömbökről (1.1.b.1. és 1.1.b.2-es ábrák).
1.1.b.1 ábra: 1-norma
1.1.b.2 ábra: 2-norma
9
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
2., Kinematikailag határozott rendszerek Két mozgó tagból álló kart fogok vizsgálni síkban (2.1.-es ábra). A kétcsuklós mechanizmus nyílt kinematikai láncot alkot, tehát a végpont szabadon mozoghat, nincs rögzítve. A talajhoz olyan csukló rögzíti, mely meggátolja a rendszer elmozdulását mind 𝑥, mind 𝑦 irányban. Az egyes és kettes kart egy csukló köti össze, a rendszer végén pedig végberendezés (angolul: end-effector) található. Mivel mindkét csuklónál a kar egy-egy irányba tud elmozdulni (𝑧 tengely körül forognak), ezért két szabadsági fokú a rendszer. Mozgás során az 𝑙1 kar a rögzítés helye körül végez forgómozgást, a másik kar mozgása általános síkmozgást. A rendszer direkt és inverz kinematikai számításaival fogok foglalkozni. Először a direkt kinematikai leírást vizsgálom. Síkban a végpont koordinátáit két egyenlet adja meg, a végpont origótól mért távolságát az 𝑥 tengely, illetve az 𝑦 tengely mentén. Később áttérek az inverz kinematikára. Ekkor a rendszer végpontjának helyzetét ismerem, és a csuklószögeket kell meghatároznom. Ez két ismeretlent takar. Mivel két egyenlet áll a rendelkezésemre, a rendszer kinematikailag határozott. Azonban mivel az egyenletrendszer transzcendens, így csak nehezen tudom közvetlenül belőle kiszámolni a csuklószögeket. A fejezetben három megoldási módszert alkalmazok a probléma megoldására.
2.1. ábra: Vizsgált rendszer kialakítása
10
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
2.1. Direkt kinematika Direkt kinematika esetén a rendszer végpontjának helyzetét a csuklószögek függvényében határozzuk meg. Ez 2 DoF esetén síkban két egyenletet takar, tehát ℝ2 → ℝ2 leképezésről beszélünk. A helyzet meghatározásához tudnunk kell, hogy az origóhoz képest a rögzítési hely hol található, az egyes karok hosszát és a csuklószögeket. A csuklószögek kétféleképpen is megadhatók: abszolút módon, vagyis hogy a vízszintessel milyen szöget zárnak be, illetve relatív módon. A koordinátarendszerem origóját a rendszer rögzítési helyére helyezem. A karok vízszintessel bezárt szögének ismeretében felírhatóak a végpont helyének koordinátái az alábbi egyenletrendszer megoldásával: 𝑥 = 𝑙1 cos 𝜑1 + 𝑙2 cos 𝜑2 , 𝑦 = 𝑙1 sin 𝜑1 + 𝑙2 sin 𝜑2
(1)
ahol 𝑙1 és 𝑙2 rendre a karok hosszai. A csuklószögek megadhatók relatív módon is, mikor az egyes szögeket az előző kar által meghatározott egyenestől számítva mérjük, az első karét pedig a vízszinteshez képest. Ily módon a fenti egyenletek így módosulnak: 𝑥 = 𝑙1 cos 𝜑1 + 𝑙2 cos 𝜑1 + 𝜑𝑅2 𝑦 = 𝑙1 sin 𝜑1 + 𝑙2 sin 𝜑1 + 𝜑𝑅2
(2)
Az utóbbi egyenletrendszerben az összeg második tagjában lévő trigonometrikus függvények argumentumában két olyan változó is szerepel, ami függ az időtől. Ha a szögek szerint parciálisan deriváljuk az egyenletrendszert, amire a végpont sebességének meghatározása céljából lehet szükség, erről a dolgozat során bővebben beszélek majd, hosszabbak lesznek a Jacobi mátrix egyes elemei, hisz a 𝜑1 szerinti parciálisderivált két tagból fog állni, míg az első esetben csak egyből, tehát a sebességet felhasználó megoldásoknál kényelmesebb az (1)-es egyenletrendszert alkalmazni. 2.2 Inverz kinematika Inverz kinematika esetén a végpont helyzetét ismerjük, de a csuklószögeket nem. Robotkarok mozgástervezésénél is ez a helyzet áll fent. Két ismeretlen szöget kell meghatároznom a rendszer végpontját megadó két egyenlet segítségével, tehát a rendszer kinematikailag határozott. Viszont az (1)-es egyenletrendszer, akárcsak a (2)-es, transzcendens, így közvetlenül csak nehezen lehet belőle kiszámolni a szögeket, hiába egyezik meg az egyenletek száma az ismeretlenekével. Háromféle megoldást vizsgáltam. Az első szerint elemi geometriai úton zárt alakú képlettel határoztam meg a szögeket. Mivel létezik véges számú megoldás, ezért ezt külön kitételek nélkül megtehettem. Ez a módszer megadja mindkét lehetséges megoldást, és nagy pontosságú. A másodiknál nullára rendeztem az egyenletrendszert, és numerikusan kerestem a gyökét. Ez a megoldás gyors, és kényelmes, és a hiba is elfogadható tartományba esik. A harmadiknál sebesség szinten pontról-pontra határoztam meg Δ𝑡 időintervallumok elteltével a következő szögállást. A hibája nagyban függ az időegységek kicsinységétől, hiszen a helyzetek között átlag szögsebességgel számoltam. 11
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
2.2.a Zárt alakú megoldás Elemi geometriai ismeretek alapján keressük a megoldást. Ismerve a végpont koordinátáit, határozottan ki lehet számítani a rendszer karjainak helyzetét. Ez időigényes feladat, hiszen attól függően a végpont a sík mely negyedében található más képletekkel kell dolgoznunk. Előnye, hogy nagy pontosságú, és megadja mindkét lehetséges megoldást. Két szögállás lehetséges minden pontnál a síkban: A, 𝜑1 a nagyobb, mint 𝜑2 B, 𝜑2 a nagyobb, mint 𝜑1 (2.2.a.1-es ábra). Első lépésben a 𝜑1 -et számoltam ki. A végpont távolságát meg tudjuk határozni a koordinátái ismeretében, ami a Pitagorasz tételt felhasználva a következőképp adódik: 𝑟=
𝑥2 + 𝑦2
(1.a)
Ez a végpontba mutató bázisvektor abszolút értéke. Az 𝒓, és a rendszer karjai egy háromszöget feszítenek ki. Mivel ismerjük a háromszög minden oldalát, cosinus tétellel meghatározható az 𝑙2 hosszúságú rúddal szemben lévő szög. 𝛼 = cos−1
𝑟 2 + 𝑙 12 − 𝑙 22 2𝑟𝑙 1
(2.a)
𝑥-ből és 𝑦-ból 𝒓 emelkedési szöge: 𝛾 = tan−1
𝑦 𝑥
(3.a)
Ennek az egyenletnek kikötése, hogy 𝑥 nem lehet 0. Abban az esetben 𝛾-ról tudjuk, hogy 𝜋 + 𝑘𝜋 az értéke, 𝑘 ∈ ℤ. Most 𝑘 = 0 esettel foglalkozok. 2 A karok lehetséges helyzeteit vizsgálva, azt állapítottam meg, hogy amennyiben az 𝐴 pontot (rendszer talajhoz való rögzítési helyét) választjuk meg a koordináta rendszerünk origójának, és felosztjuk a síkot négy részre a tengelyek mentén (2.2.a.1-es ábra), azt kapjuk, hogy attól függően, hogy a végpont mely sík negyedben található, az 𝛼 és 𝛾 ismeretében 𝜑1 -et a következőféleképpen számíthatjuk ki, a, ha a végpont az I.vagy a IV. sík negyedben van, illetve ha 𝑥 = 0: a.1., 𝜑1 kisebb, mint 𝜑2 𝜑1 = 𝛾 − 𝛼
(4.a)
a.2., 𝜑1 nagyobb, mint 𝜑2 𝜑1 = 𝛾 + 𝛼
(5.a)
b, ha a végpont a II. vagy a III. sík negyedben van: b.1., 𝜑1 kisebb, mint 𝜑2 𝜑1 = 𝜋 + 𝛾 − 𝛼
(6.a)
12
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
b.2., 𝜑1 nagyobb, mint 𝜑2 𝜑1 = 𝜋 + 𝛾 + 𝛼
(7.a) 𝜋
𝜋
Mivel az arctg függvény csak a − 2 ; 2 tartományon ad vissza értéket, így a többi lehetséges szöget 𝜋-vel való eltolással fejezhetjük ki. Azt hogy 𝛼-t hozzáadjuk vagy kivonjuk 𝛾-ból az határozza meg, hogy az 𝒓 és a karok által kifeszített háromszög belül vagy kívül helyezkedik-e el azon derékszögű háromszögben, melyet 𝒓 alkot a koordinátatengelyek szerinti felbontásakor keletkező komponens vektoraival. Ez annak a függvénye, hogy 𝜑1 -et vagy 𝜑2 -t választjuk meg nagyobbnak. Ennek megadása egy plusz feltételt igényel, például van-e valamilyen akadály, pl.: talaj, állvány, amibe valamely esetnél beleütközhet a kar az útja során.
2.2.a.1. ábra: A lila konfiguráció esetén 𝜑1 nagyobb, mint 𝜑2 , a feketénél fordított a csuklószögek relációja Ismerve 𝜑1 -et, ki tudjuk számítani a 𝐵 pont koordinátáit, melyek legyenek (𝑥𝐵 , 𝑦𝐵 ). A 𝜑2 -t a 𝑃 és a 𝐵 pont koordinátáinak különbségével kapott 𝑥𝑑 -vel és 𝑦𝑑 -vel felírt arctg függvényből kapjuk: 𝑥𝑑 , 𝑦𝑑 = 𝑥, 𝑦 − 𝑥𝐵 , 𝑦𝐵
(8.a)
Természetesen itt sem mindegy a rendszer csuklóinak elhelyezkedése. A 𝜑2 -t meghatározó egyenlet a következőképp adódik, ha a, 𝑥𝑑 pozitív: 𝜑2 = tan−1
𝑦𝑑 𝑥𝑑
(9.a)
13
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
b, 𝑥𝑑 és 𝑥𝐵 is negatív, vagy 𝑥𝑑 negatív, miközben 𝑦𝑑 és 𝑥𝐵 pozitív: 𝑦𝑑
𝜑2 = 𝜋 + tan−1
𝑥𝑑
(10.a)
c, 𝑥𝑑 , 𝑦𝑑 negatív, de 𝑥𝐵 pozitív: 𝜑2 = tan−1
𝑦𝑑
− 𝜋
𝑥𝑑
(11.a)
d, 𝑥𝑑 = 0 és 𝑦𝑑 pozitív: 𝜑2 =
𝜋
(12.a)
2
e, 𝑥𝑑 = 0 és 𝑦𝑑 negatív: 𝜋
𝜑2 = − 2
(13.a)
Megjegyzések: A zárt alakos levezetéseknél, mikor arról döntök, hogy melyik kar szöge nagyobb, azt nézem, hogy 𝜑2 -t úgy kapom-e meg, hogy a 𝐵 csuklóhoz tartozó relatív szöget, ki kell-e vonnom, vagy hozzá kell-e adnom 𝜑1 -hez. Ha ki kell vonnom, akkor 𝜑1 „nagyobb”, ha hozzá kell adnom, akkor 𝜑1 „kisebb”. A bemutatott számítás algoritmizálható, ezzel gyors és pontos számítást érünk el.
2.2.b Megoldás numerikus gyökkereséssel A direkt kinematikai részben tárgyalt (1)-es egyenletrendszert kielégítő megoldást keresem a csuklószögek függvényében, az egyenletrendszer nullára rendezése után. Ezt a többváltozós Newton-Raphson módszer segítségével teszem, melynek előnye, hogy gyorsan konvergál a megoldáshoz, amennyiben a függvény „szép”, és eleget tesz néhány feltételeknek, melyeknek teljesülnie kell, hogy alkalmazni lehessen. Használatához szükségünk van az ismeretlenek, jelen esetben a csuklószögek szerinti parciális deriváltakat tartalmazó Jacobi mátrix inverzére. Az inverz meghatározása ebben az esetben egyértelmű, mivel a Jacobi mátrix négyzetes. Fontos még, hogy regulárisnak kell lennie a mátrixnak, azaz a determinánsának nullától különböző értéket kell felvennie. Ha több megoldás létezik, a módszer a kezdeti becsléstől függően mindig csak egy megoldást talál meg. A többváltozós Newton-Raphson módszer általános alakja: 𝝋𝒊+𝟏 = 𝝋𝒊 − 𝑱 𝝋𝒊
−1
𝒇 𝝋𝒊
(1.b)
Magának a Newton-Raphsonnak a működését úgy lehetne egy dimenzióban szemléltetni, hogy az aktuális helyhez tartozó értéknél a függvény ottani érintője metszi ki a következő helyet az 𝑥 tengelyen, amit vizsgálunk, és ahol utána az ahhoz tartozó érték érintője adja meg az azt következő helyet (2.2.b.1-es ábra).
14
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
2.2.b.1. ábra: Newton-Raphson működésének bemutatása egyváltozós esetben. Az (1.b) egyenletben szereplő tagok jelen esetben: 𝝋=
𝜑1 𝜑2
𝒇 𝝋 =
(2.b) 𝑙1 cos 𝜑1 + 𝑙2 cos 𝜑2 − 𝑥 𝑙1 sin 𝜑1 + 𝑙2 sin 𝜑2 − 𝑦
(3.b)
𝑱(𝝋) az 𝒇(𝝋) Jacobi mátrixa, amely a gradiensek transzponáltjait tartalmazza. 𝑱 𝝋 =
−𝑙1 sin 𝜑1 𝑙1 cos 𝜑1
−𝑙2 sin 𝜑2 𝑙2 cos 𝜑2
(4.b)
Fontos kitétel, hogy a Jacobi mátrix inverzének léteznie kell. Ehhez vizsgáljuk meg a determinánst, mely jelen esetben: det 𝑱 𝝋
= 𝑙1 𝑙2 sin 𝜑2 − 𝜑1
(5.b)
Az (5.b) egyenletből következik, mivel a karok hosszai nullánál nagyobb pozitív számok, hogy akkor zérus a determináns, ha 𝑠𝑖𝑛 𝜑2 – 𝜑1 = 0. A sin függvény értéke 0° és 180°-nál zérus a 0 2𝜋 tartományon, tehát akkor nem alkalmazható a (1.b) egyenlet, ha a rendszer karjai vagy teljesen ki vannak nyújtva, vagy egymásra vannak hajtva. A módszer hátránya, hogy hajlamos az eredmény ugrálni. A zártalakú megoldásnál látszódik, hogy két jó megoldás is létezik. Lehetséges, hogy a rendszer egy pályán való végigvezetésénél hol az egyik, hol a másik helyzetet találná meg. Az efféle problémák elkerülése végett az algoritmus, nem mindig egy konstans szöget vesz kezdeti becslésnek, hanem a pálya előző (𝑥, 𝑦) pontjánál felvett csuklószög értékből számol tovább. Arra is ügyelni kell, hogy mivel a sin és cos függvények 2𝜋 szerint periodikusak, könnyen kaphatunk indokolatlanul nagy, vagy épp kis szögeket. Erre megoldás a (6.b) egyenlettel megadható tompított Newton-Raphson (angolul damped Newton’s method), mely egy konstans szorzóval tér el a (1.b) egyenlettől. A 𝜁 konstans tényező arra való, hogy csökkentse az egymás után következő becslések közötti különbséget, lassítsa a konvergálás sebességét, így kevésbé valószínű, hogy a konvergencia során egy megoldást átugrunk.
15
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
A tompított többváltozós Newton-Raphson módszer általános alakja: 𝝋𝒊+𝟏 = 𝝋𝒊 − 𝜁𝑱 𝝋𝒊
−1
𝒇 𝝋𝒊
(6.b)
ahol 𝜁 egy egynél kisebb szám, és tapasztalati úton (angolul trial and error) lehet behangolni. 2.2.c Megoldás sebesség szinten A rendszert egy önkényesen megválasztott alapállásból indítjuk. A végpont sebessége, és a szögsebesség közti összefüggést használom ki, hogy pontról pontra kis időintervallumok elteltével megnézzem, mik a csuklószögek úgy, hogy közben teljesüljön az a feltétel, hogy a rendszer végpontja egy megadott pálya pontjaira illeszkedjen. Ezzel mintegy numerikusan integráljuk a szögsebességet, annak céljából, hogy megkapjuk a szögeket (2.2c.1-es ábra). Minden vizsgált időpont között kis ∆𝜑 szögtávolságokat kapunk. Tehát: 𝝋𝒊+𝟏 = 𝝋𝒊 + 𝝋𝒊 Δ𝑡
(1.c)
2.2.c.1. ábra: Euler módszer szemléltetése, a fekete a 𝑡0 időpillanatban lévő állás, a sárga ∆𝑡vel későbbi. Általános esetben vizsgálva a problémát, a végpont pillanatnyi sebességét úgy kapjuk, hogy az idő szerint deriváljuk a végpontba mutató 𝑹 helyvektort. Az így kapott kifejezés előállítható a Jacobi mátrix és a szögsebességeket tartalmazó vektor szorzatából[4]. 𝑹 = 𝑱𝝋
(2.c)
Átrendezve az egyenletet a következő összefüggés adódik a szögsebesség vektorra: 𝝋 = 𝑱−𝟏 𝑹
(3.c)
Jelen esetben ezt a szögsebességet az (1)-es egyenletrendszerből kapjuk, amit az idő szerint deriválunk, így megkapjuk a rendszer végpontjának sebességét. 𝑥 𝑦 =
𝑙 1 cos 𝜑 1 +𝑙 2 cos 𝜑 2 𝑙 1 sin 𝜑 1 +𝑙 2 sin 𝜑 2
(4.c) 16
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
−𝜑1 𝑙1 sin 𝜑1 − 𝜑2 𝑙2 sin 𝜑2 𝑥 = 𝑦 𝜑1 𝑙1 cos 𝜑1 + 𝜑2 𝑙2 cos 𝜑2
(5.c)
A szögsebesség vektort kiemelve az egyenletből a következőt kapjuk: −𝑙1 sin 𝜑1 𝑥 = 𝑦 𝑙1 cos 𝜑1
−𝑙2 sin 𝜑2 𝜑1 𝑙2 cos 𝜑2 𝜑2
(6.c)
A négyzetes mátrix a Jacobi mátrix. A Jacobi mátrix inverzének létezésére itt is igazak a 2.2.b részben tárgyalt kikötések. Az (5.c) egyenlet levezethető a redukciós képletek felírásával is. A robotkar egy nyílt kinematikai lánc (2.2.c.2-es ábra). Síkban a szögsebesség vektor merőleges a sebességre, és párhuzamos a mozgás síkját kifeszítő egymásra merőleges vektorok vektoriális szorzatára. Tudjuk, hogy 𝑥𝐴 és 𝑦𝐴 értéke zérus, ez az egyes rúd sebességpólusa. A 𝐵 és 𝐶 pontok sebessége az alábbi módon írható fel a szögsebességek, és az ismert sebességű pontból a kiszámolni kívánt pontba mutató vektor segítségével: 0 𝑙1 cos 𝜑1 𝑥𝐵 𝑦𝐵 = 0 × 𝑙1 sin 𝜑1 𝜑1 0 0
(7.c)
0 𝑥𝐶 𝑙2 cos 𝜑2 𝑥𝐵 𝑦𝐶 = 𝑦𝐵 + 0 × 𝑙2 sin 𝜑2 𝜑2 0 0 0
(8.c)
Látható, hogy amennyiben a (8.c) egyenletbe behelyettesítjük a (7.c)-t, visszakapjuk az előbb levezetett (5.c)-t.
2.2.c.2. ábra: A vizsgált rendszer a sebességállapot leírásához szükséges vektorok feltüntetésével Az (1.c) egyenletbe behelyettesítve a szögsebesség helyére a kifejezést a (3.c)-ből, megkapjuk a soron következő szögállás miként függ a végpont sebességétől. Ez általános esetben: 𝝋𝒊+𝟏 = 𝝋𝒊 + 𝑱 𝝋
−1
𝑹Δ𝑡
(9.c) 17
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
A végpontbeli sebesség és az időegység szorzata kis távolságszakaszokat ad eredményül (2.2.c.3-as ábra). 𝑥𝑖+1 𝑥𝑖 𝚫𝑹𝒊 = 𝑦 − 𝑦 𝑖+1 𝑖
(10.c)
A módszer hibája, hogy az időközökben a sebességet állandónak tekintjük, mivel átlagsebességgel számolunk. Az eljárás tehát annál pontosabb, minél kisebb szakaszokat vizsgálunk, azaz minél kevesebb időt hagyunk eltelni a mintavételek közt, mivel ez által az átlagsebesség is egyre inkább a végpont pillanatnyi sebességéhez közelít. Ezen kívül pontatlanság adódhat abból, ha a kezdeti becslés nagyon eltér a megkívánt csuklószögektől. Ilyenkor előfordulhat, hogy pár lépésig meg sem találja a rendszer az előre kijelölt görbét. Olyan esetekben, mikor többféle szögállás esetén is ugyanabba a pontba mutat a rendszer végpontja, pl. redundáns rendszereknél, előfordulhat, hogy teljesen különböző csuklószögeket vesznek fel a karok a kezdeti becslés függvényében. A módszerhez tartozó végképlet általános alakban: 𝝋𝒊+𝟏 = 𝝋𝒊 + 𝑱 𝝋𝒊
−1
𝚫𝐑 𝐢
(11.c)
2.2.c.3. ábra: A fekete a 𝑡0 időpillanatban lévő állás, a sárga ∆𝑡-vel későbbi. Ez alatt a rendszer végpontja ∆𝑹 utat tett meg. Megjegyzések: A 2.2.b módszerrel ellentétben itt a 𝝋𝒊+𝟏 már a következő (𝑥, 𝑦) koordinátához tartozó szögeket tartalmazza, nem egy rekurzív sorozat (𝑖 + 1). tagja. Magasabb rendű integrálási módszerrel pontosabb eredményhez jutnánk, amennyiben figyelembe vennénk a kis időintervallumokon belül is a sebesség változását. A legelterjedtebb ilyen módszer a Runge-Kutta módszer, amely jóval pontosabb, de sokkal bonyolultabb is.
18
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
3., Kinematikailag redundáns rendszerek Az előző esethez képest az általunk vizsgált rendszer abban különbözik, hogy a rendszer három tagból áll (3.1-es ábra). A 𝐶 jelű plusz csukló szintén el tud fordulni egy irány mentén, ami a 𝑧 tengely körül jelent forgómozgást, akárcsak az 𝐴 és 𝐵 csuklóknál. Tehát a robotkar három szabadsági fokkal rendelkezik. A rendszer háromcsuklós mechanizmus, és nyílt kinematikai láncot alkot, mivel a végpont nincs rögzítve. Az egyes kar az 𝐴 pont körül végez forgómozgást. A másik két test mozgása általános síkmozgás. Ha csak egy síkon mozgatom a rudakat, lényegében azonos rendszert kapok az ember karjával. Ott a három „rudat” a felkar, alkar és a kéz adja. Három, egymásra kölcsönösen merőleges síkra osztom a teret: vízszintes, frontális és sagittalis. A munkám során a sagittalis síkban vizsgálom a mozgást.
3.1. ábra: A vizsgált rendszer kialakítása Munkám során szükségem lesz a rendszer tömegmátrixára[5]. A tömegmátrix kiszámítása során a rendszer tömegeloszlását az elmozdulás bázisfüggvényeivel közelítjük. A rendszer összes kinetikus energiáját az alábbi módon kapjuk: 𝑇 = 𝑇𝑖 ,
(0.1)
ahol 𝑇𝑖 az i. kar. Ugyanez kvadratikus formában így néz ki: 1
𝑇 = 2 𝝋𝑻 𝑴𝝋,
(0.2)
ahol 𝑴 a tömegmátrix, 𝝋 pedig az általános koordinátavektorok idő szerinti deriváltja. Az egyes karok energiájának összege könnyedén meghatározható. A tömegmátrixot pedig úgy kaphatjuk meg, hogy az általános koordinátavektorok deriváltja szerint kétszer parciálisan deriváljuk a (0.1)-es egyenletet. Azaz a tömegmátrix megegyezik a (0.1)-es egyenlet Hesse mátrixával. A rudak energiáját a súlypontra írom fel. A koordinátarendszer origója a rögzítés helyénél, az 𝐴 pontban van. A kinetikus energia a következő alakban írható fel: 1
1
𝑇𝑖 = 2 𝑚𝑖 𝑣𝑠𝑖2 + 2 𝜃𝑠𝑖 𝜑𝑖2
(0.3)
19
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
ahol 𝜃𝑠𝑖 az i. kar súlypontján átmenő, a mozgás síkjára merőleges 𝑠 tengelyre számított tehetetlenségi nyomaték, a 𝑣𝑠𝑖 pedig a súlypont sebessége. A tehetetlenségi nyomaték a test infinitezimális tömegegységeinek és egy kiválasztott ponttól való távolságnégyzetüknek a szorzatösszege. Azaz a távolságnégyzetének tömeg szerinti integrálja. Ez homogén rudak esetén az alábbi módon számítható ki: 1
𝜃𝑖 = 12 𝑚𝑖 𝑙𝑖2
(0.4)
A harmadik rúd tehetetlenségi nyomatékát a feljebb leírt képlet alapján számítom, hiszen a méréskor a kézben tartott rudak homogének, a kéz tömege elhanyagolható. A felkart és alkart vékonyodó rúdként kezeltem, aminek a tömeg és a hossz mellett a súlypont helye is paramétere. Ezeket a lejjebb található táblázat tartalmazza (3.2-es ábra).
3.2 ábra: Keskenyedő rúd. 𝜃𝑖 =
ℎ𝑖 𝑟 2 𝜅𝑖 𝑑𝑟 −(𝑙 𝑖 −ℎ 𝑖 )
(0.5)
𝜅𝑖 = 𝜅𝑖𝑘 + 𝑥𝜅𝑖𝑢
(0.6)
, ahol 𝜅𝑖 a differenciálisan kicsi hosszra jutó tömegegység. A legkisebb keresztmetszetből indulva, amennyiben a vastagodás mértéke állandó, 𝜅𝑖𝑢 -val növekszik a 𝜅𝑖𝑘 kezdeti értéke a hossz mentén. Értékeik meghatározhatóak, mivel tudjuk, hogy a statikai nyomaték a súlypontra zérus, illetve hogy 𝜅𝑖 hosszra vett integrálja épp az i. kar tömege. ℎ𝑖 𝑟𝜅𝑖 𝑑𝑟 −(𝑙 𝑖 −ℎ 𝑖 )
≡0
(0.7)
A három ismeretlenre megoldva az egyenletrendszert, majd elvégezve a (0.5)-ös integrálást, a következőt kapjuk a tehetetlenségi nyomatékokra: 1
𝜃𝑖 = 𝑚 𝑙𝑖 ℎ𝑖 − ℎ𝑖2 − 6 𝑙𝑖2
(0.8)
A sebességet az általános koordináták segítségével kell kifejeznünk, melyek a csuklószögek. A rudak súlypontjainak (𝑆𝑖 ) koordinátái felírhatóak a szögek segítségével (3.3-as ábra). Amennyiben ezek után az idő szerint deriváljuk a súlypontba mutató vektorokat, megkapjuk a sebességeket a szögek és szögsebességek függvényében. A kinetikus energiához a sebesség négyzete kell, azaz a sebességvektor hosszának a négyzete, ami megegyezik az önmagával vett skaláris szorzattal. Természetesen akkor is megkapnánk a sebességeket, ha a redukciós képleteket felírva, az első kar póluspontjától (𝐴 pont) számítjuk ki a súlypontok sebességét. Skaláris szorzat:
20
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
𝑣𝑠2 =
j 𝐯i,j 𝐯i,j
i
(0.9)
Kétszer parciálisan deriválva a rendszer kinetikus energiáját az általános koordinátavektorok idő szerinti deriváltjai szerint, a következő 3 × 3-as tömegmátrixot kapjuk a kvadratikus forma felírása után: 𝑴= 𝑎1 𝑚1 + 𝑚2 + 𝑚3
𝑙12
𝑙1 𝑙2 cos 𝜑1 − 𝜑2 1 𝑙 𝑙 cos 2 1 3
𝑙1 𝑙2 cos 𝜑1 − 𝜑2
𝑎2 𝑚2 + 𝑚3
𝜑1 − 𝜑3 𝑚3
𝑎2 𝑚2 + 𝑚3
𝑙22 𝑎3 𝑚2 + 𝑚3 1 𝑙 𝑙 cos 2 2 3
𝜑2 − 𝜑3 𝑚3
1 𝑙 𝑙 cos 𝜑1 − 𝜑3 2 1 3 1 𝑙 𝑙 cos 𝜑2 − 𝜑3 2 2 3 1 2 𝑙 𝑚 3 3 3
𝑚3 𝑚3
(0.10) ahol 𝑎1 = 𝑎2 = 𝑎3 =
1 6𝑆1 6 𝑆2 𝑙2
𝑙1
= 0.4567
1 6𝑆2 6
− 1 = 0.4096
𝑙2
− 1 = 0.29
(0.11) (0.12) (0.13)
3.3. ábra: Az emberi kart leíró rendszer súlypontjainak helye rendre: 𝑆1 = 0.5763𝑙1 ; 1 𝑆2 = 0.4567𝑙2 ; 𝑆3 = 𝑙3 2 Testrész Súlypont távolsága % 57.63 Felkar 45.67 Alkar 76.87 Kéz Egyes testrészek súlypontjának elhelyezkedése a törzstől számítva, női és férfi átlag [6] 21
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
3.1. Direkt kinematika A csuklószögek ismeretében direkt módon kiszámítható a végpont helyzete. Meghatározásához ismernünk kell még a rögzített csukló helyét a koordinátarendszerben és a karok hosszát. A rendszer rögzítési pontját az origóba helyezem. Két egyenlet írható fel, az egyik a végpont 𝑥 tengely, a másik az 𝑦 tengely mentén mért távolságát adja meg. Amennyiben a csuklószögeket a vízszinteshez képest mérjük, az egyenletrendszer az alábbi módon írható fel: 𝑥 = 𝑙1 cos 𝜑1 + 𝑙2 cos 𝜑2 + 𝑙3 cos 𝜑3 𝑦 = 𝑙1 sin 𝜑1 + 𝑙2 sin 𝜑2 + 𝑙3 sin 𝜑3
(1)
ahol l1, l2 és l3 rendre a karok hosszai. A másik lehetőség a relatív szögek használata, mikor egy-egy csukló szögét az előző rúd által meghatározott egyeneshez mérjük, az első karét pedig a vízszinteshez: 𝑥 = 𝑙1 cos 𝜑1 + 𝑙2 cos 𝜑1 + 𝜑𝑅2 + 𝑙3 cos 𝜑1 + 𝜑𝑅2 + 𝜑𝑅3 𝑦 = 𝑙1 sin 𝜑1 + 𝑙2 sin 𝜑1 + 𝜑𝑅2 + 𝑙3 sin 𝜑1 + 𝜑𝑅2 + 𝜑𝑅3
(2)
A szögek szerint parciálisan deriválva a (2)-es egyenletrendszert hárommal több tagot kapunk egyenletenként, mintha az (1)-est deriválnánk, tehát a deriváltakat felhasználó megoldásoknál kényelmesebb az (1)-est használni. 3.2. Inverz kinematika Inverz kinematikánál a végpont helyzete ismert. A csuklószögek kiszámítását nem csupán az nehezíti, hogy a felírható egyenletrendszer transzcendens, mint a kinematikailag határozott esetben, de maga a rendszer is kinematikailag redundáns. Síkban két egyenlet áll rendelkezésünkre, és ebből kellene meghatároznunk három ismeretlent. Az egyik szöget paraméterként kezelve a szélső helyzeteket kivéve végtelen sok megoldás adódhat. Mivel az emberi kar is egy ilyen redundáns háromcsuklós szerkezetként fogható fel, megoldási módszereim során az emberi karról vett adatokkal dolgoztam. A legtöbb algoritmusban az 1. fejezetben ismertettet pszeudoinverzet használtam. Az első két megoldásom azonban plusz feltétel megadására épül. Ez a csuklókra szerelt képzeletbeli torziós rugók energiájának optimalizálásakor keletkezett összefüggést jelenti. A hozzá tartozó elmélet a 3.2.0. alfejezetben található.
22
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
3.2.0. Rugópotenciál optimalizálás Kinematikailag redundáns rendszerek esetén szokás virtuális torziós rugók csuklókra szerelésével kiküszöbölni a redundanciát. Az elképzelt virtuális rugók potenciáljának minimalizálásával ugyanis összefüggést találhatunk a csuklószögek között, ezzel plusz feltételt kiszabva. Elég a belső csuklókra torziós rugókat képzelni, melyek mindkét végükön karhoz kapcsolódnak, majd a nem szélső karok szöge szerint parciálisan deriválni az energiát, és megkeresni hol van minimuma. Amennyiben az összes szög szerint deriválnánk az egyenletet, azt kapnánk meg, hogy akkor minimális a rugók potenciálja, ha egyáltalán nincs szögelfordulás az alapálláshoz viszonyítva. Jelen esetben a kinematikailag redundáns modellünk háromcsuklós mechanizmus (3.2.0.1.-es ábra). A virtuális torziós rugók összes energiája a következőképp adódik: 1
𝑈 = 𝑠𝑇1 𝜑2 − 𝜑120 2
2
1
+ 𝑠𝑇2 𝜑3 − 𝜑230 2 , 2
(1.0)
ahol 𝑠𝑇𝑖 az i. rugó rugómerevsége, ami meg van szorozva az alapálláshoz viszonyított elfordulás szögével. Az alapállást 𝜑120 -val, és 𝜑230 -val jelöltem. Ez az egyes és kettes, illetve a kettes és hármas karokat összekötő csuklók preferált csuklószöge. Mivel az emberi kar mozgását leginkább leíró megoldást keresem, ezért ezeket az értékeket célszerű a szerint megválasztani, hogy az ember milyen helyzetben szereti tartani a kezét. Az egyenletet ezután deriválom 𝜑2 szerint, és megnézem, hogy mikor teljesül a deriváltra, hogy nulla, és előjelet vált. Amennyiben az előtte lévő tartományon a derivált negatív, majd utána pozitív lesz, akkor valóban minimumot találtunk, mivel a derivált mindig az adott pontbeli érintő meredekségét határozza meg.
3.2.0.1. ábra: A lila csuklókon van torziós rugó, 𝜑𝑅1 , 𝜑𝑅2 és 𝜑𝑅3 relatív szögek
23
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
3.2.a Zárt alakú megoldás Az 3.2.0. fejezetben levezettem, hogy lehet megkeresni az összefüggés a csuklószögek között, amennyiben a nem szélső csuklókra szerelt képzeletbeli torziós rugók energiáját minimalizálom. Feltételezzük, hogy a rugómerevségek egyenlők, valamint mindkét rugó preferált szögállása az előtte lévő kar szögével egyezik meg, tehát 𝜑120 = 𝜑1 valamint 𝜑230 = 𝜑2 . Ekkor a csuklószögek közti összefüggés így adódik: 𝜑3 = 2𝜑2 − 𝜑1
(1.a)
Tehát akkor minimális a rugópotenciál, ha a kettes és a hármas kar relatív szöge megegyezik. Az előbb meghatározott feltétellel azonban nem érhető el minden pont a síkban, aminek elérésére a rendszer karjainak hossza egyébként lehetőséget adna. A középponttól mérve egy bizonyos sugarú körön belül nem lehet a végpont (3.2.a.1-es ábra).
3.2.a.1. ábra: A sárga kontúron belül lévő beszínezett terület az, amit a rendszer el tud érni Minimumkereséssel meg lehet határozni, hogy mi az a kritikus táv, amit már elérhetünk. Arra a legegyszerűbb esetre írtam fel az egyenletrendszert, mikor 𝜑1 nulla, ekkor 𝜑2 relatív szög is egyben. Az (1)-es egyenletrendszer 𝜑1 behelyettesítése után: 𝑥 = 𝑙1 + 𝑙2 cos 𝜑2 + 𝑙3 cos 2𝜑2 𝑦 = 𝑙2 sin 𝜑2 + 𝑙3 sin 2𝜑2 A távolság a következőképpen írható fel 𝑥 𝜑2 , 𝑦 𝜑2
(2.a) függvényében: 24
Patkó Dóra
𝑟=
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
𝑥 𝜑2
2
+ 𝑦 𝜑2
2
(3.a)
𝜑2 szerint deriválva a távolságot nagyon bonyolult egyenletet kapunk. Még egyszer deriválva numerikus gyökkeresési módszerrel, például Newton-Raphsonnal, meg lehetne keresni, hol van a derivált zérus helye, azonban a Matlabba beépített minimumkereső függvényt használtam erre a célra, mivel sokkal rövidebb. A zárt alakra hozást illetően az volt az alapgondolatom, hogy az adott állásban a rendszeremet helyettesítő „kétkarú” rendszert hozok létre. Három fő esetre lehet szétbontani a módszerem: 𝜋
I.
𝜑𝑅2 relatív szög kisebb, mint 2
II.
𝜑𝑅2 nagyobb, mint 2 , és az 𝑙3 hosszal rendelkező kar szabad vége felé való
III.
meghosszabbítása nem metszi az 𝑙1 hosszúságú rudat 𝑙3 hosszal rendelkező kar szabad vége felé való meghosszabbítása elmetszi az 𝑙1 hosszúságú rudat
𝜋
A I.-es esetben (3.2.a.2-es ábra) az egyes és a hármas kar egyenesének a metszéspontja, és a kettes rúd két végpontja egy egyenlőszárú háromszöget feszítenek ki, mivel a 𝜑𝑅2 és 𝜑𝑅3 relatív szögek megegyeznek. A háromszög alapja az 𝑙2 hosszúságú kar. A metszéspontnál lévő szög legyen 𝛽𝐼 . Ekkor 𝛽𝐼 a következőképpen adható meg: 𝛽𝐼 = 𝜋 − 2𝜑𝑅2
(4.a)
3.2.a.2 ábra: I.-es eset. A fekete rendszer esetén 𝜑1 -hez hozzá kell adni a 𝜑𝑅2 relatív szöget, a hozzá tartozó kétkarú rendszer a kék. A piros rendszernél ki kell vonni a relatív szöget, a hozzá tartozó kétkarú rendszer a kék 𝒓 vektor által meghatározott egyenesre vett tükörképe. Mivel a háromszög egyenlőszárú, a hossz, amivel megnöveltük 𝑙1 -et és 𝑙3 -at egyenlő. Nevezzük el 𝑏-nek az értékét. Az 𝑟, valamint a 𝑏-vel megnövelt két kar szintén egy 25
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
háromszöget alkotnak, ahol az 𝑟-rel szembeni szög 𝛽𝐼 . Felírva a cosinus tételt erre a két háromszögre a következő egyenleteket kapjuk: 𝑙22 = 2𝑏 2 1 + cos 2𝜑𝑅2 𝑟 2 = 𝑙1 + 𝑏
2
(5.a)
+ 𝑙3 + 𝑏
2
+ 2 𝑙1 + 𝑏 𝑙3 + 𝑏 cos 2𝜑𝑅2
(6.a)
A cosinus függvény argumentumában azért szerepel 2𝜑𝑅2 , mivel 𝜋-vel eltolva a függvényt ellentettjére változik az eredmény. Az (5.a) egyenletet behelyettesítve a (6.a)-ba, majd nullára rendezve, a következő másodfokú összefüggés írható fel 𝑏-re: 𝑏 2 𝑙12 + 𝑙22 + 𝑙32 − 𝑟 2 − 2𝑙1 𝑙3 + 𝑏 𝑙1 𝑙22 + 𝑙3 𝑙22 + 𝑙1 𝑙3 𝑙22 = 0
(7.a)
Amennyiben a diszkrimináns nem nulla, két különböző gyököt kapunk 𝑏-re. Mivel 𝑏 egy nemnegatív racionális szám, ezért a két érték közül a nullánál nagyobbat választottam ki. Az eset felhasználhatóságának intervallumát vizsgálva a későbbiekben belátjuk, hogy a diszkrimináns nem lehet negatív, ezért 𝑏 képzetes tagjára vonatkozóan nem használtam kikötést. A (5.a) egyenletet átrendezve megkaphatjuk 𝜑𝑅2 -t: 𝜑𝑅2 = cos−1
𝑙 22 2𝑏 2
−1
2
(8.a)
Mivel megtaláltuk a rendszer „kétkarú változatát”, 𝜑1 megkeresésének módja analóg a kétszabadsági fokú esettel. Az egyes és hármas meghosszabbított karok háromszöget alkotnak 𝑟-rel, és a hármas rúddal szembeni szög felírható, mint: 𝛼 = cos −1
𝑟 2 + 𝑙 1 +𝑏 2 − 𝑙 3 +𝑏 2 2𝑟 𝑙 1 +𝑏
(9.a)
Az 𝒓 emelkedési szöge továbbra is: 𝛾 = tan−1
𝑦 𝑥
(10.a)
Innentől kezdve ebből a két szögből kiszámítható 𝜑1 a 2.2.a részben már meghatározottak alapján. Szintén két értéket is felvehet, a két eset egymásnak tükörképe, a tükrözés tengelye pedig az 𝒓 vektor által meghatározott egyenes. A különbség a két lehetséges esetet leíró megoldás között, hogy amennyiben 𝜑1 -et választjuk nagyobbnak, a relatív szöget ki kell vonni belőle, míg ellenkező esetben hozzá kell adni. Ugyanígy kell eljárni 𝜑3 meghatározásakor is. Tehát ha 𝜑1 -hez hozzáadtuk a relatív szöget, akkor 𝜑2 és 𝜑𝑅2 összege kell, ha kivontuk, akkor a különbségük. A II.-es esetben (3.2.a.3-as ábra) az egyes és a hármas rúd metszéspontja olyan kétkarú rendszert határoz meg, amely karjaiból egyiknek sincs közös része az eredeti rendszerünkkel. A metszéspontnál lévő szög legyen 𝛽𝐼𝐼 . Most is találhatunk egyenlőszárú háromszöget, aminek szárait az egyes és hármas meghosszabbított kar adja, alapját pedig a kettes rúd. Ily formán, azt az esetet leszámítva, mikor 𝑙1 és 𝑙3 megegyezik, nem egyforma mértékben növeljük meg a karok hosszait. Az egyes rúd növekedését kifejező mennyiség jele maradjon 𝑏, a hármasé legyen 𝑎. A második háromszögünket 𝑎, 𝑏 és 𝑟 alkotja. Cosinus tételek rendre a két alakzatra: 26
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
𝑙22 = 2𝑐 2 (1 − cos 𝛽𝐼𝐼 )
(11.a)
𝑟 2 = 𝑎2 + 𝑏 2 − 2𝑎𝑏 cos 𝛽𝐼𝐼
(12.a)
, ahol 𝑐 az egyenlőszárú háromszög szárának hossza, azaz: 𝑐 = 𝑙1 + 𝑏 = 𝑙3 + 𝑎
(13.a)
3.2.a.3 ábra: II.-es eset. A fekete rendszer esetén 𝜑1 -hez hozzá kell adni a 𝜑𝑅2 relatív szöget, a hozzá tartozó kétkarú rendszer a kék. A piros rendszernél ki kell vonni a relatív szöget, a hozzá tartozó kétkarú rendszer a kék 𝒓 vektor által meghatározott egyenesre vett tükörképe. A két cosinus tétel segítségével ismét adódik egy másodfokú egyenlet 𝑏-re: 𝑙12 𝑟 2
𝑏 2 𝑙22 + 𝑙1 − 𝑙3 =0
2
− 𝑟 2 + 𝑏 𝑙22 𝑙1 − 𝑙3 + 2𝑙1 𝑙1 − 𝑙3
2
− 2𝑙1 𝑟 2 + 𝑙12 𝑙1 − 𝑙3 2 − (14.a)
Miután megtaláltuk 𝑏-t, kiszámolhatjuk belőle 𝛽𝐼𝐼 -t, majd 𝜑𝑅2 -t, 𝑎 meghatározása triviális. 𝛽𝐼𝐼 = cos−1 1 − 2 𝜋
𝜑𝑅2 = 2 +
𝑙 22 𝑙 1 +𝑏 2
𝛽 𝐼𝐼
(15.a) (16.a)
2
Miután megkaptuk a kétkarú rendszerünk, melyben az egyes rúd 𝑏-nek, a kettes 𝑎-nak feleltethető meg, a következő lépés 𝜑1 megkeresése. Ehhez szükségünk van 𝛼-ra és 𝛾-ra. 𝛾-t a (10.a) egyenlet alapján kaphatjuk meg, 𝛼 pedig a következőképp adódik: 𝛼 = cos −1
𝑟 2 +𝑏 2 − 𝑙 1 +𝑏−𝑙 3 2 2𝑟𝑏
(17.a)
Fontos észrevennünk, hogy a kétkarú rendszerünk az 𝑦 tengely másik oldalán van, mint a háromkarú. Ez azt jelenti, hogy a 2.2.a esethez képest 𝜑1 megadására alkotott feltételek a síknegyedekkel kapcsolatban megcserélődnek. Érdemes figyelni továbbá arra is, hogy 𝜑1 és 𝜑𝑘2 nagyságbeli kapcsolata a kétszabadsági fokú esetre vezethető vissza. A háromszabadsági fokúnál pont fordítva van a két szög közötti reláció. Ha tehát 𝜑𝑅2 relatív szögünket hozzá 27
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
kívánjuk adni 𝜑1 -hez, hogy megkapjuk 𝜑2 -t a (19.a) és (21.a) egyenleteket kell használnunk, ha ki szeretnénk vonni, a másik kettőt. a, ha a végpont az II. vagy a III. sík negyedben van: a.1., 𝜑1 kisebb, mint 𝜑𝑘2 𝜑1 = 𝛾 − 𝛼
(18.a)
a.2., 𝜑1 nagyobb, mint 𝜑𝑘2 𝜑1 = 𝛾 + 𝛼
(19.a)
b, ha a végpont a I. vagy a IV. sík negyedben van: b.1., 𝜑1 kisebb, mint 𝜑𝑘2 𝜑1 = 𝜋 + 𝛾 − 𝛼
(20.a)
b.2., 𝜑1 nagyobb, mint 𝜑𝑘2 𝜑1 = 𝜋 + 𝛾 + 𝛼
(21.a)
A III. esetben (3.2.a.4-es ábra) a hármas kar meghosszabbítása magát az egyes rudat metszi el. Az így keletkező kétkarú rendszerünk olyan, hogy az egyes karja az eredeti kar egy részét képezi, a kettes karja pedig a metszéspontot és a végpontot összekötő szakasz. Az általános háromszög, amivel dolgozni fogok, e rendszer két karjából, és a végpontba mutató vektorból áll. Az egyenlőszárú háromszöget most a meghosszabbított hármas rúd, és az egyes rúd azon fele képzi, mely nem része a képzeletbeli kétkarú rendszerünknek, az alapja a kettes kar. Most a két háromszögnek nincs közös szöge, amire közvetlenül felírhatnánk a cosinus tételt, így a meghosszabbított hármas, és az egyes kar metszéspontjában lévő szöget és kiegészítő szögét fogom felhasználni. 𝛽𝐼𝐼𝐼 -nak az 𝑙2 -vel szemben lévő szöget választom, 𝑎 maradjon a hármas kar meghosszítása, és 𝑏 legyen az egyenlőszárú háromszög szára. 𝑟 2 = 𝑙1 − 𝑏
2
+ 𝑎2 + 2 𝑙1 − 𝑏 𝑎 cos 𝛽𝐼𝐼𝐼
(22.a)
𝑙22 = 2𝑏 2 1 − cos 𝛽𝐼𝐼𝐼
(23.a)
A másodfokú egyenlet 𝑏-re: 𝑏 2 𝑙12 + 𝑙22 + 𝑙32 − 2𝑙1 𝑙3 − 𝑟 2 − 𝑏 𝑙22 𝑙1 + 𝑙3
+ 𝑙1 𝑙3 𝑙22 = 0
(24.a)
Ebben az esetben lehetséges, hogy 𝑏 negatív értéket vesz fel. Ekkor a karok annyira bezárnak, hogy a hármas rúd az egyes kar kettes felé vett meghosszabbított részét metszi el. Ez az átvezetés aközött, mikor 𝜑1 és 𝜑𝑅2 közötti reláció megváltozik, viszont most ezzel nem foglalkozok részletesebben. Innentől 𝛽𝐼𝐼𝐼 meghatározása: 𝑙2
𝛽𝐼𝐼𝐼 = cos −1 1 − 2𝑏22
(25.a)
28
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
𝜑𝑅2 és 𝛽𝐼𝐼𝐼 közötti kapcsolat ugyanolyan, mint a II.-es esetben, így a relatív szög a (16.a) egyenlet alapján adódik. 𝜑1 meghatározásához szükségünk van 𝛼-ra, ami az általános háromszögben lévő, 𝑎-val szembeni szög. 𝛾 a (10.a) alapján számítható. 𝛼 = cos−1
𝑟 2 + 𝑙 1 −𝑏 2 − 𝑏−𝑙 3 2 2𝑟 𝑙 1 −𝑏
(26.a)
Ettől a ponttól kezdve a szögek kiszámítása teljesen analóg módon megy a I.-es számú esettel.
3.2.a.4 ábra: III.-as eset. A fekete rendszer esetén 𝜑1 -hez hozzá kell adni a 𝜑𝑅2 relatív szöget, a hozzá tartozó kétkarú rendszer a kék. A piros rendszernél ki kell vonni a relatív szöget, a hozzá tartozó kétkarú rendszer a kék 𝒓 vektor által meghatározott egyenesre vett tükörképe. Érdekes lehet még az a helyzet, mikor az egyes és a hármas rúd párhuzamosan fut, azaz nem alkotnak háromszöget az általuk meghatározott egyenesek. Ez a I.-es és a II.-es eseteket 𝜋 választja el egymástól. Mi ennek a feltétele? Ilyenkor 𝜑𝑅2 adott, méghozzá 2 az érték, amit felvesz. A végpontból húzzunk egy félegyenest az egyes kar felé, amely párhuzamos a kettes karral. A metszéspontot nevezzük el 𝐸-nek. 𝐸, 𝐵, 𝐶 és 𝐷 egy téglalapot alkot, melyben 𝐷 és 𝐸 által közrefogott egyenes hossza megegyezik 𝑙2 -vel, az 𝐴 és 𝐸 közötti rész nagysága pedig 𝑙1 − 𝑙3 . 𝐷𝐸 , 𝐴𝐸 és 𝒓 olyan derékszögű háromszöget alkot, melynek átfogója 𝒓. Azt kell tehát vizsgálni, hogy amennyiben 𝑙2 négyzetének valamint 𝑙1 − 𝑙3 különbség négyzetének az összege pont megegyezik a végpontba mutató vektor nagyságának négyzetével, akkor a háromszög derékszögű a Pitagorasz tétel megfordítása értelmében. Ha az 𝑟 2 nagyobb, akkor a I. eset áll fenn, ha kisebb, akkor a II.-es, illetve a III.-as, attól függően, mennyire kicsi 𝑟 2 . Amennyiben az átvezető helyzetnél szeretnénk meghatározni a karok szögeit nagyon egyszerű a dolgunk. A relatív szög eleve adott, 𝜑1 kiszámításához pedig azt a kétkarú rendszert kell felhasználnunk, melynek csuklói a rögzítés helyétől nézve rendre 𝐴, 𝐸 és 𝐷. A számítás módja analóg a már ismertetettekkel. A kitétel ismeretében belátható, hogy a 𝑏-re felírt másodfokú egyenlet diszkriminánsa nem lehet negatív. A bizonyítást indirekt úton mutatom be, azaz tegyük fel, hogy negatív. Ekkor 𝒓nek a következő kikötéseket kell teljesítenie:
29
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
𝑙12 + 𝑙22 + 𝑙32 −
𝑙 1 𝑙 22 +𝑙 3 𝑙 22
2
+8𝑙 12 𝑙 32
4𝑙 1 𝑙 3
> 𝑟 2 > 𝑙22 + 𝑙1 − 𝑙3
2
(27.a)
Amennyiben megvizsgáljuk a halmaz szélsőértékeit a következő ellentmondásra jutunk: 𝑙1 𝑙22 + 𝑙3 𝑙22
2
<0
Q.E.D.
(28.a)
Tehát azon az intervallumon, amelyen értelmezzük az esetet, nem lehet a diszkrimináns negatív, illetve nulla. Fontos vizsgálni azt is, hol van átmenet a II.-es és III.-as esetek közt. Ez egyszerűbb, mint az előző, mivel úgy definiáltuk a III.-at, hogy ekkor a hármas kar szabad vége felé való meghosszabbítása elmetszi az egyes rudat. Tehát azt kell nézni, ahol épphogy érinti, azaz mikor a félegyenes pont az origóba fut. Mivel a hosszított kar, az egyes és a kettes rúddal egyenlőszárú háromszöget alkotnak, melynek alapja 𝑙2 nagyságú, következik, hogy ebben az esetben a szárak nagysága a 𝐵 és az origó távolsága, ami pont 𝑙1 . A hármas rúd meghosszabbítása pedig a végpontot és az origót összekötő szakasz, azaz épp 𝑟. Amennyiben tehát 𝑙1 − 𝑙3 különbségénél nem nagyobb 𝑟, akkor a II.-es eset, ha kisebb, a III.-as eset áll fenn. Megjegyzések: Az eseteket azzal a feltétellel vizsgáltam, hogy 𝑙1 ≥ 𝑙3 . Amennyiben a reláció ellentétes az elmélet nem változik, csak a karok által betöltött szerep cserélődik meg. Mindhárom leágazásnál (I., II., III.) azok a megoldások kapcsolódnak egybe, melyeknél a relatív szöggel ugyanúgy járunk el (kivonjuk/hozzáadjuk 𝜑1 -hez). 3.2.b Megoldás rugópotenciál optimalizálással és numerikus gyökkereséssel A kinematikailag határozott rendszereknél a 2.2.b fejezetben már megismerkedtünk a többváltozós Newton-Raphson módszerrel, mint numerikus gyökkeresési mód. Alkalmazása akkor nem okozott gondot, hisz a Jacobi mátrixunk négyzetes, így invertálható volt. Most azonban szükséges egy plusz feltétel is, mely legyen az előbb is alkalmazott rugópotenciál optimalizálás. Ezt sokkal általánosabban megtehetjük, mint a zárt alaknál, mivel nem szükséges külön feltételt kikötnünk az optimalizálás során kijött egyenletre, mivel a módszer nem érzékeny arra, hogyha megváltoztatjuk a csuklószögek közti összefüggésben lévő konstansokat, mint a preferált szögállás, vagy a rugómerevség. Felvehetjük őket úgy, hogy leginkább visszaadják az egyén kezének egyedi értékeit. Figyelni kell rá, hogy a feltétel miatt itt is lekorlátozódik a rendszer végpontja által elérhető pontok alkotta felület. Mivel az ember korlátozott szögtartományokon belül tudja mozgatni a karját, feltételezzük, hogy a preferált szögállás ennek a tartománynak a számtani közepe. Mivel ez a szögállás relatív szöget takar, ezért a megfelelő csuklószöghöz viszonyítva kell megadni, azaz 𝜑120 = 𝑚𝑖𝑑 𝜑1 + 𝜑12 . A másik szög megadása analóg módon történik. Így a csuklószögek közti összefüggés az alábbi módon adódik: 𝜑3 =
𝑚𝑖𝑑 −𝜑 +𝑠 𝑚𝑖𝑑 𝑠𝑇1 𝜑 2 −𝜑 12 1 𝑇2 𝜑 2 +𝜑 23 𝑠𝑇2
(1.b)
30
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Nullára rendezve a direkt kinematikai egyenletrendszert, valamint hozzáírva az (1.b)-t a következőt kapjuk:
𝒇 𝝋 =
𝑙1 cos 𝜑1 + 𝑙2 cos 𝜑2 + 𝑙3 cos 𝜑3 − 𝑥 𝑙1 sin 𝜑𝑙 + 𝑙2 sin 𝜑2 + 𝑙3 sin 𝜑3 − 𝑦 𝑚𝑖𝑑 𝑚𝑖𝑑 𝑠𝑇1 𝜑 2 −𝜑 12 −𝜑 1 +𝑠𝑇2 𝜑 2 +𝜑 23
𝑠𝑇2
(2.b)
− 𝜑3
Az egyenletrendszer Jacobi mátrixára pedig az alábbi adódik: −𝑙1 sin 𝜑1 𝑱 𝝋 = 𝑙1 cos 𝜑1 𝑠 − 𝑠𝑇1
−𝑙2 sin 𝜑2 𝑙2 cos 𝜑2 𝑠𝑇1 +𝑠𝑇2 𝑠𝑇2
𝑇2
−𝑙3 sin 𝜑3 𝑙3 cos 𝜑3
(3.b)
−1
Az első csuklószög értékeket, vagyis a kezdeti becslést most is tetszőlegesen adom meg, azonban a többinél már a pálya előző pontjában érvényes 𝝋 értékeket veszem alapul. Most is a tompított Newton-Raphsont alkalmazom, hogy szebben konvergáljon a sorozat a torlódási pontjához. 𝝋𝒏+𝟏 = 𝝋𝒏 − 𝜁𝑱 𝝋𝒏
−1
𝒇 𝝋𝒏 ,
(4.b)
ahol 𝜁 ≤ 1, és 𝜑1𝑛 𝝋𝒏 = 𝜑2𝑛 𝜑3𝑛
(5.b)
3.2.c Megoldás numerikus gyökkereséssel, a pszeudoinverz felhasználásával Természetesen pluszfeltétel megadása nélkül is megtalálhatjuk a megoldásokat. Jelen esetben a leképezésünk ℝ3 → ℝ2 típusú. A hozzá tartozó Jacobi mátrix tehát 2 × 3-as. Ilyenformán nem létezik az inverze, azonban felhasználhatjuk az általánosított inverzét, lásd: 1.1.a fejezet, mely a következőképp adható meg[2]: 𝑱† = 𝑱𝑻 𝑱𝑱𝑻
−1
(1.c)
A pszeudoinverz alkalmazása megegyezik a négyzetes mátrix inverzének alkalmazásával. Tehát a kiszámítása után a tompított Newton-Raphson módszer formulája így néz ki a behelyettesítés után: 𝝋𝒏+𝟏 = 𝝋𝒏 − 𝜁𝑱† 𝝋𝒏 𝒇 𝝋𝒏
(2.c)
3.2.d Megoldás sebesség szinten súlyozatlan pszeudoinverzzel A 2.2.c fejezetben ismertetett elmélettel a háttérben a kinematikailag redundáns rendszerek esetében is használható a sebesség szinten való szögkeresés a Moore-Penrose féle általánosított inverz segítségével. Általános esetben a szögsebességeket tartalmazó vektor a végpont sebességvektorának függvényében így adható meg [4]: 𝝋 = 𝑱† 𝑹
(1.d) 31
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
A soron következő csuklószögek rekurzív módon így számíthatók: 𝝋𝒏+𝟏 = 𝝋𝒏 + 𝝋𝒏 𝑑𝑡
(2.d)
Behelyettesítve az (1.d) egyenletet: 𝝋𝒏+𝟏 = 𝝋𝒏 + 𝑱† 𝝋𝒏 ∆𝑹
(3.d)
𝑥𝑛 +1 − 𝑥𝑛 𝚫𝑹 = 𝑦 𝑛+1 − 𝑦𝑛
(4.d)
A direkt kinematikai egyenletet az idő szerint deriválva a következő lineáris egyenletrendszer kapjuk: −𝑙1 sin 𝜑1 𝑥 = 𝑦 𝑙1 cos 𝜑1
−𝑙2 sin 𝜑2 𝑙2 cos 𝜑2
𝜑1 −𝑙3 sin 𝜑3 𝜑2 𝑙3 cos 𝜑3 𝜑3
(5.d)
3.2.e Megoldás sebesség szinten súlyozott pszeudoinverzzel Pszeudoinverz által közvetlenül a kinetikus energiát is tudjuk minimalizálni, amennyiben a tömegmátrixszal súlyozzuk. Ez azért jó, mert a kisebb tömegű részek mozgatása kisebb energiával jár. A tömegmátrix esetünkben a (0.10) egyenletben bemutatott 𝑴 mátrix. A tömegmátrixszal súlyozott pszeudoinverz, abban az esetben, ha az együtthatómátrix teljes sorrangú, így néz ki [7]: 𝑱† = 𝑴−𝟏 𝑱𝑻 𝑱𝑴−𝟏 𝑱𝑻
−1
(1.e)
A fenti egyenletet kell behelyettesíteni a (3.d) egyenletbe.
3.2.f Megoldás sebesség szinten csuklólimitek figyelembevételével Sok esetben a karok csak bizonyos szögtartományokon belül mozoghatnak. Lehet úgy befolyásolni a kapott csuklószögeket, hogy tartsanak az egyes tartományok számtani közepe felé [7]. Mivel az emberi kar mozgását leginkább visszaadó megoldást keressük, célszerű ezeket a tartományokat az emberi ízületek limitjei szerint megválasztani. Ezzel a módszerrel a szögsebességet módosítjuk, de mivel a plusz tag, amit hozzáadunk, a Jacobi mátrix magterének (null terének) a része, a végpont helyzetét nem fogja befolyásolni. A sebesség szinten történő megoldásoknál maradva, a szögsebességeket tartalmazó vektor megadható az alábbi módon: 𝝋 = 𝑱† 𝑹 + 𝑰 − 𝑱† 𝑱 𝝍,
(1.f)
ahol 𝝍 egy tetszőleges szögsebesség vektor, és 𝑰 − 𝑱† 𝑱 𝝍 a Jacobi mátrix magterébe való vetítése, 𝑰 pedig az egységmátrix. Az, hogy 𝑰 − 𝑱† 𝑱 𝝍 része a magtérnek azt jelenti, hogy kielégíti azt a homogén lineáris egyenletrendszert, ahol 𝑱 az együttható mátrix. Tekintve, hogy a végpont sebessége 𝑹 = 𝑱𝝋
(2.f) 32
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Látható, hogy 𝝍 nem fogja befolyásolni a sebesség értékét. Legyen 𝑝 egy 𝝋-től függő skalármennyiség, melyet a 𝑔 𝝋 függvény ír le. A vektor, ami minimalizálja 𝑝-t a 𝑔 𝝋 függvény gradiense, ami meg van szorozva egy önkényesen megválasztott 𝑘 konstanssal. 𝜕𝑔
𝝋 = 𝑱† 𝑹 + 𝑰 − 𝑱† 𝑱 𝑘 𝜕𝝋
(3.f)
A helyzetfüggő 𝑝 segítségével olyan megoldásokat találhatunk, melyek tartanak az egyes tartományok számtani közepe felé, ha 𝑝=
𝜑 𝑖 −𝜑 𝑖𝑚𝑖𝑑 𝜑 𝑖𝑚𝑖𝑑 −𝜑 𝑖𝑚𝑎𝑥
2
,
(4.f)
ahol 𝜑𝑖𝑚𝑎𝑥 az i. kar mozgási szögtartományának felső határa, 𝜑𝑖𝑚𝑖𝑑 pedig a felső és alsó határ számtani közepe. 𝜑𝑖𝑚𝑖𝑑 =
𝜑 𝑖𝑚𝑖𝑛 +𝜑 𝑖𝑚𝑎𝑥
(5.f)
2
3.2.f.1 ábra: Az emberhez tartozó relatív koordináta rendszer. Az emberi karnál különböző síkokon a szögtartományok a következőképp alakulnak [8]: Vállízület
Frontális sík: Sagittalis sík:
180° − 0° − 40° 170° − 0° − 40° 33
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Vízszintes sík:
90° − 0° − 100°
Könyökízület
Függőleges sík: Vízszintes sík:
10° − 0° − 150° 90° − 0° − 90°
Csuklóízület
Függőleges sík: Vízszintes sík:
Síkok Tengelyek, melyek kifeszítik
60° − 0° − 60° 30° − 0° − 30° Frontális sík Sagittalis sík Frontális + vízszintes Frontális + sagittalis tengelyek tengelyek A különböző síkokat kifeszítő tengelyek.
Transzverzális sík Sagittalis + vízszintes tengelyek
A frontális sík elülső-hátulsó, a sagittalis pedig jobb és baloldalra osztja a testet. 3.2.g Megoldás sebesség szinten manipulability maximalizálással Az önkényesen megválasztott szögsebesség vektort sokféleképpen definiálhatjuk. A csuklólimitek felhasználása csak az egyik lehetőség volt. Használhatjuk arra is, hogy a karokat távol tartsuk a szinguláris helyzetektől [7]. Ilyenkor a rudak úgy állnak, hogy a rendszer végpontja nagy erőt tudjon kifejteni. Yoshikawa 1984-ben olyan 𝜔-val jelölt manipulability nevű mennyiséget javasolt ennek mérésére, mely az alábbi módon definiálódik: 𝜔=
𝑑𝑒𝑡 𝑱𝑱𝑻
(1.g)
Érdemes észrevenni, hogy a manipulability értéke teljesen kinyújtott, illetve egymásra hajtott konfigurációkban nulla. Fizikailag ez azt jelenti, hogy kinyújtott kar esetén a karral párhuzamos irányban nem lehet elmozdítani a kar végpontját. Ekkor a Jacobi mátrix determinánsa nulla. Tehát szinguláris helyzetben 𝜔 értéke zérus, és a helyzetfüggő 𝑝, mely azonnal maximalizálja, így adódik: 𝑝 = −𝜔 𝝋
(2.g)
3.2.h Megoldás sebesség szinten dynamic manipulability maximalizálással A robotkarok mozgásánál hirtelen sebességváltozáskor nagy erők is felléphetnek. Ezeket az erőket a dynamic manipulability maximalizálással lehet optimalizálni [7]. Ekkor a fent definiált 𝜔-t a követezőképp kell súlyoznunk: 𝜔=
𝑑𝑒𝑡 𝑱 𝑯𝑻 𝑯
𝑯 = 𝑾𝑴
−1 𝑱𝑻
(1.h) (2.h) 34
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
𝑴 a fejezet elején kifejezett tömegmátrix, 𝑾 pedig egy olyan diagonális mátrix, melyben az elemek rendre úgy adódnak, hogy
1 𝜏 𝑖+ − 𝑔 𝑖
, ahol 𝜏𝑖+ az i. csukló által maximálisan kifejthető
forgatónyomaték, 𝑔𝑖 pedig az i. csuklót terhelő forgatónyomaték abszolút értéke a karok nehézségi erejéből származóan.
3.2.h.1. ábra: A karok súlyából származó nehézségi erők.
35
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
4., Szimuláció Minden megoldási módszerhez írtam Matlabban egy kódot. A kódnak megfelelően egy bizonyos pályán az ahhoz tartozó megoldási módnak megfelelő csuklószögek szerint végigvezettem a rendszer karjait egy előre meghatározott pályán. A koordinátarendszerem origóját a rendszer rögzítési pontjába helyeztem. A felhasznált pálya az Archimédeszi spirál (4.1-es ábra). Az 𝑥 és 𝑦 koordinátákat 𝑡 függvényében adtam meg. A pálya előnye, hogy minden elérhető távnál megfigyelhető, hogy működik-e a megoldás. Az Archimédeszi spirált, melyet a rendszer végpontjának követnie kell, a következőképp adtam meg: 𝒙 = cos 𝜐𝒕 . 𝒗,
(0.1)
𝒚 = sin 𝜐𝒕 . 𝒗,
(0.2)
ahol 𝜐 egy önkényesen megválasztott szögsebesség, 𝑡 az időt tartalmazó sorvektor. A trigonometrikus függvény elemenként meg van szorozva a távolságokat tartalmazó sorvektorral. Amennyiben olyan pontot vizsgálnánk, melyet nem ér el a rendszerünk, hibaüzenetet kapunk. Az eredeti pályán kívül (piros színnel jelölt) a különböző rendszerek végpontjai által megtetteket is kirajzoltatom, így még inkább láthatóvá válik, mennyire követik az eredetit. A hibát, azaz a távolságot a megkövetelt, és a kiszámított végpont között az alábbi módon számítom minden egyes pontjában a pályának: ℎ𝑖 =
𝑥𝑖 − 𝑥𝑖𝑠𝑧
2
+ 𝑦𝑖 − 𝑦𝑖𝑠𝑧
2
(0.3)
4.1-es ábra: A rugópotenciál optimalizáláskor keletkezett plusz feltétel miatt a rendszer végpontja által elérhető távolság lekorlátozódik. Ha a koordinátarendszerünk origóját a rögzítési csuklóra helyezzük, az elérhető pontok két, origó középpontú koncentrikus kör (feketével) határai közé esnek. Direkt kinematikai úton a kapott csuklószögeket visszahelyettesítve megkaphatjuk, hogy hol állna a rendszer végpontja 𝐷𝑖𝑠𝑧 𝑥𝑖𝑠𝑧 𝑦𝑖𝑠𝑧 . Az elérni kívánt végpont ismert 𝐷𝑖 𝑥𝑖 𝑦𝑖 . A 36
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
két pont távolságából adódik a megoldási módszer hibája. Numerikusintegrálással az út során megtett hiba összege is kiszámítható téglalap szabály alkalmazásával. Ha elosztjuk ezt a vizsgált intervallumon eltelt idővel, megtudhatjuk, hogy mekkora a módszer átlagos hibája a tartományban. Eszerint harmadik alfejezeten belül növekvő sorrendbe rendeztem a módszereket, így láthatóvá válik, hogy melyik a legideálisabb közülük, ha ilyen pályán tervezzük végigvezetni a robotunk karjának végpontját. Természetesen a hiba függ a pályától, mert mindegyik módszer más szempontot tart szem előtt, pl. nagy erők kezelésében a dynamic manipulability adhat megoldást. Az idő függvényében ábrázolom az egyes rudak csuklószögét. A megoldási módok működésének leírása rendre a 2. és 3. fejezeteken belül olvashatóak. 4.1., Kinematikailag határozott rendszer A kétcsuklós szerkezetet egyszerűbb leírni a síkban, ezért könnyebb volt azon vizsgálni a megoldási módszereket. A tapasztalataimat később tudtam hasznosítani a háromcsuklós rendszereknél. A különböző megoldási módokhoz az alábbi színeket rendeltem, melyek a beazonosításukat segítik:
Zártalakú megoldás- 𝜑1 kisebb, mint 𝜑2 Zártalakú megoldás- 𝜑1 nagyobb, mint 𝜑2 Numerikus gyökkeresés Sebesség szinten történő megoldás
⟹ ⟹ ⟹ ⟹
fekete lila kék zöld
A karok hosszait a következőknek vettem: 𝑙1 = 0.25 𝑚
(1.)
𝑙2 = 0.225 𝑚
(2.)
Sorszám 1. 2. 3. 4.
Megoldási módszer Zártalakú megoldás𝜑1 a kisebb Zártalakú megoldás𝜑1 a nagyobb Numerikus gyökkeresés Sebesség szinten történő megoldás
Mozgás során keletkezett összes eltérés [m]
Mozgás során keletkezett átlagos eltérés [m]
1.41∙ 10−15
4.6843∙ 10−17
1.4578∙ 10−15
4.8434∙ 10−17
8.3418∙ 10−4
2.7714∙ 10−5
0.0142
4.7148∙ 10−4
Megoldási módszerek a megkövetelt pályától való eltérésük szerint növekvő sorrendbe rendezve.
A kinematikailag határozott rendszerek témakörét ezzel a fejezettel le is zárom.
37
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
4.1.1. ábra: Megoldási módszerek által megtett pálya
4.1.2. ábra: 𝜑1 alakulása az időben mozgás során.
4.1.3. ábra: 𝜑2 alakulása az időben mozgás során. 38
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
4.2., Kinematikailag redundáns rendszer A 4.2.1-es ábrán látható, hogy amennyiben a kettes és hármas rúd relatív szöge megegyezik, hogyan alakul az elérhető távolság 𝜑𝑅2 függvényében, abban az esetben, mikor a rendszer karjainak hosszai a következők: 𝑙1 = 0.25 𝑚
(1.)
𝑙2 = 0.225 𝑚
(2.)
𝑙3 = 0.17 𝑚
(3.)
A fenti értékeket egy, a kísérletben résztvevő személy karjáról vettem. A kisebbik sugarú körtől indítom a spirális pályát. A minimális táv, amit el képes érni a végpont ilyen geometriával 0.645 𝑚 . Mivel redundáns esetben a szélső helyzeteket kivéve végtelen sok csuklószög állás rendelhető a sík minden pontjához, ezért a kinematikailag határozott esettel ellentétben a rendszerek teljesen különbözőféleképp állhatnak, attól függően, hogy a megoldási módszeren belül, mire volt a hangsúly helyezve.
4.2.1. ábra: A helyi maximumot 𝜋 relatív szögnél veszi fel a rendszer. A köztes rész vezet át az egyik állásból- 𝜑1 kisebb, mint 𝜑𝑅2 - a másikba- 𝜑1 a nagyobb. A zárt alakú számítások során nem kapunk 𝜋-nél nagyobb relatív szöget. A𝜑𝑅2 𝜑1 -ből való kivonása ezeket a nagyobb szögeknek megfelelő értékeket adja vissza. 4.2.a Zárt alakú megoldás A 3.2.a részben levezetett megoldások közül csak azt az esetet vizsgáltam, mikor 𝜑1 a kisebb. Az egyenletek a 4.2.1-es ábrán látható kisebb szögértékhez tartozó minimumhelytől balra eső szögeket adják vissza.
39
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
A mozgás során az összes eltérés 4.6681 ∙ 10−15 𝑚 , az átlagos eltérés 1.5509 ∙ 10−16 𝑚 lett.
4.2.a.1. ábra: Zárt alakú rendszer által megtett pálya.
4.2.a.2. ábra: Zárt alakú rendszer által felvett csuklószög értékek. 4.2.b Rugópotenciál optimalizálással és numerikus gyökkereséssel Feltételezem, hogy a képzeletbeli torziós rugók rugómerevsége megegyezik. A preferált csuklószög állás meghatározásakor a sagittalis síkon érvényes értékekből indultam ki, tehát: 𝑚𝑖𝑑 𝜑12 = 70°
(1.b)
𝑚𝑖𝑑 𝜑23 = 0°
(2.b)
40
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
4.2.b.1. ábra: Rendszer által bejárt pálya. Szükséges megadni egy kezdetei becslést a csuklószögeknek. Munkám során ezeket az értékeket fogom felhasználni a többi módszernél is, melyek megkövetelik: 𝜑1 = 0 𝜑2 =
(3.b)
𝜋
(4.b)
2
𝜑3 = 𝜋
(5.b)
4.2.b.2 ábra: Csuklószögek alakulása az időben 𝑡𝑛 = 27 𝑠 -ig. Az összes eltérés értéke a mozgás során 0.0965 𝑚 , az átlagos eltérésé 3.2065 ∙ 10−3 𝑚 . A karok csuklószögei a szinguláris helyzethez közelítve irreális értékeket vesznek fel, mivel a rendszer a csuklószögekre tett kikötés mellett nem képes elérni az adott távot. Hogy meg lehessen figyelni a szögek alakulását az időben, csak 𝑡 = 27 𝑠 -ig rajzoltattam ki a görbét 41
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
(4.2.b.2-es ábra). Hogy a pálya végén keletkező nagy ugrást a lehető legjobban elsimítsam a tompítás mértékét nagyon kicsinek, és ennek következményeként az iterációk számát nagynak választottam: 𝜁 = 0.09
(6.b)
𝑛 = 500
(7.b)
Mivel közös kód alapján fut le minden Newton-Raphsonos konvergálás, ezért ezeket a legszigorúbb értékeket használom fel azoknál a módszereknél, ahol még szükség van rájuk. 4.2.c Numerikus gyökkereséssel, a pszeudoinverz felhasználásával A rendszer összes hibája a mozgás során 2.2411 ∙ 10−14 𝑚 , az átlagos eltérése értéke 7.4456 ∙ 10−16 𝑚 .
4.2.c.1. ábra: Rendszer által bejárt görbe.
4.2.c.2. ábra: Rendszer által felvett csuklószög értékek. 42
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
4.2.d Súlyozatlan pszeudoinverzzel sebesség szinten A hiba összértéke a mozgás során 0.0086 𝑚 , az átlagos eltérés pedig 2.8656 ∙ 10−4 𝑚 . Mint a 4.2.d.1-es ábrán is látszik, az elején található nagyobb eltérés, mikor még nem találta meg a rendszer a pályát. Ez a nem megfelelő kezdeti becslés megválasztása miatt keletkezik. Amennyiben a rendszert közvetlenül a görbe kezdőpontjából indítanánk, ugyanazokat a csuklószög értékeket venné fel a rendszer, mint a 4.2.c fejezetben bemutatott.
4.2.d.1 ábra: Rendszer által bejárt pálya.
4.2.d.2 ábra: Rendszer által felvett szögértékek mozgás során. 4.2.e Súlyozott pszeudoinverzzel sebesség szinten A kinetikus energia közvetlen optimalizálásához szükségünk van az egyes karok tömegeire, melyeket majd az elméleti részben meghatározott 𝑴 mátrixba helyettesítünk be. Az alany felkarjának, alkarjának, valamint kezének tömege, akiről a felhasznált hosszakat is vettem:
43
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
𝑚1 = 1.6 𝑘𝑔
(1.e)
𝑚2 = 1.27 𝑘𝑔
(2.e)
𝑚3 = 0.31 𝑘𝑔
(3.e)
4.2.e.1. ábra: Rendszer által bejárt pálya.
4.2.e.2. ábra: Rendszer által felvett csuklószögértékek. A megoldás hibája a mozgás során összesen 0.0208 𝑚 , az átlagos eltérés pedig 6.9263 ∙ 10−4 𝑚 . Az elején lévő nagy eltérés kiküszöbölhető, ha a rendszernek kezdeti becslésként olyan konfigurációt választunk, aminél a végpont helye a pálya kezdőpontjában van. Természetesen ekkor a szögek értékei is másként alakulnak, mint a 4.2.e.3-as ábrán is látszik, viszont a megoldás során keletkezett összes eltérés ez által lecsökken 0.0061 𝑚 -re, az átlagos pedig 2.0174 ∙ 10−4 𝑚 -re. Így a hiba harmadára redukálódik.
44
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
4.2.e.3 ábra: Szögek alakulása az időben, ha a rendszer alapállásakor a végpont az előre megadott görbe kezdőpontjában van. 4.2.f Csuklólimitek figyelembevételével sebesség szinten
4.2.f.1. ábra: Rendszer által bejárt pálya A végzett mozgás térbeli elhelyezkedésétől függően a csuklószög tartományok határai másként alakulnak. A sagittalis síkon felvett érékekkel fogok dolgozni, azaz: 𝜑1𝑒 ∈ −130°
80°
(1.f)
𝜑2𝑒 ∈ 𝜑1 −10°
𝜑1 + 150°
(2.f)
𝜑3𝑒 ∈ 𝜑2 − 30°
𝜑2 + 30°
(3.f)
Látható, hogy a csuklószög határok 𝝋 függvényében vannak megadva, ennek megfelelően 𝑔 𝜑 gradiense az alábbi módon írható fel: 45
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
− 𝜕𝑔 𝝋 𝜕𝝋
= −
4
4 −2𝜑 1 +𝜑 1𝑚𝑎𝑥 +𝜑 1𝑚𝑖𝑛 2 𝜑 1𝑚𝑎𝑥 −𝜑 1𝑚𝑖𝑛 2𝜑 1 −2𝜑 2 +𝜑 2𝑚𝑎𝑥 +𝜑 2𝑚𝑖𝑛 2 𝜑 2𝑚𝑎𝑥 −𝜑 2𝑚𝑖𝑛
−
+
4 2𝜑 1 −2𝜑 2 +𝜑 2𝑚𝑎𝑥 +𝜑 2𝑚𝑖𝑛
+
𝜑 2𝑚𝑎𝑥 −𝜑 2𝑚𝑖𝑛
2
4 2𝜑 2 −2𝜑 3 +𝜑 3𝑚𝑎𝑥 +𝜑 3𝑚𝑖𝑛
𝜑 3𝑚𝑎𝑥 −𝜑 3𝑚𝑖𝑛 4 2𝜑 2 −2𝜑 3 +𝜑 3𝑚𝑎𝑥 +𝜑 3𝑚𝑖𝑛 𝜑 3𝑚𝑎𝑥 −𝜑 3𝑚𝑖𝑛
2
(4.f)
2
Ahol 𝜑𝑖𝑚𝑎𝑥 és 𝜑𝑖𝑚𝑖𝑛 a relatív csuklószög határok.
4.2.f.2. ábra: Rendszer által felvett csuklószögek alakulása a mozgás során. Az elméleti háttérnek megfelelően, itt is szükséges megválasztanunk egy 𝑘 konstans értéket: 𝑘 = 0.01
(5.f)
4.2.f.3 ábra: Mozgás során keletkezett átlagos hiba alakulása, ha 0.0174 ≤ 𝑘 ≤ 1 A rendszer összes hibája mozgás során 0.0086 𝑚 , az átlagos eltérés 2.8483 ∙ 10−4 𝑚 . A hiba értéke függ 𝑘 konstans megválasztásától, mint a 4.2.f.3-as ábra mutatja. A pálya egyötöd 46
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
részén vizsgáltam az eltérést különböző 𝑘 értékeknél, a függvény tehát csak azt mutatja meg, miként változtathatja az ügyesen megválasztott konstans az eredményünket. Mint a sebesség szinten történő megoldásoknál megszokhattuk, rossz kezdeti becslés alkalmazásánál időbe telik, míg a rendszer végpontja rátér a pályára, épp ezért az átlagos eltérés is nagyobb, mivel kevesebb idő között oszlik meg az elején keletkező nagy hiba. Az általam választott konstans érték nem esik bele a 4.2.f.3-as ábrán feltűntetett intervallumba. A 4.2.f.4-es ábrán látható, hogy körülötte hogyan alakul az átlagos eltérés.
4.2.f.4 ábra: Mozgás során keletkezett átlagos hiba alakulása, ha 0.0057 ≤ 𝑘 ≤ 0.015 Megjegyzés: Ha zérusnak vesszük 𝑘 értékét, a 4.2.d-vel megegyező megoldást kapjuk vissza. 4.2.g Manipulability maximalizálással sebesség szinten
4.2.g.1. ábra: Rendszer által bejárt pálya. 47
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
A mozgás során keletkező összes eltérés értéke 0.0086 𝑚 , az átlagosé 2.8718 ∙ 10−4 𝑚 , amennyiben az önkényesen megválasztott 𝑘 konstans értéke: 𝑘=1
(1.g)
4.2.g.2 ábra: Rendszer által felvett csuklószög értékek a mozgás során. 4.2.h Dynamic manipulability maximalizálással sebesség szinten A csuklók maximális forgatónyomatékának az alábbi értékeket adtam meg: 𝜏1+ = 37.18 𝑁𝑚
(1.h)
𝜏2+ = 28.2425 𝑁𝑚
(2.h)
𝜏3+ = 12.155 𝑁𝑚
(3.h)
A későbbiekben bemutatott méréseknél tapasztalt pontatlanság adódhat abból, hogy a nyomatékokat konstansként kezeltem, mivel az emberi ízületek nyomatéka függ a karhelyzettől, hiszen az izmok kissé távolabb tapadnak tőlük a csontokon, és mozgás során változik a köztük lévő távolság (4.2.h.1-es ábra). További hiba adódhat abból is, hogy mivel az 𝜔 = 𝑑𝑒𝑡 𝑱 𝑯𝑻 𝑯 −1 𝑱𝑻 skalárfüggvény túlságosan hosszú és csúnya csak numerikusan tudjuk szögek szerint parciálisan deriválni, amit definíció alapján a következőképp teszünk: 𝜔 𝝋 ′=
𝜔 𝝋+ℎ −𝜔 𝝋 ℎ
,
(4.h)
ahol ℎ → 0. A ℎ értékének tapasztalati úton 10−3 -t választottam, mivel kisebbet véve, nem változtatott a megoldáson. A kapott gradiensünk elemei úgy adódnak, hogy mindig a megfelelő szöghöz adjuk hozzá ℎ-t.
48
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Az önkényesen megválasztott 𝑘 konstans értéke: 𝑘 = 2 ∙ 10−6
(5.h)
4.2.h.1. ábra: Izom eredési helye és az ízület közti távolság. A megoldás összes hibája a mozgás során 0.0088 𝑚 , az átlagos eltérés 2.9091 ∙ 10−4 𝑚 .
4.2.h.2. ábra: Rendszer által bejárt pálya.
4.2.h.3. ábra: Rendszer által a mozgás során felvett csuklószög értékek. 49
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
4.3., Szimuláció eredményeinek összehasonlítása egyes megoldási módoknál A 4.2. alfejezetben számított eredmények kerülnek összehasonlításra. A megoldási módszerek beazonosítását a hozzájuk rendelt színek segítik. A mozgás során keletkezett átlagos eltérés szerint táblázatban növekvő sorrendbe helyezem őket. Az emberi karhoz jelen esetben egyik algoritmus által adott megoldást sem lehet hasonlítani, mivel a görbe, amit a végpont bejár, az emberi kéz számára elérhetetlen, amennyiben csak síkban mozoghat. Tehát a szimuláció pályája kiesik az emberi mozgás teréből. Ez a fejezet abba enged betekintést nyerni, mennyire adnak megfelelő eredményt a különböző inverz kinematikai módszerek. A pályától való eltérés természetesen görbefüggő, így csak közelítő képet kaphatunk arról, melyik milyen pontos. Viszont ez most egy másodlagos szempont lesz a részünkről, elegendő, ha megengedhető határon belül mozog az eltérés értéke. Sorszám
Megoldási módszer
Mozgás során keletkezett összes eltérés [m] 4.6681 ∙ 10−15
Mozgás során keletkezett átlagos eltérés [m] 1.5509 ∙ 10−16
Zárt alakú megoldás Numerikus gyökkeresés a 2. 2.2411 ∙ 10−14 7.4456 ∙ 10−16 pszeudoinverz felhasználásával Megoldás csuklólimitek felhasználásával sebesség 3. 2.8483 ∙ 10−4 0.0086 szinten Megoldás súlyozatlan pszeudoinverz használatával 4. 0.0086 2.8656 ∙ 10−4 sebesség szinten Megoldás manibulability 5. 2.8718 ∙ 10−4 0.0086 felhasználással sebesség szinten Megoldás dynamic manibulability felhasználással 6. 0.0088 2.9091 ∙ 10−4 sebesség szinten Megoldás súlyozott pszeudoinverz használatával 7. 6.9263 ∙ 10−4 0.0208 sebesség szinten Rugópotenciál optimalizálást felhasználó numerikus 8. 0.0965 3.2065 ∙ 10−3 gyökkeresés Megoldási módszerek a megkövetelt pályától való eltérésük szerint növekvő sorrendbe rendezve. 1.
A függelékben megvizsgálhatóak csuklószögenként csoportosítva a szögek alakulása.
50
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
5., Mérés, és eredményeinek kiértékelése A dolgozat második nagy része a mérések, és azok feldolgozása (5.1-es ábra). A kapott adatokat összehasonlítva keresem meg, melyik megoldási mód bizonyult a legjobbnak az emberi kar mozgásának leírása szempontjából. Falra projektorra vetítettük ki a követendő pályát. Mivel többféle sebesség esetén is vizsgálom az ízületi szögeket, ezért hogy segítsük az alanyokat a karjuk nagyjából egyenletes és megfelelő gyorsaságú mozgatásában, egy olyan animált kart is kivetítettünk a falra, melynek a pályától való eltérése nullának vehető volt. A feladat az volt, hogy egy könnyebb majd egy nehezebb rudat kézben tartva a vetületének végpontját kellett végigvezetni a vetített rendszer végpontja mentén. A mozgást kamerával rögzítettük, amely 50 képet készít másodpercenként, a felbontása pedig 1920 × 1080 pixel. A felhasznált pálya szív alakú volt (5.2-es ábra), és kétszer haladt rajta végig a vetített rendszer az elején lévő esetleges lemaradás kiküszöbölése 𝑔𝑦 𝑙 𝑘 végett. Háromféle sebességgel dolgoztam, 𝑡𝑚𝑎𝑥 = 60; 𝑡𝑚𝑎𝑥 = 30; 𝑡𝑚𝑎𝑥 = 15, így 24 adathalmazt vizsgálok. Az adatokat Tracker[9] nevű programmal olvastam ki a videókból, mely képkockánként követte végig az adott pontot, melyek jelen esetben a vállízület (𝐴 pont), könyökízület (𝐵 pont), csuklóízület (𝐶 pont), valamint a rúd végpontja (𝐷 pont) volt (5.3-as ábra).
5.1 ábra: Mérési elrendezés. A kamera egy szinten, és a lehető legközelebb helyezkedik el a kivetítőhöz. A falon 0.5 𝑚 távolságot felölelő jelzések vannak, melyek az adatfeldolgozáskor a kalibrációt teszik lehetővé.
51
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
5.2. ábra: Követendő pálya.
5.3. ábra: A Tracker programban megjelenő pálya és markerek. Az adatokat, azaz az eltelt időt, valamint a pontok koordinátáit szöveges dokumentumba kimentve, majd Matlabba beolvasva használtam fel. A különböző karok hosszait is innen olvastam ki, az őket határoló két pont távolságának segítségével. Mivel a vállízület is számottevően mozgott, ezért a rá elhelyezett koordinátarendszerem helye is változott. A rúd végpontjának relatív helyét úgy határoztam meg a megtett pálya kirajzolásához, hogy a vállízület koordinátáit rendre kivontam a rúd végpontjáéból. Mivel ezek a görbék zajosak, főként a lassú mozgások esetén (5.4-es ábra), ezért egy sima mozgóátlagot számító algoritmussal[10] korrigáltam a megoldási módszereim számára. A mozgóátlag lényege az, hogy az első 𝑛 elem számtani átlagát figyelembe véve számítja ki az 𝑛 + 1 . elemet. Az így kapott pályán vezettem végig az animált rendszereim végpontját. A szűrés során a pálya eleje és vége nagymértékben torzult, így az első és utolsó pár adatot levágtam az őt tartalmazó vektorból. 52
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Sima mozgóátlag képlete: 𝑆𝑀𝐴 =
𝑃𝑀 +𝑃𝑀 −1 +⋯+𝑃𝑀 − 𝑛 −1 𝑛
(1.)
A mért csuklószögeket az egyes karok végpontjának 𝑥, 𝑦 koordinátái alapján fejeztem ki a nem szűrt adathalmazból. A mérésből kivett csuklószögekhez viszonyítva ezután kiszámítottam az algoritmusok által számoltak eltérését 2-normából származó átlaggal. Az számít a legjobbnak, mely esetében ez az érték a legkisebb. A különböző algoritmusok kezdeti szögbecslését úgy határoztam meg, hogy a görbe kezdőpontjában legyen a rendszer végpontja. Annak céljából, hogy az algoritmusok megoldásai a lehető legközelebb legyenek a mért szögekhez, melyek −𝜋 𝜋 tartományon találhatóak, ezért korrigáltam, ha esetleg valamely csuklószög 𝑛2𝜋-vel elcsúszott volna, 𝑛 ∈ ℤ, valamint a zárt alakú megoldás szakadásait is megszüntettem.
5.4. ábra: Zajos, mért pálya. Mérési pontatlanságok adódhatnak abból, hogy az emberek karjuk mozgatása során kitérhetnek a síkból. Mivel konstans karhosszakkal számoltam, ami nem vette figyelembe a kitérésből származó karrövidüléseket, illetve hosszabbodásokat, ezért a mérésből számolt szögeket visszahelyettesítve a direkt kinematikai képletbe, a valóságostól kissé eltérő pályát kapunk vissza. Egyes algoritmusokhoz szükséges volt megmérni az ember ízületei által maximálisan kifejthető nyomaték nagyságát, valamint a kar egyes részeinek tömegét. A mérés során egy hosszú rúdra akasztott mozgatható súly segítségével kerestem meg a határt, amikor még elbírja az ember a rúd és a súly által kifejtett forgatónyomatékot (5.5., 5.6., 5.7-es ábrák). Egy 1.5 𝑘𝑔 -os, valamint egy 5 𝑘𝑔 -os súlyt használtam, a rúd tömege 0.74 𝑘𝑔 volt. A kar részeinek tömegét a testtömeg százalékos eloszlásának ismeretében határoztam meg [6]. 53
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
5.5. ábra: A kék csukló az origó, melyre a nyomatékokat számolom, a zöld jelképezi a mozgatható plusz súlyt. A rúd a felkaron támaszkodik.
5.6. ábra: A kék csukló az origó, melyre a nyomatékokat számolom, a zöld jelképezi a mozgatható plusz súlyt. A rúd az alkaron támaszkodik.
5.7. ábra: A kék csukló az origó, melyre a nyomatékokat számolom, a zöld jelképezi a mozgatható plusz súlyt. A rudat csak az ujjak tartják, nem támaszkodik semmin. Testrész Felkar Alkar Kéz
Tömeg % -Férfiak Tömeg % -Nők 2.71 2.55 1.62 1.38 0.61 0.56 Test tömegeloszlása százalékos alakban. [6]
54
Patkó Dóra
Ízület Váll Könyök Csukló
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
B. L. M. M. P. D. 34.8549 44.1038 17.6698 38.8378 53.698 18.2858 13.8321 11.6876 4.4145 Maximálisan kifejthető nyomatékok 𝑁𝑚 -ben.
Z. A. 54.5868 62.2366 16.7594
5.1., Nagy tömegű rúddal A használt rúd tömege:
1.98 𝑘𝑔
5.1.a Lassú mozgás
5.1.a.1. ábra: A piros pálya, amin a mért kar haladt végig, a kék, melyen a rendszerek, és ami a sötétszürke pálya szűrése után jött létre. A szélességbeli torzulás a miatt adódhat, hogy az ábrázolt görbe a vállhoz viszonyított relatív pálya. Gyors mozgásoknál nagyobb mértékű volt ez a torzulás- váll jobban mozgott.
5.1.a.2. ábra: 𝜑1 alakulása az időben különböző rendszereknél. A piros görbe a mért szögek. 55
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
5.1.a.3. ábra: 𝜑2 alakulása az időben különböző rendszereknél. A piros görbe a mért szögek.
5.1.a.4. ábra: 𝜑3 alakulása az időben különböző rendszereknél. A piros görbe a mért szögek. A fenti képek tájékoztató jellegűek, a mérésről készült többi kiértékelő kép a függelékben található.
Megoldási módszer Átlagos eltérés
B. L. Rugópotenciál optimalizálást felhasználó numerikus gyökkeresés 0.08154
M. M.
P. D.
Z. A.
Manipulabilityt felhasználó megoldás sebesség szinten
Csuklólimiteket felhasználó megoldás sebesség szinten
Zárt alakú megoldás
0.1006
0.059
0.0503
Legjobb megoldásokat tartalmazó táblázat-nagy tömegű rúd, lassú mozgás
56
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
5.1.b Közepesen gyors mozgás
Megoldási módszer Átlagos eltérés
B. L. Manipulabilityt felhasználó megoldás sebesség szinten 0.1388
M. M. Zárt alakú megoldás 0.1683
P. D. Csuklólimiteket felhasználó megoldás sebesség szinten 0.092
Z. A. Zárt alakú megoldás 0.0763
Legjobb megoldásokat tartalmazó táblázat-nagy tömegű rúd, közepesen gyors mozgás 5.1.c Gyors mozgás B. L.
M. M.
Megoldási módszer
Zárt alakú megoldás
Zárt alakú megoldás
Átlagos eltérés
0.2151
0.262
P. D. Manipulabilityt felhasználó megoldás sebesség szinten 0.1319
Z. A. Zárt alakú megoldás 0.0781
Legjobb megoldásokat tartalmazó táblázat-nagy tömegű rúd, gyors mozgás 5.2., Könnyű rúddal A használt rúd tömege:
0.12 𝑘𝑔
5.2.a Lassú mozgás B. L.
M. M.
Megoldási módszer
Zárt alakú megoldás
Zárt alakú megoldás
Átlagos eltérés
0.085
0.0625
P. D. Rugópotenciál optimalizálást felhasználó numerikus gyökkeresés 0.1405
Z. A. Zárt alakú megoldás 0.085
Legjobb megoldásokat tartalmazó táblázat-kis tömegű rúd, lassú mozgás 5.2.b Közepesen gyors mozgás
Megoldási módszer Átlagos eltérés
B. L. Rugópotenciál optimalizálást felhasználó numerikus gyökkeresés 0.1544
M. M. Rugópotenciál optimalizálást felhasználó numerikus gyökkeresés 0.177
P. D. Manipulabilityt felhasználó megoldás sebesség szinten 0.1232
Z. A. Dynamic manipulabilityt felhasználó megoldás sebesség szinten 0.1041
Legjobb megoldásokat tartalmazó táblázat-kis tömegű rúd, közepesen gyors mozgás 5.2.c Gyors mozgás B. L. Megoldási módszer
Zárt alakú megoldás
Átlagos eltérés
0.2481
M. M. Rugópotenciál optimalizálást felhasználó numerikus gyökkeresés 0.2481
P. D. Rugópotenciál optimalizálást felhasználó numerikus gyökkeresés 0.2637
Z. A. Dynamic manipulabilityt felhasználó megoldás sebesség szinten 0.1631
Legjobb megoldásokat tartalmazó táblázat-kis tömegű rúd, gyors mozgás 57
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
5.3., Kiértékelés Általánosságban a zárt alakú megoldás írta le leginkább az ember kezének mozgását, 41.67%-ban ez bizonyult a legjobbnak. A mért szögektől való eltérés ennél az esetnél volt a legkisebb, azonban a hiba nagysága szempontjából való vizsgálódás relevanciája megkérdőjelezhető, hiszen a befutott pályák közt is található eltérés. Látható, hogy a rugópotenciál optimalizálást felhasználó numerikus gyökkeresés is elfogadható eredményt ad az esetek negyedében. Ennek hibája, hogy szinguláris helyzetekhez közel nem megfelelőnek működik. Emberi mozgáshoz közeli eredményt adott még a manipulabilityt felhasználó megoldás, leginkább a nehezebb rudak esetében mindenkinél előfordult, mint legjobb algoritmus. Zárt alakú megoldásnál feltételeztem, hogy a csukló, és a könyök relatív ízületi szögei megegyeznek, tehát amennyiben az ember mozgatni kezdi az alkarját, a kézfeje is vele mozdul, azonos irányba. Ez nehéz tömeg esetén gyorsabb mozgás során valósult meg leginkább, könnyű tömegnél pedig lassabbnál. A rugópotenciál optimalizálás lényege hasonlít a csuklólimiteket felhasználó megoldáséhoz, hiszen mindkettő szerint az ember arra törekszik, hogy a mozgási szögtartományának számtani közepe felé tartson az ízületi szögek értéke. A különbség abban nyilvánul meg, hogy rugópotenciál minimalizáláskor csupán az alkarról, és a kézről feltételeztük az előbbit, valamint csak olyan megoldások jöhetnek szóba, ahol ez az előírt szögállás létre is jön. Tehát a vállízület főként a másik két ízület megfelelő pozícionálását végzi el. Ez főképp könnyű tömeg gyorsabb mozgatásánál volt megfigyelhető. Egy embernél nehéz tömeg lassú mozgatása esetén a csuklólimitek játszottak nagyobb szerepet. Ennek oka az lehet, hogy mivel az vizsgált személy által maximálisan kifejthető forgatónyomaték kicsi volt, ezért az „optimális” csuklószögeket csak közelíteni tudta, elérni nem, ugyanis a nagy terhelés miatt a csukló által felvett szög kisebb értékeket ütött meg. Gyorsabb mozgásoknál a fellépő nagyobb erők miatt kaphatott szerepet a dynamic manipulability. A kisebb tömegű rúd esetén jobban kellett figyelni, hogy a pályán tartsa az ember a kezét, hiszen azt könnyebben tudta nagy sebességgel mozgatni, így a hirtelen irányváltásokkor nagyobb erőt kellett kifejtenie a normálisgyorsulás megváltozása miatt. Nehéz tömeg mozgatásánál előkerült a manipulabilityt felhasználó módszer is, főként a kisebb maximális forgatónyomatékot kifejteni tudó embereknél. Ennek oka az lehet, hogy a személyek igyekeztek a kezüket a szinguláris helyzetektől leginkább eltérően tartani, hogy nagyobb erővel tarthassák a kezüket terhelő plusz súlyt. Karakterisztikában az algoritmusok többsége hasonló csuklószög görbéket adott vissza, mint az emberi kar. Ami a legkevésbé követte le az ízületi szögek alakulását, az a tömegmátrixszal súlyozott pszeudoinverzzel történő sebességszintű megoldás. Megállapítható, hogy az ember karjának könyök-, és csuklóízületei modellezhetőek megfelelő fizikai tulajdonságokkal rendelkező torziósrugókkal. Mozgástervezés során tisztán a tömegek nem határozzák meg a felvett csuklószög értékeket, ekkor vagy a forgatónyomatékok is szerepet játszanak, vagy minél inkább igyekezik az ember a szinguláris helyzetektől távol tartani a karját. 58
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
6., Összefoglalás Kétcsuklós mechanizmusokról áttérve a háromcsuklós redundáns szerkezetekig nyolcféle különböző elven működő megoldási módszert vizsgálva, majd az ezek által kapott eredményeket összevetve a mérés során kapottakéval arra jutottam, hogy az emberi mozgástervezésnél a vállízület szerepe főként az alkar és a kéz megfelelő pozícionálásában merül ki síkmozgás esetén, miközben az alkar egy közel állandó, számára kényelmes szögben áll. A hangsúlyos rész tehát a könyök-, és csuklóízület közti összefüggés megtalálása. A munkám során arra a következtetésre jutottam, hogy a két ízület igyekszik párhuzamosan működni, ha mozdul az egyik, a másik is. A 24 vizsgált eset közül majdnem 50%-ban a zárt alakú megoldás bizonyult a legmegfelelőbbnek, ami szerint a két ízület relatív szöge megegyezik mozgatáskor. Ez az algoritmus egyébként a három ujjpercből álló ujjaink mozgását tökéletesen leírja. Természetesen létezhet más, egyelőre nem vizsgált megoldási módszer, ami még inkább visszaadja a karunk mozgását. Nagyobb százalékban kaptuk még azt az eredményt, hogy a rugópotenciál optimalizálásnál kapott szögértékek felelnek meg legjobban a mérteknek. Akár ezt tovább fejlesztve, például a rugómerevségekkel kombinálva kaphatunk még jobb értékeket. Amennyiben nem a könyök-, és csuklóízület viszonyára szeretnénk fektetni a hangsúlyt, a különböző konstans értékeket másként felvéve a nullteret felhasználó algoritmusokban is juthatunk megfelelőbb megoldásokhoz. Például a manipulability felhasználásakor, ha század részére állítjuk a 𝑘 konstans értékét, több mint másfélszeresére nő a hibája. Illetve ugyanez működik abban az esetben is, ha ezen módszerek közül a hozzájuk tartozó konstans értékét túl nagyra vesszük. Tehát a képzeletbeli torziós rugó legkisebb hibához tartozó fizikai adatainak megkeresése mellett az is lehet egy irány, hogy azt vizsgáljuk, hogy a 𝑘 konstansnak mi az optimális értéke. A mérési hibából adódó pályák közötti eltérés korrigálható lett volna, ha a rendszerekhez változó karhosszakat rendelek. Azonban mivel ilyen rendszer a valóságban nem gyakori, ezt a lehetőséget elvetettem. Működő lehetőség lett volna, ha a mozgás során a mért karhosszak átlagával számolok. Vizsgálataink előrelépést jelentenek abban, hogy megértsük az ember mozgástervezésének folyamatát. Megszerzett ismereteink felhasználhatóak orvosi céllal, akár az egészséges emberek mozgásával összevetve a vizsgálni kívánt emberek eredményeit bizonyos rendellenességek diagnosztizálásában, akár magában a gyógyítás folyamatában, mint gyógytornásztatás. Egy további felhasználási lehetőség a szórakoztatást szolgáló humanoid robotok élethű és természetesnek ható mozgásának generálása.
59
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Irodalomjegyzék [1] Wettl Ferenc, LINEÁRIS ALGEBRA azoknak, akik érteni is szeretnék, 2011. [2] B.Siciliano, O. Khatib, Handbook of Robotics, Springer, 2008. [3] Hartung Ferenc, Bevezetés a numerikus analízisbe, Veszprémi Egyetemi Kiadó, 1998. [4] Mark W. Spong, Seth Hutchinson, M. Vidyasagar, Robot Dynamics and Control, Second edition, 2004. [5] Dr. Csernák Gábor, Dr. Stépán Gábor, A műszaki rezgéstan alapjai, Budapesti Műszaki és Gazdaságtudományi Egyetem, Műszaki Mechanikai Tanszék, 2012. [6] Paolo de Leva, Adjustments to Zatsiorsky-Seluyanov’s Segment Inertia Parameters, Kinesiology Department, Indiana University, Bloomington, 1996. [7] John M. Hollerbach, Ki C. Suh, Redundancy resolution of manipulators through torque optimazation, Massachusetts Institute of Technology Artificial Intelligence Laboratory, 1986. [8] F. Paulsen, J. Waschke, Sobotta- Az ember anatómiájának atlasza 1. kötet: Általános anatómia és a mozgás szervrendszere, Medicina Könyvkiadó Zrt., 2012. [9] http://physlets.org/tracker/ (utolsó elérés: 2015. 11. 11.) [10] Ya-Iun Chou, Statistical Analysis, Holt International, 1975.
60
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
Függelék Az azonosítást segítő különböző megoldási módokhoz tartozó színek:
Zártalakú megoldás Rugópotenciál optimalizálást felhasz. numerikus gyökkeresés Numerikus gyökkeresés pszeudoinverzzel Súlyozatlan pszeudoinverz alkalmazása sebesség szinten Súlyozott pszeudoinverz alkalmazása sebesség szinten Csuklólimitek alkalmazása sebesség szinten Manipulability maximalizálás sebesség szinten Dynamic manipulability maximalizálás sebesség szinten
⟹ ⟹ ⟹ ⟹ ⟹ ⟹ ⟹ ⟹
lila fekete szürke magenta ciánkék kék sárga zöld
A mért, vagy megadott pályák, szögek pirossal vannak rajzolva. I., Animáció kiértékelése kinematikailag redundáns esetben (4.3. fejezet)
I.1. ábra: Rendszerek állása mozgás közben.
61
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
I.2. ábra: 𝜑1 alakulása a mozgás során a különböző rendszereknél.
I.3. ábra: 𝜑2 alakulása a mozgás során a különböző rendszereknél.
62
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
I.4. ábra: 𝜑3 alakulása a mozgás során a különböző rendszereknél.
I.5. ábra: Hiba alakulása az időben 𝑡1 = 0.5 𝑠 időpillanattól 𝑡𝑛 = 27 𝑠 időpillanatig
63
Patkó Dóra
Emberi kar mozgástervezésbeli hasonlósága kinematikailag redundáns robotokéval
II., Mérési eredmények B. L. adatai
Nagy tömegű rúd o lassú mozgás o közepesen gyors mozgás o gyors mozgás Kis tömegű rúd o lassú mozgás o közepesen gyors mozgás o gyors mozgás
II.1-II.4. ábrák II.5-II.8. ábrák II.9-II.12 ábrák II.13-II.16 ábrák II.17-II.20 ábrák II.21-II.24 ábrák
M. M. adatai
Nagy tömegű rúd o lassú mozgás o közepesen gyors mozgás o gyors mozgás Kis tömegű rúd o lassú mozgás o közepesen gyors mozgás o gyors mozgás
II.25-II.28 ábrák II.29-II.32 ábrák II.33-II.36 ábrák II.37-II.40 ábrák II.41-II.44 ábrák II.45-II.48 ábrák
P. D. adatai
Nagy tömegű rúd o lassú mozgás o közepesen gyors mozgás o gyors mozgás Kis tömegű rúd o lassú mozgás o közepesen gyors mozgás o gyors mozgás
II.49-II.52 ábrák II.53-II.56 ábrák II.57-II.60 ábrák II.61-II.64 ábrák II.65-II.68 ábrák II.69-II.72 ábrák
Z. A. adatai
Nagy tömegű rúd o lassú mozgás o közepesen gyors mozgás o gyors mozgás Kis tömegű rúd o lassú mozgás o közepesen gyors mozgás o gyors mozgás
II.73-II.76 ábrák II.77-II.80 ábrák II.81-II.84 ábrák II.85-II.88 ábrák II.89-II.92 ábrák II.93-II.96 ábrák
A képek a CD mellékletben találhatók. 64