此示例使用MATLAB®和符号数学工具箱推导并应用双连杆机器人手臂的反向运动学™. 该示例以符号方式定义关节参数和末端执行器位置,计算并可视化正向和反向运动学解,并找到系统雅可比矩阵,这有助于模拟机器人手臂的运动。金宝搏官方网站
将机器人的连杆长度、关节角度和末端效应器位置定义为符号变量。 指定机器人的链接长度值。 将末端效应器的X和Y坐标定义为关节角度的函数 将符号表达式转换为MATLAB函数。 正向运动学将关节角度转换为末端效应器位置: 将关节角度的输入值指定为 将角度单位从度转换为弧度。 使用MATLAB函数计算X和Y坐标 使用辅助函数可视化X和Y坐标 反向运动学将末端效应器位置转换为关节角度: 定义正向运动学方程。 解决 结构
显示一对解决方案金宝搏官方网站
将解决方案转换为MATL金宝搏官方网站AB函数,供以后使用 使用反向运动学进行计算 定义X和Y坐标的栅格点。 计算角度 将角度单位从弧度转换为度。 某些输入坐标,例如(X,Y)=(1.5,1.5),超出了末端效应器的可达工作空间。反向运动学解决方案可能会生成一些需要校正的假想θ值。校正假想θ值。金宝搏官方网站 想象角度 系统雅可比矩阵的定义为:
通过使用系统雅可比矩阵,可以将关节速度与末端效应器速度关联,反之亦然:
您还可以将雅可比矩阵的符号表达式转换为MATLAB功能块。通过将多个航路点定义为Simulink模型的输入,模拟机器人在轨迹上的末端执行器位置。Simulink模型可以根据关节角度值计算运动轮廓,以到达轨迹中的每个航路点。对于有关详细信息,请参阅金宝app步骤1:定义几何参数
符号
L1=1;L2=0.5;
步骤2:定义末端效应器的X和Y坐标
XE_RHS=L_1*cos(θ1)+L_2*cos(θ1+θ2)
XE_RHS=
YE_RHS=L_1*sin(θ1)+L_2*sin(θ1+θ2)
耶乌=
XE_MLF=matlabFunction(XE_RHS,
步骤3:计算并可视化正向运动学
t1_degs_row=linspace(0,90100);t2_degs_row=linspace(-180100);[tt1_degs,tt2_degs]=网格网格(t1_degs_行,t2_degs_行);
tt1_-rads=deg2rad(tt1_-degs);tt2_-rads=deg2rad(tt2_-degs);
X_mat=XE_MLF(L1、L2、tt1_rads、tt2_rads);Y_mat=YE_MLF(L1、L2、tt1_rads、tt2_rads);
给定θ2自由度的绘图(tt1自由度、tt2自由度、X自由度、Y自由度,(L1+L2))
步骤4:
XE_EQ=XE==XE_RHS;YE_EQ=YE==YE_RHS;
S=求解([XE_EQ YE_EQ],[theta_1 theta_2])
=
简化(S.theta_1)
ans=
简化(S.theta_2)
ans=
TH1_MLF{1}=matlabFunction(S.theta_1(1),
步骤5:计算并可视化反向运动学
[xmat,ymat]=网格网格(0:0.01:1.5,0:0.01:1.5);
tmp_th1_mat=th1_MLF{1}(L1,L2,xmat,ymat);tmp_th2_mat=th2_MLF{1}(L1,L2,xmat,ymat);
tmp_-th1_-mat=rad2deg(tmp_-th1_-mat);tmp_-th2_-mat=rad2deg(tmp_-th2_-mat);
th1_-mat=NaN(尺寸(tmp_-th1_-mat));th2_-mat=NaN(尺寸(tmp_-th2_-mat));tf_mat=imag(tmp_th1_mat)=0;th1_-mat(tf_-mat)=实(tmp_-th1_-mat(tf_-mat));tf_mat=imag(tmp_th2_mat)=0;th2_-mat(tf_-mat)=实(tmp_-th2_-mat(tf_-mat));
给定XY自由度的绘图(xmat、ymat、th1、th2)
步骤6:计算系统雅可比矩阵
_J=jacobian([XE_RHS YE_RHS],[theta_1 theta_2])
美国=
辅助函数
作用