(57)【要約】【課題】撮像装置のキャリブレーション精度を短期間で向上させることが可能な技術を提供する。【解決手段】キャリブレーション装置は、特徴点を有するキャリブレーションボードを撮像装置が撮像することにより得られた複数の撮像画像のそれぞれについて、キャリブレーションボードが互いに異なる位置に写った複数のマスタ画像のそれぞれに対する類似度を算出する類似度算出部と、類似度に基づき複数の撮像画像を複数のグループに分類する分類部と、複数のグループから抽出された類似度が所定値以上の代表画像群に基づき特徴点のキャリブレーションボードにおける物理的な位置と撮像画像における位置とを変換するための補正値を決定するキャリブレーション処理部と、補正値による変換の誤差が所定値以下であるか否かを判定する判定部と、誤差が所定値よりも大きい場合に撮像数関連情報を表示する表示部と、を備える。【選択図】図２
2014069272.tif 000002
【特許請求の範囲】
【請求項１】
ロボットが有するアームと所定の位置関係で配置された撮像装置をキャリブレーションするためのキャリブレーション装置であって、
特徴点を有するキャリブレーションボードを前記撮像装置が撮像することにより得られた複数の撮像画像のそれぞれについて、前記キャリブレーションボードが互いに異なる位置に写った複数のマスタ画像のそれぞれに対する類似度を算出する類似度算出部と、
前記算出された類似度に基づき、前記複数の撮像画像を、各マスタ画像に関連付けられた複数のグループに分類する分類部と、
前記複数のグループの各グループにおいて、前記類似度が所定値以上の代表画像を１つ抽出し、抽出された複数の前記代表画像からなる代表画像群に基づき、前記特徴点の前記キャリブレーションボードにおける物理的な位置と前記特徴点の前記撮像画像における位置とを変換するための補正値を決定するキャリブレーション処理部と、
前記決定された補正値による前記変換の誤差が、所定値以下であるか否かを判定する判定部と、
前記誤差が前記所定値よりも大きいと判定された場合に、前記複数のグループのそれぞれに分類された前記撮像画像の数に関連する撮像数関連情報を表示する表示部と、
を備える、キャリブレーション装置。
【請求項２】
請求項１に記載のキャリブレーション装置において、
前記撮像数関連情報は、前記複数のグループのうち、前記分類された撮像画像の数が最も少ないグループを特定可能な情報を含む、キャリブレーション装置。
【請求項３】
請求項１または請求項２に記載のキャリブレーション装置において、
前記撮像数関連情報は、前記複数のグループのそれぞれに分類された前記撮像画像の数を示す情報を含む、キャリブレーション装置。
【請求項４】
請求項１から請求項３までのいずれか一項に記載のキャリブレーション装置において、さらに、
各グループごとに、該グループに分類された撮像画像のそれぞれについて算出された前記類似度の統計的特性を求める統計処理部を備え、
前記表示部は、前記誤差が前記所定値よりも大きい場合に、前記統計的特性に関連する統計的特性関連情報を表示する、キャリブレーション装置。
【請求項５】
請求項４に記載のキャリブレーション装置において、
前記統計的特性は、各グループに分類された撮像画像のそれぞれについて算出された前記類似度のうち最高値であり、
前記統計的特定関連情報は、前記複数のグループのうち、前記最高値が最も低いグループを特定可能な情報を含む、キャリブレーション装置。
【請求項６】
請求項４に記載のキャリブレーション装置において、
前記統計的特性は、各グループに分類された撮像画像のそれぞれについて算出された前記類似度の平均値であり、
前記統計的特定関連情報は、前記複数のグループのうち、前記平均値が最も低いグループを特定可能な情報を含む、キャリブレーション装置。
【請求項７】
請求項１から請求項６までのいずれか一項に記載のキャリブレーション装置において、
前記表示部は、前記誤差を表示する、キャリブレーション装置。
【請求項８】
請求項１から請求項７までのいずれか一項に記載のキャリブレーション装置において、
前記撮像部は、連続して前記撮像画像を取得し、
前記キャリブレーション処理部は、前記撮像部により前記撮像画像が取得されるたびに、得られた前記複数の撮像画像のうち、前記誤差が最も小さくなる前記撮像画像群を決定する、キャリブレーション装置。
【請求項９】
ロボットが有するアームと所定の位置関係で配置された撮像装置のキャリブレーション方法であって、
（ａ）特徴点を有するキャリブレーションボードを前記撮像装置が撮像することにより得られた複数の撮像画像のそれぞれについて、前記キャリブレーションボードが互いに異なる位置に写った複数のマスタ画像のそれぞれに対する類似度を算出する工程と、
（ｂ）前記算出された類似度に基づき、前記複数の撮像画像を、各マスタ画像に関連付けられた複数のグループに分類する工程と、
（ｃ）前記複数のグループの各グループにおいて、前記類似度が所定値以上の代表画像を１つ抽出し、抽出された複数の前記代表画像からなる代表画像群に基づき、前記特徴点の前記キャリブレーションボードにおける物理的な位置と前記特徴点の前記撮像画像における位置とを変換するための補正値を決定する工程と、
（ｄ）前記決定された補正値による前記変換の誤差が、所定値以下であるか否かを判定する工程と、
（ｅ）前記誤差が前記所定値よりも大きいと判定された場合に、前記複数のグループのそれぞれに分類された前記撮像画像の数に関連する撮像数関連情報を表示する工程と、
を備える、撮像装置のキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置のキャリブレーションに関する。
【背景技術】
【０００２】
ワークの移動や取り付け等を行うロボットを動作させる際に、撮像装置（例えばデジタルビデオカメラ）によりワークを含む領域を撮像し、得られた画像からワークの位置を特定し、特定された位置に基づきロボットのアームを動作させる技術が用いられている。このように、撮像装置で得られた画像に基づき物体の位置を特定する構成では、予め物体の物理的な位置（世界座標系）と、撮像画像内における物体の位置（カメラ座標系）とを変換するための補正値（回転、並進、およびレンズの歪み等を考慮した変換行列）を求める処理（いわゆるキャリブレーション）を行う必要がある。
【０００３】
このようなキャリブレーションは、例えば、白色及び黒色の正方形の升目が縦及び横に交互に描かれたキャリブレーションボードと撮像装置との相対的な位置関係が互いに異なる複数の画像を撮像し、得られた複数の画像に基づき実行される。特許文献１では、キャリブレーションボードを固定し、ロボットに搭載されたカメラを移動させて複数の画像を撮像してキャリブレーションを行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−８２５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したキャリブレーションでは、補正値を用いた変換の誤差をより小さくしてキャリブレーション精度を向上させるために、複数の撮像画像として、キャリブレーションボードが画像内において互いに異なる位置に写った複数の画像、特に、キャリブレーションボードが撮像領域全体に散らばって写った複数の画像を用いることが好ましい。
【０００６】
しかしながら、キャリブレーションに適した画像を撮像するのは容易ではなかった。例えば、特許文献１に記載の方法では、キャリブレーションに適した画像を撮像するためのカメラ位置をロボットにティーチングすることになるのだが、「適した画像」が何であるかはユーザの経験に依存する場合が多く、経験が十分でないユーザ等ではなかなかスムーズにティーチングすることが難しいので、ユーザは大きな作業負担を強いられる。加えて、ユーザの作業錬度や設備の状況によって往々にして発生することであるが、キャリブレーションボード自身を所定位置からずれて配置してしまったような場合には、カメラを所定位置に移動させて撮像しても所望の画像を得ることができなかった。また、例えば、カメラを固定し、キャリブレーションボードをユーザが移動させて複数の撮像画像を得る構成では、ユーザは、キャリブレーションに適した画像を得るためにキャリブレーションボードをどのように配置したらよいか分からず、キャリブレーション精度を所定値以上とするまでに長時間を要するという問題があった。このため、撮像装置のキャリブレーション精度を短期間で向上させることが可能な技術が望まれていた。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態として実現することが可能である。
【０００８】
（１）本発明の一形態によれば、キャリブレーション装置が提供される。このキャリブレーション装置は、ロボットが有するアームと所定の位置関係で配置された撮像装置をキャリブレーションするためのキャリブレーション装置であって、特徴点を有するキャリブレーションボードを前記撮像装置が撮像することにより得られた複数の撮像画像のそれぞれについて、前記キャリブレーションボードが互いに異なる位置に写った複数のマスタ画像のそれぞれに対する類似度を算出する類似度算出部と；前記算出された類似度に基づき、前記複数の撮像画像を、各マスタ画像に関連付けられた複数のグループに分類する分類部と；前記複数のグループの各グループにおいて、前記類似度が所定値以上の代表画像を１つ抽出し、抽出された複数の前記代表画像からなる代表画像群に基づき、前記特徴点の前記キャリブレーションボードにおける物理的な位置と前記特徴点の前記撮像画像における位置とを変換するための補正値を決定するキャリブレーション処理部と；前記決定された補正値による前記変換の誤差が、所定値以下であるか否かを判定する判定部と；前記誤差が前記所定値よりも大きいと判定された場合に、前記複数のグループのそれぞれに分類された前記撮像画像の数に関連する撮像数関連情報を表示する表示部と；を備える。
【０００９】
この形態のキャリブレーション装置によれば、キャリブレーション処理部により決定された補正値による変換の誤差が所定値よりも大きい場合に、複数のグループのそれぞれに分類された撮像画像の数に関連する撮像数関連情報が表示されるので、いずれのグループに分類された撮像画像の数が少ないのかをユーザに理解させることができる。したがって、撮像画像数が少ないグループに分類され得るような画像を、撮像装置を用いて撮像させることをユーザに促すことができる。撮像画像数が少ないグループにおいて画像を追加させると、既に当該グループに所属している画像（既存画像）が少ないことから、新規に追加された撮像（追加画像）は既存画像と相違する可能性が高くなる。そして既存画像では既に「補正値による変換の誤差が所定値よりも大きい」という状態に陥っていることを前提に改善を目指して追加画像を撮像することになるのであるから、当然ながら既存画像よりマスタ画像と類似度の高い画像になる可能性が高い。よって、追加画像は既存画像より「補正値による変換の誤差」に対し良い効果を与える可能性が高いと言える。このため、キャリブレーション精度を短期間で向上させることができる。
【００１０】
（２）上記形態のキャリブレーション装置において、前記撮像数関連情報は、前記複数のグループのうち、前記分類された撮像画像の数が最も少ないグループを特定可能な情報を含んでもよい。この形態のキャリブレーション装置によれば、いずれのグループに分類された撮像画像の数が最も少ないかをユーザに容易に理解させることができる。したがって、どのような画像を得ることにより、キャリブレーションボードが撮像領域全体に散らばって写った複数の画像を得ることができるのかをユーザに理解させることができる。加えて、各グループのうち、マスタ画像との間の類似度の高い撮像画像が含まれていない可能性のあるグループに分類され得る画像の取得を、ユーザに促すことができる。
【００１１】
（３）上記形態のキャリブレーション装置において、前記撮像数関連情報は、前記複数のグループのそれぞれに分類された前記撮像画像の数を示す情報を含んでもよい。この形態のキャリブレーション装置によれば、各グループに分類された撮像画像の数をユーザに容易に理解させることができる。したがって、どのような画像を得ることにより、キャリブレーションボードが撮像領域全体に散らばって写った複数の画像を得ることができるのかをユーザに理解させることができる。加えて、各グループのうち、マスタ画像との間の類似度の高い撮像画像が含まれていない可能性があるグループに分類され得る画像の取得を、ユーザに促すことができる。
【００１２】
（４）上記形態のキャリブレーション装置において、さらに、各グループごとに、該グループに分類された撮像画像のそれぞれについて算出された前記類似度の統計的特性を求める統計処理部を備え、前記表示部は、前記誤差が前記所定値よりも大きい場合に、前記統計的特性に関連する統計的特性関連情報を表示してもよい。この形態のキャリブレーション装置によれば、ユーザに対して、各グループごとの類似度の統計的特性を容易に理解させ得る。したがって、例えば、各グループにおける最も類似度が高い撮像画像のうち、類似度の最も低い撮像画像のグループや、マスタ画像との間の平均類似度が最も低いグループをユーザに理解させることができ、これらのグループに分類され得る画像の取得をユーザに促すことができる。
【００１３】
（５）上記形態のキャリブレーション装置において、前記統計的特性は、各グループに分類された撮像画像のそれぞれについて算出された前記類似度のうち最高値であり、前記統計的特定関連情報は、前記複数のグループのうち、前記最高値が最も低いグループを特定可能な情報を含んでもよい。この形態のキャリブレーション装置によれば、各グループのうち、類似度の最高値が最も低いグループをユーザに容易に理解させることができる。したがって、かかるグループに分類され得る画像の取得をユーザに促すことができる。
【００１４】
（６）上記形態のキャリブレーション装置において、前記統計的特性は、各グループに分類された撮像画像のそれぞれについて算出された前記類似度の平均値であり、前記統計的特定関連情報は、前記複数のグループのうち、前記平均値が最も低いグループを特定可能な情報を含んでもよい。この形態のキャリブレーション装置によれば、各グループのうち、類似度の平均値が最も低いグループをユーザに容易に理解させることができる。したがって、かかるグループに分類され得る画像の取得をユーザに促すことができる。
【００１５】
（７）上記形態のキャリブレーション装置において、前記表示部は、前記誤差を表示してもよい。この形態のキャリブレーション装置によれば、撮像画像を追加するたびに、誤差が増加しているか又は低減しているかをユーザに容易に理解させることができる。したがって、撮像画像を追加して得るためにキャリブレーションボードの配置位置を調整する際に、どのように調整したら誤差が低減するかをユーザに理解させることができる。したがって、キャリブレーション精度を短期間で向上させることができる。
【００１６】
（８）上記形態のキャリブレーション装置において、前記撮像部は、連続して前記撮像画像を取得し、前記キャリブレーション処理部は、前記撮像部により前記撮像画像が取得されるたびに、得られた前記複数の撮像画像のうち、前記誤差が最も小さくなる前記代表画像群を決定してもよい。この形態のキャリブレーション装置によれば、予め多数の撮像画像を取得しておく必要がなく、ユーザの作業負担を軽減することができる。加えて、撮像画像が取得されるたびに誤差が最も小さくなる代表画像群を決定するので、最少でグループ数分の撮像画像を得るだけでキャリブレーションを終了することができ、キャリブレーション精度を短期間で向上させることができる。
【００１７】
本発明は、装置以外の種々の形態で実現することが可能である。例えば、撮像装置のキャリブレーション方法、その方法を実現するコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態としてのキャリブレーション装置を含むロボットシステム１０の外観構成を示す説明図である。
【図２】ロボットシステム１０の内部構成を示すブロック図である。
【図３】第１実施形態におけるカメラキャリブレーション処理の手順を示すフローチャートである。
【図４】マスタ画像格納部２８４に格納されているマスタ画像の一例を示す説明図である。
【図５】ステップＳ１５０において表示される情報の一例を示す説明図である。
【図６】第２実施形態におけるカメラキャリブレーション処理の手順を示すフローチャートである。
【図７】ステップＳ１０５ａにおいて管理用端末４００に表示される情報の一例を示す説明図である。
【図８】ステップＳ１５０ａにおいて表示される情報の一例を示す説明図である。
【図９】変形例１におけるカメラキャリブレーション処理のステップＳ１５０において管理用端末４００に表示される情報の一例を示す説明図である。
【図１０】変形例２におけるカメラキャリブレーション処理の手順を示すフローチャートである。
【図１１】変形例３におけるカメラキャリブレーション処理の手順を示すフローチャートである。
【図１２】変形例３のステップＳ１５０ｂにおいて表示される情報の一例を示す説明図である。
【図１３】変形例４におけるカメラキャリブレーション処理の手順を示すフローチャートである。
【図１４】変形例４のステップＳ１５０ｃにおいて表示される情報の一例を示す説明図である。
【図１５】変形例５のロボットシステム１０ａの内部構成を示すブロック図である。
【図１６】変形例６のロボットシステム１０ｂの内部構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
Ａ．第１実施形態：
Ａ１．システム構成：
図１は、本発明の一実施形態としてのキャリブレーション装置を含むロボットシステム１０の外観構成を示す説明図である。ロボットシステム１０は、多関節型の産業用のロボット本体１００と、制御装置２００と、教示装置３００と、管理用端末４００とを備えている。ロボット本体１００と教示装置３００と管理用端末４００とは、それぞれ、所定のケーブルにより制御装置２００に接続されている。
【００２０】
教示装置３００は、制御装置２００に対して、ロボット本体１００の動作を教示するための専用装置である。管理用端末４００は、制御装置２００に対して各種設定を行うための装置であり、例えば、パーソナルコンピュータにより構成することができる。
【００２１】
ロボット本体１００は、ベース部１０１と、ショルダ部１０２と、下アーム１０３と、上アーム１０４と、手首１０５と、フランジ部１０６と、エンドエフェクタ１０７と、カメラ１５０とを備えている。ベース部１０１は、工場内の設備（例えば、工作机や床面）に固定されている。ショルダ部１０２は、水平方向に旋回可能な関節軸を介してベース部１０１に接続されている。下アーム１０３は、鉛直方向に旋回可能な関節軸を介して下端がショルダ部１０２に接続されている。上アーム１０４は、鉛直方向に旋回可能な関節軸を介して下アーム１０３の先端に略中央部が接続されている。手首１０５は、鉛直方向に旋回可能な関節軸を介して上アーム１０４の先端に接続されている。フランジ部１０６は、回転可能であり、手首１０５の先端に設けられている。エンドエフェクタ１０７は、フランジ部１０６に取り付けられ、図示しないワークを把持することができる。カメラ１５０は、レンズ光軸がエンドエフェクタ１０７の長手方向（手首１０５の軸方向）と平行となるように手首１０５に設置されている。
【００２２】
ロボットシステム１０では、ワークが載置され得る作業台５００の作業面Ｓ１上に載置されたキャリブレーションボードＣＢが撮像され、得られた画像に基づき、後述するカメラキャリブレーション処理が実行される。図１に示すように、キャリブレーションボードＣＢは、表面に、白色及び黒色の正方形の升目が縦及び横に交互に配置された模様を有する。かかるキャリブレーションボードＣＢを含む撮像画像では、同色の升目が接する点（升目の四隅）が、キャリブレーションボードＣＢの特徴点として抽出され得る。
【００２３】
図２は、ロボットシステム１０の内部構成を示すブロック図である。ロボット本体１００は、三相交流式のブラシレスＤＣモータとして構成されたサーボモータ１３０と、サーボモータ１３０の回転を減速させる減速機１２０と、減速機１２０を介してサーボモータ１３０によって駆動される関節軸１１０と、を備えている。前述の各アーム１０３，１０４、手首１０５及びフランジ部１０６は、関節軸１１０に機械的に接続されている。
【００２４】
制御装置２００は、インバータ２１０と、駆動回路２２０と、ＣＰＵ（Central Processing Unit）２３０と、記憶部２８０と、入出力インターフェイス部２９０とを備えている。インバータ２１０は、駆動回路２２０及びロボット本体１００のサーボモータ１３０に電気的に接続されており、駆動回路２２０からの駆動信号に基づき、サーボモータ１３０に三相交流電力を供給する。駆動回路２２０は、ＣＰＵ２３０からの指示に従いインバータ２１０のスイッチング制御を行う。
【００２５】
ＣＰＵ２３０は、記憶部２８０に記憶されている制御プログラムを実行することにより、キャリブレーション処理部２３１、ユーザインターフェイス（ＵＩ）制御部２３２、撮像制御部２３３、画像処理部２３４、および駆動制御部２３５として機能する。キャリブレーション処理部２３１は、後述するカメラキャリブレーション処理を実行する。カメラキャリブレーションとは、カメラ１５０による撮像対象となる物体の物理的な位置（世界座標）と、撮像画像内における物体の位置（画像座標系）とを変換するための補正値を求める処理を意味する。かかる補正値は、回転及び並進に加えて、カメラ１５０に含まれるレンズの歪み等を考慮した変換行列を意味する。ロボットシステム１０では、カメラ１５０によりワークを撮像して得られた撮像画像及び補正値に基づきワークの物理的な位置を特定し、ワークの把持や移動を実行する。
【００２６】
ユーザインターフェイス制御部２３２は、教示装置３００又は管理用端末４００に各種メニュー画面を作成して表示させたり、教示装置３００又は管理用端末４００から入力される各種指示を解釈したりする。撮像制御部２３３は、撮像のための各種パラメータ（例えば、絞り値やシャッタースピード等）に従って、カメラ１５０に対して撮像を指示する。画像処理部２３４は、カメラ１５０による撮像によって得られた撮像画像に対して、明るさやシャープネス等を調整する。また、画像処理部２３４は、得られた撮像画像を解析して、後述するマスタ画像との類似度の算出や、撮像画像内の特徴点の抽出を行う。駆動制御部２３５は、記憶部２８０に予め記憶されている教示データに基づいて、サーボモータ１３０を駆動するための信号を駆動回路２２０に出力する。
【００２７】
記憶部２８０は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等からなり、前述の制御プログラムを記憶すると共に、撮像画像格納部２８２と、マスタ画像格納部２８４と、補正値格納部２８６とを備えている。撮像画像格納部２８２は、カメラ１５０よる撮像によって得られた画像を格納する。マスタ画像格納部２８４は、後述するカメラキャリブレーション処理において用いられるマスタ画像を予め格納する。補正値格納部２８６は、後述するカメラキャリブレーション処理において算出される補正値を格納する。入出力インターフェイス部２９０は、カメラ１５０と教示装置３００と管理用端末４００とを、それぞれＣＰＵ２３０に接続させるための各種インターフェイス群からなる。
【００２８】
カメラ１５０は、撮像部１５２と、制御部１５４と、接続インターフェイス部１５６とを備えている。撮像部１５２は、ＣＣＤ（Charge Coupled Device）等の撮像素子と、被写体の光学像を撮像面上に結像する撮像レンズ系とを備え、光学像を電気信号に変換して画像データを取得する。制御部１５４は、撮像制御部２３３からの指示に従い、撮像部を制御して、所定のシャッタースピードや絞り値で撮像を実行する。接続インターフェイス部１５６は、制御装置２００と接続するためのインターフェイスを有する。かかるインターフェイスとしては、例えば、ＵＳＢ（Universal Serial Bus）や、Ｅｔｈｅｒｎｅｔ（登録商標）を採用することができる。
【００２９】
上記構成を有するロボットシステム１０では、後述するカメラキャリブレーション処理を実行することにより、短期間のうちにキャリブレーション精度を向上させることができる。なお、ロボットシステム１０では、カメラ１５０の位置を固定して、キャリブレーションボードＣＢを移動させることにより、撮像領域内において互いに異なる位置にキャリブレーションボードＣＢが写った複数の画像を取得し、かかる複数の画像を用いてカメラキャリブレーションが実行される。
【００３０】
前述のキャリブレーション処理部２３１と画像処理部２３４と管理用端末４００とは、請求項におけるキャリブレーション装置に相当する。キャリブレーション処理部２３１は、請求項におけるキャリブレーション処理部と、類似度算出部と、分類部と、判定部と、統計処理部とに相当する。管理用端末４００（管理用端末４００が有する表示部）は、請求項における表示部に相当する。
【００３１】
Ａ２．カメラキャリブレーション処理：
図３は、第１実施形態におけるカメラキャリブレーション処理の手順を示すフローチャートである。ユーザが管理用端末４００においてカメラキャリブレーション処理メニューを選択して実行することにより、カメラキャリブレーション処理が開始される。
【００３２】
キャリブレーション処理部２３１は、ユーザインターフェイス制御部２３２を制御して、所定数以上の撮像を指示するメッセージを管理用端末４００に表示させる（ステップＳ１０５）。ユーザは、作業台５００の作業面Ｓ１においてキャリブレーションボードＣＢを任意の位置に配置しながら、管理用端末４００を操作してカメラ１５０による撮像を指示する。このとき、ユーザは、キャリブレーションボードＣＢを作業面Ｓ１上において鉛直方向に傾けて配置することもできる。撮像する所定数としては、任意の数が設定可能であるが、以下では６０枚に設定されているものとして説明する。制御装置２００において、撮像制御部２３３は、管理用端末４００から撮像指示を受けると、カメラ１５０に対して所定の撮像条件での撮像を指示する。カメラ１５０において、制御部１５４は、撮像制御部２３３から撮像指示を受けると、撮像部１５２を制御して撮像を実行する。
【００３３】
キャリブレーション処理部２３１は、管理用端末４００から撮像完了の通知を受けるまで待機する（ステップＳ１１０）。ユーザは、所定数以上の撮像が完了すると、管理用端末４００を操作して撮像完了を制御装置２００に通知する。キャリブレーション処理部２３１は、撮像完了の通知を受けると（ステップＳ１１０：ＹＥＳ）、画像処理部２３４を制御して、各撮像画像についてマスタ画像格納部２８４に格納されている複数のマスタ画像のそれぞれとの類似度を算出する（ステップＳ１１５）。
【００３４】
図４は、マスタ画像格納部２８４に格納されているマスタ画像の一例を示す説明図である。図４に示すように、第１実施形態では、４つのマスタ画像ＦＡ，ＦＢ，ＦＣ，ＦＤが、マスタ画像格納部２８４に格納されている。なお、図４では、各マスタ画像ＦＡ，ＦＢ，ＦＣ，ＦＤにおいて、説明の便宜上、画像の縦及び横の中央を示す破線を記載している。
【００３５】
マスタ画像ＦＡ，ＦＢ，ＦＣ，ＦＤは、これら４つの画像に基づきカメラキャリブレーションを行った場合に、キャリブレーション精度が所定値以上（誤差が所定値以下）となる画像群である。これらのマスタ画像ＦＡ，ＦＢ，ＦＣ，ＦＤは、予めユーザが実験によりカメラキャリブレーションを実行し、キャリブレーション精度が所定値以上となる組合せを抽出して設定することができる。なお、キャリブレーション精度については後述する。
【００３６】
図４に示すように、各マスタ画像ＦＡ，ＦＢ，ＦＣ，ＦＤでは、キャリブレーションボードＣＢの画像ＣＢｆが、撮像領域において互いに異なる領域に写っている。具体的には、マスタ画像ＦＡでは、画像ＣＢｆが右上の領域に写っている。マスタ画像ＦＢでは、画像ＣＢｆが右下の領域に写っている。マスタ画像ＦＣでは、画像ＣＢｆが左上の領域に写っている。マスタ画像ＦＤでは、画像ＣＢｆが左下の領域に写っている。このように画像ＣＢｆが撮像領域全体に散らばって写った複数の画像を用いることで、キャリブレーション精度を向上させることができる。また、このようなマスタ画像に類似する画像を撮像により得ることができれば、得られた画像に基づきカメラキャリブレーションを行った場合にキャリブレーション精度を向上させることができる。
【００３７】
類似度の算出は、例えば、撮像画像とマスタ画像とで、同じ位置の画素の輝度値の差分を求め、差分の合計値として算出することができる。この場合、差分の合計値が大きいほど類似度は低く、差分の合計値が小さいほど類似度は高い。
【００３８】
キャリブレーション処理部２３１は、ステップＳ１１５において得られた類似度に基づき、各撮像画像を、最も類似度の高いマスタ画像のグループに分類する（ステップＳ１２０）。なお、図４に示すように、マスタ画像ＦＡが最も類似度が高いと評価された画像群の属するグループを、以降では「グループＡ」と呼ぶ。同様に、マスタ画像ＦＢが最も類似度が高いと評価された画像群の属するグループを「グループＢ」と、マスタ画像ＦＣが最も類似度が高いと評価された画像群の属するグループを「グループＣ」と、マスタ画像ＦＤが最も類似度が高いと評価された画像群の属するグループを「グループＤ」と、それぞれ以降において呼ぶものとする。
【００３９】
キャリブレーション処理部２３１は、ステップＳ１２０で分類された各グループ内において、類似度が最も高い撮像画像を特定する（ステップＳ１２５）。
【００４０】
キャリブレーション処理部２３１は、ステップＳ１２５において特定された撮像画像群（各グループ１枚ずつの合計４つの画像）を用いてカメラキャリブレーションを実行する（ステップＳ１３０）。
【００４１】
カメラキャリブレーションは、例えば、以下のように行うことができる。まず、キャリブレーションボードＣＢにおける同色の升目の各接点（以下、「交点」と呼ぶ）について、世界座標系における位置（座標）を特定すると共に、各交点の撮像画像における位置（画像座標系における位置）を特定する。次に、特定された各交点の世界座標系における位置（座標）及び撮像画像における位置を下記式１に当てはめて得られた複数の式を解くことにより、下記式１における回転行列及び並進ベクトル（補正値）を求める。
【００４２】
Ｔ＝Ａ・[Ｒ｜ｔ]・Ｓ  ・・・（１）
【００４３】
上記式１において、Ｓは、世界座標系における位置を表す。また、Ｔは、画像座標系における位置を表す。また、上記式１において、Ａはカメラの内部パラメータを、Ｒはカメラ座標系と世界座標との間の回転行列を、ｔは並進ベクトルを、それぞれ表す。カメラの内部パラメータとは、カメラ１５０のピンホール位置を原点とするカメラ座標系と、画像座標系との対応関係を示す行列式を意味する。かかるカメラの内部パラメータは、カメラの焦点距離や、撮像素子の大きさや、レンズの歪み係数等のパラメータにより設定される既知の行列式である。
【００４４】
キャリブレーション処理部２３１は、ステップＳ１３０により得られた補正値を用いて世界座標系と画像座標系との間の変換を行った場合の誤差を求める（ステップＳ１３５）。具体的には、前述のカメラキャリブレーションにおいて特定された撮像画像における特徴点の位置に基づき上記式１の逆変換を行って得られた位置（世界座標系における座標）と、前述のカメラキャリブレーションにおいて特定された世界座標系における特徴点の位置（世界座標系における座標）とを比較して、これら位置の誤差（位置間の距離）を求める。なお、かかる誤差が小さいほどカメラキャリブレーションの精度は高い。
【００４５】
キャリブレーション処理部２３１は、ステップＳ１３５で求めた誤差が所定値以下であるか否かを判定し（ステップＳ１４０）、誤差が所定値以下であると判定された場合には、カメラキャリブレーション処理は終了する。カメラキャリブレーション処理が終了すると、ステップＳ１３０で求められた補正値が、その後、ロボット本体１００を動作させる際に用いられることとなる。
【００４６】
前述のステップＳ１４０において、誤差が所定値よりも大きいと判定された場合には（ステップＳ１４０：ＮＯ）、キャリブレーション処理部２３１は、各グループに所属する画像数を特定する（ステップＳ１４５）。なお、ステップＳ１４０における「所定値」としては任意の値が設定することができ、例えば、１ｍｍに設定することができる。
【００４７】
キャリブレーション処理部２３１は、ユーザインターフェイス制御部２３２を制御して、所属する画像数の最も少ないグループを示す情報、およびかかるグループに属する画像の取得を促すメッセージを、管理用端末４００に表示させる（ステップＳ１５０）。
【００４８】
図５は、ステップＳ１５０において表示される情報の一例を示す説明図である。例えば、所属する画像数が最も少ないグループがグループＡであった場合には、ステップＳ１５０が実行されると、図５に示すウィンドウＷ１が表示される。第１実施形態では、ステップＳ１５０における「所属する画像数の最も少ないグループを示す情報」として、各グループのマスタ画像が表示される。したがって、図５に示すように、ウィンドウＷ１には、マスタ画像ＦＡが表示されている。また、ウィンドウＷ１には、「以下のマスタ画像に類似する画像を１０枚撮像してください」とのメッセージが表示されている。かかるメッセージを見たユーザは、マスタ画像ＦＡに類似する画像を得るために、キャリブレーションボードＣＢを作業台５００において右上に配置して１０枚撮像を行う。なお、１０枚に限らず任意の枚数の撮像を促すメッセージを採用することもできる。
【００４９】
前述のステップＳ１５０が実行された後、前述のステップＳ１１０に戻る。したがって、今度は、追加して撮像して得られた１０枚の画像を含む撮像画像群（合計７０枚の撮像画像）に基づき、上述したステップＳ１１５〜Ｓ１５０が実行される。このようにして、ステップＳ１４０において誤差が所定値以下であると判定されるまで画像が追加されてカメラキャリブレーションが実行され、ステップＳ１４０において誤差が所定値以下であると判定されるとカメラキャリブレーション処理は終了する。
【００５０】
以上説明した第１実施形態のロボットシステム１０では、所属する撮像画像数が最も少ないグループを示す情報及びかかるグループに属する画像の取得を促すメッセージを管理用端末４００に表示させる。したがって、ユーザに対して所属する撮像画像数が最も少ないグループにおいて画像を追加させることができる。所属する撮像画像数が最も少ないグループに画像が追加されると、既に当該グループに所属している画像（既存画像）が少ないことから、新規に追加された画像（追加画像）は、既存画像と相違する可能性が高くなる。そして、既存画像では、「補正値による変換の誤差が所定値よりも大きい」という状態を前提に、キャリブレーション精度の改善を目指して追加画像を撮像することになるのであるから、追加画像は、当然ながら既存画像よりもマスタ画像に対する類似度の高い画像である可能性が高い。よって、画像を追加させることにより、既存画像を用いた場合に比べてキャリブレーション精度を向上させることができる。
【００５１】
Ｂ．第２実施形態：
図６は、第２実施形態におけるカメラキャリブレーション処理の手順を示すフローチャートである。第２実施形態のロボットシステムは、カメラキャリブレーション処理において、ステップＳ１０５に代えてステップＳ１０５ａを実行する点と、ステップＳ１４５に代えてステップＳ１４６を実行する点と、ステップＳ１５０に代えてステップＳ１５０ａを実行する点において、第１実施形態のロボットシステム１０と異なり、装置構成及びカメラキャリブレーション処理における他の手順は、第１実施形態のロボットシステム１０と同じである。また、第２実施形態のロボットシステムの装置構成は、第１実施形態のロボットシステム１０の装置構成と同じである。
【００５２】
第１実施形態のカメラキャリブレーション処理では、予め比較的多い撮像画像を得ておき（ステップＳ１０５）、キャリブレーション精度が低い（誤差が大きい）場合に追加して撮像画像を得るようにしていた。これに対して、第２実施形態のカメラキャリブレーション処理では、予め比較的少ない（グループ数分の）撮像画像を得ておき、キャリブレーション精度が低い（誤差が大きい）場合に１枚ずつ撮像してカメラキャリブレーション（ステップＳ１３０）を実行する。
【００５３】
具体的には、キャリブレーション処理部２３１は、ユーザインターフェイス制御部２３２を制御して、マスタ画像と、各グループごとに１枚ずつの撮像画像を得る旨を指示するメッセージとを管理用端末４００に表示させる（ステップＳ１０５ａ）。
【００５４】
図７は、ステップＳ１０５ａにおいて管理用端末４００に表示される情報の一例を示す説明図である。図７に示すように、管理用端末４００に表示されるウィンドウＷ２には、図４に示すマスタ画像と同じマスタ画像が表わされていると共に、「各マスタ画像に類似する画像を１枚ずつ撮像してください。」というメッセージが表されている。したがって、ユーザは、かかる情報を見ることにより、各マスタ画像に類似する合計４枚の撮像画像を撮像することができる。
【００５５】
ステップＳ１０５ａが実行された後、上述したステップＳ１１０〜Ｓ１４０が実行される。なお、最初にステップＳ１１０〜Ｓ１４０が実行される場合には、ステップＳ１０５ａの後に撮像された４枚を用いてカメラキャリブレーション（ステップＳ１３０）が実行される。
【００５６】
ステップＳ１４０において、ステップＳ１３５で求めた誤差が所定値よりも大きいと判定された場合には、キャリブレーション処理部２３１は、各グループにおいて類似度が最も高い撮像画像のうち、類似度が最も低い撮像画像が所属するグループを特定する（ステップＳ１４６）。
【００５７】
キャリブレーション処理部２３１は、ユーザインターフェイス制御部２３２を制御して、ステップＳ１４６において特定されたグループを示す情報およびかかるグループに属する画像の取得を促すメッセージを管理用端末４００に表示させる（ステップＳ１５０ａ）。
【００５８】
図８は、ステップＳ１５０ａにおいて表示される情報の一例を示す説明図である。例えば、各グループにおいて類似度が最も高い撮像画像のうち、類似度が最も低い撮像画像が所属するグループがグループＡの場合には、管理用端末４００に表示されるウィンドウＷ１ａには、図５に示すウィンドウＷ１と同様に、マスタ画像ＦＡが表示される。また、ウィンドウＷ１ａには、ウィンドウＷ１と異なり、マスタ画像ＦＡに類似する画像を「１枚」撮像することを指示する（促す）メッセージが表示される。したがって、ユーザは、ウィンドウＷ１ａを見た後、キャリブレーションボードＣＢの配置位置を調整して、マスタ画像ＦＡに類似する（グループＡに分類される可能性が高い）画像を１枚取得する。
【００５９】
ステップＳ１５０ａが実行された後、ステップＳ１１０に戻り、再びステップＳ１１０〜Ｓ１５０ａが実行される。
【００６０】
以上の構成を有する第２実施形態のロボットシステムは、第１実施形態のロボットシステム１０と同様な効果を有する。加えて、第２実施形態のカメラキャリブレーション処理では、最初に得られた４枚の撮像画像を用いてカメラキャリブレーションを実行した結果、キャリブレーション精度が所定値以下の場合（変換の誤差が所定値よりも大きい場合）には、撮像画像を１枚追加するたびにカメラキャリブレーションを実行する（ステップＳ１３０）。したがって、予め多数の撮像画像を取得しておく必要がなく、また、最少でグループ数分の撮像画像を得るだけでカメラキャリブレーション処理を完了できるので、撮像画像を得るためのユーザの作業負担を軽減することができる。
【００６１】
Ｃ．変形例：
Ｃ１．変形例１：
図９は、変形例１におけるカメラキャリブレーション処理のステップＳ１５０において管理用端末４００に表示される情報の一例を示す説明図である。上述した第１実施形態では、カメラキャリブレーション処理のステップＳ１５０では、所属する撮像画像数が最も少ないグループを示す情報としてマスタ画像を表示していたが、本発明はこれに限定されるものではない。例えば、図９のウィンドウＷ３に示すように、各マスタ画像ＦＡ，ＦＢ，ＦＣ，ＦＤと、各マスタ画像のグループに所属している撮像画像数とを、表示することができる。具体的には、図８に示すように、マスタ画像ＦＡの近傍に、グループＡに所属する撮像画像数「８枚」を表示することができる。同様に、マスタ画像ＦＢの近傍にグループＢに所属する撮像画像数「１２枚」を、マスタ画像ＦＣの近傍にグループＣに所属する撮像画像数「２５枚」を、マスタ画像ＦＤの近傍にグループＤに所属する撮像画像数「１５枚」を、それぞれ表示することができる。また、ウィンドウＷ３には、「撮像枚数の最も少ないグループの画像を１０枚撮像してください」とのメッセージが表示されている。このようなウィンドウＷ３を表示させることにより、グループＡに所属する撮像画像の数が他のグループに比べて少ないこと、及びグループＡに所属するような画像を撮像する必要があることをユーザに理解させることができる。
【００６２】
Ｃ２．変形例２：
図１０は、変形例２におけるカメラキャリブレーション処理の手順を示すフローチャートである。変形例２のカメラキャリブレーション処理は、ステップＳ１４５に代えてステップＳ１４６を実行する点、及びステップＳ１５０に代えてステップＳ１５０ａを実行する点において、図３に示す第１実施形態のカメラキャリブレーション処理と異なり、他の手順は、第１実施形態と同じである。また、変形例２におけるロボットシステムの装置構成は、第１実施形態のロボットシステム１０の装置構成と同じである。
【００６３】
ステップＳ１４６は、図６に示す第２実施形態のカメラキャリブレーション処理のステップＳ１４６と同じである。同様に、ステップＳ１５０ａは、図６に示す第２実施形態のカメラキャリブレーション処理のステップＳ１５０ａと同じである。
【００６４】
以上の構成を有する変形例２のロボットシステムでは、各グループにおける類似度が最も高い撮像画像のうち、類似度が最も低い撮像画像のグループについて、かかるグループを示す情報及びかかるグループに属する画像の取得を促すメッセージを管理用端末４００に表示させるので、かかるグループに属する画像数の増加を促すことができる。このため、かかるグループにおいて類似度が最も高い撮像画像の類似度が上昇する可能性を高めることができ、キャリブレーション精度を向上させることができる。なお、変形例２において、変形１と同様に、各マスタ画像ＦＡ，ＦＢ，ＦＣ，ＦＤを表示させると共に、各グループＡ〜Ｄにおける類似度が最も高い撮像画像の類似度を、各マスタ画像ＦＡ，ＦＢ，ＦＣ，ＦＤに対応付けて表示させることもできる。
【００６５】
Ｃ３．変形例３：
図１１は、変形例３におけるカメラキャリブレーション処理の手順を示すフローチャートである。変形例３のカメラキャリブレーション処理は、ステップＳ１５０に代えてステップＳ１５０ｂを実行する点において、図３に示す第１実施形態のカメラキャリブレーション処理と異なり、他の手順は第１実施形態と同じである。また、変形例２におけるロボットシステムの装置構成は、第１実施形態のロボットシステム１０の装置構成と同じである。
【００６６】
変形例３のカメラキャリブレーション処理では、ステップＳ１４５が実行された後、キャリブレーション処理部２３１は、ユーザインターフェイス制御部２３２を制御して、所属する画像数の最も少ないグループを示す情報と、かかるグループに属する画像の取得を促すメッセージと、ステップＳ１３５で求めた誤差とを、管理用端末４００に表示させる（ステップＳ１５０ｂ）。
【００６７】
図１２は、変形例３のステップＳ１５０ｂにおいて表示される情報の一例を示す説明図である。図１２に示すように、管理用端末４００に表示されるウィンドウＷ４は、誤差表示領域Ａｒが設けられている点において、図５に示すウィンドウＷ１と異なり、他の構成はウィンドウＷ１と同じである。誤差表示領域Ａｒは、ステップＳ１３５において求められた誤差を表示するための領域である。図５の例では、誤差として「１．５ｍｍ」が表示されている。
【００６８】
以上の構成を有する変形例３のロボットシステムは、第１実施形態のロボットシステム１０と同様の効果を有する。加えて、管理用端末４００において、ステップＳ１３５で求めた誤差を表示するので、ユーザに対してキャリブレーション精度がどの程度であるかを理解させることができる。したがって、ユーザは、キャリブレーションボードＣＢの位置を調整した際に、キャリブレーション精度が向上したのか又は低下したのかを理解することができ、誤差表示領域Ａｒに表示される数値（誤差）を、キャリブレーションボードＣＢの位置をずらす際の目安とすることができる。
【００６９】
Ｃ４．変形例４：
図１３は、変形例４におけるカメラキャリブレーション処理の手順を示すフローチャートである。変形例４のカメラキャリブレーション処理は、ステップＳ１４７を追加して実行する点、およびステップＳ１５０に代えてステップＳ１５０ｃを実行する点において、図３に示す第１実施形態のカメラキャリブレーション処理と異なり、他の手順は、第１実施形態と同じである。また、変形例４におけるロボットシステムの装置構成は、第１実施形態のロボットシステム１０の装置構成と同じである。
【００７０】
変形例４のカメラキャリブレーション処理では、上述したステップＳ１４５が実行された後、キャリブレーション処理部２３１は、ステップＳ１１５において算出した各撮像画像の類似度に基づき各グループの平均類似度を求める（ステップＳ１４７）。キャリブレーション処理部２３１は、ユーザインターフェイス制御部２３２を制御して、各グループの撮像画像数、最高類似度、平均類似度のヒストグラムを管理用端末４００に表示させる（ステップＳ１５０ｃ）。
【００７１】
図１４は、変形例４のステップＳ１５０ｃにおいて表示される情報の一例を示す説明図である。図１４に示すように、管理用端末４００に表示されるウィンドウＷ５には、撮像画像数のヒストグラムと、最高類似度のヒストグラムと、平均類似度のヒストグラムとが表示されている。なお、図１４では、類似度（最高類似度及び平均類似度）の単位はパーセンテージである。このように、管理用端末４００において、撮像画像数のヒストグラムと、最高類似度のヒストグラムと、平均類似度のヒストグラムとが表示されるので、ユーザは、各グループのうち、いずれのグループに所属する撮像画像数が最も少ないのか、いずれのグループの最高類似度が最も低いのか、いずれのグループの平均類似度が最も低いのかを容易に理解することができる。したがって、例えば、ユーザは、最高類似度が最も低いグループに所属する画像を取得することにより、キャリブレーション精度を高めることができる。
【００７２】
Ｃ５．変形例５：
図１５は、変形例５のロボットシステム１０ａの内部構成を示すブロック図である。第１実施形態のロボットシステム１０は、カメラ１５０を除くカメラキャリブレーション処理を実現する機能部は、いずれも制御装置２００が有していたが、変形例５のロボットシステム１０ａでは、これら機能部を、制御装置及び管理用端末が分担して有する。
【００７３】
具体的には、変形例５の制御装置２００ａは、ＣＰＵ２３０が、キャリブレーション処理部２３１，ユーザインターフェイス制御部２３２，撮像制御部２３３、及び画像処理部２３４として機能しない点と、駆動制御部２３５に代えて駆動副制御部２３６として機能する点とにおいて、第１実施形態の制御装置２００と異なり、他の構成は、制御装置２００と同じである。駆動副制御部２３６は、後述する管理用端末４００ａから受信する信号を駆動回路２２０に供給する。
【００７４】
変形例５の管理用端末４００ａは、コンピュータ本体４０１と、ディスプレイ４６０と、キーボード４７０とを備えている。コンピュータ本体４０１は、入出力インターフェイス部４１０と、ＣＰＵ４２０と、ハードディスク４３０と、ＲＡＭ４４０と、ＲＯＭ４５０とを備えている。
【００７５】
入出力インターフェイス部４１０は、各種接続インターフェイス群からなり、制御装置２００ａの入出力インターフェイス部２９０と、カメラ１５０の接続インターフェイス部１５６と、ディスプレイ４６０と、キーボード４７０と、ＣＰＵ４２０とに接続されている。ＣＰＵ４２０は、ＲＯＭ４５０に記憶されている制御プログラムを読み出してＲＡＭ４４０に展開して実行することにより、キャリブレーション処理部４２１，撮像制御部４２２，駆動主制御部４２３，ユーザインターフェイス制御部４２４，及び画像処理部４２５として機能する。キャリブレーション処理部４２１は、第１実施形態におけるキャリブレーション処理部２３１と同じであるので説明を省略する。同様に、撮像制御部４２２は第１実施形態における撮像制御部２３３と、ユーザインターフェイス制御部４２４は第１実施形態におけるユーザインターフェイス制御部２３２と、画像処理部４２５は第１実施形態における画像処理部２３４と、それぞれ同じであるので説明を省略する。駆動主制御部４２３は、ＲＯＭ４５０に予め記憶されている教示データに基づき、サーボモータ１３０を駆動するための信号を駆動副制御部２３６に送信する。
【００７６】
ハードディスク４３０は、撮像画像格納部４３１とマスタ画像格納部４３２と補正値格納部４３３とを備えている。撮像画像格納部４３１は、第１実施形態における撮像画像格納部２８２と同じであるので説明を省略する。同様に、マスタ画像格納部４３２は第１実施形態におけるマスタ画像格納部２８４と、補正値格納部４３３は第１実施形態における補正値格納部２８６と、それぞれ同じであるので説明を省略する。
【００７７】
以上の構成を有する変形例５のロボットシステム１０ａは、第１実施形態のロボットシステム１０と同様の効果を有する。
【００７８】
Ｃ６．変形例６：
図１６は、変形例６のロボットシステム１０ｂの内部構成を示すブロック図である。変形例６のロボットシステム１０ｂは、管理用端末４００を有していない点、カメラ１５０に代えてカメラ１５０ａを有する点、及び制御装置２００が有する一部の機能部が省略されている点において、第１実施形態のロボットシステム１０と異なり、他の構成及びカメラキャリブレーション処理の手順は、第１実施形態のロボットシステム１０と同じである。
【００７９】
変形例６の制御装置２００ａは、図１５に示す変形例５の制御装置２００と同じであるので、説明を省略する。
【００８０】
変形例６のカメラ１５０ａは、ＣＰＵ１６０と記憶部１７０と操作部１８０と表示部１８２とを備えている点、及び接続インターフェイス部１５６の接続先が制御部１５４に代えてＣＰＵ１６０である点において、第１実施形態のカメラ１５０と異なり、他の構成は、第１実施形態のカメラ１５０と同じである。
【００８１】
ＣＰＵ１６０は、記憶部１７０に記憶されている制御プログラムを実行することにより、キャリブレーション処理部１６１，撮像制御部１６２，駆動主制御部１６３，ユーザインターフェイス制御部１６４，及び画像処理部１６５として機能する。キャリブレーション処理部１６１は、第１実施形態におけるキャリブレーション処理部２３１と同じであるので説明を省略する。同様に、撮像制御部１６２は第１実施形態における撮像制御部２３３と、駆動主制御部１６３は第２実施形態における駆動主制御部４２３と、ユーザインターフェイス制御部１６４は第１実施形態におけるユーザインターフェイス制御部２３２と、画像処理部１６５は第１実施形態における撮像制御部２３３と、それぞれ同じであるので説明を省略する。
【００８２】
記憶部１７０は、ＲＡＭやＲＯＭ等からなり、前述の制御プログラムを記憶すると共に、撮像画像格納部１７１とマスタ画像格納部１７２と補正値格納部１７３とを備えている。撮像画像格納部１７１は、第１実施形態における撮像画像格納部２８２と同じであるので説明を省略する。同様に、マスタ画像格納部１７２は第１実施例のマスタ画像格納部２８４と、補正値格納部１７３は第１実施形態における補正値格納部２８６と、それぞれ同じであるので説明を省略する。
【００８３】
操作部１８０は、ＣＰＵ１６０と接続されている。操作部１８０は各種操作ボタンを有しており、操作ボタンを介して入力される指示をＣＰＵ１６０に通知する。表示部１８２はＣＰＵ１６０と接続されており、ユーザインターフェイス制御部１６４により生成された各種メニュー画面や各種ウィンドウ等を表示する。
【００８４】
以上の構成を有する変形例６のロボットシステム１０ｂは、第１実施形態のロボットシステム１０と同様の効果を有する。加えて、管理用端末４００を省略することができるので、システム全体を小型化することができる。
【００８５】
Ｃ７．変形例７：
各実施形態及び各変形例では、カメラキャリブレーションに用いる撮像画像の数は４枚であったが、４枚に限らず任意の複数枚とすることもできる。例えば、カメラ１５０の撮像領域を６つに分割して、分割されたそれぞれの領域にキャリブレーションボードＣＢが写った撮像画像をカメラキャリブレーションに用いることができる。この構成では、マスタ画像は６枚用意され、撮像画像は６つのグループに分類されることとなる。
【００８６】
Ｃ８．変形例８：
変形例４を除く各実施形態及び各変形例おいて、管理用端末４００に表示される「グループを示す情報」には、マスタ画像が含まれていたが、マスタ画像を省略することができる。この場合、グループを示す情報として、例えば、グループ名を表示することもできる。
【００８７】
Ｃ９．変形例９：
第１実施形態のステップＳ１５０において、撮像画像数が最も少ないグループを示す情報及び画像取得を促すメッセージを表示するのは管理用端末４００であったが、管理用端末４００に代えて、教示装置３００に表示させることもできる。また、制御装置２００に表示部を設けて、かかる表示部に、撮像画像数が最も少ないグループを示す情報及び画像取得を促すメッセージを表示する構成を採用することもできる。
【００８８】
Ｃ１０．変形例１０：
第１実施形態では、カメラキャリブレーション処理のステップＳ１５０において、所属する画像数が最も少ないグループを示す情報を表示していたが、これに代えて、所属する画像数が最も少ないグループと、２番目以降に少ない任意のグループを示す情報を表示することもできる。例えば、所属する画像数が最も少ないグループと２番目に少ないグループとを示す情報を表示することができる。この構成では、マスタ画像により類似する２枚の画像が次回のカメラキャリブレーションで用いられ得るので、キャリブレーション精度をより短期間に向上させることができる。
【００８９】
Ｃ１１．変形例１１：
各実施形態では、新たに撮像画像が新たに得られるたびに、補正値（ステップＳ１３０）、及び変換の誤差（ステップＳ１３５）を求めていたが、本発明はこれに限定されるものではない。例えば、ステップＳ１３０，Ｓ１３５，Ｓ１４０に代えて、以下の手順を実行することができる。まず、ステップＳ１２５において特定された撮像画像の類似度が所定値以上であるか否かを判定し、類似度が所定値以上である場合にカメラキャリブレーション処理を終了し、類似度が所定値よりも低い場合に前述のステップＳ１４５，Ｓ１５０を実行する、との手順を実行することができる。このような構成によれば、補正値及び誤差の算出を省略することができるので、カメラキャリブレーション処理に要する期間を短くすることができる。
【００９０】
Ｃ１２．変形例１２：
各実施形態では、カメラ１５０，１５０ａは、手首１０５に設置されていたが、本発明はこれに限定されるものではない。例えば、手首１０５に代えて、上アーム１０４や下アーム１０３やショルダ部１０２やフランジ部１０６等に配置することもできる。すなわち、一般には、ロボット本体１００が有するアームと所定の位置関係となる位置に配置された撮像装置を、本発明における撮像装置として採用することができる。なお、請求項における「アーム」とは、各実施形態における下アーム１０３，上アーム１０４，手首１０５，フランジ部１０６を含む広い意味を有する。
【００９１】
Ｃ１３．変形例１３：
各実施形態においてソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。また、これとは逆に、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよい。
【００９２】
本発明は、上述の実施形態や変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、変形例中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【符号の説明】
【００９３】
１０，１０ａ，１０ｂ…ロボットシステム
１００…ロボット本体
１０１…ベース部
１０２…ショルダ部
１０３…下アーム
１０４…上アーム
１０５…手首
１０６…フランジ部
１０７…エンドエフェクタ
１１０…関節軸
１２０…減速機
１３０…サーボモータ
１５０，１５０ａ…カメラ
１５２…撮像部
１５４…制御部
１５６…接続インターフェイス部
１６０…ＣＰＵ
１６１…キャリブレーション処理部
１６２…撮像制御部
１６３…駆動主制御部
１６４…ユーザインターフェイス制御部
１６５…画像処理部
１７０…記憶部
１７１…撮像画像格納部
１７２…マスタ画像格納部
１７３…補正値格納部
１８０…操作部
１８２…表示部
２００，２００ａ…制御装置
２１０…インバータ
２２０…駆動回路
２３０…ＣＰＵ
２３１…キャリブレーション処理部
２３２…ユーザインターフェイス制御部
２３３…撮像制御部
２３４…画像処理部
２３５…駆動制御部
２３６…駆動副制御部
２８０…記憶部
２８２…撮像画像格納部
２８４…マスタ画像格納部
２８６…補正値格納部
２９０…入出力インターフェイス部
３００…教示装置
４００，４００ａ…管理用端末
４０１…コンピュータ本体
４１０…入出力インターフェイス部
４２０…ＣＰＵ
４２１…キャリブレーション処理部
４２２…撮像制御部
４２３…駆動主制御部
４２４…ユーザインターフェイス制御部
４３０…ハードディスク
４３１…撮像画像格納部
４３２…マスタ画像格納部
４３３…補正値格納部
４６０…ディスプレイ
４７０…キーボード
５００…作業台
Ｓ１…作業面
Ｗ１，Ｗ１ａ，Ｗ２，Ｗ３，Ｗ４，Ｗ５…ウィンドウ
ＦＡ，ＦＢ，ＦＣ，ＦＤ…マスタ画像
ＣＢ…キャリブレーションボード
Ａｒ…誤差表示領域
ＣＢｆ…キャリブレーションボードの画像
【図１】
2014069272.tif 000003
【図２】
2014069272.tif 000004
【図３】
2014069272.tif 000005
【図４】
2014069272.tif 000006
【図５】
2014069272.tif 000007
【図６】
2014069272.tif 000008
【図７】
2014069272.tif 000009
【図８】
2014069272.tif 000010
【図９】
2014069272.tif 000011
【図１０】
2014069272.tif 000012
【図１１】
2014069272.tif 000013
【図１２】
2014069272.tif 000014
【図１３】
2014069272.tif 000015
【図１４】
2014069272.tif 000016
【図１５】
2014069272.tif 000017
【図１６】
2014069272.tif 000018