アームロボット研修 ブログ

ロボットアーム研修(まえけん編) その4 ~平面2自由度の順運動学~

アームロボット研修

こんにちは。
まえけんです。

今週からようやく教科書に沿って実装していきたいと思います。
まずはCRANE-X7を2自由度の水平多関節型ロボットのようにして使っていきます。

初期姿勢を次の角度で設定します。


ちなみに、角度は以下のマクロを使うことでDynamixelに与える値に変換できます。

最初は順運動学を実装していきます。
まずは座標と軸を以下のように設定します。

今回動かすのは0番目のサーボと4番目のサーボです。
正回転の方向は図に示すオレンジ矢印の向きに取っています。

ただし、CRANE-X7は4番目のサーボの正回転方向が、今回とった軸の回転方向と逆なので
指令時に反転した値を代入するようにします。

平面2自由度の手先の位置は以下の式で表現できます。

変数
x:手先位置[m]
y:手先位置[m]
SCARA_LINK_LEN0:CRANE-X7の0番目のサーボから4番目のサーボ(肘関節)までの距離[m]
SCARA_LINK_LEN1:CRANE-X7の4番目のサーボ(肘関節)から手先までの距離[m]
theta0:0番目のサーボ角度[rad]
theta4:4番目のサーボ角度[rad]


x = SCARA_LINK_LEN0 * cos(theta0) + SCARA_LINK_LEN1 * cos(theta0 + theta4);
y = SCARA_LINK_LEN0 * sin(theta0) + SCARA_LINK_LEN1 * sin(theta0 + theta4);

ちなみに各リンク長はこちらのページに公開されております。

手先の位置を自由に変えられるように、0番目と4番目のサーボはトルクオフにしておきます。

実際に手先位置を表示してメジャーで測ってみます。
まずは(x,y)=(0.3,0)の位置に手先を持っていきます…

プログラム上でも大体x=0.3 y=0と表示されました!

無事手先位置が計算出来ました!
次回は平面2自由度の逆運動学を解いてみます!
来週もよろしくお願いします。

タイトルとURLをコピーしました