説明

画像処理装置および画像処理プログラム

【課題】ワークを搬送する経路上の状態把握を支援するための情報を出力する。
【解決手段】画像処理装置は、連続する撮像の前後で撮像範囲に重複領域を有する撮像部110に接続される画像処理装置であって、撮像部110によって得られる複数枚の撮像画像を受け付けるインターフェイスと、撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、複数枚の撮像画像を、前記重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ前記重なり範囲における前記被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、合成画像と、当該合成画像に関連付けて重なり範囲を示す情報とを出力する出力手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンベアトラッキング等に向けられた画像処理装置および画像処理プログラムに関する。
【背景技術】
【0002】
ファクトリーオートメーション(FA)分野においては、省力化のため、画像処理を用いて各種の工程を制御する技術が多用されている。このような画像処理技術の適用例の一つとして、ベルトコンベア等の搬送装置によってワークを搬送するとともに、その搬送中のワークを移動機械(以下、「産業用ロボット」あるいは単に「ロボット」とも称す。)を用いて、追跡(トラッキング)および把持するような作業工程がある。このような作業工程は、コンベアトラッキング等と称される。
【0003】
このコンベアトラッキングの技術においては、撮像装置を用いて搬送装置上のワークを撮像し、その撮像によって得られた画像に対して、画像処理装置を用いてパターンマッチングあるいは2値化処理などの計測処理を行うことで、各ワークの存在位置(座標値)を特定する。そして、この特定された各ワークの存在位置に基づいて、ロボットが各ワークを追跡および把持する。
【0004】
例えば、特許文献1(特開2002−113679号公報)は、搬送体によって搬送される複数のワークを撮像し、当該撮像結果から認識された各ワークの位置座標に基づいて複数のワークのハンドリングを制御するトラッキング方法を開示している。より具体的には、特許文献1に記載のトラッキング方法は、撮像手段による撮像領域とその直後の撮像領域とがワークの全形が収まる一定の幅で進行方向に重なるように連続的に撮像し、撮像領域内に全形を含むワークのみ位置座標を認識するという構成を採用する。
【0005】
このように連続的に撮像された画像を用いて搬送経路上の全体の状態を俯瞰するためには、撮像領域の重なり部分を利用して合成したパノラマ画像を用いることが有効であると考えられる。
【0006】
コンベアトラッキングに向けられたものではないが、オペレータが手に持ったカメラをパンしながら連続撮像した複数のフレームを繋ぎ合わせることにより、オペレータが撮像した範囲のパノラマ画像を生成する画像処理装置が特許文献2(特開平5−260264号公報)に開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−113679号公報
【特許文献2】特開平5−260264号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献2の画像処理装置を用いて生成されるパノラマ画像は搬送装置上のワークを撮像したものではなく、ワークの計測情報とは何ら関連付されていない。
【0009】
この発明の目的は、撮像画像を用いてワークを搬送する経路上の状態把握を支援するための情報を出力する画像処理装置および画像処理プログラムを提供することである。
【課題を解決するための手段】
【0010】
この発明のある局面に従う、連続する撮像の前後で撮像範囲に重複領域を有する撮像部に接続される画像処理装置は、撮像部によって得られる複数枚の撮像画像を受け付けるインターフェイスと、撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、複数枚の撮像画像を、重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ重なり範囲における被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、合成画像と、当該合成画像に関連付けて重なり範囲を示す情報とを出力する出力手段と、を備える。
【0011】
好ましくは、計測結果は、撮像画像における被写体に相関する図形であって、合成手段は、図形の少なくとも一部が、重なり範囲に含まれるか否かを判定する判定手段を、含み、図形の少なくとも一部が、重なり範囲に含まれると判定されたとき、被写体の計測結果の画像を当該重なり範囲に重畳させた合成画像を生成する。
【0012】
好ましくは、合成手段は、連続する撮像によって得られる複数枚の撮像画像における、単位時間当たりの画像の移動量から、出力態様を決定する手段を、含み、出力手段は、決定された出力態様に基づき、合成画像の出力する。
【0013】
好ましくは、画像処理装置は、合成画像を生成する場合に、生成に関するエラーを検出する手段と、検出したエラーを処理する手段と、をさらに備える。
【0014】
好ましくは、上述のエラーを検出する手段は、合成画像を生成するための撮像画像の不足を検出する。
【0015】
好ましくは、出力手段は、合成画像における各撮像画像の出力態様を相違させる。
好ましくは、画像処理装置は、外部からの操作を受け付ける操作入力部を、さらに備え、出力手段は、合成画像における操作入力部によって選択された撮像画像を拡大して出力する。
【0016】
好ましくは、画像処理装置は、操作入力部が受け付ける操作によって指示される計測結果を、各撮像画像に対応する計測結果のうちから選択する選択手段を、さらに備え、出力手段は、選択手段により選択された計測結果に対応する撮像画像と、当該撮像画像の前後で撮像された撮像画像とから成る合成画像を出力する。
【0017】
好ましくは、出力手段は、合成画像における撮像画像のうちから、対応する計測結果が予め指定された値を指示する撮像画像を選択して出力する。
【0018】
好ましくは、出力手段は、合成画像における撮像画像のうち、撮像順が奇数番目の撮像画像に対応する計測結果と、偶数番目の撮像画像に対応する計測結果との出力態様を異ならせる。
【0019】
好ましくは、画像処理装置は、計測手段による計測処理の所要時間に関する情報を出力する手段を、さらに備える。
【0020】
好ましくは、所要時間に関する情報は、連続する撮像の前後の時間間隔に対する、撮像画像の計測処理の所要時間の比である。
【0021】
好ましくは、合成画像の各撮像画像について比を取得し、合成画像と、当該合成画像の各撮像画像に関連付けて比を出力する。
【0022】
この発明の他の局面に従えば、連続する撮像の前後で撮像範囲に重複領域を有する撮像部に接続されるコンピュータで実行される画像処理プログラムが提供される。
【0023】
画像処理プログラムは、コンピュータを、撮像部によって得られる複数枚の撮像画像を受け付けるインターフェイスと、撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、複数枚の撮像画像を、重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ重なり範囲における被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、合成画像と、当該合成画像に関連付けて重なり範囲を示す情報とを出力する出力手段、として機能させる。
【発明の効果】
【0024】
本発明によれば、オペレータは、ワークを搬送する経路上の状態把握をするための情報を取得できる。
【図面の簡単な説明】
【0025】
【図1】本発明の実施の形態1に係る視覚センサを利用したコンベアトラッキングシステムの構成を示す模式図である。
【図2】本発明の実施の形態1に係る視覚センサを利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。
【図3】本発明の実施の形態1に係る撮像画像処理のための機能構成について示す模式図である。
【図4】本発明の実施の形態1に係る撮像画像処理のためのデータの記憶内容示す模式図である。
【図5】本発明の実施の形態1に係るパノラマ画像の生成手順を説明するための図である。
【図6】本発明の実施の形態1に係る処理のメインフローチャートである。
【図7】本発明の実施の形態1のパノラマ画像を説明するための模式図である。
【図8】本発明の実施の形態1に係るパノラマ画像の表示態様の他の例を説明する図である。
【図9】本発明の実施の形態1に係るパノラマ画像のスクロールを説明する図である。
【図10】本発明の実施の形態2に係る処理のメインフローチャートである。
【図11】本発明の実施の形態2に係るパノラマ画像の表示態様を説明する図である。
【図12】本発明の実施の形態2に係るパノラマ画像の表示態様を説明する図である。
【図13】本発明の実施の形態2に係るパノラマ画像の表示態様を説明する図である。
【図14】本発明の実施の形態2に係るパノラマ画像の表示態様を説明する図である。
【図15】本発明の実施の形態2に係るパノラマ画像の表示態様を説明する図である。
【図16】本発明の実施の形態2に係るパノラマ画像の表示態様を説明する図である。
【図17】本発明の実施の形態2に係るパノラマ画像の表示態様を説明する図である。
【図18】本発明の実施の形態2に係る計測結果を閾値を用いて表示するための画面を例示する図である。
【図19】本発明の実施の形態2に係る計測結果を閾値を用いて表示するための画面を例示する図である。
【図20】本発明の実施の形態2に係る重複計測排除のためのパノラマ画像の例を示す図である。
【図21】本発明の実施の形態2に係る撮像間隔に対する計測処理時間の比を表示する画面例を示す図である。
【図22】本発明の実施の形態2に係るパラメータ変更のための画面例を示す図である。
【図23】本発明の実施の形態2に係る撮像パラメータの変更処理のフローチャートである。
【図24】本発明の実施の形態3に係るキャリブレーションを説明するための図である。
【図25】本発明の実施の形態3に係るキャリブレーションによって取得されるパラメータセットの一例を示す図である。
【図26】本発明の実施の形態3に係るキャリブレーションの手順を説明するための図である。
【図27】本発明の実施の形態3に係るキャリブレーションの手順を説明するための図である。
【図28】本発明の実施の形態3に係るキャリブレーションの手順を説明するための図である。
【図29】本発明の実施の形態4に係る処理フローチャートである。
【図30】本発明の実施の形態4に係る撮像画像処理のための機能構成について示す模式図である。
【図31】本発明の実施の形態4に係る画像に計測結果を重ね合わせる処理概要を説明する図である。
【図32】本発明の実施の形態4に係る画像に計測結果を重ね合わせる処理を説明する図である。
【図33】本発明の実施の形態4に係る画像に計測結果を描画するか否かの判定を説明する図である。
【図34】本発明の実施の形態4に係るパノラマ画像の表示態様を説明する図である。
【図35】本発明の実施の形態4に係るパノラマ画像の表示態様を説明する図である。
【図36】本発明の実施の形態4に係るパノラマ画像の表示態様を説明する図である。
【図37】本発明の実施の形態4に係るパノラマ画像の表示態様を説明する図である。
【図38】本発明の実施の形態4に係るパノラマ画像の表示の一例を示す図である。
【図39】本発明の実施の形態4に係るパノラマ画像の表示の他の例を示す図である。
【図40】本発明の実施の形態5に係るサポート装置のハードウェア構成を示す模式図である。
【発明を実施するための形態】
【0026】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0027】
[実施の形態1]
図1は、本発明の実施の形態1に係る視覚センサを利用したコンベアトラッキングシステムの構成を示す模式図である。図1に示すコンベアトラッキングシステムは、2つの搬送装置(コンベア)10および20を含む。コンベア10および20は、それぞれ駆動ローラ12および22によって回転駆動される。以下では、コンベア10および20をそれぞれライン1およびライン2とも称す。図1に示す例では、ライン1は、紙面右側に移動し、ライン2は、紙面左側に移動する。ライン1には、搬出装置30等によって紙面左側からワークWがランダムに提供される。このライン1上のワークWは、紙面左側から紙面右側へ移動する。ワークWとしては、典型的には、お菓子等の食品や各種の錠剤等が想定される。
【0028】
本実施の形態に係る視覚センサ100は、ライン1上の予め定められた位置に設けられる。視覚センサ100は、ワークなどの被写体を撮像するための撮像部と当該撮像部によって撮像された画像を処理するための撮像画像処理部とを一体的に構成したものである。ただし、撮像部と撮像画像処理部とを別体として構成してもよい。
【0029】
視覚センサ100は、その撮像視野がライン1の幅方向(搬送方向とは直交する方向)の全体を含むように設定されている。撮像視野は、撮像部(カメラ)の画角(または視野角)の設定を用いて決定することができる。本明細書では、撮像視野は、撮像部で撮像され得る範囲に相当し『撮像範囲』と呼ぶこともある。
【0030】
上述の撮像範囲となるように設置された視覚センサ100が、予め定められた周期で連続的に撮像を行うことで、ライン1上をランダムに流れてくるワークWを順次撮像できる。視覚センサ100は、この順次撮像される画像に対してパターンマッチング等の計測処理を行うことで、各ワークの位置決めおよびトラッキング処理を行う。このように、視覚センサ100の撮像部(後述の図2に示す撮像部110)は、搬送装置であるコンベア10上を搬送されるワークWを撮像するように配置されている。そして、この撮像部110には、撮像画像を処理するための撮像画像処理部120(後述の図2を参照)が接続される。
【0031】
ライン1の搬送方向には、視覚センサ100の下流側に、ワークWを把持してライン2へ移動させるロボット300が配置されている。このロボット300は、ワークWを把持するためのアームを有しており、このアームを目的位置に移動させることで、ライン1上のワークを把持する。すなわち、ロボット300は、搬送装置であるコンベア10(ライン1)の搬送経路において、視覚センサ100の撮像部の撮像範囲より下流側に配置されるとともにワークWを取り扱う移動機械に相当する。より具体的には、ロボット300は、そのアームを目的のワークWに位置決めして、ピックアップしてライン2上に整列する。
【0032】
さらに、ロボット300は、ライン1に沿って移動するための移動機構(図示せず)上に配置されており、所定の範囲に亘って移動する。このロボット300の移動範囲をトラッキング範囲とも称す。
【0033】
ロボット300のトラッキング処理および位置決め処理については、ライン1に設けられたエンコーダ14による検出結果を用いて制御される。このエンコーダ14は、典型的には、ロータリーエンコーダが採用され、回転に伴ってパルス信号を発生する。この発生するパルス信号のパルス数をカウントすることで、コンベア10(ライン1)と連結されたローラの回転数、すなわち、エンコーダ14が発生するパルス信号は、搬送装置であるコンベア10の搬送経路における移動量を示す信号に相当し、このパルス信号に基づいて、コンベア10の移動量が算出される。
【0034】
ロボット300は、ロボット制御装置200からの指示に従って動作する。すなわち、ロボット制御装置200は、移動機械であるロボット300を制御するための制御装置である。ロボット制御装置200は、視覚センサ100とネットワークNWを介して接続されており、視覚センサ100によって検出された各ワークWの位置に基づいて、ロボット300に対してワークWの把持動作に必要な指示を与える。
【0035】
ネットワークNWには、視覚センサ100およびロボット制御装置200に加えて、操作表示装置500、およびパーソナルコンピュータに相当する機能を有するサポート装置600が接続されている。操作表示装置500は、視覚センサ100からの処理結果やロボット制御装置200からのロボット300の動作状態などを表示するとともに、ユーザからの操作に応答して、視覚センサ100および/またはロボット制御装置200へ各種の指示を与える。
【0036】
図1に示すコンベアトラッキングシステムにおいては、生産性を向上するために、ライン速度(搬送速度)をより高めたいという潜在的なニーズが存在する。このようなニーズに対処するため、本実施の形態に係るコンベアトラッキングシステムにおいては、エンコーダ14が発生するパルス信号をロボット制御装置200だけではなく、視覚センサ100にも入力するという構成を採用する。このように、視覚センサ100およびロボット制御装置200が同期して対象の搬送装置(コンベア)の位置情報を取得することで、ロボット制御装置200と視覚センサ100との間のネットワークNWを介した通信による同期をとった動作が可能となる。ここでは、ロボット制御装置200と視覚センサ100との間での同期をとった動作制御に関する詳細は略す。
【0037】
<撮像動作と移動量>
次に、図1に示すコンベアシステムにおける視覚センサ100の撮像動作と移動量の関係について説明する。
【0038】
視覚センサ100は、ライン1を撮像する。視覚センサ100の撮像動作は、ロボット制御装置200からの撮像指示に応じて開始される。この撮像指示は、視覚センサ100とロボット制御装置200とを接続するネットワークNW経由で搬送される。このネットワークNWは、典型的には、イーサネット(登録商標)などの汎用的なネットワークを採用することができる。
【0039】
視覚センサ100は、撮像指示をロボット制御装置200から受信するように構成されており、この撮像指示に応答して撮像を開始する。これにより、視覚センサ100は、撮像視野を写した画像を順次取得する。そして、視覚センサ100は、当該画像に対して計測処理を実行する。さらに、視覚センサ100は、この計測処理によって得られた各ワークWの撮像時の位置情報をロボット制御装置200へ送信する。このように、視覚センサ100は、撮像部の撮像によって得られた画像に対して計測処理を行うことで、画像中の予め登録されたワークに対応する領域の位置情報を取得する。
【0040】
より具体的には、ロボット制御装置200は、エンコーダ14からのパルス信号に含まれるパルス数をカウントし、予め定められた値以上の数のパルスが入力されたタイミングで、ネットワークNWを経由して視覚センサ100に対して撮像指示を送出する。
【0041】
視覚センサ100からの各ワークWの位置情報は、ネットワークNWを介してロボット制御装置200へ送信される。ロボット制御装置200は受信する位置情報を用いて、ロボット300に対して把持動作に必要な指示を与える。ここでは、ロボット300の把持動作に関する詳細は略す。
【0042】
ライン1に設けられたエンコーダ14の検出結果に応じて生成されるパルス信号は、視覚センサ100およびロボット制御装置200へ入力されるように構成されている。視覚センサ100およびロボット制御装置200は、パルス信号に含まれるパルス数をカウントするためのエンコーダカウンタをそれぞれ有している。エンコーダ14からのパルス信号は、並列的に、視覚センサ100およびロボット制御装置200に入力されるので、それぞれのエンコーダカウンタを同じタイミングで初期化(カウンタリセット)しておけば、その後に入力されるパルス信号についてのカウンタ値は、互いに同じ値、すなわち、カウンタ値についての同期をとることができる。
【0043】
より具体的には、視覚センサ100およびロボット制御装置200には、いずれも、エンコーダ14からのパルス信号に含まれる1パルスあたりのコンベアの移動量が予め設定されている。さらに、視覚センサ100およびロボット制御装置200のそれぞれのエンコーダカウンタについても、互いに同一のパラメータ(カウンタ最大値、カウンタ最小値、1パルスに対する増加値など)が設定されている。すなわち、視覚センサ100のエンコーダカウンタは、ロボット制御装置200のエンコーダカウンタとの間で、カウントに関して同一のパラメータが設定されている。
【0044】
また、これらのエンコーダカウンタによるカウンタ値は、生産ラインの稼動前に0に初期化される。すなわち、視覚センサ100のエンコーダカウンタは、パルス信号に含まれるパルス数のカウント開始前に、ロボット制御装置200のエンコーダカウンタとともに、リセットされる。
【0045】
このように本実施の形態においては、視覚センサ100とロボット制御装置200との間でコンベア10の搬送経路における移動量を同期して保持する手段が実現される。
【0046】
<ハードウェア構成>
図2は、本発明の実施の形態1に係る視覚センサを利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。図2を参照して、視覚センサ100は、撮像部110と、撮像画像処理部120とを含む。撮像画像処理部120は操作表示装置500と通信する。ここでは、ロボット制御装置200およびサポート装置600の図示を略している。
【0047】
図2では、撮像部110から、撮像によって得られた撮像画像を受理して処理する画像処理装置は、撮像画像処理部120と操作表示装置500とを含んで構成される。なお、操作表示装置500の機能をサポート装置600が備えてもよい。この場合には、画像処理装置は、撮像画像処理部120の機能とサポート装置600の機能とを含んで構成される。
【0048】
撮像部110は、撮像視野に存在する被写体を撮像する装置であり、主体たる構成要素として、レンズや絞りなどの光学系と、CCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどの受光素子とを含む。撮像部110は、撮像画像処理部120からの指令に従って撮像するとともに、その撮像によって得られた画像データを撮像画像処理部120へ出力する。
【0049】
撮像画像処理部120は、CPU(Central Processing Unit)122と、メモリ124と、撮像制御部126と、通信インターフェイス(I/F)128と、入出力インターフェイス(I/F)130と、エンコーダカウンタ132と、着脱自在の記録媒体の一例であるCD−ROM(Compact Disk-Read Only Memory)136が装着されるメモリインターフェイス(I/F)135とを含む。これらのコンポーネントは、バス134を介して互いにデータ通信可能に接続されている。
【0050】
CPU122は、撮像画像処理部120において主たる演算を行うプロセッサである。メモリ124は、CPU122によって実行される各種プログラム、撮像部110によって撮像された画像データ、各種パラメータなどを格納する。典型的には、メモリ124は、DRAM(Dynamic Random Access Memory)などの揮発性記憶装置と、FLASHメモリなどの不揮発性記憶装置とからなる。
【0051】
撮像制御部126は、CPU122などからの内部コマンドに従って、接続されている撮像部110における撮像動作を制御する。撮像制御部126は、撮像部110に対して各種コマンドを送信するインターフェイスと、撮像部110からの画像データを受信するインターフェイスとを有している。
【0052】
通信インターフェイス128は、操作表示装置500との間で各種データをやり取りする。典型的には、視覚センサ100および操作表示装置500とはイーサネット(登録商標)を介して接続されており、通信インターフェイス128は、このようなイーサネット(登録商標)に準拠したハードウェアである。
【0053】
入出力インターフェイス130は、撮像画像処理部120から外部へ各種信号を出力し、あるいは、外部からの各種信号を入力する。特に、入出力インターフェイス130は、エンコーダ14で生成されるパルス信号を受け入れ、その信号をデジタル信号に変換してエンコーダカウンタ132へ出力する。
【0054】
エンコーダカウンタ132は、エンコーダ14からのパルス信号に含まれるパルス数をカウントし、カウント値を出力する。このエンコーダカウンタ132は、基本的には、CPU122の演算サイクルとは独立して動作するため、エンコーダ14からのパルス信号に含まれるパルス数を取り逃すことがない。
【0055】
一方、操作表示装置500は、メモリ520を含む演算処理部510と、通信インターフェイス(I/F)528と、入出力インターフェイス(I/F)550と、液晶などからなる外部のディスプレイ502の表示動作を制御する表示コントローラ540と、オペレータが操作するボタン,スイッチなどからなる操作部503からの操作を受付ける入力インターフェイス(I/F)550と、着脱自在の記録媒体の一例であるメモリカード531が装着されるメモリインターフェイス(I/F)529とを含む。これら各部は、表示用DSP(Digital Signal Processor)など各種プロセッサを用いて構成される。
【0056】
ここでは、ディスプレイ502と操作部503を個別にしているが、両者が一体的に構成された、いわゆるタッチパネルで提供されてもよい。
【0057】
演算処理部510は、視覚センサ100からの画像データを受信し、受信した画像データを用いて表示コントローラ540を制御することにより、ディスプレイ502に画像を表示させ、また操作部503のオペレータ操作による指示を入力インターフェイス550を介して入力する。メモリ220には、視覚センサ100から受信する画像データが格納される。また、視覚センサ100の計測処理によって検出されたそれぞれのワークWの計測結果などの情報が格納される。
【0058】
通信インターフェイス(I/F)528は、視覚センサ100の撮像画像処理部120との間で各種データをやり取りする。典型的には、視覚センサ100および操作表示装置500とはイーサネット(登録商標)を介して接続されており、通信インターフェイス528は、このようなイーサネット(登録商標)に準拠したハードウェアである。
【0059】
<機能構成>
図3は、本発明の実施の形態1に係る撮像画像処理のための機能構成について示す模式図である。図4は、本発明の実施の形態1に係る撮像画像処理のためのデータの記憶内容示す模式図である。
【0060】
図3に示す各機能は、撮像画像処理部120のCPU122がメモリ124に予め格納されたプログラムを実行することにより実現されると想定するが、各機能は、プログラムのみならず、プログラムと回路の組合せで実現されてもよい。
【0061】
撮像画像処理部120で実行される各種プログラムは、CD−ROM136に格納されて流通する。このCD−ROM136に格納されたプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ機能を有するメモリインターフェイス135によって読取られ、メモリ124などへ格納される。あるいは、上位のホストコンピュータなどからネットワークNWを通じてプログラムをダウンロードするように構成してもよい。
【0062】
本実施の形態では、ライン1上をワークWが搬送される状態において、撮像部110が撮像範囲を連続的に撮像して取得される各画像データを重なり合わせながら繋げることにより、ライン1上の上流から下流までの全景に対応する画像を生成する。この全景に対応する画像を、パノラマ画像と称する。
【0063】
CPU122は、パノラマ画像のための処理機能を有する。具体的には、撮像画像についてワークの計測処理を実行する計測処理部221、パノラマ画像の画像どうしの重なり範囲を取得するための重なり取得部222、重なり範囲で画像どうしが重なり合うようなパノラマ画像を生成するための画像生成部223、撮像間隔に対する計測処理の所要時間の比を取得するための比取得部225、各種のパラメータ(パラメータの種類および/または値)を更新するためのパラメータ更新部226、およびパノラマ画像を各撮像画像に分割する画像分割部229を備える。
【0064】
パラメータ更新部226は、計測処理に係るパラメータを更新するための計測パラメータ更新部227、および撮像間隔に係るパラメータを更新するための撮像パラメータ更新部228を含む。
【0065】
上述の計測処理には、典型的には、予め登録されたワークWについてのモデル画像に基づくパターンマッチングを用いたサーチ処理がある。サーチ処理では、ワークWの特徴部分を画像パターン(モデル)として予め登録しておき、入力画像のうち、当該予め登録されているモデルと最も似ている部分を入力画像から探し出す処理である。このとき、モデルと最も似ている部分の位置・傾き・回転角度や、モデルに対してどの程度似ているかを示す相関値などが算出される。また、ラベリング処理を適用するとした場合には、予め登録したモデルまたは表示属性(色など)と一致している部分を入力画像から探し出し、当該探し出した部分にラベル(番号)を付与する。これらの番号を利用することで、番号の指定に応答して、指定された部分の面積や重心位置を算出したりする。
【0066】
ここでは、計測処理部221は、パターンマッチングによって算出されるワークWの位置と相関値を、計測結果として出力し、また、計測処理のパラメータ(種類,値)は、相関値を算出するための相関係数の種類または値を指すと、想定する。
【0067】
図4を参照して、メモリ124には、撮像部110から出力される撮像画像の画像データ333と、各画像データ333に対応して関連データが格納されるテーブル331と、パノラマ画像データ332と、撮像パラメータ350とを含むデータが格納される。
【0068】
テーブル331は、撮像毎に取得される撮像画像の画像データ333に対応する関連データは、当該画像データ333についての計測処理による計測結果334、ずれ量335、当該画像データを撮像時に入力するエンコーダカウンタによるカウンタ値336、当該画像データについての計測処理のパラメータ(種類および値)337、および後述する撮像間隔339を含む。計測結果334は、対応する画像データ333を計測処理部221によって計測処理した場合に取得される相関値および画像座標位置などを含む。パラメータ337は、相関値等を算出するための相関係数の種類または値を指す。
【0069】
<パノラマ画像の生成処理>
図5は、本発明の実施の形態1に係るパノラマ画像の生成手順を説明するための図である。図5を参照して、画像生成部223によるパノラマ画像の生成処理について説明する。
【0070】
パノラマ画像は、公知のパノラマ合成技術を使用して生成してもよいが、ここでは、エンコーダカウンタによるカウンタ値336を用いたパノラマ画像の生成処理を説明する。
【0071】
パノラマ画像の生成に先立って、重なり取得部222により、各画像データ333についてずれ量335が取得されて、テーブル331に格納される。具体的には、重なり取得部222は、撮像時のエンコーダカウンタ132からカウンタ値336を取得し、撮像画像の画像データ333と関連付けてテーブル331に格納する。このように、撮像画像が取得される毎に、画像データ333とカウンタ値336が取得されてテーブル331に格納される。
【0072】
重なり取得部222によるずれ量335の取得手順について説明する。エンコーダカウンタ132によるカウンタ値1パルス当りのコンベアのライン1上での移動量を表す移動量ベクトルをEpc=(Xp,Yp)とする。また、撮像画像の画像データ333の1ピクセル当りの変換係数:R[mm/pix]は予め決定されて、メモリ124に格納されているとする。この場合、カウンタ値336の1パルス当りの画像上での移動量ベクトルはEpp=(Xp/R,Yp/R)と規定することができる。なお、本実施の形態では、説明を簡単にするために、Epc=(Xp,0)とする。
【0073】
ここで、図5を参照して、N枚目の画像データ333の撮像時のカウンタ値336をT(n)とし、(N+1)枚目の画像データ333の撮像時のカウンタ値336をT(n+1)とすると、N枚目と(N+1)枚目の画像のずれ量Mは、M=(T(n+1)−T(n))×Eppと算出することができる。
【0074】
したがって、重なり取得部222は、テーブル331から読出したカウンタ値336を用いてN枚目と(N+1)枚目の画像データ333のずれ量Mを算出することができる。算出されたずれ量Mは、ずれ量335としてテーブル331に格納される。テーブル331の画像データ333について、画像データD(i)に対応するずれ量335は、画像データD(i+1)とのずれ量Mに相当する。
【0075】
<パノラマ画像の生成>
画像生成部223による、パノラマ画像の生成について説明する。CPU122が操作表示装置500からモニタ指示を受信する都度、画像生成部223はパノラマ画像を生成する。
【0076】
テーブル331には、撮像部110により撮像されて取得される画像データ333が、撮像の順番に従って順次に格納される。パノラマ画像生成時には、テーブル331にパノラマ画像を生成するために必要な数の画像データ333が格納されていると想定する。
【0077】
画像生成部223は、モニタ指示を受信すると、テーブル331からN枚目と(N+1)枚目の画像データ333とを順に読出し、すなわち撮像順に従って読出し、読出した順に従って画像データ333を、メモリ124の予め定められた領域に配列する。この処理を繰返すことにより、連続して撮像された複数枚(具体的には2枚以上)の画像データ333からなるパノラマ画像データ332が生成される。
【0078】
パノラマ画像データ332は、パノラマ画像を生成するのに用いた複数の画像データ333とともに、テーブル331から読出された各画像データ333に関連する計測結果334および、ずれ量335を含み、さらに、当該画像のパノラマ画像における位置338、および比340のデータを含む。なお、比340の詳細は後述する。
【0079】
画像生成部223は位置338を次のように決定する。つまり、ここでは、パノラマ画像のサイズは、ディスプレイ502のサイズに応じたサイズに予め決められており、また、画像データ333のサイズも予め決められている。したがって、パノラマ画像を構成する画像データ333の枚数が決まると、各画像データ333のパノラマ画像における位置は、ずれ量335により一意に決定される。
【0080】
画像生成部223は、パノラマ画像データ332を生成する都度、生成に用いた複数の画像データ333のうち、最後に読出した、すなわち最も最近に撮像された画像データ333を指示するポインタ360をテーブル331に設定する。
【0081】
画像生成部223は、次回にモニタ指示を入力すると、ポインタ360が指示する画像データ333の次位以降に格納される画像データ333を用いて、次の新たなパノラマ画像のデータを生成する。
【0082】
<メインフローチャート>
図6は、本発明の実施の形態1に係る処理のメインフローチャートである。図7は、本発明の実施の形態1のパノラマ画像を説明するための模式図である。図7では、上段の撮像画像の画像データ333それぞれを、撮像された順番で対応するずれ量335に従って重ね合わせることにより、下段のパノラマ画像が生成される。各画像データ333には、ライン1上を搬送されるワークの画像60が含まれている。パノラマ画像には、各画像データとともに、各画像データについての計測処理結果の画像61と、重ね合わせ領域の画像62がオーバーレイ(重畳)されて同時表示される。
【0083】
ここでは、計測処理結果は画像61で表示したが、パノラマ画像と関連付けて表示する
場合には、重畳される画像に限定されず個別のグラフ,数値などで表示してもよい。また、重ね合わせ領域は画像62で重畳して表示するとしたが、重畳する態様に限定されず、パノラマ画像に関連付けて表示する態様であればよい。図7のパノラマ画像の生成および表示手順については、図6のフローチャートを参照して説明する。
【0084】
ここでは、テーブル331には、撮像部110の撮像により取得された複数の画像データ333と、各画像データ333に対応して関連データが格納されていると想定する。
【0085】
まず、CPU122は、テーブル331から、画像生成部223によって生成されたパノラマ画像データ332を読出し、操作表示装置500に送信する。これにより、操作表示装置500の演算処理部510は、通信インターフェイス528を介してパノラマ画像データ332を受信する(ステップS1)。受信したパノラマ画像データ332は、メモリ520に格納される。
【0086】
演算処理部510は、メモリ520から、パノラマ画像データ332の各画像データ333を、関連付けされたずれ量335と位置338に従って、ディスプレイ502に重ね合わせて表示する(ステップS2)。これにより、ディスプレイ502にはパノラマ画像が表示される。
【0087】
次に、演算処理部510は、メモリ520から各画像データ333に関連付けされた計測結果334を読出し、計測結果334に基づく画像61をディスプレイ502のパノラマ画像上に表示する(ステップS3)。画像61の表示位置は、計測結果334に含まれる画像座標位置により決定することができる。また、パノラマ画像上に、画像データ333どうしの重ね合わせ領域を表す画像62を同時表示する(ステップS3)。
【0088】
オペレータは、操作部503を用いてモニタ継続の操作または中止の操作をする。入力インターフェイス550は当該操作に応じてモニタ継続または中止の指示を受付けて出力する。演算処理部510は、入力した指示に基づき、モニタ継続または指示を判定する(ステップS4)。
【0089】
中止と判定すると(ステップS4でYES)、一連の処理は終了するが、継続と判定すると(ステップS4でNO)、処理はステップS1に戻る。これにより、演算処理部510は、通信インターフェイス528を介して、撮像画像処理部120にモニタ指示を送信する。
【0090】
撮像画像処理部120の画像生成部223は、受信したモニタ指示に応答して、次のパノラマ画像データ332を生成する。以降は、新たに生成されたパノラマ画像データ332について、ステップS1以降の処理が同様に行われるので、オペレータはディスプレイ502に表示される新たなパノラマ画像を用いてライン1をモニタすることができる。
【0091】
ディスプレイ502には、図7の下段のようなパノラマ画像が表示されることから、オペレータは計測処理結果の画像61と、重ね合わせ領域の画像62を同時に確認することができる。画像60,61を確認することで、ワークを視覚センサ100により検出することができているかを確認することができる。
【0092】
また、オペレータは、重ね合わせ領域の画像62を確認することで、撮像間隔を確認することができるため、ワークを検出できない原因が計測処理に拠るのか、または撮像間隔に拠るのかを判断することができる。
【0093】
<他の表示態様>
本実施の形態1におけるパノラマ画像の表示態様は、図7に示すものに限定されず、次のような表示態様であってもよい。
【0094】
図8は、本発明の実施の形態1に係るパノラマ画像の表示態様の他の例を説明する図である。パノラマ画像の表示態様は、図8(A)に示すようにワークの画像60に関連付けて計測処理結果に基づく画像61を表示するとともに、重ね合わせ領域の画像62を太線枠で囲むものとしてもよい。また、画像61は計測処理結果の値(相関値)に応じて色分けして表示してもよい。
【0095】
また、図8(B)に示すように、重ね合わせ領域の画像62は当該領域を予め定められた色63で表示してもよい。また、図8(C)に示すように、パノラマ画像においてずれ量Mで重ね合わされた一連の画像について、N枚目と(N+1)枚目、換言すると奇数番目の画像と偶数番目の画像とは、表示態様を相違させてもよい。たとえば、背景色64を異ならせて表示してもよい。
【0096】
<スクロール表示>
図9は、本発明の実施の形態1に係るパノラマ画像のスクロールを説明する図である。図9では、ディスプレイ502の表示領域は、パノラマ画像の表示領域72と、スライドバー70の表示領域と、選択画像73の表示領域とを含む。
【0097】
領域72では、紙面横方向に複数枚の画像が一列に並んだパノラマ画像が表示されており、スライドバー70の延びる方向は、当該画像列が延びる方向に一致する。オペレータは、スライドバー70上のスライダ71をスライド操作する。スライダ71の移動量(移動方向、移動距離)は入力インターフェイス550を介して演算処理部510により検出されて、演算処理部510は、検出した移動量に係るスクロール指示を表示コントローラ540に出力する。表示コントローラ540は、スクロール指示に係る移動量に従って、領域72の画像(パノラマ画像)を移動させて、すなわちスクロールさせて表示する。
【0098】
ここでは、スクロール可能なように、メモリ529には、十分な枚数の画像データ333からなるパノラマ画像データ332が格納されているものと想定する。
【0099】
また、オペレータは、領域72に表示されたパノラマ画像における複数の画像のうちから所望の画像を、操作部503を介したクリック操作などで選択することができる。選択操作がされると、演算処理部510は、入力インターフェイス550を介してクリック操作によるクリック位置を検出する。そして、検出したクリック位置とパノラマ画像データ332の位置338とに基づき、選択された画像に対応する画像データ333を、選択画像73として拡大して表示する。
【0100】
[実施の形態2]
次に、実施の形態2について説明する。本実施の形態では、オペレータが画像処理における各種パラメータを変更するのに好適な例を説明する。
【0101】
図10は、本発明の実施の形態2に係る処理のメインフローチャートである。図10の処理では、計測処理に係るパラメータが変更される。
【0102】
まず、CPU122は、テーブル331から、画像生成部223によって生成されたパノラマ画像データ332を読出し、操作表示装置500に送信する。これにより、操作表示装置500の演算処理部510は、通信インターフェイス528を介してパノラマ画像データ332を受信する(ステップS1a)。受信したパノラマ画像データ332は、メモリ520に格納される。
【0103】
次のステップS2およびS3では、実施の形態1と同様に、ディスプレイ502にパノラマ画像が表示され、パノラマ画像に計測処理結果の画像61と、重ね合わせ領域の画像62がオーバーレイされて同時表示される。
【0104】
オペレータは、計測処理のパラメータを変更する場合には、操作部503を操作して、パラメータを変更するための情報を入力する(ステップS4a)。具体的には、パラメータの種類と、変更後の値とを指示する情報を入力する。
【0105】
パラメータを変更するための情報は、演算処理部510から、通信インターフェイス528を介して撮像画像処理部120に送信される。
【0106】
撮像画像処理部120はパラメータを変更するための情報を受信する。計測パラメータ更新部227は受信した情報を用いて、計測処理のためのパラメータ(種類,値など)を更新し、更新後のパラメータを計測処理部221に出力する。
【0107】
計測処理部221は、更新後のパラメータを用いて、表示中のパノラマ画像の各画像データ333について計測処理を行う。そして、その計測結果を用いて、メモリ124のパノラマ画像データ332の各画像データ333に関連する計測結果334を更新する(ステップS5)。これにより、メモリ124のパノラマ画像データ332は、更新後のパラメータを用いた計測処理による計測結果334を有するデータに編集(更新)された状態となる。
【0108】
オペレータは、編集後のパノラマ画像の確認を希望する場合には、操作部503を介して編集結果の確認要求の操作をする。確認の操作がされると、演算処理部510は、操作に応じて確認指示を入力する。
【0109】
演算処理部510は、確認指示が入力されないと判定すると(ステップS6でYES)、一連の処理を終了させる。一方、入力したと判定すると(ステップS6でNO)、演算処理部510は、撮像画像処理部120に対して確認指示を送信する。
【0110】
撮像画像処理部120では、CPU122は確認指示を受信すると、編集後のパノラマ画像データ332をメモリ124から読出し、操作表示装置500に送信する。これにより、編集後のパノラマ画像データ332を用いて、ステップS1以降の処理が行われる。したがって、オペレータは、更新後のパラメータを用いた計測処理結果をパノラマ画像を用いて確認することができる。
【0111】
ここでは、パラメータ更新後のパノラマ画像は、メモリ124に既に生成されて格納されているパノラマ画像データ332を編集することで取得するとしたが、取得方法は、これに限定されない。たとえば、新たに撮像されて取得された画像データ333を用いてもよい。
【0112】
具体的には、実施の形態1で説明したように、ポインタ360が指示する画像データ333以降に格納されている画像データ333について更新後のパラメータで計測処理を行い新たなパノラマ画像データ332を生成するとしてもよい。
【0113】
また、更新後のパラメータを用いて、テーブル331のパラメータ337を更新しても良い。たとえば、必要に応じて、より特定的にはオペレータが操作部503を介して更新指示を入力したときに、テーブル331のパラメータ337を更新するようにしてもよい。
【0114】
<表示態様>
図11〜図13は、本発明の実施の形態2に係るパノラマ画像の表示態様を説明する図である。上述のように計測処理のパラメータを更新する場合には、オペレータが更新後の値の目安を把握し易いように、計測結果334の値を抽出して表示する。
【0115】
図11を参照して、ディスプレイ502には、計測結果334の値が割当てされる縦軸と、縦軸に直交する横軸が表示される。横軸には、パノラマ画像における各画像データ333の位置を表す値が割当てられる。当該位置は、位置338に基づき取得される。ここでは、縦軸に割当てされる値は、たとえば相関値を指す。
【0116】
グラフ91は、各画像データ333に対応する相関値を線分で繋ぐことにより生成されるグラフを指す。オペレータは、グラフ91から、計測結果334の値が低いまたは高い画像データ333が存在するか否かを速やかに把握することができる。
【0117】
図12では、オペレータの操作に応じて、グラフ91の部分92が選択的に指定された状態が示される。部分92はグラフ91と区別し得るような態様で表示される。たとえば、部分92の囲み枠を赤色で表示する。
【0118】
演算処理部510は、入力インターフェイス550を介して部分92に対応する横軸の値を抽出する。そして、抽出した値に対応する位置338に関連付けされた画像データ333と計測結果334とずれ量335とのデータを、メモリ520から読出し、読出したデータに基づく画像をディスプレイ502に表示する(図13を参照)。
【0119】
図13には、部分92に対応する画像を拡大表示した状態が示される。図13のディスプレイ502では、上段にパノラマ画像93が表示されて、下段にはパノラマ画像93に対応してグラフ911が表示される。上段にパノラマ画像93は、選択された計測結果の部分92に対応する画像データ333と、当該画像データの前後で撮像して取得された画像データ333を含んで構成されるパノラマ画像である。
【0120】
また、グラフ911の横軸が延びる方向と一致する方向に従ってスライドバー94が表示される。オペレータはスライドバー94上のスライダ95をスライド操作することができる。
【0121】
スライド操作によるスライダ95の移動量(移動方向、移動距離)に基づき、演算処理部510は、部分92を移動させて表示する。また、移動後の部分92の位置に関連付けされた画像データ333と計測結果334とずれ量335とのデータを、メモリ520のパノラマ画像データ332から読出し、読出したデータに基づく画像をディスプレイ502に拡大表示する。これにより、スライド操作に連動して、図13のパノラマ画像とグラフ911をスクロール表示することができる。
【0122】
なお、グラフ91の横軸には位置338の値を割当てたが、位置338に代替してカウンタ値336を割当ててもよい。
【0123】
<表示態様の他の例>
グラフ911とパノラマ画像93とは、図14〜図17のような表示態様であってもよい。
【0124】
図14では、図13のパノラマ画像93において計測結果の画像61の表示が略されており、図15では、パノラマ画像93のみが表示されている。
【0125】
図16では、図11のグラフ911に代替して、各ワークWの計測結果の相関値のみが、上段のワークWの画像60に対応付けてプロットされた点912で表示されている。図17では、図16のパノラマ画像93から画像62を消去して、ワークの画像60のみが表示される。なお、図16や図17において、プロットされた点912どうしを線で結んでもよい。
【0126】
オペレータは、操作部503を操作することにより、ディスプレイ502に表示される画像を、図13および図14〜図17の画像のいずれかに切替えることができる。
【0127】
<閾値を用いた表示例>
図18と図19には、計測結果を閾値を用いて表示するための画面が例示される。
【0128】
計測結果334について閾値97が設定された場合には、演算処理部510は、グラフ91の各計測結果334の値(特定的には、相関値)と閾値97とを比較し、比較結果に基づき、グラフ91のうち、閾値97の範囲内に該当する部分を表す画像96を、グラフ91に重畳して表示する(図18を参照)。画像96は、たとえば枠囲みにて表示されて、枠はグラフ91と識別可能な態様で表示される。たとえば、枠とグラフ91の色を異ならせて表示する。
【0129】
画像96が表示されている状態で、オペレータが操作部503を操作すると、演算処理部510は、画像96をグラフ91の他の部分(グラフ91のうち、閾値97の範囲内に該当する部分)に順次に移動させて表示する。
【0130】
図18の画像96は、閾値97の範囲内に該当する部分を指示するとしたが、図19に示すように閾値97の範囲外に該当する部分を指示するとしてもよい。
【0131】
<重複計測を排除するための表示例>
ロボット300がワークWを正確に把持するためには、ライン1上の同一ワークWについて計測処理が2回以上行われる事態(以下、重複計測という)を排除する必要がある。本実施の形態2では、重複計測の排除を支援するための情報が表示される。
【0132】
図20は、本発明の実施の形態2に係る重複計測排除のためのパノラマ画像の例を示す図である。オペレータが、表示されるパノラマ画像から、各ワークWについて重複して計測処理が行われているか否かの確認が容易となるように、演算処理部510は、パノラマ画像中の偶数枚目の画像と奇数枚目の画像とで、計測結果334に基づく画像61を異なる態様で表示する。たとえば、図20では、偶数枚目の画像における計測結果に基づく画像61Aと、奇数枚目の画像における計測結果に基づく画像61Bとは、異なる色で表示される。
【0133】
<計測処理時間の余裕度の表示例>
図21は、本発明の実施の形態2に係る撮像間隔に対する計測処理時間の比を表示する画面例を示す図である。本実施の形態では、撮像間隔に対する計測処理時間の比によって、計測処理時間の余裕の程度を示す。この比を取得するために、以下のように撮像間隔と、計測処理時間とが取得される。
【0134】
CPU122は、まず、撮像間隔を((It×a)/v)により算出する。ここで、It[パルス]は、撮像指示を入力する間隔を指し、a[mm/パルス]は1パルス当たりのコンベア移動量を指し、およびv[mm/sec]はコンベア速度を指す。これらの値は、予めメモリ124に撮像パラメータ350として格納されていると想定する。
【0135】
算出される撮像間隔は、撮像動作により取得される画像データ333に関連付けて、テーブル331に撮像間隔339のデータとして格納される。
【0136】
また、計測処理時間とは、計測処理部221が、1回の撮像動作によって取得された画像データ333について計測処理を開始してから、終了するまでに要する時間を指す。計測処理の開始から終了までは、たとえば、計測処理部221が撮像部110から画像データを入力してから、計測処理の結果を出力するまでを指す。この時間は、CPU122が、図示のないタイマを用いて計測することにより取得することができるが、ここでは、説明を簡単にするために計測処理時間T[sec]を用いる。
【0137】
比取得部225は、比340のデータを取得する。つまり、メモリ520のパノラマ画像データ332の各画像データ333について、当該画像データ333に関連付けされた撮像間隔339と、計測処理時間Tを用いて、(計測処理時間(T)÷撮像間隔)により、撮像間隔に対する計測処理時間の比を算出する。このようにして、各画像データ333について算出した比を、比340として、パノラマ画像データ332の各画像データ333に関連付けて登録する。
【0138】
操作表示装置500では、演算処理部510は比340に基づく情報を表示する。具体的には、撮像画像処理部120から受信して、メモリ520に格納されているパノラマ画像データ332の各画像データ333に関連付けされた比340のデータを用いて、グラフ133(図21参照)の画像を生成し、生成したグラフ133を表示コントローラ540を介してディスプレイ502に表示する。
【0139】
図21を参照して、グラフ133では、縦軸には比340の値が割当てられ、縦軸に直交する横軸にはパノラマ画像の各画像データ333の位置338を指す値が割当てられる。グラフ133では、各画像データ333に関連付けされた比340の値は、棒グラフで表示されるが、表示態様は棒グラフに限定されない。
【0140】
上述の算出式に従えば、比340が値“1”よりも大きい場合には、対応する画像データ333の計測処理は撮像間隔内に終了していないことが示されて、値“1”未満である場合には、計測処理時間に余裕があることが示される。したがって、オペレータは、グラフ133から、パノラマ画像において、計測処理が撮像間隔内に終了していない画像データ333が存在するか否かを速やかに把握することができる。
【0141】
オペレータは、グラフ133から、変数It[パルス]の値、またはコンベア速度の適否を判断するための支援情報を得ることができる。具体的には、変数It[パルス]の値を小さくする、またはコンベア速度を速くするように、設定を変更するか否かの判断を支援するための情報を得ることができる。
【0142】
グラフ133では、比340が値“1”よりも大きい部分については表示態様が変更される。たとえば、枠131を用いて当該部分を囲むことにより強調表示する。また、計測処理時間の余裕の程度に応じて、各画像データ333に対応する棒グラフの色を変更してもよい。
【0143】
図21を参照して、オペレータがスライダ95をスライド操作すると、演算処理部510は、スライダ95の移動量(移動方向、移動距離)を入力し、入力した移動量に連動してパノラマ画像をスクロールし、同時に、グラフ133もスクロールするように、表示コントローラ540を制御する。
【0144】
このように図21の画面によれば、計測処理時間の余裕の程度を提示することができる。したがって、図10のステップS5において計測処理のパラメータを変更した後において、変更後のパラメータを用いた計測処理時間に余裕が有るか否かをオペレータが判断する場合に、判断を支援するための情報を提示することができる。なお、計測処理時間の余裕の程度を示すためには、撮像間隔に対する計測処理時間の比に限らず、計測処理時間そのものを表示してもよい。
【0145】
ステップS5でのパラメータ変更のための画面例が、図22に示される。図22では、オペレータは、画面のボタン171を操作することにより、計測処理のパラメータ変更指示を入力することができる。演算処理部510は変更指示を入力すると、ディスプレイ502の画面を、パラメータを調整するための別の画面(図示せず)に切替える。パラメータを調整するための画面には、たとえば、パラメータの種類、値の範囲(レンジ)の候補が表示される。
【0146】
<撮像パラメータの変更>
図23は、本発明の実施の形態2に係る撮像パラメータの変更処理のフローチャートである。図10では計測処理のパラメータを変更したが、同様にして撮像動作に係るパラメータを変更することができる。
【0147】
図23を参照して、ステップS1a〜S3の処理が図10と同様に行われる。これにより、ディスプレイ502にはパノラマ画像または計測結果のグラフが表示される。
【0148】
表示後、オペレータは操作部503を操作して、撮像動作に係るパラメータを変更するための情報を入力することができる(ステップS4b)。具体的には、パラメータの種類と、変更後の値とを入力する。
【0149】
演算処理部510は、パラメータを変更するための情報を、通信インターフェイス528を介して撮像画像処理部120に送信する。
【0150】
撮像画像処理部120では、撮像パラメータ更新部228は、受信した情報を用いて、メモリ124の撮像パラメータ350を更新する。たとえば、図5で説明したずれ量Mを決定するパラメータを更新することが可能である。
【0151】
操作部503を介して、変更後のパラメータを用いた計測結果の確認指示が入力されないと(ステップS6でYES)、処理は終了する。確認指示が入力されると(ステップS6でNO)、更新後のパラメータを用いた処理が行われる(ステップS7)。
【0152】
ステップS7においては、更新後のパラメータを用いた計測処理が行われる。たとえば、パラメータ更新後のT(n)とT(n+1)に従うタイミングで撮像部110の撮像動作を模擬(シミュレート)することによる、パノラマ画像のデータを取得する。
【0153】
具体的には、画像分割部229は、撮像パラメータ更新部228から変更後のT(n)とT(n+1)を入力し、入力したこれら値を用いて、図5の手順に従って、ずれ量Mを算出する。このようにして算出されたずれ量を、変更後ずれ量MMと称する。
【0154】
画像分割部229は、メモリ124のパノラマ画像データ332に従うパノラマ画像を、先頭の画像データ333から最終の画像データ333まで、順番に、変更後ずれ量MMを用いて抽出する。これにより、パノラマ画像データ332を、当該パノラマ画像を構成する複数の画像データ333に分割することができる。分割により取得される各画像データ333は、変更後のT(n)とT(n+1)に従うタイミングで撮像部110が撮像動作したと想定した場合に取得される画像データを指す。このようにして画像データ333を取得することは、変更後のT(n)とT(n+1)に従うタイミングで撮像部110の撮像動作を模擬(シミュレート)することに相当する。
【0155】
次に、計測処理部221は、画像分割部229により取得された各画像データ333について計測処理を行い、計測結果334を出力する。出力された計測結果334および変更後ずれ量MMなどを用いて、パノラマ画像データ332が生成される。これにより、更新後パノラマ画像データが取得されて、ステップS7の処理は終了する。
【0156】
その後、処理はステップS2に移行する。ステップS2では、更新後パノラマ画像データは、撮像画像処理部120から操作表示装置500に送信される。操作表示装置500の演算処理部510は、受信した更新後パノラマ画像データを用いてディスプレイ502に更新後のパノラマ画像を表示し、重なり領域の画像および計測結果の画像を併せて表示する(ステップS3)。
【0157】
オペレータは、ディスプレイ502に表示される更新後パノラマ画像に関連付けて計測結果を確認することができる。これにより、更新後の撮像パラメータの値が適切であったか否かを判断するための支援情報を得ることができる。
【0158】
[実施の形態3]
本実施の形態では、キャリブレーションによるロボット座標系に従うパノラマ画像の表示について説明する。
【0159】
<キャリブレーション>
まず、視覚センサ100による画像座標系を、ロボット300によるロボット座標系に変換するためのキャリブレーションについて説明する。
【0160】
図24は、本発明の実施の形態に係るキャリブレーションを説明するための図である。図25は、図24に示すキャリブレーションによって取得されるパラメータセットの一例を示す図である。図26〜図28は、本発明の実施の形態に係るキャリブレーションの手順を説明するための図である。
【0161】
図24を参照して、本実施の形態に係るキャリブレーションにおいては、主として、以下の2つの観点でキャリブレーションが行われる。
【0162】
(1) ロボット−コンベア間のキャリブレーション:
このキャリブレーションにおいては、エンコーダ14からのパルス信号に含まれる1パルスあたりのコンベアの移動量が取得される。このコンベアの移動量は、図25の下から2段目に示されるdXおよびdYに相当する。図25に示すように、コンベアの移動量はベクトル量であるので、ロボット座標系のそれぞれの軸について値が取得されることになる。このコンベアの移動量は、ロボット300がエンコーダ14からのパルス信号を受けて、コンベア10上のワーク位置を追跡(トラッキング)するために必要なパラメータである。
【0163】
(2) 視覚センサ−ロボット間のキャリブレーション:
視覚センサ100によって計測されたワークの位置情報(画像座標系の座標値(xi,yi)[pixel])を、ロボット座標系の座標値(X,Y)[mm]に変換するための関係式が取得される。この関係式は、図25の最下段に示される6個のパラメータA〜Fによって定義される。
【0164】
なお、図24に示すように、キャリブレーションを行うためには、ロボット300の位置情報(ロボット座標値)が必要であるので、ロボット制御装置200からネットワークNWを介して視覚センサ100にこれらの位置情報が転送される。
【0165】
次に、キャリブレーションの手順についてより詳細に説明する。なお、本実施の形態に従うコンベアシステムにおいては、ユーザは、上述したようなキャリブレーションの意味を理解せずとも、指定された手順に従って操作するだけで、容易にキャリブレーションを行うことができる。より具体的には、本実施の形態に係るキャリブレーションは、図26〜図28に示す3段階の手順によって実現される。
【0166】
なお、本実施の形態に係るキャリブレーションにおいては、図25の最上段に示すターゲットパターンが描画されたキャリブレーション用シートSが用いられる。このキャリブレーション用シートSに示されたターゲットパターンは、その内部が約90°ずつに塗り分けられた5個の円(マーク)を含む。なお、後述するように、基本的には4個のマークを用いてキャリブレーションが行われるが、追加的に配置された1個のマークは、キャリブレーション用シートSの配置向きを所定方向に統一するために用いられる。
【0167】
(第1段階)
第1段階としては、図26に示すように、ユーザは、ターゲットパターンが描画されたキャリブレーション用シートSを視覚センサ100(撮像部110)の視野内に配置する。そして、ユーザは、視覚センサ100に対して撮像指示を与える。すると、視覚センサ100は、撮像によって得られた画像(ターゲットパターンが被写体として含まれる画像)に対して計測処理を行い、ターゲットパターンに含まれる四隅に配置された4個のマークについての各中心点の座標値を決定する。これによって、ターゲットパターンに含まれる4個のマークについての画像座標系の座標値[pixel]がそれぞれ取得される。この取得される4個の座標値が、図25の最上段に示される(xi1,yi1)、(xi2,yi2)、(xi3,yi3)、(xi4,yi4)に相当する。
【0168】
(第2段階)
第2段階としては、図27に示すように、ユーザは、コンベア10を動かしてターゲットパターンが描画されたキャリブレーション用シートSをロボット300のトラッキング範囲(稼動範囲)内に配置するとともに、ロボット300を操作して、ターゲットパターンに含まれる4個のマークとロボット300との位置関係を対応付ける。
【0169】
より具体的には、まず、ユーザは、コンベア10を動かして、キャリブレーション用シートSをロボット300のトラッキング範囲(稼動範囲)内に配置する。なお、このコンベア10の移動前(キャリブレーション開始時)のカウント値が、予め取得されているものとする。このカウント値が図25の上から2段目に示されるエンコーダカウント値E1(キャリブレーション開始時)に相当する。
【0170】
続いて、ユーザは、ロボット制御装置200に付属しているティーチングペンダント(図示せず)を操作するなどによって、ロボット300のハンド先端をキャリブレーション用シートS上の1つのマークと対応するように位置決めする。ユーザは、この位置決めされた状態で指示を与えることで、ロボット制御装置200が把握しているロボット300の位置情報(ロボット300のハンド先端の位置を示すロボット座標系での座標値)が視覚センサ100へ送信される。このロボット300のハンド先端の位置決めして、および、位置決め状態におけるロボット300の位置情報の視覚センサ100へ送信する処理は、ターゲットパターンに含まれる4個のマークのすべてに対して繰り返し実行される。
【0171】
このような手順によって、ターゲットパターンに含まれる4個のマークに対応するロボット300の位置情報がそれぞれ取得される。この取得される4個のマークに対応するロボット300の位置情報が、図25の上から3段目に示される(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)に相当する。
【0172】
なお、図27に示すように、キャリブレーション用シートSがロボット300のトラッキング範囲(稼動範囲)内に配置された状態は、4個のマークすべてに対応するロボット300の位置情報が視覚センサ100へ送信されるまで維持される。
【0173】
また、視覚センサ100は、図27に示す状態におけるカウント値についても格納する。このカウント値が、図25の上から2段目に示されるエンコーダカウント値E2(コンベアをロボット稼動範囲(上流)まで移動させたとき)に相当する。
【0174】
(第3段階)
第3段階としては、図28に示すように、ユーザは、コンベア10をさらに動かしてキャリブレーション用シートSをロボット300のトラッキング範囲(稼動範囲)の最下流の位置に配置するとともに、ロボット300を操作して、ターゲットパターンに含まれる1個のマークとロボット300との位置関係を対応付ける。
【0175】
より具体的には、まず、ユーザは、コンベア10を動かして、キャリブレーション用シートSをロボット300のトラッキング範囲(稼動範囲)の下流側端部の位置に配置する。
【0176】
続いて、ユーザは、ティーチングペンダント(図示せず)を操作するなどによって、ロボット300のハンド先端をキャリブレーション用シートS上の1番目のマーク(第2段階で座標値(X1,Y1)を取得したマーク)と対応するように位置決めする。ユーザは、この位置決めされた状態で指示を与えることで、ロボット制御装置200が把握しているロボット300の位置情報(ロボット300のハンド先端の位置を示すロボット座標系での座標値)が視覚センサ100へ送信される。
【0177】
このような手順によって、ターゲットパターンに含まれる1番目のマークに対応するロボット300の位置情報がそれぞれ取得される。この取得される1番目のマークに対応するロボット300の位置情報が、図25の上から4段目に示される(X5,Y5)に相当する。
【0178】
また、視覚センサ100は、図28に示す状態におけるカウント値についても格納する。このカウント値が、図25の上から2段目に示されるエンコーダカウント値E3(コンベアをロボット稼動範囲(下流)まで移動させたとき)に相当する。
【0179】
(パラメータ算出処理)
上述したような第1〜第3段階の処理によって取得されたパラメータを用いて、まず、エンコーダ14からの1カウントあたりのワークの移動量dXおよびdYが算出される。より具体的には、以下の式に従って算出される。
【0180】
dX=(X5−X1)/(E3−E2)
dY=(Y5−Y1)/(E3−E2)
これらの式は、図27に示す状態と図28に示す状態との間で、ロボット300のハンド先端がキャリブレーション用シートS内の同一のマークに位置決めされた場合に生じる、カウント値の変化量に対するロボット300の位置情報の変化量を算出することを意味する。これらの演算式によって、1カウントあたりのワークの移動量dXおよびdYが決定される。すなわち、ロボット−コンベア間のキャリブレーションが実現される。
【0181】
また、図26において取得されるカメラ座標系の座標値(xi1,yi1),(xi2,yi2),(xi3,yi3),(xi4,yi4)と、図27において取得されるロボット座標系の座標値(X1,Y1),(X2,Y2),(X3,Y3),(X4,Y4)との対応関係に基づいて、座標系の変換に係る変換式の6個のパラメータA〜Fが決定される。すなわち、公知の手法を用いて、以下の式を満たす(あるいは、誤差が最小となる)パラメータA〜Fが決定される。
【0182】
X=A・xi+B・yi+C
Y=D・xi+E・yi+F
これにより、視覚センサ−ロボット間のキャリブレーションが実現される。
【0183】
パラメータA〜Fが決定されると、CPU122は、カメラ座標系のパノラマ画像を、パラメータA〜Fを用いてロボット座標系の座標値に変換して表示してもよい。これにより、オペレータに対して、ロボット300が把持する時点における搬送路上のワークWの配置を提示することができる。
【0184】
より具体的には、パノラマ画像データ332の計測結果334が示す各ワークの位置(座標値)を、パラメータA〜Fを用いてロボット座標系の座標値に変換し、変換後の座標値に従ってパノラマ画像に各ワークの画像60を表示する。これにより、ロボット300が把持する時点における搬送路上のワークWの配置を提示することができる。
【0185】
[実施の形態4]
本実施の形態では、一つ前に撮像した画像データ333の計測結果334を、今回の撮像した画像データ333の計測結果として重ねることによりパノラマ画像を生成し、生成したパノラマ画像を表示する。これにより、画像どうしが重なった部分においても計測結果を表示することができる。
【0186】
図29は、本発明の実施の形態4に係る処理フローチャートである。図30は、本発明の実施の形態4に係る撮像画像処理のための機能構成について示す模式図である。図30に示す各機能は、撮像画像処理部120のCPU122がメモリ124に予め格納されたプログラムを実行することにより実現されると想定するが、各機能は、プログラムのみならず、プログラムと回路の組合せで実現されてもよい。
【0187】
撮像画像処理部120で実行される各種プログラムは、CD−ROM136に格納されて流通する。このCD−ROM136に格納されたプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ機能を有するメモリインターフェイス135によって読取られ、メモリ124などへ格納される。あるいは、上位のホストコンピュータなどからネットワークNWを通じてプログラムをダウンロードするように構成してもよい。
【0188】
CPU122は、パノラマ画像のための処理機能を有する。具体的には、撮像画像についてワークの計測処理を実行する計測処理部221、パノラマ画像の画像どうしの重なり範囲を取得するための重なり取得部222、パノラマ画像の生成および表示に関する処理を実行するパノラマ画像処理部223Aを備える。計測処理部221と重なり取得部222は、図3で説明したものと同様であり説明は略す。
【0189】
パノラマ画像処理部223Aは、重なり範囲で画像どうしが重なり合うようなパノラマ画像を生成するための画像生成部223B、計測結果を画像に描画すべきか否かを判定する描画判定部223C、およびパノラマ画の生成または表示に関連したエラーを処理するための表示関連処理部225Aを含む。
【0190】
表示関連処理部225Aは、画像落ち処理部225B、エンコーダエラー処理部225Cおよびオーバ/アンダーフロー処理部225Dを含む。これら各部の詳細は後述する。
【0191】
<パノラマ画像の生成>
パノラマ画像処理部223Aは、モニタ指示を受信すると、表示するためのパノラマ画像を図29のフローチャートに従って生成する。このフローチャートでは、説明のために、パノラマ画像を構成する画像データ333をカウントするための変数Nを用いる。なお、テーブル331には、図4に示すようにデータが格納されていると想定する。
【0192】
図29を参照して、パノラマ画像処理部223Aは、まず変数Nに値0を初期設定し(ステップT1)、その後、変数Nを(N=N+1)と更新する(ステップT3)。
【0193】
その後、画像生成部223Bは、テーブル331から変数Nの値により指示される画像データ333を読出し(ステップT5)、読出した画像データ333に、対応する計測結果334の画像データを重畳処理する(ステップT7)。次に、テーブル331から(N+1)の値により指示される画像データ333を読出し(ステップT9)、読出した画像データ333に、対応する計測結果334の画像データを重畳処理する(ステップT11)。
【0194】
その後、画像生成部223Bは、パノラマ画像を生成するために上述のように重畳処理された両画像データ333を重ねて表示するために、N番目の画像データ333の計測結果334を、重畳処理されたN+1番目の画像データ333の計測結果として重ねるように処理する(ステップT13)。たとえば、1番目の画像データ333の計測結果334を、2番目の画像データ333の計測結果として重ねるように処理する。
【0195】
その後、パノラマ画像処理部223Aは、変数Nの値に基づき、予め決められた枚数分の画像データ333を用いたパノラマ画像データ332の生成が終了したか否かを判定する(ステップT15)。生成が終了していないと判定すると(ステップT15でNO)、処理はステップT3に戻り、変数Nの値が(N+1)に更新される。
【0196】
その後、以降の処理を同様に行うことにより、ステップT13では、たとえば、2番目の画像データ333の計測結果334を、3番目の画像データ333の計測結果として重ねるように処理する。
【0197】
このようにして、変数Nが指示する1番目、2番目、3番目、・・・の画像データ333にを用いて、N番目の画像データ333の計測結果334を、N+1番目の画像データ333の計測結果として重ねるようにしてパノラマ画像データ332Aが生成されて、メモリ124に格納される。
【0198】
生成が終了したと判定されると(ステップT15でYES)、パノラマ画像の生成は終了しする。
【0199】
その後、生成されたパノラマ画像データ332Aは、メモリ124から読出されて操作表示装置500に送信される。操作表示装置500では、演算処理部510は、受信したパノラマ画像データ332Aをディスプレイ502に表示する。
【0200】
なお、本実施の形態では、説明を簡単にするために、重ね合わせ領域の表示については詳細説明を略しているが、前述した例えば図8(A)〜(C)のように重ね合わせ領域を表示することができる。
【0201】
ここで、画像生成部223Bによる、N番目の画像データ333の計測結果334を、重畳処理されたN+1番目の画像データ333の計測結果として重ねる処理(ステップT13)について説明する。
【0202】
図31を参照して、画像生成部223Bは、N枚目の画像データ333の計測結果334NをN+1枚目の画像データ333の計測結果として重ねる。
【0203】
具体的には、画像生成部223Bは、計測結果の重ね合わせに際して、まず、パノラマ画像を作成するための必要なデータ(値)を算出する。
【0204】
算出のために、撮像時のエンコーダカウンタ132のカウンタ値Trc[カウント]、1パルスの移動量(キャリブレーションデータ):(ΔX、ΔY)[mm/カウント]、キャリブレーションパラメータ:X[mm]=Ax+By+C・・・式(1)およびY[mm]=Dx+Ey+F・・・式(2)を用いる。
【0205】
また、キャリブレーションパラメータより、[mm]→[ピクセル]に逆変換する下記の式(3)と(4)を、式(1)と(2)から以下のように作成する。
【0206】
x[ピクセル]={E(X−C)−B(Y−F)}/(AE−BD)・・・(3)
y[ピクセル]={A(Y−F)−D(X−C)}/(AE−BD)・・・(4)
また、撮像指示が入力する間隔である撮像トリガ間隔ΔTrを算出する。つまり、N枚目撮像時のエンコーダカウンタ値:Trc(N)[カウント]、およびN+1枚目撮像時のエンコーダカウンタ値:Trc(N+1)[カウント]として、撮像トリガ間隔ΔTrを、ΔTr=Trc(N+1)−Trc(N)と算出する。
【0207】
したがって、上述したロボット座標系に係るキャリブレーションによる算出値を用いて、N枚目の画像からN+1枚目の画像までの画像の移動量は、以下にように算出できる。
【0208】
つまり、N枚目からN+1枚目までの画像の移動量は、ΔTr(ΔX、ΔY)[mm]で規定することができるから、N枚目の計測結果(X(n)、Y(n))をN+1枚目でのロボット座標(X’(n)、Y’(n))に変換するには、以下のように変換することができる。
【0209】
X’(n)=X(n)+ΔTr×ΔXおよびY’(n)=Y(n)+ΔTr×ΔY。
このロボット座標の値を、ピクセル単位に変換するには、式(3)と(4)より、以下のように変換することができる。
【0210】
F’x={E(X’(n)−C)−B(Y’(n)−F)}/(AE−BD)、および
F’y={A(Y’(n)−F)−D(X’(n)−C)}/(AE−BD)。
【0211】
上述の算出結果に従って、画像生成部223Bは、N枚目の画像の計測結果334Nの座標を、(F’x、F’y)として、当該計測結果334Nの画像をN+1枚目の画像データ333に描画する(図32を参照)。これにより、N枚目の計測結果334Nが重ねられたN+1枚目の画像データ333が生成される。
【0212】
これにより、パノラマ画像データ332Aを、各画像データ333が計測結果334Nを含むように生成することができる。そして、パノラマ画像データ332Aに従って表示される当該パノラマ画像においては、画像どうしが重なった部分で計測結果の一部が消える(表示されない)ことはなく、N枚目の画像およびN+1枚目の画像についての計測結果の全てを表示することができる。したがって、パノラマ画像と計測結果を個別に管理する必要はなくデータ管理が容易となり、また、パノラマ画像を表示開始してから終了するまでの処理を短期間のうちに済ませることが可能となる。
【0213】
<計測結果の描画判定>
上述の処理では、画像生成部223Bは、N枚目の計測結果334Nの座標は、N+1枚目の画像データ333の範囲内に位置するとの前提の下に、N枚目の計測結果334Nが重ねられたN+1枚目の画像データを生成した。しかし、N枚目の計測結果334Nの図形の座標が、N+1枚目の画像データ333の範囲から外れる場合もある。
【0214】
そこで、本実施の形態では、描画判定部223Cは、N枚目の計測結果の図形の座標(F’x、F’y)が、N+1枚目の画像の範囲内から外れるか否かを判定する。外れると判定された場合には、画像生成部223Bは、座標(F’x、F’y)に従うN枚目の計測結果を、N+1枚目の画像データに描画しないと決定し、当該描画を省略する。
【0215】
描画判定部223Cの判定処理は、計測結果の画像61が表す図形の種類毎に異ならせることができる。計測結果334Nの画像61が表す図形が、矩形、楕円、および円の線分が所定幅を有した幅あり円を例示して説明する。なお、1枚の画像データ333の画像サイズは、480ピクセル×752ピクセルであると想定する。
【0216】
・矩形の場合
N枚目の計測結果334Nの画像61が表す矩形の左上座標および右下座標が、N+1枚目の画像のロボット座標を用いて、ピクセルに変換することにより、左上座標(xa、ya)および右下座標(xb、yb)として取得されるとき、座標(xa、ya)および座標(xb、yb)が下記の4つの不等式の条件の全てを満たさないと判定されたとき、画像生成部223Bは描画しないと決定し、少なくとも1つの条件を満たすと判定されたとき描画すると決定する。
【0217】
0≦xa≦752、0≦xb≦752、0≦ya≦480、0≦yb≦480
たとえば、図33の場合には、描画判定部223Cは、座標(xb、yb)について上記の4つの条件のうち(0≦xb≦752)と(0≦yb≦480)とを満たすと判定し、判定結果に従って、画像生成部223Bは、座標(F’x、F’y)に従うN枚目の計測結果をN+1枚目の画像データに描画すると決定し、座標(F’x、F’y)に従うN枚目の画像の計測結果334Nを、N+1枚目の画像に描画する。
【0218】
・楕円の場合
N枚目の計測結果334Nを示す楕円の画像の座標が、N+1枚目の画像のロボット座標を用いて、ピクセルに変換することにより、中心座標(Cx、Cy)、X方向の半径rx、およびY方向の半径ryとして取得されるとき、これら値が下記2つの不等式の条件の全てを満たさないと判定されたとき、画像生成部223Bは描画しないと決定し、少なくとも1つの条件を満たすと判定されたとき描画すると決定する。
【0219】
0≦Cx±rx≦752、0≦Cy±ry≦480
・幅あり円の場合
N枚目の画像61が表す円の画像の座標が、N+1枚目のロボット座標を用いて、ピクセルに変換することにより、中心座標が(Cx、Cy)、半径rおよび所定の線幅wとして取得されるとき、これら値が下記2つの不等式の条件の全てを満たさないと判定されたとき、画像生成部223Bは描画しないと決定し、少なくとも1つの条件を満たすと判定されたとき描画すると決定する。
【0220】
0≦Cx±(r+w)≦752、0≦Cy±(r+w)≦480
(パノラマ画像の表示処理)
本実施の形態に係るパノラマ画像処理部223Aは、エンコーダカウンタ132のカウントモードに対応して、パノラマ画像の表示態様を切替える。具体的には、図34〜図37のいずれかの表示態様で表示する。
【0221】
なお、コンベアのライン1の搬送方向にワークWが移動していくとき、エンコーダカウンタ132のカウントモードは、予めアップカウントおよびダウンカウントのいずれかに設定され、設定されたモード値は、たとえばメモリ124に格納される。
【0222】
パノラマ画像処理部223Aは、単位時間当たり、すなわち1パルス当たりの画像上での移動量ΔxおよびΔyから、パノラマ画像の表示態様を決定する。
【0223】
まず、移動量ΔxとΔyの算出について説明する。
まず、1パルスの移動量(キャリブレーションデータ)を(ΔEx、ΔEy)[mm/カウント]として、[mm]→[ピクセル]に変換する以下の逆変換式に従って、当該移動量をピクセルに変換する。
【0224】
x[ピクセル]={E(X−C)−B(Y−F)}/(AE−BD)、
y[ピクセル]={A(Y−F)−D(X−C)}/(AE−BD)
次に、上述の逆変換式を用いて固定パルス(たとえば0パルス、1パルス)のときの画像上での位置を算出する。
【0225】
0パルスのときの移動量は、次のように算出する。
x0[ピクセル]={E(ΔEx×0−C)−B(ΔEy×0−F)}/(AE−BD)、
y0[ピクセル]={A(ΔEy×0−F)−D(ΔEx×0−C)}/(AE−BD)
1パルスのときの移動量は、次のように算出する。
【0226】
x1[ピクセル]={E(ΔEx×1−C)−B(ΔEy×1−F)}/(AE−BD)、
y1[ピクセル]={A(ΔEy×1−F)−D(ΔEx×1−C)}/(AE−BD)
上述の固定パルスについて算出した移動量から、1パルスあたりの画像上でのピクセル単位の移動量ΔxとΔyを算出する。つまり、パノラマ画像処理部223Aは、メモリ124のモード値が“アップカウント”を指示するときはΔx=x1−x0およびΔy=y1−y0と算出し、“ダウンカウント”を指示するときはΔx=x0−x1およびΔy=y0−y1と算出する。
【0227】
パノラマ画像処理部223Aは、算出した上述のピクセル単位の移動量ΔxとΔyを用いて、パノラマ画像の表示態様を図34〜図37のいずれかに指示する値を表示態様データ332Bに設定し、表示態様データ332Bをメモリ124に格納する。
【0228】
つまり、パノラマ画像処理部223Aは、ロボット座標系の軸のうち、X軸が延びる方向(X方向という)の移動量ΔXが、Y軸が延びる方向(Y方向という)の移動量ΔY以上であると判定した場合には、表示態様データ332Bに、パノラマ画像をディスプレイ502の横方向に延びるような表示態様を指示する値を設定する(図34、図35)。この場合において、(Δx≧0)であるときは、表示態様データ332Bには、ディスプレイ502の、たとえば向かって右方向から撮像順番に従って画像が並ぶような表示態様を指示する値が設定され(図34参照)、(Δx<0)であるときは、ディスプレイ502の、たとえば向かって左方向から撮像順番に従って画像が並ぶような表示態様を指示する値が設定される(図35参照)。
【0229】
一方、パノラマ画像処理部223Aは、X方向の移動量ΔXが、Y方向の移動量ΔYよりも小さいと判定した場合には、表示態様データ332Bに、パノラマ画像をディスプレイ502の縦方向に延びるような表示態様を指示する値を設定する(図36、図37)。この場合において、(Δy≧0)であるときは、表示態様データ332Bには、ディスプレイ502の、たとえば向かって下方向から撮像順番に従って画像が並ぶような表示態様を指示する値が設定され(図36参照)、(Δy<0)であるときは、ディスプレイ502の、たとえば向かって上方向から撮像順番に従って画像が並ぶような表示態様を指示する値が設定される(図37参照)。
【0230】
パノラマ画像処理部223Aにより値が設定された表示態様データ332Bは、パノラマ画像データ332Aとともには、メモリ124から読出されて操作表示装置500に送信される。操作表示装置500では、演算処理部510は、受信したパノラマ画像データ332Aを、当該パノラマ画像データ332Aに関連して受信した表示態様データ332Bに従う態様で、ディスプレイ502に表示する。これにより、パノラマ画像を、ロボット座標系におけるワークWの移動方向および移動量に従った図34〜図37のいずれかの態様で表示することができる。
【0231】
なお、図34〜図37における丸付き数値は、パノラマ画像を構成する各画像の撮像順序を示し、矢印ARは、パノラマ画像において画像が並ぶ向きを指すものであり、いずれも説明のために示すものであり、ディスプレイ502には表示されない。
【0232】
<エラー処理>
本実施の形態では、表示関連処理部225Aは、上述のようにパノラマ画像を生成または表示する際に生じるエラーを処理する。ここでは、エラーとして、パノラマ画像の生成に用いるべき画像が不足しているエラー、およびエンコーダカウンタ132に起因するエラーを例示する。
【0233】
(画像落ち処理)
パノラマ画像を構成するべき複数枚の画像から1枚以上の画像が欠落して不足している場合には、画像落ち処理部225Bは、パノラマ画像データ332Aにおいて、欠落した画像の画像データ333、またはその計測結果334を省略する。画像の欠落は、たとえば、視覚センサ100が撮像指示を受信できなかった場合に発生する。
【0234】
本実施の形態では、視覚センサ100は、ロボット制御装置200から撮像指示を受信する毎に、受信した撮像指示に応答して撮像する。ロボット制御装置200は、エンコーダ14からのパルス信号に含まれるパルス数をカウントし、予め定められた値以上の数のパルスが入力されたタイミングで、撮像指示を視覚センサ100に対して送信する。したがって、視覚センサ100は予め定められた間隔で撮像するように制御されることにより、画像データ333は当該間隔で繰返し取得される。これにより、パノラマ画像を構成する一連の画像データ333を得ることができる。
【0235】
ここで、視覚センサ100のCPU122がBUSY(ビジー)状態において、ロボット制御装置200から撮像指示が送信されると、視覚センサ100は当該撮像指示を受信することができず、その結果、当該撮像指示に対応した画像データ333を取得できず、パノラマ画像を構成する一連の画像データ333についてが画像データ333が欠落する。
【0236】
画像落ち処理部225Bは、上述のように算出したピクセル単位での移動量(Δx、Δy)が、画像1枚以上の大きさを指すと判定すると、画像が欠落したこと検出する。つまり、移動量(Δx、Δy)が(|Δx|≧752)および(|Δy|≧480)のいずれかの条件を満たすと判定したとき、画像が欠落したことを検出する。
【0237】
画像が欠落したことを検出した場合に、画像落ち処理部225Bは、パノラマ画像データ332Aを、欠落した画像データ333を省略するように処理する。または、パノラマ画像データ332Aに、欠落した画像データ333に代替してエンコーダカウンタ132にカウント値を用いた情報を挿入する。
【0238】
また、欠落した画像の計測結果334Nの画像61の表示が省略される。つまり、図32においてN枚目の画像が欠落したと想定すると、N枚目の計測結果334Nの画像61を表示せず、且つN−1枚目の計測結果334Nの画像61をN+1枚目の画像に重ねずにパノラマ画像データ332Aを生成する。
【0239】
(エンコーダエラー処理)
移動量(Δx、Δy)は、上述したようにエンコーダカウンタ132のカウント値を用いて算出されることから、エンコーダカウンタ132が正常に動作しない場合には、パノラマ画像の生成に関するエラー処理が実行される。
【0240】
エンコーダエラー処理部225Cは、撮像時にエンコーダカウンタ132から3回以上同じ値を入力したと判定した場合には、エンコーダカウンタ132がカウント動作していないことを検出する。カウント動作していないことを検出すると、エラーメッセージをディスプレイ502に出力するように、操作表示装置500に通知し、パノラマ画像表示処理を終了させる。
【0241】
(カウンタ値のオーバフロー/アンダーフロー)
移動量(Δx、Δy)は、上述したようにエンコーダカウンタ132のカウント値を用いて算出することから、エンコーダカウンタ132のカウンタ値がオーバーフローまたはアンダーフローした場合には、オーバ/アンダーフロー処理部225Dは、パノラマ画像の生成に関するエラー処理を実行する。なお、エンコーダカウンタ132は、アップカウント時に、オーバーフローし、ダウンカウント時に、アンダーフローする可能性がある。
【0242】
オーバ/アンダーフロー処理部225Dは、エンコーダカウンタ132のカウンタ値の差分を用いてオーバフローまたはアンダーフローが発生しているか否かを判定する。
【0243】
具体的には、撮像時のカウンタ値をTrc(N)およびTrc(N−1)とすると、差分ΔTrc(N)=Trc(N)−Trc(N−1)を求めることができる。
【0244】
アップカウント時は、差分ΔTrc(N)が(ΔTrc(N)<0)の条件を満足するときオーバフロー発生と判定し、ダウンカウント時は(ΔTrc(N)>0)の条件を満足するときアンダーフロー発生と判定する。
【0245】
オーバ/アンダーフロー処理部225Dはオーバフローまたはアンダーフローが発生したことを判定すると、撮像トリガ間隔ΔTrを以下の演算式に従って補正する。なお、エンコーダカウンタ132の値は書き換えない。
【0246】
Trc(N)=Trc(N)−Sgn{ΔTrc(N)}×Max_count+1
ただし、上記の変数Max_countは、エンコーダカウンタ132の最大カウント値であって、予め定められた値を指す。この変数Max_countの値は、メモリ124の所定領域に予め格納される。
【0247】
このように、オーバフローまたはアンダーフローが発生した場合は、エンコーダカウンタ値Trc(N)を、オーバフローまたはアンダーフローによる誤差を排除した値に補正し、その補正後のエンコーダカウンタ値Trc(N)を用いて、撮像トリガ間隔ΔTrを算出する。これにより、オーバフローまたはアンダーフローに起因した誤差が排除されたた移動量ΔxおよびΔyを取得することができる。
【0248】
<パノラマ画像の表示例>
図38には、ディスプレイ502における図36または図37に従うパノラマ画像の表示例が示され、図39には、ディスプレイ502における図34または図35に従うパノラマ画像の表示例が示される。
【0249】
図38と図39を参照して、ディスプレイ502には、パノラマ画像とともにCPU122により計測された平均撮像時間381と処理時間391のデータが表示される。
【0250】
CPU122は、平均撮像時間381を、撮像トリガの間隔時間τの10回の平均値(Στ/10)として算出する。
【0251】
ここで、撮像トリガの間隔時間τは、撮像トリガの間隔:ΔTr[カウント]、1パルスの移動量(キャリブレーションデータ):(ΔX、ΔY)[mm/カウント]、コンベアスピード:v[mm/sec]を用いて、
τ={(ΔTr×ΔX)^2+(ΔTr×ΔY)^2}^0.5/v、と算出することができる。
【0252】
CPU122は、処理時間391として、最大処理時間と平均処理時間とを計測する。最大処理時間は、計測処理部221による計測処理にかかった最大時間を指し、平均処理時間は、計測処理にかかった平均時間を指す。なお、CPU122は、図示しない内部タイマを用いて処理時間を計測する。
【0253】
本実施の形態では、撮像トリガの間隔時間τ内で計測処理が開始されて終了されるべきであることから、オペレータは、処理時間391が指す最大処理時間と、平均撮像時間381とを比較し、比較結果に基づき、計測処理にかける時間にどのくらいの余裕があるかを判定することができる。そして判定された余裕を参考にして、計測処理に係るパラメータ値を調整することができる。
【0254】
なお、上述した各実施の形態に説明した各種の機能は、撮像画像処理部120と操作表示装置500において、全て搭載することもできるが、必要とする種類の機能を選択して搭載するようにしてもよい。
【0255】
[実施の形態5]
次に、視覚センサ100およびロボット制御装置200とネットワークNWを介して接続されるサポート装置600について説明する。
【0256】
図40は、本発明の実施の形態5に係るサポート装置600のハードウェア構成を示す模式図である。サポート装置600は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【0257】
図40を参照して、サポート装置600は、OS(オペレーティングシステム)を含む各種プログラムを実行するCPU610と、BIOSや各種データを格納するROM(Read Only Memory)620と、CPU61でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM630と、CPU61で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)640とを含む。
【0258】
サポート装置600は、さらに、ユーザからの操作を受付けるキーボード650およびマウス660と、情報をユーザに提示するためのモニタ670とを含む。
【0259】
後述するように、サポート装置600で実行される各種プログラムは、CD−ROM690に格納されて流通する。このCD−ROM690に格納されたプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ68によって読取られ、ハードディスク(HDD)640などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【0260】
上述したように、サポート装置600は、汎用的なコンピュータを用いて実現されるので、これ以上の詳細な説明は行わない。
【0261】
このようなサポート装置600は、視覚センサ100およびロボット制御装置200のいずれともデータ通信可能であるので、各種のデータを収集することができる。そこで、上述した操作表示装置500のパノラマ画像表示に関する機能は、サポート装置600が備えるとしてもよい。
【0262】
ロボット300の動作を解析するために、各画像データ333についての計測結果を格納するテーブル331を利用することができる。つまり、ロボット300において、ロボット動作をカウンタ値と関連付けて記録しておくことで、ロボット動作と対応する画像の計測結果334と関連付けることができる。これにより、たとえば、把持動作が失敗した場合などに、その失敗した原因を追求するために、把持対象であったワークの画像および計測結果334をサポート装置600または操作表示装置500上で再現できる。そのため、不具合原因をより容易に解析することができ、または解析を支援する情報を提示することができる。
【0263】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0264】
10,20 コンベア、100 視覚センサ、110 撮像部、120 撮像画像処理部、126 撮像制御部、132 エンコーダカウンタ、200 ロボット制御装置、510 演算処理部、221 計測処理部、222 重なり取得部、223,223B 画像生成部、225 比取得部、226 パラメータ更新部、227 計測パラメータ更新部、228 撮像パラメータ更新部、229 画像分割部、300 ロボット、500 操作表示装置、600 サポート装置、NW ネットワーク、S キャリブレーション用シート、W ワーク、223A パノラマ画像処理部、223C 描画判定部、225A 表示関連処理部、225B 画像落ち処理部、225C エンコーダエラー処理部、225D アンダーフロー処理部。

