Adapterジェネレーターのマニュアル

本節では、Adapterジェネレーターと、Adapterジェネレーターを使用してAdapterプログラムをすばやく生成する方法について説明しています。

Adapterジェネレーターの紹介

Adapterジェネレーターは、Mech-Centerに統合されたコンポーネントです。Adapterジェネレーターは、TCP/IP Socket通信を使用し、Mech-Visionのみを使用して視覚位置姿勢を提供するシーンにのみ適しています。

Adapterジェネレーターは、次のことに役立ちます。

  • Adapterプロジェクトをすばやく生成すること。

  • 複雑なニーズを満たすために、Adapterプログラミングの開発をすばやく学ぶこと。

下図に示すように、 ツール ‣ Adapterジェネレーター をクリックしてAdapterジェネレーターを起動して設定を行います。

../../../../_images/adapter_generator01.png

注意

Adapterジェネレーターは、管理者モードでのみ使用できます。

Adapterジェネレーターを使用してAdapterプログラムをすばやく生成する

ヒント

コンポーネントにマウスを置くと詳細な説明が表示されます。

ネットワーク設定 - サーバー/クライアント

下図のような画面で Adapter名クライアント/サーバー形式 を設定してから、 次へ をクリックします。

../../../../_images/adapter_generator02.png

パラメータの説明:

  • Adapter名:Adapterプロジェクトの名前を設定します。

  • Adapterの役割:AdapterをTCP/IP Socket通信用のサーバー (Server) またはクライアント (Client) として設定します。Adapterがクライアントとして機能し、サーバーがクライアントに対してポート制限を持っている場合は、 ポートバインド にチェックを入れるする必要があります。

    ヒント

    ピア(相手側)と正常に通信するために、Adapterプロジェクトを設定するときはホストIPアドレスとポートを正しく設定する必要があります。詳細については、 Adapterプロジェクトの設定 をご参照ください。

  • 形式: 通信時のデータ送信フォーマットを設定し、ASCII文字列またはHEX(16進数)をサポートします。「HEX」に設定されている場合、バイトオーダ(エンディアン)も「ビッグエンディアン」または「リトルエンディアン」で指定する必要があります。

Mech-Viz/Mech-Vision設定ー位置姿勢と関節角度

ヒント

  • この設定を行う前に、Mech-Visionプロジェクトと衝突検出のためのMech-Vizプロジェクトを開いて自動読み込みに設定し、プロジェクトがMech-Centerに読み込まれていることを確認します。

  • Mech-Centerは、衝突検出のためのMech-Vizサンプルプロジェクト「check_collision」を提供しています。それは、Mech-Centerのインストールパスの「tool\viz_project」フォルダに格納されています。

注意

「check_collision」サンプルプロジェクトに示すように、プロジェクトは 视觉识别 によってトリガーされて撮影し、非移動タスクを含める必要があります。また、 notify_1、notify_2およびvision_look_1などのタスク名を変更することはできません。

下図のような画面でMech-VizおよびMech-Visionプロジェクトのパラメータを設定してから、 次へ をクリックします。

../../../../_images/adapter_generator03.png

Mech-Visionに関するパラメータの説明:

  • Mech-Visionプロジェクト名:Mech-Visionプロジェクト名を選択します。ドロップダウンリストからAdapterと通信する Mech-Visionプロジェクトを選択します。

  • 位置姿勢の数:ピア(相手側)に送信する位置姿勢の数を設定します。

  • 位置姿勢の形式:四元数またはオイラー角を選択可能です。

  • 位置姿勢の単位:一般的に、ミリメートルおよび度が使用されます。

  • カメラ:ETHおよびEIHの2つのカメラ取付方式があります。

  • 位置姿勢の基準座標系:送信する位置姿勢が基づく座標系を選択します。一般に、位置姿勢はベース座標系に基づいています。位置姿勢は、EIHモードでロボットがロボットエンドの位置姿勢を提供できない場合にのみ、ツール座標系に基づきます。

  • 小数点以下の桁数を保持:送信する位置姿勢の小数点以下の桁数を設定します。最大の桁数は10です。

