(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022039888
(43)【公開日】2022-03-10
(54)【発明の名称】検査システムおよび検査方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20220303BHJP
B25J 13/08 20060101ALI20220303BHJP
【FI】
G06T7/00 610
B25J13/08 A
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2020192673
(22)【出願日】2020-11-19
(31)【優先権主張番号】P 2020144273
(32)【優先日】2020-08-28
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000006220
【氏名又は名称】ミツミ電機株式会社
(74)【代理人】
【識別番号】100091627
【弁理士】
【氏名又は名称】朝比 一夫
(74)【代理人】
【識別番号】100173691
【弁理士】
【氏名又は名称】高橋 康久
(74)【代理人】
【識別番号】100091292
【弁理士】
【氏名又は名称】増田 達哉
(74)【代理人】
【識別番号】100137095
【弁理士】
【氏名又は名称】江部 武史
(72)【発明者】
【氏名】森本 一幸
(72)【発明者】
【氏名】図斉 賢治
(72)【発明者】
【氏名】福冨 健智
【テーマコード(参考)】
3C707
5L096
【Fターム(参考)】
3C707BS03
3C707DS01
3C707KS05
3C707KT01
3C707KT05
3C707KT11
3C707LT12
3C707LV19
3C707MT04
5L096BA03
5L096BA05
5L096CA02
5L096EA14
5L096EA43
5L096FA09
5L096FA25
5L096GA08
(57)【要約】
【課題】ワークに対する作業の成否を正確に判別することができる検査システムおよび検査方法を提供する。
【解決手段】検査システム100は、ワーク3に対する作業を実行するためのロボット1と、カメラ2と、ロボット1およびカメラ2を制御するための制御装置4と、を含む。制御装置4は、ワーク3に対して作業を実行する前に、ワーク3の作業前画像を取得し、さらに、ワーク3に対して作業を実行した後、ワーク3の作業後画像を取得し、作業前画像内の複数の特徴点の位置と、作業後画像内の対応する複数の特徴点との位置がそれぞれ一致するよう、作業前画像および作業後画像の少なくとも一方に対して画像補正処理を実行し、作業前画像と作業後画像との差分を抽出することにより、差分画像を取得し、差分画像に基づいて、ワーク3に対する作業の成否を判別するよう構成されている。
【選択図】
図10
【特許請求の範囲】
【請求項1】
ワークに対する作業を実行するためのロボットと、
前記ワークを撮影可能に設けられたカメラと、
前記ロボットおよび前記カメラを制御するための制御装置と、を含み、
前記制御装置は、
前記ロボットを駆動して前記ワークに対して前記作業を実行する前に、前記カメラを駆動して前記ワークの作業前画像を取得し、さらに、前記ロボットを駆動して前記ワークに対して前記作業を実行した後に、前記カメラを駆動して前記ワークの作業後画像を取得し、
前記作業前画像内の複数の特徴点と、前記作業前画像内の前記複数の特徴点にそれぞれ対応する前記作業後画像内の複数の特徴点とを特定し、互いに対応付けられた前記作業前画像内の前記特徴点と前記作業後画像内の前記特徴点からそれぞれ構成される複数の特徴点ペアのリストを取得するための特徴点マッチングを実行し、
前記リストに含まれる前記複数の特徴点ペアのそれぞれの前記作業前画像内の前記特徴点の位置と、前記作業後画像内の対応する前記特徴点との位置がそれぞれ一致するよう、前記作業前画像および前記作業後画像の少なくとも一方に対して画像補正処理を実行し、
前記画像補正処理を実行した後に、前記作業前画像と前記作業後画像との差分を抽出することにより、差分画像を取得し、
前記差分画像に基づいて、前記ワークに対する前記作業の成否を判別する、よう構成されていることを特徴とする検査システム。
【請求項2】
前記作業前画像および前記作業後画像の少なくとも一方に対して実行される前記画像補正処理は、アフィン変換またはホモグラフィー変換である請求項1に記載の検査システム。
【請求項3】
前記制御装置は、前記差分画像を二値化し、前記二値化された差分画像の画素値の合計に基づいて、前記ワークに対する前記作業の成否を判別するよう構成されている請求項1または2に記載の検査システム。
【請求項4】
前記制御装置は、前記画像補正処理を実行した後、前記作業前画像および前記作業後画像のそれぞれの検査領域を切り出し、前記作業前画像の前記検査領域と前記作業後画像の前記検査領域との差分を抽出することにより、前記差分画像を取得するよう構成されている請求項1ないし3のいずれかに記載の検査システム。
【請求項5】
前記制御装置は、前記特徴点マッチングを実行した後、前記リストから、信頼性の低い特徴点ペアを除外するための除外処理を実行するよう構成されている請求項1ないし4のいずれかに記載の検査システム。
【請求項6】
前記除外処理は、前記リストに含まれる前記複数の特徴点ペアの前記作業前画像内の前記複数の特徴点同士の角度と、前記リストに含まれる前記複数の特徴点ペアの前記作業後画像内の前記複数の特徴点同士の角度との角度差に基づいて、前記信頼性の低い特徴点ペアを判別し、前記リストから前記信頼性の低い特徴点ペアを除外する請求項5に記載の検査システム。
【請求項7】
前記除外処理は、前記リストに含まれる前記複数の特徴点ペアのそれぞれの前記作業前画像内の前記特徴点と前記作業後画像内の前記特徴点との間のユークリッド距離を算出し、さらに、前記算出された前記ユークリッド距離に基づいて、前記信頼性の低い特徴点ペアを判別し、前記リストから前記信頼性の低い特徴点ペアを除外する請求項5または6に記載の検査システム。
【請求項8】
前記除外処理は、前記リストに含まれる前記複数の特徴点ペアのそれぞれの前記作業前画像内の前記特徴点と前記作業後画像内の前記特徴点との間の角度を算出し、さらに、前記算出された前記角度に基づいて、前記信頼性の低い特徴点ペアを判別し、前記リストから前記信頼性の低い特徴点ペアを除外する請求項5ないし7のいずれかに記載の検査システム。
【請求項9】
前記ロボットは、前記ワークに対する前記作業を実行するための作業部と、前記ワークと前記作業部との相対位置を変化させるための可動部と、を備えており、
前記ワークに対する前記作業を実行するために前記ロボットの前記可動部によって前記ワークと前記作業部との前記相対位置を変化させた際に、前記カメラと前記ワークとの相対位置が変化する請求項1ないし8のいずれかに記載の検査システム。
【請求項10】
前記ロボットは、前記ワークを載置するためのワークテーブルをさらに備えており、
前記ワークテーブルの作業面をXY平面としたとき、前記可動部は、X軸方向に移動可能なX軸可動部と、を含んでおり、
前記作業部および前記カメラは、前記X軸可動部によって前記X軸方向に移動可能に設けられている請求項9に記載の検査システム。
【請求項11】
前記可動部は、Z軸方向に移動可能なZ軸可動部をさらに含んでおり、
前記Z軸可動部は、前記X軸可動部に取り付けられており、
前記作業部および前記カメラは、前記Z軸可動部に取り付けられ、これにより、前記X軸方向および前記Z軸方向に移動可能である請求項10に記載の検査システム。
【請求項12】
ロボットによるワークに対する作業の成否を、カメラを用いて判別するための検査方法であって、
前記ロボットを駆動して前記ワークに対して前記作業を実行する前に、前記カメラを駆動して前記ワークの作業前画像を取得し、さらに、前記ロボットを駆動して前記ワークに対して前記作業を実行した後に、前記カメラを駆動して前記ワークの作業後画像を取得する工程と、
前記作業前画像内の複数の特徴点と、前記作業前画像内の前記複数の特徴点にそれぞれ対応する前記作業後画像内の複数の特徴点とを特定し、互いに対応付けられた前記作業前画像内の前記特徴点と前記作業後画像内の前記特徴点からそれぞれ構成される複数の特徴点ペアのリストを取得する特徴点マッチングを実行する工程と、
前記リストに含まれる前記複数の特徴点ペアのそれぞれの前記作業前画像内の前記特徴点の位置と、前記作業後画像内の対応する前記特徴点との位置がそれぞれ一致するよう、前記作業前画像および前記作業後画像の少なくとも一方に対して画像補正処理を実行する工程と、
前記作業前画像と前記作業後画像との差分を抽出することにより、差分画像を取得する工程と、
前記差分画像に基づいて、前記ワークに対する前記作業の成否を判別する工程と、を含むことを特徴とする検査方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、ロボットを用いたワークに対する作業の成否を判別するための検査システムおよび検査方法であって、より具体的には、カメラを用いて、ワークに対する作業を実行する前のワークの作業前画像と、ワークに対する作業を実行した後のワークの作業後画像と、を取得し、作業前画像と作業後画像との差分を抽出することにより取得された差分画像に基づいて、ロボットを用いたワークに対する作業の成否を判別するための検査システムおよび検査方法に関する。
【背景技術】
【0002】
近年、工場の生産ラインにおいて、作業の自動化・無人化を図るため、組立や加工用の産業用ロボットが広く用いられている。産業用ロボットは、工場の生産ラインにおいて、作業対象物(これを「ワーク」という)に対する所定の作業、例えば、部品の取り付け、液体材料の塗布や切削等の加工等を行う。このような産業用ロボットは、ロボットアームや可動ステージ等の可動部と、ワークに対する所定の作業を実行するための作業部(例えば、ピックアップハンド、ノズル)とを備えており、可動部によって作業部とワークとの相対位置を制御することにより、ワークに対する所定の作業を実現する。
【0003】
また、このような産業用ロボットを用いる場合、ワークに対する作業の成否を検査することが広く行われている。例えば、ワークの所定のワークポイントに対する部品の取り付け、液体材料の塗布、切削等が、位置ズレなく実行されたか否かが、ワークの画像に基づいて検査される。このような検査において、カメラを用いて、ワークに対する作業を実行する前のワークの作業前画像と、ワークに対する作業を実行した後のワークの作業後画像とを取得し、両画像の差分を抽出することにより差分画像を取得し、該差分画像に基づいてワークに対する作業の成否が判別される。差分画像を参照することにより、例えば、部品の取り付け位置や液体材料の塗布の面積(塗布量)等の実際に実行された作業に関する情報を取得することができる。このような実際に実行された作業に関する情報に基づいて、ワークに対する作業の成否を判別することができる。
【0004】
また、作業が正確に実行されたサンプルワークを撮影することにより事前に取得されたマスター画像と、検査対象のワークの作業後画像との差分を抽出することにより差分画像を取得し、該差分画像に基づいて、検査対象のワークに対する作業の成否を判別する技術も知られている。しかしながら、この場合、製造誤差や組立誤差等に起因するサンプルワークに対する検査対象のワークのサイズや形状の差のような、ワークに対する作業以外の要因に起因する差分も抽出される。そのため、ワークに対する作業の成否のみを精度良く判別したい場合には、ワークに対する作業に起因する差分のみが抽出される、ワークの作業前画像および作業後画像から取得された差分画像を用いることが好ましい。
【0005】
ワークの作業前画像および作業後画像から取得された差分画像を用いた検査は、産業用ロボットを用いたFA分野において非常に有益であるが、差分画像を得る際、作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置とが正確に一致していなければならない。特に、産業用ロボットを用いたFA分野においては、ワークが非常に小型の精密部品であることが多く、作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置との間の位置ズレの許容公差が非常に小さい。
【0006】
作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置との間の位置ズレを小さくするため、ワークの作業後画像を取得する際に、産業用ロボットを制御することによって、ワークに対するカメラの相対位置を調整することが広く行われている。しかしながら、この場合、ワークに対するカメラの相対位置の位置補正の精度は、産業用ロボット自身の位置出し精度や制御分解能に依存するため、高い位置出し精度を期待することができない。例えば、許容公差は、μm以下の単位である場合が多いのに対し、産業用ロボット自身の位置出し精度や制御分解能は、数μm~数十μmのレベルである場合が多い。この場合、産業用ロボットを制御しても、作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置との間の位置ズレを許容公差以下にすることは非常に困難である。また、ワークに対する作業中にワークの位置が変化し、ロボットの治具に対するワークの位置ズレが生じた場合には、産業用ロボットを制御したとしても、位置補正を実行することができない。
【0007】
このような問題に対し、2つの画像から差分画像を取得する際に、ブロックマッチング技術を用いて、2つの画像間の位置ズレを検出し、検出された位置ズレに基づいて、一方または双方の画像のXY方向の位置補正を行う技術が知られている(特許文献1参照)。特許文献1が開示する技術では、2つの画像のそれぞれを複数のブロックに分割し、2つの画像の各ブロック中の対応する特徴点を特徴点マッチングにより特定することにより2つの画像の各ブロック中に対応する特徴点間の位置ズレ量を検出し、さらに、検出された対応する特徴点間の位置ズレ量に基づいて、一方または双方の画像のXY方向の位置補正が実行される。このような特許文献1が開示する技術は、差分画像を取得するために比較される2つの画像を取得するためのカメラの被写体に対する姿勢や向きの違いによる、画像変形が発生していないことを前提としている。すなわち、特許文献1が開示する技術を用いた位置補正を用いるためには、2つの画像を取得するためのカメラの被写体に対する姿勢や向きが、一定であるという条件を満たす必要がある。
【0008】
図1には、被写体(図示の例ではカニ)に対するカメラの姿勢や向きを様々に変化させて、被写体を撮影した場合に得られるカメラ画像500の変形の複数の例が示されている。
図1に示されているように、カメラの姿勢や向きに応じて、カメラ画像500の変形の状態は、変化する。例えば、
図1に示されているように、長方形の被写体が、平行四辺形や台形になる変形が生じる。特許文献1が開示する技術は、このような被写体に対するカメラの姿勢や向きの違いに起因する画像変形の影響を考慮していない。そのため、差分画像を得るために比較される2つの画像の変形が互いに異なっている場合には、特許文献1が開示する技術を用いることができない。
【0009】
しかしながら、産業用ロボットを用いたFA分野においては、ワークに対する作業を実行した際に、カメラの回転ズレやチルトズレが発生し、ワークに対するカメラの姿勢や向きが変化したり、ワークテーブル上でワークが位置ズレしたり、傾いたりするケースが存在する。このような場合、ワークの作業前画像および作業後画像の変形が互いに異なってしまう。そのため、特許文献1が開示するような2つの画像のXY方向の位置補正を行う位置補正技術を、産業用ロボットを用いるFA分野で用いたとしても、作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置との間の位置ズレを正確に補正することができず、ワークに対する作業の成否を正確に判別することができないという問題があった。
【0010】
また、作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置との間の位置ズレを正確に補正するためには、作業前画像内の複数の特徴点と、作業前画像内の複数の特徴点にそれぞれ対応する作業後画像内の特徴点とを、特徴点マッチングによって正確に特定する必要がある。特徴点マッチングの精度を高めるため、特許文献2は、比較される2つの画像のそれぞれに含まれる複数の特徴点間の距離や角度を含む特徴ベクトルを検出し、検出された特徴ベクトルを利用することにより、比較される2つの画像の対応する特徴点を正確に検出する技術を開示している。しかしながら、特許文献2が開示するような従来技術を用いたとしても、誤った特徴点マッチングが行われてしまうという問題があった。このような誤った特徴点マッチングは、作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置との間の位置ズレを正確に補正し、ワークに対する作業の成否を正確に判別することを困難にしてしまう。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2013-186562号公報
【特許文献2】特開2019-101975号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明は、上記従来の問題点を鑑みたものであり、その目的は、ワークの作業前画像および作業後画像の変形が互いに異なっている場合であっても、作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置との間の位置ズレを正確に補正し、ワークに対する作業の成否を正確に判別することができる検査システムおよび検査方法を提供することにある。
【課題を解決するための手段】
【0013】
このような目的は、以下の(1)~(12)の本発明により達成される。
(1)ワークに対する作業を実行するためのロボットと、
前記ワークを撮影可能に設けられたカメラと、
前記ロボットおよび前記カメラを制御するための制御装置と、を含み、
前記制御装置は、
前記ロボットを駆動して前記ワークに対して前記作業を実行する前に、前記カメラを駆動して前記ワークの作業前画像を取得し、さらに、前記ロボットを駆動して前記ワークに対して前記作業を実行した後に、前記カメラを駆動して前記ワークの作業後画像を取得し、
前記作業前画像内の複数の特徴点と、前記作業前画像内の前記複数の特徴点にそれぞれ対応する前記作業後画像内の複数の特徴点とを特定し、互いに対応付けられた前記作業前画像内の前記特徴点と前記作業後画像内の前記特徴点からそれぞれ構成される複数の特徴点ペアのリストを取得するための特徴点マッチングを実行し、
前記リストに含まれる前記複数の特徴点ペアのそれぞれの前記作業前画像内の前記特徴点の位置と、前記作業後画像内の対応する前記特徴点との位置がそれぞれ一致するよう、前記作業前画像および前記作業後画像の少なくとも一方に対して画像補正処理を実行し、
前記画像補正処理を実行した後に、前記作業前画像と前記作業後画像との差分を抽出することにより、差分画像を取得し、
前記差分画像に基づいて、前記ワークに対する前記作業の成否を判別する、よう構成されていることを特徴とする検査システム。
【0014】
(2)前記作業前画像および前記作業後画像の少なくとも一方に対して実行される前記画像補正処理は、アフィン変換またはホモグラフィー変換である上記(1)に記載の検査システム。
【0015】
(3)前記制御装置は、前記差分画像を二値化し、前記二値化された差分画像の画素値の合計に基づいて、前記ワークに対する前記作業の成否を判別するよう構成されている上記(1)または(2)に記載の検査システム。
【0016】
(4)前記制御装置は、前記画像補正処理を実行した後、前記作業前画像および前記作業後画像のそれぞれの検査領域を切り出し、前記作業前画像の前記検査領域と前記作業後画像の前記検査領域との差分を抽出することにより、前記差分画像を取得するよう構成されている上記(1)ないし(3)のいずれかに記載の検査システム。
【0017】
(5)前記制御装置は、前記特徴点マッチングを実行した後、前記リストから、信頼性の低い特徴点ペアを除外するための除外処理を実行するよう構成されている上記(1)ないし(4)のいずれかに記載の検査システム。
【0018】
(6)前記除外処理は、前記リストに含まれる前記複数の特徴点ペアの前記作業前画像内の前記複数の特徴点同士の角度と、前記リストに含まれる前記複数の特徴点ペアの前記作業後画像内の前記複数の特徴点同士の角度との角度差に基づいて、前記信頼性の低い特徴点ペアを判別し、前記リストから前記信頼性の低い特徴点ペアを除外する上記(5)に記載の検査システム。
【0019】
(7)前記除外処理は、前記リストに含まれる前記複数の特徴点ペアのそれぞれの前記作業前画像内の前記特徴点と前記作業後画像内の前記特徴点との間のユークリッド距離を算出し、さらに、前記算出された前記ユークリッド距離に基づいて、前記信頼性の低い特徴点ペアを判別し、前記リストから前記信頼性の低い特徴点ペアを除外する(5)または(6)に記載の検査システム。
【0020】
(8)前記除外処理は、前記リストに含まれる前記複数の特徴点ペアのそれぞれの前記作業前画像内の前記特徴点と前記作業後画像内の前記特徴点との間の角度を算出し、さらに、前記算出された前記角度に基づいて、前記信頼性の低い特徴点ペアを判別し、前記リストから前記信頼性の低い特徴点ペアを除外する上記(5)ないし(7)のいずれかに記載の検査システム。
【0021】
(9)前記ロボットは、前記ワークに対する前記作業を実行するための作業部と、前記ワークと前記作業部との相対位置を変化させるための可動部と、を備えており、
前記ワークに対する前記作業を実行するために前記ロボットの前記可動部によって前記ワークと前記作業部との前記相対位置を変化させた際に、前記カメラと前記ワークとの相対位置が変化する上記(1)ないし(8)のいずれかに記載の検査システム。
【0022】
(10)前記ロボットは、前記ワークを載置するためのワークテーブルをさらに備えており、
前記ワークテーブルの作業面をXY平面としたとき、前記可動部は、X軸方向に移動可能なX軸可動部と、を含んでおり、
前記作業部および前記カメラは、前記X軸可動部によって前記X軸方向に移動可能に設けられている上記(9)に記載の検査システム。
【0023】
(11)前記可動部は、Z軸方向に移動可能なZ軸可動部をさらに含んでおり、
前記Z軸可動部は、前記X軸可動部に取り付けられており、
前記作業部および前記カメラは、前記Z軸可動部に取り付けられ、これにより、前記X軸方向および前記Z軸方向に移動可能である上記(10)に記載の検査システム。
【0024】
(12)ロボットによるワークに対する作業の成否を、カメラを用いて判別するための検査方法であって、
前記ロボットを駆動して前記ワークに対して前記作業を実行する前に、前記カメラを駆動して前記ワークの作業前画像を取得し、さらに、前記ロボットを駆動して前記ワークに対して前記作業を実行した後に、前記カメラを駆動して前記ワークの作業後画像を取得する工程と、
前記作業前画像内の複数の特徴点と、前記作業前画像内の前記複数の特徴点にそれぞれ対応する前記作業後画像内の複数の特徴点とを特定し、互いに対応付けられた前記作業前画像内の前記特徴点と前記作業後画像内の前記特徴点からそれぞれ構成される複数の特徴点ペアのリストを取得する特徴点マッチングを実行する工程と、
前記リストに含まれる前記複数の特徴点ペアのそれぞれの前記作業前画像内の前記特徴点の位置と、前記作業後画像内の対応する前記特徴点との位置がそれぞれ一致するよう、前記作業前画像および前記作業後画像の少なくとも一方に対して画像補正処理を実行する工程と、
前記作業前画像と前記作業後画像との差分を抽出することにより、差分画像を取得する工程と、
前記差分画像に基づいて、前記ワークに対する前記作業の成否を判別する工程と、を含むことを特徴とする検査方法。
【発明の効果】
【0025】
本発明によれば、ワークの作業前画像および作業後画像の変形が互いに異なっている場合であっても、作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置との間の位置ズレを正確に補正し、ワークに対する作業の成否を正確に判別することができる。
【0026】
また、本発明においては、特徴点ペアのリストを取得するための特徴点マッチングが実行された後、取得された特徴点ペアのリストから信頼性の低い特徴点ペアを除外するための除外処理が実行される。そのため、作業前画像中におけるワークの各要素の位置と、作業後画像中におけるワークの対応する各要素の位置との間の位置ズレをより正確に補正し、ワークに対する作業の成否を正確に判別することができる。
【図面の簡単な説明】
【0027】
【
図1】被写体に対するカメラの姿勢や向きに応じて変化するカメラ画像の変形を説明するための図である。
【
図2】本発明の検査システムを概略的に示すブロック図である。
【
図3】
図2に示すロボット、カメラ、およびワークを示す斜視図である。
【
図6】
図2に示す制御装置を概略的に示すブロック図である。
【
図7】特徴点ペアのリストから、信頼性の低い特徴点ペアを除外するための除外処理を説明するための図である。
【
図8】特徴点ペアのリストから、信頼性の低い特徴点ペアを除外するための別の除外処理を説明するための図である。
【
図9】作業前画像および作業後画像から差分画像を得るための処理を説明するための図である。
【
図10】本発明の検査方法を示すフローチャートである。
【発明を実施するための形態】
【0028】
以下、本発明の検査システムおよび検査方法を、添付図面に示す好適な実施形態に基づいて、説明する。なお、以下で参照する各図は、本発明の説明のために用意された模式的な図である。図面に示された各構成要素の寸法(長さ、幅、厚さ等)は、必ずしも実際の寸法を反映したものではない。また、各図において、同一または対応する要素には、同じ参照番号が付されている。以下の説明において、各図のZ軸の正方向を「上側」といい、Z軸の負方向を「下側」ということがある。
【0029】
最初に、
図2~
図9を参照して、本発明の検査システムを詳述する。
図2は、本発明の検査システムを概略的に示すブロック図である。
図3は、
図2に示すロボット、カメラ、およびワークを示す斜視図である。
図4は、
図3中のカメラの周辺領域の拡大図である。
図5は、ワークの作業前画像の一例を示す図である。
図6は、
図2に示す制御装置を概略的に示すブロック図である。
図7は、特徴点ペアのリストから、信頼性の低い特徴点ペアを除外するための除外処理を説明するための図である。
図8は、特徴点ペアのリストから、信頼性の低い特徴点ペアを除外するための別の除外処理を説明するための図である。
図9は、作業前画像および作業後画像から差分画像を得るための処理を説明するための図である。
【0030】
<検査システム100>
図2に概略的に示されている検査システム100は、ロボット1によって実行されるワーク3に対する作業の成否を判別するために用いられる。検査システム100は、ロボット1と、カメラ2と、ロボット1のワークテーブル11上に載置されたワーク3と、ロボット1およびカメラ2の制御を行うための制御装置4と、を含んでいる。
【0031】
ロボット1は、ワークテーブル11上に載置されたワーク3に対して、部品の取り付け、塗布や切削等の加工等の所定の作業を行う機能を有している。典型的には、ロボット1は、ワーク3(例えば、回路基板や精密部品)に対して精密作業を行い、プロダクトまたは仕掛品を得るための産業用ロボットである。ロボット1は、ワークテーブル11と、ワークテーブル11上に載置されたワーク3に対する作業を実行するための作業部12と、ワークテーブル11上に載置されたワーク3と作業部12との相対位置を変化させるための可動部13と、を備えている。
【0032】
図3に示されているように、ワークテーブル11は、平板状の部材であり、その上に作業部12によって作業が施されるワーク3が載置される。作業部12は、ワークテーブル11上に載置されたワーク3に対して所定の作業を実行するために用いられる。ワーク3に対して実行すべき作業の内容に応じて、様々なツールを、作業部12として用いることができる。例えば、ワーク3に対して熱硬化性樹脂等の接着剤の塗布を行う場合には、ノズルを作業部12として用いることができ、ワーク3に対して部品の組み付けを行う場合には、ピックアップハンドを作業部12として用いることができる。
【0033】
作業部12は、図示しない配線によって制御装置4に接続されており、制御装置4からの制御に応じて、所定の動作を実行する。例えば、作業部12がノズルである場合には、作業部12は、制御装置4からの制御に応じて、ノズル内部に充填された液体材料(例えば、熱硬化性樹脂等の接着剤)をワーク3に対して塗布する動作を実行する。以下、作業部12は、制御装置4からの制御に応じて、液体材料をワーク3の1つ以上のワークポイント32(作業対象点、
図5参照)に対して塗布するためのノズルであるとして説明を提供するが、上述のように作業部12はノズルに限られない点に留意されたい。制御装置4からの制御に応じて、可動部13が駆動され、作業部12とワークテーブル11上に載置されたワーク3との相対位置が調整された後、制御装置4は、作業部12に対して制御信号を送信し、作業部12は、ワーク3に対して自身の内部に充填された液体材料を、ワーク3のワークポイント32のいずれか1つに対して吐出する。
【0034】
可動部13は、ロボット1の土台として機能するベース131と、ベース131の上方にベース131の上面とは離間して設けられたX軸可動部13Xと、ベース131の上面上に設けられたY軸可動部13Yと、X軸可動部13Xに取り付けられたZ軸可動部13Zと、を備えている。
【0035】
X軸可動部13Xは、図示しない配線によって制御装置4に接続されており、制御装置4からの制御に応じて、X軸ステージ133Xを、
図3中のX軸方向に沿ってスライド移動させる機能を有している。X軸可動部13Xは、ベース131のX軸方向の両端側にそれぞれ立設するよう設けられた一対の脚部131Xと、ベース131の上面から離間し、一対の脚部131Xの間を架橋するよう設けられ、図中のX軸に沿って延伸するX軸レール132Xと、X軸レール132X上をスライド移動可能に設けられた箱形のX軸ステージ133Xと、X軸ステージ133Xをスライド移動させるためのステッピングモーター等のX軸アクチュエーター(図示せず)と、を備えている。制御装置4からX軸アクチュエーターに制御信号が送信されると、X軸アクチュエーターが制御信号に応じて駆動し、X軸ステージ133Xを、X軸レール132X上でスライド移動させる。
【0036】
Y軸可動部13Yは、図示しない配線によって制御装置4に接続されており、制御装置4からの制御に応じて、Y軸ステージ132Yを、
図3中のY軸方向に沿ってスライド移動させる機能を有している。Y軸可動部13Yは、ベース131の上面上に設けられ、図中のY軸に沿って延伸するY軸レール131Yと、Y軸レール131Y上をスライド移動可能に設けられた平板状のY軸ステージ132Yと、Y軸ステージ132Yをスライド移動させるためのステッピングモーター等のY軸アクチュエーター(図示せず)と、を備えている。制御装置4からY軸アクチュエーターに制御信号が送信されると、Y軸アクチュエーターが制御信号に応じて駆動し、Y軸ステージ132YをY軸レール131Y上でスライド移動させる。また、
図3に示されているように、ワークテーブル11の面およびY軸ステージ132Yの面は、図中のXY平面と一致している。また、ロボット1のワークテーブル11が、Y軸ステージ132Y上に固定されている。
【0037】
Z軸可動部13Zは、図示しない配線によって制御装置4に接続されており、制御装置4からの制御に応じて、Z軸ステージ131Zを、
図3中のZ軸方向に沿ってスライド移動させる機能を有している。Z軸可動部13Zは、X軸可動部13XのX軸ステージ133X上に設けられた平板状のZ軸ステージ131Zと、Z軸ステージ131Zをスライド移動させるためのステッピングモーター等のZ軸アクチュエーター(図示せず)と、を備えている。制御装置4からZ軸アクチュエーターに制御信号が送信されると、Z軸アクチュエーターが制御信号に応じて駆動し、Z軸ステージ131ZをX軸ステージ133X上で、Z軸方向に沿ってスライド移動させる。また、
図3に示されているように、Z軸ステージ131Zの面方向は、図中のXZ平面と一致している。また、作業部12およびカメラ2が、固定具によって、Z軸ステージ131Zの面上に固定されている。
【0038】
このように図示の形態では、ワークテーブル11は、Y軸可動部13YのY軸ステージ132Y上に取り付けられている。一方、Z軸可動部13ZのZ軸ステージ131Zは、X軸可動部13XのX軸ステージ133Xに取り付けられており、さらに、作業部12およびカメラ2が、Z軸ステージ131Zに取り付けられている。したがって、制御装置4は、可動部13のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zを駆動することにより、作業部12とワークテーブル11上に載置されたワーク3との相対位置を変更することができる。なお、制御装置4によって、ロボット1のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zが駆動されていない初期状態の作業部12およびカメラ2の位置を初期位置という。
【0039】
カメラ2は、ワークテーブル11の上方において、ワークテーブル11上に載置されたワーク3を撮影可能に設けられた任意の撮像デバイスである。
図3に示されているように、カメラ2は、可動部13のZ軸可動部13ZのZ軸ステージ131Zに取り付けられている。カメラ2は、図示しない配線によって制御装置4に接続されており、作業部12とワークテーブル11を含むカメラ画像をリアルタイムで取得し、取得したカメラ画像を制御装置4に送信する。制御装置4は、カメラ2から送信されたカメラ画像を参照することにより、作業部12とワークテーブル11上に載置されたワーク3との相対位置をリアルタイムで確認することができる。したがって、カメラ2は、作業部12とワークテーブル11上に載置されたワーク3との相対位置を観察するための視覚センサーとして機能する。
【0040】
図4は、
図3中のカメラ2の周辺領域の拡大図を示している。なお、
図4中においてカメラ2の先端から下方に向けて放射状に延伸する点線は、カメラ2の視野を表現している。
図4に示されているように、カメラ2は、カメラ2の視野内に常に、ワーク3に対する作業を実行する作業部12の先端部121が位置するような向きおよび位置で、Z軸ステージ131Zに取り付けられている。このように、カメラ2および作業部12の双方がZ軸ステージ131Zに取り付けられているため、カメラ2と作業部12との相対位置は常に一定である。また、作業部12の先端部121は、作業部12がノズルである場合には、液滴を吐出するノズル先端であり、作業部12がピックアップハンドである場合には、ワーク3を把持するハンド先端部である。
【0041】
このような構成により、ロボット1がワーク3に対する作業を実行する際にカメラ2によってリアルタイムで取得されるカメラ画像は、作業部12の先端部121とワークテーブル11上のワーク3を常に含んでいる。そのため、制御装置4は、カメラ画像を参照することにより、作業部12とワークテーブル11上に載置されたワーク3との相対位置をリアルタイムで直接確認することができ、作業部12とワークテーブル11上に載置されたワーク3との相対位置の制御をより正確に実行することができる。
【0042】
また、後述するように、本発明の検査システム100では、カメラ2は、ロボット1によるワーク3に対する作業が実行される前にワーク3を撮影することにより、ワーク3の作業前画像を取得し、さらに、ロボット1によるワーク3に対する作業が実行された後にワーク3を撮影することにより、ワーク3の作業後画像を取得するよう、制御装置4によって制御される。カメラ2によって取得されるワーク3の作業前画像および作業後画像は、ロボット1がワーク3に対する作業の成否を判別するための検査に利用される。
【0043】
なお、カメラ2は、可動部13のZ軸可動部13ZのZ軸ステージ131Zに取り付けられているので、作業部12によるワーク3に対する作業を実行するために、制御装置4が可動部13のX軸可動部13XおよびZ軸可動部13Zを駆動し、ワーク3と作業部12との相対位置を変化させた際には、カメラ2とワーク3との相対位置も変化する。このように、本発明の検査システム100において、ワークテーブル11上に載置されたワーク3に対するカメラ2の姿勢および向きは一定ではない。そのため、ロボット1によるワーク3に対する作業を実行した後に、制御装置4がロボット1の可動部13を駆動させ、作業部12およびカメラ2を初期位置に戻したとしても、可動部13の制御分解能や作業中におけるワーク3の作業中の位置ズレや傾き等の複数の要因によって、ワーク3に対するカメラ2の姿勢や向きは、作業部12によるワーク3に対する作業を実行する前とは異なってしまう。そのため、ロボット1によるワーク3に対する作業が実行される前に取得されるワーク3の作業前画像の変形と、ロボット1によるワーク3に対する作業が実行された後に取得されるワーク3の作業後画像の変形とが異なっている。後述するように、本発明の検査システム100は、このようなワーク3の作業前画像および作業後画像の変形が互いに異なっていたとしても、ワーク3の作業前画像および作業後画像の位置合わせを正確に実行することができるよう構成されている。
【0044】
図5は、ワーク3の作業前画像の一例を示している。
図5に示されている例では、ワーク3は、ロボット1の作業部12によって接着剤等の液体材料が塗布される精密部品である。ワーク3は、作業前画像と作業後画像との位置合わせのための画像補正処理を実行するための特徴点として利用可能な複数(図示の例では、4つ)の基準マーカー31と、接着剤等の液体材料が塗布される1つ以上のワークポイント32と、を含んでいる。
【0045】
複数の基準マーカー31は、作業前画像と作業後画像との位置合わせを行うために作業前画像および作業後画像の少なくとも一方に対して実行される画像補正処理において、作業前画像と作業後画像との位置合わせのための特徴点として利用可能な部分である。図示の形態において、複数の基準マーカー31のそれぞれは、カメラ2によって取得される作業前画像と作業後画像内において高いコントラストで表示されるよう、ワーク3の上面に形成された黒点である。後述するように、作業前画像と作業後画像との位置合わせのために実行される画像補正処理を実行するためには、作業前画像内の複数の特徴点と、作業後画像内の対応する複数の特徴点とを、特定する必要がある。作業前画像および作業後画像内の特徴点としては、典型的には、ワーク3のエッジ部分、特に四隅のエッジ部分が利用されるが、カメラ2の撮影条件等によっては、ワーク3のエッジ部分が作業前画像および作業後画像内に鮮明に表示されていない場合が発生し得る。このような場合、作業前画像と作業後画像内において高いコントラストで表示される複数の基準マーカー31が、作業前画像および作業後画像内の特徴点として利用されることが好ましい。後述するように、本発明の検査システム100においては、作業前画像内における複数の特徴点の位置と、作業後画像内における対応する複数の特徴点の位置とがそれぞれ一致するよう、作業前画像および作業後画像の少なくとも一方に対して画像補正処理が実行される。
【0046】
ワーク3の作業前画像および作業後画像の変形が互いに異なっている場合、従来技術の欄において述べたような、ワーク3の作業前画像および作業後画像の少なくとも一方に対するXY方向の位置補正を行うと、作業前画像内における任意の1つの特徴点の位置と、作業後画像内における対応する1つの特徴点の位置とを一致させることができるが、作業前画像内におけるその他の複数の特徴点の位置と、作業後画像内における対応する複数の特徴点の位置とを一致させることはできない。本発明の検査システム100においては、ワーク3の作業前画像および作業後画像の変形が互いに異なっていたとしても、作業前画像内における複数の特徴点の位置と、作業後画像内における対応する複数の特徴点の位置とがそれぞれ一致するよう、作業前画像および作業後画像の少なくとも一方に対して画像補正処理が実行される。
【0047】
1つ以上のワークポイント32は、ロボット1の作業部12による作業が実行されるべき箇所である。図示の例では、6つのワークポイント32のそれぞれに、作業部12によって、所定の量の液体材料が塗布される。ワークポイント32の数と位置は事前に設定されており、制御装置4は、カメラ2によって取得されるカメラ画像を参照することにより、複数のワークポイント32のそれぞれの位置を特定することができる。例えば、制御装置4は、既知のパターン認識アルゴリズム等の任意の対象認識技術を用いてカメラ画像内の任意の基準マーカー31の位置を特定し、特定された基準マーカー31と事前に設定された位置関係にある領域をワークポイント32として特定することができる。
【0048】
図6には、制御装置4のブロック図が示されている。制御装置4は、ロボット1の各コンポーネント(具体的には、作業部12および可動部13)およびカメラ2に接続されている。制御装置4は、ロボット1の各コンポーネントおよびカメラ2を制御する機能を有している。制御装置4は、単体のデバイスとして実施されていてもよいし、デスクトップコンピューター、ラップトップコンピューター、ノートパソコン、ワークステーション、タブレット型コンピューター、携帯電話、スマートフォン、PDA、ウェアラブル端末、サーバー等の任意の演算デバイス内において実施されていてもよい。
【0049】
図6に示されているように、制御装置4は、制御装置4の動作を実行するための1つ以上のプロセッサー41と、制御装置4への入力および制御装置4からの出力を実行するためのI/O(インプット/アウトプット)インターフェース42と、制御装置4の処理を実行するために用いられるデータ44およびモジュール45を保存している1つ以上のメモリー43と、を備えている。
【0050】
1つ以上のプロセッサー41は、1つ以上のマイクロプロセッサー、マイクロコンピューター、マイクロコントローラー、デジタル信号プロセッサー(DSP)、中央演算処理装置(CPU)、メモリーコントロールユニット(MCU)、画像処理用演算処理装置(GPU)、状態機械、論理回路、特定用途向け集積回路(ASIC)、またはこれらの組み合わせ等のコンピューター可読命令に基づいて信号操作等の演算処理を実行する演算ユニットである。特に、プロセッサー41は、メモリー43内に保存されているコンピューター可読命令(例えば、データ、プログラム、モジュール等)をフェッチし、演算、信号操作および制御を実行するよう構成されている。
【0051】
I/Oインターフェース42は、ウェブインターフェース、グラフィカルユーザーインターフェース(GUI)等の様々なソフトウェアインターフェースおよびハードウェアインターフェースを含む。例えば、I/Oインターフェース42は、キーボード、マウス、タッチパネルディスプレイ、外部メモリー、プリンター、ディスプレイのような周辺デバイスのためのインターフェースである。I/Oインターフェース42は、キーボード、マウス、タッチパネルディスプレイのような入力デバイスを用いた制御装置4への入力およびディスプレイ、プリンター、外部メモリー等の外部デバイスへの制御装置4からの出力を可能とする。また、I/Oインターフェース42は、制御装置4が、インターネット等のネットワークを介して、外部に設けられたウェブサーバーやデータサーバーのような任意の外部デバイスと通信を行うことを可能としてもよい。
【0052】
メモリー43は、揮発性記憶媒体(例えば、RAM、SRAM、DRAM)、不揮発性記憶媒体(例えば、ROM、EPROM、EEPROM、フラッシュメモリー、ハードディスク、ソリッドステートドライブ、SDカード、光ディスク、CD-ROM、デジタル多用途ディスク(DVD)、ブルーレイディスク、磁気カセット、磁気テープ、磁気ディスク)、またはこれらの組み合わせを含むコンピューター可読媒体である。
【0053】
メモリー43は、プロセッサー41と通信可能に接続されており、プロセッサー41により実行可能な複数のモジュール45、および、複数のモジュール45による処理に必要なデータ44を保存している。また、メモリー43は、複数のモジュール45の1つ以上によって受信、処理、生成されたデータや、複数のモジュール45による処理を実行するために必要なデータを一時保存する機能を備えている。
【0054】
データ44は、ワーク3の作業前画像および作業後画像のそれぞれから、ロボット1のワーク3に対する作業の成否を判別するために必要な検査領域を切り出すための検査領域情報441と、ワーク3の作業前画像と作業後画像との差分を抽出することにより得られた差分画像に基づいて、ワーク3に対する作業の成否を判別するために用いられる成否判別条件442と、制御装置4の処理を実行するために必要な任意の数のその他データ443と、を含んでいる。
【0055】
検査領域情報441は、ワーク3の作業前画像および作業後画像のそれぞれから切り取られる検査領域を特定するための情報である。具体的には、検査領域情報441は、検査領域の開始点座標(x1、y1)と、検査領域のx方向およびy方向の幅(x_length、y_length)または検査領域の終了点座標(x2、y2)を含む。制御装置4は、検査領域情報441に従って、ワーク3の作業前画像から、開始点座標(x1、y1)、x方向およびy方向の幅(x_length、y_length)または終了点座標(x2、y2)から特定される領域を切り出し、作業前画像の検査領域を取得する。同様に、制御装置4は、検査領域情報441に従って、ワーク3の作業後画像から、開始点座標(x1、y1)、x方向およびy方向の幅(x_length、y_length)または終了点座標(x2、y2)から特定される領域を切り出し、作業後画像の検査領域を取得する。
【0056】
検査領域情報441は、検査システム100のユーザーまたは管理者によって、適宜設定可能である。例えば、検査システム100のユーザーまたは管理者は、作業前画像および作業後画像の検査領域に、ワーク3の全てのワークポイント32が含まれるように、検査領域情報441を設定してもよいし、作業前画像および作業後画像の検査領域に、ワーク3の任意の1つ以上のワークポイント32が含まれるように、検査領域情報441を設定してもよい。作業前画像および作業後画像の検査領域に、ワーク3の複数のワークポイント32が含まれる場合には、検査システム100は、個々のワークポイント32に対する作業が成功したか否かを個別には判別せず、検査領域に含まれる複数のワークポイント32のそれぞれに対する作業が、全体として成功したか否かを判別する。一方、作業前画像および作業後画像の検査領域に、ワーク3の1つのワークポイント32が含まれる場合には、検査システム100は、該1つのワークポイント32に対する作業が、成功したか否かを判別する。
【0057】
成否判別条件442は、作業前画像と作業後画像との差分を抽出することにより得られた差分画像に基づいて、ロボット1によるワーク3に対する作業の成否を判別するために用いられる条件である。後述するように、ロボット1によるワーク3に対する作業の成否を判別する際には、差分画像は二値化される。したがって、二値化された差分画像において、作業前画像と作業後画像との相違部分の画素値の値は、1(白色)となっており、作業前画像と作業後画像との共通部分の画素値の値は、0(黒色)となっている。したがって、二値化された差分画像の白色部分(画素値が1の部分)が、作業前画像と作業後画像との相違部分となる。
【0058】
ワーク3の1つ以上のワークポイント32に対して液体材料の塗布や部品の取り付け等の作業を行う場合、検査領域情報441によって特定された検査領域内における作業前画像と作業後画像との相違部分の面積を、ロボット1によるワーク3に対する作業の成否を判断する際の基準として利用することができる。例えば、作業前画像と作業後画像との相違部分の面積が所定の下限しきい値より小さい場合、ワーク3のワークポイント32に対して、液体材料が塗布されていない、液体材料の塗布量が少ない、または、部品が取り付けられていない等のエラーが発生している。一方、作業前画像と作業後画像との相違部分の面積が所定の上限しきい値より大きい場合、ワーク3のワークポイント32に対して、液体材料が必要以上に塗布されている、または、異なった部品が取り付けられている等のエラーが発生している。
【0059】
作業前画像と作業後画像との相違部分の面積は、二値化された差分画像の画素値の合計(白色部分の合計画素数)に等しいので、二値化された差分画像の画素値の合計が、所定の下限しきい値と上限しきい値とによって規定される範囲内にあるか否かで、ロボット1によるワーク3に対する作業の成否を判別することができる。したがって、成否判別条件442は、二値化された差分画像の画素値の合計の下限しきい値および上限しきい値である。成否判別条件442は、ロボット1によるワーク3に対する作業の内容、検査領域の大きさ等に応じて、検査システム100のユーザーまたは管理者によって適宜設定される。
【0060】
モジュール45は、ルーティーン、アプリケーション、プログラム、アルゴリズム、ライブラリー、オブジェクト、コンポーネント、データ構造、またはこれらの組み合わせ等のプロセッサー41により実行可能なコンピューター可読命令である。
【0061】
モジュール45は、カメラ2を制御するためのカメラ制御モジュール451と、ロボット1を制御するためのロボット制御モジュール452と、ワーク3の作業前画像内の複数の特徴点と、ワーク3の作業前画像内の複数の特徴点にそれぞれ対応するワーク3の作業後画像内の複数の特徴点とを特定し、互いに対応付けられた作業前画像内の特徴点と作業後画像内の特徴点とからそれぞれ構成される複数の特徴点ペアのリストを取得するための特徴点マッチングを実行する特徴点マッチングモジュール453と、特徴点ペアのリストから信頼性の低い特徴点ペアを除外するための除外処理を実行する除外モジュール454と、ワーク3の作業前画像と作業後画像との位置合わせを行うために、ワーク3の作業前画像および作業後画像の少なくとも一方に対して画像補正処理を実行するための画像補正モジュール455と、画像補正処理を実行した後に、ワーク3の作業前画像と作業後画像との差分を抽出することにより、差分画像を取得するための差分画像作成モジュール456と、差分画像に基づいて、ロボット1によるワーク3に対する作業の成否を判別するための検査モジュール457と、制御装置4が提供する機能を補うための任意の数のその他モジュール458と、を含んでいる。
【0062】
カメラ制御モジュール451は、カメラ2を駆動し、カメラ画像を取得する機能を有している。カメラ制御モジュール451によって取得および補正されたカメラ画像は、メモリー43内に一時的に保存され、制御装置4の各モジュールによって用いられる。特に、カメラ制御モジュール451は、ロボット1によるワーク3に対する作業を実行する前にワーク3を撮影することにより、ワーク3の作業前画像を取得し、さらに、ロボット1によるワーク3に対する作業を実行した後にワーク3を撮影することにより、ワーク3の作業後画像を取得するために、制御装置4によって用いられる。
【0063】
ロボット制御モジュール452は、ロボット1を制御する機能を有している。より具体的には、ロボット制御モジュール452は、ロボット1の可動部13を駆動させ、ロボット1の作業部12とワークテーブル11上のワーク3との相対位置を変化させる機能と、作業部12を駆動させ、ワーク3に対して所定の作業を実行する機能と、を有している。
【0064】
ロボット制御モジュール452は、可動部13のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zをそれぞれ独立に駆動させることができる。ロボット制御モジュール452は、カメラ2によって取得されるカメラ画像を参照し、ワーク3の複数のワークポイント32のそれぞれの位置を特定する。その後、ロボット制御モジュール452は、ロボット1の作業部12とワークテーブル11上のワーク3の任意の1つのワークポイント32との相対位置を変化させるために、可動部13のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zのそれぞれの駆動の目標量を決定し、X軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zのそれぞれ用の出力値を決定する。その後、ロボット制御モジュール452は、可動部13のX軸可動部13XおよびY軸可動部13Yに対して、決定した出力値を出力し、可動部13のX軸可動部13XおよびY軸可動部13Yをそれぞれ独立に駆動させ、作業部12とワーク3との相対位置を、ワーク3の1つのワークポイント32に対する作業を実行するために適切な所定の状態とする。
【0065】
より具体的には、ロボット制御モジュール452は、最初に、X軸可動部13XおよびY軸可動部13Yを駆動し、作業部12の先端部121とワーク3の1つのワークポイント32との相対位置がアプローチ条件を満たすようにする。なお、ここでいう「アプローチ条件」とは、作業部12の先端部121とワーク3の1つのワークポイント32とのXY平面上での相対位置が、ロボット制御モジュール452がZ軸可動部13Zを駆動し、作業部12の先端部121をワーク3の1つのワークポイント32に向かってアプローチさせるために適した条件にあるか否かを判断するための条件である。例えば、アプローチ条件は、カメラ2が取得したカメラ画像内における作業部12の先端部121とワーク3の1つのワークポイント32との離間距離、ワーク3の1つのワークポイント32に対する作業部12の先端部121の角度等である。アプローチ条件は、作業部12の形状、作業部12が行う作業の種類、ワーク3の形状、大きさ等に応じて事前に設定されている。このように、ロボット制御モジュール452は、X軸可動部13XおよびY軸可動部13Yを駆動し、作業部12の先端部121とワーク3の1つのワークポイント32との相対位置がアプローチ条件を満たすようにする。
【0066】
その後、ロボット制御モジュール452は、Z軸可動部13Zを駆動し、作業部12の先端部121をワーク3の1つのワークポイント32に対してアプローチさせ、作業部12の先端部121を、ワーク3の1つのワークポイント32に接触または近接させる。その後、ロボット制御モジュール452は、作業部12を駆動し、ワーク3の1つのワークポイント32に対して所定の作業を行う。ワーク3の1つのワークポイント32に対する所定の作業が終了した後、ロボット制御モジュール452は、ワーク3の別のワークポイント32に対する作業を実行するために、可動部13および作業部12を駆動する。ロボット1によるワーク3の全てのワークポイント32に対する作業が終了すると、ロボット制御モジュール452によって、作業部12が初期位置に戻される。この際、ロボット1の可動部13のZ軸可動部13Zに取り付けられているカメラ2も、初期位置に戻される。この状態において、カメラ制御モジュール451がカメラ2を駆動し、ワーク3の作業後画像を取得する。
【0067】
特徴点マッチングモジュール453は、ワーク3の作業前画像内の複数の特徴点と、ワーク3の作業前画像内の複数の特徴点にそれぞれ対応するワーク3の作業後画像内の複数の特徴点とを特定し、互いに対応付けられた作業前画像内の特徴点と作業後画像内の特徴点からそれぞれ構成される複数の特徴点ペアのリストを取得するための特徴点マッチングを実行する機能を有している。ここでいう、特徴点ペアとは、作業前画像内の任意の1つの特徴点と、これに対応する作業後画像内の特徴点とから構成されるペアである。特徴点マッチングモジュール453は、特徴点マッチングの分野において既知の任意の特徴点マッチングアルゴリズム、例えば、SIFT、SURF、AKAZE、ORB等を用いて、ワーク3の作業前画像内の複数の特徴点と、ワーク3の作業前画像内の複数の特徴点にそれぞれ対応するワーク3の作業後画像内の複数の特徴点とを特定し、複数の特徴点ペアのリストを取得することができる。
【0068】
典型的には、特徴点マッチングモジュール453は、最初に、キャニーエッジ検出(Canny edge detector)等の任意のエッジ抽出方法を用いて、ワーク3の作業前画像内の複数の特徴点と、ワーク3の作業後画像内の複数の特徴点とを検出する。この際、作業前画像および作業後画像のそれぞれ内のワーク3の四隅のエッジ部および複数の基準マーカー31が、特徴点として検出されることが好ましい。その後、特徴点マッチングモジュール453は、作業前画像内の任意の特徴点と、作業後画像内の全ての特徴点のそれぞれとの類似度の算出を行い、最も高い類似度を有する作業後画像内の特徴点を、作業前画像内の任意の特徴点に対応する作業後画像内の特徴点であると特定する。次に、特徴点マッチングモジュール453は、作業前画像内の任意の特徴点と、特定された作業後画像内の対応する特徴点とを対応付けて、1組の特徴点ペアを構成する。この特徴点ペアの構成を、作業前画像内の全ての特徴点に対して実行し、特徴点ペアの第1の仮リストを取得する。このような特徴点ペアのリストの取得は、特徴点マッチングの分野において、総当たりマッチング(Brute Force Matching)と称され、ハミング距離等の既知の方法で算出される任意の類似度を利用して実行される。
【0069】
次に、特徴点マッチングモジュール453は、作業前画像内の全ての特徴点に対して実行した前述の総当たりマッチングを、作業後画像内の全ての特徴点に対して実行し、複数の特徴点ペアの第2の仮リストを取得する。その後、特徴点マッチングモジュール453は、特徴点ペアの第1の仮リストと、特徴点ペアの第2の仮リストとを比較し(このような比較は、特徴点マッチングの分野において、「クロスチェック」と称される)、複数の特徴点ペアの第1の仮リストと、複数の特徴点ペアの第2の仮リストとで一致する特徴点ペアのみで、複数の特徴点ペアのリストを作成する。特徴点マッチングモジュール453によって取得された複数の特徴点ペアのリストは、メモリー43内に一時保存される。
【0070】
除外モジュール454は、特徴点マッチングモジュール453によって取得された複数の特徴点ペアのリストから、信頼性の低い特徴点ペアを除外するための除外処理を実行する機能を有している。除外モジュール454によって実行される除外処理は、(1)特徴点ペアのリストに含まれる複数の特徴点ペアの作業前画像内の複数の特徴点同士の角度と、特徴点ペアのリストに含まれる複数の特徴点ペアの作業後画像内の複数の特徴点同士の角度との角度差に基づいて、信頼性の低い特徴点ペアを判別し、特徴点ペアのリストから信頼性の低い特徴点ペアを除外する第1の除外処理と、(2)特徴点ペアのリストに含まれる複数の特徴点ペアのそれぞれの作業前画像内の特徴点と作業後画像内の特徴点との間のユークリッド距離を算出し、さらに、算出されたユークリッド距離に基づいて、信頼性の低い特徴点ペアを判別し、特徴点ペアのリストから信頼性の低い特徴点ペアを除外する第2の除外処理と、(3)特徴点ペアのリストに含まれる複数の特徴点ペアのそれぞれの作業前画像内の特徴点と作業後画像内の特徴点との間の角度を算出し、さらに、算出された角度に基づいて、信頼性の低い特徴点ペアを判別し、特徴点ペアのリストから信頼性の低い特徴点ペアを除外する第3の除外処理と、を含む。
【0071】
図7は、第1の除外処理を説明するための図である。
図8は、第2の除外処理および第3の除外処理を説明するための図である。なお、
図7および
図8中においては、図の見易さのため、作業前画像および作業後画像のそれぞれ内にM字状の被写体が含まれているものとする。検査システム100を実際に運用する際には、作業前画像および作業後画像のそれぞれ内にワーク3が含まれる点に注意されたい。
図7に示されているような作業前画像および作業後画像に対して、特徴点マッチングモジュール453による特徴点マッチングが実行されると、例えば、
図7および
図8中において丸印でマークされているような複数の特徴点FPが検出される。
図7および
図8中において、特徴点FP
1nは、特徴点マッチングモジュール453によって取得された特徴点ペアのリストに含まれる第n番目の特徴点ペアを構成する作業前画像内の特徴点を表し、特徴点FP
2nは、特徴点マッチングモジュール453によって取得された特徴点ペアのリストに含まれる第n番目の特徴点ペアを構成する作業後画像内の特徴点を表す。したがって、特徴点ペアのリストに含まれる第n番目の特徴点ペアは、互いに対応付けられた作業前画像内の特徴点FP
1nおよび作業後画像内の特徴点FP
2nから構成される。
【0072】
最初に、
図7を参照して、第1の除外処理を詳述する。第1の除外処理において、作業前画像内の各特徴点FP
1nの他の特徴点FP
1mのそれぞれに対する角度θ
1nmが下記式(1)によって算出され、各特徴点FP
1nの他の特徴点FP
1mに対する角度の集合Θ
1n=(θ
1n0,θ
1n1,θ
1n2,...,θ
1nm-1,θ
1nm)が取得される。
【0073】
【数1】
ここで、nおよびmは、0以上の整数(n≠m)であり、x
1nおよびy
1nは、第n番目の特徴点ペアの特徴点FP
1nの作業前画像内におけるx座標およびy座標であり、x
1mおよびy
1mは、第m番目の特徴点ペアの特徴点FP
1mの作業前画像内におけるx座標およびy座標であり、θ
1nmは、第n番目の特徴点ペアの特徴点FP
1nの第m番目の特徴点ペアの特徴点FP
1mに対する角度である。
【0074】
次に、作業後画像内の各特徴点FP2nの他の特徴点FP2mのそれぞれに対する角度θ2nmが下記式(2)によって算出され、各特徴点FP2nの他の特徴点FP2mに対する角度の集合Θ2n=(θ2n0,θ2n1,θ2n2,...,θ2nm-1,θ2nm)が取得される。
【0075】
【数2】
ここで、nおよびmは、0以上の整数(n≠m)であり、x
2mおよびy
2mは、特徴点ペアのリストに含まれる第m番目の特徴点ペアの特徴点FP
2mの作業後画像内におけるx座標およびy座標であり、x
2nおよびy
2nは、特徴点ペアのリストに含まれる第n番目の特徴点ペアの特徴点FP
2nの作業後画像内におけるx座標およびy座標であり、θ
2nmは、第n番目の特徴点ペアの特徴点FP
2nの第m番目の特徴点ペアの特徴点FP
2mに対する角度である。
【0076】
次に、下記式(3)にしたがって、複数の特徴点ペアの作業前画像内の複数の特徴点FP1n同士の角度θ1nmと、複数の特徴点ペアの作業前画像内の複数の特徴点FP1n同士の角度θ2nmとの角度差Δθnmが計算され、特徴点ペアの角度差Δθnmの集合ΔΘn=(Δθn0,Δθn1,...,Δθnm-1,Δθnm)と、全ての特徴点ペアの角度差Δθnmを含む集合ΔΘ=(ΔΘ0,ΔΘ1,...,ΔΘn-1,ΔΘn)が取得される。
【0077】
【数3】
ここで、Δθ
nmは、作業前画像内の第n番目の特徴点ペアの特徴点FP
1nの作業前画像内の第m番目の特徴点ペアの特徴点FP
1mに対する角度と、作業後画像内の第n番目の特徴点ペアの特徴点FP
2nの作業後画像内の第m番目の特徴点FP
2mに対する角度との角度差である。
【0078】
次に、各特徴点ペアの角度差Δθnmの集合ΔΘn=(Δθn0,Δθn1,...,Δθnm-1,Δθnm)の第一四分位数(25パーセンタイル)、第三四分位数(75パーセンタイル)、および第三四分位数から第一四分位数を引いた四分位範囲(=第三四分位数-第一四分位数)が算出され、メモリー43内に一時的に保存される。次に、各特徴点ペアの角度差Δθnmの集合ΔΘnから、自身の第一四分位数、第三四分位数、および四分位範囲から算出された(第一四分位数-1.5×四分位範囲)未満の角度差Δθnmと、(第一四分位数+1.5×四分位範囲)を超える角度差Δθnmを、外れ値として除外する。次に、外れ値が除外された各特徴点ペアの角度差Δθnmの集合ΔΘnの中央値(50パーセンタイル)が算出され、特徴点ペアの角度差Δθnmの集合ΔΘnのそれぞれ(ΔΘ0,ΔΘ1,...,ΔΘn-1,ΔΘnのそれぞれ)の中央値がメモリー43内に一時保存される。以下、外れ値が除外された各特徴点ペアの角度差Δθnmの集合ΔΘnの中央値を、各特徴点ペアの角度差Δθnmの中央値という。
【0079】
次に、集合ΔΘを構成する全ての特徴点ペアの角度差Δθnmの第一四分位数、第三四分位数、および第三四分位数から第一四分位数を引いた四分位範囲が算出され、メモリー43内に一時的に保存される。その後、集合ΔΘから、(第一四分位数-1.5×四分位範囲)未満の角度差Δθnmと、(第一四分位数+1.5×四分位範囲)を超える角度差Δθnmを、外れ値として除外する。次に、外れ値が除外された集合ΔΘを構成する全ての特徴点ペアの角度差Δθnmの中央値および標準偏差σθが算出され、メモリー43内に一時保存される。以下、外れ値が除外された集合ΔΘを構成する全ての特徴点ペアの角度差Δθnmの中央値および標準偏差σθを、それぞれ、全ての特徴点ペアの角度差Δθnmの中央値および標準偏差σθという。
【0080】
作業前画像内の特徴点FP1nと作業後画像内の特徴点FP2nのマッチングが正しくなされている場合、作業前画像と作業後画像の変形が互いに異なっていたとしても、作業前画像内の特徴点FP1nの他の特徴点FP1mに対する角度と、作業後画像内の特徴点FP2nの他の特徴点FP2mに対する角度との角度差Δθnmは、ある一定の値から大きく変化しない。したがって、第n番目の特徴点ペアの角度差Δθnmの中央値が、全ての特徴点ペアの角度差Δθnmの中央値と大きく異なっている場合、第n番目の特徴点ペアが、誤ったマッチング結果によって得られたものである可能性が高く、信頼性の低い特徴点ペアであると判断することができる。例えば、第1番目の特徴点ペアの角度差Δθ1mの中央値が、全ての特徴点ペアの角度差Δθnmの中央値と大きく異なっている場合、第1番目の特徴点ペアが、信頼性の低い特徴点ペアであると判断することができる。したがって、各特徴点ペアの角度差Δθnmの中央値と、全ての特徴点ペアの角度差Δθnmの中央値とを比較することにより、信頼性の低いマッチングペアを判別することができる。
【0081】
第1の除外処理は、各特徴点ペアの角度差Δθnmの中央値と、全ての特徴点ペアの角度差Δθnmの中央値とを比較することにより、信頼性の低いマッチングペアを判別する。具体的には、各特徴点ペアの角度差Δθnmの中央値が、全ての特徴点ペアの角度差Δθnmの中央値±Nσθ(ここで、Nは、1以上の整数であり、必要に応じて適宜設定される。)の範囲内にあるか否かが判別される。角度差Δθnmの中央値が該範囲外である特徴点ペアが、信頼性の低い特徴点ペアであるとして、特徴点マッチングモジュール453によって取得された特徴点ペアのリストから除外される。このようにして、第1の除外処理は、特徴点マッチングモジュール453によって取得された特徴点ペアのリストから、信頼性の低い特徴点ペアを除外する。
【0082】
次に、
図8を参照して、第2の除外処理を詳述する。第2の除外処理において、各特徴点ペアを構成する作業前画像内の特徴点FP
1nと作業後画像内の特徴点FP
2nとの間のユークリッド距離d
nが、下記式(4)によって算出され、ユークリッド距離d
nの集合D=(d
0,d
1,...,d
n-1,d
n)が取得され、メモリー43内に一時保存される。
【0083】
【数4】
ここで、αおよびβは、同一平面状において作業前画像と作業後画像が重ならないようにするために、作業後画像内の特徴点FP
2nのx座標およびy座標にそれぞれ加算される任意の定数である。また、d
nは、特徴点ペアを構成する互いに対応付けられた特徴点同士のユークリッド距離である。例えば、ユークリッド距離d
1は、第1番目の特徴点ペアの作業前画像内の特徴点FP
11と作業後画像内の特徴点FP
21との間のユークリッド距離である。
【0084】
次に、特徴点ペアのユークリッド距離dnの集合Dから、特徴点ペアのユークリッド距離dnの第一四分位数、第三四分位数、および第三四分位数から第一四分位数を引いた四分位範囲が算出され、メモリー43内に一時的に保存される。次に、特徴点ペアのユークリッド距離dnの集合Dから、(第一四分位数-1.5×四分位範囲)未満のユークリッド距離dnと、(第一四分位数+1.5×四分位範囲)を超えるユークリッド距離dnを、外れ値として除外する。次に、外れ値が除外された特徴点ペアのユークリッド距離dnの集合Dの中央値および標準偏差σdが算出され、メモリー43内に一時保存される。
【0085】
作業前画像内の特徴点FP1nと作業後画像内の特徴点FP2nのマッチングが正しくなされている場合、作業前画像と作業後画像の変形が互いに異なっていたとしても、作業前画像内の特徴点FP1nと、作業後画像内の特徴点FP2nとの間のユークリッド距離dnは、ある一定の値から大きく変化しない。したがって、特徴点ペアのユークリッド距離dnが、特徴点ペアのユークリッド距離dnの集合Dの中央値と大きく異なっている場合、そのような特徴点ペアは、誤ったマッチング結果によって得られたものである可能性が高く、信頼性の低い特徴点ペアであると判断することができる。したがって、各特徴点ペアのユークリッド距離dnと、特徴点ペアのユークリッド距離dnの集合Dの中央値とを比較することにより、信頼性の低いマッチングペアを判別することができる。
【0086】
第2の除外処理は、各特徴点ペアのユークリッド距離dnと、特徴点ペアのユークリッド距離dnの集合Dの中央値とを比較することにより、信頼性の低いマッチングペアを判別している。具体的には、各特徴点ペアのユークリッド距離dnが、特徴点ペアのユークリッド距離dnの集合Dの中央値±Nσd(ここで、Nは、1以上の整数であり、必要に応じて適宜設定される。)の範囲内にあるか否かが判別される。該範囲外のユークリッド距離dnを有する特徴点ペアが、信頼性の低い特徴点ペアであるとして、特徴点マッチングモジュール453によって取得された特徴点ペアのリストから除外される。このようにして、第2の除外処理は、特徴点マッチングモジュール453によって取得された特徴点ペアのリストから、信頼性の低い特徴点ペアを除外する。
【0087】
次に、第3の除外処理を詳述する。第3の除外処理において、各特徴点ペアを構成する作業前画像内の特徴点FP1nと作業後画像内の特徴点FP2nとの間の角度φnが、下記式(5)によって算出され、ユークリッド距離φnの集合Φ=(φ0,φ1,...,φn-1,φn)が取得され、メモリー43内に一時保存される。
【0088】
【数5】
ここで、φ
nは、特徴点ペアを構成する互いに対応付けられた特徴点同士の角度である。例えば、角度φ
1は、第1番目の特徴点ペアの作業前画像内の特徴点FP
11と作業後画像内の特徴点FP
21との間の角度である。
【0089】
次に、特徴点ペアの角度φnの集合Φから、特徴点ペアの角度φnの第一四分位数、第三四分位数、および第三四分位数から第一四分位数を引いた四分位範囲が算出され、メモリー43内に一時的に保存される。次に、特徴点ペアの角度φnの集合Φから、(第一四分位数-1.5×四分位範囲)未満の角度φnと、(第一四分位数+1.5×四分位範囲)を超える角度φnを、外れ値として除外する。次に、外れ値が除外された特徴点ペアの角度φnの集合Φの中央値および標準偏差σφが算出され、メモリー43内に一時保存される。
【0090】
作業前画像内の特徴点FP1nと作業後画像内の特徴点FP2nのマッチングが正しくなされている場合、作業前画像と作業後画像の変形が互いに異なっていたとしても、作業前画像内の特徴点FP1nと、作業後画像内の特徴点FP2nとの間の角度φnは、ある一定の値から大きく変化しない。したがって、特徴点ペアの角度φnが、特徴点ペアの角度φnの集合Φの中央値と大きく異なっている場合、そのような特徴点ペアは、誤ったマッチング結果によって得られたものである可能性が高く、信頼性の低い特徴点ペアであると判断することができる。したがって、各特徴点ペアの角度φnと、特徴点ペアの角度φnの集合Φの中央値とを比較することにより、信頼性の低いマッチングペアを判別することができる。
【0091】
第3の除外処理では、各特徴点ペアの角度φnと、特徴点ペアの角度φnの集合Φの中央値とを比較することにより、信頼性の低いマッチングペアを判別している。具体的には、各特徴点ペアの角度φnが、特徴点ペアの角度φnの集合Φの中央値±Nσφ(ここで、Nは、1以上の整数であり、必要に応じて適宜設定される。)の範囲内にあるか否かが判別される。該範囲外の角度φnを有する特徴点ペアが、信頼性の低い特徴点ペアであるとして、特徴点マッチングモジュール453によって取得された特徴点ペアのリストから除外される。このようにして、第3の除外処理は、特徴点マッチングモジュール453によって取得された特徴点ペアのリストから、信頼性の低い特徴点ペアを除外する。
【0092】
除外モジュール454は、上述した第1の除外処理、第2の除外処理、および第3の除外処理の少なくとも1つを実行することにより、特徴点マッチングモジュール453によって取得された特徴点ペアのリストから、信頼性の低い特徴点ペアを除外することができる。
【0093】
画像補正モジュール455は、ワーク3の作業前画像と作業後画像との位置合わせを実行するために、ワーク3の作業前画像および作業後画像の少なくとも一方に対して画像補正処理を実行する機能を有している。より具体的には、画像補正モジュール455は、特徴点マッチングモジュール453によって取得され、さらに、除外モジュール454によって信頼性の低いマッチングペアが除外された特徴点ペアのリストに含まれる特徴点ペアのワーク3の作業前画像中に含まれるワーク3の複数の特徴点の位置と、ワーク3の作業後画像中に含まれるワーク3の対応する複数の特徴点の位置とが一致するように、ワーク3の作業前画像および作業後画像の少なくとも一方に対して、アフィン変換またはホモグラフィー変換を実行する。アフィン変換およびホモグラフィー変換を用いることにより、画像の二次元的な位置補正(すなわち、XY平面での位置シフトやサイズ変換)だけでなく、画像の3次元的な位置補正を実行することができる。
【0094】
前述したように、ワーク3の作業前画像および作業後画像の変形が互いに異なっている場合、ワーク3の作業前画像および作業後画像の少なくとも一方に対するXY方向の位置補正を行っただけでは、作業前画像内における複数の特徴点の位置と、作業後画像内における対応する複数の特徴点の位置とを一致させることができない。一方、ワーク3の作業前画像および作業後画像の変形が互いに異なっている場合であっても、ワーク3の作業前画像および作業後画像の少なくとも一方に対して適切にアフィン変換またはホモグラフィー変換を実行することにより、作業前画像内における複数の特徴点の位置と、作業後画像内における対応する複数の特徴点の位置とを一致させることができる。
【0095】
画像処理分野においてよく知られているように、画像のアフィン変換は、画像の線形変換(回転、拡大縮小、せん断変換)と平行移動の組み合わせであり、長方形の画像を平行四辺形の画像に変形させることができる。ワーク3の作業前画像と作業後画像の位置合わせを行うため、画像補正モジュール455は、ワーク3の作業前画像における3点以上の特徴点の位置と、ワーク3の作業後画像における対応する3点以上の特徴点の位置とが一致するように、ワーク3の作業前画像および作業後画像の少なくとも一方に対してアフィン変換を実行する。アフィン変換は、画像処理分野においてよく知られているように、変換前の座標をアフィン変換後の座標に変換する行列式を用いて実行される。本発明の検査システム100においては、ワーク3の作業前画像における3点以上の特徴点の位置と、ワーク3の作業後画像における対応する3点以上の特徴点の位置とを一致させるための行列式が算出され、該行列式を用いて、ワーク3の作業前画像および作業後画像の少なくとも一方に対してアフィン変換が実行される。ワーク3の作業前画像と作業後画像の位置合わせのために、ワーク3の作業前画像および作業後画像の少なくとも一方に対する画像補正が、アフィン変換で十分な場合には、画像補正モジュール455は、アフィン変換を用いて、ワーク3の作業前画像および作業後画像の少なくとも一方を補正する。
【0096】
一方、画像のホモグラフィー変換は、アフィン変換を拡張したものであり、アフィン変換の機能に加えて、アフィン変換が対応できない長方形の画像から台形の画像への変換を実行することができる。ワーク3の作業前画像と作業後画像の位置合わせを行うため、画像補正モジュール455は、ワーク3の作業前画像における4点以上の特徴点の位置と、ワーク3の作業後画像における対応する4点以上の特徴点の位置とが一致するように、ワーク3の作業前画像および作業後画像の少なくとも一方に対してホモグラフィー変換を実行する。アフィン変換と同様に、ホモグラフィー変換は、変換前の座標をホモグラフィー変換後の座標に変換する行列式(ホモグラフィ行列)を用いて実行される。本発明の検査システム100においては、ワーク3の作業前画像における4点以上の特徴点の位置と、ワーク3の作業後画像における対応する4点以上の特徴点の位置とを一致させるための行列式が算出され、該行列式を用いて、ワーク3の作業前画像および作業後画像の少なくとも一方に対してホモグラフィー変換が実行される。ワーク3の作業前画像および作業後画像の少なくとも一方に対する画像補正が、アフィン変換で不十分な場合には、画像補正モジュール455は、ホモグラフィー変換を用いて、ワーク3の作業前画像および作業後画像の少なくとも一方を補正する。画像補正モジュール455が、アフィン変換とホモグラフィー変換のいずれを、ワーク3の作業前画像および作業後画像の少なくとも一方に実行するかは、検査システム100のユーザーまたは管理者によって適宜事前に設定される。
【0097】
画像補正モジュール455は、上述のようなアフィン変換またはホモグラフィー変換を用いて、ワーク3の作業前画像中に含まれるワーク3の複数の特徴点の位置と、ワーク3の作業後画像中に含まれるワーク3の対応する複数の特徴点の位置とが一致するように、ワーク3の作業前画像および作業後画像の少なくとも一方を補正する。画像補正モジュール455によるワーク3の作業前画像および作業後画像の少なくとも一方に対する画像補正処理によって位置合わせされたワーク3の作業前画像および作業後画像は、メモリー43内に一時的に保存され、差分画像を作成するために用いられる。
【0098】
差分画像作成モジュール456は、画像補正モジュール455によって位置合わせされたワーク3の作業前画像と作業後画像との差分を抽出することにより、差分画像を取得する機能を有している。
図9には、差分画像作成モジュール456によって実行される差分画像抽出処理の概要が示されている。
図9に示されているように、最初に、差分画像作成モジュール456は、メモリー43内に保存されている検査領域情報441を参照して、ワーク3の作業前画像および作業後画像のそれぞれの検査領域を切り出す。その後、差分画像作成モジュール456は、作業前画像の検査領域と作業後の検査領域との差分を抽出し、差分画像を取得する。より具体的には、差分画像作成モジュール456は、作業前画像の検査領域の画素の値の絶対値と、作業後画像の検査領域の対応する画素の値の絶対値との差分の絶対値を得ることによって、差分画像を作成する。その後、差分画像作成モジュール456は、作成された差分画像に対して、適切なしきい値を用いた二値化処理を施し、二値化された差分画像を取得する。
図9に示されているように、二値化された差分画像内において、作業前画像と作業後画像との相違部分の画素値の値は、1(白色)となっており、作業前画像と作業後画像との共通部分の画素値の値は、0(黒色)となっている。このような二値化された差分画像は、メモリー43内に一時保存され、ロボット1によるワーク3に対する作業の成否を判別するために用いられる。
【0099】
検査モジュール457は、差分画像作成モジュール456によって作成された差分画像に基づいて、ロボット1によるワーク3に対する作業の成否を判別する機能を有している。より具体的には、検査モジュール457は、最初に、差分画像作成モジュール456によって作成された二値化された差分画像の画素値の合計(白色部分の画素の合計数)を算出する。次に、検査モジュール457は、メモリー43内に保存されている成否判別条件442を参照し、算出した二値化された差分画像の画素値の合計(白色部分の画素の合計数)が、成否判別条件442の下限しきい値と上限しきい値とによって規定される範囲内であるか否かを判別する。
【0100】
算出した二値化された差分画像の画素値の合計が、下限しきい値と上限しきい値によって規定される範囲内である場合には、検査モジュール457は、ロボット1によるワーク3に対する作業が成功したと判断する。一方、算出した二値化された差分画像の画素値の合計が、下限しきい値と上限しきい値によって規定される範囲内ではない場合には、検査モジュール457は、ロボット1によるワーク3に対する作業が失敗したと判断する。その後、検査モジュール457は、I/Oインターフェース42を用いて、判断結果を検査システム100のユーザーまたは管理者に通知する。これにより、ロボット1によるワーク3に対する作業が失敗した場合には、検査システム100のユーザーまたは管理者は、ロボット1の点検等の適切な措置を取ることができる。
【0101】
このように、本発明の検査システム100においては、ワーク3の作業前画像内の複数の特徴点の位置と、ワーク3の作業後画像内の対応する複数の特徴点との位置がそれぞれ一致するよう、ワーク3の作業前画像および作業後画像の少なくとも一方に対して画像補正処理(アフィン変換またはホモグラフィー変換)が実行される。そのため、ワーク3に対するカメラ2の姿勢や向きの違いに起因して、ワーク3の作業前画像および作業後画像の変形が互いに異なっている場合であっても、作業前画像中におけるワーク3の各要素の位置と、作業後画像中におけるワーク3の対応する各要素の位置との間の位置ズレを正確に補正し、ワーク3に対する作業の成否を正確に判別することができる。
【0102】
<検査方法S100>
上述した検査システム100を用いて本発明の検査方法が実行される。以下、
図10を参照して、本発明の検査方法を詳述する。
図10は、本発明の検査方法を示すフローチャートである。
【0103】
検査方法S100は、検査システム100のユーザーまたは管理者が、制御装置4に対してワーク3に対する所定の作業を開始するための操作を実行すると、開始される。最初に、工程S110において、制御装置4のプロセッサー41は、カメラ制御モジュール451を用いてカメラ2を駆動し、ワークテーブル11上に載置されているワーク3を撮影し、ワーク3の作業前画像を取得する。
【0104】
次に、工程S120において、制御装置4のプロセッサー41は、ロボット制御モジュール452を用いて、ロボット1の可動部13および作業部12を駆動し、ワーク3に対する作業を実行する。具体的には、ロボット制御モジュール452は、最初に、工程S110において取得されたワーク3の作業前画像を参照し、作業前画像内の作業部12の先端部121およびワーク3のワークポイント32のそれぞれの位置を特定する。その後、ロボット制御モジュール452は、ロボット1の作業部12とワーク3の任意の1つのワークポイント32との相対位置を変化させるために、可動部13のX軸可動部13X、Y軸可動部13Y、およびZ軸可動部13Zのそれぞれの駆動の目標量を決定する。その後、ロボット制御モジュール452は、X軸可動部13XおよびY軸可動部13Yに対して、決定した出力値を出力し、X軸可動部13XおよびY軸可動部13Yをそれぞれ独立に駆動させ、作業部12とワーク3との相対位置を、ワーク3の1つのワークポイント32に対する作業を実行するために適切な所定の状態とする。
【0105】
その後、ロボット制御モジュール452は、Z軸可動部13Zに対して決定した出力値を出力し、Z軸可動部13Zを駆動し、作業部12の先端部121をワーク3の1つのワークポイント32に対してアプローチさせ、作業部12の先端部121を、ワーク3の1つのワークポイント32に接触または近接させる。その後、ロボット制御モジュール452は、作業部12を駆動し、ワーク3の1つのワークポイント32に対して所定の作業を行う。ワーク3の1つのワークポイント32に対する所定の作業が終了した後、ロボット制御モジュール452は、ワーク3の別のワークポイント32に対する作業を実行するために、可動部13および作業部12を駆動する。ロボット1によるワーク3の全てのワークポイント32に対する作業が終了すると、ロボット制御モジュール452によって、作業部12が初期位置に戻される。この際、ロボット1の可動部13のZ軸可動部13Zに取り付けられているカメラ2も、初期位置に戻される。
【0106】
次に、工程S130において、制御装置4のプロセッサー41は、カメラ制御モジュール451を用いて、カメラ2を駆動し、ワーク3の作業後画像を取得する。工程S140において、制御装置4のプロセッサー41は、特徴点マッチングモジュール453を用いて、ワーク3の作業前画像内の複数の特徴点と、ワーク3の作業前画像内の複数の特徴点にそれぞれ対応するワーク3の作業後画像内の複数の特徴点とを特定し、互いに対応付けられた作業前画像内の特徴点と作業後画像内の特徴点からそれぞれ構成される複数の特徴点ペアのリストを取得するための特徴点マッチングを実行する。この際、作業前画像および作業後画像のそれぞれ内のワーク3の四隅のエッジ部および複数の基準マーカー31が、特徴点として検出されることが好ましい。
【0107】
次に、工程S150において、制御装置4のプロセッサー41は、除外モジュール454を用いて、前述した第1の除外処理、第2の除外処理、および第3の除外処理の少なくとも1つを実行することにより、工程S140において取得された複数の特徴点ペアのリストから、信頼性の低い特徴点ペアを除外する。なお、工程S150において、第1の除外処理、第2の除外処理、および第3の除外処理の2つ以上が実行される場合の第1の除外処理、第2の除外処理、および第3の除外処理の実行順は特に限定されない。例えば、工程S150において、第1の除外処理、第2の除外処理、および第3の除外処理の全てが実行される場合、第1の除外処理、第2の除外処理、および第3の除外処理の順で、第1の除外処理、第2の除外処理、および第3の除外処理が実行されてもよい。
【0108】
工程S160において、工程S140において取得され、さらに、工程S150において信頼性の低い特徴点ペアが除外された特徴点ペアのリストに含まれるワーク3の作業前画像中のワーク3の複数の特徴点の位置と、ワーク3の作業後画像中のワーク3の対応する複数の特徴点の位置とが一致するように、ワーク3の作業前画像および作業後画像の少なくとも一方に対して、アフィン変換またはホモグラフィー変換を実行する。画像補正モジュール455によるワーク3の作業前画像および作業後画像の少なくとも一方に対する画像補正処理によって位置合わせされたワーク3の作業前画像および作業後画像は、メモリー43内に一時的に保存され、差分画像を作成するために用いられる。なお、画像補正モジュール455が、アフィン変換とホモグラフィー変換のいずれを、ワーク3の作業前画像および作業後画像の少なくとも一方に実行するかは、検査システム100のユーザーまたは管理者によって適宜事前に設定されている。
【0109】
工程S170において、制御装置4のプロセッサー41は、差分画像作成モジュール456を用いて、画像補正モジュール455によって位置合わせされたワーク3の作業前画像と作業後画像との差分を抽出することにより、差分画像を取得する。より具体的には、差分画像作成モジュール456は、メモリー43内に保存されている検査領域情報441を参照して、ワーク3の作業前画像および作業後画像のそれぞれの検査領域を切り出す。その後、差分画像作成モジュール456は、作業前画像の検査領域の画素の値の絶対値と、作業後画像の検査領域の対応する画素の値の絶対値との差分の絶対値を得ることによって、差分画像を作成する。その後、差分画像作成モジュール456は、作成された差分画像に対して、適切なしきい値を用いた二値化処理を施し、二値化された差分画像を取得する。二値化された差分画像は、メモリー43内に一時保存され、ロボット1によるワーク3に対する作業の成否を判別するために用いられる。
【0110】
工程S180において、制御装置4のプロセッサー41は、検査モジュール457を用いて、ロボット1によるワーク3に対する作業の成否を判別する。より具体的には、検査モジュール457は、最初に、差分画像作成モジュール456によって作成された二値化された差分画像の画素値の合計(白色部分の画素の合計数)を算出する。次に、検査モジュール457は、メモリー43内に保存されている成否判別条件442を参照し、算出した二値化された差分画像の画素値の合計(白色部分の画素の合計数)が、成否判別条件442の下限しきい値と上限しきい値とによって規定される範囲内であるか否かを判別する。
【0111】
算出した二値化された差分画像の画素値の合計が、下限しきい値と上限しきい値とによって規定される範囲内である場合には、検査モジュール457は、ロボット1によるワーク3に対する作業が成功したと判断する。一方、算出した二値化された差分画像の画素値の合計が、下限しきい値と上限しきい値とによって規定される範囲内ではない場合には、検査モジュール457は、ロボット1によるワーク3に対する作業が失敗したと判断する。その後、検査モジュール457は、I/Oインターフェース42を用いて、判断結果を検査システム100のユーザーまたは管理者に通知する。これにより、ロボット1によるワーク3に対する作業が失敗した場合には、検査システム100のユーザーまたは管理者は、ロボット1の点検等の適切な措置を取ることができる。その後、検査方法S100は終了する。
【0112】
以上、本発明の検査システムおよび検査方法を図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではない。本発明の各コンポーネントの構成は、同様の機能を発揮し得る任意のものと置換することができ、あるいは、本発明の構成に任意の構成のものを付加することができる。
【0113】
本発明の属する分野および技術における当業者であれば、本発明の原理、考え方、および範囲から有意に逸脱することなく、記述された本発明の検査システムおよび検査方法の構成の変更を実行可能であろうし、変更された構成を有する検査システムおよび検査方法もまた、本発明の範囲内である。
【0114】
また、
図10に示された検査方法の工程の数や種類は、説明のための例示にすぎず、本発明は必ずしもこれに限られない。本発明の原理および意図から逸脱しない範囲において、任意の工程が、任意の目的で追加若しくは組み合わされ、または、任意の工程が削除される態様も、本発明の範囲内である。
【符号の説明】
【0115】
1…ロボット 11…ワークテーブル 12…作業部 121…先端部 13…可動部 131…ベース 13X…X軸可動部 131X…脚部 132X…X軸レール 133X…X軸ステージ 13Y…Y軸可動部 131Y…Y軸レール 132Y…Y軸ステージ 13Z…Z軸可動部 131Z…Z軸ステージ 2…カメラ 3…ワーク 31…基準マーカー 32…ワークポイント 4…制御装置 41…プロセッサー 42…I/Oインターフェース 43…メモリー 44…データ 441…検査領域情報 442…成否判別条件 443…その他データ 45…モジュール 451…カメラ制御モジュール 452…ロボット制御モジュール 453…特徴点マッチングモジュール 454…除外モジュール 455…画像補正モジュール 456…差分画像作成モジュール 457…検査モジュール 458…その他モジュール 100…検査システム 500…カメラ画像 S100…検査方法 S110、S120、S130、S140、S150、S160、S170、S180…工程