インターフェース通信コマンド仕様

  1. 指定したIDのカメラで撮影ポイントを送信する前に、まずそのIDに対応するカメラで撮影をトリガーする必要があります。

  2. 「ハンドアイ」構成の場合、注意事項1に加えて、通信の実行順序は次の通りでなければなりません:まず撮影をトリガーし、次に撮影ポイントを送信し、最後に検出を行います。

  3. 複数カメラの「ハンドアイ」構成の場合、注意事項1に加えて、通信の実行順序は次の通りでなければなりません:カメラID1で撮影をトリガーし、カメラID1の撮影ポイントを送信し、次にカメラID2で撮影をトリガーし、カメラID2の撮影ポイントを送信し、最後に検出を行います。(ID1とID2はカメラ0が必ず最初に撮影することを意味しません。現場のニーズに応じて順序を調整できます。)

ポート5700

自動化通信プロトコル - Epic Pro がサーバーとして機能(ポート5700)。

interface instructions

単一コマンド

動作

コマンド

応答

撮影

110,カメラID

110,カメラID1,カメラID2…​

(110のみ入力した場合、デフォルトで最初のカメラが使用されます)

成功:110,カメラID

失敗:000,エラーコード,カメラID

検出

通常検出:120,リクエストされたポーズ点数,0

把持経路計画のみ:120,把持経路点数,0

退避経路計画付き:120,把持経路点数,退避経路点数

成功:コマンドコード=120

ケース1(通常検出/衝突検出):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

ケース2(経路計画):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

インターフェースの点群が更新されます。衝突検出や経路計画の場合、ロボットの状態も変化します。

経路計画では、要求された経路点の数が各セグメントに設定された経路点の数を超えることは許可されていません。超えた場合、ソフトウェアは000,3005(要求された経路点の数が要件を満たしていません)を返します。 アルゴリズム検出/衝突検出のみ、要求された把持点の数が実際に認識された把持点の数を超えることが許可されています。

空間内の物体切り替え

130,空間ID,物体ID

成功:130

失敗:000,ロボット状態コード

ロボット撮影ポーズ(ハンドアイ)

140,カメラID,X,Y,Z,姿勢

(クォータニオンはW,X,Y,Zの順で解析)

成功:140,カメラID

失敗:000,ロボット状態コード

視覚ソフトウェアの再起動

307

コマンド受信:307

産業用PCのシャットダウン

886

コマンド受信:886

ショートカットコマンド

動作

コマンド

応答

撮影+検出

通常検出:220,把持点数,0

把持経路計画のみ:220,把持経路点数,0

退避経路計画付き:220,把持経路点数,退避経路点数

成功:コマンドコード=220

ケース1(通常検出/衝突検出):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

ケース2(経路計画):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

インターフェースの点群が更新されます。衝突検出や経路計画の場合、ロボットの状態も変化します。

失敗:000,ロボット状態コード

撮影+ロボット撮影ポーズ

240,カメラID,X,Y,Z,姿勢

成功:240,カメラID

失敗:000,ロボット状態コード

撮影+ロボット撮影ポーズ+検出

通常検出:250,カメラID,X,Y,Z,姿勢,把持点数,0

把持経路計画のみ:250,カメラID,X,Y,Z,姿勢,把持経路点数,0

退避経路計画付き:250,カメラID,X,Y,Z,姿勢,把持経路点数,退避経路点数

成功:コマンドコード=250

ケース1(通常検出/衝突検出):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

ケース2(経路計画):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

インターフェースの点群が更新されます。衝突検出や経路計画の場合、ロボットの状態も変化します。

失敗:000,ロボット状態コード

空間内の物体切り替え+撮影

310,空間ID,物体ID,カメラID1,カメラID2…​

(カメラIDが含まれていない場合、デフォルトで最初のカメラが使用されます)

成功:310,カメラID

失敗:000,ロボット状態コード

空間内の物体切り替え+撮影+検出

通常検出:320,空間ID,物体ID,カメラID1,カメラID2…​,把持点数,0

把持経路計画のみ:320,空間ID,物体ID,カメラID1,カメラID2…​,把持経路点数,0

退避経路計画付き:320,空間ID,物体ID,カメラID1,カメラID2…​,把持経路点数,退避経路点数

(カメラIDが含まれていない場合、デフォルトで最初のカメラが使用されます)

成功:コマンドコード=320

ケース1(通常検出/衝突検出):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

ケース2(経路計画):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

インターフェースの点群が更新されます。衝突検出や経路計画の場合、ロボットの状態も変化します。

失敗:000,ロボット状態コード

空間内の物体切り替え+撮影+ロボット撮影ポーズ

340,空間ID,物体ID,カメラID,X,Y,Z,姿勢

成功:340,カメラID

失敗:000,ロボット状態コード

空間内の物体切り替え+撮影+ロボット撮影ポーズ+検出

通常検出:350,空間ID,物体ID,カメラID,X,Y,Z,姿勢,把持点数,0

把持経路計画のみ:350,空間ID,物体ID,カメラID,X,Y,Z,姿勢,把持経路点数,0

退避経路計画付き:350,空間ID,物体ID,カメラID,X,Y,Z,姿勢,把持経路点数,退避経路点数

