Download as pdf or txt
Download as pdf or txt
You are on page 1of 71

1

ROBOTOK PROGRAMOZSA
1. ROBOT KINEMATIKAI ALAPOK
A robot felfoghat egy irnytott mechanizmusnak, amely elrhat plyn mozoghat, s a plya mentn elrhat feladatokat lthat el. A robot szegmensekbl ll,
melyeket transzlcis vagy rotcis csuklk kapcsolnak ssze, a robot mozgsa pedig a fizika trvnyeinek van alvetve. Mkdst az irnyts klnbz szintjen
klnfle modellekkel (kinematikai, dinamikus) rhatjuk le. A robotok programozsakor ezek kzl a legegyszerbb kinematikai (geometriai) modell jtszik szerepet.
Ebben alapvet fontossg a koordinta-rendszerek kztti kapcsolat lersa.
Alkalmazi szempontbl ugyanis merev robotok esetn, amelyeknl a rugalmas
alakvltozs elhanyagolhatan kicsi a robot elvrt pontossghoz kpest, a robot ltal elvgzend mozgs definilsakor alapul vlaszthatunk egy bzis koordintarendszert (szoks vilg koordinta-rendszernek is nevezni), amelyhez elrjuk, hol
legyen a robot munkavgz eszkze, az n. vgberendezs (end effector) a mozgs
soronkvetkez fzisban a bzis koordinta-rendszerhez kpest. Mivel azonban
nem csak a vgberendezs (megfog, szerszm, technolgiai eszkz: festkszr
pisztoly, pont- vagy vhegeszt stb.) pozcija, hanem annak orientcija is fontos
(gondoljunk arra, hogy ha a megfog egy vzzel teli pohart tart, akkor nem mindegy,
hogy a pohr szja felfel vagy lefel nz), ezrt kzenfekv a vgberendezshez is
egy koordinta-rendszert rgzteni, s a kt koordinta-rendszer kztti relatv pozcit s orientcit elrni. Ez azt jelenti, hogy van kt derkszg koordintarendszer, a K B bzis koordinta-rendszer s a K E end effector koordinta-rendszer,
s a mozgs definilsa sorn azt mondjuk meg, hol legyen K E origja s hogyan
lljanak a K E egysgvektorai a vilg koordinta-rendszer origjhoz s egysgvektoraihoz kpest. Az elbbit a vgberendezs pozcijanak (szerszm kzppont,
TCP, Tool Center Point), az utbbit az orientcijnak nevezzk.
Vilgos, hogy a robot szegmenseinek egymshoz kpesti relatv elhelyezkedse
is hasonl elven alapulva rhat le. Rgzthetnk ugyanis a kinematikai lncban egy
K i 1 koordinta-rendszert a megelz szegmenshez, a kinematikai lncban
soronkvetkez szegmenshez pedig egy K i koordinta-rendszert, s mozgsukat lerhatjuk a kt koordinta-rendszer relatv mozgsa segtsgvel. Fizikailag a szegmenseket rendszerint motorok mozgatjk fogaskerk vagy fogaslc tttelen keresztl, a motor elhelyezhet a megelz szegmensen, az tttel tengelye pedig tekinthet a kvetkez szegmenst mozgat (R rotcis, vagy T transzlcis) csukl tengelynek. A K i 1 koordinta-rendszer z i 1 tengelye vlaszthat a soron kvetkez

Lantos: ROBOTOK PROGRAMOZSA

szegmenst mozgat motor tttelnek tengelyeknt, a K i koordinta-rendszer x i


tengelye pedig merlegesnek a megelz (sajt) s a kvetkez csukltengelyre. A
K i koordinta-rendszer z i tengelye vlaszthat a kvetkez csukltengelynek,
amelyen x i kimetszi a K i origjt. A rszleteket a robot Denavit-Hartenberg paramtereinek trgyalsakor fogjuk megismerni. Elbb azonban sszefoglaljuk a fizikai
rendszerek (robotok, replgpek, helikopterek stb.) geometriai/kinematikai modelljeiben szerepet jtsz klnfle orientci jellemzseket, valamint a pozci s orientci lerst homogn transzformcival.

1.1 Kinematikai alapfogalmak


Tekintsnk kt (jobb sodrs) derkszg koordinta-rendszert (rviden keretet, angolul frame), jellje ezeket K s K , s legyenek a bzisvektoraik rendre i, j , k s
i , j , k (lsd 1.1. bra).

P
z

y
x
x

1.1. bra. Keret (frame) koncepci

Hatrozzuk meg a koordinta-rendszerek vektorai kztti kapcsolatot:


r = x i + y j + z k ,
i = a11i + a 21 j + a 31 k,
j = a12 i + a 22 j + a 32 k,
k = a13 i + a 23 j + a 33 k,
p = p x i + p y j + p z k,
r = x i + y j + z k = r + p = (a11 x + a12 y + a13 z + p x )i +
+ ( a 21 x + a 22 y + a 23 z + p y ) j + (a 31 x + a 32 y + a 33 z + p z ) k .

Ezek az sszefggsek mtrix alakban is felrhatk:

(1.1)

1. ROBOT KINEMATIKAI ALAPOK

a13 x p x

a 22 a 23 y + p y ,
a 32 a 33 z p z
i j k
14442444
3

x a11

y = a 21
a
z 31

a12

(1.2)

felrva az

i, j , k bzisban
r = Ar + p

(1.3)

Hozzvve ehhez az 1 = 1 azonossgot, a K s K keretek kztti A orientci


vltozst s a keretek origja kztti p pozci vektort sszevonhatjuk egy T homogn transzformciban:
x a11

y a 21
= a
z 31
1 0

A
= T
1 0

a12

a13

a 22
a 32
0

a 23
a 33
0

p l m n
=:
1 1 0 0 0

p x x

p y y
,
p z z

1 1
p

=: T .
1 1
1

r = Tr .

(1.4)

(1.5)
(1.6)

Itt r R 4 s r R 4 jellik R 3 s R 3 homogn koordintit.


A T homogn transzformci kt fontos jelentssel rendelkezik:
i) T megadja K orientcijt s pozcijt K -hoz kpest.
ii) T lehetv teszi a P pont koordintinak meghatrozst K -ban, ha ismerjk a
koordintit K -ben.
Clszer a T homogn transzformcit indexekkel elltni annak kihangslyozsra, hogy a K -hz tartoz l , m, n, p komponenseit a K bzisban kell megadni:
TK , K . Jl lthat, hogy az indexek sorrendje az rtelmezsben lnyeges.

Homogn transzformcik egymsutnja a homogn transzformcik szorzatval


rhat le:
A
T1T2 = T1
0

p1 A2

1 0 T

p 2 A1 A2
=
1 0T

A1 p 2 + p1
.
1

(1.7)

Lantos: ROBOTOK PROGRAMOZSA

1.1.1 Az orientci jellemzse forgatsokkal


Tekintsk elszr csak az orientci megvltozst. Tegyk fel, hogy eredetileg K
s K egybeestek, s K valamelyik tengelye krl K el lett forgatva szggel (a
pozitv forgsirny a jobb csavar-szably szerint rtelmezett), s tekintsk az elforgats utni llapotot. Bevezetjk a kvetkez konvencit a jellsekre:
C := cos , S := sin , C := cos( + ) , C12 := cos(q1 + q 2 ) stb.

(1.8)

Akkor (1.2) szerint az elemi forgatsok (rotation) kvetkezk lesznek:


cos

= sin
Rot (z, ) =
(1
i rot j rot k rot )
42
4 43
4
kifejezve i, j,k ban 0

sin
cos
0

0 C
0 = S
1 0

C
0

0
0
1

C 0 S

j rot
k rot
)= 0
Rot ( y, ) = (i rot
1 0
S 0 C

1 0
0

j rot
k rot
) = 0 C S
Rot (x, ) = (i rot
0 S
C

(1.9)

(1.10)

(1.11)

Legyen t ltalnos irnyvektor, t = 1 . Tegyk fel, hogy eredetileg K s K


egybeestek, s forgassuk el K -t a t tengely krl szggel. A forgats egy
Rot (t , ) lineris transzformci, amelynek mtrixa Rot (t , ) :
x rot = Rot (t , ) x = x cos + t < t,x > (1 cos ) + t x sin
Rot (t, ) = C I + (1 C )[t o t ] + S [t] .

(1.12)
(1.13)

Az sszefggs neve Rodriguez-kplet. A [t o t ] diadikus szorzat s a [t] vektorszorzat mtrixnak felhasznlsval a Rodriguez-kplet mtrix alakban:
lx

Rot(t,) = l y
l
z

mx
my
mz

nx

n y = C I + (1 C )[t o t ] + S [t] =
n z

C + (1 C )t x t x

= (1 C )t x t y + S t z
(1 C )t x t z S t y

(1 C )t x t y S t z
C + (1 C )t y t y
(1 C )t y t z + S t x

(1 C )t x t z + S t y

(1 C )t y t z S t x .
C + (1 C )t z t z

(1.14)

1. ROBOT KINEMATIKAI ALAPOK

A forgats inverze a visszaforgats, teht a forgats t krl szggel. Tudjuk,


hogy az (1.14) egyenletben szerepl [t o t ] szimmetrikus, [t] antiszimmetrikus,
cos( ) = cos( ) s sin( ) = sin( ) , ezrt
[ Rot (t , )] 1 = [ Rot (t , )]T .

(1.15)

Ortonormlt derkszg koordinta-rendszerek esetn teht az A orientcis


mtrix inverze az A transzponltja, s emiatt a T homogn transzformci inverze
is egyszeren szmthat:
A 1 = AT
A
T = T
0

p
1

AT
= T
0

(1.16)
AT p
.
1

(1.17)

Az A orientcis rsz a T homogn transzformciban 3 3 = 9 elemet tartalmaz. Ezek azonban nem fggetlenek, mert i , j , k egy ortonormlt bzis, teht
i = j = k = 1 s < i , j >=< i , k >=< j , k >= 0 , ami 6 felttelt definil a 9

elemre, s ezrt az orientci 9 6 = 3 szabad paramterrel jellemezhet. A


Rodriguez-kplet esetn ez t s , ahol t egysgvektor, s ezrt csak 2 paramtere
szabad.
A Rodriguez-kpleten kvl az orientcinak ms jellemzsei is gyakoriak. Ha
adott K s K , s az origk kzsek, akkor vehetjk K -nak egy msik pldnyt,
s ebbl kiindulva elemi forgatsok sorozatval eljuthatunk K -be. A msodpldny
elforgatott tengelyeit jellhetjk vesszvel s ktvesszvel, a forgatsok szgeit pedig rendre , , -vel. A robotikban megszokott terminolgit hasznlva beszlhetnk Euler-szgekrl, ha z , y , z a forgstengelyek, s roll, pitch, yaw (RPY) szgekrl, ha a forgstengelyek z , y , x . E szerint a konvenci szerint
AK , K = Euler ( , , ) = Rot ( z , ) Rot ( y , ) Rot ( z , ) =

C
= S
0

C
0

0 C
0 0
1 S

C C C S S

= S C C + C S

S C

C
0

S C
0 S
0 C 0

C C S S C
S C S + C C

S S

0
0 =
1

C S

S S
C

(1.18)

Lantos: ROBOTOK PROGRAMOZSA


AK , K = RPY ( , , ) = Rot ( z , ) Rot ( y , ) Rot ( x , ) =
C
= S
0

S
C
0

C C

= S C
S

0 C
0 0
1 S

0 S 1 0

1 0 0 C
0 C 0 S

C S S S C
S S S + C C
C S

S =
C

(1.19)

C S C + S S

S S C C S

C C

1.1.2 Az orientci jellemzse kvaternikkal


Az orientci jellemezhet kvaternikkal is. A kvaternik (Q) a hromdimenzis
vektortr ( R 3 ) kiterjesztst alkotjk, amelyben szorzs () , sszeads, szmmal
szorzs, konjuglt s norma van definilva. Legyen q Q, w R 3 , s, R 1 , akkor
definci szerint
q = ( w, s )
q = ( w, s )
q1 + q 2 = ( w1 , s1 ) + ( w2 , s 2 ) = ( w1 + w2 , s1 + s 2 )
q1 q 2 = ( w1 w2 + s1 w2 + s 2 w1 , s1 s 2 < w1 , w2 >)
q~ = ( w, s )
q

= q q~ = (0, w

(1.20)

+ s 2 ) = q~ q.

Az alkalmazsok szempontjbl taln a legfontosabb tulajdonsg, hogy


q1 q 2 = q1 q 2 .

(1.21)

Mivel s R 1 s (0, s ) Q , tovbb w R 3 s ( w,0) Q azonosthatk, ezrt R 1


s R 3 be van gyazva Q -ba. A kvaterni norma multiplikatv tulajdonsga alapjn
min q r q~ = min ( q r q ) = min q r
q =1

q =1

q =1

(1.22)

A kvaternik s az A orientci szoros kapcsolatban llnak. Minden A rotci a


Rodriguez-kplet szerint egy t egysgvektor krli szggel val forgats:
Ar = cos r + (1 cos ) < t , r > t + sin t r .

Msrszt viszont bevezethetjk a

(1.23)

1. ROBOT KINEMATIKAI ALAPOK


q := (sin

t , cos )
2

(1.24)

kvaternit ( q = t = 1) , ahonnan a Rodriguez-kplet felhasznlsval kapjuk, hogy


q (r ,0) q~ = ( Ar ,0) ,

(1.25)

ezrt q r q~ s Ar azonosthatk. Vilgos, hogy ha az orientcit a q = ( w, s )


kvaternival jellemezzk, akkor ennek ismeretben A meghatrozhat, mert

= 2 arccos ( s ), t = w / sin( ) A = C I + (1 C )[t o t ] + S [t] ,


2

(1.26)

ahol
t x t x

[t o t ] = t y t x
t z t x

[t] = t z
t y

t xt y
t yt y
tzt y
tz
0
tx

t xt z

t ytz
t z t z
ty

tx .
0

(1.27)

(1.28)

1.1.3 Az inverz orientcis feladat megoldsa


Ha szksg van az A orientci
l x
A = l y
l z

mx
my
mz

nx
n y
n z

(1.29)

numerikus ismeretben az orientci forgatsokkal val jellemzsnek meghatrozsra (inverz orientcis feladat), akkor a hrom szoksos jellemzs esetn a kvetkezkpp jrhatunk el.
Az inverz Rodriguez-feladat megoldsa:
C =
S =

l x + m y + nz 1
2
+

(m z n y )2 + (n x l z )2 + (l y m x )2

2
= atan 2 ( S , C ) ( , ]

(1.30a)

Lantos: ROBOTOK PROGRAMOZSA


tx =
ty =
tz =

l x C

sign (m z n y )

1 C

m y C
1 C
n z C

sign (n x l z )

(1.30b)

sign (l y m x )

1 C

A feladatnak vgtelen sok megoldsa van, ha = 0 (C = 1) . Valban, nulla forgsszg esetn brmilyen t tengely megfelel.
Az inverz Euler-feladat megoldsa:
i)

n x2 + n 2y 0 S 0
ny
= arctan
nx

0

+ ( , ],

S = C n x + S n y
C n x + S n y
,
= arctan
nz
C = n z

S = S l x + C l y

S l x + C l y
.
= arctan
C = S m x + C m y
S m x + C m y

(1.31a)

(1.31b)

(1.31c)

ii) n x = n y = 0 S = 0 , szingulris konfigurci


a) n z = C = 1 = 0 ( z = z )
C = l x
ly
+ = arctan
S = l y
lx

csak + hatrozhat meg

(1.32)

b) n z = C = 1 = ( z = z )
S = m x
mx
= arctan
C = m y
my

. csak hatrozhat meg

(1.33)

1. ROBOT KINEMATIKAI ALAPOK

Inverz RPY feladat megoldsa:


i)

l x2 + l y2 0 C 0
0
ly
+ ( , ],

l x

S = l z

lz
,
= arctan
C = S l y + C l x
S l y + C l x

