(57)【要約】【課題】種々の電極配置のある電子部品の吸着姿勢を正確に認識することが可能な部品の姿勢認識方法及び装置を提供する。【解決手段】部品を撮像した画像の走査時、最初に検出される電極を基準電極として、その基準電極を元に他の電極との間で形成されるベクトルからベクトル列を形成する。また、部品データから所定位置にある各電極を元に他の電極との間で形成されるベクトルから各電極ごとにベクトル列を形成する。画像でのベクトル列と、部品データでの各電極ごとに形成したベクトル列を順次読み出して（Ｓ２，Ｓ３）、角度データ同士を比較し（Ｓ６）、全ての角度データが一致するかどうかで、画像の基準電極が部品データでどの電極に対応するかを決定する（Ｓ１０）。このような構成では、電極がランダムに配置されていても、短い処理時間で、部品の姿勢を正確に認識することができる。【選択図】　図７
2004012253.tif 000002
【特許請求の範囲】
【請求項１】
実装される部品の姿勢を認識する部品の姿勢認識方法であって、
部品を撮像した画像から検出される所定電極を基準電極として、その基準電極を元に他の電極との間で形成されるベクトルからベクトル列を形成し、
部品の論理位置において所定位置にある各電極を元に他の電極との間で形成されるベクトルから各電極ごとにベクトル列を形成し、
基準電極を元に形成したベクトル列と、所定位置にある前記各電極ごとに形成したベクトル列間のマッチングから、基準電極が所定位置にあるどの電極に対応するかを決定し、
前記決定された電極の対応から他の電極同士の対応を求め、撮像された部品の論理位置に対する姿勢を認識することを特徴とする部品の姿勢認識方法。
【請求項２】
前記基準電極、並びに前記所定位置にある電極が、その両側の電極間ベクトルの外側角度が１８０°より大きくなる電極であることを特徴とする請求項１に記載の部品の姿勢認識方法。
【請求項３】
前記基準電極が、画像を走査して最初に検出される電極であり、前記所定位置にある電極が、その両側の電極間ベクトルの外側角度が１８０°より大きくなる電極であることを特徴とする請求項１に記載の部品の姿勢認識方法。
【請求項４】
実装される部品の姿勢を認識する部品の姿勢認識装置であって、
部品を撮像した画像から検出される所定電極を基準電極として、その基準電極を元に他の電極との間で形成されるベクトルからベクトル列を形成する手段と、
部品の論理位置において所定位置にある各電極を元に他の電極との間で形成されるベクトルから各電極ごとにベクトル列を形成する手段と、
基準電極を元に形成したベクトル列と、所定位置にある前記各電極ごとに形成したベクトル列間のマッチングから、基準電極が所定位置にあるどの電極に対応するかを決定する手段とを備え、
前記決定された電極の対応から他の電極同士の対応を求め、撮像された部品の論理位置に対する姿勢を認識することを特徴とする部品の姿勢認識装置。
【請求項５】
前記基準電極、並びに前記所定位置にある電極が、その両側の電極間ベクトルの外側角度が１８０°より大きくなる電極であることを特徴とする請求項４に記載の部品の姿勢認識装置。
【請求項６】
前記基準電極が、画像を走査して最初に検出される電極であり、前記所定位置にある電極が、その両側の電極間ベクトルの外側角度が１８０°より大きくなる電極であることを特徴とする請求項４に記載の部品の姿勢認識装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、部品の姿勢認識方法及び装置、さらに詳細には、部品実装装置により基板に搭載される電子部品の吸着姿勢を認識する部品の姿勢認識方法及び装置に関する。
【０００２】
【従来の技術】
従来、ＱＦＰ、ＳＯＰ、コネクタなどの電子部品を吸着ノズルにより吸着してこれを基板上に搭載する部品実装装置（チップマウンタ）が知られている。このような部品実装装置においては、吸着ノズルは必ずしも正規の姿勢で部品を吸着するわけではないので、吸着ノズルに吸着された部品をＣＣＤカメラなどの撮像装置で撮像し、この部品画像を解析して、部品中心と吸着中心の位置ずれや吸着角度ずれなどのずれを求め、これを補正して部品搭載を行っている。この場合、部品の位置や角度など部品の姿勢を認識するのに、部品には、同じ大きさのリード（電極）が一定の間隔で並んでいて、定まった位置に配置されることを前提にし、その規則性を利用してリード位置を認識し、部品の中心位置や部品傾きを求めていた。
【０００３】
【発明が解決しようとする課題】
しかしながら、近年、多様な電子部品が基板に搭載されるようになり、部品のリードの並びが一定でなかったり、リードの大きさがバラバラであったり、リードの配置に規則性がなかったりする電子部品が出現してきた。このため従来の規則性を利用した認識方法では、部品の中心位置や、部品傾きの姿勢が正確に検出されず、部品搭載精度が劣化するという問題があった。
【０００４】
本発明は、このような問題点を解決するためになされたもので、種々の電極配置のある電子部品の吸着姿勢を正確に認識することが可能な部品の姿勢認識方法及び装置を提供することをその課題とする。
【０００５】
【課題を解決するための手段】
上記課題を解決する本発明は、実装される部品の姿勢を認識する部品の姿勢認識方法及び装置であって、
部品を撮像した画像から検出される所定電極を基準電極として、その基準電極を元に他の電極との間で形成されるベクトルからベクトル列を形成すること、
部品の論理位置において所定位置にある各電極を元に他の電極との間で形成されるベクトルから各電極ごとにベクトル列を形成すること、
基準電極を元に形成したベクトル列と、所定位置にある前記各電極ごとに形成したベクトル列間のマッチングから、基準電極が所定位置にあるどの電極に対応するかを決定すること、
前記決定された電極の対応から他の電極同士の対応を求め、撮像された部品の論理位置に対する姿勢を認識することを特徴とする。
【０００６】
このような構成では、電極がランダムに配置されていても、短い処理時間で、部品の姿勢を正確に認識することができる。
【０００７】
【発明の実施の形態】
以下、図面に示す実施の形態に基づいて本発明を詳細に説明する。
【０００８】
図１は、本発明に使用される部品実装装置の概要図であり、図２はその制御構成を示すブロック図である。部品実装装置は、フィーダ８より供給される部品（電子部品）２０を吸着する吸着ノズル３ａを備えたヘッド部３を有しており、このヘッド部３はＣＰＵで構成される制御部１０により駆動されるＸ軸モータ１１によってＸ軸１に沿って移動し、またＸ軸１は、Ｙ軸モータ１２によりＹ軸２、２’に沿って移動できるようになっており、それによりヘッド部３は、ＸＹ軸方向に移動可能に構成される。またヘッド部３は、Ｚ軸モータ１３によってＺ軸方向に駆動されて昇降し、また吸着ノズル３ａはθ軸モータ１４によってノズル軸を中心に回転できるように構成されている。
【０００９】
また、部品実装装置には、部品２０を撮像するＣＣＤカメラのような撮像装置５が配置され（撮像装置５はヘッド部３に搭載することもできる）、ヘッド部３は、部品吸着後撮像装置５に移動して、部品２０が撮像装置５により撮像される。部品の撮影画像は、ＣＰＵ７ａ、画像メモリ７ｂ、ＲＡＭ７ｃを備えた画像認識装置７で部品の吸着姿勢が認識され、部品中心と吸着中心の位置ずれ、また吸着角度ずれが演算され、このずれが補正されて、搬送されてくる基板６に部品２０が搭載される。
【００１０】
また、部品実装装置には、部品データを入力するためのキーボード２１、マウス２２などの入力装置が設けられ、生成された部品データが、ハードディスク、フラッシュメモリなどで構成される記憶装置２３に格納できるようになっている。部品データは、このように入力装置を介さず、部品実装装置に接続されたホストコンピュータ（不図示）から供給されるものを記憶装置２３に格納しておくようにしてもよい。また、表示器（モニタ）２４が設けられ、この画面には、部品データ、演算データや撮像装置５で撮像した部品画像が表示できるようになっている。
【００１１】
このような構成で、撮像装置５で撮像された部品２０の画像は、画像認識装置７の画像メモリ７ｂに格納され、その画像が外側から走査される。例えば、部品がリード電極を有する部品のとき、外側からの走査で最初に検出されるリード電極は、リード電極で形成される外接多角形のどれかに位置するので、その両側のリード電極間ベクトルは、その外側角度は必ず１８０°より大きくなり、他のリード電極へのベクトル間の角度は１８０°より小さくなる。そこで、１８０°以上になるベクトルを基準に、他のリードまでのベクトルの角度を定義すれば、部品が傾いていても各ベクトル間の角度は、変化しない。従って、部品データで求めた同じ各ベクトル間の角度とは１対１に対応するので、予め部品データから、電極間ベクトルの外側角度が１８０°より大きくなる各電極を元に他の電極間で形成されるベクトルからベクトル列を各電極ごとに形成し、また、部品の画像を外側から走査して最初に見つけたリード電極を基準電極として、あるいは、検出された電極間ベクトルの外側角度が１８０°より大きくなるリード電極から選択された電極を基準電極として、その基準電極を元に形成される他の電極間ベクトルからベクトル列を形成し、ベクトル列間のマッチングを行う。ベクトル列間の相関を求めることにより、画像走査での基準電極が、部品データでのどの電極に対応するかが決められる。また、その対応から見つけた他の電極も部品データでのどの電極に対応するかも決定できる。このように求めた各電極の位置（重心又は中心）から、全体の部品画像の中心を求め、その位置を部品中心とし、位置ずれを求める。また、１対１に対応するベクトル同士の画像座標系での角度の差の平均値を求め、部品の傾きとする。このように、部品データで定まる部品位置を論理位置として、部品の論理位置に対する姿勢（位置ずれ、傾き）を認識することができる。
【００１２】
このような部品認識の流れが、図３以下に図示されており、まず、画像認識装置７のＣＰＵ７ａは、記憶装置２３に格納されている部品データを読み出して、各電極を基準として他の電極へのベクトルを引く。図３（Ａ）に図示した例では、部品２０のリード電極Ｌ１０を基準にして他のリード電極Ｌ１〜Ｌ９へのベクトルが引かれており、各ベクトルの部品データのＸＹ座標系（論理座標系）での角度α１〜α９（０〜３６０°で表現）を求め、各角度を小さい順に並べる（α６、α５、α４、α３、α２、α１、α７、α８、α９）。
【００１３】
次に、図３（Ｂ）に示したように、隣のベクトル間の角度差β１＝α５−α６を求め、同様に、小さい角度順に、隣のベクトル間の角度差β２＝α４−α５、β３＝α３−α４、β４＝α２−α３、β５＝α１−α２、β６＝α７−α１、β７＝α８−α７、β８＝α９−α８を求める。そして、最後に一番小さい角度α６のベクトルと一番大きい角度α９のベクトルの間の角度β９＝α６−α９＋３６０を、反時計回りに求める。このようにして求めたベクトル間角度のうち最大の角度を抜き出し、そのリード電極の最大角度とする。図３（Ｂ）の例では、β９が最大となる。
【００１４】
このような処理を、他の各リード電極Ｌ１〜Ｌ９を基準にして行って、それぞれ最大角度を求め、各最大角度を比較する。それぞれ最大角度は、図３（Ｃ）に示したように、γ１〜γ１０なので、その中の一番大きい角度と、その角度から許容差内の基準リード電極を複数選択する。このように、選択された各基準リード電極ごとに、その基準リード電極と他のリード電極間ベクトルからなるベクトル列が形成されているので、またそのベクトル列のベクトル間角度もわかっているので、ＣＰＵ７ａは、図４に示したような、ベクトルデータテーブルを作成して、これをＲＡＭ７ｃに格納する。図４で、選択された基準リード電極は、ｍ個あり、図３（Ｃ）で角度γが大きいものの中からｍ個選択されている。それぞれ第ｋリード電極（ｋ＝１、２、．．．．．ｍ）を基準電極として、その基準電極を元に他の電極との間で形成されるベクトルの各ベクトル間角度がβｋｎで示されている。また、部品データより、各リード電極の面積Ｓｋｎ、各ベクトル長さＬｎｋｎ、基準リード電極のＸ、Ｙ座標（Ｘｋ０、Ｙｋ０）、第ｎリード電極のＸ、Ｙ座標（Ｘｋｎ、Ｙｋｎ）が求まるので、それもテーブルとして形成しておく。
【００１５】
続いて、吸着ノズル３ａで吸着された部品２０を撮像装置５で撮像し、これを画像認識装置７の画像メモリ７ｂに格納して、図５に示したように、走査線Ｓで部品の画像２０’を外側からサーチする。その走査線によるサーチにより公知のアルゴリズムを利用してリード電極Ｌｉ（ｉ＝１、２、．．．．．１０）を全て探し、見つかった順に番号をつけ、画像座標系でそれぞれのリード電極Ｌｉの重心（Ｘ０ｉ，Ｙ０ｉ）、面積Ｓ０ｉを求める。そして、部品データからベクトルデータテーブルを作ったように、一つのリード電極を基準としてその重心から、他のリード電極の重心へのベクトルを形成し、各ベクトル間角度（θ１〜θ９）を求め、また全てのリード電極を基準にしてベクトル間角度データを求め、それぞれの最大角度のうち一番大きい角度を持つものを基準電極として、これをマッチング用に選択し、データテーブルを作成する。例えば、図５に示したように、電極Ｌ１とＬ７間のベクトルと電極Ｌ１とＬ２間のベクトルのなす角度θ９が最大であったとすると、電極Ｌ１を基準電極として、他の電極Ｌ２〜Ｌ１０との間で形成されるベクトルから、図６に示したようなベクトルデータテーブルを作成し、これを画像走査により求められたベクトルデータテーブルとして同様にＲＡＭ７ｃに格納する。
【００１６】
このように、マッチング用のデータテーブルが作成されたので、図７に示した流れでマッチングを開始する。
【００１７】
まず、変数ｉを初期化し（ステップＳ１）、インクリメントして（ステップＳ２）、図４に示した部品データから形成されたベクトルテーブルから第１番目のリード電極を基準にしたベクトル列のベクトル間角度データ（β１１、．．．．．β１ｎ）を読み出し、また同様に、画像走査で求められたベクトル列のベクトル間角度データ（θ１、．．．．．θｎ）を読み出す（ステップＳ３、Ｓ５）。続いて、最初の角度データ同士（β１１、θ１）を比較し（ステップＳ５，Ｓ６）、許容値以下の角度差で一致する場合は（ステップＳ７のＹ）、次の角度データを順次読み出して比較し（ステップＳ８、Ｓ６）、全ての角度データ同士が許容値以下で一致する場合は（ステップＳ９のＹ）、サーチ画像２０’の電極Ｌ１が、第１番目のリード電極に対応（合致）するとして、その電極を電極Ｌ１の候補とする（ステップＳ１０）。
【００１８】
一方、ステップＳ７の判断で、一つでも角度データ同士が一致しない角度データがあった場合には、ステップＳ２に戻ってｉを１だけ増分して、第ｉ番目のリード電極を基準にしたベクトル列のベクトル間角度データ（βｉ１、．．．．．βｉｎ）を読み出し、同様な処理を繰り返す。
【００１９】
このような処理により、全ての角度データ同士が許容値以下で一致するベクトル列が見つかるので、そのベクトル列を形成する電極を、サーチ画像の電極Ｌ１の候補とし、一方、見つからなかった場合は（ステップＳ４のＹ）、部品を不良として、処理を終了させる。
【００２０】
次に、上述のベクトル間角度のマッチングにより、候補電極が見つかった場合は、リード電極の面積同士の比較を行う（ステップＳ１１）。例えば、第ｋ番目のリード電極が、合致候補のリード電極であったとして、それぞれ図４、図６のテーブルからリード面積（Ｓｋ０、Ｓｋ１、．．．．．Ｓｋｎ）と（Ｓ００、Ｓ０１、．．．．．、Ｓ０ｎ）を読み出し、角度比較と同様に、順次面積同士の比較を行う。また、全ての面積同士が許容差内で一致した場合には、ベクトル長さ（Ｌｎｋ１、．．．．．Ｌｎｋｎ）と（Ｌｎ０１、、．．．．．Ｌｎ０ｎ）の比較も行い（ステップＳ１２）、全てのベクトル長さ同士が一致した場合に、画像から求めたリード電極Ｌ１は、部品データの第ｋ番目のリード電極に対応しているとの決定を行う（ステップＳ１３）。
【００２１】
このとき、他の電極同士の対応も決まるので、図４、図６のテーブルから画像での各電極のＸ、Ｙ座標と、部品データでの各電極のＸ、Ｙ座標を対応させることができる。
【００２２】
このように、電極がランダムな配置の場合でも、各リード電極へのベクトルで１８０°を超える角度を持つ物のみの組み合せを試すだけで、マッチングが可能なので、処理時間が短くなり生産性が向上する。また、角度の大きさ順に対応づけが可能なため、複数の組み合せを試す必要がなくなり、処理時間が更に短縮される。さらに、基準のリード電極の対応付けの後の全体のリードのベクトル角度、長さ（距離）のマッチングにおいて、リードの面積比較を行なうことにより、異なったサイズのリードがある場合、マッチング処理時間を短縮できる。
【００２３】
このように、画像での各電極のＸ、Ｙ座標と、部品データでの各電極のＸ、Ｙ座標の対応により、部品データを元にした理論位置（正規位置）に対する部品の位置ずれあるいは傾きを、以下のようにして計算することができる。
【００２４】
部品が回転、移動をした場合の、対応点座標同士の関係は、
Ｘｉ＝（ｘｉ−ｘ０）ｃｏｓθ＋（ｙｉ−ｙ０）ｓｉｎθ＋Ｘ０　　（１）
Ｙｉ＝−（ｘｉ−ｘ０）ｓｉｎθ＋（ｙｉ−ｙ０）ｃｏｓθ＋Ｙ０　（２）
Ｘｉ，Ｙｉ：実画像でのリード電極の座標
ｘｉ，ｙｉ：部品データの座標
ｘ０，ｙ０：部品中心
Ｘ０，Ｙ０：部品の位置ずれ量
θ　　：部品の傾き
となるので、適当な２つのリード電極１、２を選択し、その電極（（ｘ１，ｙ１）、（ｘ２，ｙ２）、（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２））の対応関係から、次式が導かれる。
【００２５】
Ｘ１＝（ｘ１−ｘ０）ｃｏｓθ＋（ｙ１−ｙ０）ｓｉｎθ＋Ｘ０　　（３）
Ｙ１＝−（ｘ１−ｘ０）ｓｉｎθ＋（ｙ１−ｙ０）ｃｏｓθ＋Ｙ０　（４）
Ｘ２＝（ｘ２−ｘ０）ｃｏｓθ＋（ｙ２−ｙ０）ｓｉｎθ＋Ｘ０　　（５）
Ｙ２＝−（ｘ２−ｘ０）ｓｉｎθ＋（ｙ２−ｙ０）ｃｏｓθ＋Ｙ０　（６）
（３）式を変形すると、
Ｘ０＝Ｘ１−（（ｘ１−ｘ０）ｃｏｓθ＋（ｙ１−ｙ０）ｓｉｎθ）（７）
（５）式を変形すると、
Ｘ０＝Ｘ２−（（ｘ２−ｘ０）ｃｏｓθ＋（ｙ２−ｙ０）ｓｉｎθ）（８）
（７）（８）式から
Ｘ１−（ｘ１ｃｏｓθ＋ｙ１ｓｉｎθ）−（Ｘ２−（ｘ２ｃｏｓθ＋ｙ２ｓｉｎθ））＝０
ｃｏｓθ、ｓｉｎθで整理して、
（ｘ２−ｘ１）ｃｏｓθ＋（ｙ２−ｙ１）ｓｉｎθ＋Ｘ１−Ｘ２＝０　（９）
同様に（４）式を変形すると、
Ｙ０＝Ｙ１−（−（ｘ１−ｘ０）ｓｉｎθ＋（ｙ１−ｙ０）ｃｏｓθ）　（１０）
（６）式を変形すると、
Ｙ０＝Ｙ２−（−（ｘ２−ｘ０）ｓｉｎθ＋（ｙ２−ｙ０）ｃｏｓθ）　（１１）
（１０）（１１）式から、
Ｙ１−（−ｘ１ｓｉｎθ＋ｙ１ｃｏｓθ）−（Ｙ２−（−ｘ２ｓｉｎθ＋ｙ２ｃｏｓθ））＝０
ｃｏｓθ、ｓｉｎθで整理して、
（ｙ２−ｙ１）ｃｏｓθ＋（ｘ１−ｘ２）ｓｉｎθ＋Ｙ１−Ｙ２＝０　　（１２）
（９）（１２）式からｃｏｓθを求めると、
2004012253.tif 000003
同様に（９）（１２）式からｓｉｎθを求めると、
2004012253.tif 000004
従って、部品の傾きθは、
θ＝βｔβｎ（−（（ｙ２−ｙ１）（Ｘ１−Ｘ２）−（ｘ２−ｘ１）（Ｙ１−Ｙ２））／　（（ｘ１−ｘ２）（Ｘ１−Ｘ２）−（ｙ２−ｙ１）（Ｙ１−Ｙ２）））　（１５）
で求められ、部品の位置ずれは、（７）（１０）式で求められた式で計算できる。
【００２６】
Ｘ０＝Ｘ１−（（ｘ１−ｘ０）ｃｏｓθ＋（ｙ１−ｙ０）ｓｉｎθ）
Ｙ０＝Ｙ１−（−（ｘ１−ｘ０）ｓｉｎθ＋（ｙ１−ｙ０）ｃｏｓθ）
この実施形態では、２点の対応座標から傾き、位置ずれを求めているが、実際の画像から得られたリード電極位置には誤差が含まれているため、他の例として、複数点の対応座標から角度、位置ずれを計算しておき、それらの平均から部品の傾き、位置ずれとすることができる。
【００２７】
また、各リード電極間のベクトル角度を求めてあるから、その対応するベクトルの角度差の平均を部品の傾きとし、その傾きで（７）、（１０）式から位置ずれを求める方式もある。このときも複数点を用いる方式も同様にある。
【００２８】
上述した実施形態では、サーチ画像で検出された全てのリード電極を基準にしてベクトル間角度データを求め、それぞれの最大角度のうち一番大きい角度を持つものを基準電極としたが、通常外側からのサーチにより最初に検出される電極は、電極が構成する外接多角形に位置していてその両側の電極間ベクトルの外側角度が１８０°より大きいので、画像サーチ時、最初に検出される電極をマッチング用の基準電極とするようにすることもできる。
【００２９】
また、図５で走査線Ｓは、画面に対して約４５°の角度に設定されているが、水平走査（１８０°）で画像をサーチするようにしてもよい。
【００３０】
また、図４に示したベクトルデータのテーブルは、予め記憶装置２３に格納しておき、部品認識時にこれを読み出すようにしてもよい。
【００３１】
また、上述した実施形態では、電極はリード電極とされたが、ボール電極であっても同様な処理を行い、同様な効果を得ることができる。
【００３２】
【発明の効果】
以上説明したように、本発明では、部品を撮像した画像から検出される所定電極を基準電極として、その基準電極を元に他の電極との間で形成されるベクトルからベクトル列を形成し、また、部品の論理位置において所定位置にある各電極を元に他の電極との間で形成されるベクトルから各電極ごとにベクトル列を形成し、基準電極を元に形成したベクトル列と、所定位置にある前記各電極ごとに形成したベクトル列間のマッチングから、基準電極が所定位置にあるどの電極に対応するかを決定するようにしているので、電極がランダムに配置されていても、短い処理時間で、部品の姿勢を正確に認識することができる。
【図面の簡単な説明】
【図１】本発明に使用される部品実装機の構成を概略示す上面図である。
【図２】部品の画像認識装置の構成も含めた部品実装機の構成を示したブロック図である。
【図３】部品データからマッチング処理用にベクトル列データを形成する過程を示す説明図である。
【図４】部品データから各電極を基準にして形成されたベクトル列のデータテーブルを示す表図である。
【図５】部品の画像を走査して電極をサーチする状態を説明した説明図である。
【図６】画像サーチで検出される電極を基準にして形成されたベクトル列のデータテーブルを示す表図である。
【図７】ベクトル列間のマッチング処理により電極の対応を求める流れを示したフローチャートである。
【符号の説明】
３ａ　吸着ノズル
５　撮像装置
７　画像認識装置
２０　電子部品
Ｌ１〜Ｌ１０　電極
【図１】
2004012253.tif 000005
【図２】
2004012253.tif 000006
【図３】
2004012253.tif 000007
【図４】
2004012253.tif 000008
【図５】
2004012253.tif 000009
【図６】
2004012253.tif 000010
【図７】
2004012253.tif 000011