成功:コマンドコード=350

ケース1(通常検出/衝突検出):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

ケース2(経路計画):コマンドコード,ポーズタイプ(デカルト0/関節1),送信されたポーズ点数(n),把持可能な物体数,総把持点数,現在の空間ID,現在の物体ID,現在の把持点インデックス(全把持点リスト内でのインデックス),現在の把持点番号(把持点編集ツールで表示される番号),予約済みProStatus情報(情報がない場合は0で埋める),0,0,ポーズ*n

インターフェースの点群が更新されます。衝突検出や経路計画の場合、ロボットの状態も変化します。

失敗:000,ロボット状態コード

組み合わせコマンド

基本原則:

  1. 単一の指令を互いに組み合わせ、セミコロン(;)で区切ります

  2. 手に目がある場合、写真を撮るカメラIDと写真点の姿勢を送信するカメラIDが一致していることを確認し、写真点を送信する前に対応するIDのカメラで写真を撮影します。

  3. 指令の順序:

    指令の順序

    例の指令

    手外の目: 空間物体を切り替え → 写真を撮る → 検出

    130,0,0;110,0;120,1,0

    手に目: 空間物体を切り替え → 写真を撮る → 現在のカメラの写真点 → 検出

    130,0,0;110,0;140,0,0,0,0,0,0,0;120,1,0

    手に目のステッチング: 空間物体を切り替え → カメラ0で写真を撮る → カメラ1で写真を撮る → 検出

    130,0,0;110,0;110,1;120,1,0

    手外の目のステッチング: 空間物体を切り替え → カメラ0で写真を撮る → 現在のカメラ0の写真点 → カメラ1で写真を撮る → 現在のカメラ1の写真点 → 検出

    130,0,0;110,0;140,0,0,0,0,0,0,0;110,1;140,1,0,0,0,0,0,0;120,1,0

簡単な例:

動作

コマンド

応答

撮影+検出

110,カメラID1,カメラID2…​;120,1,0 または 110;120,1,0

(カメラIDが含まれていない場合、デフォルトで最初のカメラが使用されます)

上記の表の応答詳細を参照

撮影+ロボット撮影ポーズ

110,カメラID;140,カメラID,X,Y,Z,姿勢

上記の表の応答詳細を参照

撮影+ロボット撮影ポーズ+検出

110,カメラID;140,カメラID,X,Y,Z,姿勢;120,1,0

上記の表の応答詳細を参照

状態コードの返却

すべてのコマンドはHOOKを経由して返却され、すべて応答があります。

成功状態コード

状態コード

説明

備考

2001

設定切り替え成功

2002

カメラ切り替え成功

2003

ロボット撮影ポーズ設定成功

2004

撮影成功

2005

検出成功

通常検出および衝突検出の成功を含む

2006

経路計画成功

異常状態コード

状態コード

説明

備考

3001

現在の操作実行中です。しばらくしてから再試行してください

プラン終了中または待機状態では他の操作を実行できません

3002

コマンド解析失敗。フォーマットを確認してください

3003

リクエストされたパラメータ数が要件を満たしていません

3004

撮影ポーズのフォーマットが正しくありません

3005

リクエストされた経路点数が要件を満たしていません

3006

リクエストされた把持点数が要件を満たしていません

3007

把持空間の切り替えに失敗

3008

把持設定の切り替えに失敗

3009

カメラ切り替えに失敗

3010

カメラパラメータの設定に失敗

3011

現在のロボット撮影ポーズを受信していません

3012

カメラ撮影ポーズ設定時に撮影データがありません

3013

現在のロボット撮影ポーズの設定に失敗

3014

前回のロボット撮影ポーズが送信されていません。再度撮影し、対応するポーズを送信してください

3015

撮影失敗

3016

検出入力データが不足しています

ATOMをリクエストする前に不足しているデータ:ハンドアイキャリブレーション結果データまたはハンドアイ撮影点データ

3017

ATOMパラメータの設定に失敗

実行時パラメータおよびマッピングパラメータを含む

3018

ATOM検出異常

ATOMの実行にエラーまたは異常が発生(結果がnull、またはリクエスト中に例外が発生)

3019

検出異常

120コマンドの異常(ATOM異常を除く)

3020

検出結果なし

ターゲットが検出されませんでした:

1. ATOMの検出結果が空

2. ATOMの結果は空ではないがすべて衝突

3. ATOMの結果は空ではないが把持点が計画されない

3021

利用可能な把持点なし

把持可能な結果が存在するが、すべて把持済みで再度リクエスト時に「利用可能な把持点なし」と表示

3022

Epic Pro異常

通信およびフックが実行されたが、フックで処理されない異常(フック実行異常)

ポート5800

リアルタイムロボットデータ取得(デフォルトポート5800)

// 注意:SNの命名規則がVendorName-ModelName-RobotNameに変更されました
// VendorNameはmotion_planモジュールと同じ命名規則に従います
// RobotNameは001、002、003などになります

// デカルト空間ポーズの送信
{"SN":"Abb-001","C":"[269.91,3.84,910.26,0.0353839,0.705059,0.0673907]"}
// 関節角度の送信
{"SN":"Abb-001","J":"[2.03,-48.87,50.83,-0.06,85.19,0.91]"}