Tehtävä 1 Kirjoita neljä eri funktiota (1/2 pistettä/funktio): 1. Funktio T tra saa herätteenä 3x1-kokoisen paikkavektorin p. Se palauttaa 4x4 muunnosmatriisin, johon sijoitettu p:n koordinaattien mukainen translaatio 2. Funktio R X saa herätteenä kiertokulman α asteina x-akselin ympäri. Se palauttaa 4x4 muunnosmatriisin, johon sijoitettu α:n mukainen rotaatio. 3. Funktio R Y saa herätteenä kiertokulman α asteina y-akselin ympäri. Se palauttaa 4x4 muunnosmatriisin, johon sijoitettu α:n mukainen rotaatio. 4. Funktio R Z saa herätteenä kiertokulman α asteina z-akselin ympäri. Se palauttaa 4x4 muunnosmatriisin, johon sijoitettu α:n mukainen rotaatio. Palauta jokainen funktio-tiedosto. Esitä myös funktiot vastauspaperissasi. Ratkaisu on nähtävissä liitetyistä funktioista Tehtävä 2 Tutkitaan Volvo EC250D -kaivuria. Kuvassa 1 on esitetty yksinkertaistettu 2D-kuva kaivurin kauhaimen nivelistä ja jäsenistä.
Kuva 1. Kaivurin kauhan nivelet ja jäsenet. Kuvassa 1 piste A sijaitsee pisteessä [0,1500 mm]. Varsi AB kuvaa puomia, pituus on 6210 mm, BC kuvaa käsivartta, pituus 3590 mm ja CD kauhaa, pituus 1200 mm. Kulmat α ja β pääsevät kiertymään välillä [30, 150 ] ja kulma γ välillä [-20, 150 ]. Nollakulma on edellisen varren suuntaisesti, ja positiivinen kiertokulma myötäpäivään. Nivelien kulmat ovat asennossa α = 55, β = 110 ja γ = 30. Missä pisteessä kauhan kärki, piste D sijaitsee? Piirrä kauhaimesta kuva, jossa näkyy sen jäsenteen asennot. (4 pistettä) Ratkaisu: Piste D sijaitsee kohdassa Piste D sijaitsee kohdassa [5706,435] mm
Tehtävä 3 Teollisuusrobotteja käytettäessä halutaan usein tietää, missä asennossa nivelien tulee olla, jotta saavutetaan joku haluttu piste. Tämä tarkoittaa käänteiskinemaattista ratkaisua. Kuvassa 2 on esitetty Kukan teollisuusrobotti. Maailmankoordinaatisto on kiinnitetty runko-osan pohjaan. Alkuasennossa kaikki jäsenet osoittavat suoraan ylöspäin, ja runkonivel on kiertynyt siten, että olkanivel sijaitsee pisteessä [-20;0;400]. Määritä, missä asennossa runkonivel (θ 1), olkanivel (θ 2), ja kyynärnivel (θ 3) ovat, kun kärki on pisteessä [200;700;200]. Kärjen z-akseli osoittaa suuntaan 1,1,0 ja y-akseli suuntaan -1,1,0. Toisin sanoin, verrattuna maailmankoordinaatistoon, kärjelle on tehty operaatio: Tehtävän ratkaisu etenee vaiheittain: a) Määritä rannenivelen paikka (1p) P kärki = T tra([200;700;200])*r Y(90)*R X(-45) b) Selvitä runkonivelen suunta niin, että kyynär- ja olkavarren määrittämä taso osoittaa rannetta kohti. Mikä on runkonivelen kiertokulma? (1p) c) Tehtävä yksinkertaistuu taso-ongelmaksi. Laske rannenivelen ja olkanivelen välinen etäisyys ja ratkaise nivelten kulmat kosinilauseella. Määritä olkanivelen ja kyynärnivelen kiertokulmat (3p) d) Piirrä kuva, jossa on esitetty nivelten sijainnit ja niiden väliset kohtisuorat linkit (1p). Kuva 2. Kukan teollisuusrobotti. Huomaa koordinaatiston asento! Ratkaisu:
%Rannenivelen paikka kärjen kooordinatistossa = [0;0;-150;]; pkarki = [200;700;200]; %Liikutaan ensi haluttuun rannenivelen pisteeseen, sitten kiertämällä %saadaan orientaatio pranne = T_tra(pkarki)*Ry(90)*Rx(-45)*[0;0;-150;1] 93.9340 pranne = 593.9340 mm 200.0000 Kuva 3. Apukuva selventämään apumuuttujia lopun tasotarkastelussa. theta1 = atan2(pranne(2),pranne(1)); %in rad %Käännetään runkoniveltä theta1:n verran. Olkanivel on tällöin pisteessä polka = Rz(rad2deg(theta1))*[-20;0;400;1]; %Kohtisuora etäisyys kyynärnivelen ja rannenivelen välillä dhelp = sqrt(35^2+365^2); %Vektori olkanivelestä ranneniveleen d = pranne(1:3)-polka(1:3); gamma = sin(d(3)/norm(d)); beta = acos((316^2+norm(d)^2-dhelp^2)/(2*316*norm(d))); %Olkanivelen kulma on tällöin (negatiivinen, koska pyöritetään %negatiiviseen suuntaan) theta2 = -(pi/2-beta-gamma);
%Kyynernivelen kulma negatiivinen, koska pyöritetään %negatiiviseen suuntaan %Otetaan huomioon alfa-kulma, joka aiheutuu kyynervarren muodosta alfa = atan2(35,365); theta3 = -(pi-acos((dhelp^2+316^2-norm(d)^2)/(2*dhelp*316))+alfa); %Kyynärnivel on paikassa pkyynar = Rz(rad2deg(theta1))*T_tra([-20;0;400])*Ry(- rad2deg(theta2))*[0;0;316;1]; % theta1 = rad2deg(theta1); theta2 = rad2deg(theta2); theta3 = rad2deg(theta3); Runkonivelen kulma: 81 Olkanivelen kulma: -89 Kyynärnivelen kulma: -40 Kuva 4. Kuka-robotin asento 3D-avaruudessa.
Kuva 5. Kuka-robotin asento ylhäältäpäin katsottuna.