1: 2013-07-03 (水) 20:16:26 yoshida | 2: 2013-07-08 (月) 13:44:30 yoshida | ||
---|---|---|---|
Line 3: | Line 3: | ||
**三角関数を使用する [#zdb959c7] | **三角関数を使用する [#zdb959c7] | ||
逆運動(IK)とは簡単に言ってしまえば指示された座標を元に関節の角度を求めるものです。~ | 逆運動(IK)とは簡単に言ってしまえば指示された座標を元に関節の角度を求めるものです。~ | ||
- | 色々な計算手法がありますが、幸いなことにロボットハンドは2DOFなので有効な座標に到達する場合、ほぼ三角形を描くことになります。~ | + | 色々な計算手法がありますが、今回のロボットハンドでは三角関数だけで角度を計算してみたいと思います。 |
- | このため三角関数だけで角度を算出することができます。 | + | |
**2次元での角度算出 [#d90f6f7a] | **2次元での角度算出 [#d90f6f7a] | ||
Line 13: | Line 12: | ||
ACは三平方の定理から求めます。~ | ACは三平方の定理から求めます。~ | ||
#ref(inclined_AC.png) | #ref(inclined_AC.png) | ||
- | これで三辺の長さが求まったので余弦定理で角度を算出しましょう。 | + | これで三辺の長さが求まったので余弦定理で角度を算出しましょう。~ |
- | 以後ABをc、ACをb、BCをaと称します。~ | + | |
#ref(cosine.png) | #ref(cosine.png) | ||
まずはこれを変形して∠Aのコサインを求めます。~ | まずはこれを変形して∠Aのコサインを求めます。~ | ||
Line 20: | Line 18: | ||
コサインの値が取得できたので、これをアークコサインで角度に直します。~ | コサインの値が取得できたので、これをアークコサインで角度に直します。~ | ||
ここでの角度はラジアンなので180倍してπ(円周率)で割れば度°(デグリー)に変換できます。~ | ここでの角度はラジアンなので180倍してπ(円周率)で割れば度°(デグリー)に変換できます。~ | ||
- | 実際には∠Aは不要なので、∠Bと∠Cを求めます。~ | + | 引き続き∠Bと∠Cを求めます。~ |
+ | #ref(cosineBC.png) | ||
+ | |||
+ | **3次元での角度計算 [#x04dbfff] | ||
+ | では実際の座標を計算してみましょう。 |