HALCON——カメラに接続、パラメータを調整、画像を収集

現在ご覧いただいているのは2.2.1 バージョンの内容です。異なるバージョンを参照する場合は、画面右上のボタンから切り替えが可能です。

■ 最新版をご利用される場合は、弊社ホームページよりダウンロードが可能です。ダウンロードにはパスワードが必要となりますので、サポート窓口までお問い合わせください。

■ ご利用中のバージョンが分からない場合はお気軽にサポート窓口までご連絡ください。

本節では、HALCON と Mech-Mind が提供する HALCON サンプルプログラムを使用して Mech-Eye 産業用 3D カメラ を接続、パラメータを設定、画像を収集する方法について説明します。

事前準備

Nano(V3)または Pro XS(V3)カメラを使用する場合に、スイッチを使用せずにコンピュータと直接接続してください。
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 ウィンドウを開きます。

カメラの接続

  1. Image Acquisition ウィンドウのソースタブで画像取り込みインターフェースにチェックを入れ、ドロップメニューで GigEVision2 を選択します。

    choose gigevision2
    ドロップメニューに GigEVision2 がない場合、そのインターフェースはまだインストールされていないです。HALCON インストールガイドを参考して MVTec ソフトウェアマネージャー(SOM)を使用してインターフェースをインストールしてください。
  2. 接続タブでデバイスに接続するデバイスを選択してから接続をクリックしてカメラを接続します。

    connect the camera
  • 正常に接続したら接続ボタンが接続停止に変わります。ボタンが変わらなければ接続に失敗したことになります。接続を切断するとき、接続停止をクリックします。

  • カメラが別のクライアントに接続されている時に HALCON に接続することはできません。それを切断してから HALCON に接続してください。

  • デバイスに表示されるカメラ名は Mech-Eye Viewer で編集できます。Mech-Eye Viewer にカメラを接続したら、カメラ名を設定できます。英語名を推奨します。

画像の取得

カメラを接続したら接続タブでスナップをクリックすると画像を取得できます。

画像取得の時間を短縮したい場合、MTU 値を大きくし、かつ ジャンボフレームに設定してください。

また、画像を数回取得し、または連続取得することもできます。そのために、AcquisitionMode パラメータを調整しておいてください。

  • 数回取得:

    • パラメータタブで AcquisitionModeMultiFrame を選択します。

    • 右上の更新をクリックしてから AcquisitionFrameCount に取得回数を設定します。

    • 接続タブでライブをクリックすると画像を取得できます。

    • 設定した回数の取得が完了すると、ライブボタンが停止になります。停止をクリックして画像取得を停止します。

  • 連続取得:

    • パラメータタブで AcquisitionModeContinuous を選択します。

    • 接続タブでライブをクリックすると画像を取得できます。

    • するとライブボタンが停止になります。停止をクリックして画像取得を停止します。

  • AcquisitionModeMultiFrame または Continuous を選択しても スナップクリックして画像を一回取得することができます。

  • AcquisitionModeSingleFrame を選択した場合、画像を一回取得することしかできません。

データタイプの選択

カメラを接続した後、デフォルトでは 2D 画像を取得します。DeviceScanType パラメータを調整することで取得するデータのタイプ(2D 画像または深度画像)を選択できます。

  1. パラメータタブで DeviceScanType にデータタイプを選択します。各タイプの説明は下表に示します。

    オプション データタイプ

    Areascan

    2D 画像

    Areascan3D

    深度画像(深度情報を含む 2D 画像)

  2. 画像をキャプチャして選択したタイプのデータを取得します。

    パラメータタブの右上の画像の更新にチェックを入れると、パラメータを調整したら Canvas ウィンドウの画像は自動的に更新されます。

取得領域の設定

カメラを接続した後、HeightWidthOffsetXOffsetY を調整することで取得した画像をトリミングできます。

