ページへ戻る

− Links

 印刷 

BTH082 ROBOTARM(MX28) のソース :: Besttechnology

knowledge:BTH082 ROBOTARM(MX28)のソース

  
TITLE:ROBOTARM(MX28)マニュアル
**概要 [#h488e08c]
[[ROBO-ONE>http://www.robo-one.com/]]にて開催される[[ROBO-剣>http://www.robo-one.com/kens]]に使用できるアセンブリ済みロボットアーム。~

**基本仕様 [#sfb2a01d]
|自由度|5軸|
|アクチュエータ|[[MX-28R]]|
|I/F|[[DXHUB]]|
|固定|- |
|フレーム|[[FR07-F101]]x3, [[FR07-B101]]x1, [[FR07-H101]]x1, FP04-F4x1, FP04-F2x1|
|その他付属品|ACアダプタ(DC12V 5A), 電源延長ケーブル, microUSBケーブル&br;保守パーツ|

***アーム本体外観 [#xece2131]
| 直立側面 | 直立背面 |
| #ref(1.jpg,50%) | #ref(2.jpg,50%) |
| 側面 |<|
| #ref(3.jpg,50%) |<|
| 先端部 |<|
| #ref(4.jpg,50%) |<|
| 末端部 |<|
| #ref(5.jpg,50%) |<|
| I/F |<|
| #ref(BTE068B DXHUB/DXHUB_top.png,80%) |<|

***軸間距離 [#dc64a280]
両端についてはユーザ定義、Z軸に回転する軸はその前後の軸間距離のみ。
#ref(model.png,100%)

***初期設定 [#k1ee50b0]
各[[MX-28]]において以下のコントロールテーブルのアイテムに予め設定がなされている。
-[[ID>MX Series Control table#afcb4273]]~
下から順に1,2,3,4,5
-[[BAUDRATE>MX Series Control table#r27c0a5d]]~
1(1000000[bps])
-[[RETURN DELAY TIME>MX Series Control table#z6a035d0]]~
0(ディレイなし)

また、[[GOAL POSITION>MX Series Control table#i10660fa]]に2047を設定すると直立状態になる様にアセンブリされている。

**使用方法 [#g72947ce]
***注意事項 [#dc9af20e]
不用意な操作での破損を避けるため、以下の事項に留意すること。
-導電性の異物が周囲に無い事
-通電及び運転前にDynamixel間に配置されるケーブルコネクタが抜けかかっていない事を確認する
-経時的変化に伴うねじの緩みや脱落は避けられない
-通電及び運転前にケーブルの被服が破けていない事を確認する
-電源のショートなどの保護は各パーツで行ってはおらず、最終的にACアダプタの保護能力に依存する
-ソフトウェアによってDynamixelそのものを無応答に設定できるため、理解が進むまでは不用意な操作を避ける
-DXCONFのRESETボタンは使用しない
-DXHUBは絶縁されていないため、PCとDXHUB間に大きな電位差が生じるとUSBポートに過電流が流れ、PCのUSBポートが破損する可能性がある
-構造上機構的な緩衝を避けられないため、緩衝しない領域で使用する
-外観から判断できないケーブルの断線は発生する
-本体の固定には剛性の高い素材を用い、加工等は[[MX-28の寸法図>Dynamixel MX-28#n5b69e89]]を元に考慮する事
-耐久性を数値で規定しない

***各パーツの接続 [#s708593c]
必ず金属等が無い絶縁された環境で操作する事。特に[[DXHUB]]の裏面は電源や通信に関るリード端子が露出しており、通電時にショート等が発生すると全損する可能性がある。
+[[DXHUB]]のいずれかの4ピンコネクタとID=5のMX-28の空いているコネクタを付属の4ピンケーブルで接続。~
DXHUBの6個ある4ピンコネクタはいずれも並列に接続されている。
#ref(con1.png)
+[[DXHUB]]とACアダプタを付属の延長ケーブルで接続し、ACアダプタに電源を供給。
+Windows PCと[[DXHUB]]を付属のUSBケーブルで接続。デバイスドライバのインストールは[[こちら>DXHUB#u86863bc]]。なお、Windowsのバージョンや環境によってはデバイスドライバが手動ではなく自動でインストールされる場合もある。
#ref(con2.png)
+デバイスドライバのインストールが完了したら、予めドライバの応答の待ち時間設定を[[こちら>DXHUB#vaffe8b2]]の手順で変更。

***試運転 [#lb821eef]
1軸単位のDynamixelの簡易的な動作確認。
+[[DXHUB]]に装備されるスライドスイッチ(SW1)で、ACアダプタから全MX-28への電源供給をON/OFF可能。ON側に切り替えると[[DXHUB]]の青色LED(LED1)が点灯し、それと同時に全MX-28のモニタLEDが1度明滅。~
長時間運転しない時はスライドスイッチではなくACアダプタへの給電を止めること。
+Windows用の[[DXCONF]]を[[ダウンロード>DXCONF#DOWNLOAD]]しインストール。~
#ref(DXCONF/layout.png,80%)
+インストールしたDXCONFを起動し、通信ポートは先にインストールしたデバイスドライバにて提供されるCOMポート番号を選択しPort Openボタンを押下。
#ref(con3.png)
+DXHUBに電源が供給されたらAdv.Pingのチェックボックにチェックを入れ、Scan Startボタンを押下。表示されるダイアログボックスにはOKで応答。~
正常であればしばらくするとDetected Devicesに5台のMX-28が列挙される。そのうちの一つをマウスで選択すると、コントロールテーブルにそのMX-28の内部パラメータ、さらにDynamixel共通のサブウィンドウが表示。
#ref(con4.png)
#ref(DXCONF/trend_dynamixel.png)
+サブウィンドウの右側にあるジョグダイアルをマウスで上下にドラッグすると、その移動距離に応じた値を[[GOAL POSITION>MX Series Control table#i10660fa]]に指令し、MX-28のホーンが回転。ドラックを解放するとその位置で停止。~
初めて触れる場合は、ID=5のMX-28を対象に操作する事を強く推奨。
+列挙されたMX-28の選択を切り替える事で個々の操作が可能。

***本格的な運用 [#y6d0055d]
複数軸を容易に制御できるツールを提供しているものではないため、PC上で各軸へ指令を行うプログラムが必要である。~
1軸単位で制御する所から始め、最終的には全ての軸を連動させて運転できるようになるのが目的である。
****知っておくこと [#y0847b72]

*****Dynamixelの通信プロトコル [#f6d8acca]
直接COMポートを扱うプログラムが作成できるのであれば、Dynamixelの通信プロトコルに従ったパケットを送受信すれば良い。~
通信プロトコルの詳細は[[こちら>DYNAMIXEL Communiation Protocol 1.0]]。~
なお、[[後述するDXLIB>#f08b698d]]を使用する場合は、プロトコルの詳細を意識する必要は無い。
#ref(Dynamixel通信プロトコル/DxProt2.png,70%)

*****Dynamixelのコントロールテーブル [#t913b8e7]
Dynamixelシリーズはアドレス・データという概念を元に構成されており、それら全ての情報を保持するものをコントロールテーブルと呼ぶ。コントロールテーブルの任意の情報にアクセスする手段を提供しているのが通信プロトコルである。~
MX-28のコントロールテーブルの主なアイテムを紹介する。
-ID~
IDは同一ネットワーク上の個々のDynamixelを識別するためにユニークな数値が設定されなくてはならない。本ARMにおいては既に1~5のIDが付与されている。
-BAUDRATE~
シリアル通信を行う際の通信速度を保持する。ホスト(PC)とDynamixelで同一の通信速度が要求される。
-P,I,D GAIN~
位置決め制御時の制御ゲインを保持する。古典制御のPID制御における各々のゲインを意味し、それ以外の制御手法を持たない。
-GOAL POSITION~
位置決め制御を行う際の指令値を保持する。MX-28の場合は、0~4095の値を0~360度の指令値とみなす。
-PRESENT POSITION~
運転中の現在角度を保持する。位置決め制御を行っている際はほぼそれに近い値が得られる。
-PRESENT LOAD~
運転中の現在負荷を保持する。

その他のアイテムや詳細は[[こちら>MX Series Control table]]を参照。

****DXLIB [#f08b698d]
通信プロトコルやシリアル通信に関する諸々の処理を行うAPIである。DynamixelシリーズはIDとコントロールテーブル上のアイテムのアドレスを元に制御されるため、各APIはIDとアドレス・データだけわかればDynamixelとコミュニケーションが取れる仕組みになっている。しかしながら、それ以上の機能を提供している物では無く、これらAPIを使用したアプリケーションの補助としてのみ存在する。~
DXLIBはシンプルなDLLとして提供され、Windows用の開発ツールであればほぼ対応する。~

DXLIBの詳細は[[こちら>DXLIB]]。

*****DXLIBを使用した多軸制御サンプル(DELPHI) [#s126e27f]
DXLIBに同梱されるサンプルはベーシックなものに限られるため、多少多軸を意識したGUIベースのサンプルプログラムを以下に提供する。
#ref(delphi_smpl.zip)
同梱のProject1.exeを実行すると次のウィンドウが開く。
#ref(delphi_smpl.png)
全ての接続が完了し電源が入った状態で任意のCOMポート名を入力。openボタンを押す事で以下の機能を試すことができる。
-現在位置の取得~
open状態であれば現在の位置を常時取得し数値表示。
-ホームポジションへ移動~
open直後に1秒かけて2047の位置へ全軸移動。
-1軸単位の手動操作~
5つ配置されたスライドバーが上からID=1~5と対応し、つまみで絶対値を指令。
-全軸にサイン波で位置指令~
sin waveボタンを押すと全Dynamixelへ2047を中心としたサイン波を指令。周期や振幅は適当。~
押下する度に本機能が開始・停止。
-LEDの点滅~
blink ledボタンを押すと100ms周期でDynamixelのLEDを点灯・消灯。~
押下する度に本機能が開始・停止。

このサンプルプログラムは位置に関する処理を行っているに過ぎないため、単純な動作検証や故障の検出といったツールとして使用する事を目的とする。

*****DXLIBを使用したユーザプログラミングに際し [#ob29e7c2]
ARM専用のアプリケーションが提供されるものではない。~
-速度制御~
[[MOVING SPEED>MX Series Control table#s3139326]]は分解能が低く、到達時間から逆算して指定するには向かない。
-ANGLE LIMIT~
機構の干渉やケーブル等の付加を軽減する事はアプリケーションとして必要最低限な機能である。不用意なGOAL POSITIONの指令値から保護する際は、[[CW/CCW Angle Limit>MX Series Control table#h4561931]]を適宜設定しておくと良い。
-通信速度~
通信速度はシステムとしての応答性に大きく寄与する。MX-28の本来の出荷時の通信速度は57143[bps]であるが、ARMのキットにおいては1M[bps]に設定する事で応答性を向上させている。
-同期コマンド~
1軸単位に諸々の指定を行う以外に、1回のパケットで個々の軸に対して個別の指令を行う同期コマンドがある。同期コマンドは個別に行うよりもオーバヘッドが軽減され、応答性に寄与する。
-マルチタスク~
DXLIBを使用している限り読み出し・書き込みAPIについてはアプリケーション側に排他制御を要求しない。

****トラブルシュート [#p383716e]
うまく通信ができていないといった場合は、[[DXIFChecker]]を使用する事で簡易的な通信テストを行って見ると良い。本ツールで各Dynamixelとの通信ができる様であれば、コーディングの問題であると特定できる。~
またケーブルの接触不良等で通信できない場合は、本ツールで通信状況をモニタしながら特定できる可能性もある。

***その他 [#q96081c5]
必要に応じて台座やフレーム等をカスタマイズ致します。
#ref(pedestal.png)

  

  • BTH082 ROBOTARM(MX28) のバックアップソース(No. All)