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