以下の手順に従って取得領域を設定します:

  1. 取得領域を設定するデータタイプを選択します。

  2. スナップをクリックして画像を一回取得して確認します。

  3. パラメータタブに切り替えて HeightWidthOffsetXOffsetY を調整します。下図では、これらのパラメータとそれぞれが決定する値(オレンジ色の枠)を示します。

    set capture region 1
    • Width:取得領域の横

    • Height:取得領域の縦

    • OffsetX:取得領域の左上の角の x 座標(元画像の左上の角の座標は (0, 0) )

    • OffsetY:取得領域の左上の角の y 座標

      下記のように以上の四つのパラメータを調整してください:

      • Width + OffsetX)≦ 元画像の横

      • Height + OffsetY)≦ 元画像の縦

      元画像の横と縦は読み取り専用パラメーターWidthMaxHeightMax の値で表示されます(認知度上級者以上に設定する必要があります)。

  4. 画像を再度取得してトリミングの結果を確認します。

パラメータタブの右上の画像の更新にチェックを入れると、パラメータを調整したら Canvas ウィンドウの画像は自動的に更新されます。
  1. コード生成タブに切り替えてコードの挿入をクリックして対応するコードを生成します。

  2. 別のタイプのデータに取得領域を設定:

    1. 現在のアシスタントウィンドウでカメラの接続を切断します。

    2. 改めてアシスタントウィンドウを開いてカメラを接続します。

    3. 別のデータタイプを選択して以上の手順を実行します。

  • 以上の四つの取得領域パラメータは、パラメータグループに保存されません。カメラの電源が切れたらそのパラメータはリセットされます。パラメータを保存したい場合に、コードを生成して保存してください。

  • DeviceScanTypeScan3DBinningEnable パラメータを調整すると、取得領域パラメータの値もリセットされます。

取得領域と Scan3DROI の違い点

Mech-Eye 産業用 3D カメラでは ROI を設定する Scan3DROILeftScan3DROITopScan3DROIHeightScan3DROIWidth パラメータ(合わせて「Scan3DROI」といいます)を調整できます。

取得領域パラメータと Scan3DROI との違い点は下表に示します。ニーズに応じて使用するパラメータを選択してください。

取得領域 Scan3DROI

パラメータグループに保存不能、カメラ電源が切れたらリセットされる

パラメータグループに保存可能

2D 画像も深度画像も設定可能

2D 画像は設定不能

画像をトリミング可能

画像をトリミング不能

HALCON だけに対応

Mech-Eye Viewer の可視化ツールで設定可能

パラメータの調整

より高品質な画像を取得するために、パラメータタブで関連するパラメータを調整します。

  • カメラがパラメータグループ設定機能に対応できます。パラメータグループを切り替えることで簡単にカメラに異なるパラメータ値を使用することができます。パラメータ値を保存するパラメータグループを選択してから調整してください。

  • パラメータグループを追加/削除する場合、Mech-Eye Viewer で行ってください。Mech-Eye Viewer でパラメータグループを設定したら、HALCON のパラメータタブで右上の更新をクリックして変更済みのカメラ設定を読み取ります。

パラメータを調整するために以下のステップを実行してください。

  1. カメラを接続してからパラメータタブで UserSetSelector に調整するパラメータグループを選択します。

    select parameter group
  2. UserSetLoad の右にある適用をクリックして設定を読み取ります。

    適用をクリックしてもパラメータが変更されない場合に再度クリックしてください。

  3. 調整するパラメータの値を変更します。

  4. UserSetSave の右にある適用をクリックして設定を保存します。

  5. コード生成タブに切り替えてコードの挿入をクリックして対応するコードを生成します。

参考情報

Mech-Eye Viewer でカメラを接続する前に、カメラと HALCON との接続を切断してください。接続できない場合に、HALCON を終了して再度接続してください。

HALCON サンプルプログラムの使用

当社は、GitHub で HALCON サンプルプログラムを提供しています。ここでは、connect_to_camera_and_capture_imagesサンプルプログラムを使用してカメラの接続とデータの収集、パラメータの調整、データの保存について説明します。HALCON サンプルプログラムをそのまま使用し、またはニーズに応じて編集することが可能です。

HALCON サンプルプログラムは、C++ で記述されており、HALCON の HDevelop 統合開発環境で直接実行できます。

サンプルプログラムの実行

