mm_vision_pick_and_place
このサンプルプログラムは、ロボットの簡単な把持・配置タスクを実現しています。1つのビジョン結果により単体把持または複数把持に適しています。
設定説明
ポイントの設定
Point Manager で以下のポイントを設定可能です。
ティーチングポイントとは、ユーザーが手動でティーチングするポイントを指します。自動計算ポイントはティーチングによって作成されるのではなく、Mech-Visionのビジョン結果に基づいて自動的に計算されます。 |
ティーチングポイント
AbovePickArea:初期位置のようなもので、撮影ポイントと配置ポイントに簡単に到達できます
Detect:撮影ポイント
Dropoff:配置ポイント
自動計算ポイント
Pick:Mech-Visionのビジョン結果に基づいて計算されるポイント
PrePick:ピッキングの前に、対象物に接近するための直線移動をガイドするために使用されます(把持ポイント基準座標系のZ軸に沿ってTCPを把持ポイントからオフセットさせます)
PostPick:ピッキング後に、対象物から離れるための直線移動をガイドするために使用されます(ロボットベース座標系のZ軸に沿ってTCPを把持ポイントからオフセットさせます)
パラメータ設定
init コンポーネント
プログラム内のすべてのネットワークデバイスは、initデバイスを使用します。このコンポーネントは、initデバイスのIPアドレスを変更することができます(このIPアドレスはIPCのLANポートのIPアドレスです)。
initデバイスのIPアドレスを変更する場合、 接続するIPCのIPアドレスを設定 をご参照ください。
Run Vision コンポーネント
このプログラムでMech-Visionを実行するためのパラメータを手動で設定する必要があります。Run Visionコンポーネントの左上にある をクリックして、パラメータを設定します。
パラメータの設定については、 Mech-Visionを起動 (Run Vision) をご参照ください。
メインプログラム
まず、通信接続を確立するためにプログラムの最初にinitコンポーネントを追加し、initコンポーネントの設定でIPアドレスを変更して、ロボットのIPとIPCのIPが同じネットワークセグメント内にあることを確認します。
ソケット接続が成功したら、detection_sequenceフローを追加してロボットを撮影ポイントに移動します。
その後、Run Visionコンポーネントを追加してMech-Visionを起動します。また、このコンポーネントでパラメータを設定し、レシピを選択することができます。
次に、Receive Visionコンポーネントを追加してMech-Visionのビジョン結果を取得します。このコンポーネントには4つの出口があり、プログラムをカスタマイズ可能です。 点群が空であり、Mech-Visionを再実行したい場合は、EMPTY_ROI と mm_v01_runvis1をつなぐことができます。
これで、取得したMech-Visionの結果は文字列配列(string[])の形式でg_mm_socket_recv_arrayというグローバル変数に保存されます。
下図のように示します。g_mm_socket_recv_arrayのデータを処理して、すべてのポイントが一度に完全に受信されたかどうかを判断し、受信が完了していない場合はプログラムがmm_v01_recvvis1コンポーネントまでジャンプして実行されます。実行が完了したら、ポイントはg_mm_total_pointというグローバル変数に保存されます。
最後に、受信したMech-Visionの目標点を対応するポイントに割り当てて動作させます。