説明

ロボット装置、位置姿勢検出装置、位置姿勢検出プログラム、および位置姿勢検出方法

【課題】平面画像により表現された対象物体の、立体空間における位置および姿勢を高精度に検出する。
【解決手段】対象物体を撮像して画像データを生成する撮像装置11と、撮像装置11を可動に支持するロボット本体12と、リファレンスに対する撮像装置11からの視線方向ごとに、視線方向に対する面のテンプレート画像データとロボット座標系における面の位置および姿勢を表す情報とロボット座標系における撮像装置11の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、撮像装置11が生成した画像データに含まれる対象物体の画像から可視である面を検出し、テンプレート情報記憶部から、可視である面に対応するテンプレート情報を読み込み、テンプレート情報に基づいてロボット座標系における対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部とを備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット装置、位置姿勢検出装置、位置姿勢検出プログラム、および位置姿勢検出方法に関する。
【背景技術】
【0002】
従来、平面画像により表現された物体の立体空間における位置および姿勢を推定する技術が知られている。例えば、位置および方向の少なくとも一方によって見え方が変化する対象物を精度よく認識する認識装置が知られている(例えば、特許文献1参照)。
この認識装置は、対象物と複数のテンプレート情報それぞれとの類似度に基づいてあらかじめ基準座標系を設定する。そして、この認識装置は、基準座標系の各位置における、類似度が高いほど高い値となる重み係数と類似度とから重み付き類似度を求め、この重み付き類似度を用いて対象物を認識するものである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−301382号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、この認識装置は、特に対象物(例えば、人物の手)の動作を認識することによって非接触で電子機器を操作させることを目的とした装置である。この認識装置に適用された、重み付き類似度に基づいて対象物を認識する方式は、対象物を確率的に認識する方式であるため、大雑把に変化する人物の手や足の動作を認識させること、つまり空間的な認識の幅が比較的広い用途には適している。しかし、例えば、マニピュレーターのビジュアルフィードバック制御では、マニピュレーターの位置および姿勢を高精度に認識する必要があるため、上記の認識装置をロボット装置に適用することができない。なお、ビジュアルフィードバック制御とは、撮像装置等の視覚センサーが取得する視覚情報に基づいてロボット装置の動作、例えばマニピュレーターの位置および姿勢を制御することである。
【0005】
そこで、本発明は、上記問題を解決するためになされたものであり、平面画像により表現された対象物体の、立体空間における位置および姿勢を高精度に検出する、ロボット装置、位置姿勢検出装置、位置姿勢検出プログラム、および位置姿勢検出方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
[1]上記の課題を解決するため、本発明の一態様であるロボット装置は、対象物体を撮像して画像データを生成する撮像部と、前記撮像部を可動に支持するロボット本体と、前記対象物体のリファレンスに対する前記撮像部からの視線方向ごとに、前記視線方向に対する面のテンプレート画像データとロボット座標系における前記面の位置および姿勢を表す情報と前記ロボット座標系における前記撮像部の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、前記撮像部が生成した前記画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記ロボット座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、を備えることを特徴とする。
ここで、ロボット本体は、例えば多関節ロボットである。また、リファレンスは、例えば、対象物体の良品サンプルである。また、視線方向とは、例えば互いに直交する方向であり、互いに直交する6方向でもよいし、これら6方向のうちリファレンスを通常使用の状態で水平面に載置した場合の鉛直下方を除く5方向でもよい。また、位置および姿勢を表す情報は、並進ベクトルおよび回転行列により表現される。
このように構成したことにより、本発明の一態様によれば、対象物体の画像から得られる可視面に対応するテンプレート情報に基づいて対象物体の位置および姿勢を計算するため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
[2]上記[1]記載のロボット装置において、前記位置姿勢データ生成部は、複数のテンプレート画像データそれぞれについて、該テンプレート画像データを、ホモグラフィー行列を用いて射影変換した変換画像データと前記画像データとの一致度を計算し、前記一致度に基づいて前記対象物体の画像から可視である面を検出する一致度評価部と、前記一致度評価部が検出した前記可視である面に対応するテンプレート画像データを、ホモグラフィー行列を用いて射影変換した変換画像データと前記画像データとの類似度を計算し、最も高い類似度となる計算結果に対応するホモグラフィー行列と前記テンプレート情報とに基づいて前記位置姿勢データを生成する位置姿勢計算部と、を備えることを特徴とする。
ここで、一致度は、例えば、画像データと変換画像データとの輝度差の絶対値の総和や輝度差の2乗和である。また、類似度は、例えば、正規化相互相関である。
このように構成したことにより、本発明の一態様によれば、可視面の中で信頼性が最も高い面に基づいて対象物体の位置および姿勢を高精度に得るため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。また、本発明の一態様によれば、可視面のうち代表する一面のみを使用して位置および姿勢を求めるため、計算にかかる負荷は軽い。
[3]上記[1]記載のロボット装置において、前記位置姿勢データ生成部は、テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部と、前記撮像部が生成した前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成部と、前記特徴データ生成部が生成した前記特徴データと前記テンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第1位置姿勢計算部と、前記第1位置姿勢計算部が検出した前記特徴点の位置情報と前記基準面と前記テンプレート情報記憶部に記憶された前記テンプレート情報とに基づいて合成モデル画像データを生成する合成モデル画像生成部と、前記合成モデル画像生成部が生成した前記合成モデル画像データを、ホモグラフィー行列を用いて射影変換した変換合成モデル画像データと前記画像データとの類似度を計算し、前記類似度が閾値を超えることとなるホモグラフィー行列と前記テンプレート情報とに基づいて前記位置姿勢データを生成する第2位置姿勢計算部と、を備えることを特徴とする。
このように構成したことにより、本発明の一態様によれば、現視点からの全ての可視面を用いて対象物体の位置および姿勢を得るため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
[4]上記[1]記載のロボット装置において、上記[2]記載の位置姿勢データ生成部と上記[3]記載の位置姿勢データ生成部とを備え、前記請求項3記載の位置姿勢データ生成部における前記第1位置姿勢計算部において、前記基準面に対応する類似度が閾値以下である場合に、前記請求項3記載の位置姿勢データ生成部を機能させることを特徴とする。
このように構成することによって、本発明の一態様によれば、基準面の歪みや変形の度合いが比較的低い場合は、一面に基づく処理を行わせ、一方、基準面の歪みや変形の度合いが比較的高い場合は、可視面全てに基づく処理を行わせることができる。つまり、可視面の状態(例えば、歪みや変形)に応じて、一面に基づく対象物体の位置および姿勢の検出処理と、可視面全てに基づく検出処理とを切り替えることができ、視点による検出精度のばらつきを抑えることができる。
【0007】
[5]上記の課題を解決するため、本発明の一態様である位置姿勢検出装置は、対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、所定の視点に基づき得られる画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、を備えることを特徴とする。
このように構成したことにより、本発明の一態様によれば、対象物体の画像から得られる可視面に対応するテンプレート情報に基づいて対象物体の位置および姿勢を計算するため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
【0008】
[6]上記の課題を解決するため、本発明の一態様である位置姿勢検出プログラムは、対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部を備えるコンピューターを、所定の視点に基づき得られる画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、として機能させる。
【0009】
[7]上記の課題を解決するため、本発明の一態様である位置姿勢検出方法は、位置姿勢データ生成部が、所定の視点に基づき得られる画像データに含まれる対象物体の画像から可視である面を検出し、対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢検出ステップ、を有することを特徴とする。
【0010】
よって、本発明の各態様によれば、平面画像により表現された対象物体の、立体空間における位置および姿勢を、高精度に検出することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の第1実施形態であるロボット装置を適用した検査システムにおけるロボットと対象物体との概略の外観図である。
【図2】同実施形態であるロボット装置を適用した検査システムの概略の機能構成を表すブロック図である。
【図3】同実施形態における位置姿勢検出装置の機能構成を表すブロック図である。
【図4】一面分のテンプレート位置姿勢データを表す概念図である。
【図5】対応テーブルのデータ構成を表す図である。
【図6】同実施形態における検査システムの外観検査処理の手順を表すフローチャートである。
【図7】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【図8】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【図9】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【図10】同実施形態において、位置姿勢計算部による処理の一部の内容を模式的に表した図である。
【図11】本発明の第2実施形態であるロボット装置を適用した検査システムの概略の機能構成を表すブロック図である。
【図12】同実施形態における位置姿勢検出装置の機能構成を表すブロック図である。
【図13】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【図14】同実施形態において、位置姿勢検出装置が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態について、図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、本発明の第1実施形態であるロボット装置を適用した検査システムにおけるロボットと対象物体との概略の外観図である。図1に示すように、ロボット10は、ロボット本体12に撮像装置(撮像部)11が設けられて構成される。
【0013】
ロボット本体12は、撮像装置11を可動に支持する。具体的には、ロボット本体12は、地面に固定された支持台12aと、旋回可能および屈伸可能に支持台12aに連結されたアーム部12bと、回動可能および首振り可能にアーム部12bに連結されたハンド部12cとを含んで構成される。ロボット本体12は、例えば6軸の垂直多関節ロボットであり、支持台12aとアーム部12bとハンド部12cとの連係した動作によって6軸の自由度を有し、撮像部11の位置および向きを三次元空間内で自在に変更することができる。
【0014】
なお、ロボット本体12は、撮像装置11、工具、部品等を作業目的に応じて持ち替えるように構成してもよい。また、ロボット本体12の自由度は6軸によるものに限られない。具体的には、例えばロボット本体12は、7軸による自由度を有するものであってもよい。また、支持台12aは、壁や天井等、地面に対して固定された場所に設置してもよい。また、ロボット本体12は、撮像装置11を支持するアーム部12bおよびハンド部12cの他に、工具や部品を支持する図示しないアーム部およびハンド部を備え、これら複数のアーム部およびハンド部を独立的にまたは連動させて動かす構成としてもよい。
【0015】
図1に示すように、ハンド部12c先端の可動範囲内には、外観検査の検査対象物体である対象物体5が図示しない台上に載置されている。
本実施形態における検査システムは、対象物体5の外観を観察して、検査部位の状態を検査する装置である。
【0016】
図2は、本実施形態であるロボット装置を適用した検査システムの概略の機能構成を表すブロック図である。図2に示すように、検査システム1は、ロボット10と、位置姿勢検出装置20と、検査装置30と、ロボット制御装置40とを備える。
ロボット10は、図1にも示したように、撮像装置11とロボット本体12とを備える。
【0017】
撮像装置11は、静止画像および動画像を選択的に撮像可能なカメラ装置である。撮像装置11は、検査装置30から供給される静止画撮影要求信号にしたがって対象物体5を静止画撮影し、その静止画像のデータである画像データを出力する。また、撮像装置11は、検査装置30から供給される動画撮影開始要求信号にしたがって、例えば30フレーム/秒(fps;frame per second)のフレームレートで対象物体5を動画撮影し、その動画像のデータである画像データを連続して出力する。また、撮像装置11は、制御装置30から供給される動画撮影停止要求信号にしたがって、動画像の撮影動作を停止する。
ロボット本体12は、前述したように、取り付けられた撮像装置11を三次元空間内で移動させるための装置である。
【0018】
位置姿勢検出装置20は、撮像装置11から供給される静止画像の画像データを取り込み、この画像データに含まれる対象物体5の平面画像(対象物体画像)に基づいて三次元空間における対象物体5の位置および姿勢を計算し、その位置姿勢データを検査装置30に供給する。本実施形態における三次元空間は、基準座標系であるロボット座標系による三次元空間である。位置姿勢検出装置20の詳細な構成については後述する。
【0019】
本実施形態であるロボット装置は、ロボット10と位置姿勢検出装置20とを含んで構成される。
【0020】
検査装置30は、位置姿勢検出装置20から位置姿勢データを取得する際には、撮像装置11に対して静止画撮影要求信号を送信する。また、検査装置30は、外観検査処理の実行においては、撮像装置11に対して動画撮影開始要求信号および動画撮影停止要求信号を送信する。
検査装置30は、位置姿勢検出装置20から供給される位置姿勢データを取り込んで、対象物体5のロボット座標系の三次元空間における位置および姿勢を管理する。また、検査装置30は、撮像装置11から供給される動画像の画像データを順次または複数フレームおきに取り込み、公知のターゲットトラッキング処理にしたがってロボット本体12の姿勢を制御するためのロボット制御コマンドを生成し、このロボット制御コマンドをロボット制御装置40に供給する。
検査処理30は、画像データに含まれる対象物体画像について外観検査処理を実行する。外観検査処理は、例えば、公知技術であるテンプレートマッチング処理によって外観の異常等を検出する処理である。
【0021】
ロボット制御装置40は、検査装置30から供給されるロボット制御コマンドを取り込み、このロボット制御コマンドに基づいてロボット本体12の姿勢、つまり撮像装置11の位置および姿勢を制御する。
【0022】
図3は、位置姿勢検出装置20の機能構成を表すブロック図である。図3に示すように、位置姿勢検出装置20は、画像データ取得部201と、画像データ記憶部202と、テンプレート情報記憶部203と、一致度評価部204と、対応テーブル記憶部205と、位置姿勢計算部206とを備える。
なお、テンプレート情報記憶部203と、一致度評価部204と、対応テーブル記憶部205と、位置姿勢計算部206とは、位置姿勢データ生成部である。
【0023】
画像データ取得部201は、ロボット10の撮像装置11から供給される静止画像の画像データを取り込み、画像データ記憶部202に記憶させる。
画像データ記憶部202は、画像データ取得部201が取り込んだ画像データを記憶する。
【0024】
テンプレート情報記憶部203は、対象物体5のリファレンスについてのテンプレート情報をあらかじめ記憶する。リファレンスは、例えば、対象物体5の良品サンプルであり、その外観に傷や欠品等の異常がない状態のものである。テンプレート情報は、撮像装置11が、複数の視線方向それぞれからリファレンスを撮像して得た複数のテンプレート画像データと、複数のテンプレート画像それぞれについてのテンプレート位置姿勢データとを含む。複数の視線方向は、例えば互いに直交する方向であり、互いに直交する6方向でもよいし、これら6方向のうちリファレンスを通常使用の状態で水平面に載置した場合の鉛直下方を除く5方向でもよい。この鉛直下方を除くことにより、リファレンスの底面側のテンプレート画像を省略することができる。テンプレート位置姿勢データは、面の位置および姿勢を表す情報と、リファレンスの基準点(原点)と面との相対的な位置および姿勢を表す情報と、撮像装置11の位置および姿勢を表す情報と、撮像装置11と面との相対的な位置および姿勢を表す情報とを含む。
【0025】
なお、撮像装置11と面との相対的な位置および姿勢を表す情報は、あらかじめ記憶しておくのではなく、例えば一致度評価部204が、面の位置および姿勢を表す情報と撮像装置11の位置および姿勢を表す情報とから計算して求めるようにしてもよい。また、同様に、リファレンスの基準点(原点)と面との相対的な位置および姿勢を表す情報も計算して求めるようにしてもよい。
【0026】
テンプレート位置姿勢データについて詳しく説明する。
図4は、一面分のテンプレート位置姿勢データを表す概念図である。図4は、互いに直交する6方向のうち1方向(上方側)から対象物体5のリファレンスを撮像する場合を示している。
図4において、Σは、基準座標系であるロボット座標系(XYZ座標系)を表す。Pは、第1のテンプレート画像に対応する第1の面を示す。ΣC1は、第1の面Pを撮像する場合の、撮像装置11のカメラ座標系(XC1C1C1座標系)を表す。カメラ座標系ΣC1の原点O(オー)C1は、第1の面Pを撮像する撮像装置11の光軸に貫かれる点である。ΣObjは、リファレンスに対して設けたオブジェクト座標系(XObjObjObj座標系)を表す。例えば、ΣObjは、リファレンスの一つの角(頂点)に原点O(オー)Objを一致させて設けられる。ΣS1は、第1の面Pに原点O(オー)S1が含まれるように設けられた座標系(XS1S1S1座標系)を表す。
【0027】
また、図4において、t(ボールド体)S1およびR(ボールド体)S1は、ロボット座標系Σの原点Oから第1の面Pの座標系ΣS1の原点OS1に対する並進ベクトルおよび回転行列である。なお、“(ボールド体)”との記載は、その直前の文字がボールド体で表されることを示し、その文字がベクトルまたは行列であることを意味する。Δt(ボールド体)S1ObjおよびΔR(ボールド体)S1Objは、座標系ΣS1の原点OS1からオブジェクト座標系ΣObjの原点OObjに対する並進ベクトルおよび回転行列である。t(ボールド体)C1およびR(ボールド体)C1は、ロボット座標系Σの原点Oからカメラ座標系ΣC1の原点OC1に対する並進ベクトルおよび回転行列である。Δt(ボールド体)C1S1およびΔR(ボールド体)C1S1は、カメラ座標系ΣC1の原点OC1から座標系ΣS1の原点OS1に対する並進ベクトルおよび回転行列である。
【0028】
テンプレート情報記憶部203は、例えば6面分のテンプレート情報を記憶する場合、6面分のテンプレート画像データとテンプレート位置姿勢データとを記憶する。具体的には、テンプレート情報記憶部203は、面P(添字nは、6以下の正整数。以下同様。)に対応する第nのテンプレート画像データを記憶する。また、テンプレート情報記憶部203は、面の位置および姿勢を表す情報として、並進ベクトルt(ボールド体)Snおよび回転行列R(ボールド体)Snを記憶する。また、テンプレート情報記憶部203は、リファレンスの基準点(原点)と面との相対的な位置および姿勢を表す情報として、並進ベクトルΔt(ボールド体)SnObjおよび回転行列ΔR(ボールド体)SnObjを記憶する。また、テンプレート情報記憶部203は、撮像装置11の位置および姿勢を表す情報として、並進ベクトルt(ボールド体)Cnおよび回転行列R(ボールド体)Cnを記憶する。また、テンプレート情報記憶部203は、撮像装置11と面との相対的な位置および姿勢を表す情報として、並進ベクトルΔt(ボールド体)CnSnおよび回転行列ΔR(ボールド体)CnSnを記憶する。
【0029】
図3の説明に戻り、一致度評価部204は、画像データ記憶部202に記憶された画像データと、テンプレート情報記憶部203に記憶された全てのテンプレート画像データ(例えば、第1の面Pから第6の面Pまでに対応する第1〜第6のテンプレート画像データ)とについて、テンプレート画像データごとに、当該テンプレート画像データにおける視線方向を画像データにおける視線方向に変更した画像である変換画像データを生成し、画像データと変換画像データとの一致度を計算して所定基準により評価する。変換画像データは、一致度評価部204がテンプレート画像データにホモグラフィー行列を掛け合わせる演算処理を行うことによって得られる。一致度は、一致度評価部204が画像データと変換画像データとの画像マッチング処理(パターンマッチング処理)を行うことにより得られる。この一致度は、例えば、画像データと変換画像データとの輝度差の絶対値の総和や輝度差の2乗和である。
【0030】
一致度評価部204は、一致度が閾値を超える場合に、変換画像データが有効であるとの評価結果を出力し、一致度が閾値以下である場合に、変換画像データが無効であるとの評価結果を出力する。有効および無効は、例えば、面の可視および非可視を示す。例えば、一致度評価部204は、一致度の評価結果を有効フラグの状態により表す。具体的には、一致度評価部204は、例えば、変換画像データが有効であるとの評価結果を有効フラグ=“ON”(“1”)により表し、変換画像データが無効であるとの評価結果を有効フラグ=“OFF”(“0”)により表す。
一致度評価部204は、全てのテンプレート画像データについての一致度の評価結果と後述する各種関連情報とを格納した対応テーブルを生成して対応テーブル記憶部205に記憶させる。
【0031】
ここで、ホモグラフィー行列について説明する。三次元空間における撮像装置の座標系をFとし、この撮像装置が任意の点Aを撮像して得る画像における点Aの像をp(ボールド体)=[u 1]とする。前記の撮像装置を移動し、その移動先における撮像装置の座標系をFとし、この撮像装置が前記の点Aを撮像して得る画像における点Aの像をp(ボールド体)=[u v 1]とする。また、FとFとの相対距離を表す並進ベクトルをt(ボールド体)とし、姿勢変化を表す回転行列をR(ボールド体)とする。
【0032】
点Aが平面π上に存在するとき、点p(ボールド体)と点p(ボールド体)との関係を表す式として下記の式(1)が成立する場合を考える。ただし、sは、点Aと2つの座標系FとFとの距離の割合で決まる値である。G(ボールド体)は、ホモグラフィー行列である。
【0033】
【数1】

