(57)【特許請求の範囲】
【請求項１】
対象物体を撮像して画像データを生成する撮像部と、
前記撮像部を可動に支持するロボット本体と、
前記対象物体のリファレンスに対する前記撮像部からの視線方向ごとに、前記視線方向に対する面のテンプレート画像データとロボット座標系における前記面の位置および姿勢を表す情報と前記ロボット座標系における前記撮像部の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、
前記撮像部が生成した前記画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記ロボット座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、
を備え、
前記位置姿勢データ生成部は、
テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部と、前記撮像部が生成した前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成部と、前記特徴データ生成部が生成した前記特徴データと前記テンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第１位置姿勢計算部と、
を備えることを特徴とするロボット装置。
【請求項２】
前記位置姿勢データ生成部は、
前記第１位置姿勢計算部が検出した前記特徴点の位置情報と前記基準面と前記テンプレート情報記憶部に記憶された前記テンプレート情報とに基づいて合成モデル画像データを生成する合成モデル画像生成部と、
前記合成モデル画像生成部が生成した前記合成モデル画像データを、ホモグラフィー行列を用いて射影変換した変換合成モデル画像データと前記画像データとの類似度を計算し、前記類似度が閾値を超えることとなるホモグラフィー行列と前記テンプレート情報とに基づいて前記位置姿勢データを生成する第２位置姿勢計算部と、
を備えることを特徴とする請求項１記載のロボット装置。
【請求項３】
前記位置姿勢データ生成部は、
複数のテンプレート画像データそれぞれについて、該テンプレート画像データを、ホモグラフィー行列を用いて射影変換した変換画像データと前記画像データとの一致度を計算し、前記一致度に基づいて前記対象物体の画像から可視である面を検出する一致度評価部と、
前記一致度評価部が検出した前記可視である面に対応するテンプレート画像データを、ホモグラフィー行列を用いて射影変換した変換画像データと前記画像データとの類似度を計算し、最も高い類似度となる計算結果に対応するホモグラフィー行列と前記テンプレート情報とに基づいて前記位置姿勢データを生成する位置姿勢計算部と、
を備え、
前記位置姿勢データ生成部における前記第１位置姿勢計算部において、前記基準面に対応する類似度が閾値以下である場合に、前記位置姿勢データ生成部を機能させる、
ことを特徴とする請求項１または２記載のロボット装置。
【請求項４】
対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、
所定の視点に基づき得られる画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、
を備え、
前記位置姿勢データ生成部は、
テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部と、
前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成部と、
前記特徴データ生成部が生成した前記特徴データと前記テンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第１位置姿勢計算部と、
を備えることを特徴とする位置姿勢検出装置。
【請求項５】
コンピューターを、
対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、
所定の視点に基づき得られる画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、
として機能させ、
前記位置姿勢データ生成部を、
テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部と、
前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成部と、
前記特徴データ生成部が生成した前記特徴データと前記テンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第１位置姿勢計算部と、
として機能させるための位置姿勢検出プログラム。
【請求項６】
位置姿勢データ生成部が、所定の視点に基づき得られる画像データに含まれる対象物体の画像から可視である面を検出し、対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢検出ステップ、
を有し、
前記位置姿勢データ生成部が、
前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成ステップと、
前記特徴データ生成ステップにおいて生成した前記特徴データと、テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第１位置姿勢計算ステップと、
を有することを特徴とする位置姿勢検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置、位置姿勢検出装置、位置姿勢検出プログラム、および位置姿勢検出方法に関する。
【背景技術】
【０００２】
従来、平面画像により表現された物体の立体空間における位置および姿勢を推定する技術が知られている。例えば、位置および方向の少なくとも一方によって見え方が変化する対象物を精度よく認識する認識装置が知られている（例えば、特許文献１参照）。
この認識装置は、対象物と複数のテンプレート情報それぞれとの類似度に基づいてあらかじめ基準座標系を設定する。そして、この認識装置は、基準座標系の各位置における、類似度が高いほど高い値となる重み係数と類似度とから重み付き類似度を求め、この重み付き類似度を用いて対象物を認識するものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−３０１３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、この認識装置は、特に対象物（例えば、人物の手）の動作を認識することによって非接触で電子機器を操作させることを目的とした装置である。この認識装置に適用された、重み付き類似度に基づいて対象物を認識する方式は、対象物を確率的に認識する方式であるため、大雑把に変化する人物の手や足の動作を認識させること、つまり空間的な認識の幅が比較的広い用途には適している。しかし、例えば、マニピュレーターのビジュアルフィードバック制御では、マニピュレーターの位置および姿勢を高精度に認識する必要があるため、上記の認識装置をロボット装置に適用することができない。なお、ビジュアルフィードバック制御とは、撮像装置等の視覚センサーが取得する視覚情報に基づいてロボット装置の動作、例えばマニピュレーターの位置および姿勢を制御することである。
【０００５】
そこで、本発明は、上記問題を解決するためになされたものであり、平面画像により表現された対象物体の、立体空間における位置および姿勢を高精度に検出する、ロボット装置、位置姿勢検出装置、位置姿勢検出プログラム、および位置姿勢検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
［１］上記の課題を解決するため、本発明の一態様であるロボット装置は、対象物体を撮像して画像データを生成する撮像部と、前記撮像部を可動に支持するロボット本体と、前記対象物体のリファレンスに対する前記撮像部からの視線方向ごとに、前記視線方向に対する面のテンプレート画像データとロボット座標系における前記面の位置および姿勢を表す情報と前記ロボット座標系における前記撮像部の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、前記撮像部が生成した前記画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記ロボット座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部とを備え、前記位置姿勢データ生成部は、テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部と、前記撮像部が生成した前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成部と、前記特徴データ生成部が生成した前記特徴データと前記テンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第１位置姿勢計算部とを備えることを特徴とする。
ここで、ロボット本体は、例えば多関節ロボットである。また、リファレンスは、例えば、対象物体の良品サンプルである。また、視線方向とは、例えば互いに直交する方向であり、互いに直交する６方向でもよいし、これら６方向のうちリファレンスを通常使用の状態で水平面に載置した場合の鉛直下方を除く５方向でもよい。また、位置および姿勢を表す情報は、並進ベクトルおよび回転行列により表現される。
このように構成したことにより、本発明の一態様によれば、対象物体の画像から得られる可視面に対応するテンプレート情報に基づいて対象物体の位置および姿勢を計算するため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
また、本発明の一態様によれば、現視点からの全ての可視面を用いて対象物体の位置および姿勢を得るため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
［２］上記［１］記載のロボット装置において、前記位置姿勢データ生成部は、前記第１位置姿勢計算部が検出した前記特徴点の位置情報と前記基準面と前記テンプレート情報記憶部に記憶された前記テンプレート情報とに基づいて合成モデル画像データを生成する合成モデル画像生成部と、前記合成モデル画像生成部が生成した前記合成モデル画像データを、ホモグラフィー行列を用いて射影変換した変換合成モデル画像データと前記画像データとの類似度を計算し、前記類似度が閾値を超えることとなるホモグラフィー行列と前記テンプレート情報とに基づいて前記位置姿勢データを生成する第２位置姿勢計算部と、を備えることを特徴とする。
［３］上記［１］記載のロボット装置において、前記位置姿勢データ生成部は、複数のテンプレート画像データそれぞれについて、該テンプレート画像データを、ホモグラフィー行列を用いて射影変換した変換画像データと前記画像データとの一致度を計算し、前記一致度に基づいて前記対象物体の画像から可視である面を検出する一致度評価部と、前記一致度評価部が検出した前記可視である面に対応するテンプレート画像データを、ホモグラフィー行列を用いて射影変換した変換画像データと前記画像データとの類似度を計算し、最も高い類似度となる計算結果に対応するホモグラフィー行列と前記テンプレート情報とに基づいて前記位置姿勢データを生成する位置姿勢計算部と、を備え、前記位置姿勢データ生成部における前記第１位置姿勢計算部において、前記基準面に対応する類似度が閾値以下である場合に、前記位置姿勢データ生成部を機能させる、ことを特徴とする。
ここで、一致度は、例えば、画像データと変換画像データとの輝度差の絶対値の総和や輝度差の２乗和である。また、類似度は、例えば、正規化相互相関である。
このように構成したことにより、本発明の一態様によれば、可視面の中で信頼性が最も高い面に基づいて対象物体の位置および姿勢を高精度に得るため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。また、本発明の一態様によれば、可視面のうち代表する一面のみを使用して位置および姿勢を求めるため、計算にかかる負荷は軽い。
また、本発明の一態様によれば、基準面の歪みや変形の度合いが比較的低い場合は、一面に基づく処理を行わせ、一方、基準面の歪みや変形の度合いが比較的高い場合は、可視面全てに基づく処理を行わせることができる。つまり、可視面の状態（例えば、歪みや変形）に応じて、一面に基づく対象物体の位置および姿勢の検出処理と、可視面全てに基づく検出処理とを切り替えることができ、視点による検出精度のばらつきを抑えることができる。
【０００７】
［４］上記の課題を解決するため、本発明の一態様である位置姿勢検出装置は、対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、所定の視点に基づき得られる画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、を備え、前記位置姿勢データ生成部は、テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部と、前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成部と、前記特徴データ生成部が生成した前記特徴データと前記テンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第１位置姿勢計算部と、を備えることを特徴とする。
このように構成したことにより、本発明の一態様によれば、対象物体の画像から得られる可視面に対応するテンプレート情報に基づいて対象物体の位置および姿勢を計算するため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
【０００８】
［５］上記の課題を解決するため、本発明の一態様である位置姿勢検出プログラムは、コンピューターを、対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、所定の視点に基づき得られる画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、として機能させ、前記位置姿勢データ生成部を、テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部と、前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成部と、前記特徴データ生成部が生成した前記特徴データと前記テンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第１位置姿勢計算部と、として機能させる。
【０００９】
［６］上記の課題を解決するため、本発明の一態様である位置姿勢検出方法は、位置姿勢データ生成部が、所定の視点に基づき得られる画像データに含まれる対象物体の画像から可視である面を検出し、対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢検出ステップ、を有し、前記位置姿勢データ生成部が、前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成ステップと、前記特徴データ生成ステップにおいて生成した前記特徴データと、テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第１位置姿勢計算ステップと、を有することを特徴とする。
【００１０】
よって、本発明の各態様によれば、平面画像により表現された対象物体の、立体空間における位置および姿勢を、高精度に検出することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態であるロボット装置を適用した検査システムにおけるロボットと対象物体との概略の外観図である。
【図２】同実施形態であるロボット装置を適用した検査システムの概略の機能構成を表すブロック図である。
【図３】同実施形態における位置姿勢検出装置の機能構成を表すブロック図である。
【図４】一面分のテンプレート位置姿勢データを表す概念図である。
【図５】対応テーブルのデータ構成を表す図である。
【図６】同実施形態における検査システムの外観検査処理の手順を表すフローチャートである。
【図７】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【図８】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【図９】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【図１０】同実施形態において、位置姿勢計算部による処理の一部の内容を模式的に表した図である。
【図１１】本発明の第２実施形態であるロボット装置を適用した検査システムの概略の機能構成を表すブロック図である。
【図１２】同実施形態における位置姿勢検出装置の機能構成を表すブロック図である。
【図１３】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【図１４】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について、図面を参照して詳細に説明する。
［第１の実施の形態］
図１は、本発明の第１実施形態であるロボット装置を適用した検査システムにおけるロボットと対象物体との概略の外観図である。図１に示すように、ロボット１０は、ロボット本体１２に撮像装置（撮像部）１１が設けられて構成される。
【００１３】
ロボット本体１２は、撮像装置１１を可動に支持する。具体的には、ロボット本体１２は、地面に固定された支持台１２ａと、旋回可能および屈伸可能に支持台１２ａに連結されたアーム部１２ｂと、回動可能および首振り可能にアーム部１２ｂに連結されたハンド部１２ｃとを含んで構成される。ロボット本体１２は、例えば６軸の垂直多関節ロボットであり、支持台１２ａとアーム部１２ｂとハンド部１２ｃとの連係した動作によって６軸の自由度を有し、撮像部１１の位置および向きを三次元空間内で自在に変更することができる。
【００１４】
なお、ロボット本体１２は、撮像装置１１、工具、部品等を作業目的に応じて持ち替えるように構成してもよい。また、ロボット本体１２の自由度は６軸によるものに限られない。具体的には、例えばロボット本体１２は、７軸による自由度を有するものであってもよい。また、支持台１２ａは、壁や天井等、地面に対して固定された場所に設置してもよい。また、ロボット本体１２は、撮像装置１１を支持するアーム部１２ｂおよびハンド部１２ｃの他に、工具や部品を支持する図示しないアーム部およびハンド部を備え、これら複数のアーム部およびハンド部を独立的にまたは連動させて動かす構成としてもよい。
【００１５】
図１に示すように、ハンド部１２ｃ先端の可動範囲内には、外観検査の検査対象物体である対象物体５が図示しない台上に載置されている。
本実施形態における検査システムは、対象物体５の外観を観察して、検査部位の状態を検査する装置である。
【００１６】
図２は、本実施形態であるロボット装置を適用した検査システムの概略の機能構成を表すブロック図である。図２に示すように、検査システム１は、ロボット１０と、位置姿勢検出装置２０と、検査装置３０と、ロボット制御装置４０とを備える。
ロボット１０は、図１にも示したように、撮像装置１１とロボット本体１２とを備える。
【００１７】
撮像装置１１は、静止画像および動画像を選択的に撮像可能なカメラ装置である。撮像装置１１は、検査装置３０から供給される静止画撮影要求信号にしたがって対象物体５を静止画撮影し、その静止画像のデータである画像データを出力する。また、撮像装置１１は、検査装置３０から供給される動画撮影開始要求信号にしたがって、例えば３０フレーム／秒（ｆｐｓ；ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）のフレームレートで対象物体５を動画撮影し、その動画像のデータである画像データを連続して出力する。また、撮像装置１１は、制御装置３０から供給される動画撮影停止要求信号にしたがって、動画像の撮影動作を停止する。
ロボット本体１２は、前述したように、取り付けられた撮像装置１１を三次元空間内で移動させるための装置である。
【００１８】
位置姿勢検出装置２０は、撮像装置１１から供給される静止画像の画像データを取り込み、この画像データに含まれる対象物体５の平面画像（対象物体画像）に基づいて三次元空間における対象物体５の位置および姿勢を計算し、その位置姿勢データを検査装置３０に供給する。本実施形態における三次元空間は、基準座標系であるロボット座標系による三次元空間である。位置姿勢検出装置２０の詳細な構成については後述する。
【００１９】
本実施形態であるロボット装置は、ロボット１０と位置姿勢検出装置２０とを含んで構成される。
【００２０】
検査装置３０は、位置姿勢検出装置２０から位置姿勢データを取得する際には、撮像装置１１に対して静止画撮影要求信号を送信する。また、検査装置３０は、外観検査処理の実行においては、撮像装置１１に対して動画撮影開始要求信号および動画撮影停止要求信号を送信する。
検査装置３０は、位置姿勢検出装置２０から供給される位置姿勢データを取り込んで、対象物体５のロボット座標系の三次元空間における位置および姿勢を管理する。また、検査装置３０は、撮像装置１１から供給される動画像の画像データを順次または複数フレームおきに取り込み、公知のターゲットトラッキング処理にしたがってロボット本体１２の姿勢を制御するためのロボット制御コマンドを生成し、このロボット制御コマンドをロボット制御装置４０に供給する。
検査処理３０は、画像データに含まれる対象物体画像について外観検査処理を実行する。外観検査処理は、例えば、公知技術であるテンプレートマッチング処理によって外観の異常等を検出する処理である。
【００２１】
ロボット制御装置４０は、検査装置３０から供給されるロボット制御コマンドを取り込み、このロボット制御コマンドに基づいてロボット本体１２の姿勢、つまり撮像装置１１の位置および姿勢を制御する。
【００２２】
図３は、位置姿勢検出装置２０の機能構成を表すブロック図である。図３に示すように、位置姿勢検出装置２０は、画像データ取得部２０１と、画像データ記憶部２０２と、テンプレート情報記憶部２０３と、一致度評価部２０４と、対応テーブル記憶部２０５と、位置姿勢計算部２０６とを備える。
なお、テンプレート情報記憶部２０３と、一致度評価部２０４と、対応テーブル記憶部２０５と、位置姿勢計算部２０６とは、位置姿勢データ生成部である。
【００２３】
画像データ取得部２０１は、ロボット１０の撮像装置１１から供給される静止画像の画像データを取り込み、画像データ記憶部２０２に記憶させる。
画像データ記憶部２０２は、画像データ取得部２０１が取り込んだ画像データを記憶する。
【００２４】
テンプレート情報記憶部２０３は、対象物体５のリファレンスについてのテンプレート情報をあらかじめ記憶する。リファレンスは、例えば、対象物体５の良品サンプルであり、その外観に傷や欠品等の異常がない状態のものである。テンプレート情報は、撮像装置１１が、複数の視線方向それぞれからリファレンスを撮像して得た複数のテンプレート画像データと、複数のテンプレート画像それぞれについてのテンプレート位置姿勢データとを含む。複数の視線方向は、例えば互いに直交する方向であり、互いに直交する６方向でもよいし、これら６方向のうちリファレンスを通常使用の状態で水平面に載置した場合の鉛直下方を除く５方向でもよい。この鉛直下方を除くことにより、リファレンスの底面側のテンプレート画像を省略することができる。テンプレート位置姿勢データは、面の位置および姿勢を表す情報と、リファレンスの基準点（原点）と面との相対的な位置および姿勢を表す情報と、撮像装置１１の位置および姿勢を表す情報と、撮像装置１１と面との相対的な位置および姿勢を表す情報とを含む。
【００２５】
なお、撮像装置１１と面との相対的な位置および姿勢を表す情報は、あらかじめ記憶しておくのではなく、例えば一致度評価部２０４が、面の位置および姿勢を表す情報と撮像装置１１の位置および姿勢を表す情報とから計算して求めるようにしてもよい。また、同様に、リファレンスの基準点（原点）と面との相対的な位置および姿勢を表す情報も計算して求めるようにしてもよい。
【００２６】
テンプレート位置姿勢データについて詳しく説明する。
図４は、一面分のテンプレート位置姿勢データを表す概念図である。図４は、互いに直交する６方向のうち１方向（上方側）から対象物体５のリファレンスを撮像する場合を示している。
図４において、Σは、基準座標系であるロボット座標系（ＸＹＺ座標系）を表す。Ｐ１は、第１のテンプレート画像に対応する第１の面を示す。ΣＣ１は、第１の面Ｐ１を撮像する場合の、撮像装置１１のカメラ座標系（ＸＣ１ＹＣ１ＺＣ１座標系）を表す。カメラ座標系ΣＣ１の原点Ｏ（オー）Ｃ１は、第１の面Ｐ１を撮像する撮像装置１１の光軸に貫かれる点である。ΣＯｂｊは、リファレンスに対して設けたオブジェクト座標系（ＸＯｂｊＹＯｂｊＺＯｂｊ座標系）を表す。例えば、ΣＯｂｊは、リファレンスの一つの角（頂点）に原点Ｏ（オー）Ｏｂｊを一致させて設けられる。ΣＳ１は、第１の面Ｐ１に原点Ｏ（オー）Ｓ１が含まれるように設けられた座標系（ＸＳ１ＹＳ１ＺＳ１座標系）を表す。
【００２７】
また、図４において、ｔ（ボールド体）Ｓ１およびＲ（ボールド体）Ｓ１は、ロボット座標系Σの原点Ｏから第１の面Ｐ１の座標系ΣＳ１の原点ＯＳ１に対する並進ベクトルおよび回転行列である。なお、“（ボールド体）”との記載は、その直前の文字がボールド体で表されることを示し、その文字がベクトルまたは行列であることを意味する。Δｔ（ボールド体）Ｓ１ＯｂｊおよびΔＲ（ボールド体）Ｓ１Ｏｂｊは、座標系ΣＳ１の原点ＯＳ１からオブジェクト座標系ΣＯｂｊの原点ＯＯｂｊに対する並進ベクトルおよび回転行列である。ｔ（ボールド体）Ｃ１およびＲ（ボールド体）Ｃ１は、ロボット座標系Σの原点Ｏからカメラ座標系ΣＣ１の原点ＯＣ１に対する並進ベクトルおよび回転行列である。Δｔ（ボールド体）Ｃ１Ｓ１およびΔＲ（ボールド体）Ｃ１Ｓ１は、カメラ座標系ΣＣ１の原点ＯＣ１から座標系ΣＳ１の原点ＯＳ１に対する並進ベクトルおよび回転行列である。
【００２８】
テンプレート情報記憶部２０３は、例えば６面分のテンプレート情報を記憶する場合、６面分のテンプレート画像データとテンプレート位置姿勢データとを記憶する。具体的には、テンプレート情報記憶部２０３は、面Ｐｎ（添字ｎは、６以下の正整数。以下同様。）に対応する第ｎのテンプレート画像データを記憶する。また、テンプレート情報記憶部２０３は、面の位置および姿勢を表す情報として、並進ベクトルｔ（ボールド体）Ｓｎおよび回転行列Ｒ（ボールド体）Ｓｎを記憶する。また、テンプレート情報記憶部２０３は、リファレンスの基準点（原点）と面との相対的な位置および姿勢を表す情報として、並進ベクトルΔｔ（ボールド体）ＳｎＯｂｊおよび回転行列ΔＲ（ボールド体）ＳｎＯｂｊを記憶する。また、テンプレート情報記憶部２０３は、撮像装置１１の位置および姿勢を表す情報として、並進ベクトルｔ（ボールド体）Ｃｎおよび回転行列Ｒ（ボールド体）Ｃｎを記憶する。また、テンプレート情報記憶部２０３は、撮像装置１１と面との相対的な位置および姿勢を表す情報として、並進ベクトルΔｔ（ボールド体）ＣｎＳｎおよび回転行列ΔＲ（ボールド体）ＣｎＳｎを記憶する。
【００２９】
図３の説明に戻り、一致度評価部２０４は、画像データ記憶部２０２に記憶された画像データと、テンプレート情報記憶部２０３に記憶された全てのテンプレート画像データ（例えば、第１の面Ｐ１から第６の面Ｐ６までに対応する第１〜第６のテンプレート画像データ）とについて、テンプレート画像データごとに、当該テンプレート画像データにおける視線方向を画像データにおける視線方向に変更した画像である変換画像データを生成し、画像データと変換画像データとの一致度を計算して所定基準により評価する。変換画像データは、一致度評価部２０４がテンプレート画像データにホモグラフィー行列を掛け合わせる演算処理を行うことによって得られる。一致度は、一致度評価部２０４が画像データと変換画像データとの画像マッチング処理（パターンマッチング処理）を行うことにより得られる。この一致度は、例えば、画像データと変換画像データとの輝度差の絶対値の総和や輝度差の２乗和である。
【００３０】
一致度評価部２０４は、一致度が閾値を超える場合に、変換画像データが有効であるとの評価結果を出力し、一致度が閾値以下である場合に、変換画像データが無効であるとの評価結果を出力する。有効および無効は、例えば、面の可視および非可視を示す。例えば、一致度評価部２０４は、一致度の評価結果を有効フラグの状態により表す。具体的には、一致度評価部２０４は、例えば、変換画像データが有効であるとの評価結果を有効フラグ＝“ＯＮ”（“１”）により表し、変換画像データが無効であるとの評価結果を有効フラグ＝“ＯＦＦ”（“０”）により表す。
一致度評価部２０４は、全てのテンプレート画像データについての一致度の評価結果と後述する各種関連情報とを格納した対応テーブルを生成して対応テーブル記憶部２０５に記憶させる。
【００３１】
ここで、ホモグラフィー行列について説明する。三次元空間における撮像装置の座標系をＦ＊とし、この撮像装置が任意の点Ａを撮像して得る画像における点Ａの像をｐ（ボールド体）＊＝［ｕ＊  ｖ＊  １］Ｔとする。前記の撮像装置を移動し、その移動先における撮像装置の座標系をＦとし、この撮像装置が前記の点Ａを撮像して得る画像における点Ａの像をｐ（ボールド体）＝［ｕ  ｖ  １］Ｔとする。また、Ｆ＊とＦとの相対距離を表す並進ベクトルをｔ（ボールド体）とし、姿勢変化を表す回転行列をＲ（ボールド体）とする。
【００３２】
点Ａが平面π上に存在するとき、点ｐ（ボールド体）＊と点ｐ（ボールド体）との関係を表す式として下記の式（１）が成立する場合を考える。ただし、ｓは、点Ａと２つの座標系Ｆ＊とＦとの距離の割合で決まる値である。Ｇ（ボールド体）は、ホモグラフィー行列である。
【００３３】
【数１】
0005699697.tif 000002
【００３４】
ホモグラフィー行列Ｇ（ボールド体）は、３行３列の行列であり、下記の式（２）のように表される。
【００３５】
【数２】
0005699697.tif 000003
【００３６】
また、ホモグラフィー行列Ｇ（ボールド体）は、下記の式（３）のように表すことができる。ただし、ｄは、撮像装置と平面πとの間の距離、ｎ（ボールド体）は、平面πの法線ベクトルである。
【００３７】
【数３】
0005699697.tif 000004
【００３８】
ホモグラフィー行列Ｇ（ボールド体）を推定することができれば、並進ベクトルｔ（ボールド体）、回転行列Ｒ（ボールド体）、平面πの法線ベクトルｎ（ボールド体）、および撮像装置と平面πとの間の距離ｄを計算することができる。
【００３９】
平面π上に存在する全ての点における、各点の撮像画像への投影点の座標の組を、式（１）を用いて表すと以下のようになる。まず、値ｓを下記の式（４）のように定義する。
【００４０】
【数４】
0005699697.tif 000005
【００４１】
式（１）および式（４）により、下記の式（５）が成立する。ただし、ｗ（ボールド体）は、ホモグラフィー行列Ｇ（ボールド体）の関数であり、透視投影変換行列である。この透視投影変換行列を用いて点ｐ（ボールド体）＊を対応する点ｐ（ボールド体）に変換することを、透視投影変換と呼ぶ。
【００４２】
【数５】
0005699697.tif 000006
【００４３】
式（５）によれば、平面π上に存在する点については、その平面πのホモグラフィー行列が既知であれば、一方の撮像画像上の点に対して他方の撮像画像上の対応する点を一意に求めることができる。
したがって、ホモグラフィー行列を求めることにより、元画像に対して、注目画像がどれだけ並進し、またどれだけ回転しているかを求めること、言い換えると、注目領域のトラッキングを行うことができる。
【００４４】
次に、一致度評価部２０４が生成する対応テーブルについて説明する。
図５は、対応テーブルのデータ構成を表す図である。図５に示すように、対応テーブルは、「テンプレート画像番号」と、「有効フラグ」と、「マッチング開始位置」と、「ホモグラフィー行列要素」との各項目を対応付けたデータテーブルである。「テンプレート画像番号」は、テンプレート情報記憶部２０３に記憶されたテンプレート画像データを識別する情報の項目である。「有効フラグ」は、一致度の評価結果の項目である。“ＯＮ”（“１”）は、変換画像データが有効であるとの評価結果であり、“ＯＦＦ”（“０”）は、変換画像データが無効であるとの評価結果である。「マッチング開始位置」は、一致度評価部２０４が一致度を評価したときの、画像データ上の画像マッチングの開始位置の項目である。この開始位置は、具体的には座標値であり、例えば、マッチングさせる変換画像データの左上端の位置に対応する画像データの座標値である。「ホモグラフィー行列要素」は、一致度評価部２０４が一致度を評価したときの、ホモグラフィー行列の要素の項目である。
【００４５】
図３の説明に戻り、対応テーブル記憶部２０５は、一致度評価部２０４が新規に生成、または更新した対応テーブルを記憶する。
【００４６】
位置姿勢計算部２０６は、画像データにおける有効な面の中から信頼性が最も高い一面を検出し、この面に基づき対象物体５の位置および姿勢を求めて位置姿勢データとし、この位置姿勢データを検査装置３０に供給する。具体的には、位置姿勢計算部２０６は、画像データ記憶部２０２から画像データを読み込み、対応テーブル記憶部２０５から対応テーブルを読み込み、テンプレート情報記憶部２０３からテンプレート位置姿勢データを読み込む。そして、位置姿勢計算部２０６は、変換画像データが有効であるとの評価結果を示すテンプレート画像データごとに、画像データと変換画像データとの類似度を計算し、最も高い類似度となる面とホモグラフィー行列とを選択する。類似度は、位置姿勢計算部２０６が例えば正規化相互相関（Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）を計算することによって得られる。
【００４７】
なお、位置姿勢計算部２０６は、正規化相互相関以外にも、ＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）やＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）等を計算することによって類似度を求めてもよい。
【００４８】
位置姿勢計算部２０６は、選択したホモグラフィー行列に基づいて、選択した面に対応する座標系の原点から変換画像の座標系の原点に対する並進ベクトルおよび回転行列を計算する。具体的には、位置姿勢計算部２０６は、選択したホモグラフィー行列を特異値分解することによって並進ベクトルおよび回転行列を得る。また、位置姿勢計算部２０６は、撮像装置１１の現在の位置および姿勢の情報（並進ベクトルおよび回転行列）を、例えばロボット本体１２またはロボット制御装置４０から取得する。そして、位置姿勢計算部２０６は、ロボット座標系の原点から変換画像の座標系の原点に対する並進ベクトルおよび回転行列を計算し、さらにこれら計算した並進ベクトルおよび回転行列に基づいて、ロボット座標系の原点から対象物体５の原点に対する並進ベクトルおよび回転行列を計算し、この計算結果を位置姿勢データとして検査装置３０に供給する。ここでの計算の方法については後述する。
【００４９】
位置姿勢検出装置２０において、画像データ記憶部２０２と、テンプレート情報記憶部２０３と、対応テーブル記憶部２０５とは、例えば、半導体記憶装置もしくは磁気ハードディスク装置またはこれらの組み合わせにより実現される。
【００５０】
次に、本実施形態における検査システム１の動作を説明する。
図６は、検査システム１の外観検査処理の手順を表すフローチャートである。図６のフローチャートの処理を開始する前に、検査システム１の検査装置３０は、位置姿勢検出装置２０から位置姿勢データを取得するために、撮像装置１１に対して静止画撮影要求信号を送信する。
まず、ステップＳ１において、位置姿勢検出装置２０は、対象物体の位置および姿勢の検出処理を実行し、ロボット座標系における対象物体５の位置および姿勢を表す位置姿勢データを生成し、この位置姿勢データを検査装置３０に供給する。この対象物体の位置および姿勢の検出処理の詳細については後述する。
【００５１】
次に、ステップＳ２において、検査装置３０は、位置姿勢検出装置２０から供給された位置姿勢データを取り込んで記憶する。
次に、検査装置３０は、例えば、オペレーターによる操作によって撮像装置１１の撮影の位置および姿勢の入力を受け付け、その位置および姿勢を指定する内容のロボット制御コマンドを生成し、このロボット制御コマンドをロボット制御部４０に供給する。
次に、ロボット制御部４０は、検査装置３０から供給されたロボット制御コマンドを取り込み、このロボット制御コマンドにしたがってロボット本体１２の動作を制御する。これによって、撮像装置１１は、オペレーターが指定した位置および姿勢に設定される。
【００５２】
次に、ステップＳ３において、検査装置３０は、外観検査処理を実行するために、撮像装置１１に対して動画撮影開始要求信号を送信する。
次に、検査装置３０は、撮像装置１１から供給される動画像の画像データを順次または複数フレームおきに取り込む。
次に、ステップＳ４において、検査装置３０は、テンプレートマッチング処理を実行することによって画像データから対象物体５を検出して外観検査を行う。
次に、検査装置３０は、撮像装置１１に対して動画撮影停止要求信号を送信する。そして、動画撮影停止要求信号を受信した撮像装置１１は、撮像動作を停止する。
【００５３】
次に、位置姿勢検出装置２０が実行する対象物体の位置および姿勢の検出処理について説明する。
図７〜図９は、位置姿勢検出装置２０が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
まず、図７のステップＳ１０１において、画像データ取得部２０１は、ロボット１０の撮像装置１１から供給される静止画像の画像データを取り込み、この画像データを画像データ記憶部２０２に記憶させる。
次に、ステップＳ１０２において、一致度評価部２０４は、画像データ記憶部２０２から画像データを読み込み、テンプレート情報記憶部２０３から一面のテンプレート画像データを読み込む。
【００５４】
次に、ステップＳ１０３において、一致度評価部２０４は、ホモグラフィー行列の要素に初期値を設定する。ここでの初期値は、並進の範囲および回転の範囲それぞれにおける下限または上限を示す値である。
次に、ステップＳ１０４において、一致度評価部２０４は、テンプレート画像データを射影変換して変換画像データを生成する。具体的には、一致度評価部２０４は、テンプレート画像データにホモグラフィー行列を掛け合わせる演算を行なって変換画像データを生成する。
【００５５】
次に、ステップＳ１０５において、一致度評価部２０４は、画像データと変換画像データとの画像マッチング処理についての画像データ上の開始位置に初期値を設定する。例えば、一致度評価部２０４は、画像データの左上の座標値を開始位置に設定する。
次に、ステップＳ１０６において、一致度評価部２０４は、画像データと変換画像データとの画像マッチング処理を行って一致度を計算する。一致度評価部２０４は、例えば、画像データと変換画像データとの輝度差の絶対値の総和または輝度差の２乗和を計算し、この値を一致度とする。
【００５６】
次に、図８のステップＳ１０７において、一致度が閾値を超える場合（Ｓ１０７：ＹＥＳ）はステップＳ１０８の処理に移り、一致度が閾値以下である場合（Ｓ１０７：ＮＯ）はステップＳ１１０の処理に移る。
【００５７】
ステップＳ１０７：ＹＥＳに続くステップＳ１０８において、一致度評価部２０４は、有効フラグ＝“ＯＮ”と、画像マッチングの開始位置と、ホモグラフィー行列の要素とを、当該テンプレート画像データのテンプレート画像番号に対応させて対応テーブルに格納し、この対応テーブルを対応テーブル記憶部２０５に記憶させる。なお、対応テーブル記憶部２０５に対応テーブルがすでに記憶されている場合は、一致度評価部２０４は、対応テーブルにデータを追加する。
【００５８】
ステップＳ１０８またはステップＳ１１２に続くステップＳ１０９において、他のテンプレート画像データがある場合（Ｓ１０９：ＹＥＳ）はステップＳ１０２の処理に戻り、他のテンプレート画像データがない場合（Ｓ１０９：ＮＯ）はステップＳ１１５の処理に移る。
【００５９】
ステップＳ１０７：ＮＯに続くステップＳ１１０において、画像データにおける画像全体のトラッキングが完了した場合（Ｓ１１０：ＹＥＳ）はステップＳ１１１の処理に移り、未完了である場合（Ｓ１１０：ＮＯ）はステップＳ１１３の処理に移る。
【００６０】
ステップＳ１１０：ＹＥＳに続くステップＳ１１１において、ホモグラフィー行列の要素が回転の範囲および並進の範囲それぞれにおける限度値に達している場合（Ｓ１１１：ＹＥＳ）はステップＳ１１２の処理に移り、限度値に達していない場合（Ｓ１１１：ＮＯ）はステップＳ１１４の処理に移る。
【００６１】
ステップＳ１１１：ＹＥＳに続くステップＳ１１２において、一致度評価部２０４は、有効フラグ＝“ＯＦＦ”を当該テンプレート画像データのテンプレート画像番号に対応させて対応テーブルに格納し、この対応テーブルを対応テーブル記憶部２０５に記憶させる。なお、対応テーブル記憶部２０５に対応テーブルがすでに記憶されている場合は、一致度評価部２０４は、対応テーブルにデータを追加する。
次に、ステップＳ１０９の処理に移る。
【００６２】
ステップＳ１１０：ＮＯに続くステップＳ１１３において、一致度評価部２０４は、画像データと変換画像データとの画像マッチング処理についての画像データ上の開始位置を変更する。例えば、一致度評価部２０４は、開始位置を画像の水平方向および垂直方向またはいずれか一方向に一画素分または複数画素数分ずらす。
次に、ステップＳ１０６の処理に戻る。
【００６３】
ステップＳ１１１：ＮＯに続くステップＳ１１４において、一致度評価部２０４は、ホモグラフィー行列の要素を変更する。例えば、一致度評価部２０４は、回転の範囲内および並進の範囲内において回転成分および並進成分が所定ステップ分変更されるよう、ホモグラフィー行列の要素を変更する。
次に、ステップＳ１０４の処理に戻る。
【００６４】
ステップＳ１０９：ＮＯに続く図９のステップＳ１１５において、位置姿勢計算部２０６は、画像データ記憶部２０２から画像データを読み込み、対応テーブル記憶部２０５から対応テーブルを読み込み、テンプレート情報記憶部２０３からテンプレート情報を読み込む。
次に、位置姿勢計算部２０６は、変換画像データが有効であるとの評価結果を示すテンプレート画像データ、すなわち、有効フラグが“ＯＮ”であるテンプレート画像データごとに、画像データと変換画像データとの類似度を計算する。ただし、変換画像データは、位置姿勢計算部２０６が当該テンプレート画像データにホモグラフィー行列を掛け合わせる演算を行うことによって得られる。位置姿勢計算部２０６は、画像データと変換画像データとの類似度を、例えば正規化相互相関を計算することにより得る。
【００６５】
次に、ステップＳ１１６において、位置姿勢計算部２０６は、最も高い類似度となる面とホモグラフィー行列とを選択する。
【００６６】
次に、ステップＳ１１７において、位置姿勢計算部２０６は、選択したホモグラフィー行列に基づいて、選択した面に対応する座標系の原点から変換画像の座標系の原点に対する、並進ベクトルおよび回転行列を計算する。具体的には、位置姿勢計算部２０６は、ホモグラフィー行列を特異値分解して並進ベクトルおよび回転行列を得る。
次に、位置姿勢計算部２０６は、撮像装置１１の現在の位置および姿勢の情報（並進ベクトルおよび回転行列）を、例えばロボット本体１２またはロボット制御装置４０から取得する。
【００６７】
次に、ステップＳ１１８において、位置姿勢計算部２０６は、ロボット座標系の原点から変換画像の座標系の原点に対する、並進ベクトルおよび回転行列を計算し、さらに、これら計算した並進ベクトルおよび回転行列に基づいて、ロボット座標系の原点から対象物体５の基準点（原点）に対する並進ベクトルおよび回転行列を計算し、この計算結果を位置姿勢データとして検査装置３０に供給する。
【００６８】
図１０は、位置姿勢計算部２０６によるステップＳ１１７およびステップＳ１１８の処理の内容を模式的に表した図である。図１０は、位置姿勢計算部２０６によって選択された最も高い類似度となる面が第１の面Ｐ１である場合の図である。図１０において、Δｔ（ボールド体）Ｓ１およびΔＲ（ボールド体）Ｓ１は、ステップＳ１１７の処理において、位置姿勢計算部２０６によりホモグラフィー行列を特異値分解して得られた、第１の面Ｐ１の座標系の原点から変換画像の座標系ΣＳ１の原点ＯＳ１に対する並進ベクトルおよび回転行列である。ｔ（ボールド体）ＣおよびＲ（ボールド体）Ｃは、ロボット座標系Σの原点Ｏから現在のカメラ座標系ΣＣの原点Ｏ（オー）Ｃに対する並進ベクトルおよび回転行列である。ｔ（ボールド体）Ｓ１およびＲ（ボールド体）Ｓ１は、ロボット座標系Σの原点Ｏから変換画像の座標系ΣＳ１の原点ＯＳ１に対する並進ベクトルおよび回転行列である。Δｔ（ボールド体）Ｃ１Ｓ１およびΔＲ（ボールド体）Ｃ１Ｓ１は、テンプレート画像を取得したときのカメラ座標系ΣＣ１の原点ＯＣ１から第１の面Ｐ１の座標系Σの原点に対する並進ベクトルおよび回転行列である。ｔ（ボールド体）ＯｂｊおよびＲ（ボールド体）Ｏｂｊは、ロボット座標系Σの原点Ｏから対象物体５の座標系ΣＯｂｊの原点ＯＯｂｊに対する並進ベクトルおよび回転行列であり、ステップＳ１１８の処理において位置姿勢計算部２０６が算出した位置姿勢データである。
【００６９】
図１０に示すように、位置姿勢計算部２０６は、並進ベクトルｔ（ボールド体）Ｓｍおよび回転行列Ｒ（ボールド体）Ｓｍ（ただし、添字ｍは、最も類似度が高い面を示す。以下同様。）を、下記の式（６）により計算する。
【００７０】
【数６】
0005699697.tif 000007
【００７１】
次に、位置姿勢計算部２０６は、ｔ（ボールド体）ＯｂｊおよびＲ（ボールド体）Ｏｂｊを、下記の式（７）により計算する。
【００７２】
【数７】
0005699697.tif 000008
【００７３】
以上詳述したように、本発明の第１実施形態では、位置姿勢検出装置２０は、撮像装置１１からの視線方向ごとに、対象物体５のリファレンスを撮像して得たテンプレート画像データと、面の位置および姿勢を表す情報と、リファレンスの基準点（原点）と面との相対的な位置および姿勢を表す情報と、撮像装置１１の位置および姿勢を表す情報と、撮像装置１１と面との相対的な位置および姿勢を表す情報とを保有するようにした。そして、位置姿勢検出装置２０は、撮像装置１１から供給される対象物体５の平面画像を含む画像データと全てのテンプレート画像データとに基づいて画像データから有効な面（例えば、可視面）を検出し、さらに有効な面の中から信頼性が最も高い面を検出し、この面に基づいて対象物体の位置および姿勢を求め、位置姿勢データとして検査装置３０に供給するようにした。そして、検査装置３０は、位置姿勢検出装置２０から供給される位置姿勢データを取り込んで、対象物体５のロボット座標系の三次元空間における位置および姿勢を管理するようにした。
【００７４】
このように構成したことにより、本実施形態によれば、可視面の中で信頼性が最も高い面に基づいて対象物体の位置および姿勢を得るため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
また、本実施形態によれば、可視面のうち代表する一面のみを使用して位置および姿勢を求めるため、計算にかかる負荷は軽い。
【００７５】
［第２の実施の形態］
本発明の第２実施形態は、上述した第１実施形態における位置姿勢検出装置２０を別形態に変更したものである。
図１１は、本発明の第２実施形態であるロボット装置を適用した検査システムの概略の機能構成を表すブロック図である。図１１に示すように、検査システム１ａは、第１実施形態における検査システム１の位置姿勢検出装置２０を位置姿勢検出装置２０ａに変更した構成を有する。そこで、本実施形態では、第１実施形態と相違する構成である位置姿勢検出装置２０ａについて具体的に説明し、その他第１実施形態と共通する構成についての説明を省略する。
【００７６】
本実施形態であるロボット装置は、ロボット１０と位置姿勢検出装置２０ａとを含んで構成される。
【００７７】
位置姿勢検出装置２０ａは、撮像装置１１から取得する画像データについて、画像の特徴量に基づくマッチング処理によって対象物体５の各面の位置および姿勢を検出し、この検出結果に基づいて現在の撮像装置１１の視点（現視点）から可視である全ての面（可視面）を検出する。そして、位置姿勢検出装置２０ａは、全ての可視面の中からテンプレート画像との類似度が最も高い面を選択する（以上、第１の位置姿勢検出処理）。そして、位置姿勢検出装置２０ａは、全ての可視面を用いて合成モデル画像データを生成し、この合成モデル画像データに基づいて三次元空間における対象物体５の位置および姿勢を評価して計算し（第２の位置姿勢検出処理）、その位置姿勢データを検査装置３０に供給する。
【００７８】
図１２は、位置姿勢検出装置２０ａの機能構成を表すブロック図である。図１２に示すように、位置姿勢検出装置２０ａは、画像データ取得部２１１と、画像データ記憶部２１２と、特徴データ生成部２１３と、テンプレート特徴データ記憶部２１４と、第１位置姿勢計算部２１５と、テンプレート情報記憶部２１６と、合成モデル画像生成部２１７と、第２位置姿勢計算部２１８とを備える。
なお、特徴データ生成部２１３と、テンプレート特徴データ記憶部２１４と、第１位置姿勢計算部２１５と、テンプレート情報記憶部２１６と、合成モデル画像生成部２１７と、第２位置姿勢計算部２１８とは、位置姿勢データ生成部である。
【００７９】
画像データ取得部２１１は、ロボット１０の撮像装置１１から供給される静止画像の画像データを取り込み、画像データ記憶部２１２に記憶させる。
画像データ記憶部２１２は、画像データ取得部２１１が取り込んだ画像データを記憶する。
【００８０】
特徴データ生成部２１３は、画像データ記憶部２１２から画像データを読み込んでこの画像データから複数の特徴点を抽出し、各特徴点における特徴量と当該特徴点の位置情報とを対応付けた特徴データを生成し、この特徴データを第１位置姿勢計算部２１５に供給する。特徴点は、例えば輝度値や色が急変する点であり、例えば頂点や模様の交点等が該当する。特徴量は画像の特徴量である。例えば、特徴データ生成部２１３は、複数の画素を含む小領域ごとに輝度のガウス分布の状態を調べて特徴量を抽出する公知のＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）処理を実行してＳＩＦＴ特徴量を求め、このＳＩＦＴ特徴量を特徴量として用いる。また、特徴データ生成部２１３は、ＳＵＲＦ（Ｓｐｅｅｄ−Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）を適用してもよい。特徴点の位置情報は、画像データの例えば左上端の位置を原点として得られる特徴点の座標値または位置ベクトルである。
【００８１】
テンプレート特徴データ記憶部２１４は、対象物体５のリファレンスについてのテンプレート特徴データを記憶する。テンプレート特徴データは、リファレンスのテンプレート画像データから抽出した複数の特徴点それぞれにおける特徴量と当該特徴点の位置情報とを対応付けたデータである。テンプレート特徴データ記憶部２１４は、三次元空間におけるリファレンスの周囲からの複数の視線それぞれに対応するテンプレート特徴データを、視線ごとに記憶する。
【００８２】
第１位置姿勢計算部２１５は、第１の位置姿勢検出処理を実行する。すなわち、第１位置姿勢計算部２１５は、特徴データ生成部２１３から供給される特徴データを取り込み、テンプレート特徴データ記憶部２１４からテンプレート特徴データを読み込む。そして、第１位置姿勢計算部２１５は、特徴データにおける特徴量とテンプレート特徴データにおける特徴量とのマッチング処理を実行し、マッチする特徴量に対応する特徴点の位置情報を抽出する。そして、第１位置姿勢計算部２１５は、その位置情報に基づいて対象物体５の各面の位置および姿勢を検出する。具体的には、第１位置姿勢計算部２１５は、同一面に属する少なくとも４点の特徴点が、現在の画像の面に一致するようにテンプレート画像をホモグラフィー変換してマッチング処理し、一致したときのホモグラフィー行列を特異値分解して対象物体５の各面の位置および姿勢を計算する。そして、第１位置姿勢計算部２１５は、この計算結果に基づいて現視点から全ての可視面を検出する。また、第１位置姿勢計算部２１５は、全ての可視面の中から、可視面の画像とテンプレート画像との類似度が最も高い面（基準面）の位置および姿勢を選択する。この基準面は、例えば、現視点においてテンプレート画像に対し歪みや傾きが少ない面である。
【００８３】
テンプレート情報記憶部２１６は、対象物体５のリファレンスについてのテンプレート情報をあらかじめ記憶する。テンプレート情報は、第１実施形態と同様に、複数の視線方向（例えば、互いに直交する６方向）それぞれからリファレンスを撮像して得た複数のテンプレート画像データと、複数のテンプレート画像それぞれについてのテンプレート位置姿勢データとを含む。つまり、テンプレート位置姿勢データは、面の位置および姿勢を表す情報と、リファレンスの基準点（原点）と面との相対的な位置および姿勢を表す情報と、撮像装置１１の位置および姿勢を表す情報と、撮像装置１１と面との相対的な位置および姿勢を表す情報とを含む。さらに、本実施形態では、テンプレート情報は、複数の面に対応する複数のテンプレート画像同士の位置および姿勢の関係を表すテンプレート位置姿勢関係データを含む。
【００８４】
なお、撮像装置１１と面との相対的な位置および姿勢を表す情報は、あらかじめ記憶しておくのではなく、例えば合成モデル画像生成部２１７が、面の位置および姿勢を表す情報と撮像装置１１の位置および姿勢を表す情報とから計算して求めるようにしてもよい。また、同様に、リファレンスの基準点（原点）と面との相対的な位置および姿勢を表す情報も計算して求めるようにしてもよい。
【００８５】
テンプレート位置姿勢関係データは、全てのテンプレート画像同士の相対的な並進ベクトルおよび回転行列である。具体的には、６面分のテンプレート画像データについて、第ｉのテンプレート画像から第ｊのテンプレート画像に対する並進ベクトルおよび回転行列を（ｔ（ボールド体）ｉｊ，Ｒ（ボールド体）ｉｊ）とすると、テンプレート位置姿勢関係データは、例えば、（ｔ（ボールド体）１２，Ｒ（ボールド体）１２）、（ｔ（ボールド体）１３，Ｒ（ボールド体）１３）、（ｔ（ボールド体）１４，Ｒ（ボールド体）１４）、（ｔ（ボールド体）１５，Ｒ（ボールド体）１５）、（ｔ（ボールド体）１６，Ｒ（ボールド体）１６）、（ｔ（ボールド体）２３，Ｒ（ボールド体）２３）、（ｔ（ボールド体）２４，Ｒ（ボールド体）２４）、（ｔ（ボールド体）２５，Ｒ（ボールド体）２５）、（ｔ（ボールド体）２６，Ｒ（ボールド体）２６）、（ｔ（ボールド体）３４，Ｒ（ボールド体）３４）、（ｔ（ボールド体）３５，Ｒ（ボールド体）３５）、（ｔ（ボールド体）３６，Ｒ（ボールド体）３６）、（ｔ（ボールド体）４５，Ｒ（ボールド体）４５）、（ｔ（ボールド体）４６，Ｒ（ボールド体）４６）、および（ｔ（ボールド体）５６，Ｒ（ボールド体）５６）である。
【００８６】
合成モデル画像生成部２１７および第２位置姿勢計算部２１８は、第２の位置姿勢検出処理を実行する。
まず、合成モデル画像生成部２１７は、第１位置姿勢計算部２１５から、全ての可視面に対応する特徴点の位置情報と基準面の位置および姿勢とを取り込み、テンプレート情報記憶部２１６からテンプレート情報を読み込む。そして、合成モデル画像生成部２１７は、取り込んだ特徴点の位置情報と基準面の位置および姿勢とテンプレート情報とに基づいて、現視点において可視となる合成モデル画像データを生成し、この合成モデル画像データを第２位置姿勢計算部２１８に供給する。
【００８７】
また、合成モデル画像生成部２１７は、第２位置姿勢計算部２１８から供給される類似度を取り込み、この類似度が閾値以下である場合、基準面の位置および姿勢を微小変化させた状態の合成モデル画像データを生成し、この合成モデル画像データを第２位置姿勢計算部２１８に供給する。
また、合成モデル画像生成部２１７は、第２位値姿勢計算部２１８から供給された類似度が前記の閾値を超える値である場合、微調整完了を示すステータス情報を第２位置姿勢計算部２１８に供給する。
【００８８】
第２位置姿勢計算部２１８は、画像データと合成モデル画像データとに基づいて、対象物体５の位置および姿勢を評価して求め、この求めた位置および姿勢を位置姿勢データとして検査装置３０に供給する。具体的には、第２位置姿勢計算部２１８は、合成モデル画像生成部２１７から供給される合成モデル画像データを取り込み、画像データ記憶部２１２から画像データを読み込む。そして、第２位置姿勢計算部２１８は、合成モデル画像データを射影変換した変換合成モデル画像データと画像データとの類似度を計算し、この類似度を合成モデル画像生成部２１７に供給する。類似度は、第２位置姿勢計算部２１８が例えば正規化相互相関（Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ−Ｃｏｒｒｅｌａｔｉｏｎ）を計算することによって得られる。
【００８９】
なお、第２位置姿勢計算部２１８は、正規化相互相関以外にも、ＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅ）やＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）等を計算することによって類似度を求めてもよい。
【００９０】
また、第２位置姿勢計算部２１８は、合成モデル画像生成部２１７から供給されるステータス情報を取り込むと、撮像装置１１の現在の位置および姿勢の情報（並進ベクトルおよび回転行列）を、例えばロボット本体１２またはロボット制御装置４０から取得する。そして、第２位置姿勢計算部２１８は、ロボット座標系の原点から変換合成モデル画像の座標系の原点に対する、並進ベクトルおよび回転行列を計算し、この計算結果を位置姿勢データとして検査装置３０に供給する。
【００９１】
位置姿勢検出装置２０ａにおいて、画像データ記憶部２１２と、テンプレート特徴データ記憶部２１４と、テンプレート情報記憶部２１６とは、例えば、半導体記憶装置もしくは磁気ハードディスク装置またはこれらの組み合わせにより実現される。
【００９２】
次に、位置姿勢検出装置２０ａが実行する対象物体の位置および姿勢の検出処理について説明する。
図１３および図１４は、位置姿勢検出装置２０ａが実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
まず、図１３のステップＳ２０１において、画像データ取得部２１１は、ロボット１０の撮像装置１１から供給される静止画像の画像データを取り込み、この画像データを画像データ記憶部２１２に記憶させる。
次に、ステップＳ２０２において、特徴データ生成部２１３は、画像データ記憶部２１２から画像データを読み込んでこの画像データから複数の特徴点を抽出し、各特徴点における特徴量（例えばＳＩＦＴ特徴量）と当該特徴点の位置情報（位置ベクトル）とを対応付けた特徴データを生成し、この特徴データを第１位置姿勢計算部２１５に供給する。
【００９３】
次に、ステップＳ２０３において、第１位置姿勢計算部２１５は、特徴データ生成部２１３から供給される特徴データを取り込み、テンプレート特徴データ記憶部２１４からテンプレート特徴データを読み込む。
次に、第１位置姿勢計算部２１５は、特徴データにおける特徴量とテンプレート特徴データにおける特徴量とのマッチング処理を実行し、マッチする特徴量に対応する特徴点の位置情報を抽出する。このマッチング処理では、第１位置姿勢計算部２１５は相関度を計算する。例えば、第１位置姿勢計算部２１５は、特徴データにおける特徴量Ａとテンプレート特徴データにおける特徴量Ｂとのユークリッド距離を計算し、このユークリッド距離が閾値以下となる特徴量Ａを、マッチする特徴量として検出する。
次に、第１位置姿勢計算部２１５は、抽出した位置情報に基づいて対象物体５の各面の位置および姿勢を検出する。
次に、第１位置姿勢計算部２１５は、検出結果に基づいて現視点から全ての可視面を検出し、これら全ての可視面の中からテンプレート画像との類似度が最も高い面、つまり基準面の位置および姿勢を選択する。
【００９４】
次に、ステップＳ２０４において、合成モデル画像生成部２１７は、第１位置姿勢計算部２１５から供給される特徴点の位置情報を取り込む。
次に、合成モデル画像生成部２１７は、特徴点の位置情報から得られるモデルにおいて可視である一面を選択し、この選択した一面に対応するテンプレート画像データとテンプレート位置姿勢データとをテンプレート情報記憶部２１６から読み込む。
【００９５】
次に、ステップＳ２０５において、合成モデル画像生成部２１７は、読み込んだテンプレート画像データから当該一面に射影変換するためのホモグラフィー行列を計算する。具体的には、合成モデル画像生成部２１７は、ロボット座標系におけるテンプレート画像の位置および姿勢と一面の位置情報とに基づいてホモグラフィー行列を計算する。
【００９６】
次に、ステップＳ２０６において、合成モデル画像生成部２１７は、テンプレート画像データを射影変換して変換画像データを生成し、この変換画像データを記憶する。具体的には、合成モデル画像生成部２１７は、テンプレート画像データにホモグラフィー行列を掛け合わせる演算を行なって変換画像データを生成し、この変換画像データを内部の記憶領域に記憶する。
【００９７】
次に、ステップＳ２０７において、可視である他の面がある場合（Ｓ２０７：ＹＥＳ）はステップＳ２０４の処理に移り、可視である他の面がない場合（Ｓ２０７：ＮＯ）はステップＳ２０８の処理に移る。
【００９８】
ステップＳ２０７：ＹＥＳに続くステップＳ２０８において、合成モデル画像生成部２１７は、内部の記憶領域から変換画像データを読み込み、テンプレート情報記憶部２１６からテンプレート位置姿勢関係データを読み込む。
次に、合成モデル画像生成部２１７は、テンプレート位置姿勢関係データに基づいて変換画像データを合成して合成モデル画像データを生成し、この合成モデル画像データを第２位置姿勢計算部２１８に供給する。
【００９９】
次に、図１４のステップＳ２０９において、第２位置姿勢計算部２１８は、合成モデル画像生成部２１７から供給される合成モデル画像データを取り込み、画像データ記憶部２１２から画像データを読み込む。
次に、第２位置姿勢計算部２１８は、ホモグラフィー行列の要素に初期値を設定する。ここでの初期値は、前述したステップＳ２０３の処理において第１位置姿勢計算部２１５がマッチング処理によって取得した基準面の位置および姿勢に基づき決定されるものである。
【０１００】
次に、ステップＳ２１０において、第２位置姿勢計算部２１８は、合成モデル画像データを射影変換して変換モデル画像データを生成する。具体的には、第２位置姿勢計算部２１８は、合成モデル画像データにホモグラフィー行列を掛け合わせる演算を行って変換モデル画像データを生成する。
【０１０１】
次に、ステップＳ２１１において、第２位置姿勢計算部２１８は、画像データと変換合成モデル画像データとの類似度を、例えば正規化相互相関を計算することによって取得し、この類似度を合成モデル画像生成部２１７に供給する。
【０１０２】
次に、ステップＳ２１２において、合成モデル画像生成部２１７は、第２位置姿勢計算部２１８から供給される類似度を取り込む。そして、類似度が閾値を超える場合（Ｓ２１２：ＹＥＳ）、合成モデル画像生成部２１７は、微調整完了を示すステータス情報を第２位置姿勢計算部２１８に供給し、次に、ステップＳ２１３の処理に移る。
一方、類似度が閾値以下である場合（Ｓ２１２：ＮＯ）はステップＳ２１５の処理に移る。
【０１０３】
ステップＳ２１２：ＹＥＳに続くステップＳ２１３において、第２位置姿勢計算部２１８は、合成モデル画像生成部２１７から供給されるステータス情報を取り込むと、撮像装置１１の現在の位置および姿勢の情報（並進ベクトルおよび回転行列）を、例えばロボット本体１２またはロボット制御装置４０から取得する。
【０１０４】
次に、ステップＳ２１４において、第２位置姿勢計算部２１８は、ロボット座標系の原点から変換合成モデル画像の座標系の原点に対する、並進ベクトルおよび回転行列を前記の式（６）を用いて計算し、さらに、これら計算した並進ベクトルおよび回転行列に基づいて、ロボット座標系の原点から対象物体５の基準点（原点）に対する並進ベクトルおよび回転行列を前記の式（７）を用いて計算し、この計算結果を位置姿勢データとして検査装置３０に供給する。そして、本フローチャートの処理を終了する。
【０１０５】
ステップＳ２１２：ＮＯに続くステップＳ２１５において、合成モデル画像生成部２１７は、基準面の位置および姿勢を微小変化させた状態の合成モデル画像データを生成し、この合成モデル画像データを第２位置姿勢計算部２１８に供給する。ステップＳ２０９，Ｓ２１０，Ｓ２１１，Ｓ２１２：ＮＯ，Ｓ２１５，Ｓ２１０，・・・，Ｓ２１２：ＹＥＳのルーチンは、公知のＥＳＭ（Ｅｆｆｉｃｉｅｎｔ  Ｓｅｃｏｎｄ−ｏｒｄｅｒ  Ｍｉｎｉｍｉｚａｔｉｏｎ  Ｍｅｔｈｏｄ）による収束法を適用できる。
【０１０６】
以上詳述したように、本発明の第２実施形態では、位置姿勢検出装置２０ａは、撮像装置１１から取得する画像データについて、画像の特徴量に基づくマッチング処理によって対象物体５の位置および姿勢を検出し、その検出結果に基づいて現視点からの全ての可視面を用いた合成モデル画像データを生成するようにした。そして、位置姿勢検出装置２０ａは、その合成モデル画像データに基づいて三次元空間における対象物体５の位置および姿勢を計算し、この計算結果を位置姿勢データとして検査装置３０に供給するようにした。そして、検査装置３０は、位置姿勢検出装置２０ａから供給される位置姿勢データを取り込んで、対象物体５のロボット座標系における位置および姿勢を管理するようにした。
【０１０７】
このように構成したことにより、本実施形態によれば、現視点からの全ての可視面を用いて対象物体の位置および姿勢を得るため、第１実施形態に対してより高精度に、対象物体の立体空間における位置および姿勢を検出することができる。
【０１０８】
以上により、第１実施形態および第２実施形態によれば、撮像して得た対象物体の平面画像に見えている面に対応する一または複数のテンプレート画像データとテンプレート位置姿勢データとに基づいて対象物体の位置および姿勢を計算するため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
【０１０９】
なお、第１実施形態および第２実施形態に基づく別の実施形態として、位置姿勢検出装置は、位置姿勢検出装置２０および位置姿勢検出装置２０ａ両方の構成を併せ備え、第１位置姿勢計算部２１５によって計算される類似度に応じて位置姿勢検出装置２０の機能と位置姿勢検出装置２０ａの機能とを切り替えるようにしてもよい。具体的には、別実施形態における位置姿勢検出装置は、例えば、位置姿勢検出装置２０ａの第１位置姿勢計算部２１５が、可視面ごとに計算する当該可視面の画像とテンプレート画像との類似度の全てが閾値以下である場合、言い換えると、基準面に対応する類似度が前記の閾値以下である場合に、位置姿勢検出装置２０ａ側の構成に切り替えて処理を行うようにする。
【０１１０】
このように構成することによって、基準面の歪みや変形の度合いが比較的低い場合は、一面に基づく処理を行わせ、一方、基準面の歪みや変形の度合いが比較的高い場合は、可視面全てに基づく処理を行わせることができる。つまり、可視面の状態（例えば、歪みや変形）に応じて、一面に基づく対象物体５の位置および姿勢の検出処理と、可視面全てに基づく検出処理とを切り替えることができ、視点による検出精度のばらつきを抑えることができる。
【０１１１】
また、第１実施形態および第２実施形態では、ロボット１０を、ロボット本体１２が撮像装置１１を可動に支持する構成とし、対象物体５およびリファレンスを固定的に設置することとした。これ以外に、例えば、ロボット１０を、ロボット本体１２が対象物体５およびリファレンスいずれかを可動に支持する構成とし、撮像装置１１を固定的に設置することとしてもよい。
【０１１２】
また、撮像装置１１（第１の撮像装置）の他に、対象物体５を視野に含めて撮像する別の撮像装置（第２の撮像装置）を固定設置するようにしてもよい。この場合、撮像装置１１を、撮像装置１１と対象物体５との相対的な位置および姿勢を変えて外観検査を行う処理のみに適用し、別の撮像装置を対象物体５の位置および姿勢を検出する処理にのみ適用する。そして、位置姿勢検出装置２０，２０ａは、ロボット座標系Σの原点Ｏから現在のカメラ座標系ΣＣの原点ＯＣに対する並進ベクトルｔ（ボールド体）Ｃおよび回転行列Ｒ（ボールド体）Ｃをあらかじめ計算して記憶しておく。
このように構成することにより、前記の式（６）を計算するにあたり、並進ベクトルｔ（ボールド体）Ｃおよび回転行列Ｒ（ボールド体）Ｃを都度計算する必要がない。
【０１１３】
また、第１実施形態および第２実施形態では、テンプレート画像データは、例えばリファレンスを撮像して得られる撮像画像データである例としたが、これ以外にも、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｉｓｉｇｎ）データやＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）データを使用することもできる。ＣＡＤデータやＣＧデータのフォーマットは限定されず、撮像により得られるテンプレート画像と同様に、形状、模様が視認可能であればよい。
【０１１４】
また、カメラ座標系ΣＣがロボット座標系Σに一致する場合も、第１実施形態および第２実施形態は適用できる。
【０１１５】
また、上述した第１実施形態および第２実施形態における位置姿勢検出装置２０，２０ａの一部の機能をコンピューターで実現するようにしてもよい。この場合、その制御機能を実現するための位置姿勢検出プログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録された位置姿勢検出プログラムをコンピューターシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺装置のハードウェアを含むものである。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、光ディスク、メモリーカード等の可搬型記録媒体、コンピューターシステムに内蔵される磁気ハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバー装置やクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持するものを含んでもよい。また上記のプログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせにより実現するものであってもよい。
【０１１６】
以上、本発明の実施の形態について図面を参照して詳述したが、具体的な構成はその実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０１１７】
１，１ａ  検査システム
５  対象物体
１０  ロボット
１１  撮像装置（撮像部）
１２  ロボット本体
１２ａ  支持台
１２ｂ  アーム部
１２ｃ  ハンド部
２０，２０ａ  位置姿勢検出装置
３０  検査装置
４０  ロボット制御装置
２０１  画像データ取得部
２０２  画像データ記憶部
２０３  テンプレート情報記憶部
２０４  一致度評価部
２０５  対応テーブル記憶部
２０６  位置姿勢計算部
２１１  画像データ取得部
２１２  画像データ記憶部
２１３  特徴データ生成部
２１４  テンプレート特徴データ記憶部
２１５  第１位置姿勢計算部
２１６  テンプレート情報記憶部
２１７  合成モデル画像生成部
２１８  第２位置姿勢計算部
【図１】
0005699697.tif 000009
【図２】
0005699697.tif 000010
【図３】
0005699697.tif 000011
【図４】
0005699697.tif 000012
【図５】
0005699697.tif 000013
【図６】
0005699697.tif 000014
【図７】
0005699697.tif 000015
【図８】
0005699697.tif 000016
【図９】
0005699697.tif 000017
【図１０】
0005699697.tif 000018
【図１１】
0005699697.tif 000019
【図１２】
0005699697.tif 000020
【図１３】
0005699697.tif 000021
【図１４】
0005699697.tif 000022