(57)【要約】【課題】ワークを搬送する経路上の状態把握を支援するための情報を出力する。【解決手段】画像処理装置は、連続する撮像の前後で撮像範囲に重複領域を有する撮像部１１０に接続される画像処理装置であって、撮像部１１０によって得られる複数枚の撮像画像を受け付けるインターフェイスと、撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、複数枚の撮像画像を、前記重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ前記重なり範囲における前記被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、合成画像と、当該合成画像に関連付けて重なり範囲を示す情報とを出力する出力手段と、を備える。【選択図】図２
2013097514.tif 000002
【特許請求の範囲】
【請求項１】
連続する撮像の前後で撮像範囲に重複領域を有する撮像部に接続される画像処理装置であって、
前記撮像部によって得られる複数枚の撮像画像を受け付けるインターフェイスと、
前記撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、
前記複数枚の撮像画像を、前記重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ前記重なり範囲における前記被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、
前記合成画像と、当該合成画像に関連付けて前記重なり範囲を示す情報とを出力する出力手段と、を備える、画像処理装置。
【請求項２】
前記計測結果は、前記撮像画像における前記被写体に相関する図形であって、
前記合成手段は、
前記図形の少なくとも一部が、前記重なり範囲に含まれるか否かを判定する判定手段を、含み、
前記図形の少なくとも一部が、前記重なり範囲に含まれると判定されたとき、前記被写体の計測結果の画像を当該重なり範囲に重畳させた合成画像を生成する、請求項１に記載の画像処理装置。
【請求項３】
前記合成手段は、
連続する撮像によって得られる複数枚の撮像画像における、単位時間当たりの画像の移動量から、出力態様を決定する手段を、含み、
前記出力手段は、
決定された前記出力態様に基づき、前記合成画像の出力する、請求項１または２に記載の画像処理装置。
【請求項４】
前記合成画像を生成する場合に、生成に関するエラーを検出する手段と、
検出したエラーを処理する手段と、をさらに備える、請求項１から３のいずれかに記載の画像処理装置。
【請求項５】
前記エラーを検出する手段は、前記合成画像を生成するための撮像画像の不足を検出する、請求項４に記載の画像処理装置。
【請求項６】
前記出力手段は、前記合成画像における各撮像画像の出力態様を相違させる、請求項１から５のいずれかに記載の画像処理装置。
【請求項７】
外部からの操作を受け付ける操作入力部を、さらに備え、
前記出力手段は、
前記合成画像における前記操作入力部によって選択された撮像画像を拡大して出力する、請求項１から６のいずれかに記載の画像処理装置。
【請求項８】
前記操作入力部が受け付ける操作によって指示される計測結果を、各撮像画像に対応する前記計測結果のうちから選択する選択手段を、さらに備え、
前記出力手段は、
前記選択手段により選択された計測結果に対応する前記撮像画像と、当該撮像画像の前後で撮像された撮像画像とから成る合成画像を出力する、請求項７に記載の画像処理装置。
【請求項９】
前記出力手段は、
前記合成画像における撮像画像のうちから、対応する前記計測結果が予め指定された値を指示する撮像画像を選択して出力する、請求項１に記載の画像処理装置。
【請求項１０】
前記出力手段は、
前記合成画像における撮像画像のうち、撮像順が奇数番目の撮像画像に対応する前記計測結果と、偶数番目の撮像画像に対応する前記計測結果との出力態様を異ならせる、請求項１に記載の画像処理装置。
【請求項１１】
前記計測手段による計測処理の所要時間に関する情報を出力する手段を、さらに備える、請求項１に記載の画像処理装置。
【請求項１２】
前記所要時間に関する情報は、前記連続する撮像の前後の時間間隔に対する、撮像画像の計測処理の所要時間の比である、請求項１１に記載の画像処理装置。
【請求項１３】
前記合成画像の各撮像画像について前記比を取得し、
前記合成画像と、当該合成画像の各撮像画像に関連付けて前記比を出力する、請求項１２に記載の画像処理装置。
【請求項１４】
連続する撮像の前後で撮像範囲に重複領域を有する撮像部に接続されるコンピュータで実行される画像処理プログラムであって、
前記画像処理プログラムは、前記コンピュータを、
前記撮像部によって得られる複数枚の撮像画像を受け付けるインターフェイスと、
前記撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、
前記複数枚の撮像画像を、前記重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ前記重なり範囲における前記被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、
前記合成画像と、当該合成画像に関連付けて前記重なり範囲を示す情報とを出力する出力手段、として機能させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンベアトラッキング等に向けられた画像処理装置および画像処理プログラムに関する。
【背景技術】
【０００２】
ファクトリーオートメーション（ＦＡ）分野においては、省力化のため、画像処理を用いて各種の工程を制御する技術が多用されている。このような画像処理技術の適用例の一つとして、ベルトコンベア等の搬送装置によってワークを搬送するとともに、その搬送中のワークを移動機械（以下、「産業用ロボット」あるいは単に「ロボット」とも称す。）を用いて、追跡（トラッキング）および把持するような作業工程がある。このような作業工程は、コンベアトラッキング等と称される。
【０００３】
このコンベアトラッキングの技術においては、撮像装置を用いて搬送装置上のワークを撮像し、その撮像によって得られた画像に対して、画像処理装置を用いてパターンマッチングあるいは２値化処理などの計測処理を行うことで、各ワークの存在位置（座標値）を特定する。そして、この特定された各ワークの存在位置に基づいて、ロボットが各ワークを追跡および把持する。
【０００４】
例えば、特許文献１（特開２００２−１１３６７９号公報）は、搬送体によって搬送される複数のワークを撮像し、当該撮像結果から認識された各ワークの位置座標に基づいて複数のワークのハンドリングを制御するトラッキング方法を開示している。より具体的には、特許文献１に記載のトラッキング方法は、撮像手段による撮像領域とその直後の撮像領域とがワークの全形が収まる一定の幅で進行方向に重なるように連続的に撮像し、撮像領域内に全形を含むワークのみ位置座標を認識するという構成を採用する。
【０００５】
このように連続的に撮像された画像を用いて搬送経路上の全体の状態を俯瞰するためには、撮像領域の重なり部分を利用して合成したパノラマ画像を用いることが有効であると考えられる。
【０００６】
コンベアトラッキングに向けられたものではないが、オペレータが手に持ったカメラをパンしながら連続撮像した複数のフレームを繋ぎ合わせることにより、オペレータが撮像した範囲のパノラマ画像を生成する画像処理装置が特許文献２（特開平５−２６０２６４号公報）に開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−１１３６７９号公報
【特許文献２】特開平５−２６０２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献２の画像処理装置を用いて生成されるパノラマ画像は搬送装置上のワークを撮像したものではなく、ワークの計測情報とは何ら関連付されていない。
【０００９】
この発明の目的は、撮像画像を用いてワークを搬送する経路上の状態把握を支援するための情報を出力する画像処理装置および画像処理プログラムを提供することである。
【課題を解決するための手段】
【００１０】
この発明のある局面に従う、連続する撮像の前後で撮像範囲に重複領域を有する撮像部に接続される画像処理装置は、撮像部によって得られる複数枚の撮像画像を受け付けるインターフェイスと、撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、複数枚の撮像画像を、重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ重なり範囲における被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、合成画像と、当該合成画像に関連付けて重なり範囲を示す情報とを出力する出力手段と、を備える。
【００１１】
好ましくは、計測結果は、撮像画像における被写体に相関する図形であって、合成手段は、図形の少なくとも一部が、重なり範囲に含まれるか否かを判定する判定手段を、含み、図形の少なくとも一部が、重なり範囲に含まれると判定されたとき、被写体の計測結果の画像を当該重なり範囲に重畳させた合成画像を生成する。
【００１２】
好ましくは、合成手段は、連続する撮像によって得られる複数枚の撮像画像における、単位時間当たりの画像の移動量から、出力態様を決定する手段を、含み、出力手段は、決定された出力態様に基づき、合成画像の出力する。
【００１３】
好ましくは、画像処理装置は、合成画像を生成する場合に、生成に関するエラーを検出する手段と、検出したエラーを処理する手段と、をさらに備える。
【００１４】
好ましくは、上述のエラーを検出する手段は、合成画像を生成するための撮像画像の不足を検出する。
【００１５】
好ましくは、出力手段は、合成画像における各撮像画像の出力態様を相違させる。
好ましくは、画像処理装置は、外部からの操作を受け付ける操作入力部を、さらに備え、出力手段は、合成画像における操作入力部によって選択された撮像画像を拡大して出力する。
【００１６】
好ましくは、画像処理装置は、操作入力部が受け付ける操作によって指示される計測結果を、各撮像画像に対応する計測結果のうちから選択する選択手段を、さらに備え、出力手段は、選択手段により選択された計測結果に対応する撮像画像と、当該撮像画像の前後で撮像された撮像画像とから成る合成画像を出力する。
【００１７】
好ましくは、出力手段は、合成画像における撮像画像のうちから、対応する計測結果が予め指定された値を指示する撮像画像を選択して出力する。
【００１８】
好ましくは、出力手段は、合成画像における撮像画像のうち、撮像順が奇数番目の撮像画像に対応する計測結果と、偶数番目の撮像画像に対応する計測結果との出力態様を異ならせる。
【００１９】
好ましくは、画像処理装置は、計測手段による計測処理の所要時間に関する情報を出力する手段を、さらに備える。
【００２０】
好ましくは、所要時間に関する情報は、連続する撮像の前後の時間間隔に対する、撮像画像の計測処理の所要時間の比である。
【００２１】
好ましくは、合成画像の各撮像画像について比を取得し、合成画像と、当該合成画像の各撮像画像に関連付けて比を出力する。
【００２２】
この発明の他の局面に従えば、連続する撮像の前後で撮像範囲に重複領域を有する撮像部に接続されるコンピュータで実行される画像処理プログラムが提供される。
【００２３】
画像処理プログラムは、コンピュータを、撮像部によって得られる複数枚の撮像画像を受け付けるインターフェイスと、撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、複数枚の撮像画像を、重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ重なり範囲における被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、合成画像と、当該合成画像に関連付けて重なり範囲を示す情報とを出力する出力手段、として機能させる。
【発明の効果】
【００２４】
本発明によれば、オペレータは、ワークを搬送する経路上の状態把握をするための情報を取得できる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムの構成を示す模式図である。
【図２】本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。
【図３】本発明の実施の形態１に係る撮像画像処理のための機能構成について示す模式図である。
【図４】本発明の実施の形態１に係る撮像画像処理のためのデータの記憶内容示す模式図である。
【図５】本発明の実施の形態１に係るパノラマ画像の生成手順を説明するための図である。
【図６】本発明の実施の形態１に係る処理のメインフローチャートである。
【図７】本発明の実施の形態１のパノラマ画像を説明するための模式図である。
【図８】本発明の実施の形態１に係るパノラマ画像の表示態様の他の例を説明する図である。
【図９】本発明の実施の形態１に係るパノラマ画像のスクロールを説明する図である。
【図１０】本発明の実施の形態２に係る処理のメインフローチャートである。
【図１１】本発明の実施の形態２に係るパノラマ画像の表示態様を説明する図である。
【図１２】本発明の実施の形態２に係るパノラマ画像の表示態様を説明する図である。
【図１３】本発明の実施の形態２に係るパノラマ画像の表示態様を説明する図である。
【図１４】本発明の実施の形態２に係るパノラマ画像の表示態様を説明する図である。
【図１５】本発明の実施の形態２に係るパノラマ画像の表示態様を説明する図である。
【図１６】本発明の実施の形態２に係るパノラマ画像の表示態様を説明する図である。
【図１７】本発明の実施の形態２に係るパノラマ画像の表示態様を説明する図である。
【図１８】本発明の実施の形態２に係る計測結果を閾値を用いて表示するための画面を例示する図である。
【図１９】本発明の実施の形態２に係る計測結果を閾値を用いて表示するための画面を例示する図である。
【図２０】本発明の実施の形態２に係る重複計測排除のためのパノラマ画像の例を示す図である。
【図２１】本発明の実施の形態２に係る撮像間隔に対する計測処理時間の比を表示する画面例を示す図である。
【図２２】本発明の実施の形態２に係るパラメータ変更のための画面例を示す図である。
【図２３】本発明の実施の形態２に係る撮像パラメータの変更処理のフローチャートである。
【図２４】本発明の実施の形態３に係るキャリブレーションを説明するための図である。
【図２５】本発明の実施の形態３に係るキャリブレーションによって取得されるパラメータセットの一例を示す図である。
【図２６】本発明の実施の形態３に係るキャリブレーションの手順を説明するための図である。
【図２７】本発明の実施の形態３に係るキャリブレーションの手順を説明するための図である。
【図２８】本発明の実施の形態３に係るキャリブレーションの手順を説明するための図である。
【図２９】本発明の実施の形態４に係る処理フローチャートである。
【図３０】本発明の実施の形態４に係る撮像画像処理のための機能構成について示す模式図である。
【図３１】本発明の実施の形態４に係る画像に計測結果を重ね合わせる処理概要を説明する図である。
【図３２】本発明の実施の形態４に係る画像に計測結果を重ね合わせる処理を説明する図である。
【図３３】本発明の実施の形態４に係る画像に計測結果を描画するか否かの判定を説明する図である。
【図３４】本発明の実施の形態４に係るパノラマ画像の表示態様を説明する図である。
【図３５】本発明の実施の形態４に係るパノラマ画像の表示態様を説明する図である。
【図３６】本発明の実施の形態４に係るパノラマ画像の表示態様を説明する図である。
【図３７】本発明の実施の形態４に係るパノラマ画像の表示態様を説明する図である。
【図３８】本発明の実施の形態４に係るパノラマ画像の表示の一例を示す図である。
【図３９】本発明の実施の形態４に係るパノラマ画像の表示の他の例を示す図である。
【図４０】本発明の実施の形態５に係るサポート装置のハードウェア構成を示す模式図である。
【発明を実施するための形態】
【００２６】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２７】
［実施の形態１］
図１は、本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムの構成を示す模式図である。図１に示すコンベアトラッキングシステムは、２つの搬送装置（コンベア）１０および２０を含む。コンベア１０および２０は、それぞれ駆動ローラ１２および２２によって回転駆動される。以下では、コンベア１０および２０をそれぞれライン１およびライン２とも称す。図１に示す例では、ライン１は、紙面右側に移動し、ライン２は、紙面左側に移動する。ライン１には、搬出装置３０等によって紙面左側からワークＷがランダムに提供される。このライン１上のワークＷは、紙面左側から紙面右側へ移動する。ワークＷとしては、典型的には、お菓子等の食品や各種の錠剤等が想定される。
【００２８】
本実施の形態に係る視覚センサ１００は、ライン１上の予め定められた位置に設けられる。視覚センサ１００は、ワークなどの被写体を撮像するための撮像部と当該撮像部によって撮像された画像を処理するための撮像画像処理部とを一体的に構成したものである。ただし、撮像部と撮像画像処理部とを別体として構成してもよい。
【００２９】
視覚センサ１００は、その撮像視野がライン１の幅方向（搬送方向とは直交する方向）の全体を含むように設定されている。撮像視野は、撮像部（カメラ）の画角（または視野角）の設定を用いて決定することができる。本明細書では、撮像視野は、撮像部で撮像され得る範囲に相当し『撮像範囲』と呼ぶこともある。
【００３０】
上述の撮像範囲となるように設置された視覚センサ１００が、予め定められた周期で連続的に撮像を行うことで、ライン１上をランダムに流れてくるワークＷを順次撮像できる。視覚センサ１００は、この順次撮像される画像に対してパターンマッチング等の計測処理を行うことで、各ワークの位置決めおよびトラッキング処理を行う。このように、視覚センサ１００の撮像部（後述の図２に示す撮像部１１０）は、搬送装置であるコンベア１０上を搬送されるワークＷを撮像するように配置されている。そして、この撮像部１１０には、撮像画像を処理するための撮像画像処理部１２０（後述の図２を参照）が接続される。
【００３１】
ライン１の搬送方向には、視覚センサ１００の下流側に、ワークＷを把持してライン２へ移動させるロボット３００が配置されている。このロボット３００は、ワークＷを把持するためのアームを有しており、このアームを目的位置に移動させることで、ライン１上のワークを把持する。すなわち、ロボット３００は、搬送装置であるコンベア１０（ライン１）の搬送経路において、視覚センサ１００の撮像部の撮像範囲より下流側に配置されるとともにワークＷを取り扱う移動機械に相当する。より具体的には、ロボット３００は、そのアームを目的のワークＷに位置決めして、ピックアップしてライン２上に整列する。
【００３２】
さらに、ロボット３００は、ライン１に沿って移動するための移動機構（図示せず）上に配置されており、所定の範囲に亘って移動する。このロボット３００の移動範囲をトラッキング範囲とも称す。
【００３３】
ロボット３００のトラッキング処理および位置決め処理については、ライン１に設けられたエンコーダ１４による検出結果を用いて制御される。このエンコーダ１４は、典型的には、ロータリーエンコーダが採用され、回転に伴ってパルス信号を発生する。この発生するパルス信号のパルス数をカウントすることで、コンベア１０（ライン１）と連結されたローラの回転数、すなわち、エンコーダ１４が発生するパルス信号は、搬送装置であるコンベア１０の搬送経路における移動量を示す信号に相当し、このパルス信号に基づいて、コンベア１０の移動量が算出される。
【００３４】
ロボット３００は、ロボット制御装置２００からの指示に従って動作する。すなわち、ロボット制御装置２００は、移動機械であるロボット３００を制御するための制御装置である。ロボット制御装置２００は、視覚センサ１００とネットワークＮＷを介して接続されており、視覚センサ１００によって検出された各ワークＷの位置に基づいて、ロボット３００に対してワークＷの把持動作に必要な指示を与える。
【００３５】
ネットワークＮＷには、視覚センサ１００およびロボット制御装置２００に加えて、操作表示装置５００、およびパーソナルコンピュータに相当する機能を有するサポート装置６００が接続されている。操作表示装置５００は、視覚センサ１００からの処理結果やロボット制御装置２００からのロボット３００の動作状態などを表示するとともに、ユーザからの操作に応答して、視覚センサ１００および／またはロボット制御装置２００へ各種の指示を与える。
【００３６】
図１に示すコンベアトラッキングシステムにおいては、生産性を向上するために、ライン速度（搬送速度）をより高めたいという潜在的なニーズが存在する。このようなニーズに対処するため、本実施の形態に係るコンベアトラッキングシステムにおいては、エンコーダ１４が発生するパルス信号をロボット制御装置２００だけではなく、視覚センサ１００にも入力するという構成を採用する。このように、視覚センサ１００およびロボット制御装置２００が同期して対象の搬送装置（コンベア）の位置情報を取得することで、ロボット制御装置２００と視覚センサ１００との間のネットワークＮＷを介した通信による同期をとった動作が可能となる。ここでは、ロボット制御装置２００と視覚センサ１００との間での同期をとった動作制御に関する詳細は略す。
【００３７】
＜撮像動作と移動量＞
次に、図１に示すコンベアシステムにおける視覚センサ１００の撮像動作と移動量の関係について説明する。
【００３８】
視覚センサ１００は、ライン１を撮像する。視覚センサ１００の撮像動作は、ロボット制御装置２００からの撮像指示に応じて開始される。この撮像指示は、視覚センサ１００とロボット制御装置２００とを接続するネットワークＮＷ経由で搬送される。このネットワークＮＷは、典型的には、イーサネット（登録商標）などの汎用的なネットワークを採用することができる。
【００３９】
視覚センサ１００は、撮像指示をロボット制御装置２００から受信するように構成されており、この撮像指示に応答して撮像を開始する。これにより、視覚センサ１００は、撮像視野を写した画像を順次取得する。そして、視覚センサ１００は、当該画像に対して計測処理を実行する。さらに、視覚センサ１００は、この計測処理によって得られた各ワークＷの撮像時の位置情報をロボット制御装置２００へ送信する。このように、視覚センサ１００は、撮像部の撮像によって得られた画像に対して計測処理を行うことで、画像中の予め登録されたワークに対応する領域の位置情報を取得する。
【００４０】
より具体的には、ロボット制御装置２００は、エンコーダ１４からのパルス信号に含まれるパルス数をカウントし、予め定められた値以上の数のパルスが入力されたタイミングで、ネットワークＮＷを経由して視覚センサ１００に対して撮像指示を送出する。
【００４１】
視覚センサ１００からの各ワークＷの位置情報は、ネットワークＮＷを介してロボット制御装置２００へ送信される。ロボット制御装置２００は受信する位置情報を用いて、ロボット３００に対して把持動作に必要な指示を与える。ここでは、ロボット３００の把持動作に関する詳細は略す。
【００４２】
ライン１に設けられたエンコーダ１４の検出結果に応じて生成されるパルス信号は、視覚センサ１００およびロボット制御装置２００へ入力されるように構成されている。視覚センサ１００およびロボット制御装置２００は、パルス信号に含まれるパルス数をカウントするためのエンコーダカウンタをそれぞれ有している。エンコーダ１４からのパルス信号は、並列的に、視覚センサ１００およびロボット制御装置２００に入力されるので、それぞれのエンコーダカウンタを同じタイミングで初期化（カウンタリセット）しておけば、その後に入力されるパルス信号についてのカウンタ値は、互いに同じ値、すなわち、カウンタ値についての同期をとることができる。
【００４３】
より具体的には、視覚センサ１００およびロボット制御装置２００には、いずれも、エンコーダ１４からのパルス信号に含まれる１パルスあたりのコンベアの移動量が予め設定されている。さらに、視覚センサ１００およびロボット制御装置２００のそれぞれのエンコーダカウンタについても、互いに同一のパラメータ（カウンタ最大値、カウンタ最小値、１パルスに対する増加値など）が設定されている。すなわち、視覚センサ１００のエンコーダカウンタは、ロボット制御装置２００のエンコーダカウンタとの間で、カウントに関して同一のパラメータが設定されている。
【００４４】
また、これらのエンコーダカウンタによるカウンタ値は、生産ラインの稼動前に０に初期化される。すなわち、視覚センサ１００のエンコーダカウンタは、パルス信号に含まれるパルス数のカウント開始前に、ロボット制御装置２００のエンコーダカウンタとともに、リセットされる。
【００４５】
このように本実施の形態においては、視覚センサ１００とロボット制御装置２００との間でコンベア１０の搬送経路における移動量を同期して保持する手段が実現される。
【００４６】
＜ハードウェア構成＞
図２は、本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。図２を参照して、視覚センサ１００は、撮像部１１０と、撮像画像処理部１２０とを含む。撮像画像処理部１２０は操作表示装置５００と通信する。ここでは、ロボット制御装置２００およびサポート装置６００の図示を略している。
【００４７】
図２では、撮像部１１０から、撮像によって得られた撮像画像を受理して処理する画像処理装置は、撮像画像処理部１２０と操作表示装置５００とを含んで構成される。なお、操作表示装置５００の機能をサポート装置６００が備えてもよい。この場合には、画像処理装置は、撮像画像処理部１２０の機能とサポート装置６００の機能とを含んで構成される。
【００４８】
撮像部１１０は、撮像視野に存在する被写体を撮像する装置であり、主体たる構成要素として、レンズや絞りなどの光学系と、ＣＣＤ（Charge Coupled Device）イメージセンサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどの受光素子とを含む。撮像部１１０は、撮像画像処理部１２０からの指令に従って撮像するとともに、その撮像によって得られた画像データを撮像画像処理部１２０へ出力する。
【００４９】
撮像画像処理部１２０は、ＣＰＵ（Central Processing Unit）１２２と、メモリ１２４と、撮像制御部１２６と、通信インターフェイス（Ｉ／Ｆ）１２８と、入出力インターフェイス（Ｉ／Ｆ）１３０と、エンコーダカウンタ１３２と、着脱自在の記録媒体の一例であるＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）１３６が装着されるメモリインターフェイス（Ｉ／Ｆ）１３５とを含む。これらのコンポーネントは、バス１３４を介して互いにデータ通信可能に接続されている。
【００５０】
ＣＰＵ１２２は、撮像画像処理部１２０において主たる演算を行うプロセッサである。メモリ１２４は、ＣＰＵ１２２によって実行される各種プログラム、撮像部１１０によって撮像された画像データ、各種パラメータなどを格納する。典型的には、メモリ１２４は、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性記憶装置と、ＦＬＡＳＨメモリなどの不揮発性記憶装置とからなる。
【００５１】
撮像制御部１２６は、ＣＰＵ１２２などからの内部コマンドに従って、接続されている撮像部１１０における撮像動作を制御する。撮像制御部１２６は、撮像部１１０に対して各種コマンドを送信するインターフェイスと、撮像部１１０からの画像データを受信するインターフェイスとを有している。
【００５２】
通信インターフェイス１２８は、操作表示装置５００との間で各種データをやり取りする。典型的には、視覚センサ１００および操作表示装置５００とはイーサネット（登録商標）を介して接続されており、通信インターフェイス１２８は、このようなイーサネット（登録商標）に準拠したハードウェアである。
【００５３】
入出力インターフェイス１３０は、撮像画像処理部１２０から外部へ各種信号を出力し、あるいは、外部からの各種信号を入力する。特に、入出力インターフェイス１３０は、エンコーダ１４で生成されるパルス信号を受け入れ、その信号をデジタル信号に変換してエンコーダカウンタ１３２へ出力する。
【００５４】
エンコーダカウンタ１３２は、エンコーダ１４からのパルス信号に含まれるパルス数をカウントし、カウント値を出力する。このエンコーダカウンタ１３２は、基本的には、ＣＰＵ１２２の演算サイクルとは独立して動作するため、エンコーダ１４からのパルス信号に含まれるパルス数を取り逃すことがない。
【００５５】
一方、操作表示装置５００は、メモリ５２０を含む演算処理部５１０と、通信インターフェイス（Ｉ／Ｆ）５２８と、入出力インターフェイス（Ｉ／Ｆ）５５０と、液晶などからなる外部のディスプレイ５０２の表示動作を制御する表示コントローラ５４０と、オペレータが操作するボタン，スイッチなどからなる操作部５０３からの操作を受付ける入力インターフェイス（Ｉ／Ｆ）５５０と、着脱自在の記録媒体の一例であるメモリカード５３１が装着されるメモリインターフェイス（Ｉ／Ｆ）５２９とを含む。これら各部は、表示用ＤＳＰ（Digital Signal Processor）など各種プロセッサを用いて構成される。
【００５６】
ここでは、ディスプレイ５０２と操作部５０３を個別にしているが、両者が一体的に構成された、いわゆるタッチパネルで提供されてもよい。
【００５７】
演算処理部５１０は、視覚センサ１００からの画像データを受信し、受信した画像データを用いて表示コントローラ５４０を制御することにより、ディスプレイ５０２に画像を表示させ、また操作部５０３のオペレータ操作による指示を入力インターフェイス５５０を介して入力する。メモリ２２０には、視覚センサ１００から受信する画像データが格納される。また、視覚センサ１００の計測処理によって検出されたそれぞれのワークＷの計測結果などの情報が格納される。
【００５８】
通信インターフェイス（Ｉ／Ｆ）５２８は、視覚センサ１００の撮像画像処理部１２０との間で各種データをやり取りする。典型的には、視覚センサ１００および操作表示装置５００とはイーサネット（登録商標）を介して接続されており、通信インターフェイス５２８は、このようなイーサネット（登録商標）に準拠したハードウェアである。
【００５９】
＜機能構成＞
図３は、本発明の実施の形態１に係る撮像画像処理のための機能構成について示す模式図である。図４は、本発明の実施の形態１に係る撮像画像処理のためのデータの記憶内容示す模式図である。
【００６０】
図３に示す各機能は、撮像画像処理部１２０のＣＰＵ１２２がメモリ１２４に予め格納されたプログラムを実行することにより実現されると想定するが、各機能は、プログラムのみならず、プログラムと回路の組合せで実現されてもよい。
【００６１】
撮像画像処理部１２０で実行される各種プログラムは、ＣＤ−ＲＯＭ１３６に格納されて流通する。このＣＤ−ＲＯＭ１３６に格納されたプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ機能を有するメモリインターフェイス１３５によって読取られ、メモリ１２４などへ格納される。あるいは、上位のホストコンピュータなどからネットワークＮＷを通じてプログラムをダウンロードするように構成してもよい。
【００６２】
本実施の形態では、ライン１上をワークＷが搬送される状態において、撮像部１１０が撮像範囲を連続的に撮像して取得される各画像データを重なり合わせながら繋げることにより、ライン１上の上流から下流までの全景に対応する画像を生成する。この全景に対応する画像を、パノラマ画像と称する。
【００６３】
ＣＰＵ１２２は、パノラマ画像のための処理機能を有する。具体的には、撮像画像についてワークの計測処理を実行する計測処理部２２１、パノラマ画像の画像どうしの重なり範囲を取得するための重なり取得部２２２、重なり範囲で画像どうしが重なり合うようなパノラマ画像を生成するための画像生成部２２３、撮像間隔に対する計測処理の所要時間の比を取得するための比取得部２２５、各種のパラメータ（パラメータの種類および／または値）を更新するためのパラメータ更新部２２６、およびパノラマ画像を各撮像画像に分割する画像分割部２２９を備える。
【００６４】
パラメータ更新部２２６は、計測処理に係るパラメータを更新するための計測パラメータ更新部２２７、および撮像間隔に係るパラメータを更新するための撮像パラメータ更新部２２８を含む。
【００６５】
上述の計測処理には、典型的には、予め登録されたワークＷについてのモデル画像に基づくパターンマッチングを用いたサーチ処理がある。サーチ処理では、ワークＷの特徴部分を画像パターン（モデル）として予め登録しておき、入力画像のうち、当該予め登録されているモデルと最も似ている部分を入力画像から探し出す処理である。このとき、モデルと最も似ている部分の位置・傾き・回転角度や、モデルに対してどの程度似ているかを示す相関値などが算出される。また、ラベリング処理を適用するとした場合には、予め登録したモデルまたは表示属性（色など）と一致している部分を入力画像から探し出し、当該探し出した部分にラベル（番号）を付与する。これらの番号を利用することで、番号の指定に応答して、指定された部分の面積や重心位置を算出したりする。
【００６６】
ここでは、計測処理部２２１は、パターンマッチングによって算出されるワークＷの位置と相関値を、計測結果として出力し、また、計測処理のパラメータ（種類，値）は、相関値を算出するための相関係数の種類または値を指すと、想定する。
【００６７】
図４を参照して、メモリ１２４には、撮像部１１０から出力される撮像画像の画像データ３３３と、各画像データ３３３に対応して関連データが格納されるテーブル３３１と、パノラマ画像データ３３２と、撮像パラメータ３５０とを含むデータが格納される。
【００６８】
テーブル３３１は、撮像毎に取得される撮像画像の画像データ３３３に対応する関連データは、当該画像データ３３３についての計測処理による計測結果３３４、ずれ量３３５、当該画像データを撮像時に入力するエンコーダカウンタによるカウンタ値３３６、当該画像データについての計測処理のパラメータ（種類および値）３３７、および後述する撮像間隔３３９を含む。計測結果３３４は、対応する画像データ３３３を計測処理部２２１によって計測処理した場合に取得される相関値および画像座標位置などを含む。パラメータ３３７は、相関値等を算出するための相関係数の種類または値を指す。
【００６９】
＜パノラマ画像の生成処理＞
図５は、本発明の実施の形態１に係るパノラマ画像の生成手順を説明するための図である。図５を参照して、画像生成部２２３によるパノラマ画像の生成処理について説明する。
【００７０】
パノラマ画像は、公知のパノラマ合成技術を使用して生成してもよいが、ここでは、エンコーダカウンタによるカウンタ値３３６を用いたパノラマ画像の生成処理を説明する。
【００７１】
パノラマ画像の生成に先立って、重なり取得部２２２により、各画像データ３３３についてずれ量３３５が取得されて、テーブル３３１に格納される。具体的には、重なり取得部２２２は、撮像時のエンコーダカウンタ１３２からカウンタ値３３６を取得し、撮像画像の画像データ３３３と関連付けてテーブル３３１に格納する。このように、撮像画像が取得される毎に、画像データ３３３とカウンタ値３３６が取得されてテーブル３３１に格納される。
【００７２】
重なり取得部２２２によるずれ量３３５の取得手順について説明する。エンコーダカウンタ１３２によるカウンタ値１パルス当りのコンベアのライン１上での移動量を表す移動量ベクトルをＥｐｃ＝（Ｘｐ，Ｙｐ）とする。また、撮像画像の画像データ３３３の１ピクセル当りの変換係数：Ｒ［ｍｍ／ｐｉｘ］は予め決定されて、メモリ１２４に格納されているとする。この場合、カウンタ値３３６の１パルス当りの画像上での移動量ベクトルはＥｐｐ＝（Ｘｐ／Ｒ，Ｙｐ／Ｒ）と規定することができる。なお、本実施の形態では、説明を簡単にするために、Ｅｐｃ＝（Ｘｐ，０）とする。
【００７３】
ここで、図５を参照して、Ｎ枚目の画像データ３３３の撮像時のカウンタ値３３６をＴ（ｎ）とし、（Ｎ＋１）枚目の画像データ３３３の撮像時のカウンタ値３３６をＴ（ｎ＋１）とすると、Ｎ枚目と（Ｎ＋１）枚目の画像のずれ量Ｍは、Ｍ＝（Ｔ（ｎ＋１）−Ｔ（ｎ））×Ｅｐｐと算出することができる。
【００７４】
したがって、重なり取得部２２２は、テーブル３３１から読出したカウンタ値３３６を用いてＮ枚目と（Ｎ＋１）枚目の画像データ３３３のずれ量Ｍを算出することができる。算出されたずれ量Ｍは、ずれ量３３５としてテーブル３３１に格納される。テーブル３３１の画像データ３３３について、画像データＤ（ｉ）に対応するずれ量３３５は、画像データＤ（ｉ＋１）とのずれ量Ｍに相当する。
【００７５】
＜パノラマ画像の生成＞
画像生成部２２３による、パノラマ画像の生成について説明する。ＣＰＵ１２２が操作表示装置５００からモニタ指示を受信する都度、画像生成部２２３はパノラマ画像を生成する。
【００７６】
テーブル３３１には、撮像部１１０により撮像されて取得される画像データ３３３が、撮像の順番に従って順次に格納される。パノラマ画像生成時には、テーブル３３１にパノラマ画像を生成するために必要な数の画像データ３３３が格納されていると想定する。
【００７７】
画像生成部２２３は、モニタ指示を受信すると、テーブル３３１からＮ枚目と（Ｎ＋１）枚目の画像データ３３３とを順に読出し、すなわち撮像順に従って読出し、読出した順に従って画像データ３３３を、メモリ１２４の予め定められた領域に配列する。この処理を繰返すことにより、連続して撮像された複数枚（具体的には２枚以上）の画像データ３３３からなるパノラマ画像データ３３２が生成される。
【００７８】
パノラマ画像データ３３２は、パノラマ画像を生成するのに用いた複数の画像データ３３３とともに、テーブル３３１から読出された各画像データ３３３に関連する計測結果３３４および、ずれ量３３５を含み、さらに、当該画像のパノラマ画像における位置３３８、および比３４０のデータを含む。なお、比３４０の詳細は後述する。
【００７９】
画像生成部２２３は位置３３８を次のように決定する。つまり、ここでは、パノラマ画像のサイズは、ディスプレイ５０２のサイズに応じたサイズに予め決められており、また、画像データ３３３のサイズも予め決められている。したがって、パノラマ画像を構成する画像データ３３３の枚数が決まると、各画像データ３３３のパノラマ画像における位置は、ずれ量３３５により一意に決定される。
【００８０】
画像生成部２２３は、パノラマ画像データ３３２を生成する都度、生成に用いた複数の画像データ３３３のうち、最後に読出した、すなわち最も最近に撮像された画像データ３３３を指示するポインタ３６０をテーブル３３１に設定する。
【００８１】
画像生成部２２３は、次回にモニタ指示を入力すると、ポインタ３６０が指示する画像データ３３３の次位以降に格納される画像データ３３３を用いて、次の新たなパノラマ画像のデータを生成する。
【００８２】
＜メインフローチャート＞
図６は、本発明の実施の形態１に係る処理のメインフローチャートである。図７は、本発明の実施の形態１のパノラマ画像を説明するための模式図である。図７では、上段の撮像画像の画像データ３３３それぞれを、撮像された順番で対応するずれ量３３５に従って重ね合わせることにより、下段のパノラマ画像が生成される。各画像データ３３３には、ライン１上を搬送されるワークの画像６０が含まれている。パノラマ画像には、各画像データとともに、各画像データについての計測処理結果の画像６１と、重ね合わせ領域の画像６２がオーバーレイ（重畳）されて同時表示される。
【００８３】
ここでは、計測処理結果は画像６１で表示したが、パノラマ画像と関連付けて表示する
場合には、重畳される画像に限定されず個別のグラフ，数値などで表示してもよい。また、重ね合わせ領域は画像６２で重畳して表示するとしたが、重畳する態様に限定されず、パノラマ画像に関連付けて表示する態様であればよい。図７のパノラマ画像の生成および表示手順については、図６のフローチャートを参照して説明する。
【００８４】
ここでは、テーブル３３１には、撮像部１１０の撮像により取得された複数の画像データ３３３と、各画像データ３３３に対応して関連データが格納されていると想定する。
【００８５】
まず、ＣＰＵ１２２は、テーブル３３１から、画像生成部２２３によって生成されたパノラマ画像データ３３２を読出し、操作表示装置５００に送信する。これにより、操作表示装置５００の演算処理部５１０は、通信インターフェイス５２８を介してパノラマ画像データ３３２を受信する（ステップＳ１）。受信したパノラマ画像データ３３２は、メモリ５２０に格納される。
【００８６】
演算処理部５１０は、メモリ５２０から、パノラマ画像データ３３２の各画像データ３３３を、関連付けされたずれ量３３５と位置３３８に従って、ディスプレイ５０２に重ね合わせて表示する（ステップＳ２）。これにより、ディスプレイ５０２にはパノラマ画像が表示される。
【００８７】
次に、演算処理部５１０は、メモリ５２０から各画像データ３３３に関連付けされた計測結果３３４を読出し、計測結果３３４に基づく画像６１をディスプレイ５０２のパノラマ画像上に表示する（ステップＳ３）。画像６１の表示位置は、計測結果３３４に含まれる画像座標位置により決定することができる。また、パノラマ画像上に、画像データ３３３どうしの重ね合わせ領域を表す画像６２を同時表示する（ステップＳ３）。
【００８８】
オペレータは、操作部５０３を用いてモニタ継続の操作または中止の操作をする。入力インターフェイス５５０は当該操作に応じてモニタ継続または中止の指示を受付けて出力する。演算処理部５１０は、入力した指示に基づき、モニタ継続または指示を判定する（ステップＳ４）。
【００８９】
中止と判定すると（ステップＳ４でＹＥＳ）、一連の処理は終了するが、継続と判定すると（ステップＳ４でＮＯ）、処理はステップＳ１に戻る。これにより、演算処理部５１０は、通信インターフェイス５２８を介して、撮像画像処理部１２０にモニタ指示を送信する。
【００９０】
撮像画像処理部１２０の画像生成部２２３は、受信したモニタ指示に応答して、次のパノラマ画像データ３３２を生成する。以降は、新たに生成されたパノラマ画像データ３３２について、ステップＳ１以降の処理が同様に行われるので、オペレータはディスプレイ５０２に表示される新たなパノラマ画像を用いてライン１をモニタすることができる。
【００９１】
ディスプレイ５０２には、図７の下段のようなパノラマ画像が表示されることから、オペレータは計測処理結果の画像６１と、重ね合わせ領域の画像６２を同時に確認することができる。画像６０，６１を確認することで、ワークを視覚センサ１００により検出することができているかを確認することができる。
【００９２】
また、オペレータは、重ね合わせ領域の画像６２を確認することで、撮像間隔を確認することができるため、ワークを検出できない原因が計測処理に拠るのか、または撮像間隔に拠るのかを判断することができる。
【００９３】
＜他の表示態様＞
本実施の形態１におけるパノラマ画像の表示態様は、図７に示すものに限定されず、次のような表示態様であってもよい。
【００９４】
図８は、本発明の実施の形態１に係るパノラマ画像の表示態様の他の例を説明する図である。パノラマ画像の表示態様は、図８（Ａ）に示すようにワークの画像６０に関連付けて計測処理結果に基づく画像６１を表示するとともに、重ね合わせ領域の画像６２を太線枠で囲むものとしてもよい。また、画像６１は計測処理結果の値（相関値）に応じて色分けして表示してもよい。
【００９５】
また、図８（Ｂ）に示すように、重ね合わせ領域の画像６２は当該領域を予め定められた色６３で表示してもよい。また、図８（Ｃ）に示すように、パノラマ画像においてずれ量Ｍで重ね合わされた一連の画像について、Ｎ枚目と（Ｎ＋１）枚目、換言すると奇数番目の画像と偶数番目の画像とは、表示態様を相違させてもよい。たとえば、背景色６４を異ならせて表示してもよい。
【００９６】
＜スクロール表示＞
図９は、本発明の実施の形態１に係るパノラマ画像のスクロールを説明する図である。図９では、ディスプレイ５０２の表示領域は、パノラマ画像の表示領域７２と、スライドバー７０の表示領域と、選択画像７３の表示領域とを含む。
【００９７】
領域７２では、紙面横方向に複数枚の画像が一列に並んだパノラマ画像が表示されており、スライドバー７０の延びる方向は、当該画像列が延びる方向に一致する。オペレータは、スライドバー７０上のスライダ７１をスライド操作する。スライダ７１の移動量（移動方向、移動距離）は入力インターフェイス５５０を介して演算処理部５１０により検出されて、演算処理部５１０は、検出した移動量に係るスクロール指示を表示コントローラ５４０に出力する。表示コントローラ５４０は、スクロール指示に係る移動量に従って、領域７２の画像（パノラマ画像）を移動させて、すなわちスクロールさせて表示する。
【００９８】
ここでは、スクロール可能なように、メモリ５２９には、十分な枚数の画像データ３３３からなるパノラマ画像データ３３２が格納されているものと想定する。
【００９９】
また、オペレータは、領域７２に表示されたパノラマ画像における複数の画像のうちから所望の画像を、操作部５０３を介したクリック操作などで選択することができる。選択操作がされると、演算処理部５１０は、入力インターフェイス５５０を介してクリック操作によるクリック位置を検出する。そして、検出したクリック位置とパノラマ画像データ３３２の位置３３８とに基づき、選択された画像に対応する画像データ３３３を、選択画像７３として拡大して表示する。
【０１００】
［実施の形態２］
次に、実施の形態２について説明する。本実施の形態では、オペレータが画像処理における各種パラメータを変更するのに好適な例を説明する。
【０１０１】
図１０は、本発明の実施の形態２に係る処理のメインフローチャートである。図１０の処理では、計測処理に係るパラメータが変更される。
【０１０２】
まず、ＣＰＵ１２２は、テーブル３３１から、画像生成部２２３によって生成されたパノラマ画像データ３３２を読出し、操作表示装置５００に送信する。これにより、操作表示装置５００の演算処理部５１０は、通信インターフェイス５２８を介してパノラマ画像データ３３２を受信する（ステップＳ１ａ）。受信したパノラマ画像データ３３２は、メモリ５２０に格納される。
【０１０３】
次のステップＳ２およびＳ３では、実施の形態１と同様に、ディスプレイ５０２にパノラマ画像が表示され、パノラマ画像に計測処理結果の画像６１と、重ね合わせ領域の画像６２がオーバーレイされて同時表示される。
【０１０４】
オペレータは、計測処理のパラメータを変更する場合には、操作部５０３を操作して、パラメータを変更するための情報を入力する（ステップＳ４ａ）。具体的には、パラメータの種類と、変更後の値とを指示する情報を入力する。
【０１０５】
パラメータを変更するための情報は、演算処理部５１０から、通信インターフェイス５２８を介して撮像画像処理部１２０に送信される。
【０１０６】
撮像画像処理部１２０はパラメータを変更するための情報を受信する。計測パラメータ更新部２２７は受信した情報を用いて、計測処理のためのパラメータ（種類，値など）を更新し、更新後のパラメータを計測処理部２２１に出力する。
【０１０７】
計測処理部２２１は、更新後のパラメータを用いて、表示中のパノラマ画像の各画像データ３３３について計測処理を行う。そして、その計測結果を用いて、メモリ１２４のパノラマ画像データ３３２の各画像データ３３３に関連する計測結果３３４を更新する（ステップＳ５）。これにより、メモリ１２４のパノラマ画像データ３３２は、更新後のパラメータを用いた計測処理による計測結果３３４を有するデータに編集（更新）された状態となる。
【０１０８】
オペレータは、編集後のパノラマ画像の確認を希望する場合には、操作部５０３を介して編集結果の確認要求の操作をする。確認の操作がされると、演算処理部５１０は、操作に応じて確認指示を入力する。
【０１０９】
演算処理部５１０は、確認指示が入力されないと判定すると（ステップＳ６でＹＥＳ）、一連の処理を終了させる。一方、入力したと判定すると（ステップＳ６でＮＯ）、演算処理部５１０は、撮像画像処理部１２０に対して確認指示を送信する。
【０１１０】
撮像画像処理部１２０では、ＣＰＵ１２２は確認指示を受信すると、編集後のパノラマ画像データ３３２をメモリ１２４から読出し、操作表示装置５００に送信する。これにより、編集後のパノラマ画像データ３３２を用いて、ステップＳ１以降の処理が行われる。したがって、オペレータは、更新後のパラメータを用いた計測処理結果をパノラマ画像を用いて確認することができる。
【０１１１】
ここでは、パラメータ更新後のパノラマ画像は、メモリ１２４に既に生成されて格納されているパノラマ画像データ３３２を編集することで取得するとしたが、取得方法は、これに限定されない。たとえば、新たに撮像されて取得された画像データ３３３を用いてもよい。
【０１１２】
具体的には、実施の形態１で説明したように、ポインタ３６０が指示する画像データ３３３以降に格納されている画像データ３３３について更新後のパラメータで計測処理を行い新たなパノラマ画像データ３３２を生成するとしてもよい。
【０１１３】
また、更新後のパラメータを用いて、テーブル３３１のパラメータ３３７を更新しても良い。たとえば、必要に応じて、より特定的にはオペレータが操作部５０３を介して更新指示を入力したときに、テーブル３３１のパラメータ３３７を更新するようにしてもよい。
【０１１４】
＜表示態様＞
図１１〜図１３は、本発明の実施の形態２に係るパノラマ画像の表示態様を説明する図である。上述のように計測処理のパラメータを更新する場合には、オペレータが更新後の値の目安を把握し易いように、計測結果３３４の値を抽出して表示する。
【０１１５】
図１１を参照して、ディスプレイ５０２には、計測結果３３４の値が割当てされる縦軸と、縦軸に直交する横軸が表示される。横軸には、パノラマ画像における各画像データ３３３の位置を表す値が割当てられる。当該位置は、位置３３８に基づき取得される。ここでは、縦軸に割当てされる値は、たとえば相関値を指す。
【０１１６】
グラフ９１は、各画像データ３３３に対応する相関値を線分で繋ぐことにより生成されるグラフを指す。オペレータは、グラフ９１から、計測結果３３４の値が低いまたは高い画像データ３３３が存在するか否かを速やかに把握することができる。
【０１１７】
図１２では、オペレータの操作に応じて、グラフ９１の部分９２が選択的に指定された状態が示される。部分９２はグラフ９１と区別し得るような態様で表示される。たとえば、部分９２の囲み枠を赤色で表示する。
【０１１８】
演算処理部５１０は、入力インターフェイス５５０を介して部分９２に対応する横軸の値を抽出する。そして、抽出した値に対応する位置３３８に関連付けされた画像データ３３３と計測結果３３４とずれ量３３５とのデータを、メモリ５２０から読出し、読出したデータに基づく画像をディスプレイ５０２に表示する（図１３を参照）。
【０１１９】
図１３には、部分９２に対応する画像を拡大表示した状態が示される。図１３のディスプレイ５０２では、上段にパノラマ画像９３が表示されて、下段にはパノラマ画像９３に対応してグラフ９１１が表示される。上段にパノラマ画像９３は、選択された計測結果の部分９２に対応する画像データ３３３と、当該画像データの前後で撮像して取得された画像データ３３３を含んで構成されるパノラマ画像である。
【０１２０】
また、グラフ９１１の横軸が延びる方向と一致する方向に従ってスライドバー９４が表示される。オペレータはスライドバー９４上のスライダ９５をスライド操作することができる。
【０１２１】
スライド操作によるスライダ９５の移動量（移動方向、移動距離）に基づき、演算処理部５１０は、部分９２を移動させて表示する。また、移動後の部分９２の位置に関連付けされた画像データ３３３と計測結果３３４とずれ量３３５とのデータを、メモリ５２０のパノラマ画像データ３３２から読出し、読出したデータに基づく画像をディスプレイ５０２に拡大表示する。これにより、スライド操作に連動して、図１３のパノラマ画像とグラフ９１１をスクロール表示することができる。
【０１２２】
なお、グラフ９１の横軸には位置３３８の値を割当てたが、位置３３８に代替してカウンタ値３３６を割当ててもよい。
【０１２３】
＜表示態様の他の例＞
グラフ９１１とパノラマ画像９３とは、図１４〜図１７のような表示態様であってもよい。
【０１２４】
図１４では、図１３のパノラマ画像９３において計測結果の画像６１の表示が略されており、図１５では、パノラマ画像９３のみが表示されている。
【０１２５】
図１６では、図１１のグラフ９１１に代替して、各ワークＷの計測結果の相関値のみが、上段のワークＷの画像６０に対応付けてプロットされた点９１２で表示されている。図１７では、図１６のパノラマ画像９３から画像６２を消去して、ワークの画像６０のみが表示される。なお、図１６や図１７において、プロットされた点９１２どうしを線で結んでもよい。
【０１２６】
オペレータは、操作部５０３を操作することにより、ディスプレイ５０２に表示される画像を、図１３および図１４〜図１７の画像のいずれかに切替えることができる。
【０１２７】
＜閾値を用いた表示例＞
図１８と図１９には、計測結果を閾値を用いて表示するための画面が例示される。
【０１２８】
計測結果３３４について閾値９７が設定された場合には、演算処理部５１０は、グラフ９１の各計測結果３３４の値（特定的には、相関値）と閾値９７とを比較し、比較結果に基づき、グラフ９１のうち、閾値９７の範囲内に該当する部分を表す画像９６を、グラフ９１に重畳して表示する（図１８を参照）。画像９６は、たとえば枠囲みにて表示されて、枠はグラフ９１と識別可能な態様で表示される。たとえば、枠とグラフ９１の色を異ならせて表示する。
【０１２９】
画像９６が表示されている状態で、オペレータが操作部５０３を操作すると、演算処理部５１０は、画像９６をグラフ９１の他の部分（グラフ９１のうち、閾値９７の範囲内に該当する部分）に順次に移動させて表示する。
【０１３０】
図１８の画像９６は、閾値９７の範囲内に該当する部分を指示するとしたが、図１９に示すように閾値９７の範囲外に該当する部分を指示するとしてもよい。
【０１３１】
＜重複計測を排除するための表示例＞
ロボット３００がワークＷを正確に把持するためには、ライン１上の同一ワークＷについて計測処理が２回以上行われる事態（以下、重複計測という）を排除する必要がある。本実施の形態２では、重複計測の排除を支援するための情報が表示される。
【０１３２】
図２０は、本発明の実施の形態２に係る重複計測排除のためのパノラマ画像の例を示す図である。オペレータが、表示されるパノラマ画像から、各ワークＷについて重複して計測処理が行われているか否かの確認が容易となるように、演算処理部５１０は、パノラマ画像中の偶数枚目の画像と奇数枚目の画像とで、計測結果３３４に基づく画像６１を異なる態様で表示する。たとえば、図２０では、偶数枚目の画像における計測結果に基づく画像６１Ａと、奇数枚目の画像における計測結果に基づく画像６１Ｂとは、異なる色で表示される。
【０１３３】
＜計測処理時間の余裕度の表示例＞
図２１は、本発明の実施の形態２に係る撮像間隔に対する計測処理時間の比を表示する画面例を示す図である。本実施の形態では、撮像間隔に対する計測処理時間の比によって、計測処理時間の余裕の程度を示す。この比を取得するために、以下のように撮像間隔と、計測処理時間とが取得される。
【０１３４】
ＣＰＵ１２２は、まず、撮像間隔を（（Ｉｔ×ａ）／ｖ）により算出する。ここで、Ｉｔ［パルス］は、撮像指示を入力する間隔を指し、ａ［ｍｍ／パルス］は１パルス当たりのコンベア移動量を指し、およびｖ［ｍｍ／ｓｅｃ］はコンベア速度を指す。これらの値は、予めメモリ１２４に撮像パラメータ３５０として格納されていると想定する。
【０１３５】
算出される撮像間隔は、撮像動作により取得される画像データ３３３に関連付けて、テーブル３３１に撮像間隔３３９のデータとして格納される。
【０１３６】
また、計測処理時間とは、計測処理部２２１が、１回の撮像動作によって取得された画像データ３３３について計測処理を開始してから、終了するまでに要する時間を指す。計測処理の開始から終了までは、たとえば、計測処理部２２１が撮像部１１０から画像データを入力してから、計測処理の結果を出力するまでを指す。この時間は、ＣＰＵ１２２が、図示のないタイマを用いて計測することにより取得することができるが、ここでは、説明を簡単にするために計測処理時間Ｔ［ｓｅｃ］を用いる。
【０１３７】
比取得部２２５は、比３４０のデータを取得する。つまり、メモリ５２０のパノラマ画像データ３３２の各画像データ３３３について、当該画像データ３３３に関連付けされた撮像間隔３３９と、計測処理時間Ｔを用いて、（計測処理時間（Ｔ）÷撮像間隔）により、撮像間隔に対する計測処理時間の比を算出する。このようにして、各画像データ３３３について算出した比を、比３４０として、パノラマ画像データ３３２の各画像データ３３３に関連付けて登録する。
【０１３８】
操作表示装置５００では、演算処理部５１０は比３４０に基づく情報を表示する。具体的には、撮像画像処理部１２０から受信して、メモリ５２０に格納されているパノラマ画像データ３３２の各画像データ３３３に関連付けされた比３４０のデータを用いて、グラフ１３３（図２１参照）の画像を生成し、生成したグラフ１３３を表示コントローラ５４０を介してディスプレイ５０２に表示する。
【０１３９】
図２１を参照して、グラフ１３３では、縦軸には比３４０の値が割当てられ、縦軸に直交する横軸にはパノラマ画像の各画像データ３３３の位置３３８を指す値が割当てられる。グラフ１３３では、各画像データ３３３に関連付けされた比３４０の値は、棒グラフで表示されるが、表示態様は棒グラフに限定されない。
【０１４０】
上述の算出式に従えば、比３４０が値“１”よりも大きい場合には、対応する画像データ３３３の計測処理は撮像間隔内に終了していないことが示されて、値“１”未満である場合には、計測処理時間に余裕があることが示される。したがって、オペレータは、グラフ１３３から、パノラマ画像において、計測処理が撮像間隔内に終了していない画像データ３３３が存在するか否かを速やかに把握することができる。
【０１４１】
オペレータは、グラフ１３３から、変数Ｉｔ［パルス］の値、またはコンベア速度の適否を判断するための支援情報を得ることができる。具体的には、変数Ｉｔ［パルス］の値を小さくする、またはコンベア速度を速くするように、設定を変更するか否かの判断を支援するための情報を得ることができる。
【０１４２】
グラフ１３３では、比３４０が値“１”よりも大きい部分については表示態様が変更される。たとえば、枠１３１を用いて当該部分を囲むことにより強調表示する。また、計測処理時間の余裕の程度に応じて、各画像データ３３３に対応する棒グラフの色を変更してもよい。
【０１４３】
図２１を参照して、オペレータがスライダ９５をスライド操作すると、演算処理部５１０は、スライダ９５の移動量（移動方向、移動距離）を入力し、入力した移動量に連動してパノラマ画像をスクロールし、同時に、グラフ１３３もスクロールするように、表示コントローラ５４０を制御する。
【０１４４】
このように図２１の画面によれば、計測処理時間の余裕の程度を提示することができる。したがって、図１０のステップＳ５において計測処理のパラメータを変更した後において、変更後のパラメータを用いた計測処理時間に余裕が有るか否かをオペレータが判断する場合に、判断を支援するための情報を提示することができる。なお、計測処理時間の余裕の程度を示すためには、撮像間隔に対する計測処理時間の比に限らず、計測処理時間そのものを表示してもよい。
【０１４５】
ステップＳ５でのパラメータ変更のための画面例が、図２２に示される。図２２では、オペレータは、画面のボタン１７１を操作することにより、計測処理のパラメータ変更指示を入力することができる。演算処理部５１０は変更指示を入力すると、ディスプレイ５０２の画面を、パラメータを調整するための別の画面（図示せず）に切替える。パラメータを調整するための画面には、たとえば、パラメータの種類、値の範囲（レンジ）の候補が表示される。
【０１４６】
＜撮像パラメータの変更＞
図２３は、本発明の実施の形態２に係る撮像パラメータの変更処理のフローチャートである。図１０では計測処理のパラメータを変更したが、同様にして撮像動作に係るパラメータを変更することができる。
【０１４７】
図２３を参照して、ステップＳ１ａ〜Ｓ３の処理が図１０と同様に行われる。これにより、ディスプレイ５０２にはパノラマ画像または計測結果のグラフが表示される。
【０１４８】
表示後、オペレータは操作部５０３を操作して、撮像動作に係るパラメータを変更するための情報を入力することができる（ステップＳ４ｂ）。具体的には、パラメータの種類と、変更後の値とを入力する。
【０１４９】
演算処理部５１０は、パラメータを変更するための情報を、通信インターフェイス５２８を介して撮像画像処理部１２０に送信する。
【０１５０】
撮像画像処理部１２０では、撮像パラメータ更新部２２８は、受信した情報を用いて、メモリ１２４の撮像パラメータ３５０を更新する。たとえば、図５で説明したずれ量Ｍを決定するパラメータを更新することが可能である。
【０１５１】
操作部５０３を介して、変更後のパラメータを用いた計測結果の確認指示が入力されないと（ステップＳ６でＹＥＳ）、処理は終了する。確認指示が入力されると（ステップＳ６でＮＯ）、更新後のパラメータを用いた処理が行われる（ステップＳ７）。
【０１５２】
ステップＳ７においては、更新後のパラメータを用いた計測処理が行われる。たとえば、パラメータ更新後のＴ（ｎ）とＴ（ｎ＋１）に従うタイミングで撮像部１１０の撮像動作を模擬（シミュレート）することによる、パノラマ画像のデータを取得する。
【０１５３】
具体的には、画像分割部２２９は、撮像パラメータ更新部２２８から変更後のＴ（ｎ）とＴ（ｎ＋１）を入力し、入力したこれら値を用いて、図５の手順に従って、ずれ量Ｍを算出する。このようにして算出されたずれ量を、変更後ずれ量ＭＭと称する。
【０１５４】
画像分割部２２９は、メモリ１２４のパノラマ画像データ３３２に従うパノラマ画像を、先頭の画像データ３３３から最終の画像データ３３３まで、順番に、変更後ずれ量ＭＭを用いて抽出する。これにより、パノラマ画像データ３３２を、当該パノラマ画像を構成する複数の画像データ３３３に分割することができる。分割により取得される各画像データ３３３は、変更後のＴ（ｎ）とＴ（ｎ＋１）に従うタイミングで撮像部１１０が撮像動作したと想定した場合に取得される画像データを指す。このようにして画像データ３３３を取得することは、変更後のＴ（ｎ）とＴ（ｎ＋１）に従うタイミングで撮像部１１０の撮像動作を模擬（シミュレート）することに相当する。
【０１５５】
次に、計測処理部２２１は、画像分割部２２９により取得された各画像データ３３３について計測処理を行い、計測結果３３４を出力する。出力された計測結果３３４および変更後ずれ量ＭＭなどを用いて、パノラマ画像データ３３２が生成される。これにより、更新後パノラマ画像データが取得されて、ステップＳ７の処理は終了する。
【０１５６】
その後、処理はステップＳ２に移行する。ステップＳ２では、更新後パノラマ画像データは、撮像画像処理部１２０から操作表示装置５００に送信される。操作表示装置５００の演算処理部５１０は、受信した更新後パノラマ画像データを用いてディスプレイ５０２に更新後のパノラマ画像を表示し、重なり領域の画像および計測結果の画像を併せて表示する（ステップＳ３）。
【０１５７】
オペレータは、ディスプレイ５０２に表示される更新後パノラマ画像に関連付けて計測結果を確認することができる。これにより、更新後の撮像パラメータの値が適切であったか否かを判断するための支援情報を得ることができる。
【０１５８】
［実施の形態３］
本実施の形態では、キャリブレーションによるロボット座標系に従うパノラマ画像の表示について説明する。
【０１５９】
＜キャリブレーション＞
まず、視覚センサ１００による画像座標系を、ロボット３００によるロボット座標系に変換するためのキャリブレーションについて説明する。
【０１６０】
図２４は、本発明の実施の形態に係るキャリブレーションを説明するための図である。図２５は、図２４に示すキャリブレーションによって取得されるパラメータセットの一例を示す図である。図２６〜図２８は、本発明の実施の形態に係るキャリブレーションの手順を説明するための図である。
【０１６１】
図２４を参照して、本実施の形態に係るキャリブレーションにおいては、主として、以下の２つの観点でキャリブレーションが行われる。
【０１６２】
（１）  ロボット−コンベア間のキャリブレーション：
このキャリブレーションにおいては、エンコーダ１４からのパルス信号に含まれる１パルスあたりのコンベアの移動量が取得される。このコンベアの移動量は、図２５の下から２段目に示されるｄＸおよびｄＹに相当する。図２５に示すように、コンベアの移動量はベクトル量であるので、ロボット座標系のそれぞれの軸について値が取得されることになる。このコンベアの移動量は、ロボット３００がエンコーダ１４からのパルス信号を受けて、コンベア１０上のワーク位置を追跡（トラッキング）するために必要なパラメータである。
【０１６３】
（２）  視覚センサ−ロボット間のキャリブレーション：
視覚センサ１００によって計測されたワークの位置情報（画像座標系の座標値（ｘｉ，ｙｉ）［ｐｉｘｅｌ］）を、ロボット座標系の座標値（Ｘ，Ｙ）［ｍｍ］に変換するための関係式が取得される。この関係式は、図２５の最下段に示される６個のパラメータＡ〜Ｆによって定義される。
【０１６４】
なお、図２４に示すように、キャリブレーションを行うためには、ロボット３００の位置情報（ロボット座標値）が必要であるので、ロボット制御装置２００からネットワークＮＷを介して視覚センサ１００にこれらの位置情報が転送される。
【０１６５】
次に、キャリブレーションの手順についてより詳細に説明する。なお、本実施の形態に従うコンベアシステムにおいては、ユーザは、上述したようなキャリブレーションの意味を理解せずとも、指定された手順に従って操作するだけで、容易にキャリブレーションを行うことができる。より具体的には、本実施の形態に係るキャリブレーションは、図２６〜図２８に示す３段階の手順によって実現される。
【０１６６】
なお、本実施の形態に係るキャリブレーションにおいては、図２５の最上段に示すターゲットパターンが描画されたキャリブレーション用シートＳが用いられる。このキャリブレーション用シートＳに示されたターゲットパターンは、その内部が約９０°ずつに塗り分けられた５個の円（マーク）を含む。なお、後述するように、基本的には４個のマークを用いてキャリブレーションが行われるが、追加的に配置された１個のマークは、キャリブレーション用シートＳの配置向きを所定方向に統一するために用いられる。
【０１６７】
（第１段階）
第１段階としては、図２６に示すように、ユーザは、ターゲットパターンが描画されたキャリブレーション用シートＳを視覚センサ１００（撮像部１１０）の視野内に配置する。そして、ユーザは、視覚センサ１００に対して撮像指示を与える。すると、視覚センサ１００は、撮像によって得られた画像（ターゲットパターンが被写体として含まれる画像）に対して計測処理を行い、ターゲットパターンに含まれる四隅に配置された４個のマークについての各中心点の座標値を決定する。これによって、ターゲットパターンに含まれる４個のマークについての画像座標系の座標値［ｐｉｘｅｌ］がそれぞれ取得される。この取得される４個の座標値が、図２５の最上段に示される（ｘｉ１，ｙｉ１）、（ｘｉ２，ｙｉ２）、（ｘｉ３，ｙｉ３）、（ｘｉ４，ｙｉ４）に相当する。
【０１６８】
（第２段階）
第２段階としては、図２７に示すように、ユーザは、コンベア１０を動かしてターゲットパターンが描画されたキャリブレーション用シートＳをロボット３００のトラッキング範囲（稼動範囲）内に配置するとともに、ロボット３００を操作して、ターゲットパターンに含まれる４個のマークとロボット３００との位置関係を対応付ける。
【０１６９】
より具体的には、まず、ユーザは、コンベア１０を動かして、キャリブレーション用シートＳをロボット３００のトラッキング範囲（稼動範囲）内に配置する。なお、このコンベア１０の移動前（キャリブレーション開始時）のカウント値が、予め取得されているものとする。このカウント値が図２５の上から２段目に示されるエンコーダカウント値Ｅ１（キャリブレーション開始時）に相当する。
【０１７０】
続いて、ユーザは、ロボット制御装置２００に付属しているティーチングペンダント（図示せず）を操作するなどによって、ロボット３００のハンド先端をキャリブレーション用シートＳ上の１つのマークと対応するように位置決めする。ユーザは、この位置決めされた状態で指示を与えることで、ロボット制御装置２００が把握しているロボット３００の位置情報（ロボット３００のハンド先端の位置を示すロボット座標系での座標値）が視覚センサ１００へ送信される。このロボット３００のハンド先端の位置決めして、および、位置決め状態におけるロボット３００の位置情報の視覚センサ１００へ送信する処理は、ターゲットパターンに含まれる４個のマークのすべてに対して繰り返し実行される。
【０１７１】
このような手順によって、ターゲットパターンに含まれる４個のマークに対応するロボット３００の位置情報がそれぞれ取得される。この取得される４個のマークに対応するロボット３００の位置情報が、図２５の上から３段目に示される（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２）、（Ｘ３，Ｙ３）、（Ｘ４，Ｙ４）に相当する。
【０１７２】
なお、図２７に示すように、キャリブレーション用シートＳがロボット３００のトラッキング範囲（稼動範囲）内に配置された状態は、４個のマークすべてに対応するロボット３００の位置情報が視覚センサ１００へ送信されるまで維持される。
【０１７３】
また、視覚センサ１００は、図２７に示す状態におけるカウント値についても格納する。このカウント値が、図２５の上から２段目に示されるエンコーダカウント値Ｅ２（コンベアをロボット稼動範囲（上流）まで移動させたとき）に相当する。
【０１７４】
（第３段階）
第３段階としては、図２８に示すように、ユーザは、コンベア１０をさらに動かしてキャリブレーション用シートＳをロボット３００のトラッキング範囲（稼動範囲）の最下流の位置に配置するとともに、ロボット３００を操作して、ターゲットパターンに含まれる１個のマークとロボット３００との位置関係を対応付ける。
【０１７５】
より具体的には、まず、ユーザは、コンベア１０を動かして、キャリブレーション用シートＳをロボット３００のトラッキング範囲（稼動範囲）の下流側端部の位置に配置する。
【０１７６】
続いて、ユーザは、ティーチングペンダント（図示せず）を操作するなどによって、ロボット３００のハンド先端をキャリブレーション用シートＳ上の１番目のマーク（第２段階で座標値（Ｘ１，Ｙ１）を取得したマーク）と対応するように位置決めする。ユーザは、この位置決めされた状態で指示を与えることで、ロボット制御装置２００が把握しているロボット３００の位置情報（ロボット３００のハンド先端の位置を示すロボット座標系での座標値）が視覚センサ１００へ送信される。
【０１７７】
このような手順によって、ターゲットパターンに含まれる１番目のマークに対応するロボット３００の位置情報がそれぞれ取得される。この取得される１番目のマークに対応するロボット３００の位置情報が、図２５の上から４段目に示される（Ｘ５，Ｙ５）に相当する。
【０１７８】
また、視覚センサ１００は、図２８に示す状態におけるカウント値についても格納する。このカウント値が、図２５の上から２段目に示されるエンコーダカウント値Ｅ３（コンベアをロボット稼動範囲（下流）まで移動させたとき）に相当する。
【０１７９】
（パラメータ算出処理）
上述したような第１〜第３段階の処理によって取得されたパラメータを用いて、まず、エンコーダ１４からの１カウントあたりのワークの移動量ｄＸおよびｄＹが算出される。より具体的には、以下の式に従って算出される。
【０１８０】
ｄＸ＝（Ｘ５−Ｘ１）／（Ｅ３−Ｅ２）
ｄＹ＝（Ｙ５−Ｙ１）／（Ｅ３−Ｅ２）
これらの式は、図２７に示す状態と図２８に示す状態との間で、ロボット３００のハンド先端がキャリブレーション用シートＳ内の同一のマークに位置決めされた場合に生じる、カウント値の変化量に対するロボット３００の位置情報の変化量を算出することを意味する。これらの演算式によって、１カウントあたりのワークの移動量ｄＸおよびｄＹが決定される。すなわち、ロボット−コンベア間のキャリブレーションが実現される。
【０１８１】
また、図２６において取得されるカメラ座標系の座標値（ｘｉ１，ｙｉ１），（ｘｉ２，ｙｉ２），（ｘｉ３，ｙｉ３），（ｘｉ４，ｙｉ４）と、図２７において取得されるロボット座標系の座標値（Ｘ１，Ｙ１），（Ｘ２，Ｙ２），（Ｘ３，Ｙ３），（Ｘ４，Ｙ４）との対応関係に基づいて、座標系の変換に係る変換式の６個のパラメータＡ〜Ｆが決定される。すなわち、公知の手法を用いて、以下の式を満たす（あるいは、誤差が最小となる）パラメータＡ〜Ｆが決定される。
【０１８２】
Ｘ＝Ａ・ｘｉ＋Ｂ・ｙｉ＋Ｃ
Ｙ＝Ｄ・ｘｉ＋Ｅ・ｙｉ＋Ｆ
これにより、視覚センサ−ロボット間のキャリブレーションが実現される。
【０１８３】
パラメータＡ〜Ｆが決定されると、ＣＰＵ１２２は、カメラ座標系のパノラマ画像を、パラメータＡ〜Ｆを用いてロボット座標系の座標値に変換して表示してもよい。これにより、オペレータに対して、ロボット３００が把持する時点における搬送路上のワークＷの配置を提示することができる。
【０１８４】
より具体的には、パノラマ画像データ３３２の計測結果３３４が示す各ワークの位置（座標値）を、パラメータＡ〜Ｆを用いてロボット座標系の座標値に変換し、変換後の座標値に従ってパノラマ画像に各ワークの画像６０を表示する。これにより、ロボット３００が把持する時点における搬送路上のワークＷの配置を提示することができる。
【０１８５】
［実施の形態４］
本実施の形態では、一つ前に撮像した画像データ３３３の計測結果３３４を、今回の撮像した画像データ３３３の計測結果として重ねることによりパノラマ画像を生成し、生成したパノラマ画像を表示する。これにより、画像どうしが重なった部分においても計測結果を表示することができる。
【０１８６】
図２９は、本発明の実施の形態４に係る処理フローチャートである。図３０は、本発明の実施の形態４に係る撮像画像処理のための機能構成について示す模式図である。図３０に示す各機能は、撮像画像処理部１２０のＣＰＵ１２２がメモリ１２４に予め格納されたプログラムを実行することにより実現されると想定するが、各機能は、プログラムのみならず、プログラムと回路の組合せで実現されてもよい。
【０１８７】
撮像画像処理部１２０で実行される各種プログラムは、ＣＤ−ＲＯＭ１３６に格納されて流通する。このＣＤ−ＲＯＭ１３６に格納されたプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ機能を有するメモリインターフェイス１３５によって読取られ、メモリ１２４などへ格納される。あるいは、上位のホストコンピュータなどからネットワークＮＷを通じてプログラムをダウンロードするように構成してもよい。
【０１８８】
ＣＰＵ１２２は、パノラマ画像のための処理機能を有する。具体的には、撮像画像についてワークの計測処理を実行する計測処理部２２１、パノラマ画像の画像どうしの重なり範囲を取得するための重なり取得部２２２、パノラマ画像の生成および表示に関する処理を実行するパノラマ画像処理部２２３Ａを備える。計測処理部２２１と重なり取得部２２２は、図３で説明したものと同様であり説明は略す。
【０１８９】
パノラマ画像処理部２２３Ａは、重なり範囲で画像どうしが重なり合うようなパノラマ画像を生成するための画像生成部２２３Ｂ、計測結果を画像に描画すべきか否かを判定する描画判定部２２３Ｃ、およびパノラマ画の生成または表示に関連したエラーを処理するための表示関連処理部２２５Ａを含む。
【０１９０】
表示関連処理部２２５Ａは、画像落ち処理部２２５Ｂ、エンコーダエラー処理部２２５Ｃおよびオーバ/アンダーフロー処理部２２５Ｄを含む。これら各部の詳細は後述する。
【０１９１】
＜パノラマ画像の生成＞
パノラマ画像処理部２２３Ａは、モニタ指示を受信すると、表示するためのパノラマ画像を図２９のフローチャートに従って生成する。このフローチャートでは、説明のために、パノラマ画像を構成する画像データ３３３をカウントするための変数Ｎを用いる。なお、テーブル３３１には、図４に示すようにデータが格納されていると想定する。
【０１９２】
図２９を参照して、パノラマ画像処理部２２３Ａは、まず変数Ｎに値０を初期設定し（ステップＴ１）、その後、変数Ｎを（Ｎ＝Ｎ＋１）と更新する（ステップＴ３）。
【０１９３】
その後、画像生成部２２３Ｂは、テーブル３３１から変数Ｎの値により指示される画像データ３３３を読出し（ステップＴ５）、読出した画像データ３３３に、対応する計測結果３３４の画像データを重畳処理する（ステップＴ７）。次に、テーブル３３１から（Ｎ＋１）の値により指示される画像データ３３３を読出し（ステップＴ９）、読出した画像データ３３３に、対応する計測結果３３４の画像データを重畳処理する（ステップＴ１１）。
【０１９４】
その後、画像生成部２２３Ｂは、パノラマ画像を生成するために上述のように重畳処理された両画像データ３３３を重ねて表示するために、Ｎ番目の画像データ３３３の計測結果３３４を、重畳処理されたＮ＋１番目の画像データ３３３の計測結果として重ねるように処理する（ステップＴ１３）。たとえば、１番目の画像データ３３３の計測結果３３４を、２番目の画像データ３３３の計測結果として重ねるように処理する。
【０１９５】
その後、パノラマ画像処理部２２３Ａは、変数Ｎの値に基づき、予め決められた枚数分の画像データ３３３を用いたパノラマ画像データ３３２の生成が終了したか否かを判定する（ステップＴ１５）。生成が終了していないと判定すると（ステップＴ１５でＮＯ）、処理はステップＴ３に戻り、変数Ｎの値が（Ｎ＋１）に更新される。
【０１９６】
その後、以降の処理を同様に行うことにより、ステップＴ１３では、たとえば、２番目の画像データ３３３の計測結果３３４を、３番目の画像データ３３３の計測結果として重ねるように処理する。
【０１９７】
このようにして、変数Ｎが指示する１番目、２番目、３番目、・・・の画像データ３３３にを用いて、Ｎ番目の画像データ３３３の計測結果３３４を、Ｎ＋１番目の画像データ３３３の計測結果として重ねるようにしてパノラマ画像データ３３２Ａが生成されて、メモリ１２４に格納される。
【０１９８】
生成が終了したと判定されると（ステップＴ１５でＹＥＳ）、パノラマ画像の生成は終了しする。
【０１９９】
その後、生成されたパノラマ画像データ３３２Ａは、メモリ１２４から読出されて操作表示装置５００に送信される。操作表示装置５００では、演算処理部５１０は、受信したパノラマ画像データ３３２Ａをディスプレイ５０２に表示する。
【０２００】
なお、本実施の形態では、説明を簡単にするために、重ね合わせ領域の表示については詳細説明を略しているが、前述した例えば図８（Ａ）〜（Ｃ）のように重ね合わせ領域を表示することができる。
【０２０１】
ここで、画像生成部２２３Ｂによる、Ｎ番目の画像データ３３３の計測結果３３４を、重畳処理されたＮ＋１番目の画像データ３３３の計測結果として重ねる処理（ステップＴ１３）について説明する。
【０２０２】
図３１を参照して、画像生成部２２３Ｂは、Ｎ枚目の画像データ３３３の計測結果３３４ＮをＮ＋１枚目の画像データ３３３の計測結果として重ねる。
【０２０３】
具体的には、画像生成部２２３Ｂは、計測結果の重ね合わせに際して、まず、パノラマ画像を作成するための必要なデータ（値）を算出する。
【０２０４】
算出のために、撮像時のエンコーダカウンタ１３２のカウンタ値Ｔｒｃ[カウント]、１パルスの移動量（キャリブレーションデータ）：（ΔＸ、ΔＹ）[ｍｍ／カウント]、キャリブレーションパラメータ：Ｘ[ｍｍ]＝Ａｘ＋Ｂｙ＋Ｃ・・・式(１)およびＹ[ｍｍ]＝Ｄｘ＋Ｅｙ＋Ｆ・・・式(２)を用いる。
【０２０５】
また、キャリブレーションパラメータより、[ｍｍ]→[ピクセル]に逆変換する下記の式（３）と（４）を、式（１）と（２）から以下のように作成する。
【０２０６】
ｘ[ピクセル]＝｛Ｅ(Ｘ−Ｃ)−Ｂ(Ｙ−Ｆ)｝／(ＡＥ−ＢＤ)・・・(３)
ｙ[ピクセル]＝｛Ａ(Ｙ−Ｆ）−Ｄ(Ｘ−Ｃ)｝／(ＡＥ−ＢＤ)・・・(４)
また、撮像指示が入力する間隔である撮像トリガ間隔ΔＴｒを算出する。つまり、Ｎ枚目撮像時のエンコーダカウンタ値：Ｔｒｃ（Ｎ）[カウント]、およびＮ＋１枚目撮像時のエンコーダカウンタ値：Ｔｒｃ（Ｎ＋１）[カウント]として、撮像トリガ間隔ΔＴｒを、ΔＴｒ＝Ｔｒｃ（Ｎ＋１）−Ｔｒｃ（Ｎ）と算出する。
【０２０７】
したがって、上述したロボット座標系に係るキャリブレーションによる算出値を用いて、Ｎ枚目の画像からＮ＋１枚目の画像までの画像の移動量は、以下にように算出できる。
【０２０８】
つまり、Ｎ枚目からＮ＋１枚目までの画像の移動量は、ΔＴｒ（ΔＸ、ΔＹ）[ｍｍ]で規定することができるから、Ｎ枚目の計測結果（Ｘ(ｎ)、Ｙ(ｎ)）をＮ＋１枚目でのロボット座標(Ｘ’(ｎ)、Ｙ’(ｎ))に変換するには、以下のように変換することができる。
【０２０９】
Ｘ’(ｎ)＝Ｘ(ｎ)＋ΔＴｒ×ΔＸおよびＹ’(ｎ)＝Ｙ(ｎ)＋ΔＴｒ×ΔＹ。
このロボット座標の値を、ピクセル単位に変換するには、式（３）と（４）より、以下のように変換することができる。
【０２１０】
Ｆ’ｘ＝｛Ｅ(Ｘ’(ｎ)−Ｃ)−Ｂ(Ｙ’(ｎ)−Ｆ)｝／(ＡＥ−ＢＤ）、および
Ｆ’ｙ＝｛Ａ(Ｙ’(ｎ)−Ｆ)−Ｄ(Ｘ’(ｎ)−Ｃ)｝／(ＡＥ−ＢＤ)。
【０２１１】
上述の算出結果に従って、画像生成部２２３Ｂは、Ｎ枚目の画像の計測結果３３４Ｎの座標を、(Ｆ’ｘ、Ｆ’ｙ)として、当該計測結果３３４Ｎの画像をＮ＋１枚目の画像データ３３３に描画する（図３２を参照）。これにより、Ｎ枚目の計測結果３３４Ｎが重ねられたＮ＋１枚目の画像データ３３３が生成される。
【０２１２】
これにより、パノラマ画像データ３３２Ａを、各画像データ３３３が計測結果３３４Ｎを含むように生成することができる。そして、パノラマ画像データ３３２Ａに従って表示される当該パノラマ画像においては、画像どうしが重なった部分で計測結果の一部が消える（表示されない）ことはなく、Ｎ枚目の画像およびＮ＋１枚目の画像についての計測結果の全てを表示することができる。したがって、パノラマ画像と計測結果を個別に管理する必要はなくデータ管理が容易となり、また、パノラマ画像を表示開始してから終了するまでの処理を短期間のうちに済ませることが可能となる。
【０２１３】
＜計測結果の描画判定＞
上述の処理では、画像生成部２２３Ｂは、Ｎ枚目の計測結果３３４Ｎの座標は、Ｎ＋１枚目の画像データ３３３の範囲内に位置するとの前提の下に、Ｎ枚目の計測結果３３４Ｎが重ねられたＮ＋１枚目の画像データを生成した。しかし、Ｎ枚目の計測結果３３４Ｎの図形の座標が、Ｎ＋１枚目の画像データ３３３の範囲から外れる場合もある。
【０２１４】
そこで、本実施の形態では、描画判定部２２３Ｃは、Ｎ枚目の計測結果の図形の座標(Ｆ’ｘ、Ｆ’ｙ)が、Ｎ＋１枚目の画像の範囲内から外れるか否かを判定する。外れると判定された場合には、画像生成部２２３Ｂは、座標(Ｆ’ｘ、Ｆ’ｙ)に従うＮ枚目の計測結果を、Ｎ＋１枚目の画像データに描画しないと決定し、当該描画を省略する。
【０２１５】
描画判定部２２３Ｃの判定処理は、計測結果の画像６１が表す図形の種類毎に異ならせることができる。計測結果３３４Ｎの画像６１が表す図形が、矩形、楕円、および円の線分が所定幅を有した幅あり円を例示して説明する。なお、１枚の画像データ３３３の画像サイズは、４８０ピクセル×７５２ピクセルであると想定する。
【０２１６】
・矩形の場合
Ｎ枚目の計測結果３３４Ｎの画像６１が表す矩形の左上座標および右下座標が、Ｎ＋１枚目の画像のロボット座標を用いて、ピクセルに変換することにより、左上座標(ｘａ、ｙａ)および右下座標(ｘｂ、ｙｂ)として取得されるとき、座標(ｘａ、ｙａ)および座標(ｘｂ、ｙｂ)が下記の４つの不等式の条件の全てを満たさないと判定されたとき、画像生成部２２３Ｂは描画しないと決定し、少なくとも１つの条件を満たすと判定されたとき描画すると決定する。
【０２１７】
０≦ｘａ≦７５２、０≦ｘｂ≦７５２、０≦ｙａ≦４８０、０≦ｙｂ≦４８０
たとえば、図３３の場合には、描画判定部２２３Ｃは、座標(ｘｂ、ｙｂ)について上記の４つの条件のうち（０≦ｘｂ≦７５２）と（０≦ｙｂ≦４８０）とを満たすと判定し、判定結果に従って、画像生成部２２３Ｂは、座標(Ｆ’ｘ、Ｆ’ｙ)に従うＮ枚目の計測結果をＮ＋１枚目の画像データに描画すると決定し、座標(Ｆ’ｘ、Ｆ’ｙ)に従うＮ枚目の画像の計測結果３３４Ｎを、Ｎ＋１枚目の画像に描画する。
【０２１８】
・楕円の場合
Ｎ枚目の計測結果３３４Ｎを示す楕円の画像の座標が、Ｎ＋１枚目の画像のロボット座標を用いて、ピクセルに変換することにより、中心座標(Ｃｘ、Ｃｙ)、Ｘ方向の半径ｒｘ、およびＹ方向の半径ｒｙとして取得されるとき、これら値が下記２つの不等式の条件の全てを満たさないと判定されたとき、画像生成部２２３Ｂは描画しないと決定し、少なくとも１つの条件を満たすと判定されたとき描画すると決定する。
【０２１９】
０≦Ｃｘ±ｒｘ≦７５２、０≦Ｃｙ±ｒｙ≦４８０
・幅あり円の場合
Ｎ枚目の画像６１が表す円の画像の座標が、Ｎ＋１枚目のロボット座標を用いて、ピクセルに変換することにより、中心座標が(Ｃｘ、Ｃｙ)、半径ｒおよび所定の線幅ｗとして取得されるとき、これら値が下記２つの不等式の条件の全てを満たさないと判定されたとき、画像生成部２２３Ｂは描画しないと決定し、少なくとも１つの条件を満たすと判定されたとき描画すると決定する。
【０２２０】
０≦Ｃｘ±(ｒ＋ｗ)≦７５２、０≦Ｃｙ±(ｒ＋ｗ)≦４８０
（パノラマ画像の表示処理）
本実施の形態に係るパノラマ画像処理部２２３Ａは、エンコーダカウンタ１３２のカウントモードに対応して、パノラマ画像の表示態様を切替える。具体的には、図３４〜図３７のいずれかの表示態様で表示する。
【０２２１】
なお、コンベアのライン１の搬送方向にワークＷが移動していくとき、エンコーダカウンタ１３２のカウントモードは、予めアップカウントおよびダウンカウントのいずれかに設定され、設定されたモード値は、たとえばメモリ１２４に格納される。
【０２２２】
パノラマ画像処理部２２３Ａは、単位時間当たり、すなわち１パルス当たりの画像上での移動量ΔｘおよびΔｙから、パノラマ画像の表示態様を決定する。
【０２２３】
まず、移動量ΔｘとΔｙの算出について説明する。
まず、１パルスの移動量（キャリブレーションデータ）を（ΔＥｘ、ΔＥｙ）[ｍｍ／カウント]として、[ｍｍ]→[ピクセル]に変換する以下の逆変換式に従って、当該移動量をピクセルに変換する。
【０２２４】
ｘ[ピクセル]＝｛Ｅ(Ｘ−Ｃ)−Ｂ(Ｙ−Ｆ)｝／(ＡＥ−ＢＤ)、
ｙ[ピクセル]＝｛Ａ(Ｙ−Ｆ)−Ｄ(Ｘ−Ｃ)｝／(ＡＥ−ＢＤ)
次に、上述の逆変換式を用いて固定パルス（たとえば０パルス、１パルス）のときの画像上での位置を算出する。
【０２２５】
０パルスのときの移動量は、次のように算出する。
ｘ０[ピクセル]＝｛Ｅ(ΔＥｘ×０−Ｃ)−Ｂ(ΔＥｙ×０−Ｆ)｝／(ＡＥ−ＢＤ)、
ｙ０[ピクセル]＝｛Ａ(ΔＥｙ×０−Ｆ)−Ｄ(ΔＥｘ×０−Ｃ)｝／(ＡＥ−ＢＤ)
１パルスのときの移動量は、次のように算出する。
【０２２６】
ｘ１[ピクセル]＝｛Ｅ(ΔＥｘ×１−Ｃ)−Ｂ(ΔＥｙ×１−Ｆ)｝／(ＡＥ−ＢＤ)、
ｙ１[ピクセル]＝｛Ａ(ΔＥｙ×１−Ｆ）−Ｄ(ΔＥｘ×１−Ｃ)｝／(ＡＥ−ＢＤ）
上述の固定パルスについて算出した移動量から、１パルスあたりの画像上でのピクセル単位の移動量ΔｘとΔｙを算出する。つまり、パノラマ画像処理部２２３Ａは、メモリ１２４のモード値が“アップカウント”を指示するときはΔｘ＝ｘ１−ｘ０およびΔｙ＝ｙ１−ｙ０と算出し、“ダウンカウント”を指示するときはΔｘ＝ｘ０−ｘ１およびΔｙ＝ｙ０−ｙ１と算出する。
【０２２７】
パノラマ画像処理部２２３Ａは、算出した上述のピクセル単位の移動量ΔｘとΔｙを用いて、パノラマ画像の表示態様を図３４〜図３７のいずれかに指示する値を表示態様データ３３２Ｂに設定し、表示態様データ３３２Ｂをメモリ１２４に格納する。
【０２２８】
つまり、パノラマ画像処理部２２３Ａは、ロボット座標系の軸のうち、Ｘ軸が延びる方向（Ｘ方向という）の移動量ΔＸが、Ｙ軸が延びる方向（Ｙ方向という）の移動量ΔＹ以上であると判定した場合には、表示態様データ３３２Ｂに、パノラマ画像をディスプレイ５０２の横方向に延びるような表示態様を指示する値を設定する（図３４、図３５）。この場合において、（Δｘ≧０）であるときは、表示態様データ３３２Ｂには、ディスプレイ５０２の、たとえば向かって右方向から撮像順番に従って画像が並ぶような表示態様を指示する値が設定され（図３４参照）、（Δｘ＜０）であるときは、ディスプレイ５０２の、たとえば向かって左方向から撮像順番に従って画像が並ぶような表示態様を指示する値が設定される（図３５参照）。
【０２２９】
一方、パノラマ画像処理部２２３Ａは、Ｘ方向の移動量ΔＸが、Ｙ方向の移動量ΔＹよりも小さいと判定した場合には、表示態様データ３３２Ｂに、パノラマ画像をディスプレイ５０２の縦方向に延びるような表示態様を指示する値を設定する（図３６、図３７）。この場合において、（Δｙ≧０）であるときは、表示態様データ３３２Ｂには、ディスプレイ５０２の、たとえば向かって下方向から撮像順番に従って画像が並ぶような表示態様を指示する値が設定され（図３６参照）、（Δｙ＜０）であるときは、ディスプレイ５０２の、たとえば向かって上方向から撮像順番に従って画像が並ぶような表示態様を指示する値が設定される（図３７参照）。
【０２３０】
パノラマ画像処理部２２３Ａにより値が設定された表示態様データ３３２Ｂは、パノラマ画像データ３３２Ａとともには、メモリ１２４から読出されて操作表示装置５００に送信される。操作表示装置５００では、演算処理部５１０は、受信したパノラマ画像データ３３２Ａを、当該パノラマ画像データ３３２Ａに関連して受信した表示態様データ３３２Ｂに従う態様で、ディスプレイ５０２に表示する。これにより、パノラマ画像を、ロボット座標系におけるワークＷの移動方向および移動量に従った図３４〜図３７のいずれかの態様で表示することができる。
【０２３１】
なお、図３４〜図３７における丸付き数値は、パノラマ画像を構成する各画像の撮像順序を示し、矢印ＡＲは、パノラマ画像において画像が並ぶ向きを指すものであり、いずれも説明のために示すものであり、ディスプレイ５０２には表示されない。
【０２３２】
＜エラー処理＞
本実施の形態では、表示関連処理部２２５Ａは、上述のようにパノラマ画像を生成または表示する際に生じるエラーを処理する。ここでは、エラーとして、パノラマ画像の生成に用いるべき画像が不足しているエラー、およびエンコーダカウンタ１３２に起因するエラーを例示する。
【０２３３】
（画像落ち処理）
パノラマ画像を構成するべき複数枚の画像から１枚以上の画像が欠落して不足している場合には、画像落ち処理部２２５Ｂは、パノラマ画像データ３３２Ａにおいて、欠落した画像の画像データ３３３、またはその計測結果３３４を省略する。画像の欠落は、たとえば、視覚センサ１００が撮像指示を受信できなかった場合に発生する。
【０２３４】
本実施の形態では、視覚センサ１００は、ロボット制御装置２００から撮像指示を受信する毎に、受信した撮像指示に応答して撮像する。ロボット制御装置２００は、エンコーダ１４からのパルス信号に含まれるパルス数をカウントし、予め定められた値以上の数のパルスが入力されたタイミングで、撮像指示を視覚センサ１００に対して送信する。したがって、視覚センサ１００は予め定められた間隔で撮像するように制御されることにより、画像データ３３３は当該間隔で繰返し取得される。これにより、パノラマ画像を構成する一連の画像データ３３３を得ることができる。
【０２３５】
ここで、視覚センサ１００のＣＰＵ１２２がＢＵＳＹ（ビジー）状態において、ロボット制御装置２００から撮像指示が送信されると、視覚センサ１００は当該撮像指示を受信することができず、その結果、当該撮像指示に対応した画像データ３３３を取得できず、パノラマ画像を構成する一連の画像データ３３３についてが画像データ３３３が欠落する。
【０２３６】
画像落ち処理部２２５Ｂは、上述のように算出したピクセル単位での移動量（Δｘ、Δｙ）が、画像１枚以上の大きさを指すと判定すると、画像が欠落したこと検出する。つまり、移動量（Δｘ、Δｙ）が（|Δｘ|≧７５２）および（|Δｙ|≧４８０）のいずれかの条件を満たすと判定したとき、画像が欠落したことを検出する。
【０２３７】
画像が欠落したことを検出した場合に、画像落ち処理部２２５Ｂは、パノラマ画像データ３３２Ａを、欠落した画像データ３３３を省略するように処理する。または、パノラマ画像データ３３２Ａに、欠落した画像データ３３３に代替してエンコーダカウンタ１３２にカウント値を用いた情報を挿入する。
【０２３８】
また、欠落した画像の計測結果３３４Ｎの画像６１の表示が省略される。つまり、図３２においてＮ枚目の画像が欠落したと想定すると、Ｎ枚目の計測結果３３４Ｎの画像６１を表示せず、且つＮ−１枚目の計測結果３３４Ｎの画像６１をＮ＋１枚目の画像に重ねずにパノラマ画像データ３３２Ａを生成する。
【０２３９】
（エンコーダエラー処理）
移動量（Δｘ、Δｙ）は、上述したようにエンコーダカウンタ１３２のカウント値を用いて算出されることから、エンコーダカウンタ１３２が正常に動作しない場合には、パノラマ画像の生成に関するエラー処理が実行される。
【０２４０】
エンコーダエラー処理部２２５Ｃは、撮像時にエンコーダカウンタ１３２から３回以上同じ値を入力したと判定した場合には、エンコーダカウンタ１３２がカウント動作していないことを検出する。カウント動作していないことを検出すると、エラーメッセージをディスプレイ５０２に出力するように、操作表示装置５００に通知し、パノラマ画像表示処理を終了させる。
【０２４１】
（カウンタ値のオーバフロー／アンダーフロー）
移動量（Δｘ、Δｙ）は、上述したようにエンコーダカウンタ１３２のカウント値を用いて算出することから、エンコーダカウンタ１３２のカウンタ値がオーバーフローまたはアンダーフローした場合には、オーバ／アンダーフロー処理部２２５Ｄは、パノラマ画像の生成に関するエラー処理を実行する。なお、エンコーダカウンタ１３２は、アップカウント時に、オーバーフローし、ダウンカウント時に、アンダーフローする可能性がある。
【０２４２】
オーバ／アンダーフロー処理部２２５Ｄは、エンコーダカウンタ１３２のカウンタ値の差分を用いてオーバフローまたはアンダーフローが発生しているか否かを判定する。
【０２４３】
具体的には、撮像時のカウンタ値をＴｒｃ（Ｎ）およびＴｒｃ（Ｎ−１）とすると、差分ΔＴｒｃ(Ｎ)＝Ｔｒｃ（Ｎ）−Ｔｒｃ（Ｎ−１）を求めることができる。
【０２４４】
アップカウント時は、差分ΔＴｒｃ(Ｎ)が（ΔＴｒｃ(Ｎ)＜０）の条件を満足するときオーバフロー発生と判定し、ダウンカウント時は（ΔＴｒｃ(Ｎ)＞０）の条件を満足するときアンダーフロー発生と判定する。
【０２４５】
オーバ／アンダーフロー処理部２２５Ｄはオーバフローまたはアンダーフローが発生したことを判定すると、撮像トリガ間隔ΔＴｒを以下の演算式に従って補正する。なお、エンコーダカウンタ１３２の値は書き換えない。
【０２４６】
Ｔｒｃ（Ｎ）＝Ｔｒｃ(Ｎ)−Ｓｇｎ｛ΔＴｒｃ(Ｎ)｝×Max＿count＋１
ただし、上記の変数Max＿countは、エンコーダカウンタ１３２の最大カウント値であって、予め定められた値を指す。この変数Max＿countの値は、メモリ１２４の所定領域に予め格納される。
【０２４７】
このように、オーバフローまたはアンダーフローが発生した場合は、エンコーダカウンタ値Ｔｒｃ（Ｎ）を、オーバフローまたはアンダーフローによる誤差を排除した値に補正し、その補正後のエンコーダカウンタ値Ｔｒｃ（Ｎ）を用いて、撮像トリガ間隔ΔＴｒを算出する。これにより、オーバフローまたはアンダーフローに起因した誤差が排除されたた移動量ΔｘおよびΔｙを取得することができる。
【０２４８】
＜パノラマ画像の表示例＞
図３８には、ディスプレイ５０２における図３６または図３７に従うパノラマ画像の表示例が示され、図３９には、ディスプレイ５０２における図３４または図３５に従うパノラマ画像の表示例が示される。
【０２４９】
図３８と図３９を参照して、ディスプレイ５０２には、パノラマ画像とともにＣＰＵ１２２により計測された平均撮像時間３８１と処理時間３９１のデータが表示される。
【０２５０】
ＣＰＵ１２２は、平均撮像時間３８１を、撮像トリガの間隔時間τの１０回の平均値（Στ／１０）として算出する。
【０２５１】
ここで、撮像トリガの間隔時間τは、撮像トリガの間隔：ΔＴｒ[カウント]、１パルスの移動量（キャリブレーションデータ）：（ΔＸ、ΔＹ）[ｍｍ／カウント]、コンベアスピード：ｖ[ｍｍ／ｓｅｃ]を用いて、
τ=｛(ΔＴｒ×ΔＸ)＾２＋（ΔＴｒ×ΔＹ）＾２｝＾０．５／ｖ、と算出することができる。
【０２５２】
ＣＰＵ１２２は、処理時間３９１として、最大処理時間と平均処理時間とを計測する。最大処理時間は、計測処理部２２１による計測処理にかかった最大時間を指し、平均処理時間は、計測処理にかかった平均時間を指す。なお、ＣＰＵ１２２は、図示しない内部タイマを用いて処理時間を計測する。
【０２５３】
本実施の形態では、撮像トリガの間隔時間τ内で計測処理が開始されて終了されるべきであることから、オペレータは、処理時間３９１が指す最大処理時間と、平均撮像時間３８１とを比較し、比較結果に基づき、計測処理にかける時間にどのくらいの余裕があるかを判定することができる。そして判定された余裕を参考にして、計測処理に係るパラメータ値を調整することができる。
【０２５４】
なお、上述した各実施の形態に説明した各種の機能は、撮像画像処理部１２０と操作表示装置５００において、全て搭載することもできるが、必要とする種類の機能を選択して搭載するようにしてもよい。
【０２５５】
［実施の形態５］
次に、視覚センサ１００およびロボット制御装置２００とネットワークＮＷを介して接続されるサポート装置６００について説明する。
【０２５６】
図４０は、本発明の実施の形態５に係るサポート装置６００のハードウェア構成を示す模式図である。サポート装置６００は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【０２５７】
図４０を参照して、サポート装置６００は、ＯＳ（オペレーティングシステム）を含む各種プログラムを実行するＣＰＵ６１０と、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）６２０と、ＣＰＵ６１でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ６３０と、ＣＰＵ６１で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）６４０とを含む。
【０２５８】
サポート装置６００は、さらに、ユーザからの操作を受付けるキーボード６５０およびマウス６６０と、情報をユーザに提示するためのモニタ６７０とを含む。
【０２５９】
後述するように、サポート装置６００で実行される各種プログラムは、ＣＤ−ＲＯＭ６９０に格納されて流通する。このＣＤ−ＲＯＭ６９０に格納されたプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ６８によって読取られ、ハードディスク（ＨＤＤ）６４０などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【０２６０】
上述したように、サポート装置６００は、汎用的なコンピュータを用いて実現されるので、これ以上の詳細な説明は行わない。
【０２６１】
このようなサポート装置６００は、視覚センサ１００およびロボット制御装置２００のいずれともデータ通信可能であるので、各種のデータを収集することができる。そこで、上述した操作表示装置５００のパノラマ画像表示に関する機能は、サポート装置６００が備えるとしてもよい。
【０２６２】
ロボット３００の動作を解析するために、各画像データ３３３についての計測結果を格納するテーブル３３１を利用することができる。つまり、ロボット３００において、ロボット動作をカウンタ値と関連付けて記録しておくことで、ロボット動作と対応する画像の計測結果３３４と関連付けることができる。これにより、たとえば、把持動作が失敗した場合などに、その失敗した原因を追求するために、把持対象であったワークの画像および計測結果３３４をサポート装置６００または操作表示装置５００上で再現できる。そのため、不具合原因をより容易に解析することができ、または解析を支援する情報を提示することができる。
【０２６３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２６４】
１０，２０  コンベア、１００  視覚センサ、１１０  撮像部、１２０  撮像画像処理部、１２６  撮像制御部、１３２  エンコーダカウンタ、２００  ロボット制御装置、５１０  演算処理部、２２１  計測処理部、２２２  重なり取得部、２２３，２２３Ｂ  画像生成部、２２５  比取得部、２２６  パラメータ更新部、２２７  計測パラメータ更新部、２２８  撮像パラメータ更新部、２２９  画像分割部、３００  ロボット、５００  操作表示装置、６００  サポート装置、ＮＷ  ネットワーク、Ｓ  キャリブレーション用シート、Ｗ  ワーク、２２３Ａ  パノラマ画像処理部、２２３Ｃ  描画判定部、２２５Ａ  表示関連処理部、２２５Ｂ  画像落ち処理部、２２５Ｃ  エンコーダエラー処理部、２２５Ｄ  アンダーフロー処理部。
【図１】
2013097514.tif 000003
【図２】
2013097514.tif 000004
【図３】
2013097514.tif 000005
【図４】
2013097514.tif 000006
【図５】
2013097514.tif 000007
【図６】
2013097514.tif 000008
【図７】
2013097514.tif 000009
【図８】
2013097514.tif 000010
【図９】
2013097514.tif 000011
【図１０】
2013097514.tif 000012
【図１１】
2013097514.tif 000013
【図１２】
2013097514.tif 000014
【図１３】
2013097514.tif 000015
【図１４】
2013097514.tif 000016
【図１５】
2013097514.tif 000017
【図１６】
2013097514.tif 000018
【図１７】
2013097514.tif 000019
【図１８】
2013097514.tif 000020
【図１９】
2013097514.tif 000021
【図２０】
2013097514.tif 000022
【図２１】
2013097514.tif 000023
【図２２】
2013097514.tif 000024
【図２３】
2013097514.tif 000025
【図２４】
2013097514.tif 000026
【図２６】
2013097514.tif 000027
【図２７】
2013097514.tif 000028
【図２８】
2013097514.tif 000029
【図２９】
2013097514.tif 000030
【図３０】
2013097514.tif 000031
【図３１】
2013097514.tif 000032
【図３２】
2013097514.tif 000033
【図３３】
2013097514.tif 000034
【図３４】
2013097514.tif 000035
【図３５】
2013097514.tif 000036
【図３６】
2013097514.tif 000037
【図３７】
2013097514.tif 000038
【図３８】
2013097514.tif 000039
【図３９】
2013097514.tif 000040
【図４０】
2013097514.tif 000041
【図２５】
2013097514.tif 000042