Ami a robotprogramozás c. mérés elvégzéséhez szükséges… 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Ó)
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
Legyen ez a test egy F betű (5 pont) 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é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!
Érdeklődők futtassák MATLAB-ban! %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 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!
Geometriai és algebrai objektumok kapcsolata ‘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.
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:
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? 1: A lin. Egyenletrendszerekben, differenciálegyenleteknél sokkal korábban bevezetett terminológia miatt. A lineáris egyenletrendszerek mátrixának Nincs túl sok köze a térbeli transzformációkat kódoló mátrixokhoz. Ezt mutatja, hogy a homogén elnevezés teljesen visszás. Homogén koordinátákat tartalmazó vektorok elemei inhomogének, a fizikai dimenziókat tekintve. Ami homogén velük kapcsolatban, hogy Homogén koordinátás vektorokat és mátrixokat használva az adatokon elvégzendő matematikai műveletek azonosak, homogének, függetlenül attól, Hogy iránykoordinátát, pozíciót, vagy az egységet reprezentálja az az argumentum, amin operálnak. Transzformációk inverzének a meghatározásakor van a legtöbb hasonlóság egyenletrendszerek mátrixaival. 2, 2b: Hibás válasz: helyzetek kombinálása. Helyes válasz: Attól függ, milyen geometriai viszonyt kódolnak a mátrixok. Ha relatív helyzeteket kódolnak, akkor A szorzás a relatív helyzetek egymás utáni alkalmazása. 3: megcseréljük a relatív helyzet leírásában a mi és a mihez képest szerepét. 4. Geometriai térben operáló gépet akarunk készíteni, számítógép a legjobb információfeldolgozó gép eszköz e célból. A számítógép számokkal tud dolgozni, geometriai fogalmak koordináta rendszerek használatával számosíthatóak. 4b: Az a fogalom, hogy Helyzet, önmagában relatív értelmű. Egy valami helyzetét nem lehet megadni, csak két dolog relatív helyzetét. Tárgyak relatív helyzetének számosítására a viszonyítási tárgyhoz csatolt koordinátarendszerre szükség van. Két azonos formájú tárgyat elképzelve triviálisan adódik, hogy a másik tárgyon is felvehetnénk egy koordináta rendszert, relatíve ugyanott. 5: Egy koordináta rendszer egy pontból áll, és N irányvektorból. Koordináta geometriában ezeket N dimenziós algebrai vektorokkal kódoljuk, egy abszolút vektor és N relatív vektor segítségével. Ha csak forgatásokra szorítkozunk, N darab N dimenziós algebrai vektor írja le majd a relatív orientációkat. Ráadásul az orientációt megváltoztató geometriai transzformációk lineárisak. T(c*v)=c*T(v). Adva vannak tehát NxN valós számmal paraméterezhető lineáris transzformációk, melyek N elemmel kódolható vektorokat képeznek ugyanilyen vektorokba. Ennek megfelelő algebrai képződmény az N elemű valós (oszlop) számtömbök szorzása NxN-es mátrixokkal (balról). Jól jelzi azt, hogy jó kódot választottunk, a tény, hogy a mátrix-mátrix szorzásnak megfelel valami: a Transzformációk halmozása.
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. Fontos! A Transzformációk betűzésének megválasztása (T_1_0 vagy T_0_1 ) nem önkényes, hanem Praktikus szempontok alapján adódik abból, hogy oszlop, vagy sorvektorokkal dolgozunk-e. Matematikusok, robotikusok, gépi látással foglalkozók oszlopvektorokkal, Grafikusok sorvektorokkal, de újabban mindkettővel. p_1=T_1_2*T_2_3*p_3.
A Puma 560 Euler kézcsuklója
Az Euler-kéz képletei
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
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 Ide trükkös kérdések megoldásait írom, és kommenteket későbbi mérésvezetőknek
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: ARPS: 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 GO A GOS #A GOS 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ő.
Kezelőfelület Csak Alarm, csak indokolt esetben! Mostanában alig akar bekapcsolni. Melegíteni kell. Nemsokára bedöglik végleg.
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 Az egyetlen felfedezett programhiba: A TOOL koordinátarendszer átállítása után Ready-ből lefelé mozgatva elszáll, úgy viselkedik, Mintha a INVGEO a too far ellenőrzéskor még nem korrigálna a T_6,tool-al.
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 Helyesen: Mértékegységek. Összekeverni olyan a dimenzióval, mint kWh-ban mérni a teljesítményt.
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