HALCON——カメラに接続、パラメータを調整、画像を収集
本節では、HALCON と Mech-Mind が提供する HALCON サンプルプログラムを使用して Mech-Eye 産業用 3D カメラ を接続、パラメータを設定、画像を収集する方法について説明します。
事前準備
-
カメラとコンピュータの接続を完了します。
Nano(V3)または Pro XS(V3)カメラを使用する場合に、スイッチを使用せずにコンピュータと直接接続してください。 |
-
コンピュータに 20.11 以上の HALCON をインストールします。
20.11 以下の HAlCON は完全に検証されていません。 |
-
コンピュータに 2.0.0 以上の Mech-Eye SDK をインストールします。
カメラファームウェアとソフトウェアのバージョンが一致しなければ Mech-Eye SDK を使用できません。ファームウェアをアップグレードするとき、カメラファームウェアのアップグレードをお読みください。 |
-
カメラとコンピュータの IP アドレスを同じネットワークセグメントに設定します。
カメラとコンピュータの IP アドレスを静的 IP アドレスに設定することを推奨します。IP アドレスに設定については、Mech-Eye Viewer を使用して IP アドレスの設定をお読みください。 |
HALCON をインストールすると、HALCON アシスタントあるいは Mech-Mind が提供する HALCON サンプルプログラムを使用してカメラを接続することができます。
HALCON アシスタントを使用
HALCON アシスタント機能を使用すると、迅速なカメラ接続と画像取得、パラメータ調整が実現可能です。
コンピュータで HALCON を実行します。
をクリックして Image Acquisition ウィンドウを開きます。カメラの接続
-
Image Acquisition ウィンドウのソースタブで画像取り込みインターフェースにチェックを入れ、ドロップメニューで GigEVision2 を選択します。
ドロップメニューに GigEVision2 がない場合、そのインターフェースはまだインストールされていないです。HALCON インストールガイドを参考して MVTec ソフトウェアマネージャー(SOM)を使用してインターフェースをインストールしてください。 -
接続タブでデバイスに接続するデバイスを選択してから接続をクリックしてカメラを接続します。
|
画像の取得
カメラを接続したら接続タブでスナップをクリックすると画像を取得できます。
画像取得の時間を短縮したい場合、MTU 値を大きくし、かつ ジャンボフレームに設定してください。 |
また、画像を数回取得し、または連続取得することもできます。そのために、AcquisitionMode パラメータを調整しておいてください。
-
数回取得:
-
パラメータタブで AcquisitionMode に MultiFrame を選択します。
-
右上の更新をクリックしてから AcquisitionFrameCount に取得回数を設定します。
-
接続タブでライブをクリックすると画像を取得できます。
-
設定した回数の取得が完了すると、ライブボタンが停止になります。停止をクリックして画像取得を停止します。
-
-
連続取得:
-
パラメータタブで AcquisitionMode に Continuous を選択します。
-
接続タブでライブをクリックすると画像を取得できます。
-
するとライブボタンが停止になります。停止をクリックして画像取得を停止します。
-
|
データタイプの選択
カメラを接続した後、デフォルトでは 2D 画像を取得します。DeviceScanType パラメータを調整することで取得するデータのタイプ(2D 画像または深度画像)を選択できます。
-
パラメータタブで DeviceScanType にデータタイプを選択します。各タイプの説明は下表に示します。
オプション データタイプ Areascan
2D 画像
Areascan3D
深度画像(深度情報を含む 2D 画像)
-
画像をキャプチャして選択したタイプのデータを取得します。
パラメータタブの右上の画像の更新にチェックを入れると、パラメータを調整したら Canvas ウィンドウの画像は自動的に更新されます。
取得領域の設定
カメラを接続した後、Height、Width、OffsetX、OffsetY を調整することで取得した画像をトリミングできます。
以下の手順に従って取得領域を設定します:
-
取得領域を設定するデータタイプを選択します。
-
スナップをクリックして画像を一回取得して確認します。
-
パラメータタブに切り替えて Height、Width、OffsetX 、OffsetY を調整します。下図では、これらのパラメータとそれぞれが決定する値(オレンジ色の枠)を示します。
-
Width:取得領域の横
-
Height:取得領域の縦
-
OffsetX:取得領域の左上の角の x 座標(元画像の左上の角の座標は (0, 0) )
-
OffsetY:取得領域の左上の角の y 座標
下記のように以上の四つのパラメータを調整してください:
-
(Width + OffsetX)≦ 元画像の横
-
(Height + OffsetY)≦ 元画像の縦
元画像の横と縦は読み取り専用パラメーターの WidthMax と HeightMax の値で表示されます(認知度を上級者以上に設定する必要があります)。
-
-
-
画像を再度取得してトリミングの結果を確認します。
パラメータタブの右上の画像の更新にチェックを入れると、パラメータを調整したら Canvas ウィンドウの画像は自動的に更新されます。 |
-
コード生成タブに切り替えてコードの挿入をクリックして対応するコードを生成します。
-
別のタイプのデータに取得領域を設定:
-
現在のアシスタントウィンドウでカメラの接続を切断します。
-
改めてアシスタントウィンドウを開いてカメラを接続します。
-
別のデータタイプを選択して以上の手順を実行します。
-
|
取得領域と Scan3DROI の違い点
Mech-Eye 産業用 3D カメラでは ROI を設定する Scan3DROILeft、Scan3DROITop、Scan3DROIHeight、Scan3DROIWidth パラメータ(合わせて「Scan3DROI」といいます)を調整できます。
取得領域パラメータと Scan3DROI との違い点は下表に示します。ニーズに応じて使用するパラメータを選択してください。
取得領域 | Scan3DROI |
---|---|
パラメータグループに保存不能、カメラ電源が切れたらリセットされる |
パラメータグループに保存可能 |
2D 画像も深度画像も設定可能 |
2D 画像は設定不能 |
画像をトリミング可能 |
画像をトリミング不能 |
HALCON だけに対応 |
パラメータの調整
より高品質な画像を取得するために、パラメータタブで関連するパラメータを調整します。
|
パラメータを調整するために以下のステップを実行してください。
-
カメラを接続してからパラメータタブで UserSetSelector に調整するパラメータグループを選択します。
-
UserSetLoad の右にある適用をクリックして設定を読み取ります。
適用をクリックしてもパラメータが変更されない場合に再度クリックしてください。
-
調整するパラメータの値を変更します。
-
UserSetSave の右にある適用をクリックして設定を保存します。
-
コード生成タブに切り替えてコードの挿入をクリックして対応するコードを生成します。
参考情報
-
GenICam がサポートするカメラパラメータは、Mech-Eye Viewer のパラメータとはほとんど一致しています。パラメータの対応関係と GenICam 対応のカメラパラメータについては、GenICam 対応のソフトウェアで使用できるパラメータをお読みください。
-
自動露出 ROI と深度範囲、ROI などのパラメータを設定する時、調整の効果を確認するために、直観的なソフトウェアを必要とします。HALCON では画像の変化を即時に確認することはできませんが、Mech-Eye Viewer ではこれらのパラメータを直感的に設定できます。詳しくは Mech-Eye Viewer を使用して GenICam 対応のソフトウェアにカメラパラメータを設定をお読みください。
Mech-Eye Viewer でカメラを接続する前に、カメラと HALCON との接続を切断してください。接続できない場合に、HALCON を終了して再度接続してください。 |
HALCON サンプルプログラムの使用
当社は、GitHub で HALCON サンプルプログラムを提供しています。ここでは、connect_to_camera_and_capture_imagesサンプルプログラムを使用してカメラの接続とデータの収集、パラメータの調整、データの保存について説明します。HALCON サンプルプログラムをそのまま使用し、またはニーズに応じて編集することが可能です。
HALCON サンプルプログラムは、C++ で記述されており、HALCON の HDevelop 統合開発環境で直接実行できます。 |
サンプルプログラムの実行
以下の操作を実行します:
-
connect_to_camera_and_capture_images サンプルプログラムの取得については、 をクリックすればいいです。
-
HALCON でサンプルプログラムを開きます:HALCON を起動し、サンプルプログラムを HALCON のプログラムウィンドウにドラッグします。
-
プログラムウィンドウで info_framegrabber の行を選択してツールバーのを押すか、キーボードのF6をクリックして実行します。
-
制御変数の DeviceInfos をダブルクリックして接続可能なカメラを表示します。
-
カメラを選択してダブルクリックし、unique_name: あるいは user_name: の後につくカメラ名をコピーします。
user_name はユーザーにより指定されたカメラ名です。Mech-Eye Viewer で設定できます。 -
以下の行で MechEye を unique_name あるいは user_name に取り替えます。
DeviceInfo := 'MechEye'
-
ツールバーのをクリックするか、F5を押してサンプルプログラムを実行します。
-
サンプルプログラムを正常に実行したら、実行終了後、サンプルプログラムフォルダで取得した 2D 画像と点群を確認できます。デフォルトでは、2D 画像と点群はそれぞれ image2d.bmp と PointCloud.ply に名付けられます。
|
パラメータの調整
より高品質な画像を取得するために、関連するパラメータを調整します。
|
パラメータを調整するために以下のステップを実行してください。
-
以下の演算子を使用して接続可能なカメラリストを表示します。
get_framegrabber_param (AcqHandle, 'UserSetSelector_values', ParameterValues)
-
制御変数の ParameterValues で全てのパラメータ値を確認します。
-
以下の演算子を使用して変更するパラメータグループを選択します。UserSetSelector と UserSetLoad はカメラパラメータで、それぞれパラメータグループの選択とロードに使用されます。ParameterGroupName を実際のパラメータグループ名に取り換えてください。
set_framegrabber_param (AcqHandle, 'UserSetSelector','ParameterGroupName') set_framegrabber_param (AcqHandle, 'UserSetLoad','ParameterGroupName')
-
以下の演算子を使用して指定されたパラメータの値を取得します。ParameterName を実際のパラメータグループ名に取り換えてください。ParameterValues は取得したパラメータ値を保存する変数で、ニーズに応じて調整することができます。変数を引用符で囲む必要はありません。
get_framegrabber_param (AcqHandle, 'ParameterName', ParameterValues)
-
制御変数の ParameterValues でパラメータ値を確認します。
-
以下の演算子を使用してパラメータ設定を変更します。ParameterName を実際のカメラパラメータ名に、NewParameterValue を新しいパラメータ値に取り換えます。
set_framegrabber_param (AcqHandle, 'ParameterName', 'NewParameterValue')
-
以下の演算子を使用してパラメータ設定の変更をパラメータグループに保存します。UserSetSave はカメラパラメータで、パラメータの設定をパラメータグループに保存するために使用されます。ParameterGroupName を実際のパラメータグループ名に取り換えてください。
set_framegrabber_param (AcqHandle, 'UserSetSave', 'ParameterGroupName')
参考情報
-
GenICam がサポートするカメラパラメータは、Mech-Eye Viewer のパラメータとはほとんど一致しています。パラメータの対応関係と GenICam 対応のカメラパラメータについては、GenICam 対応のソフトウェアで使用できるパラメータをお読みください。
-
自動露出 ROI と深度範囲、ROI などのパラメータを設定する時、調整の効果を確認するために、直観的なソフトウェアを必要とします。HALCON では画像の変化を即時に確認することはできませんが、Mech-Eye Viewer ではこれらのパラメータを直感的に設定できます。詳しくは Mech-Eye Viewer を使用して GenICam 対応のソフトウェアにカメラパラメータを設定をお読みください。
Mech-Eye Viewer でカメラを接続する前に、カメラと HALCON との接続を切断してください。接続できない場合に、HALCON を終了して再度接続してください。