940 likes | 1.12k Views
Robotikai Alapok I. Ami a robotprogramozás c. mérés elvégzéséhez szükséges…. Proh ászka Zoltán , prohaszka @iit.bme.hu. Tudnivalók. Kötelező jelenlét HF egyénenként, pap íron beugró kérdések: 2 képlet:Euler /D-H. Mit kell megtanulni?. Euler kéz, DH lépés mint mátrixok szorzata
E N D
Robotikai Alapok I. Ami a robotprogramozás c. mérés elvégzéséhez szükséges… • Prohászka Zoltán, prohaszka@iit.bme.hu
Tudnivalók • Kötelező jelenlét • HF egyénenként, papíron • beugró kérdések: 2 képlet:Euler/D-H
Mit kell megtanulni? • Euler kéz, DH lépés mint mátrixok szorzata • Minden, ami a mérési útmutató kérdéseihez szükséges (.pdf, 59. oldal) • ARPS (azok az utasítások, amik a példaprogramban szerepelnek, és még más, lásd II. rész, utolsó dia) • Kézivezérlő 2*6 mozgatógombja, joint és world üzemmód
Mit kell a mérésre hozni? • EGYÉNI házi feladatot, PAPÍRON • Mindenki ugyan azt a feladatot kapja (.pdf vége: mérési útmutató), de értelemszerűen kicsit másképp oldja meg.
Használati útmutató • A mérésen jó, ha értik ami itt le van írva, de ez nem egy 100% megtanulandó anyag. • Megtanulandók: külön specifikálva • A mérésre készülők fussák át az anyagot, ezután nézzék át a megtanulandókat, és azt, amit a megtanulandók megértéséhez szükségesnek éreznek. • Az anyag részletes, hogy az érdeklődők tudjanak miből meríteni, ha alkalmazni akarják az anyagot. • Szürke színnel szedett: CSAK Érdeklődőknek! • Akinek képességei megengedik, vezesse le, és használja az anyagot ellenőrzésre…
A manipulátor • Az ipari robot egy irányított mechanizmus, melynek legfőbb tulajdonsága, hogy a rá szerelt végberendezést képes térben és időben előírt módon pozicionálni, s ennek segítségével feladatot megoldani • TCP, szerszámközéppont • Léteznek teljesen más robotok CNC, zárt láncú, mobilis, flexibilis, kígyók, stb.
DoF:Degrees of Freedom • Szabadságfok (egyenletrendszerek, ismeretlenek, kényszerek): Megoldások sokaságának dimenziói: Hány skalárral járható be a halmaz? • Térbeli forgatás 3 DoF, geom. biz. • 2-D DoF: 2 T+1 R • 3-D DoF: 3 T+3 R=6, pl. gázmolekulák • m>6: Redundáns Robot (pl. emberi kar:9), marad m-6 szabadság: optimális energia, manőverábilitás, információközlés, testbeszéd
Csuklóképlet • TTT: xyz CNC maró • TTTR: alkatrész beültető • RRTR: scara, alkatrész beült. • TTTRRR: komoly CNC • RRRRRR: Ipari robot • Általában az első 3 csukló felelős a pozícionálásért, többi forgat (DEKOMPOZÍCIÓ)
Robotvezérlők • A manipulátor mozgatásához valamilyen vezérlő szükséges (Teljesítményelektronika, szabályzás, alapjel előállítás, ember-gép kapcsolat) • Az előadás célja, hogy a hallgatók tisztában legyenek a manipulátorban és a vezérlőben zajló folyamatokról
Térbeli helyzet leírása • 2D-ben könnyebb illusztrálni, mert könnyebben lehet lerajzolni, elképzelni. • 2D-ben érdemes a geometria-algebrai kapcsolatokat megérteni • 3D algebrai kiterjesztés egyszerűen következik a 2D algebrából, • 3D geometria elképzeléséhez térlátás és/vagy sok gyakorlás szükséges, • DE ELENGEDHETETLEN, ha valaki ilyen problémákat akar mérnöki módon kezelni
Egy síkbeli test minden pontja megadható három kitüntetet pontjának LINEÁRIS kombinációjaként • Nevezzük az elsőt a test origójának (O) • Vegyük fel a másik kettőt (B,C) az origótól 90 fokban, ha lehet, azonos távolságban • Minden Pi pont megadható xi, yi koordinátákkal: Pi=xi*(B-O)+yi*(C-O)+O • Legyen ez a test egy F betű (5 pont) • Ha mozgatjuk O,B,C-t, akkor minden így megadott pi is mozogni fog
Pi=xi*(B-O)+yi*(C-O)+O • Használjunk MÁTRIX-ot, mert az algebrában az fejezi ki két koordinátavektor általános lineáris kapcsolatát • A=[(B-O)(C-O)], t=O, • Pi =A*[xi;yi]+t=[A t]*[xi;yi;1] • (ez egy vektorok lineáris kombinációját kifejező egyenlet) • Elnevezés:A-tartalmazza a bázis-oszlopvektorokat.(ekkor [A t] abszolút helyzetet kódol, és félig algebrai, félig geometriai mennyiség) • Ha F–et ki akarjuk rajzolni pl. a képernyőre, akkor annak a koordinátarendszerét kell használni • (ekkor [A t]-be a B,C,O vektorok képernyőkoordinátarendszer szerinti koordinátás reprezentációját kell tenni. Ez már egy mátrix) • Az O,B,C vektorok koordinátáit tartalmazó [A t] egy mátrix,ez használható koordinátarendszerek relatív helyzeteinek a számszerű kódolására
Koordináta rendszerek (Robotikában: KERETek) • 1 pontból és N vektorból áll. Krumpli, N nyílvesszővel. (N: dimenziók) • Megfelelő algebrai és geometriai objektumok kapcsolatának megadása KERETekkel lehetséges • (a Keretek emiatt félig geometriai, félig algebrai objektumok) • Egy keretnek, mint geometriai objektumnak algebrai leírásához (pl. számítógép) szükség van egy másik keretre. • Azaz csak 2 keret helyzetét számszerűsíthetjük, 1 keretét nem. • Két origó középpontú keret viszonya (relatív orientációjuk) NxN-es mátrix: Hogyan fejezhető ki az egyik vektorai a másik vektorainak lin. Kombinációival • Lineáris terek tárgyalásakor (Matematika, Lineáris Algebra) a keretek eltolása nem megengedett, a nyilak mindig az origóból indulnak. • Két általános helyzetű keret viszonya: Homogén (N+1)x(N+1)-es mátrix
Jelölési szokások • Általában oszlopvektorokat használunk • Sorvektorok jelölése: vT: transzponált oszlopvektor • Kivéve Sz.gépes Grafika, itt minden transzponált • Mátrixszorzások sorrendje fordított • Kereteket 1 indexszel jelöljük:KA • Több (legalább 2) kerettel dolgozunk • Geometriai vektorok algebrai koordinátavektorainak indexe azt jelenti, melyik keretben írtuk fel: pA : p vektor az A keretben mérve • Transzformációkat két indexel látjuk el: Melyik kerethez képest melyik keret helyzetét jelöli. TAB :KB helyzete KA-hoz képest
Jelölési szokások II • A jelölés választása praktikus: • vektor átszámítása másik keretbe: pB= TAB * pA • Transzformációk halmozása: TAC = TAB * TBC • Keretek szerepének felcserélése: TBA=(TAB)-1 • Könnyű észrevenni, ha egy képletben elírtuk az indexeket • sorvektoros jelölés esetében pont fordítva praktikus a transzformációk indexelése • Pár inkonzisztencia: • Régi és új fogalma nem mindig egzakt • Forgatási mátrixokat állapotmátrixként értelmezzük, általában elhagyjuk az indexeket • Keretek geometriai vektorai pont másképpen transzformálódnak (jobbról szorzódnak) geometriailag, mint a koordinátavektorok, [xB,yB,zB]*TBA=[xA,yA,zA], de ezzel nem lesz dolgunk • SW fejlesztéskor precízen kell a választott jelölést dokumentálni, adminisztrálni • Fejlesztésbe bekapcsolódáskor, hibakereséskor ezt érdemes átnézni, ellenőrizni (először)
Homogén koordináták • Abszolút, azaz pozícióvektorok N koordinátájához hozzáírunk 1-et • Relatív, azaz irányvektorok N koordinátájához 0-t írunk. • Transzformációs mátrixok alá N db 0-t és egy 1-est, mivel ezek első N oszlopa relatív vektorokat jelent, utolsó oszlopa pedig eltolást, ami egy pozícióvektor.
Homogén koordináták II • Homogén koordinátás vektorok és Transzformációs mátrixok: • Inhomogének, az elemeik jelentésének fizikai dimenziója szerint • A velük végzendő műveletek lesznek homogének. • Az elnevezés a lineáris, ill. differenciál egyenletek csoportosításából ered • Ez Debug Assertion-re is használható, pl. • Sebesség, gyorsulás: relatív • Két abszolút vektornak csak súlyozott átlagolás céljából adhatunk össze • Homogén transzformációk kombinálása, invertálása sem vezet ki ebből a speciális alakból: • Alul marad mindig a 0 0 0 1, ill. 0 0 1 (2D)(grafikában jobb oldalt) • Relatív vektorok transzformációjakor a keretek eltolását figyelmen kívül kell hagyni. • Pont ezt eredményezi, hogy a relatív vektor alá 0-t írtunk. • Továbbtanulóknak: Projektív viszonyok esetében (pl. gépi térlátás) más az N+1. sor jelentése, nem csak 0 vagy 1 lehet.
A problémaMATLAB szkript mellékelve • K0:Mássz ki a csónakból és állj a mólóra, arccal a part felé. • T01:Menj előre 100 lépést és fordulj balra • T12:Menj 60 lépést, és fordulj jobbra • T23:Lopózz előre 200 lépést, és látni fogod az ellenséget jobbra, kb. 300 lépés távolságra tőled (E3). Találsz egy kulcsot elásva. • T34: Fordulj meg, menj (vissza) 100 lépést, balra fordulva (T45) találsz egy titkos ajtót, amit a kulccsal kinyithatsz, • Bejutsz, az ellenséget NEM LÁTOD a szikláktól, állitsd be a löveget a célra (E5), és TŰZ!
%K0:Mássz ki a csónakból és állj a mólóra, arccal a part felé. %T01:Menj elore 100 lépést és fordulj balra %T12:Menj 60 lépést, és fordulj jobbra %T23:Lopózz elore 200 lépést, és látni fogod az ellenséget %jobbra, kb. 300 lépés távolságra %toled (E3). Találsz egy kulcsot elásva. %T34: Fordulj meg, menj (vissza) 100 lépést, balra fordulva (T45) találsz egy titkos ajtót, amit a kulccsal kinyithatsz, %Bejutsz, az ellenséget NEM LÁTOD a szikláktól, állitsd be a löveget a célra (E5), és TUZ! %Választás: A kommandós Y irányba halad (12 orának), %jobbra +X (3 orara), balra -X irányban (9 orara) lát. T_jobb=[0 1 0;-1 0 0;0 0 1]; T_bal=T_jobb^-1; T_0_akt=eye(3); T_01=[1 0 0; 0 1 100; 0 0 1]*T_bal; T_0_akt=T_0_akt*T_01 T_12=[1 0 0; 0 1 60; 0 0 1]*T_jobb; T_0_akt=T_0_akt*T_12 T_23=[1 0 0; 0 1 200; 0 0 1]; T_0_akt=T_0_akt*T_23 E_3=[300;0;1]; T_34=diag([-1,-1,1])*[1 0 0; 0 1 100; 0 0 1];%Itt elobb megfordul, aztan halad!!! T_0_akt=T_0_akt*T_34 T_45=T_bal; T_0_akt=T_0_akt*T_45 T_35=T_34*T_45; E_5=T_35^-1*E_3; E_5 T_05=T_01*T_12*T_23*T_35; E_0=T_05*E_5; E_0 Érdeklődők futtassák MATLAB-ban!
‘2’ probléma: • Egy tárgyhoz képesti relatív pozíció hol található egy másik tárgyhoz képest? • Egy tárgyhoz képesti relatív mozgás hova visz? • Geometriai és algebrai objektumok kapcsolata • Pont, egyenes, kör reprezentációja, kavics • Helyzet: MINDIG RELATÍV!!! • Rakd le úgy a székeket, hogy mindegyik úgy álljon a mellete levőhöz képest, mint ez a kettő!
Keretek és Transzformációk Egy merev testhez rögzített egységvektor-hármast hívunk keretnek (3D-ben) Csak a keretek RELATÍV helyzete formalizálható, amit az egyik keretet a másikba vivő transzformációnak nevezünk.
Helyzetek 2 • Világos, hogy a merev testek elmozdulásait halmozni lehet (eltolás, forgatás, megint eltolás) (pl. LOGO programnyelv, teknősbéka) Egy A |p kombináció leírja a soron következő (új) koordinátarendszer helyzetét az előző (régi) k.r. –ben !!!!!DE!!!!! Segítségével egy pont régi k.r.-beli helyzetét számíthatjuk ki, ha ismerjük hol van az új koordinátarendszerben.
Homogén koordináták és mátrixok -Transzformációk kombinálása N+1-es mátrixszorzással, egyszerűen:
Invertálás Keretek szerepének megfordítása, (N+1)x(N+1)-es invertálással, vagy kihasználva, hogy csak ortonormált forgatási tagunk lesz. -Ez annak a következménye, hogy nem dolgozunk se nagyító (hasonlósági), se lapító vagy nyíró (affin) lineáris transzformációkkal. -Ilyen transzformációkra is használhatóak az eddigiek, kivéve ez a dia!
Forgatás 2D és 3D Z tengely 2D, inhomogén, [x;y]=Rot2D(phi)*[x’,y’] 3D Z, inhomogén: -X,Y síkban ugyan az, mint 2D-ben -Z koordináta nem változik: [x;y;z]=RotZ(phi)*[x’,y’,z’]
Forgatás 3D, X és Y S előjele C alatt pozitív, kivéve Y körüli forgatást. Könnyú eltéveszteni !!! -3 szájbarágós dia, érdeklődőknek: kockapakolás, bázistranszformáció, csempézés
Helyzetek tömören • 2D vs 3D • 1Test poziciója: kituntetett pontjának (súlypont) koordinátái • Használjunk koordinátarendszereket a helyzet (elfordulás) leírására is (linearitás) • Leírjuk: Origo koordinátái (abszolút vektor) • x, y, (z) egységvektorok (relatív vektorok) • Ez visszaolvasható oszloponként, felrajzolható (pl. Debug visualizer)
Helyzetek -Lényegi kérdések • Miért hívjuk homogén koordinátáknak a hom. koord.-kat? • Milyen geometriai művelet a mátrixszorzás? • Attól függ, van-e geometriai jelentése a szorzandó mátrixoknak • Milyen geometriai műveletnek felel meg az invertálás? dettó. • Miért van szükség koordináta rendszer használatára a robotikában? • Miért kell több koordináta rendszer? • Miért használunk mátrixokat a robotikában?
A Kinematikai lánc A piros nyíllal jelölt mozgás van előírva a feladat szerint, A robot a kék nyíllal jelölt transzformációt tudja változtatni a motorok által.
Szinguláris állapotok • Nem tud tetszőleges mozgás szerint elindulni • Jacobi mátrix lapos • Euler: szinguláris kinyújtva, 0,0,0-ban • Inverz euler: végtelen megoldás, nem kettő • Ember keze: RPY, kinyújtva maximális manőverábilitás, szinguláris 0,+-90,0-ban • Ember keze nem tud szingulárisba menni • Ló szingulárisban alszik, PUMA is. (READY)
Direkt Geometriai feladat 6+2 mátrixszorzás
Inverz Geometriai feladat • Transzcendens egyenletek • Jó tervezéssel a feladat dekompnálható, pl az utolsó 3 csukló egy pontban metszi egymást
Több megoldás Első 3 csukló: 4 megoldás Euler csukló: 2 megoldás Az összesen 8! A gépnek mozgás közben kell választania. Ez baj!