【0034】
ホモグラフィー行列G(ボールド体)は、3行3列の行列であり、下記の式(2)のように表される。
【0035】
【数2】

【0036】
また、ホモグラフィー行列G(ボールド体)は、下記の式(3)のように表すことができる。ただし、dは、撮像装置と平面πとの間の距離、n(ボールド体)は、平面πの法線ベクトルである。
【0037】
【数3】

【0038】
ホモグラフィー行列G(ボールド体)を推定することができれば、並進ベクトルt(ボールド体)、回転行列R(ボールド体)、平面πの法線ベクトルn(ボールド体)、および撮像装置と平面πとの間の距離dを計算することができる。
【0039】
平面π上に存在する全ての点における、各点の撮像画像への投影点の座標の組を、式(1)を用いて表すと以下のようになる。まず、値sを下記の式(4)のように定義する。
【0040】
【数4】

【0041】
式(1)および式(4)により、下記の式(5)が成立する。ただし、w(ボールド体)は、ホモグラフィー行列G(ボールド体)の関数であり、透視投影変換行列である。この透視投影変換行列を用いて点p(ボールド体)を対応する点p(ボールド体)に変換することを、透視投影変換と呼ぶ。
【0042】
【数5】

【0043】
式(5)によれば、平面π上に存在する点については、その平面πのホモグラフィー行列が既知であれば、一方の撮像画像上の点に対して他方の撮像画像上の対応する点を一意に求めることができる。
したがって、ホモグラフィー行列を求めることにより、元画像に対して、注目画像がどれだけ並進し、またどれだけ回転しているかを求めること、言い換えると、注目領域のトラッキングを行うことができる。
【0044】
次に、一致度評価部204が生成する対応テーブルについて説明する。
図5は、対応テーブルのデータ構成を表す図である。図5に示すように、対応テーブルは、「テンプレート画像番号」と、「有効フラグ」と、「マッチング開始位置」と、「ホモグラフィー行列要素」との各項目を対応付けたデータテーブルである。「テンプレート画像番号」は、テンプレート情報記憶部203に記憶されたテンプレート画像データを識別する情報の項目である。「有効フラグ」は、一致度の評価結果の項目である。“ON”(“1”)は、変換画像データが有効であるとの評価結果であり、“OFF”(“0”)は、変換画像データが無効であるとの評価結果である。「マッチング開始位置」は、一致度評価部204が一致度を評価したときの、画像データ上の画像マッチングの開始位置の項目である。この開始位置は、具体的には座標値であり、例えば、マッチングさせる変換画像データの左上端の位置に対応する画像データの座標値である。「ホモグラフィー行列要素」は、一致度評価部204が一致度を評価したときの、ホモグラフィー行列の要素の項目である。
【0045】
図3の説明に戻り、対応テーブル記憶部205は、一致度評価部204が新規に生成、または更新した対応テーブルを記憶する。
【0046】
位置姿勢計算部206は、画像データにおける有効な面の中から信頼性が最も高い一面を検出し、この面に基づき対象物体5の位置および姿勢を求めて位置姿勢データとし、この位置姿勢データを検査装置30に供給する。具体的には、位置姿勢計算部206は、画像データ記憶部202から画像データを読み込み、対応テーブル記憶部205から対応テーブルを読み込み、テンプレート情報記憶部203からテンプレート位置姿勢データを読み込む。そして、位置姿勢計算部206は、変換画像データが有効であるとの評価結果を示すテンプレート画像データごとに、画像データと変換画像データとの類似度を計算し、最も高い類似度となる面とホモグラフィー行列とを選択する。類似度は、位置姿勢計算部206が例えば正規化相互相関(Normalized Cross−Correlation)を計算することによって得られる。
【0047】
なお、位置姿勢計算部206は、正規化相互相関以外にも、SSD(Sum of Squared Difference)やSAD(Sum of Absolute Difference)等を計算することによって類似度を求めてもよい。
【0048】
位置姿勢計算部206は、選択したホモグラフィー行列に基づいて、選択した面に対応する座標系の原点から変換画像の座標系の原点に対する並進ベクトルおよび回転行列を計算する。具体的には、位置姿勢計算部206は、選択したホモグラフィー行列を特異値分解することによって並進ベクトルおよび回転行列を得る。また、位置姿勢計算部206は、撮像装置11の現在の位置および姿勢の情報(並進ベクトルおよび回転行列)を、例えばロボット本体12またはロボット制御装置40から取得する。そして、位置姿勢計算部206は、ロボット座標系の原点から変換画像の座標系の原点に対する並進ベクトルおよび回転行列を計算し、さらにこれら計算した並進ベクトルおよび回転行列に基づいて、ロボット座標系の原点から対象物体5の原点に対する並進ベクトルおよび回転行列を計算し、この計算結果を位置姿勢データとして検査装置30に供給する。ここでの計算の方法については後述する。
【0049】
位置姿勢検出装置20において、画像データ記憶部202と、テンプレート情報記憶部203と、対応テーブル記憶部205とは、例えば、半導体記憶装置もしくは磁気ハードディスク装置またはこれらの組み合わせにより実現される。
【0050】
次に、本実施形態における検査システム1の動作を説明する。
図6は、検査システム1の外観検査処理の手順を表すフローチャートである。図6のフローチャートの処理を開始する前に、検査システム1の検査装置30は、位置姿勢検出装置20から位置姿勢データを取得するために、撮像装置11に対して静止画撮影要求信号を送信する。
まず、ステップS1において、位置姿勢検出装置20は、対象物体の位置および姿勢の検出処理を実行し、ロボット座標系における対象物体5の位置および姿勢を表す位置姿勢データを生成し、この位置姿勢データを検査装置30に供給する。この対象物体の位置および姿勢の検出処理の詳細については後述する。
【0051】
次に、ステップS2において、検査装置30は、位置姿勢検出装置20から供給された位置姿勢データを取り込んで記憶する。
次に、検査装置30は、例えば、オペレーターによる操作によって撮像装置11の撮影の位置および姿勢の入力を受け付け、その位置および姿勢を指定する内容のロボット制御コマンドを生成し、このロボット制御コマンドをロボット制御部40に供給する。
次に、ロボット制御部40は、検査装置30から供給されたロボット制御コマンドを取り込み、このロボット制御コマンドにしたがってロボット本体12の動作を制御する。これによって、撮像装置11は、オペレーターが指定した位置および姿勢に設定される。
【0052】
次に、ステップS3において、検査装置30は、外観検査処理を実行するために、撮像装置11に対して動画撮影開始要求信号を送信する。
次に、検査装置30は、撮像装置11から供給される動画像の画像データを順次または複数フレームおきに取り込む。
次に、ステップS4において、検査装置30は、テンプレートマッチング処理を実行することによって画像データから対象物体5を検出して外観検査を行う。
次に、検査装置30は、撮像装置11に対して動画撮影停止要求信号を送信する。そして、動画撮影停止要求信号を受信した撮像装置11は、撮像動作を停止する。
【0053】
次に、位置姿勢検出装置20が実行する対象物体の位置および姿勢の検出処理について説明する。
図7〜図9は、位置姿勢検出装置20が実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
まず、図7のステップS101において、画像データ取得部201は、ロボット10の撮像装置11から供給される静止画像の画像データを取り込み、この画像データを画像データ記憶部202に記憶させる。
次に、ステップS102において、一致度評価部204は、画像データ記憶部202から画像データを読み込み、テンプレート情報記憶部203から一面のテンプレート画像データを読み込む。
【0054】
次に、ステップS103において、一致度評価部204は、ホモグラフィー行列の要素に初期値を設定する。ここでの初期値は、並進の範囲および回転の範囲それぞれにおける下限または上限を示す値である。
次に、ステップS104において、一致度評価部204は、テンプレート画像データを射影変換して変換画像データを生成する。具体的には、一致度評価部204は、テンプレート画像データにホモグラフィー行列を掛け合わせる演算を行なって変換画像データを生成する。
【0055】
次に、ステップS105において、一致度評価部204は、画像データと変換画像データとの画像マッチング処理についての画像データ上の開始位置に初期値を設定する。例えば、一致度評価部204は、画像データの左上の座標値を開始位置に設定する。
次に、ステップS106において、一致度評価部204は、画像データと変換画像データとの画像マッチング処理を行って一致度を計算する。一致度評価部204は、例えば、画像データと変換画像データとの輝度差の絶対値の総和または輝度差の2乗和を計算し、この値を一致度とする。
【0056】
次に、図8のステップS107において、一致度が閾値を超える場合(S107:YES)はステップS108の処理に移り、一致度が閾値以下である場合(S107:NO)はステップS110の処理に移る。
【0057】
ステップS107:YESに続くステップS108において、一致度評価部204は、有効フラグ=“ON”と、画像マッチングの開始位置と、ホモグラフィー行列の要素とを、当該テンプレート画像データのテンプレート画像番号に対応させて対応テーブルに格納し、この対応テーブルを対応テーブル記憶部205に記憶させる。なお、対応テーブル記憶部205に対応テーブルがすでに記憶されている場合は、一致度評価部204は、対応テーブルにデータを追加する。
【0058】
ステップS108またはステップS112に続くステップS109において、他のテンプレート画像データがある場合(S109:YES)はステップS102の処理に戻り、他のテンプレート画像データがない場合(S109:NO)はステップS115の処理に移る。
【0059】
ステップS107:NOに続くステップS110において、画像データにおける画像全体のトラッキングが完了した場合(S110:YES)はステップS111の処理に移り、未完了である場合(S110:NO)はステップS113の処理に移る。
【0060】
ステップS110:YESに続くステップS111において、ホモグラフィー行列の要素が回転の範囲および並進の範囲それぞれにおける限度値に達している場合(S111:YES)はステップS112の処理に移り、限度値に達していない場合(S111:NO)はステップS114の処理に移る。
【0061】
ステップS111:YESに続くステップS112において、一致度評価部204は、有効フラグ=“OFF”を当該テンプレート画像データのテンプレート画像番号に対応させて対応テーブルに格納し、この対応テーブルを対応テーブル記憶部205に記憶させる。なお、対応テーブル記憶部205に対応テーブルがすでに記憶されている場合は、一致度評価部204は、対応テーブルにデータを追加する。
次に、ステップS109の処理に移る。
【0062】
ステップS110:NOに続くステップS113において、一致度評価部204は、画像データと変換画像データとの画像マッチング処理についての画像データ上の開始位置を変更する。例えば、一致度評価部204は、開始位置を画像の水平方向および垂直方向またはいずれか一方向に一画素分または複数画素数分ずらす。
次に、ステップS106の処理に戻る。
【0063】
ステップS111:NOに続くステップS114において、一致度評価部204は、ホモグラフィー行列の要素を変更する。例えば、一致度評価部204は、回転の範囲内および並進の範囲内において回転成分および並進成分が所定ステップ分変更されるよう、ホモグラフィー行列の要素を変更する。
次に、ステップS104の処理に戻る。
【0064】
ステップS109:NOに続く図9のステップS115において、位置姿勢計算部206は、画像データ記憶部202から画像データを読み込み、対応テーブル記憶部205から対応テーブルを読み込み、テンプレート情報記憶部203からテンプレート情報を読み込む。
次に、位置姿勢計算部206は、変換画像データが有効であるとの評価結果を示すテンプレート画像データ、すなわち、有効フラグが“ON”であるテンプレート画像データごとに、画像データと変換画像データとの類似度を計算する。ただし、変換画像データは、位置姿勢計算部206が当該テンプレート画像データにホモグラフィー行列を掛け合わせる演算を行うことによって得られる。位置姿勢計算部206は、画像データと変換画像データとの類似度を、例えば正規化相互相関を計算することにより得る。
【0065】
次に、ステップS116において、位置姿勢計算部206は、最も高い類似度となる面とホモグラフィー行列とを選択する。
【0066】
次に、ステップS117において、位置姿勢計算部206は、選択したホモグラフィー行列に基づいて、選択した面に対応する座標系の原点から変換画像の座標系の原点に対する、並進ベクトルおよび回転行列を計算する。具体的には、位置姿勢計算部206は、ホモグラフィー行列を特異値分解して並進ベクトルおよび回転行列を得る。
次に、位置姿勢計算部206は、撮像装置11の現在の位置および姿勢の情報(並進ベクトルおよび回転行列)を、例えばロボット本体12またはロボット制御装置40から取得する。
【0067】
次に、ステップS118において、位置姿勢計算部206は、ロボット座標系の原点から変換画像の座標系の原点に対する、並進ベクトルおよび回転行列を計算し、さらに、これら計算した並進ベクトルおよび回転行列に基づいて、ロボット座標系の原点から対象物体5の基準点(原点)に対する並進ベクトルおよび回転行列を計算し、この計算結果を位置姿勢データとして検査装置30に供給する。
【0068】
図10は、位置姿勢計算部206によるステップS117およびステップS118の処理の内容を模式的に表した図である。図10は、位置姿勢計算部206によって選択された最も高い類似度となる面が第1の面Pである場合の図である。図10において、Δt(ボールド体)S1およびΔR(ボールド体)S1は、ステップS117の処理において、位置姿勢計算部206によりホモグラフィー行列を特異値分解して得られた、第1の面Pの座標系の原点から変換画像の座標系ΣS1の原点OS1に対する並進ベクトルおよび回転行列である。t(ボールド体)およびR(ボールド体)は、ロボット座標系Σの原点Oから現在のカメラ座標系Σの原点O(オー)に対する並進ベクトルおよび回転行列である。t(ボールド体)S1およびR(ボールド体)S1は、ロボット座標系Σの原点Oから変換画像の座標系ΣS1の原点OS1に対する並進ベクトルおよび回転行列である。Δt(ボールド体)C1S1およびΔR(ボールド体)C1S1は、テンプレート画像を取得したときのカメラ座標系ΣC1の原点OC1から第1の面Pの座標系Σの原点に対する並進ベクトルおよび回転行列である。t(ボールド体)ObjおよびR(ボールド体)Objは、ロボット座標系Σの原点Oから対象物体5の座標系ΣObjの原点OObjに対する並進ベクトルおよび回転行列であり、ステップS118の処理において位置姿勢計算部206が算出した位置姿勢データである。
【0069】
図10に示すように、位置姿勢計算部206は、並進ベクトルt(ボールド体)Smおよび回転行列R(ボールド体)Sm(ただし、添字mは、最も類似度が高い面を示す。以下同様。)を、下記の式(6)により計算する。
【0070】
【数6】

