(57)【特許請求の範囲】
【請求項１】
山積みされた複数の物体に対する距離情報を取得する距離情報取得手段と、
前記距離情報と、前記物体の部分的な形状を表す部分モデルとに基づいて、前記複数の物体のうちの計測対象物体の位置姿勢を導出する導出手段と、
前記物体の全体形状を表す全体モデルに基づいて、前記計測対象物体を保持する際の保持手段による保持動作の際に、前記計測対象物体と前記計測対象物体を格納する容器との間に干渉が生じるかを判定する干渉判定手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記導出手段は、前記計測対象物体の概略位置姿勢を導出する概略位置姿勢導出手段と、前記概略位置姿勢導出手段で得られた概略位置姿勢に基づいて、該概略位置姿勢よりも高精度の位置姿勢を導出する位置姿勢導出手段とを備え、
前記概略位置姿勢導出手段と、前記位置姿勢導出手段は、前記計測対象物体の一部を表すモデルに基づいて位置姿勢の導出の処理を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記導出手段は、前記計測対象物体の概略位置姿勢を導出する概略位置姿勢導出手段と、前記概略位置姿勢導出手段で得られた概略位置姿勢に基づいて、より高精度の位置姿勢を導出する位置姿勢導出手段とを備え、
前記概略位置姿勢導出手段と前記位置姿勢導出手段は、前記全体モデルと前記部分モデルとのうち、それぞれ異なるモデルを用いて、処理を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記概略位置姿勢導出手段は前記全体モデルを用いて処理を行い、前記位置姿勢導出手段は前記部分モデルを用いて処理を行うことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記位置姿勢導出手段は、前記概略位置姿勢に基づいて、前記部分モデルから抽出されるモデル点と前記距離情報に含まれる計測点とを対応付け、該対応づけられたモデル点と、前記計測点とのずれを少なくするように、前記概略位置姿勢を更新することにより、前記位置姿勢を導出することを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記部分モデルは、前記全体モデルを切断することにより生成され、
前記位置姿勢導出手段は、前記部分モデルのモデル点のうち、前記全体モデルから生成される際の切断面にあるモデル点は利用しないで前記位置姿勢を導出することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
情報処理装置であって、
容器に収納された物体の計測された３次元情報と、前記物体の一部の形状を表す部分モデルを用いて、前記物体の概略位置姿勢を導出し、
前記概略位置姿勢を用いて、前記概略位置姿勢よりも高精度の物体の位置姿勢を導出し、
前記物体の全体の形状を表す全体モデルを用いて、ロボットハンドが前記物体を移動させるときに前記物体と前記容器が接触するかどうかを判定する処理部を備えることを特徴とする情報処理装置。
【請求項８】
山積みされた複数の物体に対して、距離計測を行って得られた距離情報を取得する距離情報取得工程と、
前記距離情報と、前記物体の部分的な形状を表す部分モデルとに基づいて、前記複数の物体のうちの計測対象物体の位置姿勢を導出する導出工程と、
前記物体の全体形状を表す全体モデルに基づいて、前記計測対象物体を保持する際の保持手段による保持動作の際に、前記計測対象物体と前記計測対象物体を格納する容器との間に干渉が生じるかを判定する干渉判定工程とを備えることを特徴とする情報処理方法。
【請求項９】
容器に収納された物体の計測された３次元情報と、前記物体の一部の形状を表す部分モデルを用いて、前記物体の概略位置姿勢を導出する工程と、
前記概略位置姿勢を用いて、前記概略位置姿勢よりも高精度の物体の位置姿勢を導出する工程と、
前記物体の全体の形状を表す全体モデルを用いて、ロボットハンドが前記物体を移動させるときに前記物体と前記容器が接触するかどうかを判定する判定工程と、を備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至６のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項１１】
請求項９に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の形状を表すモデルを用いて位置姿勢を計測する技術に関する。
【背景技術】
【０００２】
工場などの生産ラインにおいて、ばら積みされた計測対象物体の中から一個体を、ビジョンシステムを用いて特定し、三次元位置姿勢を計測することで、ロボットに取り付けたハンドにより把持を行う、ばら積みピッキング技術が近年開発されている。計測対象物体の３次元ＣＡＤデータを用いて、位置姿勢を算出するための認識モデルを自動作成し、認識モデルと距離計測で得られた計測情報をフィッティングする手法が存在する。この方法によればビジョンシステムを計測対象物体毎にカスタマイズしたりする必要がなく、３次元ＣＡＤデータを入れ替えるだけで計測対象物体個別への対応が済むので有効な方法である。
【０００３】
また、ロボットに取り付けたハンドにより把持を行うため、ハンドによる把持の際に把持候補計測対象物体とパレットとの干渉判定を行い把持可能性のチェックをした上で、把持候補として判定することにおいても、計測対象物体の幾何情報が必要となるため、この機能の実現に関しても３次元ＣＡＤデータを用いることが必要となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１２７７２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、２次元画像の輪郭線を用いて、計測対象物体中のある特定の部位を認識することにより、すなわち、計測対象物体の全体ではなく部分を認識することにより、計測対象物体の位置姿勢を算出することが開示されている。
【０００６】
３次元ＣＡＤモデルを利用した位置姿勢においても、計測対象物体の一部分に対応する部分モデルを利用することで、認識処理を行うことは可能である。しかしながら、そのような部分モデルを利用してハンドによる把持の際に把持候補計測対象物体とパレットとの干渉判定を行った場合に正しく判定できないと言う課題がある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の情報処理装置は、例えば、山積みされた複数の物体に対して、距離情報を取得する距離情報取得手段と、前記距離情報と、前記物体の部分的な形状を表す部分モデルとに基づいて、前記複数の物体のうちの計測対象物体の位置姿勢を導出する導出手段と、前記物体の三次元ＣＡＤデータから得られる前記物体の全体形状を表す全体モデルに基づいて、前記計測対象物体を保持する際の保持手段による保持動作の際に、前記計測対象物体と前記計測対象物体を格納する容器との間に干渉が生じるかを判定する干渉判定手段とを備える。
【発明の効果】
【０００８】
本発明によれば、部分モデルを用いて物体の位置姿勢を導出した場合でも、物体とパレットとの間の干渉判定を正しく判定することができる。
【図面の簡単な説明】
【０００９】
【図１】第１〜第３の実施形態における位置姿勢計測装置の構成図である。
【図２】本実施形態の典型的なセンサ構成を示す図である。
【図３】干渉判定の概念を表す模式図である。
【図４】計測範囲を限定することを示した図である。
【図５】入力されるパレットの寸法を示した図である。
【図６】干渉判定で使用するパレット２０５の平面を表す図である。
【図７】計測対象物体２０１とパレット２０５との干渉判定の流れを示すフローチャートである。
【図８】干渉判定で用いるマージンを示した図である。
【図９】部分モデルを用いた計測対象物体２０１認識と全体モデルを用いた干渉判定のフローを示したフローチャートである。
【図１０】部分モデルを作成するためのＧＵＩを示した図である。
【図１１】第２の実施形態で、切断面を保持して参照し未使用とするモデル点を排除することを示した図である。
【図１２】第２の実施形態で、切断面を考慮しモデル点を排除するフローを示したフローチャートである。
【図１３】第２の実施形態で、全体モデルと部分モデルを比較して未使用とするモデル点を排除することを示した図である。
【図１４】第２の実施形態で、全体モデルと部分モデルを比較しモデル点を排除するフローを示したフローチャートである。
【図１５】第３の実施形態で、（ａ）概略位置姿勢認識部と位置姿勢算出部の両方で部分モデルを使用することを示した図である。（ｂ）概略位置姿勢認識部では全体モデルを位置姿勢算出部では部分モデルを使用することを示した図である。
【図１６】第４の実施形態で、計測対象物体２０１の特定計測対象物体２０１サイズ及び全体サイズを示した図である。
【図１７】本発明に係る情報処理装置１のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施形態について詳細に説明する。
【００１１】
［第１の実施形態］
本発明にかかる実施形態を説明するのに先立ち、各実施形態に示す情報処理装置１が実装されるハードウェア構成について、図１７を用いて説明する。
【００１２】
図１７は、本実施形態における情報処理装置１のハードウェア構成図である。同図において、ＣＰＵ１７１０は、バス１７００を介して接続する各デバイスを統括的に制御する。ＣＰＵ１７１０は、読み出し専用メモリ（ＲＯＭ）１７２０に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム（ＯＳ）をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はＲＯＭ１７２０に記憶されており、ランダムアクセスメモリ（ＲＡＭ）１７３０に一時記憶され、ＣＰＵ１７１０によって適宜実行される。また、入力Ｉ／Ｆ１７４０は、外部の装置（表示装置や操作装置など）から情報処理装置１で処理可能な形式で入力信号として入力する。また、出力Ｉ／Ｆ１７５０は、外部の装置（表示装置）へ表示装置が処理可能な形式で出力信号として出力する。
【００１３】
図１は、第１の実施形態における情報処理装置１を用いたシステムの機能ブロック図である。図１のように、情報処理装置１は、外部のセンサ部１０１と接続されている。
【００１４】
センサ部１０１は、計測対象物体２０１の位置姿勢を認識するために必要な計測情報を取得するためのセンサである。本実施形態では、センサ部１０１はカメラとプロジェクタ、演算部とを備える。プロジェクタは、計測対象物体２０１に複数のパターン光を照射して、カメラは、パターンが照射された物体を含んだパターン画像を取得する。センサ部１０１は、三角測量の原理に基づいて計測対象物体２０１の距離情報を算出する（距離情報取得）。しかし、センサ部１０１はカメラとプロジェクタの組み合わせに限定するものではない。たとえば、センサ部１０１としては、対象に照射したレーザ光やスリット光の反射光をカメラで撮影し、演算部による三角測量により距離を計測するもの、光の飛行時間を利用するＴｉｍｅ−ｏｆ−ｆｌｉｇｈｔ方式のもの、あるいは、ステレオカメラで撮影する画像から演算部による三角測量により距離を計算するもの、などが利用できる。その他、物体の三次元位置姿勢を認識するのに必要な情報を取得できればいかなるセンサであっても本発明の本質を損なうものではない。
【００１５】
図２が本実施形態における典型的なセンサ部１０１の構成である。カメラ２０２は、現実空間を撮像するものであり、プロジェクタ２０３によって光が照射された計測対象物体２０１を撮像するために使用する。そしてカメラ２０２は、撮像した画像（撮像画像）を、演算部２０４に対して送出する。演算部２０４は、異なるパターン光で撮影した複数の撮像画像から三角測量の原理に基づき距離情報の算出を行う。本実施形態では、距離画像および濃淡画像をともに取得可能なセンサを利用するものとする。センサ部１０１が取得した計測情報（距離画像および濃淡画像）は概略位置姿勢認識部１０２に入力される。以下では、計測対象物体２０１の例としては、例えば工業用部品が挙げられる。
【００１６】
概略位置姿勢認識部１０２は、ばら積みされた複数の計測対象物体２０１の中から一個体を検出し、所定の座標系における計測対象物体２０１の位置及び姿勢の概略値を算出する。概略位置姿勢認識部１０２は、後述の辞書保持部１０９から事前学習により作成された認識辞書を取得する。本実施形態では、認識辞書は計測対象物体２０１の部分的な形状を表すモデル（部分モデル）を用いて生成された辞書を用いる。概略位置姿勢認識部１０２は、事前学習された認識辞書を用いて、計測対象物体２０１のどの部分的な形状と似ているかを判定することにより、概略の位置姿勢を求める。
【００１７】
位置姿勢算出部１０３は、概略位置姿勢認識部１０２で認識された概略の位置姿勢と、センサ部１０１により取得した計測情報と、部分モデルとを用いて、計測対象物体２０１の位置姿勢を算出する。本実施形態では部分モデルは概略位置姿勢認識部１０５における辞書を作成する際のモデルと同じものを用いる。位置姿勢算出部１０３により算出される位置姿勢は、概略位置姿勢認識部１０２で求められる概略の位置姿勢よりも高精度である。
【００１８】
干渉判定部１０４は、位置姿勢算出部１０３が算出した計測対象物体２０１の位置姿勢から計測対象物体２０１をピッキングして抜き出す際における計測対象物体２０１とパレット２０５とが衝突しないかどうかの干渉判定を行う。図３はその干渉判定の概念を表す模式図である。
【００１９】
本実施形態では、図３で示すように、センサ部１０１の計測範囲内に計測対象物体２０１の全領域が入らない場合に、部分モデルを利用して計測対象物体２０１の特定部位を認識する。しかしながら、この場合においても、計測対象物体２０１とパレット２０５との干渉判定に関しては、全体モデルで行わないと、図３（Ｂ）のような場合に干渉があると判定されない。そのため、本実施形態では、認識処理は、部分モデルで行い、干渉判定は、全体モデルで行う。また、図４のように特徴のある部位に対する部分モデルを用いて認識処理をすることにより、全体モデルを用いて認識するより、特定部位について高精度に認識処理を行うことができる。
【００２０】
干渉判定部１０４は、まず事前にロボットハンド２０６で計測対象物体２０１を把持（保持）して少し引き上げた（保持動作）座標点において干渉判定を行う。具体的には、まず、計測対象物体２０１の全体形状を表現するポリゴンモデルを基準座標の空間上に配置する。さらに、パレット２０５側面に対応する平面を配置する。そして、各ポリゴンと平面との三次元空間的な重なりや配置関係を検出することで干渉判定を行う。
【００２１】
全体モデル保持部１０６は、計測対象物体２０１の三次元ＣＡＤモデルから生成された計測対象物体２０１の形状全体を表現するモデル（全体モデル）を保持する。全体モデルは、干渉判定部１０４による干渉判定処理で利用される。
【００２２】
部分モデル保持部１０５は、全体モデルの一部であり、計測対象物体２０１の形状の一部を表現するモデル（部分モデル）を保持する。保持される部分モデルは、位置姿勢算出部１０３により処理で利用される。部分モデルは、全体モデルを切断することにより生成されても良いし、全体モデルとは別に３次元ＣＡＤモデルから別途生成してもかまわない。
【００２３】
パレットモデル保持部１０７は、計測対象物体２０１を格納するパレット２０５（容器）の形状を表現する三次元モデルであるパレットモデルを保持する。パレットモデルは、パレット２０５の各寸法の入力によって生成され、干渉判定部１０４による干渉判定処理で利用される。具体的には、図５にあるように、パレット２０５のｘ，ｙ，ｚの立方体の各辺の寸法、及び、ｘ，ｙ方向のパレット２０５の幅であるｗｘ，ｗｙと内側の高さであるｚｉｎが入力される。そして、この入力値を利用して、パレット２０５の形状モデルを生成する。更に、生成されたパレット２０５モデルを用いて、パレット２０５の位置姿勢を求める。パレット２０５の位置姿勢は、予め定められた略同じ位置に置かれるとして定めても良いし、位置姿勢算出部１０３を利用して求めてもよい。もちろん、パレット２０５がしっかりと固定されている場合には、パレット２０５の位置姿勢自体を既知と考えることが可能であり、パレット２０５の位置姿勢認識を行わなくても良い。
【００２４】
出力部１０８は、干渉判定部１０４の結果を外部の装置（例えばディスプレイ）に、外部の装置が読み出し可能な形式で出力する。
【００２５】
辞書保持部１０９は、概略位置姿勢認識部１０２で使用される辞書を保持する。本実施形態では、木構造型の辞書を保持するものとする。木構造型の辞書は、木構造の節に対応する各ノードにおいて、既知の姿勢を持つ物体を含む学習用の画像から特徴量を抽出し抽出された特徴量に対して予め定めた規則に応じて、下位のいずれかのノードに分類することを繰り返す。これを事前に複数の画像に対して行うことにより、学習画像が分類された結果を表したものが木構造型の辞書となる。例えば、特徴量が画像の複数の輝度値であった場合に、輝度値同士の大小を比較し、その比較結果に応じて分類するノードを決定する。
【００２６】
情報処理装置１を構成する各機能部は、ＣＰＵ１７１０が、ＲＯＭ１７２０に格納されたプログラムをＲＡＭ１７３０に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、ＣＰＵ１７１０を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２７】
次に、図９を参照して、本実施形態の情報処理装置１の処理フローを説明する。
【００２８】
（ステップＳ９０１）
ステップＳ９０１において、概略位置姿勢認識部１０２は、センサ部１０１が計測した計測対象物体２０１の計測情報を取得する。
【００２９】
（ステップＳ９０２）
ステップＳ９０２において、概略位置姿勢認識部１０２および位置姿勢算出部１０３は、部分モデルを用いて計測対象物体２０１の位置姿勢を算出する。
まず、概略位置姿勢認識部１０２は、部分モデル由来の認識辞書を利用した認識処理を行う。
【００３０】
ばら積みされた複数の計測対象物体２０１の中から一個体を検出し、計測対象物体２０１の位置及び姿勢の概略値を算出する。なお、予め位置及び姿勢計測の基準となる三次元の座標系（基準座標系）が規定されているものとする。本実施形態では、センサ部１０１に使用するセンサの中心を原点とし、取得される画像の水平方向をｘ軸、垂直方向をｙ軸、センサ部１０１の光軸をｚ軸とした座標系を基準座標系とする。物体の位置及び姿勢とは、基準座標系における物体の位置及び姿勢を表す。本実施形態では、センサ部１０１で取得した距離画像および濃淡画像に対して、上述の方法で事前学習した辞書を用いて、計測対象物体２０１のおおまかな位置姿勢である概略位置姿勢を認識（概略位置姿勢導出）する。概略位置姿勢の認識は、取得した距離画像および濃淡画像それぞれを分割した部分画像を、事前学習時に用いられた規則に応じて分類し、分類されたノードに対応する学習用の画像に含まれる物体の姿勢を、認識された姿勢とする。そして、部分画像ごとに分類された結果を集計して、位置と姿勢を求める。ただし、概略位置姿勢の認識方法は他の方法であってもかまわない。たとえば、多数の姿勢から観測した画像をテンプレートとしてパターンマッチングを行ってもよい。その他、山積みの中から一個体を発見し、その三次元位置姿勢を算出できる方法であれば、ここで述べた以外のいかなる方法であってもかまわない。概略位置姿勢認識部１０２で算出した位置姿勢は、概略位置姿勢として位置姿勢算出部１０３に入力される。
【００３１】
つぎに、位置姿勢算出部１０３は、公知のＩＣＰアルゴリズムを用いて、入力された概略位置姿勢に基づき、計測対象物体２０１の部分モデルと、センサ部１０１により取得した計測情報とがもっともフィットするような位置姿勢を算出（フィッティング）する。たとえば、距離画像のみあるいは濃淡画像のみを用いてフィッティングを行ってもよい。具体的には、まず、概略位置姿勢に基づいて、部分モデル上のモデル点を距離画像に投影し、最も近い距離点（計測点）を対応づける。そして、対応づけられたモデル点と計測点との間の距離を最小化するように概略位置姿勢を更新する処理を繰り返し行うことにより、計測対象物体２０１の位置姿勢を導出する。
【００３２】
（ステップＳ９０３）
ステップＳ９０３では、干渉判定部１０４は、全体モデルを利用した干渉判定を行う。
【００３３】
以上の処理が情報処理装置１の処理となる。
【００３４】
次に、ステップＳ９０３の干渉判定処理の詳細について、図７を用いて詳細に説明する。
【００３５】
干渉判定が注目するパレット２０５を構成する平面は、図６で示すようにパレット２０５の上面の平面Ｔと、パレット２０５の４つの側面からなる平面Ｓ１，Ｓ２，Ｓ３，Ｓ４、及びパレット２０５の内側の底面の平面Ｂで規定される。ここで干渉に関しては、まず図７のフローチャートで示される
（ステップＳ７０１）
ステップＳ７０１では、干渉判定部１０４は、計測対象物体２０１を表したポリゴンを作成する。
【００３６】
（ステップＳ７０２）
ステップＳ７０２では、干渉判定部１０４は、ステップＳ７０１で作成されたポリゴンから、上面に対応する平面Ｔと、底面に対応する平面Ｂの間にあるポリゴンを抽出する。
【００３７】
上述したポリゴンは、計測対象物体２０１表面上の点の位置（３次元座標）と、面を近似するポリゴンを構成するための各点の連結情報によって構成される。なお、ポリゴンは三角形で構成されるのが一般的であるが、四角形や五角形であってもよい。その他、表面点の３次元座標とその連結情報により物体形状を近似表現できるポリゴンモデルであればいかなるものであってもよい。
【００３８】
各々のポリゴンに関して、平面のどちら側にあると判断するには、平面の方程式とポリゴンを構成する各構成点の三次元座標を使用する。ポリゴンは点列で示されるので（典型的には３角形の３点）、各点と平面の方程式ａｘ＋ｂｙ＋ｃｚ＋ｄ＝０（ａ２＋ｂ２＋ｃ２＝１の制約）の左辺の正負判定で平面のどちら側かを判定することができる。ポリゴンを構成する各点において正負が分かれる場合はそのポリゴンが正に平面と干渉していることになる。
【００３９】
（ステップＳ７０３）
ステップＳ７０３では、干渉判定部１０４は、ステップＳ７０２で抽出したポリゴンに関して、次に側面をなす平面Ｓ１〜Ｓ４の位置関係を調べる。各ポリゴンに関してＳ１〜Ｓ４に対して、パレット２０５の内側に位置しているかどうかをチェックする。各ポリゴンにおいてパレット２０５の内側に存在していると判断されたものは、排除して、残ったポリゴンに関して注目する。残存したポリゴンがなければ、ステップＳ７０４で計測対象物体２０１とパレット２０５には干渉はないと判断される。そして、その計測対象物体２０１は把持候補となる。
【００４０】
一方、あるポリゴンがひとつでも平面と干渉していたり、あるポリゴンがパレット２０５の外側にあると判定された場合には、その計測対象物体２０１は、パレット２０５との間に干渉があると判断される。そして、その計測対象物体２０１は把持候補からは除外される。
【００４１】
通常、干渉判定処理ではポリゴンと平面の距離にマージンを設ける。もし実際に物理的に干渉が発生して、物体同士が当ってしまうと、ロボットハンド２０６を含むロボットが壊れたりする可能性がある。そのため、安全サイドに考えて、ある程度の距離が近くなれば干渉していると判断する。このマージンは、誤差や推定精度やロボットの精度などに依存し、一定の閾値を設定して実現する。即ち、図５ではなく図８のように、マージンｍの数値を加えた、パレット２０５に変形して、実際の干渉判定の処理を行う。
【００４２】
上記干渉判定処理には全体モデルを利用するため、情報処理装置１全体としては両方のモデルを利用する。
【００４３】
本実施形態では、部分モデルは、全体モデルから生成され、それぞれ独立に保持される。部分モデルデータの生成については、例えば、情報処理装置１に対して外部のＣＡＤシステムなどを利用して、全体モデルを編集して部分モデルデータを作成し、全体モデルと部分モデルとを、情報処理装置１に取り込み保持する方法がある。
【００４４】
また、ＧＵＩを利用して、全体モデルを情報処理装置１に読み込み、平面で部分的に全体モデルの一部を切り取り、部分モデルを装置内で作成する方法がある。この場合に関しては、図１０（ａ）のような画面で部分モデルを生成する。画面中央にＣＡＤの三次元表示を行える表示領域を備える。ＣＡＤの表示領域の画面をクリックしてドラッグすることで、３次元の視点を変更出来るようになっている。また、マウスのホイールで拡大・縮小が出来るようになっている。拡大・縮小とは、３次元の視点を計測対象物体２０１に近づける、遠ざけるに対応した操作となる。任意の視点から３次元ＣＡＤモデルを適切な視点から見た形態で表示したところで、図１０（ｂ）のようにＣＡＤ切断ボタンを押し、２点を指示する。そのようにすると２点を結ぶ線分が現れる。これは実際には画面に鉛直方向の平面を表しており、線分表示の後にマウスカーソルが、×に変わるので、その平面で分割されるＣＡＤモデルのうち削除する側をクリックする。この操作を一回することで、ある平面でＣＡＤを切断し、片方を削除する操作が行える（図１０（ｃ））。これを図１０（ｄ）のように繰り返すことにより、不要な部分を削除した部分モデルを作成することが出来る（図１０（ｅ））。この段階で保存ボタンにより部分モデルに名前を付けて保存できる。以上をもって作成した部分モデルを全体モデルとともに、装置内に保持する。
【００４５】
本実施形態では、認識用のＣＡＤモデルと、干渉判定用のＣＡＤモデルをそれぞれ別々に装置内の記憶手段に保持することで、認識用に部分モデルを用いても、干渉判定用には全体モデルを用いることで正しく干渉判定できる構成を示した。
【００４６】
［第２の実施形態］
第１の実施形態では認識用のモデルと干渉判定用のモデルを別々に２つ持ち、認識用には部分モデルを使うため、全体モデルから切り出した部分モデルを利用することを述べた。
【００４７】
部分モデルを利用して認識する場合、単純に部分モデルを用いて、従来の全体モデルを用いた認識処理を行わせようとすると、切断面に疑似境界が出現するため、疑似モデル面点や疑似モデルエッジ点の影響が発生し、認識に悪い影響を及ぼすことがある。本実施形態では、この悪影響を低減するため、切断面による疑似的な面やエッジを取り除く手法について述べる。
【００４８】
その前にモデル面点とモデルエッジ点について説明する。
【００４９】
モデル面点とは、処理時間の高速化のため、事前に生成したポリゴンモデル上から、位置合わせで利用するためのサンプル点をあらかじめ計測モデルとして用意しておき、それを２．５Ｄの距離画像上に投影することでモデルと距離点との対応付けを行うサンプル点のことである。
【００５０】
視点別のモデル面点の生成方法は以下のようなものである。モデル面点の生成モデルを様々な角度から観察すると、計測対象物体２０１の見えが大きく変化する。また、計測対象物体２０１同士の遮蔽も発生する。そこで、モデルをレンダリングした画像を参照することでモデル面点が可視かどうかを判断する方法を利用する。
【００５１】
モデル面点と同様に視点別モデルの各ノードにおける観察姿勢でモデルを観察したときに、可視のモデルエッジ点を視点別のノードにあるエッジリストに追加する処理を行う。モデルエッジ点には３種類あり、ＣＡＤの各面の境界曲面を分割して生成された正確なエッジであるＢｒｅｐエッジ、ポリゴン面の各辺を分割して生成したテッセレーションの誤差を含むＭｅｓｈエッジ、内部構造のジャンプしたエッジ部分をポリゴン面の各辺を分割して生成した構造エッジからなる。
【００５２】
切断面による疑似的な面やエッジを取り除く手法は、図１１のようにモデルフィッティングに利用するモデル点がその切断平面上にあるものは利用しないようにすることを行う。これをフローチャートで示した図が図１２である。
【００５３】
（ステップＳ１６０１）
ステップＳ１６０１において、部分認識のためにはＣＡＤモデルの一部分を複数のある平面で切断した形でモデルを保持しておき、その切断平面も保持した内部データ構造にしておく。
【００５４】
（ステップＳ１６０２）
ステップＳ１６０２において、モデル点を選択する。
【００５５】
（ステップＳ１６０３）
ステップＳ１６０３において、ステップＳ１６０２で選択されたモデル点と切断面との距離を算出する。
【００５６】
（ステップＳ１６０４）
ステップＳ１６０４では、ステップＳ１６０３で算出された距離が閾値以内であるか否かを判定する。閾値以内であれば、切断平面上に存在するものと判断する。そしてステップＳ１６０５に処理を進める。一方で、閾値よりも大きければステップＳ１６０６に処理を進める。
【００５７】
（ステップＳ１６０５）
ステップＳ１６０５では、切断平面上に存在するモデル点、即ち、モデル面点及びモデルエッジは使用しないように設定する。
【００５８】
（ステップＳ１６０６）
ステップＳ１６０６では、モデル点即ち、モデル面点及びモデルエッジを使用するように設定する。
【００５９】
切断平面を保持する代わりに、図１３のように、全体モデルと部分モデルを比較することで、モデル点のうち全体モデルでは観測できない部分モデル上のモデル点は、排除するという方法も考えられる。
【００６０】
この場合のフローチャートは図１４のようになる。図１４のフローチャートにおいては図１２と異なり，ステップＳ１８０２で全体モデルを参照して、選択したモデル点が全体モデルにも観測できるかどうかをステップＳ１８０３で判定して、そのモデル点を使用するか（ステップＳ１８０４）、使用しないか（ステップＳ１８０５）を判定する。部分モデルに切断面の情報を保持しておくのではなく、部分モデルをベースとしたモデル上で選択したモデル点に関して、全体モデルを参照する点が異なる。
【００６１】
［第３の実施形態］
第１の実施形態では認識用のモデルと干渉判定用のモデルを別々に２つ持ち、全体の位置姿勢計測装置を構成することを述べた。
【００６２】
本実施形態では、部分モデルを用いる目的をさらに追記したうえで、認識処理のうち、概略位置姿勢認識部１０２と位置姿勢算出部１０３によって、異なるモデルを用いる場合に、即ち認識用のモデルに２つ、干渉判定用のモデルに１つ、計３つのモデルを持つ場合ついても述べる。
【００６３】
部分モデルを利用して、計測対象物体２０１認識を行う場合は、第１の実施形態で記載の通り、以下の２つの状況が考えられる。部分モデルを利用することにより撮像視野外へはみ出す大型計測対象物体２０１に対応することができると考える。視野範囲内に収まるある特定の部位を示すＣＡＤのみで、特定部位部分認識を行うことで大型計測対象物体２０１に対応できる。また、交差の少ない部位を特定して計測範囲をあえて限定して利用することで、部分モデルを用いて、精度のよい位置姿勢を算出ことができる。
【００６４】
概略位置姿勢認識部１０２と位置姿勢算出部１０３を分離して考えた場合は、両方とも部分モデルを用いて処理する場合（図１５（ａ））と、前段は全体モデルで後段は部分モデルを用いる場合（図１５（ｂ））ができる。前者は典型的には、大型の計測対象物体２０１で全体モデルに対応する計測対象物体２０１全体が撮像視野内に入らない場合に利用されるが、後者は特定部位のみで精度よく最終段のフィッティングを行うときに主に利用可能である。概略の位置姿勢は計測対象物体２０１全体のＣＡＤを利用して、大まかに位置姿勢を求めておいて、最終的には特定部位を精緻にフィッティングするために部分モデルを用いることができる。
【００６５】
また、概略位置姿勢認識部１０２と位置姿勢算出部１０３は、両方が部分モデルを用いるにしても、同じものでなくても構わない。それぞれが異なる部位を示す部分モデル（一方がもう一方を包含していてもよい）も可能である。よって、撮像視野外へはみ出す大型の計測対象物体２０１に対応する場合においても、交差の少ない部位を特定して最終段では位置姿勢算出を行うことで、精度のよい位置姿勢を算出することは、両立するものである。
【００６６】
［第４の実施形態］
第１の実施形態では干渉判定の際に一定のマージンを設けることについて述べた。本実施形態では干渉チェックのマージンｍを計測対象物体２０１毎に動的に設定することについて述べる。
【００６７】
部分モデル由来の認識モデルを利用するが故に、その特定部位においては位置と姿勢の精度が高い効果が期待できるが、計測対象物体２０１全体でみた場合には姿勢の決定精度が劣化すると考えられる。その劣化程度を予め求めておいて、その曖昧さを加味したうえで干渉判定を行う。
【００６８】
事前に繰り返して特定部位の部分モデルを利用したフィッティングを行って姿勢のバラつきを計測してそれを利用してもよいし、特定部位の部分モデルを利用したフィッティングに関しては一画素の精度誤差が発生するとしてもよい。そのバラつき誤差の画素数をＰとする。画素数はサンプリング精度を考え、小数でもよいとする。
【００６９】
特定部位に対応した計測対象物体２０１のサイズの各軸の計測対象物体２０１サイズを図１６に示すＰａｒｔ．ｘ，Ｐａｒｔ．ｙ，Ｐａｒｔ．ｚとして、計測対象物体２０１全体のサイズの各軸の計測対象物体２０１サイズを図１６に示すＡｌｌ．ｘ，Ａｌｌ．ｙ，Ａｌｌ．ｚとして、その軸ごとのサイズ比の最大値
Ｍ＝ＭＡＸ（Ａｌｌ．ｘ／Ｐａｒｔ．ｘ，Ａｌｌ．ｙ／Ｐａｒｔ．ｙ，Ａｌｌ．ｚ／Ｐａｒｔ．ｚ）
を算出し、
ｍ’＝ｍ＋Ｐ＊Ｍとして、マージンｍの代わりにｍ’を利用する。この式だけに限定するものではなく、部分部位の姿勢の揺らぎを、計測対象物体２０１全体の揺らぎに反映する形で、マージンを求めるものであればそれでよい。
【００７０】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。
【００７１】
即ち、上述した各実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。このプログラム及び当該プログラムを記憶したコンピュータ読み取り可能な記憶媒体は、本発明に含まれる。
【図１】
0006632208.tif 000002
【図２】
0006632208.tif 000003
【図３】
0006632208.tif 000004
【図４】
0006632208.tif 000005
【図５】
0006632208.tif 000006
【図６】
0006632208.tif 000007
【図７】
0006632208.tif 000008
【図８】
0006632208.tif 000009
【図９】
0006632208.tif 000010
【図１０】
0006632208.tif 000011
【図１１】
0006632208.tif 000012
【図１２】
0006632208.tif 000013
【図１３】
0006632208.tif 000014
【図１４】
0006632208.tif 000015
【図１５】
0006632208.tif 000016
【図１６】
0006632208.tif 000017
【図１７】
0006632208.tif 000018