0% found this document useful (0 votes)
71 views5 pages

UR5-modele Matimathique Robot UR5

The document outlines the Denavit-Hartenberg (DH) parameters and inertia parameters for the UR5 robotic arm, including joint angles, link lengths, and mass properties. It details the computation of rotation matrices, position vectors, and the Jacobian matrix for the end-effector, as well as the robot's inertia, Coriolis, and gravitational forces. Finally, it saves the computed transformation matrices, Jacobian, inertia matrix, Coriolis matrix, and gravity vector to separate text files.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views5 pages

UR5-modele Matimathique Robot UR5

The document outlines the Denavit-Hartenberg (DH) parameters and inertia parameters for the UR5 robotic arm, including joint angles, link lengths, and mass properties. It details the computation of rotation matrices, position vectors, and the Jacobian matrix for the end-effector, as well as the robot's inertia, Coriolis, and gravitational forces. Finally, it saves the computed transformation matrices, Jacobian, inertia matrix, Coriolis matrix, and gravity vector to separate text files.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

%% DH and Inertia Parameters of UR5

alpha = [0,pi/2,0,0,-pi/2,pi/2];

a = [0,0,.425,.39225,0,0];

d = [.08916,0,0,.10915,.09456,.0823];

m = [3.7,8.393,2.275,1.219,1.219,.1879];

p_c1 = [0,-1.93,-26.51]*10^(-3);

p_c2 = [212.5,0,113.36]*10^(-3);

p_c3 = [272.32,0,26.5]*10^(-3);

p_c4 = [0,16,34,107.35]*10^(-3);

p_c5 = [0,-16.34,-1.8]*10^(-3);

p_c6 = [0,0,-1.159]*10^(-3);

In_1 = [84,0,0;0,64,0;0,0,84]*10^(-4);

In_2 = [78,0,0;0,21,0;0,0,21]*10^(-4);

In_3 = [16,0,0;0,462,0;0,0,462]*10^(-4);

In_4 = [16,0,0;0,16,0;0,0,9]*10^(-4);

In_5 = [16,0,0;0,16,0;0,0,9]*10^(-4);

In_6 = eye(3)*10^(-4);

%% PARAMETERs AND SYMBOLs

g=sym('g');

alpha_0=alpha(1);alpha_1=alpha(2);alpha_2=alpha(3);alpha_3=alpha(4);alpha_4=alpha(5);alpha_5=a
lpha(6);

a_0=a(1);a_1=a(2);a_2=a(3);a_3=a(4);a_4=a(5);a_5=a(6);

d_1=d(1);d_2=d(2);d_3=d(3);d_4=d(4);d_5=d(5);d_6=d(6);

p_cx1=p_c1(1);p_cy1=p_c1(2);p_cz1=p_c1(3);

p_cx2=p_c2(1);p_cy2=p_c2(2);p_cz2=p_c2(3);

p_cx3=p_c3(1);p_cy3=p_c3(2);p_cz3=p_c3(3);

p_cx4=p_c4(1);p_cy4=p_c4(2);p_cz4=p_c4(3);

p_cx5=p_c5(1);p_cy5=p_c5(2);p_cz5=p_c5(3);

p_cx6=p_c6(1);p_cy6=p_c6(2);p_cz6=p_c6(3);

m_1=m(1);m_2=m(2);m_3=m(3);m_4=m(4);m_5=m(5);m_6=m(6);

q_1=sym('q_1');q_2=sym('q_2');q_3=sym('q_3');q_4=sym('q_4');q_5=sym('q_5');q_6=sym('q_6');
dq_1=sym('dq_1');dq_2=sym('dq_2');dq_3=sym('dq_3');dq_4=sym('dq_4');dq_5=sym('dq_5');dq_6=sy
m('dq_6');

%% ROTATION MATRICEs

R_1=[cos(q_1) -sin(q_1) 0;

sin(q_1)*cos(alpha_0) cos(q_1)*cos(alpha_0) -sin(alpha_0);

sin(q_1)*sin(alpha_0) cos(q_1)*sin(alpha_0) cos(alpha_0)];

