2: 2013-07-08 (月) 13:44:30 yoshida[6] [7] | 3: 2013-07-25 (木) 18:00:43 yoshida[6] [8] | ||
---|---|---|---|
Line 2: | Line 2: | ||
**三角関数を使用する [#zdb959c7] | **三角関数を使用する [#zdb959c7] | ||
- | 逆運動(IK)とは簡単に言ってしまえば指示された座標を元に関節の角度を求めるものです。~ | + | 逆運動(IK)とは指示された座標を元に関節の角度を求めるものです。~ |
- | 色々な計算手法がありますが、今回のロボットハンドでは三角関数だけで角度を計算してみたいと思います。 | + | 色々な計算手法がありますが、今回のロボットハンドでは三角関数をメインに角度を計算してみたいと思います。 |
**2次元での角度算出 [#d90f6f7a] | **2次元での角度算出 [#d90f6f7a] | ||
+ | このままでは計算式にし難いので各AX-12Aと軸の長さを以下のように呼称することにします。~ | ||
+ | #ref(id_rename.png) | ||
+ | では三角形を見てみましょう。~ | ||
+ | 三角形を作るのはD2、D3、posとなっています。~ | ||
#ref(triangle2D.png) | #ref(triangle2D.png) | ||
- | C点がID2、B点がID3の軸となり、A点がロボットハンドの先端になります。~ | + | D2→D3、D3→posはそれぞれ軸の長さから求められるので、D2→posの長さが分かればこの三角形の各角度が算出可能となります。~ |
- | ABCを結ぶと三角形が出来上がりです。~ | + | D2→posの長さは三平方の定理から求められます。~ |
- | BCとABは軸間の長さになるので、ACが分かれば∠A、∠B、∠Cが算出可能となります。~ | + | #ref(inclined_D2pos.png) |
- | ACは三平方の定理から求めます。~ | + | 三辺の長さが決まったので余弦定理を使ってD3の角度を算出してみましょう。~ |
- | #ref(inclined_AC.png) | + | #ref(cosineD3.png) |
- | これで三辺の長さが求まったので余弦定理で角度を算出しましょう。~ | + | |
- | #ref(cosine.png) | + | |
- | まずはこれを変形して∠Aのコサインを求めます。~ | + | |
- | #ref(cosineA.png) | + | |
コサインの値が取得できたので、これをアークコサインで角度に直します。~ | コサインの値が取得できたので、これをアークコサインで角度に直します。~ | ||
- | ここでの角度はラジアンなので180倍してπ(円周率)で割れば度°(デグリー)に変換できます。~ | + | ここでの角度はラジアンなので180を掛けてπ(円周率)で割れば度°(デグリー)に変換できます。~ |
- | 引き続き∠Bと∠Cを求めます。~ | + | |
- | #ref(cosineBC.png) | + | |
**3次元での角度計算 [#x04dbfff] | **3次元での角度計算 [#x04dbfff] | ||
- | では実際の座標を計算してみましょう。 |
(This host) = http://www.besttechnology.co.jp