= arctan

S = S n x C n y

S n x C n y
.
= arctan
C = S m x + C m y
S m x + C m y

(1.34a)

(1.34b)

(1.34c)

ii) l x = l y = 0 C = 0 , szingulris konfigurci


a) l z = S = 1 = / 2 ( x = x )
S = n y
ny
+ = arctan
C = n x
nx

csak + hatrozhat meg.

(1.35)

b) l z = S = 1 = / 2 ( x = x )
S = m x
mx
= arctan
C = m y
my

csak hatrozhat meg.

(1.36)

1.2 Robotok kinematikai modellje


Szmos, a gyakorlatban elterjedt ipari robot n. nyltlnc, elgazs nlkli merev
robot, amelynek geometriai modelljt legtbbszr a DenavitHartenberg-alakkal rjuk le. A "merev robot" elnevezs idealizls, s arra utal, hogy a robot garantlt
pontossgi tartomnyban a rugalmas alakvltozsok hatsa a szegmensekben vagy
a csuklkban elhanyagolhat.

1.2.1 Csuklkkal sszekapcsolt nyltlnc merev testek geometriai


modellje
DenavitHartenberg-alak (lsd 1.2. bra)
A robot szegmensekbl (link) ll, amelyeket 1-szabadsgfok csuklk (joint) ktnek
ssze. A DenavitHartenberg-alak esetn a robot tengelyei z -tengely irnyak. A

10

Lantos: ROBOTOK PROGRAMOZSA

csuklvltoz (joint variable) d (transzlcis csukl esetn) vagy (rotcis csukl esetn). A DenavitHartenberg-paramterek d , a (tvolsg) s , (szg).
ti 2
qi 1

ti 1
qi

ti
qi +1
i

i 1

i +1
zi

i2

ai
di

xi

zi 1
xi 1
i

1.2. bra. A DenavitHartenberg-alak

Tegyk fel, hogy a K i 1 keretet mr felvettk. Az 1.2. brba berajzoltuk a z i 1


s xi 1 tengelyeket, ahol z i 1 irnya azonos az i 1 s az i szegmenst sszekt
t i 1 csukltengely (joint axis) irnyval. Legyen t i az i -edik s az i + 1 -edik

szegmenst sszekt csukltengely irnya. Legyen a K i keret x i tengelye merleges a t i 1 s t i tengelyekre. Legyen K i origja az a pont, ahol x i s t i metszi egymst. Legyen e prhuzamos x i -vel s menjen t K i 1 origjn, s legyen f prhuzamos z i 1 -gyel s menjen t K i origjn. Akkor kitr t i 1 s t i tengelyek esetn

i a z i 1 tengely krli forgats szge, amely az xi 1 tengelyt e -be forgatja


( e || x i );
ii) d i az eltols a z i 1 tengely mentn, amely az e egyenest xi -be mozgatja;
iii) ai az eltols az xi tengely mentn, amely z i 1 s xi metszspontjt K i origjba mozgatja;
iv) i az xi tengely krli forgats, amely az f egyenest z i -be forgatja.

i)

A tvolsgok eljele pozitv, ha az eltols + z i 1 vagy + xi irnyban trtnik. Hasonlan a forgsszg pozitv, ha a forgats z i 1 vagy xi krl a jobb csavar-szably
szerint pozitv. A K i 1 s K i kztti homogn transzformci

1. ROBOT KINEMATIKAI ALAPOK

11

Ti 1,i = Rot (z,i ) Trans (z,d i ) Trans (x,ai ) Rot (x, i ) =


Ci

S
= i
0

0
Ci
S
= i
0

Si

0 0 1 0

0 0 0 1
Ci

0
1 0 0 0

0
0 1 0 0
Si C i
Si S i
Ci C i
Ci S i
S i
0

C i
0

0 a i 1 0

0 0 0 C i

1 d i 0 S i

0 1 0 0
a i Ci
a i Si
.
di

0
=
0

S i
C i
0

(1.37)

Ha t i 1 s t i prhuzamosak, akkor vgtelen sok kzs normlisuk van. Ekkor rotcis csukl esetn d i = 0 vlaszthat, transzlcis csukl esetn pedig K i origja
azonosra vlaszthat a K i +1 keret origjval.
Ha t i 1 s t i metszik egymst, akkor vlaszthat ai = 0 , s xi prhuzamos
k i 1 k i irnyval.

A 0 szegmens esetn z 0 egybeesik a t 0 tengellyel s x0 merleges z 0 -ra.


Az utols, m szegmens esetn z m irnya tetszleges s x m merleges a z m 1 s
z m irnyokra.

Nhny specilis esetben (Descartes-fle TTT pozcionls els x tengelye,


vagy RPY orientci utols x tengelye esetn) elnysebb lehet, ha nem a z , hanem az x tengelyt vlasztjuk azanosnak a csukltengellyel. A Ti 1,i homogn
transzformci tovbbra is rvnyben marad, de a csuklvltoz ai vagy i lesz.
A 1.1 s 1.2 tblzatok a bemutatjk a SCARA s PUMA robotok Denavit
Hartenberg-paramtereit.
1.1 tblzat. A SCARA RRTR robot DenavitHartenberg-paramterei

qi

di

ai

1
2
3
4

d1

a1

d2

a2

d3

d3

0
0

12

Lantos: ROBOTOK PROGRAMOZSA


1.2 tblzat. A PUMA RRRRRR robot DenavitHartenberg-paramterei

qi

di

ai

1
2
3
4
5
6

90

0
0

a2

d3

90

d4

d6

a3
0
0
0

90
90
0

1.2.2 Direkt geometriai feladat


Egy nyltlnc, elgazs nlkli merev robot lljon a 0 , 1 , ..., m szegmensekbl
(links) s a vgberendezsbl (end effector), amely lehet megfog, szerszm stb.
(gripper, tool). A szomszdos szegmenseket transzlcis vagy rotcis csuklk
(prismatic or revolute joints) ktik ssze. A transzlcis csuklk a szegmensnek a
csukltengely mentn trtn elmozdulst, a rotcis csuklk a tengely krli elfordulst teszik lehetv. Legyen d vagy a a transzlcis csukl (T) mentn az
elmozduls. Hasonlan jellje vagy a rotcis csukl (R) krli forgsszget.
Kzs nevk a q csuklvltoz (joint variable).
qi
i

i 1
K i 1

qm
Ki

q1

m
ti 1
t m 1

Km

KE

K0

0
KB

t0

TCP
(tool center point)

1.3. bra. Nyltlnc, elgazs nlkli robot elvi smja

A "nyltlnc, elgazs nlkli robot" elnevezs arra utal, hogy a szegmensek


megszmozhatk gy, hogy minden szegmenst pontosan egy szegmens kvet a sz-

1. ROBOT KINEMATIKAI ALAPOK

13

mozs sorrendjben (az m szegmenst a vgberendezs kveti), s az i szegmens


pozcija s orientcija csak a megelz szegmens pozcijtl s orientcijtl,
valamint az i 1 s i szegmens kztti q i csuklvltoztl fgg. A megelz
szegmensek definiljk az i 1 szegmenshez rgztett K i 1 keret pozcijt s orientcijt, mg qi definilja az i szegmenshez rgztett K i keret relatv pozcijt
s orientcijt K i 1 -hez kpest, amely a TK i 1,K i : = Ti 1,i homogn transzformcival jellemezhet. Az i 1 s i szegmensek kztti csukltengelyt ti 1 jelli (lsd
1.3. bra).
A K B keret a robot alapzathoz van rgztve. A K 0 keret a robot referencia kerete, amely azonos is lehetne K B -vel, de rendszerint mgis eltr attl annak rdekben, hogy a csuklvtozktl val fggs egyszerbb legyen. Az irnytssal befolysolhat csuklvltozk a K 0 s K m keretek kztt vannak. A K B s K 0 , valamint a K m s K E kztti kapcsolat nem fgg a csuklvltozktl. A csuklk mind
egyszabadsgfokak (one degree of freedom, 1DOF) s a teljes robot mDOF. A
robot egyik lnyeges jellemzje a csuklkplet (joint formula). Pldul RRTRRR
egy 6DOF robotot jell, ahol minden csukl rotcis, kivve a harmadikat, amelyik
transzlcis. Annak rdekben, hogy a vgberendezsnek mind a pozcijt, mind
pedig az orientcijt is megszorts nlkl irnytani tudjuk, legalbb 6 csukl
szksges (m 6) . A robot mg ebben az esetben is csak egy korltos munkatrben
(limited workspace) pozcionlhat a szegmensek vges mrete s a csuklvltozk
limitlt rtktartomnya miatt.
Humn analgik alapjn beszlhetnk trzsrl ( 0 trunk), karrl ( 1 , 2 , 3
arm), kzcsuklrl ( 4 , 5 , 6 wrist) s kzrl (hand, gripper). A vgberendezs
rendszerint cserlhet s az m szegmenshez rgzthet, kitntetett pontja pedig a
szerszmkzppont (tool center point, TCP).
Az i 1 szegmenshez rgztett K i 1 keret brhol lehetne. A gyakorlatban gyakran hasznljuk a DenavitHartenberg konvencit, ahol i , d i , a i , i hatrozza meg a
K i 1 s K i kztti Ti 1,i homogn transzformcit. Ha kivlasztjuk a j szegmens
egy P j pontjt, amelynek x j , y j , z j a koordinti a K j keretben, akkor ugyanennek
a pontnak a koordinti a K j 1 keretben x j 1 , y j 1 , z j 1 , amelyekre teljesl

14

Lantos: ROBOTOK PROGRAMOZSA


x j 1
xj


y j 1
yj
z = T j 1, j z .
j 1
j
1
1

(1.38)

Lpsrl lpsre alkalmazvn ezt az sszefggst kapjuk, hogy ugyanennek a pontnak az xi , yi , z i koordinti a K i keretben
xi
xj
xj



yi
yj
yj
z = Ti,i +1 Ti +1,i + 2 ... T j 1, j z = Ti, j z ,
i
j
j
1
1
1


(1.39)

Ti, j = Ti, i +1 Ti +1, i + 2 ... T j 1, j .

(1.40)

ahol
Itt Ti , j rja le a koordinta-transzformcit, tovbb K j relatv pozcijt s orientcijt K i -hez kpest. Specilisan
A
T0 ,m = T0 ,1 T1,2 ... Tm 1,m = 0T,m
0
TB,E = TB,0 T0 ,m Tm,E .

p 0 ,m
,
1

(1.41)
(1.42)

Vegyk szre, hogy


A0 ,m = A0 ,1 A1,2 ... Am 1,m ,

(1.43)

A0,1m

(1.44)

AmT 1,m

...

T j,i := Ti,j1

= T j11,j

... Ti +11,i + 2

T0 ,m = TB,01

A1T,2

A0T,1 ,

TB,E Tm,1E

Ti,i +11 ,

(1.45)

(1.46)

Az utols egyenlet azt sugallja, hogy a robot egy n. robot grffal jellemezhet, lsd
1.4. bra.
KB

TB,0

K0

T0, m

Km

TB, E
1.4. bra. Robot grf

Tm, E

KE

1. ROBOT KINEMATIKAI ALAPOK

15

A robot grf egy cimkzett irnytott grf. A grf cscsai a keretek, a kereteket
lek ktik ssze, az lek cimki a homogn transzformcik, az lek irnytsa balrl jobbra megfelel az indexelsnek.
K 0 -bl K m -be kt klnbz ton juthatunk el:

i)

elrefel haladva K 0 , K m sorrendben,

ii) htrafel haladva K 0 , K B , K E , K m sorrendben.


Ha a nyllal szembe haladst invertlsknt interpretljuk, akkor visszakapjuk az
(1.46) egyenletet, feltve, hogy rendre vesszk a homogn transzformcit vagy annak inverzt az lek mentn s sszeszorozzuk azokat. A robot grf ltalnosthat
sszetettebb esetekre is (robot, szlltszalag, trgy, kamera).
Szoks direkt geometriai feladatrl beszlni, ha arra keresnk vlaszt, hogyan
fgg TB , E vagy T0,m a q = (q1 , K , q m ) T csuklvltoz vektortl. Rendszerint az
sszefggst szimbolikus (kpletszer) alakban keressk a robot Denavit
Hartenberg-paramterei s (1.41) felhasznlsval:
direkt geometriai feladat: q a T0 ,m .

(1.47)

A szimbolikus alak azrt szksges, hogy szmtsi mdszert (lehetleg analitikus


megoldst) tudjunk adni a ksbb vizsgland inverz geometriai feladat megoldsra.

1.2.3 Inverz geometriai feladat


Az inverz geometriai feladat clja a csuklvltozk meghatrozsa, ha adott a vgberendezs pozcija s orientcija. A csuklvltozk felhasznlhatk referencia
jelknt (idfgg alapjelknt) a tengelyek szervohajtsai szmra. A problmra
mint
q = solve T0 ,m

(1.48)

fogunk hivatkozni. A feladat transzcendens egyenletrendszer megoldst ignyli,


amelyet ltalban nem tudunk kpletszer (szimbolikus, analitikus) alakban megadni. A gyakorlat szmra fontos egyik esetben azonban a feladat analitikusan is megoldhat.
1.1 Ttel (inverz geometriai feladat megoldsa dekompozcival): Ha az utols
hrom tengely rotcis s a tengelyek egy kzs pontban metszik egymst, akkor az
inverz geometriai feladat felbonthat egy pozcionl s egy orientl rszproblmra, amelyek szeparltan megoldhatk.

16

Lantos: ROBOTOK PROGRAMOZSA

Bizonyts: Legyen pldul m = 6 s a robot DenavitHartenberg-alakjban


a 4 = a 5 = a 6 = 0 s 6 = 0 , akkor
l
T0 ,6 = 0 ,6
0

m 0 ,6
0

A
= T0 ,3 3 ,4

T
0
l
= 0 ,3
0
A
= 0T,6
0

m 0 ,3
0

n0 ,6
0

p 0 ,6
=
1
*
0 *
1 0

*
*
0
0

1
p 0 ,3 0
1 0

0
1
0
0

0
0 A4 ,5
T
d 4 0

1
n 0 ,3
0

0 0
0 0
=
1 d6

0 1
0 0
0 0 A3,6
1 d 4 0 T

0 1

1
0 0
1 0

0
1
0
0

0 0
0 0
=
1 d6

0 1

(1.49)

p 0 ,3 + d 4 n 0 ,3 + d 6 n 0 ,6

s ezrt
p 0 ,3 (q1 ,q 2 ,q 3 ) + d 4 n 0 ,3 ( q1 ,q 2 ,q 3 ) = p 0 ,6 d 6 n0 ,6 ,
A3,6 (q1 ,q 2 ,q 3 ) =

A0T,3 (q1 ,q 2 ,q 3 ) l 0 ,6

m 0 ,6 n 0 ,6 ] .

(1.50)
(1.51)

Az eredeti inverz problmt kt 3-DOF rszfeladatra bontottuk. Az els feladat


(1.50), amely egy tiszta pozcionl rszfeladat, amelynek megoldsa legyen
q1 ,q 2 ,q3 . Miutn megoldottuk az els feladatot, kiszmthatjuk (1.51) jobb oldalt
s kereshetjk a msodik rszfeladat megoldst a q4 , q5 , q6 vltozkban, amely
egy tiszta orientl rszfeladat. A msodik rszfeladat elterjedt ipari robotoknl
gyakran vezet az inverz Euler vagy az inverz RPY feladatra, amelyek megoldst
korbban mr trgyaltuk.

1.2.4 A SCARA robot geometriai modellje


A direkt s inverz geometriai feladat megoldst a 4-DOF RRTR SCARA robot esetn mutatjuk be. A direkt feladat clja, hogy feldertsk a megfog pozcijnak s
orientcijnak fggst a csuklvltozktl. A rotcis csuklk miatt az sszefggs nemlineris lesz. Msrszt az irnytsok szmra az szksges, hogy ezt a nemlineris sszefggst megfordtsuk, mivel az irnytsi cl a csuklk olyan sszehangolt mozgatsa, amelynek eredmnyekppen a megfog felveszi a kvnt pozcit s orientcit. A nemlineris sszefggsek miatt az inverz feladat egy nemline-