【0071】
次に、位置姿勢計算部206は、t(ボールド体)ObjおよびR(ボールド体)Objを、下記の式(7)により計算する。
【0072】
【数7】

【0073】
以上詳述したように、本発明の第1実施形態では、位置姿勢検出装置20は、撮像装置11からの視線方向ごとに、対象物体5のリファレンスを撮像して得たテンプレート画像データと、面の位置および姿勢を表す情報と、リファレンスの基準点(原点)と面との相対的な位置および姿勢を表す情報と、撮像装置11の位置および姿勢を表す情報と、撮像装置11と面との相対的な位置および姿勢を表す情報とを保有するようにした。そして、位置姿勢検出装置20は、撮像装置11から供給される対象物体5の平面画像を含む画像データと全てのテンプレート画像データとに基づいて画像データから有効な面(例えば、可視面)を検出し、さらに有効な面の中から信頼性が最も高い面を検出し、この面に基づいて対象物体の位置および姿勢を求め、位置姿勢データとして検査装置30に供給するようにした。そして、検査装置30は、位置姿勢検出装置20から供給される位置姿勢データを取り込んで、対象物体5のロボット座標系の三次元空間における位置および姿勢を管理するようにした。
【0074】
このように構成したことにより、本実施形態によれば、可視面の中で信頼性が最も高い面に基づいて対象物体の位置および姿勢を得るため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
また、本実施形態によれば、可視面のうち代表する一面のみを使用して位置および姿勢を求めるため、計算にかかる負荷は軽い。
【0075】
[第2の実施の形態]
本発明の第2実施形態は、上述した第1実施形態における位置姿勢検出装置20を別形態に変更したものである。
図11は、本発明の第2実施形態であるロボット装置を適用した検査システムの概略の機能構成を表すブロック図である。図11に示すように、検査システム1aは、第1実施形態における検査システム1の位置姿勢検出装置20を位置姿勢検出装置20aに変更した構成を有する。そこで、本実施形態では、第1実施形態と相違する構成である位置姿勢検出装置20aについて具体的に説明し、その他第1実施形態と共通する構成についての説明を省略する。
【0076】
本実施形態であるロボット装置は、ロボット10と位置姿勢検出装置20aとを含んで構成される。
【0077】
位置姿勢検出装置20aは、撮像装置11から取得する画像データについて、画像の特徴量に基づくマッチング処理によって対象物体5の各面の位置および姿勢を検出し、この検出結果に基づいて現在の撮像装置11の視点(現視点)から可視である全ての面(可視面)を検出する。そして、位置姿勢検出装置20aは、全ての可視面の中からテンプレート画像との類似度が最も高い面を選択する(以上、第1の位置姿勢検出処理)。そして、位置姿勢検出装置20aは、全ての可視面を用いて合成モデル画像データを生成し、この合成モデル画像データに基づいて三次元空間における対象物体5の位置および姿勢を評価して計算し(第2の位置姿勢検出処理)、その位置姿勢データを検査装置30に供給する。
【0078】
図12は、位置姿勢検出装置20aの機能構成を表すブロック図である。図12に示すように、位置姿勢検出装置20aは、画像データ取得部211と、画像データ記憶部212と、特徴データ生成部213と、テンプレート特徴データ記憶部214と、第1位置姿勢計算部215と、テンプレート情報記憶部216と、合成モデル画像生成部217と、第2位置姿勢計算部218とを備える。
なお、特徴データ生成部213と、テンプレート特徴データ記憶部214と、第1位置姿勢計算部215と、テンプレート情報記憶部216と、合成モデル画像生成部217と、第2位置姿勢計算部218とは、位置姿勢データ生成部である。
【0079】
画像データ取得部211は、ロボット10の撮像装置11から供給される静止画像の画像データを取り込み、画像データ記憶部212に記憶させる。
画像データ記憶部212は、画像データ取得部211が取り込んだ画像データを記憶する。
【0080】
特徴データ生成部213は、画像データ記憶部212から画像データを読み込んでこの画像データから複数の特徴点を抽出し、各特徴点における特徴量と当該特徴点の位置情報とを対応付けた特徴データを生成し、この特徴データを第1位置姿勢計算部215に供給する。特徴点は、例えば輝度値や色が急変する点であり、例えば頂点や模様の交点等が該当する。特徴量は画像の特徴量である。例えば、特徴データ生成部213は、複数の画素を含む小領域ごとに輝度のガウス分布の状態を調べて特徴量を抽出する公知のSIFT(Scale−Invariant Feature Transform)処理を実行してSIFT特徴量を求め、このSIFT特徴量を特徴量として用いる。また、特徴データ生成部213は、SURF(Speed−Up Robust Features)を適用してもよい。特徴点の位置情報は、画像データの例えば左上端の位置を原点として得られる特徴点の座標値または位置ベクトルである。
【0081】
テンプレート特徴データ記憶部214は、対象物体5のリファレンスについてのテンプレート特徴データを記憶する。テンプレート特徴データは、リファレンスのテンプレート画像データから抽出した複数の特徴点それぞれにおける特徴量と当該特徴点の位置情報とを対応付けたデータである。テンプレート特徴データ記憶部214は、三次元空間におけるリファレンスの周囲からの複数の視線それぞれに対応するテンプレート特徴データを、視線ごとに記憶する。
【0082】
第1位置姿勢計算部215は、第1の位置姿勢検出処理を実行する。すなわち、第1位置姿勢計算部215は、特徴データ生成部213から供給される特徴データを取り込み、テンプレート特徴データ記憶部214からテンプレート特徴データを読み込む。そして、第1位置姿勢計算部215は、特徴データにおける特徴量とテンプレート特徴データにおける特徴量とのマッチング処理を実行し、マッチする特徴量に対応する特徴点の位置情報を抽出する。そして、第1位置姿勢計算部215は、その位置情報に基づいて対象物体5の各面の位置および姿勢を検出する。具体的には、第1位置姿勢計算部215は、同一面に属する少なくとも4点の特徴点が、現在の画像の面に一致するようにテンプレート画像をホモグラフィー変換してマッチング処理し、一致したときのホモグラフィー行列を特異値分解して対象物体5の各面の位置および姿勢を計算する。そして、第1位置姿勢計算部215は、この計算結果に基づいて現視点から全ての可視面を検出する。また、第1位置姿勢計算部215は、全ての可視面の中から、可視面の画像とテンプレート画像との類似度が最も高い面(基準面)の位置および姿勢を選択する。この基準面は、例えば、現視点においてテンプレート画像に対し歪みや傾きが少ない面である。
【0083】
テンプレート情報記憶部216は、対象物体5のリファレンスについてのテンプレート情報をあらかじめ記憶する。テンプレート情報は、第1実施形態と同様に、複数の視線方向(例えば、互いに直交する6方向)それぞれからリファレンスを撮像して得た複数のテンプレート画像データと、複数のテンプレート画像それぞれについてのテンプレート位置姿勢データとを含む。つまり、テンプレート位置姿勢データは、面の位置および姿勢を表す情報と、リファレンスの基準点(原点)と面との相対的な位置および姿勢を表す情報と、撮像装置11の位置および姿勢を表す情報と、撮像装置11と面との相対的な位置および姿勢を表す情報とを含む。さらに、本実施形態では、テンプレート情報は、複数の面に対応する複数のテンプレート画像同士の位置および姿勢の関係を表すテンプレート位置姿勢関係データを含む。
【0084】
なお、撮像装置11と面との相対的な位置および姿勢を表す情報は、あらかじめ記憶しておくのではなく、例えば合成モデル画像生成部217が、面の位置および姿勢を表す情報と撮像装置11の位置および姿勢を表す情報とから計算して求めるようにしてもよい。また、同様に、リファレンスの基準点(原点)と面との相対的な位置および姿勢を表す情報も計算して求めるようにしてもよい。
【0085】
テンプレート位置姿勢関係データは、全てのテンプレート画像同士の相対的な並進ベクトルおよび回転行列である。具体的には、6面分のテンプレート画像データについて、第iのテンプレート画像から第jのテンプレート画像に対する並進ベクトルおよび回転行列を(t(ボールド体)ij,R(ボールド体)ij)とすると、テンプレート位置姿勢関係データは、例えば、(t(ボールド体)12,R(ボールド体)12)、(t(ボールド体)13,R(ボールド体)13)、(t(ボールド体)14,R(ボールド体)14)、(t(ボールド体)15,R(ボールド体)15)、(t(ボールド体)16,R(ボールド体)16)、(t(ボールド体)23,R(ボールド体)23)、(t(ボールド体)24,R(ボールド体)24)、(t(ボールド体)25,R(ボールド体)25)、(t(ボールド体)26,R(ボールド体)26)、(t(ボールド体)34,R(ボールド体)34)、(t(ボールド体)35,R(ボールド体)35)、(t(ボールド体)36,R(ボールド体)36)、(t(ボールド体)45,R(ボールド体)45)、(t(ボールド体)46,R(ボールド体)46)、および(t(ボールド体)56,R(ボールド体)56)である。
【0086】
合成モデル画像生成部217および第2位置姿勢計算部218は、第2の位置姿勢検出処理を実行する。
まず、合成モデル画像生成部217は、第1位置姿勢計算部215から、全ての可視面に対応する特徴点の位置情報と基準面の位置および姿勢とを取り込み、テンプレート情報記憶部216からテンプレート情報を読み込む。そして、合成モデル画像生成部217は、取り込んだ特徴点の位置情報と基準面の位置および姿勢とテンプレート情報とに基づいて、現視点において可視となる合成モデル画像データを生成し、この合成モデル画像データを第2位置姿勢計算部218に供給する。
【0087】
また、合成モデル画像生成部217は、第2位置姿勢計算部218から供給される類似度を取り込み、この類似度が閾値以下である場合、基準面の位置および姿勢を微小変化させた状態の合成モデル画像データを生成し、この合成モデル画像データを第2位置姿勢計算部218に供給する。
また、合成モデル画像生成部217は、第2位値姿勢計算部218から供給された類似度が前記の閾値を超える値である場合、微調整完了を示すステータス情報を第2位置姿勢計算部218に供給する。
【0088】
第2位置姿勢計算部218は、画像データと合成モデル画像データとに基づいて、対象物体5の位置および姿勢を評価して求め、この求めた位置および姿勢を位置姿勢データとして検査装置30に供給する。具体的には、第2位置姿勢計算部218は、合成モデル画像生成部217から供給される合成モデル画像データを取り込み、画像データ記憶部212から画像データを読み込む。そして、第2位置姿勢計算部218は、合成モデル画像データを射影変換した変換合成モデル画像データと画像データとの類似度を計算し、この類似度を合成モデル画像生成部217に供給する。類似度は、第2位置姿勢計算部218が例えば正規化相互相関(Normalized Cross−Correlation)を計算することによって得られる。
【0089】
なお、第2位置姿勢計算部218は、正規化相互相関以外にも、SSD(Sum of Squared Difference)やSAD(Sum of Absolute Difference)等を計算することによって類似度を求めてもよい。
【0090】
また、第2位置姿勢計算部218は、合成モデル画像生成部217から供給されるステータス情報を取り込むと、撮像装置11の現在の位置および姿勢の情報(並進ベクトルおよび回転行列)を、例えばロボット本体12またはロボット制御装置40から取得する。そして、第2位置姿勢計算部218は、ロボット座標系の原点から変換合成モデル画像の座標系の原点に対する、並進ベクトルおよび回転行列を計算し、この計算結果を位置姿勢データとして検査装置30に供給する。
【0091】
位置姿勢検出装置20aにおいて、画像データ記憶部212と、テンプレート特徴データ記憶部214と、テンプレート情報記憶部216とは、例えば、半導体記憶装置もしくは磁気ハードディスク装置またはこれらの組み合わせにより実現される。
【0092】
次に、位置姿勢検出装置20aが実行する対象物体の位置および姿勢の検出処理について説明する。
図13および図14は、位置姿勢検出装置20aが実行する対象物体の位置および姿勢の検出処理の手順を表すフローチャートである。
まず、図13のステップS201において、画像データ取得部211は、ロボット10の撮像装置11から供給される静止画像の画像データを取り込み、この画像データを画像データ記憶部212に記憶させる。
次に、ステップS202において、特徴データ生成部213は、画像データ記憶部212から画像データを読み込んでこの画像データから複数の特徴点を抽出し、各特徴点における特徴量(例えばSIFT特徴量)と当該特徴点の位置情報(位置ベクトル)とを対応付けた特徴データを生成し、この特徴データを第1位置姿勢計算部215に供給する。
【0093】
次に、ステップS203において、第1位置姿勢計算部215は、特徴データ生成部213から供給される特徴データを取り込み、テンプレート特徴データ記憶部214からテンプレート特徴データを読み込む。
次に、第1位置姿勢計算部215は、特徴データにおける特徴量とテンプレート特徴データにおける特徴量とのマッチング処理を実行し、マッチする特徴量に対応する特徴点の位置情報を抽出する。このマッチング処理では、第1位置姿勢計算部215は相関度を計算する。例えば、第1位置姿勢計算部215は、特徴データにおける特徴量Aとテンプレート特徴データにおける特徴量Bとのユークリッド距離を計算し、このユークリッド距離が閾値以下となる特徴量Aを、マッチする特徴量として検出する。
次に、第1位置姿勢計算部215は、抽出した位置情報に基づいて対象物体5の各面の位置および姿勢を検出する。
次に、第1位置姿勢計算部215は、検出結果に基づいて現視点から全ての可視面を検出し、これら全ての可視面の中からテンプレート画像との類似度が最も高い面、つまり基準面の位置および姿勢を選択する。
【0094】
次に、ステップS204において、合成モデル画像生成部217は、第1位置姿勢計算部215から供給される特徴点の位置情報を取り込む。
次に、合成モデル画像生成部217は、特徴点の位置情報から得られるモデルにおいて可視である一面を選択し、この選択した一面に対応するテンプレート画像データとテンプレート位置姿勢データとをテンプレート情報記憶部216から読み込む。
【0095】
次に、ステップS205において、合成モデル画像生成部217は、読み込んだテンプレート画像データから当該一面に射影変換するためのホモグラフィー行列を計算する。具体的には、合成モデル画像生成部217は、ロボット座標系におけるテンプレート画像の位置および姿勢と一面の位置情報とに基づいてホモグラフィー行列を計算する。
【0096】
次に、ステップS206において、合成モデル画像生成部217は、テンプレート画像データを射影変換して変換画像データを生成し、この変換画像データを記憶する。具体的には、合成モデル画像生成部217は、テンプレート画像データにホモグラフィー行列を掛け合わせる演算を行なって変換画像データを生成し、この変換画像データを内部の記憶領域に記憶する。
【0097】
次に、ステップS207において、可視である他の面がある場合(S207:YES)はステップS204の処理に移り、可視である他の面がない場合(S207:NO)はステップS208の処理に移る。
【0098】
ステップS207:YESに続くステップS208において、合成モデル画像生成部217は、内部の記憶領域から変換画像データを読み込み、テンプレート情報記憶部216からテンプレート位置姿勢関係データを読み込む。
次に、合成モデル画像生成部217は、テンプレート位置姿勢関係データに基づいて変換画像データを合成して合成モデル画像データを生成し、この合成モデル画像データを第2位置姿勢計算部218に供給する。
【0099】
次に、図14のステップS209において、第2位置姿勢計算部218は、合成モデル画像生成部217から供給される合成モデル画像データを取り込み、画像データ記憶部212から画像データを読み込む。
次に、第2位置姿勢計算部218は、ホモグラフィー行列の要素に初期値を設定する。ここでの初期値は、前述したステップS203の処理において第1位置姿勢計算部215がマッチング処理によって取得した基準面の位置および姿勢に基づき決定されるものである。
【0100】
次に、ステップS210において、第2位置姿勢計算部218は、合成モデル画像データを射影変換して変換モデル画像データを生成する。具体的には、第2位置姿勢計算部218は、合成モデル画像データにホモグラフィー行列を掛け合わせる演算を行って変換モデル画像データを生成する。
【0101】
次に、ステップS211において、第2位置姿勢計算部218は、画像データと変換合成モデル画像データとの類似度を、例えば正規化相互相関を計算することによって取得し、この類似度を合成モデル画像生成部217に供給する。
【0102】
次に、ステップS212において、合成モデル画像生成部217は、第2位置姿勢計算部218から供給される類似度を取り込む。そして、類似度が閾値を超える場合(S212:YES)、合成モデル画像生成部217は、微調整完了を示すステータス情報を第2位置姿勢計算部218に供給し、次に、ステップS213の処理に移る。
一方、類似度が閾値以下である場合(S212:NO)はステップS215の処理に移る。
【0103】
ステップS212:YESに続くステップS213において、第2位置姿勢計算部218は、合成モデル画像生成部217から供給されるステータス情報を取り込むと、撮像装置11の現在の位置および姿勢の情報(並進ベクトルおよび回転行列)を、例えばロボット本体12またはロボット制御装置40から取得する。
【0104】
次に、ステップS214において、第2位置姿勢計算部218は、ロボット座標系の原点から変換合成モデル画像の座標系の原点に対する、並進ベクトルおよび回転行列を前記の式(6)を用いて計算し、さらに、これら計算した並進ベクトルおよび回転行列に基づいて、ロボット座標系の原点から対象物体5の基準点(原点)に対する並進ベクトルおよび回転行列を前記の式(7)を用いて計算し、この計算結果を位置姿勢データとして検査装置30に供給する。そして、本フローチャートの処理を終了する。
【0105】
ステップS212:NOに続くステップS215において、合成モデル画像生成部217は、基準面の位置および姿勢を微小変化させた状態の合成モデル画像データを生成し、この合成モデル画像データを第2位置姿勢計算部218に供給する。ステップS209,S210,S211,S212:NO,S215,S210,・・・,S212:YESのルーチンは、公知のESM(Efficient Second−order Minimization Method)による収束法を適用できる。
【0106】
以上詳述したように、本発明の第2実施形態では、位置姿勢検出装置20aは、撮像装置11から取得する画像データについて、画像の特徴量に基づくマッチング処理によって対象物体5の位置および姿勢を検出し、その検出結果に基づいて現視点からの全ての可視面を用いた合成モデル画像データを生成するようにした。そして、位置姿勢検出装置20aは、その合成モデル画像データに基づいて三次元空間における対象物体5の位置および姿勢を計算し、この計算結果を位置姿勢データとして検査装置30に供給するようにした。そして、検査装置30は、位置姿勢検出装置20aから供給される位置姿勢データを取り込んで、対象物体5のロボット座標系における位置および姿勢を管理するようにした。
【0107】
このように構成したことにより、本実施形態によれば、現視点からの全ての可視面を用いて対象物体の位置および姿勢を得るため、第1実施形態に対してより高精度に、対象物体の立体空間における位置および姿勢を検出することができる。
【0108】
以上により、第1実施形態および第2実施形態によれば、撮像して得た対象物体の平面画像に見えている面に対応する一または複数のテンプレート画像データとテンプレート位置姿勢データとに基づいて対象物体の位置および姿勢を計算するため、平面画像により表現された対象物体の立体空間における位置および姿勢を高精度に検出することができる。
【0109】
なお、第1実施形態および第2実施形態に基づく別の実施形態として、位置姿勢検出装置は、位置姿勢検出装置20および位置姿勢検出装置20a両方の構成を併せ備え、第1位置姿勢計算部215によって計算される類似度に応じて位置姿勢検出装置20の機能と位置姿勢検出装置20aの機能とを切り替えるようにしてもよい。具体的には、別実施形態における位置姿勢検出装置は、例えば、位置姿勢検出装置20aの第1位置姿勢計算部215が、可視面ごとに計算する当該可視面の画像とテンプレート画像との類似度の全てが閾値以下である場合、言い換えると、基準面に対応する類似度が前記の閾値以下である場合に、位置姿勢検出装置20a側の構成に切り替えて処理を行うようにする。
【0110】
このように構成することによって、基準面の歪みや変形の度合いが比較的低い場合は、一面に基づく処理を行わせ、一方、基準面の歪みや変形の度合いが比較的高い場合は、可視面全てに基づく処理を行わせることができる。つまり、可視面の状態(例えば、歪みや変形)に応じて、一面に基づく対象物体5の位置および姿勢の検出処理と、可視面全てに基づく検出処理とを切り替えることができ、視点による検出精度のばらつきを抑えることができる。
【0111】
また、第1実施形態および第2実施形態では、ロボット10を、ロボット本体12が撮像装置11を可動に支持する構成とし、対象物体5およびリファレンスを固定的に設置することとした。これ以外に、例えば、ロボット10を、ロボット本体12が対象物体5およびリファレンスいずれかを可動に支持する構成とし、撮像装置11を固定的に設置することとしてもよい。
【0112】
また、撮像装置11(第1の撮像装置)の他に、対象物体5を視野に含めて撮像する別の撮像装置(第2の撮像装置)を固定設置するようにしてもよい。この場合、撮像装置11を、撮像装置11と対象物体5との相対的な位置および姿勢を変えて外観検査を行う処理のみに適用し、別の撮像装置を対象物体5の位置および姿勢を検出する処理にのみ適用する。そして、位置姿勢検出装置20,20aは、ロボット座標系Σの原点Oから現在のカメラ座標系Σの原点Oに対する並進ベクトルt(ボールド体)および回転行列R(ボールド体)をあらかじめ計算して記憶しておく。
このように構成することにより、前記の式(6)を計算するにあたり、並進ベクトルt(ボールド体)および回転行列R(ボールド体)を都度計算する必要がない。
【0113】
また、第1実施形態および第2実施形態では、テンプレート画像データは、例えばリファレンスを撮像して得られる撮像画像データである例としたが、これ以外にも、CAD(Computer Aided Disign)データやCG(Computer Graphics)データを使用することもできる。CADデータやCGデータのフォーマットは限定されず、撮像により得られるテンプレート画像と同様に、形状、模様が視認可能であればよい。
【0114】
また、カメラ座標系Σがロボット座標系Σに一致する場合も、第1実施形態および第2実施形態は適用できる。
【0115】
また、上述した第1実施形態および第2実施形態における位置姿勢検出装置20,20aの一部の機能をコンピューターで実現するようにしてもよい。この場合、その制御機能を実現するための位置姿勢検出プログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録された位置姿勢検出プログラムをコンピューターシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺装置のハードウェアを含むものである。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、光ディスク、メモリーカード等の可搬型記録媒体、コンピューターシステムに内蔵される磁気ハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバー装置やクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持するものを含んでもよい。また上記のプログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせにより実現するものであってもよい。
【0116】
以上、本発明の実施の形態について図面を参照して詳述したが、具体的な構成はその実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0117】
1,1a 検査システム
5 対象物体
10 ロボット
11 撮像装置(撮像部)
12 ロボット本体
12a 支持台
12b アーム部
12c ハンド部
20,20a 位置姿勢検出装置
30 検査装置
40 ロボット制御装置
201 画像データ取得部
202 画像データ記憶部
203 テンプレート情報記憶部
204 一致度評価部
205 対応テーブル記憶部
206 位置姿勢計算部
211 画像データ取得部
212 画像データ記憶部
213 特徴データ生成部
214 テンプレート特徴データ記憶部
215 第1位置姿勢計算部
216 テンプレート情報記憶部
217 合成モデル画像生成部
218 第2位置姿勢計算部

