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

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

プロジェクトの構築手順

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

../../../../_images/project_framework_0.png
  1. カメラをトリガーして撮影し、クランクシャフトのカラー画像と深度画像を取得します。

  2. 取得した画像に対して処理を行い、深度画像を点群に変換します。背景点群と不要な点群による干渉を減らすために、外れ値を除去します。

  3. プロジェクト処理を高速化するため、設定されたしきい値に従って点数が範囲外の点群を除去します。

  4. モデルのマッチングと把持位置姿勢の設定を行います。対象物の点群モデルのマッチングにより、シーン内の対象物を認識して把持位置姿勢を取得することができます。この手順を実行する前に、点群モデルファイルおよび幾何学的中心ファイルを事前に用意する必要があります。

  5. 対象物の把持位置姿勢を取得してから座標系の変換を行います。把持を実行するために、対象物座標系をロボット座標系に変換します。

  6. ビジョン結果を出力します。座標系が変換された後、外部サービスを介してビジョン結果をMech-VizまたはMech-Centerに送信します。

手順の詳しい解説

プロジェクトを新規作成 してから、プロジェクトの構築と関連設定を行います。

画像取得

まずはカメラをトリガーして撮影し、カラー画像と深度画像を取得します。ステップ カメラから画像を取得 を追加します。

../../../../_images/project_framework_1.png

注意

このステップを追加する前に、 カメラが取り付けられていること産業用PCと接続されていること を確認し、取得した画像の品質確認と ロボットハンド・アイ・キャリブレーション を完了させる必要があります。

このステップを追加した後、実際のカメラに接続する必要があります。このステップを選択し、 ステップパラメータ をクリックして、ステップパラメータの画面でカメラタイプ、カメラIDおよびキャリブレーションパラメータグループを選択し、IPアドレスを入力します。

../../../../_images/project_framework_1_1.png

点群の生成とROI処理

続いて 点群前処理 のステップの組合せを追加します。

../../../../_images/project_framework_2.png

ダブルクリックしてその中に入ります。すると、 深度画像を点群に変換点群の法線ベクトルを計算してフィルタリング3D ROI内の点群を抽出 の3つのステップが表示されます。

../../../../_images/project_framework_2_0.png
  1. ステップ 深度画像を点群に変換 を使用してカメラで取得した深度画像を点群に変換します。

    不要な点群の干渉を減らし、後続のステップの処理時間を短縮するために、2D関心領域を選択する必要があります。

    このステップを選択し、 ステップパラメータ をクリックして 2D ROIを設定 をクリックします。クリック後、表示される画面で2D ROIの設定を行います。設定方法については、 ROI 設定 をご参照ください。

    ../../../../_images/project_framework_2_1.png
  2. ステップ 点群の法線ベクトルを計算してフィルタリング を使用して法線ベクトルの計算を行います。このステップにより、入力点群内の各点の法線ベクトルを計算し、位置情報のみを含む点群データを法線ベクトル付きの点群データに変換することができます。

  3. ステップ 3D ROI内の点群を抽出 を使用して3D ROIの設定を行います。このステップにより、3D ROI内の点群は保持され、3D ROI外の点群は除去されるため、背景の点群の干渉が減らすことができます。

    このステップを選択し、 ステップパラメータ をクリックして 3D ROIを設定 をクリックします。クリック後、表示される画面で3D ROIの設定を行います。設定方法については、 ROI 設定 をご参照ください。

    ../../../../_images/project_framework_2_2.png
  4. 点群をMech-Vizに送信するために、このステップの組合せの後に 点群をMech-Vizに送信 ステップをつなぎます。これにより、デバッグまたは実際効果の表示を実現できます。

    ../../../../_images/project_framework_2_3.png

不要な点群を除去

次に、プロジェクトの実行を高速化し、不要な点群を除去するために、 点の数が制限を超えた点群を除外 のステップの組合せを追加します。

../../../../_images/project_framework_3.png

ダブルクリックしてその中に入ります。すると、 中継点群が要求を満たすかどうかを検証フィルタリング の3つのステップが表示されます。

../../../../_images/project_framework_3_0.png
  1. ステップ 点群が要求を満たすかどうかを検証 により、設定されたルール(点群の点数のしきい値など)に従って、点群が要件を満たしているかどうかを判断できます。

  2. ステップ フィルタリング は一般的なリストフィルターとして機能します。これにより、入力リストの要素をTrue/Falseブール値リストの要素に一対一でマッピングし、Trueに対応するリストを出力できます。