1. ROBOT KINEMATIKAI ALAPOK

17

ris egyenletrendszer megoldsa, ami teht messze nem egy lineris algebrai (mtrix
inverzis) feladat. A problmt nehezti, hogy az inverz feladat megoldsa a vals
idben realizland plyatervezs szmra bemeneti adat, az inverz feladatot ezrt
lehetleg itercik nlkl s robusztus numerikus szmtsok bevonsval kell megoldani.
A SCARA robot DenavitHartenberg-paramtereit (lsd 1.1. tblzat) az 1.5.
bra koordinta-rendszerei alapjn rtelmeztk.

z3 , z 4
4
x3 , x 4
x2

d3

d2

y3 , y4

z2
y2
z1
x1

d1
y1
a1

a2

z0

x0

1
y0

1.5. bra. A SCARA robotnl hasznlt keretek

Az egyes szegmensek kztti homogn transzformcik a kvetkezk:

T0,1

C1
S
= 1
0

T2 , 3

S1

C1
0
0
1
0
=
0

0
1
0
0

0 a1 C1
C 2 S 2

S
C2
0 a1 S1
, T1,2 = 2
0
0
1 d1

0
0
1
0
0 0
C 4 S 4
S
C4
0 0
, T3,4 = 4
0
0
1 d3

0 1
0
0

0 a2 C2
0 a 2 S 2
,
1
d2

0
1
0 0
0 0
.
1 0

0 1

(1.52)

(1.53)

A homogn transzformcikat fokozatosan sszeszorozzuk az ered homogn


transzformci meghatrozshoz, gyelve arra, hogy a mtrixszorzs nem kommutatv:

18

Lantos: ROBOTOK PROGRAMOZSA

T2 ,4

C 4
S
= 4
0

S4

0
C 24 S 24 0 a 2 C 2
S

C4 0 0
C 24 0 a 2 S 2
,
, T1,4 = 24
0
0
1 d3
0
1 d2 + d3

0
0 1
0
0
1
0
C124 S124 0 a1 C1 + a 2 C12
S
C124 0 a1 S1 + a 2 S12
T0 ,4 = 124
.
0
0
1 d1 + d 2 + d 3

0
0
1
0

(1.54)

(1.55)

Itt q a T0 ,4 a direkt geometriai feladat megoldsa.


A T0 , 4 a q inverz geometriai feladat megfogalmazsakor figyelembe kell venni,
hogy a SCARA RRTR robot csak 4-szabadsgfok, ezrt csak az ered pozcit s a
megfog x tengelynek irnyt a vzszintes skban rjuk el:
a1 C1 + a 2 C12 = p x ,

(1.56)

a1 S1 + a 2 S12 = p y ,

(1.57)

d1 + d 2 + d 3 = p z ,

(1.58)

C124 = l x ,

(1.59)

S124 = l y .

(1.60)

A q1 csuklvltoz meghatrozshoz vgezzk el a kvetkez talaktsokat:


a 2 C12 = p x a1 C1 ,
a 2 S12 = p y a1 S1 ,
2
2
a 22 C12
+ a 22 S12
= p x2 2a1 p x C1 + a12 C12 + p 2y 2a1 p y S1 + a12 S12 ,

2a1 p x C1 + 2a1 p y S1 = p x2 + p 2y + a12 a 22 ,

ahol az utols egyenlet alakja AC + B S = D , amelynek megoldsa


S =
C =

DB + A A2 + B 2 D 2
A2 + B 2
D A + B A2 + B 2 D 2
A2 + B 2

(1.61)

(1.62)

1. ROBOT KINEMATIKAI ALAPOK

19

Mivel teljeslnie kell, hogy S2 + C2 = 1 , ezrt csak kt ( S ,C ) megolds van,


amelyek a ( , ) = (1, 1) s ( , ) = (1,1) rtkprokhoz tartoznak. Mivel
( S ,C ) meghatrozza a trnegyedet a skon, ezrt mindkt ( S ,C ) prhoz egyegy megolds van, amely
= arctan2(S , C ) ,
(1.63)
feltve hogy a
A2 + B 2 D 2 0
(1.64)

munkatr felttel teljesl.Vlaszthatjuk azt a q1 megoldst, amely a megelz q1 hez legkzelebb van.
Ha mr q1 -et meghatroztuk, akkor
S12 =
C12

s innen

p y a1 S1

(1.65)

,
a2
p a1 C1
= x
,
a2

(1.66)

q1 + q 2 = arctan2(S12 , C12 ).

(1.67)

Az utols lpsek nyilvnvalak:


q3 = p z d1 d 2 ,

q1 + q 2 + q 4 = arctan2 l y ,l x .

(1.68)
(1.69)

1.2.5 A PUMA 560 robot geometriai modellje


Az RRRRRR csuklkplet PUMA robot 6-szabadsgfok, kielgti a
dekompozcis felttelt, mivel utols hrom csukljnak tengelyei egy kzs pontban metszik egymst. A robot DenavitHartenberg-paramtereit az 1.2. tblzat tartalmazza, amelybl a mrtkad koordinta-rendszerek rekonstrulhatk.
A direkt geometriai feladat megoldsakor a SCARA robotnl bemutatott utat lehet kvetni, azaz a DenavitHartenberg-paramterek s az azokra pl Ti 1,i kplet
figyelembevtelvel meghatrozzuk a Ti 1,i , i = 1,2, K ,6 homogn transzformcikat, majd ezekbl kpezzk a T0,3 = T0,1T1, 2 T2,3 s a T3,6 = T3, 4 T4,5T5,6 homogn
transzformcikat s ezek sszeszorzsval a direkt geometriai fealadat
T0,6 (q) = T0,3 (q1 , q 2 , q 3 )T3,6 (q 4 , q 5 , q 6 ) megoldst. Ennek sorn kihasznlhat,
hogy a K 3 keret szempontjbl az utols hrom csuklvltoz rendre q 4 = ,

20

Lantos: ROBOTOK PROGRAMOZSA

q 5 = , q 6 = Euler-forgatsokat realizl, ezrt (br a komponens transzformcik nem azonosak az Euler-szgeknl megismertekkel, mert a DenavitHartenbergkonvenci szerint a csukltengely mindig z irny) a K 3 keretet kveten az hrom forgats ered hatsa az orientcira:

A3,6

C 4 C 5 C 6 S 4 S 6
= Euler ( q 4 , q 5 , q 6 ) = S 4 C 5 C 6 + C 4 S 6

S 5C6

C4C5 S 6 S 4C6
S 4 C5 S 6 + C 4 C 6
S5 S6

C4 S5
S 4 S 5
C 5

(1.70)

A T0,3 homogn transzformci az els hrom homogn transzformci sszeszorzsa utn a kvetkez alak lesz:
C1C 23
S C
T0,3 (q1 , q 2 q 3 ) = 1 23
S 23

C1 S 23

C1
0
0

S1 S 23
C 23
0

a 2 C1C 2 + a 3 C1C 23 d 3 S1
a 2 S1C 2 + a 3 S1C 23 + d 3 C1

a 2 S 2 a 3 S 23

(1.71)

Az inverz geometriai feladat dekompozcis algoritmusa szerint egy els inverz


pozcionl, majd egy msodik inverz orientl feladatot kell megoldani, ahol a msodik egy mr kidolgozott inverz Euler-problma. Az inverz feladat bemeneti adata
a specifiklt (vagy a robot grf segtsgvel ms specifiklt adatokbl szmtott)
T0,6 ered homogn transzformci, amelynek numerikusan adott elemeit jellje

T0,6

l x
l
= y
l z

mx

nx

my
mz
0

ny
nz
0

px
p y
pz

(1.72)

A dekompozcis algoritmus alapjn clszer bevezetni a kvetkez jellseket:


p x = p x d 6 n x , p y = p y d 6 n y , p z = p z d 6 n z

(1.73)

Ekkor az inverz pozcionl feladathoz a kvetkez nemlineris egyenletrendszert kell megoldani a trigonometrikus alapsszefggsek felhasznlsval:

1. ROBOT KINEMATIKAI ALAPOK

21

a 2 C1C 2 + a 3 C1C 23 d 3 S1 + d 4 C1 S 23 = p x
a 2 S1C 2 + a 3 S1C 23 + d 3 C1 + d 4 S1 S 23 = p y

(1.74)

a 2 S 2 a 3 S 23 + d 4 C 23 = p z

Az els egyenletet ( S1 ) -gyel a msodikat pedig C1 -gyel megszorozva s a kt


egyenletet sszeadva egy AC + BS = D alak egyenlethez jutunk, amelynek
megoldst a SCARA robotnl mr bemutattuk, ezrt q1 meghatrozhat:
S1 p x + C1 p y = d 3 q1

(1.75)

Kt q1 megoldst kapunk annak megfelelen, hogy a PUMA robot az emberi kezet


(kart s kzcsuklt) kzelti, s adott pozci elrhet jobb kzzel, vagy bal kzzel.
A megoldshoz ebbl egyet, pl. a megelz konfigurcihoz legkzelebbit kivlaszthatjuk.
Ezutn q1 mr ismert, ezrt elemi algebrai talaktsokkal kpezhet
e := C1 p x + S1 p y = a 2 C 2 + a 3 C 23 + d 4 S 23
S2 =

p z a 3 S 23 + d 4 C 23
a2

C2 =

(1.76)

e a 3 C 23 d 4 S 23
a2

Mivel azonban S 23 , C 23 mg ismeretlen S 2 , C 2 jobb oldaln, ezrt az


2

S + C2 = 1 azonossg tbbszri felhasznlsval, valamint ngyzetre emelssel s


sszeadssal prblkozunk:
2
2
a 22 C 22 + a 22 S 22 = e 2 + a 32 C 23
+ d 42 S 23
2ea3 C 23 2ed 4 S 23 + 2a 3 d 4 C 23 S 23
2
2
+ p z2 + a 32 S 23
+ d 42 C 23
+ 2 p z a 3 S 23 2 p z d 4 C 23 2a 3 d 4 S 23 C 23

a 22 = e 2 + p z2 + a 32 + d 42 2(ea3 + p z d 4 )C 23 2(ed 4 p z a 3 ) S 23

Bevezetve az

22

Lantos: ROBOTOK PROGRAMOZSA

A = 2(ea3 + p z d 4 ), B = 2(ed 4 p z a 3 ), D = e 2 + p z 2 + a 32 + d 42 a 22

(1.77)

jellseket, ismt egy mr ismers alak egyenletre jutunk, melyet megoldva megkapjuk a msodik s harmadik csuklvltoz sszegt:
AC 23 + BS 23 = D q 2 + q 3

(1.78)

Ismt kt megoldst kapunk, amely kzl vlaszthatjuk pldul a megelzhz legkzelebbi megoldst.
Ezutn S 2 , C 2 jobb oldala mr ismert, ahonnan q 2 meghatrozhat:
( S 2 , C 2 ) arctan

2 q 2

(1.79)

Vilgos, hogy q 2 s q 2 + q 3 ismeretben kpezhet q 3 is. Ezzel az inverz pozcionl feladatot megoldottuk, a megoldsok kzl vlaszthattunk a megelz megolds kzelben vagy bizonyos konfigurcikat preferlva (jobb/bal kz, als/fels
knyk helyzet).
Termszetesen nincs akadlya annak sem, hogy az (1.76) egyenletbl elbb
S 23 , C 23 -at fejezzk ki analitikusan megoldvn egy kt ismeretlenes lineris egyenletrendszert, emeljk ngyzetre S 23 , C 23 gy kapott kifejezst, adjuk ssze a kt
egyenletet, amikor is egy jabb AC 2 + BS 2 = D alak egyenletre jutunk alkalmas
A, B, D egytthatkkal, amelynek q 2 megoldst meghatrozva mr szmthat
S 23 , C 23 s abbl ( S 23 , C 23 ) arctan

2 q 2 + q 3 , majd q 2 ismeretben q 3 is.


Az egyenletrendszer megoldsnl kihasznlhat, hogy
de bf
a b x e x
d b e
1
1

= =

=
c
d
y
f
y

c
a
f
ad

bc
ad

bc


ce + af

ahonnan (1.76) alapjn kapjuk, hogy


a3
d
4

amelynek megoldsa:

d 4 S 23 a 2 S 2 p z
,

=
a 3 C 23 a 2 C 2 + e

2. A PLYATERVEZS ALAPJAI
1

S 23 =

a 32

d 42

C 23 =

a 32 + d 42

23

[ a 2 a 3 S 2 a 2 d 4 C 2 + (a 3 p z + d 4 e)]

(1.80)
[a 2 d 4 S 2 a 2 a 3 C 2 + (d 4 p z + a 3 e)]

A = 2a 2 [ d 4 ( a 3 p z + d 4 e) + a 3 (d 4 p z + a 3 e)]
B = 2a 2 [ a 3 ( a 3 p z + d 4 e) d 4 (d 4 p z + a 3 e)]
D=

a 22 (a 32

d 42 )

(a 3 p z

+ d 4 e) +

(d 4 p z

(1.81)
2

+ a 3 e)

(a 32

d 42 ) 2

Miutn meghatroztuk az els hrom csuklvltoz rtkt, behelyettesthetjk


tkket az A0,3 orientcis mtrixba s meghatrozhatjuk annak numerikus rtkt:
C1C 23
A0,3 ( q1 , q 2 , q 3 ) = S1C 23
S 23

S1
C1
0

C1 S 23
S1 S 23
C 23

(1.82)

Ezutn kiszmthat A3,6 numerikus rtke az


A0,6 = A0,3 A3,6 A3,6 =

A0,13 A0,6

A0T,3 A0,6

Lx
=: L y
L z

Mx
My
Mz

Nx
N y
N z

(1.83)

sszefggs felhasznlsval.
Az ered numerikus rtkeket szndkosan L x , K , N z nagybetk jellik, utalva
arra, hogy numerikusan eltrnek A0,6 kis betvel jellt elemeitl, de ettl eltekintve
az inverz orientcis feladat megoldsakor felhasznlhatk az inverz Euler problma
kidolgozott egyenletei (a kisbets elemek helyett a nagybetvel jellteket hasznlva,
pl. arctan 2( N y , N x ) = = q 4 stb.):
A3,6 inverz
Euler

= q 4 , = q 5 , = q 6

(1.84)

24

Lantos: ROBOTOK PROGRAMOZSA

2. A PLYATERVEZS ALAPJAI
Az irnytsok szmra meg kell fogalmazni, mi legyen a szablyozott jellemz elrt rtke (alapjel), vagy kvetend idfggvnye (kvet jel), vagyis az n. referencia jel. A szablyoz ehhez kpest kpzi a hibajelet (a referencia jel s a szablyozott jellemz aktulis rtke kztti eltrst), s a szablyozsi algoritmus clja a hibajel hatsnak mrsklse a tranziensek alatt s llandsult vagy kvzi-stacioner llapotban a hiba lehetsg szerint teljes megszntetse. Tovbbi cl mg a zavar jelek hatsnak cskkentse s a szablyozsi rendszer robusztuss ttele a szablyozott szakasz (folyamat stb.) paramtereinek vltozsa ellenre.
Mozg rendszerek (robotok, jrmvek stb.) esetn a referencia jelnek a rendszer
mozgsa szmra elrt plya felel meg, amely idben vltoz, megvalstsra hatkony irnytsi algoritmusok szksgesek. A plyatervezs teht a robotirnytsok
szmra elengedhetetlen, ezrt nhny alapvet eljrst mutatunk be az ipari robotok
krben elterjedt plyatervezsi mdszerek kzl.

2.1 A plyatervezs adtstruktrja


