サンプルプログラム2:Mech-Vizの計画経路を取得

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

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

プログラム概要

機能

ロボットがMech-Vizプロジェクトをトリガーして実行し、その後計画された経路を取得して把持作業を実行します。

必要なプロジェクト

Mech-VisionとMech-Vizプロジェクト

使用前提

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

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

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

プログラム説明

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

sample 2 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-Vizプロジェクトをトリガー

mm_start_viz

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

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

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

このコマンドは、ロボットがビジョンシステムをトリガーしてMech-Vizプロジェクトを実行し、Mech-VizがMech-Visionから出力されたビジョン結果に基づいて把持経路を計画することを意味します。

計画経路を取得して各経路点に移動

mm_get_data

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

sample 2 3
  • From Viz:Mech-Vizからデータを取得します。

  • mm_get_viz_data:計画された経路を取得します。

  • 1:取得した経路点の位置姿勢を関節角度の形式として指定します。

  • pose_num:この変数はビジョンシステムから返された経路点の数を保存します。

  • ss:この変数は「ビジョン処理による移動」の経路点(把持点)が経路全体における位置番号を保存します。

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

このコマンドは、ロボットがMech-Vizプロジェクトから返された計画経路を取得することを意味します。

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

計画された経路を保存

If g_mm_status==2100

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

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 2 4
    • mm_get_jps:特定の経路点の関節角度、ラベル、およびツール番号を指定した変数に保存します。

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

    • i_pose1:この変数はaaa番目の経路点の関節角度を保存します。

    • l1:この変数はaaa番目の経路点に対応するツール番号を保存します。

    • s1:この変数はaaa番目の経路点に対応するラベルを保存します。

    このコマンドは、aaa番目の経路点の関節角度、ラベル、およびツール番号をそれぞれ指定した変数に保存することを意味します。

  • MoveJ i_pose1:ロボットは関節運動の方式で、経路点へ移動します。

  • 変数ssは、経路全体における「ビジョン処理による移動」の経路点の位置番号を表します。したがって、経路内のss番目の経路点が把持点となります。

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

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

通信接続を切断

mm_close_socket

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

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

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

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

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