(57)【特許請求の範囲】
【請求項１】
載置面上に載置された物体の姿勢を認識する姿勢認識装置において、
前記物体を撮像する撮像部と、
前記物体に対応した３次元モデルの情報を記憶する３次元モデル情報記憶部と、
前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算部と、
安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算部で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成部と、
前記２次元投影画像生成部により生成された前記２次元投影画像を記憶する２次元投影画像記憶部と、
前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合部と、
前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識部と、を備え、
前記安定姿勢計算部は、
前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択部と、
前記３次元モデル姿勢選択部で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点の位置座標を計算する３次元モデル最下点計算部と、
前記第２の座標軸及び前記第３の座標軸を含む仮想平面に前記最下点を投影した投影点の凸包を計算する凸包計算部と、
前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算部と、
前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別部と、を有し、
前記３次元モデル姿勢選択部は、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択し、
前記３次元モデル最下点計算部、前記凸包計算部、前記３次元モデル重心点計算部、及び前記安定姿勢判別部は、前記３次元モデル姿勢選択部により姿勢情報の選択が変更される度に処理を実行することを特徴とする姿勢認識装置。
【請求項２】
載置面上に載置された物体の姿勢を認識する姿勢認識装置において、
前記物体を撮像する撮像部と、
前記物体に対応した３次元モデルの情報を記憶する３次元モデル情報記憶部と、
前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算部と、
安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算部で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成部と、
前記２次元投影画像生成部により生成された前記２次元投影画像を記憶する２次元投影画像記憶部と、
前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合部と、
前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識部と、を備え、
前記安定姿勢計算部は、
前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択部と、
前記３次元モデル姿勢選択部で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点における前記第１の座標軸の第１の座標値を抽出する最下点座標抽出部と、
前記第１の座標値と、前記第１の座標値よりも一定値大きい値に設定された第２の座標値との間に含まれる前記３次元モデルの構造点を前記第２の座標軸と前記第３の座標軸とを含む仮想平面に投影したときの投影点の座標を抽出する投影点座標抽出部と、
前記投影点の凸包を計算する凸包計算部と、
前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算部と、
前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別部と、を有し、
前記３次元モデル姿勢選択部は、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択し、
前記最下点座標抽出部、前記投影点座標抽出部、前記凸包計算部、前記３次元モデル重心点計算部、及び前記安定姿勢判別部は、前記３次元モデル姿勢選択部により前記３次元モデルの姿勢情報の選択が変更される度に処理を実行することを特徴とする姿勢認識装置。
【請求項３】
ロボット本体と、
前記ロボット本体を制御するコントローラと、
請求項１又は２に記載の姿勢認識装置と、を備えた作業ロボット。
【請求項４】
載置面上に載置された物体を撮像する撮像部を有し、前記物体の姿勢を認識する姿勢認識装置が行う姿勢認識方法において、
前記物体に対応した３次元モデルの情報を３次元モデル情報記憶部に記憶させる３次元モデル情報記憶工程と、
前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算工程と、
安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算工程で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成工程と、
前記２次元投影画像生成工程により生成された前記２次元投影画像を２次元投影画像記憶部に記憶させる２次元投影画像記憶工程と、
前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合工程と、
前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識工程と、を備え、
前記安定姿勢計算工程は、
前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択工程と、
前記３次元モデル姿勢選択工程で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点の位置座標を計算する３次元モデル最下点計算工程と、
前記第２の座標軸及び前記第３の座標軸を含む仮想平面に前記最下点を投影した投影点の凸包を計算する凸包計算工程と、
前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算工程と、
前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別工程と、を有し、
前記３次元モデル姿勢選択工程では、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択し、
前記３次元モデル最下点計算工程、前記凸包計算工程、前記３次元モデル重心点計算工程、及び前記安定姿勢判別工程を、前記３次元モデル姿勢選択工程により前記３次元モデルの姿勢情報の選択が変更される度に実行することを特徴とする姿勢認識方法。
【請求項５】
載置面上に載置された物体を撮像する撮像部を有し、前記物体の姿勢を認識する姿勢認識装置が行う姿勢認識方法において、
前記物体に対応した３次元モデルの情報を３次元モデル情報記憶部に記憶させる３次元モデル情報記憶工程と、
前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算工程と、
安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算工程で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成工程と、
前記２次元投影画像生成工程により生成された前記２次元投影画像を２次元投影画像記憶部に記憶させる２次元投影画像記憶工程と、
前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合工程と、
前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識工程と、を備え、
前記安定姿勢計算工程は、
前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択工程と、
前記３次元モデル姿勢選択工程で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点における前記第１の座標軸の第１の座標値を抽出する最下点座標抽出工程と、
前記第１の座標値と、前記第１の座標値よりも一定値大きい値に設定された第２の座標値との間に含まれる前記３次元モデルの構造点を前記第２の座標軸と前記第３の座標軸とを含む仮想平面に投影したときの投影点の座標を抽出する投影点座標抽出工程と、
前記投影点の凸包を計算する凸包計算工程と、
前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算工程と、
前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別工程と、を有し、
前記３次元モデル姿勢選択工程では、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択し、
前記最下点座標抽出工程、前記投影点座標抽出工程、前記凸包計算工程、前記３次元モデル重心点計算工程、及び前記安定姿勢判別工程を、前記３次元モデル姿勢選択工程により前記３次元モデルの姿勢情報の選択が変更される度に実行することを特徴とする姿勢認識方法。
【請求項６】
載置面上に載置された物体を撮像する撮像部を有し、前記物体の姿勢を認識する姿勢認識装置のコンピュータに、
前記物体に対応した３次元モデルの情報を３次元モデル情報記憶部に記憶させる３次元モデル情報記憶工程と、
前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算工程と、
安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算工程で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成工程と、
前記２次元投影画像生成工程により生成された前記２次元投影画像を２次元投影画像記憶部に記憶させる２次元投影画像記憶工程と、
前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合工程と、
前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識工程と、を実行させ、
前記安定姿勢計算工程では、
前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択工程と、
前記３次元モデル姿勢選択工程で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点の位置座標を計算する３次元モデル最下点計算工程と、
前記第２の座標軸及び前記第３の座標軸を含む仮想平面に前記最下点を投影した投影点の凸包を計算する凸包計算工程と、
前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算工程と、
前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別工程と、を実行させ、
前記３次元モデル姿勢選択工程では、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択させ、
前記３次元モデル最下点計算工程、前記凸包計算工程、前記３次元モデル重心点計算工程、及び前記安定姿勢判別工程を、前記３次元モデル姿勢選択工程により前記３次元モデルの姿勢情報の選択が変更される度に実行させるためのプログラム。
【請求項７】
載置面上に載置された物体を撮像する撮像部を有し、前記物体の姿勢を認識する姿勢認識装置のコンピュータに、
前記物体に対応した３次元モデルの情報を３次元モデル情報記憶部に記憶させる３次元モデル情報記憶工程と、
前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算工程と、
安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算工程で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成工程と、
前記２次元投影画像生成工程により生成された前記２次元投影画像を２次元投影画像記憶部に記憶させる２次元投影画像記憶工程と、
前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合工程と、
前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識工程と、を実行させ、
前記安定姿勢計算工程では、
前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択工程と、
前記３次元モデル姿勢選択工程で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点における前記第１の座標軸の第１の座標値を抽出する最下点座標抽出工程と、
前記第１の座標値と、前記第１の座標値よりも一定値大きい値に設定された第２の座標値との間に含まれる前記３次元モデルの構造点を前記第２の座標軸と前記第３の座標軸とを含む仮想平面に投影したときの投影点の座標を抽出する投影点座標抽出工程と、
前記投影点の凸包を計算する凸包計算工程と、
前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算工程と、
前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別工程と、を実行させ、
前記３次元モデル姿勢選択工程では、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択させ、
前記最下点座標抽出工程、前記投影点座標抽出工程、前記凸包計算工程、前記３次元モデル重心点計算工程、及び前記安定姿勢判別工程を、前記３次元モデル姿勢選択工程により前記３次元モデルの姿勢情報の選択が変更される度に実行させるためのプログラム。
【請求項８】
請求項６又は７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像部を用いて形状が既知の物体の３次元姿勢を認識する姿勢認識装置、作業ロボット、姿勢認識方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
従来、例えば把持物を把持し、把持物を組付対象物に組み付ける作業を行うロボットが知られている（特許文献１参照）。その組み付け作業の際、ロボットの位置決めをするために、把持物や組付対象物等の物体を撮像部であるカメラで撮像し、撮像画像から物体の位置姿勢を求め、その結果をロボットの動作にフィードバックさせていた。その際、物体の位置姿勢はある程度決まっていたため、物体があるべき位置姿勢をロボット言語で記述して指定し、その位置姿勢に対する探索範囲を予め定めていた。そして、撮像により得られた画像データから探索範囲外の不要な部分を取り除き、物体の姿勢認識処理の高速化を図っていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６２−２７４３０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来の方法では、予め指定した姿勢の探索範囲外のものについては、物体として認識されないため、載置面上に自由に置かれた物体については適用できないという問題があった。
【０００５】
これに対し、予め物体の３次元モデルを用意し、３次元モデルの姿勢を変えて得られる多数の２次元投影画像を作成しておき、カメラで物体を撮像して得られた撮像画像と、多数ある２次元投影画像のそれぞれとを照合することが考えられる。これにより、多数の２次元投影画像の中から撮像画像と一致度の最も高い２次元投影画像を特定し、載置面上に自由に置かれた物体の姿勢を認識することはできる。
【０００６】
ところが、この方法では、３次元モデルから作成する２次元投影画像を、３次元モデルのあらゆる姿勢に対応して多数用意するため、膨大な画像保存容量が必要である。また、撮像画像と２次元投影画像とを照合する処理は時間を要するものであり、その照合処理の回数が多いほど、多くの計算時間が必要となり、物体の姿勢認識処理の速度が低下する。
【０００７】
そこで、本発明は、載置面上に自由に置かれた物体について、少ない画像記憶容量で高速に物体の姿勢を認識することを目的とするものである。
【課題を解決するための手段】
【０００８】
本発明の姿勢認識装置は、載置面上に載置された物体の姿勢を認識する姿勢認識装置において、前記物体を撮像する撮像部と、前記物体に対応した３次元モデルの情報を記憶する３次元モデル情報記憶部と、前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算部と、安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算部で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成部と、前記２次元投影画像生成部により生成された前記２次元投影画像を記憶する２次元投影画像記憶部と、前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合部と、前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識部と、を備え、前記安定姿勢計算部は、前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択部と、前記３次元モデル姿勢選択部で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点の位置座標を計算する３次元モデル最下点計算部と、前記第２の座標軸及び前記第３の座標軸を含む仮想平面に前記最下点を投影した投影点の凸包を計算する凸包計算部と、前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算部と、前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別部と、を有し、前記３次元モデル姿勢選択部は、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択し、前記３次元モデル最下点計算部、前記凸包計算部、前記３次元モデル重心点計算部、及び前記安定姿勢判別部は、前記３次元モデル姿勢選択部により姿勢情報の選択が変更される度に処理を実行することを特徴とする。
また、本発明の姿勢認識装置は、載置面上に載置された物体の姿勢を認識する姿勢認識装置において、前記物体を撮像する撮像部と、前記物体に対応した３次元モデルの情報を記憶する３次元モデル情報記憶部と、前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算部と、安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算部で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成部と、前記２次元投影画像生成部により生成された前記２次元投影画像を記憶する２次元投影画像記憶部と、前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合部と、前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識部と、を備え、前記安定姿勢計算部は、前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択部と、前記３次元モデル姿勢選択部で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点における前記第１の座標軸の第１の座標値を抽出する最下点座標抽出部と、前記第１の座標値と、前記第１の座標値よりも一定値大きい値に設定された第２の座標値との間に含まれる前記３次元モデルの構造点を前記第２の座標軸と前記第３の座標軸とを含む仮想平面に投影したときの投影点の座標を抽出する投影点座標抽出部と、前記投影点の凸包を計算する凸包計算部と、前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算部と、前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別部と、を有し、前記３次元モデル姿勢選択部は、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択し、前記最下点座標抽出部、前記投影点座標抽出部、前記凸包計算部、前記３次元モデル重心点計算部、及び前記安定姿勢判別部は、前記３次元モデル姿勢選択部により前記３次元モデルの姿勢情報の選択が変更される度に処理を実行することを特徴とする。
【０００９】
また、本発明の姿勢認識方法は、載置面上に載置された物体を撮像する撮像部を有し、前記物体の姿勢を認識する姿勢認識装置が行う姿勢認識方法において、前記物体に対応した３次元モデルの情報を３次元モデル情報記憶部に記憶させる３次元モデル情報記憶工程と、前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算工程と、安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算工程で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成工程と、前記２次元投影画像生成工程により生成された前記２次元投影画像を２次元投影画像記憶部に記憶させる２次元投影画像記憶工程と、前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合工程と、前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識工程と、を備え、前記安定姿勢計算工程は、前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択工程と、前記３次元モデル姿勢選択工程で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点の位置座標を計算する３次元モデル最下点計算工程と、前記第２の座標軸及び前記第３の座標軸を含む仮想平面に前記最下点を投影した投影点の凸包を計算する凸包計算工程と、前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算工程と、前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別工程と、を有し、前記３次元モデル姿勢選択工程では、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択し、前記３次元モデル最下点計算工程、前記凸包計算工程、前記３次元モデル重心点計算工程、及び前記安定姿勢判別工程を、前記３次元モデル姿勢選択工程により前記３次元モデルの姿勢情報の選択が変更される度に実行することを特徴とする。
また、本発明の姿勢認識方法は、載置面上に載置された物体を撮像する撮像部を有し、前記物体の姿勢を認識する姿勢認識装置が行う姿勢認識方法において、前記物体に対応した３次元モデルの情報を３次元モデル情報記憶部に記憶させる３次元モデル情報記憶工程と、前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算工程と、安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算工程で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成工程と、前記２次元投影画像生成工程により生成された前記２次元投影画像を２次元投影画像記憶部に記憶させる２次元投影画像記憶工程と、前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合工程と、前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識工程と、を備え、前記安定姿勢計算工程は、前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択工程と、前記３次元モデル姿勢選択工程で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点における前記第１の座標軸の第１の座標値を抽出する最下点座標抽出工程と、前記第１の座標値と、前記第１の座標値よりも一定値大きい値に設定された第２の座標値との間に含まれる前記３次元モデルの構造点を前記第２の座標軸と前記第３の座標軸とを含む仮想平面に投影したときの投影点の座標を抽出する投影点座標抽出工程と、前記投影点の凸包を計算する凸包計算工程と、前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算工程と、前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別工程と、を有し、前記３次元モデル姿勢選択工程では、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択し、前記最下点座標抽出工程、前記投影点座標抽出工程、前記凸包計算工程、前記３次元モデル重心点計算工程、及び前記安定姿勢判別工程を、前記３次元モデル姿勢選択工程により前記３次元モデルの姿勢情報の選択が変更される度に実行することを特徴とする。
【００１０】
また、本発明のプログラムは、載置面上に載置された物体を撮像する撮像部を有し、前記物体の姿勢を認識する姿勢認識装置のコンピュータに、前記物体に対応した３次元モデルの情報を３次元モデル情報記憶部に記憶させる３次元モデル情報記憶工程と、前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算工程と、安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算工程で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成工程と、前記２次元投影画像生成工程により生成された前記２次元投影画像を２次元投影画像記憶部に記憶させる２次元投影画像記憶工程と、前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合工程と、前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識工程と、を実行させ、前記安定姿勢計算工程では、前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択工程と、前記３次元モデル姿勢選択工程で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点の位置座標を計算する３次元モデル最下点計算工程と、前記第２の座標軸及び前記第３の座標軸を含む仮想平面に前記最下点を投影した投影点の凸包を計算する凸包計算工程と、前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算工程と、前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別工程と、を実行させ、前記３次元モデル姿勢選択工程では、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択させ、前記３次元モデル最下点計算工程、前記凸包計算工程、前記３次元モデル重心点計算工程、及び前記安定姿勢判別工程を、前記３次元モデル姿勢選択工程により前記３次元モデルの姿勢情報の選択が変更される度に実行させることを特徴とする。
また、本発明のプログラムは、載置面上に載置された物体を撮像する撮像部を有し、前記物体の姿勢を認識する姿勢認識装置のコンピュータに、前記物体に対応した３次元モデルの情報を３次元モデル情報記憶部に記憶させる３次元モデル情報記憶工程と、前記３次元モデル情報記憶部から前記３次元モデルの情報を読み出して、前記物体が前記載置面上で静止すると予測される前記物体の姿勢に対応する前記３次元モデルの安定姿勢を計算する安定姿勢計算工程と、安定姿勢の前記３次元モデルが配置される仮想空間において前記撮像部により前記物体を撮像する撮像方向に対応する方向から、前記安定姿勢計算工程で計算された安定姿勢の前記３次元モデルを観測して得られる２次元投影画像を生成する２次元投影画像生成工程と、前記２次元投影画像生成工程により生成された前記２次元投影画像を２次元投影画像記憶部に記憶させる２次元投影画像記憶工程と、前記撮像部により撮像されて得られた撮像画像と、前記２次元投影画像記憶部に記憶された前記２次元投影画像との一致度を計算する画像照合工程と、前記２次元投影画像記憶部に記憶された２次元投影画像のうち、前記一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する前記３次元モデルの姿勢を、前記物体の姿勢として認識する姿勢認識工程と、を実行させ、前記安定姿勢計算工程では、前記仮想空間において重力方向に延びる第１の座標軸と、前記第１の座標軸に直交する第２の座標軸と、前記第１の座標軸及び前記第２の座標軸に直交する第３の座標軸とで表される３次元座標系を定義し、前記第１の座標軸、前記第２の座標軸及び前記第３の座標軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で前記３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する３次元モデル姿勢選択工程と、前記３次元モデル姿勢選択工程で選択された姿勢情報を基に前記仮想空間における前記３次元モデルの姿勢を設定して、前記３次元モデルの前記重力方向の最下点における前記第１の座標軸の第１の座標値を抽出する最下点座標抽出工程と、前記第１の座標値と、前記第１の座標値よりも一定値大きい値に設定された第２の座標値との間に含まれる前記３次元モデルの構造点を前記第２の座標軸と前記第３の座標軸とを含む仮想平面に投影したときの投影点の座標を抽出する投影点座標抽出工程と、前記投影点の凸包を計算する凸包計算工程と、前記仮想空間における前記３次元モデルの重心点の位置座標を計算する３次元モデル重心点計算工程と、前記重心点を前記仮想平面に投影した重心投影点が前記凸包に含まれるときの前記３次元モデルの姿勢を安定姿勢と判別する安定姿勢判別工程と、を実行させ、前記３次元モデル姿勢選択工程では、前記複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択させ、前記最下点座標抽出工程、前記投影点座標抽出工程、前記凸包計算工程、前記３次元モデル重心点計算工程、及び前記安定姿勢判別工程を、前記３次元モデル姿勢選択工程により前記３次元モデルの姿勢情報の選択が変更される度に実行させることを特徴とする。
【００１１】
また、コンピュータ読み取り可能な記録媒体に上記プログラムを記録したことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、安定姿勢の３次元モデルのみ２次元投影画像を２次元投影画像記憶部に記憶するようにしたので、全姿勢の３次元モデルの２次元投影画像を記憶する場合よりも、画像記憶容量を削減することができる。また、撮像画像と照合される２次元投影画像が、３次元モデルが安定姿勢の場合の２次元投影画像のみであるので、全姿勢の３次元モデルの２次元投影画像と照合する場合よりも、高速に物体の姿勢を認識することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る姿勢認識装置の概略構成を示す説明図であり、（ａ）は姿勢認識装置の構成図、（ｂ）は姿勢認識装置の機能ブロック図である。
【図２】撮像部に物体を撮像させる前に行う設定動作を説明するための図であり、（ａ）は撮像画像内での平板と３次元座標原点の位置関係を表す図、（ｂ）はキャリブレーションボードの配置位置を示す図である。
【図３】姿勢認識装置が物体の姿勢認識処理を行う際の動作フローチャートであり、（ａ）は予め照合に用いる画像データを作成する処理の動作フローチャート、（ｂ）は実際に姿勢認識処理を行う際の動作フローチャートである。
【図４】照合に用いる画像データを作成する動作を説明するための図であり、（ａ）は仮想空間における座標軸と姿勢パラメータ（角度）との関係を説明するための図、（ｂ）は２次元投影画像の例を示す図である。
【図５】安定姿勢計算部を説明するための図であり、（ａ）は安定姿勢計算部の機能ブロック図、（ｂ）は安定姿勢計算部の３次元モデル接地点計算部の機能ブロック図である。
【図６】安定姿勢計算部の演算処理動作を説明するためのフローチャートであり、（ａ）は安定姿勢計算部の演算処理動作を示す動作フローチャート、（ｂ）は安定姿勢計算部の３次元モデル接地点計算部の演算処理動作を示す動作フローチャートである。
【図７】安定姿勢計算部の動作を説明するための図であり、（ａ）は３次元モデル最下点の抽出位置を表す図、（ｂ）は凸包の計算手順図である。
【図８】安定姿勢判別部の動作を説明するための図であり、（ａ）は３次元モデルの安定姿勢の判別を説明するための図、（ｂ）は凸包の閉ループ内に重心投影点が含まれるか否かの判断方法を理解するための補助図である。
【図９】本発明の第２実施形態に係る姿勢認識装置の３次元モデル接地点計算部の演算処理動作を示す動作フローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１５】
［第１実施形態］
図１は、本発明の第１実施形態に係る姿勢認識装置の概略構成を示す説明図であり、図１（ａ）は、姿勢認識装置の構成図、図１（ｂ）は、姿勢認識装置の機能ブロック図である。図１（ａ）に示す姿勢認識装置１００は、例えば作業ロボットのコントローラに組み込まれる。その際、姿勢認識装置１００は、平面上に自由に置かれた３次元形状が既知の部品（物体）を、ハンドを有するロボット本体で拾い上げる際に、ロボット本体のハンドで部品の所定の位置を把持できるように、部品の姿勢を自動的に認識するものである。
【００１６】
この姿勢認識装置１００は、撮像部１０１と、撮像部１０１の撮像画像データを受信可能に撮像部１０１に接続された制御装置１０２と、制御装置１０２に接続されたキーボードやマウス等の操作部１０３とを備えている。
【００１７】
撮像部１０１は、入射する光信号を電気信号に変換するＣＣＤ等の撮像素子を有するデジタルビデオカメラである。撮像部１０１は、その撮像素子が例えば６４０×４８０画素を有する場合、６４０ｍｍ×４８０ｍｍの撮像視野を有する。
【００１８】
水平状態に置かれた平板Ｐの平面Ｐａ上（載置面上）には、ロボットに把持される物品であって撮像対象物である物体Ｗが載置される。撮像部１０１は、図２（ａ）に示すように、平板Ｐの平面Ｐａが、全ての画素Ｅで規定される撮像視野Ｖ内に過不足なく収まるように位置や角度が調整されている。例えば、撮像部１０１の撮像面が平面Ｐａと平行となるように、撮像部１０１が平板Ｐの直上に配置されている。撮像部１０１は、例えばＬＶＤＳ（Low Voltage Differential Signaling）信号を用いたシリアル通信により、撮像した画像データをフレーム単位で制御装置１０２に出力する。
【００１９】
ここで、撮像対象物である物体Ｗは、例えば幅３０ｍｍ×奥行き３０ｍｍ×高さ３０ｍｍの立方体型でプラスチック製の部品である。また、平板Ｐは、平面Ｐａが重力方向Ｇに対して垂直となるように配置されている。この平板Ｐは、例えば幅６４０ｍｍ×奥行き４８０ｍｍ×高さ１０ｍｍで黒色の鉄板である。
【００２０】
制御装置１０２は、ＣＰＵ１０４、ＲＯＭ１０５、ＲＡＭ１０６、ＨＤＤ１０７、通信インタフェース１０８等を備えているコンピュータシステムである。ＲＯＭ１０５には、ＣＰＵ１０４に初期化動作を行わせる起動プログラムが記憶されている。ＨＤＤ１０７は、ＣＰＵ１０４にシステム全体を管理させるソフトウェア（ＯＳ）や、当該ソフトウェアに基づくＣＰＵ１０４の動作による管理の下、ＣＰＵ１０４に実行させるコンピュータ読み取り可能なプログラムが記録されている記録媒体である。ＣＰＵ１０４は、ＨＤＤ１０７に記録されたプログラムを読み出して、各種演算処理等を実行する。ＲＡＭ１０６は、ＣＰＵ１０４による作業データを一時的に記憶する。通信インタフェース１０８は、各種データの入出力を管理する。
【００２１】
図１（ｂ）に示すように、制御装置１０２は、カメラパラメータ計算部１、撮像画像補正部２、撮像画像記憶部３、３次元モデル情報入力部４、３次元モデル情報記憶部５、安定姿勢計算部６、２次元投影画像生成部７、２次元投影画像記憶部８を有している。また、制御装置１０２は、画像照合部９及び姿勢認識部１０を有している。これら各部１〜１０は、ＨＤＤ１０７に記録されたプログラムを読み出して動作するＣＰＵ１０４、並びにＣＰＵ１０４の制御により動作するＨＤＤ１０７及び通信インタフェース１０８等が機能する。
【００２２】
具体的には、ＣＰＵ１０４は、カメラパラメータ計算部１、撮像画像補正部２、安定姿勢計算部６、２次元投影画像生成部７、画像照合部９及び姿勢認識部１０として機能する。ＨＤＤ１０７は、撮像画像記憶部３、３次元モデル情報記憶部５及び２次元投影画像記憶部８として機能する。通信インタフェース１０８は、３次元モデル情報入力部４として機能する。
【００２３】
まず、物体Ｗの撮像動作に入る前に、カメラパラメータの計算をしておく必要がある。本実施形態では、物体Ｗの撮像動作を行う前に、図２（ｂ）に示すように、平板Ｐの平面Ｐａ上に、物体Ｗがない状態で、平面Ｐａと等しい寸法のキャリブレーションボードＢを配置し、撮像部１０１により撮像を行う。なお、実空間におけるｘ軸、ｙ軸、ｚ軸で表される３次元座標の原点（ｘ，ｙ，ｚ）＝（０，０，０）は、図２（ａ）に示すように、撮像部１０１により撮像する撮像視野Ｖでの左下方向に位置する、平板Ｐの上面の端点とする。ｚ軸は重力方向Ｇに沿って延び、ｘ軸はｚ軸と直交し、ｙ軸はｘ軸及びｚ軸と直交する。この直交座標系がカメラパラメータ計算部１により設定される。
【００２４】
カメラパラメータ計算部１は、キャリブレーションボードＢを撮像した撮像部１０１からの撮像画像データを受信し、撮像部１０１の内部カメラパラメータ（焦点距離、画素サイズ）及び外部カメラパラメータ（撮像部１０１の位置姿勢）を計算する。これら内部カメラパラメータ及び外部カメラパラメータがカメラパラメータである。このキャリブレーションボードＢを用いたカメラパラメータの計算については、周知の方法により行えばよい。カメラパラメータ計算部１は、撮像する物体Ｗの実際の姿勢に関わりない処理を行うため、物体Ｗの撮像を始める前に実行する。
【００２５】
次に、物体Ｗを撮像して物体Ｗの姿勢を認識する処理動作を行う前に、物体Ｗの姿勢を認識するのに必要な画像データを作成しておく必要がある。図３は、姿勢認識装置１００が物体の姿勢認識処理を行う際の動作フローチャートであり、図３（ａ）は、予め照合に用いる画像データを作成する処理の動作フローチャート、図３（ｂ）は、実際に姿勢認識処理を行う際の動作フローチャートである。
【００２６】
まず、図１を参照しながら図３（ａ）の動作フローチャートに沿って説明する。３次元モデル情報入力部４は、物体Ｗに対応した３次元モデルＷａの情報（データ）を入力する（Ｓ１０１：３次元モデル情報入力工程）。物体Ｗに対応する３次元モデルＷａの情報は、例えばＣＡＤ（Computer Aided Design）ソフトウェアを用いて物体Ｗを設計したときに作成されたデータファイル（３次元ＣＡＤデータ）である。この３次元モデルＷａは、各構造点（頂点）を結んでできる多角形（例えば三角形）からなるポリゴンを多数組み合わせて構成されている。３次元モデル情報入力部４は、操作部１０３を介した操作者の指示に従い、３次元モデル情報入力部４に接続された不図示の外部機器に記憶された３次元モデルＷａの情報やネットワークを介して３次元モデルＷａの情報を入力する。
【００２７】
次に、３次元モデル情報記憶部５は、３次元モデル情報入力部４により入力した３次元モデルＷａの情報を、ＣＰＵ１０４の制御の下で記憶（保存）する（Ｓ１０２：３次元モデル情報記憶工程）。つまり、３次元モデル情報記憶部５は、操作者に操作部１０３を介して指定された３次元モデルＷａの情報を記憶する。
【００２８】
なお、制御装置１０２に導入されたＣＡＤソフトウェアを用いて３次元モデルＷａを作成する場合もある。この場合には、３次元モデル情報入力部４による３次元モデルＷａの情報の入力動作は省略され、作成された３次元モデルＷａの情報が直接３次元モデル情報記憶部５に記憶される。
【００２９】
安定姿勢計算部６は、３次元モデル情報記憶部５から３次元モデルＷａの情報を読み出して、物体Ｗが平面Ｐａ上で静止すると予測される物体Ｗの姿勢に対応する３次元モデルＷａの安定姿勢を計算する（Ｓ１０３：安定姿勢計算工程）。物体Ｗが平面Ｐａ上で静止するとは、物体Ｗが平面Ｐａ上で倒れずに安定して存在することを意味する。ここで、３次元モデルＷａの安定姿勢の姿勢情報は、図４（ａ）に示す、仮想空間Ｓの３次元座標系における姿勢パラメータα（Ｘ軸周りの回転角度）、β（Ｙ軸周りの回転角度）、γ（Ｚ軸周りの回転角度）で表される。仮想空間Ｓにおける３次元座標系の各座標軸は、実空間における３次元座標系の各座標軸（図２（ｂ）参照）に対応させている。安定姿勢計算部６が計算した安定姿勢パラメータ（α、β、γ）は、２次元投影画像生成部７に出力される。
【００３０】
２次元投影画像生成部７は、安定姿勢計算部６で計算された安定姿勢の３次元モデルＷａについてのみ、図４（ｂ）に示すように、仮想空間Ｓに配置する。そして、２次元投影画像生成部７は、仮想空間Ｓにおいて撮像部１０１により物体Ｗを撮像する撮像方向に対応する方向から、安定姿勢の３次元モデルＷａを観測して得られる２次元投影画像Ｃａを生成する（Ｓ１０４：２次元投影画像生成工程）。具体的には、実空間における撮像部１０１の位置姿勢と同じ位置姿勢で仮想空間Ｓにおいて３次元モデルＷａを観測し、２次元投影画像Ｃａを生成する。この２次元投影画像Ｃａは、仮想的な撮像部１０１ａで撮像された撮像画像と同じである。この２次元投影画像を生成する際に、背景色は平板Ｐと同色の、例えば黒色とする。なお、本第１実施形態では、仮想空間Ｓにおいて撮像部１０１により物体Ｗを撮像する撮像方向に対応する方向とは、図１と同じ鉛直下向き方向のことである。
【００３１】
また、２次元投影画像については、撮像距離により大小が変化する撮像画像との照合を行う必要がある。そこで、各姿勢パラメータにおいて、アフィン変換を用いて、撮像部１０１による実際の撮像距離に対応して、例えば１ｍｍずつ、撮像距離９００ｍｍから１１００ｍｍまでに対応する２次元投影画像を全て生成する。つまり、安定姿勢である３次元モデルＷａの１つの姿勢に対して、仮想的な撮像部１０１ａによる観測距離を変えた複数の２次元投影画像が生成される。
【００３２】
２次元投影画像生成部７が生成した２次元投影画像は、２次元投影画像記憶部８に送信される。２次元投影画像記憶部８は、ＣＰＵ１０４の制御の下、２次元投影画像生成部７により生成された２次元投影画像を全て記憶（保存）する（Ｓ１０５：２次元投影画像記憶工程）。この２次元投影画像のデータには、安定姿勢計算部６で計算された安定姿勢の姿勢情報を示す姿勢パラメータ（α、β、γ）が添付されており、２次元投影画像記憶部８は、２次元投影画像のデータと対応付けて姿勢パラメータ（α、β、γ）を記憶する。
【００３３】
これら３次元モデル情報記憶部５、安定姿勢計算部６、２次元投影画像生成部７、２次元投影画像記憶部８における動作は、撮像する物体Ｗの実際の姿勢に関わりない処理を行うため、物体Ｗの姿勢認識処理を始める前に予め実行される。
【００３４】
次に、実際に物体Ｗを撮像して、物体Ｗの姿勢を認識する動作、即ち図３（ｂ）の動作フローチャートを、図１を参照しながら説明する。まず、ＣＰＵ１０４の指示により、撮像部１０１が平面Ｐａ上に載置された物体Ｗを撮像する（Ｓ１１１：撮像工程）。
【００３５】
次に、撮像画像補正部２は、カメラパラメータ計算部１が計算したカメラパラメータを用いて、撮像部１０１から受信した撮像画像データを、画像内のｘ’座標とｙ’座標が３次元座標のｘ座標、ｙ座標に合致するように補正する（Ｓ１１２）。カメラパラメータを用いた画像の補正については、周知の画像補正方法を用いればよい。補正した撮像画像データは、撮像画像記憶部３に出力される。撮像画像記憶部３は、撮像画像補正部２が補正した撮像画像のデータを入力して記憶（保存）する（Ｓ１１３）。
【００３６】
次に、画像照合部９は、２次元投影画像記憶部８から２次元投影画像を１画像ずつ読み込む（Ｓ１１４）。その際、対応する姿勢パラメータ（α、β、γ）も同時に読み込む。読み込んだデータは、ＲＡＭ１０６に格納される。
【００３７】
そして、画像照合部９は、撮像部１０１により撮像されて得られた撮像画像（撮像画像記憶部３に保存された撮像画像）と、２次元投影画像記憶部８に記憶された２次元投影画像（読み込んだ２次元投影画像）との一致度を計算する（Ｓ１１５：画像照合工程）。この画像照合部９における一致度の計算が画像照合処理である。
【００３８】
画像の一致度を計算する評価関数としては、例えば一般に用いられる二乗残差法（ＳＳＤ法）を用いる。画像照合部９が計算した一致度は、姿勢パラメータ（α、β、γ）とともに姿勢認識部１０に送信される。
【００３９】
姿勢認識部１０は、画像照合部９が計算した、全ての２次元投影画像の撮像画像に対する一致度を受信する。そして、姿勢認識部１０は、全ての２次元投影画像の中で最も撮像画像に対する一致度が高い姿勢パラメータ（α、β、γ）を、認識した姿勢情報として出力する（Ｓ１１６：姿勢認識工程）。つまり、姿勢認識部１０は、２次元投影画像記憶部８に記憶された２次元投影画像のうち、一致度が最も高い２次元投影画像を特定し、特定した２次元投影画像に対応する３次元モデルＷａの姿勢を、物体Ｗの姿勢として認識する。
【００４０】
２次元投影画像の中で撮像画像に対する一致度が最も高い姿勢パラメータが複数存在する場合には、αが最小となる姿勢パラメータを、認識した姿勢情報として出力する。さらにαが一致している場合にはβが最小となる姿勢パラメータを、認識した姿勢情報として出力する。さらにβが一致している場合にはγが最小となる姿勢パラメータを、認識した姿勢情報として出力する。
【００４１】
以上の動作により、本実施形態によれば、３次元モデルＷａの膨大な３次元姿勢の組み合せの中で、実際には存在することのない不安定な姿勢に関する画像の生成および照合を行わずに物体の姿勢認識を行うことができる。そして、安定姿勢の３次元モデルＷａのみ２次元投影画像を２次元投影画像記憶部８に記憶するようにしたので、全姿勢の３次元モデルＷａの２次元投影画像を記憶する場合よりも、画像記憶容量を削減することができる。
【００４２】
さらに、実際には存在することのない不安定な姿勢に関する画像と撮像画像との照合を行う時間が不要となる。即ち撮像画像と照合される２次元投影画像が、３次元モデルが安定姿勢の場合の２次元投影画像のみであるので、全姿勢の３次元モデルの２次元投影画像と照合する場合よりも、高速に物体の姿勢を認識することができる。
【００４３】
ところで、ステップＳ１０３における安定姿勢計算部６の計算は、運動シミュレーション手法により行ってもよいが、より簡略化及び高速化を図るため、以下に説明する装置構成及び方法により行ってもよい。
【００４４】
図５は、安定姿勢計算部６を説明するための図であり、図５（ａ）は、安定姿勢計算部６の機能ブロック図である。安定姿勢計算部６は、３次元モデル姿勢選択部１１、３次元モデル最下点計算部としての３次元モデル接地点計算部１２、凸包計算部１３、３次元モデル重心点計算部１４、安定姿勢判別部１５及び判断部１６からなる。
【００４５】
図６は、安定姿勢計算部６の演算処理動作を説明するためのフローチャートであり、図６（ａ）は、安定姿勢計算部６の演算処理動作を示す動作フローチャートである。
【００４６】
まず、３次元モデル接地点計算部１２及び３次元モデル重心点計算部１４は、３次元モデル情報記憶部５から３次元モデルＷａの情報を読み込む（Ｓ１）。具体的には、ＣＰＵ１０４がＨＤＤ１０７から３次元モデルＷａの情報を読み出して、ＲＡＭ１０６に格納する。
【００４７】
３次元モデル姿勢選択部１１は、仮想空間Ｓにおいて重力方向に延びるＺ軸（第１の座標軸）と、Ｚ軸に直交するＸ軸（第２の座標軸）と、Ｚ軸及びＸ軸に直交するＹ軸（第３の座標軸）とで表される３次元座標系を定義しておく。この３次元座標系は、上述した通り、実空間の３次元座標系と対応させた直交座標系である。
【００４８】
そして、３次元モデル姿勢選択部１１は、Ｘ軸、Ｙ軸及びＺ軸のそれぞれの軸まわりに０度以上３６０度未満の角度範囲内で３次元モデルを回転させる複数の姿勢情報のうち、１つの姿勢情報を選択する（Ｓ２：３次元モデル姿勢選択工程）。つまり、３次元モデル姿勢選択部１１では、物体Ｗの姿勢パラメータα、β、γの組み合わせを１通りだけ選ぶ。例えば姿勢パラメータα、β、γを、０．１度ずつ、０．０度から３５９．９度まで変化させる場合には、３６００の３乗である４６，６５６，０００，０００通りの姿勢を、ロールピッチヨー角表現により、α、β、γの順番で回転させ、その姿勢を順に選択する。この場合、３次元モデル姿勢選択部１１は、４６，６５６，０００，０００通りの姿勢情報の中から１つの姿勢情報を選択する。ここで、ロールピッチヨー角表現とは、α、β、γを１つずつ順番に回転させることにより対象を目的の姿勢とさせる回転方法である。
【００４９】
次に、３次元モデル接地点計算部１２は、３次元モデル姿勢選択部１１で選択された姿勢情報を基に仮想空間Ｓに配置される３次元モデルＷａの姿勢を設定して、３次元モデルＷａの重力方向の最下点の位置座標を計算する（Ｓ３：３次元モデル最下点計算工程）。なお、３次元モデルＷａの最下点は、仮想的な水平面において接地する接地点であり、本実施形態では、最下点と接地点は同義である。
【００５０】
以下、３次元モデル接地点計算部１２について詳細に説明する。図５（ｂ）は、安定姿勢計算部６の３次元モデル接地点計算部１２の機能ブロック図である。３次元モデル接地点計算部１２は、３次元モデル姿勢設定部２１、最下点座標抽出部２２、投影点座標抽出部２３及び投影点座標記憶部２４からなる。図６（ｂ）は、３次元モデル接地点計算部１２の演算処理動作を示す動作フローチャートである。
【００５１】
３次元モデル姿勢設定部２１は、３次元モデル姿勢選択部１１（図５（ａ））で選択された姿勢情報を基に仮想空間Ｓにおける３次元モデルＷａの姿勢を設定する（Ｓ３１：３次元モデル姿勢設定工程）。つまり、３次元モデル姿勢設定部２１は、３次元モデル情報記憶部５から読込んだ３次元モデルＷａの情報を用い、３次元モデル姿勢選択部１１で選択した姿勢パラメータα，β，γを用いて、図７（ａ）に示すように、３次元モデルＷａを仮想空間Ｓ内で回転させる。
【００５２】
次に、最下点座標抽出部２２は、３次元モデル姿勢設定部２１で姿勢が設定された３次元モデルＷａの重力方向の最下点ＰｍにおけるＺ軸（第１の座標軸）の座標値Ｚ０を抽出する（Ｓ３２：最下点座標抽出工程）。
【００５３】
次に、投影点座標抽出部２３は、最下点（Ｚ＝Ｚ０の点）ＰｍをＸ軸（第２の座標軸）とＹ軸（第３の座標軸）とを含む仮想平面（Ｘ−Ｙ平面）に投影したときの投影点の座標（Ｘ，Ｙ）を抽出する（Ｓ３３：投影点座標抽出工程）。そして、投影点座標抽出部２３は、最下点を投影した投影点の座標（Ｘ，Ｙ）を全て抽出したか否かを判断し（Ｓ３４）、抽出していない場合（Ｓ３４：Ｎｏ）は、未抽出であった投影点の座標（Ｘ，Ｙ）を抽出する。つまり、投影点座標抽出部２３は、３次元モデル全体で重力方向の最下点が複数存在する場合には、その全ての最下点の投影点の全座標（Ｘ，Ｙ）を抽出する。
【００５４】
全ての投影点の座標（Ｘ，Ｙ）を抽出した場合（Ｓ３４：Ｙｅｓ）、投影点座標記憶部２４は、ＣＰＵ１０４の制御の下、抽出した全座標（Ｘ，Ｙ）を記憶する（Ｓ３５：投影点座標記憶工程）。
【００５５】
以上の３次元モデル接地点計算部１２の動作により、３次元モデルＷａの最下点の位置座標が計算される。
【００５６】
次に、図５（ａ）及び図６（ａ）に戻って安定姿勢計算部６の動作について説明する。ステップＳ３にて、３次元モデル接地点計算部１２により３次元モデルＷａの最下点の位置座標が計算された後、凸包計算部１３は、Ｘ軸及びＹ軸を含む仮想平面（Ｘ−Ｙ平面）における投影点の凸包を計算する（Ｓ４：凸包計算工程）。このとき、凸包計算部１３は、投影点座標記憶部２４から全ての座標（Ｘ，Ｙ）のデータを読み出し、この読み出したデータに基づいて、凸包を計算する。ここで、凸包とは、図７（ｂ）を参照して説明すると、投影点の集合のうち任意の２点を結ぶ線分を常に含む、最小の多角形Ａを意味する。
【００５７】
３次元モデルＷａの複数の最下点から凸包の多角形Ａを計算する方法について、図７（ｂ）に沿って説明する。まず、複数の最下点の中からＹ座標値が最小である最下点を抽出し、第１の頂点Ｐ１とする。次に、第１の頂点Ｐ１を基点とした無限に長い直線を、Ｘ軸方向である０度から１８０度まで、プラス方向に少しずつ角度を変化させ、直線上に含まれる最初の３次元モデル最下点を第２の頂点Ｐ２とする。第２の頂点Ｐ２が存在しない場合には、第１の頂点Ｐ１を凸包とする。第２の頂点Ｐ２が存在する場合には、第２の頂点Ｐ２を基点とした無限に長い直線を、第２の頂点Ｐ２を検出した角度から、第２の頂点Ｐ２を検出した角度に１８０度を加えた角度まで、プラス方向に少しずつ角度を変化させる。そして、その直線上に含まれる最初の３次元モデル最下点を第３の頂点Ｐ３とする。第３の頂点Ｐ３と第１の頂点Ｐ１が異なる場合には、第３の頂点Ｐ３を基点とした無限に長い直線を、第３の頂点Ｐ３を検出した角度から、第３の頂点Ｐ３を検出した角度に１８０度を加えた角度まで、プラス方向に少しずつ角度を変化させる。そして、その直線上に含まれる最初の３次元モデル最下点を第４の頂点Ｐ４とする。以上の演算動作を検出した頂点が第１の頂点Ｐ１と等しくなるまで繰り返すことで、検出した全ての頂点により、凸包の多角形Ａが算出される。
【００５８】
図６（ａ）に戻り、３次元モデル重心点計算部１４は、３次元モデル情報記憶部５に記憶されている３次元モデルＷａの情報を用い、３次元モデル姿勢選択部１１で選択した姿勢パラメータα、β、γを用いて、３次元モデルＷａを回転させる。そして、３次元モデル重心点計算部１４は、仮想空間Ｓにおいて姿勢が設定された３次元モデルＷａの重心点の位置座標（ＸＧ、ＹＧ、ＺＧ）を計算する。
【００５９】
次に、安定姿勢判別部１５は、３次元モデル重心点計算部１４で計算した３次元モデルＷａの重心点をＸ−Ｙ平面に投影した重心投影点が、凸包計算部１３で計算した凸包の多角形Ａの閉ループに含まれるか否かを計算する。そして、安定姿勢判別部１５は、重心投影点が凸包の多角形Ａの閉ループに含まれる場合の３次元モデルＷａの姿勢を安定姿勢と判別する（Ｓ６：安定姿勢判別工程）。
【００６０】
３次元モデルＷａの重心点をＸ−Ｙ平面に投影した重心投影点が、凸包の多角形Ａの閉ループに含まれるか否かを計算する方法を、図８（ａ）に沿って説明する。まず、凸包の多角形Ａの全頂点Ｐ１〜Ｐ４の重心点ＰＧ０の座標を、全ての頂点のＸ座標、Ｙ座標の平均をとることにより計算する。次に、重心点ＰＧ０と３次元モデルＷａのＸ−Ｙ平面における重心投影点とを結び、線分を生成する。次に、生成した線分が、凸包多角形を構成する線分のいずれかと交差するか否かを計算し、いずれにも交差しない場合には、３次元モデルＷａのＸ−Ｙ平面における重心投影点（図８（ａ）中、ＰＧ）は、最下点凸包多角形の閉ループ内に含まれる。逆に、生成した線分が、凸包多角形を構成する線分のいずれかと交差する場合には、重心投影点（図８（ａ）中、ＰＧ’）は、最下点凸包多角形の閉ループ内に含まれない。
【００６１】
２つの線分が交差するか否かを計算する方法を、図８（ｂ）に沿って説明する。例えば判別する２つの線分を、点Ｐ１と点Ｐ２を結ぶ線分、点ＰＧ０と点ＰＧを結ぶ線分であるとする。ここで、ベクトルＰＧ０−ＰＧ、ベクトルＰＧ０−Ｐ１、ベクトルＰＧ０−Ｐ２を考え、ベクトルＰＧ０−Ｐ１とベクトルＰＧ０−ＰＧの外積と、ベクトルＰＧ０−Ｐ２とベクトルＰＧ０−ＰＧの外積を計算する。そして、２つの外積により発生する２つのベクトルが互いに異なる符合となった場合、両者の線分は交差する。また、２つの外積により発生する２つのベクトルが同一の符号となった場合、両者の線分は交差しない。
【００６２】
３次元モデルのＸ−Ｙ平面における重心投影点の座標が最下点凸包多角形の閉ループ内に含まれている場合には、３次元モデル姿勢選択部１１で選択した姿勢パラメータα、β、γは、物体Ｗが静止する（倒れずに安定する）、静的安定な姿勢パラメータである。また、３次元モデルのＸ−Ｙ平面における重心投影点の座標が最下点凸包多角形の閉ループ内に含まれていない場合には、３次元モデル姿勢選択部１１で選択した姿勢パラメータα、β、γは物体Ｗが静的安定でない、不安定な姿勢パラメータである。
【００６３】
図６（ａ）に戻り、判断部１６は、全姿勢についての安定姿勢判別が終了したか否かを判断し（Ｓ７：判断工程）、全姿勢についての安定姿勢判別が終了していない場合（Ｓ７：Ｎｏ）、再度、ステップＳ２の処理に戻る。つまり、ステップＳ７からステップＳ２に戻るルーチンにより、３次元モデル姿勢選択部１１は、複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択する。具体的には、３次元モデル姿勢選択部１１は、姿勢パラメータα，β，γの値を順次変更して選択する。そして、３次元モデル接地点計算部１２、凸包計算部１３、３次元モデル重心点計算部１４、及び安定姿勢判別部１５は、３次元モデル姿勢選択部１１により姿勢情報の選択が変更される度に処理を実行する。つまり、ステップＳ２において全ての姿勢情報が選択し終えるまで、ステップＳ３〜Ｓ６の処理を実行する。以上の動作により、例えば３次元モデルＷａの４６，６５６，０００，０００通りの全ての姿勢について、安定姿勢であるか否かを判別することとなる。
【００６４】
以上の計算は、３次元モデルＷａの重心に基づき判別するだけなので、各姿勢について運動シミュレーション法により運動方程式に基づいて逐次数値計算するよりも、容易に且つ高速に演算することができる。
【００６５】
［第２実施形態］
次に、本発明の第２実施形態に係る姿勢認識装置について説明する。本第２実施形態では、図５における３次元モデル接地点計算部１２、より具体的には、３次元モデル接地点計算部１２の投影点座標抽出部２３の動作が、上記第１実施形態と異なるものであり、それ以外の構成は、上記第１実施形態と同じである。つまり、本第２実施形態では、図６（ａ）のステップＳ３の動作が上記第１実施形態と異なるものであり、それ以外の動作は、上記第１実施形態と同じであるため、同一の動作については、詳細な説明を省略する。
【００６６】
図９は、本発明の第２実施形態に係る姿勢認識装置の３次元モデル接地点計算部の演算処理動作を示す動作フローチャートである。なお、３次元モデル接地点計算部の構成は、図５（ｂ）を用いて説明する。
【００６７】
３次元モデル接地点計算部１２は、上記第１実施形態と同様、３次元モデル姿勢設定部２１、最下点座標抽出部２２、投影点座標抽出部２３及び投影点座標記憶部２４を有する。図９において、３次元モデル姿勢設定部２１は、３次元モデル姿勢選択部１１で選択された姿勢情報を基に仮想空間Ｓにおける３次元モデルＷａの姿勢を設定する（Ｓ３１’：３次元モデル姿勢設定工程）。つまり、３次元モデル姿勢設定部２１は、３次元モデル情報記憶部５に記憶された３次元モデルＷａの情報を用い、３次元モデル姿勢選択部１１で選択した姿勢パラメータα、β、γを用いて、３次元モデルＷａを回転する。
【００６８】
次に、最下点座標抽出部２２は、３次元モデル姿勢設定部２１で姿勢が設定された３次元モデルＷａの重力方向の最下点におけるＺ軸の第１の座標値Ｚ０を抽出する（Ｓ３２’：最下点座標抽出工程）。次に投影点座標抽出部２３は、座標値Ｚ０と座標値Ｚ０よりも一定値大きい値に設定された第２の座標値（Ｚ０＋Ｃ）との間に含まれる３次元モデルＷａの構造点をＸ−Ｙ平面に投影したときの投影点の座標（Ｘ，Ｙ）を抽出する（Ｓ３３’：投影点座標抽出工程）。一定値Ｃは、３次元モデルＷａの誤差、物体Ｗの製造ばらつき、平板Ｐの角度と平面度、３次元モデルＷａの座標軸と重力方向との誤差、等を考慮した最下点の検出マージンを表し、本実施形態では例えばＣ＝０．１ｍｍとする。
【００６９】
そして、投影点座標抽出部２３は、Ｚ０≦Ｚ≦（Ｚ０＋Ｃ）を満たす３次元モデルの構造点をＸ−Ｙ平面に投影した投影点の座標（Ｘ，Ｙ）を全て抽出したか否かを判断する（Ｓ３４’）。投影点座標抽出部２３は、全てを抽出していない場合（Ｓ３４’：Ｎｏ）は、未抽出であった投影点の座標（Ｘ，Ｙ）を抽出する。つまり、投影点座標抽出部２３は、３次元モデル全体で重力方向の最下点が複数存在する場合には、その全ての最下点の投影点の全座標（Ｘ，Ｙ）を抽出する。
【００７０】
全ての投影点の座標（Ｘ，Ｙ）を抽出した場合（Ｓ３４’：Ｙｅｓ）、投影点座標記憶部２４は、ＣＰＵ１０４の制御の下、抽出した全座標（Ｘ，Ｙ）を記憶する（Ｓ３５’：投影点座標記憶工程）。
【００７１】
なお、上記第１実施形態と同様に、凸包計算部１３（図５（ａ））は、このようにして算出された投影点を用いて、凸包を計算する（凸包計算工程）。３次元モデル重心点計算部１４は、仮想空間Ｓにおける３次元モデルＷａの重心点の位置座標を計算する（３次元モデル重心点計算工程）。安定姿勢判別部１５は、この重心点をＸ−Ｙ平面に投影した重心投影点が凸包に含まれるときの３次元モデルの姿勢を安定姿勢と判別する（安定姿勢判別工程）。判断部１６は、全姿勢についての安定姿勢判別が終了したか否かを判断し、全姿勢についての安定姿勢判別が終了していない場合は、再度３次元モデル姿勢選択部１１に、未選択の姿勢情報を選択させる。つまり、３次元モデル姿勢選択部１１は、複数の姿勢情報の全てを選択し終えるまで、姿勢情報を順次変更して選択する。そして、３次元モデル接地点計算部１２、凸包計算部１３、３次元モデル重心点計算部１４、及び安定姿勢判別部１５は、３次元モデル姿勢選択部１１により３次元モデルの姿勢情報の選択が変更される度に処理を実行する。以上の動作により、例えば３次元モデルＷａの４６，６５６，０００，０００通りの全ての姿勢について、安定姿勢であるか否かを判別することとなる。
【００７２】
以上、本第２実施形態によれば、最下点の検出マージンＣを用いることにより最下点の高さばらつきが許容されるので、最下点の高さが正確に定まらない場合においても、物体の安定姿勢を自動的に計算することができる。最下点の高さが正確に定まらない場合とは、例えば３次元モデルの誤差がある場合、物体の３次元形状が製造ばらつきを有する場合、物体が置かれる平面が角度を持つ場合である。また、例えば床の平面度が誤差を有する場合、３次元モデルの座標軸と実際の重力方向との間に誤差がある場合などである。
【００７３】
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限定されない。コンピュータに読み出されるプログラムが格納される記録媒体は、ＨＤＤに限らず、ＣＤ，ＤＶＤ等のメディアやＵＳＢメモリ等の不揮発性メモリであってもよい。つまり、コンピュータにプログラムを読み出し可能に記録されるものであればいかなる記録媒体でもよく、これらに限定するものではない。
【００７４】
そして、上記実施形態の機能をコンピュータに実現させるプログラムを、ネットワーク又は各種記録媒体を介してコンピュータに供給し、そのコンピュータがプログラムコードを読み出して実行するようにすればよい。この場合、そのプログラム、及び該プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明を構成することになる。
【符号の説明】
【００７５】
５…３次元モデル情報記憶部、６…安定姿勢計算部、７…２次元投影画像生成部、８…２次元投影画像記憶部、９…画像照合部、１０…姿勢認識部、１１…３次元モデル姿勢選択部、１２…３次元モデル接地点計算部（３次元モデル最下点計算部）、１３…凸包計算部、１４…３次元モデル重心点計算部、１５…安定姿勢判別部、２１…３次元モデル姿勢設定部、２２…最下点座標抽出部、２３…投影点座標抽出部、１００…姿勢認識装置、１０１…撮像部、Ｗ…物体、Ｗａ…３次元モデル
【図１】
0005762099.tif 000002
【図２】
0005762099.tif 000003
【図３】
0005762099.tif 000004
【図４】
0005762099.tif 000005
【図５】
0005762099.tif 000006
【図６】
0005762099.tif 000007
【図７】
0005762099.tif 000008
【図８】
0005762099.tif 000009
【図９】
0005762099.tif 000010