JP6163942B2 - 情報処理装置、制御方法、及びプログラム - Google Patents

情報処理装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP6163942B2
JP6163942B2 JP2013156386A JP2013156386A JP6163942B2 JP 6163942 B2 JP6163942 B2 JP 6163942B2 JP 2013156386 A JP2013156386 A JP 2013156386A JP 2013156386 A JP2013156386 A JP 2013156386A JP 6163942 B2 JP6163942 B2 JP 6163942B2
Authority
JP
Japan
Prior art keywords
feature point
image
virtual
information
virtual device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013156386A
Other languages
English (en)
Other versions
JP2015024480A (ja
Inventor
秀城 阿部
秀城 阿部
高橋 文之
文之 高橋
正芳 橋間
正芳 橋間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013156386A priority Critical patent/JP6163942B2/ja
Publication of JP2015024480A publication Critical patent/JP2015024480A/ja
Application granted granted Critical
Publication of JP6163942B2 publication Critical patent/JP6163942B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本発明は、情報処理装置、制御方法、及びプログラムに関する。
ものづくりの現場では、組み立て装置や検査装置などの様々な装置が使用される。こうした装置はワーク(対象物)の位置や姿勢を制御するロボットを有する。さらに、こうした装置には、オペレータがワークやロボットの位置や姿勢を確認したり、ワークの外観を視認したりすることができるように装置内にカメラが設置される。オペレータは、カメラで撮像した撮像画像を見ながらロボットなどを制御する操作を行う。また、カメラで撮像した撮像画像は、ロボットのキャリブレーションに利用されることもある。
例えば、カメラで撮像したワークの画像情報から、ワークの位置情報を計測する第1の方法が提案されている。第1の方法には、ワーク置場に載置されているワークの基準位置を示すマスタデータが利用される。このマスタデータはCAD(Computer Aided Design)情報を用いて得られるデータである。第1の方法に係る装置は、撮像画像から得られたワークの3次元特徴点位置と、マスタデータが示すワークの3次元特徴点位置とのずれ量を計算し、計算したずれ量を利用してロボットアームの軌道を補正する。
なお、ステレオカメラの撮像画像から抽出した特徴点に基づき、カメラ座標系とロボット座標系とを変換する剛体変換行列を計算する第2の方法が提案されている。第2の方法に係る装置は、最小二乗法を利用して、カメラ座標系における冶具座標系の原点座標を推定する。また、ロボットにマーカを固定し、3次元空間上に複数の基準点を設定し、ロボットを操作してマーカを各々の基準点に位置決めし、基準点とマーカをカメラ画像に投影した位置との差分を最小化するパラメータを計算する第3の方法が提案されている。
特開2009−248214号公報 特開2011−011321号公報 特開2006−110705号公報
ここで、ワークやロボットなどが設置された現実装置を仮想空間内に再現した仮想装置を利用して、現実装置の制御や検査作業などを補助するシステムについて考える。
現実装置内に設置されたロボットの部品やワークは3次元CADデータなどの3次元情報により記述できる。また、仮想装置内に設置されたロボットの部品やワークも3次元情報により記述できる。そのため、現実装置の3次元情報に基づいて仮想装置を同期制御することが可能である。
但し、設計誤差などにより現実装置と3次元情報とにずれが生じている場合、仮想装置を利用して検査や教示などを行うと作業結果にずれの影響が出る。そこで、本件発明者は、仮想装置のキャリブレーション方法について鋭意検討を行った。
1つの側面によれば、本発明の目的は、簡易にキャリブレーションを実現することが可能な情報処理装置、制御方法、及びプログラムを提供することにある。
本開示の1つの側面によれば、対象物と、対象物が設置されるロボットと、対象物及びロボットの少なくとも一部を撮像するカメラとを含む現実装置の3次元情報を記憶する記憶部と、3次元情報に基づいて現実装置を仮想空間内に再現した仮想装置を生成し、現実装置の動作に仮想装置の動作を同期させ、仮想装置のカメラで撮像される第1画像を生成し、現実装置で撮像された第2画像と、第2画像に対応する第1画像との差に基づいて仮想装置の制御パラメータを調整する演算部と、を有する、情報処理装置が提供される。
本開示の他の1つの側面によれば、対象物と、対象物が設置されるロボットと、対象物及びロボットの少なくとも一部を撮像するカメラとを含む現実装置の3次元情報を記憶するメモリを有するコンピュータが、3次元情報に基づいて現実装置を仮想空間内に再現した仮想装置を生成し、現実装置の動作に仮想装置の動作を同期させ、仮想装置のカメラで撮像される第1画像を生成し、現実装置で撮像された第2画像と、第2画像に対応する第1画像との差に基づいて仮想装置の制御パラメータを調整する制御方法が提供される。
本開示の他の1つの側面によれば、対象物と、対象物が設置されるロボットと、対象物及びロボットの少なくとも一部を撮像するカメラとを含む現実装置の3次元情報を記憶するメモリを有するコンピュータに、3次元情報に基づいて現実装置を仮想空間内に再現した仮想装置を生成し、現実装置の動作に仮想装置の動作を同期させ、仮想装置のカメラで撮像される第1画像を生成し、現実装置で撮像された第2画像と、第2画像に対応する第1画像との差に基づいて仮想装置の制御パラメータを調整する処理を実行させるプログラムが提供される。
以上説明したように本発明によれば、簡易にキャリブレーションを実現することが可能になる。
第1実施形態に係るシステムの一例を示した図である。 第2実施形態に係るシステムの一例を示した図である。 第2実施形態に係る現実装置の一例を示した図である。 第2実施形態に係る現実装置の機構について説明するための図である。 第2実施形態に係る制御装置の機能を実現可能なハードウェアの一例を示した図である。 第2実施形態に係る制御装置が有する機能について説明するための図である。 第2実施形態に係る情報処理装置が有する機能について説明するための図である。 第2実施形態に係るシステムが行う動作の一例を示した図である。 第2実施形態に係る情報処理装置が実行する検査範囲の抽出処理について説明するための図である。 第2実施形態に係る現実装置と仮想装置との間で生じる誤差の誤差要因について説明するための図である。 第2実施形態に係る特徴点の指定方法及びキャリブレーションに利用されるパラメータの例について説明するための図である。 第2実施形態に係る特徴点の自動抽出方法について説明するための図である。 第2実施形態に係る情報処理装置が実行するキャリブレーション処理の流れを示したフロー図である。 第2実施形態に係る情報処理装置が実行するキャリブレーション処理の中で実行されるパラメータ計算の処理フローを示したフロー図である。 第2実施形態の一変形例に係る特徴点の指定方法及びキャリブレーションに利用されるパラメータの例について説明するための図である。 第2実施形態の一変形例に係る情報処理装置が実行するキャリブレーション処理の中で実行されるパラメータ計算の処理フローを示したフロー図である。
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
<1.第1実施形態>
図1を参照しながら、第1実施形態について説明する。図1は、第1実施形態に係るシステムの一例を示した図である。
図1に示すように、第1実施形態に係るシステムは、現実装置10、及び情報処理装置20を含む。現実装置10は、対象物OBJと、対象物OBJが設置されるロボットと、対象物OBJ及びロボットの少なくとも一部を撮像するカメラとを含む。
情報処理装置20は、記憶部21及び演算部22を有する。
記憶部21の機能は、RAM(Random Access Memory)などの揮発性記憶装置、或いは、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置により実現される。
演算部22の機能は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサにより実現される。演算部22の機能は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのプロセッサ以外の電子回路を利用して実現することも可能である。
演算部22は、例えば、記憶部21又は他のメモリに記憶されたプログラムを実行する。
記憶部21は、現実装置10の3次元情報を記憶する。例えば、記憶部21は、現実装置10に含まれる対象物OBJやロボットの形状や位置などを示す3次元CADデータを記憶する。つまり、現実装置10の設計情報が記憶部21に記憶されている。演算部22は、記憶部21が記憶している3次元情報に基づいて現実装置10を仮想空間内に再現した仮想装置23を生成する。
図1に示すように、仮想装置23は、現実装置10のカメラに対応するカメラ24、及び現実装置10のロボットに対応するロボット25を含む。また、現実装置10のロボットに対象物OBJが設置されている場合には、仮想装置23のロボット25にも対象物OBJが設置される。演算部22は、現実装置10の動作に仮想装置23の動作を同期させる。つまり、演算部22は、現実装置10の状態が変更されると、変更後の現実装置10の状態と同じ状態になるように仮想装置23の状態を制御する。
例えば、現実装置10においてカメラを制御する制御パラメータBが変更された場合には、演算部22によりカメラ24の制御パラメータBが同じ値に変更される。同様に、現実装置10においてロボットを制御する制御パラメータAが変更された場合には、演算部22によりロボット25の制御パラメータAが同じ値に変更される。現実装置10に含まれる他の機構を制御する制御パラメータが変更された場合も、その制御パラメータに対応する仮想装置23の制御パラメータが演算部22により変更される。
演算部22は、仮想装置23のカメラ24で撮像される第1画像P1を生成する。仮想装置23では現実装置10の環境が再現されているため、シミュレーションによりカメラ24で撮像される第1画像P1は、現実装置10で撮像された第2画像P2と同じ画像となる。但し、現実装置10を製造する段階で設置誤差や組み立て誤差などが生じると、設計情報である3次元情報に基づいて生成された仮想装置23と現実装置10との間でずれが生じる。この場合、現実装置10で撮像された第2画像P2と、仮想装置23で撮像された第1画像P1との間にもずれが生じる。
演算部22は、現実装置10で撮像された第2画像P2と、第2画像P2に対応する第1画像P1との差に基づいて仮想装置23の制御パラメータA、B、…を調整する。第1画像P1上の1点を示す2次元座標(以下、2次元座標xv)は、3次元情報を利用することで、その点に対応する仮想空間内の3次元座標Q、及び制御パラメータA、B、…から決まる。つまり、2次元座標xv、3次元座標Q、制御パラメータA、B、…の関係を表現するモデルを構築することができる。現実装置10についても同様である。
第1画像P1上で特徴点を決めると、特徴点の2次元座標xv、第1画像P1の生成時に設定されている仮想装置23の制御パラメータA、B、…、及び、2次元座標xvに対応する3次元座標Qが得られる。また、第1画像P1上の特徴点に対応する第2画像P2上の特徴点が決まると、特徴点の2次元座標(以下、2次元座標xr)が得られる。
演算部22は、例えば、第1画像P1及び第2画像P2の組を複数用意し、特徴点について2次元座標xv、xr、3次元座標Q、及び仮想装置23の制御パラメータA、B、…を取得する。そして、演算部22は、取得した情報及び上記のモデルを利用して現実装置10の制御パラメータA、B、…と仮想装置23の制御パラメータA、B、…との間の誤差dA、dB、…を推定する。例えば、演算部22は、最小二乗法などを利用して制御パラメータの誤差dA、dB、…を計算する。計算結果を得た演算部22は、計算した制御パラメータの誤差dA、dB、…を仮想装置23の制御パラメータA、B、…に適用する。例えば、演算部22は、仮想装置23の制御パラメータをA+dA、B+dB、…とする。
上記の方法によれば、ステレオ画像などの3次元的な画像情報を利用せず、2次元画像だけを利用して容易に仮想装置23の制御パラメータを調整することが可能になる。また、上記の方法によれば、現実装置10側及び仮想装置23側において通常の運用時に利用される撮像画像を利用してキャリブレーションが行える。そのため、追加設備を設けずに済み、キャリブレーション機能の追加によるコストの増加を抑制できる。
以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。
[2−1.システム]
まず、図2を参照しながら、第2実施形態に係るシステムについて説明する。図2は、第2実施形態に係るシステムの一例を示した図である。
図2に示すように、第2実施形態に係るシステムは、現実装置100、制御装置200、情報処理装置300、及び表示装置250、350を含む。
現実装置100は、カメラ101、設置台102、照明103、及びロボット104を有する。なお、カメラ101、設置台102、照明103、及びロボット104の動作は、制御装置200により制御される。
カメラ101は、ロボット104に設置されたワークWKを含む範囲を撮像する撮像デバイスである。カメラ101は、例えば、レンズなどの光学系、CCD(Charge Coupled Device)やCMOS(Complementary Metal-Oxide Semiconductor)などの撮像素子、及び、A/D変換やデジタル信号処理などを実行する画像処理プロセッサなどを含む。
設置台102は、照明103やロボット104を固定する台である。照明103は、設置台102上に設置され、ロボット104に設置されたワークWKを含む領域を照明する光源である。ロボット104は、ワークWKを把持し、ワークWKの位置を移動させたり、ワークWKの姿勢を変えたりする機構である。
現実装置100は、例えば、ワークWK表面の状態検査などに利用される。この場合、現実装置100は、メッシュパターンなどの照明パターンをワークWKの表面に映し込み、照明パターンが映り込んだワークWKを撮像する。このようにして撮像された撮像画像から、ワークWKに映り込んだ照明パターンの形状を分析することで、ワークWKの表面に付いたキズや凹みなどの欠陥を検出することができる。
ワークWKが立体的な形状である場合、ワークWK表面の限られた範囲(検査視野)にしか照明パターンが映し込まれない場合がある。そのため、現実装置100は、ロボット104を利用してワークWKの位置や姿勢を変化させながら、照明パターンが映り込んだワークWKをカメラ101により撮像する。
ワークWKの位置や姿勢を変化させながら撮像された複数の撮像画像を利用することで、ワークWK表面の広い範囲について照明パターンの形状を分析することができる。なお、カメラ101の位置や姿勢を変化させてもよいが、第2実施形態においてはカメラ101を固定してワークWKの位置や姿勢を変化させる場合を例に説明を進める。
上記のように、現実装置100を利用すれば、複数の検査視野から撮像したワークWKの撮像画像を得ることができる。なお、検査視野の決定はオペレータが行う。
ワークWKの位置や姿勢を変化させると変化前の検査視野がワークWK表面のどの範囲であったかをオペレータが正確に認識することは難しい。そこで、第2実施形態に係るシステムは、検査視野をオペレータが容易に認識できるようにする仕組みを提供する。この仕組みを適用することで、ワークWKの一部範囲について検査漏れが生じてしまうことや、検査漏れを避けようとして検査視野の重複が過剰になり検査時間が増大してしまうことを抑制する効果が期待できる。
上記のような現実装置100の動作は、制御装置200により制御される。制御装置200は、通信回線を介して情報処理装置300に接続されている。例えば、制御装置200は、ソケット通信を利用して現実装置100の制御情報などを情報処理装置300に送信する。
制御装置200は、表示装置250に接続されている。表示装置250は、例えば、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、ELD(Electro-Luminescence Display)などのディスプレイ装置である。制御装置200は、カメラ101による撮像画像を表示装置250に表示させる。オペレータは、表示装置250の撮像画像を見ながら操作を行う。
情報処理装置300は、現実装置100の3次元CADデータを保持し、3次元CADデータを利用して現実装置100を仮想空間内に再現した仮想装置を生成する。また、情報処理装置300は、現実装置100の制御情報などを受信し、受信した制御情報に基づいて仮想装置の動作をシミュレートする。
情報処理装置300は、検査視野に対応するワークWK表面の範囲を計算する。そして、情報処理装置300は、計算した検査視野に対応するワークWK表面の範囲(検査範囲)を示す情報を制御装置200に送信する。
情報処理装置300は、表示装置350に接続されている。表示装置350は、例えば、CRT、LCD、PDP、ELDなどのディスプレイ装置である。情報処理装置300は、仮想装置内で仮想的に撮像されたワークWKの撮像画像を表示装置350に表示させる。情報処理装置300は、検査範囲を表示装置350に表示した撮像画像に重畳して表示させる。
また、情報処理装置300は、検査視野に対応するワークWKの範囲を3次元CADデータに変換して保持する。検査範囲の情報は、適宜、制御装置200に送信され、表示装置250に表示された撮像画像に重畳して表示される。
以上、第2実施形態に係るシステムについて説明した。なお、照明パターンの映り込みを利用した検査方法を例に挙げて説明したが他の検査方法についても第2実施形態に係るシステムを適用可能である。以下では、第2実施形態に係るシステムに含まれる装置のハードウェア、機能、及び処理フローについて説明する。
[2−2.ハードウェア]
図3〜図5を参照しながら、第2実施形態に係るシステムに含まれる装置のハードウェアについて説明する。図3は、第2実施形態に係る現実装置の一例を示した図である。図4は、第2実施形態に係る現実装置の機構について説明するための図である。図5は、第2実施形態に係る制御装置の機能を実現可能なハードウェアの一例を示した図である。
(現実装置)
図3及び図4を参照しながら、現実装置100のハードウェアについて説明する。
図3に示すように、現実装置100は、カメラ101、設置台102、照明103、X機構111、Y機構112、第1回転機構113、第2回転機構114、及び把持機構115を有する。X機構111、Y機構112、第1回転機構113、第2回転機構114、及び把持機構115は、設置機構の一例である。
X機構111は設置台102上に設置される。Y機構112はX機構111上に設置される。第1回転機構113はY機構112上に設置される。第2回転機構114は第1回転機構113上に設置される。第2回転機構114には把持機構115が設けられている。把持機構115にはワークWKが設置される。
図4に示すように、X機構111は、X方向に沿って矢印aが示すように移動する機構である。X機構111の移動に伴い、Y機構112、第1回転機構113、第2回転機構114、把持機構115、及びワークWKはX方向に移動する。Y機構112は、X方向と直交するY方向に沿って矢印bが示すように移動する機構である。Y機構112の移動に伴い、第1回転機構113、第2回転機構114、把持機構115、及びワークWKはY方向に移動する。
第1回転機構113は、X−Y面内で矢印cが示すように回転する。第1回転機構113の回転に伴い、第2回転機構114、把持機構115、及びワークWKはX−Y面内で回転する。第2回転機構114は、Z方向からX−Y面へ把持機構115を傾倒させる向きに回転する(矢印dが示すように回転する。)。第2回転機構114の回転に伴い、把持機構115及びワークWKはZ方向からX−Y面へ回転角度の分だけ傾倒する。
X機構111及びY機構112の動作によりワークWKの位置は移動する。また、第1回転機構113及び第2回転機構114の動作によりワークWKの姿勢は変化する。従って、X機構111、Y機構112、第1回転機構113、及び第2回転機構114の動作を制御することで検査視野を自由に調整することができる。
(制御装置、情報処理装置)
次に、図5を参照しながら、制御装置200のハードウェアについて説明する。
制御装置200が有する機能は、例えば、図5に示す情報処理装置のハードウェア資源を用いて実現することが可能である。つまり、制御装置200が有する機能は、コンピュータプログラムを用いて図5に示すハードウェアを制御することにより実現される。
図5に示すように、このハードウェアは、主に、CPU902と、ROM(Read Only Memory)904と、RAM906と、ホストバス908と、ブリッジ910とを有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。
ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
これらの要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。
また、入力部916としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、レバーなどが用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
出力部918は、例えば、CRT、LCD、PDP、ELDなどのディスプレイ装置に画像信号を出力するビデオ出力デバイスである。また、出力部918として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部918は、視覚的又は聴覚的な情報を出力することが可能な装置である。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、HDDなどの磁気記憶デバイスが用いられる。また、記憶部920として、SSD(Solid State Drive)やRAMディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
ドライブ922は、着脱可能な記録媒体であるリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
接続ポート924は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS−232Cポート、又は光オーディオ端子など、外部接続機器930を接続するためのポートである。外部接続機器930としては、例えば、プリンタなどが用いられる。
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN(Local Area Network)用の通信回路、WUSB(Wireless USB)用の通信回路、光通信用の通信回路やルータ、ADSL(Asymmetric Digital Subscriber Line)用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークであり、例えば、インターネット、LAN、放送網、衛星通信回線などを含む。
なお、後述する情報処理装置300の機能は、制御装置200と同様に図5に例示したハードウェアにより実現することができる。従って、情報処理装置300のハードウェアについては詳細な説明を省略する。
[2−3.制御装置の機能]
次に、図6を参照しながら、制御装置200の機能について説明する。図6は、第2実施形態に係る制御装置が有する機能について説明するための図である。
図6に示すように、制御装置200は、情報管理部201、ロボット制御部202、画像取得部203、光量調整部204、記憶部205、作業処理部206、及び表示制御部207を有する。
なお、情報管理部201、ロボット制御部202、画像取得部203、光量調整部204、作業処理部206、及び表示制御部207の機能は、上述したCPU902などを用いて実現できる。また、記憶部205の機能は、上述したRAM906や記憶部920などを用いて実現できる。
情報管理部201は、オペレータが入力した情報を取得する。情報管理部201が取得した情報は、ロボット制御部202、光量調整部204、作業処理部206に入力される。ロボット制御部202は、情報管理部201から入力された情報に応じてロボット104を制御する。また、ロボット制御部202は、ロボット104の制御情報を情報管理部201に入力する。この制御情報には、ロボット104が有する機構の制御パラメータが含まれる。情報管理部201は、ロボット制御部202から入力された制御情報を情報処理装置300に送信する。
なお、上記制御情報は記憶部205に格納される。
画像取得部203は、カメラ101が撮像した撮像画像を現実装置100から受信する。画像取得部203が受信した撮像画像は、記憶部205に格納される。光量調整部204は、情報管理部201から入力された情報に応じて照明103の光量を制御する。また、光量調整部204は、照明103の制御情報を情報管理部201に入力する。この制御情報には、照明103に設定する光量レベルの値を示す制御パラメータが含まれる。情報管理部201は、光量調整部204から入力された制御情報を情報処理装置300に送信する。
なお、上記制御情報は記憶部205に格納される。
また、情報管理部201は、情報処理装置300が計算した検査視野に関する情報を受信する。情報管理部201が受信した検査視野に関する情報は、記憶部205に格納される。
光量調整部204は、検査視野に関する情報に基づいて検査範囲が検査に適当な光量で照明されるように照明103の光量レベルを調整する。光量調整部204により照明103の光量レベルが調整された後、作業処理部206は、検査などの作業に関する処理を実行する。例えば、作業処理部206は、ワークWKの検査範囲に映り込んだ照明パターンを分析する。
表示制御部207は、記憶部205に格納された撮像画像を表示装置250に表示させる。また、記憶部205に検査視野に関する情報が格納されている場合、表示制御部207は、表示装置250に表示された撮像画像に重畳して検査範囲を表示させる。例えば、表示制御部207は、過去に作業処理部206による作業が済んでいる検査範囲を撮像画像に重畳して表示させる。
以上、制御装置200の機能について説明した。
[2−4.情報処理装置の機能]
次に、図7を参照しながら、情報処理装置300の機能について説明する。図7は、第2実施形態に係る情報処理装置が有する機能について説明するための図である。
図7に示すように、情報処理装置300は、画像取得部301、記憶部302、シミュレータ303、特徴点位置設定部305、3次元座標計算部306、差分計算部307、及びパラメータ計算部308を有する。
なお、画像取得部301、シミュレータ303、特徴点位置設定部305、3次元座標計算部306、差分計算部307、及びパラメータ計算部308の機能は、上述したCPU902などを用いて実現できる。記憶部302の機能は、上述したRAM906や記憶部920などを用いて実現できる。
画像取得部301は、制御装置200を介して現実装置100が撮像した撮像画像を取得する。画像取得部301が取得した撮像画像は、特徴点位置設定部305に入力される。記憶部302は、現実装置100の3次元CADデータを記憶する。シミュレータ303は、記憶部302が記憶している3次元CADデータを利用して仮想空間内に現実装置100を再現した仮想装置304を生成する。シミュレータ303は、制御装置200から現実装置100の制御情報を取得する。シミュレータ303は、制御装置200から取得した制御情報に基づいて仮想装置304を制御する。
例えば、シミュレータ303は、制御装置200から取得したロボット104の制御情報に基づいて仮想装置304のロボットを同期制御する。また、シミュレータ303は、制御装置200から取得した照明103の制御情報に基づいて仮想装置304の照明光量を制御する。こうした仮想装置304の制御により、仮想装置304内に現実装置100内の環境が再現される。
シミュレータ303は、仮想装置304を利用してシミュレーションを実行し、現実装置100のカメラ101が撮像した撮像画像を生成する。例えば、シミュレータ303は、光学シミュレーションを実行してワークへの照明の映り込みを計算し、計算結果を反映した撮像画像(仮想装置304の撮像画像)を生成する。撮像画像の計算には、例えば、レイトレーシング法、ラジオシティ法、フォトンマッピング法、環境マッピング法などのレンダリング手法が用いられる。
シミュレータ303により生成された仮想装置304の撮像画像は、特徴点位置設定部305に入力される。また、撮像画像の計算時に用いた仮想装置304の制御パラメータA,B,Cは、3次元座標計算部306に入力される。なお、制御パラメータA,B,Cは、それぞれベクトル量であってもよい。
制御パラメータAは、カメラの内部パラメータである。例えば、制御パラメータAは、カメラの光軸方向やレンズパラメータなどである。
制御パラメータBは、ロボットの内部パラメータである。例えば、制御パラメータBは、ロボットの各機構に関する位置や姿勢を決めるパラメータなどである。
制御パラメータCは、カメラとロボットとの間の相対関係を規定するパラメータである。例えば、制御パラメータCは、ある絶対座標を基準としてカメラの位置や姿勢、及びロボットの位置や姿勢などである。ここでは簡単のために上記の制御パラメータを考慮するが、実施の態様に応じて適宜、制御パラメータの追加や省略が可能である。
特徴点位置設定部305は、現実装置100の撮像画像上及び仮想装置304の撮像画像上で互いに対応する特徴点を設定する。例えば、特徴点位置設定部305は、オペレータが両撮像画像に対して指定した点を特徴点に設定する。
なお、特徴点位置設定部305は、両撮像画像にエッジ検出処理を施し、互いに対応するエッジ位置を特徴点に設定してもよい。例えば、画素値の1次微分から計算した勾配方向からエッジの局所的な方向を予測し、予測した方向の勾配が局所的に極大となる部分を探索する探索ベースの手法や、対象画像から計算した2次微分式を利用するゼロ交差法ベースの手法などが利用できる。
特徴点位置設定部305により設定された特徴点の情報は、3次元座標計算部306及び差分計算部307に入力される。3次元座標計算部306には、仮想装置304の撮像画像上で設定された特徴点の2次元座標xvが入力される。差分計算部307には、仮想装置304の撮像画像上で設定された特徴点の2次元座標xv、及び現実装置100の撮像画像上で設定された特徴点の2次元座標xrが入力される。
3次元座標計算部306は、特徴点位置設定部305から入力された2次元座標xvに対応する仮想空間内の3次元座標Qを計算する。このとき、3次元座標計算部306は、シミュレータ303から入力された制御パラメータA,B,C、特徴点位置設定部305から入力された2次元座標xv、及び記憶部302が記憶している3次元CADデータなどを利用する。
なお、ポリゴンモデルを用いて仮想装置304を表現し、OpenGL(Open Graphics Library;登録商標)により描画している場合、gluUnProject()を利用すれば、2次元座標xvを容易に3次元座標Qへと変換することができる。もちろん、同様の別手法を適用することもできる。
上記のように、3次元座標Qは制御パラメータB,Cに依存する。そのため、以下の説明において3次元座標QをQ(B,C)と表現する場合がある。制御パラメータA,B,C、及び3次元座標計算部306により計算された3次元座標Qはパラメータ計算部308に入力される。差分計算部307は、2つの2次元座標xv、xrの差分dx(dx=xv−xr)を計算する。差分計算部307により計算された差分dxは、パラメータ計算部308に入力される。
パラメータ計算部308は、3次元座標計算部306から入力された制御パラメータA,B,C、3次元座標Q、及び差分計算部307から入力された差分dxを利用して、制御パラメータの誤差dA、dB、dCを推定する。
仮想装置304における2次元座標xvと、制御パラメータA,B,C及び3次元座標Qとの関係は、下記の式(1)に示したモデルfで表現される。設計誤差などが存在しない理想的な状態であれば現実装置100も同じモデルで表現される。下記の式(1)から、制御パラメータA,B,Cの微小変化dA、dB、dCは、2次元座標の微小変化dxにより下記の式(2)のように表現することができる。従って、2次元座標xv、xrの差分dxを下記の式(2)に代入すれば、制御パラメータの誤差dA、dB、dCに関する関係式が得られる。
Figure 0006163942
Figure 0006163942
パラメータ計算部308は、上記の式(2)に対し、制御パラメータA,B,C、3次元座標Q、及び差分計算部307から入力された差分dxを代入し、制御パラメータの誤差dA、dB、dCに関する関係式を生成する。パラメータ計算部308は、複数の撮像画像について生成した制御パラメータの誤差dA、dB、dCに関する関係式を利用し、最小二乗法を用いて制御パラメータの誤差dA、dB、dCを推定する。
パラメータ計算部308により推定された制御パラメータの誤差dA、dB、dCは記憶部302に格納される。シミュレータ303は、記憶部302に格納された制御パラメータの誤差dA、dB、dCを用いて仮想装置304の制御パラメータA,B,Cを補正する。例えば、シミュレータ303は、現実装置100から取得した制御パラメータA,B,Cに誤差dA,dB,dCを適用した制御パラメータA+dA,B+dB,C+dCに基づいて仮想装置304を生成する。そして、制御パラメータA+dA,B+dB,C+dCに基づいて生成された仮想装置304におけるシミュレーション結果が現実装置100側へとフィードバックされる。
以上、情報処理装置300の機能について説明した。
[2−5.キャリブレーション方法の適用例について]
次に、第2実施形態に係るキャリブレーション方法の適用例について説明する。
(システムの基本動作)
まず、図8を参照しながら、第2実施形態に係るシステムの基本動作について説明する。図8は、第2実施形態に係るシステムが行う動作の一例を示した図である。
図8に示すように、第2実施形態に係るシステムでは、現実装置100を仮想化した仮想装置304が生成され、仮想装置304が現実装置100の動作に同期して制御される(S1)。
また、仮想装置304の環境下でシミュレーションが実行され、仮想装置304のカメラで撮像された撮像画像が取得される(S2)。
例えば、光学シミュレーションによりワーク上に映り込んだ照明の範囲が計算され、照明の範囲から検査条件を満たす範囲が検査範囲として抽出される(S3)。
抽出された検査範囲の情報が現実装置100側へとフィードバックされ、現実装置100における照明の光量レベルを最適化する制御や、検査範囲の教示に利用される(S4)。
(検査範囲の抽出方法)
ここで、図9を参照しながら、情報処理装置300が実行する検査範囲の抽出処理について説明する。図9は、第2実施形態に係る情報処理装置が実行する検査範囲の抽出処理について説明するための図である。
上記の検査範囲は、ワークの形状やシミュレーション結果に基づいて抽出される。ワークの外観検査を行う場合、ワーク以外の範囲は検査対象外である。また、カメラの撮像面に対する角度が大きいワーク面は精度良く検査できない場合があるため、検査対象外に設定される。さらに、メッシュパターンなどの照明パターンをワーク表面に映り込ませて検査する手法を適用する場合、照明パターンが映り込む範囲が検査対象となる。
ワークが映っている範囲、及び撮像面に対する角度が大きいワーク面の範囲は、3次元CADデータを利用すれば計算することができる。これらの範囲は、ワーク形状に基づく範囲として抽出される(S31)。
一方、照明パターンが映り込む範囲は、光学シミュレーションの結果を利用し、ワーク表面の輝度が設定した輝度以上の範囲を抽出することで計算することができる。この範囲は、反射輝度に基づく範囲として抽出される(S32)。
最終的な検査範囲は、ワーク形状に基づく範囲と反射輝度に基づく範囲との重複範囲を計算することにより抽出される(S33)。
なお、検査範囲は撮像画像上の2次元範囲として抽出されるが、情報処理装置300により2次元範囲の点を3次元CADデータに基づいて3次元座標点に変換し、3次元CADデータの形式で表現された部品データとして保存しておいてもよい。
(誤差要因について)
ここで、図10を参照しながら、現実装置100と仮想装置304との間で生じる誤差の誤差要因について説明する。図10は、第2実施形態に係る現実装置と仮想装置との間で生じる誤差の誤差要因について説明するための図である。
現実装置100と仮想装置304(3次元CADデータ)とのずれは、様々な要因により生じうる。例えば、カメラの光軸方向、レンズパラメータ、現実装置100上に設定した絶対座標に対するカメラの位置や姿勢が何らかの理由で設計値からずれることが現実装置100と仮想装置304との間の誤差を生み出す。
また、ロボットの製作・組み立て時に生じる誤差、ロボットを駆動するモータの初期値ずれ、現実装置100上に設定した絶対座標に対するロボットの位置や姿勢のずれも現実装置100と仮想装置304との間の誤差を生み出す。その他にも、シミュレーション結果に影響を与える照明の位置ずれやワークの成型・設置誤差などが誤差要因となる。
(キャリブレーション処理)
上記のような誤差を補正する処理がキャリブレーション処理である。ここで、図11及び図12を参照しながら、第2実施形態に係るキャリブレーション処理について説明する。図11は、第2実施形態に係る特徴点の指定方法及びキャリブレーションに利用されるパラメータの例について説明するための図である。図12は、第2実施形態に係る特徴点の自動抽出方法について説明するための図である。
第2実施形態に係るキャリブレーション処理には、仮想装置304の撮像画像上で指定された第1特徴点と、現実装置100の撮像画像上で指定された第2特徴点とが利用される。第1特徴点と第2特徴点とは互いに対応する部分に位置する。例えば、第1特徴点及び第2特徴点はワークの角部などに設定される。
なお、第1特徴点及び第2特徴点の指定はオペレータが手動で行ってもよいし、図12に示すように、撮像画像のエッジ検出などを利用して情報処理装置300が自動で実行してもよい。
図11に示すように、第1特徴点が指定されると、第1特徴点の位置を示す撮像画像上の2次元座標xvが得られる。また、撮像画像を取得した際の仮想装置304における制御パラメータA,B,Cが得られる。図11の例では、制御パラメータAをカメラパラメータ、制御パラメータBをロボットパラメータ、制御パラメータCをカメラ・ロボット間の相対位置に関するパラメータと呼んでいる。
さらに、3次元CADデータ及び制御パラメータA,B,Cから2次元座標xvに対応する3次元座標Qが得られる。一方、第2特徴点が指定されると、第2特徴点の位置を示す撮像画像上の2次元座標xrが得られる。但し、現実装置100の制御パラメータA,B,Cと、仮想装置304の制御パラメータA,B,Cとの間の誤差dA,dB,dCは未知である。そこで、情報処理装置300は、上記の式(1)で表現されるモデル(及び上記の式(2))を利用し、最小二乗法を利用して制御パラメータの誤差dA,dB,dCを推定する。推定した制御パラメータの誤差dA,dB,dCは、仮想装置304の制御パラメータに設定される。つまり、撮像画像の違いから、現実装置100の制御パラメータを推定し、推定した制御パラメータを用いて仮想装置304の制御パラメータが調整される。
上記のキャリブレーション処理では、システムの運用に利用する撮像画像を利用して制御パラメータの調整が実現されるため、キャリブレーション用設備の追加が生じない。また、撮像画像上の2次元的な情報を比較して誤差を検出しているため、ステレオ画像上の3次元的な情報を比較して誤差を検出するような方法に比べると処理負荷が低い。従って、第2実施形態に係るキャリブレーション処理を適用することで、簡易にキャリブレーションを実現することが可能になる。
[2−6.キャリブレーション処理の流れ]
次に、図13及び図14を参照しながら、第2実施形態に係るキャリブレーション処理の流れについて説明する。図13は、第2実施形態に係る情報処理装置が実行するキャリブレーション処理の流れを示したフロー図である。図14は、第2実施形態に係る情報処理装置が実行するキャリブレーション処理の中で実行されるパラメータ計算の処理フローを示したフロー図である。
(全体的な流れ:図13)
まず、キャリブレーション処理の全体的な流れについて説明する。なお、ここで説明するキャリブレーション処理は、主に情報処理装置300により実行される。
(S101)情報処理装置300は、制御装置200を介して現実装置100の状態を制御する。例えば、情報処理装置300は、制御パラメータを変更するように制御装置200に指示する。指示を受けた制御装置200は、制御パラメータを変更して現実装置100のロボット104やカメラ101を制御する。なお、キャリブレーション処理の際に制御装置200が変更する制御パラメータの値は、設定した範囲でランダムに決定されてもよいし、予め設定したパターンに従って順次設定されてもよい。
(S102)情報処理装置300は、シミュレータ303の機能により、仮想装置304の状態を現実装置100の状態に同期させる。例えば、シミュレータ303は、現実装置100に送信された制御パラメータ又は現実装置100から取得した制御パラメータに従って仮想装置304を制御する。なお、仮想装置304の同期制御に利用した制御パラメータは記憶部302に格納される。
(S103)情報処理装置300は、画像取得部301の機能により、制御装置200を介して現実装置100の撮像画像を取得する。なお、画像取得部301が取得した現実装置100の撮像画像は特徴点位置設定部305に入力される。
(S104)情報処理装置300は、シミュレータ303の機能により、仮想装置304の撮像画像を取得する。例えば、シミュレータ303は、仮想装置304の環境下で光学シミュレーションを実行してワーク上に照明が映り込む範囲を計算し、照明の映り込みを反映した撮像画像を生成する。なお、仮想装置304の撮像画像は特徴点位置設定部305に入力される。また、シミュレータ303により利用された制御パラメータは3次元座標計算部306に入力される。
(S105)情報処理装置300は、設定した数の撮像画像を取得したか否かを判定する。つまり、情報処理装置300は、現実装置100の撮像画像及び仮想装置304の撮像画像の組数が設定した閾値を超えたか否かを判定する。なお、閾値は後述する最小二乗法による現実装置100の制御パラメータを安定して推定可能な数に設定される。撮像画像の組数が閾値を超えた場合、処理はS106に進む。一方、撮像画像の組数が閾値を超えていない場合、処理はS101に戻る。
(S106)情報処理装置300は、特徴点位置設定部305の機能により、仮想装置304の撮像画像上で第1特徴点を設定する。例えば、特徴点位置設定部305は、オペレータが仮想装置304の撮像画像上で指定した点を第1特徴点に設定する。なお、特徴点位置設定部305は、仮想装置304の撮像画像に対してエッジ検出の処理を実行し、検出したエッジ位置を第1特徴点に設定してもよい。
(S107)情報処理装置300は、特徴点位置設定部305の機能により、現実装置100の撮像画像上で第1特徴点に対応する第2特徴点を設定する。例えば、特徴点位置設定部305は、オペレータが現実装置100の撮像画像上で指定した点を第2特徴点に設定する。なお、特徴点位置設定部305は、現実装置100の撮像画像に対してエッジ検出の処理を実行し、検出したエッジ位置から第1特徴点に対応する点を検出して第2特徴点に設定してもよい。
(S108)情報処理装置300は、特徴点位置設定部305、3次元座標計算部306、差分計算部307、及びパラメータ計算部308の機能により、現実装置100と仮想装置304との間における制御パラメータの誤差を計算する。なお、S108の処理については後段において詳述する。
(S109)S108の処理で計算された制御パラメータの誤差は、シミュレータ303に入力される。シミュレータ303は、入力された制御パラメータの誤差を仮想装置304の制御パラメータに適用する。そして、シミュレータ303は、設定した制御パラメータに基づいて仮想装置304を運用する。
例えば、シミュレータ303は、現実装置100から取得した制御パラメータA,B,Cに誤差dA,dB,dCを適用し、制御パラメータA+dA,B+dB,C+dCに基づいて仮想装置304を生成する。そして、シミュレータ303は、生成した仮想装置304の環境下でシミュレーションを実行し、シミュレーション結果を現実装置100側へとフィードバックする。例えば、制御パラメータA+dA,B+dB,C+dCに基づく仮想装置304内での検査範囲を示す情報が制御装置200に提供される。
S109の処理が完了すると、図13に示した一連の処理は終了する。
(パラメータ計算の流れ:図14)
次に、S108の処理について、さらに説明する。ここで説明する処理は、主に特徴点位置設定部305、3次元座標計算部306、差分計算部307、及びパラメータ計算部308により実行される。
(S111)特徴点位置設定部305は、設定した第1特徴点の2次元座標xvを取得する。特徴点位置設定部305により設定された第1特徴点の2次元座標xvは、3次元座標計算部306及び差分計算部307に入力される。3次元座標計算部306に入力された第1特徴点の2次元座標xvは仮想空間内の3次元座標Qに変換され、パラメータ計算部308に入力される。
(S112、S113、S114)パラメータ計算部308は、仮想装置304の撮像画像が取得された際のカメラパラメータAを取得する。また、パラメータ計算部308は、仮想装置304の撮像画像が取得された際のロボットパラメータBを取得する。さらに、パラメータ計算部308は、仮想装置304の撮像画像が取得された際の仮想装置304におけるカメラ・ロボット間の相対位置に関するパラメータCを取得する。
(S115)特徴点位置設定部305は、設定した第2特徴点の2次元座標xrを取得する。特徴点位置設定部305により設定された第2特徴点の2次元座標xrは、差分計算部307に入力される。
第1特徴点の2次元座標xv及び第2特徴点の2次元座標xrが入力された差分計算部307は、2次元座標xv、xrの差分dxを計算する。差分計算部307により計算された差分dxは、パラメータ計算部308に入力される。なお、第2特徴点の2次元座標xrを計算する処理は、S111〜S114の処理と順序を入れ替えることも可能である。
(S116)パラメータ計算部308は、現実装置100及び仮想装置304の状態を変更しながら撮像された複数の撮像画像の組について、制御パラメータA,B,C、3次元座標Q、及び差分dxを準備する。次いで、パラメータ計算部308は、上記の式(2)に制御パラメータA,B,C、3次元座標Q、及び差分dxを代入し、制御パラメータの誤差dA,dB,dCに関する関係式を生成する。次いで、パラメータ計算部308は、複数の撮像画像の組について生成された複数の関係式を用いて最小二乗法により制御パラメータの誤差dA,dB,dCを計算する。S116の処理が完了すると、図14に示した一連の処理は終了する。
以上、第2実施形態に係るキャリブレーション処理の流れについて説明した。
[2−7.変形例:撮像画像毎に複数の特徴点を指定する場合]
次に、図15及び図16を参照しながら、第2実施形態の一変形例について説明する。図15は、第2実施形態の一変形例に係る特徴点の指定方法及びキャリブレーションに利用されるパラメータの例について説明するための図である。図16は、第2実施形態の一変形例に係る情報処理装置が実行するキャリブレーション処理の中で実行されるパラメータ計算の処理フローを示したフロー図である。
(特徴点の指定方法:図15)
これまで、1枚の撮像画像について1つの特徴点を指定する場合を例に説明を進めてきた。しかし、1枚の撮像画像について複数の特徴点を指定することも可能である。例えば、図15に示すように、仮想装置304の撮像画像から3つの第1特徴点p11、p12、p13を指定することが可能である。この場合、現実装置100の撮像画像から3つの第1特徴点p11、p12、p13にそれぞれ対応する3つの第2特徴点p21、p22、p23が指定される。
図15に示すように、第1特徴点が指定されると、第1特徴点の位置を示す撮像画像上の2次元座標xvが得られる。また、撮像画像を取得した際の仮想装置304における制御パラメータA,B,Cが得られる。制御パラメータAがカメラパラメータ、制御パラメータBがロボットパラメータ、制御パラメータCがカメラ・ロボット間の相対位置に関するパラメータである。
さらに、3次元CADデータ及び制御パラメータA,B,Cから2次元座標xvに対応する3次元座標Qが得られる。一方、第2特徴点が指定されると、第2特徴点の位置を示す撮像画像上の2次元座標xrが得られる。
但し、現実装置100と仮想装置304との間における制御パラメータの誤差dA,dB,dCは未知である。そのため、情報処理装置300は、上記の式(1)で表現されるモデル(及び上記の式(2))を利用し、最小二乗法を利用して制御パラメータの誤差dA,dB,dCを推定する。推定した制御パラメータの誤差dA,dB,dCは、仮想装置304の制御パラメータA,B,Cに適用される。つまり、1枚の撮像画像について1つの特徴点を指定する場合と同様に、撮像画像の違いから制御パラメータの誤差dA,dB,dCが推定され、推定された制御パラメータの誤差dA,dB,dCを用いて仮想装置304の制御パラメータが調整される。
上記のキャリブレーション処理では、システムの運用に利用する撮像画像を利用して制御パラメータの調整が実現されるため、キャリブレーション用設備の追加が生じない。また、撮像画像上の2次元的な情報を比較して誤差を検出しているため、ステレオ画像上の3次元的な情報を比較して誤差を検出するような方法に比べると処理負荷が低い。従って、簡易にキャリブレーションを実現することが可能になる。
さらに、1枚の撮像画像上に複数の特徴点を指定しているため、少ない枚数の撮像画像で制御パラメータの誤差dA,dB,dCを推定することができる。つまり、この変形例を適用することで、現実装置100及び仮想装置304の制御や撮像などにかかる負荷と時間をより低減することが可能になる。
(パラメータ計算の流れ:図16)
この変形例に係るパラメータ計算の処理フローについて説明する。この処理は、上述したS108の処理に対応する。また、ここで説明する処理は、主に特徴点位置設定部305、3次元座標計算部306、差分計算部307、及びパラメータ計算部308により実行される。
(S121)特徴点位置設定部305は、過去に実行した制御パラメータの誤差dA,dB,dCの計算に対する寄与度が低かった第1特徴点の情報を記憶部302から読み出し、読み出した第1特徴点を今回実行する計算の対象から除外する。もちろん、特徴点位置設定部305は、除外した第1特徴点に対応する第2特徴点も計算対象から除外する。なお、寄与率の計算については後述する。
(S122)特徴点位置設定部305は、設定した第1特徴点の2次元座標xvを取得する。特徴点位置設定部305により設定された第1特徴点の2次元座標xvは、3次元座標計算部306及び差分計算部307に入力される。3次元座標計算部306に入力された第1特徴点の2次元座標xvは仮想空間内の3次元座標Qに変換され、パラメータ計算部308に入力される。
(S123、S124、S125)パラメータ計算部308は、仮想装置304の撮像画像が取得された際のカメラパラメータAを取得する。また、パラメータ計算部308は、仮想装置304の撮像画像が取得された際のロボットパラメータBを取得する。さらに、パラメータ計算部308は、仮想装置304の撮像画像が取得された際の仮想装置304におけるカメラ・ロボット間の相対位置に関するパラメータCを取得する。
(S126)特徴点位置設定部305は、設定した第2特徴点の2次元座標xrを取得する。特徴点位置設定部305により設定された第2特徴点の2次元座標xrは、差分計算部307に入力される。
第1特徴点の2次元座標xv及び第2特徴点の2次元座標xrが入力された差分計算部307は、2次元座標xv、xrの差分dxを計算する。差分計算部307により計算された差分dxは、パラメータ計算部308に入力される。なお、第2特徴点の2次元座標xrを計算する処理は、S122〜S125の処理と順序を入れ替えることも可能である。
(S127)パラメータ計算部308は、現実装置100及び仮想装置304の状態を変更しながら撮像された複数の撮像画像の組について、制御パラメータA,B,C、3次元座標Q、及び差分dxを準備する。次いで、パラメータ計算部308は、上記の式(2)に制御パラメータA,B,C、3次元座標Q、及び差分dxを代入し、制御パラメータの誤差dA,dB,dCに関する関係式を生成する。次いで、パラメータ計算部308は、複数の撮像画像の組について生成された複数の関係式を用いて最小二乗法により制御パラメータの誤差dA,dB,dCを計算する。
(S128)パラメータ計算部308は、最小二乗法による誤差dA,dB,dCの計算時における安定性の影響を示す安定性指標を計算する。例えば、パラメータ計算部308は、最小二乗法による誤差dA,dB,dCの計算時に用いた行列(上記関係式の係数行列に対応)を特異値分解し、最小特異値と最大特異値との比率を安定性指標とする。
パラメータ計算部308は、計算した安定性指標をオペレータに通知する。例えば、パラメータ計算部308は、安定性指標を表示装置350に表示する。
(S129)パラメータ計算部308は、誤差dA,dB,dCの計算に対する寄与率を特徴点毎に計算する。この寄与率は決定係数と呼ばれることもある。例えば、残差の平方和を偏差の全平方和で割った値を1から引いたものが寄与率と呼ばれる。パラメータ計算部308は、設定した閾値よりも寄与率が低い第1特徴点及び第2特徴点の組を抽出し、抽出した第1特徴点及び第2特徴点の情報を記憶部302に格納する。S129の処理が完了すると、図16に示した一連の処理は終了する。
以上、第2実施形態について説明した。
なお、上記説明において、検査に利用するソースの種類を光(照明)とし、光学シミュレーションを実行する場合を例に述べたが、検査に利用するソースの種類が変わっても第2実施形態に係る技術を同様に適用可能である。
例えば、ソースを音にする場合、現実装置に音源及びマイクを設置し、音響シミュレーションを利用することで上述した技術を適用可能である。ソースを電磁場にする場合、現実装置に電磁場発生源及び電磁場センサを設置し、電磁場解析シミュレーションを利用することで上述した技術を適用可能である。
以上、添付図面を参照しながら好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、様々な変形例や修正例に想到し得ることは明らかであり、こうした変形例や修正例についても当然に本発明の技術的範囲に属することは言うまでもない。
<3.付記>
以上説明した実施形態に関し、さらに以下の付記を開示する。
(付記1) 対象物と、前記対象物が設置されるロボットと、前記対象物及び前記ロボットの少なくとも一部を撮像するカメラとを含む現実装置の3次元情報を記憶する記憶部と、
前記3次元情報に基づいて前記現実装置を仮想空間内に再現した仮想装置を生成し、前記現実装置の動作に前記仮想装置の動作を同期させ、前記仮想装置のカメラで撮像される第1画像を生成し、前記現実装置で撮像された第2画像と、前記第2画像に対応する前記第1画像との差に基づいて前記仮想装置の制御パラメータを調整する演算部と、
を有する、情報処理装置。
(付記2) 前記記憶部は、前記第1画像内の2次元座標と、前記2次元座標に対応する前記仮想空間内の3次元座標と、前記仮想装置の制御パラメータとの関係を示すモデル情報を記憶しており、
前記演算部は、複数の前記第1画像及び前記第2画像の組について、前記第1画像内で設定された第1特徴点の2次元座標と、前記第1特徴点に対応する前記仮想空間内の3次元座標と、前記第1特徴点に対応する前記第2画像内にある第2特徴点の2次元座標と、前記第1画像の撮像時における前記仮想装置の制御パラメータとを取得し、前記モデル情報に基づいて前記現実装置の制御パラメータと前記仮想装置の制御パラメータとの間の誤差を計算する
付記1に記載の情報処理装置。
(付記3) 前記演算部は、前記3次元情報を利用して前記対象物又は前記ロボットの角部を抽出し、抽出した前記角部に対応する前記第1画像内の2次元座標を前記第1特徴点の2次元座標に設定する
付記2に記載の情報処理装置。
(付記4) 前記第1特徴点の2次元座標は、1枚の前記第1画像について複数設定される
付記2又は3に記載の情報処理装置。
(付記5) 前記演算部は、前記誤差を計算する際に、前記第1特徴点の2次元座標のそれぞれについて計算結果への寄与度を計算し、設定した閾値よりも前記寄与度が小さい前記第1特徴点の情報を前記記憶部に記憶させ、後に前記誤差を計算する際には前記寄与度が小さい前記第1特徴点の2次元座標の利用を除外する
付記4に記載の情報処理装置。
(付記6) 対象物と、前記対象物が設置されるロボットと、前記対象物及び前記ロボットの少なくとも一部を撮像するカメラとを含む現実装置の3次元情報を記憶するメモリを有するコンピュータが、
前記3次元情報に基づいて前記現実装置を仮想空間内に再現した仮想装置を生成し、前記現実装置の動作に前記仮想装置の動作を同期させ、前記仮想装置のカメラで撮像される第1画像を生成し、前記現実装置で撮像された第2画像と、前記第2画像に対応する前記第1画像との差に基づいて前記仮想装置の制御パラメータを調整する
制御方法。
(付記7) 前記メモリは、前記第1画像内の2次元座標と、前記2次元座標に対応する前記仮想空間内の3次元座標と、前記仮想装置の制御パラメータとの関係を示すモデル情報を記憶しており、
前記コンピュータのプロセッサが、複数の前記第1画像及び前記第2画像の組について、前記第1画像内で設定された第1特徴点の2次元座標と、前記第1特徴点に対応する前記仮想空間内の3次元座標と、前記第1特徴点に対応する前記第2画像内にある第2特徴点の2次元座標と、前記第1画像の撮像時における前記仮想装置の制御パラメータとを取得し、前記モデル情報に基づいて前記現実装置の制御パラメータと前記仮想装置の制御パラメータとの間の誤差を計算する
付記6に記載の制御方法。
(付記8) 前記プロセッサが、前記3次元情報を利用して前記対象物又は前記ロボットの角部を抽出し、抽出した前記角部に対応する前記第1画像内の2次元座標を前記第1特徴点の2次元座標に設定する
付記7に記載の制御方法。
(付記9) 前記第1特徴点の2次元座標は、1枚の前記第1画像について複数設定される
付記7又は8に記載の制御方法。
(付記10) 前記プロセッサが、前記誤差を計算する際に、前記第1特徴点の2次元座標のそれぞれについて計算結果への寄与度を計算し、設定した閾値よりも前記寄与度が小さい前記第1特徴点の情報を前記メモリに記憶させ、後に前記誤差を計算する際には前記寄与度が小さい前記第1特徴点の2次元座標を利用しない
付記9に記載の制御方法。
(付記11) 対象物と、前記対象物が設置されるロボットと、前記対象物及び前記ロボットの少なくとも一部を撮像するカメラとを含む現実装置の3次元情報を記憶するメモリを有するコンピュータに、
前記3次元情報に基づいて前記現実装置を仮想空間内に再現した仮想装置を生成し、前記現実装置の動作に前記仮想装置の動作を同期させ、前記仮想装置のカメラで撮像される第1画像を生成し、前記現実装置で撮像された第2画像と、前記第2画像に対応する前記第1画像との差に基づいて前記仮想装置の制御パラメータを調整する処理を実行させる
プログラム。
10 現実装置
20 情報処理装置
21 記憶部
22 演算部
23 仮想装置
24 カメラ
25 ロボット
OBJ 対象物
A、B 制御パラメータ
dA、dB 誤差
P1 第1画像
P2 第2画像

Claims (7)

  1. 対象物と、前記対象物が設置されるロボットと、前記対象物及び前記ロボットの少なくとも一部を撮像するカメラとを含む現実装置の3次元情報を記憶する記憶部と、
    前記3次元情報に基づいて前記現実装置を仮想空間内に再現した仮想装置を生成し、前記現実装置の動作に前記仮想装置の動作を同期させ、前記仮想装置のカメラで撮像される第1画像を生成し、前記現実装置で撮像された第2画像内に設定される第1特徴点と、前記第2画像内の前記第1特徴点に対応する前記第1画像内の第2特徴点とに基づいて前記現実装置の制御パラメータと前記仮想装置の制御パラメータとの間の誤差を計算し、前記誤差の計算に対する前記第1特徴点の寄与度計算し、前記寄与度に基づいて前記第1特徴点として前記誤差の計算に利用する特徴点を選別する演算部と、
    を有する、情報処理装置。
  2. 前記記憶部は、前記第1画像内の2次元座標と、前記2次元座標に対応する前記仮想空間内の3次元座標と、前記仮想装置の制御パラメータとの関係を示すモデル情報を記憶しており、
    前記演算部は、複数の前記第1画像及び前記第2画像の組について、前記第1画像内で設定された第1特徴点の2次元座標と、前記第1特徴点に対応する前記仮想空間内の3次元座標と、前記第1特徴点に対応する前記第2画像内にある第2特徴点の2次元座標と、前記第1画像の撮像時における前記仮想装置の制御パラメータとを取得し、前記モデル情報に基づいて前記現実装置の制御パラメータと前記仮想装置の制御パラメータとの間の誤差を計算する
    請求項1に記載の情報処理装置。
  3. 前記演算部は、前記3次元情報を利用して前記対象物又は前記ロボットの角部を抽出し、抽出した前記角部に対応する前記第1画像内の2次元座標を前記第1特徴点の2次元座標に設定する
    請求項2に記載の情報処理装置。
  4. 前記第1特徴点の2次元座標は、1枚の前記第1画像について複数設定される
    請求項2又は3に記載の情報処理装置。
  5. 前記演算部は、前記誤差を計算する際に、前記第1特徴点の2次元座標のそれぞれについて計算結果への寄与度を計算し、設定した閾値よりも前記寄与度が小さい前記第1特徴点の情報を前記記憶部に記憶させ、後に前記誤差を計算する際には前記寄与度が小さい前記第1特徴点の2次元座標の利用を除外する
    請求項4に記載の情報処理装置。
  6. 対象物と、前記対象物が設置されるロボットと、前記対象物及び前記ロボットの少なくとも一部を撮像するカメラとを含む現実装置の3次元情報を記憶するメモリを有するコンピュータが、
    前記3次元情報に基づいて前記現実装置を仮想空間内に再現した仮想装置を生成し、前記現実装置の動作に前記仮想装置の動作を同期させ、前記仮想装置のカメラで撮像される第1画像を生成し、前記現実装置で撮像された第2画像内に設定される第1特徴点と、前記第2画像内の前記第1特徴点に対応する前記第1画像内の第2特徴点とに基づいて前記現実装置の制御パラメータと前記仮想装置の制御パラメータとの間の誤差を計算し、前記誤差の計算に対する前記第1特徴点の寄与度計算し、前記寄与度に基づいて前記第1特徴点として前記誤差の計算に利用する特徴点を選別する
    制御方法。
  7. 対象物と、前記対象物が設置されるロボットと、前記対象物及び前記ロボットの少なくとも一部を撮像するカメラとを含む現実装置の3次元情報を記憶するメモリを有するコンピュータに、
    前記3次元情報に基づいて前記現実装置を仮想空間内に再現した仮想装置を生成し、前記現実装置の動作に前記仮想装置の動作を同期させ、前記仮想装置のカメラで撮像される第1画像を生成し、前記現実装置で撮像された第2画像内に設定される第1特徴点と、前記第2画像内の前記第1特徴点に対応する前記第1画像内の第2特徴点とに基づいて前記現実装置の制御パラメータと前記仮想装置の制御パラメータとの間の誤差を計算し、前記誤差の計算に対する前記第1特徴点の寄与度計算し、前記寄与度に基づいて前記第1特徴点として前記誤差の計算に利用する特徴点を選別する処理を実行させる
    プログラム。
JP2013156386A 2013-07-29 2013-07-29 情報処理装置、制御方法、及びプログラム Expired - Fee Related JP6163942B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013156386A JP6163942B2 (ja) 2013-07-29 2013-07-29 情報処理装置、制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013156386A JP6163942B2 (ja) 2013-07-29 2013-07-29 情報処理装置、制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2015024480A JP2015024480A (ja) 2015-02-05
JP6163942B2 true JP6163942B2 (ja) 2017-07-19

Family

ID=52489573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013156386A Expired - Fee Related JP6163942B2 (ja) 2013-07-29 2013-07-29 情報処理装置、制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6163942B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111015665A (zh) * 2019-03-07 2020-04-17 牧今科技 执行自动相机校准以进行机器人控制的方法和系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3396632A4 (en) * 2015-12-24 2019-01-09 Fujitsu Limited IMAGE PROCESSING DEVICE, IMAGE PROCESSING METHOD, AND IMAGE PROCESSING PROGRAM
JP6822086B2 (ja) * 2016-11-10 2021-01-27 富士通株式会社 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
JP7326911B2 (ja) 2019-06-20 2023-08-16 オムロン株式会社 制御システムおよび制御方法
JP7441047B2 (ja) 2020-01-10 2024-02-29 三菱重工業株式会社 経路生成装置、制御装置、検査システム、経路生成方法およびプログラム
JP7423387B2 (ja) * 2020-03-31 2024-01-29 ミネベアミツミ株式会社 較正システム、情報処理システム、ロボット制御システム、較正方法、情報処理方法、ロボット制御方法、較正プログラム、情報処理プログラム、較正装置、情報処理装置、及びロボット制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06134691A (ja) * 1992-10-23 1994-05-17 Hitachi Ltd 位置検出方法およびこれを用いたフレキシブル生産システム
JP3415427B2 (ja) * 1998-02-25 2003-06-09 富士通株式会社 ロボットシミュレーションにおけるキャリブレーション装置
JP2003150219A (ja) * 2001-11-12 2003-05-23 Fanuc Ltd 作業機械のシミュレーション装置
JP2006110705A (ja) * 2004-09-15 2006-04-27 Yaskawa Electric Corp ロボットのキャリブレーション方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111015665A (zh) * 2019-03-07 2020-04-17 牧今科技 执行自动相机校准以进行机器人控制的方法和系统
CN111015665B (zh) * 2019-03-07 2020-12-04 牧今科技 执行自动相机校准以进行机器人控制的方法和系统

Also Published As

Publication number Publication date
JP2015024480A (ja) 2015-02-05

Similar Documents

Publication Publication Date Title
JP6163942B2 (ja) 情報処理装置、制御方法、及びプログラム
US11704833B2 (en) Monocular vision tracking method, apparatus and non-transitory computer-readable storage medium
WO2022120567A1 (zh) 一种基于视觉引导的自动化标定系统
CN108451536B (zh) 自动地定位x射线系统的x射线源的方法和x射线系统
US20170139407A1 (en) Simulator, simulation method, and simulation program
JP2020095009A (ja) コンピュータによる鉄筋測定検査システム
KR20200093464A (ko) 로봇 모션 용 비전 시스템의 자동 핸드-아이 캘리브레이션을 위한 시스템 및 방법
CN107367229B (zh) 自由双目立体视觉转轴参数标定方法
CN100442141C (zh) 图像投影方法和设备
JP2019115974A (ja) ビジョンベース操作システムのキャリブレーション及びオペレーション
JP2015090560A (ja) 画像処理装置、画像処理方法
JP2011253376A (ja) 画像処理装置、および画像処理方法、並びにプログラム
US7711507B2 (en) Method and device for determining the relative position of a first object with respect to a second object, corresponding computer program and a computer-readable storage medium
JP2019215811A (ja) 投影システム、画像処理装置および投影方法
JP2016178448A (ja) 投影システム、プロジェクター装置、撮像装置、および、プログラム
JP6115639B2 (ja) 情報処理装置、検査範囲の計算方法、及びプログラム
Kahn Reducing the gap between Augmented Reality and 3D modeling with real-time depth imaging
JP2021507209A (ja) コンピュータ生成された参照物体を有するマシンビジョンシステム
EP3606061B1 (en) Projection device, projection system and an image calibration method
KR20130075712A (ko) 레이저비전 센서 및 그 보정방법
US20020065637A1 (en) Method and apparatus for simulating the measurement of a part without using a physical measurement system
JP2015206654A (ja) 情報処理装置、情報処理方法、プログラム
JP5441752B2 (ja) 環境内の3d物体の3d姿勢を推定する方法及び装置
US20240157568A1 (en) System for welding at least a portion of a piece and related methods
Zhou et al. Calibration of RGB-D camera using depth correction model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170314

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170605

R150 Certificate of patent or registration of utility model

Ref document number: 6163942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees