(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-05
(45)【発行日】2024-03-13
(54)【発明の名称】計測システム、計測装置、計測方法、及び計測プログラム
(51)【国際特許分類】
G01B 11/00 20060101AFI20240306BHJP
B25J 13/08 20060101ALI20240306BHJP
G06T 7/70 20170101ALI20240306BHJP
【FI】
G01B11/00 A
B25J13/08 A
G06T7/70 Z
(21)【出願番号】P 2020083903
(22)【出願日】2020-05-12
【審査請求日】2023-03-07
(31)【優先権主張番号】P 2019091862
(32)【優先日】2019-05-15
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100139066
【氏名又は名称】伊藤 健太郎
(72)【発明者】
【氏名】付 星斗
(72)【発明者】
【氏名】苗 林
【審査官】續山 浩二
(56)【参考文献】
【文献】特開2012-040669(JP,A)
【文献】特開平10-076489(JP,A)
【文献】特許第6200604(JP,B1)
【文献】特開2018-161700(JP,A)
【文献】特開2016-099257(JP,A)
【文献】特開2016-109630(JP,A)
【文献】国際公開第2013/002099(WO,A1)
【文献】国際公開第2006/022201(WO,A1)
【文献】特開2012-200805(JP,A)
【文献】特開2017-090210(JP,A)
【文献】特開2011-115546(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01B 11/00
B25J 13/08
G06T 7/70
(57)【特許請求の範囲】
【請求項1】
ロボットに搭載される3Dセンサであって、計測対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサと、
前記ロボットの各関節の変位を検出する変位検出装置と、
前記計測対象物に対する前記3Dセンサの相対的な位置関係を変えるように前記ロボットの各関節を駆動する駆動装置と、
前記計測対象物に対する前記3Dセンサの相対的な位置関係が異なる複数の計測ポイントで前記計測対象物の3Dデータを計測するように前記3Dセンサを制御するセンサ制御部と、
前記複数の計測ポイントのうち何れか特定の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位と、前記特定の計測ポイント以外の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の3Dデータを、前記特定の計測ポイントで計測された前記計測対象物の3Dデータにレジストレーションする第1のレジストレーション処理部と、
を備える計測システム。
【請求項2】
請求項1に記載の計測システムであって、
前記特定の計測ポイントで前記ロボットの動作を停止又は減速させることにより、前記3Dセンサが前記計測対象物の3Dデータを計測するときの前記ロボットの位置及び姿勢と、前記変位検出装置が前記ロボットの各関節の変位を検出するときの前記ロボットの位置及び姿勢とを一致させる同期制御部を更に備え、
前記第1のレジストレーション処理部は、前記ロボットの停止中又は減速中に前記特定の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位と、前記ロボットの動作中に前記特定の計測ポイント以外の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記ロボットの動作中に前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の3Dデータを、前記ロボットの停止中又は減速中に前記特定の計測ポイントで計測された前記計測対象物の3Dデータにレジストレーションする、計測システム。
【請求項3】
請求項1に記載の計測システムであって、
前記計測対象物に対する前記3Dセンサの位置が前記特定の計測ポイントに一致するときの前記ロボットの各関節の変位は、特定の値として既知であり、
前記ロボットの各関節の変位が前記特定の値に一致するときに、前記変位検出装置は、前記計測対象物の3Dデータの計測を要求する計測指令を前記3Dセンサに出力する、計測システム。
【請求項4】
請求項1に記載の計測システムであって、
前記センサ制御部及び前記第1のレジストレーション処理部は、フィールドバスを通じて前記変位検出装置に接続されている、計測システム。
【請求項5】
請求項2に記載の計測システムであって、
前記特定の計測ポイント以外の何れか一つ以上の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測するタイミングと、前記変位検出装置が前記ロボットの各関節の変位を検出するタイミングとが非同期である、計測システム。
【請求項6】
請求項2に記載の計測システムであって、
前記同期制御部が前記ロボットの動作を停止又は減速させる回数は、前記複数の計測ポイントの数より少ない、計測システム。
【請求項7】
請求項2に記載の計測システムであって、
前記特定の計測ポイントは、前記複数の計測ポイントのうち何れか一つの計測ポイントである、計測システム。
【請求項8】
請求項1乃至7のち何れか1項に記載の計測システムであって、
前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の3Dデータと、前記特定の計測ポイントで計測された前記計測対象物の3Dデータとのレジストレーション誤差が閾値未満になるように、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の3Dデータを、前記特定の計測ポイントで計測された前記計測対象物の3Dデータにレジストレーションする第2のレジストレーション処理部を更に備える、計測システム。
【請求項9】
請求項8に記載の計測システムであって、
前記特定の計測ポイント以外の各計測ポイントで計測された前記計測対象物の3Dデータと前記特定の計測ポイントで計測された前記計測対象物の3Dデータとの前記第1のレジストレーション処理部及び前記第2のレジストレーション処理部によるレジストレーションにより得られる前記3Dデータを前記3Dセンサの座標系から前記ロボットの座標系に変換する座標変換部と、
前記座標変換部により座標変換された前記3Dデータに基づいて前記ロボットに対する前記
計測対象物の位置及び姿勢を推定する位置姿勢推定部と、
を更に備える計測システム。
【請求項10】
ロボットの各関節の変位を検出する変位検出装置から出力される前記変位を示す情報を入力するとともに、前記ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置であって、
前記ロボットに搭載される3Dセンサであって、計測対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサと、
前記計測対象物に対する前記3Dセンサの相対的な位置関係を変えるように前記ロボットの各関節を駆動するための前記駆動指令を生成する駆動制御部と、
前記計測対象物に対する前記3Dセンサの相対的な位置関係が異なる複数の計測ポイントで前記計測対象物の3Dデータを計測するように前記3Dセンサを制御するセンサ制御部と、
前記複数の計測ポイントのうち何れか特定の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位と、前記特定の計測ポイント以外の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の3Dデータを、前記特定の計測ポイントで計測された前記計測対象物の3Dデータにレジストレーションするレジストレーション処理部と、
を備える計測装置。
【請求項11】
ロボットに搭載される3Dセンサであって、計測対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサを備えるとともに、前記ロボットの各関節の変位を検出する変位検出装置から出力される前記変位を示す情報を入力し、且つ、前記ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置が、
前記計測対象物に対する前記3Dセンサの相対的な位置関係を変えるように前記ロボットの各関節を駆動するための前記駆動指令を生成するステップと、
前記計測対象物に対する前記3Dセンサの相対的な位置関係が異なる複数の計測ポイントで前記計測対象物の3Dデータを計測するように前記3Dセンサを制御するステップと、
前記複数の計測ポイントのうち何れか特定の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位と、前記特定の計測ポイント以外の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の3Dデータを、前記特定の計測ポイントで計測された前記計測対象物の3Dデータにレジストレーションするステップと、
を実行する計測方法。
【請求項12】
ロボットに搭載される3Dセンサであって、計測対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサを備えるとともに、前記ロボットの各関節の変位を検出する変位検出装置から出力される前記変位を示す情報を入力し、且つ、前記ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置に、
前記計測対象物に対する前記3Dセンサの相対的な位置関係を変えるように前記ロボットの各関節を駆動するための前記駆動指令を生成するステップと、
前記計測対象物に対する前記3Dセンサの相対的な位置関係が異なる複数の計測ポイントで前記計測対象物の3Dデータを計測するように前記3Dセンサを制御するステップと、
前記複数の計測ポイントのうち何れか特定の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位と、前記特定の計測ポイント以外の計測ポイントで前記3Dセンサが前記計測対象物の3Dデータを計測した時点における前記ロボットの各関節の変位とに基づいて、前記特定の計測ポイント以外の計測ポイントで計測された前記計測対象物の3Dデータを、前記特定の計測ポイントで計測された前記計測対象物の3Dデータにレジストレーションするステップと、
を実行させる計測プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計測システム、計測装置、計測方法、及び計測プログラムに関わる。
【背景技術】
【0002】
ファクトリーオートメーションの分野では、例えば、距離センサを用いて、ワークの表面の各点の3次元座標を示す点群(ポイントクラウド)を計測し、計測により得られた点群からワークを識別又は検査するための画像処理を行っている。
【0003】
この種の画像処理に用いられる距離センサは、ロボットビジョンと呼ばれており、その計測方式には、種々の方式がある。例えば、固定された計測ポイントからワークの点群を計測する方式、計測ポイントを移動させながらワークの点群を計測する方式、一つのワークについて一つの計測ポイントから点群を計測する方式、及び一つのワークについて複数の異なる計測ポイントから複数の点群を計測する方式などがある。
【0004】
固定された計測ポイントからワークの点群を計測する方式や、一つのワークについて一つの点群を計測する方式では、ワークによっては、その形状が複雑であるために、或いは、鏡面加工されたワークの反射面からの反射の影響により、ワークを十分な精度で識別できないことがある。これに対し、複数の異なる計測ポイントのそれぞれからワークの点群を計測することにより、ワークの見え方が異なる複数の異なる点群の計測が可能となり、固定された計測ポイントからワークの点群を計測する方式や、一つのワークについて一つの点群を計測する方式よりも、より高い精度でワークを識別することができる。
【0005】
この種の画像処理として、例えば、非特許文献1に記載されているようなモデルベースのアルゴリズムが知られている。このアルゴリズムは、複数点の位置や法線の関係を記述したPPF(Point Pair Feature)と呼ばれる特徴量を用いており、物体の位置及び姿勢の推定処理や、物体の点群のレジストレーション処理に適用可能である。この特徴量は、物体の点群から2点(点対)を選択する組み合わせにおいて算出される4次元特徴量である。4次元は、それぞれ、2点間の距離、2点を結ぶ線分とその各点の法線方向がなす角度、2点の法線間の角度である。ハッシュテーブルにその特徴量をキーとして2点の点番号を格納する。マッチング処理においては、ハッシュテーブルから対応点を検索した後、点対間の剛体変形パラメータを求めることで、物体を識別する。マッチング処理後に、隣り合う計測ポイント間の距離センサの回転量及び移動量が計算され、その計算結果に基づいて、その隣り合う計測ポイントで計測された二つの点群のレジストレーションが行われる。
【0006】
非特許文献2には、モデルベースの他のアルゴリズムが記載されている。このアルゴリズムは、距離画像センサを用いて計測した距離画像センサ周辺の距離画像に基づいて距離画像センサの位置及び姿勢を推定する。このアルゴリズムでは、隣り合う計測ポイント間の距離画像センサの回転量及び移動量が計算され、その計算結果に基づいて、その隣り合う計測ポイントで計測された二つの距離画像のレジストレーションが行われる。
【0007】
非特許文献1,2に記載のアルゴリズムを用いたレジストレーションは、精密なレジストレーション(Fine Registration)の前処理として行われる粗いレジストレーション(Coarse Registration)である。
【0008】
非特許文献3には、物体の複数の点群間の対応点同士の距離を最小化するためのアルゴリズムとして、ICP(Iterative Closest Point)を用いることが記載されている。ICPは、一方の点群を構成する各点に対し、他方の点群における最近接点を探索し、これを仮の対応点とする。このような対応点間の距離を最小化するような剛体変換を推定し、対応点の探索と剛体変換推定とを繰り返すことで、点群間の対応点同士の距離を最小化する。ICPは、粗いレジストレーションの後処理として行われる精密なレジストレーションである。
【先行技術文献】
【特許文献】
【0009】
【文献】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.
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかし、非特許文献1,2に記載のレジストレーションのアルゴリズムは、画像処理に多くの計算を要することがあり、また、ロバスト性が低いこともある。また、非特許文献3に記載のICPは、初期状態の点群間のずれが大きい場合には、対応点の探索と剛体変換推定とを何度も繰り返したり、或いはレジストレーションに失敗したりすることがあり得る。何れの技術も、計算時間が長くなることがあり得るため、生産性が要求されるファクトリーオートメーションの分野においては、実用的に十分でない。
【0011】
そこで、本発明は、計測対象物の3Dデータのレジストレーションに要する時間を短縮できる計測システム、計測装置、計測方法、及び計測プログラムを提供することを課題とする。
【課題を解決するための手段】
【0012】
上述の課題を解決するため、本発明に関わる計測システムは、ロボットに搭載される3Dセンサであって、計測対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサと、ロボットの各関節の変位を検出する変位検出装置と、計測対象物に対する3Dセンサの相対的な位置関係を変えるようにロボットの各関節を駆動する駆動装置と、計測対象物に対する3Dセンサの相対的な位置関係が異なる複数の計測ポイントで計測対象物の3Dデータを計測するように3Dセンサを制御するセンサ制御部と、複数の計測ポイントのうち何れか特定の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位と、特定の計測ポイント以外の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物の3Dデータを、特定の計測ポイントで計測された計測対象物の3Dデータにレジストレーションする第1のレジストレーション処理部と、を備える。斯かる構成によれば、計測対象物の3Dデータのレジストレーションに要する時間を短縮することができる。
【0013】
本発明に関わる計測システムは、特定の計測ポイントでロボットの動作を停止又は減速させることにより、3Dセンサが計測対象物の3Dデータを計測するときのロボットの位置及び姿勢と、変位検出装置がロボットの各関節の変位を検出するときのロボットの位置及び姿勢とを一致させる同期制御部を更に備えてもよい。第1のレジストレーション処理部は、ロボットの停止中又は減速中に特定の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位と、ロボットの動作中に特定の計測ポイント以外の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位とに基づいて、ロボットの動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物の3Dデータを、ロボットの停止中又は減速中に特定の計測ポイントで計測された計測対象物の3Dデータにレジストレーションしてもよい。3Dセンサが計測対象物の3Dデータを計測するときのロボットの位置及び姿勢と、変位検出装置がロボットの各関節の変位を検出するときのロボットの位置及び姿勢とを一致させるために、特定の計測ポイント以外の計測ポイントでロボットの動作を停止又は減速させる必要がないため、計測対象物の3Dデータのレジストレーションに要する時間を短縮できる。
【0014】
計測対象物に対する3Dセンサの位置が特定の計測ポイントに一致するときのロボットの各関節の変位は、特定の値として既知でもよく、また、ロボットの各関節の変位が特定の値に一致するときに、変位検出装置は、計測対象物の3Dデータの計測を要求する計測指令を3Dセンサに出力してもよい。特定の計測ポイントでロボットの動作を停止又は減速させる必要がないため、計測対象物の3Dデータのレジストレーションに要する時間を短縮できる。
【0015】
センサ制御部及び第1のレジストレーション処理部は、フィールドバスを通じて変位検出装置に接続されてもよい。フィールドバスを通じて、各部(センサ制御部、第1のレジストレーション処理部、及び変位検出装置)の動作は、短い時間単位で同期しているため、特定の計測ポイントでロボットの動作を停止又は減速させる必要がなく、計測対象物の3Dデータのレジストレーションに要する時間を短縮できる。
【0016】
特定の計測ポイント以外の何れか一つ以上の計測ポイントで3Dセンサが計測対象物の3Dデータを計測するタイミングと、変位検出装置がロボットの各関節の変位を検出するタイミングとは、非同期でもよい。これにより、特定の計測ポイント以外の何れか一つ以上の計測ポイントでの3Dセンサの動作速度を高めることができるため、計測対象物の3Dデータのレジストレーションに要する時間を短縮できる。
【0017】
同期制御部がロボットの動作を停止又は減速させる回数は、複数の計測ポイントの数より少なくてもよい。これにより、3Dセンサが計測対象物の3Dデータを計測するときのロボットの位置及び姿勢と、変位検出装置がロボットの各関節の変位を検出するときのロボットの位置及び姿勢とを一致させるために、ロボットの動作を停止させる回数は、複数の計測ポイントの数より少なくてよいため、計測対象物の3Dデータのレジストレーションに要する時間を短縮できる。
【0018】
特定の計測ポイントは、複数の計測ポイントのうち何れか一つの計測ポイントでもよい。これにより、3Dセンサが計測対象物の3Dデータを計測するときのロボットの位置及び姿勢と、変位検出装置がロボットの各関節の変位を検出するときのロボットの位置及び姿勢とを一致させるために、ロボットの動作を停止させる回数は1回でよいため、計測対象物の3Dデータのレジストレーションに要する時間を短縮できる。
【0019】
本発明に関わる計測システムは、特定の計測ポイント以外の計測ポイントで計測された計測対象物の3Dデータと、特定の計測ポイントで計測された計測対象物の3Dデータとのレジストレーション誤差が閾値未満になるように、特定の計測ポイント以外の計測ポイントで計測された計測対象物の3Dデータを、特定の計測ポイントで計測された計測対象物の3Dデータにレジストレーションする第2のレジストレーション処理部を更に備えてもよい。第2のレジストレーション処理部による精密なレジストレーションの前処理として、3Dデータのそれぞれが計測された時点で変位検出装置が検出する各関節の変位に基づく、第1のレジストレーション処理部による大まかなレジストレーションを行うことにより、レジストレーションに要する全体の処理時間を短縮できる。
【0020】
本発明に関わる計測システムは、特定の計測ポイント以外の各計測ポイントで計測された計測対象物の3Dデータと特定の計測ポイントで計測された計測対象物の3Dデータとの第1のレジストレーション処理部及び第2のレジストレーション処理部によるレジストレーションにより得られる3Dデータを3Dセンサの座標系からロボットの座標系に変換する座標変換部と、座標変換部により座標変換された3Dデータに基づいてロボットに対する計測対象物の位置及び姿勢を推定する位置姿勢推定部とを更に備えてもよい。第1のレジストレーション処理部及び第2のレジストレーション処理部によるレジストレーションにより得られる3Dデータを用いることで、ロボットに対する計測対象物の位置及び姿勢の推定に要する時間を短縮できる。
【0021】
本発明に関わる計測装置は、ロボットの各関節の変位を検出する変位検出装置から出力される変位を示す情報を入力するとともに、ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置であって、ロボットに搭載される3Dセンサであって、計測対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサと、計測対象物に対する3Dセンサの相対的な位置関係を変えるようにロボットの各関節を駆動するための駆動指令を生成する駆動制御部と、計測対象物に対する3Dセンサの相対的な位置関係が異なる複数の計測ポイントで計測対象物の3Dデータを計測するように3Dセンサを制御するセンサ制御部と、複数の計測ポイントのうち何れか特定の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位と、特定の計測ポイント以外の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物の3Dデータを、特定の計測ポイントで計測された計測対象物の3Dデータにレジストレーションするレジストレーション処理部と、を備える。斯かる構成によれば、計測対象物の3Dデータのレジストレーションに要する時間を短縮することができる。
【0022】
本発明に関わる計測方法は、ロボットに搭載される3Dセンサであって、計測対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサを備えるとともに、ロボットの各関節の変位を検出する変位検出装置から出力される変位を示す情報を入力し、且つ、ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置が、計測対象物に対する3Dセンサの相対的な位置関係を変えるようにロボットの各関節を駆動するための駆動指令を生成するステップと、計測対象物に対する3Dセンサの相対的な位置関係が異なる複数の計測ポイントで計測対象物の3Dデータを計測するように3Dセンサを制御するステップと、複数の計測ポイントのうち何れか特定の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位と、特定の計測ポイント以外の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物の3Dデータを、特定の計測ポイントで計測された計測対象物の3Dデータにレジストレーションするステップと、を実行する。この方法によれば、計測対象物の3Dデータのレジストレーションに要する時間を短縮することができる。
【0023】
本発明に関わる計測プログラムは、ロボットに搭載される3Dセンサであって、計測対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサを備えるとともに、ロボットの各関節の変位を検出する変位検出装置から出力される変位を示す情報を入力し、且つ、ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置に、計測対象物に対する3Dセンサの相対的な位置関係を変えるようにロボットの各関節を駆動するための駆動指令を生成するステップと、計測対象物に対する3Dセンサの相対的な位置関係が異なる複数の計測ポイントで計測対象物の3Dデータを計測するように3Dセンサを制御するステップと、複数の計測ポイントのうち何れか特定の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位と、特定の計測ポイント以外の計測ポイントで3Dセンサが計測対象物の3Dデータを計測した時点におけるロボットの各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物の3Dデータを、特定の計測ポイントで計測された計測対象物の3Dデータにレジストレーションするステップと、を実行させる。このプログラムによれば、計測対象物の3Dデータのレジストレーションに要する時間を短縮することができる。
【発明の効果】
【0024】
本発明によれば、計測対象物の3Dデータのレジストレーションに要する時間を短縮できる。
【図面の簡単な説明】
【0025】
【
図1】本発明の実施形態に関わる計測システムの概略構成の一例を示す説明図である。
【
図2】本発明の実施形態に関わる3Dデータの処理の流れの一例を示す説明図である。
【
図3】本発明の実施形態に関わるレジストレーション処理の一例を示す説明図である。
【
図4】本発明の実施形態に関わる計測システム及び計測装置のハードウェア構成の一例を示す説明図である。
【
図5】本発明の実施形態に関わるコンピュータシステムの機能の一例を示すブロック図である。
【
図6】本発明の実施形態に関わる計測方法の処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0026】
[発明の実施形態1]
以下、本発明の一側面に関わる実施形態を図面に基づいて説明する。本発明の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更又は改良され得るととともに、本発明には、その等価物も含まれる。なお、同一符号は、同一の構成要素を示すものとし、重複する説明は省略する。
【0027】
[適用例]
図1は本実施形態に関わる計測システム100の概略構成の一例を示す説明図である。計測システム100は、ロボット60と、ロボット60に搭載された3Dセンサ70と、ロボット60の駆動及び3Dセンサ70による計測対象物80の3Dデータの計測を制御するコンピュータシステム10と、コンピュータシステム10からの指令に応答してロボット60の動作を制御するロボットコントローラ50とを備える。
【0028】
3Dデータは、計測対象物80の表面の各点の3次元座標を示す。この種の3Dデータとして、例えば、点群又は距離画像を用いることができる。点群は、例えば、xyz直交座標系の三次元座標値(x,y,z)を有する点の集合として定義される。距離画像は、例えば、uv直交座標系の2次元の画像座標(u,v)に対応する距離dを画素値とする画素の集合として定義される。ここで、dは、3Dセンサ70と計測対象物80との間の距離である。
【0029】
3Dセンサ70は、点群を計測する距離センサでもよく、或いは、距離センサと2Dセンサとを組み合わせて距離画像を取得する距離画像センサでもよい。距離センサは、奥行情報としての距離dを計測するセンサであり、その計測方式として、例えば、三角法方式、飛行時間方式(タイム・オブ・フライト方式)、又は位相差方式などを用いることができる。2Dセンサは、2次元の画像を撮影するイメージセンサである。2次元の画像は、距離dを画素値としない点において距離画像とは異なる。距離画像センサは、例えば、2Dセンサの撮影位置を変えながら計測対象物80の複数の2次元の画像を撮影し、ステレオ立体視の画像処理により、距離dを画素値とする距離画像を取得するカメラでもよい。或いは、距離画像センサは、計測対象物80を複数の異なる方向から同時に撮影することにより、距離dを画素値とする距離画像を取得するステレオカメラでもよい。
【0030】
ロボット60は、例えば、計測対象物80を操作(例えば、把持、吸着、移動、組み立て、又は挿入など)するためのロボットハンド63を備える多関節ロボット(例えば、垂直多関節ロボット、水平多関節ロボット)である。ロボット60は、関節を駆動するための駆動装置61と、関節の変位(角度変位)を検出する変位検出装置62とを備えている。駆動装置61は、例えば、ロボットコントローラ50からの駆動指令に応答して駆動するサーボモータである。変位検出装置62は、例えば、サーボモータの回転角を検出するエンコーダ(例えば、インクリメンタル型エンコーダ、又はアブソリュート型エンコーダなど)である。ロボット60の各関節には、駆動装置61と変位検出装置62とが組み込まれている。
【0031】
ロボット60は、自律的に動作するマニピュレータとして動作し、例えば、計測対象物80のピッキング、組み立て、搬送、塗装、検査、研磨、又は洗浄などの様々な用途に用いることができる。計測対象物80は、例えば、仕掛け品又は部品などのワークである。ワークの例として、自動車のパワートレイン系(例えば、エンジン、又はトランスミッションなど)の機械部品、又は電装系の電子部品を挙げることができる。
【0032】
計測システム100は、計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節の駆動を制御する。そして、計測システム100は、計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,90-3,…,90-Nで計測対象物80の3Dデータを計測するとともに、各3Dデータが計測された時点におけるロボット60の各関節の変位を検出する。ここで、Nは、2以上の整数である。
【0033】
計測システム100は、複数の計測ポイント90-1,90-2,90-3,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を停止させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させる。特定の計測ポイントでは、計測システム100は、ロボット60の停止中に計測対象物80の3Dデータを計測するとともに、各3Dデータが計測された時点におけるロボット60の各関節の変位を検出する。特定の計測ポイントでは、ロボット60の動作は停止しているため、特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するタイミングと、変位検出装置62がロボット60の各関節の変位を検出するタイミングとが同期していなくても、特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは一致している。特定の計測ポイント以外の各計測ポイントでは、計測システム100は、ロボット60の動作中に計測対象物80の3Dデータを計測するとともに、各3Dデータが計測された時点におけるロボット60の各関節の変位を検出する。特定の計測ポイント以外の計測ポイントでは、ロボット60は動作しているため、3Dセンサ70が計測対象物80の3Dデータを計測するタイミングと、変位検出装置62がロボット60の各関節の変位を検出するタイミングとは、必ずしも、同期しているとは限らず、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは、必ずしも、一致しているとは限らない。
【0034】
ロボット60の動作を停止させる特定の計測ポイントの数は、1以上N-1以下の正数であればよい。説明の簡略化のため、以下の説明においては、計測ポイント90-1を特定の計測ポイントとする場合を例示する。この場合、計測ポイント90-1でロボット60の停止中に3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは一致している。一方、計測ポイント90-2,90-3,…,90-Nのそれぞれでロボット60の動作中に3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは、必ずしも、一致しているとは限らない。
【0035】
なお、
図1において、符号201は、ロボット60を基準とする座標系を示し、符号202は、ロボットハンド63を基準とする座標系を示し、符号203は、3Dセンサ70を基準とする座標系を示す。座標系201,202,203を、それぞれ、ロボット座標系、ツール座標系、及びセンサ座標系と呼ぶ。
【0036】
図2は本発明の実施形態に関わる3Dデータの処理の流れの一例を示す説明図である。3Dデータの処理は、レジストレーション処理300と、座標変換処理400とを備える。符号110-1は、特定の計測ポイント90-1でロボット60の停止中に計測された計測対象物80の3Dデータを示す。符号110-2,110-3,…,110-Nは、それぞれ、計測ポイント90-2,90-3,…,90-Nでロボット60の動作中に計測された計測対象物80の3Dデータを示す。
【0037】
特定の計測ポイント90-1では、3Dセンサ70が計測対象物80の3Dデータ110-1を計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは、一致しているため、3Dデータ110-1が計測された時点のロボット60の正確な位置及び姿勢は、その時点で変位検出装置62が検出する各関節の変位から計算により求めることができる。一方、計測ポイント90-2,90-3,…,90-Nのそれぞれでは、3Dセンサ70が計測対象物80の3Dデータ110-2,110-3,…,110-Nを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは、必ずしも一致しているとは限らないが、3Dデータ110-2,110-3,…,110-Nが計測された時点のロボット60の凡その位置及び姿勢は、その時点で変位検出装置62が検出する各関節の変位から計算により求めることができる。
【0038】
ここで、ロボット60に対する3Dセンサ70の相対的な位置関係は、一定であり、且つ、既知であるから、計測対象物80に対する3Dセンサ70の相対的な位置関係の変化は、計測対象物80に対するロボット60の相対的な位置関係の変化から計算により求めることができる。例えば、計測ポイント90-1でロボット60の停止中に計測された3Dデータ110-1と、計測ポイント90-2でロボット60の動作中に計測された3Dデータ110-2とに着目すると、これらの3Dデータ110-1,110-2のそれぞれが計測された時点で変位検出装置62が検出する各関節の変位の変化(ロボット60の位置及び姿勢の変化)から、計測対象物80に対する二つの計測ポイント90-1,90-2の相対的な位置関係の凡その変化を計算により求めることができる。計測システム100は、このような計算により求まる二つの計測ポイント90-1,90-2の相対的な位置関係の凡その変化に基づいて、3Dデータ110-2を3Dデータ110-1にレジストレーションする。
【0039】
レジストレーションとは、一方の3Dデータの位置及び姿勢を他方の3Dデータの位置及び姿勢に合わせるための座標変換を意味する。計測ポイント90-2で3Dセンサ70が計測対象物80の3Dデータ110-2を計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは、必ずしも、一致しているとは限らないため、3Dデータ110-1,110-2のそれぞれが計測された時点で変位検出装置62が検出する各関節の変位に基づいて、3Dデータ110-2を3Dデータ110-1にレジストレーションすると、レジストレーション誤差が生じ得る。そこで、計測システム100は、3Dデータ110-1,110-2のレジストレーション誤差が閾値未満となるように、例えば、ICP(Iterative Closest Point)などのアルゴリズムを用いて、3Dデータ110-2を3Dデータ110-1にレジストレーションする。このように、3Dデータ110-1,110-2のそれぞれが計測された時点で変位検出装置62が検出する各関節の変位の変化から推定される計測ポイント90-1,90-2の相対的な位置関係の変化と、計測ポイント90-1,90-2の相対的な位置関係の実際の変化との誤差によりレジストレーション誤差が生じたとしても、ICPなどのアルゴリズムを用いて、このレジストレーション誤差を閾値未満に低減することができる。このため、ICPなどのアルゴリズムを用いた精密なレジストレーションの前処理として、3Dデータ110-1,110-2のそれぞれが計測された時点で変位検出装置62が検出する各関節の変位に基づく大まかなレジストレーションを行うことにより、レジストレーションに要する全体の処理時間を短縮できる。
【0040】
上述の処理を経て、計測システム100は、3Dデータ110-2を3Dデータ110-1にレジストレーションする。同様にして、計測システム100は、3Dデータ110-3,110-4,…,110-Nのそれぞれを3Dデータ110-1にレジストレーションする。特定の計測ポイントの数が1つである場合、レジストレーション処理300は、(N-1)個の3Dデータ110-2,110-3,…,110-Nのそれぞれを3Dデータ110-1にレジストレーションする処理である。符号110-Sは、レジストレーション処理300を通じて得られる3Dデータを示す。3Dデータ110-Sは、センサ座標系203における計測対象物80の3Dデータである。
【0041】
計測システム100は、センサ座標系203における計測対象物80の3Dデータ110-Sを、公知の変換行列を用いて、ツール座標系202、ロボット座標系201、又はその他の座標系における計測対象物80の3Dデータに変換することができる。座標変換処理400は、センサ座標系203における計測対象物80の3Dデータ110-Sを、特定の座標系(ツール座標系202、ロボット座標系203、又はその他の座標系)に座標変換する処理である。符号110-Rは、ロボット座標系201における計測対象物80の3Dデータを示しており、
図2に示す例では、座標変換処理400により、センサ座標系203における計測対象物80の3Dデータ110-Sは、ロボット座標系201における計測対象物80の3Dデータ110-Rに変換されている。
【0042】
計測システム100は、ロボット座標系201における計測対象物80の3Dデータ110-Rに基づいてロボット60に対する計測対象物80の位置及び姿勢を計算し、ロボット60が計測対象物80を操作するための動作目標を求めることができる。例えば、ロボット60が計測対象物80を把持する操作においては、ロボット60の動作目標は、ロボットハンド63が計測対象物80を把持するために要求されるロボット60の目標位置及び目標姿勢である。
【0043】
なお、計測対象物80の3Dデータの処理は、必ずしも、座標変換処理400を要するものではなく、座標変換処理400に替えて、計測システム100の目的に応じた処理を用いてもよい。
【0044】
また、上述の説明では、説明を簡略化するため、計測ポイント90-1を特定の計測ポイントとする例を挙げたが、例えば、2つの計測ポイント90-1,90-3を特定の計測ポイントとしてもよい。この場合、例えば、3Dデータ110-4を3Dデータ110-1にレジストレーションする処理に替えて、3Dデータ110-4を3Dデータ110-3にレジストレーションし、その結果得られる3Dデータを3Dデータ110-1にレジストレーションする処理を用いてもよい。このように、特定の計測ポイント以外の何れかの計測ポイントでロボット60の動作中に計測された3Dデータを、ある特定の計測ポイントでロボット60の停止中に計測された3Dデータにレジストレーションし、その結果得られる3Dデータを、他の特定の計測ポイントでロボット60の停止中に計測された3Dデータに更にレジストレーションしてもよい。
【0045】
図3は本発明の実施形態に関わるレジストレーション処理300の一例を示す説明図である。
図3(A)において、符号110-1は、特定の計測ポイント90-1でロボット60の停止中に計測された計測対象物80の3Dデータを示す。符号110-2は、計測ポイント90-2でロボット60の動作中に計測された計測対象物80の3Dデータを示す。
【0046】
図3(B)に示すように、3Dデータ110-1,110-2のそれぞれが計測された時点で変位検出装置62が検出する各関節の変位に基づいて、3Dデータ110-2を3Dデータ110-1にレジストレーションする処理が行われる。符号110-1Aは、3Dデータ110-1の中のある一点を示し、符号110-2Aは、3Dデータ110-2の中の点110-1Aに対応する点を示す。二つの点110-1A,110-2Aは、対応する関係にあるため、これらを対応点と呼ぶ。対応点110-1A,110-2A間の距離ΔEは、レジストレーション誤差に相当する。
【0047】
図3(C)に示すように、ICPなどのアルゴリズムを用いて、レジストレーション誤差ΔEが閾値未満となるように、3Dデータ110-2を3Dデータ110-1にレジストレーションする処理が行われる。閾値は、レジストレーション処理300の精度が実用上十分な精度になる値でよい。レジストレーション誤差ΔEは、全く位置合わせがされていないと仮定したときの3Dデータ110-1,110-2のレジストレーション誤差よりも小さいと考えられるため、ICPによる対応点110-1A,110-2Aの探索及び剛体変換推定の処理回数を低減し、結果として、レジストレーション処理に要する時間を短縮できる。
【0048】
非特許文献1,2に記載のレジストレーションのアルゴリズムは、画像処理に多くの計算を要するため、計算時間が長くなることがある。これに対し、本実施形態に関わるレジストレーション処理300によれば、画像処理に要する計算が少ないため、短時間で計算を終えることができる。また、非特許文献3に記載のICPは、初期状態の3Dデータ間の誤差が大きい場合には、対応点の探索と剛体変換推定とを何度も繰り返す結果、計算時間が長くなったり、或いは、レジストレーションに失敗したりすることがある。これに対し、本実施形態に関わるレジストレーション処理300によれば、ICPによる対応点の探索及び剛体変換推定の処理回数を低減し、短時間で計算を終えることができる。また、レジストレーションのロバスト性を高めることができる。
【0049】
以上の理由により、本実施形態に関わるレジストレーション処理300は、生産性が要求されるファクトリーオートメーションの分野において有用である。
【0050】
[ハードウェア構成]
次に、
図4を参照しながら、本発明の実施形態に関わる計測システム100及び計測装置200のハードウェア構成の一例について説明する。
【0051】
計測装置200は、コンピュータシステム10と、3Dセンサ70とを備える。計測システム100は、計測装置200と、ロボット60と、ロボットコントローラ50とを備える。コンピュータシステム10は、演算装置20と、記憶装置30と、入出力インタフェース40とを備える。演算装置20は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23とを備えている。
【0052】
記憶装置30は、ディスク媒体(例えば、磁気記録媒体又は光磁気記録媒体)又は半導体メモリ(例えば、揮発性メモリ又は不揮発性メモリ)などのコンピュータ読み取り可能な記録媒体である。このような記録媒体は、例えば、非一過性の記録媒体と呼ぶこともできる。記憶装置30は、本発明の実施形態に関わる計測方法を実行するための計測プログラム31を格納している。計測プログラム31は、記憶装置30からRAM23に読み込まれ、CPU21によって解釈及び実行される。計測プログラム31は、ロボット60の動作を制御するメインプログラムとしても機能する。
【0053】
演算装置20は、入出力インタフェース40を通じて、変位検出装置62から出力されるロボット60の各関節の変位を示す情報を入力するとともに、ロボット60の各関節を駆動する駆動装置61に駆動指令を出力する。
【0054】
ロボットコントローラ50は、入出力インタフェース40を通じて、演算装置20から出力される駆動指令に応答して、ロボット60の各関節を駆動する駆動装置61の駆動(例えば、サーボモータの回転数及び回転トルク)を制御する。
【0055】
3Dセンサ70は、入出力インタフェース40を通じて、演算装置20から出力される計測指令に応答して、計測対象物80の3Dデータを計測する。
【0056】
演算装置20は、入出力インタフェース40を通じて、3Dセンサ70によって計測された計測対象物80の3Dデータと、変位検出装置62から出力されるロボット60の各関節の変位を示す情報とを入力し、3Dセンサ70による計測対象物80の3Dデータの計測を指令する計測指令と、駆動装置61の駆動を制御する駆動指令とを出力する。このとき、RAM23は、3Dセンサ70によって計測された計測対象物80の3Dデータと、変位検出装置62から出力されるロボット60の各関節の変位を示す情報とを一時的に記憶し、演算装置20によるレジストレーション処理300を行うためのワークエリアとして機能する。
【0057】
なお、
図4では、駆動装置61及び変位検出装置62がそれぞれ一つ図示されている例が示されているが、駆動装置61及び変位検出装置62のそれぞれの個数は、関節の個数と同数でよい。
【0058】
[機能構成]
図5は本発明の実施形態に関わるコンピュータシステム10の機能の一例を示すブロック図である。コンピュータシステム10のハードウェア資源と計測プログラム31との協働により、駆動制御部11、センサ制御部12、同期制御部13、レジストレーション処理部14、レジストレーション処理部15、座標変換部16、位置姿勢推定部17、及び動作目標算出部18としての機能が実現される。
【0059】
駆動制御部11は、計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動するための駆動指令を生成する。
【0060】
センサ制御部12は、計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,…,90-Nで計測対象物80の3Dデータを計測するように3Dセンサ70を制御する。
【0061】
同期制御部13は、複数の計測ポイント90-1,90-2,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を停止させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢と一致させる。特定の計測ポイント以外の何れか一つ以上の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは、一致していてもよく、或いは不一致でもよい。3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させるために、特定の計測ポイント以外でロボット60の動作を停止させる必要がなく、計測対象物80の3Dデータのレジストレーションに要する時間を短縮できる。特に、特定の計測ポイントの数が1つである場合、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させるために、ロボット60の動作を停止させる回数は1回でよいため、計測対象物80の3Dデータのレジストレーションに要する時間を短縮できる。
【0062】
レジストレーション処理部14は、特定の計測ポイントでロボット60の停止中に3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、特定の計測ポイント以外の計測ポイントでロボット60の動作中に3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の停止中に計測された計測対象物80の3Dデータにレジストレーションする。
【0063】
レジストレーション処理部15は、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータと、特定の計測ポイントでロボット60の停止中に計測された計測対象物80の3Dデータとのレジストレーション誤差が閾値未満になるように、例えば、ICPなどのアルゴリズムを用いて、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の停止中に計測された計測対象物80の3Dデータにレジストレーションする。
【0064】
座標変換部16は、特定の計測ポイント以外の各計測ポイントで計測された計測対象物80の3Dデータと特定の計測ポイントで計測された計測対象物80の3Dデータとのレジストレーション処理部14,15によるレジストレーション処理300により得られる3Dデータ110-Sを3Dセンサ70の座標系203からロボット60の座標系201に変換するための座標変換処理400を行う。
【0065】
位置姿勢推定部17は、座標変換部16により座標変換された3Dデータ110-Rに基づいてロボット60に対する測定対象物80の位置及び姿勢を推定する。
【0066】
動作目標算出部18は、ロボット60に対する測定対象物80の位置及び姿勢に基づいて、ロボット60が計測対象物80を操作するための動作目標を算出する。動作目標は、ロボット60が計測対象物80を操作するために要求されるロボット60の目標位置及び目標姿勢である。
【0067】
なお、上述の各部(駆動制御部11、センサ制御部12、同期制御部13、レジストレーション処理部14、レジストレーション処理部15、座標変換部16、位置姿勢推定部17、及び動作目標算出部18)は、必ずしも、コンピュータシステム10のハードウェア資源と計測プログラム31との協働によって実現される必要はなく、例えば、専用のハードウェア資源(例えば、特定用途向け集積回路(ASIC)、又はフィールドプログラマブルゲートアレイ(FPGA)など)を用いて実現されてもよい。
【0068】
なお、座標変換部16、位置姿勢推定部17、及び動作目標算出部18の各機能は必須ではないため、コンピュータシステム10は、これらの機能に替えて、目的に応じた他の機能を備えてもよい。
【0069】
[計測方法]
図6は、本発明の実施形態に関わる計測方法の処理の流れの一例を示すフローチャートである。この計測方法は、演算装置20による計測プログラム31の実行を通じて処理される。
【0070】
ステップ601において、駆動制御部11は、計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動するための駆動指令を生成し、生成された駆動指令をロボットコントローラ50に出力する。ロボット60の動作中又は停止中に、センサ制御部12は、計測対象物80の3Dデータを計測することを要求する計測指令を生成し、生成された計測指令を3Dセンサ70に出力する。3Dデータの計測指令は、特定の計測ポイントでロボット60が停止している最中に3Dセンサ70に出力される。また、3Dデータの計測指令は、特定の計測ポイント以外の各計測ポイントでロボット60が動作している最中に3Dセンサ70に出力される。
【0071】
ステップ602において、3Dセンサ70は、センサ制御部12からの計測指令に応答して計測対象物80の3Dデータを計測し、同時に、変位検出装置62は、計測対象物80の3Dデータが計測された時点におけるロボット60の各関節の変位を検出する。3Dセンサ70により計測された計測対象物80の3Dデータは、3Dセンサ70から入出力インタフェース40を通じて、RAM23に転送される。同様に、変位検出装置62により検出されたロボット60の各関節の変位を示す情報は、変位検出装置62からロボットコントローラ50及び入出力インタフェース40を通じて、RAM23に転送される。
【0072】
ステップ603において、レジストレーション処理部14は、RAM23に格納されている計測情報(計測対象物80の3Dデータ及びロボット60の各関節の変位を示す情報)を読み取り、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の停止中に計測された計測対象物80の3Dデータにレジストレーションする。レジストレーション処理部15は、レジストレーション処理部14によるレジストレーション誤差が閾値未満になるように、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の停止中に計測された計測対象物80の3Dデータにレジストレーションする。ステップ603の処理内容は、レジストレーション処理300と同じである。
【0073】
ステップ604において、座標変換部16は、ステップ603のレジストレーション処理により得られる3Dデータ110-Sを3Dセンサ70の座標系203からロボット60の座標系201に変換する。ステップ604の処理内容は、座標変換処理400と同じである。
【0074】
ステップ605において、位置姿勢推定部17は、ステップ604により座標変換された3Dデータ110-Rに基づいてロボット60に対する測定対象物80の位置及び姿勢を推定する。
【0075】
ステップ606において、動作目標算出部18は、ステップ605で推定された測定対象物80の位置及び姿勢に基づいて、ロボット60が計測対象物80を操作するための動作目標(目標位置及び目標姿勢)を算出する。
【0076】
ステップ607において、駆動制御部11は、ロボット60の位置及び姿勢が、ステップ606で算出された目標位置及び目標姿勢に一致するように、ロボット60の各関節を駆動するための駆動指令を生成し、生成された駆動指令をロボットコントローラ50に出力する。
【0077】
なお、ステップ604~607の処理は、本発明の実施形態に関わる計測方法に必須ではないため、本発明の実施形態に関わる計測方法は、これらの処理に替えて、計測システム100の計測目的に応じた他の処理を含んでもよい。また、ステップ604,605の順序を入れ替えてもよい。例えば、センサ座標系203において、ロボット60に対する測定対象物80の位置及び姿勢を推定し、次に、ロボット60に対する測定対象物80の位置及び姿勢をセンサ座標系203からロボット座標系201に変換してもよい。
【0078】
特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させるための手法として、コンピュータシステム10によるソフトウェア的な手法と、ロボットコントローラ50によるハードウェア的な手法とがある。
【0079】
ソフトウェア的な手法では、例えば、コンピュータシステム10は、ロボット60の各関節の変位を示す情報の転送をロボットコントローラ50に要求するコマンドをロボットコントローラ50に送信することにより、ロボット60の各関節の変位を示す情報を変位検出装置62からロボットコントローラ50を通じて受信するとともに、同時に、コンピュータシステム10は、計測対象物80の3Dデータの計測を3Dセンサ70に指示することにより、計測対象物80の3Dデータを3Dセンサ70から取得する。
【0080】
ハードウェア的な手法では、例えば、ロボットコントローラ50は、ロボット60の各関節の変位を示す情報を変位検出装置62から取得するとともに、同時に、計測対象物80の3Dデータの計測を3Dセンサ70に指示する。ロボット60の各関節の変位を示す情報は、ロボットコントローラ50からコンピュータシステム10に転送されるとともに、計測対象物80の3Dデータは、3Dセンサ70からコンピュータシステム10に転送される。
【0081】
なお、ロボット60は、ファクトリーオートメーションに用いられる産業ロボットに限定されるものではなく、例えば、サービス業に用いられるロボット(例えば、オペレーティングロボット、医療用ロボット、掃除ロボット、レスキューロボット、セキュリティロボットなど)でもよい。
【0082】
[発明の実施形態2]
ここでは、発明の実施形態2と発明の実施形態1との相違点を中心に説明し、実施形態1,2に共通する説明を省略する。
発明の実施形態1では、計測システム100は、複数の計測ポイント90-1,90-2,90-3,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を停止させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させる。これに対し、発明の実施形態2では、計測システム100は、複数の計測ポイント90-1,90-2,90-3,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を減速させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させる。
【0083】
3Dセンサ70が特定の計測ポイントを通過する直前のロボット60の動作速度が、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させることができるロボット60の動作速度(以下、「許容動作速度」と呼ぶ)を超えている場合には、計測システム100は、3Dセンサ70が特定の計測ポイントを通過するときのロボット60の動作速度を許容動作速度以下に減速させる。特定の計測ポイントでは、計測システム100は、ロボット60の減速中に計測対象物80の3Dデータを計測するとともに、3Dデータが計測された時点におけるロボット60の各関節の変位を検出する。このとき、特定の計測ポイントでは、ロボット60の動作は許容動作速度以下に減速しているため、特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するタイミングと、変位検出装置62がロボット60の各関節の変位を検出するタイミングとが同期していなくても、特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させることができる。
【0084】
特定の計測ポイント以外の各計測ポイントでは、計測システム100は、ロボット60の動作中に計測対象物80の3Dデータを計測するとともに、各3Dデータが計測された時点におけるロボット60の各関節の変位を検出する。特定の計測ポイント以外の計測ポイントでは、3Dセンサ70が計測対象物80の3Dデータを計測するタイミングと、変位検出装置62がロボット60の各関節の変位を検出するタイミングとは、必ずしも、同期しているとは限らず、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは、必ずしも、一致しているとは限らない。 ロボット60の動作を減速させる特定の計測ポイントの数は、1以上N-1以下の正数であればよい。
【0085】
発明の実施形態2では、発明の実施形態1と同様に、コンピュータシステム10のハードウェア資源と計測プログラム31との協働により、駆動制御部11、センサ制御部12、同期制御部13、レジストレーション処理部14、レジストレーション処理部15、座標変換部16、位置姿勢推定部17、及び動作目標算出部18としての機能が実現される。
【0086】
発明の実施形態2の同期制御部13は、複数の計測ポイント90-1,90-2,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を減速させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢と一致させる点において、発明の実施形態1の同期制御部13とは異なる。
【0087】
発明の実施形態2のレジストレーション処理部14は、特定の計測ポイントでロボット60の減速中に3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、特定の計測ポイント以外の計測ポイントでロボット60の動作中に3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の減速中に計測された計測対象物80の3Dデータにレジストレーションする点において、実施形態1のレジストレーション処理部14とは異なる。
【0088】
発明の実施形態2のレジストレーション処理部15は、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータと、特定の計測ポイントでロボット60の減速中に計測された計測対象物80の3Dデータとのレジストレーション誤差が閾値未満になるように、例えば、ICPなどのアルゴリズムを用いて、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の減速中に計測された計測対象物80の3Dデータにレジストレーションする点において、実施形態1のレジストレーション処理部15とは異なる。
【0089】
発明の実施形態2によれば、複数の計測ポイントのうち何れか特定の計測ポイントでロボット60の動作を停止させる場合よりも、計測対象物80の3Dデータのレジストレーションに要する時間を短縮できる。
【0090】
[発明の実施形態3]
ここでは、発明の実施形態3と、発明の実施形態1,2の相違点を中心に説明し、実施形態1乃至3に共通する説明を省略する。
発明の実施形態1,2では、計測システム100は、複数の計測ポイント90-1,90-2,90-3,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を停止又は減速させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させる。これに対し、発明の実施形態3では、計測対象物80に対する3Dセンサ70の位置が特定の計測ポイントに一致するときのロボット60の各関節の変位は、特定の値として既知であり、ロボット60の各関節の変位が特定の値に一致するときに、変位検出装置62は、計測対象物80の3Dデータの計測を要求する計測指令を3Dセンサ70に出力することにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢を一致させる。発明の実施形態3では、変位検出装置62は、ロボット60の各関節の変位を検出するエンコーダと、計測指令を3Dセンサ70に出力する信号出力装置とを備える。
【0091】
特定の計測ポイントでは、ロボット60の各関節の変位は、特定の値として既知であるため、ロボット60の各関節の変位が特定の値に一致するときに、変位検出装置62は、計測対象物80の3Dデータの計測を要求する計測指令を3Dセンサ70に出力することにより、特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するタイミングと、変位検出装置62がロボット60の各関節の変位を検出するタイミングとが同期していなくても、特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させることができる。
【0092】
特定の計測ポイント以外の各計測ポイントでは、計測システム100は、ロボット60の動作中に計測対象物80の3Dデータを計測するとともに、各3Dデータが計測された時点におけるロボット60の各関節の変位を検出する。特定の計測ポイント以外の計測ポイントでは、3Dセンサ70が計測対象物80の3Dデータを計測するタイミングと、変位検出装置62がロボット60の各関節の変位を検出するタイミングとは、必ずしも、同期しているとは限らず、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とは、必ずしも、一致しているとは限らない。ロボット60の各関節の変位が特定の値に一致するときに、変位検出装置62が、計測対象物80の3Dデータの計測を要求する計測指令を3Dセンサ70に出力する特定の計測ポイントの数は、1以上N-1以下の正数であればよい。
【0093】
なお、ロボット60の各関節の変位が特定の値に一致してから、変位検出装置62が計測対象物80の3Dデータの計測を要求する計測指令を3Dセンサ70に出力するまでの遅延時間Td1と、3Dセンサ70が変位検出装置62から計測要求を受信してから計測対象物80の3Dデータの計測を完了するまでの遅延時間Td2とが生じ得る。合計の遅延時間Td=Td1+Td2がロボット60の移動速度と比較して無視できない程度に大きい場合には、計測システム100は、ロボット60の各関節の変位が特定の値に一致するときの時刻から遅延時間Tdが経過したときの時刻でのロボット60の各関節の変位を、計測対象物80に対する3Dセンサ70の位置が特定の計測ポイントに一致するときのロボット60の各関節の変位と見做してもよい。これにより、遅延時間Tdが補正された精度の高いレジストレーション処理を行うことができる。
【0094】
発明の実施形態3では、発明の実施形態1,2と同様に、コンピュータシステム10のハードウェア資源と計測プログラム31との協働により、駆動制御部11、センサ制御部12、レジストレーション処理部14、レジストレーション処理部15、座標変換部16、位置姿勢推定部17、及び動作目標算出部18としての機能が実現される。発明の実施形態3では、変位検出装置62は、発明の実施形態1,2の同期制御部13の機能と同等の機能を備えるため、発明の実施形態3のコンピュータシステム10は、発明の実施形態1,2の同期制御部13の機能と同等の機能を備えていなくてもよい。
【0095】
発明の実施形態3のレジストレーション処理部14は、特定の計測ポイントでロボット60の動作中に3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、特定の計測ポイント以外の計測ポイントでロボット60の動作中に3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位に基づいて、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータにレジストレーションする点において、実施形態1,2のレジストレーション処理部14とは異なる。
【0096】
発明の実施形態3のレジストレーション処理部15は、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータと、特定の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータとのレジストレーション誤差が閾値未満になるように、例えば、ICPなどのアルゴリズムを用いて、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータにレジストレーションする点において、実施形態1,2のレジストレーション処理部15とは異なる。
【0097】
発明の実施形態3によれば、複数の計測ポイントのうち何れか特定の計測ポイントでロボット60の動作を停止又は減速させる必要がないため、計測対象物80の3Dデータのレジストレーションに要する時間を短縮できる。
【0098】
[発明の実施形態4]
ここでは、発明の実施形態4と、発明の実施形態1乃至3の相違点を中心に説明し、実施形態1乃至4に共通する説明を省略する。
発明の実施形態4では、コンピュータシステム10とロボットコントローラ50との間、及びロボットコントローラ50とロボット60との間は、フィールドバスを通じて接続されている。発明の実施形態4では、コンピュータシステム10とロボットコントローラ50との間、及びロボットコントローラ50とロボット60との間に加えて、コンピュータシステム10と3Dセンサ70との間も、フィールドバスを通じて接続されてもよい。一方、発明の実施形態1乃至3では、コンピュータシステム10とロボットコントローラ50との間、ロボットコントローラ50とロボット60との間、及びコンピュータシステム10と3Dセンサ70との間は、必ずしも、フィールドバスを通じて接続されることを要しない。
【0099】
フィールドバスは、計測・制御用機器間の通信に用いられるデジタルネットワークである。フィールドバスとして、例えば、イーサキャットを用いてもよい。イーサキャットによれば、分散クロック機能により、各デバイス(コンピュータシステム10、ロボットコントローラ50、ロボット60、及び3Dセンサ70)が時刻情報を共有することにより、短い時間単位(例えば、250μs)で各デバイスの動作を同期させることができる。3Dセンサ70が計測対象物80の3Dデータを計測するときの時刻と、変位検出装置62がロボット60の各関節の変位を検出するときの時刻との時間差に相当する遅延時間Td0がロボット60の動作速度に比較して無視できない程度である場合は、計測システム100は、遅延時間Td0に基づいて、上述の時間差を補正する処理を行ってもよい。例えば、計測対象物80に対する3Dセンサ70の位置が特定の計測ポイントに一致するときのロボット60の各関節の変位が、特定の値として既知である場合には、計測システム100は、ロボット60の各関節の変位が特定の値に一致するときの時刻から遅延時間Td0が経過したときの時刻でのロボット60の各関節の変位を、計測対象物80に対する3Dセンサ70の位置が特定の計測ポイントに一致するときのロボット60の各関節の変位と見做してもよい。
【0100】
また、計測システム100は、センサ制御部12が計測対象物80の3Dデータを計測することを要求する計測指令を3Dセンサ70に出力するときの時刻を時系列的に記憶してもよい。また、ロボット60は、変位検出装置62がロボット60の各関節の変位を検出するときの時刻を、その時刻で検出されたロボット60の各関節の変位と関連付けて、時系列的に記憶してもよい。計測対象物80の3Dデータを計測することを要求する計測指令が3Dセンサ70に出力されたときの時刻に一致する時刻で変位検出装置62により検出されたロボット60の各関節の変位を、計測対象物80の3Dデータが計測されたときのロボット60の各関節の変位として見做してもよい。
【0101】
発明の実施形態4では、発明の実施形態1,2と同様に、コンピュータシステム10のハードウェア資源と計測プログラム31との協働により、駆動制御部11、センサ制御部12、レジストレーション処理部14、レジストレーション処理部15、座標変換部16、位置姿勢推定部17、及び動作目標算出部18としての機能が実現される。発明の実施形態4では、フィールドバスを通じて、各デバイス(コンピュータシステム10、ロボットコントローラ50、ロボット60、及び3Dセンサ70)の動作が同期しているため、発明の実施形態4のコンピュータシステム10は、発明の実施形態1,2の同期制御部13の機能と同等の機能を備えていなくてもよい。
【0102】
発明の実施形態4のレジストレーション処理部14は、特定の計測ポイントでロボット60の動作中に3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、特定の計測ポイント以外の計測ポイントでロボット60の動作中に3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータにレジストレーションする点において、実施形態1,2のレジストレーション処理部14とは異なる。
【0103】
発明の実施形態4のレジストレーション処理部15は、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータと、特定の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータとのレジストレーション誤差が閾値未満になるように、例えば、ICPなどのアルゴリズムを用いて、特定の計測ポイント以外の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータを、特定の計測ポイントでロボット60の動作中に計測された計測対象物80の3Dデータにレジストレーションする点において、実施形態1,2のレジストレーション処理部15とは異なる。
【0104】
発明の実施形態4によれば、複数の計測ポイントのうち何れか特定の計測ポイントでロボット60の動作を停止又は減速させる必要がないため、計測対象物80の3Dデータのレジストレーションに要する時間を短縮できる。
【0105】
上述の実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限定されない。
(付記1)
ロボット60に搭載される3Dセンサ70であって、計測対象物80の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサ70と、
ロボット60の各関節の変位を検出する変位検出装置62と、
計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動する駆動装置61と、
計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,…,90-Nで計測対象物80の3Dデータを計測するように3Dセンサ70を制御するセンサ制御部12と、
複数の計測ポイント90-1,90-2,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を停止させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させる同期させる同期制御部13と、
ロボット60の停止中に特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションする第1のレジストレーション処理部14と、
ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータと、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータとのレジストレーション誤差が閾値未満になるように、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションする第2のレジストレーション処理部15と、
を備える計測システム100。
(付記2)
付記1に記載の計測システム100であって、
特定の計測ポイント以外の何れか一つ以上の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するタイミングと、変位検出装置62がロボット60の各関節の変位を検出するタイミングとが非同期である、計測システム100。
(付記3)
付記1又は2に記載の計測システム100であって、
同期制御部13がロボット60の動作を停止させる回数は、複数の計測ポイント90-1,90-2,…,90-Nの数より少ない、計測システム100。
(付記4)
付記1乃至3のうち何れか1項に記載の計測システムであって、
特定の計測ポイントは、複数の計測ポイント90-1,90-2,…,90-Nのうち何れか一つの計測ポイントである、計測システム100。
(付記5)
付記1乃至4のち何れか1項に記載の計測システム100であって、
特定の計測ポイント以外の各計測ポイントで計測された計測対象物80の3Dデータと特定の計測ポイントで計測された計測対象物80の3Dデータとの第1のレジストレーション処理部14及び第2のレジストレーション処理部15によるレジストレーションにより得られる3Dデータを3Dセンサ70の座標系からロボット60の座標系に変換する座標変換部16と、
座標変換部16により座標変換された3Dデータに基づいてロボット60に対する測定対象物80の位置及び姿勢を推定する位置姿勢推定部17と、
を更に備える計測システム100。
(付記6)
ロボット60の各関節の変位を検出する変位検出装置62から出力される変位を示す情報を入力するとともに、ロボット60の各関節を駆動する駆動装置61に駆動指令を出力する計測装置200であって、
ロボット60に搭載される3Dセンサ70であって、計測対象物80の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサ70と、
計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動するための駆動指令を生成する駆動制御部11と、
計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,…,90-Nで計測対象物80の3Dデータを計測するように3Dセンサ70を制御するセンサ制御部12と、
複数の計測ポイント90-1,90-2,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を停止させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させる同期制御部13と、
ロボット60の停止中に特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションする第1のレジストレーション処理部14と、
ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータと、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータとのレジストレーション誤差が閾値未満になるように、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションする第2のレジストレーション処理部15と、
を備える計測装置200。
(付記7)
ロボット60に搭載される3Dセンサ70であって、計測対象物80の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサ70を備えるとともに、ロボット60の各関節の変位を検出する変位検出装置62から出力される変位を示す情報を入力し、且つ、ロボット60の各関節を駆動する駆動装置61に駆動指令を出力する計測装置200が、
計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動するための駆動指令を生成するステップと、
計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,…,90-Nで計測対象物80の3Dデータを計測するように3Dセンサ70を制御するステップと、
複数の計測ポイント90-1,90-2,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を停止させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させるステップと、
ロボット60の停止中に特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションするステップと、
ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータと、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータとのレジストレーション誤差が閾値未満になるように、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションするステップと、
を実行する計測方法。
(付記8)
ロボット60に搭載される3Dセンサ70であって、計測対象物80の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサ70を備えるとともに、ロボット60の各関節の変位を検出する変位検出装置62から出力される変位を示す情報を入力し、且つ、ロボット60の各関節を駆動する駆動装置61に駆動指令を出力する計測装置200に、
計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動するための駆動指令を生成するステップと、
計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,…,90-Nで計測対象物80の3Dデータを計測するように3Dセンサ70を制御するステップと、
複数の計測ポイント90-1,90-2,…,90-Nのうち何れか特定の計測ポイントでロボット60の動作を停止させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させるステップと、
ロボット60の停止中に特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションするステップと、
ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータと、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータとのレジストレーション誤差が閾値未満になるように、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、ロボット60の停止中に特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションするステップと、
を実行させる計測プログラム31。
(付記9)
ロボット60に搭載される3Dセンサ70であって、計測対象物80の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサ70と、
ロボット60の各関節の変位を検出する変位検出装置62と、
計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動する駆動装置61と、
計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,…,90-Nで計測対象物80の3Dデータを計測するように3Dセンサ70を制御するセンサ制御部12と、
複数の計測ポイント90-1,90-2,…,90-Nのうち何れか特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションする第1のレジストレーション処理部14と、
を備える計測システム100。
(付記10)
付記9に記載の計測システム100であって、
特定の計測ポイントでロボット60の動作を停止又は減速させることにより、3Dセンサ70が計測対象物80の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させる同期制御部13を更に備え、
第1のレジストレーション処理部14は、ロボット60の停止中又は減速中に特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、ロボット60の動作中に特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、ロボット60の停止中又は減速中に特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションする、計測システム100。
(付記11)
付記9に記載の計測システム100であって、
計測対象物80に対する3Dセンサ70の位置が特定の計測ポイントに一致するときのロボット60の各関節の変位は、特定の値として既知であり、
ロボット60の各関節の変位が特定の値に一致するときに、変位検出装置62は、計測対象物80の3Dデータの計測を要求する計測指令を3Dセンサ70に出力する、計測システム100。
(付記12)
付記9に記載の計測システム100であって、
センサ制御部12及び第1のレジストレーション処理部14は、フィールドバスを通じて変位検出装置62に接続されている、計測システム100。
(付記13)
付記10に記載の計測システム100であって、
特定の計測ポイント以外の何れか一つ以上の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測するタイミングと、変位検出装置62がロボット60の各関節の変位を検出するタイミングとが非同期である、計測システム100。
(付記14)
付記10に記載の計測システム100であって、
同期制御部13がロボット60の動作を停止又は減速させる回数は、複数の計測ポイントの数より少ない、計測システム100。
(付記15)
付記10に記載の計測システム100であって、
特定の計測ポイントは、複数の計測ポイントのうち何れか一つの計測ポイントである、計測システム100。
(付記16)
付記9乃至15のち何れか1項に記載の計測システム100であって、
特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータと、特定の計測ポイントで計測された計測対象物80の3Dデータとのレジストレーション誤差が閾値未満になるように、特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションする第2のレジストレーション処理部15を更に備える、計測システム100。
(付記17)
付記16に記載の計測システム100であって、
特定の計測ポイント以外の各計測ポイントで計測された計測対象物80の3Dデータと特定の計測ポイントで計測された計測対象物80の3Dデータとの第1のレジストレーション処理部14及び第2のレジストレーション処理部15によるレジストレーションにより得られる3Dデータを3Dセンサ70の座標系からロボット60の座標系に変換する座標変換部16と、
座標変換部16により座標変換された3Dデータに基づいてロボット60に対する測定対象物80の位置及び姿勢を推定する位置姿勢推定部17と、
を更に備える計測システム100。
(付記18)
ロボット60の各関節の変位を検出する変位検出装置62から出力される変位を示す情報を入力するとともに、ロボット60の各関節を駆動する駆動装置61に駆動指令を出力する計測装置200であって、
ロボット60に搭載される3Dセンサであって、計測対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサと、
計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動するための駆動指令を生成する駆動制御部11と、
計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,…,90-Nで計測対象物80の3Dデータを計測するように3Dセンサ70を制御するセンサ制御部12と、
複数の計測ポイント90-1,90-2,…,90-Nのうち何れか特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションするレジストレーション処理部14と、
を備える計測装置200。
(付記19)
ロボット60に搭載される3Dセンサ70であって、計測対象物80の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサ70を備えるとともに、ロボット60の各関節の変位を検出する変位検出装置62から出力される変位を示す情報を入力し、且つ、ロボット60の各関節を駆動する駆動装置61に駆動指令を出力する計測装置200が、
計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動するための駆動指令を生成するステップと、
計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,…,90-Nで計測対象物80の3Dデータを計測するように3Dセンサ70を制御するステップと、
複数の計測ポイントのうち何れか特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションするステップと、
を実行する計測方法。
(付記20)
ロボット60に搭載される3Dセンサ70であって、計測対象物80の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサ70を備えるとともに、ロボット60の各関節の変位を検出する変位検出装置62から出力される変位を示す情報を入力し、且つ、ロボット60の各関節を駆動する駆動装置61に駆動指令を出力する計測装置200に、
計測対象物80に対する3Dセンサ70の相対的な位置関係を変えるようにロボット60の各関節を駆動するための駆動指令を生成するステップと、
計測対象物80に対する3Dセンサ70の相対的な位置関係が異なる複数の計測ポイント90-1,90-2,…,90-Nで計測対象物80の3Dデータを計測するように3Dセンサ70を制御するステップと、
複数の計測ポイントのうち何れか特定の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位と、特定の計測ポイント以外の計測ポイントで3Dセンサ70が計測対象物80の3Dデータを計測した時点におけるロボット60の各関節の変位とに基づいて、特定の計測ポイント以外の計測ポイントで計測された計測対象物80の3Dデータを、特定の計測ポイントで計測された計測対象物80の3Dデータにレジストレーションするステップと、
を実行させる計測プログラム31。
【符号の説明】
【0106】
10…コンピュータシステム 20…演算装置 21…CPU 22…ROM 23…RAM 30…記憶装置 31…計測プログラム 40…入出力インタフェース 50…ロボットコントローラ 60…ロボット 61…駆動装置 62…変位検出装置 70…3Dセンサ 80…計測対象物 100…計測システム 200…計測装置