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
 

Rotz,  
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
Rotx,   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  Rotz,i   Transz,d i   Transx,a i   Rotx,α i  
Ci
S
  i
 0

 0
Ci
S
  i
 0

 0
 Si
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 Ci 
 Ci S αi a i Si 
.
di 
C αi

1 
0
0 0 1


0 0  0
Ci

1 0  0
0
 
0 1  0
0
Si S αi
 Si C αi
Ci 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