mm_vision_pick_and_place
Mech-Visionプロジェクトを実行することでビジョン処理の結果を取得し、それに基づいて把持および配置を実行します。
設定説明
ポイントの設定
このプロジェクトでは、6つのポイントが使用されます。その内3つはティーチングポイントで、3つは自動計算ポイントです。

-
ティーチングポイント:事前にティーチングしなければなりません。
-
AbovePickArea:初期位置のようなもので、DetectポイントとDropoffポイントに到達します。
-
Detect:撮影ポイント。
-
Dropoff:配置ポイント。
-
-
自動計算ポイント:Mech-Visionから返されたビジョン処理の結果に基づいて自動的に計算します。ユーザーは事前にティーチングする必要はありません。
-
Pick:Mech-Visionから返されたのビジョン処理の結果に基づいて定義されたポイント。
-
PrePick:PickポイントがZ軸に沿って移動したポイントで、把持する前に直線運動で把持点に向かって移動するために使用します。
-
PostPick:PickポイントがロボットベースZ軸に沿って移動したポイントで、把持した後で直線運動で把持点から遠ざかるために使用します。
-
パラメータ設定
MM initコンポネント
全てのネットワークデバイスには、MM initによって生成されたネットワークデバイスを使用します。このコンポネントは、IPCのIPアドレスとポート番号を修正できます。
Run Visionコンポーネント
手動でRun Visionコンポネントのパラメータを設定する必要があります。設定方法については、コンポネントのパラメータ値修正をお読みください。
プログラム説明
把持(pick_sequence)
対象物を把持するための動作:遠い点 → 接近点 → 把持点 → 近接点 → 遠い点。
grasp_object機能は不完全ですが、ユーザーはここでロボットハンドを制御するためのパラメータ設定を変更することができます。
また、ユーザーはconfigの機能ブロックで接近点から把持点までの距離を設定できます。

メインプログラム(mm_v201_vision_pick_and_place)
-
まず、mm_v201_init1によってロボットとビジョンシステム間の通信を構築します。mm_v201_init1でIPCのIPアドレスとポート番号を修正できます。
-
通信を構築した後、detection_sequenceによってロボットを撮影ポイントに移動します。
-
mm_v201_runviz1によってMech-Visionプロジェクトを実行し、同時にその中でパラメータレシピを設定することが可能です。
-
mm_v201_recvvis1によってMech-Visionからのビジョン処理の結果を取得します。mm_v201_recvvis1に4つの異常出口が付いており、現場のニーズに応じて修正することができます。例えば、空の点群を取得した場合、EMPTY_ROIとmm_v201_runvis1を接続すればMech-Visionプロジェクトを再度実行できます。
これで、Mech-Visionから取得したビジョン処理の結果は文字列配列(string[])の形式でg_mm_socket_recv_arrayというグローバル変数に保存されます。
-
プログラムでは、g_mm_socket_recv_arrayのデータを処理し、ビジョンポイントが全部受信済みか判断します。まだ全部受信していない場合、プログラムはmm_v201_recvvis1を実行し、実行完了後にビジョンポイントの位置姿勢をグローバル変数g_mm_total_pointに保存します。
-
最後に、ロボットは受信したMech-Visionビジョンポイントの位置姿勢に基づいて移動し、把持と配置を実行します。