(57)【要約】【課題】実空間上における対象物同士の重なり判定又は対象物の欠陥判定等の対象物に対する評価を、より高速かつ正確に行う。【解決手段】受付部が、距離画像を受け付け、認識部が、距離画像内の認識対象物を認識する。また、変換部が、認識対象物に関係する関係物の所定の面の情報を、距離画像上の情報へ変換し、出力部が、変換された情報に基づいた評価結果を出力する。これにより、実空間上における対象物同士の重なり判定又は対象物の欠陥判定等の対象物に対する評価を、より高速かつ正確に行うことができる。【選択図】図１８
2019016294.tif 000002
【特許請求の範囲】
【請求項１】
距離画像を受け付ける受付部と、
前記距離画像内の認識対象物を認識する認識部と、
前記認識対象物に関係する関係物の所定の面の情報を、前記距離画像上の情報へ変換する変換部と、
変換された前記情報に基づいた評価結果を出力する出力部と、
を有する情報処理装置。
【請求項２】
前記関係物の、前記認識対象物に対して関与する際の姿勢を特定する特定部をさらに有し、
前記変換部は、前記姿勢により特定される前記関係物の所定の面の情報を、前記距離画像上の情報へ変換する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定部は、認識された前記認識対象物の情報に応じて、前記姿勢を特定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記特定部は、予め定められた情報をもとに前記姿勢を特定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記変換部は、前記関係物の、前記距離画像を取得するセンサから遠い側の面の情報を、前記距離画像上の情報へ変換する
ことを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記変換部は、前記関係物の、前記距離画像を取得するセンサに近い側の面の情報を、前記距離画像上の情報へ変換する
ことを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項７】
前記出力部は、変換された前記関係物の情報と、認識された前記認識対象物の情報とのいずれが前記センサから遠いことを示しているかの評価を行い、当該評価の結果を出力する
ことを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記出力部は、変換された前記関係物の情報と、認識された前記認識対象物の情報とにどれくらい差異があるかの評価値を算出し、当該評価値を出力する
ことを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項９】
前記変換部は、前記関係物の、前記距離画像を取得するセンサに近い面と前記センサから遠い側の面の両方の面の情報を、前記距離画像上の情報へ変換し、
前記出力部は、変換された前記両方の面の情報から算出した値に基づいた評価結果を出力する
ことを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項１０】
前記受付部は、ステレオカメラの撮像画像に基づいて生成された前記距離画像を受け付ける
ことを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記認識部は、前記認識対象物以外の既知の物体に相当する距離画像を除去した距離画像に基づいて前記認識対象物を認識する
ことを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１２】
受付部が、距離画像を受け付ける受付ステップと、
認識部が、前記距離画像内の認識対象物を認識する認識ステップと、
変換部が、前記認識対象物に関係する関係物の所定の面の情報を、前記距離画像上の情報へ変換する変換ステップと、
出力部が、変換された前記情報に基づいた評価結果を出力する出力ステップと、
を有する情報処理方法。
【請求項１３】
コンピュータを、
距離画像を受け付ける受付部と、
前記距離画像内の認識対象物を認識する認識部と、
前記認識対象物に関係する関係物の所定の面の情報を、前記距離画像上の情報へ変換する変換部と、
変換された前記情報に基づいた評価結果を出力する出力部として機能させること、
を特徴とする情報処理プログラム。
【請求項１４】
請求項１乃至１１のうち、いずれか一項に記載の情報処理装置と、
所定の動作を行う動作部と、
前記情報処理装置からの前記評価結果に基づいて、前記動作部を駆動制御する駆動制御部と
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、情報処理プログラム、及びシステムに関する。
【背景技術】
【０００２】
今日において、バラ積みされた部品（ランダムに載置された部品）を撮像したカメラ画像に基づいて各部品の位置及び姿勢を検出し、この検出結果に基づいてアームを駆動して、部品のピッキングを行うマニピュレータシステムが知られている。このようなマニピュレータシステムは、バラ積みされる部品の位置及び姿勢は毎回異なるため（部品の位置及び姿勢のバリエーションが多いため）、アームの軌道を予め決定することは困難となる。換言すれば、アームの軌道は、バラ積みされる部品の位置及び姿勢に応じて大きく変わることがある。
【０００３】
一方、例えば部品がコンテナに収納されている場合又はマニピュレータシステムの架台が狭い場合等に、アームの可動範囲が限定され、部品をピッキングする際にアームが周囲に干渉するおそれがある。従来は、干渉物の位置が固定的である場合、この固定的な位置を予め手動で登録することで、干渉物に対するアームの干渉を防止していた。
【０００４】
また、特許文献１（特開２００６−３４６７９０号公報）には、ロボットハンドに設けられたカメラで認識したワーク位置（部品の位置）に合わせて移動経路を生成し、ロボットハンドの移動空間の形状及び位置と、事前に登録された周辺物体が存在する空間の形状及び位置とを比較することで、ロボットハンドと周辺物体の干渉を判別する干渉判別装置が開示されている。
【０００５】
また、特許文献２（特開２０１６−０７８１８４号公報）には、三次元カメラ（３Ｄカメラ）で撮像したロボットの周囲の撮像画像の色情報に基づいて、ロボットと周辺機器を区別し、周辺機器の距離情報でロボットの干渉領域を自動的に設定するロボットの干渉領域設定装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１及び特許文献２に開示されている各技術も含め、固定的な干渉対象物に対しては、迅速かつ正確に対処してアームを干渉させることなく駆動可能である。しかし、毎回、載置位置にズレが発生するコンテナ、及び、毎回異なる配置位置となるバラ置きの部品等の場合、正確な干渉領域を高速に算出してアームを駆動することは困難となっていた。
【０００７】
すなわち、このような場合、固定的な干渉領域では、アームの干渉を防止するのは困難となる。また、干渉対象物の予測される移動分をマージンとして付加した干渉領域に基づいてアームを駆動制御しても、不正確な干渉領域でアームを駆動していることと同じであるため、部品の取り残し等の不都合を生ずる。
【０００８】
また、上述の干渉の判定以外にも、実空間上の対象物に対する評価（対象物同士の重なりの判定や、対象物の欠陥判定など）を、従前より高速かつ正確に行うことが求められてきた。
【０００９】
本発明は、上述の課題に鑑みてなされたものであり、高速かつ正確に対象物の評価を可能とすることができるような情報処理装置、情報処理方法、情報処理プログラム、及びシステムの提供を目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、距離画像を受け付ける受付部と、距離画像内の認識対象物を認識する認識部と、認識対象物に関係する関係物の所定の面の情報を、距離画像上の情報へ変換する変換部と、変換された情報に基づいた評価結果を出力する出力部と、を有する。
【発明の効果】
【００１１】
本発明によれば、高速かつ正確に対象物についての評価を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、第１の実施の形態における部品検査システムの斜視図である。
【図２】図２は、第１の実施の形態の部品検査システムの外装カバーを取り外した状態の斜視図である。
【図３】図３は、第１の実施の形態の部品検査システムにおけるピッキングロボットの構成を示す斜視図である。
【図４】図４は、ピッキングロボットのハンド部をワーク吸着部側から見た斜視図である。
【図５】図５は、ワークを保持した状態のハンド部の斜視図である。
【図６】図６は、ハンド部のピッキング姿勢及びワークの受け渡し姿勢を示す図である。
【図７】図７は、ピッキングロボットの主要部分のブロック図である。
【図８】図８は、ピッキングロボットに設けられているステレオカメラの撮像領域を説明するための図である。
【図９】図９は、ステレオカメラによる距離の測定原理を説明するための図である。
【図１０】図１０は、ハンド部のワーク吸着部がワークをピッキングする差異の姿勢を示す図である。
【図１１】図１１は、ワークが載置されるコンテナ（背景）の３Ｄ画像の一例を示す図である。
【図１２】図１２は、ワークが載置されたコンテナの３Ｄ画像の一例を示す図である。
【図１３】図１３は、背景及びワークの両方が写っている３Ｄ画像から背景の３Ｄ画像を除去することで得られたワークの３Ｄ画像を示す図である。
【図１４】図１４は、背景及びワークの両方が写っている３Ｄ画像から背景の３Ｄ画像を除去することで得られたワークの３Ｄ画像に、ハンド部のワーク吸着部を描画した図である。
【図１５】図１５は、ワークとハンド部のワーク吸着部との干渉を示す図である。
【図１６】図１６は、ワーク吸着部における、ステレオカメラに近い面を、対象物との干渉を判定する面として用いる比較例を説明するための図である。
【図１７】図１７は、第１の実施の形態の部品検査システムにおいて、ワーク吸着部の、ステレオカメラに遠い面を用いて行う干渉判定を説明するための図である。
【図１８】図１８は、ロボット制御部が記憶部に記憶されている干渉判定プログラムを実行することで実現される各機能の機能ブロック図である。
【図１９】図１９は、ロボット制御部における干渉判定動作の流れを示すフローチャートである。
【図２０】図２０は、ワークが載置されたコンテナの３Ｄ画像の一例を示す図である。
【図２１】図２１は、ワークが載置されたコンテナの各位置の表面と、ステレオカメラとの間の距離を示す距離値を説明するための図である。
【図２２】図２２は、第２の実施の形態における部品検査システムにおける、ロボット制御部の重なり判定動作の流れを示すフローチャートである。
【図２３】図２３は、コンテナ内において、ワークが重なっている状態を示す３Ｄ画像の一例を示す図である。
【図２４】図２４は、ロボット制御部が重なり判定を行う際に行うワークの拡張処理を説明するための図である。
【図２５】図２５は、第３の実施の形態における部品検査システムにおける、マニピュレータ装置の姿勢補正動作の流れを示すフローチャートである。
【図２６】図２６は、第３の実施の形態の部品検査システムにおける、マニピュレータ装置の干渉体積の算出動作を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、一例として、実施の形態となる部品検査システムの説明をする。なお、以下、ピッキングロボットを部品検査システムに適用した例について説明するが、インサータシステム等の種々のシステムにおいても応用可能である。
【００１４】
（第１の実施の形態）
まず、図１に、第１の実施の形態の部品検査システムの斜視図を、図２に、第１の実施の形態の部品検査システムの外装カバーを取り外した状態の斜視図を示す。
【００１５】
（部品検査システムの構成）
この部品検査システムは、マニピュレータシステムの一例となるピッキングロボット１００と、外観検査装置２００及びマガジン収容部３００とを有している。ピッキングロボット１００は、山積みトレイ１上にバラ積みされた部品（ワーク）の中から選択されたワークを取り出し、そのワークをパレット２の対応箇所に所定の向きでセットするまでの一連の作業を、マニピュレータ装置１０で自動的に実行する。
【００１６】
なお、第１の実施の形態の部品検査システムの場合、一例ではあるが、ワークは、基板上に実装されるコネクタ類、インダクタ、コンデンサ、抵抗等の回路部品、又は、ＩＣチップ等の電子部品等、基板上に実装される各種部品となっている。
【００１７】
ワークがセットされたパレット２は、パレット移送機構３０によって、ピッキングロボット１００から外観検査装置２００へと移送される。外観検査装置２００は、パレット２を上方から撮像する検査カメラで撮像された撮像画像に基づいて外観検査処理を実行する、例えばパーソナルコンピュータ装置等の外観検査処理装置２０２を有している。
【００１８】
外観検査装置２００は、パレット２上にセットされたワークの向き及び外観上の異常の有無等の外観検査処理を実行する。外観検査処理で異常が検出された場合、外観検査処理装置２０２は、モニタ装置２０１を介して、作業者に異常を報知する。一例ではあるが、外観検査処理装置２０２は、異常が検出されたワークの画像をモニタ装置２０１に表示制御する。作業者は、モニタ装置２０１に表示されたワークの画像を見ることで、ワークの異常を認識できる。
【００１９】
外観検査装置２００の検査を通過したパレット２は、パレット移送機構３０により、マガジン収容部３００へと移送される。マガジン収容部３００には、複数のマガジン３が積み重ねて保管されるマガジン棚３０１が設けられている。外観検査装置２００から移送されたパレット２は、マガジン棚３０１に積み重ねられているマガジン３へ順次収容される。パレット２が収容されたマガジン３の数が所定数となると、作業者は、積み重なった状態のマガジン３をマガジン収容部３００から取り出し、後段の処理装置へと運搬する。
【００２０】
（ピッキングロボットの構成）
次に、図３は、ピッキングロボット１００の構成を示す斜視図である。一例ではあるが、この図３のピッキングロボット１００には、５軸のマニピュレータ装置が設けられている。なお、ピッキングロボット１００に対して、例えば５軸、６軸、７軸または双腕の様なマニピュレータ装置を設けてもよい。
【００２１】
ピッキングロボット１００は、５軸のマニピュレータ装置１０、及び、パレット２を外観検査装置２００へ移送するパレット移送機構３０を有している。また、ピッキングロボット１００は、ステレオカメラ４０、及び、ステレオカメラ４０の撮像領域に向けて撮像用の光を照射する投射装置５０を有している。なお、本実施形態では、３次元データ（距離画像）を取得可能なセンサとしてステレオカメラ４０を利用しているが、位相シフト法等の他の方法を利用するセンサでも良い。また、本実施形態における「画像」の語は、必ずしも伴うものではなく、画素又は画素群単位で情報を有する情報群をいうものとする。
【００２２】
マニピュレータ装置１０は、鉛直方向に平行な回転軸回りに回転する第一関節部１１上に、水平方向に平行な回転軸回りに回転する第二関節部１２が取り付けられている。第二関節部１２には第一アーム部１３の一端が取り付けられており、第一関節部１２が駆動すると、第一アーム部１３が第二関節部１２の回転軸回りに回転する。第一アーム部１３の他端には、第二関節部１２の回転軸に平行な回転軸回りに回転する第三関節部１４が取り付けられている。第三関節部１４には、第二アーム部１６を第二アーム部１６の長手方向に平行な回転軸回りに回転させる第四関節部１５が取り付けられている。
【００２３】
第四関節部１５には第二アーム部１６の一端が取り付けられている。第三関節部１４が駆動すると、第四関節部１５に取り付けられた第二アーム部１６が第三関節部１４の回転軸回りに回転する。また、第四関節部１５が駆動すると、第二アーム部１６が第四関節部１５の回転軸回りに回転する。第二アーム部１６の他端には、第二アーム部１６の長手方向に対して直交する方向に平行な回転軸回りに回転する第五関節部１７が取り付けられている。この第五関節部１７には保持部としてのハンド部２０が取り付けられている。第五関節部１７が駆動すると、ハンド部２０が第五関節部１７の回転軸回りに回転する。
【００２４】
（ハンド部の構成）
図４は、ハンド部２０をワーク吸着部側から見た斜視図である。図５は、ワークＷを保持した状態のハンド部２０の斜視図である。ハンド部２０は、ワークＷをワーク吸着部２１にエア吸引により吸着して保持する。なお、ワークＷを保持できる構成であれば、磁気力等によりワークＷを吸着する構成、把持部でワークＷを把持する構成など、あらゆる保持の構成を採用することができる。
【００２５】
ハンド部２０は、エア吸着用の吸引孔２２が開口したワーク吸着面を有するワーク吸着部２１を備えている。ワーク吸着部２１の内部には、図７に示すワーク吸着用ポンプ２４に接続される接続口２１ｂと各吸引孔２２とを連通させるエア吸引通路が形成されている。ハンド部２０は、ワーク吸着用ポンプ２４を駆動して吸引孔２２に吸い込み気流を生じさせることにより、ワークＷをワーク吸着部２１のワーク吸着面に吸着させてピックアップする。また、ワークＷをリリースする際は、ワーク吸着用ポンプ２４を停止する。これにより、ワーク吸着面からワークＷをリリースすることができる。
【００２６】
また、ハンド部２０のワーク吸着面に対するワークＷの保持位置は、次のようにして位置決めされる。まず、ハンド部２０でワークＷをピックアップする際、ワークＷの側面をワーク吸着面上の規制壁２３に当接させるようにピックアップして保持する。これにより、規制壁２３の壁面法線方向におけるワークＷの保持位置が位置決めされる。また、ワークＷを保持した後、ハンド部２０に設けられているワーク保持位置調整装置２５を駆動して、ワーク吸着面上のワークＷを挟持アーム２５ａ，２５ｂにより挟み込む。これにより、規制壁２３の壁面平行方向におけるワークＷの保持位置が、ワーク吸着面の中央位置に位置決め（センタリング）される。
【００２７】
なお、後述するが、第１の実施の形態の部品検査システムの場合、後述するように山積みトレイ１からワークＷをピックアップする際に、そのワークＷの位置及び姿勢等を高精度に検出可能となっている。このため、ワークＷをピックアップする時点で位置決めを完了させることができる。従って、ハンド部２０に対するワークＷの保持位置を調整する調整部材（規制壁２３、ワーク保持位置調整装置２５等）は、省略してもよい。
【００２８】
また、ハンド部２０には、ワーク吸着部２１をハンド部２０上の回転軸２１ａの回りで回転させるハンド回転機構２６が設けられている。ハンド回転機構２６を駆動させることにより、ハンド部２０に保持されているワークＷの姿勢を、図６（ａ）に示すピッキング姿勢から、図６（ｂ）に示す受け渡し姿勢へと変化させることができる。ここでいうピッキング姿勢とは、マニピュレータ装置１０が各関節部１１，１２，１４，１５，１７を駆動して、ハンド部２０のワーク吸着部２１でワークＷをピックアップして保持するための姿勢である。また、受け渡し姿勢とは、各関節部１１，１２，１４，１５，１７の駆動によりパレット２の対応箇所へワークＷをセットする（受け渡す）位置にハンド部２０を移動させたときにワーク吸着部２１に保持されたワークＷの向きが所定の向きとなる姿勢である。
【００２９】
また、マニピュレータ装置１０は、各関節部１１，１２，１４，１５，１７を駆動することにより、ハンド回転機構２６を用いることなく、ハンド部２０に保持されているワークＷの姿勢を、図６（ａ）に示すピッキング姿勢から図６（ｂ）に示す受け渡し姿勢へと変化させることが可能となっている。後述するが、このようなワークＷの姿勢変化は、マニピュレータ装置１０の周囲に存在する物体との干渉を回避するための演算を行い、この演算結果に基づいて、各関節部１１，１２，１４，１５，１７を駆動することで実現される。
【００３０】
（ピッキングロボットの回路構成）
図７は、ピッキングロボット１００の主要部のブロック図である。ピッキングロボット１００は、各関節部１１，１２，１４，１５，１７をそれぞれ駆動する関節駆動装置５０１〜５０５、ワーク吸着用ポンプ２４、ワーク保持位置調整装置２５、ハンド回転機構２６、パレット移送機構３０、ステレオカメラ４０、及び、投射装置５０等を制御するロボット制御部５００を備えている。
【００３１】
ロボット制御部５００は、ＣＰＵ等の演算処理部と、演算処理部で用いるデータ等を一時的に保持するＲＡＭ等の一時記憶部等を有している。ロボット制御部５００は、部品検査システム全体を上位で制御しているシステム制御部６００からの制御命令を受けて、各種制御を実行する。ロボット制御部５００の演算処理部で実行される各種プログラムは、記憶部５０６に記憶されている。具体的には、記憶部５０６には、ピッキングロボット１００におけるマニピュレータ装置１０、ステレオカメラ４０、投射装置５０等を制御するマニピュレータ制御プログラムが記憶されている。また、記憶部５０６には、干渉判定プログラム（情報処理プログラムの一例）が記憶されている。後述するが、ロボット制御部５００は、記憶部５０６に記憶された干渉判定プログラムを実行することで、マニピュレータ装置１０と周囲の干渉対象物との干渉の有無を判定して干渉領域を設定し、この干渉領域に基づいて、周囲の干渉対象物と干渉しないように、マニピュレータ装置１０を駆動制御する。
【００３２】
ピッキングロボット１００の内部に形成されている処理空間の上部には、ステレオカメラ４０と投射装置５０が設けられている。投射装置５０は、処理空間内の下部に配置されている山積みトレイ１へ上方から撮像用の光を照射する。ステレオカメラ４０は、山積みトレイ１上のワークＷ及び一時載置トレイ４上のワークＷを上方から撮像する。
【００３３】
図８は、ステレオカメラ４０の撮像領域を示す図である。ステレオカメラ４０は、少なくとも、基準画像を撮像する基準カメラ４０Ａと比較画像を撮像する比較カメラ４０Ｂの２つのカメラ（撮像部）により、山積みトレイ１上の複数のワークＷを、異なる複数の地点から撮像して、基準画像と比較画像を得る。そして、基準画像と比較画像との視差情報から、三角測量の原理に基づき、山積みトレイ１に山積みされた複数のワークＷの表面上の各地点までの距離を導出し、その距離（視差値）に応じた画素値をもつ視差画像（距離画像）の情報（三次元情報）を生成する。ステレオカメラ４０で得られる視差画像情報から、山積みトレイ１の上方から視認できるいくつかのワークＷの三次元形状データを取得することができる。
【００３４】
図９は、ステレオカメラ４０による距離の測定原理を説明する図である。ステレオカメラ４０の基準カメラ４０Ａと比較カメラ４０Ｂは、それぞれ、画像センサ４１Ａ，４１Ｂ及びレンズ４２Ａ，４２Ｂをそれぞれ備えている。基準カメラ４０Ａで撮像された基準画像と比較カメラ４０Ｂで撮像された比較画像には、撮像対象物であるワークＷ上の同一地点Ｗｏが、各カメラ４０Ａ，４０Ｂの画像センサ４１Ａ，４１Ｂ上の異なる位置に結像される。画像センサ４１Ａ，４１Ｂ上での結像位置の差（視差）を「ｄ」とし、これらのカメラ４０Ａ，４０Ｂ間の距離を「Ｂ」とし、各カメラ４０Ａ，４０Ｂの焦点距離を「ｆ」としたとき、画像センサ４１Ａ，４１Ｂのセンサ面から測定地点Ｗｏまでの距離「Ｚ」は、「Ｚ＝（Ｂ×ｆ）／ｄ」の演算式に基づいて算出できる。Ｂとｆは予め決まっているため、基準画像と比較画像から視差ｄを算出することにより、ワークＷ上の各地点までの距離を算出することができる。
【００３５】
（干渉判定動作の概要）
次に、このような第１の実施の形態の部品検査システムにおける干渉判定動作の概要を説明する。上述のように、第１の実施の形態の部品検査システムは、山積みトレイ１上にバラ積みされた複数のワークＷを、ハンド部２０のワーク吸着部２１でエア吸引することで吸着させてピッキングする。この場合、バラ積みされた複数のワークＷの位置及び姿勢は、図１０に示すようにランダムとなる。このため、ワークＷをピッキングする際、ワークＷの位置及び姿勢に応じたマニピュレータ装置１０等を移動制御及び回転制御、場合によっては傾き制御が必要となる。しかし、このような移動制御等の際に、マニピュレータ装置１０が山積みトレイ１、他のワークＷ又は周辺機器と干渉するおそれがある。第１の実施の形態の部品検査システムは、以下のようにして、マニピュレータ装置１０の干渉を防止するようになっている。
【００３６】
まず、第１の実施の形態の部品検査システムは、例えばピッキングロボット１００の内部であるワークスペースを、ステレオカメラ４０で撮像することで得た３次元画像（３Ｄ画像）に基づいて、マニピュレータ装置１０の干渉判定を行う。
【００３７】
「干渉判定」は、物理的な位置及び形状が分からない対象物（未知の対象物）の３Ｄ画像を用いて行う。このため、既知の対象物及び未知の対象物の両方が写っている３Ｄ画像から、既知の対象物を取り除くために、既知の対象物のみが映っている「背景」の３Ｄ画像をステレオカメラ４０で撮像する。図１１に示す３Ｄ画像が、「背景」の３Ｄ画像の一例である。これに対して、図１２は、既知の対象物及び未知の対象物の両方が写っている３Ｄ画像の一例である。この図１２の例の３Ｄ画像の場合、背景と共に、３つのワークＷが写っている。なお、ここでいう「背景」は、ワークＷが収容されているコンテナ等である。
【００３８】
このような既知の対象物（背景）及び未知の対象物（ワークＷ）の両方が写っている３Ｄ画像から図１１に示した背景の３Ｄ画像を除去する。図１３は、背景及びワークＷの両方が写っている３Ｄ画像から背景の３Ｄ画像を除去することで得られた、ワークＷの３Ｄ画像である。ロボット制御部５００は、このように背景を除去した３Ｄ画像に基づいて「干渉判定」を行う。背景及びワークＷの両方が写っている３Ｄ画像には、多少のノイズが含まれているが、この両方が写っている３Ｄ画像から背景の画像（背景に相当する画像）を除去することで、背景の画像と共に多くのノイズも除去することができる。従って、ノイズの少ない３Ｄ画像で、より正確な「干渉判定」を可能とすることができる。
【００３９】
もう少し詳しく説明すると、ロボット制御部５００は、「干渉判定」において、ランダムに載置されたワークＷの３Ｄ画像と、背景の３Ｄ画像との差異を検出する。両者の差異は、ステレオカメラ４０のノイズ、及び、ワークＷの有無である。このため、ロボット制御部５００は、背景及びワークＷの両方が写っている３Ｄ画像からノイズを除去してワークＷを検出する。なお、背景及びその他の干渉の判定に不要な画像は、その画像上の位置が既知であれば、当該既知の位置を干渉判定において非対象とすることを示すマスク画像を予め登録しておくこともできる。このマスク画像を利用することで干渉判定に不要な画像を簡単に除去することができる。
【００４０】
ノイズ除去の方法は何でもよいが、例えば以下の方法が利用できる。すなわち、ロボット制御部５００は、背景を除去した後、３Ｄ画像のサーフェス法線ベクトル（Surface  Normal  Vector）を算出し、同様のサーフェス法線ベクトルが繋がって形成される面の大きさを算出する。この面の大きさが所定の閾値以上である場合、ロボット制御部５００は、その面を対象物と判別する。図１３に示すワークＷの白抜きとして図示されている面は、対象物として判別された面を示している。なお、この図１３は、背景及びワークＷの両方が写っている３Ｄ画像から背景の３Ｄ画像を除去することで得られた、ワークＷの３Ｄ画像である。この図１３の３Ｄ画像において、ワークＷ以外の背景部分は、除去された領域を示している。これに対して、同様のサーフェス法線ベクトルが繋がって形成される面の大きさが所定の閾値未満であった場合、ロボット制御部５００は、その面をノイズと見なして除去する。
【００４１】
次に、ロボット制御部５００は、ピッキング姿勢のハンド部２０のワーク吸着部２１を、背景の３Ｄ画像を除去したワークＷの３Ｄ画像に投影する。具体的には、ロボット制御部５００は、まず、背景の３Ｄ画像（及びノイズ）を除去したワークＷの３Ｄ画像において、ピッキング対象となっているワークＷをピッキングする際に必要となるハンド部２０の姿勢を算出（特定）する。ワークＷは、背景を除去した３Ｄ画像から認識できるため、例えば、認識されたワークＷの一定以上の面積を有する面を抽出し、この面を吸着するようなハンド部２０の姿勢（ワーク吸着部２１の中心座標と向き等）を算出すれば良い。そして、一例ではあるが、この第１の実施の形態の部品検査システムの場合、ハンド部２０の３次元形状を示す情報は、３次元ＣＡＤ（Computer  Aided  Design）データで入力されている。このため、ロボット制御部５００は、ワークＷをピッキングする姿勢に基づき、ハンド部２０のワーク吸着部２１の３次元ＣＡＤ（Computer  Aided  Design）データを、所定の変換関数（投影関数）を用いて３Ｄ画像データに変換処理する。そして、ロボット制御部５００は、この変換処理により生成したワーク吸着部２１の３Ｄ画像を、例えば図１４に示すようにワークＷの３Ｄ画像に重畳（合成）して出力する。なお、この図１４の例は、ワーク吸着部２１でワークＷを吸着した状態の３Ｄ画像を示している。なお、ピッキングの姿勢は、１つに限らず、複数特定できる場合は複数の候補姿勢を算出することができる。これにより、後の干渉判定の結果等を考慮して、ピッキングに用いる最適な姿勢を複数の候補姿勢から選択することができる。
【００４２】
ここで、所定の投影関数を用いて３次元ＣＡＤデータを３Ｄ画像データに変換処理することで、ハンド部２０のワーク吸着部２１の距離情報を得ることができる。ロボット制御部５００は、ハンド部２０のワーク吸着部２１の距離情報と、対象物の距離情報とを比較することで、ハンド部２０のワーク吸着部２１が対象物と干渉するか否かを判定する干渉判定を行う。図１５は、ハンド部２０のワーク吸着部２１とワークＷとが、斜線部分で干渉を生ずることを示している。ロボット制御部５００は、このような干渉の有無を、ハンド部２０のワーク吸着部２１の距離情報と、対象物の距離情報とを比較することで判定する。
【００４３】
具体的には、描画対象となるハンド部２０のワーク吸着部２１のＣＡＤデータモデルの面データを、変換関数Ｔを用いて距離画像に変換して３Ｄ画像に投影する。この際、投影した面の距離と対象物となる３Ｄ画像の距離とを比較する処理を、投影した面の画素毎（もしくは画素群毎）に行う。そして、投影した面の距離が対象物となる３Ｄ画像の距離よりも近い画素を残すように（ステレオカメラ４０側の画素を残すように）描画処理を行う。このような描画処理は、面のノーマルベクトルがステレオカメラ４０に向いているか否かを判別することで、反対側の面の描画処理を省略する手法である、「バックフェース  カリング（Ｂａｃｋｆａｃｅ  Ｃｕｌｌｉｎｇ）手法」を用いることができる。これにより、図１６に斜線で示すように、最終的に、ハンド部２０のワーク吸着部２１の、ステレオカメラ４０（センサ側）に近い面の３Ｄ画像を描画できる。そして、ワーク吸着部２１を構成する画素とワークＷの画素の重なり状態を判定することで、干渉しているか否かの判定を行う。
【００４４】
以上の例は、ステレオカメラ４０に近い面の画素を残すかたちで描画処理した３Ｄ画像に基づいて干渉判定を行う例であったが、ステレオカメラ４０に近い面以外の面の３Ｄ画像に基づいて干渉判定を行ってもよい。以下に説明する例は、ステレオカメラ４０から遠い面の画素を残すかたちで描画処理した３Ｄ画像に基づいて干渉判定を行う例である。この場合、第１の実施の形態の部品検査システムは、ロボット制御部５００が、ワーク吸着部２１を３Ｄ画像（元画像）に描画処理する場合、図１７に斜線で示すように、ステレオカメラ４０から遠い面の画素を残すように描画処理を行う。ステレオカメラ４０から遠い面の画素を描画することにより、干渉が生じやすい面の情報を用いて干渉判定ができるので、より正確な干渉判定を行うことができる。
【００４５】
具体的には、ロボット制御部５００は、ワーク吸着部２１のＣＡＤデータを所定の変換関数Ｔを用いて距離画像に変換する。また、ロボット制御部５００は、ワーク吸着部２１の距離画像を元画像に描画する際に、二次元的に同じ位置の画素は、奥行方向の値（距離）が大きな値の画素で上書きするように、ワーク吸着部２１の距離画像を元画像に描画する。すなわち、ロボット制御部５００は、ワーク吸着部２１の距離画像を元画像に描画する際に、ｘ軸及びｙ軸の値が同じ値の画素である二次元的に同じ位置の画素は、奥行方向であるｚ軸の値（距離）が大きな値の画素で上書きするように、ワーク吸着部２１の距離画像を元画像に描画する。これにより、最終的に、ワーク吸着部２１のステレオカメラ４０から遠い面である、ワーク吸着部２１の奥行方向の値が大きい面の画素を残すかたちで、元画像にワーク吸着部２１の距離画像を描画できる。
【００４６】
このような描画手法としては、面のノーマルベクトルがステレオカメラ４０に向いているか否かを判別することで、前面側の面の描画処理を省略する手法である、「フロントフェース  カリング（Ｆｒｏｎｔｆａｃｅ  Ｃｕｌｌｉｎｇ）手法」を用いることができる。これにより、図１７に示すように、ワーク吸着部２１のステレオカメラ４０から遠い面側と干渉物との干渉を検出でき、両者の干渉を示す干渉判定を行うことができる。
【００４７】
また、ロボット制御部５００は、画素毎に干渉の有無を判定するが、「干渉有り」との判定を行った時点で、残りの画素に対する干渉判定処理を中止する構成としてもよい。これにより、最後の画素まで干渉判定処理を行わずとも、干渉している画素を検出した時点で、残りの画素に対する干渉判定処理を打ち切ることができるため、干渉判定結果を短時間で得ることを可能とすることができる。
【００４８】
このような干渉判定処理の流れをまとめると、以下のようになる。
【００４９】
１．変換関数Ｔやワーク吸着部２１のＣＡＤデータ等の各パラメータを設定する。この際、マスク画像が存在すれば登録しておく。
２．背景となる距離画像（及び例えば輝度画像又は色画像等の追加情報）を撮像し、背景登録を行う。このとき、距離画像はステレオカメラ４０の撮像画像から生成される。また、輝度画像や色画像を用いる場合は、取得する画像が少なくて済むため、ステレオカメラ４０の２つのカメラの一方の画像を用いるのが好ましい。
３．背景及びワークＷを含む距離画像（及び例えば輝度画像又は色画像等の追加情報）を撮像する。
４．対象物検出対象データを算出する。具体的には、距離画像（及び例えば輝度画像又は色画像等の追加情報）を利用して、対象画像から背景を削除する。マスク画像が存在する場合、マスク画像で非対象となっている部分を削除する。
５．検出対象から対象物を認識する。これは、例えば３Ｄ画像のサーフェス法線ベクトル（Surface  Normal  Vector）を算出し、同様のサーフェス法線ベクトルが繋がって形成される面の大きさが閾値以上の場合に、その面を「対象物」と判別して抽出する。同様のサーフェス法線ベクトルが繋がって形成される面の大きさが閾値未満の場合は、その面を「ノイズ」と判別して除去する。抽出した結果から対象物を認識する。
６．ハンド部２０のワーク吸着部２１のピッキング候補姿勢毎に、ハンド部２０のワーク吸着部２１の所定の面を３Ｄ画像（距離画像）に描画する。所定の面は、ワーク吸着部２１のステレオカメラ４０から近い面又は遠い面等である。
７．ハンド部２０のワーク吸着部２１のステレオカメラ４０から遠い面等を描画した結果に基づいて、干渉の有無の判定を行う。このとき、例えば認識された「対象物」より遠い描画画素の存在を検出した時点で「干渉有り」の干渉判定を行うことができる。
【００５０】
（干渉判定動作の詳細）
次に、このような干渉判定動作を、さらに詳細に説明する。
【００５１】
（ロボット制御部の機能）
図１８は、図７に示すロボット制御部５００が記憶部５０６に記憶されている干渉判定プログラムを実行することで実現される各機能の機能ブロック図である。この図１８に示すように、ロボット制御部５００は、干渉判定プログラムを実行することで、受付部６０１、認識部６０２、特定部６０３、変換部６０４、及び、出力部６０５の各機能を実現する。
【００５２】
なお、この例では、図１８に示した受付部６０１〜出力部６０５の各機能は、ソフトウェアで実現することとしたが、各機能のうち、一部又は全部を、ＩＣ（Integrated  Circuit）等のハードウェアで実現してもよい。
【００５３】
また、各機能を実現するプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）、ブルーレイディスク（登録商標）、半導体メモリ等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、プログラムは、インターネット等のネットワーク経由でインストールするかたちで提供してもよい。また、プログラムは、携帯端末内のＲＯＭ等に予め組み込んで提供してもよい。
【００５４】
受付部６０１は、ステレオカメラ４０等のセンサからの計測データ（３Ｄ画像）を受け付ける。認識部６０２は、３Ｄ画像に基づいて、ワークＷ等の認証対象物を認識する。特定部６０３は、記憶部５０６に記憶された種々のデータを用い、ワーク吸着部２１がワークＷに関与する際（ピックアップ時）におけるハンド部２０及びワーク吸着部２１等の姿勢（及び移動方向）を特定する。変換部６０４は、記憶部５０６に記憶された種々のデータを用い、特定部６０３により特定されたハンド部２０及びワーク吸着部２１等の姿勢にあわせて、ハンド部２０及びワーク吸着部２１等の所定の面（ステレオカメラ４０から遠い面等）のＣＡＤデータを３Ｄ画像データに変換して、ワークＷ等の３Ｄ画像上に描画処理する。出力部６０５は、３Ｄ画像上において、ハンド部２０及びワーク吸着部２１等の所定の面の３Ｄ画像データと、ワーク等の対象物の３Ｄ画像データとを比較することで、干渉の有無を判定し、この判定結果（評価結果）を出力する。
【００５５】
（干渉判定動作）
図１９は、ロボット制御部５００における干渉判定動作の流れを示すフローチャートである。まず、ステップＳ１では、受付部６０１で、ステレオカメラ４０により撮像された３Ｄ画像（距離画像）を受け付ける。図２０は、ステップＳ１で受け付けた距離画像の一例を示している。この図２０は、ステレオカメラ４０側から見た図であり、３つのワークＷが写っている。距離画像は、各画素又は複数の画素毎に、それぞれステレオカメラ４０からの距離を示す距離情報を有している。このため、各物体（例えば、コンテナ、ワークＷ及び対象物等）の表面に相当する画素を線状に繋げることで、図２１に示すように、各物体の表面とステレオカメラ４０との間の距離（Ｚ軸方向の値）を示す距離値を得ることができる。
【００５６】
次に、ステップＳ２において、認識部６０２が、距離画像中のワークＷを認識し、例えば「ワークの中心座標（x,y,z）」及び「 ワークの向き（rx, ry, rz）」を示す認識結果を生成する。
【００５７】
次に、ステップＳ３において、特定部６０３が、認識部６０２で生成されたワークＷの認識結果に基づいて、例えば「ワーク吸着部２１の中心座標（x,y,z）」及び「ワーク吸着部２１の向き（rx, ry, rz）」を、ワーク吸着部２１の姿勢（ハンド姿勢）として特定する。
【００５８】
次に、ステップＳ４において、変換部６０４が、特定部６０３により特定されたハンド姿勢に対応するワーク吸着部２１のＣＡＤデータを、所定の変換関数Ｔを用いて距離画像（x,y,z）に変換し、図１４等に示したようにステップＳ１で受け付けた距離画像に重畳（合成）して描画する。この際、変換部６０４は、ワーク吸着部２１の各面のうち、図１７を用いて説明したようにステレオカメラ４０（センサ）から遠い面を描画する。
【００５９】
次に、ステップＳ５において、出力部６０５が、図２１に示した対象物の表面の各画素の距離値（Ｚ軸方向の値）を基準値０とし、この基準値０よりも、ワーク吸着部２１のステレオカメラ４０（センサ）から遠い面が遠い位置にあるか又は近い位置にあるかを判別することで、対象物にワーク吸着部２１が干渉しているか否かを判別する。すなわち、出力部６０５は、ワーク吸着部２１のステレオカメラ４０（センサ）から遠い面が、対象物の表面よりも、Ｚ軸方向に沿って奥行側（ステレオカメラ４０から見て反対側）に存在するか又は手前側（ステレオカメラ４０の方向）に存在するかを判別することで、対象物にワーク吸着部２１が干渉しているか否かを判別する。
【００６０】
出力部６０５は、ワーク吸着部２１のステレオカメラ４０（センサ）から遠い面の位置が、対象物の表面と同じ位置、又は、対象物の表面よりも、ステレオカメラ４０から見て奥側であった場合に、ワーク吸着部２１と対象物が干渉していると判定する。すなわち、出力部６０５は、ワーク吸着部２１のステレオカメラ４０（センサ）から遠い面の情報と、対象物の情報から、ワーク吸着部２１と対象物のいずれがステレオカメラ４０から遠いかを評価する。
【００６１】
出力部６０５は、画素毎に順次、このような干渉判定を行う。出力部６０５は、ワーク吸着部２１と対象物が干渉していることを示す画素を検出した時点で、干渉判定動作を中止して、残りの画素に対する干渉判定は行わない。
【００６２】
なお、出力部６０５は、ワーク吸着部２１のステレオカメラ４０（センサ）から遠い面の距離値と、上述の基準値０との差を統計処理して干渉の判定を行ってもよい。例えば、上述の基準値０よりも奥側（ステレオカメラ４０の反対側）に位置することとなる画素が所定数以上の場合に、「干渉有り」との判定を行うようにしてもよい。これにより、ノイズによってたまたま干渉している判定される画素が発生した場合であっても、誤った判定を行わずに済むという効果を奏する。
【００６３】
また、ワーク吸着部２１等の形状は、実物と一致させなくてもよい。例えば、マージンを持たせるように、実物より数ミリメートル程度大きめの形状として干渉判定に用いてもよい。また、ワークＷを把持するグリッパ（ツメ）が設けられている場合、グリッパの形状を太くして干渉判定に用いてもよい。また、ワーク吸着部２１の吸着面が、ピッキングするワークＷと干渉判定されないように、ワーク吸着部２１の先端部を例えば数ミリメートル程度削った形状として干渉判定に用いてもよい。さらに、ピッキング位置におけるワーク吸着部２１の形状と共に、ピッキング位置までのワーク吸着部２１の移動経路及びピッキング後におけるワーク吸着部２１の移動経路（退路）等の空間をも含めた形状で干渉判定を行ってもよい。
【００６４】
（第１の実施の形態の効果）
以上の説明から明らかなように、第１の実施の形態の部品検査システムは、ステレオカメラ４０によりピッキング対象となるワークＷがバラ積みされたコンテナを撮像し、各画素が距離値を有する距離画像を得る。また、距離画像に基づいて、対象物の表面の各画素の距離値（Ｚ軸方向の値）を基準値０に設定する。また、ワークＷをピッキングするワーク吸着部２１の形状を示すＣＡＤデータを取得し、変換関数Ｔを用いてＣＡＤデータを距離画像データに変換し、ワーク吸着部２１のステレオカメラ４０（センサ）から遠い面を、ステレオカメラ４０により撮像された上述の距離画像に重畳させて描画する。そして、ワーク吸着部２１のステレオカメラ４０（センサ）から遠い面が、対象物の基準値０よりも遠い位置にあるか又は近い位置にあるかを判別することで、対象物にワーク吸着部２１が干渉するか否かを判定する。
【００６５】
これにより、事前に対象物の形状等を登録せずとも、例えばバラ積みされたワークＷのように、その都度、位置が異なる対象物にも対応して干渉の有無を正確に判定することができる。また、ワーク吸着部２１のステレオカメラ４０（センサ）から遠い面を、ステレオカメラ４０により撮像された上述の距離画像に重畳させて描画する。このため、干渉判定用に用いる距離画像の生成時間を大幅に短縮化でき、ひいては干渉判定処理の高速化を図ることができる。従って、対象物に干渉しない安全なピッキング軌道を高速に判定して、マニピュレータ装置１０を駆動することができる。
【００６６】
また、干渉判定を高速に行うことができるため、ワークＷのピッキングが完了するまでに要する時間を短縮化できる。または、例えばステレオカメラ４０の撮像画像に基づいて行う対象物の認識処理を、より長い時間をかけて実行することができ、認識率の高い認識結果に基づいて干渉判定を行うことで、より精度の高い干渉判定を行うことができる。
【００６７】
また、従来、アームが干渉領域内に移動する際に、干渉判定し、アームを停止制御するが、第１の実施の形態の部品検査システムは、アームの移動前に干渉判定できるため、干渉が生ずる移動経路は、マニピュレータ装置１０の移動経路に用いない。このため、マニピュレータ装置１０の停止制御によるタイムロスの発生を防止できる。
【００６８】
（第１の実施の形態の変形例）
例えば、所定の大きさのコンテナに、少ない隙間でワークＷを詰める場合、第１の実施の形態で説明した干渉判定処理を行う。すなわち、上述の第１の実施形態において、ハンド部２０のワーク吸着部２１のＣＡＤデータを描画した代わりに、載置対象となるワークＷのＣＡＤデータを用いる。さらに、第１の実施形態において特定したワーク吸着部２１の姿勢の代わりに、載置対象のワークＷの載置姿勢を特定する。これにより、干渉すること無く載置可能なワークＷのプレース位置を選択してワークＷを載置できる。また、特定する載置姿勢を複数とし、それら載置姿勢の候補の各々について、既に載置されたワークＷとの差異（空間、距離）を評価すれば、差異の統計データにより、隙間の大きさを定量化できる。
【００６９】
（第２の実施の形態）
次に、第２の実施の形態の部品検査システムの説明をする。上述の第１の実施の形態は、ワークＷ等の対象物とマニピュレータ装置１０のワーク吸着部２１との干渉の有無を判定する例であった。これに対して、以下に説明する第２の実施の形態は、ワークＷをピッキングする際に、ピッキング動作対象として選択された１個のワークＷと、他のワークＷ等との干渉が生じるかを判定する例である。コンテナ内に、ランダムに載置された複数のワークＷ以外の物体が無ければ、ピッキング対象のワークＷと他のワークＷとの重なりを判定する例とも言える。なお、上述の第１の実施の形態と以下に説明する第２の実施の形態とでは、この点のみが異なる。このため、以下、両者の差異の説明のみ行い、重複説明は省略する。
【００７０】
図２２のフローチャートに、第２の実施の形態の部品検査システムにおけるワークＷの重なり判定処理の流れを示す。この図２２のフローチャートのステップＳ１１及びステップＳ１２の処理は、図１９のフローチャートのステップＳ１及びステップＳ２の各処理に相当する。すなわち、ステレオカメラ４０で撮像された距離画像に基づいて、コンテナにバラ積みされた各ワークを認識すると、処理がステップＳ１３に進む。
【００７１】
ステップＳ１３では、図１８に示す特定部６０３が、認識されたワークの姿勢に応じた取り出し方向（ピッキングする方向）を特定する。ステップＳ１４では、変換部６０４が、ワークＷのＣＡＤデータのステレオカメラ４０で撮像可能な部分（視認可能な部分）を、ステップＳ１３で特定した取り出し方向に沿って拡張した形状モデルを生成する。
【００７２】
すなわち、図２４（ａ）は、ステレオカメラ４０で撮像されたワークＷの距離画像である。これに対して、図２４（ｂ）は、ステップＳ１２で認識されたワークＷの姿勢に対応する、ワークＷのＣＡＤデータのうち、ステレオカメラ４０側から見て、視認可能な部分の形状を示している（実際は一部が遮蔽されている場合がある）。また、図２４（ｂ）に示す点線の矢印は、ステップＳ１３で特定された、ワークＷの姿勢に応じた取り出し方向を示している。このような状態において、変換部６０４は、ステップＳ１４において、図２４（ｃ）に示すようにワークＷのＣＡＤデータの視認可能な部分（即ち、表面）を、ステップＳ１３で特定した取り出し方向に沿って所定分移動することで、ステップＳ１３で特定した取り出し方向に沿ってワークＷの表面形状を拡張した拡張モデルを生成する。
【００７３】
次に、ステップＳ１４において、変換部６０４は、例えば図２３に示すように、表面形状を拡張した拡張モデルにおける、ステレオカメラ４０（センサ）から遠い面を、ステップＳ１で取得した距離画像上に描画処理する。この図２３の例は、４つのワークＷ１〜Ｗ４がコンテナ内にランダムに配置されており、このうち、ワークＷ３の上に、図２３中斜線で示すワークＷ４が重なっている例である。また、変換部６０４は、拡張モデルを描画処理する際に、図２４（ｄ）に示すように、重なっているワークＷから取り出し方向に若干ずらして描画処理する。
【００７４】
出力部６０５は、ステップＳ１５において、描画処理した拡張モデルの各画素とステレオカメラ４０で撮像された距離画像とを照合して、ステレオカメラ４０から見て奥側に存在するか又は手前側に存在するかを判別することで、重なり判定（取り出した場合の干渉判定）を行う。
【００７５】
（第２の実施の形態の効果）
以上の説明から明らかなように、第２の実施の形態の部品検査システムは、認識されたワークＷの「見えるはず」の表面を、ワークＷのＣＡＤデータから計算し、その表面を「取り出し方向」に拡張した拡張モデルを作成する。そして、この拡張モデルを、ステレオカメラ４０から得られた距離画像上に描画処理し、距離画像のワークＷの画素に対して、拡張モデルの画素が、ステレオカメラ４０から見て奥側に位置するか又は手前側に位置するかを判別する。これにより、各ワークの重なり判定を行うことができる。
【００７６】
そして、これにより、ロボット制御部５００が次のピッキング対象を特定する際に、重なりのあるワークＷの優先度を低く、重なりの無いワークＷの優先度を高く設定する事が出来る、すなわち重なりの無いワークＷを優先的にピッキングする事が出来る。重なりのあるワークＷは、把持（例えば吸着）して移動される途中に、その上に重なっているワークＷとの干渉によって落下したり、傷が付いたりする事があるが、本実施形態の部品検査システムにおける干渉判定によれば、ピッキング動作の成功率を高め、ピッキングシステムの１個のワークＷあたりの平均タクトの高速化を実現することが出来る。
【００７７】
なお、この例では、演算により拡張モデルを生成することとしたが、ワークＷのＣＡＤモデルに対するピッキングポイント及び取り出し方向が決まっている場合、事前に拡張モデルを作成して用いてもよい。すなわち、予め定められた情報をもとに拡張モデルを作成することとなる。
【００７８】
（第２の実施の形態の第１の変形例）
認識された姿勢でワークＷを距離画像に描画する際に、ステレオカメラ４０に向いている面（近い面）だけを描画処理する。このとき、実際は一部が遮蔽されていたとしてもワーク全体が認識され得るため、ステレオカメラ４０に近い面全域を描画処理できる。この描画処理したワークＷの距離画像の距離情報の最小値を用いて、距離センサデータとの比較統計データに「形状距離値（描画したワークＷ等の描画対象の距離値）がセンサ距離値（他のワークＷ等の対象物を含むセンサから取得された距離値）より遠い」ことを示すデータを検出した場合に、「他の対象物と重なり有り」との判定を行う。これ以外の場合は、「重なり無し」との判定を行う。なお、比較統計データとは、計測データ（センサから取得されるデータ）と描画データ（記憶部に記憶されたＣＡＤデータ等の形状データ）との比較結果を集計したものをいい、例えば、計測データの距離値と描画データの距離値との差分を閾値と比較し、閾値以下となる値の個数を累積したものをいう。
【００７９】
このような変形例における重なり判定処理の流れは、以下のようになる。まず、ワークＷの形状データを、必要に応じて近似又は簡易化する。次に、ワークＷがバラ積み状態で入っているコンテナの計測データに基づいて、コンテナ及びワークＷの表面を検出し、コンテナ及びワークＷの表面で無い計測データ（即ちノイズ）を除去する。例えば、コンテナ及びワークＷの表面だけを処理対象とすべく、マーキング処理を行うことができる。ここでいうマーキング処理は、処理対象となる画素に処理対象とするためのフラグを立てる処理をいう。
【００８０】
次に、認識されたワークＷのＣＡＤデータの描画処理において、ステレオカメラ４０に向いているワークＷの面だけを処理する（近い面だけを処理）。次に、各描画画素において、描画画素の値マイナス計測距離画像の画素の値を算出して集計し、例えば「０」等の閾値以上の値の個数が所定数以上となった時点で、「重なり有り」との判定結果を出力する。なお、これ以外の場合は、「重なり無し」との判定結果を出力する。
【００８１】
この変形例の場合、ワークＷの取り出し方向を考慮しなくてもよい。すなわち、ステレオカメラ４０から見た状態で遮蔽されているワークＷが存在するか否かのみの判定になるため、ロボット制御部５００の演算負荷を軽減できる。
【００８２】
（第２の実施の形態の第２の変形例）
上述の比較統計データを評価値として用いることで、種々の評価を行うことができる。
例えば、距離センサの計測データと変換関数Ｔが正確である場合、上述の比較統計データに基づいて、理想的なワークＷの形状と実際に計測されたワークＷの形状の差分を定量化ができる。すなわち、ワークＷの理想形に対する差異を認識可能とすることができる。これにより、例えば生産工程において、ワークＷの変形、組み付けミス、部分的な欠陥等の検出が可能である。同様にコンテナに対して詰め込まれたワークＷの変形、詰め込みミスによる誤差、部分的な欠陥及び欠品等に基づいて、コンテナの搬入の可否等を判定できる。なお、比較統計データによらずとも、計測データと描画データの差異（差分等）を算出し、これを評価値として出力してもよい。
【００８３】
（第２の実施の形態の第３の変形例）
距離センサのデータが正確で、形状モデルとして実部品の正確なモデルを使用することを前提とし、センサーデータスペース（計測データ）と形状データスペース（描画データ）の間の変換関数Ｔの精度を定量化できる。ここで、変換関数Ｔには、ワークＷの位置及び角度を示す姿勢データが含まれている。この姿勢データが実部品の姿勢と異なる場合、その誤差が上述の比較統計データに現れる。すなわち、比較統計データにおいて、０以外の値が多くなる（すなわち、差違が大きくなる）。このため、変換関数Ｔに含まれている姿勢データの信頼度を定量化できる。
【００８４】
一方、例えば非線形的な最適化アルゴリズムを用いれば、比較統計データの値が０に近くなるように、変換関数Ｔを調整することで、姿勢パラメータを最適化することができる。これにより、姿勢データを調整することで変換関数Ｔを調整し、描画された形状データ等を計測データと一致させることで、姿勢データの精度を高めることができる。すなわち、姿勢データを最適化することができる。
【００８５】
（第２の実施の形態の第４の変形例）
距離センサの性能を評価するために、撮像環境と適切な対象物が用意されているとする。変換関数Ｔと対象物の形状モデルが正確である場合、上述の比較統計データから「計測データに重畳しているノイズの重畳量」及び「統計的にどの方向にずれているか（システマティック誤差検出）」等の解析を行うことができる。距離センサが調整可能なパラメータを有する場合、このような解析結果に基づいて、「パラメータ調整→計測→解析」の各処理を繰り返し実行することで、最適な距離センサパラメータを自動的に算出することができる。これにより、部品検査システムにおける計測精度の手動調整又は自動調整を可能とすることができる。
【００８６】
（第３の実施の形態）
次に、第３の実施の形態の部品検査システムの説明をする。ワークＷのステレオカメラ４０に向いている面（近い面）の距離値と、ステレオカメラ４０に向いている面に対向する面（遠い面）の距離値を用いれば、マニピュレータ装置１０の干渉領域の体積（干渉体積）の近似値を算出できる。第３の実施の形態の部品検査システムでは、ワークＷの姿勢をずらしながら干渉体積を算出し、各干渉体積の変化量を検出することで、マニピュレータ装置１０の移動経路を修正すべき方向（ワークＷとの干渉を回避可能な方向）を算出する。そして、修正した移動経路に従ってマニピュレータ装置１０を移動制御する。
【００８７】
これにより、例えば非線形的な最適化アルゴリズムとの組み合わせで、自動的にマニピュレータ装置１０の「干渉無し」の姿勢を算出して移動制御できる。なお、上述の各実施の形態と以下に説明する第３の実施の形態とでは、この点のみが異なる。このため、以下、両者の差異の説明のみ行い、重複説明は省略する。
【００８８】
図２５のフローチャートに、第３の実施の形態の部品検査システムにおけるマニピュレータ装置１０の移動経路の修正動作の流れを示す。まず、ステップＳ２１において、ステレオカメラ４０で撮像されたワークＷ及びコンテナの距離画像（計測データ）を取得し、ステップＳ２２において、この距離画像に基づいてワークＷを認識する。
【００８９】
次に、ステップＳ２３において、図１８に示す特定部６０３が、認識されたワークＷの姿勢に対応するマニピュレータ装置１０（ハンド）の姿勢を暫定的に特定する。ステップＳ２４では、変換部６０４が、暫定的に特定したマニピュレータ装置１０の姿勢に基づいて、図２６に示すようにマニピュレータ装置１０のステレオカメラ４０に近い面、及び、ステレオカメラ４０に近い面に対向する面（ステレオカメラ４０から遠い面Ｃ）を、ステップＳ１で取得した距離画像上に描画処理する。図２６の例は、細線で示す面が、マニピュレータ装置１０のステレオカメラ４０に近い面を示している。また、図２６の例は、太線で示す面Ｆが、マニピュレータ装置１０のステレオカメラ４０から遠い面を示している。
【００９０】
次に、ステップＳ２５では、出力部６０５が、マニピュレータ装置１０の干渉体積を算出する。図２６を用いて具体的に説明すると、１画素あたりの実際の面積は、各画素の距離値によって異なる。このため、出力部６０５は、以下の演算を行うことで、１画素に対する面積を算出する。
【００９１】
１画素の面積＝面積ファクタ値×（距離値２）
【００９２】
なお、面積ファクタ値は、ステレオカメラ４０の光学設計値と、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等で形成される各画素の仕様値から算出する。
【００９３】
次に、出力部６０５は、一つの画素に対して、
マニピュレータ装置１０の近い面の距離値をＣ（Ｃｌｏｓｅ）、
マニピュレータ装置１０の遠い面の距離値をＦ（Ｆａｒ）、
計測値の距離値をｚ（計測対象物とステレオカメラ４０との間の距離の値（計測値））、
マニピュレータ装置１０の近い面の進入深さをＰ１＝Ｍａｘ（０，Ｃ−ｚ）、
マニピュレータ装置１０の遠い面の進入深さをＰ２＝Ｍａｘ（０，Ｆ−ｚ）、
進入長さをＬ＝Ｐ２−Ｐ１とし、以下の演算を行うことで、１画素に対する干渉体積（ｖ）を算出する。
【００９４】
ｖ＝Ｌ×１画素の面積
【００９５】
そして、出力部６０５は、各画素の干渉体積を算出すると、この算出した各画素の干渉体積を全て加算処理（積分処理）することで、マニピュレータ装置１０全体の干渉体積を算出する（マニピュレータ装置１０の全体干渉体積＝画素毎の干渉体積の合計）。
【００９６】
このようにマニピュレータ装置１０全体の干渉体積を算出すると、変換部６０４は、図２５のフローチャートのステップＳ２６において、描画したマニピュレータ装置１０を所定方向に所定分、位置をずらして再描画する。そして、このステップＳ２６において、出力部６０５が、位置をずらして再描画されたマニピュレータ装置１０の干渉体積を算出する。変換部６０４及び出力部６０５は、このような位置をずらした再描画、及び、マニピュレータ装置１０の干渉体積の算出を、複数方向に対して行う。これにより、マニピュレータ装置１０における、各方向に対する干渉体積を得ることができる。
【００９７】
次に、出力部６０５は、最初に算出した干渉体積と、各方向における干渉体積の変化量に基づいて、対象物との干渉を発生しない方向を特定する。具体的には、干渉体積は、マニピュレータ装置１０の姿勢のパラメータＸ，Ｙ，Ｚ，ＲＸ，ＲＹ，ＲＺ又はその一部のパラメータ（例えばＸ，Ｙ，Ｚのみ）を用いた多次元関数として表現できる。このため、例えば「最急降下法」、「ニュートン法」又は「ガウス・ニュートン法」等の最適化手法により、非線形的に干渉が発生しないマニピュレータ装置１０の姿勢を検出できる。出力部６０５は、ステップＳ２８において、対象物との干渉を発生しない方向にマニピュレータ装置１０の姿勢を修正するための修正情報を生成する。
【００９８】
次に、出力部６０５は、ステップＳ２９において、干渉体積がゼロ（０）又は計測点（距離画像のｚ）までの最小距離（センサから遠い面と距離画像のｚの差の最小値）が閾値より大きいか否か（完了条件を満たしているか否か）を判別（評価）する。このような完了条件を満たしていない場合（ステップＳ２９：Ｎｏ）、処理がステップＳ２４に戻り、ステップＳ２４〜ステップＳ２９の各処理が繰り返し行われる。これに対して、完了条件を満たしている場合（ステップＳ２９：Ｙｅｓ）、出力部６０５は、ステップＳ３０において、対象物との干渉を発生しない方向にマニピュレータ装置１０の姿勢を修正するための修正情報を出力する。これにより、図２５のフローチャートの全処理が終了する。
【００９９】
図７に示すロボット制御部５００は、修正情報に基づいて、間接駆動装置５０１〜５０５、ワーク保持位置調整装置２５及び回転機構２６等を制御する。これにより、対象物に干渉することなくマニピュレータ装置１０を駆動することができる。
【０１００】
（第３の実施の形態の効果）
以上の説明から明らかなように、第３の実施の形態の部品検査システムは、マニピュレータ装置１０の特定の姿勢に対応する干渉体積を算出すると共に、マニピュレータ装置１０の位置を所定分所定方向に移動し、移動位置毎にマニピュレータ装置１０の干渉体積をそれぞれ算出する。そして、各位置の干渉体積の変化量に基づいて、マニピュレータ装置１０の姿勢を修正する。これにより、対象物との干渉をより正確に防止しながらマニピュレータ装置１０を駆動できる他、上述の各実施の形態と同様の効果を得ることができる。
【０１０１】
最後に、上述の各実施の形態は、一例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施可能である。また、発明の要旨を逸脱しない範囲で、実施の形態に対する種々の省略、置き換え、変更を行うことも可能である。
【０１０２】
例えば、上述の干渉判定手法は、車両等の移動体の衝突防止に用いることができる。すなわち、距離センサが設けられている機器の形状モデル、方向及び速度データを用いて、数ｍｓｅｃの間に移動体が移動する「空間」を算出する。そして、算出した「空間」を形状モデルとして用いて、計測データに対する干渉の有無を判定することで、対象物に対する移動体の衝突の有無を判定する。
【０１０３】
なお、追跡処理により距離センサデータ内の対象物の方向及び速度を検出する距離センサを用いて、数ｍｓｅｃの間の「予測対象物計測データ」を算出して干渉判定（衝突判定）に用いてもよい。また、移動体の移動経路の補正、及び、対象物を回避した移動経路の算出にも用いることができる。
【０１０４】
また、上述のロボット制御部５００としては、ソフトウェアによって各機能を実行するようにプログラムされたプロセッサ、及び、各機能を実行するよう設計されたＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＩＣ（Integrated  Circuit）又は回路モジュールなどのハードウェアを含むものとする。
【０１０５】
また、上述の各実施の形態は、情報処理技術分野における通常の知識を有した技術者であれば、ＡＳＩＣ（Application  Specific  Integrated  Circuits）及び、従来の回路モジュールを接続して構成した装置によって実施することが可能である。
【０１０６】
また、上述の各実施の形態に記載された各機能は、それぞれ、一又は複数の処理回路（Circuit）によって実現してもよい。なお、「処理回路」とは、ソフトウェアによって各機能を実行するようプログラムされたプロセッサ、各機能を実行するように設計されたＡＳＩＣ及び回路モジュール等のハードウェアを含むものとする。
【０１０７】
このような各実施の形態及び各実施の形態の変形例は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【０１０８】
＜付記項＞
上記実施形態では、以下に示すような発明が開示されている。
【０１０９】
[付記項１]
一つ又は複数の画素毎に距離情報を備えた距離画像である元画像を受け付ける受付部と、
前記元画像内のオブジェクトを認識する認識部と、
前記オブジェクトに相当する取得物を取得する取得部の姿勢を特定する特定部と、
特定された姿勢の前記取得部の前記距離画像を生成する生成部と、
前記取得部の前記距離画像を前記元画像上に描画する際に、二次元的に同じ位置の画素は、前記距離情報で示される奥行方向の値が大きい方の画素で上書きすることで、前記取得部における前記奥行方向の値が大きい面の前記距離画像を前記元画像上に描画する描画部と、
前記元画像の各画素の前記距離情報と、描画された前記取得部の前記面の各画素の前記距離情報とを比較し、前記元画像の物体のうち、前記取得部の前記面の画素の距離情報よりも、前記奥行方向の値が大きな距離情報の画素を有する前記物体を、前記取得部と干渉する物体として判定し、この判定結果を出力する出力部と
を有する干渉判定装置。
【０１１０】
[付記項２]
前記元画像は、複数の視点からの視差に基づいて前記オブジェクトとの間の距離を示す距離情報を画素毎に備えた前記元画像を生成するステレオカメラで撮像された前記元画像であり、
前記描画部は、前記取得部の前記距離画像を前記元画像上に描画する際に、前記ステレオカメラとの間の距離が遠い方の面の前記距離画像を前記元画像上に描画すること
を特徴とする付記項１に記載の干渉判定装置。
【０１１１】
[付記項３]
前記元画像に対して描画する前記取得部の描画位置を所定分所定方向に移動させた移動位置毎に、前記取得部の体積を算出する算出部と、
算出された各移動位置の前記体積の変化量に基づいて、前記取得部の移動経路を修正するための修正情報を生成して出力する修正情報生成部と
を有する付記項１又は２に記載の干渉判定装置。
【０１１２】
[付記項４]
受付部が、一つ又は複数の画素毎に距離情報を備えた距離画像である元画像を受け付ける受付ステップと、
認識部が、前記元画像内のオブジェクトを認識する認識ステップと、
特定部が、前記オブジェクトに相当する取得物を取得する取得部の姿勢を特定する特定ステップと、
生成部が、特定された姿勢の前記取得部の前記距離画像を生成する生成ステップと、
描画部が、前記取得部の前記距離画像を前記元画像上に描画する際に、二次元的に同じ位置の画素は、前記距離情報で示される奥行方向の値が大きい方の画素で上書きすることで、前記取得部における前記奥行方向の値が大きい面の前記距離画像を前記元画像上に描画する描画ステップと、
出力部が、前記元画像の各画素の前記距離情報と、描画された前記取得部の前記面の各画素の前記距離情報とを比較し、前記元画像の物体のうち、前記取得部の前記面の画素の距離情報よりも、前記奥行方向の値が大きな距離情報の画素を有する前記物体を、前記取得部と干渉する物体として判定し、この判定結果を出力する出力ステップと
を有する干渉判定方法。
【０１１３】
[付記項５]
コンピュータを、
一つ又は複数の画素毎に距離情報を備えた距離画像である元画像を受け付ける受付部と、
前記元画像内のオブジェクトを認識する認識部と、
前記オブジェクトに相当する取得物を取得する取得部の姿勢を特定する特定部と、
特定された姿勢の前記取得部の前記距離画像を生成する生成部と、
前記取得部の前記距離画像を前記元画像上に描画する際に、二次元的に同じ位置の画素は、前記距離情報で示される奥行方向の値が大きい方の画素で上書きすることで、前記取得部における前記奥行方向の値が大きい面の前記距離画像を前記元画像上に描画する描画部と、
前記元画像の各画素の前記距離情報と、描画された前記取得部の前記面の各画素の前記距離情報とを比較し、前記元画像の物体のうち、前記取得部の前記面の画素の距離情報よりも、前記奥行方向の値が大きな距離情報の画素を有する前記物体を、前記取得部と干渉する物体として判定し、この判定結果を出力する出力部として機能させること
を特徴とする干渉判定プログラム。
【０１１４】
[付記項６]
付記項１から付記項３のうち、いずれか一項に記載の干渉判定装置と、
前記干渉判定装置の干渉の判定結果に基づいて駆動され、取得物を取得して所定の位置まで移動させる取得部と
を有するマニピュレータシステム。
【符号の説明】
【０１１５】
１０  マニピュレータ装置
２０  ハンド部
２１  ワーク吸着部
３０  パレット移送機構
４０  ステレオカメラ
１００  ピッキングロボット
２００  外観検査装置
３００  マガジン収容部
５００  ロボット制御部
５０６  記憶部
６０１  受付部
６０２  認識部
６０３  特定部
６０４  変換部
６０５  出力部
Ｗ  部品（ワーク）
【先行技術文献】
【特許文献】
【０１１６】
【特許文献１】特開２００６−３４６７９０号公報
【特許文献２】特開２０１６−０７８１８４号公報
【図１】
2019016294.tif 000003
【図２】
2019016294.tif 000004
【図３】
2019016294.tif 000005
【図４】
2019016294.tif 000006
【図５】
2019016294.tif 000007
【図６】
2019016294.tif 000008
【図７】
2019016294.tif 000009
【図８】
2019016294.tif 000010
【図９】
2019016294.tif 000011
【図１０】
2019016294.tif 000012
【図１１】
2019016294.tif 000013
【図１２】
2019016294.tif 000014
【図１３】
2019016294.tif 000015
【図１４】
2019016294.tif 000016
【図１５】
2019016294.tif 000017
【図１６】
2019016294.tif 000018
【図１７】
2019016294.tif 000019
【図１８】
2019016294.tif 000020
【図１９】
2019016294.tif 000021
【図２０】
2019016294.tif 000022
【図２１】
2019016294.tif 000023
【図２２】
2019016294.tif 000024
【図２３】
2019016294.tif 000025
【図２４】
2019016294.tif 000026
【図２５】
2019016294.tif 000027
【図２６】
2019016294.tif 000028