3: 2011-07-22 (金) 13:13:29 yoshida |
4: 2011-07-22 (金) 15:06:39 yoshida |
- | TITLE:プログラミング1 | + | TITLE:ロボットハンドを動かす |
- | *プログラミング1 [#u69e0124] | + | *ロボットハンドを動かす [#u69e0124] |
- | **処理の流れを図にする [#led7845e] | + | |
- | 左に置いたものを右に移動するだけの簡単な動作とします。本体の左を初期位置として、右を終了位置とします。 | + | |
- | #ref(flow.png) | + | |
| | | |
- | **移動終了まで待つには [#lc37a04a] | + | **Dynamixel Configuratorで動かす [#i7e648cf] |
- | AX-12+へゴールポジションを指定することで、簡単に移動は可能ですが、移動するにはどうしても時間が必要になります。~ | + | まずは確認のため、[[Dynamixel Configurator>DXCONF]]でAX-12+を作動させてみましょう。トルク設定をしていませんので、ポジション移動の際は十二分に注意して下さい。~ |
- | 移動指示後、一定時間[[fd_Wait>FDIIILIB#o4813042]]で停止してもよいのですが、Dynamixelのコントロールテーブルに[[Moving>DXTABLE1#jf0f3fa1]]というアイテムがあります。AX-12+が稼働しているかどうかはこのアイテムを参照することで判断することができます。 | + | ID1からID6まで以下の手順を繰り返します。 |
| + | +「Read All」で状態を読み込む。 |
| + | +ダイヤルでポジションを移動する。 |
| + | |
| + | **物を掴む [#a91d93dc] |
| + | ID1~ID3でハンド部分の位置が決まり、ID5、6でハンド部分が開閉します。~ |
| + | 空のペットボトル等を掴んで持ち上げてみましょう。 |
| + | #ref(Clip.png) |
| + | 如何でしょうか。持ち上げることができたでしょうか。~ |
| + | Dynamixel Configuratorでは、個々のアクチュエータにそれぞれ手動で指令を行わなければならず、随分と手間がかかるのではないでしょうか。~ |
| + | では、Dynamixel Configuratorでの操作をプログラムで再現してみましょう。 |
| + | |
| + | **プログラミング [#bc44f46d] |
| + | 前提条件としてハンド部分は開いており、ペットボトルを挟むだけの状態(位置)にして下さい。 |
| #html{{ | | #html{{ |
| <pre class="brush:c"> | | <pre class="brush:c"> |
- | uint8_t Moving = 1; | + | |
- | while (!fd_GetPB () && Moving) { | + | |
- | DX_ReadByteData (1, ADDRESS_MOVING, &Moving, 10, NULL); | + | |
- | fd_Wait (10); | + | |
- | } | + | |
| </pre> | | </pre> |
| }} | | }} |
- | | |
- | **プログラミング [#w7cdd002] | |
- | 移動終了を検知することができるようになりましたので、まずは初期位置へ移動します。 | |