(57)【要約】【課題】無作為に積まれた探索対象物を個々に探索可能する。【解決手段】撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段２０と、撮像範囲内のレーザ光の走査を行う照射手段３０と、レーザ光走査により得られる画像データから撮像範囲を細分化した点群の位置座標を示す三次元データを算出する三次元解析手段（４１）と、撮像範囲内で探索すべき探索対象物を複数方向に向けた状態での各々の三次元データをマスターデータとして記憶するマスターデータ記憶手段４５と、各方向のマスターデータについて共通する一点を、三次元解析手段により得られる三次元データの各点に位置合わせしたときに、いずれかの方向の前記マスターデータの各点の位置座標と三次元データの各点の位置座標とが近似するか否かを判定して、その判定結果により探索対象物の探索を行う判定手段（４１）とを備えている。【選択図】図１
2007101197.tif 000002
【特許請求の範囲】
【請求項１】
撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、
前記撮像範囲内のレーザ光の走査を行う照射手段と、
前記レーザ光走査により得られる画像データから前記撮像範囲を細分化した点群の位置座標を示す三次元データを算出する三次元解析手段と、
前記撮像範囲内で探索すべき探索対象物を複数方向に向けた状態での各々の三次元データをマスターデータとして記憶するマスターデータ記憶手段と、
前記各方向のマスターデータについて共通する一点を、前記三次元解析手段により得られる三次元データの各点に位置合わせしたときに、いずれかの方向の前記マスターデータの各点の位置座標と前記三次元データの各点の位置座標とが近似するか否かを判定して、その判定結果により前記探索対象物の探索を行う判定手段とを備えることを特徴とする物体探索装置。
【請求項２】
前記探索対象物に対して、前記照射手段によりレーザ光の走査を行いつつ前記撮像手段による撮像を行うことで一定方向の探索対象物のマスターデータを算出すると共に、前記マスターデータに対してその向きを変える座標変換を行い複数方向についてマスターデータを算出するマスターデータ取得手段を備えることを特徴とする請求項１記載の物体探索装置。
【請求項３】
前記判定手段は、前記三次元解析手段により得られる三次元データの点群の中から所定間隔ごととなる一部の点に対して前記判定を行った結果、近似度が高い点の周囲のみについてより密な間隔となる点に対してさらに前記判定を行うことを特徴とする請求項１又は２記載の物体探索装置。
【請求項４】
請求項１，２又は３記載の物体探索装置を用いたロボットシステムにおいて、
前記探索対象物に対する作業を行うツールを保持するロボットと、
前記探索により求まる前記探索対象物の位置に基づいて前記ツールを移動位置決めするように前記ロボットを制御するロボット制御装置とを備えることを特徴とするロボットシステム。
【請求項５】
前記ツールは前記探索対象物を保持するハンドであり、
前記ロボット制御装置は、前記探索により求まる前記探索対象物の位置及び方向に基づいて、前記ハンドにより前記探索対象物を保持運搬するように前記ロボットを制御することを特徴とする請求項４記載のロボットシステム。
【請求項６】
撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、前記撮像範囲内のレーザ光の走査を行う照射手段と、前記レーザ光走査により得られる画像データから前記撮像範囲を細分化した点群の位置座標を示す三次元データを算出する三次元解析手段と、前記撮像範囲内で探索すべき探索対象物を複数方向に向けた状態での各々の三次元データをマスターデータとして記憶するマスターデータ記憶手段とを備える物体探索装置を用いた物体探索方法であって、
前記各方向のマスターデータについて共通する一点を、前記三次元解析手段により得られる三次元データの各点に位置合わせする工程と、
いずれかの方向の前記マスターデータの各点の位置座標と前記三次元データの各点の位置座標とが近似するか否かを判定する工程と、
その判定結果により前記探索対象物の向きと位置とを特定する工程とを備えることを特徴とする物体探索方法。
【請求項７】
前記探索対象物に対して、前記照射手段によりレーザ光の走査を行いつつ前記撮像手段による撮像を行うことで一定方向の探索対象物のマスターデータを算出する工程と、
前記マスターデータに対してその向きを変える座標変換を行い複数方向についてマスターデータを算出する工程とを備えることを特徴とする請求項６記載の物体探索方法。
【請求項８】
前記位置合わせする工程と前記判定を行う工程とは、
前記三次元解析手段により得られる三次元データの点群の中から所定間隔ごととなる一部の点に対して前記位置合わせ及び判定を行った結果、近似度が高い点の周囲のみについてより密な間隔となる点に対してさらに前記位置合わせ及び判定を行うことを特徴とする請求項６又は７記載の物体探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像手段を用いた物体探索装置，物体探索方法，及び物体探索装置を備えるロボットシステムに関する。
【背景技術】
【０００２】
物体探索装置は、例えば、産業用ロボットのシステムに搭載され、ロボットの作業対象物であるワークを探索するために使用される。
かかる従来の物体探索装置は、ワークが用意されたパレット上の領域に対してスリット光やスポット光の走査を行い、これをカメラを用いた視覚センサで撮像し、カメラ視線と光の照射方向とから光の照射位置を算出し、撮像領域内の三次元データを求めて、これによりワークの位置を求めていた（例えば、特許文献１参照）。
【特許文献１】国際公開第９７／０２４２０６号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来の物体探索装置にあっては、パレット上でワークが一定の向きに置かれていれば、容易にワーク位置の検出が可能であるが、ワークの向きが一定の向きから外れていると検出が困難となるという不都合があった。
さらに、上記従来の撮像装置は、パレット上においてワークが疎らな状態、つまり、一つ一つのワークが離れて置かれた状態であれば、周囲の平坦面に対してワークの形状が浮き彫りとなって検出されるためにワーク検出が可能である。
しかしながら、パレット上において、複数のワークが密に或いは乱雑に積まれた状態では、検出される三次元データは複雑な形状を示し、その中から個々のワークの位置と向きとを検出することは困難であるという不都合があった。
【０００４】
本発明は、所定方向に並べることなく置かれた、或いは無作為に積まれた探索対象物を個々に探索可能とすることをその目的とする。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、撮像範囲内のレーザ光の走査を行う照射手段と、レーザ光走査により得られる画像データから撮像範囲を細分化した点群の位置座標を示す三次元データを算出する三次元解析手段と、撮像範囲内で探索すべき探索対象物を複数方向に向けた状態での各々の三次元データをマスターデータとして記憶するマスターデータ記憶手段と、各方向のマスターデータについて共通する一点を、三次元解析手段により得られる三次元データの各点に位置合わせしたときに、いずれかの方向のマスターデータの各点の位置座標と三次元データの各点の位置座標とが近似するか否かを判定して、その判定結果により探索対象物の探索を行う判定手段とを備える、という構成を採っている。
【０００６】
請求項２記載の発明は、請求項１記載の発明と同様の構成を備えると共に、探索対象物に対して、照射手段によりレーザ光の走査を行いつつ撮像手段による撮像を行うことで一定方向の探索対象物のマスターデータを算出すると共に、マスターデータに対してその向きを変える座標変換を行い複数方向についてマスターデータを算出するマスターデータ取得手段を備える、という構成を採っている。
【０００７】
請求項３記載の発明は、請求項１又は２記載の発明と同様の構成を備えると共に、判定手段は、三次元解析手段により得られる三次元データの点群の中から所定間隔ごととなる一部の点に対して判定を行った結果、近似度が高い点の周囲のみについてより密な間隔となる点に対してさらに判定を行う、という構成を採っている。
【０００８】
請求項４記載の発明は、請求項１，２又は３記載の物体探索装置を用いたロボットシステムにおいて、探索対象物に対する作業を行うツールを保持するロボットと、探索により求まる探索対象物の位置に基づいてツールを移動位置決めするようにロボットを制御するロボット制御装置とを備える、という構成を採っている。
【０００９】
請求項５記載の発明は、請求項４記載の発明と同様の構成を備えると共に、ツールは探索対象物を保持するハンドであり、ロボット制御装置は、探索により求まる探索対象物の位置及び方向に基づいて、ハンドにより探索対象物を保持運搬するようにロボットを制御する、という構成を採っている。
【００１０】
請求項６記載の発明は、撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、撮像範囲内のレーザ光の走査を行う照射手段と、レーザ光走査により得られる画像データから撮像範囲を細分化した点群の位置座標を示す三次元データを算出する三次元解析手段と、撮像範囲内で探索すべき探索対象物を複数方向に向けた状態での各々の三次元データをマスターデータとして記憶するマスターデータ記憶手段とを備える物体探索装置を用いた物体探索方法であって、各方向のマスターデータについて共通する一点を、三次元解析手段により得られる三次元データの各点に位置合わせする工程と、いずれかの方向のマスターデータの各点の位置座標と三次元データの各点の位置座標とが近似するか否かを判定する工程と、その判定結果により探索対象物の向きと位置とを特定する工程とを備える、という構成を採っている。
【００１１】
請求項７記載の発明は、請求項６記載の発明と同様の構成を備えると共に、探索対象物に対して、照射手段によりレーザ光の走査を行いつつ撮像手段による撮像を行うことで一定方向の探索対象物のマスターデータを算出する工程と、マスターデータに対してその向きを変える座標変換を行い複数方向についてマスターデータを算出する工程とを備える、という構成を採っている。
【００１２】
請求項８記載の発明は、請求項６又は７記載の発明と同様の構成を備えると共に、位置合わせする工程と判定を行う工程とは、三次元解析手段により得られる三次元データの点群の中から所定間隔ごととなる一部の点に対して位置合わせ及び判定を行った結果、近似度が高い点の周囲のみについてより密な間隔となる点に対してさらに位置合わせ及び判定を行う、という構成を採っている。
【発明の効果】
【００１３】
請求項１又は６記載の発明では、照射手段が撮像範囲内をレーザ光の走査を行う一方で、撮像手段が撮像を行うことで、走査により撮像範囲の各位置で照射されたレーザ光を撮像した画像データを取得する。
そして、撮像範囲内でのレーザ光の照射位置と当該レーザ光の照射方向と撮像手段の視点の方向とから撮像範囲内の照射位置の三次元座標を算出する。そして、走査により撮像範囲全体の各点（点群）について照射されたレーザ光の三次元座標を求め、撮像領域の三次元データを生成する。
【００１４】
一方、マスターデータ記憶手段には、探索対象物の表面上の複数点（点群）についての三次元位置座標を示す三次元データが、探索対象物を各方向に向けた状態について個別に記憶されている。
そして、撮像領域の三次元データの一点の位置に、マスターデータの一点を位置合わせした場合の当該マスターデータの点群の位置座標と撮像領域の三次元データの周囲の点群の位置座標とが近似するか否かの判定が行われる。かかる判定は、各方向のマスターデータごとに、同じ位置となる一点を撮像領域の三次元データの一点に位置合わせして行う。
上記判定を撮像領域の三次元データの点群について順番に行う。そして、撮像領域の三次元データの点群の中のある点といずれかの方向を向いた探索対象物のマスターデータとについて各点の位置座標が近似する場合には、その方向を向いた探索対象物がその一点を三次元データの一点に位置合わせした状態で存在するという探索結果を得ることができる。
【００１５】
上述のように、マスターデータの一点を撮像領域の一点とに位置合わせさせた結果、他の各点について位置座標が近似するか否かにより探索対象物の位置を探索するので、例え、複数の探索対象物が乱雑に積み重ねられた状態であって、撮像により得られる三次元データが複雑な態様を示したとしても、その一部の近似から一つの探索対象物を探索することが可能となる。
さらに、複数方向を向いた探索対象物の各マスターデータとの類似を判定するので、探索対象物がまちまちの方向を向いている状態であっても探索可能であると共に、いずれの方向のマスターデータと類似するかにより、探索された探索対象物がいずれの方向を向いた状態であるかを特定することも可能となる。
なお、近似判定は、撮像領域の三次元データの全ての点群について行わなくとも良い。例えば、請求項３記載の発明のように、所定間隔で間引かれた一部の点に対して判定を行っても良いし、撮像領域の三次元データの点群の中で探索対象物が載置された載置平面であることが事前に識別可能であるような点については判定の対象から除外するようにしても良い。
【００１６】
請求項２又は７記載の発明では、探索対象物のマスターデータが以下の手順で取得される。即ち、撮像範囲内に置かれた探索対象物に対して、照射手段がレーザ光の走査を行う一方で、撮像手段が撮像を行うことで、走査により探索対象物の各位置で照射されたレーザ光を撮像した画像データを取得する。
そして、撮像範囲内でのレーザ光の照射位置と当該レーザ光の照射方向と撮像手段の視点の方向とから探索対象物の表面の各点（点群）について三次元座標を算出し、撮像の際に向けられた方向で探索対象物の三次元データをマスターデータとして生成する。
さらに、上記一定の方向のマスターデータに対して方向を変える座標変換を図る演算が行われ、各方向を向いた探索対象物のマスターデータが算出されて、マスターデータ記憶手段に記憶される。
【００１７】
このように、請求項２又は７記載の発明では、撮像手段と照射手段を駆使してマスターデータを取得するので、探索対象物のマスターデータが既知なものではなくとも探索を行うことが可能となる。
また、探索対象物のマスターデータを取得する場合と探索を行う撮像範囲の三次元データを取得する場合とで、走査条件や撮像条件を等しくすることで、近似判定の際に一致度の高いマスターデータを用意することが可能となり、探索精度を向上させることが可能となる。
【００１８】
請求項３又は８記載の発明では、マスターデータの一点の位置合わせと近似の判定とを行う場合において、まず、三次元解析手段により得られる三次元データの全ての点に対して位置合わせ及び判定を行わず、一定間隔ごととなる一部の点についてのみ位置合わせ及び判定を行う。
その結果、近似度が高い点については、その周囲のより密のとなる点、或いはその周囲の全ての点に対して位置合わせ及び判定を行い、より近似度が高くなる点の絞り込みを行う。
これにより、三次元解析手段により得られる三次元データの全ての点に対する位置合わせ及び判定を不要として、処理負担の軽減と処理の迅速化を図ることが可能となる。
なお、近似度が高いか否かの判断は、例えば、近似度が予め設定された値よりも高いか否かにより判断しても良いし、各点について近似度の順位を求めて所定の順位内となるか否かにより判断しても良い。
【００１９】
請求項４記載の発明では、撮像範囲内に置かれた探索対象物が物体探索装置により位置が求められる。そして、ロボット制御装置は、求められた探索対象物の位置に基づいてロボットのツールを位置決めして探索対象物に対する所定の作業が行われる。
これにより、例えば、複数の探索対象物が乱雑に積み重ねられた状態であっても、その中から一つの探索対象物に対してツールの種類に応じた作業を行うことが可能となり、ロボットの作業を行うために探索対象物を事前に並べておく作業を不要とし、作業負担の軽減を図ることが可能となる。
【００２０】
請求項５記載の発明では、物体探索装置で求められた探索対象物の位置及び向きに基づいてロボットのハンドを位置決めして探索対象物の保持運搬が行われる。
これにより、例えば、複数の探索対象物が乱雑に積み重ねられた状態であっても、その中から一つの探索対象物に対して保持運搬を行うことが可能となり、作業負担の軽減を図ると共に、乱雑に積まれた探索対象物を並べ直す等、従来困難であった作業を行うことが可能となる。
【発明を実施するための最良の形態】
【００２１】
（発明の実施形態の全体構成）
図１は本発明の実施形態たるロボットシステム１００の全体構成図である。
上記ロボットシステム１００は、パレット１１上に探索対象物としてのワークＷが乱雑に積まれた状態において、物体探索により個々のワークＷの位置及び向きを認識し、これを保持して目的位置に運搬するためのシステムである。
かかるロボットシステム１００は、撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段としての撮像装置２０と撮像範囲内のレーザ光の走査を行う照射手段としてのレーザ照射装置３０とレーザ光走査の撮像により得られる画像データを解析する画像解析装置４０とを備える物体探索装置１０と、ワークＷに対する保持及び運搬作業を行うツールとしてのハンド１１４を保有するロボット１１０と、探索により求まるワークＷの位置に基づいてロボット１１０の保持運搬動作の動作制御を行うロボット制御装置１２０とを備えている。
以下、各部について個別に詳細に説明することとする。
【００２２】
（物体探索装置のレーザ照射装置）
物体探索装置１０のレーザ照射装置３０は、スタンド３１と、レーザ光を出射するレーザ発振器３２と、スタンド３１の上部においてレーザ発振器３２を直交する二軸回りに回転駆動可能に支持する走査機構３３とを備えている。
【００２３】
上記レーザ発振器３２は所定の単一波長光をレーザ光として出射する。このレーザ発振器３２には、レーザ光をスリット光化してパレット１１側に出射させる光学系が併設されている。
上記走査機構３３は、レーザ発振器３２を直交する二つの軸回りにそれぞれ回動駆動を行うための駆動モータとしてのサーボモータ３４（図２参照）を備えており、その一方のサーボモータ３４による回動方向はスリット光の照射位置が当該スリット光に直交する方向に移動する方向となるように設定されている（図１矢印Ｆ方向）。これにより、照射されたスリット光はその照射位置から当該スリット光を並行に維持したまま移動を行い、その照射面全体をスリット光で走査することができる。
また、もう一方のサーボモータは、スリット光の照射位置が当該スリット光と並行となる方向に移動するようにレーザ発振器３２を回動させるが、これはレーザ光による走査を行う際の走査位置の位置決めに使用される。
【００２４】
（物体探索装置の撮像装置）
撮像装置２０は、撮像を行うためのＣＣＤカメラ２１と、レーザ照射装置３０のスタンド３１の上方においてＣＣＤカメラ２１がパレット１１の上面を撮像するように保持するカメラスタンド２２とを備えている。
そして、ＣＣＤカメラ２１は、撮像画像を検出するＣＣＤ撮像素子２３と、ＣＣＤ撮像素子２３の検出面に撮像画像を結像させる光学系（図示略）とを備えている。
【００２５】
上記光学系は、パレット１１の上面全体が撮像範囲となるようにＣＣＤ撮像素子２３の検出面のほぼ全体に像形成を行う。
ＣＣＤ撮像素子２３は、その検出面（結像が行われる面）に縦横共に等しい間隔に並んで設けられた無数の微細な光検出画素（フォトダイオード）を備えており、各画素は受光する光の輝度に応じた電圧をその並び順で出力する。画像解析装置４０は、ＣＣＤ撮像素子２３からの出力を受けて、各画素からの信号出力の順番から撮像範囲内（撮像して画像取り込みが行われる撮像対象となる範囲）の画像に応じた画像データを生成する。
即ち、ＣＣＤ撮像素子２３には縦方向（Ｙ方向とする）と横方向（Ｘ方向とする）とにそれぞれ既知数の画素が並んで設けられており、これらは決まった順番で出力を行うことから、各画素の出力を順番により特定することができる。このため、ＣＣＤ撮像素子２３の撮像範囲内に一部だけ輝度が異なる部分が存在する場合、異なる輝度値の出力を行う画素を特定することで、撮像範囲内においていずれの位置で特有の輝度となる部分が存在するかを識別することが可能となっている。
【００２６】
（物体探索装置の画像解析装置）
図２は物体探索装置１０の制御系を示すブロック図である。
画像解析装置４０は、後述する各種の処理を行うＣＰＵ４１と、ＣＰＵ４１が実行する処理プログラムが格納されたＲＯＭ４２と、レーザ照射装置３０に対する動作制御を行うためのレーザインターフェイス４３と、ＣＣＤカメラ２１からの画像信号を受信するためのカメラインターフェイス４４と、ＣＰＵ４１が実行する各種の処理における各種のデータを記憶するメモリ４５と、解析結果をロボット制御装置１２０に出力するための通信インターフェイス４６と、ＣＰＵ４１による各種処理における所定の表示を行う表示モニタ４７との接続を行うモニタインターフェイス４８と、ＣＰＵ４１による各種処理における所定の入力を行う入力手段４９との接続を行う入力インターフェイス５０とを備えている。
【００２７】
（画像解析装置によるキャリブレーション実行手段としての処理）
上記構成により、画像解析装置４０は、キャリブレーション実行手段としての処理を実行する。具体的には、ＣＰＵ４１が、撮像処理部２０のＣＣＤ撮像素子２３の一画素の間隔が撮像範囲内においてどの程度の大きさとなるかを特定するための画素間隔実測プログラムと、ＣＣＤカメラ２１の光学系の結像レンズから撮像範囲（パレット１１の上面）までの距離を算出するカメラ距離算出プログラムと、撮像範囲をレーザスリット光が一定間隔ごとに走査を行う際の各走査位置でのレーザ発振器３２から出射されるレーザ光を含む各々の平面を示す式を算出するレーザ角度算出プログラムとにより各種の処理を実行する。
【００２８】
（キャリブレーション実行手段：画素間隔実測処理）
まず、画素間隔実測プログラムの実行に際し、図３に示す間隔測定用の治具２００が使用される。
この治具２００は、図３（Ａ）に示すように、撮像範囲となる平面（本実施形態ではパレット１１の上面）に載置される平板２０１と、平板２０１から垂直に立設されたＣＣＤカメラ２０の位置合わせ用の棒状体２０２とを備えている。
平板２０１は、その上面には正方形となる配置で四つのドット状のマーキング２０３が付されている。そして、隣接するマーキング２０３同士間の距離Kの実測値は予めメモリ４５内に登録される。
また、平板２０１はその平板面に対して垂直に高さ調節を行う図示しない高さ調節手段を備えており、最低位置では治具２００が置かれる平面（パレット１１の上面）とほぼ等しい高さに調節することができ、この画素間隔実測プログラムに基づく処理の際には、当該最低高さにして使用される。
【００２９】
棒状体２０２は、平板２０１に対して垂直に立設されており、図３（Ｂ）に示すように、その上端部をＣＣＤカメラ２１に当接させることで四つのマーキング２０３の中心位置からほぼ垂直上方にＣＣＤカメラ２１を位置合わせすることができる。
これにより、垂直下方を向いて支持されているＣＣＤカメラ２１には、四つのマーキング２０３の中心位置が撮像範囲のほぼ中心となるように撮像させることができる。
図３（Ｃ）は治具２００を上述のように位置決めしたときのＣＣＤカメラ２１による撮像画像を示す。図のＸ軸とＹ軸はＣＣＤカメラ２１の座標系であり、前述したＣＣＤ撮像素子２３の各画素の縦横の並び方向に一致する。
【００３０】
図４に画素間隔実測プログラムによるＣＰＵ４１の行う処理のフローチャートを示す。
画素間隔実測プログラムの実行により、ＣＰＵ４１は、ＣＣＤカメラ２１により治具２００の各マーキング２０３の撮像を行う（ステップＳ１１）。
これにより、四つのマーキング２０３のカメラ座標系の位置座標（x1,y1），（x2,y2），（x3,y3），（x4,y4）を撮像による画像データから求める。なお、撮像画像内の各マーキング２０３の抽出は、撮像時における周囲の輝度との差から行われる。
なお、このカメラ座標系の位置座標はＣＣＤ撮像素子２３の各方向について並ぶ画素数で表される。
【００３１】
そして、このうち隣接する二つの位置座標（x1,y1），（x2,y2）から距離y12（＝y1−y2）と角度θ12（＝tan-1（(x1−x2)/(y1−y2)））とが算出される（ステップＳ１２）。カメラ座標系での二つのマーキング２０３の間の距離はy12／cosθ12により求まり、その実際の距離Kは事前に登録されているので、K＝y12／cosθ12とすると、ＣＣＤカメラ２１がパレッ１ト１の上面を撮像した場合の一画素あたりの現実の距離（カメラ座標系の単位距離に対する実際上の距離との比率）はK・cosθ12／y12と算出される（ステップＳ１３）。
【００３２】
また、ＣＰＵ４１は、隣接する他のマーキング２０３同士についても同様の処理を行い、一画素あたりの現実の距離を算出し、それぞれの値を比較する（ステップＳ１４）。これにより、許容値異常の差が生じた場合には、ＣＣＤカメラ２１の視線に対して治具２００の平板２０１が垂直ではなく傾きを生じていると判断し、表示モニタによりエラー表示を行うと共に撮像のやり直しを要求する（ステップＳ１５）。
また、ＣＰＵ４１は、各値の差が許容値内であれば、その平均値を求め（ステップＳ１６）、一画素あたりの現実の距離の値としてメモリ４５内に登録する（ステップＳ１７）。
【００３３】
（キャリブレーション実行手段：カメラ距離算出処理）
次に、カメラ距離算出プログラムによるＣＰＵ４１の処理について図５及び図６に基づいて説明する。図５はカメラ距離算出処理の原理説明図であり、図６はカメラ距離算出プログラムによるＣＰＵ４１が行う処理のフローチャートを示す。ここで、以下の説明において、前述したＸ方向及びＹ方向に直交する方向をＺ方向とし、ＣＣＤカメラ２１のＺ座標をｚ0とする。
まず、カメラ距離算出プログラムの実行に際し、前述した治具２００がまた使用される。治具２００の平板２０１をＺ方向に高さ調節を行い、パレット１１の上面高さに等しい低位置ｚ1と高位置ｚ2とにそれぞれ高さ調節した状態で各マーキング２０３の撮像を行う。このとき、マーキング２０３のＸ座標値は、低位置ｚ1ではポイントマーク２０３がＣＣＤカメラ２１から遠いので図５に示すように、x2となり、高位置ｚ2ではx1（＞x2）となる。
【００３４】
このとき、三角形Δ1とΔ2とは互いに相似形なので、次式(1)が成り立つ。
(x1−x2)／(ｚ2−ｚ1)＝x2／(ｚ0−ｚ2)    …(1)
一方、求めるべきＣＣＤカメラ２１の高さは、ｚ0−ｚ1で求めることができ、上式（1）は次式(2)に展開することができる。
ｚ0−ｚ1＝x1(ｚ2−ｚ1)／(x1−x2)    …(2)
ｚ2−ｚ1の値は、治具２００の調節高さ（低位置と高位置の差）なので予めメモリ４５に登録しておくことができ、x1,x2の値は撮像により求まるので、ＣＣＤカメラ２１の高さとなるｚ0−ｚ1を算出することが可能である。
【００３５】
ＣＰＵ４１のカメラ距離算出プログラムによる処理を説明する。
カメラ距離算出プログラムの実行により、ＣＰＵ４１は、ＣＣＤカメラ２１により低位置と高位置とで治具２００の撮像を行う（ステップＳ２１）。
これにより、四つのマーキング２０３のカメラ座標系の位置座標（x1,y1），（x2,y2），（x3,y3），（x4,y4）を撮像による画像データから求める。なお、低位置での撮像は画素間隔実測プログラムの処理で得られた画像データを使用しても良い。その場合、高位置での撮像のみを行うようにしても良い。
【００３６】
そして、ＣＰＵ４１は、高さ調節の前後での撮像画像におけるＸ座標の変化量と治具２００の高さ調節量とから、ＣＣＤカメラ２１の高さとなるｚ0−ｚ1の値を算出する（ステップＳ２２）。
また、ＣＰＵ４１は、全てのマーキング２０３についても同様の処理を行い、各々から求まるＣＣＤカメラ２１の高さの値を比較する（ステップＳ２３）。これにより、許容値異常の差が生じた場合には、ＣＣＤカメラ２１の視線に対して治具２００の平板２０１の高さ調節が垂直ではなく傾きを生じて行われたものと判断し、表示モニタによりエラー表示を行うと共に撮像のやり直しを要求する（ステップＳ２４）。
また、ＣＰＵ４１は、各値の差が許容値内であれば、その平均値を求め（ステップＳ２５）、ＣＣＤカメラ２１の高さとしてメモリ４５内に登録する（ステップＳ２６）。
【００３７】
（キャリブレーション実行手段：レーザ角度算出処理）
次に、レーザ角度算出プログラムによるＣＰＵ４１の処理について図７及び図８に基づいて説明する。図７はレーザ角度算出処理の原理説明図であり、図８はレーザ角度算出プログラムによるＣＰＵ４１が行う処理のフローチャートを示す。
レーザ照射装置３０は、撮像範囲となるパレット１１の上面の範囲内についてＣＣＤ撮像素子２３の画素数とスリット光の走査密度に応じた点群ごとに高さデータを求めるために、一定の間隔でスリット光の照射位置をスリット光に直交する方向にずらしながら照射を行い、その都度、ＣＣＤカメラ２１による撮像が行われる。
そして、スリット光を撮像した各画素ごとに高さデータを算出するために、そのスリット光を含む平面の数式を求める必要性があり、このために、レーザ角度算出処理が行われる。
なお、撮像範囲を走査する際のスリット光の一定間隔の送り量は、レーザ照射装置３０の走査機構３３のサーボモータ３４の回転角度により決定され、走査時の個々の回転角度は全て事前にメモリ４５内に登録されている。また、サーボモータ３４の回転角度範囲は撮像範囲に応じて開始角度から終了角度までの範囲が登録される。これにより、ＣＰＵ４１は、スリット光の走査本数を算出する。
そして、このレーザ角度算出処理では、個々の回転角度における全てのスリット光を含む平面の数式の算出が行われる。
【００３８】
レーザ角度算出プログラムの実行に際し、前述した治具２００がまた使用される。まず、所定の走査位置となる角度で固定して照射されているスリット光に対して、治具２００の平板２０１をＺ方向に高さ調節を行い、パレット１１の上面高さに等しい低位置ｚ1と高位置ｚ2とにそれぞれ高さ調節した状態でスリット光の撮像を行う。
低位置と高位置とでそれぞれ撮像されたスリット光のＸ切片をx1，x2、Ｙ切片をy1，y2とすると、図示の各点は、X1＝(x1,0,z1)，Y1＝(0,y1,)，X2＝(x2,0,z2)，Y2＝(0,y2,z2)となる。
【００３９】
点X1から点Y1へ向かうベクトルは(−x1,y1,0)となり、その大きさは(x12＋y12)1/2となる。
また、点X1から点Y2へ向かうベクトルは(−x1,y2,z2−z1)となり、その大きさは、(x12＋y22＋(z2−z1)2)1/2となる。
また、一方のベクトルの方向余弦は、(x12＋y12)-1/2・(−x1,y1,0)となる。ここでこれを（l1,m1,n1）と置き換える。
また、他方のベクトルの方向余弦は、(x12＋y22＋(z2−z1)2)-1/2・(−x1,y2,z2−z1)となる。ここでこれを（l2,m2,n2）と置き換える。
【００４０】
これらの方向余弦を含み、点X1を通過する平面は次式(3)で求められる。
m1・n2・(x−x1)−l2・n1・y−l1・m2・(z−z1)＝0    …(3)
【００４１】
ところで、z1，z2の値は撮像時の治具２００の高さを予め登録しておけばよく、x1,y1の値はＣＣＤカメラ２１の検出により求まるが、x2,y2の値は、治具２００を高位置としたときの位置なので直接は求まらない。
即ち、図７に示すように、ＣＣＤカメラ２１は、x2，y2の値の代わりに、x2’，y2’の値を検出してしまう。
但し、x2’＝x2・(z0−z1)／(z0−z2)、y2’＝y2・(z0−z1)／(z0−z2)となるので、検出値x2’，y2’からx2，y2の値を算出することができる。
【００４２】
従って、ＣＰＵ４１は、スリット光の撮像によりレーザスリット光を含む平面の数式を算出することができる。
そして、全ての照射角度のレーザスリット光について、平面の式を算出し、メモリ４５に登録を行う。
【００４３】
ＣＰＵ４１のレーザ角度算出プログラムによる処理を説明する。
まず、レーザ角度算出プログラムの実行により、ＣＰＵ４１はスリット光の走査本数のカウント値K＝1に設定する（ステップＳ３１）。
そして、レーザ照射装置３０のサーボモータ３４の回転角度をメモリ４５から読み出すと共に現在の走査本数の照射角度に合わせるように駆動させる（ステップＳ３２）。
ＣＰＵ４１は、ＣＣＤカメラ２１により低位置と高位置とで治具２００に投影されるスリット光の撮像を行う（ステップＳ３３）。
これにより、四点X1，X2，Y1，Y2の位置座標を算出し、さらに、登録された治具２００の高さの値から、スリット光を含む平面の数式を算出する（ステップＳ３４）。
そして、このとき、四点X1，X2，Y1，Y2の中から三点の組み合わせを作り、それぞれから平面の数式を算出する（ステップＳ３５）。
そして、数式の各係数の平均化或いは最小二乗法により一つの平面の式を求め、これをメモリ４５内に登録する（ステップＳ３６）。
次いで、ＣＰＵ４１は、走査本数のカウント値を１加算し（ステップＳ３７）、走査本数が予定される全ての本数に到達したかを判定し（ステップＳ３８）、到達していなければ処理をステップＳ３２に戻して次の照射角度での平面算出を行い、到達していれば、処理を終了させる。
【００４４】
（画像解析装置によるマスターデータ取得手段としての処理）
さらに、画像解析装置４０は、そのＣＰＵ４１が、ＲＯＭ４２内のマスターデータ取得プログラムを実行することにより、ワークＷに対して、レーザ照射装置３０によりレーザスリット光の走査を行いつつ撮像装置２０による撮像を行うことで一定方向のワークＷのマスターデータを算出すると共に、マスターデータに対して方向を変える座標変換により複数方向についてマスターデータを算出するマスターデータ取得手段としての処理を実行する。
【００４５】
ここで、レーザスリット光の撮像とこれによる三次元データの生成の手法について図９により説明する。図９（Ａ）は撮像範囲内に置かれたワークＷに対してある照射角度でレーザスリット光を照射した場合の状態説明図であり、図９（Ｂ）はその撮像画像を示す。
平面から突出した部位に斜め方向からレーザスリット光が照射されると、高さがある部分についてはその形状に応じてスリットの直線部位から変形しズレを生じた状態が撮像される。
図９（Ａ）に示すワークＷ上のある点Ｐは、その三次元の座標が実際には（x,y,z）である場合でも、ＣＣＤ撮像素子２３は平面センサであるため、カメラ視線に沿って点Ｐからパレット１１の上面におろした点Ｐ’（x',y',z1）として検出される。なお、実際上は、x',y'のみがＣＣＤ撮像素子２３の撮像画像から求まる位置座標であり、z1は前述したパレット１１の上面のＺ座標値である。
そして、ＣＣＤカメラ２１の高さzeはキャリブレーションで求められているので、カメラ位置（0,0,ze）と検出される点Ｐ’（x',y',z1）とを結ぶ直線とレーザスリット光を含む平面（キャリブレーションで求められた前述の数式（3））との交点をそれぞれの数式から算出することでワークＷの点Ｐの三次元座標（x,y,z）を求めることができる。
【００４６】
上述のようにして一回の撮像について、撮像されるスリット光画像の全長に渡る各点について三次元座標を算出する。さらに、撮像範囲全体についてレーザスリット光の走査を行い、各照射角度ごとに三次元座標を算出する。
そして、得られた各照射角度ごとの三次元データの中で、ワークＷ以外の部分、即ち、パレット１１の上面を示す位置座標（z＝z1）となるデータは全て除去した上で各走査で得られた座標値を合成することで、パレット１１上に置かれた方向を向いた状態でのワークＷの三次元データを得ることができる。この三次元データは、ワークＷの表面におけるレーザスリット光の走査密度とＣＣＤ撮像素子２３の画素密度に応じた点群としてのデータとなる。
そして、後述する撮像範囲の撮像画像に基づく三次元データとの比較によりワークＷを探索する際の処理の都合上、上記ワークＷの三次元データの点群の一の点を基準点と定め（任意でよい）、この基準点から他の全ての点に向かうベクトルとしてのデータに変換する。つまり、基準点を（0,0,0）とし、他の点は（算出された三次元データの位置座標−もとの基準点の位置座標）により求められ、これがマスターデータとして登録される。
【００４７】
また、物体探索装置１０では、パレット１１上に乱雑に積まれた複数のワークＷの中から一つのワークを発見することを目的とするので、探索すべきワークＷは、Ｘ、Ｙ、Ｚ軸を中心としていずれの方向に傾いた状態であるかは定かでなく、このため、ワークＷについて各方向を向いた状態でのマスターデータが必要となる。
従って、上記手法で得られた一定方向のマスターデータを、Ｘ、Ｙ、Ｚの各軸回りで座標値の角度変換を行い各方向を向いたワークＷのマスターデータも登録が行われる。例えば、Ｘ、Ｙ、Ｚの各軸回りに0〜180°の範囲で５°ずつ角度変換を行う場合、これらを組み合わせたものも用意されるので、36×36×36＝46656個のマスターデータが算出され登録される。
なお、おかれる向きによって全く異なる形態となるワークＷの場合には各方向について上記複数のマスターデータを求め登録することが望ましい。例えば、ワークＷの表と裏の形態が全く異なるような場合には、表面と裏面のそれぞれで撮像して各々のマスターデータを生成し、さらに、それぞれを回転させたマスターデータを生成し、メモリ４５に登録することが望ましい。
【００４８】
ＣＰＵ４１のマスターデータ取得プログラムによる処理を説明する。図１０はマスターデータ取得プログラムによるＣＰＵ４１が行う処理のフローチャートを示す。
まず、マスターデータ取得プログラムの実行により、ＣＰＵ４１はスリット光の走査本数のカウント値K＝1に設定する（ステップＳ４１）。
そして、レーザ照射装置３０のサーボモータ３４の回転角度をメモリ４５から読み出すと共に現在の走査本数の照射角度に合わせるように駆動させる（ステップＳ４２）。
ＣＰＵ４１は、ＣＣＤカメラ２１により撮像範囲内のスリット光の撮像を行う（ステップＳ４３）。
【００４９】
このとき、撮像による画像データについて予め設定された閾値以上の輝度となる画素のデータのみを抽出する二値化処理を行い撮像画像からスリット光画像のデータのみを抽出する。スリット光の画像データから三次元データを算出する（ステップＳ４４）。
次いで、ＣＰＵ４１は、走査本数のカウント値を１加算し（ステップＳ４５）、走査本数が予定される全ての本数に到達したかを判定し（ステップＳ４６）、到達していなければ処理をステップＳ４２に戻して次の照射角度での三次元データの算出を行う。
【００５０】
一方、全ての走査が完了していれば、得られた三次元データからパレット１１の上面のデータを除去すると共に合成する（ステップＳ４７）。
さらに、ＣＰＵ４１は、合成された三次元データから任意で基準点を決め、各点について基準点からの位置ベクトルとするベクトル化を図ることでマスターデータを生成する（ステップＳ４８）。
そして、この一方向のマスターデータを各軸回りで角度変換する（ステップＳ４９）。
そして、各方向を向いたワークＷのマスターデータを全てメモリ４５内に登録する（ステップＳ５０）。
なお、このときのメモリ４５は、複数方向を向いたワークＷの各マスターデータを記憶するマスターデータ記憶手段に相当する。
【００５１】
（画像解析装置による三次元解析手段としての処理）
さらに、画像解析装置４０は、そのＣＰＵ４１が、ＲＯＭ４２内の三次元解析プログラムを実行することにより、パレット１１上に乱雑に複数のワークＷが積まれた状態において、レーザスリット光の走査をしつつ撮像を行い、これにより得られる画像データから撮像範囲をＣＣＤ撮像素子の画素密度とレーザスリット光の走査密度に応じて細分化した点群の位置座標を示す撮像範囲三次元データを算出する三次元解析手段としての処理を実行する。
【００５２】
レーザスリット光の撮像とこれによる撮像範囲三次元データの生成の原理については、前述したマスターデータ生成と同じであるため説明を省略し、異なる点についてのみ説明を行うこととする。
つまり、撮像範囲三次元データの生成にあっては、まず、各レーザスリット光の撮像によって得られた三次元データを合成し、パレット１１の上面にあたるデータを除去した後に、ベクトル化は行われることなく撮像範囲三次元データとしてメモリ４５に記録される。
【００５３】
ＣＰＵ４１の三次元解析プログラムによる処理を説明する。図１１は三次元解析プログラムによるＣＰＵ４１が行う処理のフローチャートを示す。
まず、三次元解析プログラムの実行により、ＣＰＵ４１はスリット光の走査本数のカウント値K＝1に設定する（ステップＳ６１）。
そして、レーザ照射装置３０のサーボモータ３４の回転角度をメモリ４５から読み出すと共に現在の走査本数の照射角度に合わせるように駆動させる（ステップＳ６２）。
ＣＰＵ４１は、ＣＣＤカメラ２１により撮像範囲内のスリット光の撮像を行う（ステップＳ６３）。
【００５４】
次いで、スリット光の二値化画像データから三次元データを算出する（ステップＳ６４）。
次いで、ＣＰＵ４１は、走査本数のカウント値を１加算し（ステップＳ６５）、走査本数が予定される全ての本数に到達したかを判定し（ステップＳ６６）、到達していなければ処理をステップＳ６２に戻して次の照射角度での三次元データの算出を行う。
【００５５】
一方、全ての走査が完了していれば、得られた三次元データからパレット１１の上面のデータを除去すると共に合成する（ステップＳ６７）。
そして、合成された撮像範囲三次元データはメモリ４５内に記録される（ステップＳ６８）。
【００５６】
（画像解析装置による判定手段としての処理）
さらに、画像解析装置４０は、そのＣＰＵ４１が、ＲＯＭ４２内の判定プログラムを実行することにより、各方向のマスターデータの基準点を、三次元解析処理で得られた撮像範囲三次元データの各点に位置合わせしたときに、いずれかの方向のマスターデータの各点の位置座標と三次元データの各点の位置座標とが近似するか否かを判定する。
また、かかる判定プログラムにより判定処理においては、ＣＰＵ４１は、撮像範囲三次元データの点群の中から所定間隔ごととなる一部の点に対して第一の判定を行った結果、近似度が高い点の周囲のみについてより密な間隔となる点に対してさらに第二の判定を行う。
【００５７】
上記判定プログラムにより行われる判定処理について詳細に説明する。図１２は判定処理における原理説明図である。
即ち、画像形成装置４０には、マスターデータ取得処理と三次元データ解析処理により、メモリ４５内には、各方向のマスターデータと撮像範囲三次元データとが格納されている。これらは、いずれも、ＣＣＤ撮像素子の画素密度と走査密度に応じて面状に並んで存在する点群の集合と考えることができる。
ここで、いずれかのマスターデータの任意の一点を基準点とし、その基準点を撮像範囲三次元データのいずれかの一点に対して位置決めした場合、撮像範囲三次元データ内におけるワークの基準点に相当する点に位置決めされなければ、図１２（Ａ）のように、マスターデータの各点群Ｍと撮像範囲三次元データ内のワーク表面を構成する点群Ｈとは各点同士の位置は殆どが一致も近似もしない。
また、向きの異なるマスターデータが選択されて、その基準点を撮像範囲三次元データのいずれかの一点に対して位置決めした場合も、図１２（Ｂ）のように、マスターデータの各点群Ｍと撮像範囲三次元データ内のワーク表面を構成する点群Ｈとは各点同士の位置は殆どが一致も近似もしない。
しかしながら、正しい向きのマスターデータが選択されると共に、当該マスターデータの基準点が撮像範囲内の三次元データの点群の中のワークを構成する点群の基準点に相当する一点に位置決めされて当てはめられると、図１２（Ｃ）のように、当該マスターデータのマスターデータの各点群Ｍと撮像範囲三次元データ内のワーク表面を構成する点群Ｈとは各点同士の位置が一致或いは近似することとなる。
【００５８】
撮像範囲三次元データを構成する点群の一点の位置座標となるようにマスターデータの基準点の位置座標を変換し、且つ当該マスターデータの他の点群について同じ方向に同じ位置変化量だけ変換を加えると、マスターデータ全体を撮像範囲内に位置決めすることができる。つまり、マスターデータの基準点を含む全ての座標値に対して、撮像範囲三次元データの中から選択された一点の位置座標値を加えると、マスターデータの当てはめを行うことができる。
そして、
(1)位置変換されたマスターデータの各点を撮像範囲三次元データの各点と比較し、マスターデータの各点ごとに近接距離に基づく評価点をつけて全体を合計する。
(2)位置変換されたマスターデータの各点について撮像範囲三次元データに所定距離内となる近接点が存在するか判定して存在する点の個数を評価点とする。
その他、周知の近接評価を行い、その評価点が規定値を超える場合に一致判定を行う。
【００５９】
また、上記判定処理にあっては、撮像範囲三次元データの全ての点についてマスターデータの当てはめ及び判定等を実行すると、ＣＰＵ４１の処理負担が大きくなり、処理速度も低下するので、粗く全体的に行われる一次判定と精密に行われる二次判定とに段階的に分けて判定が行われる。
つまり、撮像範囲三次元データの全ての点群がPM1〜PMkまである場合、点群の中から一定の並び間隔で間引きを行い、点数をPS1〜PSnまでに低減させた間引き撮像範囲三次元データを用意する（但し、m＞n）。
そして、この間引き撮像範囲三次元データの各点に対して各マスターデータの基準点の当てはめを行い、近接評価を行う。
このとき、密な撮像範囲三次元データに対する評価基準である第二の一致条件に比べて、間引き撮像範囲三次元データに対する評価基準である第一の一致条件を緩やかに設定する。例えば、一致判定とする評価点を低く設定する、或いは、近接点と判断するための判断距離を大きく設定する等である。
【００６０】
これにより、一次判定をパスした場合、マスターデータ或いは撮像範囲三次元データの点群の中で、他方の点群の中に近似する点が存在すると判断された点を集めると共に、その中からＸ方向とＹ方向のそれぞれについて、最小となる座標値と最大となる座標値を算出する。
そして、密となる撮像範囲三次元データの点群PM1〜PMmの中から、Ｘ軸方向の最小値から最大値の範囲とＹ軸方向の最小値から最大値の領域内となる一部の点群（PMj〜PMkとする）のみを抽出し、二次判定を実行する。
これにより、ワークＷの存在可能性が低い領域については精密な判定の対象から外し、ワークＷの存在可能性が高い領域についてのみ精密な判定を行うことができる。
【００６１】
ＣＰＵ４１の判定プログラムによる処理を説明する。図１３は判定プログラムによるＣＰＵ４１が行う処理のフローチャートを示す。
まず、一次判定が行われる。即ち、ＣＰＵ４１は、間引き撮像範囲三次元データをメモリ４５内から読み出し、その中から最初の点PS1を選択する（ステップＳ８１）。
次いで、当てはめを行うマスターデータＭ１を選択する（ステップＳ８２）。
【００６２】
そして、マスターデータM1の基準点が選択点PS1の位置となるようにマスターデータM1の点群を位置変換する（ステップＳ８３）。
そして、位置変換されたマスターデータM1の各点と間引き撮像範囲三次元データの各点との近似判定を行い、条件がゆるい第一の一致条件で一致評価を行う（ステップＳ８４）。
【００６３】
これにより、一致する評価が得られない場合には（ステップＳ８５）、次のマスターデータを選択し（ステップＳ８６）、全てのマスターデータを選択したか判定が行われる（ステップＳ８７）。
これにより、全てのマスターデータの当てはめが行われていない場合には、ステップＳ８３に処理が戻されて、次のマスターデータについて当てはめと一致評価が行われる。
また、まだ全てのマスターデータの当てはめが行われた場合には、間引き撮像範囲三次元データの次の点が選択され（ステップＳ８８）、全ての点を選択したか判定が行われる（ステップＳ８９）。
その結果、間引き撮像範囲三次元データの全ての点が選択されていた場合には、処理を終了する。
また、間引き撮像範囲三次元データの全ての点が選択されていない場合には、処理をステップＳ８２に戻し、次の点について各マスターデータの当てはめが行われる。
【００６４】
一方、ステップＳ８５の判定で一致する評価が得られると、一致評価が得られた点PSiの順番が記憶され（ステップＳ９０）、二次判定に移行する。
即ち、ＣＰＵ４１は、密な撮像範囲三次元データをメモリ４５内から読み出し、その中から前述した手法で一部の範囲の点PMj〜PMkを抽出する（ステップＳ９１）。
そして、その中から最初の点PMjを選択する（ステップＳ９２）。
次いで、当てはめを行うマスターデータＭ１を選択する（ステップＳ９３）。
【００６５】
そして、マスターデータM1の基準点が選択点PMjの位置となるようにマスターデータM1の点群を位置変換する（ステップＳ９４）。
そして、位置変換されたマスターデータM1の各点と密なる撮像範囲三次元データの各点との近似判定を行い、条件が厳しい第二の一致条件で一致評価を行う（ステップＳ９５）。
【００６６】
これにより、一致する評価が得られない場合には（ステップＳ９６）、次のマスターデータを選択し（ステップＳ９７）、全てのマスターデータを選択したか判定が行われる（ステップＳ９８）。
これにより、全てのマスターデータの当てはめが行われていない場合には、ステップＳ９４に処理が戻されて、次のマスターデータについて当てはめと一致評価が行われる。
また、まだ全てのマスターデータの当てはめが行われた場合には、密なる撮像範囲三次元データの次の点が選択され（ステップＳ９９）、全ての点を選択したか判定が行われる（ステップＳ１００）。
その結果、密なる撮像範囲三次元データの全ての点が選択されていた場合には、処理を終了する。
また、密なる撮像範囲三次元データの全ての点が選択されていない場合には、処理をステップＳ９３に戻し、次の点について各マスターデータの当てはめが行われる。
【００６７】
一方、ステップＳ９６の判定で一致する評価が得られると、一致評価が得られた点PMiに基準点を当てはめまるように位置変換されたマスターデータの三次元データが通信インターフェイス４６と通信ハーネスを介してロボット制御装置１２０に出力される（ステップＳ１０１）。
一方、二次判定による一致評価は、マスターデータに対して近似点が存在すると認められた点については、密となる撮像範囲三次元データの点群の中から削除される。継続される次の判定の際には不要となるからである。
同様に間引き撮像範囲三次元データの点群の中からも二次判定でマスターデータに対して近似点が存在すると認められた点に相当する点が削除される。
つまり、メモリ４５内において、一部削除された新たな間引き撮像範囲三次元データと密となる撮像範囲三次元データに更新が行われる。
【００６８】
ついで、ステップＳ９０の処理で記憶された一次判定を中断した点PSiが読み出され、処理がステップＳ８２に戻されて、間引き撮像範囲三次元データについて次の点に対する一次判定が再開される（ステップＳ１０２）。
【００６９】
（ロボット）
次に、ロボットシステム１００のロボット１１０について図１に基づいて説明する。
ロボット１１０は、土台となるベース１１１と、関節１１３で連結された複数のアーム１１２と、各関節１１３ごとに設けられた駆動源としてのサーボモータ（図示略）と、各サーボモータの軸角度をそれぞれ検出するエンコーダ（図示略）と、連結されたアーム１１２の最先端部にはワークＷを挟んで保持するツールとしてのハンド１１４を備えている。
上記各関節１１３は、アーム１１２の一端部を揺動可能として他端部を軸支する揺動関節と、アーム１１２自身をその長手方向を中心に回転可能に軸支する回転関節とのいずれかから構成される。つまり、本実施形態におけるロボット１１０はいわゆる多関節型ロボットに相当する。
また、ロボット１１０は、六つの関節１１３を具備しており（一部図示略）、その先端部ハンド１１４を任意の位置に位置決めし任意の姿勢を取らせることが可能となっている。
また、ハンド１１４は、駆動源としてサーボモータを備えており、これにより離接可能な二つの挟持爪を備えている。このハンド１１４の一対の挟持爪は一つのサーボモータにより常に互いのちょうど中間位置に向かって移動するため、当該中間位置を基準にハンド１１４の位置決めを行うようになっている。
【００７０】
（ロボット制御装置）
図１４はロボット制御装置１２０のブロック図である。
このロボット制御装置１２０は、当該ロボット制御装置１２０全体を制御するシステムプログラムとロボット１１０の動作制御を行う制御プログラムと各種の初期設定データが格納されたＲＯＭ１２２と、ＲＯＭ１２２に格納された各種のプログラムを実行するＣＰＵ１２１と、ＣＰＵ１２１の処理により各種データを格納するワークエリアとなるＲＡＭ１２３と、ＣＰＵ１２１の実行する制御プログラムに従って決定されるロボット１１０の各関節１１３のサーボモータのトルク値に応じたサーボモータ駆動電流を通電するサーボ制御回路１２４と、各関節１１３のエンコーダ出力をカウントするカウンタ１２５と、前述の制御プログラムの処理により求められるロボット１１０の制御に関する各種のデータが格納される記憶手段としてのメモリ１２６と、ロボット１１０の教示点、その他の各種の設定を入力するための例えばキーボード及びそのインターフェイスからなる入力手段１２７と、画像解析装置４０からの解析結果を受信するための通信インターフェイス１２８と、通信インターフェイス上記各構成の信号の送受可能に接続するバス１２９とを備えている。
なお、上記カウンタ１２５及びサーボ制御回路１２４は、ロボット１１０の各関節１１３のサーボモータごとに個別に設けられているが図１４では図示を省略している。
【００７１】
上記ロボット制御装置１２０は、画像解析装置４０が取り扱うＣＣＤカメラ２１による座標系とは異なるロボット座標系に従ってロボット１１０の動作制御を行う。
従って、通信インターフェイス１２８から画像解析装置４０の座標系に基づくワークＷの位置及び向きを示す三次元データを受信した場合には、そのままロボット座標系に取り込むことはできない。
従って、ロボット制御装置１２０と画像解析装置４０とについて周知の手法によりキャリブレーションを行っても良いし、入力手段１２７を用いてロボット１１０を動作させながら、画像解析装置の座標系の基準となる位置（例えば、原点、Ｘ軸、Ｙ軸、Ｚ軸上の点等）を教示を行い、ＣＰＵ１２１の演算により、画像解析装置４０の座標系データをロボット座標系のデータに変換する変換式（変換行列）を算出するように変換プログラムをＲＯＭ１２２内に用意しても良い。
また、同様にして、パレット１１の配置、ＣＣＤカメラ２１の配置、光軸、レーザ発振器３２の配置などをデータ入力しても良い。
【００７２】
このようにして、ＣＰＵ１２１は、画像解析装置４０から受信したワークＷの位置及び向きを示す三次元データをロボット座標系のデータに変換すると、ハンド１１４によるワークＷの挟持を行うための特徴点などを演算して求め、ロボット１１０のアーム先端位置を決定すると共に当該位置に位置決めする動作制御を実行する。
さらに、ＣＰＵ１２１は、ハンド１１４の動作制御によりワークＷを挟持させ、予め定められた運搬位置にロボット１１０のアーム先端を移動させ、所定の向きにワークＷを向けてハンド１１４から解放する動作制御を実行する。
【００７３】
（ロボットシステムの効果）
上述のように、ロボットシステム１００の物体探索装置１０では、マスターデータの基準点を撮像範囲三次元データの一点とに位置合わせさせた結果、他の各点について位置座標が近似するか否かによりワークＷの位置を探索するので、例え、複数のワークＷが乱雑に積み重ねられた状態であって、撮像により得られる撮像範囲三次元データが複雑な態様を示したとしても、その一部の近似から一つのワークＷを探索することが可能である。
さらに、あらゆる方向のマスターデータを用意し、各々の類似を判定するので、ワークＷがまちまちの方向を向いている状態であっても探索可能であると共に、当該ワークＷの向きを特定することも可能となる。
【００７４】
しかも、上記物体探索装置１０の探索結果を利用するので、ロボット制御装置１２０は、複数のワークＷを乱雑に積み重ねた状態であっても、その中から一つのワークＷに対してハンド１１４により保持運搬を行うことが可能となり、ロボット１１０の作業を行うためにワークＷを事前に決まったルールで並べておいたり、その並び方を事前に入力する必要がなくなり、これらの作業負担の軽減を図ることが可能となる。
【００７５】
また、物体探索装置１０は、撮像装置２０とレーザ照射装置３０を駆使してマスターデータを取得するので、ワークＷのマスターデータを数値計算で求めたり、データを入力したり、事前にデータを用意することなく探索を行うことが可能となる。
同様に、ロボット制御装置１２０も扱うべきワークの初期データの作成や入力を不要とし、例え未知のワークであっても作業を行うことが可能となる。
また、画像解析装置４０がワークＷのマスターデータを取得する場合、走査条件や撮像条件を等しくすることで、近似判定の際に一致度の高いマスターデータを用意することが可能となり、探索精度を向上させることが可能となる。
【００７６】
さらに、物体探索装置１０は、マスターデータの一点の位置合わせと近似の判定とを行う場合において、一次判定と二次判定とに段階的に行うので、密となる撮像範囲三次元データの点群の全てに対してマスターデータの位置合わせ及び二次判定を行わずにすませることができる。
その結果、判定の精度を極力低減して、処理負担の軽減と処理の迅速化を図ることが可能となる。
【００７７】
（その他）
上述したレーザ光照射装置はスリット光を照射するものであったが、これに限らず、例えば、スポット光するレーザ光照射装置を使用しても良い。その場合、スポット光を副走査方向（例えばスリット光の線上と同じ方向）に走査しつつ主走査方向（副走査方向と直交する方向）に走査して、撮像範囲全体の走査が行われる。
また、レーザ照射装置３０は、レーザ発振器を直接回動させてレーザスリット光の走査を行っていたが、特にこれに限定されるものではなく、一般に知られる他の光走査技術を用いても良い。例えば、レーザ発振器を固定とし、出射されるレーザ光を反射させるミラーの反射面を回動又は回転させる方式としても良い。
【００７８】
なお、判定手段の処理において、疎なる撮像範囲三次元データでの一致判定の際には、、マスターデータについても、より大きな均一角度ごとに変化する一部のマスターデータのみを使用しても良い。例えば、本実施形態では5°ずつ姿勢変化させたマスターデータを使用するが、例えばより疎に15°間隔となる一部のマスターデータのみを疎なる撮像範囲三次元データでの一致判定に使用する処理を行っても良い。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施形態たるロボットシステムの全体構成図である。
【図２】図１に開示した物体探索装置の制御系を示すブロック図である。
【図３】画素間隔実測処理に用いる間隔測定用の治具であり、図３（Ａ）はその斜視図、図３（Ｂ）はその平面図、図３（Ｃ）は治具を使用したときの撮像画像を示す。
【図４】画素間隔実測プログラムによるＣＰＵの行う処理のフローチャートを示す。
【図５】カメラ距離算出処理の原理説明図である。
【図６】カメラ距離算出プログラムによるＣＰＵが行う処理のフローチャートを示す。
【図７】レーザ角度算出処理の原理説明図である。
【図８】レーザ角度算出プログラムによるＣＰＵが行う処理のフローチャートを示す。
【図９】図９（Ａ）は撮像範囲内に置かれたワークに対してある照射角度でレーザスリット光を照射した場合の状態説明図であり、図９（Ｂ）はその撮像画像を示す。
【図１０】マスターデータ取得プログラムによるＣＰＵが行う処理のフローチャートを示す。
【図１１】三次元解析プログラムによるＣＰＵが行う処理のフローチャートを示す。
【図１２】判定処理における原理説明図であり、図１２（Ａ）は位置の不一致状態を示し、図１２（Ｂ）は向きの不一致状態を示し、図１２（Ｃ）は位置と向き共に一致した状態を示す。
【図１３】判定プログラムによるＣＰＵが行う処理のフローチャートを示す。
【図１４】図１に開示されたロボット制御装置のブロック図である。
【符号の説明】
【００８０】
１  パレット
１０  物体探索装置
２０  撮像装置（撮像手段）
２１  ＣＣＤカメラ
２３  ＣＣＤ撮像素子
３０  レーザ照射装置（照射手段）
３２  レーザ発振器
３３  走査機構
３４  サーボモータ
４０  画像解析装置
４１  ＣＰＵ
４２  ＲＯＭ
４５  メモリ（マスターデータ記憶手段）
１００  ロボットシステム
１１０  ロボット
１２０  ロボット制御装置
【図１】
2007101197.tif 000003
【図２】
2007101197.tif 000004
【図３】
2007101197.tif 000005
【図４】
2007101197.tif 000006
【図５】
2007101197.tif 000007
【図６】
2007101197.tif 000008
【図７】
2007101197.tif 000009
【図８】
2007101197.tif 000010
【図９】
2007101197.tif 000011
【図１０】
2007101197.tif 000012
【図１１】
2007101197.tif 000013
【図１２】
2007101197.tif 000014
【図１３】
2007101197.tif 000015
【図１４】
2007101197.tif 000016