Mech-Vizに関するパラメータの説明:

  • Mech-Vizを使って衝突を検出:チェックを入れたら、視覚位置姿勢がMech-Vizによって検出・計算されます。それにより、計画に失敗した位置姿勢がフィルタリングされ、衝突のない把持位置姿勢が選出されます。

  • Mech-Vizの設定:この画面で Mech-Vizを使って衝突を検出 にチェックを入れた後、 Mech-Vizの設定 をクリックすれば下図のような画面が表示されます。設定が完了したら、右下隅にある 保存 をクリックします。

    ../../../../_images/adapter_generator04.png
    • 把持位置姿勢と配置位置姿勢を区別する必要あり:把持位置姿勢は「視覚処理による移動」の前のすべての位置姿勢(視覚認識による移動を含む)であり、配置位置姿勢は「視覚処理による移動」 の後のすべての位置姿勢です。シーンによっては、ロボットがタスクによって把持動作と配置動作を区別する必要があります。

    • 把持位置姿勢と放置位置姿勢の数を送信する必要あり:把持位置姿勢の数が多い場合、数量フィールドをつけることができます。チェックを入れた後、デフォルトの位置姿勢の数が1以上であればこのフィールドをつけます。

    • 各位置姿勢の運動タイプを送信する必要あり:Mech-Vizでの移動タスクは、関節運動または直線運動と2種類があります。

    • コードをアップデート:デフォルトで、関節運動の対応コードは1で、直線運動の対応コードは2です。コードはカスタマイズ可能で、それを変更して コードをアップデート をクリックすれば、新しいコードが有効になります。

    • Jps/位置姿勢:位置姿勢の送信形式で、デフォルトでJpsを使用します。下図に示すように、位置姿勢を選択する場合、Mech-Vizソフトウェアの その他 パネルで TCP位置姿勢を送信 にチェックを入れてください。

      ../../../../_images/adapter_generator05.png
    • Jpsの単位/位置姿勢の単位:通常、送信する位置姿勢の形式は Jps の場合、Jpsの単位が度に設定され、送信する位置姿勢の形式は Pose の場合、位置姿勢の単位はメートルに設定されます。

    • ロボット名:ロボットサービスの名前を設定します。Mech-Vizでロボットの動作をシミュレートするには、ロボット実機のサービスが必要です。このサービスは、生成されたAdapterによってシミュレートされます。ロボット名はこのサービスの名前であり、Mech-Vizでのロボット名と一致している必要があります。この画面で ロボット名を取得 をクリックすれば、ロボット名が正常に追加されます。

    • 原点関節角度(ラジアン単位):これは、Mech-Vizでロボット動作の基準原点を指します。単位はラジアンで、コンマで区切られます。Mech-Vizの「移動」タスクを編集して原点とし、原点の関節位置をコピーすることができます。

ストリームの受信設定 - 受信するフィールド

下図のような画面で受信フィールドのフォーマットを設定する必要があります。画像取得コマンド、複数のプロジェクト、フィールド合計数、フィールドタイプ、フィールド区切り記号とサブフィールド区切り記号を設定する必要があります。設定が完了したら、右下隅にある 次へ をクリックします。

../../../../_images/adapter_generator06.png
  • フィールド合計数:設定するパラメータの数によって異なります。その範囲を「1~10」に設定できます。また、フィールドに画像取得コマンドがなければなりません。

  • 画像取得コマンド:外部からMech-Mindソフトウェアシステムに画像取得コマンドを送信し、カメラで撮影します。ASCIIの場合、 p のような文字を入力し、フィールド位置をデフォルトの1にすることをお勧めします。HEXの場合、 0xff または ff などの16進数形式の整数を使用する必要があります。

  • フィールド区切り記号サブフィールド区切り記号:ASCIIの場合は設定が必要です。2つ以上のフィールドがある場合は、フィールド区切り記号を入力する必要があります。追加情報で別のフィールド区切り記号が必要な場合は、サブフィールド区切り記号も必要です。また、サブフィールド区切り記号の開始範囲と終了範囲を指定できます。

  • フィールドタイプディスクリプション:HEXの場合は設定が必要です。CHAR、SHORT、INT、FLOATおよびDOUBLEが選択可能です。 ディスクリプション はフィールドの機能または意味を説明するために使用されます。

  • 複数のプロジェクト:この設定は選択可能です。1つの項目に複数のMech-Visionプロジェクトがある場合、外部からのコマンドによって異なるMech-Visionプロジェクトを呼び出す必要があります。その中、コマンドを設定することができます。

    注意

    プロジェクトごとに唯一のコマンドが対応します。また、フィールドの位置も唯一で、他のフィールドと重複してはいけません。