R_2=[cos(q_2) -sin(q_2) 0;

sin(q_2)*cos(alpha_1) cos(q_1)*cos(alpha_1) -sin(alpha_1);

sin(q_2)*sin(alpha_1) cos(q_2)*sin(alpha_1) cos(alpha_1)];

R_3=[cos(q_3) -sin(q_3) 0;

sin(q_3)*cos(alpha_2) cos(q_3)*cos(alpha_2) -sin(alpha_2);

sin(q_3)*sin(alpha_2) cos(q_3)*sin(alpha_2) cos(alpha_2)];

R_4=[cos(q_4) -sin(q_4) 0;

sin(q_4)*cos(alpha_3) cos(q_4)*cos(alpha_3) -sin(alpha_3);

sin(q_4)*sin(alpha_3) cos(q_4)*sin(alpha_3) cos(alpha_3)];

R_5=[cos(q_5) -sin(q_5) 0;

sin(q_5)*cos(alpha_4) cos(q_5)*cos(alpha_4) -sin(alpha_4);

sin(q_5)*sin(alpha_4) cos(q_5)*sin(alpha_4) cos(alpha_4)];

R_6=[cos(q_6) -sin(q_6) 0;

sin(q_6)*cos(alpha_5) cos(q_6)*cos(alpha_5) -sin(alpha_5);

sin(q_6)*sin(alpha_5) cos(q_6)*sin(alpha_5) cos(alpha_5)];

%% POSITION VECTORs

p_1=[a_0;-sin(alpha_0)*d_1;cos(alpha_0)*d_1];

p_2=[a_1;-sin(alpha_1)*d_2;cos(alpha_1)*d_2];

p_3=[a_2;-sin(alpha_2)*d_3;cos(alpha_2)*d_3];

p_4=[a_3;-sin(alpha_3)*d_4;cos(alpha_3)*d_4];

p_5=[a_4;-sin(alpha_4)*d_5;cos(alpha_4)*d_5];

p_6=[a_5;-sin(alpha_5)*d_6;cos(alpha_5)*d_6];

%% TRANSLATION MATRICES AND FORWARD KINEMATICS

T_1 = [R_1,p_1;zeros(1,3),1];

T_2 = [R_2,p_2;zeros(1,3),1];
T_3 = [R_3,p_3;zeros(1,3),1];

T_4 = [R_4,p_4;zeros(1,3),1];

T_5 = [R_5,p_5;zeros(1,3),1];

T_6 = [R_6,p_6;zeros(1,3),1];

T = T_1*T_2*T_3*T_4*T_5*T_6;

%% COMs' POSITION VECTORs

p_c1=p_1+R_1*[p_cx1;p_cy1;p_cz1];

p_c2=p_1+R_1*(p_2+R_2*[p_cx2;p_cy2;p_cz2]);

p_c3=p_1+R_1*(p_2+R_2*(p_3+R_3*[p_cx3;p_cy3;p_cz3]));

p_c4=p_1+R_1*(p_2+R_2*(p_3+R_3*(p_4+R_4*[p_cx4;p_cy4;p_cz4])));

p_c5=p_1+R_1*(p_2+R_2*(p_3+R_3*(p_4+R_4*(p_5+R_5*([p_cx5;p_cy5;p_cz5])))));

p_c6=p_1+R_1*(p_2+R_2*(p_3+R_3*(p_4+R_4*(p_5+R_5*(p_6+R_6*[p_cx6;p_cy6;p_cz6])))));

%% SYSTEM's STATEs

q=[q_1;q_2;q_3;q_4;q_5;q_6];

% dq=[dq_1;dq_2;dq_3;dq_4;dq_5;dq_6];

%% LINEAR PART of JACOBIANs

J_v1=jacobian(p_c1,q);

J_v2=jacobian(p_c2,q);

J_v3=jacobian(p_c3,q);

J_v4=jacobian(p_c4,q);

J_v5=jacobian(p_c5,q);

J_v6=jacobian(p_c6,q);

%% ROTATION MATRICEs FROM BASE

R_20=R_1*R_2;

R_30=R_20*R_3;

R_40=R_30*R_4;

R_50=R_40*R_5;

R_60=R_50*R_6;

