推导并应用双连杆机械臂逆运动学
这个例子来自和逆运动学适用于双连杆机械臂通过使用MATLAB®和符号数学工具箱™。
示例定义了关节参数和末端执行器位置象征性地,计算和可视化运动学正解和逆解,发现系统的雅可比矩阵,用于模拟机器人手臂的运动。金宝搏官方网站
步骤1:定义几何参数
定义链接长度,机器人的关节角和末端执行器位置符号变量。
信谊l1l2theta_1theta_2XE叶
为机器人的链接长度指定值。
L1 = 1;L2 = 0.5;
第二步:定义终端执行器的X和Y坐标
末端执行器的X和Y坐标定义为关节角的函数
。
XE_RHS = l1 * cos (theta_1) + l2 * cos (theta_1 + theta_2)
XE_RHS =
YE_RHS = l1 * sin (theta_1) + l2 * sin (theta_1 + theta_2)
YE_RHS =
符号表达式转换为MATLAB函数。
XE_MLF = matlabFunction (XE_RHS,“var”(l1, l2 theta_1 theta_2]);YE_MLF = matlabFunction (YE_RHS,“var”(l1, l2 theta_1 theta_2]);
步骤3:计算和可视化正运动学
正运动学变换关节角为末端执行器的位置:
。由于特定的关节角值,使用正运动学计算末端执行器的位置。
指定输入值的关节角
和
。
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);
使用MATLAB函数计算X和Y坐标XE_MLF和YE_MLF,分别。
X_mat = XE_MLF (L1, L2, tt1_rads tt2_rads);Y_mat = YE_MLF (L1, L2, tt1_rads tt2_rads);
可视化使用helper函数X和Y坐标plot_XY_given_theta_2dof。
plot_XY_given_theta_2dof (tt1_degs、tt2_degs X_mat、Y_mat (L1 + L2))
步骤4:找到逆运动学
逆运动学变换末端执行器位置为关节角:
。找到正运动学的逆运动学方程。
定义了正运动学方程。
XE_EQ = XE = = XE_RHS;你们YE_EQ = = = YE_RHS;
解出
和
。
S =解决([XE_EQ YE_EQ]、[theta_1 theta_2])
S =结构体字段:theta_1: [2 x1 sym] theta_2: [2 x1 sym]
结构年代代表了多个解决方案金宝搏官方网站
和
。显示解决方案金宝搏官方网站
。
简化(S.theta_1)
ans =
显示解决方案金宝搏官方网站
。
简化(S.theta_2)
ans =
这个例子来自和逆运动学适用于双连杆机械臂通过使用MATLAB®和符号数学工具箱™。 示例定义了关节参数和末端执行器位置象征性地,计算和可视化运动学正解和逆解,发现系统的雅可比矩阵,用于模拟机器人手臂的运动。金宝搏官方网站
定义链接长度,机器人的关节角和末端执行器位置符号变量。 为机器人的链接长度指定值。 末端执行器的X和Y坐标定义为关节角的函数 符号表达式转换为MATLAB函数。 正运动学变换关节角为末端执行器的位置: 指定输入值的关节角 度的角度单位转换为弧度。 使用MATLAB函数计算X和Y坐标 可视化使用helper函数X和Y坐标 逆运动学变换末端执行器位置为关节角: 定义了正运动学方程。 解出 结构
显示解决方案金宝搏官方网站
步骤1:定义几何参数
信谊
L1 = 1;L2 = 0.5;
第二步:定义终端执行器的X和Y坐标
XE_RHS = l1 * cos (theta_1) + l2 * cos (theta_1 + theta_2)
XE_RHS =
YE_RHS = l1 * sin (theta_1) + l2 * sin (theta_1 + theta_2)
YE_RHS =
XE_MLF = matlabFunction (XE_RHS,
步骤3:计算和可视化正运动学
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_RHS;
S =解决([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),超出了可获得的终端执行器的工作空间。逆运动学解可以生成一些虚构的θ值,需要修正。金宝搏官方网站正确的假想θ值。 可视化的角度 系统雅可比矩阵的定义是:
TH1_MLF {1} = matlabFunction (S.theta_1 (1),
第五步:计算和可视化的逆运动学
[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 =图像放大(tmp_th1_mat) = = 0;真正th1_mat (tf_mat) = (tmp_th1_mat (tf_mat));tf_mat =图像放大(tmp_th2_mat) = = 0;真正th2_mat (tf_mat) = (tmp_th2_mat (tf_mat));
plot_theta_given_XY_2dof (xmat ymat、th1_mat th2_mat)
第六步:计算系统的雅可比矩阵
the_J =雅可比矩阵([XE_RHS YE_RHS]、[theta_1 theta_2])
the_J =