4. ワークフローの設定

上記の設定を完了した後、ワークフローの構築を開始できます。タスクライブラリからタスクをプロジェクト編集エリアにドラッグし、さまざまなパラメータを設定し、線でつなぐことで事前設定されたプログラムの機能を実現します。

本例では、簡単な把持と配置を実行します。下図に示すようにワークフローを構築します。

../../../_images/motion_trajectory_planning_11.png

4.1. 動作計画

4.1.1. 「初期位置」を定義する

初期位置はロボット動作の開始位置だけでなく、安全な位置でもあります。この位置で、ロボットがカメラの視野を遮らないように、把持対象物を周囲の機器から遠ざける必要があります。

移動 タスクを使用して、ロボットの動作経路内の目標位置姿勢およびこの位置姿勢に移動する方式を設定できます。したがって、 移動 タスクを使用して初期位置を設定します。

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

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

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

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

../../../_images/motion_trajectory_planning_movehome2.png

4.1.2. 「把持点」を定義する

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

タスク

視覚処理による認識

説明

Mech-Visionプロジェクトをトリガーし、視覚認識結果を取得します。

操作

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

パラメータ設定

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

サンプル図

../../../_images/motion_trajectory_select_vision2.png

タスク

視覚処理による移動

説明

認識結果によって移動します。

操作

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

パラメータ設定

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

サンプル図

../../../_images/motion_trajectory_select_vision2.png

ロボットが把持点に到達したのち、吸盤を用いて物体を吸着します(本例でのエンドツールは吸盤です)。

DOを設定 タスクで吸盤を制御します。

タスク

DOを設定

説明

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

操作

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

パラメータ設定

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

サンプル図

../../../_images/motion_trajectory_planning_pick2.png

DO値と実際のエンドツールの開閉の対応関係は次の通りです(ある種類の治具を例にとります)。

../../../_images/motion_trajectory_uncheckdo2.png ../../../_images/motion_trajectory_checkdo2.png
../../../_images/motion_trajectory_uncheck2.png ../../../_images/motion_trajectory_check2.png

4.1.3. 「配置点」を定義する

ロボットが対象物を把持した後、カスタマイズの配置点に移動し、対象物を吸着解除します。

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

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

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

タスク

DOを設定

説明

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

操作

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

パラメータ設定

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

サンプル図

../../../_images/motion_trajectory_planning_drop2.png

4.1.4. 「初期位置」に戻る

対象物を吸着解除した後、ロボットは初期位置に戻る必要があります。

ループを追加してロボットを初期位置に戻し、タスクを周期的に実行することができます。

../../../_images/motion_trajectory_planning_back2.png

ヒント

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

4.1.5. シミュレートする

シミュレート をクリックし、ロボットの動作経路をシミュレートします。すると、実際のシミュレーション中に以下の問題があります。

  1. 初期位置から把持点までロボットが一度に移動する範囲は広すぎます。

  2. 吸盤開閉の信号を送ったらすぐに次の位置に移動することは合理的ではありません。対象物をしっかりと吸着できない場合があります。

  3. 物体を把持してすぐに斜めに移動させると、衝突が発生して対象物が落下することがあります。


4.2. 動作を最適化する

以下の内容を参照してロボットの動作経路を最適化します。

4.2.1. 「写真撮影点」を定義する

「初期位置」から「把持点」まで 写真撮影点 を追加します。

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

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

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

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

4.2.2. 把持動作の「相対移動点」を定義する

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

  1. 吸盤が把持点からZ方向に200mmから垂直下向きに移動します。

    タスク

    相対移動

    操作

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

    つなぎ

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

    パラメータ設定

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

    サンプル図

    ../../../_images/motion_trajectory_optimization_dropdown2.png
  2. 吸盤が対象物を吸着した後、垂直に上向きに200mm移動します。

    タスク

    相対移動

    操作

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

    つなぎ

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

    パラメータ設定

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

    サンプル図

    ../../../_images/motion_trajectory_optimization_pickup2.png

4.2.3. 配置動作の「相対移動点」を定義する

前の手順の設定を参照し、「配置点」の前後に「相対移動」タスクを追加します。

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

    操作

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

    つなぎ

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

    パラメータ設定

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

  2. 吸盤が物体を吸着解除した後、垂直に上向きに200mmに移動します。

    操作

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

    つなぎ

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

    パラメータ設定

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

4.2.4. 把持動作と配置動作の「待つ」タスクを定義する

  1. 吸盤が対象物を吸着した後、吸盤がしっかりと対象物を吸着するまでしばらく待ちます。

    タスク

    待つ

    目的

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

    操作

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

    つなぎ

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

  2. 吸盤が対象物を吸着解除した後、吸盤が対象物を完全に吸着解除するまでしばらく待ちます。

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

4.2.5. シミュレートする

シミュレート をクリックし、ロボットの動作経路をシミュレートします。上記の設定により、経路が最適化されました。

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

../../../_images/motion_trajectory_optimization_all2.png

タスクの組合せ を使用して、同じ機能を実装するための異なるタスクを1つのタスクの組合せに入れることができます。これにより、様々な「ワークフロー」を要約して、その後のプロジェクトの使用がさらに簡単になり、インターフェイスもより簡潔にまります。

上記の図に示すように、プロジェクト全体は「① 把持」と「② 配置」の2つの段階に分けられます。

  1. タスクライブラリから 論理トポロジー ‣ タスクの組合せ をプロジェクト編集エリアにドラッグします。

  2. このタスクの名前を 把持 に変更します。

  3. Ctrl キーを押したまま、上図①の点線ボックス内のタスクを選択し、ショートカットキー Ctrl + X を押して切り取ります。

  4. 把持 をダブルクリックしてタスクの組合せの中に入り、ショートカットキー Ctrl + V を押して選択したタスクを貼り付けます。

  5. タスク間をつなぎます。

  6. 上記の操作に従って 配置 タスクの組合せの設定を完了します。

  7. 最後に、タスクの組合せ間をつなぎます。

    ../../../_images/motion_trajectory_finall1.png

ワークフローの設定が完了したら、次の節に進んで衝突検出の設定を行います。