%% ANGULAR PART of JACOBIANs

%o=zeros(3,7);

J_o1=[R_1(:,3),zeros(3,5)];
J_o2=[R_1(:,3),R_20(:,3),zeros(3,4)];

J_o3=[R_1(:,3),R_20(:,3),R_30(:,3),zeros(3,3)];

J_o4=[R_1(:,3),R_20(:,3),R_30(:,3),R_40(:,3),zeros(3,2)];

J_o5=[R_1(:,3),R_20(:,3),R_30(:,3),R_40(:,3),R_50(:,3),zeros(3,1)];

J_o6=[R_1(:,3),R_20(:,3),R_30(:,3),R_40(:,3),R_50(:,3),R_60(:,3)];

%% JACOBIAN MATRIX OF THE END-EFFECTOR

Jacobi = [J_v6;J_o6];

%% ROBOT's INERTIA (MASS) MATRIX

M=J_v1.'*m_1*eye(3)*J_v1+J_o1.'*R_1*In_1*R_1.'*J_o1...

+J_v2.'*m_2*eye(3)*J_v2+J_o2.'*R_20*In_2*R_20.'*J_o2...

+J_v3.'*m_3*eye(3)*J_v3+J_o3.'*R_30*In_3*R_30.'*J_o3...

+J_v4.'*m_4*eye(3)*J_v4+J_o4.'*R_40*In_4*R_40.'*J_o4...

+J_v5.'*m_5*eye(3)*J_v5+J_o5.'*R_50*In_5*R_50.'*J_o5...

+J_v6.'*m_6*eye(3)*J_v6+J_o6.'*R_60*In_6*R_60.'*J_o6;

%% CORIOLIS and CENTRIFUGAL MATRIX

for k=1:6

for s=1:6

C(k,s)=.5*((diff(M(k,s),q_1)+diff(M(k,1),q(s,1))-diff(M(1,s),q(k,1)))*dq_1...

+(diff(M(k,s),q_2)+diff(M(k,2),q(s,1))-diff(M(2,s),q(k,1)))*dq_2...

+(diff(M(k,s),q_3)+diff(M(k,3),q(s,1))-diff(M(3,s),q(k,1)))*dq_3...

+(diff(M(k,s),q_4)+diff(M(k,4),q(s,1))-diff(M(4,s),q(k,1)))*dq_4...

+(diff(M(k,s),q_5)+diff(M(k,5),q(s,1))-diff(M(5,s),q(k,1)))*dq_5...

+(diff(M(k,s),q_6)+diff(M(k,6),q(s,1))-diff(M(6,s),q(k,1)))*dq_6);

end

end

%% POTENTIAL ENERGIES and GRAVITY VECTOR

P1=m_1*[0,0,g]*p_c1;

P2=m_2*[0,0,g]*p_c2;

P3=m_3*[0,0,g]*p_c3;

P4=m_4*[0,0,g]*p_c4;

P5=m_5*[0,0,g]*p_c5;
P6=m_6*[0,0,g]*p_c6;

P=P1+P2+P3+P4+P5+P6;

g_1=diff(P,q_1);

g_2=diff(P,q_2);

g_3=diff(P,q_3);

g_4=diff(P,q_4);

g_5=diff(P,q_5);

g_6=diff(P,q_6);

G=[g_1;g_2;g_3;g_4;g_5;g_6];

%% DYNAMICAL EQUATIONs of MOTION

%%%%% M(q)*ddq + C(q,dq)dq + G(q) = u

save ('UR5.mat','T','Jacobi','M','C','G');

fid = fopen('UR5T.txt', 'w');

fwrite(fid, char(T), 'char');

fclose(fid);

fid = fopen('UR5M.txt', 'w');

fwrite(fid, char(M), 'char');

fclose(fid);

fid = fopen('UR5C.txt', 'w');

fwrite(fid, char(C), 'char');

fclose(fid);

fid = fopen('UR5G.txt', 'w');

fwrite(fid, char(G), 'char');

fclose(fid);

fid = fopen('UR5J.txt', 'w');

fwrite(fid, char(Jacobi), 'char');

fclose(fid);

clear

You might also like