(57)【要約】【課題】多関節型ロボットにより移動されるカメラの視点に応じて柔軟にマスク画像を作成するとともに、マスク画像を作成する手間を減らすことのできるマスク画像作成システムを提供する。【解決手段】マスク画像作成システムは、複数の関節を有するアーム２１を動作させる多関節型ロボット２０と、アーム２１に設けられてアーム２１の動作により移動されるとともに、ワークＷを撮像して実画像を取得するＣＣＤカメラ２８と、画像処理装置１０とを備える。画像処理装置１０は、アーム２１の位置及び方向に基づいて、カメラ２８の位置及び方向を算出し、ワークＷの形状を表す３次元データ、ワークＷの位置及び方向、並びにカメラ２８の位置及び方向に基づいて、カメラ２８によりワークＷを撮像したと仮想した場合の仮想画像を取得する。そして、この仮想画像に基づいて、カメラ２８により取得される実画像の一部をマスキングするマスク画像を作成する。【選択図】      図１
2012022600.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節を有するアームを動作させる多関節型ロボットと、
前記アームに設けられて前記アームの動作により移動されるとともに、ワークを撮像して実画像を取得する実画像取得手段と、
前記アームの位置及び方向に基づいて、前記実画像取得手段の位置及び方向を算出する算出手段と、
前記ワークの形状を表す３次元データ、前記ワークの位置及び方向、並びに前記算出手段により算出される前記実画像取得手段の位置及び方向に基づいて、前記実画像取得手段により前記ワークを撮像したと仮想した場合の仮想画像を取得する仮想画像取得手段と、
前記仮想画像取得手段により取得される前記仮想画像に基づいて、前記実画像取得手段により取得される前記実画像の一部をマスキングするマスク画像を作成するマスク画像作成手段と、
を備えることを特徴とするマスク画像作成システム。
【請求項２】
前記マスク画像作成手段は、前記仮想画像取得手段により取得される前記仮想画像のうち前記ワークの非検査部分を削除した画像を作成し、その画像の背景部分を前記マスク画像のマスク部とすることを特徴とする請求項１に記載のマスク画像作成システム。
【請求項３】
前記ロボットは、前記アームの動作を制御する制御手段を備え、
前記算出手段は、前記制御手段から出力される前記アームの位置及び方向を入力し、この入力される前記アームの位置及び方向に基づいて、前記実画像取得手段の位置及び方向を算出することを特徴とする請求項１又は２に記載のマスク画像作成システム。
【請求項４】
前記実画像取得手段により取得される前記実画像に基づいて、前記ワークの位置及び方向を算出するワーク位置算出手段を備え、
前記仮想画像取得手段は、前記ワークの形状を表す３次元データ、前記ワーク位置算出手段により算出される前記ワークの位置及び方向、並びに前記算出手段により算出される前記実画像取得手段の位置及び方向に基づいて、前記仮想画像を取得することを特徴とする請求項１〜３のいずれか１項に記載のマスク画像作成システム。
【請求項５】
前記実画像取得手段により取得される前記実画像に基づいて、前記ワークの位置及び方向を算出するワーク位置算出手段を備え、
前記制御手段は、前記ワーク位置算出手段により算出される前記ワークの位置及び方向に基づいて、前記アームの位置及び方向を補正するように前記アームを動作させることを特徴とする請求項３に記載のマスク画像作成システム。
【請求項６】
前記仮想画像取得手段は、前記仮想画像を前記ワーク毎に取得し、
前記マスク画像作成手段は、前記マスク画像を前記ワーク毎に作成することを特徴とする請求項４又は５に記載のマスク画像作成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理によるワークの外観検査において、撮像して得られる画像の一部をマスキングするためのマスク画像を作成するシステムに関する。
【背景技術】
【０００２】
従来、多関節型ロボットのアームにカメラを固定し、アームの動作によりカメラを移動させてワークを撮像するものがある（例えば、特許文献１参照）。
【０００３】
また、固定カメラにより撮像して得られる画像に対してマスク画像によりマスキングを行い、検査部分を抽出して良否の判断を行うものがある（例えば、特許文献２参照）。この特許文献２に記載のものでは、外観の良いワークを撮像して得られた画像に基づいて、予めマスク画像を作成している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−８８０７３号公報
【特許文献２】実開平７−２３２７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１に記載のものでは、多関節型ロボットのアームの動作により、自由な視点からワークを撮像することができる。その場合に、各視点から撮像して得られる画像に対して、特許文献２に記載のもののように、それぞれマスク画像を用意しようとすると、必要なマスク画像の数が多くなることが避けられない。
【０００６】
さらに、撮像して得られた画像をユーザが処理してマスク画像を作成する際には、非常に多くの手間がかかる。このため、未だワークを撮像する視点が明確でなく、検査に用いる画像が定まっていない場合に、その視点を予測してマスク画像を作成しておくことは得策ではない。
【０００７】
本発明は、こうした実情に鑑みてなされたものであり、多関節型ロボットにより移動されるカメラの視点に応じて柔軟にマスク画像を作成するとともに、マスク画像を作成する手間を減らすことのできるマスク画像作成システムを提供することを主たる目的とするものである。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するために、以下の手段を採用した。
【０００９】
第１の発明は、複数の関節を有するアームを動作させる多関節型ロボットと、前記アームに設けられて前記アームの動作により移動されるとともに、ワークを撮像して実画像を取得する実画像取得手段と、前記アームの位置及び方向に基づいて、前記実画像取得手段の位置及び方向を算出する算出手段と、前記ワークの形状を表す３次元データ、前記ワークの位置及び方向、並びに前記算出手段により算出される前記実画像取得手段の位置及び方向に基づいて、前記実画像取得手段により前記ワークを撮像したと仮想した場合の仮想画像を取得する仮想画像取得手段と、前記仮想画像取得手段により取得される前記仮想画像に基づいて、前記実画像取得手段により取得される前記実画像の一部をマスキングするマスク画像を作成するマスク画像作成手段と、を備えることを特徴とするマスク画像作成システム。
【００１０】
上記構成によれば、多関節型ロボットにおいて、複数の関節を有するアームが動作される。アームには、ワークを撮像して実画像を取得する実画像取得手段が設けられており、アームの動作により実画像取得手段が移動される。
【００１１】
ここで、多関節型ロボットではアームの位置及び方向を正確に把握することが可能であり、アームの位置及び方向に基づいて実画像取得手段の位置及び方向が検出される。そして、ワークの形状を表す３次元データと、ワークの位置及び方向と、実画像取得手段の位置及び方向、すなわちワークを撮像する実画像取得手段の視点とに基づいて、実画像取得手段によりワークを撮像したと仮想した場合の仮想画像が取得される。すなわち、この仮想画像は、実画像取得手段がその現在位置でワークのみを撮像した場合に取得される画像に相当する。
【００１２】
さらに、この仮想画像に基づいて、実画像取得手段により取得される実画像の一部をマスキングするマスク画像が作成される。仮想画像では、仮想画像を取得する際の実画像取得手段の位置及び方向、すなわち仮想画像として表されるワークの位置及び方向にかかわらず、外観検査におけるワークの検査部分を予め把握することができる。このため、仮想画像においてワークの検査部分に対応させて、実画像から検査に必要な部分のみを抜き出すためのマスク画像を作成することができる。その結果、実画像取得手段の視点に応じて柔軟にマスク画像を作成するとともに、マスク画像を作成する手間を減らすことができる。
【００１３】
具体的には、第２の発明のように、第１の発明において、前記マスク画像作成手段は、前記仮想画像取得手段により取得される前記仮想画像のうち前記ワークの非検査部分を削除した画像を作成し、その画像の背景部分を前記マスク画像のマスク部とするといった構成を採用することができる。
【００１４】
すなわち、仮想画像では、外観検査におけるワークの検査部分を予め把握することができるため、その検査部分のみを残してその他の部分（非検査部分）を削除することができる。このため、仮想画像からワークの非検査部分を削除した画像において、その背景部分をマスク画像のマスク部とすることにより、マスク画像を容易に作成することができる。
【００１５】
第３の発明では、第１又は第２の発明において、前記ロボットは、前記アームの動作を制御する制御手段を備え、前記算出手段は、前記制御手段から出力される前記アームの位置及び方向を入力し、この入力される前記アームの位置及び方向に基づいて、前記実画像取得手段の位置及び方向を算出することを特徴とする。
【００１６】
一般に、多関節型ロボットでは、各関節においてアームの各部の角度が検出され、この各部の角度に基づいて制御手段によりアームの位置及び方向が算出される。そして、制御手段によりアームの動作が制御される。
【００１７】
ここで、上記構成によれば、実画像取得手段の位置及び方向を算出するために用いられるアームの位置及び方向が、ロボットのアームの動作を制御する制御手段から算出手段へ入力される。このため、マスク画像作成システムにおいて、アームの位置及び方向を算出するための手段を別途設ける必要がなく、ロボットの備える制御手段を有効に活用することができる。
【００１８】
第４の発明では、第１〜第３のいずれかの発明において、前記実画像取得手段により取得される前記実画像に基づいて、前記ワークの位置及び方向を算出するワーク位置算出手段を備え、前記仮想画像取得手段は、前記ワークの形状を表す３次元データ、前記ワーク位置算出手段により算出される前記ワークの位置及び方向、並びに前記算出手段により算出される前記実画像取得手段の位置及び方向に基づいて、前記仮想画像を取得することを特徴とする。
【００１９】
第５の発明では、第３の発明において、前記実画像取得手段により取得される前記実画像に基づいて、前記ワークの位置及び方向を算出するワーク位置算出手段を備え、前記制御手段は、前記ワーク位置算出手段により算出される前記ワークの位置及び方向に基づいて、前記アームの位置及び方向を補正するように前記アームを動作させることを特徴とする。
【００２０】
一般に、ワークの外観検査においては、ワークを配置する基準位置及び基準方向が設定されている。しかしながら、ワークの実際の位置及び方向が、この基準位置及び基準方向からずれているおそれがある。
【００２１】
この点、第４の発明によれば、実画像取得手段により取得される実画像に基づいて、ワークの位置及び方向が算出され、この算出されるワークの位置及び方向に基づいて上記仮想画像が取得（補正）される。また、第５の発明によれば、実画像取得手段により取得される実画像に基づいて、ワークの位置及び方向が算出され、この算出されるワークの位置及び方向に基づいて、アームの位置及び方向が補正されるようにアームが動作される。したがって、ワークの実際の位置及び方向に応じて、正確な仮想画像を取得することができる。その結果、マスク画像を正確に作成することができる。
【００２２】
第６の発明では、第４又は第５の発明において、前記仮想画像取得手段は、前記仮想画像を前記ワーク毎に取得し、前記マスク画像作成手段は、前記マスク画像を前記ワーク毎に作成することを特徴とする。
【００２３】
また、ワークの実際の位置及び方向が、ワーク毎に異なっているおそれもある。この場合には、ワーク毎にアームの位置及び方向を補正するようにアームを動作させたり、ワーク毎に上記仮想画像を補正したりする必要があり、ひいてはワーク毎にマスク画像を変更する必要がある。
【００２４】
この点、上記構成によれば、ワークの位置及び方向が算出されるとともに、仮想画像がワーク毎に取得され、マスク画像がワーク毎に作成される。このため、ワーク毎に実際の位置及び方向が異なっていても、ワーク毎に適切なマスク画像を作成することができる。さらに、この場合であっても、ワーク毎のマスク画像を容易に作成することができるため、マスク画像を作成する手間が増えることを抑制することができる。
【図面の簡単な説明】
【００２５】
【図１】外観検査装置の概要を示す斜視図。
【図２】マスク画像作成システムの概要を示すブロック図。
【図３】ワークの実画像を取得する制御の処理手順を示すフローチャート。
【図４】ＣＣＤカメラにより撮像されたワークの実画像。
【図５】外観検査の処理手順を示すフローチャート。
【図６】３次元ＣＡＤの機能により作成されたワークの仮想画像。
【図７】図６の仮想画像から非検査部分を削除した画像。
【図８】図７の画像から作成したマスク画像。
【図９】図４の実画像を図８のマスク画像でマスキングした検査用画像。
【発明を実施するための形態】
【００２６】
以下、垂直多関節型ロボットを用いたワークの外観検査装置に具体化した一実施形態について、図面を参照しつつ説明する。本実施形態の外観検査装置は、例えば機械組立工場の組立ラインに設置される。
【００２７】
図１は、外観検査装置の概要を示す斜視図である。この外観検査装置は、ベルトコンベアＣ、ロボット２０、ロボット２０の制御装置２４、ＣＣＤカメラ２８、画像処理装置１０を備えている。
【００２８】
ベルトコンベアＣは、そのベルト上に載置されたワークＷ（検査対象物）を、ベルトの駆動により搬送する。ベルト上には、所定の間隔で複数のワークＷが載置される。ベルトコンベアＣは、ワークＷを所定の速度で搬送し、検査位置でワークＷを一時停止させる。そして、ワークＷの検査が終了した後、次のワークＷを検査位置まで移動させる。ベルトコンベアＣは、ワークＷの検査において上記動作を繰り返し実行する。
【００２９】
ベルトコンベアＣの近傍には、ロボット２０が設置されている。ロボット２０は、垂直多関節型のロボット（６軸ロボット）であり、複数の関節を有するアーム２１を備えている。ロボット２０のアーム２１は、その各節の駆動により、位置及び方向（すなわち姿勢）が変更される。アーム２１の先端部２１ａ（ハンド部）には、ＣＣＤカメラ２８が取り付けられている。このため、アーム２１の位置及び方向が変更されることにより、ＣＣＤカメラ２８の位置及び方向が変更される。そして、ベルトコンベアＣにより検査位置に搬送されるワークＷを、ＣＣＤカメラ２８（実画像取得手段）により任意の視点から撮像する。
【００３０】
ロボット２０の制御装置２４（制御手段）は、アーム２１の現在の位置及び方向と、目標の位置及び方向とに基づいて、アーム２１の動作を制御する。そして、ワークＷの外観検査において、アーム２１の目標の位置及び方向として、検査位置に搬送されるワークＷをＣＣＤカメラ２８により撮像する際のアーム２１の位置及び方向（撮像位置）が入力される。アーム２１が撮像位置まで駆動されることにより、ＣＣＤカメラ２８の視野内にワークＷが検査に適した状態で捉えられる。その状態において、ＣＣＤカメラ２８によりワークＷを撮像することにより、ワークＷの実画像が取得される。
【００３１】
画像処理装置１０は、ＣＣＤカメラ２８からワークＷの実画像を入力し、その実画像のうち非検査部分をマスキングするマスク画像を作成する。そして、ワークＷの実画像をマスク画像によりマスキングした検査用画像に基づいて、ワークＷの外観の良否判定を行う。
【００３２】
図２は、上記マスク画像を作成するマスク画像作成システムの概要を示すブロック図である。このマスク画像作成システムは、ロボット２０、ロボット２０の制御装置２４、ＣＣＤカメラ２８、画像処理装置１０を備えている。
【００３３】
ロボット２０では、アーム２１の各関節にサーボモータ２２がそれぞれ設けられており、各関節はサーボモータ２２によってそれぞれ駆動される。各サーボモータ２２は、ロボット２０の制御装置２４からの制御信号に基づいて駆動される。各関節には、エンコーダ２３がそれぞれ設けられており、各関節の位置はエンコーダ２３によってそれぞれ検出される。各エンコーダ２３の検出信号は、制御装置２４に出力される。
【００３４】
制御装置２４は、周知のロボット制御装置であり、主制御部２５と撮像位置記憶部２６とを備えている。主制御部２５は、各エンコーダ２３の検出信号を入力するとともに、各サーボモータ２２に制御信号を出力する。そして、各エンコーダ２３の検出信号とその目標位置とに基づいて、各サーボモータ２２の駆動を制御する。
【００３５】
撮像位置記憶部２６は、ワークＷを撮像する際のアーム２１の位置及び方向（撮像位置）をティーチングする際に、その撮像位置を記憶する。ティーチングにおいては、ベルトコンベアＣにより検査位置にワークＷを搬送して、ベルトコンベアＣを停止させる。そして、ワークＷをＣＣＤカメラ２８の視野内に捉えるとともに、ワークＷの検査部分が良好に撮像されるように、ロボット２０のアーム２１を動作させる。このとき、ティーチングペンダント等によりアーム２１を動作させてもよいし、制御装置２４にアーム２１の目標の位置及び方向（各関節の位置）を送信してアーム２１を動作させてもよい。
【００３６】
アーム２１が撮像位置まで駆動された場合に、主制御部２５は各エンコーダ２３のその時の検出信号を撮像位置記憶部２６に出力する。撮像位置記憶部２６は、この出力された検出信号を撮像位置として記憶する。また、その撮像位置においてＣＣＤカメラ２８によりワークＷを撮像し、得られた画像を画像処理装置１０に記憶する。このティーチングは、ワークＷの外観検査に先立って行われる。
【００３７】
画像処理装置１０は、ロボット２０の制御装置２４の主制御部２５と、ＣＣＤカメラ２８とに接続されている。画像処理装置１０は、入出力インターフェース、マイクロコンピュータ、メモリ等を備えて構成されている。画像処理装置１０は、制御装置２４の主制御部２５から、上記撮像位置（各エンコーダ２３の検出信号）を入力する。画像処理装置１０は、ＣＣＤカメラ２８に撮像指令を送信するとともに、ＣＣＤカメラ２８からワークＷの実画像を入力する。そして、画像処理装置１０は、これらの撮像位置及び実画像に基づいて、ワークＷの位置及び方向を算出する。
【００３８】
また、画像処理装置１０は、３次元ＣＡＤの機能を備えており、ワークＷの形状を表す３次元データを有している。一般に、ワークＷの設計はＣＡＤ等を用いて行われることから、その設計データからワークＷの３次元データを比較的容易に入手することができる。画像処理装置１０は、この３次元データに基づいて、ワークＷを任意の位置及び方向から見た画像を作成することができる。そして、画像処理装置１０は、ワークＷの３次元データ、ワークＷの位置及び方向、並びに上記撮像位置に基づいて、ＣＣＤカメラ２８によりワークＷを撮像したと仮想した場合の仮想画像を作成する。さらに、画像処理装置１０は、この仮想画像に基づいて、ワークＷの実画像のうち検査に必要のない部分をマスキングするマスク画像を作成する。
【００３９】
図３は、ワークＷの外観検査において、ワークＷの実画像を取得する制御の処理手順を示すフローチャートである。この一連の処理に先立って、ベルトコンベアＣの所定位置に所定の向きで載置されたワークＷが、ベルトコンベアＣにより検査位置まで搬送されて一時停止される。なお、図３のフローチャートは、１つのワークＷの実画像を取得する制御の処理手順を示しており、複数のワークＷの外観検査においては各ワークＷに対してこの一連の処理が実行される。
【００４０】
まず、ロボット２０の制御装置２４において、主制御部２５は撮像位置記憶部２６から撮像位置を読み込む（Ｓ１１）。上述したように、ティーチング時に、ワークＷをＣＣＤカメラ２８の視野内に捉えるとともに、ワークＷの検査部分を良好に撮像することのできるアーム２１の位置及び方向が、撮像位置記憶部２６に記憶されている。このため、主制御部２５は、記憶されたアーム２１の位置及び方向、すなわち記憶された各エンコーダ２３の検出信号を読み込む。
【００４１】
その後、制御装置２４の主制御部２５は、アーム２１の位置及び方向が上記撮像位置となるようにアーム２１を駆動する（Ｓ１２）。具体的には、主制御部２５は、各エンコーダ２３の検出信号が、撮像位置記憶部２６から読み込まれた上記検出信号となるように、各サーボモータ２２を駆動する。主制御部２５は、アーム２１が撮像位置まで駆動されると、画像処理装置１０にアーム２１の駆動終了信号を送信する。
【００４２】
こうしてアーム２１を撮像位置まで駆動した後、画像処理装置１０は、ＣＣＤカメラ２８によりワークＷを撮像させる（Ｓ１３）。具体的には、画像処理装置１０は、上記駆動終了信号を受信したことに基づいて、ＣＣＤカメラ２８に撮像指令を送信する。ＣＣＤカメラ２８は、この撮像指令に基づいてワークＷを撮像して実画像を取得する。
【００４３】
図4は、ＣＣＤカメラ２８により撮像されたワークＷの実画像である。この実画像に示されるように、ワークＷは、円筒状の円筒部ａ１と、この円筒部ａ１の端部に側面部が接続された半円筒状の半円筒部ａ２と、この半円筒部ａ２に対して円筒部ａ１とは反対側に接続された矩形状の矩形部ａ３とを備えている。円筒部ａ１及び半円筒部ａ２は一体に形成されており、これらは矩形部ａ３と別体に形成されている。円筒部ａ１において半円筒部ａ２側と反対側の端部には、複数のねじ孔が設けられている。円筒部ａ１の中心に関して、ねじ孔Ｐ１，Ｐ２の反対側にはねじ孔Ｐ３，Ｐ４がそれぞれ設けられている。また、円筒部ａ１の軸線方向の中間部から内径方向にフランジ部ａ４が張り出しており、このフランジ部ａ４にねじ孔部Ｐ５，Ｐ６が設けられている。ねじ孔部Ｐ５，Ｐ６は、ねじ孔Ｐ１，Ｐ２の近傍と、ねじ孔Ｐ３，Ｐ４の近傍とにそれぞれ設けられている。そして、ワークＷにおいて、円筒部ａ１及びねじ孔部Ｐ５，Ｐ６が検査部分となっており、その他の部分は非検査部分となっている。
【００４４】
図３に戻り、ワークＷの実画像を取得した後（Ｓ１３）、画像処理装置１０は、ＣＣＤカメラ２８により実画像を出力させる（Ｓ１４）。具体的には、画像処理装置１０は、ＣＣＤカメラ２８に画像出力指令を送信し、ＣＣＤカメラ２８は、この画像出力指令に基づいて画像処理装置１０に実画像を出力する。こうして、この一連の処理を終了する。
【００４５】
図５は、上述したマスク画像を作成する処理を含めて、ワークＷの外観を検査する制御の処理手順を示すフローチャートである。この一連の処理は、画像処理装置１０によって実行される。この一連の処理に先立って、ベルトコンベアＣの所定位置に所定の向きで載置されたワークＷが、ベルトコンベアＣにより検査位置まで搬送されて一時停止される。なお、図５のフローチャートは、１つのワークＷの外観を検査する制御の処理手順を示しており、複数のワークＷの外観検査においては各ワークＷに対してこの一連の処理が実行される。
【００４６】
まず、ワークＷを撮像する際のアーム２１の撮像位置を入力する（Ｓ２０）。具体的には、ロボット２０の制御装置２４の主制御部２５を通じて、ティーチング時に撮像位置記憶部２６に記憶されたアーム２１の位置及び方向、すなわち記憶された各エンコーダ２３の検出信号を入力する。
【００４７】
その後、この撮像位置に基づいてＣＣＤカメラ２８の位置及び方向を算出する（Ｓ２１）。すなわち、アーム２１（詳しくはハンド部）とＣＣＤカメラ２８との位置関係は予め分かっているため、その位置関係とアーム２１の位置及び方向とに基づいて、ロボット２０を基準としたＣＣＤカメラ２８の位置及び方向を算出する。
【００４８】
その後、上述した実画像取得制御において、アーム２１の駆動が終了したか否かを判定する（Ｓ２２）。具体的には、制御装置２４の主制御部２５からアーム２１の駆動終了信号を受信した場合に、アーム２１の駆動が終了したと判定し、この駆動終了信号を受信するまではアーム２１の駆動が終了していないと判定する。この判定において、アーム２１の駆動が終了していないと判定された場合には（Ｓ２２：ＮＯ）、アーム２１の駆動が終了するまで待機する。
【００４９】
一方、上記判定において、アーム２１の駆動が終了したと判定された場合には（Ｓ２２：ＹＥＳ）、ＣＣＤカメラ２８からワークＷの実画像を入力する（Ｓ２３）。具体的には、上述したように、上記駆動終了信号を受信したことに基づいて、ＣＣＤカメラ２８に撮像指令を送信する。ＣＣＤカメラ２８は、この撮像指令に基づいてワークＷを撮像して実画像を取得する。そして、ＣＣＤカメラ２８に画像出力指令を送信して実画像を出力させ、この実画像を入力する。
【００５０】
ワークＷの実画像を入力した後、アーム２１の現在の撮像位置、ティーチング時の取得画像、及び検査時の上記実画像に基づいて、ワークＷの位置及び方向を算出する（Ｓ２４）。上述したように、画像処理装置１０には、ティーチング時のアーム２１の撮像位置において、ＣＣＤカメラ２８によりワークＷを撮像して取得された画像が記憶されている。このため、ティーチング時のアーム２１の撮像位置と、その撮像位置においてワークＷを撮像して取得された画像と、検査時にワークＷを撮像して取得された実画像とに基づいて、ベルトコンベアＣ上に載置されたワークＷの位置及び方向を算出する。詳しくは、ティーチング時における撮像位置と、その撮像位置でワークＷを撮像して取得された画像とに基づいて、画像上のワークＷの位置及び方向を、ロボット２０を基準としたワークＷの位置及び方向に変換する。例えば、図４に示したねじ孔Ｐ１〜Ｐ４の位置や、それらの間隔等をパラメータとして、ロボット２０を基準としたティーチング時におけるワークＷの位置及び方向を算出する。そして、ティーチング時の取得画像と検査時の取得画像とを比較して、ねじ孔Ｐ１〜Ｐ４の各位置の相違や、それらの各間隔の相違に基づいて、ロボット２０を基準とした検査時におけるワークＷの位置及び方向を算出する。
【００５１】
その後、上記算出されたＣＣＤカメラ２８の位置及び方向と、上記算出されたワークＷの位置及び方向と、ワークＷの形状を表す３次元データとに基づいて、ＣＣＤカメラ２８によりワークＷを撮像したと仮想した場合の仮想画像を取得する（Ｓ２５）。上述したように、画像処理装置１０は、３次元ＣＡＤの機能を備えており、ワークＷの形状を表す３次元データを有している。そこで、ワークＷに対応する３次元データを読み込み、上述のステップ２４で得られたワークＷの位置及び方向をベースに、仮想空間内に仮想ワークを作り出す。そして、その仮想空間内のロボットベース座標（ロボット２０を基準とした座標）を基準に、保有しているロボット情報（アーム２１の長さ、ＣＣＤカメラ２８のアーム２１の先端部２１ａからのオフセット量、ワークＷを撮像したときの先端部２１ａの座標）から仮想ＣＣＤカメラを作り出し、その仮想ＣＣＤカメラから撮像された仮想画像を作成する。
【００５２】
図６は、このようにして画像処理装置１０の３次元ＣＡＤの機能により作成されたワークＷの仮想画像である。この仮想画像に示されるように、ワークＷは、図４に示した実画像と同様の構成を備えている。ただし、仮想画像のワークＷでは、矩形部ａ３を備えていない点で実画像のワークＷと相違しており、その他の点は実画像のワークＷと同一になっている。すなわち、ワークＷの３次元データとしては、一体に形成された円筒部ａ１及び半円筒部ａ２が設定されており、これらと別体に形成された矩形部ａ３は設定されていない。
【００５３】
図５に戻り、仮想画像を取得した後（Ｓ２５）、この仮想画像のうちワークＷの非検査部分を削除する（Ｓ２６）。すなわち、ワークＷの検査部分は予め決まっているため、ワークＷの３次元データのうち検査部分に対応する要素を検出する。そして、仮想画像において、検査部分に対応する要素の画像を残し、検査部分に対応しない要素の画像を削除する。上述したように、ワークＷにおいて、円筒部ａ１及びねじ孔部Ｐ５，Ｐ６が検査部分となっており、その他の部分は非検査部分となっている。このため、仮想画像において、円筒部ａ１及びねじ孔部Ｐ５，Ｐ６の画像を残し、半円筒部ａ２及びフランジ部ａ４の画像を削除する。
【００５４】
図７は、図６の仮想画像から非検査部分を削除した画像である。同図に示すように、この画像では、円筒部ａ１とねじ孔部Ｐ５，Ｐ６のみが、検査部分として表示されている。すなわち、ワークＷの仮想画像のうち、検査に必要な部分の画像のみが抽出されている。
【００５５】
図５に戻り、仮想画像からワークＷの非検査部分を削除した画像を取得した後（Ｓ２６）、その画像においてワークＷに対応する部分と背景部分とを反転させてマスク画像を作成する（Ｓ２７）。すなわち、仮想画像からワークＷの非検査部分を削除した画像において、背景部分をマスク画像のマスク部とし、その他の部分（円筒部ａ１とねじ孔部Ｐ５，Ｐ６）をマスク画像の非マスク部とする。
【００５６】
図８は、図７の画像に基づいて作成したマスク画像である。このマスク画像において、ハッチング部分がマスク部ｍであり、白抜き部分が非マスク部ｍａである。すなわち、このマスク画像を他の画像の上に重ねた場合、マスク部ｍと重なる部分の画像が覆われ、非マスク部ｍａと重なる部分の画像が透過される。
【００５７】
図５に戻り、マスク画像を作成した後（Ｓ２７）、このマスク画像によりワークＷの実画像をマスキングする（Ｓ２８）。すなわち、ワークＷの実画像の上にマスク画像を重ね合わせる。このとき、実画像とマスク画像とで、対応する部分同士の位置が一致することとなる。なお、実画像とマスク画像とで対応する部分同士の位置にずれがある場合には、ワークＷの所定部分（例えば、ねじ孔Ｐ１〜Ｐ４）の位置を基準として、その位置が互いに一致するように実画像とマスク画像とを重ね合わせてもよい。
【００５８】
図９は、図４の実画像を図８のマスク画像でマスキングした検査用画像である。この検査用画像では、実画像のうち検査に必要な部分（円筒部ａ１とねじ孔部Ｐ５，Ｐ６）が抜き出され、その他の部分がマスク部ｍによってマスキングされている。
【００５９】
図５に戻り、実画像をマスク画像でマスキングした検査用画像に基づいて、ワークＷの外観の良否判定を行う（Ｓ２９）。具体的には、検査部分の輝度データと対応する標準の輝度データとを比較して、それらの相違が所定範囲内であるか否かにより外観の良否判定を行う。こうして、この一連の処理を終了する。
【００６０】
なお、Ｓ２１の処理が実画像取得手段の位置及び方向を算出する算出手段としての処理に相当し、Ｓ２３，２４の処理がワーク位置算出手段としての処理に相当し、Ｓ２５の処理が仮想画像取得手段としての処理に相当し、Ｓ２６，２７の処理がマスク画像作成手段としての処理に相当する。
【００６１】
以上詳述した本実施形態は以下の利点を有する。
【００６２】
・多関節型のロボット２０ではアーム２１の位置及び方向を正確に把握することが可能であり、アーム２１の位置及び方向に基づいてＣＣＤカメラ２８の位置及び方向が検出される。そして、ワークＷの形状を表す３次元データと、ワークＷの位置及び方向と、ＣＣＤカメラ２８の位置及び方向、すなわちワークＷを撮像するＣＣＤカメラ２８の視点とに基づいて、ＣＣＤカメラ２８によりワークＷを撮像したと仮想した場合の仮想画像が取得される。すなわち、この仮想画像は、ＣＣＤカメラ２８がその現在位置でワークＷのみを撮像した場合に取得される画像に相当する。
【００６３】
さらに、この仮想画像に基づいて、ＣＣＤカメラ２８により取得される実画像の一部をマスキングするマスク画像が作成される。仮想画像では、仮想画像を取得する際のＣＣＤカメラ２８の位置及び方向、すなわち仮想画像として表されるワークＷの位置及び方向にかかわらず、外観検査におけるワークＷの検査部分を予め把握することができる。このため、仮想画像においてワークＷの検査部分に対応させて、実画像から検査に必要な部分のみを抜き出すためのマスク画像を作成することができる。その結果、ＣＣＤカメラ２８の視点に応じて柔軟にマスク画像を作成するとともに、マスク画像を作成する手間を減らすことができる。
【００６４】
・仮想画像では、外観検査におけるワークＷの検査部分を予め把握することができるため、その検査部分のみを残してその他の部分（非検査部分）を削除することができる。このため、仮想画像からワークＷの非検査部分を削除した画像において、その背景部分をマスク画像のマスク部ｍとすることにより、マスク画像を容易に作成することができる。
【００６５】
・ＣＣＤカメラ２８の位置及び方向を算出するために用いられるアーム２１の位置及び方向が、ロボットのアーム２１の動作を制御する制御装置２４から画像処理装置１０へ入力される。このため、マスク画像作成システムにおいて、アーム２１の位置及び方向を算出するための手段を別途設ける必要がなく、ロボット２０の備える制御装置２４を有効に活用することができる。
【００６６】
・ＣＣＤカメラ２８により取得される実画像に基づいてワークＷの位置及び方向が算出され、この算出されるワークＷの位置及び方向に基づいて上記仮想画像が取得される。したがって、ワークＷの実際の位置及び方向に応じて、正確な仮想画像を取得することができる。その結果、マスク画像を正確に作成することができる。
【００６７】
・ワークＷの位置及び方向が算出されるとともに、仮想画像がワークＷ毎に取得され、マスク画像がワークＷ毎に作成される。このため、ワークＷ毎に実際の位置及び方向が異なっていても、ワークＷ毎に適切なマスク画像を作成することができる。さらに、この場合であっても、ワークＷ毎のマスク画像を容易に作成することができるため、マスク画像を作成する手間が増えることを抑制することができる。
【００６８】
・アーム２１（詳しくはハンド部）及びＣＣＤカメラ２８の位置関係と、アーム２１の位置及び方向とに基づいて、ＣＣＤカメラ２８の位置及び方向が算出される。このとき、ロボット２０では、アーム２１の位置及び方向を正確に制御することができるため、ＣＣＤカメラ２８の位置及び方向を正確に算出することができる。ひいては、正確な仮想画像及びマスク画像を作成することができる。
【００６９】
上記実施形態に限定されず、例えば次のように実施することもできる。
【００７０】
・上記実施形態では、画像処理装置１０は、仮想画像をワークＷ毎に取得し、マスク画像をワークＷ毎に作成するようにしたが、ワークＷの位置及び方向が毎回同じであれば、１つのワークＷについて作成したマスク画像を他のワークＷの外観検査で用いてもよい。その場合には、ワークＷの位置及び方向を算出する処理を省略してもよい。
【００７１】
また、ティーチング時に、アーム２１の撮像位置を記憶するとともに、その時のワークＷの位置及び方向に応じたマスク画像を作成しておき、そのマスク画像をワークＷの外観検査で用いるようにしてもよい。詳しくは、ＣＣＤカメラ２８における焦点距離Ｌはカメラキャリブレーションが済んでいるはずなので取得されており、そこで、やや撮像位置をずらした点でもう１枚撮像することで、ステレオ法により、ワークＷの位置（座標）をベース座標系（ロボット２０を基準とした座標系）の座標として取得する。ワークＷの方向（向き）は、撮像した画像そのものから取得する。そして、アーム２１の撮像位置並びにワークＷの位置及び方向に基づいてワークＷの仮想画像を取得し、この仮想画像に基づいてマスク画像を作成する。
【００７２】
・上記実施形態では、画像処理装置１０は、１つのワークＷに対してマスク画像を１つ作成したが、ワークＷの検査部分が複数ある場合や、ワークＷを複数の視点から撮像して検査を行う場合には、それに応じて１つのワークＷに対して複数のマスク画像を作成するとよい。また、ベルトコンベアＣにより、複数種類のワークが搬送される場合であっても、各ワークの形状を表す３次元データを容易しておくことにより、ワークの種類に応じたマスク画像を作成することができる。
【００７３】
・上記実施形態では、ワークＷの形状を表す３次元データ、算出されたワークＷの位置及び方向、並びにＣＣＤカメラ２８の位置及び方向に基づいて、仮想画像を取得するようにした。しかしながら、算出されたワークＷの位置及び方向に基づいて、アーム２１の位置及び方向を補正するようにアーム２１を動作させてもよい。すなわち、ティーチング時と同様の実画像が取得されるように、制御装置２４によりアーム２１を動作させる。こうした構成によっても、ワークＷの実際の位置及び方向に応じて、正確な仮想画像を取得することができる。その結果、マスク画像を正確に作成することができる。
【００７４】
・上記実施形態では、画像処理装置１０は、アーム２１の動作を制御する制御装置２４からアーム２１の位置及び方向を入力するようにしたが、アーム２１の位置及び方向を算出するための手段を別途設けた構成を採用することもできる。
【００７５】
・上記実施形態では、仮想画像のうちワークＷの非検査部分を削除した画像を作成し、その画像の背景部分をマスク画像のマスク部ｍとしたが、仮想画像のうちワークＷ以外の部分をマスク画像のマスク部としてもよい。このようなマスク画像であっても、実画像からワークＷのみを抜き出すことができる。
【００７６】
・ＣＣＤカメラ２８に限らず、その他の撮像装置を採用することもできる。
【００７７】
・垂直多関節型の６軸ロボットに限らず、それ以外の軸数や型式のロボットを採用することもできる。
【符号の説明】
【００７８】
１０…画像処理装置、２０…ロボット、２１…アーム、２４…制御装置（制御手段）、２８…ＣＣＤカメラ（実画像取得手段）。
【図１】
2012022600.tif 000003
【図２】
2012022600.tif 000004
【図３】
2012022600.tif 000005
【図５】
2012022600.tif 000006
【図６】
2012022600.tif 000007
【図７】
2012022600.tif 000008
【図４】
2012022600.tif 000009
【図８】
2012022600.tif 000010
【図９】
2012022600.tif 000011