【特許請求の範囲】
【請求項1】
連続する撮像の前後で撮像範囲に重複領域を有する撮像部に接続される画像処理装置であって、
前記撮像部によって得られる複数枚の撮像画像を受け付けるインターフェイスと、
前記撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、
前記複数枚の撮像画像を、前記重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ前記重なり範囲における前記被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、
前記合成画像と、当該合成画像に関連付けて前記重なり範囲を示す情報とを出力する出力手段と、を備える、画像処理装置。
【請求項2】
前記計測結果は、前記撮像画像における前記被写体に相関する図形であって、
前記合成手段は、
前記図形の少なくとも一部が、前記重なり範囲に含まれるか否かを判定する判定手段を、含み、
前記図形の少なくとも一部が、前記重なり範囲に含まれると判定されたとき、前記被写体の計測結果の画像を当該重なり範囲に重畳させた合成画像を生成する、請求項1に記載の画像処理装置。
【請求項3】
前記合成手段は、
連続する撮像によって得られる複数枚の撮像画像における、単位時間当たりの画像の移動量から、出力態様を決定する手段を、含み、
前記出力手段は、
決定された前記出力態様に基づき、前記合成画像の出力する、請求項1または2に記載の画像処理装置。
【請求項4】
前記合成画像を生成する場合に、生成に関するエラーを検出する手段と、
検出したエラーを処理する手段と、をさらに備える、請求項1から3のいずれかに記載の画像処理装置。
【請求項5】
前記エラーを検出する手段は、前記合成画像を生成するための撮像画像の不足を検出する、請求項4に記載の画像処理装置。
【請求項6】
前記出力手段は、前記合成画像における各撮像画像の出力態様を相違させる、請求項1から5のいずれかに記載の画像処理装置。
【請求項7】
外部からの操作を受け付ける操作入力部を、さらに備え、
前記出力手段は、
前記合成画像における前記操作入力部によって選択された撮像画像を拡大して出力する、請求項1から6のいずれかに記載の画像処理装置。
【請求項8】
前記操作入力部が受け付ける操作によって指示される計測結果を、各撮像画像に対応する前記計測結果のうちから選択する選択手段を、さらに備え、
前記出力手段は、
前記選択手段により選択された計測結果に対応する前記撮像画像と、当該撮像画像の前後で撮像された撮像画像とから成る合成画像を出力する、請求項7に記載の画像処理装置。
【請求項9】
前記出力手段は、
前記合成画像における撮像画像のうちから、対応する前記計測結果が予め指定された値を指示する撮像画像を選択して出力する、請求項1に記載の画像処理装置。
【請求項10】
前記出力手段は、
前記合成画像における撮像画像のうち、撮像順が奇数番目の撮像画像に対応する前記計測結果と、偶数番目の撮像画像に対応する前記計測結果との出力態様を異ならせる、請求項1に記載の画像処理装置。
【請求項11】
前記計測手段による計測処理の所要時間に関する情報を出力する手段を、さらに備える、請求項1に記載の画像処理装置。
【請求項12】
前記所要時間に関する情報は、前記連続する撮像の前後の時間間隔に対する、撮像画像の計測処理の所要時間の比である、請求項11に記載の画像処理装置。
【請求項13】
前記合成画像の各撮像画像について前記比を取得し、
前記合成画像と、当該合成画像の各撮像画像に関連付けて前記比を出力する、請求項12に記載の画像処理装置。
【請求項14】
連続する撮像の前後で撮像範囲に重複領域を有する撮像部に接続されるコンピュータで実行される画像処理プログラムであって、
前記画像処理プログラムは、前記コンピュータを、
前記撮像部によって得られる複数枚の撮像画像を受け付けるインターフェイスと、
前記撮像画像に対する計測処理を行うことにより、当該撮像画像中の被写体の計測結果を取得する計測手段と、
前記複数枚の撮像画像を、前記重複領域に対応する重なり範囲で撮像順に重なり合うように合成し、且つ前記重なり範囲における前記被写体の計測結果を当該重なり範囲において重畳させた合成画像を生成する合成手段と、
前記合成画像と、当該合成画像に関連付けて前記重なり範囲を示す情報とを出力する出力手段、として機能させる、画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図25】
image rotate


【公開番号】特開2013−97514(P2013−97514A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−238791(P2011−238791)
【出願日】平成23年10月31日(2011.10.31)
【特許番号】特許第5003840号(P5003840)
【特許公報発行日】平成24年8月15日(2012.8.15)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】