此示例通过MATLAB®和符号数学工具箱™推导并应用于双连杆机器人手臂的逆运动学。 该算例对关节参数和末端执行器位置进行了符号化的定义,并对正、逆运动学解进行了计算和可视化,得到了系统的雅可比矩阵,为机械臂的运动仿真提供了依据。金宝搏官方网站
将机器人的连杆长度、关节角度和末端执行器位置定义为符号变量。 为机器人的链接长度指定值。 定义末端执行器的X和Y坐标为关节角的函数 将符号表达式转换成MATLAB函数。 正运动学将关节角度转换为末端执行器位置: 指定关节角度的输入值为 将角度单位从度转换为弧度。 使用MATLAB函数计算X和Y坐标 使用辅助函数可视化X和Y坐标 逆运动学将末端执行器位置转换为关节角度: 定义正运动学方程。 解出 结构
显示的解决方案对金宝搏官方网站
步骤1:定义几何参数
信谊
L1 = 1;L2 = 0.5;
第二步:定义末端执行器的X和Y坐标
XE_RHS = L_1*cos(theta_1) + L_2*cos(theta_1+theta_2)
XE_RHS =
YE_RHS = L_1*sin(theta_1) + L_2*sin(theta_1+theta_2)
YE_RHS =
XE_MLF = matlabFunction (XE_RHS,
第三步:计算和可视化正运动学
t1_degs_row = linspace (0, 90100);t2_degs_row = linspace (-180180100);[tt1_degs, tt2_degs] = meshgrid (t1_degs_row t2_degs_row);
tt1_rads =函数(tt1_degs);tt2_rads =函数(tt2_degs);
X_mat = XE_MLF (L1, L2, tt1_rads tt2_rads);Y_mat = YE_MLF (L1, L2, tt1_rads tt2_rads);
plot_XY_given_theta_2dof (tt1_degs、tt2_degs X_mat、Y_mat (L1 + L2))
步骤4:
XE_EQ = XE == XE_RHS;YE_EQ = YE == YE_RHS;
S = solve([XE_EQ YE_EQ], [theta_1 theta_2])
S =
简化(S.theta_1)
ans =
简化(S.theta_2)
ans =
将这些解转换成MATLA金宝搏官方网站B函数,以便以后使用。的函数 用逆向运动学来计算 定义X和Y坐标的网格点。 计算的角度 将角度单位从弧度转换为角度。 一些输入坐标,如(X,Y) =(1.5,1.5)超出了末端执行器的可达工作空间。运动学反解可以产生一些需要修正的虚的theta金宝搏官方网站值。修正虚的值。 可视化的角度 系统雅可比矩阵的定义为:
TH1_MLF {1} = matlabFunction (S.theta_1 (1),
步骤5:计算和可视化逆运动学
[xmat, ymat] = meshgrid (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 =南(大小(tmp_th1_mat));th2_mat =南(大小(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));
plot_theta_given_XY_2dof (xmat ymat、th1_mat th2_mat)
步骤6:计算系统雅可比矩阵
the_J =雅可比矩阵([XE_RHS YE_RHS],[theta_1 theta_2])
the_J =
你可以把关节速度和末端执行器速度联系起来,反过来,用系统雅可比矩阵
还可以将雅可比矩阵的符号表达式转换为MATLAB函数块。通过定义多个路径点作为Simulink模型的输入,模拟机器人在轨迹上的末端执行器位置。金宝appSimu金宝applink模型可以计算出一个基于关节角度值的运动轮廓,从而到达轨迹中的每个路径点。有关更多细节,请参见辅助函数
函数