(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-12
(45)【発行日】2023-10-20
(54)【発明の名称】計測システム、計測装置、計測方法及び計測プログラム
(51)【国際特許分類】
G01B 11/00 20060101AFI20231013BHJP
B25J 13/08 20060101ALI20231013BHJP
【FI】
G01B11/00 H
B25J13/08 A
(21)【出願番号】P 2020188701
(22)【出願日】2020-11-12
【審査請求日】2023-01-12
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100139066
【氏名又は名称】伊藤 健太郎
(72)【発明者】
【氏名】付 星斗
【審査官】信田 昌男
(56)【参考文献】
【文献】特開2020-180914(JP,A)
【文献】特開2015-182144(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01B 11/00
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
ロボットに搭載される3Dセンサであって、対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサと、
前記ロボットの各関節の変位を検出する変位検出装置と、
前記ロボットの各関節を駆動させる駆動装置と、
1又は複数の計測ポイントで前記対象物の3Dデータを計測するように前記3Dセンサを制御するセンサ制御部と、
前記対象物に対して前記ロボットによる第1操作が行われる前に計測された前記対象物の3Dデータと、前記対象物に対して前記ロボットによる前記第1操作が行われた後に前記センサ制御部によって前記1又は複数の計測ポイントで計測された前記対象物の3Dデータとを3D合成する合成部と、
前記3D合成により得られた3Dデータにより示される前記対象物の表面の各点の3次元座標に基づいて、前記ロボットによる第2操作を制御する駆動指令を前記駆動装置に出力するロボット制御部と、
を備える計測システム。
【請求項2】
前記合成部は、前記対象物に対して前記ロボットによる前記第1操作が行われる前に計測された前記対象物の3Dデータから前記第1操作が行われた部分を削除して事前3Dデータを生成し、前記事前3Dデータと、前記対象物に対して前記ロボットによる前記第1操作が行われた後に前記センサ制御部によって前記1又は複数の計測ポイントで計測された前記対象物の3Dデータとを3D合成する、
請求項1に記載の計測システム。
【請求項3】
前記3Dセンサは、前記対象物に対して前記ロボットにより行われる複数の操作のうち初回の操作が行われる前に、前記ロボットの停止中に特定の計測ポイントで前記対象物の初期3Dデータを計測し、
前記変位検出装置は、前記初回の操作が行われる前に、前記ロボットの停止中に前記特定の計測ポイントで前記ロボットの各関節の初期変位を検出し、
前記初期3Dデータ及び前記初期変位に基づいて、センサ座標系からロボット座標系への変換を算出し、前記3D合成により得られる3Dデータにより示される前記対象物の表面の各点の3次元座標を、前記センサ座標系から前記ロボット座標系に変換する変換部をさらに備える、
請求項1又は2に記載の計測システム。
【請求項4】
前記ロボット制御部は、前記初期3Dデータの計測及び前記初期変位の検出が行われた後、前記ロボットを停止させずに前記複数の操作を連続的に行うように前記ロボットを制御する、
請求項3に記載の計測システム。
【請求項5】
前記センサ制御部は、前記ロボットの各関節が駆動している間に前記1又は複数の計測ポイントで前記対象物の3Dデータを計測するように前記3Dセンサを制御する、
請求項1から4のいずれか一項に記載の計測システム。
【請求項6】
前記1又は複数の計測ポイントで前記3Dセンサが前記対象物の3Dデータを計測するタイミングと、前記変位検出装置が前記ロボットの各関節の変位を検出するタイミングとは非同期である、
請求項5に記載の計測システム。
【請求項7】
ロボットの各関節の変位を検出する変位検出装置から出力される前記変位を示す情報を入力するとともに、前記ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置であって、
前記ロボットに搭載される3Dセンサであって、対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサと、
1又は複数の計測ポイントで前記対象物の3Dデータを計測するように前記3Dセンサを制御するセンサ制御部と、
前記対象物に対して前記ロボットによる第1操作が行われる前に計測された前記対象物の3Dデータと、前記対象物に対して前記ロボットによる前記第1操作が行われた後に前記センサ制御部によって前記1又は複数の計測ポイントで計測された前記対象物の3Dデータとを3D合成する合成部と、
前記3D合成により得られた3Dデータにより示される前記対象物の表面の各点の3次元座標に基づいて、前記ロボットによる第2操作を制御する前記駆動指令を出力するロボット制御部と、
を備える計測装置。
【請求項8】
ロボットに搭載される3Dセンサであって、対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサを備えるとともに、前記ロボットの各関節の変位を検出する変位検出装置から出力される前記変位を示す情報を入力し、且つ、前記ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置が、
1又は複数の計測ポイントで前記対象物の3Dデータを計測するように前記3Dセンサを制御することと、
前記対象物に対して前記ロボットによる第1操作が行われる前に計測された前記対象物の3Dデータと、前記対象物に対して前記ロボットによる前記第1操作が行われた後に前記1又は複数の計測ポイントで計測された前記対象物の3Dデータとを3D合成することと、
前記3D合成により得られた3Dデータにより示される前記対象物の表面の各点の3次元座標に基づいて、前記ロボットによる第2操作を制御する前記駆動指令を出力することと、
を実行する計測方法。
【請求項9】
ロボットに搭載される3Dセンサであって、対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサを備えるとともに、前記ロボットの各関節の変位を検出する変位検出装置から出力される前記変位を示す情報を入力し、且つ、前記ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置に、
1又は複数の計測ポイントで前記対象物の3Dデータを計測するように前記3Dセンサを制御することと、
前記対象物に対して前記ロボットによる第1操作が行われる前に計測された前記対象物の3Dデータと、前記対象物に対して前記ロボットによる前記第1操作が行われた後に前記1又は複数の計測ポイントで計測された前記対象物の3Dデータとを3D合成することと、
前記3D合成により得られた3Dデータにより示される前記対象物の表面の各点の3次元座標に基づいて、前記ロボットによる第2操作を制御する前記駆動指令を出力することと、
を実行させる計測プログラム。
【発明の詳細な説明】
【技術分野】
【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センサと、ロボットの各関節の変位を検出する変位検出装置と、ロボットの各関節を駆動させる駆動装置と、1又は複数の計測ポイントで対象物の3Dデータを計測するように3Dセンサを制御するセンサ制御部と、対象物に対してロボットによる第1操作が行われる前に計測された対象物の3Dデータと、対象物に対してロボットによる第1操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータとを3D合成する合成部と、3D合成により得られた3Dデータにより示される対象物の表面の各点の3次元座標に基づいて、ロボットによる第2操作を制御する駆動指令を駆動装置に出力するロボット制御部と、を備える。
【0013】
この態様によれば、対象物に対してロボットによる第1操作が行われる前に計測された対象物の3Dデータを保持し、対象物に対してロボットによる第1操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータと3D合成することで、対象物に対してロボットによる第1操作が行われた後の状態の対象物の3Dデータをより高速に、よりロバストに生成することができる。その結果、3Dデータに基づく対象物の認識をより高速且つ確実にし、ロボットによる対象物の第2操作をより高い効率で行うことができる。
【0014】
上記態様において、合成部は、対象物に対してロボットによる第1操作が行われる前に計測された対象物の3Dデータから第1操作が行われた部分を削除して事前3Dデータを生成し、事前3Dデータと、対象物に対してロボットによる第1操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータとを3D合成してもよい。
【0015】
この態様によれば、直前の操作において計測した事前3Dデータと、当該操作後に新たに計測した1又は複数の3Dデータとを3D合成することで、対象物の3Dデータをより高速に、よりロバストに生成することができる。
【0016】
上記態様において、3Dセンサは、対象物に対してロボットにより行われる複数の操作のうち初回の操作が行われる前に、ロボットの停止中に特定の計測ポイントで対象物の初期3Dデータを計測し、変位検出装置は、初回の操作が行われる前に、ロボットの停止中に特定の計測ポイントでロボットの各関節の初期変位を検出し、初期3Dデータ及び初期変位に基づいて、センサ座標系からロボット座標系への変換を算出し、3D合成により得られる3Dデータにより示される対象物の表面の各点の3次元座標を、センサ座標系からロボット座標系に変換する変換部をさらに備えてもよい。
【0017】
この態様によれば、3Dデータに基づくロボットによる対象物の操作をより正確に行うことができる。
【0018】
上記態様において、ロボット制御部は、初期3Dデータの計測及び初期変位の検出が行われた後、ロボットを停止させずに複数の操作を連続的に行うようにロボットを制御してもよい。
【0019】
この態様によれば、3Dデータの計測のためにロボットを停止させることなく、複数の操作を連続的に実行することができ、作業効率を向上させることができる。
【0020】
上記態様において、センサ制御部は、ロボットの各関節が駆動している間に1又は複数の計測ポイントで対象物の3Dデータを計測するように3Dセンサを制御してもよい。
【0021】
この態様によれば、ロボットの動作を停止させることなく対象物の3Dデータを計測することで、ロボットによる対象物の操作をより効率的に行うことができる。
【0022】
上記態様において、1又は複数の計測ポイントで3Dセンサが対象物の3Dデータを計測するタイミングと、変位検出装置がロボットの各関節の変位を検出するタイミングとは非同期であってもよい。
【0023】
この態様によれば、3Dセンサが対象物の3Dデータを計測するときのロボットの位置及び姿勢と、変位検出装置がロボットの各関節の変位を検出するときのロボットの位置及び姿勢とを一致させるために、ロボットの動作を停止させる必要がないため、対象物の3Dデータの計測に要する時間を短縮できる。
【0024】
本開示の他の態様に係る計測装置は、ロボットの各関節の変位を検出する変位検出装置から出力される変位を示す情報を入力するとともに、ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置であって、ロボットに搭載される3Dセンサであって、対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサと、1又は複数の計測ポイントで対象物の3Dデータを計測するように3Dセンサを制御するセンサ制御部と、対象物に対してロボットによる第1操作が行われる前に計測された対象物の3Dデータと、対象物に対してロボットによる第1操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータとを3D合成する合成部と、3D合成により得られた3Dデータにより示される対象物の表面の各点の3次元座標に基づいて、ロボットによる第2操作を制御する駆動指令を出力するロボット制御部と、を備える。
【0025】
この態様によれば、対象物に対してロボットによる第1操作が行われる前に計測された対象物の3Dデータを保持し、対象物に対してロボットによる第1操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータと3D合成することで、対象物に対してロボットによる第1操作が行われた後の状態の対象物の3Dデータをより高速に、よりロバストに生成することができる。その結果、3Dデータに基づく対象物の認識をより高速且つ確実にし、ロボットによる対象物の第2操作をより高い効率で行うことができる。
【0026】
本開示の他の態様に係る計測方法は、ロボットに搭載される3Dセンサであって、対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサを備えるとともに、ロボットの各関節の変位を検出する変位検出装置から出力される変位を示す情報を入力し、且つ、ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置が、1又は複数の計測ポイントで対象物の3Dデータを計測するように3Dセンサを制御することと、対象物に対してロボットによる第1操作が行われる前に計測された対象物の3Dデータと、対象物に対してロボットによる第1操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータとを3D合成することと、3D合成により得られた3Dデータにより示される対象物の表面の各点の3次元座標に基づいて、ロボットによる第2操作を制御する駆動指令を出力することと、を実行する。
【0027】
この態様によれば、対象物に対してロボットによる第1操作が行われる前に計測された対象物の3Dデータを保持し、対象物に対してロボットによる第1操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータと3D合成することで、対象物に対してロボットによる第1操作が行われた後の状態の対象物の3Dデータをより高速に、よりロバストに生成することができる。その結果、3Dデータに基づく対象物の認識をより高速且つ確実にし、ロボットによる対象物の第2操作をより高い効率で行うことができる。
【0028】
本開示の他の態様に係る計測プログラムは、ロボットに搭載される3Dセンサであって、対象物の表面の各点の3次元座標を示す3Dデータを計測する3Dセンサを備えるとともに、ロボットの各関節の変位を検出する変位検出装置から出力される変位を示す情報を入力し、且つ、ロボットの各関節を駆動する駆動装置に駆動指令を出力する計測装置に、1又は複数の計測ポイントで対象物の3Dデータを計測するように3Dセンサを制御することと、対象物に対してロボットによる第1操作が行われる前に計測された対象物の3Dデータと、対象物に対してロボットによる第1操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータとを3D合成することと、3D合成により得られた3Dデータにより示される対象物の表面の各点の3次元座標に基づいて、ロボットによる第2操作を制御する駆動指令を出力することと、を実行させる。
【0029】
この態様によれば、対象物に対してロボットによる第1操作が行われる前に計測された対象物の3Dデータを保持し、対象物に対してロボットによる第1操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータと3D合成することで、対象物に対してロボットによる第1操作が行われた後の状態の対象物の3Dデータをより高速に、よりロバストに生成することができる。その結果、3Dデータに基づく対象物の認識をより高速且つ確実にし、ロボットによる対象物の第2操作をより高い効率で行うことができる。
【0030】
なお、本開示において、「部」及び「装置」とは、単に物理的手段を意味するものではなく、その「部」及び「装置」が有する機能をソフトウェアによって実現する構成も含む。また、1つの「部」及び「装置」が有する機能が2つ以上の物理的手段や装置によって実現されてもよく、或いは、2つ以上の「部」及び「装置」の機能が1つの物理的手段や装置によって実現されてもよい。さらに、「部」及び「装置」とは、例えば「手段」及び「システム」と言い換えることも可能な概念である。
【発明の効果】
【0031】
本開示によれば、対象物の3Dデータの計測に要する時間を短縮できる計測システム、計測装置、計測方法、及び計測プログラムを提供することができる。
【図面の簡単な説明】
【0032】
【
図1】本開示の実施形態に係る計測システムの構成の一例を示す図である。
【
図2】本実施形態に係る計測システムによって行われる対象物に対する操作の一例を示す図である。
【
図3】本実施形態に係る計測システム及び計測装置のハードウェア構成を模式的に示す図である。
【
図4】本実施形態に係る計測システムの機能構成の一例を模式的に示す図である。
【
図5】本実施形態に係る計測システムによって実行される処理を模式的に示す図である。
【
図6】本実施形態に係る計測システムによって実行される処理のフローチャートである。
【発明を実施するための形態】
【0033】
以下、本開示の一例に係る実施形態について、図面を参照して説明する。但し、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本開示の一例は、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付しており、図面は模式的なものであって、必ずしも実際の寸法や比率等とは一致しない。さらに、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。また、以下に説明する実施形態は本開示の一部の実施形態であって、全ての実施形態ではないことは言うまでもない。さらに、本開示の実施形態に基づいて、当業者が創造性のある行為を必要とせずに得られる他の実施形態は、いずれも本開示の保護範囲に含まれる。
【0034】
§1 適用例
まず、
図1及び
図2を用いて、本開示の一例が適用される場面の一例について説明する。
図1は、本実施形態に係る計測システム100の構成の一例を示す図であり、
図2は、本実施形態に係る計測システム100によって行われる対象物5に対する操作の一例を示す図である。本実施形態に係る計測システム100は、例えばビン等の収納容器6内にばら積みされた1又は複数のワーク(対象物)5を、ロボット60により、収納容器6から取り出して他の収納容器7等へ移載し、整列させて配置する操作(
図2の移動経路P1)、及び/又は、あるワーク5を移載し終えたロボット60を、次のワーク5を取り出すために、収納容器6側へ復帰させる操作(
図2の移動経路P2)を行うことができる。なお、ワーク5は、収納容器6内ではなく、例えば、テーブルや台等に平積みされていてもよい。また、ワーク5の種類は、特に制限されず、例えば、自動車のパワートレイン系(例えば、エンジン、又はトランスミッション等)の機械部品、又は電装系の電子部品等を挙げることができる。また、計測システム100は、ロボット60の他、そのロボット60に設けられた3Dセンサ1と、3Dセンサ1及びロボット60に接続されたコンピュータシステム10を備える。
【0035】
3Dセンサ1は、ロボット60に搭載され、ワーク5の表面の各点の3次元座標を示す3Dデータを計測する。本実施形態において、3Dセンサ1は、ロボット60のアーム3の先端部に搭載されており、
図1及び
図2に示すように、ワーク5を所定の視野(角)で且つ所定の計測パラメータで撮像する。3Dセンサ1は、例えば、点群を計測する距離センサであったり、距離センサと2次元センサとを組み合わせて距離画像を取得する距離画像センサであったりしてよい。ここで、距離センサは、奥行情報としての距離dを計測するセンサである。2次元センサは、2次元の画像を撮影するイメージセンサであり、2次元の画像は、距離dを画素値としない点において距離画像とは異なる。距離画像センサは、例えば、2次元センサの撮影位置を変えながらワーク5の複数の2次元の画像を撮影し、ステレオ立体視の画像処理により、距離dを画素値とする距離画像を取得するカメラでもよい。または、距離画像センサは、ワーク5を複数の異なる方向から同時に撮影することにより、距離dを画素値とする距離画像を取得するステレオカメラでもよい。
【0036】
また、3Dセンサ1は、必要に応じて、適宜の計測光(例えば、アクティブ方式で用いられるパターン光やスキャン光等)を含むいわゆる3D用照明や、通常の照明であるいわゆる2D用照明をワーク5へ投射するプロジェクタ(図示せず)を有していてもよい。かかるプロジェクタの構成も特に制限されず、例えば、パターン光を投射するものの場合、レーザ光源、パターンマスク及びレンズを備える構成を例示することができる。レーザ光源から出射された光は、所定のパターンが形成されたパターンマスクによって所定のパターンを有する計測光(パターン光)に変換され、レンズを介してワーク5へ投射される。
【0037】
「所定のパターン」は、特に制限されず、例えばアクティブワンショット方式で用いられる種々のパターンを例示することができる。より具体的には、例えば、複数のラインが所定の間隔で2次元に配置されたいわゆるラインベースのパターン、互いに区別可能な複数種類の単位画像、単位図形、幾何学形状等が2次元に配置(規則的でもランダムでもよく、規則的な部分とランダムな部分が混合又は重畳されていてもよい。)されたいわゆるエリアベースのパターン、縦横ラインのグリッドにグラフシンボル等が配置されたいわゆるグリッドグラフベースのパターン等が挙げられる。なお、各所定のパターンは、エンコード用に、例えばラインや単位図形を区別するためのID情報を含んでいてもよい。
【0038】
また、ワーク5の計測方式としては、特に制限されず、例えば、光の直進性を用いる種々のアクティブ計測方式(例えば、三角測距を基本原理とする空間コード化パターン投影方式、時間コード化パターン投影方式、モアレトポグラフィ方式等)、光の直進性を用いる種々のパッシブ計測方式(例えば、三角測距を基本原理とするステレオカメラ方式、視体積交差方式、因子分解方式等、同軸測距を基本原理とするDepth from focusing方式等)、及び、光の速度を用いる種々のアクティブ計測方式(例えば、同時測距を基本原理とする飛行時間方式(Time of Flight)、レーザースキャン方式等)を適宜選択して用いることができる。
【0039】
ワーク5の3Dデータとしては、それらの種々の計測方式で取得されるデータ(例えば3次元点群データや距離画像等)、また、ワーク5の3次元モデルデータと照合することが可能な適宜のデータ等を例示できる。ここで、ワーク5の3次元モデルデータとしては、例えば、3次元座標データ、その3次元座標データをワーク5の種々の異なる位置姿勢に対応して2次元投影した2次元座標データ、その他適宜のテンプレートやパターンに対応するデータ等が挙げられる。なお、ワーク5の認識において、3次元モデルデータとの照合は必須ではなく、モデルデータを用いない(いわゆるモデルレス)認識も適用可能である。
【0040】
ロボット60は、ワーク5を操作(例えば、把持、吸着、移動、組み立て、又は挿入等)するためのハンド2と、そのハンド2が先端部に設けられたアーム3を備える多関節ロボット(例えば、垂直多関節ロボット、水平多関節ロボット)である。ロボット60には、ワーク5を操作するようにロボット60の各関節を駆動させるサーボモータ等の駆動装置と、各関節の変位(角度変位)を検出するためのエンコーダ等の変位検出装置が組み込まれている。また、ロボット60は、自律的に動作するマニピュレータとして動作し、例えば、ワーク5のピッキング、組み立て、搬送、塗装、検査、研磨、又は洗浄等の様々な用途に用いることができる。
【0041】
ハンド2は、エンドエフェクタの一例であり、個々のワーク5を把持し且つ解放(掴み且つ離す)動作が可能な把持機構を有する。アーム3は、ハンド2を収納容器6内のワーク5の把持位置(ピックアップ位置)へ移動し、且つ、ワーク5を把持したハンド2をその把持位置から他の収納容器7における解放位置(ドロップ位置)へと移動するための駆動機構を有する。
【0042】
コンピュータシステム10は、3Dセンサ1及びロボット60のそれぞれに接続されており、3Dセンサ1によるワーク5の計測処理、ハンド2によるワーク5の操作処理、ロボット60(ハンド2及びアーム3等)の駆動処理の他、計測システム100において必要とされる種々の動作や演算に関する処理を制御する。
【0043】
本実施形態に係る計測システム100は、例えば、1又は複数のワーク5を収納容器6から取り出して他の収納容器7へ移載し、整列させて配置するタスク等を、ロボット60をワーク5の計測のために停止させることなく、複数回連続的に行うことができる。計測システム100は、ワーク5に対する操作を開始する前に、ロボット60の停止中に特定の計測ポイントで収納容器6内のワーク5の初期3Dデータを計測し、あわせてロボット60の各関節の初期変位を検出する。これにより、3Dデータにより示されるワーク5の表面の各点の3次元座標を、センサ座標系からロボット座標系に変換する変換式が得られる。
【0044】
その後、計測システム100は、アーム3を動かし、ハンド2によって収納容器6内のワーク5の把持等の操作を行った後に、3Dセンサ1によって1又は複数の計測ポイントで収納容器6内の残りのワーク5の3Dデータを計測する。計測システム100は、例えば、アーム3が移動経路P1及び移動経路P2を移動する途中に3Dセンサ1によって残りのワーク5の3Dデータを計測する。
【0045】
計測システム100は、初期3Dデータからロボット60による操作(例えばワーク5のピックアップ)が行われた部分を、例えば後述するレンダリングとマスクを用いた画像処理により削除して事前3Dデータを生成する。その後、計測システム100は、アーム3を動かしながら1又は複数の計測ポイントで計測されたワーク5の3Dデータと、事前3Dデータとを3D合成する。3D合成(3D Integration)は、例えば、ICP(Iterative Closest Point)等のアルゴリズムを用いて、一方の3Dデータの位置及び姿勢を他方の3Dデータの位置及び姿勢に合わせることで行われる。そして、計測システム100は、3D合成により得られた3Dデータにより示されるワーク5の表面の各点の3次元座標に基づいて、ロボット60による収納容器6内のワーク5に対する次の操作を制御する。
【0046】
さらに、計測システム100は、収納容器6内のワーク5に対する操作を続けて行う場合に、直前に3D合成により得られた3Dデータからロボット60による操作が行われた部分を削除して事前3Dデータを生成(更新)する。その後、計測システム100は、アーム3を動かしながら1又は複数の計測ポイントで計測されたワーク5の3Dデータと、事前3Dデータとを3D合成し、3D合成により得られた3Dデータにより示されるワーク5の表面の各点の3次元座標に基づいて、ロボット60による収納容器6内のワーク5に対する次の操作を制御する。
【0047】
このように、計測システム100は、ワーク5に対してロボット60による操作が行われる前に計測されたワーク5の3Dデータと、ワーク5に対してロボット60による操作が行われた後に1又は複数の計測ポイントで計測されたワーク5の3Dデータとを3D合成し、3D合成により得られた3Dデータによってワーク5を認識して、ロボット60による次の操作を制御する。
【0048】
従来、ワーク5のピックアップ等の操作を行う場合には、新たな操作を行う前にロボット60を停止させてワーク5の3Dデータを計測し、操作対象とするワーク5を認識することがある。このような方法では、操作毎にロボット60を停止させる必要があるため、作業効率が低下するおそれがある。この点、本実施形態に係る計測システム100は、初回の操作の際にロボット60を停止させてセンサ座標系とロボット座標系の対応関係を明らかにし、その後の操作においては、ロボット60を停止させることなく操作対象とするワーク5を認識することができ、ロボット60を停止させて3Dデータを計測する場合よりもタクトタイムが短くなり、作業効率を向上させることができる。また、本実施形態に係る計測システム100は、直前の操作の際に生成した3Dデータを使いまわすことで、ゼロから3Dデータを生成する場合よりも計算量を減らし、3D合成のロバスト性を向上させることができる。
【0049】
§2 構成例
[ハードウェア構成]
次に、
図3を参照しながら、本発明の実施形態に係る計測システム100及び計測装置200のハードウェア構成の一例について説明する。
【0050】
計測装置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とを備えている。
【0051】
記憶装置30は、ディスク媒体(例えば、磁気記録媒体又は光磁気記録媒体)又は半導体メモリ(例えば、揮発性メモリ又は不揮発性メモリ)などのコンピュータ読み取り可能な記録媒体である。このような記録媒体は、例えば、非一過性の記録媒体と呼ぶこともできる。記憶装置30は、少なくとも事前データ31及び計測プログラム32を格納している。事前データ31は、ワーク5に対してロボット60により初回の操作が行われる前に、ロボット60の停止中に特定の計測ポイントで計測されたワーク5の初期3Dデータと、ロボット60の停止中に特定の計測ポイントで検出されたロボット60の各関節の初期変位と、ワーク15に対してロボット60による操作が行われる前に計測されたワーク5の3Dデータから操作が行われた部分を削除して得られる事前3Dデータとを含む。計測プログラム32は、記憶装置30からRAM23に読み込まれ、CPU21によって解釈及び実行される。計測プログラム32は、ロボット60の動作を制御するメインプログラムとしても機能する。
【0052】
演算装置20は、入出力インタフェース40を通じて、変位検出装置62から出力されるロボット60の各関節の変位を示す情報を入力するとともに、ロボット60の各関節を駆動する駆動装置61に駆動指令を出力する。
【0053】
ロボットコントローラ50は、入出力インタフェース40を通じて、演算装置20から出力される駆動指令に応答して、ロボット60の各関節を駆動する駆動装置61の駆動(例えば、サーボモータの回転数及び回転トルク)を制御する。
【0054】
3Dセンサ1は、入出力インタフェース40を通じて、演算装置20から出力される計測指令に応答して、ワーク5の3Dデータを計測する。
【0055】
演算装置20は、入出力インタフェース40を通じて、3Dセンサ1によって計測されたワーク5の3Dデータと、変位検出装置62から出力されるロボット60の各関節の変位を示す情報とを入力し、3Dセンサ1によるワーク5の3Dデータの計測を指令する計測指令と、駆動装置61の駆動を制御する駆動指令とを出力する。このとき、RAM23は、3Dセンサ1によって計測されたワーク5の3Dデータと、変位検出装置62から出力されるロボット60の各関節の変位を示す情報とを一時的に記憶し、演算装置20によるレジストレーション処理300を行うためのワークエリアとして機能する。
【0056】
なお、
図3では、駆動装置61及び変位検出装置62がそれぞれ一つ図示されている例が示されているが、駆動装置61及び変位検出装置62のそれぞれの個数は、関節の個数と同数でよい。
【0057】
[機能構成]
図4は、本実施形態に係る計測システム100の機能構成の一例を模式的に示す図である。コンピュータシステム10のハードウェア資源と計測プログラム32との協働により、ロボット制御部11、センサ制御部12、合成部13及び変換部14としての機能が実現される。
【0058】
コンピュータシステム10におけるロボット制御部11、センサ制御部12、合成部13及び変換部14は、汎用プロセッサによって実現することができ、本開示においては限定されず、これらの部品の全部又は一部の機能を専用回路(例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等)を用いて実現してもよい。さらに、一部の処理をネットワーク接続された外部装置に担当させてもよい。
【0059】
センサ制御部12は、1又は複数の計測ポイントで対象物の3Dデータを計測するように3Dセンサ1を制御する。複数の計測ポイントは、対象物に対する3Dセンサ1の相対的な位置関係がそれぞれ異なる。センサ制御部12は、ロボット60の各関節が駆動している間に1又は複数の計測ポイントで対象物の3Dデータを計測するように3Dセンサ1を制御する。センサ制御部12は、例えば、ロボット60のアーム3が駆動している間に1又は複数の計測ポイントで対象物の3Dデータを計測するように3Dセンサ1を制御する。このように、ロボット60の動作を停止させることなく対象物の3Dデータを計測することで、ロボット60による対象物の操作をより効率的に行うことができる。
【0060】
1又は複数の計測ポイントで3Dセンサ1が対象物の3Dデータを計測するタイミングと、変位検出装置62がロボット60の各関節の変位を検出するタイミングとは非同期であってよい。これにより、3Dセンサ1が対象物の3Dデータを計測するときのロボット60の位置及び姿勢と、変位検出装置62がロボット60の各関節の変位を検出するときのロボット60の位置及び姿勢とを一致させるために、ロボット60の動作を停止させる必要がないため、対象物の3Dデータの計測に要する時間を短縮できる。
【0061】
合成部13は、対象物に対してロボット60による或る操作が行われる前に計測された対象物の3Dデータと、対象物に対してロボット60による当該操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータとを3D合成する。ここで、合成部13は、対象物に対してロボット60による或る操作が行われる前に計測された対象物の3Dデータから当該操作が行われた部分を削除して事前3Dデータを生成し、事前3Dデータと、対象物に対してロボット60による当該操作が行われた後に1又は複数の計測ポイントで計測された対象物の3Dデータとを3D合成する。このように、直前の操作の前に計測した3Dデータに基づく事前3Dデータと、新たに計測した1又は複数の3Dデータとを3D合成することで、直前の操作後における対象物の3Dデータをより高速に、よりロバストに生成することができる。
【0062】
3Dセンサ1は、対象物に対してロボット60により行われる複数の操作のうち初回の操作が行われる前に、ロボット60の停止中に特定の計測ポイントで対象物の初期3Dデータを計測する。また、変位検出装置62は、初回の操作が行われる前に、ロボット60の停止中に特定の計測ポイントでロボット60の各関節の初期変位を検出する。そして、変換部14は、初期3Dデータ及び初期変位に基づいて、センサ座標系からロボット座標系への変換を算出し、3D合成により得られる3Dデータにより示される対象物の表面の各点の3次元座標を、センサ座標系からロボット座標系に変換する。これにより、3Dデータに基づくロボット60による対象物の操作をより正確に行うことができる。もっとも、計測システム100は、ロボット60の各関節の初期変位を用いずに、画像解析によって、3D合成により得られる3Dデータにより示される対象物の表面の各点の3次元座標を、センサ座標系からロボット座標系に変換してもよい。
【0063】
ロボット制御部11は、3D合成により得られた3Dデータにより示される対象物の表面の各点の3次元座標に基づいて、ロボット60による操作を制御する駆動指令を駆動装置61に出力する。ロボット制御部11は、初期3Dデータの計測及び初期変位の検出が行われた後、ロボット60を停止させずに複数の操作を連続的に行うようにロボット60を制御する。これにより、3Dデータの計測のためにロボット60を停止させることなく、複数の操作を連続的に実行することができ、作業効率を向上させることができる。
【0064】
§3 動作例
【0065】
図5は、本実施形態に係る計測システム100によって実行される処理を模式的に示す図である。同図では、ロボット60により対象物Objに対してピックアップ操作を行う場合に生成される3Dデータの例を示している。
【0066】
計測システム100は、ロボット60により対象物Objに対してピックアップ操作を行う前に生成されたn番目(nは正の整数)の3DデータD1(3D data [n])について、ピックアップ操作が行われた領域Rを削除して、事前3DデータD2(Updated 3D data)を得る。また、計測システム100は、対象物Objのピックアップ操作を行った後に1又は複数の計測ポイントで3Dデータを計測し、n+1番目の3DデータD3(New 3D data [n+1])を得る。
【0067】
より具体的には、例えば、まず、ピックアップ操作を行う前の3DデータD1における対象物Objの位置姿勢情報(3Dデータ)と、仮想3D空間において異なる複数の(多数の)視点に配置された仮想カメラの撮像パラメータに基づいて、当該3DデータD1を取得したカメラの撮像位置における対象物Objのイメージ(画像)を、適宜のレンダリングシステムやレンダラーを用いて生成する。次に、生成された対象物Objのイメージを二値化(バイナライズ)することによって背景画像から分離し、当該対象物Objが含まれる領域(上記領域Rに相当)を覆うマスクを生成する。このマスクとしては、例えば、対象物Objを含む矩形状又は円形状などの枠どり(bounding box)や、対象物Objの輪郭内の領域を塗りつぶしたもの(blob)などが挙げられる。そして、そのマスクを、ピックアップ操作前に生成された3DデータD1に適用する(例えば重ね合わせる)ことにより、その3DデータD1から、ピックアップ操作が行われた領域Rを削除することができ、これにより事前3DデータD2が得られる。なお、かかる領域Rの削除処理は、センサ座標系における3Dデータに対して行ってもよいし、変換後のロボット座標系における3Dデータに対して行ってもよく、また、上記の例示に限定されない。
【0068】
そして、計測システム100は、事前3DデータD2とn+1番目の3DデータD3とを3D合成することで、新たに合成された3DデータD4(Newly integrated 3D data)を得る。新たに合成された3DデータD4は、事前3DデータD2に含まれる領域R以外のデータと、n+1番目の3DデータD3に含まれる領域R以外のデータとをマッチングさせ、n+1番目の3DデータD3に含まれる領域Rのデータを統合することで生成される。計測システム100は、新たに合成された3DデータD4を用いて対象物を認識し、ロボット60によって対象物の操作を行う。また、新たに合成された3DデータD4は、次に行われる操作において、事前3Dデータとして用いられる。
【0069】
このように、計測システム100は、ロボット60により対象物の操作を行う毎に3Dデータを生成し直すのではなく、直前の操作において生成した3Dデータを再利用することで、3Dデータをより高速且つよりロバストに生成することができる。
【0070】
なお、3DデータD4の3D合成の仕方は、上述の手法に限らず、事前3DデータD2と1又は複数の計測ポイントで計測された対象物の3Dデータとを用いた種々の手法を採用することができる。例えば、ICPに換えて、又は、ICPに加えて、ロボット60の各関節の初期変位と、各計測ポイントで3Dセンサ1が3Dデータを計測した時点におけるロボットの各関節の変位とに基づいて、各計測ポイントで計測された3Dデータを、事前3DデータD2に3D合成してもよい。
【0071】
図6は、本実施形態に係る計測システム100によって実行される処理のフローチャートである。計測システム100は、はじめに、ロボット60の停止中に特定の計測ポイントで対象物の初期3Dデータを計測する(S10)。また、計測システム100は、ロボット60の停止中に特定の計測ポイントでロボット60の各関節の初期変位を検出する(S11)。そして、計測システム100は、初期3Dデータ及び初期変位に基づいて、センサ座標系からロボット座標系への変換を算出する(S12)。
【0072】
その後、計測システム100は、ロボット60を停止させずに1又は複数の計測ポイントで対象物の3Dデータ及びロボット60の各関節の変位を計測する(S13)。3Dデータ及びロボット60の各関節の変位の計測は、例えば、ロボット60のハンド2によって対象物を移送する間に行われてよい。
【0073】
計測システム100は、事前3Dデータと、1又は複数の計測ポイントで計測された3Dデータとを3D合成する(S14)。ここで、事前3Dデータは、初回の操作の場合、初期3Dデータである。また、計測システム100は、3D合成により得られる3Dデータにより示される3次元座標を、センサ座標系からロボット座標系に変換する(S15)。この際、先に算出したセンサ座標系からロボット座標系への変換を用いてよい。
【0074】
計測システム100は、3次元座標に基づいて、ロボット60による操作を制御する(S16)。計測システム100は、例えば、ロボット60のハンド2によって対象物をピックアップし、所定の場所に移送するようにロボット60を制御する。
【0075】
計測システム100は、3Dデータからロボット60による操作が行われた部分を削除して事前3Dデータを生成する(S17)。例えば、ロボット60により対象物のピックアップが行われた場合、ピックアップされた対象物を含む領域を3Dデータから削除する。こうして生成された事前3Dデータは、続いて行われる3D合成において用いられる。
【0076】
対象物に対する操作が終了していない場合(S18:NO)、計測システム100は、処理S13~S17を再び実行する。ここで、処理S14にて用いられる事前3Dデータは、操作が行われる度に更新される。
【0077】
以上説明した実施形態及び変形例は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態及び変形例が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態及び変形例で示した構成同士を部分的に置換し又は組み合わせることも可能である。
【0078】
すなわち、上述した対象物の検査を行うときの照明条件を設定する装置、システム又はその一部をソフトウェア機能ユニットの形態で実現して単独の製品として販売したり使用したりする場合、コンピュータが読み取り可能な記憶媒体に記憶することができる。これにより、本発明の技術案の本質又は既存技術に貢献のある部分あるいは該技術案の全部又は一部をソフトウェア製品の形態で実現して、コンピュータ機器(パーソナルコンピュータ、サーバ又は、ネットワーク機器等であることができる)に本発明の各実施例に記載の方法のステップの中の全部又は一部を実現させる命令を含むそのコンピューターソフトウェア製品を、記憶媒体に記憶することができる。上述した記憶媒体は、USB、読み出し専用メモリ(ROM:Read-Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、モバイルハードディスク、フロッピーディスク又は光ディスク等のプログラムコードを記憶できるさまざまな媒体である。
【符号の説明】
【0079】
1…3Dセンサ、2…ハンド、3…アーム、5…ワーク(対象物)、6,7…収納容器、10…コンピュータシステム、11…ロボット制御部、12…センサ制御部、13…合成部、14…変換部、20…演算装置、21…CPU、22…ROM、23…RAM、30…記憶装置、31…事前データ、32…計測プログラム、40…入出力インタフェース、50…ロボットコントローラ、60…ロボット、61…駆動装置、62…変位検出装置、70…3Dセンサ、80…対象物、100…計測システム、200…計測装置