(57)【要約】【課題】撮像部の配線が、先端アームの回転に伴い、頻繁に屈曲して劣化することを低減する制御装置、かかる制御装置により制御されているロボット、および、かかる制御装置とロボットとを備えるロボットシステムを提供すること。【解決手段】撮像部が設けられたアームを含む可動部を有するロボットを制御する制御装置であって、前記アームを並進移動させることにより、前記撮像部の姿勢を求める制御部を備えることを特徴とする制御装置。また、前記制御部は、前記アームを並進移動させる方向と、前記アームの並進移動に伴う前記撮像部の座標系における移動方向とに基づいて前記撮像部の姿勢を求めることが好ましい。【選択図】図１
2018094654.tif 000002
【特許請求の範囲】
【請求項１】
撮像部が設けられたアームを含む可動部を有するロボットを制御する制御装置であって、
前記アームを並進移動させることにより、前記撮像部の姿勢を求める制御部を備えることを特徴とする制御装置。
【請求項２】
前記アームを並進移動させる方向と、前記アームの並進移動に伴う前記撮像部の座標系における移動方向とに基づいて前記撮像部の姿勢を求める請求項１に記載の制御装置。
【請求項３】
前記制御部は、前記撮像部によって撮像されたマーカーに基づいて、前記アームに対する前記撮像部のオフセットを求める請求項１または２に記載の制御装置。
【請求項４】
前記制御部は、前記撮像部を第１撮像姿勢に位置させて前記マーカーが撮像された第１画像と、前記撮像部を第２撮像姿勢に位置させて前記マーカーが撮像された第２画像と、に基づいて前記オフセットを求める請求項３に記載の制御装置。
【請求項５】
前記可動部は、前記アームよりも前記可動部の先端側に設けられた先端アームを含む請求項１ないし４のいずれか１項に記載の制御装置。
【請求項６】
前記ロボットは、前記可動部を支持する基台を有しており、
前記アームは、前記基台に対して回動可能であり、
前記先端アームは、前記アームに対して回動可能であり、
前記制御部は、前記アームの回動に伴って回動する前記撮像部の回動に基づいて、前記撮像部を指定した位置および姿勢に移動させる請求項５に記載の制御装置。
【請求項７】
前記制御部は、前記撮像部によって撮像した撮像画像に前記可動部が写らないように前記可動部を制御する請求項１ないし６のいずれか１項に記載の制御装置。
【請求項８】
前記撮像部は、前記可動部の先端側を撮像可能であり、
前記制御部は、前記撮像画像に前記可動部の先端部が写らないように前記可動部を制御する請求項７に記載の制御装置。
【請求項９】
請求項１ないし８のいずれか１項に記載の制御装置によって制御され、撮像部が設けられたアームを含む可動部を有することを特徴とするロボット。
【請求項１０】
請求項１ないし８のいずれか１項に記載の制御装置と、撮像部と、当該制御装置によって制御され、前記撮像部が設けられたアームを含む可動部を有するロボットとを備えることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ロボットおよびロボットシステムに関するものである。
【背景技術】
【０００２】
従来から、対象物に対して作業を行うエンドエフェクターを備えたロボットアームと、ロボットアームの先端部に取り付けられたカメラとを有するロボットと、当該ロボットの駆動を制御する制御装置と、を備えたロボットシステムが知られている。
【０００３】
このようなロボットシステムの一例として、例えば特許文献１には、ハンドを備えた関節アームと、関節アームの最も先端に位置するアームに設けられてカメラを有するロボット装置と、当該ロボット装置の位置姿勢を制御する制御装置と、を備えたロボットシステムが開示されている。また、このロボットシステムでは、ハンドの手先座標系と、カメラのカメラ座標系とが設定されている。そして、かかるロボットシステムでは、カメラの撮像画像に基づいてハンドによる対象物の把持を行うために、ロボット校正装置によって手先座標系と画像座標系との校正処理を行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−６６６０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、特許文献１に記載のロボットシステムでは、カメラが、先端のアームに設けられており、先端のアームの回動に追従して回動する。そのため、カメラの配線が、先端のアームの回転に伴い、頻繁に屈曲して劣化し易くなるという問題があった。特に、先端のアームを頻繁に動かす場合には、その劣化は顕著であった。
【課題を解決するための手段】
【０００６】
本発明は、上述した課題の少なくとも一部を解決するためになされたものであり、以下により実現することが可能である。
【０００７】
本発明の制御装置は、撮像部が設けられたアームを含む可動部を有するロボットを制御する制御装置であって、
前記アームを並進移動させることにより、前記撮像部の姿勢を求める制御部を備えることを特徴とする。
【０００８】
このような本発明の制御装置によれば、アームを並進移動させることにより、アームに対する撮像部の姿勢（傾き）を求めることができる。そのため、可動部の最も先端側に位置する先端アーム以外をアームとすることができる。その結果、例えば先端アームを過剰に回動させることにより基台から引き回された撮像部の配線が、先端のアームの回転に伴い、頻繁に屈曲して劣化することを低減することができる。なお、例えば、先端アームの回動量が比較的少ない用途においては、撮像部が設けられているアームが先端アームであってもよい。
【０００９】
本発明の制御装置では、前記制御部は、前記アームを並進移動させる方向と、前記アームの並進移動に伴う前記撮像部の座標系における移動方向とに基づいて前記撮像部の姿勢を求めることが好ましい。
【００１０】
これにより、可動部を過剰に回動させることなく、アームに対する撮像部の姿勢を求めることができる。
【００１１】
本発明の制御装置では、前記制御部は、前記撮像部によって撮像されたマーカーに基づいて、前記アームに対する前記撮像部のオフセットを求めることが好ましい。
【００１２】
これにより、オフセットを例えばメジャー（測定機器）等で測ることが不要となる。そのため、オフセットを例えばメジャー（測定機器）等で測ることによる人為的なバラツキを低減することができる。また、オフセットの算出を非接触で行うことができるため、例えば対象物の材質等によらず、オフセットの算出を高精度に行うことができる。
【００１３】
本発明の制御装置では、前記制御部は、前記撮像部を第１撮像姿勢に位置させて前記マーカーが撮像された第１画像と、前記撮像部を第２撮像姿勢に位置させて前記マーカーが撮像された第２画像と、に基づいて前記オフセットを求めることが好ましい。
【００１４】
これにより、オフセットの算出を非接触で行うことができ、また、比較的簡単な方法でオフセットの算出を高精度に行うことができる。
【００１５】
本発明の制御装置では、前記可動部は、前記アームよりも前記可動部の先端側に設けられた先端アームを含むことが好ましい。
【００１６】
これにより、可動部の最も先端に位置する先端アーム以外を撮像部が設けられたアームとすることができるため、例えばロボットの基端側から引き回された撮像部の配線が、先端のアームの回転に伴い、頻繁に屈曲して劣化することを低減することができる効果を顕著に発揮することができる。
【００１７】
本発明の制御装置では、前記ロボットは、前記可動部を支持する基台を有しており、
前記アームは、前記基台に対して回動可能であり、
前記先端アームは、前記アームに対して回動可能であり、
前記制御部は、前記アームの回動に伴って回動する前記撮像部の回動に基づいて、前記撮像部を指定した位置および姿勢に移動させることが好ましい。
これにより、撮像部を指定した位置および姿勢に適切に位置させることができる。
【００１８】
本発明の制御装置では、前記制御部は、前記撮像部によって撮像した撮像画像に前記可動部が写らないように前記可動部を制御することが好ましい。
【００１９】
これにより、例えば最も先端側のアームとは異なるアームに設けられた撮像部によりマーカーを撮像しても、撮像画像に可動部が写ることを回避できる。そのため、撮像画像を用いてオフセットの算出をより高精度に行うことができる。
【００２０】
本発明の制御装置では、前記撮像部は、前記可動部の先端側を撮像可能であり、
前記制御部は、前記撮像画像に前記可動部の先端部が写らないように前記可動部を制御することが好ましい。
【００２１】
これにより、最も先端側のアームとは異なるアームに設けられた撮像部によりマーカーを撮像しても、撮像画像に可動部の先端部（例えばエンドエフェクター）が写ることを回避できる。そのため、撮像画像を用いてオフセットの算出をより高精度に行うことができる。
【００２２】
本発明のロボットは、本発明の制御装置によって制御され、撮像部が設けられたアームを含む可動部を有することを特徴とする。
【００２３】
このようなロボットによれば、オフセットの算出にかかる動作を的確に行うことができる。また、例えばロボットの基端側から引き回された撮像部の配線が、先端のアームの回転に伴い、頻繁に屈曲して劣化することを低減することができる。
【００２４】
本発明のロボットシステムは、本発明の制御装置と、撮像部と、当該制御装置によって制御され、前記撮像部が設けられたアームを含む可動部を有するロボットとを備えることを特徴とする。
【００２５】
このようなロボットシステムによれば、制御装置の制御の下、ロボットはオフセットの算出にかかる動作を的確に行うことができる。また、例えばロボットの基端側から引き回された撮像部の配線が先端のアームの回転に伴い、頻繁に屈曲して劣化することを低減することができる。
【図面の簡単な説明】
【００２６】
【図１】第１実施形態に係るロボットシステムの斜視図である。
【図２】図１に示すロボットシステムのシステム構成図である。
【図３】図１に示すロボットシステムが有するロボットを示す側面図である。
【図４】図１に示すロボットシステムによるキャリブレーションの流れを示すフロー図である。
【図５】図４に示すステップＳ１３を説明するための図である。
【図６】図４に示すステップＳ１３を説明するための図である。
【図７】図４に示すステップＳ１５を説明するためのフロー図である。
【図８】図７に示すステップＳ１５２を説明するための撮像画像を示す図である。
【図９】図７に示すステップＳ１５３を説明するための第１領域と撮像画像に写る対象物とを示す図である。
【図１０】図７に示すステップＳ１５３で設定した第２サーチウィンドウを示す図である。
【図１１】図４に示すステップＳ１６を説明するためのロボットの概略図である。
【図１２】図４に示すステップＳ１６を説明するためのロボットの概略図である。
【図１３】図４に示すステップＳ１６を説明するための撮像画像を示す図である。
【図１４】図４に示すステップＳ１６を説明するための撮像画像を示す図である。
【図１５】図４に示すステップＳ１６を説明するための撮像画像を示す図である。
【図１６】図４に示すステップＳ１６を説明するための撮像画像を示す図である。
【図１７】図４に示すステップＳ１７を説明するためのフロー図である。
【図１８】図１７に示すステップＳ１７１を説明するためのロボットの概略図である。
【図１９】図１７に示すステップＳ１７１を説明するためのロボットの模式図である。
【図２０】図１７に示すステップＳ１７２を説明するためのロボットの模式図である。
【図２１】図１７に示すステップＳ１７３を説明するためのロボットの模式図である。
【図２２】図１７に示すステップＳ１７４を説明するためのロボットの模式図である。
【図２３】図４に示すステップＳ２２を説明するためのロボットの概略図である。
【図２４】図４に示すステップＳ２２を説明するためのロボット座標を説明するための図である。
【図２５】図４に示すステップＳ２２を説明するためのロボットの概略図である。
【図２６】図４に示すステップＳ２４を説明するための撮像画像を示す図である。
【図２７】図４に示すステップＳ２４を説明するための撮像画像を示す図である。
【図２８】第２実施形態に係るロボットシステムの斜視図である。
【図２９】図２８に示すロボットシステムが有するロボットを示す側面図である。
【図３０】図２８に示すロボットシステムによるキャリブレーションの流れを示すフロー図である。
【図３１】第３実施形態に係るロボットシステムによるオフセットの算出の流れを示す図である。
【図３２】図３１に示すステップＳ３１、Ｓ３２を説明するためのロボットの斜視図である。
【図３３】図３１に示すステップＳ３４を説明するための図である。
【図３４】図３１に示すステップＳ３４を説明するための図である。
【図３５】図３１に示すステップＳ３５を説明するための図である。
【図３６】第４実施形態に係るロボットシステムが有するロボットの先端部を示す図である。
【図３７】図３６に示すロボットが有するハンドを並進移動させた状態を示す図である。
【図３８】図３６に示すロボットの状態での撮像画像を示す図である。
【図３９】図３７に示すロボットの状態での撮像画像を示す図である。
【図４０】図３６に示すロボットアームに設置されたモバイルカメラを目的の箇所に位置させるための処理を示すフロー図である。
【図４１】図４０に示すステップＳ５５を説明するための図である。
【図４２】図３６に示すロボットにおいてモバイルカメラの視野内にハンドが位置している状態を示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明の制御装置、ロボットおよびロボットシステムを添付図面に示す好適な実施形態に基づいて詳細に説明する。
【００２８】
［第１実施形態］
≪ロボットシステム≫
【００２９】
図１は、第１実施形態に係るロボットシステムの斜視図である。図２は、図１に示すロボットシステムのシステム構成図である。図３は、図１に示すロボットシステムが有するロボットを示す側面図である。なお、以下では、説明の便宜上、図３中の上側を「上」、下側を「下」と言う。また、図３中の基台１１０側を「基端」、その反対側（エンドエフェクターであるハンド１５０側）を「先端」と言う。また、図３の上下方向を「鉛直方向」とし、左右方向を「水平方向」とする。本明細書において、「水平」とは、完全に水平な場合のみならず、水平に対して±５°以内で傾斜している場合も含む。同様に、本明細書において、「鉛直」とは、完全に鉛直な場合のみならず、鉛直に対して±５°以内で傾斜している場合も含む。また、本明細書において、「平行」とは、２つの線（軸を含む）または面が、互いに完全な平行である場合のみならず、±５°以内で傾斜している場合も含む。
【００３０】
図１に示すロボットシステム１００は、例えば、電子部品および電子機器等の対象部材の保持、搬送および組立て等の作業で用いられる装置である。図１に示すように、ロボットシステム１００は、ロボット１と、ロボット１に取り付けられた撮像機能を有するモバイルカメラ３（撮像部）と、ロボット１およびモバイルカメラ３をそれぞれ制御する制御装置５（校正装置）とを、有する。また、図２に示すように、ロボットシステム１００は、表示装置４１および入力装置４２（操作機器）を有する。
【００３１】
以下、ロボットシステム１００が有する各部を順次説明する。
〈ロボット〉
ロボット１は、いわゆる水平多関節ロボット（スカラロボット）であり、例えば、精密機器や部品等の対象部材の保持や搬送等を行うことができる。図１に示すように、ロボット１は、基台１１０と、基台１１０に接続されたロボットアーム１０（可動部）とを有する。ロボットアーム１０は、第１アーム１０１（アーム）と、第２アーム１０２（アーム）と、作業ヘッド１０４と、ハンド１５０とを有している。また、図１および図２に示すように、ロボット１は、ロボットアーム１０を駆動させる動力を発生させる複数の駆動部１３０と、位置センサー１３１とを有する。
【００３２】
基台１１０は、ロボット１を任意の設置箇所に取り付ける部分である。なお、基台１１０の設置箇所は、特に限定されず、例えば、床、壁、天井、移動可能な台車上等が挙げられる。
【００３３】
基台１１０の上端部には、基台１１０に対して鉛直方向に沿う第１軸Ｊ１（回動軸）まわりに回動可能な第１アーム１０１が連結されている。また、第１アーム１０１の先端部には、第１アーム１０１に対して鉛直方向に沿う第２軸Ｊ２（回動軸）まわりに回動可能な第２アーム１０２が連結されている。また、第２アーム１０２の先端部には、作業ヘッド１０４が配置されている。作業ヘッド１０４は、第２アーム１０２の先端部に同軸的に配置されたスプラインナットおよびボールネジナット（ともに図示せず）に挿通されたスプラインシャフト１０３（アーム、先端アーム）を有している。スプラインシャフト１０３は、第２アーム１０２に対して、その第３軸Ｊ３まわりに回動可能であり、かつ、上下方向に移動（昇降）可能となっている。ここで、本実施形態では、図３に示すように、第２アーム１０２の先端部（先端部の下端面）と第３軸Ｊ３との交わる点を、第２アーム１０２の軸座標Ｐ２（所定部）とする。
【００３４】
図１に示すように、スプラインシャフト１０３の先端部（下端部）には、エンドエフェクターとして、対象部材を把持することが可能な２つの指を有するハンド１５０が着脱可能に取り付けられている。なお、本実施形態では、エンドエフェクターとしてハンド１５０を用いているが、エンドエフェクターとしては、各種対象部材等に対して作業（対象部材の保持等）を行う機能を有すれば如何なる構成であってもよい。
【００３５】
また、ハンド１５０は、設計上、ハンド１５０の中心軸がスプラインシャフト１０３の第３軸Ｊ３と一致するように取り付けられている。そのため、ハンド１５０は、スプラインシャフト１０３の回動に伴って回動する。ここで、図３に示すように、ハンド１５０の先端中心をツールセンターポイントＴＣＰという。本実施形態では、ツールセンターポイントＴＣＰは、ハンド１５０が有する２つの指の間の領域の中心である。
【００３６】
また、図１に示すように、基台１１０内には、第１アーム１０１を駆動（回動）させる駆動部１３０が設置されている。また、同様に、第２アーム１０２内には、第２アーム１０２を駆動させる駆動部１３０と、スプラインシャフト１０３を駆動させる駆動部１３０とが設置されている。すなわち、ロボット１は、３つの駆動部１３０を有している。駆動部１３０は、駆動力を発生させるモーター（図示せず）とモーターの駆動力を減速する減速機（図示せず）とを有する。駆動部１３０が有するモーターとしては、例えば、ＡＣサーボモーター、ＤＣサーボモーター等のサーボモーターを用いることができる。減速機としては、例えば、遊星ギア型の減速機、波動歯車装置等を用いることができる。また、各駆動部１３０には、モーターまたは減速機の回転軸の回転角度を検出する位置センサー１３１（角度センサー）が設けられている（図１および図２参照）。
【００３７】
また、各駆動部１３０は、図１に示す基台１１０に内蔵されたモータードライバー１２０に電気的に接続されている。このモータードライバー１２０を介して各駆動部１３０は制御装置５により制御されている。
【００３８】
このような構成のロボット１では、図３に示すように、ロボット１の基台１１０を基準としたベース座標系として、水平方向に対してそれぞれ平行なｘｒ軸とｙｒ軸と、水平方向に対して直交し、かつ、鉛直上向きを正方向とするｚｒ軸とによって定まる３次元の直交座標系を設定している。本実施形態では、ベース座標系は、基台１１０の上端面の中心点を原点としている。ｘｒ軸に対する並進成分を「成分ｘｒ」とし、ｙｒ軸に対する並進成分を「成分ｙｒ」とし、ｚｒ軸に対する並進成分を「成分ｚｒ」とし、ｚｒ軸周りの回転成分を「成分ｕｒ」とし、ｙｒ軸周りの回転成分を「成分ｖｒ」とし、ｘｒ軸周りの回転成分を「成分ｗｒ」とする。成分ｘｒ、成分ｙｒおよび成分ｚｒの長さ（大きさ）の単位は「ｍｍ」であり、成分ｕｒ、成分ｖｒおよび成分ｗｒの角度（大きさ）の単位は「°」である。
【００３９】
また、ロボット１では、ロボット１の第２アーム１０２の先端部を基準とした先端座標系が設定されている。先端座標系は、互いに直交するｘａ軸、ｙａ軸およびｚａ軸とによって定まる３次元の直交座標系である。本実施形態では、先端座標系は、第２アーム１０２の軸座標Ｐ２を原点としている。また、ベース座標系と先端座標系との校正（キャリブレーション）は済んでおり、ベース座標系を基準とした先端座標系の座標を算出することができる状態である。また、ｘａ軸に対する並進成分を「成分ｘａ」とし、ｙａ軸に対する並進成分を「成分ｙａ」とし、ｚａ軸に対する並進成分を「成分ｚａ」とし、ｚａ軸周りの回転成分を「成分ｕａ」とし、ｙａ軸周りの回転成分を「成分ｖａ」とし、ｘａ軸周りの回転成分を「成分ｗａ」とする。成分ｘａ、成分ｙａおよび成分ｚａの長さ（大きさ）の単位は「ｍｍ」であり、成分ｕａ、成分ｖａおよび成分ｗａの角度（大きさ）の単位は「°」である。
【００４０】
以上、ロボット１の構成について簡単に説明した。なお、ロボット１は、図示はしないが、例えば、ハンド１５０に加わる力（モーメントを含む）を検出する力覚センサー（例えば、６軸力覚センサー）等で構成された力検出部を備えていてもよい。
【００４１】
〈モバイルカメラ〉
図１に示すように、モバイルカメラ３は、ロボット１の第２アーム１０２の先端部に設けられている。このモバイルカメラ３は、例えば作業台９１上に載置された対象物６０を撮像する機能を有する。対象物６０は、後述するキャリブレーションで用いる部材であり、対象物６０には例えば円形状のマーカー６１が付されている。
【００４２】
モバイルカメラ３は、複数の画素を有するＣＣＤ（Charge Coupled Device）イメージセンサで構成された撮像素子３１と、レンズ３２（光学系）と、を有する。このモバイルカメラ３は、撮像対象等からの光をレンズ３２によって撮像素子３１の受光面３１１（センサー面）で結像させて、光を電気信号に変換し、その電気信号を制御装置５へと出力する。ここで、受光面３１１とは、撮像素子３１の表面であって、光が結像する面である。
【００４３】
このようなモバイルカメラ３は、ロボットアーム１０の先端側を撮像できるように第２アーム１０２に取り付けられている。したがって、本実施形態では、モバイルカメラ３は、鉛直方向下方を撮像可能である。また、本実施形態では、設計上、モバイルカメラ３の光軸Ａ３（レンズ３２の光軸）がスプラインシャフト１０３の第３軸Ｊ３に対して平行になるように取り付けられている。また、モバイルカメラ３は、第２アーム１０２に設けられているため、第２アーム１０２の駆動（回動）とともにその位置を変えることができる。
【００４４】
このようなモバイルカメラ３では、モバイルカメラ３の画像座標系（モバイルカメラ３から出力される撮像画像３０の座標系）として、撮像画像３０の面内方向に対してそれぞれ平行なｘｂ軸とｙｂ軸とによって定まる２次元の直交座標系を設定している（図６参照）。また、ｘｂ軸に対する並進成分を「成分ｘｂ」とし、ｙｂ軸に対する並進成分を「成分ｙｂ」とし、ｘｂ−ｙｂ平面の法線周りの回転成分を「成分ｕｂ」とする。成分ｘｂおよび成分ｙｂの長さ（大きさ）の単位は「ピクセル」であり、成分ｕｂの角度（大きさ）の単位は「°」である。なお、モバイルカメラ３の画像座標系は、モバイルカメラ３のカメラ視野に写る３次元直交座標を、レンズ３２の光学特性（焦点距離、歪みなど）と撮像素子３１の画素数および大きさとを加味して非線形変換した２次元の直交座標系である。
【００４５】
〈制御装置〉
図１に示す制御装置５は、ロボット１およびモバイルカメラ３の各部の駆動（作動）を制御する。この制御装置５は、例えば、ＣＰＵ（Central Processing Unit）やＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）が内蔵されたパーソナルコンピューター（ＰＣ）等で構成することができる。この制御装置５は、図１に示すように、ロボット１に対して配線６００等を介して接続されている。なお、ロボット１と制御装置５とは無線通信により接続されていてもよい。また、本実施形態では、制御装置５は、ロボット１とは別体で設けられているが、ロボット１に内蔵されていてもよい。また、図２に示すように、制御装置５には、ディスプレイ等のモニター（図示せず）を備える表示装置４１と、例えばマウスやキーボード等を備える入力装置４２とが接続されている。
【００４６】
以下、制御装置５が備える各機能（機能部）について説明する。
図２に示すように、制御装置５は、表示制御部５１と、入力制御部５２と、制御部５３（ロボット制御部）と、入出力部５４と、記憶部５５と、を備える。
【００４７】
表示制御部５１は、例えばグラフィックコントローラーで構成されており、表示装置４１に接続されている。この表示装置４１のモニターに各種画面（例えば、操作用の画面等）を表示させる機能を有する。入力制御部５２は、入力装置４２に接続されており、入力装置４２からの入力を受け付ける機能を有する。
【００４８】
制御部５３は、ロボット１の駆動やモバイルカメラ３の作動等を制御する機能、各種演算および判断等の処理をする機能等を有する。この制御部５３は、例えばＣＰＵ等で構成され、制御部５３の各機能は、ＣＰＵにより記憶部５５に記憶された各種プログラムを実行することにより実現することができる。
【００４９】
具体的には、制御部５３は、各駆動部１３０の駆動を制御し、ロボットアーム１０を駆動させたり停止させたりする。例えば、制御部５３は、各駆動部１３０に設けられた位置センサー１３１から出力された情報を基にして、ハンド１５０を目標位置に移動させるために各駆動部１３０が有するモーター（図示せず）の目標値を導出する。また、制御部５３は、入出力部５４で取得した位置センサー１３１およびモバイルカメラ３等からの情報を基にして各種演算や各種判断等の処理を行う。例えば、制御部５３は、モバイルカメラ３で撮像した撮像画像３０を基にして画像座標系における撮像対象の座標（成分ｘｂ、ｙｂ、ｕｂ：位置および姿勢）を演算したりする。また、例えば、制御部５３は、モバイルカメラ３の画像座標系での座標（画像座標）をロボット１の先端座標系での座標（ロボット座標）またはロボット１のベース座標系での座標（ベース座標）に変換するための補正パラメーターを求めたりする。なお、本実施形態では、ロボット１の先端座標を「ロボット座標」と捉えているが、ベース座標を「ロボット座標」と捉えてもよい。
【００５０】
入出力部５４（情報取得部）は、例えばインターフェイス回路等で構成され、ロボット１およびモバイルカメラ３と情報のやり取りを行う機能を有する。例えば、入出力部５４は、ロボット１の各駆動部１３０が有するモーターまたは減速機の回転軸の回転角度や、撮像画像３０等の情報を取得する機能を有する。また、例えば、入出力部５４は、制御部５３から導出されたモーターの目標値をロボット１に対して出力する。
【００５１】
記憶部５５は、例えばＲＡＭおよびＲＯＭ等で構成されており、制御装置５が各種処理等を行うためのプログラムや、各種データ等を記憶する。例えば、記憶部５５は、キャリブレーションを実行するプログラムを記憶している。なお、記憶部５５は、制御装置５に内蔵されるもの（ＲＡＭおよびＲＯＭ等）に限らず、いわゆる外部記憶装置（図示せず）を有する構成であってもよい。
【００５２】
また、表示装置４１は、上述したように、ディスプレイ等のモニター（図示せず）を備えており、例えば撮像画像３０等を表示する機能を有する。したがって、作業者は、表示装置４１を介して撮像画像３０やロボット１の作業等を確認することができる。また、入力装置４２は、上述したように、例えばマウスやキーボード等で構成されている。したがって、作業者は、入力装置４２を操作することで、制御装置５に対して各種処理等の指示を行うことができる。なお、表示装置４１および入力装置４２の代わりに、表示装置４１および入力装置４２を兼ね備えた表示入力装置（図示せず）を用いてもよい。表示入力装置としては、例えばタッチパネル等を用いることができる。
【００５３】
以上、ロボットシステム１００の基本的な構成について簡単に説明した。このようなロボットシステムでは、撮像画像３０を基にロボット１に作業を行わせる。そのためには、画像座標（ｘｂ、ｙｂ、ｕｂ）をロボット座標（ｘａ、ｙａ、ｕａ）に変換する変換行列式（補正パラメーター）を求めることが必要である。すなわち、モバイルカメラ３とロボット１とのキャリブレーション（対応付け）が必要である。このキャリブレーションは、制御装置５が、作業者による指示に応じて、キャリブレーションを実行するプログラムに基づき自動で行う。
【００５４】
以下、キャリブレーション（キャリブレーションのための各種設定および実行）について説明する。
【００５５】
≪キャリブレーション≫
図４は、図１に示すロボットシステムによるキャリブレーションの流れを示すフロー図である。
【００５６】
キャリブレーションを行う前に、作業者は、図１に示すように作業台９１上に対象物６０を載置しておく。また、作業者は、例えば所謂ジョグ送りにより（入力装置４２を用いた表示装置４１を介した手動の指示により）ロボットアーム１０を駆動させて、モバイルカメラ３でマーカー６１を撮像できる位置に第２アーム１０２の軸座標Ｐ２を位置させておく。その後、作業者が制御装置５に対して開始の指示を行うことによって、制御装置５によるキャリブレーションが開始する。以後、制御装置５の制御の下、自動でキャリブレーションを行うことができる。そのため、作業者による一切の操作は無く、または、作業者の簡単な操作のみで実行することができる。
【００５７】
以下、図４に示すフロー図を参照しつつ、各処理（ステップ）を説明する。
〈画像情報取得（図４：ステップＳ１１）〉
まず、入出力部５４は、モバイルカメラ３の画像情報を取得し、記憶部５５は、取得した画像情報を記憶する。画像情報とは、モバイルカメラ３の画素数の情報等である。
【００５８】
〈キャリブレーションプロパティ設定（図４：ステップＳ１２）〉
次に、制御部５３は、キャリブレーションプロパティ設定を行う。キャリブレーションプロパティ設定とは、具体的には、キャリブレーションの実行時におけるロボット１の速度、加速度（より具体的には、例えばハンド１５０の移動速度、移動加速度）の設定や、ローカル平面（作業面）の設定等である。キャリブレーション実行時のロボット１の速度、加速度は、特に限定されないが、最大速度や最大加速度の３０〜７０％であることが好ましい。これにより、キャリブレーションの結果のばらつきをより少なくすることができ、キャリブレーションの精度をより高めることができる。
【００５９】
次に、制御部５３は、ステップＳ１３、Ｓ１４を実行して、先端座標系と画像座標系との相対関係を求める。
【００６０】
〈ロボットの所定部を２箇所に移動させる（図４：ステップＳ１３）〉
図５および図６は、それぞれ、図４に示すステップＳ１３を説明するための図である。  次に、制御部５３は、ロボット１の所定部（本実施形態では、軸座標Ｐ２）をポイントＡ０からそれとは異なる２つのポイントＡ１、Ａ２に移動させ、ポイントＡ０からポイントＡ１、Ａ２に移動させたときの撮像画像３０上に写るマーカー６１の画像座標を取得する（図５および図６参照）。
【００６１】
具体的には、まず、制御部５３は、撮像画像３０の中心Ｏ３０に、マーカー６１が位置するように（写るように）ロボットアーム１０を駆動させ、モバイルカメラ３により画像データを取得する（図５および図６参照）。この撮像画像３０の中心Ｏ３０にマーカー６１が位置しているときの、ロボット１の軸座標Ｐ２の位置をポイントＡ０とする。なお、ポイントＡ０は予めティーチングされているものとする。また、記憶部５５は、ポイントＡ０におけるロボット座標（ｘａ０，ｙａ０）と中心Ｏ３０における画像座標（ｘｂ０，ｙｂ０）とを記憶する。なお、ポイントＡ０は、撮像画像３０の中心Ｏ３０付近であることが好ましいが、中心Ｏ３０に限定されず、撮像画像３０内（モバイルカメラ３の視野内）であればよい。また、後述するポイントＡ１、Ａ２も、撮像画像３０内にあればいずれの箇所であってもよい。
【００６２】
次いで、制御部５３は、ロボットアーム１０を駆動させて軸座標Ｐ２をポイントＡ０から図５中の矢印ａ１１方向に移動させてポイントＡ１に位置させ、モバイルカメラ３により画像データを取得する。例えば、軸座標Ｐ２をポイントＡ０からｘａ方向に１０ｍｍ、ｙａ方向に０ｍｍ移動させてポイントＡ１に位置させる（図５参照）。このとき、撮像画像３０に写るマーカー６１（マーカー認識位置）が中心Ｏ３０から矢印ａ２１方向に移動してポイントＢ１に位置する（図６参照）。また、記憶部５５は、ポイントＡ１におけるロボット座標（ｘａ１，ｙａ１）とポイントＢ１における画像座標（ｘｂ１，ｙｂ１）とを記憶する（図５および図６参照）。
【００６３】
また、制御部５３は、ロボットアーム１０を駆動させて軸座標Ｐ２をポイントＡ０から矢印ａ１２方向に移動させてポイントＡ２に位置させ、モバイルカメラ３により画像データを取得する。例えば、軸座標Ｐ２をポイントＡ０からｘａ方向に０ｍｍ、ｙａ方向に１０ｍｍ移動させてポイントＡ２に位置させる（図５参照）。このとき、撮像画像３０に写るマーカー６１が中心Ｏ３０から矢印ａ２２方向に移動してポイントＢ２に位置する（図６参照）。また、記憶部５５は、ポイントＡ２におけるロボット座標（ｘａ２，ｙａ２）とポイントＢ２における画像座標（ｘｂ２，ｙｂ２）とを記憶する（図５および図６参照）。
【００６４】
なお、ポイントＡ０からポイントＡ１、Ａ２の移動量は上述の数値に限定されず、任意である。
【００６５】
〈座標変換式の生成（図４：ステップＳ１４）〉
次に、制御部５３は、ステップＳ１３において記憶した３つのロボット座標および３つの画像座標を基に、ロボット座標と画像座標に変換する座標変換式（式（１））を用いて、ロボット座標と画像座標との間の座標変換式を求める。
【００６６】
【数１】
2018094654.tif 000003
【００６７】
式（１）におけるΔｘｂ、Δｙｂは、画像座標系での２つのポイント間の距離（変位）を示し、Δｘａ、Δｙａは、先端座標系での２つのポイント間の距離（変位）を示す。また、ａ、ｂ、ｃ、ｄは、未知の変数である。
【００６８】
式（１）と、ポイントＡ０、Ａ１と、中心Ｏ３０およびポイントＢ１とから以下のように変数ａ、ｂを求める。
【００６９】
【数２】
2018094654.tif 000004
【００７０】
また、同様に、式（１）と、ポイントＡ０、Ａ２と、中心Ｏ３０およびポイントＢ２とから以下のように変数ｃ、ｄを求める。
【００７１】
【数３】
2018094654.tif 000005
【００７２】
このようにして変数ａ、ｂ、ｃ、ｄが求まり、座標変換式（１次変換行列）を生成することができる。これにより、先端座標系と画像座標系の相対的な関係を求めることができ、画像座標系での変位（移動量）を先端座標系での変位（移動量）に変換することができる。このように、３つの異なる箇所に軸座標Ｐ２を移動させて得られた３つのロボット座標および画像座標を基に、式（１）に示す座標変換式（アフィン変換式）を用いることで、先端座標系と画像座標系の相対的な関係を簡単にかつ適切に求めることができる。
【００７３】
なお、本実施形態では、ステップＳ１３の処理の後にステップＳ１４の処理を行ったが、これらの処理は同時に行ってもよい。
【００７４】
〈複数の基準点の生成（図４：ステップＳ１５）〉
図７は、図４に示すステップＳ１５を説明するためのフロー図である。図８は、図７に示すステップＳ１５２を説明するための撮像画像を示す図である。図９は、図７に示すステップＳ１５３を説明するための第１領域と撮像画像に写る対象物とを示す図である。図１０は、図７に示すステップＳ１５３で設定した第２サーチウィンドウを示す図である。
【００７５】
次に、制御部５３は、後述するキャリブレーションの実行（ステップＳ２０またはステップＳ２４）で用いる複数の基準点（本実施形態では９つ）を生成する。以下、図７に示すフロー図を参照しつつ説明する。なお、基準点３０５の数は少なくとも３つ以上であればよく、その数は任意であるが、基準点３０５の数が多い程、キャリブレーションの精度が向上する。
【００７６】
［第１サーチウィンドウの中心にマーカーを位置させる（図７：ステップＳ１５１）］
制御部５３は、ロボットアーム１０を駆動させ、図８に示す撮像画像３０に設定された第１サーチウィンドウ３０１の中心Ｏ３０１にマーカー６１を位置させる。第１サーチウィンドウ３０１とは、作業者が指定する撮像画像３０上の所定の範囲のことを示し、複数の基準点３０５を生成するために用いられる。本実施形態では、第１サーチウィンドウ３０１と撮像画像３０とは一致しており、第１サーチウィンドウ３０１の中心Ｏ３０１と撮像画像３０の中心Ｏ３０とは一致している。
【００７７】
［第１領域内に対象物が収まっているか否かを判断する（図７：ステップＳ１５２）］
制御部５３は、対象物６０を画像認識し、第１サーチウィンドウ３０１を等しく９つに分割して得られた１つの第１領域Ｓ１内に対象物６０が収まっているか否かを判断する。本実施形態では、対象物６０の外形形状（例えば４つの角部）を認識することで、対象物６０を画像認識（検出）している。なお、画像認識の方法は、対象物６０の４つの角部を認識する方法に限定されず、いかなる方法であってもよい。例えば、予め登録した外形形状のモデル（テンプレート）に対する対象物６０の回転角度の値を取得することにより対象物６０を認識する方法も有効である。また、対象物６０は、物体だけでなく、物体を検出するためのモデルウィンドウであってもよい。
【００７８】
［第１領域内に対象物が収まっている場合（図７：ステップＳ１５２、Ｙｅｓ）］
図８に示す対象物６０ｂ（対象物６０）のように、第１領域Ｓ１内に収まっている場合には、ステップＳ１５６に移行する。
【００７９】
［複数の基準点の生成（図７：ステップＳ１５６）］
制御部５３は、第１サーチウィンドウ３０１の各第１領域Ｓ１の中心点をキャリブレーションで用いる基準点３０５として設定する（図８参照）。本実施形態では、格子状に配列された基準点３０５を９つ設定し、各基準点３０５と中心Ｏ３０１との画像座標系での距離（Δｘｂ、Δｙｂ）を求める。また、上述したステップＳ１４において求めた座標変換式を用いて画像座標系での距離（Δｘｂ、Δｙｂ）に応じた先端座標系での移動量（Δｘａ、Δｙａ）を求める。これにより、第１サーチウィンドウ３０１の中心Ｏ３０１をティーチングすれば、残りの８点の基準点３０５を自動的に生成することができる。そのため、例えば実際に９箇所に所謂ジョグ送りを行って各箇所をティーチングすることにより９つの基準点３０５を設定する手間を省くことができる。それゆえ、各基準点３０５の設定における人為的な誤差を低減することができ、また、複数の基準点３０５の設定時間を短くすることができる。
【００８０】
なお、本実施形態では、第１領域Ｓ１の中心点を基準点３０５として設定したが、基準点３０５は、第１領域Ｓ１の中心点に限定されず第１領域Ｓ１内にあればいずれの箇所であってもよい。
【００８１】
［第１領域内に対象物が収まっていない場合（図７：ステップＳ１５２、Ｎｏ）］
図８に示す対象物６０ａ（対象物６０）のように、第１領域Ｓ１内に収まっていない場合には、ステップＳ１５３に移行する。
【００８２】
［第２サーチウィンドウの設定（図７：ステップＳ１５３）］
制御部５３は、対象物６０ａの１つの第１領域Ｓ１に収まっていない領域（はみ出している部分）を考慮して、第１サーチウィンドウ３０１よりも小さい第２サーチウィンドウ３０２を設定する（図８〜図１０参照）。
【００８３】
ここで、後述するキャリブレーションの実行（ステップＳ２０またはステップＳ２４）では、撮像画像３０上の各基準点３０５または後述する各基準点３０６に１つのマーカー６１が位置するように（写るように）モバイルカメラ３を９箇所に移動させる作業を行う。その際、対象物６０ａが第１領域Ｓ１内に収まっていないと、図８中の破線で示す対象物６０ａのように、対象物６０ａの一部が撮像画像３０内に写らないことがある。そのため、対象物６０ａを画像認識できず、キャリブレーションの実行を的確に行うことが出来ないことがある。そこで、第１サーチウィンドウ３０１よりも小さい第２サーチウィンドウ３０２を設定して、第２サーチウィンドウ３０２を基にして後述する基準点３０５を設定する。すなわち、対象物６０ａを画像認識しつつキャリブレーションを実行することができるような基準点３０５を設定する。
【００８４】
具体的には、まず、制御部５３は、第１領域Ｓ１に関する情報として、以下に示すＡ、Ｂ、Ｃ、Ｄを算出する（図９参照）。
【００８５】
【数４】
2018094654.tif 000006
【００８６】
「Ａ」は、第１領域Ｓ１の中心点から−ｘｂ側の辺までの長さである。「Ｂ」は、第１領域Ｓ１の中心点から＋ｘｂ側の辺までの長さである。「Ｃ」は、第１領域Ｓ１の中心点から＋ｙｂ側の辺までの長さである。「Ｄ」は、第１領域Ｓ１の中心点から−ｙｂ側の辺までの長さである。
【００８７】
次いで、制御部５３は、画像座標系における対象物６０の情報として、以下に示す式（行列）を用いて、以下に示すようにＥ、Ｆ、Ｇ、Ｈ、ＦＰの各画像座標を算出する。
【００８８】
【数５】
2018094654.tif 000007
【００８９】
【数６】
2018094654.tif 000008
【００９０】
「Ｅ」、「Ｆ」、「Ｇ」、「Ｈ」は、図９に示すように、対象物６０の角の画像座標である。「ＦＰ」は、図９に示すように、撮像画像３０でのマーカー６１（マーカー認識位置）の中心の画像座標である。
【００９１】
また、Ａ〜Ｄ、Ｅ〜ＨおよびＦＰを基に、撮像画像３０上での対象物６０の情報として以下に示すＡ’、Ｂ’、Ｃ’、Ｄ’を算出する。
【００９２】
【数７】
2018094654.tif 000009
【００９３】
「Ａ’」は、撮像画像３０上でのマーカー６１から対象物６０のＧまでのｘｂ方向における間の長さである。「Ｂ’」は、撮像画像３０上でのマーカー６１から対象物６０のＦまでのｘｂ方向における間の長さである。「Ｃ’」は、撮像画像３０上でのマーカー６１から対象物６０のＨまでのｙｂ方向における間の長さである。「Ｄ’」は、撮像画像３０上でのマーカー６１から対象物６０のＥまでのｙｂ方向における間の長さである。
【００９４】
次いで、制御部５３は、図１０に示すように、第１サーチウィンドウ３０１を、対象物６０の第１領域Ｓ１に収まらない領域分小さくするよう第２サーチウィンドウ３０２を設定する。より具体的には、図１０に示すように、第１サーチウィンドウ３０１の−ｘｂ側の辺の位置を（Ａ’−Ａ”）分中央寄りになるよう設定する。また、第１サーチウィンドウ３０１の＋ｙｂ側の辺の位置を（Ｃ’−Ｃ”）分中央寄りになるよう設定する。また、第１サーチウィンドウ３０１の−ｙｂ側の辺の位置を（Ｄ’−Ｄ”）分中央寄りになるよう設定する。また、本実施形態では、第１領域Ｓ１の中心点から＋ｘｂ側に位置する対象物６０の部分は、第１領域Ｓ１内に収まっているため、第１サーチウィンドウ３０１の＋ｘｂ側の辺の位置は変更しない。
【００９５】
なお、上述の「Ａ”」は、第２サーチウィンドウ３０２を等しく９つに分割して得られた１つの第２領域Ｓ２の中心点から−ｘｂ側の辺までの長さである。「Ｃ”」は、第２領域Ｓ２の中心点から＋ｙｂ側の辺までの長さである。「Ｄ”」は、第２領域Ｓ２の中心点から−ｙｂ側の辺までの長さである。このようにして、第２サーチウィンドウ３０２を設定することができる。
【００９６】
このように、制御部５３は、撮像画像３０に設定した第１サーチウィンドウ３０１を分割して得られる第１領域Ｓ１に関する情報と、撮像画像３０に写るマーカー６１を有する対象物６０の情報とを基にして第１サーチウィンドウ３０１を補正することにより第２サーチウィンドウ３０２を設定し、第２サーチウィンドウ３０２に基づいて複数の基準点３０５を設定する。これにより、キャリブレーションの実行時において対象物６０の画像認識を適切に行うことができるので、画像座標系と先端座標系との対応付けをより高精度に行うことができる。また、上述の第２サーチウィンドウの設定方法によれば、制御装置５により自動で第２サーチウィンドウを設定して基準点３０５を設定することができる。
【００９７】
［第２サーチウィンドウの中心にマーカーを位置させる（図７：ステップＳ１５４）］
次に、制御部５３は、ロボットアーム１０を駆動させ、第２サーチウィンドウ３０２の中心Ｏ３０２にマーカー６１を位置させる。
【００９８】
［ロボットの所定部を２箇所に移動させ、座標変換式を再設定する（図７：ステップＳ１５５）］
次に、ステップＳ１３と同様に、制御部５３は、第２サーチウィンドウ３０２の中心Ｏ３０２にマーカー６１が位置している状態から、それとは異なる２箇所にロボット１の所定部（本実施形態では、軸座標Ｐ２）を移動させる。また、記憶部５５は、中心Ｏ３０２にマーカー６１が位置している状態およびそれとは異なる２箇所に移動させたときの各ロボット座標（ｘａ，ｙａ）と画像座標（ｘｂ，ｙｂ）とを記憶する。
【００９９】
次いで、ステップＳ１４と同様の方法で座標変換式（１次変換行列）を生成（再設定）する。すなわち、ステップＳ１４で求めた座標変換式を更新する。
【０１００】
ここで、ステップＳ１３では、ステップＳ１３におけるポイントＡ０からポイントＡ１、Ａ２への移動量は、微小である。移動量が微小である理由は、ステップＳ１３では、画像座標系における移動量（大きさ）とロボット座標系における移動量（大きさ）との関係（画角がロボット座標系において何ｍｍなのか）が不明であるため、移動させたときに撮像画像３０内にマーカー６１が写らないということを防ぐためである。このようにステップＳ１４で求めた座標変換式は、微小距離の移動により算出したものであるため、不正確さがある場合がある。これに対し、一度、座標変換式を生成すると画像座標系における移動量（大きさ）とロボット座標系における移動量（大きさ）との関係をおおよそ把握することができる。そのため、ステップＳ１５５では、一度ステップＳ１３で座標変換式を生成しているため、ステップＳ１３における移動量よりも撮像画像３０にマーカー６１が写る範囲内で（画角内で）大きく移動させることができる。すなわち、ステップＳ１５５における移動量をステップＳ１３における移動量よりも大きくすることができる。これにより、ステップＳ１５５において、ステップＳ１４で求めた座標変換式よりも、より精度の高い座標変換式を求めることができる。
【０１０１】
［複数の基準点の生成（図７：ステップＳ１５６）］
次いで、制御部５３は、上述した第１サーチウィンドウ３０１を基にした基準点の生成と同様にして、第２サーチウィンドウ３０２の各第２領域Ｓ２の中心点をキャリブレーションで用いる格子状に配列された複数の基準点３０５として設定（生成）する（図１０参照）。このように、制御部５３は、第２サーチウィンドウ３０２を分割して得られる第２領域Ｓ２に基づいて複数の基準点３０５を設定する。これにより、複数の基準点３０５を容易に設定することができる。すなわち、第２サーチウィンドウ３０２の中心Ｏ３０２をティーチングすれば、残りの８点の基準点３０５を自動的に生成することができる。そのため、例えば実際に９箇所に所謂ジョグ送りを行って各箇所をティーチングすることにより９つの基準点３０５を設定する手間を省くことができる。それゆえ、各基準点３０５の設定における人為的な誤差を低減することができ、また、複数の基準点３０５の設定時間を短くすることができる。
【０１０２】
〈複数の基準点の再設定（図４：ステップＳ１６）〉
図１１および図１２は、それぞれ、図４に示すステップＳ１６を説明するためのロボットの概略図である。図１３、図１４、図１５および図１６は、それぞれ、図４に示すステップＳ１６を説明するための撮像画像を示す図である。
【０１０３】
次に、制御部５３は、第２アーム１０２の回動（駆動）に伴うモバイルカメラ３の回動（駆動）を考慮してステップＳ１４で求めた座標変換式を更新し、９つの基準点３０５を再設定（補正）する（ステップＳ１６）。すなわち、座標変換式を更新し、新たな９つの基準点３０６を生成する。
【０１０４】
ここで、上述したように、ロボット１は、鉛直方向に沿った第１軸Ｊ１まわりに回動する第１アーム１０１と、鉛直方向に沿った第２軸Ｊ２まわりに回動する第２アーム１０２と、鉛直方向に沿った第３軸Ｊ３まわりに回動するスプラインシャフト１０３とを有する（図１参照）。すなわち、ロボット１は、基台１１０に対してヨー軸周りに回動可能な３つの部材として第１アーム１０１、第２アーム１０２およびスプラインシャフト１０３を有する。また、上述したように、モバイルカメラ３の光軸Ａ３は、第１軸Ｊ１、第２軸Ｊ２および第３軸Ｊ３に沿うように（平行になるように）設けられている。
【０１０５】
例えば、基台１１０から数えて３つめの第３軸Ｊ３まわりに回動するスプラインシャフト１０３にモバイルカメラ３が取り付けられている場合、図１１に示すようにモバイルカメラ３の姿勢を変更せずにモバイルカメラ３を移動させることができる。すなわち、図１１中の２点鎖線で示すロボット１の状態と、図１１中の実線で示すロボット１の状態とで、モバイルカメラ３の姿勢を同じにすることができる。これは、スプラインシャフト１０３を第３軸Ｊ３周りに回動させることで、スプラインシャフト１０３の回動に伴いモバイルカメラ３を回動させることができるためである。
【０１０６】
これに対し、本実施形態のように、基台１１０から数えて２つめの第２軸Ｊ２まわりに回動する第２アーム１０２にモバイルカメラ３が取り付けられている場合、図１２に示すように、第２アーム１０２の回動に伴いモバイルカメラ３が回動する。すなわち、図１２中の２点鎖線で示すロボット１の状態と、図１２中の実線で示すロボット１の状態とで、モバイルカメラ３の姿勢が異なる。このように、第２アーム１０２の回動とともにモバイルカメラ３が回動すると、撮像画像３０のフレームもそれに伴い回動する（図１３参照）。そのため、ステップＳ１４で求めた先端座標系と画像座標系の相対的な関係を基にして、１つの基準点３０５にマーカー６１が位置するように軸座標Ｐ２を移動させたとしても、フレームの姿勢の変化に起因して当該基準点３０５と撮像画像３０に写るマーカー６１とにずれが生じる（図１５参照）。すなわち、図１４に示すように１つの基準点３０５にマーカー６１が位置するように軸座標Ｐ２を移動させたとしても、図１５に示すように１つの基準点３０５とマーカー６１とにずれが生じる。
【０１０７】
そこで、ステップＳ１６では、モバイルカメラ３の第２アーム１０２の回動に伴う回動を考慮して座標変換式を更新する。具体的には、上述したステップＳ１４で求めた座標変換式を用いて、撮像画像３０の中心Ｏ３０と撮像画像３０上のマーカー６１との変位（ΔｘｂＭ１、ΔｙｂＭ１）と、中心Ｏ３０と基準点３０５との変位（ΔｘｂＭ１、ΔｙｂＭ１）とを求め、これら変位と以下の式（２）とを基にして新たな基準点３０６を再設定（補正）する（図１６参照）。
【０１０８】
【数８】
2018094654.tif 000010
【０１０９】
このようにして、第２アーム１０２の回動（移動）に伴うモバイルカメラ３の回動を考慮した新たな基準点３０６を再設定（補正）する。これにより、本実施形態のように、第２アーム１０２にモバイルカメラ３が取り付けられている場合でも、基準点３０６にマーカー６１を適切に位置させることができるため、後述するキャリブレーションの実行（ステップＳ２０またはステップＳ２４）を高精度に行うことができる。
【０１１０】
〈モバイルカメラ３のオフセットの算出（図４：ステップＳ１７）〉
図１７は、図４に示すステップＳ１７を説明するためのフロー図である。図１８は、図１７に示すステップＳ１７１を説明するためのロボットの概略図である。図１９は、図１７に示すステップＳ１７１を説明するためのロボットの模式図である。図２０は、図１７に示すステップＳ１７２を説明するためのロボットの模式図である。図２１は、図１７に示すステップＳ１７３を説明するためのロボットの模式図である。図２２は、図１７に示すステップＳ１７４を説明するためのロボットの模式図である。
【０１１１】
次に、制御部５３は、モバイルカメラ３のオフセットの算出（モバイルカメラ３の取付位置のアームセット）を行う。本実施形態では、軸座標Ｐ２に対する撮像画像３０に写るマーカー６１の位置のずれ、すなわち第３軸Ｊ３と平行な軸を除く２つの軸に対する並進成分ｘａ、ｙａにおける軸座標Ｐ２と撮像画像３０に写るマーカー６１との間の距離を求める。より具体的には、本実施形態では、水平面内において（第２軸Ｊ２に沿った方向から見て）、モバイルカメラ３の光軸Ａ３と第２軸Ｊ２との間の距離と、モバイルカメラ３の光軸Ａ３が第２アーム１０２（第２軸Ｊ２と第３軸Ｊ３とを結ぶ線分）に対して第２軸Ｊ２まわりに何度（°）ずれた位置に設置されているかを求める。以下、図１７に示すフロー図を参照しつつ説明する。
【０１１２】
［変換係数（ｍｍ／ピクセル：解像度）を求める（図１７：ステップＳ１７１）］
まず、制御部５３は、図１８に示すロボット１ａ（ロボット１）の状態から、図１９に示すようにモバイルカメラ３の姿勢を変更せずにモバイルカメラ３の位置を変更するようにロボットアーム１０を駆動させ、変更前後の画像座標およびロボット座標に基づいて、変換係数（ｍｍ／ピクセル）を求める。
【０１１３】
具体的には、図１９の２点鎖線で示すロボット１ａの状態から図１９の実線で示すロボット１ｂ（ロボット１）の状態にする。これは、第１軸Ｊ１を反時計まわりに角度＋θ１１（°）で回動させ、第２軸Ｊ２を時計まわりに角度−θ１１（°）で回動させることで実現できる。そして、制御部５３は、上述のモバイルカメラ３の位置の変更前後における軸座標Ｐ２の移動距離（ｍｍ）、すなわちモバイルカメラ３の移動距離（ｍｍ）と、撮像画像３０上に写るマーカー６１の移動距離（ピクセル）とから、画像座標とロボット座標の変換係数（ｍｍ／ピクセル）を求める。
【０１１４】
［第１軸Ｊ１と光軸Ａ３との間の距離を求める（図１７：ステップＳ１７２）］
次に、制御部５３は、図２０に示すように第１軸Ｊ１を回動させて、第１軸Ｊ１と光軸Ａ３との間の距離である線分Ｌ２１を求める。
【０１１５】
具体的には、図２０の２点鎖線で示すロボット１ａの状態から図２０の実線で示すロボット１ｃ（ロボット１）の状態にする。これは、第２軸Ｊ２を回動させずに、第１軸Ｊ１を角度θ１２（°）で回動させることで実現できる。
【０１１６】
また、第１軸Ｊ１と光軸Ａ３との間の距離である線分Ｌ２１は、以下のようにして求める。ロボット１ａの第１軸Ｊ１と軸座標Ｐ２とを結ぶ線分Ｌ１１の長さ（ｍｍ）と、ロボット１ｃの第１軸Ｊ１と軸座標Ｐ２とを結ぶ線分Ｌ１２の長さ（ｍｍ）と、ロボット１ａの軸座標Ｐ２の位置とロボット１ｃの軸座標Ｐ２の位置とを結ぶ線分Ｌ１３の長さ（ｍｍ）とは、それぞれ既知である。また、ロボット１ａの撮像画像３０の中心Ｏ３０の位置とロボット１ｃの撮像画像３０の中心Ｏ３０の位置とを結ぶ線分Ｌ２３の長さ（ピクセル）は、既知である。そのため、ステップＳ１７１で求めた変換係数（ｍｍ／ピクセル）を用いて、先端座標系での線分Ｌ２３の長さ（ｍｍ）を求める。また、線分Ｌ１１、Ｌ１２、Ｌ１３とで構成される三角形Ｔ１と、線分Ｌ２１、Ｌ２２、Ｌ２３とで構成される三角形Ｔ２とは、相似である。三角形Ｔ１と三角形Ｔ２とが相似であるため、線分Ｌ１１、Ｌ１２、Ｌ１３と線分Ｌ２３とから、先端座標系での線分Ｌ２１の長さ（ｍｍ）を求めることができる。なお、線分Ｌ２１は、ロボット１ａの第１軸Ｊ１と光軸Ａ３とを結ぶ線分である。また、線分Ｌ２２は、ロボット１ｃの第１軸Ｊ１と光軸Ａ３とを結ぶ線分である。
【０１１７】
［第２軸Ｊ２と光軸Ａ３との間の距離を求める（図１７：ステップＳ１７３）］
次に、制御部５３は、図２１に示すように第２軸Ｊ２を回動させて、第２軸Ｊ２と光軸Ａ３との間の距離である線分Ｌ２５を求める。
【０１１８】
具体的には、図２１の２点鎖線で示すロボット１ａの状態から図２１の実線で示すロボット１ｄ（ロボット１）の状態にする。これは、第１軸Ｊ１を回動させずに、第２軸Ｊ２を角度θ１３（°）で回動させることで実現できる。
【０１１９】
また、第２軸Ｊ２と光軸Ａ３との間の距離である線分Ｌ２５は、以下のようにして求める。ロボット１ａの第２軸Ｊ２と軸座標Ｐ２とを結ぶ線分Ｌ１５の長さ（ｍｍ）と、ロボット１ｄの第２軸Ｊ２と軸座標Ｐ２とを結ぶ線分Ｌ１６の長さ（ｍｍ）と、ロボット１ａの軸座標Ｐ２の位置とロボット１ｄの軸座標Ｐ２の位置とを結ぶ線分Ｌ１４の長さ（ｍｍ）とは、それぞれ既知である。また、ロボット１ａの撮像画像３０の中心Ｏ３０の位置とロボット１ｄの撮像画像３０の中心Ｏ３０の位置とを結ぶ線分Ｌ２４の長さ（ピクセル）は、既知である。そのため、ステップＳ１７１で求めた変換係数（ｍｍ／ピクセル）を用いて、先端座標系での線分Ｌ２４の長さ（ｍｍ）を求める。また、線分Ｌ１４、Ｌ１５、Ｌ１６とで構成される三角形Ｔ３と、線分Ｌ２４、Ｌ２５、Ｌ２６とで構成される三角形Ｔ４とは、相似である。三角形Ｔ３と三角形Ｔ４とが相似であるため、線分Ｌ１４、Ｌ１５、Ｌ１６と線分Ｌ２４とから、先端座標系での線分Ｌ２５の長さ（ｍｍ）を求めることができる。なお、線分Ｌ２５は、ロボット１ａの第２軸Ｊ２と光軸Ａ３とを結ぶ線分である。線分Ｌ２６は、ロボット１ｄの第２軸Ｊ２と光軸Ａ３とを結ぶ線分である。
【０１２０】
［モバイルカメラ３のオフセットを求める（図１７：ステップＳ１７４）］
次に、制御部５３は、下記式（３）を用いて、ロボット１ａの第２軸Ｊ２と光軸Ａ３とを結ぶ線分Ｌ２５と、線分Ｌ１７と、線分Ｌ２１とから、線分Ｌ１７と線分Ｌ２５とのなす角度θ１４を求める（図２２参照）。
【０１２１】
【数９】
2018094654.tif 000011
【０１２２】
そして、求めた角度θ１４と、既知である線分Ｌ１５と線分Ｌ１７のなす角度θ１５とから、線分Ｌ１５と線分Ｌ２５とのなす角度θ１６を求める。このようにして、モバイルカメラ３が第２アーム１０２に対して水平面内において第２軸Ｊ２まわりに角度θ１６（°）ずれた位置に設置されていることを求めることができる。
【０１２３】
以上のようにして、制御装置５により自動でモバイルカメラ３のオフセットを求めることができる。
【０１２４】
以上説明したモバイルカメラ３のオフセットの算出（ステップＳ１７）では、制御部５３は、「可動部」としてのロボットアーム１０を駆動して「撮像部」としてのモバイルカメラ３の姿勢を変更せずに「撮像部」としてのモバイルカメラ３を少なくとも２つの箇所（本実施形態では２箇所）に移動させ、少なくとも２つの箇所の「撮像部の座標系」としての画像座標系での座標（画像座標）と少なくとも２つの箇所の「ロボットの座標系」としての先端座標系での座標（ロボット座標）とに基づいて画像座標系と先端座標系との変換係数（ｍｍ／ピクセル）を算出し（ステップＳ１７１）、「撮像部」としてのモバイルカメラ３が設けられた「アーム」である第２アーム１０２に対する「撮像部」としてのモバイルカメラ３のオフセットを算出する。このように、モバイルカメラ３の姿勢を変更せずにモバイルカメラ３を移動（特に並進移動）させることで、ロボットアーム１０（本実施形態では第２アーム１０２）に対するモバイルカメラ３の位置のずれ、すなわちオフセットを算出している。これにより、変換係数を比較的簡単に求めることができ、また、その変換係数を用いることで、オフセットを容易にかつ短時間で求めることができる。
【０１２５】
ここで、並進移動とは、平面内を直線的に移動すること（回転や円弧状の移動を除く）を言う。また、モバイルカメラ３（撮像部）の姿勢の変更とは、成分ｕｂ，ｖｂ，ｗｂのうちの少なくとも１つを変更することである。また、モバイルカメラ３（撮像部）の位置の変更とは、成分ｘｂ，ｙｂ，ｚｂのうちの少なくとも１つを変更することである。また、上述のモバイルカメラ３（撮像部）の姿勢を変更せずとは、成分ｕｂ，ｖｂ，ｗｂを変更しないことを示す。
【０１２６】
また、ステップＳ１７のオフセットの算出では、ステップＳ１７２〜ステップＳ１７４の代わりに後述する第３実施形態における最適化計算を用いることも可能である。
【０１２７】
〈撮像画像の中心にマーカーを位置させる（図４：ステップＳ１８）〉
次に、制御部５３は、ロボットアーム１０を駆動させ、撮像画像３０の中心Ｏ３０にマーカー６１を位置させる。
【０１２８】
〈ハンドの姿勢の変更動作を行うか否かを判断する（図４：ステップＳ１９）〉
次に、制御部５３は、ハンド１５０の姿勢の変更動作を行うか否かを判断する。
【０１２９】
［ハンドの姿勢の変更動作を行う場合（ステップＳ１９：Ｙｅｓ）］
ハンド１５０の姿勢の変更動作を行う場合には、ステップＳ２１に移行する。
【０１３０】
［ハンドの姿勢の変更動作の実行を開始（図４：ステップＳ２１）］
制御部５３は、ハンド１５０の姿勢の変更動作の実行を開始する。ハンド１５０の姿勢の変更動作は、モバイルカメラ３による撮像位置を変更せずにモバイルカメラ３の姿勢を変更するようにハンド１５０の姿勢を変更する動作である。このハンド１５０の姿勢の変更動作を行うことにより、上述したオフセットを更新してさらに精度の高いオフセットを求めることができる。
【０１３１】
［撮像画像の中心にマーカーを位置させつつハンドを第１ハンド姿勢から第２ハンド姿勢に変更する（図４：ステップＳ２２）］
図２３は、図４に示すステップＳ２２を説明するためのロボットの概略図である。図２４は、図４に示すステップＳ２２を説明するためのロボット座標を説明するための図である。図２５は、図４に示すステップＳ２２を説明するためのロボットの概略図である。
【０１３２】
ここで、上述のステップＳ１８において、撮像画像３０の中心Ｏ３０にマーカー６１が位置しているときのロボットアーム１０の先端部の状態を図２３中の２点鎖線で示す。このときのハンド１５０の姿勢を「第１ハンド姿勢」とする。
【０１３３】
まず、制御部５３は、撮像画像３０の中心Ｏ３０にマーカー６１を位置させたまま、ロボットアーム１０を駆動させて、図２３中の２点鎖線で示すハンド１５０の姿勢（第１姿勢）から、図２３中の実線で示すハンド１５０の姿勢（第２姿勢）にする。具体的には、例えば、まず、ロボットアーム１０を所謂右腕姿勢の状態にして、撮像画像３０の中心Ｏ３０にマーカー６１を位置させる。次いで、ロボットアーム１０を所謂左腕姿勢の状態にして、撮像画像３０の中心Ｏ３０にマーカー６１を位置させる。ここで、ロボット１の構成では、１つのマーカー６１を撮像画像３０の中心Ｏ３０に位置させた状態で取れるロボットアーム１０の姿勢は、右腕姿勢と左腕姿勢との２つの姿勢に限定させる。したがって、マーカー６１が設置されている位置（ベース座標系でどこにマーカー６１が設置されているか）によって右腕姿勢と左腕姿勢とでハンド１５０がマーカー６１を通る垂線周りに何度回転できるかが決まる。本実施形態では、例えば、上述のように右腕姿勢の状態にした後に左腕姿勢の状態にすると、マーカー６１を通る垂線周りにハンド１５０（軸座標Ｐ２）が１８０°異なる位置に移動した状態となる（図２４参照）。
【０１３４】
次いで、制御部５３は、図２４に示すように、ハンド１５０が第１ハンド姿勢であるときの軸座標Ｐ２のロボット座標（ｘａ３，ｙａ３）と、ハンド１５０が第２ハンド姿勢であるときの軸座標Ｐ２のロボット座標（ｘａ４，ｙａ４）との中間点Ｐ０におけるロボット座標（ｘａ５，ｙａ５）を算出する。そして、制御部５３は、例えば第１ハンド姿勢での軸座標Ｐ２のロボット座標と中間点Ｐ０のロボット座標との間の距離を求め、この距離を第２アーム１０２に対するモバイルカメラ３のオフセットとして設定する。
【０１３５】
なお、本実施形態では、マーカー６１を通る垂線周りハンド１５０およびモバイルカメラ３を１８０°回動させることによりモバイルカメラ３のオフセットを求めたが、この角度は１８０°に限定されず、任意である。角度が１８０°以外である場合であっても、水平面内における軸座標Ｐ２とマーカー６１との間の距離と、右腕姿勢から左腕姿勢へのマーカー６１を通る垂線周りの回転角度と、第１姿勢での軸座標Ｐ２のロボット座標と、第２姿勢での軸座標Ｐ２ロボット座標と、マーカー６１の画像座標とを用いて連立方程式を解くことで、マーカー６１のロボット座標を求めることができる。そして、例えば第１ハンド姿勢での軸座標Ｐ２のロボット座標とマーカー６１のロボット座標との間の距離を求めることで、モバイルカメラ３のオフセットを求めることができる。
【０１３６】
このように、制御部５３は、「可動部」としてのロボットアーム１０を駆動して「撮像部」としてのモバイルカメラ３による撮像位置を変更せずに「撮像部」としてのモバイルカメラ３の姿勢を変更し、モバイルカメラ３の姿勢の変更前後の「ロボットの座標系」としての先端座標系での座標（ロボット座標）に基づいてオフセットを更新する。すなわち、ステップＳ１７で求めたオフセットおよびステップＳ２２で姿勢変更を行うことで求めたオフセットを基に、新たなオフセットを求めている。これにより、より高精度なモバイルカメラ３のオフセット（具体的には、軸座標Ｐ２に対する撮像画像３０に写るマーカー６１の位置のずれ）を求めることができる。また、上述のモバイルカメラ３の姿勢を変更することは、成分ｕｂを変更することを示す（図２３参照）。
【０１３７】
ここで、例えば、上述したように、モバイルカメラ３は、設計上、光軸Ａ３が第３軸Ｊ３に対して平行になるように第２アーム１０２に取り付けられているが、実際には、モバイルカメラ３は、例えば人為的なモバイルカメラ３の取り付け誤差等により、光軸Ａ３が第３軸Ｊ３に対して傾いた状態で取り付けられることがある（図２５参照）。このように光軸Ａ３が第３軸Ｊ３に対して傾いた状態であっても、上述したハンド１５０の姿勢の変更動作を行うことにより、光軸Ａ３の傾きを考慮したオフセットの算出が可能である。
【０１３８】
［ハンドを第１ハンド姿勢に戻す（ステップＳ２３）］
次に、制御部５３は、ハンド１５０を第１姿勢に戻し、ステップＳ２４に移行する。
【０１３９】
［キャリブレーションの実行（ステップＳ２４）］
図２６および図２７は、それぞれ、図４に示すステップＳ２４を説明するための撮像画像を示す図である。
【０１４０】
制御部５３は、ステップＳ１６で求めた複数の基準点３０６の各位置と、ステップＳ２１、Ｓ２２で求めたオフセットとを用いて、各基準点３０６にマーカー６１が位置するように、ロボットアーム１０を駆動させて軸座標Ｐ２およびモバイルカメラ３を移動させる。このとき、移動させるごとにモバイルカメラ３でマーカー６１を撮像して、画像データ取得する。
【０１４１】
例えば、制御部５３は、ロボットアーム１０を駆動して、１つめの基準点３０６にマーカー６１が位置するようにモバイルカメラ３を位置させる（図２６参照）。このときのモバイルカメラ３の位置を「第１位置」とする。また、記憶部５５は、このとき撮像した第１撮像画像３０ａ（撮像画像３０）を記憶する。また、例えば、制御部５３は、ロボットアーム１０を駆動して、２つめの基準点３０６にマーカー６１が位置するようにモバイルカメラ３を位置させる（図２７参照）。このときのモバイルカメラ３の位置を「第２位置」とする。また、記憶部５５は、このとき撮像した第２撮像画像３０ｂ（撮像画像３０）を記憶する。このようにして、順次、軸座標Ｐ２およびモバイルカメラ３の位置を移動させて、その都度、撮像画像を取得する。すなわち、第１〜第９位置にモバイルカメラ３を位置させ、第１〜第９撮像画像（画像データ）を取得する。
【０１４２】
次いで、制御部５３は、第１〜第９撮像画像に基づいたマーカー６１の座標（成分ｘｂ，ｙｂ，ｕｂ）と、ロボット座標（成分ｘａ，ｙａ，ｕａ）とに基づいて、画像座標をロボット座標に変換する補正パラメーター（座標変換行列）を求める。これにより、画像座標系と先端座標系とのキャリブレーションが完了する。これにより、上述したように、ロボット座標系とベース座標系との対応付けが済んでいる状態なので、画像座標系とベース座標系との対応付けを行うことができる。このようにして、モバイルカメラ３で撮像した撮像対象の位置（成分ｘｂ、ｙｂ）および姿勢（成分ｕｂ）を先端座標系における位置（成分ｘａ、ｙａ）および姿勢（成分ｕａ）に変換することができる。そのため、撮像画像３０を基にして先端座標系でのマーカー６１の位置（成分ｘａ、ｙａ）を求めることができる。その結果、撮像画像３０を基にしてロボット１のハンド１５０を目的の箇所に位置させることができる。
【０１４３】
このように、制御部５３は、「撮像部」としてのモバイルカメラ３を第１位置に位置させてモバイルカメラ３によってマーカー６１を撮像した第１撮像画像３０ａと、モバイルカメラ３を第１位置とは異なる第２位置に位置させてモバイルカメラ３によってマーカー６１を撮像した第２撮像画像３０ｂとに基づいて、対応付けを行う（図２７参照）。また、上述したように、モバイルカメラ３は第２アーム１０２の回動に伴って回動するため、第１位置でのモバイルカメラ３の第１姿勢と、第２位置でのモバイルカメラ３の第２姿勢とは、異なっている。それゆえ、図２７に示すように、第１撮像画像３０ａのフレームは第２撮像画像３０ｂのフレームに対して回動した状態となる。ここで、本実施形態では、ステップＳ１６において、モバイルカメラ３の回動を考慮した基準点３０６の更新を行っている。そのため、このように第１位置でのモバイルカメラ３の姿勢（第１姿勢）と第２位置でのモバイルカメラ３の姿勢（第２姿勢）とが異なっていても、キャリブレーション（対応付け）を高精度に行うことができる。
【０１４４】
［ハンドの姿勢の変更動作を行わない場合（ステップＳ１９：Ｎｏ）］
ハンド１５０の姿勢の変更動作を行わない場合には、ステップＳ２０に移行する。
【０１４５】
［キャリブレーションの実行（ステップＳ２０）］
上述した、ステップＳ１６で求めた座標変換式と、ステップＳ１７で求めたオフセットとを用いてステップＳ２４と同様の方法により、画像座標系と先端座標系とのキャリブレーションを実行する。
以上のようにして、キャリブレーションが終了する。
【０１４６】
以上説明したように、制御装置５は、複数の「アーム」としての第１アーム１０１、第２アーム１０２およびスプラインシャフト１０３を含む「可動部」としてのロボットアーム１０を有するロボット１を制御する。そして、制御装置５は、「可動部」としてのロボットアーム１０の最も先端側に位置するスプラインシャフト１０３（アーム）とは異なる第２アーム１０２（アーム）に設けられた撮像機能を有する「撮像部」としてのモバイルカメラ３の座標系（画像座標系）と、ロボット１の座標系（先端座標系）と、の対応付けを行う制御部５３を備える。このような制御装置５によれば、上述したようにして画像座標系と先端座標系との対応付け、すなわちキャリブレーションが可能であるため、モバイルカメラ３の撮像画像３０を基にしてロボット１に的確な作業を行わせることができる。また、制御装置５によれば、最も先端側に位置するスプラインシャフト１０３（アーム）とは異なる第２アーム１０２（アーム）に設けられたモバイルカメラ３における当該対応付けが可能である。そのため、この制御装置５を用いることで、ロボット１の第２アーム１０２（アーム）にモバイルカメラ３を設けることができる。その結果、例えばロボット１の基台１１０からモバイルカメラ３に引き回されたモバイルカメラ３の配線（図示せず）が、スプラインシャフト１０３の回転に伴い、頻繁に屈曲して劣化することを低減することができる。
【０１４７】
特に、上述したように、モバイルカメラ３は、光軸Ａ３と同じ回動方向（本実施形態ではヨー）である第１軸Ｊ１、第２軸Ｊ２および第３軸Ｊ３のうち、基台１１０側から数えて２つ目の第２軸Ｊ２周りに回動する第２アーム１０２に設けられている。本実施形態の制御装置５によれば、このような箇所に設けられたモバイルカメラ３に対して、対応付けを特に高精度に行うことができる。また、制御装置５は、第２アーム１０２に設けられたモバイルカメラ３に限らず、ロボットアーム１０の最も先端に位置するアームであるスプラインシャフト１０３以外に設けられたモバイルカメラ３の画像座標系と、ロボット１の先端座標系との対応付けを行うことが可能であればよい。すなわち、制御装置５は、第１アーム１０１および第２アーム１０２のいずれかに設けられたモバイルカメラ３の画像座標系に関する対応付けを行うことが可能である。
【０１４８】
なお、「ロボットの座標系」とは、本実施形態では先端座標系として捉えているが、ロボット１のベース座標系と捉えてもよいし、先端座標系以外のロボット１の所定部の座標系と捉えてもよい。また、「撮像部の座標系」とは、撮像部から出力される撮像画像の座標系のことを示す。また、「対応付け」とは、本実施形態では、画像座標系とロボットの座標系（先端座標系またはベース座標系）とのキャリブレーションのことと捉えているが、ステップＳ１４のような画像座標系とロボットの座標系との相対的な関係を求めることとして捉えてもよい。相対的な関係とは、例えば画像座標系における２点間との距離を先端座標系における２点間との距離に変換することを意味する。
【０１４９】
また、上述したように、制御部５３は、マーカー６１を「撮像部」としてのモバイルカメラ３によって撮像した撮像画像３０（画像データ）に基づいて対応付け（キャリブレーションの実行）を行っている。これにより、例えばキャリブレーション治具等を対象物６０に対してタッチアップすることが不要となり、対応付けを非接触で行うことができる。そのため、タッチアップの作業の人為的なバラツキを低減することができる。また、対応付けを非接触で行うことができるため、例えば対象物の材質等によらず、対応付けを高精度に行うことができる。
【０１５０】
ここで、本実施形態では、「マーカー」は、対象物６０に付された円形のマーカー６１を例に挙げたが、「マーカー」は、モバイルカメラ３によって撮像可能な箇所に設けられたものであれば如何なるものであってもよい。例えば、「マーカー」としては、円形状のマーカー６１に限定されず、円形以外の図形または文字等であってもよく、対象物６０に設けられた特徴的な部分や、対象物６０自体であってもよい。また、キャリブレーションで用いる対象物６０の形状も如何なる形状であってもよい。
【０１５１】
また、ここで、上述したように、ロボット１は、「可動部」としてのロボットアーム１０を支持する基台１１０を有しており、ロボットアーム１０の最も先端側に位置するスプラインシャフト１０３（アーム）とは異なる第２アーム１０２（アーム）は、基台１１０に対して回動可能である。そして、制御部５３は、撮像画像３０に基づいて対応付けで用いる複数の基準点３０５を設定し（ステップＳ１５）、「撮像部」としてのモバイルカメラ３の回動を考慮した複数の基準点３０５の補正を行って、複数の基準点３０６を更新する（ステップＳ１６）。具体的には、ステップＳ１６においてモバイルカメラ３の回動を考慮して座標変換式を更新し、複数の基準点３０６を再設定している。そのため、キャリブレーションの実行において、第２アーム１０２の回動に伴ってモバイルカメラ３が回動することにより第１〜第９位置でのモバイルカメラ３の姿勢が変化しても、画像座標系と先端座標系とのより高精度な対応付けを実現することができる。そのため、第２アーム１０２に設けられたモバイルカメラ３の画像座標系と先端座標系との対応付けをより高精度に行うことができる。
【０１５２】
また、上述したロボット１は、制御装置５によって制御され、複数の「アーム」としての第１アーム１０１、第２アーム１０２およびスプラインシャフト１０３を含む「可動部」としてのロボットアーム１０を有する。このようなロボット１によれば、制御装置５による制御の下、キャリブレーション（対応付け）にかかる動作を的確に行うことができる。
【０１５３】
以上、ロボットシステム１００について説明した。このようなロボットシステム１００は、上述したように、制御装置５と、制御装置５によって制御され、複数の「アーム」としての第１アーム１０１、第２アーム１０２およびスプラインシャフト１０３を含む「可動部」としてのロボットアーム１０を有するロボット１と、撮像する機能を有する「撮像部」としてのモバイルカメラ３とを備える。このようなロボットシステム１００によれば、制御装置５による制御の下、ロボット１はキャリブレーション（対応付け）にかかる動作を的確に行うことができる。また、第２アーム１０２にモバイルカメラ３を取り付けることができるため、例えばロボット１の基端側から引き回されたモバイルカメラ３の配線（図示せず）が、スプラインシャフト１０３の回転に伴い、頻繁に屈曲して劣化することを低減することができる。
【０１５４】
＜第２実施形態＞
次に、第２実施形態について説明する。
【０１５５】
図２８は、第２実施形態に係るロボットシステムの斜視図である。図２９は、図２８に示すロボットシステムが有するロボットを示す側面図である。図３０は、図２８に示すロボットシステムによるキャリブレーションの流れを示すフロー図である。
【０１５６】
本実施形態に係るロボットシステムは、主に、ロボットの構成が異なること以外は、上述した第１実施形態と同様である。なお、以下の説明では、第２実施形態に関し、上述した実施形態との相違点を中心に説明し、同様の事項に関してはその説明を省略する。
【０１５７】
〈ロボット〉
図２８に示すように、ロボットシステム１００Ａが有するロボット１Ａは、いわゆる６軸の垂直多関節ロボットであり、基台１１０と、ロボットアーム１０Ａとを有する。
【０１５８】
図２８に示すように、ロボットアーム１０Ａは、第１アーム１１（アーム）と、第２アーム１２（アーム）と、第３アーム１３（アーム）と、第４アーム１４（アーム）と、第５アーム１５（アーム）と、第６アーム１６（アーム、先端アーム）と、一方のアームを他方のアーム（または基台１１０）に対して回動可能に支持する機構を有する６つの関節１７１〜１７６とハンド１５０とを有する。
【０１５９】
基台１１０と第１アーム１１とは、関節１７１を介して連結されており、第１アーム１１は、基台１１０に対して鉛直方向に沿う第１回動軸Ｏ１まわりに回動可能となっている。また、第１アーム１１と第２アーム１２とは、関節１７２を介して連結されており、第２アーム１２は、第１アーム１１に対して水平方向に沿う第２回動軸Ｏ２まわりに回動可能となっている。また、第２アーム１２と第３アーム１３とは、関節１７３を介して連結されており、第３アーム１３は、第２アーム１２に対して水平方向に沿う第３回動軸Ｏ３まわりに回動可能となっている。また、第３アーム１３と第４アーム１４とは、関節１７４を介して連結されており、第４アーム１４は、第３アーム１３に対して第３回動軸Ｏ３と直交した第４回動軸Ｏ４まわりに回動可能となっている。また、第４アーム１４と第５アーム１５とは、関節１７５を介して連結されており、第５アーム１５は、第４アーム１４に対して第４回動軸Ｏ４と直交した第５回動軸Ｏ５まわりに回動可能となっている。また、第５アーム１５と第６アーム１６とは、関節１７６を介して連結されており、第６アーム１６は、第５アーム１５に対して第５回動軸Ｏ５と直交した第６回動軸Ｏ６まわりに回動可能となっている。ここで、図２９に示すように、第５回動軸Ｏ５と第６回動軸Ｏ６との交わる点を軸座標Ｐ５（所定部）という。また、ハンド１５０は、第６アーム１６の先端面に取り付けられており、ハンド１５０の中心軸が第６アーム１６の第６回動軸Ｏ６と一致している。
【０１６０】
また、図２８には図示しないが、関節１７１〜１７６には、それぞれ、複数の駆動部１３０と、複数の位置センサー１３１とが設けられている（図２参照）。ロボット１Ａは、６つの関節１７１〜１７６（または６つのアーム１１〜１６）と同じ数（本実施形態では６つ）の駆動部１３０および位置センサー１３１を有している。
【０１６１】
このような構成のロボット１Ａは、図２９に示すように、上述した第１実施形態におけるロボット１と同様に、ロボット１Ａの基台１１０を基準としたベース座標系（ｘｒ軸、ｙｒ軸およびｚｒ軸）が設定されている。ベース座標系は、基台１１０の上端面の中心点を原点としている。また、同様に、ロボット１Ａでは、ロボット１Ａの第５アーム１５を基準とした先端座標系（ｘａ軸、ｙａ軸およびｚａ軸）が設定されている。本実施形態では、先端座標系は、第５アーム１５の軸座標Ｐ５を原点としている。また、ベース座標系と先端座標系との校正（キャリブレーション）は済んでおり、ベース座標系を基準とした先端座標系の座標を算出することができる状態である。
【０１６２】
〈モバイルカメラ〉
図２８に示すように、モバイルカメラ３は、ロボット１Ａの第５アーム１５に設けられている。また、本実施形態では、モバイルカメラ３は、設計上、モバイルカメラ３の光軸Ａ３が第５アーム１５の第６回動軸Ｏ６に対してほぼ平行になるように取り付けられている。ここで、ロボット１Ａは、基台１１０に対してヨー軸周りに回動可能な３つの部材としての、第１アーム１１、第４アーム１４および第６アーム１６を有する。したがって、本実施形態では、モバイルカメラ３は、第６アーム１６よりも基台１１０側に位置する第５アーム１５（アーム）に設けられている。また、モバイルカメラ３は、第５アーム１５に設けられているため、第５アーム１５の駆動（回動）とともにその位置を変えることができる。
【０１６３】
このような構成のロボット１が有する「可動部」としてのロボットアーム１０Ａは、「アーム」としての第５アーム１５よりも「可動部」としてのロボットアーム１０Ａの先端側に設けられた「先端アーム」としての第６アーム１６を含む構成である。すなわち、ロボット１Ａは、第５アーム１５にモバイルカメラ３が設けられている。このような構成のロボット１Ａについても、第１実施形態と同様にして、制御装置５の制御の下でキャリブレーション（キャリブレーションのための各種設定および実行）を行うことができる。これにより、ロボットアーム１０Ａの最も先端側に位置する「先端アーム」としての第６アーム１６以外である第５アーム１５をモバイルカメラ３が設定されている「アーム」とすることができる。そのため、例えばロボット１Ａの基端側から引き回されたモバイルカメラ３の配線（図示せず）が、第６アーム１６の回転に伴い、頻繁に屈曲して劣化することを低減することができる。
【０１６４】
なお、図３０に示すように、本実施形態におけるキャリブレーションは、モバイルカメラ３が第５アーム１５に設けられていること、および、ステップＳ１７〜Ｓ２４を省略していること以外は、第１実施形態におけるキャリブレーションとほぼ同様であるため、その詳細な説明を省略する。なお、本実施系形態におけるキャリブレーションでは、第１実施形態におけるキャリブレーションでの軸座標Ｐ２の代わりに軸座標Ｐ５を用い、また第２軸Ｊ２の代わりに第５回動軸Ｏ５を用いればよい。また、本実施形態におけるキャリブレーションの実行（Ｓ２５）は、第１実施形態におけるキャリブレーションの実行（ステップＳ２４）とほぼ同様である。
【０１６５】
また、本実施形態における制御装置５は、第５アーム１５に設けられたモバイルカメラ３に限らず、ロボットアーム１０の最も先端に位置するアームである第６アーム１６以外のアーム１１〜１５に設けられたモバイルカメラ３の画像座標系と、ロボット１の先端座標系との対応付けを行うことが可能であればよい。すなわち、制御装置５は、第１アーム１１、第２アーム１２、第３アーム１３、第４アーム１４および第５アーム１５のいずれに設けられたモバイルカメラ３の画像座標系に関する対応付けを行うことが可能である。
【０１６６】
また、本実施形態におけるロボットシステム１００Ａにおいても、上述したように、モバイルカメラ３は、光軸Ａ３と同じ回動方向（本実施形態ではヨー）である第１回動軸Ｏ１、第４回動軸Ｏ４および第６回動軸Ｏ６のうち、基台１１０側から数えて３つめのヨー軸である第６回動軸Ｏ６周りに回動する第６アーム１６よりも基台１１０側に位置する第５アーム１５（１つ手前のアーム）に設けられている。本実施形態におけるロボットシステム１００Ａが備える制御装置５は、このような箇所に設けられたモバイルカメラ３に対して、対応付けを特に高精度に行うことができる。
【０１６７】
また、本実施形態では、ロボット１Ａが作業する作業台９１の作業面（上面）は、水平面に平行であったが、作業面は水平面に平行でなく、水平面に対して傾斜していてもよい。その場合には、作業面に対して平行で、かつ、ベース座標系に基づいて定義付けされた仮想的な基準面を予め設定しておくことが好ましい。
【０１６８】
＜第３実施形態＞
次に、第３実施形態について説明する。
【０１６９】
図３１は、第３実施形態に係るロボットシステムによるオフセットの算出の流れを示す図である。図３２は、図３１に示すステップＳ３１、Ｓ３２を説明するためのロボットの斜視図である。図３３および図３４は、それぞれ、図３１に示すステップＳ３４を説明するための図である。図３５は、図３１に示すステップＳ３５を説明するための図である。なお、図３２では、ハンド１５０の図示を省略している。
【０１７０】
本実施形態に係るロボットシステムは、主に、モバイルカメラのオフセットの算出が異なること以外は、上述した第２実施形態と同様である。なお、以下の説明では、第３実施形態に関し、上述した実施形態との相違点を中心に説明し、同様の事項に関してはその説明を省略する。
【０１７１】
≪キャリブレーション≫
本実施形態では、第２実施形態におけるロボット２Ａにおける第５アーム１５に対するモバイルカメラ３のオフセットを求める。例えば、第２実施形態におけるキャリブレーションにおいて、複数の基準点の再設定（図３０：ステップＳ１６）の終了後で、キャリブレーションの実行（図３０：ステップＳ２５）の開始前に、モバイルカメラ３のオフセットの算出（ステップＳ３０）を行うことができる（図３１参照）。具体的には、本実施形態では、第５アーム１５に対するモバイルカメラ３の位置姿勢のずれ（成分ｘａ、ｙａ、ｕａ）を求める。
【０１７２】
以下、図３１に示すフロー図を参照しつつ説明する。
まず、制御部５３は、ステップＳ３１〜Ｓ３４を実行して、モバイルカメラ３の姿勢（成分ｕｂ、ｖｂ、ｗｂ）および位置（成分ｚｂ）を変更せずにモバイルカメラ３の位置（成分ｘｂ、ｙｂ）を変更するようにロボットアーム１０Ａを駆動させ、変更前後の画像座標およびロボット座標に基づいて、変換係数（ｍｍ／ピクセル：解像度）を求める。
【０１７３】
また、予め、制御部５３は、任意の位置Ｈ１に軸座標Ｐ５が位置するようにロボットアーム１０Ａを駆動させる。すなわち、例えば、図３２の２点鎖線で示すロボット１Ａの状態にしておく。
【０１７４】
［位置Ｈ１での撮像画像３０上のマーカー６１の位置６１ｅを検出する（図３１：ステップＳ３１）］
まず、制御部５３は、モバイルカメラ３により画像データを取得して位置Ｈ１での撮像画像３０上のマーカー６１の位置６１ｅ（マーカー位置）を検出する（図３２〜図３４参照）。また、記憶部５５は、位置Ｈ１におけるロボット座標（ｘａ３，ｙａ３，ｕａ３）と位置６１ｅにおける画像座標（ｘｂ３，ｙｂ３，ｕｂ３）とを記憶する（図３３および図３４参照）。
【０１７５】
［モバイルカメラ３の姿勢を変えずに位置Ｈ２に並進移動させる（図３１：ステップＳ３２）］
次に、制御部５３は、ロボットアーム１０Ａを駆動させ、モバイルカメラ３の姿勢（成分ｕｂ、ｖｂ、ｗｂ）および位置（成分ｚｂ）を変えずに軸座標Ｐ５を並進移動させる。すなわち、例えば、図３２の２点鎖線で示すロボット１Ａの状態から図３２の実線で示すロボット１Ａの状態にする。これは、例えば、第１回動軸Ｏ１と第４回動軸Ｏ４と第６回動軸Ｏ６とを回動させずに、第２回動軸Ｏ２と第３回動軸Ｏ３と第５回動軸Ｏ５とを回動させることで実現できる（図２９および図３２参照）。これにより、軸座標Ｐ５が位置Ｈ１から矢印ａ１３方向に移動した位置Ｈ２に位置する（図３２および図３３参照）。また、このとき、撮像画像３０に写るマーカー６１が位置６１ｅから矢印ａ１４方向に移動した位置６１ｆ（マーカー位置）に位置する（図３４参照）。
【０１７６】
［位置Ｈ２での撮像画像３０上のマーカー６１の位置６１ｆを検出する（図３１：ステップＳ３３）］
次に、制御部５３は、モバイルカメラ３により画像データを取得して位置Ｈ２での撮像画像３０上のマーカー６１の位置６１ｆ（マーカー位置）を検出する（図３４参照）。また、記憶部５５は、位置Ｈ２におけるロボット座標（ｘａ４，ｙａ４，ｕａ４）と位置６１ｆにおける画像座標（ｘｂ４，ｙｂ４，ｕｂ４）とを記憶する（図３３および図３４参照）。
【０１７７】
［変換係数（１）を算出する（図３１：ステップＳ３４）］
次に、制御部５３は、位置Ｈ１と位置Ｈ２との間の距離（ｍｍ）と、撮像画像３０上での位置６１ｅでのマーカー６１の位置と位置６１ｆでのマーカー６１の位置との間の距離（ピクセル）とから、画像座標とロボット座標の変換係数（ｍｍ／ピクセル：解像度）を求める。言い換えると、上述のモバイルカメラ３を２箇所に移動させた移動前後における軸座標Ｐ５（モバイルカメラ３）の移動距離（ｍｍ）と、撮像画像３０上に写るマーカー６１の移動距離（ピクセル）とから、変換係数を求める。
【０１７８】
［モバイルカメラ３の設置向き(２)を算出する（図３１：ステップＳ３５）］
次に、ステップＳ３１〜Ｓ３４における情報を基に、モバイルカメラ３の設置向き（具体的には、成分ｕａ）を算出する。
【０１７９】
具体的には、図３５に示すように、ベース座標系における位置Ｈ１、Ｈ２での先端座標系の向き（角度Ｒｕ）と、ベース座標系における位置Ｈ１から位置Ｈ２への軸座標Ｐ５の移動方向（角度α）と、画像座標系におけるマーカー６１の位置６１ｅから６１ｆへの移動方向（角度β）とを用いて、以下の式（４）から、先端座標系における撮像画像３０のフレームの方向（角度θ１０）を求める。
【０１８０】
【数１０】
2018094654.tif 000012
【０１８１】
［仮想平面内でのＮ個の撮像姿勢を設定する（図３０：ステップＳ３６）］
次に、制御部５３は、仮想平面内のＮ個の任意の位置でのモバイルカメラ３の姿勢（具体的には光軸Ａ３（モバイルカメラ３の設置軸）の成分ｕａ）を設定する。仮想平面は、例えば、光軸Ａ３に対して直交する仮想的な平面であり、ベース座標系に基づいて定義された座標系（ローカル座標系）が設定されている。なお、この仮想平面の原点は、本実施形態では軸座標Ｐ５に設定している。
【０１８２】
［第ｎ撮像姿勢へ移動する（図３１：ステップＳ３７）］
次に、制御部５３は、ロボットアーム１０Ａを駆動させ、Ｎ個の撮像姿勢のうちの第１撮像姿勢（第ｎ撮像姿勢）へ移動する。Ｎの数値は、３以上であればよく、その数は任意であるが、数が多い程、オフセットの算出の精度が向上する。本実施形態では、例えば、Ｎは１０である。
【０１８３】
［第ｎ撮像姿勢で撮像してマーカー６１の位置を検出する（図３１：ステップＳ３８）］
次に、制御部５３は、第１撮像姿勢（第ｎ撮像姿勢）で撮像した撮像画像３０としての第１画像（第ｎ画像）を基にして、第１撮像姿勢でのマーカー６１の位置（位置ｎ）を検出する。
【０１８４】
［マーカー６１の位置と軸座標Ｐ５の姿勢(3)を保存する（図３１：ステップＳ３９）］
次に、記憶部５５は、第１画像（第ｎ画像）上のマーカー６１の位置における画像座標（ｘｂ，ｙｂ，ｕｂ）と、第１撮像姿勢（第ｎ撮像姿勢）におけるロボット座標（ｘａ，ｙａ，ｕａ）とを記憶する。
【０１８５】
［Ｎ個のマーカー６１の位置ｎを検出したか否かを判断する（図３１：ステップＳ４０）］
次に、制御部５３は、Ｎ個のマーカー６１の位置（位置ｎ）を検出し、保存したか否かを判断する。本実施形態では、Ｎは１０であるため、ｎは１０である。位置ｎを検出していない場合、すなわちＮ個のマーカー６１を検出していない場合には、ステップＳ３７に戻る。また、位置ｎを検出した場合、すなわちＮ個のマーカー６１を検出した場合には、ステップＳ４１に移行する。本実施形態では、ｎが１０になるまで、ステップＳ３７〜Ｓ４０を繰り返す。したがって、次に、第２撮像姿勢で撮像した撮像画像３０としての第２画像を基にして第２撮像姿勢でのマーカー６１の位置を検出する。そして、ｎが１０になったら、すなわち第１〜第ｎ画像を取得したら、ステップＳ４１に移行する。
【０１８６】
［変換係数(1)と設置向き(2)とモバイルカメラ３の光軸Ａ３の姿勢(3)とからモバイルカメラ３のオフセットを最適化計算により算出する（図３１：ステップＳ４１）］
以下、最適化計算を用いて、モバイルカメラ３のオフセット（軸座標Ｐ５とモバイルカメラ３に写るマーカー６１の位置関係）を求める方法について説明する。なお、本実施形態では、最適化計算で解を計算しているが解析的に解いても良い。
【０１８７】
以下の最適化計算では、ロボット１Ａが作業する作業面（例えば作業台９１の上面等）に対して、モバイルカメラ３の受光面３１１を平行に位置させて利用する場合（図２９参照）において、軸座標Ｐ５とモバイルカメラ３に写るマーカー６１の位置関係を２次元座標系に限定した環境で考える。
【０１８８】
まず、先端座標系におけるマーカー６１の位置と、モバイルカメラ３が設置されたロボット１Ａの軸座標Ｐ５を以下のように定義すると、先端座標系におけるモバイルカメラ３のオフセットを以下のように計算できる。
【０１８９】
【数１１】
2018094654.tif 000013
【０１９０】
Ｊ５は、軸座標Ｐ５である。ＣＡＭは、モバイルカメラ３の光軸Ａ３（撮像画像３０の中心Ｏ３０にマーカー６１が位置しているときのマーカー６１の位置）である。Tx、Ty、Tuは、未知変数である。
【０１９１】
同様に、ベース座標系における軸座標Ｐ５の位置姿勢を以下のように定義すると、第５回動軸Ｏ５の座標を以下のように計算できる。
【０１９２】
【数１２】
2018094654.tif 000014
【０１９３】
ＢＡＳＥは、基台１１０の上端面の中心点（原点）である。Rx、Ry、Ruは、未知変数である。
【０１９４】
また、ベース座標系におけるマーカー６１の位置(Mx,My)を以下のように定義する。
【０１９５】
【数１３】
2018094654.tif 000015
【０１９６】
上記の定義に加えて、さらに変換係数（解像度）をFx、Fy(ピクセル／ｍｍ)とし、モバイルカメラ３の撮像画像３０の中心Ｏ３０をCx、Cy(ピクセル)とすると、マーカー６１の画像座標P’(uｂ,vｂ)およびマーカー６１の位置(Mx,My)等の関係は以下の関係式で表せる。
【０１９７】
【数１４】
2018094654.tif 000016
【０１９８】
上記の式において、変換係数Fx、Fyを事前に計測した後、Tx、Ty、Tu、Mx、Myを未知変数として最適化計算を行う。ロボット１ＡのＮ個の姿勢Ｒｎにおいて撮像したマーカー６１の位置をＰｎとし、下記のエラー評価関数Eを最小化して未知変数Tx、Ty、Tu、Mx、Myを計算する。
【０１９９】
【数１５】
2018094654.tif 000017
【０２００】
エラー評価関数Eの最小化は、以下の手順１〜５による多変数のニュートン法を実行する。
【０２０１】
（手順１）
初期値Ｘ０を下記のように決定する。
【０２０２】
【数１６】
2018094654.tif 000018
【０２０３】
例えば、初期値を以下の値を利用して設定する。
Tx=0, Ty=0, 
Tuは、ステップＳ３５で求めたモバイルカメラ３の設置向きを利用する。Fx、Fyは、ステップＳ３４で求めた変換係数を用いる。
Mx=0, My=0
【０２０４】
（手順２）
現在値Xにおける勾配∇Eとヘッセ行列Hを計算する。
【０２０５】
【数１７】
2018094654.tif 000019
【０２０６】
（手順３）
連立方程式の解ΔXnを計算する。
【０２０７】
【数１８】
2018094654.tif 000020
【０２０８】
（手順４）
Xn値を更新する。
【０２０９】
【数１９】
2018094654.tif 000021
【０２１０】
（手順５）
ΔＸｎ＜δならばXnを返却する。他の場合は手順２から手順５を繰り返す。
【０２１１】
以上により、未知変数Tx、Ty、Tu、Mx、Myが求まり、モバイルカメラ３のオフセットを求めることができる。また、このような最適化計算を用いたモバイルカメラ３のオフセットの算出は、第１実施形態におけるステップＳ１７（具体的には、ステップＳ１７２〜ステップＳ１７４）の代わりに用いることもできる。その場合には、軸座標Ｐ５を軸座標Ｐ２に置き換えればよい。
【０２１２】
なお、上述した最適化計算において、未知変数Tuとして上述した角度θ１０の値を用いた場合、Tx、Ty、Mx、Myの４つの変数のみの算出になる。そのため、この場合には、ステップＳ３７におけるＮの数値は、２以上であってもよい。
【０２１３】
以上説明したように、制御装置５は、「撮像部」としてのモバイルカメラ３が設けられた「アーム」としての第５アーム１５を含む「可動部」としてのロボットアーム１０Ａを有するロボット１Ａを制御する。そして、「アーム」としての第５アーム１５を並進移動させることにより「撮像部」としてのモバイルカメラ３の姿勢（成分ｕａ）を求める制御部５３を備える（ステップＳ３１〜Ｓ３５）。このような制御装置５によれば、第５アーム１５を並進移動させることにより、第５アーム１５に対するモバイルカメラ３の姿勢（成分ｕａ）を求めることができる。そのため、ロボットアーム１０Ａの最も先端側に位置する「先端アーム」としての第６アーム１６以外である第５アーム１５をモバイルカメラ３が設定されている「アーム」とすることができる。その結果、例えば第６アーム１６を過剰に回動させることにより基台１１０から引き回されたモバイルカメラ３の配線（図示せず）が、第６アーム１６の回転に伴い、頻繁に屈曲して劣化することを低減することができる。ここで、並進移動とは、平面内を直線的に移動すること（回転や円弧状の移動を除く）を言う。
【０２１４】
なお、例えば、第６アーム１６の回動量が比較的少ない用途においては、「撮像部」としてのモバイルカメラ３が設けられた「アーム」は第６アーム１６であってもよく、その場合でも、第６アーム１６を並進移動させることで配線が第６アーム１６の回転に伴い、頻繁に屈曲して劣化することを低減することができる。
【０２１５】
また、上述したように、制御部５３は、並進移動の方向（本実施形態では軸座標Ｐ５の並進移動の方向）と、「アーム」としての第５アーム１５を並進移動させる方向（本実施形態では軸座標Ｐ５の並進移動の方向）と、「アーム」としての第５アーム１５の並進移動に伴う「撮像部」としてのモバイルカメラ３の座標系（画像座標系）における移動方向とに基づいて「撮像部」としてのモバイルカメラ３の姿勢（成分ｕａ）を求めている。具体的には、上述したように、ステップＳ３５でモバイルカメラ３の姿勢を求めている。これにより、ロボットアーム１０を過剰に回動させることなく、第５アーム１５に対するモバイルカメラ３の姿勢を求めることができる。
【０２１６】
特に、上述したように、制御部５３は、「撮像部」としてのモバイルカメラ３によって撮像されたマーカー６１（マーカー認識位置）に基づいて、「アーム」としての第５アーム１５に対するモバイルカメラ３のオフセットを求めている。これにより、オフセットを例えばメジャー（測定機器）等で測ることが不要となる。そのため、オフセットを例えばメジャー（測定機器）等で測ることによるタッチアップの作業の人為的なバラツキを低減することができる。また、オフセットの算出を非接触で行うことができるため、例えば対象物６０の材質等によらず、オフセットの算出を高精度に行うことができる。
【０２１７】
具体的には、上述したように、制御部５３は、「撮像部」としてのモバイルカメラ３を第１撮像姿勢に位置させてマーカー６１が撮像された第１画像（撮像画像３０）と、モバイルカメラ３を第２撮像姿勢に位置させてマーカー６１が撮像された第２画像（撮像画像３０）と、に基づいてオフセットを求める。本実施形態では、上述したように、第１〜第１０画像に基づいてオフセットを求めている。これにより、オフセットの算出を非接触で行うことができ、また、比較的簡単な方法でオフセットの算出を高精度に行うことができる。
【０２１８】
また、上述したように、ロボット１Ａは、制御装置５によって制御され、「撮像部」としてのモバイルカメラ３が設けられた「アーム」としての第５アーム１５を含む「可動部」としてのロボットアーム１０Ａを有する。このようなロボット１Ａによれば、上述したように、オフセットの算出にかかる動作を的確に行うことができる。
【０２１９】
以上説明したような本実施系形態におけるロボットシステム１００Ａは、制御装置５と、「撮像部」としてのモバイルカメラ３と、制御装置５によって制御され、「撮像部」としてのモバイルカメラ３が設けられた「アーム」としての第５アーム１５を含む「可動部」としてのロボットアーム１０Ａを有するロボット１Ａとを備えることを特徴とする。このようなロボットシステム１００Ａによれば、制御装置５の制御の下、ロボット１Ａはオフセットの算出にかかる動作を的確に行うことができる。また、例えばロボット１Ａの基台１１０側から引き回されたモバイルカメラ３の配線（図示せず）が、第６アーム１６の回転に伴い、頻繁に屈曲して劣化することを低減することができる。
【０２２０】
なお、第６アーム１６が過剰に回転しない場合には、モバイルカメラ３の設置箇所は先端アーム（第６アーム１６）であってもよい。また、第１実施形態におけるロボット１についても同様のことが言える。また、「アーム」は、第５アーム１５に限定されず、「撮像部」が設けられているアームであればよい。
【０２２１】
＜第４実施形態＞
次に、第４実施形態について説明する。
【０２２２】
図３６は、第４実施形態に係るロボットシステムが有するロボットの先端部を示す図である。図３７は、図３６に示すロボットが有するハンドを並進移動させた状態を示す図である。図３８は、図３６に示すロボットの状態での撮像画像を示す図である。図３９は、図３７に示すロボットの状態での撮像画像を示す図である。図４０は、図３６に示すロボットアームに設置されたモバイルカメラを目的の箇所に位置させるための処理を示すフロー図である。図４１は、図４０に示すステップＳ５５を説明するための図である。図４２は、図３６に示すロボットにおいてモバイルカメラの視野内にハンドが位置している状態を示す図である。
【０２２３】
本実施形態に係るロボットシステムは、主に、ハンドの構成が異なることと、制御部による更なる処理を追加していること以外は、上述した第３実施形態と同様である。なお、以下の説明では、第４実施形態に関し、上述した実施形態との相違点を中心に説明し、同様の事項に関してはその説明を省略する。
【０２２４】
図３６に示すロボット１Ａが有するハンド１５０Ａは、第６回動軸Ｏ６から見て第６アーム１６よりも外側に突出している。このようなハンド１５０Ａを有するロボット１Ａにおいて、例えば、モバイルカメラ３を対象物６０の地点６１５上の位置から＋ｘｒ方向に位置する地点６１６上の位置に移動させるために、所謂ジョグ送りによりハンド１５０Ａの先端Ｐ１５０を＋ｙｒ方向に並進移動させると、第６アーム１６が第６回動軸Ｏ６周りに（矢印ａ１８方向に）回動する（図３６および図３７参照）。また、このとき、第５アーム１５が第１回動軸Ｏ１に平行な軸周りに（矢印ａ１７方向に）回動し、この第５アーム１５の回動とともにモバイルカメラ３も第１回動軸周りに（矢印ａ１７方向に）回動する。また、モバイルカメラ３の回動によって、撮像画像３０のフレームも同様に回動する（図３８および図３９参照）。
【０２２５】
このように、ハンド１５０Ａを例えば並進移動させる際、モバイルカメラ３の移動には第５アーム１５の回動成分が加わる。そのため、例えば図３６に示すハンド１５０Ａの先端Ｐ１５０を基準にして所謂ジョグ送り等によりモバイルカメラ３を目的の箇所に移動させようとすると、撮像画像３０の中心Ｏ３０を目的の箇所に適切に位置させることが難しい。
【０２２６】
そこで、本実施形態では、制御部５３は、モバイルカメラ３を目的の箇所（例えば地点６１６）に適切に移動できるように、すなわち、撮像画像３０の中心Ｏ３０に目的の箇所が写るようにロボットアーム１０Ａを制御している。以下、図４０に示すフロー図を参照しつつ説明する。また、以下に説明するモバイルカメラ３を目的の箇所に適切に位置させるための処理は、上述した第３実施形態におけるオフセットの算出が終了した状態で行う。
【０２２７】
まず、制御部５３は、第６アーム１６にモバイルカメラ３が設置されていると仮定し、モバイルカメラ３が目標姿勢（ｘｒ、ｙｒ、ｚｒ、ｕｒ、ｖｒ、ｗｒ）をとるときの第６回動軸Ｏ６のジョイント角θ６を計算する（ステップＳ５１）。ここで、本実施形態では、目標姿勢としては、例えば、図４１の撮像画像３０ｃ（撮像画像３０）の位置姿勢をとるモバイルカメラ３の位置姿勢とする。また、ジョイント角θ６とは、例えば、軸座標Ｐ５における第６アーム１６の先端中心（第６回動軸Ｏ６の軸座標）の角度とする。
【０２２８】
次に、記憶部５５は、ステップＳ５１のときのジョイント角θ６を初期値として記録する（ステップＳ５２）。
【０２２９】
次に、制御部５３は、目標姿勢（ｕｒ）に所定角度（例えば１°）を加え、再度ジョイント角θ６を計算し、姿勢（ｕｒ）に対するジョイント角θ６の変位Δθ６を計算する（ステップＳ５３）。
【０２３０】
次に、制御部５３は、ジョイント角θ６が０（零）になるように目標姿勢（ｕｒ）を変更し、ジョイント角θ１〜θ６を計算する（ステップＳ５４）。具体的には、ステップＳ５１における目標姿勢（ｕｒ）を「ｕｒａ」とし、ステップＳ５１で求めたジョイント角θ６を「θ６Ａ」とし、ステップＳ５４で新たに求める目標姿勢（ｕｒ）を「ｕｒｂ」として、ｕｒａ、θ６Ａと、ステップＳ５３で求めたΔθ６と、以下の式（５）とを用いて、目標姿勢（ｕｒｂ）を求める。また、新たな目標姿勢（ｕｒｂ）における第１回動軸Ｏ１〜第６回動軸Ｏ６のジョイント角θ１〜θ６を計算する。
【０２３１】
【数２０】
2018094654.tif 000022
【０２３２】
次に、制御部５３は、ステップＳ５４で求めたジョイント角θ６が所定の閾値範囲内であるか否かを判断する（ステップＳ５５）。ジョイント角θ６が所定の閾値範囲内でない場合には、ステップＳ５３に戻る。一方、ジョイント角θ６が所定の閾値範囲内である場合には、ステップＳ５６に移行する。ここで、所定の閾値範囲は、予め設定された値である。例えばジョイント角θ６は０°であることが好ましく、よって、閾値範囲内としては、±１０°内であることが好ましく、±０．１°であることがより好ましい。例えばジョイント角θ６が０°である場合とは、図４１に示す第５アーム１５ｄ（第５アーム１５）および第６アーム１６ｄ（第６アーム１６）の状態である。すなわち、第５アーム１５の中心軸（第５回動軸Ｏ５と直交する軸）と第６回動軸Ｏ６とが一致している状態である。したがって、例えば、図４１中の破線で示す第５アーム１５および第６アーム１６の状態から実線で示す第５アーム１５ｄおよび第６アーム１６ｄの状態となるまで、ステップＳ５３〜Ｓ５５を繰り返す。
【０２３３】
なお、ステップＳ５３〜Ｓ５５を、複数回繰り返してもステップＳ５５で収束が得られない場合には、収束するまで任意の角度（例えば３０°）ずつ初期値を変更してステップＳ５３〜Ｓ５５を繰り返してもよい。
【０２３４】
次に、制御部５３は、ジョイント角θ６が所定の閾値範囲内であると判断したら、ステップＳ５４で計算したジョイント角θ１〜θ５と、ステップＳ５２で記憶したジョイント角θ６の初期値とを目標姿勢してロボット１Ａに対して出力する（ステップＳ５６）。
【０２３５】
以上のようにして、モバイルカメラ３を目的の箇所に位置させるための処理が終了する。ここで、上述したように、ロボット１Ａは、「可動部」としてのロボットアーム１０Ａを支持する基台１１０を有しており、「アーム」としての第５アーム１５は、基台１１０に対して回動可能であり、「先端アーム」としての第６アーム１６は、第５アーム１５に対して回動可能である。そして、制御部５３は、上述したように、第５アーム１５の回動に伴って回動する「撮像部」としてのモバイルカメラ３の回動を考慮して、モバイルカメラ３（本実施形態では、モバイルカメラ３の撮像画像３０の中心Ｏ３０）を指定した位置に移動させる処理を行っている（図４０参照）。これにより、モバイルカメラ３を指定した位置に適切に位置させることができる。また、上述したモバイルカメラ３を目的の箇所に適切に位置させるための処理を用いることで、モバイルカメラ３以外の第５アーム１５に設けられた各種ツール（図示せず）を目的の箇所に適切に位置させることも可能である。
【０２３６】
また、上述したような構成のハンド１５０Ａを有するロボット１Ａでは、図４２に示すように、第６アーム１６が回動するとその回動に伴ってハンド１５０Ａが回動し、モバイルカメラ３の下（真下の領域）にハンド１５０Ａが位置する場合がある。そのため、上述したモバイルカメラ３の視野内にハンド１５０Ａが位置して、モバイルカメラ３で対象物６０が見えなくなることがある。例えば、上述したモバイルカメラ３を目的の箇所に位置させるための処理においてモバイルカメラ３を目的の箇所に位置させたとき、モバイルカメラ３で対象物６０が見えなくなることがある。
【０２３７】
そこで、制御部５３は、モバイルカメラ３の視野内にハンド１５０Ａが位置しないように、ハンド１５０Ａの先端軸角度（ハンド１５０Ａのジョイント角度）を設定している。
【０２３８】
具体的には、例えば、記憶部５５は、モバイルカメラ３の視野内にハンド１５０Ａが位置していない状態におけるハンド１５０Ａの先端軸角度に関する情報を記憶しており、制御部５３は、この情報を基にモバイルカメラ３（第５アーム１５）の移動を制御する。
【０２３９】
また、例えば、制御部５３は、移動前後において、移動前にモバイルカメラ３の視野内にハンド１５０Ａが位置していない場合には、その位置でのハンド１５０Ａの先端軸角度を記憶部５５に記憶させておき、移動後においても移動前のハンド１５０Ａの先端軸角度を維持する。
【０２４０】
また、例えば、制御部５３は、モバイルカメラ３の視野内にハンド１５０Ａが位置していない状態におけるハンド１５０Ａの先端軸角度の範囲を予め設定しておく。そして、制御部５３は、このハンド１５０Ａの先端軸角度の範囲と、モバイルカメラ３の目標姿勢とに基づき、両者が重ならない範囲で目的とする先端軸角度に最も近い先端軸角度（先端軸姿勢の成分ｕｒ）を設定する。
【０２４１】
このように、制御部５３は、「撮像部」としてのモバイルカメラ３によって撮像した撮像画像３０に「可動部」としてのロボットアーム１０Ａが写らないようにロボットアーム１０Ａを制御する。これにより、第５アーム１５に設置されたモバイルカメラ３によりマーカー６１を撮像しても、撮像画像３０にロボットアーム１０Ａが写ることを回避できる。
【０２４２】
特に、上述したように、「撮像部」としてのモバイルカメラ３は、「可動部」としてのロボットアーム１０Ａの先端側を撮像可能であり、制御部５３は、撮像画像３０にロボットアーム１０Ａの先端部（例えばハンド１５０Ａ）が写らないようにロボットアーム１０Ａを制御する。これにより、第５アーム１５に設置されたモバイルカメラ３によりマーカー６１を撮像しても、撮像画像３０にハンド１５０Ａが写ることを回避できる。そのため、撮像画像３０を用いてオフセットの算出ならびにキャリブレーションをより高精度に行うことができる。
【０２４３】
なお、第１実施形態におけるロボット１においても制御部５３は同様に撮像画像３０にロボットアーム１０が写らないように制御している。
【０２４４】
また、本実施形態では、図３８に示すように、撮像画像３０内において撮像対象を検出する撮像対象領域としての領域ＲＯＩ（Region of Interest）を設定している。これにより、撮像対象の検出を迅速に行うことができる。ここで、図３８に示す状態から図３９に示す状態のように撮像画像３０が回動すると、撮像対象であるマーカー６１の位置が、図３８中の２点鎖線で示す領域ＲＯＩから外れてしまう。そこで、本実施形態では、図３９中の実線で示すように、撮像画像３０の回動に応じて領域ＲＯＩを回動させている。例えば、モバイルカメラ３が軸座標Ｐ５のｕａ軸周りに＋１０°回転した場合には、ｕａ軸周りに−１０°回転するようにｕｂ軸周りに領域ＲＯＩを回動させる。これにより、第５アーム１５の回動に伴いモバイルカメラ３（撮像画像３０）が回動しても、撮像画像３０内において撮像対象を適切に検出することができる。
【０２４５】
以上、本発明の制御装置、ロボットおよびロボットシステムを図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物が付加されていてもよい。また、各実施形態を適宜組み合わせてもよい。
【０２４６】
また、ロボットアームの数は、特に限定されず、２つ以上であってもよい。また、ロボットアームの回動軸の数は、特に限定されず、任意である。
【符号の説明】
【０２４７】
１…ロボット、１Ａ…ロボット、１ａ…ロボット、１ｂ…ロボット、１ｃ…ロボット、１ｄ…ロボット、３…モバイルカメラ、５…制御装置、１０…ロボットアーム、１０Ａ…ロボットアーム、１１…第１アーム、１２…第２アーム、１３…第３アーム、１４…第４アーム、１５…第５アーム、１５ｄ…第５アーム、１６…第６アーム、１６ｄ…第６アーム、３０…撮像画像、３０ａ…第１撮像画像、３０ｂ…第２撮像画像、３０ｃ…撮像画像、３１…撮像素子、３２…レンズ、４１…表示装置、４２…入力装置、５１…表示制御部、５２…入力制御部、５３…制御部、５４…入出力部、５５…記憶部、６０…対象物、６０ａ…対象物、６０ｂ…対象物、６１…マーカー、６１ｅ…マーカー、６１ｆ…マーカー、９１…作業台、１００…ロボットシステム、１００Ａ…ロボットシステム、１０１…第１アーム、１０２…第２アーム、１０３…スプラインシャフト、１０４…作業ヘッド、１１０…基台、１２０…モータードライバー、１３０…駆動部、１３１…位置センサー、１５０…ハンド、１５０Ａ…ハンド、１７１…関節、１７２…関節、１７３…関節、１７４…関節、１７５…関節、１７６…関節、３０１…第１サーチウィンドウ、３０２…第２サーチウィンドウ、３０５…基準点、３０６…基準点、３１１…受光面、６００…配線、６１５…地点、６１６…地点、Ａ０…ポイント、Ａ１…ポイント、Ａ２…ポイント、Ａ３…光軸、Ｂ１…ポイント、Ｂ２…ポイント、Ｊ１…第１軸、Ｊ２…第２軸、Ｊ３…第３軸、Ｌ１１…線分、Ｌ１２…線分、Ｌ１３…線分、Ｌ１４…線分、Ｌ１５…線分、Ｌ１６…線分、Ｌ１７…線分、Ｌ２１…線分、Ｌ２２…線分、Ｌ２３…線分、Ｌ２４…線分、Ｌ２５…線分、Ｌ２６…線分、Ｏ１…第１回動軸、Ｏ２…第２回動軸、Ｏ３…第３回動軸、Ｏ３０…中心、Ｏ３０１…中心、Ｏ３０２…中心、Ｏ４…第４回動軸、Ｏ５…第５回動軸、Ｏ６…第６回動軸、Ｐ０…中間点、Ｐ１５０…先端、Ｐ２…軸座標、Ｐ５…軸座標、ＲＯＩ…領域、Ｒｕ…角度、Ｓ１…第１領域、Ｓ１１…ステップ、Ｓ１２…ステップ、Ｓ１３…ステップ、Ｓ１４…ステップ、Ｓ１５…ステップ、Ｓ１５１…ステップ、Ｓ１５２…ステップ、Ｓ１５３…ステップ、Ｓ１５４…ステップ、Ｓ１５５…ステップ、Ｓ１５６…ステップ、Ｓ１６…ステップ、Ｓ１７…ステップ、Ｓ１７１…ステップ、Ｓ１７２…ステップ、Ｓ１７３…ステップ、Ｓ１７４…ステップ、Ｓ１８…ステップ、Ｓ１９…ステップ、Ｓ２…第２領域、Ｓ２０…ステップ、Ｓ２１…ステップ、Ｓ２２…ステップ、Ｓ２３…ステップ、Ｓ２４…ステップ、Ｓ２５…ステップ、Ｓ３０…ステップ、Ｓ３１…ステップ、Ｓ３２…ステップ、Ｓ３３…ステップ、Ｓ３４…ステップ、Ｓ３５…ステップ、Ｓ３６…ステップ、Ｓ３７…ステップ、Ｓ３８…ステップ、Ｓ３９…ステップ、Ｓ４０…ステップ、Ｓ４１…ステップ、Ｓ５１…ステップ、Ｓ５２…ステップ、Ｓ５３…ステップ、Ｓ５４…ステップ、Ｓ５５…ステップ、Ｓ５６…ステップ、Ｔ１…三角形、Ｔ２…三角形、Ｔ３…三角形、Ｔ４…三角形、ＴＣＰ…ツールセンターポイント、ａ１１…矢印、ａ１２…矢印、ａ１３…矢印、ａ１４…矢印、ａ１７…矢印、ａ１８…矢印、ａ２１…矢印、ａ２２…矢印、α…角���、β…角度、θ１２…角度、θ１３…角度、θ１４…角度、θ１５…角度、θ１６…角度、θ１…角度、θ１０…角度、θ１１…角度、Ｈ１…位置、Ｈ２…位置
【図１】
2018094654.tif 000023
【図２】
2018094654.tif 000024
【図３】
2018094654.tif 000025
【図４】
2018094654.tif 000026
【図５】
2018094654.tif 000027
【図６】
2018094654.tif 000028
【図７】
2018094654.tif 000029
【図８】
2018094654.tif 000030
【図９】
2018094654.tif 000031
【図１０】
2018094654.tif 000032
【図１１】
2018094654.tif 000033
【図１２】
2018094654.tif 000034
【図１３】
2018094654.tif 000035
【図１４】
2018094654.tif 000036
【図１５】
2018094654.tif 000037
【図１６】
2018094654.tif 000038
【図１７】
2018094654.tif 000039
【図１８】
2018094654.tif 000040
【図１９】
2018094654.tif 000041
【図２０】
2018094654.tif 000042
【図２１】
2018094654.tif 000043
【図２２】
2018094654.tif 000044
【図２３】
2018094654.tif 000045
【図２４】
2018094654.tif 000046
【図２５】
2018094654.tif 000047
【図２６】
2018094654.tif 000048
【図２７】
2018094654.tif 000049
【図２８】
2018094654.tif 000050
【図２９】
2018094654.tif 000051
【図３０】
2018094654.tif 000052
【図３１】
2018094654.tif 000053
【図３２】
2018094654.tif 000054
【図３３】
2018094654.tif 000055
【図３４】
2018094654.tif 000056
【図３５】
2018094654.tif 000057
【図３６】
2018094654.tif 000058
【図３７】
2018094654.tif 000059
【図３８】
2018094654.tif 000060
【図３９】
2018094654.tif 000061
【図４０】
2018094654.tif 000062
【図４１】
2018094654.tif 000063
【図４２】
2018094654.tif 000064