TALLINNA TEHNIKAÜLIKOOL Elektriajamite ja jõuelektroonika instituut AAR000 Sissejuhatus robotitehnikasse KODUTÖÖ Teemal: Tööstusroboti Mitsubishi RV-6SD kinemaatika ja juhtimine Tudeng: Aleksei Tepljakov (0987 IASM) Juhendaja: Tõnu Lehtla TALLINN 00
SISUKORD ROBOTI VALIK... ROBOTI MITSUBISHI RV-6SD KIRJELDUS.... TEHNILISED ANDMED.... MANIPULAATORI EHITUS.... MANIPULAATORI TELJED....4 KONTROLLER....5 KASUTUSOTSTARVE... 7.6 LIHTSUSTATUD KINEMAATIKASKEEM... 7 ROBOTI KINEMAATIKA OTSENE ÜLESANNE... 9 4 ROBOTI KINEMAATIKA PÖÖRDÜLESANNE... 5 ROBOTI KÄE SIRGJOONELISE LIIKUMISE PLANEERIMINE... 4 6 ROBOTI KAHETASANDILINE HIERARHILINE JUHTIMINE... 9 7 ESIMESE ASTME MOOTORI VAJALIK VÕIMSUS... 0 8 KOKKUVÕTE... - -
ROBOTI VALIK Antud töö teostamiseks valisin Mitsubishi RV-6SD roboti. Järgnevalt kirjeldan seda roboti ehitust, põhiomadusi, kinemaatikat, tehnilisi andmeid, tööpõhimõtet, juhtimist ning lahendan roboti tööga seotud ülesandeid. ROBOTI MITSUBISHI RV-6SD KIRJELDUS Mitsubishi RV-6SD MELFA robot on RV-S seeria kõige väiksem robot, mis leiab laia kasutuse eelkõige laboratooriumis, kus saab seda robotit kasutada näiteks teimikehade haldamiseks, analüüsseadmetega tööks ning erinevate juhtimisülesannete kvaliteetseks läbiviimiseks. Kuna RV- 6SD on kompaktne, siis saab seda robotit hõlpsasti paigutada olemasolevate automaatsüsteemide kõrvale või isegi integreerida automaatsüsteemide sisse. RV6-SD puhul kehtivad selle roboti seeria põhiomadused, s.h.: Kiirem toime oma klassis (maksimaalne liitkiirus 9. m/s RV-6SD puhul); Kõrge koormuskandvus, mis on võimalik tänu spetsiaalsete mootorite kasutamisele; Kõrge täpsusega liikumine; Kõrged kaitsestandardid (IP65/IP54); Kompaktsus; Universaalsus.. TEHNILISED ANDMED Robotikäe (manipulaatori) olulisemaid tehnilisi andmeid saab vaadata tabelist (seeria standartsete spetsifikatsioonide koondtabel, rohelise värviga on eraldatud see info, mis puudutab RV-6SD roboti). Spetsifikatsioonid on inglise keeles. Joonisel on kujundatud roboti tööpiirkond. Kui on vaja, siis tabelis ja joonisel esitatud märkmed saab leida originaaldokumendist (roboti spetsifikatsioonid).. MANIPULAATORI EHITUS Joonisel on esitatud manipulaatori sisemine ehitus mootorite ning reduktoritega.. MANIPULAATORI TELJED Joonisel on esitatud manipulaatori teljed. Pöörlemisnurkade märgid vastavad roboti käe juhtimisele JOINT JOG režiimis..4 KONTROLLER Roboti käe juhtimiseks sobivad kontrollerid CRD-700 või CRD-700. Roboti käe ühendamine kontrolleriga CRD-700 on näidatud joonisel 4. - -
Tabel. RV-6SD roboti käe spetsifikatsioonid - 4 -
Joonis. Roboti tööpiirkond - 5 -
Joonis. Manipulaatori sisemine ehitus Joonis. Roboti teljed (juhtimine režiimis JOINT Jog) - 6 -
.5 KASUTUSOTSTARVE Joonis 4. Roboti käe ühendus kontrolleriga CRD-700 Ametlikus brošüüris on antud järgmised roboti kasutamise võimalused: Materjalide töötlemine; Hermeetimine, pakendamine; Töö konveieri juures, toodete kokkupanek; Töö elektriseadmetega; Kettade/plaatide ohutu ülekandmine, sorteerimine; Toodete puhastamine. Roboti töörista valikul tuleb arvsetada spetsifikatsioonidega, robot toetab pneumaatilisi tööristu. Paistab, et haaratsite toetus on piisavalt lai ehk saab mõne ülemineku abil ühendada palju erinevaid haaratsi. Loomulikult tuleb ikkagi hoolikalt lugeda läbi tehnilise dokumentatsiooni, mis peab olema robotiga kaasas, või konsulteerida Mitsubishi toetusesindajatega..6 LIHTSUSTATUD KINEMAATIKASKEEM Järgnevalt esitan lihtsustatud kinemaatikaskeemi roboti nelja kinemaatilise ahela koordinaadi jaoks. Lihtsustus seisneb selles, et me ei arvesta vabaduseastmed 4 ja 5. See skeem läheb vaja tulevastel arvutustel. Saadud skeem on kujutatud joonisel 5. Kõikide koordinaadistikude alguspunktid asuvad ühe ja sama tasandi sees. - 7 -
Parameetid: H H = 9 mm = mm A = 85 mm L = 80mm H L = 00 mm = 400 mm Joonis 5. Roboti käe lihtsustatud kinemaatika skeem L võib nähtavasti muuta sõltuvalt haaratsi tüübist/pikkust. - 8 -
ROBOTI KINEMAATIKA OTSENE ÜLESANNE Antud juhul tähendab roboti kinemaatika otsene ülesanne seda, et pöördenurkade abil leitakse haaratsi tööpunkti baaskoordinaadistikus. Ülesanne lahendamiseks tuleb koostada teljestikute teisendusmaatrikseid. Arvutamiseks (ka sümbolkujul) kasutame tasuta programmi (wx)maxima. Sin() funktsiooni asemel kasutame siin töös lühendit s(), cos() asemel aga c(). Rotatsioonmaatrikseid on väga mugav arvutada, kui defineerida Maxima s funktsioone: rotz(a):=matrix([cos(a),-sin(a),0],[sin(a),cos(a),0],[0,0,]); roty(b):=matrix([cos(b), 0, sin(b)], [0,,0], [-sin(b),0,cos(b)]); rotx(c):=matrix([,0,0],[0,cos(c),-sin(c)], [0,sin(c),cos(c)]); Esimene teljestik on baasteljestiku suhtes pööratud ümber z-telje nurga α võrra ning nihutatud 0; 0; H võrra. Maatriks 0 T seega: vektori [ ] ( α) s( α) ( α ) c( α ) c 0 0 s 0 0 T = 0 0 H 0 0 0 0 Teine teljestik on esimese suhtes nihutatud vektori [ ] A;0; H võrra Samas on see teljestik esimese teljestiku suhtes pööratud ümber y-telje -90 o võrra, siis ümber x-telje -90 o võrra, siis ümber z-telje nurga α võrra. Rotatsioonimaatriks: Teisendusmaatriks: ( ) s( ) c 90 0 90 0 0 0 0 Rabi = 0 0 0 c( 90 ) s( 90 ) 0 0 =, s( 90 ) 0 c( 90 ) 0 s 0 0 ( 90 ) c( 90 ) 0 0 c α s α 0 s α c α 0 ( ) ( ) ( α ) ( α ) ( ) ( ) R= 0 0 s c 0 = 0 0 0 0 0 0 c( α) s( α) 0 ( α ) c( α ) s 0 A 0 0 0 T = c( α) s( α) 0 H 0 0 0-9 -
Kolmas teljestik on teise suhtes nihutatud vektori [ ] α võrra. Teisendusmaatriks seega: ( α) s( α) ( α ) c( α ) c 0 L s 0 0 T = 0 0 0 0 0 0 Neljas teljestik on kolmanda suhtes nihutatud vektori [ ; ;0] L ;0;0 võra ning pööratud ümber z-telje nurga H L suhtes ning pööratud ümber z-telje -90 o võrra, ümber y-telje -90 o võrra ning seepärast ümber z-telje nurga α 4 võrra. Rotatsioonimaatriks: Ning teisendusmaatriks: Et saada teisendusmaatriks ( ) ( ) ( α ) ( α ) ( ) ( ) 0 0 c α s α 0 s α c α 0 4 4 4 4 4R= 0 0 s 4 c 4 0 = 0 0 0 0 0 0 c( α4) s( α4) 0 ( α ) ( α ) s 4 c 4 0 H 0 0 L T = 0 0 0 4 c( α4) s( α4) 0 0 tuleb kõik eelnevalt leitud teisendusmaatrekseid läbi korrutada: 0 T 4 0 0 4 = 4 T T T T T Meie ülesande jaoks ei ole vaja tervet saadud maatriksi 0 4 T välja kirjutada. Piisab, et kirjutame välja selle viimast tulpa: 0 4 T ( :4,) ( ( + + ) + ( )( ( ) ( ) H ) ) ( ( + + ) + ( ) ( ( ) + ( ) ) + ) ( H ) s( )( c( ) L + s( ) H ) + H + H ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) + + ( ) c α s α s α L L c α H c α c α L + s α + A s α s α s α L L c α H c α c α L s α H A = c α s α L L c α α α α - 0 -
Maxima s võib koostada funktsiooni, mis arvutab kolme nurga ning parameetrite väärtuste abil koordinaate baaskoordinaadistikus: Tnum(a,a,a,a4,H,H,H,A,L,L):=matrix( [cos(a)*(sin(a)*(-sin(a)*l+l+cos(a)*h)+cos(a)*(cos(a)*l+sin(a)*h)+a)], [sin(a)*(sin(a)*(-sin(a)*l+l+cos(a)*h)+cos(a)*(cos(a)*l+sin(a)*h)+a)], [cos(a)*(-sin(a)*l+l+cos(a)*h)-sin(a)*(cos(a)*l+sin(a)*h)+h+h], []); Et kontrollida eelmiste arvutuste õigust, saab katsetada funktsiooni, kui kõik nurgad on nullid. Valitud kinemaatikaskeemi jaoks see tähendab seda, et roboti poos peab välja nägema nagu täht Г A + L ; 0; H + H + H = 485; 0; 70 [mm]. ning koordinaadid peavad seega olema [ ] [ ] Tulemus Maxima s: Nagu näha, saime just õiged koordinaadid. Märkus: tavaliselt roboti poos, kui kõik nurgad on nullid, on see, kus kõik liigendid on suunatud ülespoole. Et antud juhul seda saavutada, võib muuta α nurga: ( α ) α = 90 Meie aga kasutame edaspidi eelpool valitud kinemaatika arvutusskeemi. Lahendame see ülesanne veel ühe nurgakomplekti jaoks: α = 6, α =.5, α = 50. Et kasutada eeltoodud funkstiooni, tuleb need nurgad teisendama vastavate nurkadega radiaanides, saame π π α =, α =, α = π. Tulemus Maxima s: 5 8.6 Seega vastavad koordinaadid nullkoordinaadistikus on [ ] 9.9; 9.70; 57.7 [mm]. - -
4 ROBOTI KINEMAATIKA PÖÖRDÜLESANNE Kinemaatika pöördülesande lahendamine tähendab seda, et antud tööriista baaskoordinaatide järgi tuleb leida pöördenurgad. Kasutan eelpool leitud baaskoordinaadid, et oleks mugavam tulemus kontrollida: [ x; y; z ] = [ 9.9; 9.70; 57.7]. Ülesandeks on siis arvutada nurgad α, α, α. Et leida nurk α vaatame joonist 6. On näha, et Pythagorase teoreemi järgi: Kohe saab leidma nurk α : Joonis 6. Nurga α leidmine [ ] n= x + y = 9.9 + 9.70 = 407.80 mm y 9.70 α = arcsin = arcsin = 6 n 407.80 Nurgad α, α ei ole nii kergesti leitavad. Selleks, et neid leida vaatleme kolmnurke, mis tekivad (x0n) tasandil (joonis 7). - -
Joonis 7. Nurkade α, α leidmine tasandil Üldised seosed on siin järgmised, arvestades et ( H z H H ) < < + : [ ] n = n A =.80 mm [ ] [ ] m= L + H = 4. mm k = H + H z = 9.7 mm [ ] n = k + n = 5.85 mm Nurk α leitakse järgmiselt (kasutades Pythagorase teoreemi ja koosinusteoreemi): ( ) α = 80 β + β L + n m β = arccos = arccos( 0.7) = 8.5 L n n β = arcsin = arcsin ( 0.96) = 7.97 n ( ) α = 80 8.5 + 7.97 =.50 - -
Nurk α leitakse lähtudes järgmistest faktidest: Tuleb leida nurgad, Lõplikult: α = 80 90 δ = 90 δ ( ) δ + γ + γ + β = 80 γ γ ning seejärel ( ) δ = γ + γ β : 80 n + m L γ = arccos = arccos( 0.780) = 4.44 n m H γ = arcsin = arcsin ( 0.45) = 4.0 m δ = 80 ( 4.44 + 4.0) 8.5 = 40.00 α = 90 40.0 = 50.0 Seega vastus on, et baaskoordinaatidele [ ] α = 6, α =.5, α = 50 õige. 9.9; 9.70; 57.7 vastavad pöördenurgad. Vastus langeb täpselt kokku eelnevate arvutamistega ja seega on 5 ROBOTI KÄE SIRGJOONELISE LIIKUMISE PLANEERIMINE Liikumise alguspunktiks valiks see, kus kõik pöördenurgad on nullid, vastavad koordinaadid on P = 485; 0; 70. Lõpppunktiks võiks võtta ka see punkt, mille koordinaadid oleme varem leitud A [ ] α = 6, α =.5, α = 50 ehk P = [ 9.9; 9.70; 57.7] nurkadele B. Need punktid asuvad kindlasti roboti tööruumis ning nendevaheline sirgjooneline liikumine on võimalik. Kogu tee pikkus: ( ) ( ) ( ) max s = x x + y y + z z = = ( 9.9 485.00) + ( 9.70 0) + ( 57.7 70) = 497.76 [ mm] = 0.498[ m] Kogu liikumise aega valikul tuleb arvestada roboti lülide maksimaalsed pöörkemiskiirused. Need on antud tabelis. Kuna robot on üsna kiire (liitkiirus on nagu eelnevalt mainitud peaaegu 0 m/s), siis liikumise aeg võib üsna lühike. - 4 -
Kontrollime, kui kiiresti võivad pöörleda lülid J, J ning J nurkade võrra: t t t J J J 6 = = 0.09 40.5 = = 0.07 50 = = 0. 40 [ s] [ s] [ s] α = 6, α =.5, α = 50 Kõige rohkem aega võtab antud juhul lüli J pöörlemine. Võtame kogu liikumise kestuseks sekundit. Arvutusi teeme trapetsikujulise kiirusdiagrammi põhjal (joonis 8), eeldades et protsess on tükeldatud kolmeks etapiks, igaüks kestab sekund. Seega kiirust kirjeldav trapets on võrdhaarne. Joonis 8. Liikluse planeerimise asendi, kiiruse ning kiirenduse diagrammid Asendi, kiirus ja kiirendusdiagrammid tuleb plaanida splainina. Võib välja kirjutada igale etapile vastava võrrandit üldkujul ning seepärast hakkama lahendama. - 5 -
. etapi võrrandid üldkujul: s = c0+ c t+ c t v = c + c t a = c Kuna algushetkel asend ning kiirus on nullid, siis c 0 = 0, c = 0. Maksimaalne kiirus arvutatakse lähtudes sellest, et kogu tee pikkus on kiirustrapetsi pindala. Antuda trapetsi pindala on: s max a+ b + smax = S = h= h= h, kus a, b on liikluse ajad ning h on maksimaalne kiirus Maksimaalne kiirendus on v a s 0.498 max max = = = v max, mida saab arvutada nii: m 0.49 s v 0.49 m = = = 0.49, max max t s sellepärast et roboti käsi saavutab kiirust 0.49 m/s ühe sekundi jooksul. Seega valemist: Lõplikud valemid. etapi jaoks:. etapi võrrandid: a c c a a 0.49 max = = = = = 0.5 s = 0.5 t v = 0.50 t a = 0.50 s = c + c v = c 0 t c saab arvutada Kiirendus puudub, st. a = 0. Kiiruse kohta oskame öelda, et see on konstantne ning võrdub maksimaalse kiirusega v. Seega c = vmax = 0.49. max - 6 -
Algushetkel t = asend s = s, c0 koeffitsiendi arvutamiseks kasutame valemi: Saadud võrrandisüsteem:. etapi üldistatud võrrandid: t = : s = c + c t, s = s c = s c t = 0.5 0.49 = 0.4 0 0 s v = 0.4 + 0.49 t = 0.49 s = c0+ c t+ c t v = c + c t a = c Arvestades, et kiiruse trapets on võrdhaarne, kiirendus on võrdne kiirendusele vastase märgiga ning seega saab arvutada nii: Et arvutada olema võrdne c = 0.5. Kuna kiirus momendil t = peab olema võrdne nulliga, siis a ( ) t = : v = 0, v = c + c t c = 0.5 = 0.750 c vaatleme asendi kirjeldava võrrandi momendil t =. Asend peab sellel momendil 0 ( ) s = 0.74, seega: 0.74 = c + 0.750 0.5 c = 0.74.5 + 0.5 = 0.66 0 0 Saadud kolmanda etapi võrrandisüsteem näeb välja selliselt: s = 0.66 + 0.750 t 0.5 t v = 0.750 0.50 t a = 0.50 Arvutustele vastavad asendi, kiiruse ning kiirenduse diagrammid näeb joonistel 9, 0 ning. a c - 7 -
0,600 0,500 s(t) [m] v(t) [m/s] a(t) [m/s*s] 0,400 0,00 0,00 0,00 0,000 0 0,5,5,5 0,00 0,50 0,00 0,50 0,00 0,050 t [s] Joonis 9. Asendidiagramm 0,000 0 0,5,5,5-0, -0, t [s] Joonis 0. Kiirusediagramm 0, 0, 0, 0 0 0,5,5,5-0, t [s] Joonis. Kiirendusediagramm - 8 -
6 ROBOTI KAHETASANDILINE HIERARHILINE JUHTIMINE Kuna antud robot spetsifikatsioonil ning kättesaadaval kasutusjuhendil puudub informatsioon juhtimise algoritmidest jms, siis kirjeldame roboti juhtimist lähtudes üldisest informatsioonist, mida saab leidma T. Lehtla raamatust Roboti juhtimine. Hierarhia roboti juhtimises on vaja sellepärast, et robotit haldav riistvara/tarkvara süsteemi oleks võimalik realiseerida mitmendal tasandil koormuse jagamiseks mitmenda juhtseadmete vahel. Kui oleks ainult üks juhtseade, siis on väga raske garanteerida selle deterministliku käitumise ajas ning kõikide ülesannete eduka läbiviimise. Hierarhilne juhtimine koosneb kahest tasandist: Lokaaljuhtimine (alumine tasand); Keskjuhtimine (ülemine tasand). Lokaaljuhtimine tähendab juhtimist ajamite juures. Reeglina juhib iga ajamit eraldi juhtplokk. Keskjuhtimine koosneb juhtseadmetest, mis koordineerivad roboti töö tervikuna. Siin toimub roboti lülide kooskõlastamine, käe liikumise planeerimine, ohutuse täitmine jne. Joonisel on kujutatud üldistatud juhtimise algoritm roboti liikumise teostamiseks. Rohelise ristkülikuga on määratud see koht, kus toimub andmete väljastamine lokaalseks juhtimiseks. Joonis. Üldistatud roboti juhtimine liikumise teostamisel - 9 -
Üldine roboti juhtseadme algoritm näeb joonisel. Joonis. Üldine roboti juhtseadme algoritm 7 ESIMESE ASTME MOOTORI VAJALIK VÕIMSUS Et hinnata esimese astme mootori vajaliku võimsust tuleb vaadelda olukorra, kus robot on horisontaalis täiesti välja sirutatud. Siis mootorile on tekitatud maksimaalne inertsimoment. Koostame lihtsustatud pilt (joonis 4). Joonis 4. Lihtsustatud inertsimomentide arvutusskeem - 0 -
Hindame roboti osade masse ligikaudselt: summaarne roboti mass on 58 kg, ütleme et baasi mass omab 5% roboti massist, baasi peal liikuv silinder omab 0% kogu roboti massist, ning ülejaanud osa 65%. Maksimaalne lubatav töörista mass koos objektiga on 6 kg. R on silindri raadius. Kõik parameetrid: R = 0.0 m m = 0. 58 = 5.8 [ kg] [ kg] [ ] [ ] R = A + L = 0.085 + 0.80 = 0.65 m m = 0.65 58 = 7.7 R = L = 0.400 m m = 6 kg Esimese lüli maksimaalne kiirus 40 / s 7.00 rad ω = =, oletame, et kiirendus kestab 0.9 sekundit, s siis nurkkiirendus on: Liikuvate osade inertsimomendid: Summaarne inertsimoment: dω dt ω 7.00 0.9 0.9 = = = rad 7.78 s m R 5.8 0.0 I = = = 0.060 kg m I m R 7.7 0.65 5.0 kg m = = = ( ) 6 ( 0.65 0.400).5 I = m R + R = + = kg m I I I I 0.060 5.0.5 8.594 kg m = + + = + + = Võtame inertsimoment reserviga, e. 0% suurem: I Liikuvate osa summaarne dünaamiline moment on: Võttes Tm = 8.594 + 0. 8.594 =.7 kg m dω Td = I = = N m dt.7 7.78 86.9 [ ] = T d vajalik mootori võimsus on: P = Tm ω = 86.9 7 = 608.44 [ W] - -
8 KOKKUVÕTE Antud töös ma tutvusin Mitsubishi RV-6SD robotiga, selle tehniliste andmetega, kasutusotstarvega, manipulaatori ehitusega ja omadustega. Koostasin arvutamiseks lihtsustatud kinemaatikaskeemi, kasutasin seda roboti kinemaatika otsese ülesande lahendamiseks. Seepärast lahendasin ka roboti kinemaatika pöördülesande. Arvutamiseks kasutasin tasuta programmi Maxima, mis võimaldab teha arvutusi sümbolkujul, st. võimaldab leida teisendusmaatriksi kinemaatika otsese ülesande jaoks sümbolkujul. Nähtavasti saab seda programmi kasutada ka kinemaatika pöördülesande lahendamiseks. Samas plaanisin antud töös roboti käe sirgjoonelise liikumise, uurisin kahetasandilise hierarhilise juhtimise põhiprintsiipe. Hindasin esimese astme mootori vajaliku võimsuse väärtuse. Tegelikus elus võib see väärtus olla teistsugune, kuid ikka kehtib ligikaudse hinnanguna. Lõppkokkuvõteks võib öelda, et töö eesmärgid on saavutatud ning vajalik kogemus edasi tegutsemiseks valdkonnas on omandatud. - -