サンプルプログラム1:Mech-Visionのビジョン結果を取得

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

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

プログラム概要

機能

ロボットがMech-Visionプロジェクトをトリガーして実行し、その後ビジョン結果を取得して把持動作を実行します。

必要なプロジェクト

Mech-Visionプロジェクト

使用前提

  1. 標準インターフェース通信設定が完了したこと。

  2. 自動キャリブレーションが完了したこと。

このサンプルプログラムは参考用です。ユーザーは実際の状況に応じて、このプログラムを基に変更を加える必要があります。このプログラムをそのまま使用しないでください。

プログラム説明

以下は参考用のプログラム例です。

sample 1 1

下表は上記のプログラムのコードとその説明です。コマンド名のリンクをクリックすることで、その詳細を確認できます。

処理流れ コートと説明

通信初期化

mm_init_socket

mm_init_socket:通信を初期化するためのコマンド。パラメータ説明は以下の通りです。

sample 1 2
  • 192.168.10.182:IPCのIPアドレス。

  • 50000:IPCのポート番号。

このコマンドは、「mm_init_socket」コマンドを通じて、ロボットが通信対象(IPC)のIPアドレスとポート番号を指定することを意味します。

実際の状況に基づいてIPCのIPアドレスやポート番号を変更し、ビジョンシステムで設定されたパラメータと一致するようにする必要があります。

撮影位置に移動

MoveJ
	path_0
  • MoveJ:ロボットの関節移動コマンド。ロボットが円弧型の経路に沿って指定された位置に移動することを意味します。

  • path_0:ロボットが移動する目標位置を指定します。この場合、ティーチング法で設定された撮影位置を指します。撮影位置とは、カメラが画像を撮影したときにロボットがいる位置を指します。この位置では、ロボットハンドがカメラ視野を遮らないようにする必要があります。

撮影位置を設定する必要があります。詳細については、キャリブレーション開始点を設定 をご参照ください。

通信確立

mm_open_socket

ロボットは mm_open_socket コマンドを使用して、ビジョンシステムとの間のTCPプロトコル通信接続を確立します。

Mech-Visionプロジェクトをトリガー

mm_start_vision

mm_start_vision:Mech-Visionプロジェクトの実行をトリガーするためのコマンド。パラメータ説明は以下の通りです。

sample 1 3
  • 2:Mech-Visionプロジェクト番号を指します。

  • 0:Mech-Visionプロジェクトがすべてのビジョンポイントを返すことを期待します。

  • Current Position:ロボットの現在の関節角度およびフランジ位置姿勢をMech-Visionプロジェクトに送信します。

  • 90,90,90,90,90,90:前のパラメータ値が「Current Position」であるため、ここに入力されている関節角度データは実際には使用されません。ユーザーが変更する必要はありません。

このコマンドは、ロボットがビジョンシステムをトリガーして番号2のMech-Visionプロジェクトを実行し、Mech-Visionプロジェクトがすべてのビジョンポイントを返すことを期待することを意味します。

ビジョン結果を取得

mm_get_data

mm_get_data:データを取得するためのコマンド。パラメータ説明は以下の通りです。

sample 1 4
  • From Vision:Mech-Visionからデータを取得します。

  • mm_get_vis_data:ビジョン結果を取得します。

  • 2:Mech-Visionプロジェクト番号を指します。

  • pose_num:この変数は取得したビジョンポイントの数を保存します。

  • g_mm_status(グローバル変数):コマンド実行後のステータスコードを保存します。

このコマンドは、ロボットがMech-Visionプロジェクト2から返されたビジョン結果を取得することを意味します。

返されたビジョン結果はロボットのメモリに保存されるため、この時点ではユーザーがビジョン結果を直接取得することはできません。その後の「ビジョン結果を保存」コマンドを実行することで、結果を取得することができます。

ビジョン結果を保存して把持点に移動

If g_mm_status==1100

ステータスコードg_mm_statusが1100の場合、ロボットがビジョン結果の取得に成功したことを意味します。そうでない場合、ビジョンシステムにエラーが発生したことを意味します。ユーザーは、特定のエラーコードに応じて適切な処理を行うことが可能です。

aaa:=1
loop_0 aaa<=pose_num
	i_pose1:={}
    mm_get_posjps
	MoveJ
		i_pose1
	aaa:=aaa+1
  • aaa:この変数はループ回数の制御と、ビジョンポイントのインデックス番号を指定します。初期値は1です。

  • loop_0 aaa<=pose_num:ループを用いてビジョンポイントのデータを一つずつ取得し、それぞれの位置に移動します。

  • i_pose1:この変数はビジョンポイントの位置姿勢データを保存します。初期値は{}です。

  • mm_get_posjps:データを保存するためのコマンド。パラメータ説明は以下の通りです。

    sample 1 5
    • mm_get_pos:特定のビジョンポイントのツール位置姿勢、ラベル、およびツール番号を指定した変数に保存します。

    • aaa:この変数は保存するビジョンポイントのインデックス番号を指定します。例えば、aaaが1の場合、最初のビジョンポイントのデータを保存することを意味します。

    • i_pose1:この変数はaaa番目のビジョンポイントのツール位置姿勢(把持点のツール位置姿勢)を保存します。

    • l1:この変数はaaa番目のビジョンポイントに対応するツール番号を保存します。

    • s1:この変数はaaa番目のビジョンポイントに対応するラベルを保存します。

    このコマンドは、aaa番目のビジョンポイントのツール位置姿勢、ラベル、およびツール番号をそれぞれ指定した変数に保存することを意味します。

  • MoveJ i_pose1:ロボットは関節運動の方式で、把持点(ビジョンポイント)へ移動します。

    • ロボットが把持点に到達した後、ユーザーは実際の作業環境に応じてDO信号の設定操作を追加し、ロボットハンドを制御して把持動作を行うことができます。

    • 把持の前後に複数の中間点を追加することで、ロボットの動作を滑らかにし、不要な衝突を回避することができます。

通信接続を切断

mm_close_socket

ロボットは mm_close_socket コマンドを使用して、ビジョンシステムとの間のTCPプロトコル通信接続を切断します。

この情報は役に立ちましたか?

ご意見・ご要望がございましたら、以下よりお寄せください:

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

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