Tekintsk elszr a 2.1. brban bemutatott esetet, amikor a robot megfogjval korbban mr megfogott egy trgyat, s a feladat a hengerszer trgy elhelyezse egy
szerelvny blokk furatba. A problmt csap-furat problmnak is szoks nevezni
(peg-into-hole problem).
A clunk annak bemutatsa, hogy az alkalmazi oldalon megfogalmazott feladat
egy ltalnos T0,m = COORD POS TOOL1 adatstruktrv konvertlhat. Ennek jobb oldalt kiszmtva megkapjuk az m -szabadsgfok robot erd homogn
transzformcijt, majd erre megoldva az inverz geometriai feladatot a kapott q
vektor tekinthet a referencia jel aktulis rtknek a csuklvltoz vektor rtkben
kifejezve. Ennek komponensei elkdhetk egy csukl-filozfij decentralizlt irnyt rendszer alrendszereinek alapjel bemeneteire, s ha az alrendszerek szablyozsai ezt megvalstjk, akkor a robot a trben az elrt helyzetben (pozciban s
orientciban, rviden helyzetben, POSE) lesz.
Tekintsk teht a 2.1. brban specifiklt feladat koordinta-rendszereit (rviden
kereteit, frames). A feladatban K B a bzis keret (world frame), K 0 a robot referencia kerete, elhelyezkedse a bzishoz kpest az ismert TB ,0 homogn transzformcival adhat meg. K m a robot utols szegmensnek kerete, az utols szegmenshez
van rgztve az end effector (megfog), amelynek kerete K E , s a vgberendezs a
mozgs egy korbbi fzisban mr megfogott trgyat tart, amelynek kerete K obj . A
korbbi mozgsi fzis specifikciibl kinyerhet Tobj , E , amely megmondja
numerikusan a vgberendezs elhelyezkedst a trgyhoz kpest.

2. A PLYATERVEZS ALAPJAI

2.1. bra. A csap-furat problma. Koordinta-rendszerek s robot grf

25

26

Lantos: ROBOTOK PROGRAMOZSA

Az aktulis mozgsi fzisban el van rva, hogy helyezkedjel el a trgy a szerelvny furathoz kpest, amelyet a THOLE ,obj homogn transzformciban adhat meg
numerikusan a felhasznl. A bzis koordinta-rendszerhez kpest a szerelvny pldul egy munka asztalon helyezkedhet el, a hozz rgztett keret K BLOCK , helyzett
numerikusan a TB , BLOCK ismert homogn transzformci reprezentlja. A szerelvnyhez kpest a furat meghatrozott pozciban s orientciban van, a furathoz
rgztett keret legyen K HOLE , elhelyezkedse a szerelvnynek a gpszmrnki gyakorlatban hasznlt CAD-rendszerben kszlt szerelsi rajzbl kinyerhet s a
TBLOCK , HOLE homogn transzformciv konvertlhat.
Jl lthat, hogy a THOLE ,obj felhasznli informci helyett a robotirnyts plyatervezsi feladathoz a T0,m meghatrozsa szksges, amely a robot grfbl a
1
1
figyelembekorbban megismert interpretcival s Tobj , E Tm,1E = (Tm, E Tobj
,E )

vtelvel a kvetkez lesz:


1
1
T0,m = TB,10 TB , BLOCK TBLOCK , HOLE THOLE ,obj (Tm , E Tobj
E)
1444442444443 1
424
3 14424, 4
3
COORD

POS

(2.1)

TOOL

Az itt vizsglt csap-furat problma s szmos ms plyatervezsi feladat a


T0,m = COORD * POS * TOOL1

(2.2)

smra vezet, ahol az adatstruktrban szerepl homogn transzformcik kzl


COORD szmos koordinta-rendszertl fgg, POS a felhasznli elrs s
TOOL
a
fizikai
vagy
logikai
szerszm.
Esetnkben
1
TOOL = Tm , E Tobj
, E = Tm , E T E ,obj a logikai szerszm, ahol a fizikai Tm , E szer-

szmhoz hozz lett vve a TE ,obj trgy, s a kett egyttesen alkotja a logikai szerszmot. Megjegyezzk, hogy magas szint robotprogramozsi nyelvekben vannak
utastsok a fizikai szerszm lecserlsre logikai szerszmm.
ltalban a robot mozgsa fzisokra bonthat, pldul a csap-furat problma felbonthat a furat megkzeltsre gy, hogy a csap tengelye s a furat tengelye egybeessen, de a relatv pozci ne legyen nulla, ezt kvetheti a mozgs a furat kezdethez, majd innen a furat tengelye mentn a mozgs a furat aljig. Az els kt fzis
mozgsirnytssal megvalsthat (szabad mozgs), a harmadik azonban a csap s a
furat tengelye kztt mindig meglv kisebb irnytsi pontatlansgok s a szoros illesztsek miatt ltalban csak n. hibrid pozci/er irnytssal valsthat meg
(korltozott mozgs). Az utbbi sorn tengelyirny ert is ki kell fejteni a szablyozs keretben a mozgs mellett, s az er/nyomatk rzkel ltal mrt hirtelen

2. A PLYATERVEZS ALAPJAI

27

megnv erbl lehet kvetkeztetni arra, hogy elrte a csap a furat aljt, s a csap
betolst a furatba le kell lltani. A hibrid irnyts a csuklvltozkat mr bels
rzkelkn kvl (6-komponens) er/nyomatk rzkel alkalmazst is ignyli,
ami jelents kltsgnvel tnyez.
A tovbbiakban megfogalmazunk egy plyatervezsi smt egyetlen
skalrvltozban, majd kihasznlvn, hogy a csuklvektor s a trben n. Descarteskoordintkban a pozci s az orientci is skalr komponensekkel jellemezhet, a
csuklvltozkban s a Descartes-koordintkban trtn plyatervezst a sma
tbbszri alkalmazsval oldjuk meg.

2.2 Plyatervezs skalrvltozban folytonos gyorsulssal


A kvetkezkben egy smt (primitvet) fogunk kidolgozni egyetlen skalrvltoz
( y ) esetn, amely sorn feltesszk, hogy adottak a skalrvltoz ltal befutand sarokpontok s az elrsi n. abszolt idrtkek (ksbb relatv idre trnk t), tovbb a gyorsuls abszolt rtke korltozva van egy megengedett maximlis rtk
rvn:
{ y i } = {K , A, B, C , D, K} ,

&y& max adott

{t i } = {K , t A , t B , t C , t D , K} abszolt id

(2.3a)
(2.3b)

Az indul hipotzis a sarokpontok sszektse lineris szakaszokkal, azaz szakaszonknt lineris y (t ) fggvny megclzsa. Ekkor az id szerinti els derivlt
y& (t ) szakaszonknt konstans lpcss fggvny lenne, amelynek derivltja, azaz
y (t ) -nek a msodik derivltja azonosan nulla, kivve az els derivlt ugrs helyeit,
ahol Dirac-deltkat tartalmazna, teht nem lenne korltos, szemben az elvrsokkal.
Ennek felszmolsra kt lehetsg terjedt el a robotikban.
Az els szakaszonknt lineris els derivltat cloz meg , amikor is a msodik
derivlt lpcss fggvny (trapz alak sebessgprofil). A mozgstrvnyek alapjn
ekkor a gyorsuls lpcss fggvnynek ugrshelyein jelents er/nyomatk vltozs szksges, ami komoly feladatot r a szablyozsok szmra (nagy hibajel s
nagy ersts esetn telts a hajtsokban, ami az ersts visszavtelvel kerlhet
el, ami viszont nagyobb tranziens s marad hibval jr).
A msodik folytonos gyorsulst cloz meg. Mivel azonban az n. utaz szakaszon a sebessg konstans s a gyorsuls nulla, ezrt a szakaszok hatrn a sebessgvltozs megvalstshoz a gyorstsnak nullbl nem nullba kell mennie, tartani
kell az eljelet (a gyorstsnak vagy lasstsnak megfelelen), majd ismt nullba
kell mennie. Ez a gyorsts szmra folytonos fggvnnyel a legegyszerbben msodfok polinommal (parabolval) valsthat meg.

28

Lantos: ROBOTOK PROGRAMOZSA

2.2. bra. A plyatervezs smja folytonos gyorsulssal egy skalvltozban

A plyatervezs teht egy B B B gyorst szakaszra s egy B C utaz szakaszra bonthat. A knnyebb kezels rdekben t relatv idt vezetnk be,
amelynek nulla helye a gyorst szakasz kzepe, a gyorst szakasz teljes hossza pedig a B rtk ktszerese:
B B C :
B B :

t = t abs t B [ B , TB ] relatv id

&y&(t ) = a 0 t 2 + a1t + a 2

t3
t2
+ a1
+ a2 t + a3
3
2
t4
t3
t2
y (t ) = a 0
+ a1
+ a2
+ a3t + a 4
12
6
2
y& (t ) = a 0

(2.4)

2. A PLYATERVEZS ALAPJAI

29

Mivel az y (t ) negyedfok polinomnak 5 egytthatja van, ezrt meghatrozsukhoz 5 felttel szksges, amelyek a kvetkezk:
&y&( B ) = 0
&y&( B ) = 0
y& ( B ) = v AB =
y& ( B ) = v BC =

B B

(2.5)

CB
TB

y ( B ) = B + v BC B

Behelyettestve a fggvnyekbe ezeket az rtkeket egy lineris egyenletrendszer keletkezik az ismeretlen egytthatkra, amelynek analitikus megoldsa a kvetkez:
a0 =

3 v BC v AB

4
B3

a1 = 0
a2 =

3 v BC v AB

B
4

(2.6)

v BC + v AB
2
3
a 4 = B + (v BC v AB ) B
16
a3 =

A paramterek ismeretben egy skalrvltozban a plya a gyorst szakaszon


egy negyedfok, az utaz szakaszon pedig egy elsfok polinom lesz:
t4
t3
t2
a 0
+
a
+
a
+ a 3 t + a 4 , t [ B , B )
1
2
y (t ) = 12
6
2
B + v BC t , t [ B , TB C )

(2.7)

Az y (t ) fggvnyt t [ B , TB C ) kztt hasznlhatjuk, B C elrsekor


jra el kell vgezni a plyatervezst az j C C D szakaszra, arra alkalmazvn
a B B C szakaszra kidolgozott plyatervezsi primitvet.

30

Lantos: ROBOTOK PROGRAMOZSA

Vegyk szre, hogy a plya nem pontosan a t B abszolt idpontban halad t az


elrt B ponton, az eltrs ekkor
B y (0) = B a 4 =

3
(v BC v AB ) B
16

(2.8)

A hiba abszolt rtkt B cskkentsvel lehetne cskkenteni, ennek azonban


az elrsok szerint hatrt szab, hogy
&y& max &y&(0) = a 2 =

3 v BC v AB
3 v BC v AB

B
&y&
4
4
B
max

(2.9)

Az elrt sarokpontokon val thaladst a plyatervezsi primitv megtartsa mellett egyszer eszkzkkel lehet biztostani, ehhez elegend ugyanis a kritikusnak tekintett sarokpontot megduplzni. Ennek ra, hogy a plya befutsi ideje 2 B rtkkel megn, ha B a kritikus sarokpont, tovbb a sebessg egy pillanatra nullv vlik. Vilgos, hogy a start s end sarokpontot, mivel azt garantltan be kell tartani, a
sorozatban mindig meg kell duplzni: {S , S , K , A, B, C , D, K , E , E} . Egy specilis
felttel olvashat mg le a 2.1. brbl, nevezetesen teljeslni kell a TB B + C
felttelnek is.

2.3 Plyatervezs csuklkoordintkban


A csuklvektor komponensei skalrok, ezrt azokra komponensenknt alkalmazhat
az egyetlen skalrvltozra kidolgozott primitv. Ennek sorn azonban be kell tartani, hogy a csuklhajtsok motorjainak eltr teljestmnyviszonyai miatt az egyes
csuklvltozk derivltjaira eltr q& i max , q&&i max maximlis rtkek vannak elrva.
Ezen kvl az egyes csuklk q Ci q Bi megvltozsnak rtke is eltr lehet, ezrt
a q& i

max

maximlis sebessggel val befutsukhoz csuklnknt eltr id szks-

ges. Msrszt viszont csak azt a csuklt clszer maximlis sebessggel mozgatni,
amelyre a sajt befutsi id maximlis. Nincs rtelme ugyanis ms csuklkat hamarabb a clhelyzetbe kldeni, mert hiba rkezik egy csukl korn a clhelyzetbe, ha
a msik csukl mg nincs a clhelyzetben, mivel a teljes robot mg nem rte el clkonfigurcit, s nem lehet pldul egy trgy megfogst stb. indtani.
Mivel a flslegesen gyorsan mozg csuklk mozgshoz flslegesen nagyobb
kinetikus energia szksges, ezrt clszer n. koordinlt mozgst megvalstani,
amikor is csak a legnagyobb idt ignyl csukl mozog maximlis sebessggel, a

2. A PLYATERVEZS ALAPJAI

31

tbbiek pedig ugyanennyi id alatt, de a sajt maximlis sebessgknl lassabban s


kevesebb energit fogyasztva mozognak (koordinlt mozgs elve).
A plyatervezs smjt csuklvltozkban a 2.3. bra mutatja.

2.3. bra. A plyatervezs smja csuklvltozkban

Az itercik vals idben val elkerlsnek rdekben minden rtket (2.9)


alapjn egysgesen egyformnak vlasztottunk figyelembe vve, hogy a legnagyobb
v BC ,i v AB ,i sebessgvltozs rtke a q& i max sebessgmaximum ktszerese is lehet:

= max
i

3 q& i
2 q&&i

max
max

Plyatervezsi algoritmus csuklvltozkban:


q B := q (T )
q B := qC
qC := solve {COORD POS TOOL1}D
Ti :=

qCi q Bi
, i
q&i max

T := max {max {Ti },2 }


i

v AB :=

qB qB

qC qB
T
a0 , K, a4 , t :=

vBC :=

repeat until t < T : {q(t ); t := t + }

(2.10)

32

Lantos: ROBOTOK PROGRAMOZSA

A szmtsok itt vektorizlva rtendk (lsd MATLAB), ciklusba szervezsk Cnyelvi krnyezetben trivilis. A q (t ) fggvny a gyorst szakaszon negyedfok, az
utaz sebessg szakaszon elsfok polinom, a mintavteli id.
Clszer kihangslyozni, hogy a sarokpontokat vagy kzvetlenl csuklvltozkban kell betantani, vagy pedig az adatstruktrban a COORD, POS , TOOL homogn transzformcikkal indirekt definilni. Az utbbi esetben solve utal arra,
hogy meg kell oldani az inverz geometriai feladatot. A sarokpontokat a
plyatervezs sima fggvnyekkel kti ssze.
A plyatervezs az utaz sebessg szakaszon a T0,m (q) argumentumba lineris
fggvnyt helyettest. Mivel azonban a rotcis csuklk miatt T0,m (q) nemlineris,
ezrt egy nemlineris fggvny argumentumba helyettestve lineris idfggvnyt a
kiadd robotmozgs nem lesz lineris az idben, azaz a trben kt sarokpont kztt
a robot nem fog egyenes mentn mozogni. Az imbolyg mozgs ugyan cskkenthet lenne azltal, ha sok egymshoz kzeli sarokpontot tantannk be (kis vltozsra a folytonos fggvny jl kzelthat linerissal), ez azonban a betantst nagyon
idignyess tenn.
Ki kell teht hangslyozni, hogy a plyatervezs csuklvltozban egyszer,
mert csak sarokpontonknt egyszer ignyli az inverz geometriai feladat megoldst,
msrszt viszont csak akkor javasolhat alkalmazsa, ha a robot a sarokpontok kztt haladva tvol marad az akadlyoktl. Minden ms esetben egyenes mentn halad s az orientcit is simn vltoztat plyt kell tervezni az akadlyok elkerlse
rdekben. Erre a plyatervezs Descartes-koordintkban ad lehetsget.
A robotprogramozsi nyelvek a vlasztsra lehetsget adnak, lsd ksbb a GO,
GONEAR utastsokat csuklvltozban, valamint a GOS, GOSNEAR utastsokat
Descartes-koordintkban trtn plyatervezs esetn (S= stright line az egyenesre
utal).

