ビジョンプロジェクトの設定
ロボット通信設定 でソリューションライブラリを使用して「バラ積みされたワークの供給」ソリューションを作成しました。
以下では、プロジェクトの構築手順を確認し、ステップパラメータの調整とプロジェクト実装により、ワークの位置姿勢を取得してビジョン結果を出力します。
本ガイドでは、ワークのCADモデルを点群マッチングモデルに変換する必要があります。CADモデルファイルの準備に時間がかかることがありますので、ワークのCADモデルファイルを事前に準備することをお勧めします。こちら をクリックしてダウンロードできます。 |
プロジェクトの構築手順
Mech-VisionとMech-Vizソフトウェアを使用してビジョンプロジェクトの設定を行います。ビジョンプロジェクトの設定は、下図のような手順で行われます。
詳細な手順は下表の通りです。
手順 | 必要なソフトウェア | 説明 |
---|---|---|
カメラ接続と画像取得 |
Mech-Vision |
Mech-Visionの「カメラから画像を取得」ステップを使用してカメラを接続し、画像を取得します。 |
ワーク認識 |
Mech-Vision |
Mech-Visionの「ワーク認識」ステップを使用して、画像データに対して一連のビジョン処理(点群前処理、3Dマッチング、ディープラーニング推論など)を行い、ワークの迅速な認識を実現します。 |
位置姿勢を調整 |
Mech-Vision |
Mech-Visionの「位置姿勢を一括調整(V2)」ステップを使用して、「ワーク認識」ステップから出力された位置姿勢に対して座標系変換、調整、ソート、フィルタリングなどの処理を行います。 |
コンテナの位置決め |
Mech-Vision |
Mech-Visionの「標準コンテナの位置決め」ステップの組合せを使用して、コンテナを認識します。認識されたコンテナの位置姿勢をMech-Vizに送信してコンテナモデルの位置を更新します。 |
ロボットの動作経路を計画 |
Mech-Vision & Mech-Viz |
Mech-Visionの「出力」ステップを使用して、ビジョン結果(対象物中心点、前処理後の点群、コンテナのシーンのモデル名、コンテナの中心位置姿勢などの情報)をMech-Vizに送信します。
|
計画された経路を出力 |
Mech-Viz |
ロボット(本ガイドでは使用)またはPLCから送信された標準インターフェースコマンドを受信すると、Mech-Vizが計画された衝突のないロボット動作経路を返します。
|
ステップパラメータの調整
以下では、パラメータの調整について説明します。
「バラ積みされたワークの供給」ソリューションの 「Vis_Target_Objects_Recognition 」プロジェクトを例として説明します。 |
カメラから画像を取得
ステップ名 |
カメラから画像を取得 |
---|---|
プロジェクトの構築手順 |
カメラ接続と画像取得 |
説明図 |
|
説明 |
実際のカメラを接続し、関連するパラメータを設定して、カメラが正常に画像を取得できるようにします。 |
-
Mech-Visionのプロジェクト編集エリアで、カメラから画像を取得 ステップを選択し、画面右下にある ステップパラメータ タブで カメラを選択 をクリックします。
-
ポップアップウィンドウで カメラとキャリブレーションパラメータグループを選択 ウィンドウが表示され、カメラ番号の右側にある アイコンをクリックします。このアイコンが アイコンに変わると、カメラの接続が成功したことを示します。
カメラを接続した後、パラメータグループを選択 をクリックし、ETH/EIHおよび日付のついたキャリブレーションパラメータグループを選択します。
ここで選択するキャリブレーションパラメータグループは、ハンド・アイ・キャリブレーションが完了した後に生成されたパラメータグループです。 -
カメラを接続してキャリブレーションパラメータグループを設定すると、カメラのキャリブレーションパラメータグループ、IPアドレス、ポートなどのパラメータが自動的に取得されます。設定パラメータグループ が「寸切りボルト(Threaded rod)」に設定されていることを確認してください。
-
カメラから画像を取得 ステップのシングル実行ボタンをクリックして画像取得をトリガーし、ステップの「カメラの深度画像」と「カメラカラー画像」データフローの線をダブルクリックし、デバッグ結果出力 ウィンドウで正常にカメラから画像が取得できたかどうかを確認します。
-
デバッグ結果出力 に深度画像とカラー画像が正常に表示されていれば、Mech-Visionが実際のカメラに正常に接続され、画像を正常に取得できることを示しています。
ワーク認識
ステップ名 |
ワーク認識 |
---|---|
プロジェクトの構築手順 |
ワーク認識 |
説明図 |
|
説明 |
点群前処理パラメータを設定し、ワークライブラリでワークモデルを作成してワークを選択し、ディープラーニング関連パラメータと認識パラメータを設定し、出力ポートを設定する必要があります。 |
「ワーク認識」ステップでは、組み込みの可視化ワーク認識設定ツールを提供しており、3つの手順で簡単にワークの位置姿勢を認識することができます。
ワーク認識設定ツールを開くには、以下のいずれかの方法を使用します。
-
プロジェクト編集エリアで、ステップ上にある 設定ツール をクリックします。
-
ステップパラメータ タブで 設定ツールを開く をクリックします。
点群前処理
取得された画像データを点群に変換し、有効な点群認識領域を設定します。その後、エッジ点群を検出し、要件を満たしていない点群を除去して、認識効率を向上させます。
この手順では、有効な認識領域を設定し、干渉要素を除去して認識効率を向上させる必要があります。認識領域を設定する際は、コンテナおよびその内のワークをカバーし、コンテナ位置の小さな変動による影響を受けることがないように、適切に20~30ミリメートル外側に拡張する必要があります。
通常、他の前処理パラメータは初期値のままで問題ありません。シーンに多くのノイズが存在する場合は、関連パラメータを調整してください。詳細については、点群前処理 をご参照ください。
パラメータの調整が完了した後、前処理結果をプレビュー の下の ステップを実行 をクリックして、可視化領域で前処理結果が要件を満たしているかを確認できます。 |
ワークの選択と認識
|
ワークのモデルを作成
このガイドでは、ワークのCADモデルファイル(.stl形式)を使用して、ワークの点群モデルを生成します。こちら をクリックしてダウンロードできます。
ワークの点群マッチングモデルを作成する方法については、STLファイルをインポートして点群モデルを生成し、把持位置姿勢を手動で設定 をご参照ください。
注意事項:
-
カメラでボルトの点群データを取得する際、点群が過度に平滑化されることがあります。この現象により、ネジの詳細な特徴が失われることがあります。そのため、このガイドではSTLファイルをインポートして点群モデルを生成します。下図に示すように、提供されたSTLモデルファイルは簡略化されています。
-
「STLファイルを設定」手順で、実際の状況に応じて単位を設定し、すべての視点 にチェックを入れてください。
-
「把持位置姿勢を設定」手順で、実際の状況に応じて点群モデルの把持位置姿勢を設定します。詳細については、把持位置姿勢を設定 をご参照ください。このソリューションでは、クランプ式ハンドでボルトを把持するため、ワークの把持位置姿勢はボルトの中央に設定されます。
ワークを把持する際に使用するロボットハンドに関する設定は、現時点では設定を行う必要はありません。後でMech-Vizプロジェクトを設定する際に設定を行ってください。 |
ワークモデルの作成が完了したら、ワークライブラリを閉じてワーク認識の設定ツールの画面に戻り、ワークを更新 ボタンをクリックします。このソリューションのワークライブラリにワークモデルが1つしかない場合、ツールは自動的にそのワークモデルを選択します。複数のワークモデルがある場合、使用したいワークモデルを選択してください。
ディープラーニングのパラメータを設定
-
ディープラーニングを使用 の下の ディープラーニングによる認識 を有効にします。
-
モデルパッケージ管理ツールを使用して本ガイドで提供されている ディープラーニングモデルパッケージ、またはMech-DLKでトレーニングした独自のモデルパッケージをインポートします。詳細については、ディープラーニングモデルパッケージをインポート をご参照ください。
-
モデルパッケージのドロップダウンリストから インポート済みのモデル を選択します。
初めてディープラーニングモデルを読み込む際は時間がかかる場合がありますので、しばらくお待ちください。 -
ROI設定 をクリックして2D ROIを設定します。設定方法については、2D ROIの設定流れ をご参照ください。
-
ディープラーニングパラメータを調整します。ディープラーニングモデルが出力するマスク画像の情報欠損を防ぐため、マスク画像を5ピクセル膨張処理し、より完全なワーク点群データを取得します。
位置姿勢を一括調整(V2)
ステップ名 |
位置姿勢を一括調整(V2) |
---|---|
プロジェクトの構築手順 |
位置姿勢を一括調整 |
説明図 |
|
説明 |
パラメータを設定して位置姿勢変換、調整、ソート、フィルタリングを実行する必要があります。 |
ワークの位置姿勢を取得した後、位置姿勢を調整する必要があります。処理フローは以下の通りです。
Mech-Visionには位置姿勢編集ツールが組み込まれています。このツールを使用して対象物の位置姿勢の調整と把持順序の最適化を簡単に行うことができます。位置姿勢編集ツールを開くには、以下のいずれかの方法を使用します。
-
プロジェクト編集エリアで、ステップ上にある 設定ツール をクリックします。
-
ステップパラメータ タブで 設定ツールを開く をクリックします。
以下の手順に従ってパラメータを調整してください。
-
位置姿勢を変換:「座標系設定」の下の 位置姿勢をロボット座標系に変換 にチェックを入れ、位置姿勢をカメラ座標系からロボット座標系に変換します。
-
位置姿勢を調整:「方向調整」を 基準点を指す に設定し、Z軸がコンテナ位置姿勢の真上を向くようにします。
-
位置姿勢をソート:ロボット座標系における 位置姿勢のZ値 を基準に、降順でソートを行います。
-
角度によるフィルタリング:位置姿勢のZ軸方向 に基づき、明らかに把持できない位置姿勢を除去し、Mech-Vizの経路計画時間を短縮して効率を向上させます。
-
ROI外の位置姿勢を除去:ROI(関心領域)を設定し、位置姿勢がROI内にあるかを判断し、ROI内の位置姿勢のみ を残します。
ここでは、ROI(3d_roi)はロボット座標系に基づいて設定されます。誤ったフィルタリングを避けるため、実際の外部パラメータに基づいてROIを再設定する必要があります。
標準コンテナの位置決め
ステップ名 |
標準コンテナの位置決め(カスタマイズされたステップの組合せ) |
---|---|
プロジェクトの構築手順 |
コンテナの位置決め |
説明図 |
|
説明 |
Mech-Vizプロジェクト内で、コンテナをシーンの物体として設定する名前、およびコンテナの位置姿勢オフセットを設定する必要があります。 |
-
Mech-Visionプロジェクト設定エリアでは、標準コンテナの位置決め をクリックして選択し、ステップパラメータ で 文字列のリスト パラメータを設定します。
文字列のリスト パラメータの値は、Mech-Vizプロジェクト内のコンテナのシーンのモデルの名前として使用されます。Mech-Vizプロジェクトでコンテナのシーンの物体を設定する際、このパラメータ値を名前として使用する必要があります。 -
並進距離 パラメータをコンテナの高さの半分に設定します。
現在認識されたコンテナの位置姿勢はコンテナの上面にあります。認識されたコンテナの位置姿勢を正確にコンテナの中心位置に対応させるためには、認識された位置姿勢を調整する必要があります。このステップの組合せでは、コンテナ座標系のZ軸方向に移動するため、特定のオフセット値を引く必要があります。そのため、ここでは負の値として設定してください。
出力
ステップ名 |
出力 |
---|---|
プロジェクトの構築手順 |
ロボットの動作経路を計画(前提条件) |
説明図 |
|
説明 |
経路計画と衝突検出に必要な情報がすべて出力されていることを確認する必要があります。 |
経路計画と衝突検出の要件に基づき、以下の情報をMech-Vizソフトウェアに出力する必要があります。
-
対象物中心点(PoseList)
-
ワークの名前(StringList)
-
法線ベクトル付きの点群(Cloud(XYZ-Normal)):前処理後の点群
-
シーンの物体の名前(StringList):コンテナのシーンのモデル名
-
シーンの物体の位置姿勢(PoseList):コンテナの中心位置姿勢
上記のポートがすべてデータフローで接続されていることを確認した後、実行 をクリックします。プロジェクトが正常に実行され、ビジョンの結果が出力されることを確認します。Mech-Visionソフトウェアのログバーの Vision タブで、ビジョン結果を含むログが表示されているか確認できます。