Mech-Vizプロジェクトを構築

本節では、クランクシャフト供給のMech-Vizプロジェクトの構築について説明します。

プロジェクトの構築手順

今回作成するプロジェクトは以下のような流れで処理を行います。

../../../../_images/viz_project_framework.png
  1. ツールとワークの設定。3Dシミュレーションエリアにツールモデルを表示し、かつエンドツールの衝突検出を有効にするために、ツールを設定する必要があります。また、ロボットがワークを把持する際の運動経路を計画するためにワークの設定も必要です。

  2. シーンの設定。シーンを設定して実際の動作環境を再現することでロボット運動経路の計画に役立ちます。

  3. ワークフローの構築。ワークフローの構築はMech-Vizプロジェクトのコア部分です。タスクライブラリ内のタスクをプロジェクト編集エリアにドラックしてからタスクの各パラメータを設定し、タスクを線でつなぐことでプロジェクトを構築します。

  4. 衝突検出設定。ロボットが箱もしくはその他障害物との衝突を防止し、プログラムの連続的な実行を保証するため、衝突検出設定を行う必要があります。

  5. プロジェクトのシミュレーション。上記すべての設定が完了後、プロジェクトの実行結果を確認するためにプロジェクトをシミュレートします。

ツールと対象物の設定

ロボットモデルを設定した後、ツールとワークの設定を行います。衝突モデルとツールを追加し、TCPを調整します。

衝突モデルの追加と調整

  1. ツールと対象物のタブで 衝突モデル ‣ 追加 をクリックし、ポップアップするファイル選択ウィンドウで衝突モデルを選択します。

    ../../../../_images/add_model_1.png
    ../../../../_images/add_model_2.png

    注意

    衝突モデルについては、 ツールとシーンのモデルの簡略化 をご参照ください。

  2. 追加した衝突モデルを選択したら、それがプロジェクト編集エリアに表示されます。

    ../../../../_images/add_model_3.png
    ../../../../_images/add_model_4.png

    上図では、衝突モデルが正しい位置にあります。衝突モデルが間違った位置にあり、調整が必要な場合は、モデルを調整 を参照してエンドツールの位置を調整してください。

エンドツールの追加

操作説明

サンプル図

1-2 エンドツール をクリックした後、 追加 をクリックします 。

../../../../_images/add_end_model_1.png

3-4 エンドツール名を入力し(例として「tcp」と名付ける)、追加した衝突モデルを選択します。

../../../../_images/add_end_model_2.png

5 OK をクリックし、設定を保存します。

../../../../_images/add_end_model_3.png

設定完了後、エンドツールリストに追加されたモデル名が表示されます。

../../../../_images/add_end_model_4.png

TCPの調整

下図に示すように、TCPはドラッガー(ロボットのエンドツールの座標球)の中心点によって表示されます。

../../../../_images/adjust_tcp_0.png

プロジェクトではエンドツールの把持点に設定する必要があります。TCPの調整方法については、 TCPを調整 をご参照ください。調整後、ドラッガー中心点の位置は下図のようになります。

../../../../_images/adjust_tcp.png

対象物の設定

../../../../_images/workobjects_configure.png
  • 回転対称:クランクシャフトには回転対称性がないため、X/Y軸に関して対称性がない を選択します。

  • 把持範囲:クランクシャフトの表面が曲面であるため、把持範囲を設定する必要があります。X軸範囲 にチェックを入れ、X軸のステップサイズを に、試行範囲を ±30° に設定します。

  • 最適な把持の解選択戦略:クランクシャフト把持プロジェクトでは、デフォルト または 全体回転角度の最小値 を選択すれば、ロボットがクランクシャフトを把持した後の無駄な回転に起因するクランクシャフトの落下を回避することができます。

シーンの設定

ロボット運動経路を計画するためにシーンを設定する場合、シーンの設定 を参照し、実際の動作環境を再現します。

ワークフローの構築

../../../../_images/workflow_configuration_0.png

これはワークフローの構築はMech-Vizプロジェクトのコア部分です。タスクライブラリ内のタスクをプロジェクト編集エリアにドラックしてからタスクの各パラメータを設定し、タスクを線でつなぐことでプロジェクトを構築します。

「初期位置」の設定

初期位置はロボットが動作を開始する位置であり、安全な位置を設定します。ロボットがこの場所にいる時はカメラの視界を遮ることなく、把持されるワークや周辺機器から遠ざける必要があります。