2.4 Plyatervezs Descartes-koordintkban


A robot mindig trben mozog, ezrt a csuklfilozfij irnytst a kzvetlenl trbeli, teht pozciban s orientciban trtn irnytstl a robotika terletn azltal klnbztetjk meg, hogy az utbbit Descartes-koordintkban trtn irnytsnak nevezzk (Descartes latin neve utn angolul Cartesian Control). Ilyen rtelemben beszlnk plyaterezsrl is kzvetlenl Descartes-koordintkban.
Amennyiben a pozcit x, y, z jelli, az orientcit pedig a , , Eulerszgekkel jellemezzk, akkor a plyatervezsi feladat felfoghat egy fiktv
TTTRRR csuklkplet robot szmra plyatervezsnek, amelyben a fiktv q
csuklvektor a plyatervezs idejre q = ( x, y, z , , , ) T . Ennek ismt
skalrvltozk a komponensei, ezrt a csuklvltozk terben korbban kidolgozott
algoritmust alkalmazhatjuk a fiktv robotra. Arra kell azonban gyelni, hogy ebben

3. PUMA robot irnyt s programozsi rendszere

33

az esetben az irnytsban trtn alkalmazshoz minden mintavteli idpontban


meg kell oldani az inverz geometriai feladatot, amely jelents mrtkben terheli az
irnytst vgz processzort vagy szmtgpet.
Plyatervezsi algoritmus Descartes-koordintkban:
T0,m = COORD POS TOOL1
B

T0B,m

T0B,m

px

py
p
z




B

px

py
p
z




B

C
T0C,m
px

py
p
z




C

= ( x , y , z , , , )
TTTRRR q

a0 , K , a4 for p x (t ), K , (t ) , t :=
repeat until t < T :
{
T

p x (t )

p (t ) = p y (t ) , A(t ) = Euler ( (t ), (t ), (t ))
p (t )
z
A(t )
T0,m (t ) = T
0
t := t +
}

p (t ) solve
q(t )

1

Az algoritmusban solve az inverz geometriai feladat megoldst jelenti a valdi


robot szmra. Jl lthat, hogy az inverz geometriai feladatot a mintavteli id ( )
temben kell megoldani. Ha erre a rendelkezsre ll id az adott processzoron
(processzorokon) vals idben kevs, akkor prblkozhatunk az inverz feladat ritkbb megoldsval, s a kt q (t1 ) , q (t 2 ) csuklvltoz rtk kztt lineris interpolcival az id fggvnyben a mintavteli id temben. Robotok esetben a szablyozs idelis mintavteli ideje kb. 1 msec.

34

Lantos: ROBOTOK PROGRAMOZSA

3. PUMA robot irnyt s programozsi rendszere


A PUMA 560 robot egy RRRRRR csuklkplet robot, amelynek utols hrom
csukltengelye egy kzs pontban metszi egymst, s az utols 3 csukl a harmadik
szegmens koordinta-rendszerhez kpes z , y, z forgatsokat valst meg. Ezrt
q 4 , q 5 , q 6 rendre felfoghat a , , Euler-szgeknek, amit az inverz geometriai
feladat megoldsakor korbban mr ki is hasznltunk.

Msrszt a Nokia Puma 560 robot ARPS robotprogramozsi nyelve a BASE s


TOOL koordintarendszerek kztti TBASE ,TOOL (korbbi jellssel TB , E ) homogn
transzformci orientcijnak jellemzsre nyelvi szinten szintn Euler-szgeket
hasznl, amelyet azonban erre a clra o,a,t-vel jell. A kett nem keverend ssze.

3.1 Robotirnytsi alapfogalmak


Az ipari robotok irnyt rendszere rendszerint egy tbbszint irnyt rendszer,
amelynek felsbb szintjn trtnik a robotprogramozsi nyelv utastsainak rtelmezse, a plyatervezs, tovbb az utastsok vgrehajtsnak megszervezse s a felgyelete, alsbb szinten pedig a robotirnytsi algoritmusok megvalstsa.
Az algoritmusok s az irnytsi filozfia klnbz lehet, kezdve az egyszer
decentralizlt kaszkd irnytsoktl (hromhurkos pozci, sebessg s ramszablyozs) a robot nemlineris dinamikus modelljre pl klnfle korszer irnytsi
algoritmusokig (kiszmtott nyomatkok mdszere, cssz szablyozs, nemlineris
sztcsatols, hibrid pozci/er irnyts, nhangol adaptv irnyts).
A 3.1. brn egy egyszer csuklvltoz filozfij irnyts smjt mutatjuk
be. Ipari robotok esetn a plya mrtkad sarokponjait rendszerint csak betants
rvn, a betant szemly vizulis felgyelete mellett lehet bevinni a rendszerbe,
amire a betant pult szolgl. Az gy bevitt adatokon aztn mr egyszer adatmdostsokat (msols, eltols stb.) nyelvi eszkzkkel is el lehet vgezni. A felhasznl
programjt az editor szolgtatsaival viheti be a rendszerbe, s alkothatja meg az alkalmazs robotprogramjt.
A betant pult (Teach Pendant) s a robotprogramozsi nyelv (Robot Programming Language) az irnyt rendszer fels szintjn megjelen szolgltats, amely
vagy egy master clprocesszoron, vagy pedig egy host szmtgpen (PC stb.) valsul meg.

3. PUMA robot irnyt s programozsi rendszere

35

3.1. bra. Robotirnytsi rendszer elvi smja

A mozgst elr utastsok vgrehajtsakor a fels szinten megtrtnik a plyatervezs, s a kiszmtott plya adatai eljutnak a decentralizlt tengelyhajtsok alapjel bemeneteire, amelyet azok rtelmeznek s az alkalmazott algoritmustl s
paramterbelltstl fggen kisebb-nagyobb hibval megvalstanak. A robot fizikai rtelemben vett pontossga ersen fgg a szablyozs pontossgtl.
A szablyozsi smban S a master processzor, S i , i = 1, K , m pedig a csuklhajtsok processzorai. A plyatervezs eredmnyekppen elll q ia alapjel a
master processzortl valamilyen (prhuzamos stb.) interfszen jut el a csuklprocesszorokig.
Az S i alrendszer mri a q i csukvltoz rtkt, amely itt a szablyozott jellemz szerept tlti be, kpezi a szablyozs q ir = q ia q i hibajelt, a vlasztott
szablyozsi algoritmus s annak paramterbelltsa alapjn kiszmtja a beavatkoz jelet, amely tekinthet a beavatkoz szervknt mkd motor meghajt nyomatknak (a jellsben itt a nyomatk angol nevnek, torque, rvidtse). A motor tttelt is tartalmaz, amelynek feladata a kisebb motoroldali nyomatk megnvelse a
szegmens oldalon az tttel arnyban.

36

Lantos: ROBOTOK PROGRAMOZSA

A nyomatk rendszerint ramszablyozs rvn valsul meg, mivel DC motorok


esetn a motor tengelyn kifejtett nyomatk egyenesen arnyos a rotorrammal. A
hajts teljestmny elektronikja rendszerint a nagyobb teljestmny s a melegeds
hatsnak cskkentse rdekben impulzus szlessg modulcit (PWM) hasznl.
A csuklvltozt egy nagyfelbonts kdtrcsa impulzusainak (inkremensek)
szmllsval lehet mrni, azonban mivel ez csak nvekmnymrsre alkalmas, a
kezdeti rtket a bekapcsols utn egy kalibrlsi folyamat keretben kell meghatrozni, amiben egy nagyfelbonts helipot analg jele, valamint a kdtrcsa index jele s fzisban eltolt kt impulzus jele is szerepet jtszik. A kdtrcsa fzisban eltolt
kt impulzusjele lehetv teszi a forgsirny figyelembevtelt. A nvekmnymrsre manapsg clprocesszorok is rendelkezsre llnak, amelyek egyszerre tbb tengely impulzusszmllst is el tudjk vgezni.
A csuklvltozkat (s derivltjaikat) mr rzkelket bels rzkelknek (internal sensors) nevezik, szemben az intelligens kls rzkelkkel (external
sensors), amelyek hatkomponens er/nyomatk mrsre, kzvetlen pozci/orientci mrsre vagy taktilis rzkelsre kpesek.
Pont-pont irnytsrl (PTP, point-to-point control) beszlnk, ha a hajtsok tengelyei szmra nincs definilva a teljes q ia (t ) plya az id fggvnyben, hanem
csak a plya q ia vgpontja. Ilyenkor a robot a szablyozsi tranziensektl fggen
kiadd q i (t ) trajektria mentn kzeledik a vgponthoz, s mivel ez a szablyzs
bels tulajdonsga, ezrt jelents az tkzsveszly a krnyezettel.
Folytonos plyairnyts (CT, continuous path control) esetn a hajtsok tengelyei a befutand pontok kztt megtervezett q ia (t ) plyt kapnak az id fggvnyben. A plyatervezs trtnhet csuklvltozkban vagy kzvetlenl Descarteskoordintkban, esetleg interpolci bevonsval. A plya mentn az idparamtert
el kell osztani a maximlis sebessgek s gyorsulsok figyelembevtelvel. A robot
megtervezett s a robotprogram tesztelsekor ellenrztt plyn mozog, ezrt kicsi
az tkzsveszly a krnyezettel, klnsen ha a plyatervezs Descarteskoordintkban trtnt, amikor a robot megfogja a kitntetett pontokat egyenessel
kti ssze. A plyatervezs koordinlt mozgst valst meg, ezt a csuklk egyszerre
rik el a kitntetett vgpontokat s az energiafelhasznls gazdasgos.

3.2 A Nokia PUMA 560 robot HW/SW felptse


A 6-szabadsgfok RRRRRR csuklkplet Puma 560 robot DenavitHartenbergparamtereit a 3.1. tblzat tartalmazza. A robot vzlatos felptst s a mrtkad
koordinta-rendszereket a 3.2. bra mutatja be.

3. PUMA robot irnyt s programozsi rendszere

37

3.1. tblzat. A Nokia PUMA560 robot DenavitHartenberg-paramterei

qi

di

ai

1
2
3
4
5
6

90

0
0

a2

d3

d4

d6

a3
0
0
0

90

90
90
0

3.2. bra. A Nokia Puma 560 robot felptse s koordinta-rendszerei

38

Lantos: ROBOTOK PROGRAMOZSA


A koordinta-rendszerek a felhasznl szempontjbl mint
BASE
06
K B
K 0 T
K 6 TOOL
K E

(3.1)

jelennek meg, ahol BASE s TOOL a robot ARPS programozsi nyelvnek ilyen
nev utastsaival llthatk be a kvnt rtkre. Itt BASE a felhasznl ltal preferlt vilg koordinta-rendszert definilja, TOOL pedig a fizikai megfog elhelyezkedst K 6 -hoz kpest. A megfog cserlhet, a cserhez K 6 -on a megfelel furatok ki vannak kpezve.
A robot fontosabb hardver egysgeit a 3.3. bra mutatja be.
A robotirnytsi feladatok elltst 1 master s 6 slave processzor felgyeli s
valstja meg. A master processzoron fut az ARPS robotprogramozsi nyelv, a plyatervezs s a szablyozsok alapjel idfggvnyeinek ellltsa, tovbb a
master processzor felgyeli a betantst, a bemeneti/kimeneti adatforgalomat, a
rendszer sttusznak figyelst s az ember/gp kapcsolatot.
A slave processzorok valstjk meg a decentralizlt szervohajtsokat, teht tengelyenknt egy-egy slave processzor vgzi az illet csuklvltoz alapjelnek fogadst, a csuklvltoz bels rzkeljnek lekrdezst, a hibajel kpzst, a tengelyhajts szablyozsi algoritmusnak s a szablyoz kimenjelnek kpzst, a
kimenjel eljuttatst a teljestmny elektronikhoz, a tengelyhajts sttuszfigyelst, valamint a szenzor s sttusz informci eljuttatst a master processzorhoz.
A vezrl pult a tpelltst, a programfutst s a vszlellst vezrli. A betant
pult RS 232 soros interfszen keresztl kapcsoldik az irnyt rendszerhez.
A digitlis I/O vonalak 16 vonalas egysgekbe vannak szervezve. Tipikusan
2x16=32 bemeneti s 2x16=32 kimeneti vonal ll rendelkezsre a krnyezettel val
kommunikcihoz. A bemeneti/kimeneti vonalak nem TTL szintek, a robot krnyezetben lv technolgiai berendezsek (szlltszalag, trol pufferek stb.) vezrlse cljbl a logikai szintek low=0V, high=24V. A digitlis bemeneti/kimeneti
egysgeket a krnyezet berendezseivel kbelekkel ssze kell ktni. A lbkiosztsnak s ARPS szinten a logikai jelek cmeinek sszhangban kell lennik.

3.3. bra. A Nokia PUMA 560 robot fontosabb egysgei

3. PUMA robot irnyt s programozsi rendszere


39

40

Lantos: ROBOTOK PROGRAMOZSA

3.4. bra. A Nokia PUMA 560 robot vezrl pultja

A vezrl pult (Control Panel) kezelszerveit a 3.4. bra mutatja be. A tpfeszltsg (POWER) bekapcsolsa biztonsgi megfontolsbl csak kulccsal lehetsges. Ekkor mr mkdik a tpellts, de a mikroprocesszorok mg nem kapjk meg
a tpfeszltsget. Hasonlan nem mkdnek a szervohajtsok, azaz a szablyozsi
krk nem zrulnak, hanem tpelltst nem ignyl mechanikus fkrendszer rgzti
a robotot az utols konfigurciban.
A P17 kapcsolval bekapcsolhat a mikroprocesszorok tpfeszltsge. A
Servos kapcsol bekapcsolsakor a mechanikus fkek elengednek, s a szervohajtsok szablyozsi krei zrulnak. A robotot az aktulis konfigurciban most mr
a szablyozsi krk tartjk meg.
A SYSTEM kapcsol run llsban elidthat a robotprogram, halt pr. llsban pedig az aktulis utasts befejeztvel tmenetileg felfggesztdik a robotprogram utastsainak vgrehejtsa, ahonnan ismt run llsba kapcsolva a programvgrehajts a soronkvetkez utastssal folytathat. A restart pr. kapcsolval jraindthat egy megklnbztetett program, aminek ciklikusan mkdtetend kitntetett robotprogram s jraiduls esetn van jelentsge.
Mivel a robot mozg rendszer, s br a robot csuklk el vannak ltva a mkdsi
tartomnyaikat behatrol vgllskapcsolkkal, semmi sem vd az ellen, hogy a
robot szegmensei egymsba mozduljanak. Ez ugyanis a szmtgp grafikban vals
idben szlelend s elre jelzend bonyolult test-test problma lenne, amelyre jelenleg mg nincs vals idej s olcs megolds. Hasonlan nem szlelhet elre, ha
a robot a kezel szemly, a robot krnyezetben lv ms szemly vagy egy akadly
fel kzeledik.
Ezrt alapvet fontossg a piros szn ALARM gomb a vezrl pulton, amelyet
meg kell nyomni, ha vszhelyzet vagy ms problma llna el. Ekkor a robot
szervorendszernek szablyoz krei felnylnak, meghznak a mechanikus fkek s
a robot az utols konfigurciban arretl. Figyelem, az utols konfigurci lehet ve-

3. PUMA robot irnyt s programozsi rendszere

41

szlyes konfigurci is a robot vagy krnyezete szmra! Ezrt a mrs sorn maximlis krltekintssel s a mrsvezet utastsait maximlisan betartva kell viselkedni. A vszhelyzet felszmolsa utn a robot jraindtsa mechanikai szempontbl
kritikus, ezrt csak kikpzett szakember vgezheti el az jraindtst.

