15: 2011-08-03 (水) 16:40:07 yoshida |
現: 2013-08-07 (水) 20:22:54 yoshida |
| | | |
| **Dynamixel Configuratorで動かす [#i7e648cf] | | **Dynamixel Configuratorで動かす [#i7e648cf] |
- | まずは確認のため、[[Dynamixel Configurator>BTE068]]でAX-12+を作動させてみましょう。トルク設定をしていませんので、ポジション移動の際は十二分に注意して下さい。~ | + | まずは確認のため、[[Dynamixel Configurator>BTE068#e84cbf19]]でAX-12+を作動させてみましょう。トルク設定をしていませんので、ポジション移動の際は十二分に注意して下さい。~ |
| ID1からID6まで以下の手順を繰り返します。 | | ID1からID6まで以下の手順を繰り返します。 |
| +「Read All」で状態を読み込む。 | | +「Read All」で状態を読み込む。 |
| **物を掴む [#a91d93dc] | | **物を掴む [#a91d93dc] |
| ID1~ID3でハンド部分の位置が決まり、ID5、6でハンド部分が開閉します。~ | | ID1~ID3でハンド部分の位置が決まり、ID5、6でハンド部分が開閉します。~ |
- | 空のペットボトル等を掴んで持ち上げてみましょう。 | + | 空のペットボトル等を掴んで持ち上げてみましょう。~ |
- | #ref(Clip.png) | + | #ref(DXCONF.png) |
| 如何でしょうか。持ち上げることができたでしょうか。~ | | 如何でしょうか。持ち上げることができたでしょうか。~ |
| Dynamixel Configuratorでは、個々のアクチュエータにそれぞれ手動で指令を行わなければならず、随分と手間がかかるのではないでしょうか。~ | | Dynamixel Configuratorでは、個々のアクチュエータにそれぞれ手動で指令を行わなければならず、随分と手間がかかるのではないでしょうか。~ |
| fd_DXSetPosition (4, 512); | | fd_DXSetPosition (4, 512); |
| fd_DXSetPosition (5, 512); | | fd_DXSetPosition (5, 512); |
| + | fd_DXSetPosition (6, 512); |
| fd_Wait (1000); | | fd_Wait (1000); |
| | | |
| fd_Wait (1000); | | fd_Wait (1000); |
| // 腕を下げる | | // 腕を下げる |
- | fd_DXSetPosition (2, 818); | + | fd_DXSetPosition (2, 700); |
| + | fd_DXSetPosition (3, 400); |
| fd_Wait (1000); | | fd_Wait (1000); |
| // 挟む | | // 挟む |
| // 持ち上げる | | // 持ち上げる |
| fd_DXSetPosition (2, 512); | | fd_DXSetPosition (2, 512); |
| + | fd_DXSetPosition (3, 512); |
| fd_Wait (1000); | | fd_Wait (1000); |
| // 右へ移動 | | // 右へ移動 |
| fd_Wait (1000); | | fd_Wait (1000); |
| // 腕を下げる | | // 腕を下げる |
- | fd_DXSetPosition (2, 818); | + | fd_DXSetPosition (2, 700); |
| + | fd_DXSetPosition (3, 400); |
| fd_Wait (1000); | | fd_Wait (1000); |
| // 離す | | // 離す |
| fd_DXSetPosition (4, 512); | | fd_DXSetPosition (4, 512); |
| fd_DXSetPosition (5, 512); | | fd_DXSetPosition (5, 512); |
| + | fd_DXSetPosition (6, 512); |
| fd_Wait (1000); | | fd_Wait (1000); |
| } | | } |
| }} | | }} |
| 今回はDynamixel Configuratorでの操作をそのままプログラムしました。指定位置は掴むものに合った値に変更して下さい。~ | | 今回はDynamixel Configuratorでの操作をそのままプログラムしました。指定位置は掴むものに合った値に変更して下さい。~ |
- | まだ動きが随分とぎこちないですね。もう少し滑らかに動くように修正します。 | + | いきなり動き出したり、このプログラムでは動きが随分とぎこちないですね。もう少し滑らかに動くように修正します。 |
| | | |
| **モーション [#q1da695a] | | **モーション [#q1da695a] |
| <pre class="brush:c;toolbar:false"> | | <pre class="brush:c;toolbar:false"> |
| const TSpec Spec[] = { | | const TSpec Spec[] = { |
- | { 1, DEV_AX12, fd_AxisOfs(0), +341, { 257, 768}, 0, 1023, { 1, 1, 32, 32} }, | + | { 1, DEV_AX12, fd_AxisOfs(0), +341, { 257, 768}, 0, 1023, { 1, 1, 32, 32} }, |
- | { 2, DEV_AX12, fd_AxisOfs(1), +341, { 390, 818}, 0, 1023, { 1, 1, 32, 32} }, | + | { 2, DEV_AX12, fd_AxisOfs(1), +341, { 390, 818}, 0, 1023, { 1, 1, 32, 32} }, |
- | { 3, DEV_AX12, fd_AxisOfs(2), +341, { 64, 512}, 0, 1023, { 1, 1, 32, 32} }, | + | { 3, DEV_AX12, fd_AxisOfs(2), +341, { 64, 512}, 0, 1023, { 1, 1, 32, 32} }, |
| { 4, DEV_AX12, fd_AxisOfs(10), +341, { 0, 1023}, 0, 1023, { 1, 1, 32, 32} }, | | { 4, DEV_AX12, fd_AxisOfs(10), +341, { 0, 1023}, 0, 1023, { 1, 1, 32, 32} }, |
| { 5, DEV_AX12, fd_AxisOfs(11), +341, { 0, 592}, 0, 1023, { 1, 1, 32, 32} }, | | { 5, DEV_AX12, fd_AxisOfs(11), +341, { 0, 592}, 0, 1023, { 1, 1, 32, 32} }, |
| const TSpec Spec[] = { | | const TSpec Spec[] = { |
| { 1, DEV_AX12, fd_AxisOfs(0), +341, { 257, 768}, 0, 1023, { 1, 1, 32, 32} }, | | { 1, DEV_AX12, fd_AxisOfs(0), +341, { 257, 768}, 0, 1023, { 1, 1, 32, 32} }, |
- | { 2, DEV_AX12, fd_AxisOfs(1), +341, { 390, 818}, 0, 1023, { 1, 1, 32, 32} }, | + | { 2, DEV_AX12, fd_AxisOfs(1), +341, { 300, 818}, 0, 1023, { 1, 1, 32, 32} }, |
- | { 3, DEV_AX12, fd_AxisOfs(2), +341, { 64, 512}, 0, 1023, { 1, 1, 32, 32} }, | + | { 3, DEV_AX12, fd_AxisOfs(2), +341, { 180, 800}, 0, 1023, { 1, 1, 32, 32} }, |
| { 4, DEV_AX12, fd_AxisOfs(3), +341, { 0, 1023}, 0, 1023, { 1, 1, 32, 32} }, | | { 4, DEV_AX12, fd_AxisOfs(3), +341, { 0, 1023}, 0, 1023, { 1, 1, 32, 32} }, |
| { 5, DEV_AX12, fd_AxisOfs(4), +341, { 0, 592}, 0, 1023, { 1, 1, 32, 32} }, | | { 5, DEV_AX12, fd_AxisOfs(4), +341, { 0, 592}, 0, 1023, { 1, 1, 32, 32} }, |
| | | |
| 少しは滑らかに動くようになったのではないでしょうか。~ | | 少しは滑らかに動くようになったのではないでしょうか。~ |
- | では、最後に決められた角度で移動するのではなく、移動したい位置を元に角度を算出してみましょう。 | + | 最後に逆運動学で各アクチュエータの角度を算出してみます。~ |
| + | |
| + | [[次のチャプターへ>FDIIICHAPTER10.4]] |
| | | |
- | **キネマティック演算 [#h72950e8] | + | [[FDIII-HC Starter Kit Guide>LEARNINGGUIDE]]へ戻る |