移動 タスクを使用することで、ロボットの運動経路にあるターゲット位置姿勢およびターゲット位置姿勢への移動方法を設定することができます。初期位置を設定するためには、移動 タスクを使用します。

  1. ツールバーの ロボットを同期させる をクリックすると、ロボットモデルがロボット実機の状態に同期されます。

  2. ティーチペンダントを使用して、ロボット実機をカスタマイズされた初期位置に移動し、ロボットモデルも対応する位置に到達したことを確認します。

  3. タスクライブラリから 基本的な移動 ‣ 移動 をプロジェクト編集エリアにドラッグします。 この移動タスクはロボットの現在の位置姿勢を記録します

  4. このタスクの名前を「初期位置」に変更します。

../../../../_images/motion_trajectory_planning_movehome.png

「写真撮影点」の追加

「初期位置」と「把持点」の間に 写真撮影点 を追加します。

  1. ティーチペンダントでロボット実機をカスタマイズされた写真撮影点に移動させたら、現時点でのロボットの位置姿勢を記録するための1つの 移動 タスクをプロジェクト編集エリアにドラッグします。

  2. ロボットによってカメラの視野が遮られないようにしてください。Mech-Eye Viewerで画像を取得し、視野が遮られているかどうかを確認できます。

  3. 名前を「写真撮影点」に変更します。

  4. 「写真撮影点」の入力を「初期位置」からつなぎ、出力を「視覚処理による認識_1」につなぎます。

「把持点」の設定

「把持点」は、把持するワークの位置姿勢なので、視覚処理による認識視覚処理による移動 タスクを使用します。

タスク

視覚処理による認識

説明

Mech-Visionプロジェクトをトリガーし、ビジョン結果を取得します。

操作

タスクライブラリから 視覚 ‣ 視覚処理による認識 をプロジェクト編集エリアにドラッグします。次に「初期位置」の出力を「視覚処理による認識」の入力につなぎます。

パラメータ設定

ビジョンサービスの名前 をクリックし、ドロップダウンリストで作成したMech-Visionプロジェクトを選択します。

サンプル図

../../../../_images/motion_trajectory_select_vision.png

タスク

視覚処理による移動

説明

ビジョン結果によって移動します。

操作

タスクライブラリから 視覚 ‣ 視覚処理による移動 をプロジェクト編集エリアにドラッグします。次に「視覚処理による認識」の出力「視覚処理による移動」の入力につなぎます。

パラメータ設定

ビジョンサービスの名前 をクリックし、ドロップダウンリストで作成したMech-Visionプロジェクトを選択します。

サンプル図

../../../../_images/motion_trajectory_select_vision.png

ロボットが把持点に到達したら、治具を開いてワークを把持する必要があります。

DOを設定 タスクでツールを制御します。

タスク

DOを設定

説明

ロボットポート信号を指定して、ツールの開閉を制御します。

操作

タスクライブラリから DI/DO ‣ DOを設定 をプロジェクト編集エリアにドラッグします。次に「視覚処理による移動」の出力を「DOを設定」の入力につなぎます。

パラメータ設定

名前を「DOを設定_把持」に変更し、タスクのパラメータで「DO」にチェックを入れます。チェックを入れると、ソフトウェアは実行中に制御信号を送信してツールが把持可能な状態になります。

サンプル図

../../../../_images/motion_trajectory_planning_pick.png

DO値と実際のエンドツールの開閉の対応関係は次の通りです。

../../../../_images/motion_trajectory_uncheckdo.png ../../../../_images/motion_trajectory_checkdo.png
../../../../_images/motion_trajectory_uncheck.png ../../../../_images/motion_trajectory_check.png

「把持待ち」の設定

ツールがワークを把持する際に、ワークをしっかり把持するまで待機時間を設定します。

タスク

待つ

目的

待つ タスクを使用して、ロボットがこのタスクを実行したら指定時間を待機します(ミリ秒単位)。

操作

タスクライブラリから ツール ‣ 待つ をプロジェクト編集エリアにドラッグします。パラメータは初期値を使用します。

つなぎ

「待つ_1」の入力を「DOを設定_把持」につなぎ、出力を「相対移動_2」につなぎます。

把持動作の「相対移動点」の設定