3.5. bra. A betant pult felptse

42

Lantos: ROBOTOK PROGRAMOZSA

A betant pult (Teach Pendant) kezelszerveit a 3.5. bra mutatja be. Mivel betantskor rendszerint eltvolodunk a vezrl pulttl, ezrt a betant pulton is tallhat egy piros ALARM gomb, amit vszhelyzetben a vezrl pulthoz hasonlan
meg kell nyomni.
A betant pult alaphelyzetben lestetlen, lestse a betants cljbl az OFF
gombbal lehetsges. Hatsra lell a program vgrehajts az ppen vgrehajts alatt
ll utasts befejeztvel, s bekapcsol a betant pult. Fordtva, a COMP gomb
megnyomsakor passzivldik a betant pult s folytatdhat a flbehagyott program
vgrehajtsa. Bekapcsolt pult esetn g a CALIB led.
A pult hasznlata csak a pult bekapcsolt llapotban lehetsges. A betant pulton 2x6 gomb tallhat X 1, K , RZ 6 felirattal, amelynek rtelmezse a pult aktulis
llapottl fgg, az aktulis llapotot a JOINT, WORLD, TOOL gombokkal lehet
belltani.
JOINT llapotban a 2x6 gomb az egyes csuklkhoz van hozzrendelve, megnyomsukkal a megfelel csukl tovbbmozdul + vagy irnyban. Az egy megnyoms hatsra trtn elmozduls mrtke 8 fokozatban a SPEED mez vilgt
ledjeinek nvelsvel nvelhet, vilgt ledjeinek cskkentsvel pedig cskkenthet. A nvels/cskkents mrtke a SPEED mez + s gombjaival llthat. A
betants sorn a betantand clhelyzettl tvol ltalban nagyobb sebessggel vgezzk a betantst, a clhelyzet kzelben azonban kis sebessgre llunk t, hogy
vizuls megfigyelsnkre alapozva nagy pontossggal llthassuk be a betantand
konfigurcit. Ha a kvnt robot konfigurcit elrtk, a STEP gomb megnyomsnak hatsra a rendszer mintt vesz a csuklvltozk rtkbl, s hozzrendeli a
csuklvektor rtkt a betantskor megjellt vltozhoz. A csuklvltozk neveit az
ARPS a #name mdon klnbzteti meg az n. koordinta-pontoktl, amelynek
neve eltt nem ll # (hesh mark).
WORLD llsban koordinta-pontokat (coordinate points) lehet betantani, amelyek ( x, y, z , o, a, t ) alakban troljk a betantott pozcit s az Euler-szgekkel kifejezett orientcit. Koordinta-pont neve eltt nem llhat #. WORLD llsban a 2x6
gomb rtelmezse lineris mozgs a bzis koordinta-rendszer x B , y B , z B tengelyeinek irnyban (els hrom gombpr), vagy forgats a bzis koordinta-rendszer
x B , y B , z B tengelyei krl (utols hrom gombpr). A STEP gomb megnyomsnak hatsra az aktulis konfigurcihoz tartoz TB , E informci ( x, y, z , o, a, t )
alakban hozzrendeldik a betantskor megjellt name koordinta-ponthoz.
TOOL llsban az eljrs analg a WORLD llsban ismertetetthez, de az irnyok a K E vgberendezs tengelyeinek irnyban rtendk. Az els hrom
gombpr hatsra az x E , y E , z E tengelyek irnyban, teht sajt maghoz kpest relatve vgez lineris mozgst a vgberendezs, illetve az utols hrom gombpr ha-

3. PUMA robot irnyt s programozsi rendszere

43

tsra a sajt tengelyei krl vgez forgst a vgberendezs. Minden lps utn
megvltozik K E helyzete. A STEP gomb megnyomsnak hatsra most is az aktulis konfigurcihoz tartoz TB , E informci rendeldik hozz ( x, y, z , o, a, t ) alakban a betantskor megjellt name koordinta-ponthoz.
Van mg egy FREE llapot is, amelyet klns figyelemmel szabad csak hasznlni. Ez az llapot arra szolgl, hogy kzzel mozgassuk a robotot a betantand clhelyzetbe. Mivel azonban a viszonylag nagy (kb. 100 nagysgrend) tttelekkel
szemben nehz mozgatni a robotot, ezrt a FREE llapotban felszakthatjuk a kivlasztott csuklhajts szablyozsi krt (esetleg egynl tbbet is) a 2x6 gombpr
megfelel + gombjval, de ekkor sem a hajts, sem pedig a fk nem aktv, ezrt az
sszecsukls ellen a robotot meg kell tartani a felszabadtott csuklk mozgatsa
kzben. STEP gomb hatsra a csuklvltozk rtke most is kimenthet a #name
vltozba. Ez a folyamat a robot mozgatsa s a betant pult kezelse miatt legalbb kt szemly kzremkdst ignyli. A mozgats vgn a csukl gombjnak
megnyomsra a felnyitott hajtsszablyozsi kr ismt zrul, s a hajts megtartja a
csukl szegmenst. Ha az szes felszabadtott csukl szablyozsi krt ismt zrtuk, elhagyhatjuk a FREE llapotot.
A betant pult rendelkezik mg egy MESSAGE kijelz mezvel is, amelyben
hiba esetn a rendszerint fatlis hibra jellemez zenetek jelennek meg, melyet a
rendszer generl. Fatlis hiba esetn kikpzett szakember tancst kell kikrni a
folytatshoz. Hiba keletkezik akkor is, ha a robot elhagyn a csuklvltozk megengedett tartomnyt, vagyis a hatrol vgllskapcsolk megszlalnak. Az els 5
csukl mkdsi tartomnya kisebb, mint a [0 o ,360 o ] tartomny, a hatodik csukl
esetn azonban krbeforduls is lehetsges.

3.3 Az ARPS robotprogramozsi rendszer


Az ARPS (Advanced Robot Programming System) robotprogramozsi rendszer felptst a 3.6. bra mutatja be. A file manager a fjlok trolst/lekrdezst felgyeli a floppy lemezes httrtroln. A debugger szervz clokat szolgl (hibakeress s elhrts), a felhasznl szmra nem rhet el.
Az ARPS rendszernek bels integrns rsze egy real time kernel, amely a feladatok temezst, az idztseket s az esemnyeket kezeli. Az ARPS rendszer, eltekintve a kerneltl, egy ktszint programrendszer. Alacsony szinten fut a robotprogram vagy az editor egymst kizrva, az egyszersg kedvrt nevezzk ezt
background-nak. A robotprogram utastsai (instruction) az editor segtsgvel vihetk be a rendszerbe. Az editor sor-orientlt, minden nem comment sor egy utastst
definil. Magasabb szinten fut az n. monitor, amelynek az opertor kommunikci
keretben megadhat parancsaival (command) a robotprogram futsa kzben is beavatkozhatunk a rendszer mkdsbe. Nevezzk ezt a magasabb szintet az egyszersg kedvrt foreground-nak.

3.6. bra. Az ARPS robotprogramozsi rendszer felptse

44
Lantos: ROBOTOK PROGRAMOZSA

3. PUMA robot irnyt s programozsi rendszere

45

Az ARPS robotprogramozsi nyelv egy egyszer nyelv, valahol a BASIC s a


FORTRAN hatrn. Az egyszersget a gyakorlat elvrsai definiljk: A
felhasznl kzepesen kvalifiklt, fiskolai/egyetemi vgzettsg nem igny. Az
utastsok cimke, mnemonik, operandus struktrjak. A cimke decimlis szm, az
operandusok integer tpusak, az opercik aritmetikai s logikai utastsok lehetnek, a logikai felttelek alapjn elgaz utastsok lehetsgesek.
Az utastsokban megengedett opertorok: + | | | / | MOD | AND | OR
Relcijelek: =|<> |< |> | |
Br az utastsok egyszerek, az adatstruktrk kielgtik a magasabb robotikai
elvrsokat. A vltozk kztt robotikai clra megengedett a q csuklvektor
(precise point, #name), az x, y, z pozci vektorral s az o, a, t Euler-szgekkel jellemzett koordinata pont (coordinate point, name), valamint relatv pont (combined
point), inverz pont s tkrpont (mirror point). A vltozk msolhatk (locate), s
rajtuk egyszer adat transzformcik (shift stb.) rhatk el.
Magas szint adatstruktra pldul a frame, amely koordinta-rendszert definil.
A definci praktikus, nevezetesen elrhat az orig, az x -tengely egy pontja, valamint az xy sknak egy + y oldali pontja. A praktikus alatt az rtend, hogy be
lehet tantani az origt s az x -tengely egy pontjt, viszont nehz elvrni, hogy az
x -tengelyre merleges y -tengely egy pontjt is be tudjuk tantani. Ezrt a rendszer
csak az xy sk egy pontjnak betantst ignyli (pldul a munkaasztal, work table
egy pontjt), amely knnyen betanthat, s a rendszerre bzza ezekbl az informcikbl a jobb sodrs koordinta-rendszer megkonstrulst.
Alkalmazsi oldalrl klnsen fontos a fut robotprogram szmra, hogy egy
utasts megkezdse egy esemny bekvetkezshez, nevezetesen egy digitlis bemenjel elrhat szintjnek megjelenshez kthet. A robotprogram futsa ilyenkor felfggesztdik, az esemnyre val vrakozs ignye a real time kernel esemnytblzatba berdik, amelyet a kernel ciklusidejtl fgg gyakorisggal ellenriz, s ha a jelszint bekvetkezst tapasztalja, akkor a felfggeszts alatt ll
programot tovbb folytatja.
Az egyszer utastsok ellenre a rendszer intelligencijra utal, hogy a digitlis
rendszer jeleinek leire megszaktsi szubrutint lehet felktni, amely a robotprogram
futsa kzben is lefut, ha a digitlis jel ln az elrt vltozst tapasztalja a real time
kernel. A megszaktsi szubrutin szintn egy program, amelynek utastsai az editor
segtsgvel definilhatk. Temszetesen a krnyezetet kiszolgl megszaktsi
szubrutinnak rvid lefutsnak kell lennie, hiszen bekeldhet a robotprogram mozgsutastsai kz, amelyek idkritikusak lehetnek.
A gyakorlat szmra fontos tovbbi specialits, hogy lehetsges mozgst elrni
egy egyenes irnyban, s az egyenes krl szinuszos oszcillcis mozgst krni,

46

Lantos: ROBOTOK PROGRAMOZSA

amelynek amplitdja elrhat, s megadhat egy id is, ameddig a cscsrtket


