Transcript P - BME
Robotikai Alapok I. Ami a robotprogramozás c. mérés elvégzéséhez szükséges… •Prohászka Zoltán, [email protected] 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Ó) Nokia Puma 560 arm • 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 KAhoz 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éma MATLAB 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 Érdeklődők futtassák MATLAB-ban! 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 • ‘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ő! Térbeli helyzet leírása 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. Ti 1,i 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. Pont koordinátái a megelőző keretben Homogén koordináták Homogén koordináták és mátrixok -Transzformációk kombinálása N+1-es mátrixszorzással, egyszerűen: A1 T1T2 T 0 p1 A2 1 0 T p 2 A1 A2 T 1 0 A1 p 2 p1 1 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’] cos jrot Rot2 D irot sin kifejezvei, j ben sin cos C S S C 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’] cos jrot k rot Rotz, irot sin kifejezvei, j,k ban 0 sin cos 0 0 C 0 S 1 0 S C 0 0 0 1 Forgatás 3D, X és Y 1 0 j rot k rot 0 C Rotx, i rot 0 S C j rot k rot 0 Rot y, i rot S 0 S C 0 S 1 0 0 C 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. A Puma 560 Euler kézcsuklója Az Euler-kéz képletei AK , K Euler( , , ) Rot( z , ) Rot( y , ) Rot( z , ) C S 0 S C 0 0 C 0 0 1 S C C C S S S C C C S S C 0 S C 1 0 S 0 C 0 S C C C S S C S C S C C S S 0 0 0 1 C S S S C 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) A D-H alak képletei Ti 1,i Rotz,i Transz,d i Transx,a i Rotx,α i Ci S i 0 0 Ci S i 0 0 Si 0 0 a i 1 0 1 0 0 0 C α i 0 1 d i 0 S α i 0 0 1 0 0 a i Ci Ci S αi a i Si . di C αi 1 0 0 0 1 0 0 0 Ci 1 0 0 0 0 1 0 0 Si S αi Si C αi Ci C αi S αi 0 0 S αi C αi 0 0 0 0 1 A Puma-560 D-H alakja 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 Dekompozíció 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! Az előző dia ábrái: http://sirkan.iit.bme.hu/~prohaszka/plakat4.GIF • • • • A robot csuklóinak pozitív iránya Tengely körüli forgatás A bázisvektorok végpontjainak mozgása mindig merőleges a tengelyre Az Euler kéz által bejárható tartomány nem bontható két részre egyértelműen • Az első 3 csukló 4 megoldása egy pozíció megvalósítására, – – a robot a robot geometriája, 2 szemszögből • Egy problémás mozgatás, 2 megoldás választása is indokolható • • • Teljesen kinyújtott kar READY helyzet csak majdnem szinguláris Nulla csuklóváltozó vektor D-H konvenció szerint • Nem teljesíthető (szinguláris) mozgáskomponensek – – – J2, J3 szinguláris (sebességugrásos szingularitás) J3 szinguláris (sebességugrásos szingularitás) J5 szinguláris (pozícióugrásos szingularitás) Robotikai alapok II. Bevezető előadások a robotprogramozás c. méréshez Készítette: Prohászka Zoltán Tartalom • !!! Jelenléti ív !!! • • • • Pályatervezés (skalár, P2P,CT,Joint,Descart) Robotvezérlő ARPS Példaprogram Pályatervezés • • • • • • Pontok közötti egyenes pálya, mert… Egy DoF robot P2P mozgása Gyorsítási idő választása, követelmények Szuperpozició, CT mozgás m-DoF mozgás csuklóváltozókban 6-Dof mozgás DesCart rendszerben Pontok közötti egyenes pálya, mert… • • • • Egyszerű megadni Egyszerű elképzelni, ütközést előre látni Műszaki környezetben minden szögletes Egy mozgás-szakaszt lényegében 2 pont definiál • Töréspontos mozgás • CAD-ből lehetne pályát importálni Egy DoF robot Point-to-point (P2P) mozgása • • • • • • • • Általánosítható bármilyen robotra Legrövidebb út az egyenes B és C között Minden pontban megáll 1. tipp: p=B+(C-B)*(t/tC) (tB:=0) Baj: sebességugrás !TÁBLA! 2. tipp t>tau VAGY t<tC-tau 1.tipp Különben v(t)=v0+a*t, de t e {-tau,tC+tau} Baj: gyorsulásugrása van Miért baj a gyorsulásugrás? • Miért baj a sebességugrás? • Mesterségesen hibát viszünk a rendszerbe, (ha nem vesszük figyelmbe, hogy a motortekercsek árama nem ugorhat) • 3 hurkos kaszkád szabályzás • Minden hurok tartalmaz szaturációs limitet • Ha az alapjel ezt sérti, hiba, pl. Integrator AntiWindup+változatos anomáliák • A hiba jelentsen bajt (ütközés) ! *Mit kell tenni a gyorsító és lassító szakaszokban? • a(t=-tau)=0 és a(t=tau)=0 • a(t) legyen polinom (integráljuk, deriváljuk,ismerjük, kedveljük) • Átlagsebesség legyen v/2 • 3. tipp: a(t) legyen parabola (ismerjük régről) maximuma t=0-ban (elsőfokú tag 0) • Integráltja legyen v. • P(t) negyedfokú polinom lesz (harmadfokú tag 0) *Gyorsítási idő választása, követelmények • Ne legyen telítésben semmi se, Ukapocs se! (+-24 V) • U=cEMF*ω+R*I+L*dI/dt • A 24 voltos keretből kell tartalékolni vmax miatt (EMF), amax miatt, maradék használható az áram változtatására • Ezeket a limiteket a tervezők döntik el. Ezekből számítható τmin. v(t)=[0...vmax], t=[-τ … +τ] *Szuperpozició, CT mozgás • A-B mozgás lassító szakasza egybeeshet B-C mozgás gyorsító szakaszával • τmin legyen olyan, hogy –vmax-ról gyorsíthat + vmax -ra. • a(t) marad parabola, p(t) negyedfokú • Mindkettőt számoljuk, eredményt szuperponáljuk m-DoF mozgás csuklóváltozókban • A,B,C-t m db csuklókoordinátával adjuk meg. • Az egyes csuklók egyszerre érjék el a pontokat (tA,tB,tC közös, tau globális) • Időzítés a csuklónkénti (sebesség)korlátok figyelembevételével számítjuk (tau-t is) • Rotációs csuklók esetén görbe pályán mozog, TTT esetben egyenes pályán *6-Dof mozgás DesCart rendszerben • 3 DoF transzlációt mintha TTT robot lenne • Orientációt minden (P2P) szakaszra külön • kezdeti és végorientáció között mindig található forgástengely (Rodrigues) • Úgy tervezzük a pályát, mintha egy ilyen tengely körül forgató csuklónk lenne. • A-B lassításának és B-C gyorsításának szuperpozíciója 3*3-as mátrixszorzással 6-Dof mozgás DesCart rendszerben • TCP egyenesen mozog a töréspontok környezetén kívül. • A pályatervezés eredménye egy időtől függő mátrix, amit a fenti algoritmus kiszámol. • Ebből csuklókoordinátákat kell számolni minden mintavételi pontra • Inverz Geometriai feladat rendszeresen hívandó • A fizikailag elérhető megoldások száma a pálya mentén változik • Nem jó, ha ‘inteligensen, OKOSan’ találgatja, melyik megoldás lenne a legjobb. • Az a jó, ha BUTA, mint a gép, és probléma esetén megáll (SZFÉRA: szűkszavú üzenettel) Robotvezérlő felépítése • • • • • • • IO, kalibráció Processzorok Szabályzási funkciók Számítógép funkciók Kezelőfelület Kézivezérlő Balesetvédelem I/O • Output: 6 motor PWM, féklazítás (lámpa), szelep nyit/csuk, szenzor táp • Input: 6*(inkremens+analóg potméter) (tengelyek pozíciószenzorai) • +Digitális I/O 0/24 V Csuklószenzor Kalibráció • Digitális Inkremens adó: 2 fázisjel, 1 null jel (200-250 rés/fordulat, 4*es kiértékelés, kb. 1:60 áttétel – előny: pontos, digitális, gyors – hátárny: relatív • Analóg ‘Helipot’: 60 jól elkülöníthető mérés – előny: abszolút – hátrány: zajos, AD kell, lassú • Kalibráció: Előnyök egyesítése – Ellenpélda: hátrányok egyesítése: robogó, oldalkocsi • CAL utasítás nélkül csak relatív csuklómozgás M J, és kézivezérlő JOINT mód – Vajon miért? Processzorok Szabályozás • • • • • • • Háromhurkos kaszkád, PWM Feszültséggel áramot (=nyomaték) Nyomatékkal sebességet Sebességgel pozíciót Digitális pozíciómérés, számított sebesség Túláramfigyelés, hiba figyelése 1 ms ciklusidő Számítógép • • • • 1+6 CPU, 16 bit, fix point Billentyűzet, monitor Interaktív command prompt Memória, Floppy műveletek (Programok, helyzetek (pontok) ) • Interpreteres parancs és programvégrehajtás • Alapjelgenerállás=Pályatervezés Pályatervezés • Görbe ívű mozgások (S nélküli utasítások pl. GO, MOVE): pályatervezés csuklókoordinátákban. – – – – • Egyszerű, gyors, 1 ms 6 csuklóprocesszon szinkronban Egyértelmű GÖRBE Egyenes mozgatások (S-es utasítások, pl. GOS, MOVES) pályatervezés Descartes koordinátákban – Inverz geometriai szubrutinok folyamatosan hívódnak – Inverz szögfüggvények, főprocesszoron – lassú, 50...100 ms, • ezen idő közben csuklóinterpoláció a 6 csuklóprocesszoron – Több megoldás létezik, megoldások száma is változik!!! BAJ!!! • Konfiguráció-váltás: – Nem I alakú mozgás, hanem T vagy alakú (pozícióugrásos) – Mi a jobb? Pozícióugrás vagy sebességugrás? • Mi a kevésbé rossz? • Milyen algoritmust kell akkor írni? Milyen ARPS programot kell írni? Pályatervezés II • Vezérlő SW: – Ne váltson konfigurációt, ha nincs megoldás megfelelő csuklótávolságban, akkor álljon meg – HIBAÜZENET: A közel levő megoldás mért nem folytatható? JOINT 5 OUT OF RANGE – Mikor hívódik INVGEO?: • Egyenes vonalú mozgáskor sokszor • Descartes helyzetbe való mozgáskor • ARPS: – Mindent lassan kipróbálni • sebességugrásos megállás • egész számú többszörös legyen a gyorsabb sebesség – Pálya ritkább mintavételezése – Akadály közelében kicsi mozgás: Descartes, ütközés-elkerülés – Nagy mozgás szabad térben: Csukló, konfigurációt válthat – Konfiguráció megjegyzése: Csuklóváltózós pont (pl. #A) Pályatervezés III • GO #A – Gyakorlatilag mindig lefut • Asztallal ütközhet • GO A – Meghívódik A-ra INVGEO, a konfiguráció kapcsolók alapján választ a csuklótartományokon belüli megoldások közül • GOS #A – Nem engedélyezett • GOS A – Folyamatosan hívódik INVGEO, de csak a robotkar aktuális konfigurációjának megfelelő megoldást fogadja el, különben megáll • Konfigurációváltás: Pl. Move Joint, vagy kézivezérlő. • Csak Alarm, csak indokolt esetben! Kezelőfelület Kézivezérlő Kézivezérlő • • • • • • • • Descartes mozgás csak kalibráltan Off:vezérlés kézben, Comp: computeren Open-Close (kompresszor) Mozgatóüzemmódok: Joint, World, Tool Speed, Descartes, Jacobian (6*6) Message FREE-t használni TILOS! Step: Nem használjuk Balesetvédelem • Vészgombokat NYOMNI kell • A robotnak sok olyan komponense van, ami meghibásodás esetén durva balesetet okozhat! • A robot hatósugara egy kb. 2m átmérőjű gömb. • A robot hatósugarán belülre csak a legszükségesebb ideig nyúlunk, fokozott figyelemmel (mérésvezető) • Néha lekapcsol magától… • CAL, – 1 programhiba: TOOL átállítása, TOO FAR ARPS • • • • • Command prompt Editor Pontok kezelése Mozgások kezelése Végrehajtás, változók Command prompt • CAL • Programutasítások ponttal: .GO READY, .M J 2,60 .MOVES 0,0,-100 • Dimenziók: mm, és fok • Miért? Mi a hiba? • LIST STATUS (L S) • Helyzetek tárolása, törlése, listázása, módosítása, másolása • Programok adminisztrációja • Floppy, memóriakezelés Editor • PDIR, PLIST, EDIT • Előbb papíron meg kell írni • Begépeljük (nincs javítás) • Kilépés: E+enter • Javítás: I(nsert) D(elete) R(eplace), RA E(xit) Helyzetek kezelése • Adatstruktúra: 6 Dof helyzet vagy 6-D csuklóvektor (konfiguráció benne van) • Létrehozás: betanítással: HERE A, H #B • Listázás, törlés LLIST, LDEL • Módosítás, másolás SHIFT , LOCATE • Kombinálás A(B) = pose(rel) • • • • HERE A(B) is megy, egyedül itt lehet kimeneti arg. Referencia és relatív helyzetek Mátrixszorzás SHIFT B=100,50,0 • FRAME F=O,X,XY, BASE x,y,z,z_rot • BASE, TOOL átdefiniálásának mire van hatása? – #A, A, mindegyik, egyik sem? Mozgások • Relatív: MOVE JOINT, MOVES • Helyben: ALIGN • Abszolút GO,GOS,GONEAR,GOSNEAR • SPEED • OPEN CLOSE Végrehajtás • • • • • • • • RUN prg (STOP) HALT (EXIT) 20 GO A (cimke) JUMP 20 IF C<=3 THEN JUMP 20 CALL prg RETURN C ********comment************* Változók: Integer és helyzet • • • • • Nincs deklaráció (mint az interpretereknél) SET J=I <> LOCATE B2=B0 SET I=I+1 <> SHIFT B2=0,0,10 Változók globálisak Pontokra nem használható a SET, helyette LOCATE vagy SHIFT • Helyzetekkel kapcsolatos utasítások szám argumentuma csak konstans lehet, változó vagy kifejezés nem. Példaprogram • • • • Példa elrendezése Digitális I/O Algoritmus program Példa elrendezése Digitális I/O kezelése • Mérés alatt nem használjuk – A példaprogram illusztráció céljából használja • Meghajtás: OUT (+)addr(0..31) 24 V OUT -addr(0..31) 0 V • Várakozás: WAIT IN (+)addr(0..31) 24 V WAIT IN -addr(0..31) 0 V Főprogram Szubrutin Megtanulandó ARPS utasítások • • • • Minden, ami szerepel a példaprogramban HERE, BASE, TOOL, MOVE(S), TMOVE(S), MOVE JOINT FRAME F=O,X,XY: relatív keret készítése 3 descartes-helyzet TCP-je szerint • HERE F(A_F), LOCATE A=F(A_F), GO F(A_F), SHIFT A_F=20,0,50