mm_viz_pick_and_place
このサンプルプログラムは、Mech-Vizの実行によるロボットの簡単な把持・配置タスクを実現しています。1つのビジョン結果により単体把持または複数把持に適しています。
設定説明
ポイントの設定
Point Manager で以下のポイントを設定可能です。
vizPoseポイントは、Mech-Vizの経路計画から計算されたポイントです。
Dropoffポイントは、ユーザーが手動でティーチングする配置ポイントです。
パラメータ設定
init コンポーネント
プログラム内のすべてのネットワークデバイスは、initデバイスを使用します。このコンポーネントは、initデバイスのIPアドレスを変更することができます(このIPアドレスはIPCのLANポートのIPアドレスです)。
initデバイスのIPアドレスを変更する場合、 接続するIPCのIPアドレスを設定 をご参照ください。
Run Viz コンポーネント
このプログラムでMech-Vizを実行するためのパラメータを手動で設定する必要があります。Run Vizコンポーネントの左上にある をクリックして、パラメータを設定します。
パラメータの設定については、 Mech-Vizを起動 (Run Viz) をご参照ください。
メインプログラム
まず、通信接続を確立するためにプログラムの最初にinitコンポーネントを追加し、initコンポーネントの設定でIPアドレスを変更して、ロボットのIPとIPCのIPが同じネットワークセグメント内にあることを確認します。
ソケット接続が成功したら、Run Vizコンポーネントを追加してMech-Vizを起動します。また、このコンポーネントでは、Mech-Vizを起動するときのパラメータの設定、分岐の切替およびインデックス設定を行うことができます。
その後、Receive Vizコンポーネントを追加してMech-Vizによって計画された経路を取得します。取得したMech-Vizの結果は文字列配列(string[])の形式でg_mm_socket_recv_arrayというグローバル変数に保存されます。
次に、Mech-Vizから受信した結果をvizPoseに割り当て、「ビジョン処理による移動」ステップかどうかを判断します。「ビジョン処理による移動」ステップでない場合は関節運動で移動ポイントに移動します。「ビジョン処理による移動」ステップの場合は、直線移動で目標点に移動して対象物を把持します。
grasp_objectも不完全ですので、ロボットハンドを閉じるためのプログラムを追加する必要があります。
次に、Mech-Vizによって出力されたポイントへの移動がすべて完了したかどうかを判断します。完了した場合は対象物を配置するサブフローが実行されます。 したがって、このサンプルではMech-Vizからの配置ポイントの出力は不要です。