(57)【要約】【課題】対象物を複数のカメラで撮像して得られる画像データから３次元情報を取得し、当該取得した３次元情報を３次元モデルデータと照合することで、当該対象物について３次元認識を行う処理に用いられる、３次元モデルデータを容易に作成することが可能なモデル作成装置およびモデル作成プログラムを提供する。【解決手段】本実施の形態に従う３次元モデルデータ作成処理においては、認識すべき対象物の設計データ（ＣＡＤデータ）を用いて、３次元モデルデータを作成する。この作成処理は、コンピュータ上で実行される設計データに対する変換処理および編集の処理と、実用環境で実行されるティーチングの処理とを含む。３次元モデルデータの作成処理においては、ワークモデルＷＭを撮像する必要がない。【選択図】図７
2011185650.tif 000002
【特許請求の範囲】
【請求項１】
対象物を複数のカメラで撮像して得られる画像データから３次元情報を取得し、当該取得した３次元情報を３次元モデルデータと照合することで、当該対象物について３次元認識を行う処理に用いられる、当該３次元モデルデータを作成するためのモデル作成装置であって、
境界に区分された第１の要素の組合せとして前記対象物の構造を定義した設計データを受付ける入力手段と、
受付けた前記設計データにおいて定義された１つまたは複数の前記第１の要素からなる第２の要素と当該第２の要素に隣接する他の第２の要素との境界を、階層的に定義することで前記３次元モデルデータを生成する生成手段と、
前記設計データにより定義される前記対象物と生成された前記３次元モデルデータにより定義される３次元モデルとを並べて立体的に表示する表示手段とを備える、モデル作成装置。
【請求項２】
前記生成手段は、前記対象物および前記３次元モデルが並べて立体的に表示される状態で、外部からの指示に従って前記３次元モデルデータを変更する、請求項１に記載のモデル作成装置。
【請求項３】
前記生成手段は、前記設計データに含まれる第１および／または第２の要素のうち、予め定められた生成条件を満たす第１および／または第２の要素を抽出し、抽出した第１および／または第２の要素から前記３次元モデルデータを生成する、請求項１または２に記載のモデル作成装置。
【請求項４】
前記生成条件は、前記設計データに含まれる第１の要素の面積についてのしきい値を含み、
前記生成手段は、前記設計データに含まれる第１の要素のうち、前記しきい値より面積の小さい第１の要素を前記３次元モデルデータの生成対象から除去する、請求項３に記載のモデル作成装置。
【請求項５】
前記生成条件は、前記設計データに含まれる特定の幾何形状を示す情報を含み、
前記生成手段は、当該特定の幾何形状に相当する部分を前記３次元モデルデータの生成対象から除去する、請求項３に記載のモデル作成装置。
【請求項６】
前記設計データにおいて定義された第２の要素は、前記対象物を構成する面の情報を含み、
前記生成手段は、前記設計データにおいて定義される面のうちその法線方向が他の面と交差するものを抽出し、当該抽出した面を前記対象物の外部から視認されない部分であるとして、前記３次元モデルデータの生成対象から除去する、請求項１または２に記載のモデル作成装置。
【請求項７】
前記表示手段は、作成された前記３次元モデルデータを用いた前記３次元認識の実行により得られた認識結果を当該３次元モデルと対応付けて表示し、
前記生成手段は、前記認識結果と対応付けて表示される前記３次元モデルに対する編集操作に従って、当該３次元モデルデータを変更する、請求項１に記載のモデル作成装置。
【請求項８】
前記設計データにより定義される前記対象物が指示された撮像条件に従って視認される状態をシミュレーションするシミュレーション手段をさらに備え、
前記表示手段は、前記３次元モデルデータにより定義される前記３次元モデルとを並べて、前記シミュレーション手段によって得られた前記対象物の視認される状態を表示する、請求項１に記載のモデル作成装置。
【請求項９】
対象物を複数のカメラで撮像して得られる画像データから３次元情報を取得し、当該取得した３次元情報を３次元モデルデータと照合することで、当該対象物について３次元認識を行う処理に用いられる、当該３次元モデルデータを作成するためのモデル作成プログラムであって、前記モデル作成プログラムは、コンピュータに、
境界に区分された第１の要素の組合せとして前記対象物の構造を定義した設計データを受付けるステップと、
受付けた前記設計データにおいて定義された１つまたは複数の前記第１の要素からなる第２の要素と当該第２の要素に隣接する他の第２の要素との境界を、階層的に定義することで前記３次元モデルデータを生成するステップと、
前記設計データにより定義される前記対象物と生成された前記３次元モデルデータにより定義される３次元モデルとを並べて立体的に表示するステップとを実行させる、モデル作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物を複数のカメラで撮像して得られる画像データから３次元情報を取得し、当該取得した３次元情報を３次元モデルデータと照合することで、当該対象物について３次元認識を行う処理に用いられる、３次元モデルデータを作成するための技術に関する。
【背景技術】
【０００２】
従来から、画像処理技術の１つとして、現実の対象物を複数のカメラで撮像し、各カメラの撮像により得られた複数の画像データに基づいて、当該対象物の３次元情報を取得（復元）する方法が提案されている。そして、このような３次元情報を用いて、当該対象物の種別の認識（特定）や、当該対象物の位置や姿勢の特定といった処理が行われる。
【０００３】
このような対象物の種別、位置、姿勢などを特定する場合には、当該対象物を定義する３次元モデルデータを予め用意しておき、この３次元モデルデータと取得された３次元情報とを照合することで実現される。
【０００４】
たとえば、特開２０００−０９９７６０号公報（特許文献１）には、複数の異なる方向から物体を観測したステレオ画像に基づいて、３次元物体モデルを作成する方法が開示されている。より具体的には、特許文献１は、認識対象物の実物モデルに対し、複数の方向からのステレオ計測を行って、各計測により取得した３次元情報を位置合わせして統合することにより、物体全体の幾何モデルを作成することを開示する。
【０００５】
また、非特許文献１には、取得された３次元情報を予め登録された３次元モデルデータと照合して、物体の位置や姿勢を認識する手法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−０９９７６０号公報
【非特許文献】
【０００７】
【非特許文献１】河合良浩、外４名、「セグメントベーストステレオにおける連結性に基づく対応評価」、情報処理学会論文誌、社団法人情報処理学会、１９９９年８月、第４０巻、第８号、ｐ．３２１９−３２２９
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述の特許文献１に開示される３次元物体生成方法では、現実に存在する対象物を撮像することで、３次元モデルを作成するため、３次元モデルの作成に要する処理量が多いという課題があった。また、非特許文献１に開示される「セグメントベーストステレオ」と称される手法では、ステレオ画像中のエッジを「セグメント」と称される単位に分割し、セグメント単位でステレオ対応検索を行って、輪郭線の３次元情報を取得する。そのため、特に、対象物を撮像する際の条件が時間的にばらつくような場合などにおいては、誤差が蓄積された３次元モデルが作成されてしまうという課題もあった。
【０００９】
そこで、本発明は、これらの問題を解決するためになされたものであり、その目的は、対象物を複数のカメラで撮像して得られる画像データから３次元情報を取得し、当該取得した３次元情報を３次元モデルデータと照合することで、当該対象物について３次元認識を行う処理に用いられる、３次元モデルデータを容易に作成することが可能なモデル作成装置およびモデル作成プログラムを提供することである。
【課題を解決するための手段】
【００１０】
本発明のある局面によれば、対象物を複数のカメラで撮像して得られる画像データから３次元情報を取得し、当該取得した３次元情報を３次元モデルデータと照合することで、当該対象物について３次元認識を行う処理に用いられる、当該３次元モデルデータを作成するためのモデル作成装置を提供する。モデル作成装置は、境界に区分された第１の要素の組合せとして対象物の構造を定義した設計データを受付ける入力手段と、受付けた設計データにおいて定義された１つまたは複数の第１の要素からなる第２の要素と当該第２の要素に隣接する他の第２の要素との境界を、階層的に定義することで３次元モデルデータを生成する生成手段と、設計データにより定義される対象物と生成された３次元モデルデータにより定義される３次元モデルとを並べて立体的に表示する表示手段とを含む。
【００１１】
好ましくは、生成手段は、対象物および３次元モデルが並べて立体的に表示される状態で、外部からの指示に従って３次元モデルデータを変更する。
【００１２】
好ましくは、生成手段は、設計データに含まれる第１および／または第２の要素のうち、予め定められた生成条件を満たす第１および／または第２の要素を抽出し、抽出した第１および／または第２の要素から３次元モデルデータを生成する。
【００１３】
さらに好ましくは、生成条件は、設計データに含まれる第１の要素の面積についてのしきい値を含み、生成手段は、設計データに含まれる第１の要素のうち、しきい値より面積の小さい第１の要素を３次元モデルデータの生成対象から除去する。
【００１４】
あるいは、さらに好ましくは、生成条件は、設計データに含まれる特定の幾何形状を示す情報を含み、生成手段は、当該特定の幾何形状に相当する部分を３次元モデルデータの生成対象から除去する。
【００１５】
好ましくは、設計データにおいて定義された第２の要素は、対象物を構成する面の情報を含み、生成手段は、設計データにおいて定義される面のうちその法線方向が他の面と交差するものを抽出し、当該抽出した面を対象物の外部から視認されない部分であるとして、３次元モデルデータの生成対象から除去する。
【００１６】
好ましくは、表示手段は、作成された３次元モデルデータを用いた３次元認識の実行により得られた認識結果を当該３次元モデルと対応付けて表示し、生成手段は、認識結果と対応付けて表示される３次元モデルに対する編集操作に従って、当該３次元モデルデータを変更する。
【００１７】
好ましくは、設計データにより定義される対象物が指示された撮像条件に従って視認される状態をシミュレーションするシミュレーション手段をさらに含み、表示手段は、３次元モデルデータにより定義される３次元モデルとを並べて、シミュレーション手段によって得られた対象物の視認される状態を表示する。
【００１８】
この発明の別の局面に従えば、対象物を複数のカメラで撮像して得られる画像データから３次元情報を取得し、当該取得した３次元情報を３次元モデルデータと照合することで、当該対象物について３次元認識を行う処理に用いられる、当該３次元モデルデータを作成するためのモデル作成プログラムを提供する。モデル作成プログラムは、コンピュータに、境界に区分された第１の要素の組合せとして対象物の構造を定義した設計データを受付けるステップと、受付けた前記設計データにおいて定義された１つまたは複数の第１の要素からなる第２の要素と当該第２の要素に隣接する他の第２の要素との境界を、階層的に定義することで前記３次元モデルデータを生成するステップと、設計データにより定義される対象物と生成された３次元モデルデータにより定義される３次元モデルとを並べて立体的に表示するステップとを実行させる。
【発明の効果】
【００１９】
本発明によれば、３次元認識を行う処理に用いられる３次元モデルデータを容易に作成することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態に従うピッキングシステムの全体構成を示す模式図である。
【図２】図１に示すセンサコントローラを中心とするハードウェア構成を示す模式図である。
【図３】図１に示すロボットコントローラを中心とするハードウェア構成を示す模式図である。
【図４】本発明の実施の形態に従う３次元認識処理の処理手順を示すフローチャートである。
【図５】本発明に関連する現実モデルに基づく３次元モデルデータ作成処理の手順を説明するための図である。
【図６】図５に示すモデル用計測環境において実行される処理を説明するための図である。
【図７】本発明の実施の形態に従う３次元モデルデータ作成処理の手順を説明するための図である。
【図８】この発明の実施の形態に従うモデル作成装置を実現するコンピュータの概略構成図である。
【図９】本発明の実施の形態に従うモデル作成装置の制御構造を示す機能ブロック図である。
【図１０】本発明の実施の形態に従うＣＡＤデータのデータ構造を説明するための図である。
【図１１】本発明の実施の形態に従う３次元モデルデータのデータ構造を説明するための図である。
【図１２】本実施の形態に従うモデル作成装置において提供されるユーザインターフェイス画面の一例を示す図である。
【図１３】本実施の形態に従うモデル作成装置において提供されるユーザインターフェイス画面の一例を示す図である。
【図１４】本実施の形態に従うモデル作成装置において提供される自由編集機能を説明するための図である。
【図１５】本実施の形態に従うモデル作成装置において提供されるユーザインターフェイス画面の一例を示す図である。
【図１６】本実施の形態に従うモデル作成装置において提供されるユーザインターフェイス画面の一例を示す図である。
【図１７】本実施の形態に従うモデル作成装置において提供される不要領域除去機能に含まれる１つの処理を説明するための図である。
【図１８】本実施の形態に従うモデル作成装置において提供されるユーザインターフェイス画面の一例を示す図である。
【図１９】本実施の形態に従うモデル作成装置において提供される完全陰線除去機能を説明するための図である。
【図２０】図１９に示す完全陰線除去機能の１つの実現方法を説明するための図である。
【図２１】本実施の形態に従うモデル作成装置において提供される認識結果フィードバック機能を説明するための図である。
【図２２】本実施の形態に従うモデル作成装置において提供されるシミュレーション情報反映機能でのシミュレーション例を示す図である。
【図２３】本実施の形態に従うモデル作成装置において提供されるシミュレーション情報反映機能による効果を説明するための図である。
【図２４】本実施の形態に従うモデル作成装置において実行される３次元モデルデータ作成処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２２】
＜Ａ．ピッキングシステム＞
まず、本実施の形態に従う３次元モデルデータ作成処理により取得される３次元モデルデータを適用するシステムの一例として、ピッキングシステムについて説明する。なお、以下の説明においては、対象物を複数のカメラで撮像して得られる画像データから取得される３次元情報を予め取得された３次元モデルデータと照合することで、当該対象物の位置および姿勢の認識や種別の認識を行う処理を「３次元認識処理」とも称す。この３次元モデルデータには、認識対象となる物体の３次元形状を示す情報が含まれる。なお、３次元モデルデータにより定義される情報を視覚化したものまたはその実体を「３次元モデル」とも称す。
【００２３】
図１は、本実施の形態に従うピッキングシステム１００の全体構成を示す模式図である。図１に示すように、本実施の形態に従うピッキングシステム１００は、たとえば、生産ラインなどにおいて、複数のワークＷを収容する収容ボックス６から、１つずつワークＷを取り出して所定の位置に移動させるような作業を行う。
【００２４】
より具体的には、ピッキングシステム１００は、ステレオカメラ１と、センサコントローラ２と、ロボットコントローラ３と、多関節ロボット４とを含む。ステレオカメラ１およびセンサコントローラ２は、３次元認識処理の対象となるワークＷの種別、位置、姿勢など認識するためのピンキングセンサに相当する。
【００２５】
ステレオカメラ１は、複数のカメラ（図１に示す例では、カメラ１１，１２，１３の計３台のカメラ）からなり、収容ボックス６に収納されているワークＷを撮像する。３台のカメラ１１，１２，１３は、互いの位置関係が固定されている。３台のカメラ１１，１２，１３の撮像によりそれぞれ取得された画像データは、センサコントローラ２へ送られる。
【００２６】
センサコントローラ２は、３台のカメラ１１，１２，１３によるそれぞれの撮像によって取得された３つの画像データに対して、３台のカメラ１１，１２，１３の位置関係および光軸の向きなどを表す情報に基づいて、被写体の３次元情報を取得する。後述するように、取得される３次元情報は、主として、被写体の輪郭線（画像内のエッジ部分）を示す情報を含む。
【００２７】
そして、センサコントローラ２は、認識すべきワークＷの３次元モデルデータ１０を予め登録しており、取得された３次元情報とこの３次元モデルデータ１０とを照合してワークＷの種別、位置、姿勢など認識する。なお、ワークＷの種別とは、収容ボックス６内に複数種類のワークＷが収納される場合に、この収納されるワークＷの種類別に３次元モデルデータ１０を登録しておき、取得された３次元情報がいずれの３次元モデルデータ１０と一致するかを判断することで、ワークＷの種類を特定する。
【００２８】
さらに、センサコントローラ２は、認識されたワークＷの位置や姿勢に基づいて、多関節ロボット４がワークＷのピッキングに必要な制御コマンドをロボットコントローラ３へ出力する。すなわち、センサコントローラ２は、認識結果に基づいてロボットコントローラ３に対して、多関節ロボット４の動作を制御するための指令を出力する。
【００２９】
ロボットコントローラ３は、センサコントローラ２からの制御コマンドに従って、多関節ロボット４を制御する。多関節ロボット４は、センサコントローラ２からの制御指令に従って、アーム４０を動作させて、認識されたワークＷを目的の位置に移動する。
【００３０】
特に、本実施の形態に従うピッキングシステム１００においては、予め登録される３次元モデルデータ１０を取得するために、現実のワークＷ（基準ワーク）を撮像する必要はない。それに代えて、認識対象のワークＷの設計データ９に基づいて、３次元モデルデータ１０が作成される。典型的には、センサコントローラ２と接続可能なコンピュータ８上で、設計データ９に基づいて３次元モデルデータ１０が作成される。そして、この作成された３次元モデルデータ１０は、コンピュータ８からセンサコントローラ２へ転送される。この３次元モデルデータの作成処理の詳細については、後述する。
【００３１】
図２は、図１に示すセンサコントローラ２を中心とするハードウェア構成を示す模式図である。図２を参照して、センサコントローラ２は、３台のカメラ１１，１２，１３のそれぞれに対応する３つの画像入力部２１，２２，２３を含む。画像入力部２１，２２，２３の各々は、対応するカメラでの撮像により得られた画像データを一時的に格納するとともに、対応するカメラにおける撮像動作（撮像タイミングや露光時間など）を制御する。
【００３２】
センサコントローラ２は、３次元認識処理の実行主体となるＣＰＵ（Central Processing Unit）２４と、ＣＰＵ２４で実行されるプログラムやワークデータを保持するためのメモリ２５と、コンピュータ８から３次元モデルデータ１０を受付けるための入力部２６と、認識結果などを通知するための表示部２７と、ロボットコントローラ３と通信するための通信インターフェイス（Ｉ／Ｆ）２８とを含む。また、各部は、バス２９で互いにデータ通信可能となっている。
【００３３】
すなわち、ＣＰＵ２４は、メモリ２５に格納されたプログラムに従って、カメラ１１，１２，１３によるワークＷの撮像およびワークＷの認識に関する一連の処理を実行し、認識結果（具体的には、ワークＷの種別、ワークＷの位置を表す３次元座標、および、３次元モデルデータに対する回転角度）を含む３次元モデルデータ１０を、通信Ｉ／Ｆ２８を介して、ロボットコントローラ３へ出力する。
【００３４】
典型的には、メモリ２５は、不揮発性のＲＯＭ（Read Only Memory）、揮発性のＲＡＭ（Random Access Memory）、および、ハードディスクなどからなる。また、入力部２６は、キーボードやマウスからなり、表示部２７は、液晶モニタからなる。
【００３５】
図３は、図１に示すロボットコントローラ３を中心とするハードウェア構成を示す模式図である。図３には、３軸の多関節ロボット４の例を示す。すなわち、多関節ロボット４は、各関節を駆動するための３台のモータ４１，４２，４３を有する。ロボットコントローラ３は、３台のモータ４１，４２，４３のそれぞれに対応する３つのドライバ３１，３２，３３を含む。モータ４１，４２，４３の各々は、典型的には、ステッピングモータからなり、ドライバ３１，３２，３３の各々は、対応するモータ（関節）が移動すべき変位量に応じたパルス列を出力する。
【００３６】
ロボットコントローラ３は、多関節ロボット４を動作させるための処理を主として実行するＣＰＵ（Central Processing Unit）３４と、ＣＰＵ３４で実行されるプログラムやワークデータを保持するためのメモリ３５と、センサコントローラ２と通信を行って制御コマンドを受信するための通信インターフェイス（Ｉ／Ｆ）３６と、多関節ロボット４の動作状態などを通知するための表示部３７とを含む。また、各部は、バス３８で互いにデータ通信可能となっている。
【００３７】
すなわち、ＣＰＵ３４は、メモリ３５に格納されたプログラム、および、センサコントローラ２から受信した制御コマンドに従って、モータ４１，４２，４３を駆動するための一連の処理を実行する。メモリ３５は、不揮発性のＲＯＭ、揮発性のＲＡＭ、および、ハードディスクなどからなる。また、入力部３６は、キーボードやマウスからなり、表示部３７は、液晶モニタからなる。
【００３８】
＜Ｂ．３次元認識処理＞
次に、本実施の形態に従うセンサコントローラ２において実行される３次元認識処理の概要について説明する。
【００３９】
センサコントローラ２は、３台のカメラ１１，１２，１３によるそれぞれの撮像によって取得された３つの画像データ（ステレオ画像）から、ワークＷの輪郭線に相当するエッジを検出する。続いて、センサコントローラ２は、「セグメント」と称される単位毎に３次元情報を生成（復元）する。さらに、センサコントローラ２は、セグメント単位で、生成された３次元情報と３次元モデルデータとを照合する。
【００４０】
図４は、本発明の実施の形態に従う３次元認識処理の処理手順を示すフローチャートである。図４を参照して、まず、センサコントローラ２は、３台のカメラ１１，１２，１３に対して撮像（ステレオ撮像）を行わせる（ステップＳ１）。続いて、センサコントローラ２は、３台のカメラ１１，１２，１３の撮像によってそれぞれ取得された画像データに対して、エッジを抽出する（ステップＳ２）。典型的には、このエッジ抽出は、画像データに対してエッジ抽出用のフィルタを適用することで実現される。さらに、センサコントローラ２は、抽出されたそれぞれのエッジを細線化（１画素幅のデータに変換）し（ステップＳ３）、連結点および／または分岐点を基準にして、細線化後のエッジを直線または曲線のセグメントに分割する（ステップＳ４）。
【００４１】
以上のような処理によって得られたセグメントを、以下では「２次元セグメント」と称す。
【００４２】
次に、センサコントローラ２は、複数の画像データ間で対応する２次元セグメント同士を対応付けるための処理を実行する（ステップＳ５）。より具体的には、センサコントローラ２は、３台のカメラ１１，１２，１３からそれぞれ取得された３つの画像データのうち、１つの画像データを基準として、当該基準の画像データに含まれる２次元セグメントの順序に従って、着目すべき２次元セグメントを順次選択する。そして、センサコントローラ２は、着目する２次元セグメント毎に、他の２つの画像データの中から対応する２次元セグメントを特定する。すなわち、基準の画像データに含まれる着目した２次元セグメントの各々について、所定条件（いわゆる、エピポーラ条件）を満足し、かつ、その近傍にある他のセグメントとの連結関係が整合する２次元セグメントを、他の２つの画像データから抽出する。
【００４３】
上述のような処理が完了すると、センサコントローラ２は、互いに対応付けられた２次元セグメントの組合せ毎に、その対応関係に基づいて、３次元情報を生成するための処理を実行する（ステップＳ６）。より具体的には、センサコントローラ２は、対応付けられた２次元セグメントの組合せ毎に、そのセグメント間で対応関係にある画素の３次元座標を算出する。そして、センサコントローラ２は、算出された３次元座標の分布状態を直線および円弧のモデルと照合して、これらの３次元座標の集合が直線および曲線のいずれに該当するかを判断する。この判断処理により、２次元セグメントの組合せ毎に、その組合せに対応する直線または曲線の３次元セグメントが特定される。
【００４４】
さらに、ステップＳ６における処理においては、センサコントローラ２は、３次元セグメントの各々について、それぞれそのセグメントを予め設定された間隔毎にサンプリングし、セグメントの種別（直線または曲線）とサンプリング点の３次元座標とを対応付けた情報を取得する。これにより、２次元セグメントから算出された３次元座標の数が少なかった３次元セグメントについても、サンプリング間隔を細かくすることで、当初より多くの３次元座標を取得することが可能になる。
【００４５】
上記の処理を実行することで取得された３次元セグメントの集合が、カメラ１１，１２，１３の視野内にある対象物を示す３次元情報に相当する。
【００４６】
その後、センサコントローラ２は、３次元座標系の予め定められた基準位置に３次元モデルデータを設定し、この３次元モデルデータと取得された３次元情報とを照合することによって、３次元モデルデータに対する視野内にある対象物（ワークＷ）の位置ずれ量および回転角度を算出する（ステップＳ７）。すなわち、３次元モデルデータは、それに含まれる要素間の位置関係を独立した３次元座標系において定義しているため、ステレオカメラ１の撮像により得られる３次元情報との間で比較するためには、共通の３次元座標系において両者を比較できるようにする必要がある。そのため、ステップＳ７においては、取得される３次元情報を定義するための３次元座標系を共通の座標系として、３次元モデルデータの定義を再構成する。このステップＳ７における照合処理においては、３次元セグメントの交点の各々を特徴点として、各特徴点を総当たり的に対応付けながら、その対応付けを行った場合の各３次元セグメントの一致度が算出され、一致度が最大になったときの対応付けを正しい対応関係として特定される。
【００４７】
より具体的には、視野内にある対象物（ワークＷ）についての３次元情報の特徴点の順序に従って、各特徴点を対応付けていき、対応付け毎に、３次元モデルデータ側の特徴点を対応点に移動させるのに必要なシフト量および回転角度を算出する。これらの値は、いずれもＸ，Ｙ，Ｚの軸毎に算出される。次に、算出したシフト量および回転角度に基づいて、３次元モデルデータに含まれる全ての座標を変換し、変換後の３次元モデルデータと照合対象の３次元情報との一致度を算出する。
【００４８】
上述した処理を、３次元モデルデータ側のすべての特徴点につき実行することにより、特徴点が総当たり的に対応付けられ、対応付け毎に一致度を求めることができる。この後、最終的に最も高い一致度が得られたときの座標変換に用いたシフト量および回転角度を、視野内にある対象物（ワークＷ）についての３次元モデルデータに対する位置ずれ量および回転角度として認識する。
【００４９】
この後、センサコントローラ２は、認識した位置ずれ量および回転角度に基づいて、制御コマンドをロボットコントローラ３へ出力する（ステップＳ８）。そして、処理は終了する。
【００５０】
＜Ｃ．従来の３次元モデルデータ作成処理＞
まず、本実施の形態に従う３次元モデルデータの作成処理を説明するにあたって、従来の３次元モデルデータの作成処理について説明する。
【００５１】
図５は、本発明に関連する現実モデルに基づく３次元モデルデータ作成処理の手順を説明するための図である。図６は、図５に示すモデル用計測環境において実行される処理を説明するための図である。
【００５２】
現実モデルに基づいて３次元モデルデータを作成する場合には、ワークＷの実物モデル（以下、「ワークモデルＷＭ」と称す。）を種々の方向からステレオ撮像し、各ステレオ撮像によって得られた画像データから認識された計測結果を統合することで、３次元モデルデータが作成される。
【００５３】
より具体的には、図５に示すように、従来の３次元モデルデータの作成処理は、モデル用計測環境（実用環境と実質的に同一）で実行される（１）画像取得、および、（２）計測認識の処理と、コンピュータ上で実行される（３）計測結果結合、および、（４）結合結果編集の処理と、実用環境で実行される（５）ティーチングの処理とを含む。
【００５４】
図５に示すモデル用計測環境での（１）画像取得の処理は、図６に示すように、ワークモデルＷＭを３次元認識処理が実行される環境と実質的に同一の環境、すなわち、図１に示すような環境において、３台のカメラ１１，１２，１３を用いて撮像する。
【００５５】
より具体的には、図６に示すように、ステレオカメラ１の位置および光軸方向を固定して、ステレオカメラ１に対するワークモデルＷＭの姿勢を変更しながら複数回のステレオ撮像を行う。
【００５６】
図６に示すＸ−Ｙ−Ｚ軸で定義される３次元座標系は、３次元座標を算出するための座標系であり、ステレオカメラ１に対して一意に定められる。一方、Ｘ１−Ｙ１−Ｚ１軸で定義される３次元座標系は、ワークモデルＷＭに対して一意に定められる座標系である。たとえば、Ｘ１−Ｚ１平面に沿う特定の面が常にワーク支持面（この例ではＸ−Ｚ平面）に接するものとして、Ｘ−Ｚ平面に直交するＹ１軸に対してワークモデルＷＭを１回転させ、その間に、複数回のステレオ撮像が行われる。
【００５７】
また、図６に示す例では、ワークモデルＷＭの表面上に位置を特定するためのマークＭを貼付してステレオ撮像が行われる。それぞれのステレオ撮像位置（ワークモデルＷＭの姿勢）は、ステレオカメラ１を構成する３台のカメラ１１，１２，１３のすべての視野内にマークＭが含まれることを条件に決定される。これにより、後述する（２）計測認識の処理においては、すべての画像データについて、マークＭを表す３次元セグメントを含む３次元情報を取得することができる。
【００５８】
再度、図５を参照して、（２）計測認識の処理においては、ステレオ撮像が行われた複数の撮像方向（ステレオカメラ１に対するワークモデルＷＭの姿勢）の別に、被写体の輪郭線（画像内のエッジ部分）を示す３次元情報を生成する（３次元計測）。この３次元情報は、３次元座標系上における輪郭線を示す各座標を含む。たとえば、図５には、３つの撮像方向Ａ，Ｂ，Ｃについて、３次元情報（計測結果）が生成されている例を示す。
【００５９】
上述の（１）および（２）の処理によって生成される３次元情報の各々は、複数のカメラにより撮像された画像データを再構成するので、誤差が生じ易いという課題がある。また、ワークモデルＷＭの姿勢を異ならせて複数回のステレオ撮像を行うので、撮像環境の時間的な変化などの影響も受け易い。
【００６０】
続いて、コンピュータ上で、上述の（１）および（２）の処理によって生成された、異なる撮像方向についての３次元情報がワークモデルＷＭについて結合される。より具体的には、（３）計測結果結合の処理においては、たとえば、撮像方向Ａについての計測結果Ａと撮像方向Ｂについての計測結果Ｂとの間で、共通の３次元特徴（特徴点の３次元座標系上の座標（Ｘ，Ｙ，Ｘ）および角度（θ，γ，ε））の情報に基づいて、対応付け（位置合せ）を行う。これにより、撮像方向Ａおよび撮像方向Ｂについて得られた３次元情報を結合した、結合結果（ＡＢ）が生成される。さらに、結合結果（ＡＢ）と撮像方向Ｃについての計測結果Ｃとの間で、上述と同様に、共通の３次元特徴の情報に基づいて、対応付け（位置合せ）を行う。これにより、撮像方向Ａ、撮像方向Ｂ、および撮像方向Ｃについて得られた３次元情報を結合した、結合結果（ＡＢＣ）が生成される。さらに、生成された結合結果（ＡＢＣ）に対して、編集操作（（４）の結合結果編集）が行われる。そして、ワークモデルＷＭの３次元モデルデータが完成する。
【００６１】
上述の（３）計測結果結合の処理においては、位置合せ誤差が生じ易く、結合結果が必ずしもワークモデルＷＭの輪郭線を正しく表わしているとは限らない。また、（４）の結合結果編集において、誤差を除去するために結合結果を編集することは可能であるが、結合結果をどのように編集すればよいかということは、経験に依存することが大きく、モデルデータ作成者によって３次元モデルデータの品質がばらつくという課題もある。
【００６２】
したがって、（５）ティーチングの処理によって、実用環境に適用される３次元モデルデータには、上述のような各種の原因に依存する誤差が累積している可能性が高い。
【００６３】
＜Ｄ．本実施の形態に従う３次元モデルデータ作成処理＞
上述のように、ワークＷの実物モデル（ワークモデルＷＭ）を用いて３次元モデルデータを作成する場合には、現実にワークモデルＷＭを撮像しなければならないという点や、作成された３次元モデルデータに誤差が累積されてしまうという点に課題があった。そこで、本実施の形態においては、ワークＷの設計データに基づいて３次元モデルデータを作成する。
【００６４】
図１に示すようなピッキングシステム１００が取り扱うワークＷは、工業プロセスによって製造されるものであり、設計図が用意されていることが普通である。現在、多くの製品設計は、コンピュータ上で行われており、電子的に取扱うことのできる設計情報を予め取得することは容易である。典型的には、いわゆるＣＡＤ（Computer Aided Design）を用いてコンピュータ上で製品の設計（あるいは、製図）が行われる。
【００６５】
そこで、本実施の形態に従う３次元モデルデータ作成処理においては、認識すべき対象物の設計データ（ＣＡＤデータ）を用いて、３次元モデルデータを作成する。
【００６６】
図７は、本発明の実施の形態に従う３次元モデルデータ作成処理の手順を説明するための図である。図７を参照して、本実施の形態に従う３次元モデルデータの作成処理は、コンピュータ上で実行される設計データに対する変換処理および編集の処理と、実用環境で実行されるティーチングの処理とを含む。すなわち、本実施の形態に従う３次元モデルデータの作成処理においては、ワークモデルＷＭを撮像する必要がないので、３次元モデルデータの作成に要する手間を低減できる。また、計測認識や計測結果結合といった処理も必要がないので、生成される３次元モデルデータに誤差が蓄積することを回避できる。そのため、作成される３次元モデルデータの品質を安定化できる。
【００６７】
＜Ｅ．３次元モデルデータ作成処理の実行環境＞
本実施の形態に従うモデル作成装置２００は、典型的に、インストールされたプログラムをコンピュータ（プロセッサ）が実行することで具現化される。なお、代替的に、コンピュータがプログラムを実行することで提供される機能の一部もしくは全部を専用のハードウェア回路として具現化してもよい。
【００６８】
図８は、この発明の実施の形態に従うモデル作成装置２００を実現するコンピュータの概略構成図である。図８を参照して、モデル作成装置２００を実現するコンピュータは、表示装置としてのモニタ２０２と、入力装置としてのキーボード２０３およびマウス２０４と、演算装置（プロセッサ）としてのＣＰＵ２０５と、記憶装置としてのメモリ２０６および固定ディスク２０７と、記録媒体からのデータ読出装置としてのＦＤ駆動装置２１１およびＣＤ−ＲＯＭ駆動装置２１３とを含む。これらの各部は、バスを介して相互にデータ通信可能に接続されている。
【００６９】
モデル作成装置２００（コンピュータ）で実行されるプログラムは、典型的には、フレキシブルディスク（ＦＤ：Flexible Disk）２１２もしくはＣＤ−ＲＯＭ（Compact Disk Read Only Memory）２１４に格納されて流通し、またはネットワーク接続された配信サーバ装置などからのダウンロードといった形で流通する。フレキシブルディスク２１２およびＣＤ−ＲＯＭ２１４に格納されたプログラムは、それぞれＦＤ駆動装置２１１およびＣＤ−ＲＯＭ駆動装置２１３から読出されて、固定ディスク２０７に一旦格納される。さらに、固定ディスク２０７からメモリ２０６に展開されて、ＣＰＵ２０５により実行される。
【００７０】
ＣＰＵ２０５は、プログラムされた命令を逐次実行することで、各種の演算を実施する。メモリ２０６は、ＣＰＵ２０５でのプログラム実行に応じて、各種の情報についても一時的に格納する。固定ディスク２０７は、ＣＰＵ２０５で実行されるプログラムの他に、処理対象の設計データ（ＣＡＤデータ）や各種設定値などを格納する不揮発性の記憶装置である。
【００７１】
キーボード２０３は、入力されるキーに応じたユーザからの指令を受付ける。マウス２０４は、クリックやスライドなどの動作に応じたユーザからの指令を受付ける。このように、キーボード２０３およびマウス２０４で受付けられた指令は、ＣＰＵ２０５へ与えられる。さらに、モデル作成装置２００には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
【００７２】
＜Ｆ．３次元モデルデータ作成処理に係る機能ブロック＞
次に、本実施の形態に従うモデル作成装置２００における機能を提供するための機能ブロックについて説明する。
【００７３】
図９は、本発明の実施の形態に従うモデル作成装置２００の制御構造を示す機能ブロック図である。図９を参照して、モデル作成装置２００は、設計データ（ＣＡＤデータ）を受付けて、当該設計データを３次元モデルデータに変換するとともに、ユーザ操作などに応じて、変換によって得られた３次元モデルデータに対して編集操作などを行う。
【００７４】
より具体的には、モデル作成装置２００は、その制御構造として、入力モジュール２５０と、バッファ２５２，２７０，２７４と、生成モジュール２６０と、出力モジュール２７２と、シミュレーションモジュール２７６と、表示モジュール２７８とを含む。
【００７５】
入力モジュール２５０は、ユーザ操作を受付けて、その操作内容を生成モジュール２６０、出力モジュール２７２および表示モジュール２７８へ与える。
【００７６】
バッファ２５２は、入力されるＣＡＤデータ２５２ａを一時的に保持する。ＣＡＤデータ２５２ａの入力方法としては、ユーザが、モデル作成装置２００において実行されているＯＳ（Operating System）上で３次元モデルデータの作成対象となるワークについてＣＡＤデータを選択する。あるいは、ネットワークなどを介して、他の装置から対象のＣＡＤデータを受信するようにしてもよい。
【００７７】
生成モジュール２６０は、バッファ２５２に保持されているＣＡＤデータ２５２ａの情報に基づいて、３次元モデルデータ２７０ａを生成する。この３次元モデルデータ２７０ａは、バッファ２７０に保持される。
【００７８】
ＣＡＤデータ２５２ａは、ワークを３次元的に表現するための情報を含んでいる。より具体的には、ＣＡＤデータ２５２ａは、それぞれの要素を境界線表現（Boundary-Representation）として定義する。本実施の形態においては、ＣＡＤデータ２５２ａは、少なくとも、ワークの外表面を連続的に配置された複数の三角形状の小領域（以下「三角パッチ」とも称す。）の組合せとして表現する。なお、小領域としては、三角形以外の形状を採用してもよい。この小領域の大きさは、表現すべき形状に応じて変化する。すなわち、表面形状がより複雑化するほど、より小さな三角パッチが用いられる。生成モジュール２６０は、ＣＡＤデータ２５２ａに対して構造解析を行うことで、隣接する三角パッチ間の境界部分をセグメント化していくことで、３次元モデルデータを生成する。データ構造の詳細については、後述する。
【００７９】
生成モジュール２６０は、自由編集機能２６２と、不要領域除去機能２６４と、完全陰線除去機能２６６と、認識結果フィードバック機能２６８とを含む。
【００８０】
自由編集機能２６２は、ユーザ操作に応じて、ＣＡＤデータ２５２ａの変換により生成された３次元モデルデータに対して、３次元認識処理での認識に用いられる部分とそれ以外の部分とを任意に選択するための機能である。
【００８１】
不要領域除去機能２６４は、ＣＡＤデータ２５２ａに含まれる要素（部品や形状）のうち、３次元認識処理での認識に不要な部分を除去する機能である。典型的には、不要領域除去機能２６４は、ＣＡＤデータ２５２ａに含まれる要素のうち、ユーザが指定する条件を満たすものだけを、３次元モデルデータに含めるようにする。
【００８２】
完全陰線除去機能２６６は、ＣＡＤデータ２５２ａに含まれる要素（部品や形状）のうち、３次元認識処理での認識に使用されない部分を除去する。典型的には、ＣＡＤデータ２５２ａにより定義されるオブジェクト（ワーク）の内部構造といった、ワークがいずれの姿勢であっても、ステレオカメラ１で撮像することのできない部分を除去する。このとき、ワークを構成する各面についての法線が交差する位置を算出することで、完全陰線となっている面（外部へ露出されない面）が特定される。
【００８３】
認識結果フィードバック機能２６８は、先に作成された３次元モデルデータに基づいて現実に３次元認識処理が実行されることで得られた認識結果２７４ａを、３次元モデルデータの編集時に反映することで、３次元モデルデータの手直しをより容易化するものである。認識結果２７４ａは、バッファ２７４に保持される。
【００８４】
上述の各機能の詳細については、後述する。
出力モジュール２７２は、バッファ２７０に保持される３次元モデルデータ２７０ａを３次元モデルデータとして出力する。より具体的には、出力モジュール２７２は、３次元モデルデータ２７０ａに含まれる冗長な情報を削除して、３次元認識処理にのみ使用される情報を出力する。
【００８５】
シミュレーションモジュール２７６は、ＣＡＤデータ２５２ａに対してシミュレーションを行うことで、現実に３次元認識処理が行われるピッキングシステム１００での撮像条件（実用環境）において認識される状態をユーザに通知する。典型的には、ワークＷに対するステレオカメラ１の位置関係や照明装置の位置関係などの条件を反映してシミュレーションすることで、現実のステレオカメラ１で撮像を行った場合に認識されるエッジなどを確認する。
【００８６】
表示モジュール２７８は、モニタ２０２（図８）などに、３次元モデルデータ作成に必要な情報を通知する。
【００８７】
＜Ｇ．ＣＡＤデータおよび３次元モデルのデータ構造＞
図１０は、本発明の実施の形態に従うＣＡＤデータ２５２ａのデータ構造を説明するための図である。図１１は、本発明の実施の形態に従う３次元モデルデータのデータ構造を説明するための図である。
【００８８】
図１０を参照して、ＣＡＤデータ２５２ａは、表現するオブジェクトを示す、（Ａ）三角パッチの定義、および、（Ｂ）面の定義を含む。この（Ａ）三角パッチの定義としては、各三角パッチを構成する頂点の座標（少なくとも３点）を含む。すなわち、各三角パッチは、隣接する頂点間を結ぶ線（辺）を境界線として定義される。そして、（Ｂ）面の定義としては、１または複数の三角パッチを特定するための情報（三角パッチ１，２，…）、すなわち、同一の面として取扱うべき三角パッチが定義される。さらに、各面について法線ベクトルが定義される。この法線ベクトルは、対応する面の広がり方向などを特定するための情報であり、後述する、完全陰線除去機能においても利用される。
【００８９】
なお、ＣＡＤデータ２５２ａとしては、（Ｂ）面の定義を含まず、（Ａ）三角パッチの定義のみを含むものであってもよい。この場合、後述するように、（Ａ）三角パッチの定義から（Ｂ）面の定義を生成することができる。このように、ＣＡＤデータ２５２ａにおいては、表現すべきオブジェクトが複数の点の３次元座標値の集合として構造的に定義される。
【００９０】
図１１を参照して、３次元モデルデータについても、図１０に示すＣＡＤデータ２５２ａと同様に、境界線表現が利用される。また、３次元モデルデータにおいては、境界線、セグメント、境界点の順に階層的に領域が定義される。
【００９１】
たとえば、図１１（ａ）に示すように、略正方形の領域Ｒについて、外周側に矩形状の境界線Ｂ０を設定し、内周側に矩形状の境界線Ｂ１を設定した場合を考える。このとき、境界線Ｂ０は、４つのセグメントＳ０，Ｓ１，Ｓ２，Ｓ３の集合として定義され、境界線Ｂ１は、４つのセグメントＳ４，Ｓ５，Ｓ６，Ｓ７の集合として定義されるものとする。さらに、各セグメントは、１つまたは複数の境界点を含むものとする。たとえば、セグメントＳ０は、境界点Ｐ０，Ｐ１，Ｐ２，…を含む。
【００９２】
図１１（ａ）に示すような各要素を定義するために、図１１（ｂ）に示すようなデータ構造が採用される。すなわち、領域Ｒの下位層として境界線Ｂ０およびＢ１が関連付けられる。さらに、各境界線の下位層として、各境界線を定義するセグメントが位置関係に対応する順序に従って関連付けられる。たとえば、境界線Ｂ０については、セグメントＳ０→セグメントＳ１→セグメントＳ２→セグメントＳ３の順に関連付けられる。さらに、各セグメントについても、各セグメントを定義する境界点が位置関係に対応する順序に従って関連付けられる。たとえば、セグメントＳ０については、境界点Ｐ０→境界点Ｐ１→境界点Ｐ２→…の順に関連付けられる。
【００９３】
図１０および図１１に示すように、ＣＡＤデータおよび３次元モデルデータのいずれにおいても、オブジェクトを構成する点の位置関係が構造的に定義されているので、ＣＡＤデータ２５２ａに対して構造解析を行うことで、３次元モデルデータの生成が可能である。すなわち、設計データであるＣＡＤデータ２５２ａは、境界に区分された第１の要素（三角パッチ）、および／または、１つまたは複数の第１の要素からなる第２の要素（面）の組合せとして対象物（ワーク）の構造を定義する。したがって、生成モジュール２６０は、ＣＡＤデータ２５２ａに含まれる第１の要素および／または第２の要素の情報に基づいて、対象物（ワーク）の輪郭から３次元モデルデータを生成する。
【００９４】
具体的には、生成モジュール２６０は、受付けた設計データ（ＣＡＤデータ２５２ａ）において定義された１つまたは複数の第１の要素からなる第２の要素と当該第２の要素に隣接する他の第２の要素との境界を、階層的に定義することで３次元モデルデータを生成する。
【００９５】
より詳細には、生成モジュール２６０は、ＣＡＤデータ２５２ａに図１０（Ｂ）で示された面の定義がない場合には、まず図１０（Ａ）おいて定義された複数の三角パッチについて法線ベクトルを求め、隣接しており、かつ、方向が同じもしくは一定の角度範囲にある法線ベクトルを持つ三角パッチ（第１の要素）を、同一の面を構成する第２の要素としてまとめていき、面の定義を生成する。もちろん、ＣＡＤデータ２５２ａに面の定義が存在する場合には、この手続きは省略される。この各面の定義から、その面を構成する複数の境界点の連結としてのセグメントが生成される。次に、隣接する２つの面の境界として、境界線のデータが生成される。以上のように、ＣＡＤデータから、境界を階層的に定義するための、境界線・セグメント・境界点の階層的データからなる３次元モデルデータが生成される。
【００９６】
このように、本実施の形態に従うモデル作成装置２００は、ＣＡＤデータを変換して３次元モデルデータを生成するので、ユーザビリティを向上させることができる。すなわち、ユーザが３次元モデルデータを作成する手間を低減できるとともに、生成される３次元モデルデータの品質がユーザの経験に依存して大きくばらつくといったことを回避できる。
【００９７】
＜Ｈ．３次元モデルデータ作成におけるユーザ支援機能＞
次に、本実施の形態に従うモデル作成装置２００を用いて、ユーザが３次元モデルデータを作成する際に、ユーザを支援する機能について説明する。
（ｈ１．表示機能）
本実施の形態に従うモデル作成装置２００は、ＣＡＤデータを変換することで３次元モデルデータを生成する。図１２および図１３は、本実施の形態に従うモデル作成装置２００において提供されるユーザインターフェイス画面の一例を示す図である。なお、このようなユーザインターフェイス画面は、表示モジュール２７８（図９）が主として提供する。
【００９８】
図１２に示すように、モデル作成装置２００は、変換対象のＣＡＤデータの内容（記述されているオブジェクト）と変換によって作成された３次元モデルデータとを比較可能なユーザインターフェイス画面３０１を提供する。このように、ＣＡＤデータにより定義されるオブジェクトと作成された３次元モデルデータとを並べて表示することで、ユーザは、変換処理の前後の状態を比較することができ、これによって、変換の正しさや適切さを容易に評価することができる。すなわち、表示モジュール２７８は、ＣＡＤデータ（設計データ）により定義される対象物（ワーク）と生成された３次元モデルデータにより定義される３次元モデルとを並べて立体的に表示する。
【００９９】
より具体的には、ユーザインターフェイス画面３０１は、ＣＡＤデータからの変換実行を指示するためのボタン３４０と、変換により生成された３次元モデルデータを編集するためのボタン３５０とを含む。ユーザがボタン３４０を選択し、変換対象のＣＡＤデータを選択すると、変換処理が実行され、図１２に示すような３次元モデルデータが表示される。
【０１００】
さらに、ユーザインターフェイス画面３０１は、変換対象のＣＡＤデータにより定義される３次元オブジェクトを表示するオブジェクト表示エリア３６０と、変換処理によって得られた３次元モデルを表示するモデル表示エリア３７０とを含む。オブジェクト表示エリア３６０に表示される３次元オブジェクトは、典型的には、いわゆるソリッド表示となっている。これに対して、モデル表示エリア３７０に表示される３次元オブジェクトは、輪郭を示す線画表示となっている。
【０１０１】
ユーザインターフェイス画面３０１には、オブジェクト表示エリア３６０およびモデル表示エリア３７０での表示内容をユーザが自由に変更等できるように、表示設定タブ３１０と、空間設定タブ３２０と、操作設定タブ３３０とが用意されている。図１２には、表示設定タブ３１０が選択されている状態を示す。
【０１０２】
表示設定タブ３１０は、「基本表示」、「３次元オブジェクト表示」、「モデル表示」の各項目を含む。
【０１０３】
「基本表示」は、オブジェクト表示エリア３６０およびモデル表示エリア３７０に付加的に表示する情報の有効／無効を設定するためのチェックボックスを含む。「座標平面」のチェックボックス３１１が選択されると、３次元座標に対応するメッシュ状の表示が有効化される。「座標軸」のチェックボックス３１２が選択されると、３次元座標の座標軸の表示が有効化される。図１２には、いずれの情報も表示が有効化されている状態を示す。
【０１０４】
「３次元オブジェクト表示」は、オブジェクト表示エリア３６０に付加的に表示する情報の有効／無効を設定するためのチェックボックスを含む。「境界線」のチェックボックス３１３が選択されると、ＣＡＤデータにおいて定義されているオブジェクトの境界線（各面の範囲を示す線）の表示が有効化される。「三角パッチ」のチェックボックス３１４が選択されると、ＣＡＤデータにおいて定義されているオブジェクトを構成する各三角パッチの表示が有効化される。「法線」のチェックボックス３１６が選択されると、ＣＡＤデータにおいて定義されているオブジェクトを構成する各面についての法線の表示が有効化される。
【０１０５】
「モデル表示」は、モデル表示エリア３７０に付加的に表示する情報の有効／無効を設定するためのチェックボックスを含む。「法線」のチェックボックス３１６が選択されると、３次元モデルデータに含まれるセグメントについての法線の表示が有効化される。
【０１０６】
また、３次元オブジェクトおよび３次元モデルデータについて、その描画方法や視点を変更することもできる。これにより、３次元で定義されるオブジェクトおよびモデルについて、ユーザは、複数の視点からその内容をチェックすることができる。
【０１０７】
図１３に示すユーザインターフェイス画面３０２は、空間設定タブ３２０が選択されている状態に対応する。空間設定タブ３２０は、「投影法（遠近感）の設定」および「視点の配置設定」の各項目を含む。
【０１０８】
「投影法（遠近感）の設定」は、オブジェクト表示エリア３６０およびモデル表示エリア３７０での描画方法を選択するためのラジオボタンを含む。「平行投影法（遠近感のない描画）」のラジオボタン３２１が選択されると、オブジェクト表示エリア３６０およびモデル表示エリア３７０においては、それぞれオブジェクトおよびモデルが平面的に描画される。一方、「透視投影法（遠近感のある描画）」のラジオボタン３２２が選択されると、オブジェクト表示エリア３６０およびモデル表示エリア３７０においては、図１３に示すように、それぞれオブジェクトおよびモデルが立体的に描画される。このような遠近感のある描画を行うことで、ユーザは、オブジェクトおよびモデルの状態を直感的に認識することができる。
【０１０９】
「視点の配置の設定」は、オブジェクト表示エリア３６０およびモデル表示エリア３７０での描画の基準となる視点を選択するためのラジオボタン３２２〜３２７を含む。「第１象限」、「第２象限」、「第３象限」、「第４象限」のそれぞれのラジオボタン３２２〜３２５のいずれかが選択されると、オブジェクト表示エリア３６０およびモデル表示エリア３７０においては、３次元座標上の対応する象限に視点を配置した場合に見える状態が描画される。また、「正面」のラジオボタン３２６、または、「真上」のラジオボタン３２７が選択されると、オブジェクトの正面または真上に視点を配置した場合に見える状態が描画される。さらに、「初期位置にリセット」のボタンが選択されると、初期状態の描画に戻る。
（ｈ２．自由編集機能）
本実施の形態に従うモデル作成装置２００は、３次元認識処理の処理速度の向上や認識精度の向上のために、３次元モデルデータをユーザが自由に編集する機能を提供する。具体的には、生成モジュール２６０（図９）は、自由編集機能２６２として、設計データ（ＣＡＤデータ２６２ａ）において定義される対象物（オブジェクト）と３次元モデルとを並べて立体的に表示される状態で、外部からの（典型的には、ユーザからの）指示に従って３次元モデルデータを変更する。
【０１１０】
図１４は、本実施の形態に従うモデル作成装置２００において提供される自由編集機能を説明するための図である。図１５は、本実施の形態に従うモデル作成装置２００において提供されるユーザインターフェイス画面の一例を示す図である。
［ｈ２−１］：３次元モデル要素の有効化／無効化
モデル作成装置２００においては、ＣＡＤデータを変換することで作成された３次元モデルデータのうち、任意のセグメントおよび／または境界線について、３次元認識処理での３次元モデルデータとしての有効／無効を設定することができる。より具体的には、図１４（ａ）に示すように、ユーザは、オブジェクト表示エリア３６０に表示される３次元オブジェクトを参照しながら、モデル表示エリア３７０に表示される３次元モデルデータを構成する部分（セグメントまたは境界線）のうち、３次元認識処理において重要でないと思う部分を無効化することができる。
【０１１１】
なお、図１１（ｂ）に示すデータ構造のうち、セグメントまたは境界線に対応付けて、３次元モデルデータとして有効であるか否かを示すフラグが付与されている。そして、図１４（ａ）に示すような操作がユーザによってなされると、指定された部分に対応するセグメントまたは境界線に付与されるフラグの値が「有効」を示す値から「無効」を示す値に変更される。そのため、一旦、ユーザが「無効」と判断した部分であっても、事後的に「有効」に変更することができる。すなわち、ユーザは、３次元モデルデータを可逆的に編集できる。
［ｈ２−２］：位置・姿勢の変更
ＣＡＤデータを変換して生成される３次元モデルデータでは、基本的には、ＣＡＤデータに定義されている３次元オブジェクトの位置や姿勢の情報が引継がれる。しかしながら、ユーザは、ＣＡＤデータにおいて定義されている３次元オブジェクトの位置や姿勢とは異なる位置や姿勢で３次元モデルを確認したい場合もある。そのようなニーズにも対応するため、本実施の形態に従うモデル作成装置２００においては、作成された３次元モデルの位置および姿勢を、変換対象のＣＡＤデータとは独立して変更することが可能である。
【０１１２】
すなわち、図１４（ｂ）に示すように、生成された３次元モデルデータに対して、ユーザがマウス操作などを行うことによって、その３次元モデルの位置および姿勢を任意に変更することができる。この場合、オブジェクト表示エリア３６０に表示される３次元オブジェクトの位置や姿勢は元のまま維持される。
【０１１３】
ユーザが上述な自由編集機能を実行した場合の処理例を図１５に示す。図１５に示すユーザインターフェイス画面３０３においては、オブジェクト表示エリア３６０に表示される３次元オブジェクトに対して、その一部分が無効化されており、かつ、位置および姿勢を変更された３次元モデルがモデル表示エリア３７０に表示されている。
（ｈ３．不要領域除去機能）
上述の自由編集機能においては、３次元モデルデータをユーザが自由に編集することで、３次元認識処理の処理速度および認識精度を向上する操作について説明した。これに対して、ユーザが予め設定した３次元モデルデータの生成条件に基づいて、３次元認識処理に用いられない不要領域（部品や形状）を除去するようにしてもよい。
【０１１４】
具体的には、生成モジュール２６０（図９）は、不要領域除去機能２６４として、ＣＡＤデータ（設計データ）に含まれる第１の要素（三角パッチ）および／または第２の要素（面）のうち、予め定められた生成条件を満たす要素を抽出し、抽出した要素から３次元モデルデータを生成する。以下、このような不要領域除去機能について説明する。
【０１１５】
図１６および図１８は、本実施の形態に従うモデル作成装置２００において提供されるユーザインターフェイス画面の一例を示す図である。図１７は、本実施の形態に従うモデル作成装置２００において提供される不要領域除去機能に含まれる１つの処理を説明するための図である。
［ｈ３−１］：三角パッチ条件
モデル作成装置２００においては、ユーザがＣＡＤデータに含まれる３次元オブジェクトを構成する各三角パッチに対する条件を設定すると、当該条件を満足する三角パッチに基づいて、３次元モデルデータを作成する。より具体的には、ＣＡＤデータ（設計データ）に含まれる第１の要素（三角パッチ）の面積についてのしきい値を含み、生成モジュール２６０は、ＣＡＤデータに含まれる要素のうち、生成条件により指定された面積についてのしきい値より小さい要素を３次元モデルデータの生成対象から除去する。
【０１１６】
図１６に示すユーザインターフェイス画面３０４においては、３次元モデルデータを作成するための条件を入力するためのダイアログ３９０が表示されている。このダイアログ３９０は、「モデル生成の精度」および「小領域除去しきい値設定」の各項目を含む。
【０１１７】
「モデル生成の精度」は、３次元モデルデータの生成精度を設定するためのラジオボタン３９１，３９２，３９３を含む。「低」、「中」、「高」のそれぞれのラジオボタン３９１，３９２，３９３のいずれかが選択されると、選択された精度に応じた条件を満たす三角パッチを利用して３次元モデルデータが生成される。
【０１１８】
すなわち、「低」のラジオボタン３９１が選択されると、相対的に面積の小さな三角パッチは、３次元モデルデータには反映されなくなる。より具体的には、相対的に面積の小さな三角パッチは隣接する三角パッチの一部として取扱われる。これに対して、「高」のラジオボタン３９３が選択されると、相対的に面積の小さな三角パッチについても、３次元モデルデータに反映される。
【０１１９】
「小領域除去しきい値設定」は、３次元モデルデータの生成に利用する三角パッチ（小領域）の抽出条件（三角パッチの面積のしきい値）を設定するためのスライドバー３９４とを含む。また、ユーザがスライドバー３９４を操作して設定したしきい値は、表示ボックス３９５において数値表示される。また、スライドバー３９４により設定されたしきい値は、「ＯＫ」ボタン３９６または「適用」ボタン３９８が選択されることで、有効化される。また、「キャンセル」ボタン３９７が選択されると、設定されたしきい値はキャンセルされる。
【０１２０】
モデル作成装置２００は、ＣＡＤデータを構造解析することで、３次元オブジェクトを構成する各三角パッチの面積を設定されたしきい値と比較する。そして、設定されたしきい値より小さい面積の三角パッチについては、３次元モデルデータの生成には利用しない。
【０１２１】
以上のように、ＣＡＤデータに含まれる３次元オブジェクトを構成する三角パッチのうち、予め設定された面積のしきいレベル（低・中・高の３レベル）、あるいは、ユーザが指定する具体的なしきい値の条件に基づいて、条件を満たす三角パッチのみを抽出して、３次元モデルデータが生成される。
【０１２２】
これにより、ユーザが生成された３次元モデルデータに対して編集する場合に比較して、より少ない作業量で、より適切な３次元モデルデータを作成することができる。そして、３次元認識処理の処理速度や認識精度を向上させることができる。
［ｈ３−２］：幾何形状条件
上述のように三角パッチの面積等に基づく条件を設定してもよいが、特定の幾何形状を予め設定しておき、このよう幾何形状に相当する部分を、３次元モデルデータの生成対象から除去するようにしてもよい。すなわち、３次元モデルデータの生成条件には、ＣＡＤデータ（設計データ）に含まれる特定の幾何形状を示す情報が含まれ、生成モジュール２６０は、ＣＡＤデータに含まれる当該特定の幾何形状に相当する部分を３次元モデルデータの生成対象から除去する。
【０１２３】
典型的な使用形態としては、ＣＡＤデータ上では、複数の部品を組合せることで１つのワークを構成するように設計されることが多く、各部品について、独立してその形状が定義される。このような場合には、３次元モデルデータの生成対象から除去すべき部品の情報（幾何形状）を予めユーザが設定しておくことで、当該設定された幾何形状に相当する部品は、３次元モデルデータに反映されない。
【０１２４】
図１７（ａ）に示すように、あるワークが、本体部に３つの付加的な部品が組合せられたものであるとし、この３つの付加的な部品を、除去すべき部品として予め指定しておくと、モデル作成装置２００は、ＣＡＤデータに含まれる設計情報のうち、これらの部品の設計情報を除去する。すなわち、モデル作成装置２００は、図１７（ｂ）に示すようなワークであるとみなし、この部品が除去された状態のワークから、図１７（ｃ）に示すような、３次元モデルデータを生成する。
【０１２５】
なお、ユーザが除去すべき部品を指定する方法としては、ＣＡＤアプリケーション上で除去すべき部品を直接的に指定し、その指定された情報をモデル作成装置２００において実行されるモデル作成処理に渡すようにしてもよい。あるいは、除去すべき部品を示す幾何形状の情報を外部のファイルなどから取得するようにしてもよい。さらにあるいは、オブジェクト表示エリア３６０に表示される３次元オブジェクトに対して、ユーザが除去すべき部品を直接的に指定してもよい。
【０１２６】
この場合、図１８に示すように、モデル表示エリア３７０に表示される３次元モデルと比較しながら、オブジェクト表示エリア３６０に表示される３次元オブジェクトに対して、除去される部分を指定するような形態が好ましい。
［ｈ３−３］：カメラ分解能条件
本実施の形態に従う３次元認識処理は、ステレオカメラ１によって撮像された画像データに対して適用されるので、この３次元認識処理に用いられる３次元モデルデータの精度は、ステレオカメラ１の視野分解能に応じて定めることが好ましい。すなわち、ステレオカメラ１の視野分解能より微細な部分は、ステレオカメラ１にて認識することができないからである。
【０１２７】
そこで、本実施の形態に従うモデル作成装置２００は、ステレオカメラ１の視野分解能の情報に基づいて、ＣＡＤデータのうち、当該視野分解能より微細な部分については、３次元モデルデータに反映しない。
【０１２８】
より具体的には、ステレオカメラ１の視野分解能に応じて、三角パッチ単体、あるい、複数の三角パッチの集合である面の面積についてのしきい値を算出し、このしきい値より面積の小さい三角パッチまたは面については、３次元モデルデータへの変換に使用しない。なお、視野分解能は、各画素に対応する現実の大きさである。
【０１２９】
このように、ステレオカメラ１の視野分解能に応じた条件を適用することで、３次元認識処理の処理速度および認識精度を向上することができる。
（ｈ４．完全陰線除去機能）
ＣＡＤデータから３次元モデルデータを生成した場合には、オブジェクト（ワーク）の内部構造についても輪郭線として出力されてしまう場合がある。しかしながら、このような内部構造は、オブジェクトの外部には露出する部分ではないので、いずれの姿勢であっても、ステレオカメラ１で撮像することができない。このような輪郭線を完全陰線とも称す。
【０１３０】
図１９は、本実施の形態に従うモデル作成装置２００において提供される完全陰線除去機能を説明するための図である。図２０は、図１９に示す完全陰線除去機能の１つの実現方法を説明するための図である。
【０１３１】
モデル作成装置２００は、このような３次元認識処理での認識に使用されない完全陰線を除去する。すなわち、ＣＡＤデータ（設計データ）においてワークを定義するための第２の要素（面）についての法線ベクトルの情報を用いて、ＣＡＤデータにおいて定義される面のうちその法線方向が他の面と交差するものを抽出し、当該抽出した面をワークの外部から視認されない部分であるとして、３次元モデルデータの生成対象から除去する。
【０１３２】
たとえば、図１９に示すような立体物のオブジェクトの内部に、立方形状の内部構造が含まれていたとする。この場合、この立方形状の内部構造は、いずれの姿勢であっても、ステレオカメラ１で撮像することはできない。そこで、このような内部構造を完全陰線であると判断して、３次元モデルデータの生成対象からは除去する。その結果、生成される３次元モデルデータは、図１９の右側に示すような立体形状に相当するものとなる。
【０１３３】
ＣＡＤデータで定義される部分のうち、いずれの部分が完全陰線（内部構造）であるかを判断する方法として、本実施の形態においては、面または三角パッチの法線の交差する点の評価を採用する。
【０１３４】
具体的には、図２０に示すように、ＣＡＤデータによって定義されるオブジェクトを構成するそれぞれの面の法線ベクトルを順次評価する。すなわち、ある面の法線ベクトルを延長した場合に、何らの他の面と交差しない場合には、当該面は、オブジェクトの外側に位置していると判断される。一方、ある面の法線ベクトルを延長した場合に、いずれかの他の面と交差する場合には、当該面は、オブジェクトの内部に存在していると判断される。そこで、このような面については、３次元モデルデータの生成対象から除去される。
【０１３５】
なお、オブジェクトを構成する面の各々について、法線ベクトルの情報が存在する場合には、そのままその情報を利用することができる。一方、オブジェクトの面の単位ではなく、面を構成する複数の三角パッチの各々について、法線ベクトルの情報が存在する場合には、ある面を構成する三角パッチの有する法線ベクトルの平均値を当該面の法線ベクトルとすることができる。あるいは、各三角パッチの法線ベクトルのすべてについて、上述のような交差判定を行い、ある面を構成する三角パッチのうち、他の面と交差する三角パッチの割合に基づいて、当該面が完全陰線であるか否かを判断してもよい。
【０１３６】
なお、法線は、オブジェクトの外側に向かうように設定されているが、この法線の向きが不正であるか否かを事前に判断して、不正である法線についてはその向きを反転するように修正してもよい。
【０１３７】
このように、３次元認識処理に利用されない情報を３次元モデルデータに含ませないようにすることで、３次元認識処理の処理速度や認識精度を向上させることができる。
（ｈ５．認識結果フィードバック機能）
上述のような処理によって作成された３次元モデルデータを適用して現実に３次元認識処理を実行することで得られた認識結果に基づいて、３次元モデルデータを編集するようにしてもよい。このような現実の認識結果をフィードバックすることで、３次元認識処理の認識速度および認識性能を最適化することができる。
【０１３８】
すなわち、モデル作成装置２００は、作成された３次元モデルデータを用いた３次元認識処理の実行により得られた認識結果を当該３次元モデルと対応付けて表示するとともに、認識結果と対応付けて表示される３次元モデルに対する編集操作に従って、当該３次元モデルデータへの変更を受付ける。
【０１３９】
図２１は、本実施の形態に従うモデル作成装置２００において提供される認識結果フィードバック機能を説明するための図である。
【０１４０】
図２１を参照して、本実施の形態に従う認識結果フィードバック機能においては、ステレオカメラ１において撮像されたワーク、３次元認識処理に用いられた３次元モデルデータ、および、当該３次元モデルデータを用いて実行された３次元認識処理の認識結果の３つがオーバーラップ（重合せ）表示される。ユーザは、このオーバーラップ表示により、３次元モデルデータに対して、ステレオカメラ１において現実に撮像されたワークの状態および３次元認識処理の認識結果の状態を把握することができる。
【０１４１】
ワークの設計変更により、３次元モデルデータの生成に用いたＣＡＤデータが実際のワークの形状と一致しなくなってしまった場合には、３次元モデルデータと認識結果とが一致しなくなる。そのため、オーバーラップ表示において、３次元モデルと認識結果との間の不一致部を強調表示してもよい。図２１に示す例では、正面側に配置された部品の形状および位置が、ワークと３次元モデルとの間で異なっている例を示す。
【０１４２】
ここで、３次元モデルデータを調整する場合、現実のワークには存在しないが、３次元モデルデータに存在する要素については、無効化する必要がある。この場合には、ユーザが３次元モデルと認識結果とを比較することで、３次元モデルにのみ存在する要素を指定することで、当該要素を無効化することができる。代替的に、モデル作成装置２００が３次元モデルと認識結果との間の不一致部を自動的に無効化してもよい。
【０１４３】
一方、３次元モデルには存在しないが、現実のワークには存在する要素については、３次元モデルデータに追加する必要がある。この場合においても、ユーザが３次元モデルと認識結果とを比較することで、３次元モデルに存在しない要素（プリミティブな図形）を手動入力することができる。代替的に、モデル作成装置２００が３次元モデルと認識結果との間の差分によって得られた３次元モデルに存在しない要素を自動的に追加してもよい。
【０１４４】
図２１に示すように、ユーザが確認できるように、上述のような処理によって修正された３次元モデルを表示してもよい。
【０１４５】
さらに、設定されている３次元モデルに対して、認識結果との一致度合い（認識度）をグラフィカルに表示してもよい（図２１に示す認知度のオーバーラップ表示）。これにより、ユーザは、３次元モデルデータを構成するセグメントのうち、より認識される可能性が高いセグメントを特定できる。これにより、３次元モデルデータを構成する特定のセグメント（部分または形状）に対して、より認識結果に対して影響度を高く／低くするような重み付けを設定してもよい。
【０１４６】
たとえば、３次元モデルデータに含まれる複数のセグメントのうち、重要度の高いセグメントと重要度の低いセグメントとを区別しておき、重要度の高いセグメントについて認識が成功していれば、重要度の低いセグメントについては、認識が失敗していても、全体としては、認識が成功したと判断することもできる。
（ｈ６．シミュレーション情報反映機能）
上述の図１２および図１３に示すユーザインターフェイス画面においては、オブジェクト表示エリア３６０に表示されるオブジェクトは、予め定められた条件で描画される。これに対して、ステレオカメラ１による現実の撮像条件（ワーク表面の色、照明条件、生じる影の状態、背景の色など）を反映したオブジェクトを表示することで、より現実に即した３次元モデルデータを作成することができる。
【０１４７】
すなわち、モデル作成装置２００は、ＣＡＤデータにより定義されるワークが指示された撮像条件に従って視認される状態をシミュレーションする機能を有しており、生成された３次元モデルデータにより定義される３次元モデルとを並べて、シミュレーション機能によって得られたワークの視認される状態を表示する。そして、この状態で、３次元モデルデータに対する編集を受付ける。
【０１４８】
図２２は、本実施の形態に従うモデル作成装置２００において提供されるシミュレーション情報反映機能でのシミュレーション例を示す図である。図２３は、本実施の形態に従うモデル作成装置２００において提供されるシミュレーション情報反映機能による効果を説明するための図である。
【０１４９】
図２２（ａ）は、ある撮像条件下においてステレオカメラ１を用いてワークＷを撮像した結果を示す図である。図２２（ａ）に示すように、ワークＷの表面の色と背景の色との差や、照明の位置や向きなどによって、ワークＷの見え方は変化し得る。そこで、ＣＡＤデータに対して、このような撮像条件に基づいて見え方をシミュレーションすることで、現実にステレオカメラ１にて視認され得るワークＷの状態を推定する。たとえば、図２２（ｂ）には、ある撮像条件下のシミュレーション結果を示す図である。
【０１５０】
このようなシミュレーション結果を、ユーザインターフェイス画面のオブジェクト表示エリア３６０（図１２および図１３など）に表示することで、現実の撮像によって得られる画像に現れる輪郭線（画像内のエッジ部分）を予測して、３次元モデルデータを作成することができる。
【０１５１】
このようなシミュレーションによって得られる画像を考慮して３次元モデルデータを作成することで、たとえば、面取り部分などの輪郭線を適切に３次元モデルデータに反映することができる。すなわち、図２３に示すような面取り部分を含む形状を考えると、ＣＡＤデータ上においては、複数の三角パッチ（あるいは、面）の集合として半径ｒの面取り部を定義する。そのため、ＣＡＤデータ上では、この面取り部の表面に複数の境界線が現れることになる。しかしながら、現実にステレオカメラ１にて視認される輪郭線（エッジ部分）は、面取り部上にある１本の線となると考えられる。そこで、シミュレーションによって得られた画像と対比して表示することで、３次元モデルデータにおけるこのような面取り部の輪郭線を最適化（単一化）できる。
【０１５２】
このように、現実の撮像条件でのシミュレーション結果を表示して、３次元モデルデータを修正することで、３次元認識処理の処理速度や認識精度を向上させることができる。
【０１５３】
＜Ｉ．全体処理手順＞
図２４は、本実施の形態に従うモデル作成装置２００において実行される３次元モデルデータ作成処理の処理手順を示すフローチャートである。なお、図２４に示す各ステップは、図８に示すＣＰＵ２０５が固定ディスク２０７またはメモリ２０６に保持されるプログラム（コード／命令セット）を順次実行することで実現される。
【０１５４】
図２４を参照して、まず、ＣＰＵ２０５は、３次元モデルデータを作成する元になるＣＡＤデータを受付ける（ステップＳ１００）。
【０１５５】
続いて、ＣＰＵ２０５は、不要領域除去機能が有効化されているか否かを判断する（ステップＳ１０２）。不要領域除去機能が有効化されている場合（ステップＳ１０２においてＹＥＳの場合）には、ＣＰＵ２０５は、ＣＡＤデータにより定義されるオブジェクトのうち、３次元モデルデータに反映する要素から除去するための除去条件を受付ける（ステップＳ１０４）。続いて、ＣＰＵ２０５は、ＣＡＤデータにより定義されるオブジェクトに含まれる面または三角パッチの各々について、除去条件に合致しているか否かを順次判断する（ステップＳ１０６）。そして、ＣＡＤデータにより定義されるオブジェクトのうち、除去条件に合致している面または三角パッチについて、３次元モデルデータの作成対象から除去する（ステップＳ１０８）。
【０１５６】
不要領域除去機能が有効化されていない場合（ステップＳ１０２においてＮＯの場合）、または、ステップＳ１０８の処理後、ＣＰＵ２０５は、完全陰線機能が有効化されているか否かを判断する（ステップＳ１１０）。完全陰線除去機能が有効化されている場合（ステップＳ１１０においてＹＥＳの場合）には、ＣＰＵ２０５は、ＣＡＤデータにより定義されるオブジェクトに含まれる面または三角パッチの各々について、その法線が他の面または三角パッチと交差するか否かを順次判断する（ステップＳ１１２）。そして、ＣＡＤデータにより定義されるオブジェクトのうち、その法線が他の面または三角パッチと交差する面または三角パッチについて、３次元モデルデータの作成対象から除去する（ステップＳ１１４）。
【０１５７】
完全陰線除去機能が有効化されていない場合（ステップＳ１１０においてＮＯの場合）、または、ステップＳ１１４の処理後、ＣＰＵ２０５は、ＣＡＤデータにより定義されるオブジェクトのうち、作成対象から除去された面および三角パッチを除く部分に基づいて、３次元オブジェクトデータを生成する（ステップＳ１１６）。そして、ＣＰＵ２０５は、ＣＡＤデータに基づくオブジェクトを描画するとともに、ステップＳ１１６において生成した３次元オブジェクトデータを描画する（ステップＳ１１８）。
【０１５８】
続いて、ＣＰＵ２０５は、自由編集機能が有効化されているか否かを判断する（ステップＳ１２０）。自由編集機能が有効化されている場合（ステップＳ１２０においてＹＥＳの場合）には、ＣＰＵ２０５は、ユーザ操作に従って、作成済のオブジェクトデータを変更する（ステップＳ１２２）。
【０１５９】
自由編集機能が有効化されていない場合（ステップＳ１２０においてＮＯの場合）、または、ステップＳ１２２の処理後、ＣＰＵ２０５は、認識結果フィードバック機能が有効化されているか否かを判断する（ステップＳ１２４）。認識結果フィードバック機能が有効化されている場合（ステップＳ１２４においてＹＥＳの場合）には、ＣＰＵ２０５は、実行済の３次元認識処理の認識結果およびそのときに使用された画像データを受付ける（ステップＳ１２６）。続いて、ＣＰＵ２０５は、ワークの画像データ上に、３次元モデルデータおよび認識結果をオーバーラップ表示するための表示データを生成する（ステップＳ１２８）。このとき、ＣＰＵ２０５は、３次元モデルと認識結果との間の不一致部などの付加情報についても生成する。さらに続いて、ＣＰＵ２０５は、ユーザ操作に従って、作成済のオブジェクトデータを変更する（ステップＳ１３０）。
【０１６０】
認識結果フィードバック機能が有効化されていない場合（ステップＳ１２４においてＮＯの場合）、または、ステップＳ１３０の処理後、ＣＰＵ２０５は、シミュレーション情報反映機能が有効化されているか否かを判断する（ステップＳ１３２）。シミュレーション情報反映機能が有効化されている場合（ステップＳ１３２においてＹＥＳの場合）には、ＣＰＵ２０５は、現実の撮像条件を受付ける（ステップＳ１３４）。続いて、ＣＰＵ２０５は、ステップＳ１３４において受付けた撮像条件における、ＣＡＤデータにより定義されるオブジェクトの見え方を示す画像データをシミュレーションにより生成する（ステップＳ１３６）。さらに続いて、ＣＰＵ２０５は、ステップＳ１３６において生成した画像データを描画する（ステップＳ１３８）。そして、ＣＰＵ２０５は、ユーザ操作に従って、作成済のオブジェクトデータを変更する（ステップＳ１４０）。
【０１６１】
シミュレーション情報反映機能が有効化されていない場合（ステップＳ１３２においてＮＯの場合）、または、ステップＳ１４０の処理後、ＣＰＵ２０５は、３次元モデルデータの出力指示を受けたか否かを判断する（ステップＳ１４２）。
【０１６２】
３次元モデルデータの出力指示を受けていない場合（ステップＳ１４２においてＹＥＳの場合）には、ステップＳ１２０以下の処理が繰返される。
【０１６３】
一方、３次元モデルデータの出力指示を受けた場合（ステップＳ１４２においてＹＥＳの場合）には、ＣＰＵ２０５は、現在の３次元モデルデータを３次元モデルとして、センサコントローラ２などへ出力する（ステップＳ１４４）。そして、処理は終了する。
【０１６４】
＜Ｊ．作用効果＞
本実施の形態に従うモデル作成装置２００は、ワークの設計に用いるＣＡＤデータから直接的に３次元モデルデータを生成するので、現実にワークを撮像して３次元モデルデータを生成する場合のように誤差が蓄積するといった問題が生じない。また、本実施の形態に従うモデル作成装置２００は、ＣＡＤデータにより定義されるオブジェクトと３次元モデルとを対比して表示するので、完成した３次元モデルの精度などを一見して把握できるとともに、任意に編集することもできる。これにより、ユーザは、３次元認証処理に用いられる３次元モデルデータを容易に作成することができる。
【０１６５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６６】
１  ステレオカメラ、２  センサコントローラ、３  ロボットコントローラ、４  関節ロボット、６  収容ボックス、８  コンピュータ、９  設計データ、１０，２７０ａ  ３次元モデルデータ、１１，１２，１３  カメラ、２１，２２，２３  画像入力部、２４，３４，２０５  ＣＰＵ、２５，３５，２０６  メモリ、２６，３６  入力部、２７，３７  表示部、２８  通信Ｉ／Ｆ、２９，３８  バス、３１，３２，３３  ドライバ、４０  アーム、４１，４２，４３  モータ、１００  ピッキングシステム、２００  モデル作成装置、２０２  モニタ、２０３  キーボード、２０４  マウス、２０７  固定ディスク、２１１  ＦＤ駆動装置、２１２  フレキシブルディスク、２１３  ＲＯＭ駆動装置、２１４  ＲＯＭ、２５０  入力モジュール、２５２，２５２，２７０，２７４，２７０，２７４  バッファ、２６０  生成モジュール、２６２  自由編集機能、２６４  不要領域除去機能、２６６  完全陰線除去機能、２６８  認識結果フィードバック機能、２７２  出力モジュール、２７４ａ  認識結果、２７６  シミュレーションモジュール、２７８  表示モジュール。
【図１】
2011185650.tif 000003
【図２】
2011185650.tif 000004
【図３】
2011185650.tif 000005
【図４】
2011185650.tif 000006
【図５】
2011185650.tif 000007
【図６】
2011185650.tif 000008
【図７】
2011185650.tif 000009
【図８】
2011185650.tif 000010
【図９】
2011185650.tif 000011
【図１０】
2011185650.tif 000012
【図１１】
2011185650.tif 000013
【図２０】
2011185650.tif 000014
【図２３】
2011185650.tif 000015
【図２４】
2011185650.tif 000016
【図１２】
2011185650.tif 000017
【図１３】
2011185650.tif 000018
【図１４】
2011185650.tif 000019
【図１５】
2011185650.tif 000020
【図１６】
2011185650.tif 000021
【図１７】
2011185650.tif 000022
【図１８】
2011185650.tif 000023
【図１９】
2011185650.tif 000024
【図２１】
2011185650.tif 000025
【図２２】
2011185650.tif 000026