ツールが把持点まで垂直に下向きに移動し、物体を吸着した後、垂直に上向きに移動することが理想的です。この動作を実現するために、 相対移動 タスクを追加します。

  1. ツールは把持点からZ方向に200mmから垂直下向きに移動します。

    タスク

    相対移動

    操作

    タスクライブラリから 基本的な移動 ‣ 相対移動 をプロジェクト編集エリアにドラッグします。すると、タスク名は「相対移動_1」になります。

    つなぎ

    「相対移動_1」の入力を「視覚処理による認識_1」につなぎ、出力を「視覚処理による移動_1」につなぎます。

    パラメータ設定

    「基準とする位置姿勢」を 次のタスク に設定し、座標系のZ値を-200に設定します。

    サンプル図

    ../../../../_images/motion_trajectory_optimization_dropdown.png
  2. ツールがワークを吸着した後、垂直に上向きに200mm移動します。

    タスク

    相対移動

    操作

    タスクライブラリから 基本的な移動 ‣ 相対移動 をプロジェクト編集エリアにドラッグします。すると、タスク名は「相対移動_2」になります。

    つなぎ

    「相対移動_2」の入力を「DOを設定_把持」につなぎます。

    パラメータ設定

    「基準とする位置姿勢」を 現在のタスク に設定し、座標系のZ値を-200に設定します。

    サンプル図

    ../../../../_images/motion_trajectory_optimization_pickup.png

「配置点」の設定

ロボットがワークを把持した後、ユーザーに設定された位置姿勢に移動してワークを配置します。

  1. ティーチペンダントでロボット実機をカスタマイズされた配置点に移動し、ロボットを同期させた後に1つの 移動 タスクをプロジェクト編集エリアにドラッグして、現在の位置姿勢を記録します。その名前を「配置点」に変更します。

  2. 次に「DOを設定_把持」の出力を「配置点」の入力につなぎます。

ロボットが配置点に到達したら、ツールを閉じてワークを吸着解除します。 DOを設定 タスクでツールを制御します。

タスク

DOを設定

説明

ロボットポート信号を指定して、ツールの開閉を制御します。

操作

タスクライブラリから DI/DO ‣ DOを設定 をプロジェクト編集エリアにドラッグします。次に「配置点」の出力を「DOを設定」の入力につなぎます。

パラメータ設定

名前を「DOを設定_配置」に変更し、タスクのパラメータで「DO値」のチェックを外します。チェックを外すと、ソフトウェアは実行中に制御信号を送信してツールが把持解除の状態になります。

サンプル図

../../../../_images/motion_trajectory_planning_drop.png

「配置待ち」の設定

ツールがワークを配置した後、ワークが完全に放されるまで待ちます。

上記を参照して、「待つ_2」の入力を「DOを設定_配置」につなぎ、出力を「相対移動_4」につなぎます。

配置動作の「相対移動点」の設定

把持動作の「相対移動点」の設定を参照し、配置点の前後に「相対移動」タスクを一つずつ追加します。

  1. ツールが配置点のZ方向に200mmから垂直に下向きに移動します。

    操作

    タスクライブラリから 基本的な移動 ‣ 相対移動 をプロジェクト編集エリアにドラッグします。すると、タスク名は「相対移動_3」になります。

    つなぎ

    「相対移動_3」の入力を「相対移動_2」につなぎ、出力を「配置点」につなぎます。

    パラメータ設定

    「基準とする位置姿勢」を 次のタスク に設定し、座標系のZ値を-200に設定します。

  2. ツールがワークを吸着解除した後、垂直に上向きに200mmに移動します。

    操作

    タスクライブラリから 基本的な移動 ‣ 相対移動 をプロジェクト編集エリアにドラッグします。すると、タスク名は「相対移動_4」になります。

    つなぎ

    「相対移動_4」の入力を「DOを設定_配置」の出力につなぎ、出力を「初期位置」につなぎます。

    パラメータ設定

    「基準とする位置姿勢」を 現在のタスク に設定し、座標系のZ値を-200に設定します。

「初期位置」に戻る

ワークを配置した後、ロボットを初期位置に戻す必要があります。

ループを増やすことで、ロボットを初期位置に戻し、タスクを繰り返し実行させることができます。

../../../../_images/motion_trajectory_planning_back.png

ヒント

プロジェクト編集エリアで右クリックし、ポップアップメニューから 自動レイアウト をクリックすれば、タスクが自動的に整列され、インターフェイスをよりきれいにします。

シミュレーション

シミュレーション をクリックし、ロボット動作のシミュレーションを行います。

下図のようなフローが完成形です。

../../../../_images/motion_trajectory_optimization_all.png

衝突検出設定

ロボットが箱もしくはその他障害物との衝突を回避し、プログラムをスムーズに実行するために、衝突検出の設定を行う必要があります。詳細は、 衝突検出の設定 をご参照ください。

実行のシミュレーション

上記の操作を完了した後、実行 をクリックし、Mech-Vizロジェクトのシミュレーションを実行します。

注意

Mech-VisionとMech-Vizが通信を行い、Mech-Visionによって取得されたシーンの点群をMech-Vizに送信します。そのために、Mech-Vizプロジェクトを実行する前にMech-Centerを起動する必要があります。