ラインセンサカメラとエンコーダとの同期撮影方法

シェアする

  • このエントリーをはてなブックマークに追加
最近の記事
  • 10/21 【C#】寸法線の描画
  • 10/21 【C#】GraphicsPathの領域取得
  • 10/20 【C#】GraphicsPathの描画
  • 10/18 【C#】GraphicsPath
  • 10/17 【C#】Bitmap画像データの拡大縮小
  • 10/15 【C#】画像の座標系
  • 10/14 【C#】画像の上下左右反転、90,180,270度回転
  • 10/3 【C#】SplitContainerのPanel固定方法
  • 9/7 【Neural Network Console】学習データの出力方法
  • 9/3 Deep Learning向け学習画像撮り込みソフト公開
  • 9/1 【Neural Network Console】新規画像のDataset作成方法
  • 8/28 【Neural Network Console】GUI表示スケールの変更
  • 8/22 【Neural Network Console】CPU/GPU処理の設定切替
  • 8/21 【Neural Network Console】Learning Rate(学習率)の設定
  • 8/20 ソニーの無償AIソフト Neural Network Consoleの入手ダウンロード、インストール
  • 8/20 Deep Learning
  • 8/20
  • 8/19 古いバージョンのVisual Studio Community/Expressの入手ダウンロード
  • 8/19 CUDAの入手、ダウンロード、インストール方法
  • 8/17 【C#.NET】マイクロソフト仕様のアフィン変換
  • 8/5 【C#】ファイルを開くダイアログボックスの表示
  • 8/2 キャノンプリンターのCDトレイはどこ?!
  • 7/6 【参考書籍】画像処理・機械学習プログラミング OpenCV 3対応
  • 6/20 【Python,matplotlib】動くグラフをAnimationGifに保存する方法
  • 6/17 シグモイド関数の微分
  • 6/15 シグモイド関数
  • 6/13 合成関数の微分
  • 6/12 WordPressで数式エディタ風に数式を入力したい
  • 6/11 PythonをVisual Studioでインストールする方法
  • 6/9 【Python】OpenCVをAnacondaでインストール(Windows編)
  • 6/6 【Python】Anacondaで複数バージョンの環境切り替え
  • 6/6 画像センシング展2017に出展します。
  • 6/1 【Office365】Web版Outlookのフォントサイズ変更
  • 6/1 【Anaconda】モジュールのアップデートでエラー発生
  • 6/1 【Anaconda】コマンドリストの表示
  • 5/29 Windows10パソコン購入
  • 5/24 Anacondaのアンインストール
  • 5/24 【Jupyter Notebook】新規プログラムの作成
  • 5/23 【Python】開発環境の構築
  • 5/23 Pythonはじめました
  • 4/6 【Office365】Web版Outlookのスレッド表示を解除する方法
  • 4/5 【Excel】フーリエ解析(FFT)
  • 3/20 Canny edge detection
  • 3/20 【Excel2016】分析ツールの表示
  • 3/5 【Visual Studio】黒い背景色を白に変更する方法
  • 2/8 【Windows10】拡張モニタに表示されたウィンドウを元に戻す
  • 2/7 複素数の計算
  • 1/18 【Excel】棒グラフの横軸の目盛を0始まりにする
  • 1/16 【Excel】フーリエ変換
  • 1/6 【OpenCV】疑似カラー(カラーマップ)

  • ラインセンサカメラはラインセンサカメラ撮影システムでも紹介しているように、一般的にエンコーダを用いて同期撮影する事が多くあります。

    フォトセンサ等の外部トリガから各種ディレーの設定を行い、ラインごとのスキャンタイミングをエンコーダと同期撮影する場合は以下のようになります。

    (タイミングを制御するのはキャプチャボードの役目なので、各ボードメーカにより多少異なるかも?しれません。)

    ラインセンサカメラとエンコーダとの同期撮影方法

    ラインセンサではエンコーダパルスの指定パルス毎(上図:指定パルス数2)に撮影していきますが、外部トリガが入力されてから、実際に撮影を開始するまでの微調整をエンコーダパルス数(上図:指定パルス数1)で行い、粗調整をライン数(上図:指定ライン数)で行います。

    つまり、外部トリガが入力されてから、ラインセンサがスキャン開始するまでのエンコーダのパルス数(ディレイパルス数)は

    ディレイパルス数=指定パルス数+指定パルス数2×指定ライン数

    となります。

    このことからも分かるように、ラインセンサで画像を撮影した時の縦横比の調整代は上図の指定パルス数2の値で決まります。

    この事を考慮した上でエンコーダの分解能を選定下さい。

    ただし、エンコーダのパルス数は画像入力ボード側でエンコーダのカウント数をA相の立上りと立下りをカウントし、パルス数を2倍にする(2逓倍)ものや、A相の立上り、B相の立上り、A相の立下り、B相の立下りをカウントしパルス数を4倍にする(4逓倍)ものもあります。

    注意事項

    ■露光時間の設定について
    ラインスキャンの露光時間については、ラインのスキャン間隔(ライントリガ間隔)で決まるものと、スキャン間隔とは別に露光時間を設定できるものとがあり、露光時間を設定できるか、できないかは、使用するラインセンサカメラに依存します。

    ■ラインセンサカメラの同期撮影設定について
    ラインセンサカメラとエンコーダとを同期させるには、画像入力ボードからラインセンサカメラに同期信号を入力させる必要があります。そのためには、画像入力ボードとラインセンサカメラの両方の同期撮影設定が必要となります。

    同期撮影には外部同期内部同期という言葉があり、カメラを基準にしてカメラ外の信号に同期して撮影するのが外部同期、カメラ内で生成した信号に同期して撮影するのが内部同期と言います。

    外部同期は外部トリガ、内部同期はフリーラン自走モードなどとも言われる場合があります。

    ※ここでの外部トリガというのは、最初の図のフォトセンサからのトリガ信号ではなく、ラインスキャンの同期信号(ライントリガ)の事を差すので、混同しないようにご注意下さい。

    ■エンコーダのパルス選定について
    エンコーダのパルス分解能が高い程、ラインセンサカメラで撮影した時の画像の縦横比の調整がより微調整が可能となりますが、画像入力ボードに接続できるエンコーダ信号に最高周波数の制限がある場合が多いので、特に高速で撮影する場合などはご注意下さい。

    ■スキャンレートの設定について
    スキャンレート(ラインスキャンする間隔)は上図の指定パルス数2で設定する事ができますが、当然ながらカメラの最速スキャンレートよりも速い設定をする事はできません。
    特に高速でスキャンする場合、スキャンレートの設定は、画像の分解能のみならず、スキャン速度(時間)も考慮した上で設定して下さい。

    ■エンコーダパルスの安定性に関して
    エンコーダとラインセンサカメラを同期させて撮影するときは、できるだけエンコーダのパルスが安定(定速)した状態で撮影して下さい。モータの定速区間での撮影をオススメします。

    ラインセンサカメラとエンコーダとの同期撮影方法

    ■駆動モータにステッピングモータを用いる場合の注意点!
    駆動モータにステッピングモータを用いる場合、さらに注意が必要です。
    ステッピングモータの移動量を横軸に時間、縦軸に移動量(回転角度)を取ると下図のようになります。

    ラインセンサカメラとエンコーダとの同期撮影方法

    上図の丸の部分をパルスレベルで細かく見ると、下図のように階段状に回転角度が変化しています。
    これは、モータがステップ駆動なので、このようになるのですが、ステージの慣性モーメントや回転速度によっても、フラツキ具合は異なるので、一概には言えませんが、台形駆動の定速駆動であっても、パルスレベルでみると一定では無いという事に注意して下さい。

    ラインセンサカメラとエンコーダとの同期撮影方法

    さらに、これを踏まえた上で、エンコーダを使ってステージとラインセンサを同期させて撮影する事を考えます。
    エンコーダと同期してラインセンサで撮影するという事は、一定間隔の角度で1ラインごと撮影するという事となります。
    そこで、例えば下図のように赤の横線の間隔で撮影すると、青い線との交点の間隔(時間)でラインセンサ1ラインごとに撮影されるので、下図の縦線(オレンジの線)の間隔がラインセンサのスキャン間隔という事になります。

    ラインセンサカメラとエンコーダとの同期撮影方法

    ここで注意しないといけないのが、上図のようにスキャン間隔がバラついてしまうと、場合によってはラインセンサカメラの最速のスキャンレートよりもエンコーダ同期信号の間隔(時間)の方が短くなってしまう場合があり、撮影できないラインが発生してしまう場合があります。

    ラインセンサで撮影する場合、

    最速のスキャンレート(時間)<エンコーダ同期信号の間隔(時間)

    の条件を満たす事が必要です。

    ラインセンサカメラとエンコーダとの同期撮影方法

    そうならないためにも、ステッピングモータでの移動(回転)分解能に対して、ラインセンサの撮影分解能(スキャン間隔)は余裕を持ってラインセンサ(最速スキャンレート)、モータ、ステージ(移動分解能)を選定して下さい。

    このばらつき量はいろいろな条件が絡むので、一概には良く分かりませんが、経験値的にはモータ1パルスの±50%程度、ばらつく事を覚悟しておいた方が無難だと思います。

    この、ステッピングモータがカクカク動く現象はモータ業界では、振動や騒音という用語で表現されます。
    (参考)オリエンタルモータの技術資料 この↓資料のH-37ページを参照下さい。
    http://www.orientalmotor.co.jp/knowledge/technical/pdf/SteppingMotor_Tech.pdf

    振動が原因によりラインセンサで撮影できない現象が発生した場合、スキャン間隔(送り方向の撮影分解能、スキャンレート)は装置や検査の要求仕様などで決まってくるため、変えられないと思うので、マイクロステップ対応のモータドライバなどの低振動タイプのドライバの選定をするなどして、ステッピングモータの移動分解能に対してエンコーダ同期信号の分解能が大きくなるように設計して下さい。