インターフェース通信コマンド説明

  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,1,1; 110,1; 120,1,0

    アイインハンド:スペースピック対象を切り替え → 撮影 → 現在のカメラ撮影点→検出

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

    スプライシングアイインハンド:スペースピック対象を切り替え → カメラ1撮影 → カメラ2撮影 →検出

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

    スプライシングアイオフハンド:スペースピック対象を切り替え → カメラ1撮影 → 現在のカメラ1撮影点→ カメラ2撮影 → 現在のカメラ2撮影点→検出

    130,1,1; 110,1; 140,1,0,0,0,0,0,0; 110,2; 140,2,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実行にエラーまたは異常が存在します(ATOM返信結果がnull、またはATOMリクエスト実行でcatch例外が発生)

3019

検出異常

120 異常(ATOM異常を含まない)

3020

結果が検出されませんでした

ターゲットが検出されませんでした (1. ATOMの検出結果が空

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

3.ATOMの検出結果は空ではないが、すべてのピックポイントで結果が計画されていない)

3021

使用可能なピックポイントなし

ピック可能な結果が存在するが、検出結果がすでにピック完了後に再度リクエストすると提示:使用可能なピックポイントなし

3022

Epic Pro 異常

通信実行とhooks実行だがhooksが処理していない異常(hooks実行異常)

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]"}