Robotikai Alapok I.
description
Transcript of Robotikai Alapok I.
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 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_5T_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ő!
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.
iiT ,1
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:
101010121212211
21 TTT
ppAAApApATT
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
100
0
0
100
0cossin
0sincos
bankifejezverotrotrot
CS
SC
kj,i,
kjiz,Rot
CS
SC
ji,
jiRot D cossin
sincos
benkifejezverotrot2
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
CS
SC
kjiy,Rot
0
010
0
rotrotrot
CS
SCkjix,Rot
0
0
001
rotrotrot
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óttudja változtatni a motorok által.
A Puma 560 Euler
kézcsuklója
Az Euler-kéz képletei
CSSCS
SSCCSCSSCCCS
SCCSSCCSSCCC
CS
SC
CS
SC
CS
SC
zRotyRotzRotEulerA KK
100
0
0
0
010
0
100
0
0
),(),(),(),,(,
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
.
1000
0
1000
00
00
0001
1000
100
0010
001
1000
0100
00
00
1
iαα
iαα
iαα
αα
αα
i
i
iiiii,i
dCS
SaSCCCS
CaSSCSC
CS
SC
d
a
CS
SC
x,αRotx,aTransz,dTransz,RotT
ii
iiiiii
iiiiii
ii
iiii
ii
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ő.
Kezelőfelület• Csak Alarm, csak indokolt esetben!
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 VOUT -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