(57)【要約】【課題】  計測対象物の３Ｄデータのレジストレーションに要する時間を短縮する。【解決手段】  特定の計測ポイント９０−１で３Ｄセンサ７０が計測対象物８０の３Ｄデータ１１０−１を計測した時点におけるロボット６０の各関節の変位と、特定の計測ポイント９０−１以外の計測ポイント９０−２で３Ｄセンサ７０が計測対象物８０の３Ｄデータ１１０−２を計測した時点におけるロボット６０の各関節の変位とに基づいて、３Ｄデータ１１０−２を３Ｄデータ１１０−１にレジストレーションする。３Ｄデータ１１０−１，１１０−２のレジストレーション誤差が閾値未満になるように、３Ｄデータ１１０−２を３Ｄデータ１１０−１に更にレジストレーションする。同様に、３Ｄデータ１１０−３，１１０−４，…，１１０−Ｎのそれぞれを３Ｄデータ１１０−１にレジストレーションする。【選択図】      図２
2020190551.tif 000002
【特許請求の範囲】
【請求項１】
ロボットに搭載される３Ｄセンサであって、計測対象物の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサと、
前記ロボットの各関節の変位を検出する変位検出装置と、
前記計測対象物に対する前記３Ｄセンサの相対的な位置関係を変えるように前記ロボットの各関節を駆動する駆動装置と、
前記計測対象物に対する前記３Ｄセンサの相対的な位置関係が異なる複数の計測ポイントで前記計測対象物の３Ｄデータを計測するように前記３Ｄセンサを制御するセンサ制御部と、
前記複数の計測ポイントのうち何れか特定の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位と、前記特定の計測ポイント以外の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の３Ｄデータを、前記特定の計測ポイントで計測された前記計測対象物の３Ｄデータにレジストレーションする第１のレジストレーション処理部と、
を備える計測システム。
【請求項２】
請求項１に記載の計測システムであって、
前記特定の計測ポイントで前記ロボットの動作を停止又は減速させることにより、前記３Ｄセンサが前記計測対象物の３Ｄデータを計測するときの前記ロボットの位置及び姿勢と、前記変位検出装置が前記ロボットの各関節の変位を検出するときの前記ロボットの位置及び姿勢とを一致させる同期制御部を更に備え、
前記第１のレジストレーション処理部は、前記ロボットの停止中又は減速中に前記特定の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位と、前記ロボットの動作中に前記特定の計測ポイント以外の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記ロボットの動作中に前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の３Ｄデータを、前記ロボットの停止中又は減速中に前記特定の計測ポイントで計測された前記計測対象物の３Ｄデータにレジストレーションする、計測システム。
【請求項３】
請求項１に記載の計測システムであって、
前記計測対象物に対する前記３Ｄセンサの位置が前記特定の計測ポイントに一致するときの前記ロボットの各関節の変位は、特定の値として既知であり、
前記ロボットの各関節の変位が前記特定の値に一致するときに、前記変位検出装置は、前記計測対象物の３Ｄデータの計測を要求する計測指令を前記３Ｄセンサに出力する、計測システム。
【請求項４】
請求項１に記載の計測システムであって、
前記センサ制御部及び前記第１のレジストレーション処理部は、フィールドバスを通じて前記変位検出装置に接続されている、計測システム。
【請求項５】
請求項２に記載の計測システムであって、
前記特定の計測ポイント以外の何れか一つ以上の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測するタイミングと、前記変位検出装置が前記ロボットの各関節の変位を検出するタイミングとが非同期である、計測システム。
【請求項６】
請求項２に記載の計測システムであって、
前記同期制御部が前記ロボットの動作を停止又は減速させる回数は、前記複数の計測ポイントの数より少ない、計測システム。
【請求項７】
請求項２に記載の計測システムであって、
前記特定の計測ポイントは、前記複数の計測ポイントのうち何れか一つの計測ポイントである、計測システム。
【請求項８】
請求項１乃至７のち何れか１項に記載の計測システムであって、
前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の３Ｄデータと、前記特定の計測ポイントで計測された前記計測対象物の３Ｄデータとのレジストレーション誤差が閾値未満になるように、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の３Ｄデータを、前記特定の計測ポイントで計測された前記計測対象物の３Ｄデータにレジストレーションする第２のレジストレーション処理部を更に備える、計測システム。
【請求項９】
請求項８に記載の計測システムであって、
前記特定の計測ポイント以外の各計測ポイントで計測された前記計測対象物の３Ｄデータと前記特定の計測ポイントで計測された前記計測対象物の３Ｄデータとの前記第１のレジストレーション処理部及び前記第２のレジストレーション処理部によるレジストレーションにより得られる前記３Ｄデータを前記３Ｄセンサの座標系から前記ロボットの座標系に変換する座標変換部と、
前記座標変換部により座標変換された前記３Ｄデータに基づいて前記ロボットに対する前記測定対象物の位置及び姿勢を推定する位置姿勢推定部と、
を更に備える計測システム。
【請求項１０】
ロボットの各関節の変位を検出する変位検出装置から出力される前記変位を示す情報を入力するとともに、前記ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置であって、
前記ロボットに搭載される３Ｄセンサであって、計測対象物の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサと、
前記計測対象物に対する前記３Ｄセンサの相対的な位置関係を変えるように前記ロボットの各関節を駆動するための前記駆動指令を生成する駆動制御部と、
前記計測対象物に対する前記３Ｄセンサの相対的な位置関係が異なる複数の計測ポイントで前記計測対象物の３Ｄデータを計測するように前記３Ｄセンサを制御するセンサ制御部と、
前記複数の計測ポイントのうち何れか特定の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位と、前記特定の計測ポイント以外の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の３Ｄデータを、前記特定の計測ポイントで計測された前記計測対象物の３Ｄデータにレジストレーションするレジストレーション処理部と、
を備える計測装置。
【請求項１１】
ロボットに搭載される３Ｄセンサであって、計測対象物の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサを備えるとともに、前記ロボットの各関節の変位を検出する変位検出装置から出力される前記変位を示す情報を入力し、且つ、前記ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置が、
前記計測対象物に対する前記３Ｄセンサの相対的な位置関係を変えるように前記ロボットの各関節を駆動するための前記駆動指令を生成するステップと、
前記計測対象物に対する前記３Ｄセンサの相対的な位置関係が異なる複数の計測ポイントで前記計測対象物の３Ｄデータを計測するように前記３Ｄセンサを制御するステップと、
前記複数の計測ポイントのうち何れか特定の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位と、前記特定の計測ポイント以外の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の３Ｄデータを、前記特定の計測ポイントで計測された前記計測対象物の３Ｄデータにレジストレーションするステップと、
を実行する計測方法。
【請求項１２】
ロボットに搭載される３Ｄセンサであって、計測対象物の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサを備えるとともに、前記ロボットの各関節の変位を検出する変位検出装置から出力される前記変位を示す情報を入力し、且つ、前記ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置に、
前記計測対象物に対する前記３Ｄセンサの相対的な位置関係を変えるように前記ロボットの各関節を駆動するための前記駆動指令を生成するステップと、
前記計測対象物に対する前記３Ｄセンサの相対的な位置関係が異なる複数の計測ポイントで前記計測対象物の３Ｄデータを計測するように前記３Ｄセンサを制御するステップと、
前記複数の計測ポイントのうち何れか特定の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位と、前記特定の計測ポイント以外の計測ポイントで前記３Ｄセンサが前記計測対象物の３Ｄデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の３Ｄデータを、前記特定の計測ポイントで計測された前記計測対象物の３Ｄデータにレジストレーションするステップと、
を実行させる計測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計測システム、計測装置、計測方法、及び計測プログラムに関わる。
【背景技術】
【０００２】
ファクトリーオートメーションの分野では、例えば、距離センサを用いて、ワークの表面の各点の３次元座標を示す点群（ポイントクラウド）を計測し、計測により得られた点群からワークを識別又は検査するための画像処理を行っている。
【０００３】
この種の画像処理に用いられる距離センサは、ロボットビジョンと呼ばれており、その計測方式には、種々の方式がある。例えば、固定された計測ポイントからワークの点群を計測する方式、計測ポイントを移動させながらワークの点群を計測する方式、一つのワークについて一つの計測ポイントから点群を計測する方式、及び一つのワークについて複数の異なる計測ポイントから複数の点群を計測する方式などがある。
【０００４】
固定された計測ポイントからワークの点群を計測する方式や、一つのワークについて一つの点群を計測する方式では、ワークによっては、その形状が複雑であるために、或いは、鏡面加工されたワークの反射面からの反射の影響により、ワークを十分な精度で識別できないことがある。これに対し、複数の異なる計測ポイントのそれぞれからワークの点群を計測することにより、ワークの見え方が異なる複数の異なる点群の計測が可能となり、固定された計測ポイントからワークの点群を計測する方式や、一つのワークについて一つの点群を計測する方式よりも、より高い精度でワークを識別することができる。
【０００５】
この種の画像処理として、例えば、非特許文献１に記載されているようなモデルベースのアルゴリズムが知られている。このアルゴリズムは、複数点の位置や法線の関係を記述したＰＰＦ(Point Pair Feature)と呼ばれる特徴量を用いており、物体の位置及び姿勢の推定処理や、物体の点群のレジストレーション処理に適用可能である。この特徴量は、物体の点群から２点（点対）を選択する組み合わせにおいて算出される４次元特徴量である。４次元は、それぞれ、２点間の距離、２点を結ぶ線分とその各点の法線方向がなす角度、２点の法線間の角度である。ハッシュテーブルにその特徴量をキーとして２点の点番号を格納する。マッチング処理においては、ハッシュテーブルから対応点を検索した後、点対間の剛体変形パラメータを求めることで、物体を識別する。マッチング処理後に、隣り合う計測ポイント間の距離センサの回転量及び移動量が計算され、その計算結果に基づいて、その隣り合う計測ポイントで計測された二つの点群のレジストレーションが行われる。
【０００６】
非特許文献２には、モデルベースの他のアルゴリズムが記載されている。このアルゴリズムは、距離画像センサを用いて計測した距離画像センサ周辺の距離画像に基づいて距離画像センサの位置及び姿勢を推定する。このアルゴリズムでは、隣り合う計測ポイント間の距離画像センサの回転量及び移動量が計算され、その計算結果に基づいて、その隣り合う計測ポイントで計測された二つの距離画像のレジストレーションが行われる。
【０００７】
非特許文献１，２に記載のアルゴリズムを用いたレジストレーションは、精密なレジストレーション（Fine Registration）の前処理として行われる粗いレジストレーション（Coarse Registration）である。
【０００８】
非特許文献３には、物体の複数の点群間の対応点同士の距離を最小化するためのアルゴリズムとして、ＩＣＰ(Iterative Closest Point)を用いることが記載されている。ＩＣＰは、一方の点群を構成する各点に対し、他方の点群における最近接点を探索し、これを仮の対応点とする。このような対応点間の距離を最小化するような剛体変換を推定し、対応点の探索と剛体変換推定とを繰り返すことで、点群間の対応点同士の距離を最小化する。ＩＣＰは、粗いレジストレーションの後処理として行われる精密なレジストレーションである。
【先行技術文献】
【特許文献】
【０００９】
【非特許文献１】Drost, Bertram, et al. "Model globally, match locally: Efficient and robust 3D object recognition."Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on. Ieee, 2010.
【非特許文献２】Newcombe, Richard A., et al. "Kinectfusion: Real-time dense surface mapping and tracking." ISMAR. Vol. 11. No. 2011. 2011.
【非特許文献３】Besl, Paul J., and Neil D. McKay. "Method for registration of 3-D shapes." Sensor Fusion IV: Control Paradigms and Data Structures. Vol. 1611. International Society for Optics and Photonics, 1992.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、非特許文献１，２に記載のレジストレーションのアルゴリズムは、画像処理に多くの計算を要することがあり、また、ロバスト性が低いこともある。また、非特許文献３に記載のＩＣＰは、初期状態の点群間のずれが大きい場合には、対応点の探索と剛体変換推定とを何度も繰り返したり、或いはレジストレーションに失敗したりすることがあり得る。何れの技術も、計算時間が長くなることがあり得るため、生産性が要求されるファクトリーオートメーションの分野においては、実用的に十分でない。
【００１１】
そこで、本発明は、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮できる計測システム、計測装置、計測方法、及び計測プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
上述の課題を解決するため、本発明に関わる計測システムは、ロボットに搭載される３Ｄセンサであって、計測対象物の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサと、ロボットの各関節の変位を検出する変位検出装置と、計測対象物に対する３Ｄセンサの相対的な位置関係を変えるようにロボットの各関節を駆動する駆動装置と、計測対象物に対する３Ｄセンサの相対的な位置関係が異なる複数の計測ポイントで計測対象物の３Ｄデータを計測するように３Ｄセンサを制御するセンサ制御部と、複数の計測ポイントのうち何れか特定の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位と、特定の計測ポイント以外の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物の３Ｄデータを、特定の計測ポイントで計測された計測対象物の３Ｄデータにレジストレーションする第１のレジストレーション処理部と、を備える。斯かる構成によれば、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮することができる。
【００１３】
本発明に関わる計測システムは、特定の計測ポイントでロボットの動作を停止又は減速させることにより、３Ｄセンサが計測対象物の３Ｄデータを計測するときのロボットの位置及び姿勢と、変位検出装置がロボットの各関節の変位を検出するときのロボットの位置及び姿勢とを一致させる同期制御部を更に備えてもよい。第１のレジストレーション処理部は、ロボットの停止中又は減速中に特定の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位と、ロボットの動作中に特定の計測ポイント以外の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位とに基づいて、ロボットの動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物の３Ｄデータを、ロボットの停止中又は減速中に特定の計測ポイントで計測された計測対象物の３Ｄデータにレジストレーションしてもよい。３Ｄセンサが計測対象物の３Ｄデータを計測するときのロボットの位置及び姿勢と、変位検出装置がロボットの各関節の変位を検出するときのロボットの位置及び姿勢とを一致させるために、特定の計測ポイント以外の計測ポイントでロボットの動作を停止又は減速させる必要がないため、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮できる。
【００１４】
計測対象物に対する３Ｄセンサの位置が特定の計測ポイントに一致するときのロボットの各関節の変位は、特定の値として既知でもよく、また、ロボットの各関節の変位が特定の値に一致するときに、変位検出装置は、計測対象物の３Ｄデータの計測を要求する計測指令を３Ｄセンサに出力してもよい。特定の計測ポイントでロボットの動作を停止又は減速させる必要がないため、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮できる。
【００１５】
センサ制御部及び第１のレジストレーション処理部は、フィールドバスを通じて変位検出装置に接続されてもよい。フィールドバスを通じて、各部（センサ制御部、第１のレジストレーション処理部、及び変位検出装置）の動作は、短い時間単位で同期しているため、特定の計測ポイントでロボットの動作を停止又は減速させる必要がなく、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮できる。
【００１６】
特定の計測ポイント以外の何れか一つ以上の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測するタイミングと、変位検出装置がロボットの各関節の変位を検出するタイミングとは、非同期でもよい。これにより、特定の計測ポイント以外の何れか一つ以上の計測ポイントでの３Ｄセンサの動作速度を高めることができるため、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮できる。
【００１７】
同期制御部がロボットの動作を停止又は減速させる回数は、複数の計測ポイントの数より少なくてもよい。これにより、３Ｄセンサが計測対象物の３Ｄデータを計測するときのロボットの位置及び姿勢と、変位検出装置がロボットの各関節の変位を検出するときのロボットの位置及び姿勢とを一致させるために、ロボットの動作を停止させる回数は、複数の計測ポイントの数より少なくてよいため、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮できる。
【００１８】
特定の計測ポイントは、複数の計測ポイントのうち何れか一つの計測ポイントでもよい。これにより、３Ｄセンサが計測対象物の３Ｄデータを計測するときのロボットの位置及び姿勢と、変位検出装置がロボットの各関節の変位を検出するときのロボットの位置及び姿勢とを一致させるために、ロボットの動作を停止させる回数は１回でよいため、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮できる。
【００１９】
本発明に関わる計測システムは、特定の計測ポイント以外の計測ポイントで計測された計測対象物の３Ｄデータと、特定の計測ポイントで計測された計測対象物の３Ｄデータとのレジストレーション誤差が閾値未満になるように、特定の計測ポイント以外の計測ポイントで計測された計測対象物の３Ｄデータを、特定の計測ポイントで計測された計測対象物の３Ｄデータにレジストレーションする第２のレジストレーション処理部を更に備えてもよい。第２のレジストレーション処理部による精密なレジストレーションの前処理として、３Ｄデータのそれぞれが計測された時点で変位検出装置が検出する各関節の変位に基づく、第１のレジストレーション処理部による大まかなレジストレーションを行うことにより、レジストレーションに要する全体の処理時間を短縮できる。
【００２０】
本発明に関わる計測システムは、特定の計測ポイント以外の各計測ポイントで計測された計測対象物の３Ｄデータと特定の計測ポイントで計測された計測対象物の３Ｄデータとの第１のレジストレーション処理部及び第２のレジストレーション処理部によるレジストレーションにより得られる３Ｄデータを３Ｄセンサの座標系からロボットの座標系に変換する座標変換部と、座標変換部により座標変換された３Ｄデータに基づいてロボットに対する測定対象物の位置及び姿勢を推定する位置姿勢推定部とを更に備えてもよい。第１のレジストレーション処理部及び第２のレジストレーション処理部によるレジストレーションにより得られる３Ｄデータを用いることで、ロボットに対する計測対象物の位置及び姿勢の推定に要する時間を短縮できる。
【００２１】
本発明に関わる計測装置は、ロボットの各関節の変位を検出する変位検出装置から出力される変位を示す情報を入力するとともに、ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置であって、ロボットに搭載される３Ｄセンサであって、計測対象物の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサと、計測対象物に対する３Ｄセンサの相対的な位置関係を変えるようにロボットの各関節を駆動するための駆動指令を生成する駆動制御部と、計測対象物に対する３Ｄセンサの相対的な位置関係が異なる複数の計測ポイントで計測対象物の３Ｄデータを計測するように３Ｄセンサを制御するセンサ制御部と、複数の計測ポイントのうち何れか特定の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位と、特定の計測ポイント以外の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物の３Ｄデータを、特定の計測ポイントで計測された計測対象物の３Ｄデータにレジストレーションするレジストレーション処理部と、を備える。斯かる構成によれば、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮することができる。
【００２２】
本発明に関わる計測方法は、ロボットに搭載される３Ｄセンサであって、計測対象物の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサを備えるとともに、ロボットの各関節の変位を検出する変位検出装置から出力される変位を示す情報を入力し、且つ、ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置が、計測対象物に対する３Ｄセンサの相対的な位置関係を変えるようにロボットの各関節を駆動するための駆動指令を生成するステップと、計測対象物に対する３Ｄセンサの相対的な位置関係が異なる複数の計測ポイントで計測対象物の３Ｄデータを計測するように３Ｄセンサを制御するステップと、複数の計測ポイントのうち何れか特定の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位と、特定の計測ポイント以外の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物の３Ｄデータを、特定の計測ポイントで計測された計測対象物の３Ｄデータにレジストレーションするステップと、を実行する。この方法によれば、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮することができる。
【００２３】
本発明に関わる計測プログラムは、ロボットに搭載される３Ｄセンサであって、計測対象物の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサを備えるとともに、ロボットの各関節の変位を検出する変位検出装置から出力される変位を示す情報を入力し、且つ、ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置に、計測対象物に対する３Ｄセンサの相対的な位置関係を変えるようにロボットの各関節を駆動するための駆動指令を生成するステップと、計測対象物に対する３Ｄセンサの相対的な位置関係が異なる複数の計測ポイントで計測対象物の３Ｄデータを計測するように３Ｄセンサを制御するステップと、複数の計測ポイントのうち何れか特定の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位と、特定の計測ポイント以外の計測ポイントで３Ｄセンサが計測対象物の３Ｄデータを計測した時点におけるロボットの各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物の３Ｄデータを、特定の計測ポイントで計測された計測対象物の３Ｄデータにレジストレーションするステップと、を実行させる。このプログラムによれば、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮することができる。
【発明の効果】
【００２４】
本発明によれば、計測対象物の３Ｄデータのレジストレーションに要する時間を短縮できる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に関わる計測システムの概略構成の一例を示す説明図である。
【図２】本発明の実施形態に関わる３Ｄデータの処理の流れの一例を示す説明図である。
【図３】本発明の実施形態に関わるレジストレーション処理の一例を示す説明図である。
【図４】本発明の実施形態に関わる計測システム及び計測装置のハードウェア構成の一例を示す説明図である。
【図５】本発明の実施形態に関わるコンピュータシステムの機能の一例を示すブロック図である。
【図６】本発明の実施形態に関わる計測方法の処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２６】
［発明の実施形態１］
以下、本発明の一側面に関わる実施形態を図面に基づいて説明する。本発明の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更又は改良され得るととともに、本発明には、その等価物も含まれる。なお、同一符号は、同一の構成要素を示すものとし、重複する説明は省略する。
【００２７】
［適用例］
図１は本実施形態に関わる計測システム１００の概略構成の一例を示す説明図である。計測システム１００は、ロボット６０と、ロボット６０に搭載された３Ｄセンサ７０と、ロボット６０の駆動及び３Ｄセンサ７０による計測対象物８０の３Ｄデータの計測を制御するコンピュータシステム１０と、コンピュータシステム１０からの指令に応答してロボット６０の動作を制御するロボットコントローラ５０とを備える。
【００２８】
３Ｄデータは、計測対象物８０の表面の各点の３次元座標を示す。この種の３Ｄデータとして、例えば、点群又は距離画像を用いることができる。点群は、例えば、ｘｙｚ直交座標系の三次元座標値（ｘ，ｙ，ｚ）を有する点の集合として定義される。距離画像は、例えば、ｕｖ直交座標系の２次元の画像座標（ｕ，ｖ）に対応する距離ｄを画素値とする画素の集合として定義される。ここで、ｄは、３Ｄセンサ７０と計測対象物８０との間の距離である。
【００２９】
３Ｄセンサ７０は、点群を計測する距離センサでもよく、或いは、距離センサと２Ｄセンサとを組み合わせて距離画像を取得する距離画像センサでもよい。距離センサは、奥行情報としての距離ｄを計測するセンサであり、その計測方式として、例えば、三角法方式、飛行時間方式（タイム・オブ・フライト方式）、又は位相差方式などを用いることができる。２Ｄセンサは、２次元の画像を撮影するイメージセンサである。２次元の画像は、距離ｄを画素値としない点において距離画像とは異なる。距離画像センサは、例えば、２Ｄセンサの撮影位置を変えながら計測対象物８０の複数の２次元の画像を撮影し、ステレオ立体視の画像処理により、距離ｄを画素値とする距離画像を取得するカメラでもよい。或いは、距離画像センサは、計測対象物８０を複数の異なる方向から同時に撮影することにより、距離ｄを画素値とする距離画像を取得するステレオカメラでもよい。
【００３０】
ロボット６０は、例えば、計測対象物８０を操作（例えば、把持、吸着、移動、組み立て、又は挿入など）するためのロボットハンド６３を備える多関節ロボット（例えば、垂直多関節ロボット、水平多関節ロボット）である。ロボット６０は、関節を駆動するための駆動装置６１と、関節の変位（角度変位）を検出する変位検出装置６２とを備えている。駆動装置６１は、例えば、ロボットコントローラ５０からの駆動指令に応答して駆動するサーボモータである。変位検出装置６２は、例えば、サーボモータの回転角を検出するエンコーダ（例えば、インクリメンタル型エンコーダ、又はアブソリュート型エンコーダなど）である。ロボット６０の各関節には、駆動装置６１と変位検出装置６２とが組み込まれている。
【００３１】
ロボット６０は、自律的に動作するマニピュレータとして動作し、例えば、計測対象物８０のピッキング、組み立て、搬送、塗装、検査、研磨、又は洗浄などの様々な用途に用いることができる。計測対象物８０は、例えば、仕掛け品又は部品などのワークである。ワークの例として、自動車のパワートレイン系（例えば、エンジン、又はトランスミッションなど）の機械部品、又は電装系の電子部品を挙げることができる。
【００３２】
計測システム１００は、計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節の駆動を制御する。そして、計測システム１００は、計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，９０−３，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するとともに、各３Ｄデータが計測された時点におけるロボット６０の各関節の変位を検出する。ここで、Ｎは、２以上の整数である。
【００３３】
計測システム１００は、複数の計測ポイント９０−１，９０−２，９０−３，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を停止させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させる。特定の計測ポイントでは、計測システム１００は、ロボット６０の停止中に計測対象物８０の３Ｄデータを計測するとともに、各３Ｄデータが計測された時点におけるロボット６０の各関節の変位を検出する。特定の計測ポイントでは、ロボット６０の動作は停止しているため、特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するタイミングと、変位検出装置６２がロボット６０の各関節の変位を検出するタイミングとが同期していなくても、特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは一致している。特定の計測ポイント以外の各計測ポイントでは、計測システム１００は、ロボット６０の動作中に計測対象物８０の３Ｄデータを計測するとともに、各３Ｄデータが計測された時点におけるロボット６０の各関節の変位を検出する。特定の計測ポイント以外の計測ポイントでは、ロボット６０は動作しているため、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するタイミングと、変位検出装置６２がロボット６０の各関節の変位を検出するタイミングとは、必ずしも、同期しているとは限らず、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは、必ずしも、一致しているとは限らない。
【００３４】
ロボット６０の動作を停止させる特定の計測ポイントの数は、１以上Ｎ−１以下の正数であればよい。説明の簡略化のため、以下の説明においては、計測ポイント９０−１を特定の計測ポイントとする場合を例示する。この場合、計測ポイント９０−１でロボット６０の停止中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは一致している。一方、計測ポイント９０−２，９０−３，…，９０−Ｎのそれぞれでロボット６０の動作中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは、必ずしも、一致しているとは限らない。
【００３５】
なお、図１において、符号２０１は、ロボット６０を基準とする座標系を示し、符号２０２は、ロボットハンド６３を基準とする座標系を示し、符号２０３は、３Ｄセンサ７０を基準とする座標系を示す。座標系２０１，２０２，２０３を、それぞれ、ロボット座標系、ツール座標系、及びセンサ座標系と呼ぶ。
【００３６】
図２は本発明の実施形態に関わる３Ｄデータの処理の流れの一例を示す説明図である。３Ｄデータの処理は、レジストレーション処理３００と、座標変換処理４００とを備える。符号１１０−１は、特定の計測ポイント９０−１でロボット６０の停止中に計測された計測対象物８０の３Ｄデータを示す。符号１１０−２，１１０−３，…，１１０−Ｎは、それぞれ、計測ポイント９０−２，９０−３，…，９０−Ｎでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを示す。
【００３７】
特定の計測ポイント９０−１では、３Ｄセンサ７０が計測対象物８０の３Ｄデータ１１０−１を計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは、一致しているため、３Ｄデータ１１０−１が計測された時点のロボット６０の正確な位置及び姿勢は、その時点で変位検出装置６２が検出する各関節の変位から計算により求めることができる。一方、計測ポイント９０−２，９０−３，…，９０−Ｎのそれぞれでは、３Ｄセンサ７０が計測対象物８０の３Ｄデータ１１０−２，１１０−３，…，１１０−Ｎを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは、必ずしも一致しているとは限らないが、３Ｄデータ１１０−２，１１０−３，…，１１０−Ｎが計測された時点のロボット６０の凡その位置及び姿勢は、その時点で変位検出装置６２が検出する各関節の変位から計算により求めることができる。
【００３８】
ここで、ロボット６０に対する３Ｄセンサ７０の相対的な位置関係は、一定であり、且つ、既知であるから、計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係の変化は、計測対象物８０に対するロボット６０の相対的な位置関係の変化から計算により求めることができる。例えば、計測ポイント９０−１でロボット６０の停止中に計測された３Ｄデータ１１０−１と、計測ポイント９０−２でロボット６０の動作中に計測された３Ｄデータ１１０−２とに着目すると、これらの３Ｄデータ１１０−１，１１０−２のそれぞれが計測された時点で変位検出装置６２が検出する各関節の変位の変化（ロボット６０の位置及び姿勢の変化）から、計測対象物８０に対する二つの計測ポイント９０−１，９０−２の相対的な位置関係の凡その変化を計算により求めることができる。計測システム１００は、このような計算により求まる二つの計測ポイント９０−１，９０−２の相対的な位置関係の凡その変化に基づいて、３Ｄデータ１１０−２を３Ｄデータ１１０−１にレジストレーションする。
【００３９】
レジストレーションとは、一方の３Ｄデータの位置及び姿勢を他方の３Ｄデータの位置及び姿勢に合わせるための座標変換を意味する。計測ポイント９０−２で３Ｄセンサ７０が計測対象物８０の３Ｄデータ１１０−２を計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは、必ずしも、一致しているとは限らないため、３Ｄデータ１１０−１，１１０−２のそれぞれが計測された時点で変位検出装置６２が検出する各関節の変位に基づいて、３Ｄデータ１１０−２を３Ｄデータ１１０−１にレジストレーションすると、レジストレーション誤差が生じ得る。そこで、計測システム１００は、３Ｄデータ１１０−１，１１０−２のレジストレーション誤差が閾値未満となるように、例えば、ＩＣＰ(Iterative Closest Point)などのアルゴリズムを用いて、３Ｄデータ１１０−２を３Ｄデータ１１０−１にレジストレーションする。このように、３Ｄデータ１１０−１，１１０−２のそれぞれが計測された時点で変位検出装置６２が検出する各関節の変位の変化から推定される計測ポイント９０−１，９０−２の相対的な位置関係の変化と、計測ポイント９０−１，９０−２の相対的な位置関係の実際の変化との誤差によりレジストレーション誤差が生じたとしても、ＩＣＰなどのアルゴリズムを用いて、このレジストレーション誤差を閾値未満に低減することができる。このため、ＩＣＰなどのアルゴリズムを用いた精密なレジストレーションの前処理として、３Ｄデータ１１０−１，１１０−２のそれぞれが計測された時点で変位検出装置６２が検出する各関節の変位に基づく大まかなレジストレーションを行うことにより、レジストレーションに要する全体の処理時間を短縮できる。
【００４０】
上述の処理を経て、計測システム１００は、３Ｄデータ１１０−２を３Ｄデータ１１０−１にレジストレーションする。同様にして、計測システム１００は、３Ｄデータ１１０−３，１１０−４，…，１１０−Ｎのそれぞれを３Ｄデータ１１０−１にレジストレーションする。特定の計測ポイントの数が１つである場合、レジストレーション処理３００は、（Ｎ−１）個の３Ｄデータ１１０−２，１１０−３，…，１１０−Ｎのそれぞれを３Ｄデータ１１０−１にレジストレーションする処理である。符号１１０−Ｓは、レジストレーション処理３００を通じて得られる３Ｄデータを示す。３Ｄデータ１１０−Ｓは、センサ座標系２０３における計測対象物８０の３Ｄデータである。
【００４１】
計測システム１００は、センサ座標系２０３における計測対象物８０の３Ｄデータ１１０−Ｓを、公知の変換行列を用いて、ツール座標系２０２、ロボット座標系２０１、又はその他の座標系における計測対象物８０の３Ｄデータに変換することができる。座標変換処理４００は、センサ座標系２０３における計測対象物８０の３Ｄデータ１１０−Ｓを、特定の座標系（ツール座標系２０２、ロボット座標系２０３、又はその他の座標系）に座標変換する処理である。符号１１０−Ｒは、ロボット座標系２０１における計測対象物８０の３Ｄデータを示しており、図２に示す例では、座標変換処理４００により、センサ座標系２０３における計測対象物８０の３Ｄデータ１１０−Ｓは、ロボット座標系２０１における計測対象物８０の３Ｄデータ１１０−Ｒに変換されている。
【００４２】
計測システム１００は、ロボット座標系２０１における計測対象物８０の３Ｄデータ１１０−Ｒに基づいてロボット６０に対する計測対象物８０の位置及び姿勢を計算し、ロボット６０が計測対象物８０を操作するための動作目標を求めることができる。例えば、ロボット６０が計測対象物８０を把持する操作においては、ロボット６０の動作目標は、ロボットハンド６３が計測対象物８０を把持するために要求されるロボット６０の目標位置及び目標姿勢である。
【００４３】
なお、計測対象物８０の３Ｄデータの処理は、必ずしも、座標変換処理４００を要するものではなく、座標変換処理４００に替えて、計測システム１００の目的に応じた処理を用いてもよい。
【００４４】
また、上述の説明では、説明を簡略化するため、計測ポイント９０−１を特定の計測ポイントとする例を挙げたが、例えば、２つの計測ポイント９０−１，９０−３を特定の計測ポイントとしてもよい。この場合、例えば、３Ｄデータ１１０−４を３Ｄデータ１１０−１にレジストレーションする処理に替えて、３Ｄデータ１１０−４を３Ｄデータ１１０−３にレジストレーションし、その結果得られる３Ｄデータを３Ｄデータ１１０−１にレジストレーションする処理を用いてもよい。このように、特定の計測ポイント以外の何れかの計測ポイントでロボット６０の動作中に計測された３Ｄデータを、ある特定の計測ポイントでロボット６０の停止中に計測された３Ｄデータにレジストレーションし、その結果得られる３Ｄデータを、他の特定の計測ポイントでロボット６０の停止中に計測された３Ｄデータに更にレジストレーションしてもよい。
【００４５】
図３は本発明の実施形態に関わるレジストレーション処理３００の一例を示す説明図である。
図３（Ａ）において、符号１１０−１は、特定の計測ポイント９０−１でロボット６０の停止中に計測された計測対象物８０の３Ｄデータを示す。符号１１０−２は、計測ポイント９０−２でロボット６０の動作中に計測された計測対象物８０の３Ｄデータを示す。
【００４６】
図３（Ｂ）に示すように、３Ｄデータ１１０−１，１１０−２のそれぞれが計測された時点で変位検出装置６２が検出する各関節の変位に基づいて、３Ｄデータ１１０−２を３Ｄデータ１１０−１にレジストレーションする処理が行われる。符号１１０−１Ａは、３Ｄデータ１１０−１の中のある一点を示し、符号１１０−２Ａは、３Ｄデータ１１０−２の中の点１１０−１Ａに対応する点を示す。二つの点１１０−１Ａ，１１０−２Ａは、対応する関係にあるため、これらを対応点と呼ぶ。対応点１１０−１Ａ，１１０−２Ａ間の距離ΔＥは、レジストレーション誤差に相当する。
【００４７】
図３（Ｃ）に示すように、ＩＣＰなどのアルゴリズムを用いて、レジストレーション誤差ΔＥが閾値未満となるように、３Ｄデータ１１０−２を３Ｄデータ１１０−１にレジストレーションする処理が行われる。閾値は、レジストレーション処理３００の精度が実用上十分な精度になる値でよい。レジストレーション誤差ΔＥは、全く位置合わせがされていないと仮定したときの３Ｄデータ１１０−１，１１０−２のレジストレーション誤差よりも小さいと考えられるため、ＩＣＰによる対応点１１０−１Ａ，１１０−２Ａの探索及び剛体変換推定の処理回数を低減し、結果として、レジストレーション処理に要する時間を短縮できる。
【００４８】
非特許文献１，２に記載のレジストレーションのアルゴリズムは、画像処理に多くの計算を要するため、計算時間が長くなることがある。これに対し、本実施形態に関わるレジストレーション処理３００によれば、画像処理に要する計算が少ないため、短時間で計算を終えることができる。また、非特許文献３に記載のＩＣＰは、初期状態の３Ｄデータ間の誤差が大きい場合には、対応点の探索と剛体変換推定とを何度も繰り返す結果、計算時間が長くなったり、或いは、レジストレーションに失敗したりすることがある。これに対し、本実施形態に関わるレジストレーション処理３００によれば、ＩＣＰによる対応点の探索及び剛体変換推定の処理回数を低減し、短時間で計算を終えることができる。また、レジストレーションのロバスト性を高めることができる。
【００４９】
以上の理由により、本実施形態に関わるレジストレーション処理３００は、生産性が要求されるファクトリーオートメーションの分野において有用である。
【００５０】
［ハードウェア構成］
次に、図４を参照しながら、本発明の実施形態に関わる計測システム１００及び計測装置２００のハードウェア構成の一例について説明する。
【００５１】
計測装置２００は、コンピュータシステム１０と、３Ｄセンサ７０とを備える。計測システム１００は、計測装置２００と、ロボット６０と、ロボットコントローラ５０とを備える。コンピュータシステム１０は、演算装置２０と、記憶装置３０と、入出力インタフェース４０とを備える。演算装置２０は、ＣＰＵ（Central Processing Unit）２１と、ＲＯＭ（Read Only Memory）２２と、ＲＡＭ（Random Access Memory）２３とを備えている。
【００５２】
記憶装置３０は、ディスク媒体（例えば、磁気記録媒体又は光磁気記録媒体）又は半導体メモリ（例えば、揮発性メモリ又は不揮発性メモリ）などのコンピュータ読み取り可能な記録媒体である。このような記録媒体は、例えば、非一過性の記録媒体と呼ぶこともできる。記憶装置３０は、本発明の実施形態に関わる計測方法を実行するための計測プログラム３１を格納している。計測プログラム３１は、記憶装置３０からＲＡＭ２３に読み込まれ、ＣＰＵ２１によって解釈及び実行される。計測プログラム３１は、ロボット６０の動作を制御するメインプログラムとしても機能する。
【００５３】
演算装置２０は、入出力インタフェース４０を通じて、変位検出装置６２から出力されるロボット６０の各関節の変位を示す情報を入力するとともに、ロボット６０の各関節を駆動する駆動装置６１に駆動指令を出力する。
【００５４】
ロボットコントローラ５０は、入出力インタフェース４０を通じて、演算装置２０から出力される駆動指令に応答して、ロボット６０の各関節を駆動する駆動装置６１の駆動（例えば、サーボモータの回転数及び回転トルク）を制御する。
【００５５】
３Ｄセンサ７０は、入出力インタフェース４０を通じて、演算装置２０から出力される計測指令に応答して、計測対象物８０の３Ｄデータを計測する。
【００５６】
演算装置２０は、入出力インタフェース４０を通じて、３Ｄセンサ７０によって計測された計測対象物８０の３Ｄデータと、変位検出装置６２から出力されるロボット６０の各関節の変位を示す情報とを入力し、３Ｄセンサ７０による計測対象物８０の３Ｄデータの計測を指令する計測指令と、駆動装置６１の駆動を制御する駆動指令とを出力する。このとき、ＲＡＭ２３は、３Ｄセンサ７０によって計測された計測対象物８０の３Ｄデータと、変位検出装置６２から出力されるロボット６０の各関節の変位を示す情報とを一時的に記憶し、演算装置２０によるレジストレーション処理３００を行うためのワークエリアとして機能する。
【００５７】
なお、図４では、駆動装置６１及び変位検出装置６２がそれぞれ一つ図示されている例が示されているが、駆動装置６１及び変位検出装置６２のそれぞれの個数は、関節の個数と同数でよい。
【００５８】
［機能構成］
図５は本発明の実施形態に関わるコンピュータシステム１０の機能の一例を示すブロック図である。コンピュータシステム１０のハードウェア資源と計測プログラム３１との協働により、駆動制御部１１、センサ制御部１２、同期制御部１３、レジストレーション処理部１４、レジストレーション処理部１５、座標変換部１６、位置姿勢推定部１７、及び動作目標算出部１８としての機能が実現される。
【００５９】
駆動制御部１１は、計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動するための駆動指令を生成する。
【００６０】
センサ制御部１２は、計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するように３Ｄセンサ７０を制御する。
【００６１】
同期制御部１３は、複数の計測ポイント９０−１，９０−２，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を停止させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢と一致させる。特定の計測ポイント以外の何れか一つ以上の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは、一致していてもよく、或いは不一致でもよい。３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させるために、特定の計測ポイント以外でロボット６０の動作を停止させる必要がなく、計測対象物８０の３Ｄデータのレジストレーションに要する時間を短縮できる。特に、特定の計測ポイントの数が１つである場合、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させるために、ロボット６０の動作を停止させる回数は１回でよいため、計測対象物８０の３Ｄデータのレジストレーションに要する時間を短縮できる。
【００６２】
レジストレーション処理部１４は、特定の計測ポイントでロボット６０の停止中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の停止中に計測された計測対象物８０の３Ｄデータにレジストレーションする。
【００６３】
レジストレーション処理部１５は、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータと、特定の計測ポイントでロボット６０の停止中に計測された計測対象物８０の３Ｄデータとのレジストレーション誤差が閾値未満になるように、例えば、ＩＣＰなどのアルゴリズムを用いて、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の停止中に計測された計測対象物８０の３Ｄデータにレジストレーションする。
【００６４】
座標変換部１６は、特定の計測ポイント以外の各計測ポイントで計測された計測対象物８０の３Ｄデータと特定の計測ポイントで計測された計測対象物８０の３Ｄデータとのレジストレーション処理部１４，１５によるレジストレーション処理３００により得られる３Ｄデータ１１０−Ｓを３Ｄセンサ７０の座標系２０３からロボット６０の座標系２０１に変換するための座標変換処理４００を行う。
【００６５】
位置姿勢推定部１７は、座標変換部１６により座標変換された３Ｄデータ１１０−Ｒに基づいてロボット６０に対する測定対象物８０の位置及び姿勢を推定する。
【００６６】
動作目標算出部１８は、ロボット６０に対する測定対象物８０の位置及び姿勢に基づいて、ロボット６０が計測対象物８０を操作するための動作目標を算出する。動作目標は、ロボット６０が計測対象物８０を操作するために要求されるロボット６０の目標位置及び目標姿勢である。
【００６７】
なお、上述の各部（駆動制御部１１、センサ制御部１２、同期制御部１３、レジストレーション処理部１４、レジストレーション処理部１５、座標変換部１６、位置姿勢推定部１７、及び動作目標算出部１８）は、必ずしも、コンピュータシステム１０のハードウェア資源と計測プログラム３１との協働によって実現される必要はなく、例えば、専用のハードウェア資源（例えば、特定用途向け集積回路（ＡＳＩＣ）、又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）など）を用いて実現されてもよい。
【００６８】
なお、座標変換部１６、位置姿勢推定部１７、及び動作目標算出部１８の各機能は必須ではないため、コンピュータシステム１０は、これらの機能に替えて、目的に応じた他の機能を備えてもよい。
【００６９】
[計測方法]
図６は、本発明の実施形態に関わる計測方法の処理の流れの一例を示すフローチャートである。この計測方法は、演算装置２０による計測プログラム３１の実行を通じて処理される。
【００７０】
ステップ６０１において、駆動制御部１１は、計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動するための駆動指令を生成し、生成された駆動指令をロボットコントローラ５０に出力する。ロボット６０の動作中又は停止中に、センサ制御部１２は、計測対象物８０の３Ｄデータを計測することを要求する計測指令を生成し、生成された計測指令を３Ｄセンサ７０に出力する。３Ｄデータの計測指令は、特定の計測ポイントでロボット６０が停止している最中に３Ｄセンサ７０に出力される。また、３Ｄデータの計測指令は、特定の計測ポイント以外の各計測ポイントでロボット６０が動作している最中に３Ｄセンサ７０に出力される。
【００７１】
ステップ６０２において、３Ｄセンサ７０は、センサ制御部１２からの計測指令に応答して計測対象物８０の３Ｄデータを計測し、同時に、変位検出装置６２は、計測対象物８０の３Ｄデータが計測された時点におけるロボット６０の各関節の変位を検出する。３Ｄセンサ７０により計測された計測対象物８０の３Ｄデータは、３Ｄセンサ７０から入出力インタフェース４０を通じて、ＲＡＭ２３に転送される。同様に、変位検出装置６２により検出されたロボット６０の各関節の変位を示す情報は、変位検出装置６２からロボットコントローラ５０及び入出力インタフェース４０を通じて、ＲＡＭ２３に転送される。
【００７２】
ステップ６０３において、レジストレーション処理部１４は、ＲＡＭ２３に格納されている計測情報（計測対象物８０の３Ｄデータ及びロボット６０の各関節の変位を示す情報）を読み取り、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の停止中に計測された計測対象物８０の３Ｄデータにレジストレーションする。レジストレーション処理部１５は、レジストレーション処理部１４によるレジストレーション誤差が閾値未満になるように、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の停止中に計測された計測対象物８０の３Ｄデータにレジストレーションする。ステップ６０３の処理内容は、レジストレーション処理３００と同じである。
【００７３】
ステップ６０４において、座標変換部１６は、ステップ６０３のレジストレーション処理により得られる３Ｄデータ１１０−Ｓを３Ｄセンサ７０の座標系２０３からロボット６０の座標系２０１に変換する。ステップ６０４の処理内容は、座標変換処理４００と同じである。
【００７４】
ステップ６０５において、位置姿勢推定部１７は、ステップ６０４により座標変換された３Ｄデータ１１０−Ｒに基づいてロボット６０に対する測定対象物８０の位置及び姿勢を推定する。
【００７５】
ステップ６０６において、動作目標算出部１８は、ステップ６０５で推定された測定対象物８０の位置及び姿勢に基づいて、ロボット６０が計測対象物８０を操作するための動作目標（目標位置及び目標姿勢）を算出する。
【００７６】
ステップ６０７において、駆動制御部１１は、ロボット６０の位置及び姿勢が、ステップ６０６で算出された目標位置及び目標姿勢に一致するように、ロボット６０の各関節を駆動するための駆動指令を生成し、生成された駆動指令をロボットコントローラ５０に出力する。
【００７７】
なお、ステップ６０４〜６０７の処理は、本発明の実施形態に関わる計測方法に必須ではないため、本発明の実施形態に関わる計測方法は、これらの処理に替えて、計測システム１００の計測目的に応じた他の処理を含んでもよい。また、ステップ６０４，６０５の順序を入れ替えてもよい。例えば、センサ座標系２０３において、ロボット６０に対する測定対象物８０の位置及び姿勢を推定し、次に、ロボット６０に対する測定対象物８０の位置及び姿勢をセンサ座標系２０３からロボット座標系２０１に変換してもよい。
【００７８】
特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させるための手法として、コンピュータシステム１０によるソフトウェア的な手法と、ロボットコントローラ５０によるハードウェア的な手法とがある。
【００７９】
ソフトウェア的な手法では、例えば、コンピュータシステム１０は、ロボット６０の各関節の変位を示す情報の転送をロボットコントローラ５０に要求するコマンドをロボットコントローラ５０に送信することにより、ロボット６０の各関節の変位を示す情報を変位検出装置６２からロボットコントローラ５０を通じて受信するとともに、同時に、コンピュータシステム１０は、計測対象物８０の３Ｄデータの計測を３Ｄセンサ７０に指示することにより、計測対象物８０の３Ｄデータを３Ｄセンサ７０から取得する。
【００８０】
ハードウェア的な手法では、例えば、ロボットコントローラ５０は、ロボット６０の各関節の変位を示す情報を変位検出装置６２から取得するとともに、同時に、計測対象物８０の３Ｄデータの計測を３Ｄセンサ７０に指示する。ロボット６０の各関節の変位を示す情報は、ロボットコントローラ５０からコンピュータシステム１０に転送されるとともに、計測対象物８０の３Ｄデータは、３Ｄセンサ７０からコンピュータシステム１０に転送される。
【００８１】
なお、ロボット６０は、ファクトリーオートメーションに用いられる産業ロボットに限定されるものではなく、例えば、サービス業に用いられるロボット（例えば、オペレーティングロボット、医療用ロボット、掃除ロボット、レスキューロボット、セキュリティロボットなど）でもよい。
【００８２】
［発明の実施形態２］
ここでは、発明の実施形態２と発明の実施形態１との相違点を中心に説明し、実施形態１，２に共通する説明を省略する。
発明の実施形態１では、計測システム１００は、複数の計測ポイント９０−１，９０−２，９０−３，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を停止させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させる。これに対し、発明の実施形態２では、計測システム１００は、複数の計測ポイント９０−１，９０−２，９０−３，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を減速させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させる。
【００８３】
３Ｄセンサ７０が特定の計測ポイントを通過する直前のロボット６０の動作速度が、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させることができるロボット６０の動作速度（以下、「許容動作速度」と呼ぶ）を超えている場合には、計測システム１００は、３Ｄセンサ７０が特定の計測ポイントを通過するときのロボット６０の動作速度を許容動作速度以下に減速させる。特定の計測ポイントでは、計測システム１００は、ロボット６０の減速中に計測対象物８０の３Ｄデータを計測するとともに、３Ｄデータが計測された時点におけるロボット６０の各関節の変位を検出する。このとき、特定の計測ポイントでは、ロボット６０の動作は許容動作速度以下に減速しているため、特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するタイミングと、変位検出装置６２がロボット６０の各関節の変位を検出するタイミングとが同期していなくても、特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させることができる。
【００８４】
特定の計測ポイント以外の各計測ポイントでは、計測システム１００は、ロボット６０の動作中に計測対象物８０の３Ｄデータを計測するとともに、各３Ｄデータが計測された時点におけるロボット６０の各関節の変位を検出する。特定の計測ポイント以外の計測ポイントでは、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するタイミングと、変位検出装置６２がロボット６０の各関節の変位を検出するタイミングとは、必ずしも、同期しているとは限らず、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは、必ずしも、一致しているとは限らない。  ロボット６０の動作を減速させる特定の計測ポイントの数は、１以上Ｎ−１以下の正数であればよい。
【００８５】
発明の実施形態２では、発明の実施形態１と同様に、コンピュータシステム１０のハードウェア資源と計測プログラム３１との協働により、駆動制御部１１、センサ制御部１２、同期制御部１３、レジストレーション処理部１４、レジストレーション処理部１５、座標変換部１６、位置姿勢推定部１７、及び動作目標算出部１８としての機能が実現される。
【００８６】
発明の実施形態２の同期制御部１３は、複数の計測ポイント９０−１，９０−２，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を減速させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢と一致させる点において、発明の実施形態１の同期制御部１３とは異なる。
【００８７】
発明の実施形態２のレジストレーション処理部１４は、特定の計測ポイントでロボット６０の減速中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の減速中に計測された計測対象物８０の３Ｄデータにレジストレーションする点において、実施形態１のレジストレーション処理部１４とは異なる。
【００８８】
発明の実施形態２のレジストレーション処理部１５は、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータと、特定の計測ポイントでロボット６０の減速中に計測された計測対象物８０の３Ｄデータとのレジストレーション誤差が閾値未満になるように、例えば、ＩＣＰなどのアルゴリズムを用いて、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の減速中に計測された計測対象物８０の３Ｄデータにレジストレーションする点において、実施形態１のレジストレーション処理部１５とは異なる。
【００８９】
発明の実施形態２によれば、複数の計測ポイントのうち何れか特定の計測ポイントでロボット６０の動作を停止させる場合よりも、計測対象物８０の３Ｄデータのレジストレーションに要する時間を短縮できる。
【００９０】
［発明の実施形態３］
ここでは、発明の実施形態３と、発明の実施形態１，２の相違点を中心に説明し、実施形態１乃至３に共通する説明を省略する。
発明の実施形態１，２では、計測システム１００は、複数の計測ポイント９０−１，９０−２，９０−３，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を停止又は減速させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させる。これに対し、発明の実施形態３では、計測対象物８０に対する３Ｄセンサ７０の位置が特定の計測ポイントに一致するときのロボット６０の各関節の変位は、特定の値として既知であり、ロボット６０の各関節の変位が特定の値に一致するときに、変位検出装置６２は、計測対象物８０の３Ｄデータの計測を要求する計測指令を３Ｄセンサ７０に出力することにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢を一致させる。発明の実施形態３では、変位検出装置６２は、ロボット６０の各関節の変位を検出するエンコーダと、計測指令を３Ｄセンサ７０に出力する信号出力装置とを備える。
【００９１】
特定の計測ポイントでは、ロボット６０の各関節の変位は、特定の値として既知であるため、ロボット６０の各関節の変位が特定の値に一致するときに、変位検出装置６２は、計測対象物８０の３Ｄデータの計測を要求する計測指令を３Ｄセンサ７０に出力することにより、特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するタイミングと、変位検出装置６２がロボット６０の各関節の変位を検出するタイミングとが同期していなくても、特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させることができる。
【００９２】
特定の計測ポイント以外の各計測ポイントでは、計測システム１００は、ロボット６０の動作中に計測対象物８０の３Ｄデータを計測するとともに、各３Ｄデータが計測された時点におけるロボット６０の各関節の変位を検出する。特定の計測ポイント以外の計測ポイントでは、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するタイミングと、変位検出装置６２がロボット６０の各関節の変位を検出するタイミングとは、必ずしも、同期しているとは限らず、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とは、必ずしも、一致しているとは限らない。ロボット６０の各関節の変位が特定の値に一致するときに、変位検出装置６２が、計測対象物８０の３Ｄデータの計測を要求する計測指令を３Ｄセンサ７０に出力する特定の計測ポイントの数は、１以上Ｎ−１以下の正数であればよい。
【００９３】
なお、ロボット６０の各関節の変位が特定の値に一致してから、変位検出装置６２が計測対象物８０の３Ｄデータの計測を要求する計測指令を３Ｄセンサ７０に出力するまでの遅延時間Ｔｄ１と、３Ｄセンサ７０が変位検出装置６２から計測要求を受信してから計測対象物８０の３Ｄデータの計測を完了するまでの遅延時間Ｔｄ２とが生じ得る。合計の遅延時間Ｔｄ＝Ｔｄ１＋Ｔｄ２がロボット６０の移動速度と比較して無視できない程度に大きい場合には、計測システム１００は、ロボット６０の各関節の変位が特定の値に一致するときの時刻から遅延時間Ｔｄが経過したときの時刻でのロボット６０の各関節の変位を、計測対象物８０に対する３Ｄセンサ７０の位置が特定の計測ポイントに一致するときのロボット６０の各関節の変位と見做してもよい。これにより、遅延時間Ｔｄが補正された精度の高いレジストレーション処理を行うことができる。
【００９４】
発明の実施形態３では、発明の実施形態１，２と同様に、コンピュータシステム１０のハードウェア資源と計測プログラム３１との協働により、駆動制御部１１、センサ制御部１２、レジストレーション処理部１４、レジストレーション処理部１５、座標変換部１６、位置姿勢推定部１７、及び動作目標算出部１８としての機能が実現される。発明の実施形態３では、変位検出装置６２は、発明の実施形態１，２の同期制御部１３の機能と同等の機能を備えるため、発明の実施形態３のコンピュータシステム１０は、発明の実施形態１，２の同期制御部１３の機能と同等の機能を備えていなくてもよい。
【００９５】
発明の実施形態３のレジストレーション処理部１４は、特定の計測ポイントでロボット６０の動作中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位に基づいて、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータにレジストレーションする点において、実施形態１，２のレジストレーション処理部１４とは異なる。
【００９６】
発明の実施形態３のレジストレーション処理部１５は、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータと、特定の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータとのレジストレーション誤差が閾値未満になるように、例えば、ＩＣＰなどのアルゴリズムを用いて、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータにレジストレーションする点において、実施形態１，２のレジストレーション処理部１５とは異なる。
【００９７】
発明の実施形態３によれば、複数の計測ポイントのうち何れか特定の計測ポイントでロボット６０の動作を停止又は減速させる必要がないため、計測対象物８０の３Ｄデータのレジストレーションに要する時間を短縮できる。
【００９８】
［発明の実施形態４］
ここでは、発明の実施形態４と、発明の実施形態１乃至３の相違点を中心に説明し、実施形態１乃至４に共通する説明を省略する。
発明の実施形態４では、コンピュータシステム１０とロボットコントローラ５０との間、及びロボットコントローラ５０とロボット６０との間は、フィールドバスを通じて接続されている。発明の実施形態４では、コンピュータシステム１０とロボットコントローラ５０との間、及びロボットコントローラ５０とロボット６０との間に加えて、コンピュータシステム１０と３Ｄセンサ７０との間も、フィールドバスを通じて接続されてもよい。一方、発明の実施形態１乃至３では、コンピュータシステム１０とロボットコントローラ５０との間、ロボットコントローラ５０とロボット６０との間、及びコンピュータシステム１０と３Ｄセンサ７０との間は、必ずしも、フィールドバスを通じて接続されることを要しない。
【００９９】
フィールドバスは、計測・制御用機器間の通信に用いられるデジタルネットワークである。フィールドバスとして、例えば、イーサキャットを用いてもよい。イーサキャットによれば、分散クロック機能により、各デバイス（コンピュータシステム１０、ロボットコントローラ５０、ロボット６０、及び３Ｄセンサ７０）が時刻情報を共有することにより、短い時間単位（例えば、２５０μｓ）で各デバイスの動作を同期させることができる。３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときの時刻と、変位検出装置６２がロボット６０の各関節の変位を検出するときの時刻との時間差に相当する遅延時間Ｔｄ０がロボット６０の動作速度に比較して無視できない程度である場合は、計測システム１００は、遅延時間Ｔｄ０に基づいて、上述の時間差を補正する処理を行ってもよい。例えば、計測対象物８０に対する３Ｄセンサ７０の位置が特定の計測ポイントに一致するときのロボット６０の各関節の変位が、特定の値として既知である場合には、計測システム１００は、ロボット６０の各関節の変位が特定の値に一致するときの時刻から遅延時間Ｔｄ０が経過したときの時刻でのロボット６０の各関節の変位を、計測対象物８０に対する３Ｄセンサ７０の位置が特定の計測ポイントに一致するときのロボット６０の各関節の変位と見做してもよい。
【０１００】
また、計測システム１００は、センサ制御部１２が計測対象物８０の３Ｄデータを計測することを要求する計測指令を３Ｄセンサ７０に出力するときの時刻を時系列的に記憶してもよい。また、ロボット６０は、変位検出装置６２がロボット６０の各関節の変位を検出するときの時刻を、その時刻で検出されたロボット６０の各関節の変位と関連付けて、時系列的に記憶してもよい。計測対象物８０の３Ｄデータを計測することを要求する計測指令が３Ｄセンサ７０に出力されたときの時刻に一致する時刻で変位検出装置６２により検出されたロボット６０の各関節の変位を、計測対象物８０の３Ｄデータが計測されたときのロボット６０の各関節の変位として見做してもよい。
【０１０１】
発明の実施形態４では、発明の実施形態１，２と同様に、コンピュータシステム１０のハードウェア資源と計測プログラム３１との協働により、駆動制御部１１、センサ制御部１２、レジストレーション処理部１４、レジストレーション処理部１５、座標変換部１６、位置姿勢推定部１７、及び動作目標算出部１８としての機能が実現される。発明の実施形態４では、フィールドバスを通じて、各デバイス（コンピュータシステム１０、ロボットコントローラ５０、ロボット６０、及び３Ｄセンサ７０）の動作が同期しているため、発明の実施形態４のコンピュータシステム１０は、発明の実施形態１，２の同期制御部１３の機能と同等の機能を備えていなくてもよい。
【０１０２】
発明の実施形態４のレジストレーション処理部１４は、特定の計測ポイントでロボット６０の動作中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータにレジストレーションする点において、実施形態１，２のレジストレーション処理部１４とは異なる。
【０１０３】
発明の実施形態４のレジストレーション処理部１５は、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータと、特定の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータとのレジストレーション誤差が閾値未満になるように、例えば、ＩＣＰなどのアルゴリズムを用いて、特定の計測ポイント以外の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータを、特定の計測ポイントでロボット６０の動作中に計測された計測対象物８０の３Ｄデータにレジストレーションする点において、実施形態１，２のレジストレーション処理部１５とは異なる。
【０１０４】
発明の実施形態４によれば、複数の計測ポイントのうち何れか特定の計測ポイントでロボット６０の動作を停止又は減速させる必要がないため、計測対象物８０の３Ｄデータのレジストレーションに要する時間を短縮できる。
【０１０５】
上述の実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限定されない。
（付記１）
ロボット６０に搭載される３Ｄセンサ７０であって、計測対象物８０の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサ７０と、
ロボット６０の各関節の変位を検出する変位検出装置６２と、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動する駆動装置６１と、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するように３Ｄセンサ７０を制御するセンサ制御部１２と、
複数の計測ポイント９０−１，９０−２，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を停止させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させる同期させる同期制御部１３と、
ロボット６０の停止中に特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションする第１のレジストレーション処理部１４と、
ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータと、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータとのレジストレーション誤差が閾値未満になるように、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションする第２のレジストレーション処理部１５と、
を備える計測システム１００。
（付記２）
付記１に記載の計測システム１００であって、
特定の計測ポイント以外の何れか一つ以上の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するタイミングと、変位検出装置６２がロボット６０の各関節の変位を検出するタイミングとが非同期である、計測システム１００。
（付記３）
付記１又は２に記載の計測システム１００であって、
同期制御部１３がロボット６０の動作を停止させる回数は、複数の計測ポイント９０−１，９０−２，…，９０−Ｎの数より少ない、計測システム１００。
（付記４）
付記１乃至３のうち何れか１項に記載の計測システムであって、
特定の計測ポイントは、複数の計測ポイント９０−１，９０−２，…，９０−Ｎのうち何れか一つの計測ポイントである、計測システム１００。
（付記５）
付記１乃至４のち何れか１項に記載の計測システム１００であって、
特定の計測ポイント以外の各計測ポイントで計測された計測対象物８０の３Ｄデータと特定の計測ポイントで計測された計測対象物８０の３Ｄデータとの第１のレジストレーション処理部１４及び第２のレジストレーション処理部１５によるレジストレーションにより得られる３Ｄデータを３Ｄセンサ７０の座標系からロボット６０の座標系に変換する座標変換部１６と、
座標変換部１６により座標変換された３Ｄデータに基づいてロボット６０に対する測定対象物８０の位置及び姿勢を推定する位置姿勢推定部１７と、
を更に備える計測システム１００。
（付記６）
ロボット６０の各関節の変位を検出する変位検出装置６２から出力される変位を示す情報を入力するとともに、ロボット６０の各関節を駆動する駆動装置６１に駆動指令を出力する計測装置２００であって、
ロボット６０に搭載される３Ｄセンサ７０であって、計測対象物８０の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサ７０と、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動するための駆動指令を生成する駆動制御部１１と、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するように３Ｄセンサ７０を制御するセンサ制御部１２と、
複数の計測ポイント９０−１，９０−２，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を停止させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させる同期制御部１３と、
ロボット６０の停止中に特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションする第１のレジストレーション処理部１４と、
ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータと、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータとのレジストレーション誤差が閾値未満になるように、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションする第２のレジストレーション処理部１５と、
を備える計測装置２００。
（付記７）
ロボット６０に搭載される３Ｄセンサ７０であって、計測対象物８０の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサ７０を備えるとともに、ロボット６０の各関節の変位を検出する変位検出装置６２から出力される変位を示す情報を入力し、且つ、ロボット６０の各関節を駆動する駆動装置６１に駆動指令を出力する計測装置２００が、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動するための駆動指令を生成するステップと、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するように３Ｄセンサ７０を制御するステップと、
複数の計測ポイント９０−１，９０−２，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を停止させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させるステップと、
ロボット６０の停止中に特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションするステップと、
ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータと、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータとのレジストレーション誤差が閾値未満になるように、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションするステップと、
を実行する計測方法。
（付記８）
ロボット６０に搭載される３Ｄセンサ７０であって、計測対象物８０の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサ７０を備えるとともに、ロボット６０の各関節の変位を検出する変位検出装置６２から出力される変位を示す情報を入力し、且つ、ロボット６０の各関節を駆動する駆動装置６１に駆動指令を出力する計測装置２００に、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動するための駆動指令を生成するステップと、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するように３Ｄセンサ７０を制御するステップと、
複数の計測ポイント９０−１，９０−２，…，９０−Ｎのうち何れか特定の計測ポイントでロボット６０の動作を停止させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させるステップと、
ロボット６０の停止中に特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションするステップと、
ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータと、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータとのレジストレーション誤差が閾値未満になるように、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、ロボット６０の停止中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションするステップと、
を実行させる計測プログラム３１。
（付記９）
ロボット６０に搭載される３Ｄセンサ７０であって、計測対象物８０の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサ７０と、
ロボット６０の各関節の変位を検出する変位検出装置６２と、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動する駆動装置６１と、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するように３Ｄセンサ７０を制御するセンサ制御部１２と、
複数の計測ポイント９０−１，９０−２，…，９０−Ｎのうち何れか特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションする第１のレジストレーション処理部１４と、
を備える計測システム１００。
（付記１０）
付記９に記載の計測システム１００であって、
特定の計測ポイントでロボット６０の動作を停止又は減速させることにより、３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するときのロボット６０の位置及び姿勢と、変位検出装置６２がロボット６０の各関節の変位を検出するときのロボット６０の位置及び姿勢とを一致させる同期制御部１３を更に備え、
第１のレジストレーション処理部１４は、ロボット６０の停止中又は減速中に特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、ロボット６０の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、ロボット６０の停止中又は減速中に特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションする、計測システム１００。
（付記１１）
付記９に記載の計測システム１００であって、
計測対象物８０に対する３Ｄセンサ７０の位置が特定の計測ポイントに一致するときのロボット６０の各関節の変位は、特定の値として既知であり、
ロボット６０の各関節の変位が特定の値に一致するときに、変位検出装置６２は、計測対象物８０の３Ｄデータの計測を要求する計測指令を３Ｄセンサ７０に出力する、計測システム１００。
（付記１２）
付記９に記載の計測システム１００であって、
センサ制御部１２及び第１のレジストレーション処理部１４は、フィールドバスを通じて変位検出装置６２に接続されている、計測システム１００。
（付記１３）
付記１０に記載の計測システム１００であって、
特定の計測ポイント以外の何れか一つ以上の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測するタイミングと、変位検出装置６２がロボット６０の各関節の変位を検出するタイミングとが非同期である、計測システム１００。
（付記１４）
付記１０に記載の計測システム１００であって、
同期制御部１３がロボット６０の動作を停止又は減速させる回数は、複数の計測ポイントの数より少ない、計測システム１００。
（付記１５）
付記１０に記載の計測システム１００であって、
特定の計測ポイントは、複数の計測ポイントのうち何れか一つの計測ポイントである、計測システム１００。
（付記１６）
付記９乃至１５のち何れか１項に記載の計測システム１００であって、
特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータと、特定の計測ポイントで計測された計測対象物８０の３Ｄデータとのレジストレーション誤差が閾値未満になるように、特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションする第２のレジストレーション処理部１５を更に備える、計測システム１００。
（付記１７）
付記１６に記載の計測システム１００であって、
特定の計測ポイント以外の各計測ポイントで計測された計測対象物８０の３Ｄデータと特定の計測ポイントで計測された計測対象物８０の３Ｄデータとの第１のレジストレーション処理部１４及び第２のレジストレーション処理部１５によるレジストレーションにより得られる３Ｄデータを３Ｄセンサ７０の座標系からロボット６０の座標系に変換する座標変換部１６と、
座標変換部１６により座標変換された３Ｄデータに基づいてロボット６０に対する測定対象物８０の位置及び姿勢を推定する位置姿勢推定部１７と、
を更に備える計測システム１００。
（付記１８）
ロボット６０の各関節の変位を検出する変位検出装置６２から出力される変位を示す情報を入力するとともに、ロボット６０の各関節を駆動する駆動装置６１に駆動指令を出力する計測装置２００であって、
ロボット６０に搭載される３Ｄセンサであって、計測対象物の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサと、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動するための駆動指令を生成する駆動制御部１１と、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するように３Ｄセンサ７０を制御するセンサ制御部１２と、
複数の計測ポイント９０−１，９０−２，…，９０−Ｎのうち何れか特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションするレジストレーション処理部１４と、
を備える計測装置２００。
（付記１９）
ロボット６０に搭載される３Ｄセンサ７０であって、計測対象物８０の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサ７０を備えるとともに、ロボット６０の各関節の変位を検出する変位検出装置６２から出力される変位を示す情報を入力し、且つ、ロボット６０の各関節を駆動する駆動装置６１に駆動指令を出力する計測装置２００が、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動するための駆動指令を生成するステップと、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するように３Ｄセンサ７０を制御するステップと、
複数の計測ポイントのうち何れか特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションするステップと、
を実行する計測方法。
（付記２０）
ロボット６０に搭載される３Ｄセンサ７０であって、計測対象物８０の表面の各点の３次元座標を示す３Ｄデータを計測する３Ｄセンサ７０を備えるとともに、ロボット６０の各関節の変位を検出する変位検出装置６２から出力される変位を示す情報を入力し、且つ、ロボット６０の各関節を駆動する駆動装置６１に駆動指令を出力する計測装置２００に、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係を変えるようにロボット６０の各関節を駆動するための駆動指令を生成するステップと、
計測対象物８０に対する３Ｄセンサ７０の相対的な位置関係が異なる複数の計測ポイント９０−１，９０−２，…，９０−Ｎで計測対象物８０の３Ｄデータを計測するように３Ｄセンサ７０を制御するステップと、
複数の計測ポイントのうち何れか特定の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位と、特定の計測ポイント以外の計測ポイントで３Ｄセンサ７０が計測対象物８０の３Ｄデータを計測した時点におけるロボット６０の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物８０の３Ｄデータを、特定の計測ポイントで計測された計測対象物８０の３Ｄデータにレジストレーションするステップと、
を実行させる計測プログラム３１。
【符号の説明】
【０１０６】
１０…コンピュータシステム  ２０…演算装置  ２１…ＣＰＵ  ２２…ＲＯＭ  ２３…ＲＡＭ  ３０…記憶装置  ３１…計測プログラム  ４０…入出力インタフェース  ５０…ロボットコントローラ  ６０…ロボット  ６１…駆動装置  ６２…変位検出装置  ７０…３Ｄセンサ  ８０…計測対象物  １００…計測システム  ２００…計測装置
【図１】
2020190551.tif 000003
【図２】
2020190551.tif 000004
【図３】
2020190551.tif 000005
【図４】
2020190551.tif 000006
【図５】
2020190551.tif 000007
【図６】
2020190551.tif 000008