【特許請求の範囲】
【請求項1】
対象物体を撮像して画像データを生成する撮像部と、
前記撮像部を可動に支持するロボット本体と、
前記対象物体のリファレンスに対する前記撮像部からの視線方向ごとに、前記視線方向に対する面のテンプレート画像データとロボット座標系における前記面の位置および姿勢を表す情報と前記ロボット座標系における前記撮像部の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、
前記撮像部が生成した前記画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記ロボット座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、
を備えることを特徴とするロボット装置。
【請求項2】
前記位置姿勢データ生成部は、
複数のテンプレート画像データそれぞれについて、該テンプレート画像データを、ホモグラフィー行列を用いて射影変換した変換画像データと前記画像データとの一致度を計算し、前記一致度に基づいて前記対象物体の画像から可視である面を検出する一致度評価部と、
前記一致度評価部が検出した前記可視である面に対応するテンプレート画像データを、ホモグラフィー行列を用いて射影変換した変換画像データと前記画像データとの類似度を計算し、最も高い類似度となる計算結果に対応するホモグラフィー行列と前記テンプレート情報とに基づいて前記位置姿勢データを生成する位置姿勢計算部と、
を備えることを特徴とする請求項1記載のロボット装置。
【請求項3】
前記位置姿勢データ生成部は、
テンプレート画像データごとに、前記テンプレート画像データから抽出される複数の特徴点それぞれにおける特徴量と該特徴点の位置情報とを対応付けたテンプレート特徴データを記憶するテンプレート特徴データ記憶部と、
前記撮像部が生成した前記画像データから複数の特徴点を抽出し、前記特徴点ごとの特徴量と前記特徴点の位置情報とを対応付けた特徴データを生成する特徴データ生成部と、
前記特徴データ生成部が生成した前記特徴データと前記テンプレート特徴データ記憶部に記憶された前記テンプレート特徴データとに基づいて、前記特徴データにおける特徴量と前記テンプレート特徴データにおける特徴量との相関度を計算して、マッチする特徴量に対応する特徴点の位置情報を検出し、前記位置情報に基づき、前記対象物体の画像において可視である面と前記可視である面のうち該面に対応するテンプレート画像データとの類似度が最も高い面である基準面とを検出する第1位置姿勢計算部と、
前記第1位置姿勢計算部が検出した前記特徴点の位置情報と前記基準面と前記テンプレート情報記憶部に記憶された前記テンプレート情報とに基づいて合成モデル画像データを生成する合成モデル画像生成部と、
前記合成モデル画像生成部が生成した前記合成モデル画像データを、ホモグラフィー行列を用いて射影変換した変換合成モデル画像データと前記画像データとの類似度を計算し、前記類似度が閾値を超えることとなるホモグラフィー行列と前記テンプレート情報とに基づいて前記位置姿勢データを生成する第2位置姿勢計算部と、
を備えることを特徴とする請求項1記載のロボット装置。
【請求項4】
請求項2記載の位置姿勢データ生成部と請求項3記載の位置姿勢データ生成部とを備え、
前記請求項3記載の位置姿勢データ生成部における前記第1位置姿勢計算部において、前記基準面に対応する類似度が閾値以下である場合に、前記請求項3記載の位置姿勢データ生成部を機能させる
ことを特徴とする請求項1記載のロボット装置。
【請求項5】
対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部と、
所定の視点に基づき得られる画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、
を備えることを特徴とする位置姿勢検出装置。
【請求項6】
対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部を備えるコンピューターを、
所定の視点に基づき得られる画像データに含まれる前記対象物体の画像から可視である面を検出し、前記テンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢データ生成部と、
として機能させるための位置姿勢検出プログラム。
【請求項7】
位置姿勢データ生成部が、所定の視点に基づき得られる画像データに含まれる対象物体の画像から可視である面を検出し、対象物体のリファレンスに対する視線方向ごとに、前記視線方向に対する面のテンプレート画像データと基準座標系における前記面の位置および姿勢を表す情報と前記基準座標系における視点の位置および姿勢を表す情報とを有するテンプレート情報を記憶するテンプレート情報記憶部から、前記可視である面に対応するテンプレート情報を読み込み、前記テンプレート情報に基づいて前記基準座標系における前記対象物体の位置および姿勢を表す位置姿勢データを生成する位置姿勢検出ステップ、
を有することを特徴とする位置姿勢検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2012−185752(P2012−185752A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−49676(P2011−49676)
【出願日】平成23年3月7日(2011.3.7)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】