(57)【特許請求の範囲】
【請求項１】
複数の撮像部から対象物を撮像することで、互いに異なる場所から前記対象物を撮像した複数の撮像画像を取得する画像取得部と、
前記複数の撮像画像についてステレオマッチング処理を行って、前記複数の撮像画像間の視差を示す視差情報を取得する視差取得部と、
前記撮像画像からエッジを抽出して、前記対象物のエッジを示すエッジ情報を取得するエッジ抽出部と、
前記エッジ情報が示す前記対象物の前記エッジ上の位置での前記視差を、前記視差情報に含まれる前記視差から抽出する視差抽出部と、
前記視差抽出部が抽出した前記視差に基づいて、三次元における前記対象物の位置および姿勢を認識する認識部と、
を備え、
前記エッジ抽出部は、前記複数の撮像画像のうちの一の撮像画像から前記エッジを抽出して得られる前記対象物のエッジ画像を、前記エッジ情報として求め、
前記視差取得部は、前記一の撮像画像の各位置での前記視差を示す視差画像を、前記視差情報として求め、
前記視差抽出部は、前記視差画像に前記エッジ画像を重ね合わせることで、前記エッジ画像が示す前記対象物の前記エッジ上の位置での前記視差を、前記視差画像に含まれる前記視差から抽出することを特徴とする三次元位置・姿勢認識装置。
【請求項２】
前記エッジ抽出部は、前記複数の撮像画像のうちの一の撮像画像のみから前記エッジを抽出して得られる前記対象物の一の前記エッジ画像を、前記エッジ情報として求める請求項１に記載の三次元位置・姿勢認識装置。
【請求項３】
前記視差取得部は、前記一の撮像画像の各位置での前記視差を示す一の前記視差画像を、前記視差情報として求める請求項２に記載の三次元位置・姿勢認識装置。
【請求項４】
前記視差取得部は、前記複数の撮像画像それぞれのエピポーラ線を平行にする画像変換を行って、当該画像変換後の前記複数の撮像画像について前記ステレオマッチングを実行する請求項１ないし３のいずれか一項に記載の三次元位置・姿勢認識装置。
【請求項５】
前記認識部は、前記視差抽出部が抽出した前記視差を三次元での情報に変換して三次元情報を生成するとともに、前記三次元情報と前記対象物の外形を示すモデルとをマッチングさせて、三次元における前記対象物の位置および姿勢を認識する請求項１ないし４のいずれか一項に記載の三次元位置・姿勢認識装置。
【請求項６】
部品を取って移動させる部品移動手段と、
請求項１ないし５のいずれか一項に記載の三次元位置・姿勢認識装置と、
前記三次元位置・姿勢認識装置により前記対象物としての前記部品の三次元での位置および姿勢を認識した結果に基づいて、前記部品移動手段を制御する制御手段と
を備えることを特徴とする産業用ロボット。
【請求項７】
互いに異なる場所から対象物を撮像した複数の撮像画像を取得する画像取得工程と、
前記複数の撮像画像についてステレオマッチング処理を行って、前記複数の撮像画像間の視差を示す視差情報を取得する視差取得工程と、
前記撮像画像からエッジを抽出して、前記対象物のエッジを示すエッジ情報を取得するエッジ抽出工程と、
前記エッジ情報が示す前記対象物の前記エッジ上の位置での前記視差を、前記視差情報に含まれる前記視差から抽出する視差抽出工程と、
前記視差抽出工程が抽出した前記視差に基づいて、三次元における前記対象物の位置および姿勢を認識する認識工程と、
を備え、
前記エッジ抽出工程は、前記複数の撮像画像のうちの一の撮像画像から前記エッジを抽出して得られる前記対象物のエッジ画像を、前記エッジ情報として求め、
前記視差取得工程は、前記一の撮像画像の各位置での前記視差を示す視差画像を、前記視差情報として求め、
前記視差抽出工程は、前記視差画像に前記エッジ画像を重ね合わせることで、前記エッジ画像が示す前記対象物の前記エッジ上の位置での前記視差を、前記視差画像に含まれる前記視差から抽出することを特徴とする三次元位置・姿勢認識方法。
【請求項８】
互いに異なる場所から対象物を撮像した複数の撮像画像を取得する画像取得機能と、
前記複数の撮像画像についてステレオマッチング処理を行って、前記複数の撮像画像間の視差を示す視差情報を取得する視差取得機能と、
前記撮像画像からエッジを抽出して、前記対象物のエッジを示すエッジ情報を取得するエッジ抽出機能と、
前記エッジ情報が示す前記対象物の前記エッジ上の位置での前記視差を、前記視差情報に含まれる前記視差から抽出する視差抽出機能と、
前記視差抽出機能が抽出した前記視差に基づいて、三次元における前記対象物の位置および姿勢を認識する認識機能とを、コンピューターに実現させ、
前記エッジ抽出機能は、前記複数の撮像画像のうちの一の撮像画像から前記エッジを抽出して得られる前記対象物のエッジ画像を、前記エッジ情報として求め、
前記視差取得機能は、前記一の撮像画像の各位置での前記視差を示す視差画像を、前記視差情報として求め、
前記視差抽出機能は、前記視差画像に前記エッジ画像を重ね合わせることで、前記エッジ画像が示す前記対象物の前記エッジ上の位置での前記視差を、前記視差画像に含まれる前記視差から抽出することを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムが記録されており、コンピューターにより読み取りが可能であることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の撮像部により異なる場所から対象物を撮像して得られる撮像画像に対してステレオマッチング処理を行って、三次元における対象物の位置および姿勢を求める技術に関する。
【背景技術】
【０００２】
特許文献１では、複数のカメラから対象物を撮像した結果に基づいて、対象物の三次元モデルを生成する三次元モデリング技術が記載されている。このような三次元モデリング技術では、異なる場所から対象物を撮像して得られる複数の撮像画像に対してステレオマッチング処理が施される。このステレオマッチング処理では、対象物の同一部分に対応する位置が複数の撮像画像の各々から求められて相互に対応付けられるとともに、こうして対応付けられた位置での各撮像画像間の視差が求められる。このような対応付けの結果、撮像画像の各位置での視差を示した二次元画像（視差画像）が求められる。そして、この視差画像に基づいて、対象物の三次元モデルを生成することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２６４９３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、機械部品や電子部品等の部品を組み立てる産業用ロボットに、上述のような技術を応用することが考えられる。具体例を挙げると、このような産業用ロボットとしては、部品を取り上げて移動させるアームを用いて部品を組み立てるものがある。この際、部品を確実に取り上げるには、三次元における部品の位置および姿勢を正確に把握する必要がある。そこで、上述のように、異なる場所から部品を撮像して得られる複数の撮像画像にステレオマッチング処理を施して、三次元における部品の位置・姿勢を認識し、この認識結果に基づいて産業用ロボットのアームを制御することが考えられる。
【０００５】
この際、三次元における部品の位置および姿勢を正確に認識するにあたっては、部品の特にエッジ部分の視差が重要となる。つまり、ステレオマッチング処理では、複数の撮像画像の間でパターンの類似する位置どうしが部品の同一部分に対応するとして、互いに対応付けられる。このような対応付けは、パターンの変化が急峻なエッジ部分に対しては高い精度で実行される。一方で、画像パターンの変化が緩やかな他の部分については、対応付けの精度が低下する。このように、対応付けの精度は、部品のエッジ部分で高くなる一方、その他の部分で低くなる傾向を有する。したがって、三次元における部品の位置および姿勢の認識動作を、対応付けの精度の高い部品のエッジ部分の視差に基づいて実行することが好適となる。
【０００６】
この発明は上記課題に鑑みなされたものであり、三次元における対象物（部品）の位置および姿勢の認識動作を、対象物のエッジ部分の視差に基づいて実行することを可能とし、これによって当該認識動作を正確に実行することを可能とする技術の提供を目的とする。
【課題を解決するための手段】
【０００７】
この発明にかかる三次元位置・姿勢認識装置は、上記目的を達成するために、複数の撮像部から対象物を撮像することで、互いに異なる場所から前記対象物を撮像した複数の撮像画像を取得する画像取得部と、複数の撮像画像についてステレオマッチング処理を行って、複数の撮像画像間の視差を示す視差情報を取得する視差取得部と、撮像画像からエッジを抽出して、対象物のエッジを示すエッジ情報を取得するエッジ抽出部と、エッジ情報が示す対象物のエッジ上の位置での視差を、視差情報に含まれる視差から抽出する視差抽出部と、視差抽出部が抽出した視差に基づいて、三次元における対象物の位置および姿勢を認識する認識部と、を備え、エッジ抽出部は、複数の撮像画像のうちの一の撮像画像からエッジを抽出して得られる対象物のエッジ画像を、エッジ情報として求め、視差取得部は、一の撮像画像の各位置での視差を示す視差画像を、視差情報として求め、視差抽出部は、視差画像にエッジ画像を重ね合わせることで、エッジ画像が示す対象物のエッジ上の位置での視差を、視差画像に含まれる視差から抽出することを特徴としている。
【０００８】
この発明にかかる産業用ロボットは、上記目的を達成するために、部品を取って移動させる部品移動手段と、上記の三次元位置・姿勢認識装置と、三次元位置・姿勢認識装置により対象物としての部品の三次元での位置および姿勢を認識した結果に基づいて、部品移動手段を制御する制御手段とを備えることを特徴としている。
【０００９】
また、この発明にかかる三次元位置・姿勢認識方法は、上記目的を達成するために、互いに異なる場所から対象物を撮像した複数の撮像画像を取得する画像取得工程と、複数の撮像画像についてステレオマッチング処理を行って、複数の撮像画像間の視差を示す視差情報を取得する視差取得工程と、撮像画像からエッジを抽出して、対象物のエッジを示すエッジ情報を取得するエッジ抽出工程と、エッジ情報が示す対象物のエッジ上の位置での視差を、視差情報に含まれる視差から抽出する視差抽出工程と、視差抽出工程が抽出した視差に基づいて、三次元における対象物の位置および姿勢を認識する認識工程と、を備え、エッジ抽出工程は、複数の撮像画像のうちの一の撮像画像からエッジを抽出して得られる対象物のエッジ画像を、エッジ情報として求め、視差取得工程は、一の撮像画像の各位置での視差を示す視差画像を、視差情報として求め、視差抽出工程は、視差画像にエッジ画像を重ね合わせることで、エッジ画像が示す対象物のエッジ上の位置での視差を、視差画像に含まれる視差から抽出することを特徴としている。
【００１０】
また、この発明にかかるプログラムは、上記目的を達成するために、互いに異なる場所から対象物を撮像した複数の撮像画像を取得する画像取得機能と、複数の撮像画像についてステレオマッチング処理を行って、複数の撮像画像間の視差を示す視差情報を取得する視差取得機能と、撮像画像からエッジを抽出して、対象物のエッジを示すエッジ情報を取得するエッジ抽出機能と、エッジ情報が示す対象物のエッジ上の位置での視差を、視差情報に含まれる視差から抽出する視差抽出機能と、視差抽出機能が抽出した視差に基づいて、三次元における対象物の位置および姿勢を認識する認識機能とを、コンピューターに実現させ、エッジ抽出機能は、複数の撮像画像のうちの一の撮像画像からエッジを抽出して得られる対象物のエッジ画像を、エッジ情報として求め、視差取得機能は、一の撮像画像の各位置での視差を示す視差画像を、視差情報として求め、視差抽出機能は、視差画像にエッジ画像を重ね合わせることで、エッジ画像が示す対象物のエッジ上の位置での視差を、視差画像に含まれる視差から抽出することを特徴としている。
【００１１】
また、この発明にかかる記録媒体は、上記目的を達成するために、上記のプログラムが記録されており、コンピューターにより読み取りが可能であることを特徴としている。
【００１２】
このように構成された発明（三次元位置・姿勢認識装置、産業用ロボット、三次元位置・姿勢認識方法、プログラム、記録媒体）では、互いに異なる場所から対象物を撮像した複数の撮像画像に対してステレオマッチング処理が実行されて、複数の撮像画像間の視差を示す視差情報が取得される。また、撮像画像からエッジが抽出されて、対象物のエッジを示すエッジ情報が取得される。そして、エッジ情報が示す対象物のエッジ上の位置での視差が、視差情報に含まれる視差から抽出されるとともに、こうして抽出された視差に基づいて、三次元における対象物の位置および姿勢が認識される。これにより、対象物のエッジ部分の視差に基づいて、三次元における対象物の位置および姿勢を認識することが可能となり、その結果、当該認識動作を正確に実行することが可能となる。
【００１３】
ここで、エッジ抽出部は、複数の撮像画像のうちの一の撮像画像からエッジを抽出して得られる対象物のエッジ画像を、エッジ情報として求めるように、三次元位置・姿勢認識装置を構成している。
【００１４】
この際、視差取得部は、一の撮像画像の各位置での視差を示す視差画像を、視差情報として求めるように、三次元位置・姿勢認識装置を構成している。
【００１５】
そして、このようにエッジ画像と視差画像を求めた上で、視差抽出部は、視差画像にエッジ画像を重ね合わせることで、エッジ画像が示す対象物のエッジ上の位置での視差を、視差画像に含まれる視差から抽出するように、三次元位置・姿勢認識装置を構成している。これによって、視差（視差画像）から視差を抽出する上述の動作を簡便に実行することができる。
【００１６】
また、視差取得部は、複数の撮像画像それぞれのエピポーラ線を平行にする画像変換を行って、当該画像変換後の複数の撮像画像についてステレオマッチングを実行するように、三次元位置・姿勢認識装置を構成しても良い。このように、複数の撮像画像それぞれのエピポーラ線を平行にすることで、ステレオマッチングを簡便に実行することが可能となる。
【００１７】
また、認識部は、視差抽出部が抽出した視差を三次元での情報に変換して三次元情報を生成するとともに、三次元情報と対象物の外形を示すモデルとをマッチングさせて、三次元における対象物の位置および姿勢を認識するように、三次元位置・姿勢認識装置を構成しても良い。つまり、この発明では、対象物のエッジ部分での視差が求められており、換言すれば、対応付けの精度の高い位置での視差が求められている。そして、このような視差から求めた三次元情報に対して対象物の外形を示すモデルをマッチングさせることで、三次元における対象物の位置および姿勢を正確に認識することができる。
【発明の効果】
【００１８】
三次元における対象物の位置および姿勢の認識動作を、対象物のエッジ部分の視差に基づいて実行することが可能となり、これによって当該認識動作を正確に実行することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明を適用可能な双腕ロボットの一例を模式的示す斜視図である。
【図２】図１の双腕ロボットが具備する電気的構成を模式的に示すブロック図である。
【図３】三次元認識で実行される動作のフローの一例を示すフローチャートである。
【図４】三次元認識で行われる画像処理の一例を模式的に示した図である。
【発明を実施するための形態】
【００２０】
図１は、本発明を適用可能な双腕ロボットの一例を模式的示す斜視図である。図２は、図１の双腕ロボットが具備する電気的構成を模式的に示すブロック図である。図１および以下に示す図では、鉛直方向をｚ軸方向とするｘｙｚ直交座標軸を適宜示すこととする。
【００２１】
双腕ロボット１は、ロボット本体２とこのロボット本体２の動作を制御するコンピューター３で構成される。ロボット本体２は、胴体部２１に２本のアーム２２を取り付けた概略構成を備える。詳しくは、各アーム２２は、駆動モーターＭ23に接続された肩関節２３を介して取り付けられている。そして、駆動モーターＭ23で肩関節２３を回転させることで、アーム２２を動かすことができる。
【００２２】
また、各アーム２２の先端には、手首関節２４を介してハンド２５が取り付けられている。この手首関節２４には駆動モーターＭ24が接続されている。したがって、駆動モーターＭ24で手首関節２４を回転させることで、ハンド２５の向きを変えることができる。さらに、ハンド２５には駆動モーターＭ25が接続されており、駆動モーターＭ25によりハンド２５を開閉させることができる。
【００２３】
そして、双腕ロボット１は、駆動モーターＭ23〜Ｍ25を制御することで、部品トレイ９の上に並ぶ部品９１（機械部品、電子部品）をハンド２５で掴んで所定位置まで運んだり、ハンド２５を回転させて部品９１の姿勢を変えたり、ハンド２５から部品９１を放して所定位置に載置したりといった種々の動作を実行できる。つまり、このような各種動作を組み合わせて実行することで、双腕ロボット１は、部品９１を組み立てることができる。
【００２４】
また、２本のアーム２２の一方には、２つの撮像カメラＣ1、Ｃ2が取り付けられている。これら撮像カメラＣ1、Ｃ2は一方のアーム２２と一体的に移動しつつ、部品９１を適宜撮像するものである。そして、後述するように、撮像カメラＣ1、Ｃ2により部品９１を撮像した結果に基づいて、アーム２２およびハンド２５の動作が制御されて、部品９１の組立が実行される。
【００２５】
さらに、双腕ロボット１は、胴体部２１から上方に延びる首部２６と、首部２６の先端に取り付けられた頭部２７を有している。これら首部２６および頭部２７は、鉛直方向ｚおよび当該方向ｚを中心とする回転方向Ｄrに一体的に移動できる。
【００２６】
このようなロボット本体２の動作は、コンピューター３により制御される。コンピューター３は、ドライバー４と、三次元認識部５とを具備している。ドライバー４は、コンピューター３により読み取りが可能な記録媒体６に記録されたプログラム７を読み出す機能を果たす。このような記録媒体６としては、例えば、ＣＤ(Compact Disc)、ＤＶＤ(Digital Versatile Disc)、ＵＳＢ(Universal Serial Bus)メモリー等の種々のものが挙げられる。そして、ドライバー４が記録媒体６から読み出したプログラム７に従って、三次元認識部５が三次元認識を行う。
【００２７】
この三次元認識部５は、制御回路５０によって他の構成回路５１〜５６を制御する概略構成を備えるものであり、コンピューター３に備えられたＣＰＵ(Central Processing Unit)およびメモリーにより実現される。続いて、三次元認識部５が実行する三次元認識の説明を通じて、三次元認識部５の構成について説明する。
【００２８】
図３は、三次元認識で実行される動作のフローの一例を示すフローチャートである。図４は、三次元認識で行われる画像処理の一例を模式的に示した図である。図４の各欄の左上では、図３のフローチャートにおいて当該欄内に示す画像処理が実行されるステップが示されている。ここでは、四角錐台の部品９１の三次元における位置および姿勢を認識する場合を例示して説明する。
【００２９】
三次元認識では、制御回路５０が撮像カメラＣ1、Ｃ2に撮像指令を出力すると、撮像カメラＣ1、Ｃ2のそれぞれが認識対象である部品９１の画像を撮像して、制御回路５０に出力する。こうして、異なる場所から部品９１を撮像した２枚の撮像画像Ｉ1、Ｉ2が取得される（ステップＳ１０１）。
【００３０】
これら２枚の撮像画像Ｉ1、Ｉ2は、平行化回路５１で平行化処理を受けた後にステレオマッチング回路５２へ出力される。この平行化回路５１は、制御回路５０から受け取った撮像画像Ｉ1、Ｉ2それぞれのエピポーラ線を平行にする平行化処理（画像変換）を撮像画像Ｉ1、Ｉ2に対して行うものである（ステップＳ１０２）。
【００３１】
図４のステップＳ１０１、１０２の欄に示すように、それぞれのエピポーラ線が平行となった撮像画像Ｉ1、Ｉ2のｙ軸は一致している。ただし、ｘ軸方向には撮像画像Ｉ1、Ｉ2が視差を有することから、撮像画像Ｉ1、Ｉ2のｘ軸は一致していない。図４ではこの点を考慮して、撮像画像Ｉ1、Ｉ2のｘ座標に対して互いに異なる符合ｘ1、ｘ2が付されている。
【００３２】
平行化回路５１で平行化処理を受けた撮像画像Ｉ1、Ｉ2は、ステレオマッチング回路５２に出力される。そして、ステレオマッチング回路５２は、撮像画像Ｉ1、Ｉ2に対してステレオマッチング処理を行う（ステップＳ１０３）。このステレオマッチング処理では、２つの撮像画像Ｉ1、Ｉ2の間でパターンの類似する位置（微小領域）どうしが部品９１の同一部分に対応するとして、互いに対応付けられる。
【００３３】
具体的に説明すると、撮像画像Ｉ1中の注目位置と、この注目位置を通るエピポーラ線上にある撮像画像Ｉ2中の各位置との間でパターンの類似性が判断されて、撮像画像Ｉ1の注目位置とパターンの類似する位置が撮像画像Ｉ2中から探索される。ここでは撮像画像Ｉ1、Ｉ2のエピポーラ線が互いに平行であるため、ｙ座標が注目位置と同じである撮像画像Ｉ2の各位置と注目位置との間でパターンの類似性が判断される。その結果、撮像画像Ｉ2の各位置のうち最も類似性の高い位置が、撮像画像Ｉ1の注目位置と対応付けられる。さらに、撮像画像Ｉ1中の注目位置を移動させながら同様の動作を繰り返すことで、撮像画像Ｉ1の各位置と撮像画像Ｉ2の各位置とが対応付けられる。
【００３４】
そして、ステレオマッチング回路５２は、こうして対応付けられた２つの位置の間の視差ｐを算出する。具体的には、撮像画像Ｉ1中の位置とこれに対応する撮像画像Ｉ2中の位置との視差ｐが求められて、撮像画像Ｉ1中の位置に対して視差ｐが付与される。このようにして、撮像画像Ｉ1中の座標系(x1,y)の各位置に対して視差ｐを付与した視差画像Ｉsが生成される。言い換えれば、視差画像Ｉsは、撮像画像Ｉ1の座標系(x1,y)の各位置での視差ｐ(x1,y)を示す情報である。
【００３５】
なお、図４のステップＳ１０３の欄に示すように、視差画像Ｉsにおいて部品９１の輪郭Ｌは、一定の幅を持ったぼやけたものとなる。これは、ステレオマッチング処理での対応付けが、微小領域単位で実行されるために、視差画像Ｉsにおいて部品９１の輪郭Ｌが少なくとも微小領域の幅を有することに起因する。
【００３６】
ところで、平行化回路５１は平行化処理を行った撮像画像Ｉ1を、上述のステレオマッチング回路５２の他にエッジ抽出回路５３にも出力する。エッジ抽出回路５３は、受け取った撮像画像Ｉ1を二値化することで、撮像画像Ｉ1からエッジＥを抽出する（ステップＳ１０４）。こうして、部品９１のエッジＥを示すエッジ画像Ｉeが生成される（図４のステップＳ１０４の欄）。
【００３７】
このようにして、ステレオマッチング回路５２およびエッジ抽出回路５３で求められた、視差画像Ｉsおよびエッジ画像Ｉeはマスク回路５４に出力される。そして、このマスク回路５４では、撮像画像Ｉ1の座標系(x1,y)において、視差画像Ｉsとエッジ画像Ｉeとが重ね合わされ、これによって、視差画像Ｉsにおける部品９１の輪郭Ｌとエッジ画像Ｉeにおける部品９１のエッジＥとが重ね合わされる（ステップＳ１０５）。そして、エッジ画像Ｉeの示す部品９１のエッジＥ上に位置する視差ｐのみが、視差画像Ｉsに含まれる視差ｐから抽出されて、エッジＥ上の視差ｐのみを示すエッジ視差画像Ｉesが形成される（ステップＳ１０６）。このように、マスク回路５４において、エッジ画像Ｉeは、部品９１のエッジＥ上に位置する視差ｐのみを視差画像Ｉsから抽出するマスク画像として機能する。
【００３８】
こうして、マスク回路５４において、視差画像ＩsからエッジＥ上の視差ｐのみを抽出したエッジ視差画像Ｉes（図４のステップＳ１０６の欄内）は、三次元情報生成回路５５に出力される。この三次元情報生成回路５５は、受け取ったエッジ視差画像Ｉesから三次元情報Ｓを生成する。つまり、ｘｙ平面での位置(x1,y)での視差ｐを示す情報Ｉesが、当該位置(x1,y)でのｚ成分を示す三次元情報Ｓに変換される。こうして、三次元の座標系(x1,y,z)における位置を示す三次元情報Ｓが生成される。
【００３９】
なお、この三次元情報Ｓの変換にあたっては、撮像カメラＣ1、Ｃ2の焦点距離等の内部パラメーターや、撮像カメラＣ1、Ｃ2の位置関係を示す基礎行列Ｆが必要となる。この基礎行列Ｆについては、予め行われた撮像カメラＣ1、Ｃ2の校正時に求められて、三次元情報生成回路５５に記憶されている。
【００４０】
こうして、求められた部品９１の三次元情報Ｓは、三次元情報生成回路５５からモデルマッチング回路５６へ出力される。そして、モデルマッチング回路５６は、部品９１の外形を示す外形モデルと三次元情報Ｓとをマッチングさせるモデルマッチングを行う（ステップＳ１０８）。このとき使用される部品９１のモデルは、部品９１の外形を示すＣＡＤ(computer aided design)データから求められて、モデルマッチング回路５６に予め記憶されている。
【００４１】
モデルマッチングの結果Ｒmは、モデルマッチング回路５６から制御回路５０に出力される。制御回路５０は、モデルマッチング結果Ｒmに基づいて、三次元における部品９１の位置および姿勢を認識する三次元認識処理を実行する（ステップＳ１０９）。言い換えれば、ステップＳ１０９では、モデルマッチング結果Ｒmに基づいて、三次元における部品９１の位置および姿勢を示す三次元モデルが生成される（三次元モデリング）。そして、制御回路５０は、部品９１の三次元モデルとロボット本体２の座標系に基づいて、各駆動モーターＭ23〜Ｍ25を制御して、双腕ロボット１による部品９１の組立動作を実行する。
【００４２】
以上に説明したように、この実施形態では、互いに異なる場所から部品９１（対象物）を撮像した２枚の撮像画像Ｉ1、Ｉ2に対してステレオマッチング処理が実行されて、２枚の撮像画像Ｉ1、Ｉ2間の視差ｐを示す視差画像Ｉs（視差情報）が取得される。また、撮像画像Ｉ1からエッジＥが抽出されて、部品９１のエッジＥを示すエッジ画像Ｉe（エッジ情報）が取得される。そして、エッジ画像Ｉeが示す部品９１のエッジＥ上の位置での視差ｐが、視差画像Ｉsに含まれる視差ｐから抽出されるとともに、こうして抽出された視差ｐに基づいて、三次元における部品９１の位置および姿勢が認識される。これにより、部品９１のエッジＥ部分の視差ｐに基づいて、三次元における部品９１の位置および姿勢を認識することが可能となり、その結果、この三次元認識を正確に実行することが可能となっている。
【００４３】
また、この実施形態では、三次元情報の生成に用いられる視差ｐが、部品９１のエッジＥ上のものに限定されているため、三次元情報の生成に要する演算時間を短縮化できる。その結果、三次元認識の高速化を図ることが可能となっている。
【００４４】
また、この実施形態では、２枚の撮像画像Ｉ1、Ｉ2のうちの一の撮像画像Ｉ1からエッジＥを抽出して部品９１のエッジ画像Ｉeを得ている。また、視差画像Ｉsは、一の撮像画像Ｉ1の各位置での視差ｐを示す情報として求められている。つまり、エッジ画像Ｉeおよび視差画像Ｉsのいずれもが同じ座標系(x1,y)（一の撮像画像Ｉ1の座標系）で求められている。その結果、エッジ画像Ｉeが示す部品９１のエッジＥ上の視差ｐを視差画像Ｉsから抽出する視差抽出を、エッジ画像Ｉeと視差画像Ｉsを重ね合わせるだけで簡便に実行することが可能となっている。
【００４５】
また、この実施形態では、２枚の撮像画像Ｉ1、Ｉ2それぞれのエピポーラ線を平行にする画像変換（平行化処理）を行って、当該画像変換後の２枚の撮像画像Ｉ1、Ｉ2についてステレオマッチングが実行される。このように、２枚の撮像画像Ｉ1、Ｉ2それぞれのエピポーラ線を平行にすることで、撮像画像Ｉ1、Ｉ2間で対応付けられる位置どうしのｙ成分が同じとなるため、この対応付けが容易となり、ステレオマッチングを簡便に実行することが可能となる。
【００４６】
また、この実施形態は、視差ｐから求めた三次元情報Ｓと部品９１の外形を示すモデルとをマッチングさせて、三次元における部品９１の位置および姿勢を認識しており、好適である。つまり、この実施形態では、部品９１のエッジＥ部分での視差ｐが求められており、換言すれば、対応付けの精度の高い位置での視差ｐが求められている。そして、このような視差ｐから求めた三次元情報Ｓに対して部品９１の外形を示すモデルをマッチングさせることで、三次元における部品９１の位置および姿勢を正確に認識することができる。
【００４７】
その他
このように上記実施形態では、撮像カメラＣ1、Ｃ2と三次元認識部５で構成されるステレオ撮像系ＳＳ（図２）が本発明の「三次元位置・姿勢認識装置」に相当し、双腕ロボット１が本発明の「産業用ロボット」に相当し、コンピューター３が本発明の「コンピューター」に相当し、記録媒体６が本発明の「記録媒体」に相当し、プログラム７が本発明の「プログラム」に相当する。また、撮像カメラＣ1、Ｃ2が本発明の「撮像部」に相当し、撮像カメラＣ1、Ｃ2と制御回路５０が本発明の「画像取得部」として機能し、平行化回路５１およびステレオマッチング回路５２が本発明の「視差取得部」として機能し、エッジ抽出回路５３が本発明の「エッジ抽出部」に相当し、マスク回路５４が本発明の「視差抽出部」に相当し、三次元情報生成回路５５、モデルマッチング回路５６および制御回路５０が本発明の「認識部」に相当し、アーム２２およびハンド２５が本発明の「部品移動手段」に相当し、制御回路５０が本発明の「制御手段」に相当する。また、ステップＳ１０１が本発明の「画像取得工程」に相当し、ステップＳ１０２、Ｓ１０３が本発明の「視差取得工程」に相当し、ステップＳ１０４が本発明の「エッジ抽出工程」に相当し、ステップＳ１０５、Ｓ１０６が本発明の「視差抽出工程」に相当し、ステップＳ１０８、Ｓ１０９が本発明の「認識工程」に相当する。また、撮像画像Ｉ1、Ｉ2が本発明の「撮像画像」に相当し、視差画像Ｉsが本発明の「視差画像」および「視差情報」に相当し、エッジ画像Ｉeが本発明の「エッジ画像」および「エッジ情報」に相当する。
【００４８】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、三次元認識における各ステップＳ１０１〜Ｓ１０９は、図３のフローチャートに示したものに限られない。具体例を挙げると、ステップＳ１０３のステレオマッチングより先にステップＳ１０４のエッジ抽出を行なっても良く、あるいは、ステップＳ１０３、Ｓ１０４のステレオマッチングおよびエッジ抽出を並行して実行しても良い。
【００４９】
また、上記実施形態では、三次元認識部５は、コンピューター３の内臓するＣＰＵやメモリーで構成されていた。しかしながら、三次元認識部５は、ＦＰＧＡ（Field-Programmable Gate Array）等のプログラマブルロジックデバイスや、ディスクリートな回路素子を組み合わせて構成されても良い。
【００５０】
また、上述のエッジ抽出についても種々の方法により実行することができ、例えば、Ｒｏｂｅｒｔｓ、Ｓｏｂｅｌ、Ｐｒｅｗｉｔｔ等の演算子を用いた方法を採用可能である。
【００５１】
また、撮像カメラＣ1、Ｃ2の個数や、取り付け位置等についても上述したものに限られず、適宜変更可能である。
【００５２】
また、三次元における部品９１の位置および姿勢を求める方法についても、上述のモデルマッチングに限られず、適宜変更可能である。
【００５３】
また、本発明を適用可能な産業用ロボットは、上述の双腕ロボット１に限られない。しがたって、その他の構成を具備するロボットに対して本発明を適用することもできる。
【産業上の利用可能性】
【００５４】
この発明は、三次元での画像認識技術の全般に対して適用可能であり、特に産業用ロボットにおいて三次元における部品の位置・姿勢を認識する技術に好適に適用することができる。
【符号の説明】
【００５５】
１…双腕ロボット
２…ロボット本体
２２…アーム
２５…ハンド
３…コンピューター
４…ドライバー
５…三次元認識部
５０…制御回路
５１…平行化回路
５２…ステレオマッチング回路
５３…エッジ抽出回路
５４…マスク回路
５５…三次元情報生成回路
５６…モデルマッチング回路
６…記録媒体
７…プログラム
９１…部品
Ｃ1，Ｃ2…撮像カメラ
Ｉ1，Ｉ2…撮像画像
Ｉs…視差画像
Ｉe…エッジ画像
Ｅ…エッジ
Ｌ…輪郭
Ｓ…三次元情報
ＳＳ…ステレオ撮像系
【図１】
0005839671.tif 000002
【図２】
0005839671.tif 000003
【図３】
0005839671.tif 000004
【図４】
0005839671.tif 000005