2: 2013-09-19 (木) 16:07:31 takaboo | 現: 2022-06-27 (月) 05:14:45 takaboo | ||
---|---|---|---|
Line 75: | Line 75: | ||
-arm_kondo.xml~ | -arm_kondo.xml~ | ||
KONDO ICS3.0/3.5 KRSシリーズで構成される実機の情報を定義したファイル。~ | KONDO ICS3.0/3.5 KRSシリーズで構成される実機の情報を定義したファイル。~ | ||
+ | -arm_kondo_b3m.xml~ | ||
+ | KONDO B3Mシリーズで構成される実機の情報を定義したファイル。~ | ||
-arm_futaba.xml~ | -arm_futaba.xml~ | ||
FUTABA RSシリーズで構成される実機の情報を定義したファイル。~ | FUTABA RSシリーズで構成される実機の情報を定義したファイル。~ | ||
Line 96: | Line 98: | ||
コールされるとサーバ内の実行時間[ms]を返す。時間を引数にして処理する場合に利用する。 | コールされるとサーバ内の実行時間[ms]を返す。時間を引数にして処理する場合に利用する。 | ||
++GetAlarmStatus.vi~ | ++GetAlarmStatus.vi~ | ||
- | 各軸のアラームをサーバでの定義有無にかかわらず6軸分の配列で取得する。 | + | 各軸のアラームをサーバでの定義有無にかかわらず6軸分の配列で取得する。~ |
+ | 特に問題が無い軸の値は0、何かしらの問題が発生している軸はそれ相応の数値が返される。 | ||
++SetBlntGain.vi~ | ++SetBlntGain.vi~ | ||
指令角度への遷移時間を設定する。0(=1)ないし1で遅れなし、0よりも大きくするに連れ遷移時間が短くなる。ステップ的な角度指令がなされても動きをあえて鈍らすために用意。 | 指令角度への遷移時間を設定する。0(=1)ないし1で遅れなし、0よりも大きくするに連れ遷移時間が短くなる。ステップ的な角度指令がなされても動きをあえて鈍らすために用意。 | ||
++SetGate.vi~ | ++SetGate.vi~ | ||
各軸の位置決め制御を最大6軸分の配列で開始(TRUE)・停止(FALSE)させる。FALSEが指令された軸へ角度指令しても、アクチュエータへの角度指令は行われない。FALSEからTRUEに変化させると、予め指令されている角度へ位置決め制御を開始する。 | 各軸の位置決め制御を最大6軸分の配列で開始(TRUE)・停止(FALSE)させる。FALSEが指令された軸へ角度指令しても、アクチュエータへの角度指令は行われない。FALSEからTRUEに変化させると、予め指令されている角度へ位置決め制御を開始する。 | ||
+ | ++SetGateEachOne.vi~ | ||
+ | 指定された1軸の位置決め制御を開始(TRUE)・停止(FALSE)させる。FALSEが指令された軸へ角度指令しても、アクチュエータへの角度指令は行われない。FALSEからTRUEに変化させると、予め指令されている角度へ位置決め制御を開始する。 | ||
++SetAngle.vi~ | ++SetAngle.vi~ | ||
各軸の角度[deg]を最大6軸分の配列で指令する。実際の制御はSetGate・SetBlntGain・SetAngularVelocityで設定された値に影響される。 | 各軸の角度[deg]を最大6軸分の配列で指令する。実際の制御はSetGate・SetBlntGain・SetAngularVelocityで設定された値に影響される。 | ||
++SetAngularVelocity.vi~ | ++SetAngularVelocity.vi~ | ||
- | 各軸の角速度[deg/sec^2]を最大6軸分の配列で指令する。アクチュエータ自体がそういった指令をサポートしているか否かにかかわらずサーバ自身にて対応する。 | + | 各軸の角速度[deg/sec]を最大6軸分の配列で指令する。アクチュエータ自体がそういった指令をサポートしているか否かにかかわらずサーバ自身にて対応する。 |
+ | ++SetAngleOneAxis.vi~ | ||
+ | 指定された1軸の角度[deg]と角速度[deg/sec]を指令する。 | ||
++GetPhisicalAngle.vi~ | ++GetPhisicalAngle.vi~ | ||
各軸の現在の角度[deg]をサーバでの定義有無にかかわらず6軸分の配列で取得する。 | 各軸の現在の角度[deg]をサーバでの定義有無にかかわらず6軸分の配列で取得する。 | ||
Line 126: | Line 133: | ||
コールされるとサーバ内の実行時間[ms]を返す。時間を引数にして処理する場合に利用する。 | コールされるとサーバ内の実行時間[ms]を返す。時間を引数にして処理する場合に利用する。 | ||
++GetAlarmStatus~ | ++GetAlarmStatus~ | ||
- | 制御している各軸のアラームをサーバでの定義有無にかかわらず6軸分の配列で取得する。 | + | 制御している各軸のアラームをサーバでの定義有無にかかわらず6軸分の配列で取得する。~ |
+ | 特に問題が無い軸の値は0、何かしらの問題が発生している軸はそれ相応の数値が返される。 | ||
++SetBlntGain~ | ++SetBlntGain~ | ||
指令角度への遷移時間を設定する。0(=1)ないし1で遅れなし、0よりも大きくするに連れ遷移時間が短くなる。ステップ的な角度指令がなされても動きをあえて鈍らすために用意。 | 指令角度への遷移時間を設定する。0(=1)ないし1で遅れなし、0よりも大きくするに連れ遷移時間が短くなる。ステップ的な角度指令がなされても動きをあえて鈍らすために用意。 | ||
++SetGate~ | ++SetGate~ | ||
各軸の位置決め制御を最大6軸分の配列で開始(1)・停止(0)させる。0が指令された軸へ角度指令しても、アクチュエータへの角度指令は行われない。0から1に変化させると、予め指令されている角度へ位置決め制御を開始する。 | 各軸の位置決め制御を最大6軸分の配列で開始(1)・停止(0)させる。0が指令された軸へ角度指令しても、アクチュエータへの角度指令は行われない。0から1に変化させると、予め指令されている角度へ位置決め制御を開始する。 | ||
+ | ++SetGateEachOne~ | ||
+ | 指定された1軸の位置決め制御を開始(1)・停止(0)させる。0が指令された軸へ角度指令しても、アクチュエータへの角度指令は行われない。0から1に変化させると、予め指令されている角度へ位置決め制御を開始する。 | ||
++SetAngle~ | ++SetAngle~ | ||
各軸の角度[deg]を最大6軸分の配列で指令する。実際の制御はSetGate・SetBlntGain・SetAngularVelocityで設定された値に影響される。 | 各軸の角度[deg]を最大6軸分の配列で指令する。実際の制御はSetGate・SetBlntGain・SetAngularVelocityで設定された値に影響される。 | ||
++SetAngularVelocity~ | ++SetAngularVelocity~ | ||
- | 各軸の角速度[deg/sec^2]を最大6軸分の配列で指令する。アクチュエータ自体がそういった指令をサポートしているか否かにかかわらずサーバ自身にて対応する。 | + | 各軸の角速度[deg/sec]を最大6軸分の配列で指令する。アクチュエータ自体がそういった指令をサポートしているか否かにかかわらずサーバ自身にて対応する。 |
+ | ++SetAngleAndVelocityEachOne~ | ||
+ | 定された1軸の角度[deg]と角速度[deg/sec]を指令する。 | ||
++GetPhisicalAngle~ | ++GetPhisicalAngle~ | ||
各軸の現在の角度[deg]をサーバでの定義有無にかかわらず6軸分の配列で取得する。 | 各軸の現在の角度[deg]をサーバでの定義有無にかかわらず6軸分の配列で取得する。 | ||
Line 160: | Line 172: | ||
サーバがデフォルトで使用するI/Fを記述する。 | サーバがデフォルトで使用するI/Fを記述する。 | ||
-Baudrate~ | -Baudrate~ | ||
- | サーバがデフォルトで使用するI/Fの通信速度等を記述する。 | + | サーバがデフォルトで使用するI/Fの通信速度等を記述する。なお、使用する全てのデバイスが同じ通信速度でなくてはならない。 |
-デバイスリスト~ | -デバイスリスト~ | ||
デバイスの一覧が表形式で表示される。マウスの左クリックで選択されたデバイスがウィンドウ下段の編集エリアにて変更可能。右クリックで表示されるポップアップメニューから追加や削除が可能。 | デバイスの一覧が表形式で表示される。マウスの左クリックで選択されたデバイスがウィンドウ下段の編集エリアにて変更可能。右クリックで表示されるポップアップメニューから追加や削除が可能。 | ||
Line 214: | Line 226: | ||
ポートが閉じている時にのみ選択の変更が可能。 | ポートが閉じている時にのみ選択の変更が可能。 | ||
-Running, Alarm (ステータスランプ)~ | -Running, Alarm (ステータスランプ)~ | ||
- | サーバが運転している最中の状態を表示する。Runningは運転中に一定間隔で明滅し、停止中に消灯する。Alarmは運転中に標準化APIから得られるアラームによって点灯ないし消灯する。 | + | サーバが運転している最中の状態を表示する。Runningは運転中に一定間隔で明滅し、停止中に消灯する。Alarmは運転中に標準化APIから得られるアラームによって点灯ないし消灯する。~ |
+ | Alarmが点灯している状態で運用し続けることは好ましくないため、サンプルプログラム等を使用してアラームの要因を調査し適宜対処の事。 | ||
-Start, Stop (開始・停止ボタン)~ | -Start, Stop (開始・停止ボタン)~ | ||
サーバの運転及び停止を指示する。運転中は標準化APIを使用してデバイスとの通信が常に行われている。~ | サーバの運転及び停止を指示する。運転中は標準化APIを使用してデバイスとの通信が常に行われている。~ | ||
Line 222: | Line 235: | ||
+構成ファイルの編集(必要に応じて)~ | +構成ファイルの編集(必要に応じて)~ | ||
テンプレートとして用意されたxmlファイルには、3軸で構成されたアクチュエータが定義されています。まずは自信の環境に合わせて構成を修正します。~ | テンプレートとして用意されたxmlファイルには、3軸で構成されたアクチュエータが定義されています。まずは自信の環境に合わせて構成を修正します。~ | ||
- | ++任意の構成ファイルを選択 | + | ++任意の構成ファイルを選択。 |
- | ++必要な軸数分だけデバイスリストを追加 | + | ++必要な軸数分だけデバイスリストを追加。 |
- | ++ID・デバイス名・位置の範囲・ホームポジション・角度変換係数を適宜修正 | + | ++ID・デバイス名・位置の範囲・ホームポジション・角度変換係数を適宜修正。 |
- | ++保存して終了 | + | ++保存して終了。 |
+I/Fと実機の準備 | +I/Fと実機の準備 | ||
- | アクチュエータに応じたPC用のI/Fを準備し、全ての接続と電源を投入します。次の図はDynamixelを例にしたものですが、概ねどのメーカのアクチュエータも似た構成になるはずです。 | + | ++アクチュエータに応じたPC用のI/Fを準備し、各アクチュエータのIDと通信速度を予め先のエディタで設定したものに変更。 |
+ | ++各社から提供されるツール等で最低限の動作確認を行っておく。 | ||
+ | ++全て接続し電源を投入。~ | ||
+ | 次の図はDynamixelを例にしたものだが、概ねどのメーカのアクチュエータも似た構成になるはず。 | ||
#ref(http://www.besttechnology.co.jp/uploads/fckeditor/fck200912031951039e0b50be55fa7af6.png) | #ref(http://www.besttechnology.co.jp/uploads/fckeditor/fck200912031951039e0b50be55fa7af6.png) | ||
+サーバの運転~ | +サーバの運転~ | ||
Line 242: | Line 258: | ||
**ダウンロード [#l54e4ca0] | **ダウンロード [#l54e4ca0] | ||
- | [[robo-one_server_v1.3>http://www.besttechnology.co.jp/download/robo-one_server_v1.3.exe]]~ | + | -[[robo-one_server_v1.4>http://www.besttechnology.co.jp/download/robo-one_server_v1.4.exe]]~ |
+ | 公開日: 2013/11/12~ | ||
+ | サイズ: 5,842,198 byte~ | ||
+ | MD5チェックサム: bb2cd2ce10d1b0df65bf0fc1ee459d81~ | ||
+ | 更新内容:krslibのバグ修正, KONDO B3M対応, 軸毎に個別指定するAPI追加, 鈍しフィルタと角速度演算の多段化対応, 構成ファイルエディタで設定したCOMが選ばれないバグ修正, LabVIEW用サンプル追加 | ||
+ | |||
+ | -[[robo-one_server_v1.3.1>http://www.besttechnology.co.jp/download/robo-one_server_v1.3.1.exe]]~ | ||
+ | 公開日: 2013/10/10~ | ||
+ | サイズ: 7,199,377 byte~ | ||
+ | MD5チェックサム: efc871297b9d648050c7e2210f99c8e~ | ||
+ | 更新内容:32bit版のdllコールを修正(未使用のため特段影響なし), dxlib_x??.dllのデフォルトオフセットタイムを0から20に変更しタイムアウトの検出をゆるめに | ||
+ | |||
+ | -[[robo-one_server_v1.3>http://www.besttechnology.co.jp/download/robo-one_server_v1.3.exe]]~ | ||
公開日: 2013/09/17~ | 公開日: 2013/09/17~ | ||
サイズ: 6,747,283 byte~ | サイズ: 6,747,283 byte~ | ||
Line 254: | Line 282: | ||
|~| hostapp | labview |LabVIEW用ラッパー及びサンプル類 | | |~| hostapp | labview |LabVIEW用ラッパー及びサンプル類 | | ||
|~|~| matlab |Matlab/Simulink用ラッパー及びサンプル類 | | |~|~| matlab |Matlab/Simulink用ラッパー及びサンプル類 | | ||
+ | |||
**留意事項 [#x6b86e21] | **留意事項 [#x6b86e21] | ||
PCとアクチュエータ間のI/Fの大半は、FTDI社のUSBシリアル変換チップを搭載しているものと思います。このチップを使用している場合、「待ち時間」という設定がデバイスドライバに存在します。この値が大きければ大きいほど遅延が生じ、見かけ以上のパフォーマンスが落ちるため、本サーバで使用する場合は1msに設定を変更して下さい。変更の方法は[[こちら>BTE068#ac1c088b]]。 | PCとアクチュエータ間のI/Fの大半は、FTDI社のUSBシリアル変換チップを搭載しているものと思います。このチップを使用している場合、「待ち時間」という設定がデバイスドライバに存在します。この値が大きければ大きいほど遅延が生じ、見かけ以上のパフォーマンスが落ちるため、本サーバで使用する場合は1msに設定を変更して下さい。変更の方法は[[こちら>BTE068#ac1c088b]]。 | ||
+ | **その他 [#tc1f382f] | ||
+ | ***アラーム [#ua553410] | ||
+ | サーバの運転中にアクチューエータに何かしらの問題が生じていると、サーバのウィンドウに配置されたAlarmのLEDが点灯します。これだけではアラームの要因を特定できないため、SHMIF32.dllのSHGetAlarm(LabVIEWならGetAlarmStatus.vi、simulinkならGetAlarmStatus)を使用して各軸の16bitで表されるアラーム情報を取得して判断してください。~ | ||
+ | メーカごとのアラーム情報のビットアサインは以下の通りです。 | ||
+ | | Vendor | Bit | Information |h | ||
+ | | ROBOTIS | 15 |不正デバイスIDエラー | | ||
+ | |^| 14 |不正IDエラー | | ||
+ | |^| 13 |異IDエラー | | ||
+ | |^| 12 |不正サイズエラー | | ||
+ | |^| 11 |不正パラメータエラー | | ||
+ | |^| 10 |COMポートエラー | | ||
+ | |^| 9 |チェックサムエラー | | ||
+ | |^| 8 |通信タイムアウト | | ||
+ | |^| 7 |- | | ||
+ | |^| 6 |インストラクションエラー | | ||
+ | |^| 5 |過負荷 | | ||
+ | |^| 4 |チェックサムエラー | | ||
+ | |^| 3 |レンジエラー | | ||
+ | |^| 2 |過加熱 | | ||
+ | |^| 1 |アングルエラー | | ||
+ | |^| 0 |過電圧 | | ||
+ | | KONDO KRS | 15 |不正デバイスIDエラー | | ||
+ | |^| 14 |不正IDエラー | | ||
+ | |^| 13 |異IDエラー | | ||
+ | |^| 12 |不正サイズエラー | | ||
+ | |^| 11 |不正パラメータエラー | | ||
+ | |^| 10 |COMポートエラー | | ||
+ | |^| 9 |チェックサムエラー | | ||
+ | |^| 8 |通信タイムアウト | | ||
+ | |^| 7 |- | | ||
+ | |^| 6 |- | | ||
+ | |^| 5 |- | | ||
+ | |^| 4 |- | | ||
+ | |^| 3 |レンジエラー | | ||
+ | |^| 2 |- | | ||
+ | |^| 1 |- | | ||
+ | |^| 0 |- | | ||
+ | | KONDO B3M | 15 |不正デバイスIDエラー | | ||
+ | |^| 14 |不正IDエラー | | ||
+ | |^| 13 |異IDエラー | | ||
+ | |^| 12 |不正サイズエラー | | ||
+ | |^| 11 |不正パラメータエラー | | ||
+ | |^| 10 |COMポートエラー | | ||
+ | |^| 9 |チェックサムエラー | | ||
+ | |^| 8 |通信タイムアウト | | ||
+ | |^| 7 |B3MのSTATUSに準拠 | | ||
+ | |^| 6 |^ | | ||
+ | |^| 5 |^ | | ||
+ | |^| 4 |^ | | ||
+ | |^| 3 |^ | | ||
+ | |^| 2 |^ | | ||
+ | |^| 1 |^ | | ||
+ | |^| 0 |^ | | ||
+ | | FUTABA | 15 |不正デバイスIDエラー | | ||
+ | |^| 14 |不正IDエラー | | ||
+ | |^| 13 |異IDエラー | | ||
+ | |^| 12 |不正サイズエラー | | ||
+ | |^| 11 |不正パラメータエラー | | ||
+ | |^| 10 |COMポートエラー | | ||
+ | |^| 9 |チェックサムエラー | | ||
+ | |^| 8 |通信タイムアウト | | ||
+ | |^| 7 |温度リミットエラー | | ||
+ | |^| 6 |- | | ||
+ | |^| 5 |温度リミットアラーム | | ||
+ | |^| 4 |- | | ||
+ | |^| 3 |フラッシュROM書き込みエラー | | ||
+ | |^| 2 |- | | ||
+ | |^| 1 |受信パケット処理不能エラー | | ||
+ | |^| 0 |- | | ||
+ | | TECHNO ROAD | 15 |不正デバイスIDエラー | | ||
+ | |^| 14 |不正IDエラー | | ||
+ | |^| 13 |異IDエラー | | ||
+ | |^| 12 |不正サイズエラー | | ||
+ | |^| 11 |SOCKETエラー | | ||
+ | |^| 10 |- | | ||
+ | |^| 9 |- | | ||
+ | |^| 8 |- | | ||
+ | |^| 7 |- | | ||
+ | |^| 6 |- | | ||
+ | |^| 5 |不正PORTエラー | | ||
+ | |^| 4 |不正パラメータエラー | | ||
+ | |^| 3 |メモリエラー | | ||
+ | |^| 2 |タイムアウト | | ||
+ | |^| 1 |未知エラー | | ||
+ | |^| 0 |- | |