ロボットの設定 - Eye in Hand

ヒント

Mech-Viz/Mech-Vision設定ー位置姿勢と関節角度 の画面で カメラEye In Hand に設定されている場合に使用できます。

下図のような画面で、画像撮影時のロボットの位置姿勢の形式を設定してから、 次へ をクリックします。

../../../../_images/adapter_generator09.png

パラメータの説明:

  • ロボットから画像取得時の関節角度またはフランジ位置姿勢をAdapterに送信する必要あり:ピア(相手側)はロボットベース座標系に基づいた位置姿勢を提供する必要がある場合、画像取得時のロボットからの関節角度またはフランジ姿勢が必要であるため、これにチェックを入れてください。チェックを入れたら、位置姿勢を関節角度またはオイラー角に設定することができます。

  • 関節角度の単位:ラジアンまたは度を選択可能です。

  • フランジ位置姿勢の単位:フランジ位置姿勢の単位(四元数またはオイラー角)を設定します。四元数の場合はメートルとミリメートルを選択可能で、オイラー角の場合は度とラジアンを選択可能です。

  • 関節角度/フランジ位置姿勢のフィールド位置:全体フィールド内の関節角度または位置姿勢の開始フィールドと終了フィールドの位置を設定します。

    注意

    インデックス位置は1からカウントされ、他のフィールドと重複することはできません。例えば、インデックス位置「1」は画像取得コマンドです。

  • ロボット名:ロボットサービスをマークするための名前です。それをMech-Viz中のロボット名と一致させる必要があります。

  • ロボットの自由度:プロジェクトによってロボットの自由度を選択してください。現在は、4軸および6軸ロボットに対応しています。

送信するストリームの設定-フィールド送信

下図に示すように、この画面で送信する位置姿勢の形式を設定してから、 次へ をクリックします。

../../../../_images/adapter_generator10.png

パラメータの説明:

  • フィールド区切り記号サブフィールド区切り記号:区切り記号の形式を設定します。ASCIIの場合は設定が必要です。2つ以上のフィールドがある場合は、フィールド区切り記号を入力する必要があります。追加情報で別のフィールド区切り記号が必要な場合は、サブフィールド区切り記号も必要です。また、サブフィールド区切り記号の開始範囲と終了範囲を指定できます。

  • ステータスコード:送信形式を設定します。各ステータスが唯一のステータスコードに対応します。

  • 点群要確認:チェックを入れれば、点群がAdapterによって確認されます。点群がない場合は、対応するステータスコードが出力されます。

  • 対象物のラベルを要送信:対象物のラベルの送信は、Mech-Visionで認識されたラベルをピア(相手側)に送信することです。各ラベルは位置姿勢の後に付きます。ピア(相手側)にとってラベルの文字列を解析するのが不便な場合は、対応のラベルのコードを指定することもできます。その中、すべてのラベルの文字列を含むラベルファイルを読み込む必要があります。また、ラベルファイルの形式はjson配列形式である必要があります。

  • 把持位置姿勢の数を要送信:今回送信する位置姿勢の数を送信します。

  • 固定ボディーが必要:視覚認識に失敗した場合、ピア(相手側)にメッセージ(エラーコード後のメッセージ)を送信します。

  • 固定テールが必要:チェックを入れれば、送信するデータの後にテールを固定する標識が追加されます。

注意

通信形式を16進数(HEX)に設定する場合、ステータスコード、位置姿勢の数、位置姿勢のタイプを設定する必要があります。

上記の設定をすべて完了したら、 完了 または 名前を付けて保存 をクリックしてAdapterプロジェクトを保存します。Adapterプロジェクトを保存した後、 Adapterプロジェクトの設定 を参照してそれをデプロイして実行することができます。

Adapterプログラミング開発については、以下の内容をお読みください。