%%UR5e_RTB
清除一切。
目标=\’MATLAB\’;
%%
if strcmp(目标,\’xml\’)
阿尔法=[pi/2 0 0 pi/2 -pi/2 0];
d=[0.163, 0, 0, 0.134, 0.1, 0.0771];% d 在z 方向上给出。
a=[0, -0.425, -0.392, 0, 0, 0]; % a 在x 方向上给出。
m=[3.7, 8.393, 2.275, 1.219, 1.219, 0.1889];
p_c1=[0, 0, 0];
p_c2=[0.2125, 0, 0.138];
p_c3=[0.196, 0, 0.007];
p_c4=[0, 0, 0];
p_c5=[0, 0, 0];
p_c6=[0, 0, 0];
In_1=diag([0.010267, 0.010267, 0.00660]);
In_2=diag([0.015107, 0.13389, 0.13389]);
In_3=diag([0.004095, 0.031178, 0.031178]);
In_4=diag([0.0025599, 0.0021942, 0.0025599]);
In_5=diag([0.0025599, 0.0025599, 0.0021942]);
In_6=diag([0.00009804, 0.00009804, 0.00013210]);
结尾
%% 来自RoboSuite XML 文件
% In_1=diag([0.010267, 0.010267, 0.00660]);
% In_2=diag([0.015107, 0.13389, 0.13389]);
% In_3=diag([0.004095, 0.031178, 0.031178]);
% In_4=diag([0.0025599, 0.0021942, 0.0025599]);
% In_5=diag([0.0025599, 0.0025599, 0.0021942]);
% In_6=诊断([0.00009804, 0.00009804, 0.00013210]);
%% 来自matlab UR5 转动惯量文件
if strcmp(目标,\’matlab\’)
阿尔法=[pi/2 0 0 pi/2 -pi/2 0];
d=[0.163, 0, 0, 0.134, 0.1, 0.0771];% d 在z 方向上给出。
a=[0, -0.425, -0.39225, 0, 0, 0]; % a 在x 方向上给出。
m=[3.7, 8.393, 2.33, 1.219, 1.219, 0.1889];
p_c1=[0, -0.02561, 0.00193];
p_c2=[0.2125, 0, 0.11336];
p_c3=[0.196, 0, 0.0265];
p_c4=[0, -0.0018, 0.01634];
p_c5=[0, -0.0018, 0.01634];
p_c6=[0, 0, -0.001159];
In_1=[0.010267, 0.00660, 0.010267];
In_2=[0.0151, 0.8849, 0.8849];
In_3=[0.004095, 0.1916, 0.1916];
In_4=[0.1112, 0.2194, 0.1112];
In_5=[0.1112, 0.2194, 0.1112];
In_6=[0.0171, 0.0171, 0.0338];
结尾
%%
L(1)=旋转(\’d\’, d(1),
\’a\’, a(1),
\’阿尔法\’, 阿尔法(1),
\’我\’, [In_1(1), In_1(2), In_1(3), 0, 0, 0],
\’r\’,p_c1,
\’m\’, m(1));
L(2)=旋转(\’d\’, d(2),
\’a\’, a(2),
\’阿尔法\’, 阿尔法(2),
\’我\’, [In_2(1), In_2(2), In_2(3), 0, 0, 0],
\’r\’,p_c2,
\’m\’, m(2));
L(3)=旋转(\’d\’, d(3),
\’a\’, a(3),
\’阿尔法\’, 阿尔法(3),
\’我\’, [In_3(1), In_3(2), In_3(3), 0, 0, 0],
\’r\’,p_c1,
\’m\’, m(1));
L(4)=旋转(\’d\’, d(4),
\’a\’, a(4),
\’阿尔法\’, 阿尔法(4),
\’我\’, [In_4(1), In_4(2), In_4(3), 0, 0, 0],
\’r\’,p_c4,
\’m\’, m(4));
L(5)=旋转(\’d\’, d(5),
\’a\’, a(5),
\’阿尔法\’, 阿尔法(5),
\’我\’, [In_5(1), In_5(2), In_5(3), 0, 0, 0],
\’r\’,p_c5,
\’m\’, m(5));
L(6)=旋转(\’d\’, d(6),
\’a\’, a(6),
“阿尔法”,阿尔法(6),
\’我\’, [In_6(1), In_6(2), In_6(3), 0, 0, 0],
\’r\’,p_c6,
\’m\’, m(6));
UR5e=SerialLink(L, \’名称\’, \’UR5e\’);
UR5e.sym()
%%
短信q1 q2 q3 q4 q5 q6 实数
模拟dq1 dq2 dq3 dq4 dq5 dq6 真实
q=[q1, q2, q3, q4, q5, q6];
dq=[dq1, dq2, dq3, dq4, dq5, dq6];
抽动症
M=UR5e.Inertia(q);
Jb=UR5e.jacobe(q);
C=UR5e.科里奥利(q,dq);
G=UR5e.gravload(q);
g_st_=UR5e.fkine(q);
Je=UR5e.jacob0(q);
目录
M=简化(M);
C=简化(C);
G=化简(G);
Jb=简化(Jb);
Je=化简(Je);
g_st=简化([g_st_.R, g_st_.t;
零(1,3),1]);
N=长度(q);
Jb_dot=零(6,N);
Je_dot=零(6,N);
对于k=1 : N
Jb_dot=Jb_dot + diff(Jb,q(k))*dq(k);
Je_dot=Je_dot + diff(Je,q(k))*dq(k);
结尾
Jb_dot=简化(Jb_dot);
Je_dot=简化(Je_dot);
%%
抽动症
matlabFunction(M,\’文件\’,\’sub_direct/M_fun\’,
\’变量\’,[q1, q2, q3, q4, q5, q6],\’输出\’,{\’M_mat\’});
目录
抽动症
matlabFunction(Jb,\’文件\’,\’sub_direct/Jb_fun\’,
\’变量\’,[q1, q2, q3, q4, q5, q6],\’输出\’,{\’J_mat\’});
目录
抽动症
matlabFunction(Jb_dot,\’文件\’,\’sub_direct/Jb_dot_fun\’,
\’变量\’,[q1, q2, q3, q4, q5, q6, dq1, dq2, dq3, dq4, dq5, dq6],\’输出\’,{\’dJ_mat\’});
目录
抽动症
matlabFunction(Je,\’文件\’,\’sub_direct/Je\’,
\’变量\’,[q1, q2, q3, q4, q5, q6],\’输出\’,{\’Je_mat\’});
目录
抽动症
matlabFunction(Je_dot,\’文件\’,\’sub_direct/Je_dot_fun\’,
\’变量\’,[q1, q2, q3, q4, q5, q6, dq1, dq2, dq3, dq4, dq5, dq6],\’输出\’,{\’dJe_mat\’});
目录
抽动症
matlabFunction(C,\’文件\’,\’sub_direct/C_fun\’,
\’变量\’,[q1, q2, q3, q4, q5, q6, dq1, dq2, dq3, dq4, dq5, dq6],\’输出\’,{\’C_mat\’});
目录
抽动症
matlabFunction(G,\’文件\’,\’sub_direct/G_fun\’,
\’变量\’,[q1, q2, q3, q4, q5, q6],\’输出\’,{\’G_torq\’});
目录
抽动症
matlabFunction(g_st,\’文件\’,\’sub_direct/g_st_fun\’,
\’变量\’,[q1, q2, q3, q4, q5, q6],\’输出\’,{\’g_st_mat\’});
目录
机器人惯量矩阵
函数M_mat=M_fun(q1,q2,q3,q4,q5,q6)
%M_fun
% M_mat=M_fun(Q1,Q2,Q3,Q4,Q5,Q6)
% 该函数由Symbolic Math Toolbox 9.0 版生成。
% 2023 年9 月7 日11:43:14
t2=cos(q3);
t3=cos(q4);
t4=cos(q5);
t5=sin(q2);
t6=sin(q3);
t7=sin(q4);
t8=sin(q5);
t9=q2+q5;
t10=q3+q4;
t11=q2.*2.0;
t12=q3.*2.0;
t13=q4.*2.0;
t14=q5.*2.0;
t20=-q5;
t40=atan(3.818188629788691e-2);
t42=atan(7.656026541520085e+2);
t44=9.934139466657452e+7;
t47=1.077033123737933e+9;
t15=t4.^2;
t16=q2+t10;
t17=q3+t9;
t18=sin(t9);
t19=sin(t10);
t21=-t14;
t23=t9+t10;
t27=q2+t20;
t37=t4.*3.38e-2;
t41=t6.*4.0271725e-2;
t45=-t42;
t46=t5.*3.53883322e-1;
t48=t2.*1.054733773125;
t50=t2.*t7.*6.92336305e-2;
t51=t3.*t6.*6.92336305e-2;
t55=t7.*1.2779713677e-1;
t56=t7.*6.3898568385e-2;
t60=t7.*7.747599173958887e+27;
t64=t6.*t7.*t8.*1.45620788325e-2;
t65=t4.*3.462224718e-3;
t66=t2.*t3.*t8.*1.45620788325e-2;
t71=t3.*t8.*1.3439942169525e-2;
t72=t3.*t8.*2.687988433905e-2;
t22=cos(t16);
t24=sin(t16);
t25=sin(t17);
t26=cos(t23);
t28=q3+t27;
t29=正弦(t27);
t30=q5+t23;
t31=t16+t20;
t32=t16+t21;
t43=-t41;
t49=q2+q3+t45;
t52=-t50;
t53=-t51;
t57=-t55;
t58=-t56;
t61=t19.*8.394466918884709e+27;
t62=t18.*7.28103941625e-3;
t67=-t64;
t68=-t65;
t70=t60-1.995836665581788e+27;
t86=t15.*1.52851393612391e-2;
t33=正弦(t28);
t34=cos(t30);
t35=cos(t31);
t36=cos(t32);
t38=t8.*t24.*3.38e-2;
t54=cos(t49);
t59=t22.*2.1793103212e-2;
t63=-t62;
t69=t29.*7.28103941625e-3;
t73=t25.*6.7199710847625e-3;
t75=t26.*4.0267812573e-3;
t76=t26.*5.645565393e-4;
t84=t61+t70-1.995836665581788e+27;
t85=(t4.*t70)./5.764607523034235e+29;
t87=t22.*2.379148606387609e-1;
t93=t58+t71+t86+3.639621178351609e-1;
t97=t43+t48+t52+t53+t57+t66+t67+t72+t86+1.531446074036411;
t39=-t38;
t74=-t73;
t77=t47.*t54.*1.3e-10;
t78=t33.*6.7199710847625e-3;
t79=-t75;
t80=-t76;
t81=t35.*4.0267812573e-3;
t82=t35.*5.645565393e-4;
t88=-t87;
t89=t34.*3.821284840309775e-3;
t90=t36.*3.821284840309775e-3;
t92=(t4.*t84)./5.764607523034235e+29;
t95=t52+t53+t66+t67+t93;
t83=-t82;
t91=-t90;
t94=t59+t80+t81+t89+t91;
t96=t63+t69+t74+t78+t79+t83+t88;
t98=t73+t77+t78+t94;
t99=t46+t62+t69+t98;
et1=t4.*9.1826755932e-3-t19.*6.92336305e-2+t58+cos(t10.*2.0+t11).*4.285508656149022e-2;
et2=sin(q3+t10+t11).*(-6.3898568385e-2)-sin(t10+t11+t20).*7.28103941625e-3+cos(t23.*2.0).*1.910642420154888e-3;
et3=cos(t10.*2.0+t11+t20).*(-1.731112359e-3)+cos(t10.*2.0+t11+t21).*1.910642420154888e-3;
et4=sin(q3+t10+t11+t20).*(-6.7199710847625e-3)+cos(t16+t23).*1.731112359e-3+sin(q4+q5).*6.7199710847625e-3;
et5=sin(q5+t10).*7.28103941625e-3-sin(q4+t20).*6.7199710847625e-3-sin(t10+t11).*6.92336305e-2;
et6=sin(t9+t16).*7.28103941625e-3-sin(t10+t20).*7.28103941625e-3+sin(t16+t17).*6.7199710847625e-3+cos(t11).*1.195796359375;
et7=cos(t14).*(-3.821284840309775e-3);
et8=(3.267693522137215e+25.*cos(t11+t12+atan(6.416451315410032e-2)))./5.62949953421312e+25+t44.*cos(q3+t40).*1.0625e-8+t44.* cos(q3+t11+t40).*1.0625e-8;
et9=2.264011855385696;
et10=t2.*2.10946754625-t6.*8.054345e-2+t57+t72+t86-t2.*t7.*1.38467261e-1-t3.*t6.*1.38467261e-1+t2.*t3.*t8 .*2.9124157665e-2;
et11=t6.*t7.*t8.*(-2.9124157665e-2)+3.938138792786411;
mt1=[et1+et2+et3+et4+et5+et6+et7+et8+et9,t99,t98,t94,t96,t39,t99,et10+et11,t97,t95,t92,t37,t98,t97,t57 +t72+t86+1.531446074036411,t93,t85,t37,t94,t95,t93];
mt2=[t8.^2.*(-1.52851393612391e-2)+3.792472571964e-1,t68,t37,t96,t92,t85,t68];
mt3=[2.379148606387609e-1,0.0,t39,t37,t37,t37,0.0,3.38e-2];
M_mat=重塑([mt1,mt2,mt3],6,6);
离心力与科氏力矩阵
函数C_mat=C_fun(q1,q2,q3,q4,q5,q6,dq1,dq2,dq3,dq4,dq5,dq6)
%C_fun
% C_mat=C_fun(Q1,Q2,Q3,Q4,Q5,Q6,DQ1,DQ2,DQ3,DQ4,DQ5,DQ6)
% 该函数由Symbolic Math Toolbox 9.0 版生成。
% 2023年9月7日11:43:18
t2=cos(q3);
t3=cos(q4);
t4=cos(q5);
t5=sin(q3);
t6=sin(q4);
t7=sin(q5);
t8=q2+q3;
t9=q2+q5;
t10=q3+q4;
t11=q4 + q5;
t12=q2.*2.0;
t13=q3.*2.0;
t14=q4.*2.0;
t15=q5.*2.0;
t26=-q5;
t16=sin(t12);
t17=sin(t15);
t18=cos(t8);
t19=cos(t9);
t20=cos(t10);
t21=cos(t11);
t22=q4+t8;
t23=q5+t8;
t24=q5+t10;
t25=sin(t8);
t27=-t15;
t31=t8+t11;
t33=q2+t8;
t38=q2+t26;
t39=q4+t26;
t40=t8.*2.0;
t43=t8+t26;
t44=t10+t26;
t73=dq2.*t7.*1.69e-2;
t74=dq3.*t7.*1.69e-2;
t75=dq4.*t7.*1.69e-2;
t76=dq5.*t7.*
以上#UR5e机器人运动学和力学模型及参数相关内容摘自网络,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92594.html