mm_vision_pick_and_place

現在ご覧いただいているのは未リリースのバージョンです(V2.1.0)。異なるバージョンを参照する場合は、画面右上のボタンから切り替えが可能です。

■ ご利用中のバージョンが分からない場合はお気軽にサポート窓口までご連絡ください。

このサンプルプログラムは、ロボットの簡単な把持・配置タスクを実現しています。1つのビジョン結果により単体把持または複数把持に適しています。

プログラムの読み込み

TMflowのProject画面に入り、下図のようにプログラムを開きます。

mm vision pick and place1

設定説明

ポイントの設定

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コンポーネントの左上にある tm interface program icon4 をクリックして、パラメータを設定します。

パラメータの設定については、 Mech-Visionを起動 (Run Vision) をご参照ください。

プログラム説明

移動プログラム

撮影(detection_sequence)

detection sequence

把持(pick_sequence)

対象物を把持するための動作フロー:離れる点 → 近接点 → 把持点 → 近接点 → 離れる点。

pick sequence

grasp_objectの機能ブロックは不完全ですが、ユーザーはここでロボットハンドを閉じるためのパラメータを変更することができます。

また、ユーザーはconfigの機能ブロックで近接点から把持点までの距離を設定できます。

配置(place_sequence)

place sequence

release_objectの機能ブロックは不完全ですが、ユーザーはここでロボットハンドを開くためのパラメータを変更することができます。

メインプログラム

まず、通信接続を確立するためにプログラムの最初にinitコンポーネントを追加し、initコンポーネントの設定でIPアドレスを変更して、ロボットのIPとIPCのIPが同じネットワークセグメント内にあることを確認します。

mm vision pick and place2

ソケット接続が成功したら、detection_sequenceフローを追加してロボットを撮影ポイントに移動します。

その後、Run Visionコンポーネントを追加してMech-Visionを起動します。また、このコンポーネントでパラメータを設定し、レシピを選択することができます。

次に、Receive Visionコンポーネントを追加してMech-Visionのビジョン結果を取得します。このコンポーネントには4つの出口があり、プログラムをカスタマイズ可能です。 点群が空であり、Mech-Visionを再実行したい場合は、EMPTY_ROI と mm_v01_runvis1をつなぐことができます。

mm vision pick and place3

これで、取得したMech-Visionの結果は文字列配列(string[])の形式でg_mm_socket_recv_arrayというグローバル変数に保存されます。

下図のように示します。g_mm_socket_recv_arrayのデータを処理して、すべてのポイントが一度に完全に受信されたかどうかを判断し、受信が完了していない場合はプログラムがmm_v01_recvvis1コンポーネントまでジャンプして実行されます。実行が完了したら、ポイントはg_mm_total_pointというグローバル変数に保存されます。

mm vision pick and place4

最後に、受信したMech-Visionの目標点を対応するポイントに割り当てて動作させます。

mm vision pick and place5

Mech-Mindは、お客様のプライバシーを重視しています

このサイトでは最高の体験を提供するために Cookie を使用しています。サイトの閲覧を続ける場合、Cookie の使用に同意したことになります。「拒否する」を選択すると、このサイトを訪れた際に追跡や記憶が行われないように単独の Cookie が使用されます。