(57)【要約】      （修正有）【課題】専用装置を用いることなく対象物の全周モデルを容易に生成することができる形状測定装置を提供する。【解決手段】対象物が第１撮像方向から撮像された第１撮像画像に応じた第１点群ＯＰ１と、対象物が第１撮像方向と異なる第２撮像方向から撮像された第２撮像画像に応じた第２点群ＯＰ２とに基づいて、第１点群の少なくとも一部である第１部分点群Ｓ１１に対応する第２部分点群Ｓ１２を第２点群から検出し、第１部分点群と第２部分点群とに基づいて第１点群と第２点群との位置合わせを行う、形状測定装置。【選択図】図９
2017219359.tif 000002
【特許請求の範囲】
【請求項１】
対象物が第１撮像方向から撮像された第１撮像画像に応じた第１点群と、前記対象物が前記第１撮像方向と異なる第２撮像方向から撮像された第２撮像画像に応じた第２点群とに基づいて、前記第１点群の少なくとも一部である第１部分点群に対応する第２部分点群を前記第２点群から検出し、
前記第１部分点群と前記第２部分点群とに基づいて前記第１点群と前記第２点群との位置合わせを行う、
形状測定装置。
【請求項２】
前記第１点群の中から曲率により面を構成する点群を前記第１部分点群として検出し、検出した前記第１部分点群に基づいて前記第２部分点群を前記第２点群から検出する、
請求項１に記載の形状測定装置。
【請求項３】
前記第１部分点群に基づく共分散行列の固有値を算出し、算出した前記固有値に基づいて前記第２部分点群を前記第２点群から検出する、
請求項１又は２に記載の形状測定装置。
【請求項４】
前記第２点群の中から曲率により面を構成する１以上の点群を検出し、検出した当該点群のそれぞれに基づく共分散行列の固有値を算出し、算出した当該固有値と、前記第１部分点群に基づく共分散行列の固有値とに基づいて当該１以上の点群の中から前記第２部分点群を検出する、
請求項１から３のうちいずれか一項に記載の形状測定装置。
【請求項５】
前記第１部分点群を含む領域が分割された分割領域のうち前記第１部分点群を構成する点を所定数以上含む当該分割領域である１以上の第１分割領域毎の第１分割領域特徴量を算出し、
前記第２部分点群を含む領域が分割された分割領域のうち前記第２部分点群を構成する点を所定数以上含む当該分割領域である１以上の第２分割領域毎の第２分割領域特徴量を算出し、
算出した当該第１分割領域特徴量及び当該第２分割領域特徴量に基づいて前記第１点群と前記第２点群との位置合わせを行う、
請求項１から４のうちいずれか一項に記載の形状測定装置。
【請求項６】
前記第１点群と前記第２点群との位置合わせを行った後、位置合わせされた前記第１点群及び前記第２点群に応じた点群を生成する、
請求項１から５のうちいずれか一項に記載の形状測定装置。
【請求項７】
請求項１から６のうちいずれか一項に記載の形状測定装置を備え、
前記形状測定装置が位置合わせした前記第１点群及び前記第２点群に基づいて、前記対象物の位置及び姿勢を算出し、算出した前記対象物の位置及び姿勢に基づいてロボットに所定の作業を行わせる、
ロボット制御装置。
【請求項８】
請求項７に記載のロボット制御装置の制御により前記所定の作業を行う、
ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、形状測定装置、ロボット制御装置、及びロボットに関する。
【背景技術】
【０００２】
対象物のモデルに基づいて対象物の位置及び姿勢を算出し、算出した当該位置及び姿勢に基づいてロボットに所定の作業を行わせる技術の研究や開発が行われている。
【０００３】
これに関し、測定対象物が配置された回転ステージの回転角度を変化させる毎に測定対象物をカメラで撮像し、撮像した複数の撮像画像と、各撮像画像に対応する当該回転角度とに基づいて測定対象物の全周モデルを生成する三次元形状計測装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２２１２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような三次元形状計測装置では、回転角度を特定可能な回転ステージ等の全周モデルを生成するための専用装置と、当該専用装置の調整とが必要であり、全周モデルを生成するために要する時間を短縮することや、全周モデルを生成するための手間を軽減することが困難な場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、対象物が第１撮像方向から撮像された第１撮像画像に応じた第１点群と、前記対象物が前記第１撮像方向と異なる第２撮像方向から撮像された第２撮像画像に応じた第２点群とに基づいて、前記第１点群の少なくとも一部である第１部分点群に対応する第２部分点群を前記第２点群から検出し、前記第１部分点群と前記第２部分点群とに基づいて前記第１点群と前記第２点群との位置合わせを行う、形状測定装置である。
この構成により、形状測定装置は、対象物が第１撮像方向から撮像された第１撮像画像に応じた第１点群と、対象物が第１撮像方向と異なる第２撮像方向から撮像された第２撮像画像に応じた第２点群とに基づいて、第１点群の少なくとも一部である第１部分点群に対応する第２部分点群を第２点群から検出し、第１部分点群と第２部分点群とに基づいて第１点群と第２点群との位置合わせを行う。これにより、形状測定装置は、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【０００７】
また、本発明の他の態様は、形状測定装置において、前記第１点群の中から曲率により面を構成する点群を前記第１部分点群として検出し、検出した前記第１部分点群に基づいて前記第２部分点群を前記第２点群から検出する、構成が用いられてもよい。
この構成により、形状測定装置は、第１点群の中から曲率により面を構成する点群を第１部分点群として検出し、検出した第１部分点群に基づいて第２部分点群を第２点群から検出する。これにより、形状測定装置は、第１点群の中から曲率により検出した第１部分点群に基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【０００８】
また、本発明の他の態様は、形状測定装置において、前記第１部分点群に基づく共分散行列の固有値を算出し、算出した前記固有値に基づいて前記第２部分点群を前記第２点群から検出する、構成が用いられてもよい。
この構成により、形状測定装置は、第１部分点群に基づく共分散行列の固有値を算出し、算出した当該固有値に基づいて第２部分点群を第２点群から検出する。これにより、形状測定装置は、算出した固有値であって第１部分点群に基づく共分散行列の固有値に基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【０００９】
また、本発明の他の態様は、形状測定装置において、前記第２点群の中から曲率により面を構成する１以上の点群を検出し、検出した当該点群のそれぞれに基づく共分散行列の固有値を算出し、算出した当該固有値と、前記第１部分点群に基づく共分散行列の固有値とに基づいて当該１以上の点群の中から前記第２部分点群を検出する、構成が用いられてもよい。
この構成により、形状測定装置は、第２点群の中から曲率により面を構成する１以上の点群を検出し、検出した当該点群のそれぞれに基づく共分散行列の固有値を算出し、算出した当該固有値と、第１部分点群に基づく共分散行列の固有値とに基づいて当該１以上の点群の中から第２部分点群を検出する。これにより、形状測定装置は、算出した固有値であって第１部分点群に基づく共分散行列の固有値と、算出した固有値であって第２部分点群に基づく共分散行列の固有値とに基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【００１０】
また、本発明の他の態様は、形状測定装置において、前記第１部分点群を含む領域が分割された分割領域のうち前記第１部分点群を構成する点を所定数以上含む当該分割領域である１以上の第１分割領域毎の第１分割領域特徴量を算出し、前記第２部分点群を含む領域が分割された分割領域のうち前記第２部分点群を構成する点を所定数以上含む当該分割領域である１以上の第２分割領域毎の第２分割領域特徴量を算出し、算出した当該第１分割領域特徴量及び当該第２分割領域特徴量に基づいて前記第１点群と前記第２点群との位置合わせを行う、構成が用いられてもよい。
この構成により、形状測定装置は、第１部分点群を含む領域が分割された分割領域のうち第１部分点群を構成する点を所定数以上含む当該分割領域である１以上の第１分割領域毎の第１分割領域特徴量を算出し、第２部分点群を含む領域が分割された分割領域のうち第２部分点群を構成する点を所定数以上含む当該分割領域である１以上の第２分割領域毎の第２分割領域特徴量を算出し、算出した当該第１分割領域特徴量及び当該第２分割領域特徴量に基づいて第１点群と第２点群との位置合わせを行う。これにより、形状測定装置は、算出した第１分割領域特徴量及び第２分割領域特徴量に基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【００１１】
また、本発明の他の態様は、形状測定装置において、前記第１点群と前記第２点群との位置合わせを行った後、位置合わせされた前記第１点群及び前記第２点群に応じた点群を生成する、構成が用いられてもよい。
この構成により、形状測定装置は、第１点群と第２点群との位置合わせを行った後、位置合わせされた第１点群及び第２点群に応じた点群を生成する。これにより、形状測定装置は、生成した第１点群及び第２点群に応じた点群に基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【００１２】
また、本発明の他の態様は、上記に記載の形状測定装置を備え、前記形状測定装置が位置合わせした前記第１点群及び前記第２点群に基づいて、前記対象物の位置及び姿勢を算出し、算出した前記対象物の位置及び姿勢に基づいてロボットに所定の作業を行わせる、ロボット制御装置である。
この構成により、ロボット制御装置は、上記に記載の形状測定装置が位置合わせした第１点群及び第２点群に基づいて、対象物の位置及び姿勢を算出し、算出した対象物の位置及び姿勢に基づいてロボットに所定の作業を行わせる。これにより、ロボット制御装置は、ロボットに所定の作業を行わせる準備に要する時間を短縮することができる。
【００１３】
また、本発明の他の態様は、上記に記載のロボット制御装置の制御により前記所定の作業を行う、ロボットである。
この構成により、ロボットは、上記に記載のロボット制御装置の制御により所定の作業を行う。これにより、ロボットは、ロボット制御装置により生成された全周モデルに基づいて所定の作業を行うことができる。
【００１４】
以上により、形状測定装置は、対象物が第１方向から撮像された第１撮像画像に応じた第１点群と、対象物が第１方向と異なる第２方向から撮像された第２撮像画像に応じた第２点群とに基づいて、第１点群の少なくとも一部である第１部分点群に対応する第２部分点群を前記第２点群から検出し、第１部分点群と第２部分点群とに基づいて第１点群と第２点群との位置合わせを行う。これにより、形状測定装置は、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
また、ロボット制御装置は、上記に記載の形状測定装置が位置合わせした第１点群及び第２点群に基づいて、対象物の位置及び姿勢を算出し、算出した対象物の位置及び姿勢に基づいてロボットに所定の作業を行わせる。これにより、ロボット制御装置は、ロボットに所定の作業を行わせる準備に要する時間を短縮することができる。
また、ロボットは、上記に記載のロボット制御装置の制御により前記所定の作業を行う。これにより、ロボットは、ロボット制御装置により生成された全周モデルに基づいて所定の作業を行うことができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係る形状測定システム１の構成の一例を示す図である。
【図２】対象物Ｏの一例を示す図である。
【図３】複数の選択方向候補の数が１４である場合において形状測定装置３０が生成する１４の対象物点群のそれぞれの一例を示す図である。
【図４】形状測定装置３０のハードウェア構成の一例を示す図である。
【図５】形状測定装置３０の機能構成の一例を示す図である。
【図６】形状測定装置３０が対象物モデルを生成するために行う処理の流れの一例を示すフローチャートである。
【図７】形状測定装置３０が実行する対象物モデル生成処理の流れの一例を示すフローチャートである。
【図８】対象物点群の一例を示す図である。
【図９】ステップＳ２２０において選択された対象物点群対に含まれる第１点群及び第２点群の一例を示す図である。
【図１０】ある点群を含む領域が分割された分割領域を例示する図である。
【図１１】第１部分点群を含む領域において平面的に分布している第１キューブを例示する図である。
【図１２】対象第１キューブの方向とワールド座標系ＷＣにおけるＺ軸の正方向とを一致させた場合における図１１に示した第１キューブを例示する図である。
【図１３】座標変換した各点に基づいて新たに検出された第１キューブを例示する図である。
【図１４】実施形態の変形例２に係るロボットシステム２の構成の一例を示す図である。
【発明を実施するための形態】
【００１６】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１７】
＜形状測定システムの構成＞
まず、形状測定システム１の構成について説明する。
図１は、実施形態に係る形状測定システム１の構成の一例を示す図である。形状測定システム１は、撮像部１０と、形状測定装置３０を備える。
【００１８】
撮像部１０は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたステレオカメラである。なお、撮像部１０は、ステレオカメラに代えて、ライトフィールドカメラ等の三次元画像を撮像可能な他のカメラであってもよい。撮像部１０は、図１に示した作業台ＴＢの上面に載置された対象物Ｏを含む範囲を撮像範囲として撮像可能な位置に設置される。
【００１９】
作業台ＴＢは、例えば、テーブル等の台である。なお、作業台ＴＢは、テーブルに代えて、対象物Ｏを載置することが可能な台であれば、他の台であってもよい。対象物Ｏは、例えば、製品に組み付けるプレート、ネジ、ボルト等の産業用の部品や部材である。以下では、一例として、対象物Ｏが図２に示したイケールである場合について説明する。図２は、対象物Ｏの一例を示す図である。図２に示した例では、対象物Ｏは、リブＶＲを有するシングルリブタイプのイケールである。なお、対象物Ｏは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。
【００２０】
この一例において、対象物Ｏは、治具ＢＳを介して作業台ＴＢの上面に載置される。すなわち、作業台ＴＢの上面には、治具ＢＳが載置されており、治具ＢＳの上に対象物Ｏが載置されている。治具ＢＳは、対象物Ｏの姿勢をユーザーが所望する姿勢と一致させた状態で固定することができる治具である。ユーザーは、治具ＢＳの上に載置された対象物Ｏの姿勢を変化させることにより、対象物Ｏの姿勢に対する相対的な方向であって撮像部１０の光軸の方向である撮像方向を変化させることができる。図１では、図を簡略化するため、治具ＢＳを平板形状によって表しているが、治具ＢＳは、他の形状であってもよい。また、治具ＢＳは、以下において説明する処理が簡略化されるため、図１に示したように、撮像部１０が撮像範囲を撮像した場合において対象物Ｏの後ろ（オクルージョン領域）に隠れて撮像画像に含まれない（撮像されない）ように作業台ＴＢと対象物Ｏとの間に配置されることが望ましい。
【００２１】
対象物Ｏの姿勢は、この一例において、対象物Ｏの重心とともに動くように対象物Ｏの重心に対応付けられた三次元局所座標系である対象物座標系ＯＣの各座標軸のワールド座標系ＷＣにおける方向によって表される。なお、対象物Ｏの姿勢は、他の方法によって表される構成であってもよい。ワールド座標系ＷＣは、この一例において、重力が働く方向をＺ軸の負方向とし、北の方向をＹ軸の正方向とし、東の方向をＸ軸の正方向とする座標系である。なお、ワールド座標系ＷＣは、他の座標系であってもよい。
【００２２】
撮像部１０は、ケーブルによって形状測定装置３０と通信可能に接続されている。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、撮像部１０は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によって形状測定装置３０と接続される構成であってもよい。
【００２３】
形状測定装置３０は、撮像部１０に前述の撮像範囲を撮像させる。そして、形状測定装置３０は、撮像部１０が撮像した撮像画像を撮像部１０から取得する。この撮像画像には、対象物Ｏの表面のうちの一部が含まれている（撮像されている）。形状測定装置３０は、取得した撮像画像に含まれる当該一部の三次元形状を測定する。形状測定装置３０は、測定した当該三次元形状に基づいて当該三次元形状を表す三次元点群を対象物点群として生成する。形状測定装置３０は、このような対象物点群を、互いに異なる撮像方向から対象物Ｏが撮像された複数の撮像画像のそれぞれに基づいて生成する。形状測定装置３０は、生成した複数の対象物点群に基づいて、対象物Ｏの表面全体の三次元形状を表すモデルである全周モデルを対象物モデルとして生成する。すなわち、対象物モデルは、この一例において、対象物Ｏの表面全体の三次元形状を表す三次元点群のことである。
【００２４】
形状測定装置３０は、例えば、ワークステーションやデスクトップＰＣ（Personal  Computer）、ノートＰＣ、タブレットＰＣ、多機能携帯電話端末（スマートフォン）、通信機能付きの電子書籍リーダー、ＰＤＡ（Personal  Digital  Assistant）等の情報処理装置である。
【００２５】
＜形状測定装置が行う処理の概要＞
以下、形状測定装置３０が行う処理の概要について説明する。
【００２６】
前述した通り、ユーザーは、治具ＢＳの上に載置された対象物Ｏの姿勢を変化させることによって前述の撮像方向を変化させることができる。ユーザーは、撮像方向を複数の所望の方向のそれぞれに変化させる。ユーザーは、撮像方向を変化させる毎に形状測定装置３０を操作し、撮像部１０に撮像範囲をステレオ撮像させる。ユーザーから撮像部１０に撮像範囲をステレオ撮像させる操作を受け付けた形状測定装置３０は、撮像部１０に撮像範囲をステレオ撮像させる。そして、形状測定装置３０は、撮像部１０が撮像範囲をステレオ撮像した撮像画像を撮像部１０から取得する。すなわち、形状測定装置３０は、互いに異なる撮像方向から対象物Ｏが撮像された撮像画像を撮像部１０から取得する。ここで、ユーザーは、撮像部１０による対象物Ｏの複数回のステレオ撮像によって、対象物Ｏの表面の全部が撮像されるように撮像方向を変化させる。より具体的には、ユーザーは、対象物Ｏの表面のうちの如何なる一部分であっても、撮像部１０に撮像させた当該複数の撮像画像のいずれかに含まれるように撮像方向を当該複数回変化させる。
【００２７】
以下では、説明の便宜上、ユーザーが撮像方向として選択する方向の候補のそれぞれを選択方向候補と称して説明する。また、以下では、一例として、ユーザーが撮像方向を選択する際、予め決められた複数の選択方向候補の中から撮像方向を選択する場合について説明する。ただし、この一例では、ユーザーが対象物Ｏの姿勢を変化させるため、ユーザーが選択した選択方向候補と撮像方向とはおおよそ一致するが、必ずしも完全に一致するわけではない。しかし、このような場合であっても、撮像部１０による対象物Ｏの複数回のステレオ撮像によって、対象物Ｏの表面の全部が撮像されている場合、形状測定装置３０は、以下において説明する処理を実行することが可能である。このため、以下では、ユーザーが選択した選択方向候補と撮像方向とがおおよそ一致していることを、当該選択方向候補と撮像方向とが一致していると称して説明する。
【００２８】
ユーザーは、予め決められた複数の選択方向候補のそれぞれと撮像方向とを一致させる際、対象物Ｏを治具ＢＳに載置して動かないように固定する。このようにしてユーザーは、撮像方向が動かないように固定する。なお、形状測定装置３０は、対象物Ｏの姿勢を変化させる装置を制御し、撮像方向を変化させる毎に撮像部１０に撮像領域をステレオ撮像させる構成であってもよい。この場合、形状測定装置３０には、予め決められた複数の選択方向候補を示す情報がユーザーにより予め記憶される。
【００２９】
撮像部１０が撮像範囲をステレオ撮像した撮像画像を撮像部１０から取得した後、形状測定装置３０は、取得した撮像画像に基づいて対象物点群を生成する。具体的には、形状測定装置３０は、当該撮像画像に基づいて、当該撮像画像に含まれる表面であって対象物Ｏの表面の各点のワールド座標系ＷＣにおける三次元位置（三次元座標）を測定（検出）する。形状測定装置３０は、測定した当該三次元位置に基づいて当該表面の三次元形状を表す対象物点群を生成する。すなわち、対象物点群を構成する各点は、ワールド座標系ＷＣにおける三次元位置を示す。なお、形状測定装置３０が撮像画像から対象物点群を生成する方法は、既知の方法であってもよく、これから開発される方法であってもよい。また、形状測定装置３０は、ＴｏＦ（Time  of  Flight）や三角測量法等の従来の手法に基づいて距離画像を生成する他の装置から、対象物点群を取得する構成であってもよい。
【００３０】
形状測定装置３０は、このような対象物点群の生成を、撮像部１０がステレオ撮像した撮像画像のそれぞれについて行う。例えば、複数の選択方向候補の数が１４である場合、形状測定装置３０は、１４の選択方向候補のそれぞれについて撮像範囲を撮像部１０に撮像させる。そして、形状測定装置３０は、撮像部１０により撮像された１４枚の撮像画像のそれぞれに対応する対象物点群を生成する。図３は、複数の選択方向候補の数が１４である場合において形状測定装置３０が生成する１４の対象物点群のそれぞれの一例を示す図である。図３に示したように、これら１４の対象物点群はそれぞれ、１４枚の撮像画像のそれぞれに含まれる対象物Ｏの表面の三次元形状を表している。また、これら１４の対象物点群のそれぞれは、互いに異なる一部であって対象物Ｏの表面の一部の三次元形状を表している。このため、対象物Ｏの表面全部の三次元形状は、これら１４の対象物点群のすべてによって表すことができる。
【００３１】
ここで、形状測定装置３０は、撮像部１０から取得した撮像画像毎に生成した対象物点群に基づいて対象物モデルを生成する。具体的には、形状測定装置３０は、対象物Ｏが第１撮像方向から撮像された第１撮像画像に応じた第１点群と、対象物Ｏが第１撮像方向と異なる第２撮像方向から撮像された第２撮像画像に応じた第２点群とに基づいて、第１点群の少なくとも一部である第１部分点群に対応する第２部分点群を第２点群から検出する。第１撮像方向は、ある選択方向候補と一致する撮像方向である。第２撮像方向は、当該選択方向候補と異なる他の選択方向候補と一致する撮像方向である。第１点群は、第１撮像画像に基づいて生成された対象物点群のことである。第２点群は、第２撮像画像に基づいて生成された対象物点群のことである。
【００３２】
形状測定装置３０は、検出した第１部分点群と、検出した第２部分点群とに基づいて第１点群と第２点群との位置合わせを行う。これを対象物点群対毎に繰り返すことにより、形状測定装置３０は、専用装置を用いることなく対象物Ｏの全周モデルを容易に生成することができる。対象物点群対は、形状測定装置３０が生成したすべての対象物点群から選択可能な２つの対象物点群の組み合わせのことである。すなわち、上記の第１点群は、このような対象物点群対に含まれる対象物点群の一方のことであり、第２点群は、当該対象物点群の他方のことである。以下では、形状測定装置３０が対象物モデルを生成するために行う処理について詳しく説明する。
【００３３】
なお、対象物モデルは、対象物Ｏの表面全体の三次元形状を表す三次元点群に代えて、当該三次元点群に基づいて生成される対象物ＯのＣＡＤ（Computer  Aided  Design）モデルやＣＧ（Computer  Graphics）モデルであってもよい。この場合、形状測定装置３０は、当該三次元点群に基づいて当該ＣＡＤモデルや当該ＣＧを生成する。
【００３４】
＜形状測定装置のハードウェア構成＞
以下、図４を参照し、形状測定装置３０のハードウェア構成について説明する。図４は、形状測定装置３０のハードウェア構成の一例を示す図である。
【００３５】
形状測定装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。また、形状測定装置３０は、通信部３４を介して撮像部１０と通信を行う。
【００３６】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、記憶部３２は、形状測定装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部３２は、形状測定装置３０が処理する各種の情報、各種の画像、各種のプログラム等を格納する。
【００３７】
入力受付部３３は、例えば、表示部３５と一体に構成されたタッチパネルである。なお、入力受付部３３は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００３８】
＜形状測定装置の機能構成＞
以下、図５を参照し、形状測定装置３０の機能構成について説明する。図５は、形状測定装置３０の機能構成の一例を示す図である。
【００３９】
形状測定装置３０は、記憶部３２と、制御部３６を備える。
【００４０】
制御部３６は、形状測定装置３０の全体を制御する。制御部３６は、撮像制御部３６１と、画像取得部３６３と、点群生成部３６５と、部分点群検出部３６７と、位置調整部３７７と、判定部３７９と、全周モデル生成部３８１を備える。制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００４１】
撮像制御部３６１は、撮像部１０が撮像可能な範囲である撮像範囲を撮像部１０にステレオ撮像させる。
画像取得部３６３は、撮像部１０がステレオ撮像した撮像画像（三次元画像）を撮像部１０から取得する。
点群生成部３６５は、画像取得部３６３が取得した撮像画像に基づいて対象物点群を生成する。
【００４２】
部分点群検出部３６７は、点群生成部３６５が生成した複数の対象物点群のそれぞれから所定条件を満たす１以上の部分点群を検出する。
位置調整部３７７は、部分点群検出部３６７が対象物点群毎に検出した１以上の部分点群に基づいて、対象物点群同士の位置合わせを行う。
全周モデル生成部３８１は、位置調整部３７７による対象物点群同士の位置合わせの結果に基づいて対象物モデルを生成する。
【００４３】
＜形状測定装置が対象物モデルを生成するために行う処理＞
以下、図６を参照し、形状測定装置３０が対象物モデルを生成するために行う処理について説明する。図６は、形状測定装置３０が対象物モデルを生成するために行う処理の流れの一例を示すフローチャートである。
【００４４】
ユーザーは、撮像方向を複数の選択方向候補の中から１つずつ選択し、選択した撮像方向毎に、撮像方向が実現するように対象物Ｏを治具ＢＳの上に固定してから、ステップＳ１２０〜ステップＳ１５０の処理を形状測定装置３０に実行させる（ステップＳ１１０）。ここで、当該処理が形状測定装置３０により実行された後、ユーザーは、未選択の選択方向候補が残っていた場合、未選択の選択方向候補から再び撮像方向を１つ選択し、選択した撮像方向が実現するように対象物Ｏを治具ＢＳの上に固定してから、当該処理を再び形状測定装置３０に実行させる。一方、当該処理が形状測定装置３０により実行された後、未選択の選択方向候補が残っていない場合、ユーザーは、ステップＳ１６０〜ステップＳ１７０の処理を形状測定装置３０に実行させる。
【００４５】
ステップＳ１１０においてユーザーからステップＳ１２０〜ステップＳ１５０の処理を実行する操作を形状測定装置３０が受け付けた後、撮像制御部３６１は、撮像部１０に撮像範囲をステレオ撮像させる（ステップＳ１２０）。次に、画像取得部３６３は、ステップＳ１２０において撮像部１０がステレオ撮像した撮像画像を撮像部１０から取得する（ステップＳ１３０）。次に、点群生成部３６５は、ステップＳ１３０において画像取得部３６３が取得した撮像画像に基づいて対象物点群を生成する（ステップＳ１４０）。そして、点群生成部３６５は、生成した対象物点群を記憶部３２に記憶させる。
【００４６】
次に、判定部３７９は、記憶部３２に記憶された１以上の対象物点群のそれぞれを表示部３５に表示させる。そして、判定部３７９は、対象物点群の生成処理を終了させる操作と当該生成処理を継続させる操作とのいずれかをユーザーから受け付けるまで待機する（ステップＳ１５０）。当該生成処理は、すなわち、ステップＳ１２０〜ステップＳ１５０の繰り返し処理のことである。当該生成処理を継続させる操作をユーザーから受け付けたと判定部３７９が判定した場合（ステップＳ１５０−継続）、撮像制御部３６１は、ステップＳ１１０に遷移し、ユーザーからステップＳ１２０〜ステップＳ１５０の処理を実行する操作をユーザーから受け付けるまで待機する。ユーザーは、撮像制御部３６１が待機している間に未選択の選択方向候補の中から撮像方向を選択し、選択した撮像方向が実現するように対象物Ｏを治具ＢＳの上に固定してから、ステップＳ１２０〜ステップＳ１５０の処理を形状測定装置３０に実行させる。一方、当該生成処理を終了させる操作を受け付けたと判定部３７９が判定した場合（ステップＳ１５０−終了）、表示部３５に表示された複数の対象物点群に基づいて、対象物モデルを生成するために十分な対象物点群が記憶部３２に記憶されたとユーザーが判断したと判定し、部分点群検出部３６７と、位置調整部３７７と、全周モデル生成部３８１とのそれぞれは、対象物モデル生成処理を実行し（ステップＳ１６０）、対象物モデルを生成するとともに、生成した対象物モデルを表示部３５に表示させる。
【００４７】
そして、判定部３７９は、対象物モデルを生成するための処理を終了する操作と、当該処理を継続する操作とのいずれかをユーザーから受け付けるまで待機する（ステップＳ１７０）。当該処理は、すなわち、ステップＳ１１０〜ステップＳ１７０の処理のことである。当該処理を継続する操作を受け付けたと判定部３７９が判定した場合（ステップＳ１７０−継続）、撮像制御部３６１は、ステップＳ１１０に遷移し、ユーザーからステップＳ１２０〜ステップＳ１５０の処理を実行する操作をユーザーから受け付けるまで待機する。ユーザーは、撮像制御部３６１が待機している間に新たな選択方向候補（選択済みの選択方向候補のそれぞれと異なる選択方向候補）を決定し、決定した選択方向候補の中から撮像方向を選択し、選択した撮像方向が実現するように対象物Ｏを治具ＢＳの上に固定してから、ステップＳ１２０〜ステップＳ１５０の処理を形状測定装置３０に実行させる。一方、当該処理を終了する操作を受け付けたと判定部３７９が判定した場合（ステップＳ１７０−終了）、制御部３６は、処理を終了する。
【００４８】
＜対象物モデル生成処理の流れ＞
以下、図７を参照し、図６に示したステップＳ１６０において形状測定装置３０が実行する対象物モデル生成処理の流れについて説明する。図７は、形状測定装置３０が実行する対象物モデル生成処理の流れの一例を示すフローチャートである。
【００４９】
部分点群検出部３６７は、記憶部３２に記憶された複数の対象物点群を記憶部３２から読み出す。当該対象物点群は、図６に示したフローチャートにおけるステップＳ１４０において点群生成部３６５が生成した対象物点群である。部分点群検出部３６７は、読み出した複数の対象物点群のそれぞれ毎に、対象物点群に基づいて対象物点群の一部分である部分点群のうち所定条件を満たす部分点群を検出する（ステップＳ２１０）。所定条件は、以下に示した２つの条件である条件１）、条件２）のうち少なくとも一方を満たすことである。
【００５０】
条件１）一つながりの面であって曲率が一定の面を三次元形状として表す部分点群であること
条件２）一つながりの面であって曲率が所定値未満の面を三次元形状として表す部分点群であること
【００５１】
なお、曲率が０以外の場合、これらの面は曲面であり、曲率が０の場合、当該面は平面である。ここで、図８を参照し、ステップＳ２１０の処理について説明する。
【００５２】
図８は、対象物点群の一例を示す図である。図８に示した点群ＯＰは、対象物点群の一例である。点群ＯＰには、上記の所定条件を満たす面を構成する部分点群が３つ含まれている。従って、図８に示した例では、部分点群検出部３６７は、点群ＯＰに基づいて、部分点群Ｓ１〜部分点群Ｓ３の３つの部分点群を、所定条件を満たす部分点群として検出する。
【００５３】
ステップＳ２１０の処理が実行された後、部分点群検出部３６７と位置調整部３７７とは、ステップＳ２１０において記憶部３２から読み出した複数の対象物点群から選択可能な２つの対象物点群の組み合わせである対象物点群対毎に、ステップＳ２３０の処理を繰り返し行う（ステップＳ２２０）。ここで、ステップＳ２２０において部分点群検出部３６７は、対象物点群対Ｘ１２と対象物点群対Ｘ２１を同じ対象物点群対と判定し、これらの対象物点群対についてステップＳ２３０の処理を重複して行わない。対象物点群対Ｘ１２は、ある対象物点群Ｘ１を１つ目の対象物点群として含み、対象物点群Ｘ２を２つ目の対象物点群として含む対象物点群対のことである。対象物点群対Ｘ２１は、対象物点群Ｘ２を１つ目の対象物点群として含み、対象物点群Ｘ１を２つ目の対象物点群として含む対象物点群対のことである。
【００５４】
部分点群検出部３６７は、ステップＳ２２０において選択した対象物点群対に基づいて、以下において説明する部分点群対検出処理を行う（ステップＳ２３０）。ここで、ステップＳ２３０における部分点群対検出処理について説明する。以下では、説明の便宜上、ステップＳ２２０において選択された対象物点群対に含まれる２つの対象物点群のうちの一方を第１点群と称し、第１点群に基づいてステップＳ２１０において検出された１以上の部分点群を第１部分点群と称して説明する。また、以下では、当該対象物点群のうちの他方を第２点群と称し、第２点群に基づいてステップＳ２１０において検出された１以上の部分点群を仮第２部分点群と称して説明する。
【００５５】
部分点群検出部３６７は、１以上の第１部分点群のそれぞれ毎に、第１部分点群を構成する各点に基づく主成分分析を行う。部分点群検出部３６７は、この主成分分析の結果として得られる第１主軸をＸ軸とし、当該結果として得られる第２主軸をＹ軸とし、当該各点のＸ軸周り及びＹ軸周りにおける分散を表す共分散行列を算出する。この共分散行列は、第１部分点群の拡がりを表す。部分点群検出部３６７は、算出した共分散行列に基づく２つの固有値を算出する。そして、部分点群検出部３６７は、算出した２つの固有値のうちの小さい方の固有値を、算出した２つの固有値のうち大きい方の固有値によって除した比を第１固有値比として算出する。すなわち、部分点群検出部３６７は、第１部分点群のそれぞれ毎に第１固有値比を算出する。
【００５６】
また、部分点群検出部３６７は、１以上の仮第２部分点群のそれぞれ毎に、仮第２部分点群を構成する各点に基づく主成分分析を行う。部分点群検出部３６７は、この主成分分析の結果として得られる第１主軸をＸ軸とし、当該結果として得られる第２主軸をＹ軸とし、当該各点のＸ軸周り及びＹ軸周りにおける分散を表す共分散行列を算出する。この共分散行列は、仮第２部分点群の拡がりを表す。部分点群検出部３６７は、算出した共分散行列に基づく２つの固有値を算出する。そして、部分点群検出部３６７は、算出した２つの固有値のうちの小さい方の固有値を、算出した２つの固有値のうち大きい方の固有値によって除した比を第２固有値比として算出する。すなわち、部分点群検出部３６７は、仮第２部分点群のそれぞれ毎に第２固有値比を算出する。
【００５７】
ここで、ある第１固有値比と、ある第２固有値比との差が所定閾値未満である場合、当該第１固有値比に対応する第１部分点群が表す三次元形状と、当該第２固有値比に対応する仮第２部分点群が表す三次元形状とはそれぞれ、同じ部位を互いに異なる撮像方向から見た場合における当該部位の表面の三次元形状である可能性が高い。当該部位は、対象物Ｏのある一部の部位のことである。第１固有値比に対応する第１部分点群は、第１固有値比を算出するために用いた第１部分点群のことである。第２固有値比に対応する仮第２部分点群は、第２固有値比を算出するために用いた仮第２部分点群のことである。
【００５８】
例えば、図９に示した点群ＯＰ１及び点群ＯＰ２を例に挙げて説明する。図９は、ステップＳ２２０において選択された対象物点群対に含まれる第１点群及び第２点群の一例を示す図である。点群ＯＰ１は、当該第１点群の一例であり、点群ＯＰ２は、当該第２点群の一例である。また、第１部分点群Ｓ１１は、点群ＯＰ１に基づいて検出された部分点群であり、仮第２部分点群Ｓ１２は、点群ＯＰ２に基づいて検出された部分点群である。
【００５９】
図９に示した例では、第１部分点群Ｓ１１と仮第２部分点群Ｓ１２とのそれぞれは、図２に示した対象物ＯのリブＶＲを互いに異なる撮像方向から見たい場合におけるリブＶＲの表面の三次元形状である。この場合、第１部分点群Ｓ１１に対応する第１固有値比と、仮第２部分点群Ｓ１２に対応する第２固有値比との差は、所定閾値未満となる可能性が高い。また、図９に示した第１部分点群Ｓ２１と仮第２部分点群Ｓ２２とのそれぞれは、図２に示した対象物Ｏが有するある面を互いに異なる撮像方向から見たい場合における当該面の三次元形状である。この場合、第１部分点群Ｓ２１に対応する第１固有値比と、仮第２部分点群Ｓ２２に対応する第２固有値比との差は、所定閾値未満となる可能性が高い。
【００６０】
一方、第１部分点群Ｓ１１に対応する第１固有値比と、仮第２部分点群Ｓ２２に対応する第２固有値比との差は、所定閾値以上となる可能性が高い。これは、第１部分点群Ｓ１１が表す三次元形状を有する部位であって対象物Ｏの部位は、仮第２部分点群Ｓ２２が表す三次元形状を有する部位と異なる部位であるためである。同様の理由により、第１部分点群Ｓ２１に対応する第１固有値比と、仮第２部分点群Ｓ１２に対応する第２固有値比との差は、所定閾値以上となる可能性が高い。
【００６１】
このような理由により、部分点群検出部３６７は、第１固有値比と第２固有値比との差に基づいて部分点群対を検出する。部分点群対は、第１部分点群と仮第２部分点群との組み合わせのうち、ある部位を第１撮像方向から見た場合における当該部位の表面の三次元形状を表す第１部分点群と、当該部位を仮第２撮像方向から見た場合における当該部位の表面の三次元形状を表す仮第２部分点群との組み合わせである可能性の高い組み合わせのことである。
【００６２】
具体的には、部分点群検出部３６７は、第１固有値比のそれぞれと、第２固有値比のそれぞれとの差を算出し、差が所定閾値未満となる第１固有値比と第２固有値比との組み合わせに対応する第１部分点群と仮第２部分点群との組み合わせのそれぞれを部分点群対として検出する。第１固有値比と第２固有値比との組み合わせに対応する第１部分点群と仮第２部分点群との組み合わせは、第１固有値比に対応する第１部分点群と、第２固有値比に対応する仮第２部分点群との組み合わせのことである。以下では、説明の便宜上、部分点群検出部３６７が検出した部分点群対に含まれる仮第２部分点群を、第２部分点群と称して説明する。すなわち、部分点群検出部３６７はこのような処理により、ある第１部分点群を含む部分点群対を検出する際、第１固有値比及び第２固有値比に基づいて、当該第１部分点群とともに当該部分点群対に含める第２部分点群を仮第２部分点群の中から検出する。
【００６３】
部分点群検出部３６７は、検出した部分点群対のそれぞれに対してステップＳ２２０において選択した対象物点群対を対応付ける。そして、部分点群検出部３６７は、ステップＳ２２０に遷移し、次の対象物点群対を選択する。なお、部分点群検出部３６７は、ステップＳ２３０において部分点群対が検出されなかった場合、部分点群対が未検出のままステップＳ２２０に遷移し、次の対象物点群対を選択する。この場合、対象物Ｏの表面のうちステップＳ２２０において選択された対象物点群対に含まれる第１点群が表す表面と、対象物Ｏの表面のうち当該対象物点群対に含まれる第２点群が表す表面とは、重なる部分がない。
【００６４】
ステップＳ２２０〜ステップＳ２３０の繰り返し処理によって部分点群対を検出した後、部分点群検出部３６７は、再び対象物点群対毎に、ステップＳ２４５〜ステップＳ２９０の処理を繰り返し行う（ステップＳ２４０）。ここで、ステップＳ２４０において部分点群検出部３６７は、対象物点群対Ｘ１２と対象物点群対Ｘ２１を同じ対象物点群対と判定し、これらの対象物点群対についてステップＳ２５０〜ステップＳ２９０の処理を重複して行わない。
【００６５】
ステップＳ２４０において対象物点群対を選択した後、部分点群検出部３６７は、選択した対象物点群対に部分点群対が対応付けられているか否かを判定する（ステップＳ２４５）。部分点群検出部３６７は、ステップＳ２４０において選択した対象物点群対に部分点群対が対応付けられていないと判定した場合（ステップＳ２４５−ＮＯ）、部分点群検出部３６７は、ステップＳ２４０に遷移し、次の対象物点群対を選択する。なお、部分点群検出部３６７は、ステップＳ２４０に遷移する際に未選択の対象物点群対が残っていない場合、ステップＳ３００に遷移する。一方、ステップＳ２４０において選択した対象物点群対に部分点群対が対応付けられていると部分点群検出部３６７が判定した場合（ステップＳ２４５−ＹＥＳ）、位置調整部３７７は、当該対象物点群対に対応付けられた部分点群対のそれぞれ毎に、ステップＳ２６０〜ステップＳ２８０の処理を繰り返し行う（ステップＳ２５０）。
【００６６】
位置調整部３７７は、ステップＳ２５０において選択された部分点群対に基づいて、ステップＳ２４０において選択された対象物点群対に含まれる第１点群及び第２点群の位置合わせを行う処理である第１位置調整処理を行う（ステップＳ２６０）。ここで、ステップＳ２６０の処理について説明する。なお、以下におけるステップＳ２６０の処理についての説明において、単に第１点群と記載した場合、ステップＳ２４０において選択された対象物点群対に含まれる第１点群を示し、単に第２点群と記載した場合、ステップＳ２４０において選択された対象物点群対に含まれる第２点群を示し、単に第１部分点群と記載した場合、ステップＳ２５０において選択された部分点群対に含まれる第１部分点群を示し、単に第２部分点群と記載した場合、ステップＳ２５０において選択された部分点群対に含まれる第２部分点群を示す。
【００６７】
位置調整部３７７は、第１部分点群に基づくキューブを第１キューブとして検出するとともに、第２部分点群に基づくキューブを第２キューブとして検出する。ある点群に基づくキューブは、当該点群を含む領域が分割された分割領域のうち当該点群を構成する点を所定数以上含む分割領域のことである。当該領域は、位置調整部３７７が記憶部３２の記憶領域内に生成した仮想的な領域である。所定数は、この一例において、３である。なお、所定数は、３以上の数であれば他の数であってもよい。ここで、図１０を参照し、ステップＳ２６０の処理について説明する。
【００６８】
図１０は、ある点群を含む領域が分割された分割領域を例示する図である。図１０では、ステップＳ２６０において検出されるキューブを明確に示すため、第１部分点群及び第２部分点群に代えて、図１０に示したある点群ＰＰを例に挙げて説明する。位置調整部３７７は、点群ＰＰを含む領域を複数の立方体形状の分割領域に分割する。当該領域は、記憶部３２の記憶領域内に生成された仮想的な領域である。当該領域における位置は、ワールド座標系ＷＣにおける位置（座標）によって表される。図１０に示した点線は、当該分割領域のうちの一部の分割領域の境界を示している。
【００６９】
点群ＰＰを含む領域を前述の分割領域に分割する際、位置調整部３７７は、ワールド座標系ＷＣにおけるＸ軸、Ｙ軸、Ｚ軸それぞれにおいて、点群ＰＰを含む範囲を算出する。当該範囲は、例えば、最小値と最大値によって表される範囲である。位置調整部３７７は、算出したＸ軸の範囲とＹ軸の範囲とＺ軸の範囲とのうちの最も狭い範囲を特定する。位置調整部３７７は、特定した当該範囲を第２所定数の分割範囲に等分割する。第２所定数は、例えば、２０である。なお、第２所定数は、これに代えて、２０より小さな数であってもよく、２０より大きな数であってもよい。位置調整部３７７は、当該分割範囲の長さを１辺の長さとする立方体形状の分割領域によってワールド座標系ＷＣにおける点群ＰＰを含む領域を分割する。この際、位置調整部３７７は、当該最も狭い範囲の両端のうちの一端を基準位置として分割領域を各座標軸の方向に隙間なく並べる。また、位置調整部３７７は、点群ＰＰの全体を覆い尽くすように分割領域を並べる。なお、当該領域を分割する方法は、これに限られず、他の方法であってもよい。また、分割領域の形状は、立方体形状に代えて、他の形状であってもよい。ただし、分割領域の形状は、ステップＳ２６０の処理が簡単になるため、立方体形状であることが望ましい。
【００７０】
位置調整部３７７は、ワールド座標系ＷＣにおける点群ＰＰを含む領域を分割領域に分割した後、各分割領域内に含まれる点であって点群ＰＰを構成する点の数を算出する。そして、位置調整部３７７は、各分割領域のうちの当該点が前述の所定数（この一例において、３）以上含まれる分割領域を、点群ＰＰに基づくキューブとして検出する。なお、当該所定数は、ＣＰＵ３１の処理速度に応じてユーザーにより決定される数である。当該処理速度が速いほど、当該所定数を小さくしてもステップＳ２６０の処理に要する時間が増大しないため、ユーザーは、当該所定数を小さな数に決定することができる。
【００７１】
図１０において説明したキューブの検出方法と同様の検出方法により、ステップＳ２６０において位置調整部３７７は、第１部分点群に基づくキューブを第１キューブとして検出するとともに、第２部分点群に基づくキューブを第２キューブとして検出する。
【００７２】
１以上の第１キューブ及び１以上の第２キューブのそれぞれを検出した後、位置調整部３７７は、第１キューブのそれぞれ毎に、第１キューブ内に含まれる点群の重心の位置に仮想的な点を第１特徴点として生成する。第１特徴点は、第１部分点群に基づいて生成（検出）される特徴点である。また、位置調整部３７７は、第１キューブのそれぞれ毎に、第１キューブ内に生成した第１特徴点に対応付ける特徴量を第１特徴量として算出する。ここで、図１１〜図１３を参照し、第１特徴量を算出する処理について説明する。
【００７３】
位置調整部３７７は、ステップＳ２６０において検出した１以上の第１キューブから第１特徴量を算出する対象となる第１キューブを対象第１キューブとして１つずつ選択する。位置調整部３７７は、当該１以上の第１キューブにおける相対的な位置関係であって、選択した対象第１キューブと他の第１キューブとの相対的な位置関係に基づいて、対象第１キューブ内に生成した第１特徴点に対応付ける第１特徴量を算出する。
【００７４】
具体的には、位置調整部３７７は、対象第１キューブから他の第１キューブのそれぞれまでの位置関係を表すテンソルを第１特徴量として算出する。以下では、一例として、各第１キューブが第１部分点群を含む領域において平面的に分布している場合について説明する。各第１キューブが当該平面的に分布している場合、各第１キューブの図心は、ある１つの平面に含まれる。
【００７５】
図１１は、第１部分点群を含む領域において平面的に分布している第１キューブを例示する図である。図１１に示した例では、６個の第１キューブ、すなわち第１キューブＣ１〜第１キューブＣ６のそれぞれが当該領域において平面的に分布している。なお、図１１に示した例では、４個の分割領域Ｕが第１キューブＣ１〜第１キューブＣ６とともに描かれている。分割領域Ｕは、ステップＳ２６０において所定数未満の点を含んでいること等の何らかの理由によって第１キューブとして検出されなかった分割領域である。以下では、一例として、第１キューブＣ２が対象第１キューブである場合について説明する。また、以下では、一例として、形状測定装置３０が行う処理において分割領域Ｕを用いない場合について説明するが、形状測定装置３０は、分割領域Ｕを何らかの処理に用いる構成であってもよい。
【００７６】
位置調整部３７７は、対象第１キューブに含まれる所定数以上の点によって構成される面の法線方向を対象第１キューブの方向として算出する。図１１に示した例では、当該法線方向は、矢印Ａ１が示す方向である。位置調整部３７７は、検出した１以上の第１キューブのそれぞれに含まれる各点の位置を座標変換し、算出した当該法線方向とワールド座標系ＷＣにおけるＺ軸の正方向とを図１２に示したように一致させる。図１２は、対象第１キューブの方向とワールド座標系ＷＣにおけるＺ軸の正方向とを一致させた場合における図１１に示した第１キューブを例示する図である。
【００７７】
位置調整部３７７は、座標変換した各点に基づいて、当該各点を含む領域を前述の分割領域に分割し、１以上の第１キューブを新たに検出する。すなわち、ここでの第１キューブを検出する対象は、当該座標変換した各点である。また、ここでの第１キューブの検出方法は、前述した第１キューブの検出方法と同様の検出方法であるため説明を省略する。位置調整部３７７は、例えば、新たに検出された第１キューブのうち選択した対象第１キューブに含まれていた所定数以上の点を最も多く含む第１キューブを新たな対象第１キューブとして特定する。図１３は、座標変換した各点に基づいて新たに検出された第１キューブを例示する図である。図１３に示した例では、位置調整部３７７は、座標変換した各点に基づいて７個の第１キューブである第１キューブＣ１１〜第１キューブＣ１７のそれぞれを検出している。以下では、一例として、新たな対象第１キューブとして特定された第１キューブが第１キューブＣ１２である場合について説明する。なお、図１３に示した分割領域Ｕは、図１１及び図１２に示した分割領域Ｕと同様に、座標変換した各点に基づいて新たに第１キューブを検出した際、所定数未満の点を含んでいること等の何らかの理由で第１キューブとして検出されなかった分割領域である。
【００７８】
位置調整部３７７は、第１特徴量を表すテンソル（この一例において、行列）のＰ行Ｑ列目の成分として、ワールド座標系ＷＣにおけるＸ軸方向に沿って分割領域Ｐ個分だけ対象第１キューブから離れた第１キューブであって、ワールド座標系ＷＣにおけるＺ軸方向に沿って分割領域（Ｑ−１）個分だけ対象第１キューブから離れた第１キューブの数を算出する。ここで、Ｐは１以上の整数である。なお、Ｐの最大値は、ワールド座標系ＷＣにおけるＸ軸方向に沿って対象第１キューブから最も離れた第１キューブまでの分割領域の数（対象第１キューブを０個として数えた場合の数）である。また、Ｑは１以上の整数である。なお、Ｑの最大値は、ワールド座標系ＷＣにおけるＺ軸方向に沿って対象第１キューブから最も離れた第１キューブまでの分割領域の数（対象第１キューブを０個として数えた場合の数）である。
【００７９】
例えば、第１特徴量を表すテンソルの１行１列目の成分は、ワールド座標系ＷＣにおけるＸ軸方向に沿って分割領域１個分だけ対象第１キューブから離れた第１キューブであって、ワールド座標系ＷＣにおけるＺ軸方向に沿って分割領域０個分だけ対象第１キューブから離れた第１キューブの数である。すなわち、図１３に示した例では、当該第１キューブが第１キューブＣ１１と第１キューブＣ１３の２個であるため、当該成分は、２である。また、第１特徴量を表すテンソルの２行１列目の成分は、ワールド座標系ＷＣにおけるＸ軸方向に沿って分割領域２個分だけ対象第１キューブから離れた第１キューブであって、ワールド座標系ＷＣにおけるＺ軸方向に沿って分割領域０個分だけ対象第１キューブから離れた第１キューブの数である。すなわち、図１３に示した例では、当該第１キューブが第１キューブＣ１４の１個のみであるため、当該成分は、１である。また、第１特徴量を表すテンソルの６行４列目の成分は、ワールド座標系ＷＣにおけるＸ軸方向に沿って分割領域６個分だけ対象第１キューブから離れた第１キューブであって、ワールド座標系ＷＣにおけるＺ軸方向に沿って分割領域３個分だけ対象第１キューブから離れた第１キューブの数である。すなわち、図１３に示した例では、当該第１キューブが第１キューブＣ１５の１個のみであるため、当該成分は、１である。また、第１特徴量を表すテンソルの５行４列目の成分は、ワールド座標系ＷＣにおけるＸ軸方向に沿って分割領域５個分だけ対象第１キューブから離れた第１キューブであって、ワールド座標系ＷＣにおけるＺ軸方向に沿って分割領域３個分だけ対象第１キューブから離れた第１キューブの数である。すなわち、図１３に示した例では、当該第１キューブが０個であるため、当該成分は、０である。
【００８０】
このようにして位置調整部３７７は、第１特徴量を表すテンソルの各成分を算出することにより、ステップＳ２６０において検出した１以上の第１キューブ毎の第１特徴点に対応付ける第１特徴量を算出する。以下に示す式（１）は、図１３に示した例において位置調整部３７７が算出した当該テンソルＴｃである。
【００８１】
【数１】
2017219359.tif 000003
【００８２】
なお、各第１キューブが第１部分点群を含む領域において立体的に分布している場合、第１特徴量は、対象第１キューブと当該領域内に位置する他の第１キューブのそれぞれまでの位置関係を表すテンソルによって表される。この場合、当該テンソルは、３階のテンソルである。各第１キューブが当該立体的に分布している場合、各第１キューブの図心は、ある１つの平面に含めることができない。
【００８３】
１以上の第１キューブのそれぞれ毎に第１キューブ内に生成した第１特徴点に対応付ける第１特徴量を算出した後、位置調整部３７７は、算出した当該第１特徴量を当該第１特徴点に対応付ける。第１特徴量は、第１分割領域特徴量の一例である。
【００８４】
また、位置調整部３７７は、第２キューブのそれぞれ毎に、第２キューブ内に含まれる点の重心に仮想的な点を第２特徴点として生成する。第２特徴点は、第２部分点群に基づいて生成（検出）される特徴点である。また、位置調整部３７７は、１以上の第１キューブのそれぞれ毎に第１キューブに基づく第１特徴量を算出する方法と同様の方法によって、１以上の第２キューブのそれぞれ毎に第２キューブ内に生成した第２特徴点に対応付ける第２特徴量を算出する。当該方法については、上記においてすでに説明済みであるため、説明を省略する。１以上の第２キューブ内に生成した第２特徴点に対応付ける第２特徴量を算出した後、位置調整部３７７は、算出した第２特徴量を当該第２特徴点に対応付ける。第２特徴量は、第２分割領域特徴量の一例である。
【００８５】
このようにして、第１特徴量が対応付けられた第１特徴点と、第２特徴量が対応付けられた第２特徴点とを算出した後、位置調整部３７７は、当該第１特徴点と当該第２特徴点とのマッチングを行い、第１部分点群を含む第１点群と、第２部分点群を含む第２点群との位置合わせを行う。ここで、位置調整部３７７は、例えば、ＳＡＣ−ＩＡ（SAmple  Consensus  Initial  Alignment）を用いることにより、当該位置合わせを行う。なお、位置調整部３７７は、これに代えて、他の方法によって当該位置合わせを行う構成であってもよい。また、位置調整部３７７は、上記において説明した第１キューブに基づく第１特徴点及び第１特徴量と、第２キューブに基づく第２特徴点及び第２特徴量とに基づいて当該位置合わせを行う構成に代えて、他の特徴点及び特徴量に基づいて当該位置合わせを行う構成であってもよい。この場合、例えば、位置調整部３７７は、第１部分点群からＩＳＳ（Intrinsic  Shape  Signatures）及びＳＨＯＴ（Signature  of  Histograms  of  OrienTations）に基づいて算出した特徴点及び特徴量と、第２部分点群からＩＳＳ及びＳＨＯＴに基づいて算出した特徴点及び特徴量とに基づいて、当該位置合わせを行う。
【００８６】
ステップＳ２６０において第１位置調整処理を行った後、位置調整部３７７は、第２位置調整処理を行う（ステップＳ２７０）。ここで、ステップＳ２７０における第２位置調整処理について説明する。位置調整部３７７は、第１位置調整処理によって位置合わせされた第１点群と第２点群とをＩＣＰ（Iterated  Closest  Points）アルゴリズムによって移動させ、第１位置調整処理による第１点群と第２点群との位置合わせを補正する。これにより、位置調整部３７７は、第２位置調整処理における第１点群と第２点群との位置合わせの結果として、第１点群と第２点群とを対応付ける回転変換行列を算出する。
【００８７】
なお、位置調整部３７７は、ステップＳ２７０の処理を省略する構成であってもよい。この場合、位置調整部３７７は、ステップＳ２６０において、第１位置調整処理における当該位置合わせの結果として、第１点群と第２点群とを対応付ける回転変換行列を算出する。
【００８８】
ステップＳ２７０において第２位置調整処理を行った後、位置調整部３７７は、ステップＳ２７０における第２位置調整処理による第１点群と第２点群との位置合わせを評価する評価値（当該位置合わせの精度を表す評価値）を算出する（ステップＳ２８０）。そして、位置調整部３７７は、算出した評価値をステップＳ２５０において選択した部分点群対に対応付ける。位置調整部３７７は、例えば、当該位置合わせにおけるＩＣＰ残差を当該評価値として算出する。なお、位置調整部３７７は、これに代えて、ステップＳ２７０における第２位置調整処理による第１点群と第２点群との位置合わせを評価可能（当該位置合わせの精度を表すことが可能）な他の値を評価値として算出する構成であってもよい。
【００８９】
ステップＳ２５０〜ステップＳ２８０の処理によってすべての部分点群対のそれぞれについて前述の評価値を算出した後、位置調整部３７７は、ステップＳ２８０において算出した評価値のうち最大の評価値を特定する。そして、位置調整部３７７は、特定した最大の評価値に対応付けられた部分点群対について算出された回転変換行列を、ステップＳ２４０において選択した対象物点群対に対応付ける。当該回転変換行列は、当該部分点群対に対する第２位置調整処理の結果としてステップＳ２７０において算出された行列である。
【００９０】
ステップＳ２４０〜ステップＳ２９０の処理によってすべての対象物点群対のそれぞれに前述の回転変換行列が対応付けられた後、全周モデル生成部３８１は、対象物点群対のそれぞれに対応付けられた回転変換行列に基づいて、対象物点群対のそれぞれを位置合わせすることによってすべての対象物点群を組み合わせた合成点群を生成する（ステップＳ３００）。ここで、ステップＳ３００の処理について説明する。
【００９１】
全周モデル生成部３８１は、ステップＳ２１０において記憶部３２から読み出した複数の対象物点群のうちのある対象物点群（すなわち、第１点群）に対して他の対象物点群（すなわち、第２点群）を１つずつ位置合わせすることによって合成点群を生成する。この際、全周モデル生成部３８１は、当該ある対象物点群と、当該他の対象物点群とを含む対象物点群対に対応付けられた回転変換行列に基づいて、当該ある対象物点群と、当該他の対象物点群との位置合わせを行う。
【００９２】
このようにステップＳ３００において生成された合成点群は、ステップＳ２１０において記憶部３２から読み出した複数の対象物点群のうちのある対象物点群（すなわち、第１点群）に対して他の対象物点群（すなわち、第２点群）を１つずつ位置合わせすることによって生成されているため、対象物Ｏの表面全体の三次元形状を精度よく表していない場合がある。そこで、全周モデル生成部３８１は、ステップＳ３００の処理を行った後、ステップＳ３１０の処理を行う。
【００９３】
ステップＳ３１０において全周モデル生成部３８１は、ステップＳ３００において生成した合成点群に組み合わされている対象物点群のそれぞれ毎に、対象物点群を合成点群から取り除き、対象物点群を取り除いた合成点群に対して改めて対象物点群の位置合わせを行う。この際、全周モデル生成部３８１は、ＩＰＣアルゴリズムによって当該位置合わせを行う。これにより、全周モデル生成部３８１は、対象物Ｏの表面全体の三次元形状を精度よく表している合成点群を生成する。そして、全周モデル生成部３８１は、生成した合成点群を構成する複数の点において点同士の間の距離が所定距離未満の点同士を１つの新たな点に置き換えた合成点群を対象物モデルとして生成する。全周モデル生成部３８１は、例えば、当該点同士を削除するとともに、当該点同士の中点に当該新たな点を生成することにより、このような置き換えを行う。なお、全周モデル生成部３８１は、当該点同士を削除するとともに、当該点同士のうちいずれか一方の位置に当該新たな点を生成することにより、このような置き換えを行う構成等の他の構成であってもよい。また、全周モデル生成部３８１は、このような点同士の削除を行わない構成であってもよい。なお、合成点群は、位置合わせされた第１点群及び第２点群に応じた点群の一例である。
【００９４】
以上のように、形状測定装置３０は、ステップＳ２１０〜ステップＳ３１０の処理を行うことにより、対象物モデルを生成する。すなわち、形状測定装置３０は、専用装置を用いることなく対象物モデルを容易に生成することができる。
【００９５】
＜実施形態の変形例１＞
以下、実施形態の変形例１について説明する。なお、実施形態の変形例１では、実施形態と同様な構成部に対して同じ符号を付して説明を省略する。実施形態の変形例１では、図７に示したステップＳ２３０の処理が、以下において説明するステップＳ２３０ａの処理に置き換わる。ステップＳ２３０ａの処理がステップＳ２３０の処理と異なる部分は、ステップＳ２３０の処理のうち第１点群に基づいて第１部分点群を検出する処理と、第２点群に基づいて第２部分点群を検出する処理との部分である。
【００９６】
ステップＳ２３０ａにおいて、部分点群検出部３６７は、上記の実施形態において説明した分割領域を用いて第１点群から１以上の第１部分点群を検出するとともに、第２点群から１以上の第２部分点群を検出する。
【００９７】
具体的には、部分点群検出部３６７は、第１点群を含む領域を前述の分割領域に分割する。当該領域を分割領域に分割する方法は、図１０において説明した方法と同様の方法であるため説明を省略する。部分点群検出部３６７は、当該領域を分割領域に分割した後、第１点群を構成する点を３以上含む分割領域のそれぞれ毎に、分割領域内に含まれる点によって構成される三次元形状を面に近似する。当該面は、曲率が０以外の場合に曲面であり、曲率が０の場合、平面である。
【００９８】
このような近似を行った後、部分点群検出部３６７は、第１点群を含む領域を分割した分割領域のうちの互いに隣り合う２つの分割領域のそれぞれに含まれる面同士が似ている場合、これらの面のそれぞれを含む分割領域同士を結合して１つの分割領域を生成する。当該面同士が似ているとは、当該面同士の曲率の差が第２所定閾値未満であることを意味する。部分点群検出部３６７は、このような分割領域の結合を、似ている２つの面のそれぞれを含む分割領域であって互いに隣り合う２つの分割領域がなくなるまで繰り返す。これにより、部分点群検出部３６７は、第１点群の一部分である部分点群のうちステップＳ２３０において説明した所定条件を満たす１以上の部分点群を第１部分点群として検出する。すなわち、部分点群検出部３６７は、当該結合の結果として最後に残る１以上の面を表す部分点群を第１部分点群対として検出する。
【００９９】
また、部分点群検出部３６７は、第２点群を含む領域を前述の分割領域に分割し、分割した分割領域に基づいて、この一例において説明した方法であって第１点群から第１部分点群を検出する方法と同様の方法により、第２点群から１以上の仮第２部分点群を検出する。
【０１００】
このように、部分点群検出部３６７は、ステップＳ２３０ａの処理によって、第１点群から１以上の第１部分点群を検出するとともに、第２点群から１以上の仮第２部分点群を検出することができる。これにより、部分点群検出部３６７は、上記において説明した実施形態と同様の効果を得ることができる。
【０１０１】
＜第１実施形態の変形例２＞
以下、図１４を参照し、実施形態の変形例２について説明する。なお、実施形態の変形例２では、実施形態と同様な構成部に対して同じ符号を付して説明を省略する。
【０１０２】
図１４は、実施形態の変形例２に係るロボットシステム２の構成の一例を示す図である。ロボットシステム２は、撮像部１０と、ロボット２０と、ロボット制御装置５０を備える。また、ロボット制御装置５０は、形状測定装置３０を備える。より具体的には、ロボット制御装置５０は、形状測定装置３０が備える各機能部を備える。
【０１０３】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本のアーム（腕）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上のアーム（例えば、２本以上のアームＡ）を備えるロボットである。なお、複腕ロボットのうち、２本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本のアームを備える双腕ロボットであってもよく、３本以上のアーム（例えば、３本以上のアームＡ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボットや、円筒型ロボット等の他のロボットであってもよい。
【０１０４】
アームＡは、エンドエフェクターＥと、マニピュレーターＭを備える。
エンドエフェクターＥは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターＥは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【０１０５】
エンドエフェクターＥは、ケーブルによってロボット制御装置５０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置５０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置５０と接続される構成であってもよい。
【０１０６】
マニピュレーターＭは、６つの関節を備える。また、当該６つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備えるアームＡは、６軸垂直多関節型のアームである。アームＡは、支持台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える６つの関節それぞれのアクチュエーターとによる連携した動作によって６軸の自由度の動作を行う。なお、アームＡは、５軸以下の自由度で動作する構成であってもよく、７軸以上の自由度で動作する構成であってもよい。
【０１０７】
マニピュレーターＭが備える６つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置５０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置５０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、マニピュレーターＭが備える６つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置５０と接続される構成であってもよい。
【０１０８】
ロボット制御装置５０は、この一例において、ロボットを制御する装置である。ロボット制御装置５０は、予め入力された動作プログラムに基づいて制御信号を生成する。ロボット制御装置５０は、生成した制御信号をロボット２０に送信し、ロボット２０に所定の作業を行わせる。所定の作業は、この一例において、ロボット２０がアームＡを動作させ、作業台ＴＢの上面に載置された対象物Ｏを把持し、把持した対象物Ｏを図示しない給材領域に配置する作業である。なお、所定の作業は、これに代えて、他の作業であってもよい。
【０１０９】
ロボット制御装置５０は、所定の作業において、撮像部１０により対象物Ｏを含む範囲を撮像し、撮像した撮像画像に基づいて対象物Ｏの位置及び姿勢を算出する。この際、ロボット制御装置５０は、当該撮像画像に含まれる対象物Ｏの表面の三次元形状を表す対象物点群を生成する。ロボット制御装置５０は、生成した対象物点群と、対象物モデルとに基づいて対象物Ｏの位置及び姿勢を算出する。
【０１１０】
ここで、ロボット制御装置５０は、所定の作業を行う前に、この対象物モデルを予め生成する。すなわち、ロボット制御装置５０は、撮像部１０が前述の撮像範囲を撮像した撮像画像を撮像部１０から取得する。ロボット制御装置５０は、取得した撮像画像に含まれる対象物Ｏの表面の三次元形状を測定する。ロボット制御装置５０は、測定した当該三次元形状に基づいて対象物点群を生成する。ロボット制御装置５０は、このような対象物点群を、互いに異なる撮像方向から対象物Ｏが撮像された複数の撮像画像のそれぞれに基づいて生成する。ロボット制御装置５０は、生成した複数の対象物点群に基づいて、対象物モデルを生成する。ロボット制御装置５０が撮像部１０から取得した撮像画像に基づいて対象物モデルを生成する処理は、実施形態において説明した処理であって形状測定装置３０が対象物モデルを生成するための処理の説明においてワールド座標系ＷＣをロボット座標系ＲＣに読み替えた場合の処理と同様の処理であるため説明を省略する。
【０１１１】
このように、ロボット制御装置５０は、実施形態において説明した形状測定装置３０を備え、形状測定装置３０が位置合わせした第１点群及び第２点群に基づいて、対象物Ｏの位置及び姿勢を算出し、算出した対象物Ｏの位置及び姿勢に基づいてロボット２０に所定の作業を行わせる。これにより、ロボット制御装置５０は、ロボット２０に所定の作業を行わせる準備に要する時間を短縮することができる。
【０１１２】
なお、ロボットシステム２において、ロボット制御装置５０と形状測定装置３０とは、別体であってもよい。この場合、ロボット制御装置５０は、形状測定装置３０から形状測定装置３０が生成した対象物モデルを取得し、取得した対象物モデルに基づいてロボット２０に所定の作業を行わせる。
【０１１３】
以上のように、形状測定装置３０は、対象物（この一例において、対象物Ｏ）が第１撮像方向から撮像された第１撮像画像に応じた第１点群と、対象物が第１撮像方向と異なる第２撮像方向から撮像された第２撮像画像に応じた第２点群とに基づいて、第１点群の少なくとも一部である第１部分点群に対応する第２部分点群を前記第２点群から検出し、第１部分点群と第２部分点群とに基づいて第１点群と第２点群との位置合わせを行う。これにより、形状測定装置は、専用装置を用いることなく対象物の全周モデル（この一例において、対象物モデル）を容易に生成することができる。
【０１１４】
また、形状測定装置３０は、第１点群の中から曲率により面を構成する点群を第１部分点群として検出し、検出した第１部分点群に基づいて第２部分点群を第２点群から検出する。これにより、形状測定装置３０は、第１点群の中から曲率により検出した第１部分点群に基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【０１１５】
また、形状測定装置３０は、第１部分点群に基づく共分散行列の固有値を算出し、算出した当該固有値に基づいて第２部分点群を第２点群から検出する。これにより、形状測定装置３０は、算出した固有値であって第１部分点群に基づく共分散行列の固有値に基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【０１１６】
また、形状測定装置３０は、第２点群の中から曲率により面を構成する１以上の点群（この一例において、仮第２部分点群）を検出し、検出した当該点群のそれぞれに基づく共分散行列の固有値を算出し、算出した当該固有値と、第１部分点群に基づく共分散行列の固有値とに基づいて当該１以上の点群の中から第２部分点群を検出する。これにより、形状測定装置３０は、算出した固有値であって第１部分点群に基づく共分散行列の固有値と、算出した固有値であって第２部分点群に基づく共分散行列の固有値とに基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【０１１７】
また、形状測定装置３０は、第１部分点群を含む領域が分割された分割領域のうち第１部分点群を構成する点を所定数以上含む当該分割領域である１以上の第１分割領域（この一例において、第１キューブ）毎の第１分割領域特徴量（この一例において、第１特徴量）を算出し、第２部分点群を含む領域が分割された分割領域のうち第２部分点群を構成する点を所定数以上含む当該分割領域である１以上の第２分割領域（この一例において、第２キューブ）毎の第２分割領域特徴量（この一例において、第２特徴量）を算出し、算出した当該第１分割領域特徴量及び当該第２分割領域特徴量に基づいて第１点群と第２点群との位置合わせを行う。これにより、形状測定装置３０は、算出した第１分割領域特徴量及び第２分割領域特徴量に基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【０１１８】
また、形状測定装置３０は、第１点群と第２点群との位置合わせを行った後、位置合わせされた第１点群及び第２点群に応じた点群（この一例において、合成点群）を生成する。これにより、形状測定装置３０は、生成した第１点群及び第２点群に応じた点群に基づいて、専用装置を用いることなく対象物の全周モデルを容易に生成することができる。
【０１１９】
また、ロボット制御装置５０は、形状測定装置３０が位置合わせした第１点群及び第２点群に基づいて、対象物の位置及び姿勢を算出し、算出した対象物の位置及び姿勢に基づいてロボット２０に所定の作業を行わせる。これにより、ロボット制御装置５０は、ロボット２０に所定の作業を行わせる準備に要する時間を短縮することができる。
【０１２０】
また、ロボット２０は、ロボット制御装置５０の制御により所定の作業を行う。これにより、ロボット２０は、ロボット制御装置５０により生成された全周モデルに基づいて所定の作業を行うことができる。
【０１２１】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１２２】
また、以上に説明した装置（例えば、形状測定装置３０、ロボット制御装置５０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１２３】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１２４】
１…形状測定システム、２…ロボットシステム、１０…撮像部、２０…ロボット、３０…形状測定装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、５０…ロボット制御装置、３６１…撮像制御部、３６３…画像取得部、３６５…点群生成部、３６７…部分点群検出部、３７７…位置調整部、３７９…判定部、３８１…全周モデル生成部
【図１】
2017219359.tif 000004
【図２】
2017219359.tif 000005
【図３】
2017219359.tif 000006
【図４】
2017219359.tif 000007
【図５】
2017219359.tif 000008
【図６】
2017219359.tif 000009
【図７】
2017219359.tif 000010
【図８】
2017219359.tif 000011
【図９】
2017219359.tif 000012
【図１０】
2017219359.tif 000013
【図１１】
2017219359.tif 000014
【図１２】
2017219359.tif 000015
【図１３】
2017219359.tif 000016
【図１４】
2017219359.tif 000017