tartani kell. Ez a WEAVE utasts, amely jl hasznlhat pldul kmiai alkalmazsoknl, ahol egy egyenes mentn valamilyen port/vegyletet kell szrni.
Az ARPS nyelv a digitlis jelekre a cmkkel (pozitv integer a bemen vagy kimen jelek egysgeiben, sszhangban a kbelekben hasznlt lbkiosztssal), valamint a cm eltt ll + vagy eljellel hivatkozunk, ahol +address a magas szint
jelet, address az alacsony szint jelet jelli, a default rtk +, amely el is hagyhat.
Tekintsk most rszletesebben a 3.6 brt. Lthat, hogy az ARPS rendszert a
monitor felgyeli a command-jaival. A monitor parancsok sikeres ellenrzs utn
(compiler) eljutnak a command interpreterhez, s elkezddik vgrehajtsuk.
Programrskor elsdleges a robotprogram utastsainak megadsa a program
szmra. A program editls az EDIT monitor paranccsal indthat el. Az editor sororientlt, a C kezdet comment sorok kivtelvel minden program utasts (instruction) egy forrssorban adand meg. Az utasts sor cimkbl, mnemonikbl s operandusokbl ll, a cimke decimlis szm. A sor vge hatsra megtrtnik a program
utasts ellenrzse (compiler), s a helyesnek tallt utasts bekerl a program kvetkez utastsnak helyre a memriban. Hiba esetn zenet keletkezik s a hiba
kijavthat. Az editor is rendelkezik egybets parancsokkal, ezek kzl a fontosabbak az I (insert), D (delete), R (replace), valamint az editls vgt jelz E (exit
editor) parancs.
A T GO (teach go) vagy a T GOS (teach go stright line) specilis editor utasts
hatsra utastssorozatot (sarokpontokat) lehet definilni a betant pult bevonsval a STEP gomb megnyomsra, amely a megfog nyitott (open) vagy zrt (close)
llapott is megjegyzi:
OPEN
GO[ S ] &
[# ]namei
CLOSE

A nevet kiegszt i rtk nullrl indulva miden STEP utn eggyel n.


A robotprogram elindtsa a RUN monitor parancs hatsra trtnik meg. Az
instruction interpreter rtelmezi a soron kvetkez utastst s vgrehajtja azt. A
mozgsutastsok hatsra megtrtnik a plyatervezs s a plya megvalstsa az
irnyt rendszer bevonsval. A mozgs sikeres befejeztvel a rendszer visszatr az
instruction interpreterhez, amely megkezdi a soron kvetkez utasts vgrehejtst.
HE (here) utasts hatsra a rendszer kiolvassa az rzkelk aktulis rtkt, amely
az aktulis robot konfigurcira jellemz, s az rtket csuklvektor vagy pozci s
orientci alakjban az utastsban megadott vltozhoz rendeli. STOP utasts hatsra a program lell, de a monitor megfelel parancsnak hatsra folytathat,
HALT utasts hatsra nem folytathat. EXIT utasts hatsra a program visszatr
a monitorhoz.

3. PUMA robot irnyt s programozsi rendszere

47

A monitor H (here) parancsa hatsra betants kzben is vltozhoz rendelhet


az rzkelknek az aktulis robot konfigurcihoz tartoz rtke csuklvektor vagy
pozci s orientci alakjban. A monitor LT (location teach) parancsnak hatsra
sarokpontok sorozata tanthat be a betant pult bevonsval. A betant pult STEP
gombjnak minden egyes megnyomsakor az informci hozzrendeldik a monitor
parancsban megadott nev vltozhoz, amelynek neve rendre kiegszl a 0, 1, 2, K
kiegszt karakterrel.
A program vgrehajtsnak vezrlst program kapcsolk (program switches)
felgyelik, melyeket a monitor parancsaival lehet belltani, lsd 3.2. tblzat.
3.2. tblzat. Program kapcsolk az ARPS rendszerben

BREAK
DIST10
INCALL
PRINT
SERROR

Stop in every end point of the path segment


Distances in 0.1 mm
Enable of external interrupts
Enable of message print
Enable of servo error detection

A kiemelt fontossg mozgsutastsokat a 3.3. tblzat foglalja ssze. A tblzatban [ ] opcionlis paramtert jell.
3.3. tblzat. Mozgsssal kapcsolatos utastsok az ARPS rendszerben

Short form
GO
GOS
GON

Instruction
GO location
GOS location
GONEAR [loc], distance

GOSN

GOSNEAR [loc], distance

GO&C
GO&O
GOS&C
GOS&O
GOS&W
GO READY
LOC
SH

GO&CLOSE location
GO&OPEN location
GOS&CLOSE location
GOS&OPEN location
GOS&WEAVE location
GO READY
LOCATE loc1=loc2
SHIFT loc=[dx][,dy][,dz]

WI
OUT

WAIT IN in1[,in2][,in3][,in4]
OUT out1[,out2][,out3][,out4]

Function
Go to location (path design in q)
Go to location along stright line
Approach [locA,locp-d locn]
(path design in q)
Approach [locA,locp-d locn]
along stright line
GO and CLOSE during motion
GO and OPEN during motion
GOS and CLOSE during motion
GOS and OPEN during motion
GO and WEAVE during motion
Go into home position
Copy loc2 into loc1
Shift location in base axis
direction by saving the orientation
Wait for in1&in2&in3&in4
Set digital outputs

48

Lantos: ROBOTOK PROGRAMOZSA

Az ARPS nyelvben n. szubrutinok is kpezhetk, melyek CALL utastssal


hvhatk meg, s visszatrs bellk a hvhoz a RETURN utasts hatsra trtnik
meg. A szubrutin hivskor nincs paramtertads, mivel az ARPS nyelvben minden
vltoz globlis, ezrt a hv s a meghvott ugyanazokat a vltozkat ltja.

3.4 Az ARPS utastsainak illusztrlsa: palettz program


Az ARPS fontosabb utastsainak hasznlatt egy palettzsi program megrsa keretben mutatjuk be. A feladat kls hardver eszkzeit a 3.7. bra tartalmazza.

3.7. bra. A conveyor s paletta fontosabb jellemzi

A szlltszalag (conveyor) tnyrokat tartalmaz, amelyeken trgyak rkeznek. A


conveyor a GOCON digitlis jel hatsra indthat, s addig mozog, amg a soron
kvetkez tnyr az n. PICKUP pozcit el nem ri. A PICKUP pozci korbban
be lett tantva, s rtkt az ilyen nev vltoz tartalmazza. Ha a soron kvetkez
tnyr elri a PICKUP pozcit, megszlal egy vgllskapcsol, amely generl egy
digitlis CONRDY ksz jelet. Hatsra a conveyor le is ll, s egy jabb GOCON
hatsra ismt elindul.
A conveyor hardver rszleteivel nem foglalkozunk. A robot, mint intelligensebb
komponens szempontjbl rtelmezzk az irnyokat, eszerint a robot szemszgbl,
amelyen a megrand roboprogram futni fog, GOCON kimen jel s CONRDY bemen jel. A robot digitlis I/O egysge kbellel ssze van ktve a conveyor hajts
vezrl egysgvel. Feltesszk, hogy a kbelezs szerint GOCON a robot digitlis
kimeneti egysgnek 3, CONRDY pedig a digitlis bemeneti egysgnek 2 cmre

3. PUMA robot irnyt s programozsi rendszere

49

van ktve. Ne feledjk, hogy +address magas (high) szintet jell, s + el is hagyhat,
mert + a default rtk. A jelek logikai true rtke a high szint (24V).
A krnyezet msik komponense egy paletta, amelynek 3x3 rekesze van. A rekeszek sor-irnya s oszlop-irnya a bzis koordinta-rendszer x B s y B irnyval
esik egybe, amely fontos lesz a SHIFT utasts hasznlhatsga szempontjbl. (A
program bonyolultabb lenne, ha ez a megszorts nem teljeslne, mert alkalmazni
kellene a FRAME utastst az ltalnos irnyok miatt, tovbb a SHIFT utasts nem
lenne alkalmazhat). A feladat a conveyor-on rkez trgyak elhelyezse a paletta
egymsutn kvetkez rekeszeiben, eclbl a rekeszek meg vannak szmozva. Az 1
index rekesz korbban be lett tantva, helyzett a PALORG vltoz azonostja. Az
alkalmazs esetleges jraismtlsi ignye miatt PALORG rtke nem veszhet el.
A programot keretprogramra s szubrutinra bontjuk. A keretprogram elvgzi a
ciklikus mveletek szervezst, a szubrutin pedig a conveyor-on rkez soron kvetkez trgyat elhelyezi a paletta soron kvetkez rekeszbe. Ennek sorn a megfog tkzst a tnyrral s a benne lv trggyal, vagy a megfogval mr megfogott trgy tkzst a paletta rekeszvel meg kell akadlyozni. Ezrt a clhelyzeteket
elbb megkzeltjk (near), amely trtnhet csuklvltozban vgzett plyatervezssel (GONEAR), s a clhelyzetet csak ezutn rjk el, ktelezen egyenes mentn
mozogva (GOS). Hasonlan jrunk el eltvolodskor is fordtott sorrendben
(GOSNEAR, GO). A megkzltsnl hasznlt offset a tnyr, trgy s rekesz geometriai mretnek ismeretben vlasztand meg, itt feltesszk, hogy 50 mm elegend.
Egy msik fontos szempont tbb mozg berendezs esetn a prhuzamos mozgatsi lehetsgek kihasznlsa. Ehhez egyszerre clszer indtani a conveyor mozgst
s a robot mozgst a PICKUP megkzeltse fel (de nem az elrse fel, mert akkor tkzne az rkez tnyrral benne a trggyal).
A robot a PICKUP pozci elrst nem kezdheti meg addig, amg a conveyor el
nem rte a PICKUP pozcit, azaz meg nem jtt a CONRDY jel. Erre a clra felhasznlhat a WAIT IN CONRDY utasts, amely addig felfggeszti a mozgsutasts elindtst esemnyre vrva, amg a CONRDY jel meg nem jn. Az esemnyfigyelst az ARPS real time kernel elvgzi.
gyeljnk a keretprogramban a ciklusvltozk helyes mdostsra, sszhangban a megoldand feladattal s a paletta mretvel.
Clszer szoftverben knnyen lecserlhet cmkiosztst alkalmazni, ezrt a kimen jel s bemen jel cmt a keretprogramban a jellel azonos nev integer vltozkban GOCON=3 s CONRDY=2 rtkre lltjuk. Mivel a jelek high szintjnek
default jellse a +, ami ezrt el is hagyhat, ezrt OUT GOCON ekvivalens OUT
+GOCON-nal, s ezrt az elbbit hasznljuk. Ne feledjk azonban, hogy a cmkioszts a kbelezssel is kapcsolatban ll, ezrt a kbelezs mdostsakor mdostani kell a cmeket is a keretprogramban.

50

10

20

30

Lantos: ROBOTOK PROGRAMOZSA


C*****************************************************
C
FRAME PROGRAM
C*****************************************************
LOCATE
PALLET=PALORG
SET
GOCON=3
SET
CONRDY=2
SET
PX=1
SET
PY=1
OUT
GOCON
CALL
ONEOBJ
IF
PX=3 THEN JUMP 20
SET
PX=PX+1
SHIFT
PALLET=100,0,0
JUMP 10
IF
PY=3 THEN JUMP 30
SET
PX=1
SET
PY=PY+1
SHIFT
PALLET= 200,100,0
JUMP 10
HALT
C*****************************************************
C
END PROGRAM
C*****************************************************
C*****************************************************
C
SUBROUTINE ONEOBJ
C*****************************************************
GONEAR
PICKUP,50
WAIT IN
CONRDY
GOS
PICKUP
CLOSE
GOSNEAR
PICKUP,50
GONEAR
PALLET,50
GOS
PALLET
OPEN
GOSNEAR
PALLET,50
RETURN
C*****************************************************
C
END ONEOBJ
C*****************************************************

51

4. ROBOTPROGRAMOZS I. Mrsi segdlet.


sszelltotta: Halsz Pter, dr. Laczhzi Gyula, Dr. Lantos Bla
tdolgozta: dr. Halsz Pter, Dr. Lantos Bla

A mrs clja, elismeretek


A mrs Nokia Puma 560 (RM-01) robot ARPS nyelven trtn progamozsval
ismertet meg egy egyszer anyagmozgatsi feladat keretben. A mrs kiterjed a lnyeges pontok betantsra a pult segtsgvel, az elrt mozgs programjnak megrsra, editlsra, tesztelsre s zemszer hasznlatra.

Az elvgzend mozgatsi feladat


Az anyagmozgatsi feladat sorn egy palettamodellben (als sorban) helyet foglal
trgyakat (3db hengeres trgy) kell sorban kiemelni, lerakni egy trol modellben,
majd fordtott elhelyezkedsi sorrendben visszahelyezni a palettamodell msik (fels) rszre.
Az alaplemez vzlatt a mellklet tartalmazza.

Elzetes tudnivalk a berendezsekrl


A mrsek elvgzshez szksges ismereteket az 5-ves kpzsben a Villamosmrnki Szakon a "Robotok irnytsa" s/vagy a "Robotirnyts rendszertechnikja",
Mszaki Informatika Szakon az "Autonm robotizlt rendszerek" cm trgyak tartalmaztk.
Az j BSC kpzsben a mrs elvgzshez szksges ismereteket a jelen ROBOTOK PROGRAMOZSA segdlet 1-3. fejezete tartalmazza.
Az ARPS robotprogramozsi nyelv hasznlatt segt segdletet a mellklet tartalmazza.
A feladatok elvgzse maximlis odafigyelst ignyel, hogy a robot megsrlst s
a balesetveszlyt elkerljk. Vszhelyzetben a pulton vagy a vezrlszekrnyen lv
vszlellt gombbal a mkdst azonnal le kell lltani. A mrs szigoran csak a
mrsvezet oktat felgyelete mellett vgezhet. A betantst kis sebessgek mellett kell vgrehajtani, s a finombelltst ezen bell is kisebb sebessgnl vgezzk.
A program tesztelse elszr mindig kis sebessgnl trtnjen, majd az oktat elrsa szerinti sebessgnl szabad megismtelni. A program tesztelse kzbeni brmi-

52

Lantos: ROBOTOK PROGRAMOZSA

fle hiba, esetleges tkzshez val kzeleds esetn a program futst meg kell
szaktani.
A hengeres trgynak a furatba trtn behelyezse klns figyelmet ignyel, a fokozott tkzsveszly miatt.
A robot srlst okoz, figyelmetlensgbl fakad hibk esetn a mrs nem folytathat. Az elgtelen osztlyzat miatt a mrst ptolni kell.

4. ROBOTPROGRAMOZS I. Mrsi segdlet.

53

Elzetes felkszls, otthoni feladatok


A mrsre val elzetes (otthoni) felkszls sorn megvlaszoland/eldntend
krdsek, elvgzend feladatok:
rteni kell s helyesen hasznlni a GO s GOS tpus mozgsutastsokat,
kztk a klnbsgeket.
rteni kell a GONEAR utasts pontos hasznlatt.
rteni kell a SHIFT utasts hasznlatt.
rteni kell a kombinlt pontok hasznlatt, annak hatst (lsd ARPS sszefoglal s annak Fggelke).
rteni kell a betant pult hasznlatt.
El kell dnteni, hny darab pont betantsa szksges a feladat elvgzshez
(a megfog pontos geometrijt nem ismerjk), s mely(ek) legyen(ek)
ez(ek). Trekedni kell arra, hogy elkerljk a feleslegesen sok pont betantst.
Meg kell rni a feladatot elvgz ARPS programot.
Szempontok a program felptshez:
o Az elzetesen betantott pontok helyzete a program futsa sorn ne
vltozzon (annak rdekben, hogy a program brhol is llt meg
elzleg, azonnal jraindthat legyen).
o A program ne tartalmazzon sebessget befolysol utastst (azt
majd kzzel lltjk be futs sorn).
o A progamban ismtld mozgssorozatot lehetsg szerint szervezzk ciklusba, esetleg alprogramba.

A mrs mdja
A mrs sorn
a mrsvezet oktat ellenrzi az otthoni felkszlst,
a hallgatk szksg szerint pontostjk a magukkal hozott programot,
a hallgatk berjk a programot a vezrlbe,
elvgzik a szksges egyb belltsokat, betantsokat,
kis sebessgnl tesztelik a programot,
vgl nagyobb sebessggel is vgrehajtjk a tesztelt programot.

54

Lantos: ROBOTOK PROGRAMOZSA

A mrsrl kszl jegyzknyv tartalma


A mrsrl mrcsoportonknt kell egy pldny jegyzknyvet kszteni. Ezt legksbb a mrs elvgzse utn egy httel kell a mrsvezetnek leadni.
A jegyzknyvnek tartalmaznia kell mindazokat az informcikat, tevkenysgek
lerst, ahogy a mrcsoport eljutott a helyes mkdst ad megoldshoz a megoldst ad program listjval egytt.

Az elvgzend feladat paramterei


Az "Elhelyezsi vzlat"-on betkkel jelzett mretek az egyes mrcsoportok szmra a kvetkezk (minden mret millimterben adott az brn is s itt is):
Mrcsoport
sorszma
1
2
3
4
5
6
7
8
9
10

"A"
mret
70
70
70
70
90
90
90
110
110
110

"B"
mret
490
490
490
510
490
510
510
490
490
510

"C"
mret
60
80
100
80
80
60
100
60
100
80

rtkels
A mrsvezet az otthoni felkszls ellenrzse, a mrs elvgzse s a jegyzknyv alapjn ad osztlyzatot.

55

Elhelyezsi vzlat

56
A feladat kiindul helyzete
(trgyak a paletta als sorban):

tmeneti helyzet
(a trgyak a trolban):

Vgs helyzet
(trgyak a paletta fels sorban):

57

5. Az ARPS nyelv sszefoglalja


sszelltotta: Pilipr Gbor, Bzi Istvn BME Automatizlsi Tanszk.
tdolgozta: dr. Halsz Pter BME Irnytstechnika s Informatika Tanszk

JELLSEK
Az albbi anyagban a kvetkez jellseket alkalmazzuk:

Parancsok, utastsok nevei


Parancsok, utastsok neveiben az alhzott karakterek hasznlata ktelez, az al
nem hzott nagybets rszeket nem ktelez kirni (rvidtsek).
A [ ] jelek kz rt argumentumok, kiegsztsek hasznlata opcionlis, a programoz szndknak megfelelen (ezeket a '[' s ']' jeleket nem szabad a programba belerni).
A courier bettpussal az argumentumra utalunk, annak tpust megadva a kvetkezk szerint:

Argumentumok
Jells
nnn
var

var
var

nn.n
nn.n
n.nn
dis

Tpus, jelents
egsz tpus konstans
egsz tpus vltoz
(vltozk helyn mindig llhat
egsz tpus szm is)
sebessgtnyez
(szzalkban rtend)
digitlis I/O cmek

decimlis konstans
sebessgrtk (mm/s)
decimlis konstans
egsz tpus konstans, tvolsgot
[mm] jelent

Lehetsges rtk, plda, megjegyzs

-32768 .. 32767
-32768 .. 32767
3 .. 300
Az ARPS 1 .. 256 s -1 .. -256 rtket
enged meg, a NOKIA-PUMA robot
vezrlje esetn 1 .. 32 s -1 .. -32 rtkek rtelmesek.
Pozitv rtkek logikai "1"-et, negatv
rtkek logikai "0"-t jelentenek.
Csoportos cmzs esetn lehetsges
rtkek: 1 .. 2 (a 16 bites csoportot,
mint szt cmezi)
-3276.8 .. 3276.7
2 .. 500
-327.68 .. 327.67
-1024.00 .. 1023.99

58
Jells
ang

Lantos: ROBOTOK PROGRAMOZSA

prg
file

Tpus, jelents
egsz tpus konstans, szgrtket [fok] jelent
egsz tpus konstans, csuklindexet jelent
programnv
filenv

aopr
cmp
str
lbl
swit

aritmetikai opertor
sszehasonltsi opertor
szvegkonstans
cmke
programkapcsol

jnt

Lehetsges rtk, plda, megjegyzs

-180.000 .. 179.995
1 .. 6
Szimbolikus nv.
Lehetsges formja: szimblikus
nv.kiterjeszts
kiterjeszts: .P program, .L pontok
+, -, *, /, MOD, AND, OR
=, <>, >, <, >=, <=
Plda: ALMA
pozitv egsz szm
Lehetsges rtkek, alaprtelmezs:
BREAK default: DISABLED
DIST10 default: DISABLED
INCALLS default: DISABLED
PRINT default: ENABLED
SERROR default: ENABLED

loc
loc

precz pont (csuklkoordintkat


trol)
koordintapont
(P=x,y,z,o,a,t -t trol, rtelmezs:

Plda: #PONT
Plda: PONT

alap (bzis) koordinta-rendszerben)

loc

relatv pont
(egy bzisframe-nek s az ehhez kpest
relatv pontnak az ered transzformcija)

loc

inverz pont

Plda: BASE(PONT)
(kombinlt pontnak is nevezik)
a pontnak, mint transzformcinak az
inverze
(Pont: alap koordinta-rendszer origjbl a
pontba. Inverz pont: a szerszm koordintarendszerben a pontbl az alap koordintarendszer origjba)

loc

tkrpont

relatv pont egy bzisponthoz kpesti


specilis tkrkpe bzispontra val
hivatkozskor
(A relatv pont pozcija a szerszm koordinta-rendszernek xy skjra, orientcija
pedig az alap koordinta-rendszer xy skjra
tkrzdik)

5. Az ARPS nyelv sszefoglalja

59

MONITOR PARANCSOK
Pontok meghatrozsa
CHANGE loc
Listzza a pont rtkt, meg lehet vltoztatni (j pont generlsa).
loc: precz- vagy koordinta pont

HERE loc
Pont rtknek bevitele a memriba (aktulis robothelyzet szerinti j
pont generlsa). loc: precz-, koordinta- vagy relatv pont

WHERE[#]
Folyamatosan listzza az aktulis pontot. Kilps: RETURN billentyvel.

LTEACH loc
Pont betantsi zemmd, a betant pulton lv STEP gomb megnyomsakor mindig egy j pont troldik el. loc: precz-, koordintavagy relatv pont. Pl: LTEACH A s a STEP hromszori hasznlata
utn az eredmny A0, A1, A2

Floppy kezels
STORE file[=prg][,prg]...
Floppy-ra trol a megadott filenven programo(ka)t s/vagy pontokat.
Kiterjeszts: .P programok, .L pontok, kiterjeszts nlkl mindkett

LOAD file
Program(ok) s/vagy pontok betltse floppy-rl. Kiterjeszts: .P programok, .L pontok, kiterjeszts nlkl mindkett

FDIR
Floppy directory - programok neve, mrete, szabad kapacits

FPACK
Lemezen lv adatok tmrtse, trendezse

FDEL file
File trlse floppy-rl. Kiterjeszts: .P programok, .L pontok, kiterjeszts nlkl mindkett

60

Lantos: ROBOTOK PROGRAMOZSA

ZERO DISK
Floppy lemez formzsa. Vgrehajts eltt megerstst vr: Are you
sure (y/n)?

Memria kezels
PDIR
Memriban lv programok nevnek listzsa

PLIST [prg][,prg]...
Program(ok) kilistzsa (nv nlkl az sszes memriban lv programot)

LLIST [loc][,loc]...
Pontok kilistzsa (nv nlkl az sszes memriban lv pontot)

LDEL loc[,loc]...
Pontok trlse a memribl

DLOAD file
Azokat a programokat s/vagy pontokat trli ki a memribl, amelyek
a floppy-n a file-ban vannak

ZERO MEMORY
Teljes memria trlse. Vgrehajts eltt visszakrdez: Are you sure
(y/n)?

Program vezrls
RUN prg[,nnn]
A megadott nev program indtsa.
nnn
nincs, vagy 0
egyszer fut le a program
n
n-szer fut le a program
<0
vgtelen ciklusban fut

ABORT
Program meglltsa (az ppen fut programlps vgn lltja meg)

CONTINUE [nnn]
A meglltott program folytatsa
nnn
>=0 vagy nincs a kvetkez lpstl folytatja
<0
a megszaktott lpstl folytatja

5. Az ARPS nyelv sszefoglalja

61

EXIT
A program befejezse (a program vgn lltja le s a RUN szmlljt
nullzza)

ENABLE swit
Programkapcsol engedlyezse

DISABLE swit
Programkapcsol tiltsa

DIA file
Diagnosztikai programok betltse, indtsa

COM prg
Parancsprogram indtsa (parancsprogram: olyan program, amely csak
monitorparancsokat tartalmaz)

Sebessg megadsa
MAXSPEED nn.n
Maximlis sebessg megadsa [mm/s]

SPEED nn.n
Aktulis sebessg megadsa [mm/s]

SPEED% var
Sebessgtnyez megadsa (3%..300%)

Egyb
EDIT [prg]
Program szerkesztse. Ha nem adunk meg programnevet, akkor az
utoljra szerkesztettet hozza fel

C str
Megjegyzs parancsprogramokban

LIST COMMANDS
Lista az rvnyes parancsokrl s utastsokrl

LIST STATUS
Sttusz listzsa (BASE, TOOL rtke, kapcsolk llsa, sebessgek,
ppen fut program aktulis lpsszma)

62

Lantos: ROBOTOK PROGRAMOZSA

CAL [nnn],[nnn],[nnn],[nnn],[nnn],[nnn]
Kalibrls.
nnn
>0
ja
<0
ja

az adott csuklt pozitv irny mozgssal kalibrlaz adott csuklt negatv irny mozgssal kalibrl-

CLOAD file
Kalibrlsi rtkek betltse file-bl

WEAVE dis[,n.nn][,n.nn]
A psztz mozgst paramterezi. Paramterek sorrendben: ampltd,
peridusid, tartzkodsi id.

ZERO OUTS var TO var


Digitlis kimenetek nullzsa

SYSMON
Rendszermonitor (ODT) hvsa Vgrehajts eltt visszakrdez: Are
you sure (y/n)?

.<pont>
Pont utn rva brmelyik program utasts vgrehajthat monitorbl

5. Az ARPS nyelv sszefoglalja

63

PROGRAM UTASTSOK
Pontokkal kapcsolatos utastsok
HERE loc
Az aktulis robothelyzetet a megadott nven eltrolja a memriban.
loc lehet precz, koordinta vagy relatv pont

LOCATE loc=[INVERSE] loc


Pont msolsa, talaktsa. loc lehet precz, koordinta vagy relatv
pont

FRAME loc=loc,loc,loc[,loc]
zemi keret megadsa. Paramterek sorrendben: orig, x tengely pozitv pontja, xy sk pozitv y oldali pontja, eltolt (vgleges) orig

SHIFT loc=[dis],[dis],[dis]
Pont eltolsa x, y, z tengelyek mentn

DISTANCE var=loc,loc
Kt pont tvolsgt adja meg. Az eredmny egsz!

MIRROR loc
Tkrz pontot definil

NO MIRROR
A tkrzst tiltja

SCALE loc=var,var,var
A sklzs bzispontjt s nagytst definilja. Pldul:
'SCALE BASE=2000,2000,2000' utn 'BASE(A)' esetn A pont mindhrom tengely irnyban ktszer olyan messze lesz BASE-tl, mint
sklzs nlkl

NO SCALE
A sklzst tiltja

Program elgaztatsok
JUMP lbl
Felttel nlkli ugrs a megadott cmkre

64

Lantos: ROBOTOK PROGRAMOZSA

IF [INGROUP] var cmp [INGROUP] var THEN JUMP lbl


Feltteles ugrs

IF IN var[,var][,var][,var]
Digitlis bemenetek llapottl fgg feltteles ugrs (maximum 4
bemenet S kapcsolata)

CALL prg
Szubrutinhvs (paramtertads nincs, minden vltoz s pont globlis)

RETURN [var]
Szubrutinbl val visszatrs. Ha van var, akkor annyi darab programsort kihagy a hv programbl visszatrskor. Ha szubrutin vgn
nincs RETURN, a program vgrehajts a szubrutin vgn befejezdik.

Mozgat utastsok
GO loc
A megadott pontba megy interpollt plyn. Specilis eset: 'GO
READY' home pozciba megy

GOS loc
Egyenes plyn megy a kvnt pontba

GO&OPEN loc
A megadott pontba megy interpollt plyn, ekzben nyitja a megfogt

GO&CLOSE loc
A megadott pontba megy interpollt plyn, ekzben zrja a megfogt

GOS&OPEN loc
A megadott pontba megy egyenes plyn, ekzben nyitja a megfogt

GOS&CLOSE loc
A megadott pontba megy egyenes plyn, ekzben zrja a megfogt

GONEAR [loc],dis
Interpollt plyn megkzelti a clpontot. A mozgs vgpontja az a
pont, amely a megadott loc ponttl a szerszm -z tengelye irnyban
a megadott tvolsgra van. Ha a pontot nem adjuk meg, az aktulis
pontbl megy a szerszm -z tengelye irnyban az adott tvolsgra

5. Az ARPS nyelv sszefoglalja

65

GOSNEAR [loc],dis
Abba a pontba megy egyenes plyn, amelytl a megadott pont a szerszm z tengely irnyban az adott tvolsgra van. Ha a pontot nem adjuk meg, az aktulis pontbl megy a szerszm -z tengelye irnyban az
adott tvolsgra

GOS&WEAVE loc
A megadott pontba megy egyenes plyn s kzben psztz mozgst
vgez a szerszm xy skjban

MOVE [dis],[dis],[dis]
Relatv mozgs az alap koordinta-rendszer x, y, z irnyban interpollt plyn

MOVES [dis],[dis],[dis]
Relatv mozgs az alap koordinta-rendszer x, y, z irnyban egyenes
plyn

TMOVE [dis],[dis],[dis]
Relatv mozgs a szerszm koordinta-rendszer x, y, z irnyban interpollt plyn

TMOVES [dis],[dis],[dis]
Relatv mozgs a szerszm koordinta-rendszer x, y, z irnyban egyenes plyn

MOVE JOINT jnt,ang


A megadott csuklt az adott szggel mozgatja

ALIGN
A szerszm z tengelyt a legkzelebbi bzis koordinta-tengely irnyba beforgatja gy, hogy kzben a pozci vltozatlan marad. A beforgats a kt tengelyre merleges egyenes menti forgatssal trtnik.
(A mvelet elvgzse nem jelenti azt, hogy a forgats utn a megfog
x s y tengelyei is prhuzamos helyzetbe kerlnnek a bzis brmelyik
tengelyvel.)

Sebessg belltsa
SPEED nn.n
Aktulis sebessg megadsa [mm/s]

66

Lantos: ROBOTOK PROGRAMOZSA

SPEED% var
Sebessgtnyez megadsa (3%..300%)

SPEED NEXT nn.n


A kvetkez mozgat utastst ezzel a sebessggel hajtja vgre

Szerszm megfog vezrlse


OPEN
Nyitja a megfogt

CLOSE
Zrja a megfogt

ODELAY n.nn
Az OPEN utastst paramterezi, nyits utn a megadott ideig vr

CDELAY n.nn
A CLOSE utastst paramterezi, zrs utn a megadott ideig vr

I/O utastsok
OUT var[,var][,var][,var]
Digitlis kimenetek lltsa egyedileg

OUTGROUP var=[INGROUP] var [aopr [INGROUP] var]


Digitlis kimenetek lltsa csoportosan

RUNOUT var[,var][,var][,var]
A megadott kimeneteket adott llapotba lltja, ha a program futsa
megszakad

WAIT IN var[,var][,var][,var]
Adott bemeneti kombincira vr (S kapcsolat). Specilis esetben jelre vr. Az esemny bekvetkeztig a program tovbbi futsa fel van
fggesztve.

INCALL var,prg [NOBREAK]


Megszakts engedlyezse. Megszakts esetn prg-ra addik a vezrls (a megszaktsbl val visszatrskor a megszaktott utasts
vgrehajtsra tr vissza.)

5. Az ARPS nyelv sszefoglalja

67

NO INCALL var
Megszakts tiltsa

ZERO OUTS var TO var


Digitlis kimenetek nullzsa

Koordinta-rendszer mdostsa
BASE [dis],[dis],[dis],[ang]
Alap koordinta-rendszer transzformlsa, a paramterek sorrendben:
dx, dy, dz, do (utbbi az alap z tengelye krl fordul)

TOOL [dis],[dis],[dis],[ang],[ang],[ang]
Szerszm koordinta-rendszer transzformlsa. A paramterek sorrenben: dx, dy, dz, do, da, dt

LTOOL loc
Ugyanaz mint az elbb, csak egy ponttal lehet megadni a transzformcit

Konfigurci mdostsa
J2 RIGHT
Kettes csukl (vll) jobbkezes

J2 LEFT
Kettes csukl (vll) balkezes

J3 UP
Hrmas csukl (knyk) fels llsban

J3 DOWN
Hrmas csukl (knyk) als llsban

J5 PLUS
ts csukl (csuklizlet) pozitv

J5 MINUS
ts csukl (csuklizlet) negatv

68

Lantos: ROBOTOK PROGRAMOZSA

Lellt utastsok
STOP ['str'][,var]
A programot gy lltja meg, hogy CONTINUE paranccsal tovbb futtathat, kirja 'str'-t s 'var' rtkt

HALT ['str'][,var]
Ugyanaz mint az elbb, de nem folytathat a programvgrehajts

EXIT
Program futs befejezse, a program a vgn ll meg (a RUN szmlljt nullzza)

Floppy kezels
LOAD file [NOBREAK]
Betlt egy file-t a floppy-rl

DLOAD file [NOBREAK]


Azokat a programokat s/vagy pontokat trli a memribl, melyek a
floppy-n a file-ban vannak

WAIT LOAD
A floppy mvelet vgrehajtsa utn fut tovbb a program

Egyb utastsok
C [str]
Megjegyzs

COM
Monitor parancs hasznlata programon bell, pldul: COM CAL

DELAY n.nn
Megadott idt ksleltet

ENABLE swit
Programkapcsol engedlyezse

DISABLE swit
Programkapcsol tiltsa

5. Az ARPS nyelv sszefoglalja

69

PRINT ['str'][,var]
Kpernyre val kirats

SET var=[INGROUP] var [aopr [INGROUP] var]


Vltoz rtkadsa

TOL NARROW
Szerszm belltsi pontossg vezrlse, pontos

TOL WIDE
Ugyanaz, mint az elbb, kevsb pontos

WEAVE dis[,n.nn][,n.nn]
A psztz mozgst paramterezi. A paramterek sorrendben: ampltd, peridusid, tartzkodsi id

EDITOR PARANCSOK
E
Kilps (exit)

I
Beszrs (insert). A kurrens sor el szr be, kiszlls: res sor

D [nnn]
Trls (delete). Ha nnn nincs megadva, akkor csak a kurrens sor trlse

P [nnn],[nnn]
Listzs. Ha nincs paramter, akkor az els sort adja. Paramterek:
kezdsor, sorok szma

R str^str
A kurrens sorban cserli az els string-et a msodikra (replace)

RA str^str
Ugyanaz mint az elbb, de az egsz file-ra vonatkozik (replace all)

T GO loc
A kvetkez utastsokat generlja a kzi betantpult STEP gombja
megnyomsra:
ha a megfog nyitott, akkor 'GO&OPEN loc'
ha a megfog zrt, akkor 'GO&CLOSE loc'
a pontok koordinti troldnak a memriban nvekv indexszel

70

Lantos: ROBOTOK PROGRAMOZSA

T GOS loc
A kvetkez utastsokat generlja a kzi betantpult STEP gombja
megnyomsra:
ha a megfog nyitott, akkor 'GOS&OPEN loc'
ha a megfog zrt, akkor 'GOS&CLOSE loc'
a pontok koordinti troldnak a memriban nvekv indexszel

FGGELK

71

FGGELK
Az albbiakban nhny utasts hatst, mkdsnek rszleteit mutatjuk be, matematikai formba ntve.
Koordintapont eltrolsa s rtelmezse
x

Euler (o, a, t ) y

x, y, z , o, a, t T BE =

z
0 0 0
1

HERE B(REL)
Tegyk fel, hogy az
T REL := T B

aktulis

pozci

T AKT .

Az

utasts

hatsra

T AKT pozcit fogja eltrolni.

GO B(REL)
Az utasts hatsra a TB TREL pozci lesz a mozgs clpontja.
BASE x, y, z,
(Az x, y, z , rtkek kizrlag numerikus rtkek lehetnek!)
Az utasts vgrehajtsa utn a TB 0 transzformci rtke a kvetkez lesz:

TB 0

Rot ( z , ) 1
=

0 0 0

KB

TB0

x c

y s
=
z 0
1 0

K0

T06

s
c
0
0

K6

0 x
0 y
1 z

0 1

T6E

KE

TBE
GONEAR PONT,d
(d rtk kizrlag numerikus rtk lehet!)
Az utasts vgrehajtsa vgn a megfog pozcija:
A
TBE = PONT
T
0

p PONT n PONT * d

You might also like