はじめに
CameraLinkカメラとグラバーボードの関係はご存知でしょうか?
規格が同じだからと言って、カメラとグラバーボードを接続してそのまま撮像できるとは限りません。
また、仮に撮像できたとしても、撮像画像が崩れる、黒い帯が表示されるなど正常に画像が撮像できない場合もあります。
ここでは、そう言ったトラブルでお困りの方にAIPToolを使用した撮像方法について解説します。
なお、解説は以下4点を使用します。
・「CameraLinkカメラ」
・「弊社グラバーボード」
・「SDK-AcapLib2」
・「AIPTool」
トラブルの原因
さて、撮像画像が崩れる、黒い帯が表示される等、撮像に失敗した場合はどんな原因が考えられるでしょうか?
実は原因の9割が・・・
カメラの仕様や設定とボードの設定が合っていません!
まずはカメラとボードの設定を合わせる必要があります。
そのためには、まずカメラの仕様とカメラの設定値を確認していきましょう。
何を確認すればいいの?
全ての内容を確認する必要はありません。確認すべき項目は4つです。
1.サイズ(有効画素数)
カメラから出力されている有効画像データの水平サイズ、垂直サイズを確認します。
(例) 640(H) x 480(V) / 1280(H) x 1040(V) / 2560(H) x 2560
※サイズ(有効画素数)と記述しましたが、カメラメーカーによっては言葉や意味合いが異なる場合がありますので注意してください。
2.ビット深度
カメラから何ビットの画像データが出力されているかを確認します。
(例) 8bit / 10bit / 12bit / 14bit / 16bit / 24bit / 30bit
3.TAP
カメラから何TAP(データの転送単位)で画像データが出力されているかを確認します。
(例) 1TAP / 2TAP / 4TAP / 8TAP / 10TAP
4.シャッタモード
カメラがどんなタイミングで画像データを出力しているかを確認します。
(例) フリーラン(カメラ自走) / エッジトリガモード / パルス幅制御モード
※カメラメーカーによっては、モードの名前や意味合いが異なる場合がありますので注意してください。
※便宜上、ここではフリーランに設定してください。
ただし、カメラの仕様書だけでは、複数の設定値が存在するため、仕様書だけでは確認できない項目もあります。
その場合は、カメラとシリアル通信を行って設定値を確認します。
カメラとシリアル通信を行って設定値を確認する
どうやってシリアル通信を行うの?
ボードとカメラをつないですぐにカメラとシリアル通信はできません。
では、どうするかと言いますと仮想COMという機能を使用します。
仮想COMとは
ボードに搭載されたUARTを、Windows上の標準COMポートに割り当て、カメラとシリアル通信を行うことができる機能です。
カメラの設定ソフトや、ハイパーターミナルなどを使用することができるようになります。
※仮想COMの設定は、以下の仮想COMツールを使用してCOMポートに割り当てます。
設定方法は「SDK-AcapLib2 VirtualComTool Manual(J2OM10016)」を参照ください。
シリアル通信を行う準備ができましたら、カメラのコントロールソフトや
ターミナルソフトを使用して、カメラと通信を行い、各設定値の確認を行います。
カメラの仕様及び設定値が確認できましたら、次はボードの設定を行います。
ボードの設定
カメラの仕様及び設定が確認できましたら、次はボードの設定を行います。
ここでは、ボードの設定にAIPToolを使用します。
AIPToolって?
AIPToolは今まで複雑だった画像ボードの設定を、IniFileを含め4Wayで容易に行うことができるViewerツールです。
ボード設定以外にも豊富な機能を備えており、トータルなツールとしてご使用いただけます。
※現在、SDK-AcapLib2に対応しています。
なお、AIPToolはボードの設定のみ行うことが可能です。カメラの設定は行う事ができません。
そのため、カメラの設定は、カメラのコントロールソフトやターミナルソフトを使用して設定してください。
AIPToolについてもっと詳しく知りたい方は
AIPToolの紹介ページ
をご覧ください。AIPToolのダウンロードは会員ページ
より可能です。
それでは実際に設定してみましょう。
※なお、今回設定するカメラの仕様及びカメラの設定値は以下とします。
サイズ | 640 x 480 (エリアセンサ) |
ビット深度 | 8bit |
TAP数 | 2TAP |
シャッタモード | フリーラン |
まず最初に・・・
ボード側だけ設定する項目が一つあります。
それはカメラタイプです。
ボードはつながっているカメラがエリアセンサなのかラインセンサなのか判断することができません。
そのため、エリアセンサを使用するのか、ラインセンサを使用するのか設定を行う必要があります。
今回はエリアセンサなのでTypeをAreaに設定します。
サイズを設定する
X SizeとTotal X Sizeに640を設定します。また、Y SizeとTotal Y Sizeに480を設定します。
ビット深度を設定する
CameraDataのbitsに8を設定します。
TAP数/画像データの出力順番を設定する
Tap Numに2を設定します。Arrange Modeはカメラの水平タイミングと同じ並びになるように設定します。(今回はDisableに設定します)
シャッタモードを設定する
カメラがフリーランなので、今回は設定の必要はありません。
さて、ここまで設定が終わりましたら、撮像を行ってみましょう!!
撮像できましたか?
以下のように意図した画像が撮像ができれば、これでボードの設定は終わりです。
トラブル発生!!
意図した画像が撮像できなかったときの対処方法
先ほどのように、問題なく撮像できればよいのですが、必ずしも全てが問題無く撮像できるとは限りません。
例えば以下の現象が発生したことは無いでしょうか?
もし、上記の現象が発生した場合は、カメラとシリアル通信を行い、必ずカメラの設定を再確認してください。
カメラの設定を確認後、ボードの設定と合っているかを確認します。
何度も繰り返しになってしまいますが、上記原因の9割は、カメラの設定とボードの設定が合っていないために起こります。
撮像画像が崩れる
以下のように撮像画像が崩れる場合、
主な原因は、カメラ設定とボード設定の「ビット深度」、「TAP」が合っていないことです。
また、カメラリンクケーブルの長さ、カメラリンクケーブルの向きが原因の場合もあります。
※他の要因の場合もあります。
※カメラリンクケーブルの長さについてはFAQ : 「4-24 カメラリンクケーブルは何メートルまで使用できますか?」を参照ください。
上記の現象が発生した場合は、カメラの設定(ビット深度/タップ数)を再度確認しましょう。
撮像画像に黒い帯が表示される
以下のように、黒い帯が表示される場合、
主な原因は、カメラから出力されている無効画素を取り込んでしまっていることです。
※他の要因の場合もあります。
上記の現象が発生した場合は、「LVAL Delay」、「Y Delay」で調整を行います。
以下に具体例を記載します。
(例)カメラのタイミングチャートが以下とします。
上記タイミングのカメラに対して、「LVAL Delay=0」、「Y Delay=0」に設定して撮像を行った場合、
以下のように無効画素、無効ラインが表示されます。
無効画素、無効ラインが表示された場合、以下のように「LVAL Delay」、「Y Delay」を設定します。
※「LVAL Delay」はLVAL High期間中に何クロック無効画素があるかを設定します。 |
タイムアウトエラーが発生する
以下のようにタイムアウトが発生する場合、
主な原因は、カメラ設定とボード設定の「サイズ」、「TAP数」が合っていないことです。
また、カメラの「シャッタモード」がフリーランに設定されていない場合もタイムアウトが発生する場合があります。
※他の要因の場合もあります。
上記の現象が発生した場合は、カメラの設定(サイズ/TAP数/シャッタモード)を再度確認しましょう。
Iniファイル(ボード設定用イニシャライズファイル)
さて、ここまで苦労しながらボードの設定を行いましたが、また設定するのは非常に面倒です。
ご安心ください、現在の設定はIniファイルとして一括保存することが可能です。
設定をIniファイルとして保存する
AIPToolでボードの設定が終わりましたら、以下のSaveボタンを押してください。
各設定値がIniファイルとして保存されます。
Iniファイルから設定を読み出す
先ほど保存したIniファイルを使うと、AIPToolに同じ設定を反映することができます。
やり方は簡単です。
AIPToolを実行後、以下のLoadボタンを押します。
ファイル選択ダイアログが表示されますので、先ほど作成したIniファイルを選択してロードを行います。
このようにIniファイルをロードすることで、先ほどと同じ設定が反映されます。
また、お客様のプログラム内で、AcapLib2の「AcapSelectFile」関数を使用すると、プログラム内で同じ設定が反映されます。
なお、弊社でご用意しているIniファイルは、AIPToolのStep1とStep3のみ設定されています。。
もし、外部トリガやエンコーダなど他の機能を使用したい場合は、お客様の環境に合わせてStep2、Step4、Step5を設定してください。