以下の操作を実行します:

  1. connect_to_camera_and_capture_images サンプルプログラムの取得については、Code  Download ZIP をクリックすればいいです。

  2. HALCON でサンプルプログラムを開きます:HALCON を起動し、サンプルプログラムを HALCON のプログラムウィンドウにドラッグします。

  3. プログラムウィンドウinfo_framegrabber の行を選択してツールバーのstep overを押すか、キーボードのF6をクリックして実行します。

  4. 制御変数DeviceInfos をダブルクリックして接続可能なカメラを表示します。

    camera information 1
  5. カメラを選択してダブルクリックし、unique_name: あるいは user_name: の後につくカメラ名をコピーします。

    camera information 3
    user_name はユーザーにより指定されたカメラ名です。Mech-Eye Viewer で設定できます。
  6. 以下の行で MechEyeunique_name あるいは user_name に取り替えます。

    DeviceInfo := 'MechEye'
  7. ツールバーのrunをクリックするか、F5を押してサンプルプログラムを実行します。

  8. サンプルプログラムを正常に実行したら、実行終了後、サンプルプログラムフォルダで取得した 2D 画像と点群を確認できます。デフォルトでは、2D 画像と点群はそれぞれ image2d.bmpPointCloud.ply に名付けられます。

  • サンプルプログラムを実行終了後、ツールバーのresetをクリックしてブログラムの実行をリセットしてください。そうしなければ Mech-Eye Viewer でカメラを接続することができません。

  • Canvas ウィンドウで点群を表示したら、このウィンドウで Continue をクリックして実行を続けてください。そうしなければ visualize_object_model_3d 演算子にとどまります。

  • 画像取得の時間を短縮したい場合、MTU 値を大きくし、かつ ジャンボフレームに設定してください。

  • ネットワークの不具合によりデータが失われた場合に、以下のコマンドを使用して失われるパケットの最大許容数を増やすことができます。ParameterValues を損失パケットの新しい最大許容数に取り替えます。

    set_framegrabber_param (AcqHandle, '[Stream]GevStreamMaxPacketGaps', ParameterValues)

パラメータの調整

より高品質な画像を取得するために、関連するパラメータを調整します。

  • カメラがパラメータグループ設定機能に対応できます。パラメータグループを切り替えることで簡単にカメラに異なるパラメータ値を使用することができます。ただし、指定されたパラメータグループでなければパラメータを設定できません。

  • パラメータグループを追加/削除する場合、Mech-Eye Viewer で行ってください。

パラメータを調整するために以下のステップを実行してください。

  1. 以下の演算子を使用して接続可能なカメラリストを表示します。

    get_framegrabber_param (AcqHandle, 'UserSetSelector_values', ParameterValues)
  2. 制御変数ParameterValues で全てのパラメータ値を確認します。

  3. 以下の演算子を使用して変更するパラメータグループを選択します。UserSetSelectorUserSetLoad はカメラパラメータで、それぞれパラメータグループの選択とロードに使用されます。ParameterGroupName を実際のパラメータグループ名に取り換えてください。

    set_framegrabber_param (AcqHandle, 'UserSetSelector','ParameterGroupName')
    set_framegrabber_param (AcqHandle, 'UserSetLoad','ParameterGroupName')
  4. 以下の演算子を使用して指定されたパラメータの値を取得します。ParameterName を実際のパラメータグループ名に取り換えてください。ParameterValues は取得したパラメータ値を保存する変数で、ニーズに応じて調整することができます。変数を引用符で囲む必要はありません。

    get_framegrabber_param (AcqHandle, 'ParameterName', ParameterValues)
  5. 制御変数ParameterValues でパラメータ値を確認します。

  6. 以下の演算子を使用してパラメータ設定を変更します。ParameterName を実際のカメラパラメータ名に、NewParameterValue を新しいパラメータ値に取り換えます。

    set_framegrabber_param (AcqHandle, 'ParameterName', 'NewParameterValue')
  7. 以下の演算子を使用してパラメータ設定の変更をパラメータグループに保存します。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 を終了して再度接続してください。

Mech-Mindは、お客様のプライバシーを重視しています

このサイトでは最高の体験を提供するために Cookie を使用しています。サイトの閲覧を続ける場合、Cookie の使用に同意したことになります。「拒否する」を選択すると、このサイトを訪れた際に追跡や記憶が行われないように単独の Cookie が使用されます。