点群からワーク座標を簡単に検出する方法|株式会社 ティー・イー・エム
TECHNICAL INFORMATION
技術情報
2024.12.16
小型カメラ
点群からワーク座標を簡単に検出する方法
IDS社製の3DカメラEnsensoは、ステレオカメラとパターン投影の両方の技術を用いて点群データを出力します。得られるデータはあくまで点の集まりに過ぎないため、ワークをピッキングする場合、このデータを処理してワーク座標を検出する必要があります。3Dのデータ処理となりますと2Dの画像処理などと比較して煩雑になりがちですが、Ensensoで取得したデータであればPartFinderというソフトウェアを使用することで簡単にワーク座標を検出することができます。
本記事では、Ensensoで取得したデータに対してPartFinderを使用する流れと、どのようにワーク座標が検出されるかご紹介いたします。なお、Ensenso B(B57-4-GN)、Ensenso SDKバージョン4.0.1502にて、あらかじめ保存しておいたデータを用いております。
PartFinderを起動する
無償のビュワーソフトNxViewを起動し、ワークを撮影します。撮影を停止(データが更新されない状態)で、ビュワーソフトの上段、「Tools」から「Part Finder...」を選択します。
ライセンスが有効な場合、PartFinderが別ウィンドウで立ち上がります。画面右上の「Advanced Options」にチェックを入れます。
PartFinderを使用するためには有償ライセンスが必要となりますが、無償のトライアルライセンスもございますので、是非弊社までお気軽にお問合せいただけたらと思います。
モデルを生成する
ワーク座標を検出するためのモデルは「Model Generation」タブにて生成します。「CAD Model」欄内「3D Model File」の右にあります、「...」ボタンをクリックして、検出したいワークの3Dデータを選択します。stl、ply、gltf、objのファイル形式であれば選択することができます。今回はM6 20mmのネジのモデルを読み込んでいます。
画面中央上部の「Presets」からプリセットを選択します。検出が可能かを目的とした簡単なテストであれば「Medium」を選択します。これらのプリセットは検出にかかる精度と時間のトレードオフになっております。まずは「Medium」で検出が可能か確認した後に、より検出までの時間を短くしたいのであれば「Fast」、「Medium」では検出ができないといった場合は「Accurate」を選択してみるのが良いかと思います。
この状態で次へ進んでみても良いのですが、「Presets」下の「Template Generation Settings」欄の設定にて検出に使用するモデルのデータ量を調整することができます。例えば、ワークがXYZいずれかの軸で対称である場合や撮影する向きが決まっている場合など、必要最小限のデータ量に絞ることで、ワーク検出までの時間短縮や誤検出の減少が期待できます。今回、M6 20mmのネジとM5 10mmのネジを混ぜて撮影しておりますが、撮影される向きや角度がある程度決まっているため、それに合わせた設定を行っております。「Template Generation Settings」欄の設定を変更することで、「CAD Model」欄内の画像が変化します。3Dデータの上方にあるオレンジ色のものはカメラで、その角度から撮影した際のモデルデータを生成します。
各パラメータ―の調整を必要に応じて調整し、「Create Model...」ボタンをクリックしてモデルを生成します。
「Template Generation Settings」の設定は、右上のアイコンから読み込み、出力等を行うことができますので、ご活用いただけたらと思います。
点群データからワークを探す
ワークの探し方に関する設定と実行は「Search」タブにて行います。画面左半分には生成されたモデルが表示されます。その右上のアイコンからモデルの保存、読み込みを行うことができます。
画面右半分上部の「Presets」からプリセットを選択します。こちらもモデル生成時と同様に検出が可能かを目的とした簡単なテストであれば「Medium」を選択します。プリセットの意味合いもモデル生成と同様で、検出にかかる精度と時間のトレードオフになっております。まずは「Medium」で検出が可能か確認した後に、より検出までの時間を短くしたいのであれば「Fast」、「Medium」では検出ができないといった場合は「Accurate」を選択してみるのが良いかと思います。
モデル生成よりも多くのパラメーターを「Search」タブでは設定することができます。使用されることの多い、最大検出数は「Cluster Count」から、最低検出スコアは「Minimum Final Score」から設定いただけます。実際の検出結果を見ながら、その他のパラメータ―は調整していただくのが良いかと思います。
「Find Model...」ボタンをクリックして点群データからワークを探します。画面右半分の設定もモデル生成時と同様に右上のアイコンから読み込み、出力等を行うことができますので、ご活用いただけたらと思います。
結果を確認する
「Find Model...」ボタンをクリックしてしばらくすると「Results」タブに結果が表示されます。検出された個数やそのスコア(マッチング度合い)、検出された各ワークの座標などをご確認いただけます。こちらで確認できる座標の値は、モデル生成のために読み込んだデータの原点位置です。
NxViewの3D Viewウィンドウにて、検出されたワークの確認を行うことができます。点群に対して緑系統の色でオーバーレイされます。スコアが高いほど濃い色となり、スコアが低いものは黄色よりの色でオーバーレイされます。こちらの内容からワークが意図した通りに検出されているかご確認いただけます。今回のケースでは、M6 20mmのネジのみが漏れなく検出されているように見えます。
「Results」タブの方で検出されたワークの項目をクリックすると、NxView側で該当するオーバーレイが水色になります。
点群の方はワークが撮れている様に見えるにもかかわらず、PartFinderでワークが意図した通りに検出されない場合は、「Model Generation」や「Search」タブ内のパラメーターを変更し、「Find Model...」を繰り返し実行いただけたらと思います。ワークが意図通りに検出されていてもタクトタイムを短くしたい場合は、同様に「Model Generation」や「Search」タブ内のパラメーターを変更し、「Find Model...」を繰り返し実行いただけたらと思います。
PartFinderのGUI上の操作をここまで説明してきましたが、「Results」タブで確認できるワーク座標含め、その他の作業も全てEnsenso SDKを使用して行うことができます。PartFinderのGUI上でモデル生成やワークを検出するためのパラメーターの最適化まで行えますので、実際にソフトウェアを作成するときは、GUIを用いてテストを行った際のモデルやパラメーターの読み込み部分から始めていただくことができるかと思います。
ティー・イー・エムでは、Ensensoを用いたサンプル撮影やPartFinderを用いた検出可否の簡易的な評価も行っておりますので、是非お気軽にお問合せいただけたらと思います。