0 svar
83 visningar
Louiger är nöjd med hjälpen
Louiger 470
Postad: 16 nov 2019 22:30

Robotarm

Jag har problem med b-delen av uppgiften (se uppgiften längre ner). Jag har löst ut a1, a2,b1 och b2 så att theta beror på tiden, MEN del B som jag trodde skulle vara enkel sitter jag helt fast på. Det jag skulle vilja ha hjälp med är att hitta information/litteratur i hur jag får armen att röra sig enl då tiden har intervallet 0:0.1:4 (alt 0:4), men än mer vill jag veta hur jag lyckas plotta själva armen. Jag tänker att armen borde vara en vektor och har använt mig av 

syms x y
L_1=solve(abs(sqrt(y^2+x^2))==4)

för att jag tänkte att då får jag ju en ekvation för längden 4, men det fungerar inte i sammanhanget så jag tog bort det. Sen är ju frågan om jag nu ska följa ekvationen så borde det egentligen bara vara att sätta L1=4 och L2=3 vilket jag gjort nu, men det fungerade inte heller när jag skulle köra det. Gör jag något fel med funktionsfilerna?

Här kommer funktionsfiler

function [Q] =theta_1(t)

Q=10+0.3*t^3+0.4*t^4;

end

function [M] = theta_2(t)

M=20+0.3*t^3+(-0.7)*t^4;

end

Här kommer programmet:

clear all, close all, clc

L_1=4;
L_2=3;

[THETA_1,THETA_2] = meshgrid(@(t)theta_1,@(t)theta_2);
% genererar ett rutnät med värden för theta_1 och theta_2


x=L_1* cos(theta_1)+L_2* cos(theta_1+theta_2) %beräknar x coordinater

y=L_1*sin(theta_1)+L_2*sin(theta_1+theta_2) %beräknar y coordinater

data1 = [x(0:20) y(0:20) THETA_1(0:pi/2)]; % create x-y-theta1 dataset
data2 = [x(0:20) y(0:20) THETA_2(0:pi)]; % create x-y-theta2 dataset

plot(x(0:20),y(0:20),'r.');
axis equal;
xlabel('x','fontsize',10)
ylabel('y','fontsize',10)
title('X-Y coordinates generated for all theta1 and theta2 combinations using forward kinematics formula','fontsize',10)

 

Uppgift:

Figuren visar en robotarm med två länkar. Ledvinklarna ges av theta1 och theta2. Koordinaterna för
robothanden blir
x = L1 cos (theta1) + L2 cos (theta1 + theta2)

y = L1 sin (theta1) + L2 sin (theta1 + theta2)
där L1 och L2 är länklängderna.
Vinklarna theta1 och theta2 som bestämmer robothandens rörelse kontrolleras tidsmässigt av följande
polynomuttryck:
theta1(t) = theta1(0) + a1t3 + a2t4
theta2(t) = theta2(0) + b1t3 + b2t4
där theta1(0) och theta2(0) är startvärden för vinklarna vid tiden t = 0. Vinklarna anges i enheten grader
och tiden i sekunder.
Robothand

a )

Ställ upp ett linjärt ekvationssystem för bestämning av parametrarna a1, a2, b1 och b2, givet
startvärdena theta1(0) = 10, theta2(0) = 20 samt vinklarnas värden då t = 3: theta1(3) = 50,5, theta2(3) = -28,6
och då t = 4: theta1(4) = 131,6, theta2(4) = -140,0. Lös ekvationssystemet i MATLAB.

b)

Använd dina resultat i a) för att plotta robothandens svep när tiden t går från 0 till 4 sekunder,
med värdena L1 = 4 m och L2 = 3 m.

Svara Avbryt
Close