このペジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,MATLAB®と符号数学工具箱™を使用して,逆運動学を導出して2リンクロボットアームに適用します。 この例では,ジョイントパラメーターとエンドエフェクタ位置をシンボリックに定義し,順運動学と逆運動学の解を計算して可視化し,ロボットアームの動きのシミュレーションに役立つ系のヤコビアンを求めます。
ロボットのリンク長,ジョeント角度,およびエンドエフェクタ位置をシンボリック変数として定義します。 ロボットのリンク長の値を指定します。 エンドエフェクタのx座標とy座標をジョxント角度 シンボリック式をmatlab関数に変換します。 順運動学は、ジョ以及ント角度からエンドエフェクタ位置への ジョ邮箱ント角度の入力値を 角度の単位を度からラジアンに変換します。 Matlab関数の 補助関数 逆運動学は、エンドエフェクタ位置からジョ以及ント角度への 順運動学の方程式を定義します。
と 構造体
の解のペアを表示します。
手順1:幾何学的パラメタの定義
信谊
L1 = 1;L2 = 0.5;
手順2:エンドエフェクタのx座標とy座標の定義
e_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 =
= matlabFunction(XE_RHS,
手順3:順運動学の計算と可視化
T1_degs_row = linspace(0,90,100);T2_degs_row = linspace(-180,180,100);[tt1_degs,tt2_degs] = meshgrid(t1_degs_row,t2_degs_row);
tt1_rad = deg2rad(tt1_degs);tt2_rad = deg2rad(tt2_degs);
X_mat = x_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:
e_eq = xe == e_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 =
解を後で使用できるようにmatlab関数に変換します。関数 逆運動学を使用して, X座標とy座標のグリッド点を定義します。 Matlab関数の 角度の単位をラジアンから度に変換します。 (X, Y) =(1.5, 1.5)など,いくつかの入力座標がエンドエフェクタの到達可能なワークスペースを超えています。逆運動学の解では虚数のシタ値が生成されることがあり,補正が必要になります。虚数のシタ値を補正します。 補助関数 系のヤコビアンの定義は次のようになります。
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 = NaN(size(tmp_th1_mat));th2_mat = NaN(size(tmp_th2_mat));Tf_mat = imag(tmp_th1_mat) == 0;Th1_mat (tf_mat) = real(tmp_th1_mat(tf_mat));Tf_mat = imag(tmp_th2_mat) == 0;Th2_mat (tf_mat) = real(tmp_th2_mat(tf_mat));
plot_theta_given_XY_2dof (xmat ymat、th1_mat th2_mat)
手順6:系のヤコビアンの計算
the_J =雅可比矩阵([e_rhs YE_RHS],[theta_1 theta_2])
the_J =
系のヤコビアンを使用して,ジョイント速度をエンドエフェクタ速度に関連付けたりその逆に関連付けたりできます。
ヤコビアンのシンボリック式をMATLAB函数ブロックに変換することもできます。複数の中間点を仿金宝app真软件モデルへの入力として定義して,ロボットのエンドエフェクタ位置の軌跡をシミュレートします。年代imulink モデルでは、軌跡上の各中間点に到達するジョイント角度の値に基づいてモーション プロファイルを計算できます。詳細については、二连杆机械臂的逆运动学補助関数
函数