成果物
www.youtube.com
今回は、前回作ったロボットアームをInverseKinematicsで動かしてみました。6軸あるので、目標の座標と向きのとうりにアームを動かすことができます。
コード
今回は、行列の計算を書き起こしているので長くなっています。ロボットアームの表示についてはこちらをご覧ください。
nekodigi.hatenablog.com
仕組み
今回は、こちらのサイトを参考にしました。
meuse.co.jp
理解するのに苦戦したので、そこについて説明します。
まず、こちらの式で、P5の位置を求めます。
その後、こちらの式で0番関節をP5に向けます。
今度は正弦定理を使って、2番関節の角度を求めます。その前に以下の式を使って。図でいうところのADの長さを求めます。
これで、三辺の長さがわかったのでそれをもとにcos(2番関節の角度)を求めます。
参考にしたサイトでは謎のステップが踏まれていますが、シンプルにacos関数を使えば2番関数の角度が求められました。
続いて1番関節の角度を求めるのですが、こちらは少し複雑で、行列を使って解かれています。ただ、どこがA,B,M,Nなのかは図を使うことで少しわかりやすくなるかと思います。
わかりにくいですが、1番関節の角度と同じ角度の場所があり、そのことを利用して1番関節の角度を求めているようです。