モデルのマッチングと把持位置姿勢の設定

それから、3D位置姿勢推定 ステップの組合せを追加します。

../../../../_images/project_framework_4.png

ダブルクリックしてその中に入ります。すると、 3D位置姿勢低精度推定(V2)3D位置姿勢高精度推定重複対象物を除去 の3つのステップが表示されます。

../../../../_images/project_framework_4_0.png
  1. ステップ 3D位置姿勢低精度推定(V2) を使用して点群の大まかなマッチングを行います。このステップにより、事前に作成した点群モデルを入力の法線ベクトル付きの点群と大まかにマッチングします。また、マッチング結果が得られた後、マッチングした位置に従って対象物の幾何学的中心または把持位置姿勢が生成されます。

    3D位置姿勢低精度推定(V2) ステップを選択し、 ステップパラメータ をクリックして icon_1 をクリックします。モデルファイルと幾何学的中心ファイルを選択してインポートします。

    ../../../../_images/project_framework_4_1.png

    ヒント

    モデルファイルと幾何学的中心ファイルの作成方法については、 マッチングモデル・把持位置姿勢エディタ をご参照ください。

  2. ステップ 3D位置姿勢高精度推定 を使用して精確なマッチングを行います。このステップにより、 3D位置姿勢低精度推定(V2) で得られたマッチング結果をより精確なマッチング計算を実行することでより高精度なマッチング結果を取得し、高精度の幾何学的中心または把持位置姿勢を生成できます。

    ヒント

    3D位置姿勢低精度推定(V2) ステップと同じ方法で、モデルファイルと幾何学的中心ファイルを 3D位置姿勢高精度推定 ステップに追加します。

    このステップのパラメータを調整するときは、実際の状況に応じてサンプリング間隔を設定する必要があります。サンプリング間隔が小さいほど、サンプリングによって得られた点群の数は多く、モデル推定の精度が高くなります。サンプリング間隔を設定後、標準偏差を調整します。詳細については、 3D位置姿勢高精度推定 をご参照ください。

  3. ステップ 重複対象物を除去 ステップを使用して設定されたルールに従って積み重ねられた対象物の位置姿勢を除去します。

    重複率のしきい値を調整することで、重複判断の厳しさを調整することができます。重複率のしきい値が低いほど判断が厳しくなります。

位置姿勢を調整

その後、座標系の変換を行います。ステップ 3D位置姿勢高精度推定 により精確な位置姿勢を取得したら、位置姿勢の座標系を変換します。

ステップ 位置姿勢を一括調整 を追加し、 3D位置姿勢推定 ステップの組合せの後に配置します。このステップに組み込んでいる 位置姿勢編集ツール を使用することにより、位置姿勢の座標系変換、並進、回転、ソートなどの組み合わせた処理を実現できます。

../../../../_images/project_framework_5.png

複数の把持位置姿勢にマッピング

把持点が幾何学的中心点と一致しない場合、または複数の把持点がある場合は、 複数の把持位置姿勢にマッピング ステップを使用して、ロボット制御ソフトウェアに送信可能な把持点をシーン内の対象物に追加する必要があります。

このステップを追加し、 位置姿勢を一括調整 の後に配置します。

../../../../_images/project_framework_6.png

ビジョン結果を出力

最後にデータの送信を行います。ステップ 出力 を追加します。このステップにより、データをMech-Centerに送信して、後でMech-Centerからデータを使用するソフトウェアとハ​​ードウェアに送信します。このステップを 複数の把持位置姿勢にマッピング の後に配置します。

../../../../_images/project_framework_7.png

これで、クランクシャフト供給プロジェクトの構築は完了しました。メニューバーで ファイル ‣ プロジェクトを保存 をクリックするか、ショートカットキー Ctrl + S を押してプロジェクトを保存することができます。

プロジェクトを実行してデバッグ

プロジェクトの構築が完了したら、 プロジェクトを実行してデバッグする ことができます。

プロジェクトを実行する際に画像データおよび設定されたステップパラメータを保存する必要がある場合、 カメラから画像を取得 ステップの後に 画像のデータとパラメータを保存 のステップの組合せをつなぎます。

../../../../_images/project_framework_8.png