(57)【要約】【課題】オペレーターによって可動部を操作されることなく、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができるロボットを提供すること。【解決手段】可動部を備え、前記可動部は、前記可動部に設けられた撮像部により第１マーカーを含む第１画像が撮像された時の前記可動部の第１位置姿勢と、前記撮像部により前記第１マーカーを含む第２画像が撮像された時の前記可動部の第２位置姿勢とを用いて求められた前記第１マーカーの位置に基づいて動作を行う、ロボット。【選択図】図３
2018001321.tif 000002
【特許請求の範囲】
【請求項１】
可動部を備え、
前記可動部は、前記可動部に設けられた撮像部により第１マーカーを含む第１画像が撮像された時の前記可動部の第１位置姿勢と、前記撮像部により前記第１マーカーを含む第２画像が撮像された時の前記可動部の第２位置姿勢とを用いて求められた前記第１マーカーの位置に基づいて動作を行う、
ロボット。
【請求項２】
前記第１位置姿勢と前記第２位置姿勢とで、前記撮像部と前記第１マーカーとの距離が同じである、
請求項１に記載のロボット。
【請求項３】
前記第１位置姿勢と前記第２位置姿勢とで、前記撮像部と前記可動部の制御点との距離が同じである、
請求項１又は２に記載のロボット。
【請求項４】
前記可動部の位置姿勢は、前記第１位置姿勢から第３位置姿勢に変化した際に前記撮像部により撮像された第３画像を用いて求められた前記第２位置姿勢に変化する、
請求項１から３のうちいずれか一項に記載のロボット。
【請求項５】
前記第２画像における前記第１マーカーの位置は、前記第１画像における前記第１マーカーの位置に対応する位置である、
請求項１から４のうちいずれか一項に記載のロボット。
【請求項６】
前記第１画像における前記第１マーカーの位置は、前記第１画像における中心位置であり、
前記第２画像における前記第１マーカーの位置は、当該中心位置に対応する位置であって前記第２画像における中心位置である、
請求項５に記載のロボット。
【請求項７】
前記第１位置姿勢で前記撮像部により前記第１画像を撮像する光軸と、前記第２位置姿勢で前記撮像部により前記第２画像を撮像する光軸とが、平行である、
請求項１から６のうちいずれか一項に記載のロボット。
【請求項８】
前記第１位置姿勢で前記撮像部により前記第１画像を撮像する光軸と、前記第２位置姿勢で前記撮像部により前記第２画像を撮像する光軸とが、非平行である、
請求項１から６のうちいずれか一項に記載のロボット。
【請求項９】
前記可動部は、前記第１マーカーの位置と、前記第１位置姿勢と、前記撮像部により第２マーカーを含む第４画像が撮像された時の前記可動部の第４位置姿勢とを用いて求められた前記第２マーカーの位置に基づいて動作を行う、
請求項１から８のうちいずれか一項に記載のロボット。
【請求項１０】
前記第１位置姿勢と前記第４位置姿勢とで、前記第１マーカーと前記第２マーカーとを含む平面と前記可動部の制御点との距離が同じである、
請求項９に記載のロボット。
【請求項１１】
請求項１から１０のうちいずれか一項に記載のロボットを制御する、
ロボット制御装置。
【請求項１２】
撮像部と、
請求項１から１０のうちいずれか一項に記載のロボットと、
請求項１１に記載のロボット制御装置と、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット、ロボット制御装置、及びロボットシステムに関する。
【背景技術】
【０００２】
ロボットを動作させるロボット制御装置にロボットの動作を教示する方法の研究や開発が行われている。
【０００３】
ロボットを人手で動作させてその位置・姿勢をロボット制御装置に記憶させる直接教示装置が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−２１６０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された技術によると、ロボットが把持するツールで基準点を触るようにロボットのアームをオペレーターが操作することによって基準点の位置を教示する。しかし、ツールが基準点に触るか触らないかの境界の状態を目視で特定しながら、アームを正確に操作することは容易ではない。すなわち特許文献１に記載された技術では、基準点の位置を正確に教示することが困難な場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、可動部を備え、前記可動部は、前記可動部に設けられた撮像部により第１マーカーを含む第１画像が撮像された時の前記可動部の第１位置姿勢と、前記撮像部により前記第１マーカーを含む第２画像が撮像された時の前記可動部の第２位置姿勢とを用いて求められた前記第１マーカーの位置に基づいて動作を行う、ロボットである。
この構成により、ロボットでは、可動部は、可動部に設けられた撮像部により第１マーカーを含む第１画像が撮像された時の可動部の第１位置姿勢と、撮像部により第１マーカーを含む第２画像が撮像された時の可動部の第２位置姿勢とを用いて求められた第１マーカーの位置に基づいて動作を行う。これにより、ロボットは、オペレーターによって可動部を操作されることなく、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０００７】
また、本発明の他の態様は、ロボットにおいて、前記第１位置姿勢と前記第２位置姿勢とで、前記撮像部と前記第１マーカーとの距離が同じである、構成が用いられてもよい。
この構成により、ロボットでは、可動部の第１位置姿勢と可動部の第２位置姿勢とで、撮像部と第１マーカーとの距離が同じである。これにより、ロボットは、撮像部と第１マーカーとの距離が同じである第１位置姿勢及び第２位置姿勢に基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０００８】
また、本発明の他の態様は、ロボットにおいて、前記第１位置姿勢と前記第２位置姿勢とで、前記撮像部と前記可動部の制御点との距離が同じである、構成が用いられてもよい。
この構成により、ロボットでは、第１位置姿勢と第２位置姿勢とで、撮像部と可動部の制御点との距離が同じである。これにより、ロボットは、撮像部と可動部の制御点との距離が同じである第１位置姿勢及び第２位置姿勢に基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０００９】
また、本発明の他の態様は、ロボットにおいて、前記可動部の位置姿勢は、前記第１位置姿勢から第３位置姿勢に変化した際に前記撮像部により撮像された第３画像を用いて求められた前記第２位置姿勢に変化する、構成が用いられてもよい。
この構成により、ロボットでは、可動部の位置姿勢は、第１位置姿勢から第３位置姿勢に変化した際に撮像部により撮像された第３画像を用いて求められた第２位置姿勢に変化する。これにより、ロボットは、第１位置姿勢と、第３画像を用いて求められた第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【００１０】
また、本発明の他の態様は、ロボットにおいて、前記第２画像における前記第１マーカーの位置は、前記第１画像における前記第１マーカーの位置に対応する位置である、構成が用いられてもよい。
この構成により、ロボットでは、第１位置姿勢と、第２画像における第１マーカーの位置が第２画像における位置のうち第１画像における第１マーカーの位置に対応する位置と一致する第２位置姿勢とを用いて求められた第１マーカーの位置に基づいて動作を行う。これにより、ロボットは、第１位置姿勢と、第２画像における第１マーカーの位置が第２画像における位置のうち第１画像における第１マーカーの位置に対応する位置と一致する第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【００１１】
また、本発明の他の態様は、ロボットにおいて、前記第１画像における前記第１マーカーの位置は、前記第１画像における中心位置であり、前記第２画像における前記第１マーカーの位置は、当該中心位置に対応する位置であって前記第２画像における中心位置である、構成が用いられてもよい。
この構成により、ロボットでは、第１画像における第１マーカーの位置が第１画像における中心位置と一致する第１位置姿勢と、第２画像における第１マーカーの位置が第２画像における中心位置と一致する第２位置姿勢とを用いて求められた第１マーカーの位置に基づいて動作を行う。これにより、ロボットは、第１画像における第１マーカーの位置が第１画像における中心位置と一致する第１位置姿勢と、第２画像における第１マーカーの位置が第２画像における中心位置と一致する第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【００１２】
また、本発明の他の態様は、ロボットにおいて、前記第１位置姿勢で前記撮像部により前記第１画像を撮像する光軸と、前記第２位置姿勢で前記撮像部により前記第２画像を撮像する光軸とが、平行である、構成が用いられてもよい。
この構成により、ロボットでは、第１位置姿勢で撮像部により第１画像を撮像する光軸と、第２位置姿勢で撮像部により第２画像を撮像する光軸とが、平行である。これにより、ロボットは、第１位置姿勢と、撮像部の光軸が第１位置姿勢で撮像部により第１画像を撮像する光軸と平行になる第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【００１３】
また、本発明の他の態様は、ロボットにおいて、前記第１位置姿勢で前記撮像部により前記第１画像を撮像する光軸と、前記第２位置姿勢で前記撮像部により前記第２画像を撮像する光軸とが、非平行である、構成が用いられてもよい。
この構成により、ロボットでは、第１位置姿勢で撮像部により第１画像を撮像する光軸と、第２位置姿勢で撮像部により第２画像を撮像する光軸とが、非平行である。これにより、ロボットは、第１位置姿勢と、撮像部の光軸が第１位置姿勢で撮像部により第１画像を撮像する光軸と非平行になる第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【００１４】
また、本発明の他の態様は、ロボットにおいて、前記可動部は、前記第１マーカーの位置と、前記第１位置姿勢と、前記撮像部により第２マーカーを含む第４画像が撮像された時の前記可動部の第４位置姿勢とを用いて求められた前記第２マーカーの位置に基づいて動作を行う、構成が用いられてもよい。
この構成により、ロボットでは、可動部は、第１マーカーの位置と、第１位置姿勢と、撮像部により第２マーカーを含む第４画像が撮像された時の可動部の第４位置姿勢とを用いて求められた第２マーカーの位置に基づいて動作を行う。これにより、ロボットは、第１マーカーの位置と、第１位置姿勢と、撮像部により第２マーカーを含む第４画像が撮像された時の可動部の第４位置姿勢とに基づいて、第２マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【００１５】
また、本発明の他の態様は、ロボットにおいて、前記第１位置姿勢と前記第４位置姿勢とで、前記第１マーカーと前記第２マーカーとを含む平面と前記可動部の制御点との距離が同じである、構成が用いられてもよい。
この構成により、ロボットでは、第１位置姿勢と第４位置姿勢とで、第１マーカーと第２マーカーとを含む平面と可動部の制御点との距離が同じである。これにより、ロボットは、第１位置姿勢と、第１マーカーと第２マーカーとを含む平面と可動部の制御点との距離が同じである第４位置姿勢とに基づいて、第２マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【００１６】
また、本発明の他の態様は、上記に記載のロボットを制御する、ロボット制御装置である。
この構成により、ロボット制御装置では、ロボットが備える可動部に設けられた撮像部により第１マーカーを含む第１画像が撮像された時の可動部の第１位置姿勢と、撮像部により第１マーカーを含む第２画像が撮像された時の可動部の第２位置姿勢とを用いて求められた第１マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボット制御装置は、オペレーターによって可動部を操作されることなく、第１マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
【００１７】
また、本発明の他の態様は、上記に記載のロボットと、上記に記載のロボット制御装置と、を備えるロボットシステムである。
この構成により、ロボットシステムでは、ロボットが備える可動部に設けられた撮像部により第１マーカーを含む第１画像が撮像された時の可動部の第１位置姿勢と、撮像部により第１マーカーを含む第２画像が撮像された時の可動部の第２位置姿勢とを用いて求められた第１マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボットシステムは、オペレーターによって可動部を操作されることなく、第１マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
【００１８】
以上により、ロボットでは、可動部は、可動部に設けられた撮像部により第１マーカーを含む第１画像が撮像された時の可動部の第１位置姿勢と、撮像部により第１マーカーを含む第２画像が撮像された時の可動部の第２位置姿勢とを用いて求められた第１マーカーの位置に基づいて動作を行う。これにより、ロボットは、オペレーターによって可動部を操作されることなく、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット制御装置では、ロボットが備える可動部に設けられた撮像部により第１マーカーを含む第１画像が撮像された時の可動部の第１位置姿勢と、撮像部により第１マーカーを含む第２画像が撮像された時の可動部の第２位置姿勢とを用いて求められた第１マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボット制御装置は、オペレーターによって可動部を操作されることなく、第１マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
また、ロボットシステムでは、ロボットが備える可動部に設けられた撮像部により第１マーカーを含む第１画像が撮像された時の可動部の第１位置姿勢と、撮像部により第１マーカーを含む第２画像が撮像された時の可動部の第２位置姿勢とを用いて求められた第１マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボットシステムは、オペレーターによって可動部を操作されることなく、第１マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
【図面の簡単な説明】
【００１９】
【図１】実施形態に係るロボットシステム１の構成の一例を示す図である。
【図２】ロボット制御装置３０のハードウェア構成の一例を示す図である。
【図３】ロボット制御装置３０の機能構成の一例を示す図である。
【図４】ロボット制御装置３０が行う処理の流れの一例を示すフローチャートである。
【図５】制御点Ｔの位置及び姿勢と第１位置姿勢とが一致した状態における撮像部２１により撮像される範囲と制御点Ｔの位置との位置関係の一例を模式的に表す図である。
【図６】図５に示した状態から制御点Ｔの姿勢を所定角度θ回動させた状態における撮像部２１により撮像される範囲と制御点Ｔの位置との位置関係の一例を模式的に表す図である。
【図７】図６に示した状態からステップＳ２４５において算出された変位分だけ制御点Ｔの位置を並進させた状態における撮像部２１により撮像される範囲と制御点Ｔの位置との位置関係の一例を模式的に表す図である。
【図８】図７に示した状態からステップＳ２７５において算出された第２位置姿勢と制御点Ｔの位置及び姿勢とを一致させた状態における撮像部２１により撮像される範囲と制御点Ｔの位置との位置関係の一例を模式的に表す図である。
【図９】第１位置姿勢及び第２位置姿勢のそれぞれにおける制御点Ｔの位置と、第１マーカーＭＫの位置との位置関係の一例を示す図である。
【図１０】図９に示した位置関係を、ロボット座標系ＲＣにおけるＺ軸の正方向から当該Ｚ軸の負方向に向かって見た場合の一例を示す図である。
【図１１】第１位置姿勢及び第２位置姿勢のそれぞれにおける制御点Ｔの位置と、第１マーカーＭＫの位置との位置関係の他の例を示す図である。
【図１２】第１マーカーＭＫのロボット座標系ＲＣにおけるＸ軸方向の位置の検出誤差を例示するグラフである。
【図１３】第１マーカーＭＫのロボット座標系ＲＣにおけるＹ軸方向の位置の検出誤差を例示するグラフである。
【図１４】ロボット座標系ＲＣにおけるＸＹ平面上におけるばらつきであって角度φのそれぞれ毎に図４に示したフローチャートの処理によって検出された第１マーカーＭＫの位置のばらつきを表すグラフである。
【図１５】第１位置姿勢及び第４位置姿勢のそれぞれにおける制御点Ｔの位置と、第１マーカーＭＫの位置との位置関係の一例を示す図である。
【発明を実施するための形態】
【００２０】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００２１】
＜ロボットシステムの構成＞
まず、ロボットシステム１の構成について説明する。
図１は、実施形態に係るロボットシステム１の構成の一例を示す図である。ロボットシステム１は、ロボット２０と、ロボット制御装置３０を備える。
【００２２】
ロボット２０は、アームＡと、アームＡを支持する支持台Ｂを備える単腕ロボットである。単腕ロボットは、この一例におけるアームＡのような１本のアーム（腕）を備えるロボットである。なお、ロボット２０は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、２本以上のアーム（例えば、２本以上のアームＡ）を備えるロボットである。なお、複腕ロボットのうち、２本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット２０は、２本のアームを備える双腕ロボットであってもよく、３本以上のアーム（例えば、３本以上のアームＡ）を備える複腕ロボットであってもよい。また、ロボット２０は、スカラロボット、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
【００２３】
アームＡは、エンドエフェクターＥと、マニピュレーターＭと、撮像部２１を備える。アームＡは、可動部の一例である。
エンドエフェクターＥは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターＥは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
【００２４】
エンドエフェクターＥは、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、エンドエフェクターＥは、ロボット制御装置３０から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ（Universal  Serial  Bus）等の規格によって行われる。また、エンドエフェクターＥは、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２５】
マニピュレーターＭは、６つの関節を備える。また、当該６つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターＭを備えるアームＡは、６軸垂直多関節型のアームである。アームＡは、支持台Ｂと、エンドエフェクターＥと、マニピュレーターＭと、マニピュレーターＭが備える６つの関節それぞれのアクチュエーターとによる連携した動作によって６軸の自由度の動作を行う。なお、アームＡは、５軸以下の自由度で動作する構成であってもよく、７軸以上の自由度で動作する構成であってもよい。
【００２６】
マニピュレーターＭが備える６つの（関節に備えられた）アクチュエーターはそれぞれ、ケーブルによってロボット制御装置３０と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置３０から取得される制御信号に基づいて、マニピュレーターＭを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。また、マニピュレーターＭが備える６つのアクチュエーターのうちの一部又は全部は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。
【００２７】
撮像部２１は、例えば、集光された光を電気信号に変換する撮像素子であるＣＣＤ（Charge  Coupled  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等を備えたカメラである。撮像部２１は、マニピュレーターＭの一部に備えられる。そのため、撮像部２１は、アームＡの動きに応じて移動する。すなわち、撮像部２１が撮像可能な範囲は、アームＡの動きに応じて変化する。なお、撮像部２１は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。以下では、一例として、撮像部２１が当該範囲の静止画像を撮像する場合について説明する。撮像部２１により撮像される撮像画像上の位置は、撮像部座標系ＣＣにおけるＸ軸及びＹ軸の座標によって表される。撮像部座標系ＣＣは、撮像部２１により撮像される撮像画像に対応付けられた三次元局所座標系である。
【００２８】
以下では、一例として、撮像部２１が、マニピュレーターＭが備える５つのアーム部材のうちの最もエンドエフェクターＥに近いアーム部材に設けられている場合について説明する。アーム部材は、マニピュレーターＭが備える関節間を繋ぐ部材のことである。また、以下では、撮像部２１の光軸が、マニピュレーターＭが備える６つの関節のうちのエンドエフェクターＥを回動させる関節の回動軸に沿った方向であって当該関節からエンドエフェクターＥに向かう方向を向いている場合について説明する。
【００２９】
また、撮像部２１は、ケーブルによってロボット制御装置３０と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット（登録商標）やＵＳＢ等の規格によって行われる。なお、撮像部２１は、Ｗｉ−Ｆｉ（登録商標）等の通信規格により行われる無線通信によってロボット制御装置３０と接続される構成であってもよい。図１では、図が煩雑になることを避けるため、撮像部２１とロボット制御装置３０とを繋ぐケーブルを省略している。
【００３０】
ロボット制御装置３０は、この一例において、ロボットを制御する（動作させる）コントローラーである。ロボット制御装置３０は、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる。ロボット制御装置３０は、撮像部２１が撮像した撮像画像を撮像部２１から取得する。ロボット制御装置３０は、取得した撮像画像に基づいてロボット２０に所定の作業を行わせる。
【００３１】
＜ロボットが行う所定の作業の概要＞
以下、ロボット２０が行う所定の作業の概要について説明する。
図１に示した例では、ロボット２０がエンドエフェクターＥにより作業することが可能な領域には、作業台ＴＢが配置されている。作業台ＴＢは、例えば、テーブルである。なお、作業台ＴＢは、テーブルに代えて、床面や棚等の他の物体であってもよい。
【００３２】
作業台ＴＢの上面には、第１マーカーＭＫが設けられている。第１マーカーＭＫは、第１マーカーＭＫに対応付けられた位置を示す。当該位置は、ロボット座標系ＲＣにおける位置である。第１マーカーＭＫは、第１マーカーＭＫに対応付けられた位置を示すことができるマーカーであれば如何なるマーカーであってもよい。以下では、一例として、当該位置が第１マーカーＭＫの図心の位置である場合について説明する。また、以下では、一例として、第１マーカーＭＫの位置は、第１マーカーＭＫが示す位置によって表される場合について説明する。なお、図１に示した例では、第１マーカーＭＫの形状は、円形状であるが、これに代えて、他の形状であってもよい。また、第１マーカーＭＫの位置は、第１マーカーＭＫが示す位置と異なる位置であって第１マーカーＭＫに対応付けられた他の位置であってもよい。
【００３３】
この一例において、ロボット２０は、エンドエフェクターＥにより予め把持された対象物Ｏを、作業台ＴＢの上面の位置のうち第１マーカーＭＫが示す位置に載置する作業を所定の作業として行う。ここで、対象物Ｏは、例えば、製品に組み付けるプレート、ネジ、ボルト等の産業用の部品や部材である。図１では、図の簡略化のため、対象物Ｏを直方体形状の物体として表している。なお、対象物Ｏは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、対象物Ｏの形状は、直方体形状に代えて、他の形状であってもよい。
【００３４】
＜ロボット制御装置が行う処理の概要＞
以下、ロボット２０に所定の作業を行わせるためにロボット制御装置３０が行う処理の概要について説明する。
【００３５】
ロボット制御装置３０は、撮像部座標系ＣＣにおいて予め決められた位置を表す座標が予め記憶される。当該座標は、撮像部座標系ＣＣにおけるＸ軸及びＹ軸の座標である。当該位置は、撮像部２１により撮像された撮像画像上において第１マーカーＭＫの位置を一致させる目標となる位置である。以下では、説明の便宜上、当該座標によって表される当該撮像画像上の位置を一致点と称して説明する。また、以下では、一例として、一致点が当該撮像画像上の中心位置（中心の位置）である場合について説明する。なお、一致点は、これに代えて、当該撮像画像上における他の位置であってもよい。
【００３６】
また、ロボット制御装置３０は、エンドエフェクターＥに予め対応付けられた位置に、エンドエフェクターＥとともに動く制御点Ｔを設定する。当該位置は、ロボット座標系ＲＣにおける位置である。エンドエフェクターＥに予め対応付けられた位置は、例えば、エンドエフェクターＥにより把持された対象物Ｏの重心の位置である。制御点Ｔは、例えば、ＴＣＰ（Tool  Center  Point）である。なお、制御点Ｔは、ＴＣＰに代えて、アームＡの一部に対応付けられた仮想的な点等の他の仮想的な点であってもよい。すなわち、制御点Ｔは、エンドエフェクターＥに対応付けられた位置に代えて、エンドエフェクターＥの他の部位の位置に設定される構成であってもよく、マニピュレーターＭに対応付けられた何らかの位置に設定される構成であってもよい。
【００３７】
制御点Ｔには、制御点Ｔの位置を示す情報である制御点位置情報と、制御点Ｔの姿勢を示す情報である制御点姿勢情報とが対応付けられている。当該位置は、ロボット座標系ＲＣにおける位置である。当該姿勢は、ロボット座標系ＲＣにおける姿勢である。なお、制御点Ｔには、これらに加えて、他の情報が対応付けられる構成であってもよい。制御点位置情報及び制御点姿勢情報をロボット制御装置３０が指定（決定）すると、制御点Ｔの位置及び姿勢が決まる。当該位置及び姿勢は、ロボット座標系ＲＣにおける位置及び姿勢である。ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定する。ロボット制御装置３０は、アームＡを動作させ、ロボット制御装置３０が指定した制御点位置情報が示す位置に制御点Ｔの位置を一致させるとともに、ロボット制御装置３０が指定した制御点姿勢情報が示す姿勢に制御点Ｔの姿勢を一致させる。以下では、説明の便宜上、ロボット制御装置３０が指定した制御点位置情報が示す位置を目標位置と称し、ロボット制御装置３０が指定した制御点姿勢情報が示す姿勢を目標姿勢と称して説明する。すなわち、ロボット制御装置３０は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット２０を動作させ、制御点Ｔの位置及び姿勢を目標位置及び目標姿勢と一致させる。
【００３８】
この一例において、制御点Ｔの位置は、制御点座標系ＴＣの原点のロボット座標系ＲＣにおける位置によって表される。また、制御点Ｔの姿勢は、制御点座標系ＴＣの各座標軸のロボット座標系ＲＣにおける方向によって表される。制御点座標系ＴＣは、制御点Ｔとともに動くように制御点Ｔに対応付けられた三次元局所座標系である。
【００３９】
ロボット制御装置３０は、ユーザーから予め入力された制御点設定情報に基づいて制御点Ｔを設定する。制御点設定情報は、例えば、エンドエフェクターＥの重心の位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、制御点設定情報は、これに代えて、エンドエフェクターＥに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターＭに対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ロボット２０の他の部位に対応付けられた何らかの位置及び姿勢と制御点Ｔの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
【００４０】
ロボット制御装置３０は、アームＡを移動させ、アームＡの位置及び姿勢を待機位置姿勢Ｘ１と一致させる。この一例において、アームＡの位置及び姿勢は、制御点Ｔの位置及び姿勢によって表される。すなわち、ロボット制御装置３０は、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を待機位置姿勢Ｘ１と一致させる。待機位置姿勢Ｘ１は、制御点Ｔの位置及び姿勢のうち撮像部２１により第１マーカーＭＫを撮像可能な位置及び姿勢である。ロボット制御装置３０は、制御点Ｔの位置及び姿勢と待機位置姿勢Ｘ１とが一致している状態において、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる。そして、ロボット制御装置３０は、撮像部２１が撮像した撮像画像を撮像部２１から取得する。
【００４１】
ロボット制御装置３０は、撮像部２１から取得した撮像画像に基づいて、当該撮像画像上における一致点と当該撮像画像に含まれる第１マーカーＭＫの位置とが一致する場合における制御点Ｔの位置及び姿勢である第１位置姿勢を算出する。ロボット制御装置３０は、算出した第１位置姿勢に基づいて制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を第１位置姿勢と一致させる。そして、ロボット制御装置３０は、制御点Ｔの位置及び姿勢を第１位置姿勢と一致させた状態において、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる。以下では、説明の便宜上、制御点Ｔの位置及び姿勢が第１位置姿勢と一致している場合において撮像部２１により撮像された撮像画像を第１画像と称して説明する。ロボット制御装置３０は、撮像部２１に撮像させた第１画像を撮像部２１から取得する。
【００４２】
また、ロボット制御装置３０は、撮像部２１から取得した第１画像に基づいて、第１位置姿勢と異なる位置及び姿勢である第２位置姿勢を算出する。制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合、撮像部２１により撮像された撮像画像上では、当該撮像画像に含まれる第１マーカーＭＫの位置と当該撮像画像上における一致点とが一致する。すなわち、第２位置姿勢は、第１位置姿勢と異なる位置及び姿勢であって、撮像部２１により撮像画像を撮像した場合に当該撮像画像に含まれる第１マーカーＭＫと当該撮像画像上における一致点とが一致する位置及び姿勢である。ロボット制御装置３０は、算出した第２位置姿勢に基づいて制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を第２位置姿勢と一致させる。そして、ロボット制御装置３０は、制御点Ｔの位置及び姿勢を第２位置姿勢と一致させた状態において、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる。以下では、説明の便宜上、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合において撮像部２１により撮像された撮像画像を第２画像と称して説明する。
【００４３】
ロボット制御装置３０は、アームＡに設けられた撮像部２１により第１マーカーＭＫを含む第１画像が撮像された時の制御点Ｔの第１位置姿勢と、撮像部２１により第１マーカーＭＫを含む第２画像が撮像された時の制御点Ｔの第２位置姿勢とを用いて求められた第１マーカーＭＫの位置に基づく動作をロボット２０に行わせる。当該位置は、ロボット座標系ＲＣにおける位置である。これにより、ロボット制御装置３０は、ダイレクトティーチングやオンラインティーチングのようにオペレーターによってアームＡを操作されることなく、第１マーカーＭＫの位置に基づく動作を含む作業をロボット２０に精度よく行わせることができる。換言すると、ロボット制御装置３０は、オペレーターによって第１マーカーＭＫの位置を教示されることなく、第１マーカーＭＫの位置に基づく動作を含む作業をロボット２０に精度よく行わせることができる。以下では、ロボット制御装置３０が第１マーカーＭＫの位置を算出する処理について詳しく説明する。
【００４４】
＜ロボット制御装置のハードウェア構成＞
以下、図２を参照し、ロボット制御装置３０のハードウェア構成について説明する。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００４５】
ロボット制御装置３０は、例えば、ＣＰＵ（Central  Processing  Unit）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。これらの構成要素は、バスＢｕｓを介して相互に通信可能に接続されている。また、ロボット制御装置３０は、通信部３４を介してロボット２０と通信を行う。
【００４６】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＲＯＭ（Read−Only  Memory）、ＲＡＭ（Random  Access  Memory）等を含む。なお、記憶部３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部３２は、ロボット制御装置３０が処理する各種情報、ロボット２０を動作させる動作プログラムを含む各種プログラム、各種画像、前述の撮像部座標系ＣＣにおける一致点を表す座標等を格納する。
【００４７】
入力受付部３３は、例えば、表示部３５と一体に構成されたタッチパネルである。なお、入力受付部３３は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ElectroLuminescence）ディスプレイパネルである。
【００４８】
＜ロボット制御装置の機能構成＞
以下、図３を参照し、ロボット制御装置３０の機能構成について説明する。図３は、ロボット制御装置３０の機能構成の一例を示す図である。
【００４９】
ロボット制御装置３０は、記憶部３２と、制御部３６を備える。
【００５０】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、撮像制御部４１と、画像取得部４３と、位置姿勢算出部４５と、ロボット制御部４７を備える。制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Large  Scale  Integration）やＡＳＩＣ（Application  Specific  Integrated  Circuit）等のハードウェア機能部であってもよい。
【００５１】
撮像制御部４１は、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる。
画像取得部４３は、撮像部２１が撮像した撮像画像を撮像部２１から取得する。
位置姿勢算出部４５は、画像取得部４３が取得した撮像画像に基づいて第１位置姿勢を算出する。また、位置姿勢算出部４５は、画像取得部４３が取得した撮像画像に基づいて第２位置姿勢を算出する。また、位置姿勢算出部４５は、算出した第１位置姿勢及び第２位置姿勢に基づいて、第１マーカーＭＫの位置を算出する。当該位置は、ロボット座標系ＲＣにおける位置である。
ロボット制御部５１は、位置姿勢算出部４５が算出した第１マーカーＭＫの位置に基づいてロボット２０に所定の作業を行わせる。当該位置は、ロボット座標系ＲＣにおける位置である。
【００５２】
＜ロボット制御装置が行う処理＞
以下、図４を参照し、ロボット制御装置３０が行う処理について説明する。図４は、ロボット制御装置３０が行う処理の流れの一例を示すフローチャートである。以下では、一例として、ロボット座標系ＲＣにおけるＸＹ平面と、作業台ＴＢの上面とが平行な場合について説明する。また、以下では、ロボット制御部４７が制御点Ｔを移動させる際、当該制御点Ｔと当該上面との間の距離であってロボット座標系ＲＣにおけるＺ軸に沿った方向の距離を変化させない場合について説明する。また、以下では、ロボット２０において、撮像部２１の位置と制御点Ｔの位置との相対的な位置関係が変化しない場合について説明する。なお、ロボットシステム１では、当該ＸＹ平面と当該上面とが平行ではない構成であってもよい。
【００５３】
ロボット制御部４７は、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を待機位置姿勢Ｘ１と一致させる（ステップＳ１１０）。ここで、ステップＳ１１０の処理について説明する。ロボット制御部４７は、記憶部３２に予め記憶された待機位置姿勢Ｘ１を示す待機位置姿勢情報Ｘ１Ｄを記憶部３２から読み出す。そして、ロボット制御部４７は、読み出した待機位置姿勢情報Ｘ１Ｄに基づいて制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を待機位置姿勢情報Ｘ１Ｄが示す待機位置姿勢Ｘ１と一致させる。なお、待機位置姿勢Ｘ１は、制御点Ｔの位置及び姿勢のうち撮像部２１が第１マーカーＭＫを含む範囲を撮像可能な位置及び姿勢であれば如何なる位置及び姿勢であってもよい。
【００５４】
次に、撮像制御部４１は、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる（ステップＳ１２０）。次に、画像取得部４３は、ステップＳ１２０において撮像部２１が撮像した撮像画像を撮像部２１から第０画像ＸＰ１として取得する（ステップＳ１３０）。次に、ロボット制御部４７は、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を待機位置姿勢Ｘ２と一致させる（ステップＳ１４０）。具体的には、ロボット制御部４７は、待機位置姿勢Ｘ１からロボット座標系ＲＣにおけるＸ軸方向に予め決められた量だけ並進させた位置及び姿勢である待機位置姿勢Ｘ２と、制御点Ｔの位置及び姿勢とを一致させる。当該量は、撮像部２１が撮像可能な範囲から第１マーカーＭＫが外れない量であれば如何なる量であってもよい。そして、ロボット制御部４７は、待機位置姿勢Ｘ２を示す待機位置姿勢情報Ｘ２Ｄを記憶部３２に記憶させる。
【００５５】
次に、撮像制御部４１は、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる（ステップＳ１５０）。次に、画像取得部４３は、ステップＳ１５０において撮像部２１が撮像した撮像画像を撮像部２１から第０画像ＸＰ２−１として取得する（ステップＳ１６０）。
【００５６】
次に、ロボット制御部４７は、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を待機位置姿勢Ｘ１に戻す。そして、ロボット制御部４７は、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を待機位置姿勢Ｘ３と一致させる（ステップＳ１６３）。具体的には、ロボット制御部４７は、待機位置姿勢Ｘ１からロボット座標系ＲＣにおけるＹ軸方向に予め決められた量だけ並進させた位置及び姿勢である待機位置姿勢Ｘ３と、制御点Ｔの位置及び姿勢とを一致させる。当該量は、撮像部２１が撮像可能な範囲から第１マーカーＭＫが外れない量であれば如何なる量であってもよい。そして、ロボット制御部４７は、待機位置姿勢Ｘ３を示す待機位置姿勢情報Ｘ３Ｄを記憶部３２に記憶させる。なお、ステップＳ１６３において、ロボット制御部４７は、制御点Ｔの位置及び姿勢を待機位置姿勢Ｘ１に戻さずに、制御点Ｔの位置及び姿勢を待機位置姿勢Ｘ３と一致させる構成であってもよい。
【００５７】
次に、撮像制御部４１は、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる（ステップＳ１６５）。次に、画像取得部４３は、ステップＳ１６５において撮像部２１が撮像した撮像画像を撮像部２１から第０画像ＸＰ２−２として取得する（ステップＳ１６７）。
【００５８】
次に、位置姿勢算出部４５は、ステップＳ１３０において画像取得部４３が取得した第０画像ＸＰ１と、ステップＳ１６０において画像取得部４３が取得した第０画像ＸＰ２−１と、ステップＳ１６７において画像取得部４３が取得した第０画像ＸＰ２−２とに基づいて第１位置姿勢を算出する（ステップＳ１７０）。ここで、ステップＳ１７０の処理について説明する。
【００５９】
位置姿勢算出部４５は、第０画像ＸＰ１に基づいて、第０画像ＸＰ１に含まれる第１マーカーＭＫを検出する。位置姿勢算出部４５は、第０画像ＸＰ１から検出した第１マーカーＭＫの撮像部座標系ＣＣにおける位置である第１検出位置を算出する。また、位置姿勢算出部４５は、第０画像ＸＰ２−１に基づいて、第０画像ＸＰ２−１に含まれる第１マーカーＭＫを検出する。位置姿勢算出部４５は、第０画像ＸＰ２−１から検出した第１マーカーＭＫの撮像部座標系ＣＣにおける位置である第２検出位置を算出する。また、位置姿勢算出部４５は、第０画像ＸＰ２−２に基づいて、第０画像ＸＰ２−２に含まれる第１マーカーＭＫを検出する。位置姿勢算出部４５は、第０画像ＸＰ２−２から検出した第１マーカーＭＫの撮像部座標系ＣＣにおける位置である第３検出位置を算出する。
【００６０】
位置姿勢算出部４５は、算出した第１検出位置及び第２検出位置に基づいて、第１検出位置から第２検出位置までの変位を第１変位として算出する。また、位置姿勢算出部４５は、記憶部３２から待機位置姿勢情報Ｘ１Ｄ及び待機位置姿勢情報Ｘ２Ｄを読み出す。位置姿勢算出部４５は、読み出した待機位置姿勢情報Ｘ１Ｄが示す待機位置姿勢Ｘ１から、読み出した待機位置姿勢情報Ｘ２Ｄが示す待機位置姿勢Ｘ２までの変位を第２変位として算出する。
【００６１】
また、位置姿勢算出部４５は、算出した第１検出位置及び第３検出位置に基づいて、第１検出位置から第３検出位置までの変位を第３変位として算出する。また、位置姿勢算出部４５は、記憶部３２から待機位置姿勢情報Ｘ１Ｄ及び待機位置姿勢情報Ｘ３Ｄを読み出す。位置姿勢算出部４５は、読み出した待機位置姿勢情報Ｘ１Ｄが示す待機位置姿勢Ｘ１から、読み出した待機位置姿勢情報Ｘ３Ｄが示す待機位置姿勢Ｘ３までの変位を第４変位として算出する。
【００６２】
位置姿勢算出部４５は、算出した第１変位、第２変位、第３変位、第４変位に基づいて、撮像部座標系ＣＣにおける第１マーカーＭＫの変位をロボット座標系ＲＣにおける第１マーカーＭＫの変位に変換する座標変換行列を算出する。
【００６３】
また、位置姿勢算出部４５は、第０画像ＸＰ１に基づいて、第０画像ＸＰ１に含まれる第１マーカーＭＫの位置から第０画像ＸＰ１における一致点までの変位を算出する。位置姿勢算出部４５は、算出した座標変換行列に基づいて、算出した当該変位をロボット座標系ＲＣにおける変位に変換する。そして、位置姿勢算出部４５は、変換した当該変位と、待機位置姿勢Ｘ１とに基づいて、待機位置姿勢Ｘ１を当該変位分だけ並進させた第１位置姿勢を算出する。すなわち、当該第１位置姿勢は、ロボット座標系ＲＣにおける位置及び姿勢である。制御点Ｔの位置及び姿勢が第１位置姿勢と一致している場合、撮像部２１により撮像される撮像画像に含まれる第１マーカーＭＫの位置は、当該撮像画像における一致点と一致している。なお、位置姿勢算出部４５は、第０画像ＸＰ２−１と第０画像ＸＰ２−２との少なくとも一方に基づいて、当該少なくとも一方に含まれる第１マーカーＭＫの位置から当該少なくとも一方における一致点までの変位を算出する構成であってもよい。この場合、位置姿勢算出部４５は、算出した座標変換行列に基づいて、算出した当該変位をロボット座標系ＲＣにおける変位に変換する。そして、位置姿勢算出部４５は、変換した当該変位と、待機位置姿勢Ｘ２とに基づいて、ロボット座標系ＲＣにおける第１位置姿勢を算出する。
【００６４】
ステップＳ１７０の処理が行われた後、ロボット制御部４７は、制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を、ステップＳ１７０において算出された第１位置姿勢と一致させる（ステップＳ１８０）。ここで、図５を参照し、ステップＳ１８０の処理について説明する。
【００６５】
図５は、制御点Ｔの位置及び姿勢と第１位置姿勢とが一致した状態における撮像部２１により撮像される範囲と制御点Ｔの位置との位置関係の一例を模式的に表す図である。図５に示した丸印ＶＴは、制御点Ｔのロボット座標系ＲＣにおける位置を仮想的に表す印である。また、枠ＷＤ１は、ロボット座標系ＲＣにおいて撮像部２１により撮像される範囲を表す枠である。このため、枠ＷＤ１の内部には、第１マーカーＭＫが含まれている。また、丸印ＣＴは、枠ＷＤ１が表す範囲が撮像部２１により撮像された撮像画像における一致点と制御点Ｔとが一致した場合における制御点Ｔの位置であってロボット座標系ＲＣにおける位置を表す印である。ステップＳ１８０においてロボット制御部４７が制御点Ｔの位置及び姿勢を第１位置姿勢と一致させた場合、図５に示した通り、枠ＷＤ１内において丸印ＣＴと第１マーカーＭＫの位置とが一致する。ここで、直線ＬＮは、丸印ＣＴと丸印ＶＴとを通る直線であり、当該一致点のロボット座標系ＲＣにおける位置と、制御点Ｔのロボット座標系ＲＣにおける位置との相対的な位置関係を明確にするための補助線である。
【００６６】
ステップＳ１８０の処理が行われた後、撮像制御部４１は、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる（ステップＳ１９０）。次に、画像取得部４３は、ステップＳ１９０において撮像部２１が撮像した撮像画像を撮像部２１から第１画像として取得する（ステップＳ２００）。次に、位置姿勢算出部４５は、ステップＳ２００において取得された第１画像に基づいて、第１マーカーＭＫを検出する。位置姿勢算出部４５は、検出した第１マーカーＭＫの撮像部座標系ＣＣにおける位置を算出する。位置姿勢算出部４５は、算出した当該位置と、第１画像における一致点とが一致しているか否かを判定することにより、現在の制御点Ｔの位置及び姿勢が第１位置姿勢と一致しているか否かを判定する（ステップＳ２１０）。これは、前述の座標変換行列の誤差や、ロボット２０の剛性に起因する誤差等によって、第１マーカーＭＫの撮像部座標系ＣＣにおける位置と第１画像における一致点とが一致しない場合があるために行われる。位置姿勢算出部４５は、第１画像に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第１画像における一致点とが一致していないと判定した場合、現在の制御点Ｔの位置及び姿勢が第１位置姿勢と一致していないと判定する。一方、位置姿勢算出部４５は、第１画像に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第１画像における一致点とが一致していると判定した場合、現在の制御点Ｔの位置及び姿勢が第１位置姿勢と一致していると判定する。
【００６７】
ステップＳ２１０において現在の制御点Ｔの位置及び姿勢が第１位置姿勢と一致していない（すなわち、第１画像に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第１画像における一致点とが一致していない）と判定した場合（ステップＳ２１０−ＮＯ）、位置姿勢算出部４５は、ステップＳ１７０に遷移し、ステップＳ２００において取得した第１画像に基づいて、第１画像に含まれる第１マーカーＭＫの位置から第１画像における一致点までの変位を算出する。そして、位置姿勢算出部４５は、算出した当該変位と、前述の座標変換行列と、現在の制御点Ｔの位置及び姿勢とに基づいて第１位置姿勢を算出する。すなわち、ロボット制御装置３０は、当該場合、ステップＳ１７０〜ステップＳ２１０の処理を繰り返すことにより、制御点Ｔの位置及び姿勢を第１位置姿勢と精度よく一致させることができる。一方、現在の制御点Ｔの位置及び姿勢が第１位置姿勢と一致している（すなわち、第１画像に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第１画像における一致点とが一致している）と位置姿勢算出部４５が判定した場合（ステップＳ２１０−ＹＥＳ）、ロボット制御部４７は、制御点Ｔの姿勢をロボット座標系ＲＣにおけるＺ軸周りに所定角度θ回動させる（ステップＳ２２０）。所定角度θは、例えば、１０°である。なお、所定角度θは、これに代えて、枠ＷＤ１の内部から第１マーカーＭＫが外に出ない角度範囲において、１０°より小さい角度であってもよく、１０°より大きい角度であってもよい。ここで、図６を参照し、ステップＳ２２０の処理について説明する。
【００６８】
図６は、図５に示した状態から制御点Ｔの姿勢を所定角度θ回動させた状態における撮像部２１により撮像される範囲と制御点Ｔの位置との位置関係の一例を模式的に表す図である。図６に示した直線ＬＮ２は、当該状態における丸印ＣＴと丸印ＶＴとを通る直線であり、枠ＷＤ１が表す範囲が撮像部２１により撮像された撮像画像における一致点のロボット座標系ＲＣにおける位置と、制御点Ｔのロボット座標系ＲＣにおける位置との相対的な位置関係を明確にするための補助線である。当該状態において、図６に示した枠ＷＤ１は、図５に示した枠ＷＤ１を、丸印ＶＴを通る軸であってロボット座標系ＲＣにおけるＺ軸に沿った軸を回動軸として矢印Ａ１が示す方向に所定角度θ回動した場合における枠である。当該状態において、当該一致点は、図６に示した通り、第１マーカーＭＫの位置と一致しなくなっている。
【００６９】
ステップＳ２２０の処理が行われた後、撮像制御部４１は、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる（ステップＳ２３０）。次に、画像取得部４３は、撮像部２１が撮像した撮像画像を撮像部２１から第０画像ＸＰ３として取得する（ステップＳ２４０）。次に、位置姿勢算出部４５は、ステップＳ２４０において画像取得部４３が取得した第０画像ＸＰ３に基づいて第３位置姿勢を算出する（ステップＳ２４５）。ここで、ステップＳ２４５の処理について説明する。
【００７０】
位置姿勢算出部４５は、第０画像ＸＰ３に基づいて、第０画像ＸＰ３に含まれる第１マーカーＭＫを検出する。位置姿勢算出部４５は、第０画像ＸＰ３から検出した第１マーカーＭＫの撮像部座標系ＣＣにおける位置である第３検出位置を算出する。位置姿勢算出部４５は、第０画像ＸＰ３における一致点から、算出した第３検出位置までの撮像部座標系ＣＣにおける変位を算出する。位置姿勢算出部４５は、前述の座標変換行列に基づいて、算出した当該変位をロボット座標系ＲＣにおける変位に変換する。そして、位置姿勢算出部４５は、変換した当該変位と、現在の制御点Ｔの位置及び姿勢（すなわち、第１位置姿勢）とに基づいて、現在の制御点Ｔの位置及び姿勢を当該変位分だけ並進させた第３位置姿勢を算出する。第３位置姿勢は、ロボット座標系ＲＣにおける位置及び姿勢である。すなわち、制御点Ｔの位置及び姿勢が第３位置姿勢と一致した場合、撮像部２１により撮像された撮像画像に含まれる第１マーカーＭＫの位置は、当該撮像画像における一致点と一致する。
【００７１】
ステップＳ２４５の処理が行われた後、ロボット制御部４７は、ステップＳ２４５において算出された第３位置姿勢に基づいて制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を第３位置姿勢と一致させる（ステップＳ２５０）。ここで、図７を参照し、ステップＳ２５０の処理について説明する。
【００７２】
図７は、図６に示した状態からステップＳ２４５において算出された変位分だけ制御点Ｔの位置を並進させた状態における撮像部２１により撮像される範囲と制御点Ｔの位置との位置関係の一例を模式的に表す図である。図７に示した直線ＬＮ３は、当該状態における丸印ＣＴと丸印ＶＴとを通る直線であり、枠ＷＤ１が表す範囲が撮像部２１により撮像された撮像画像における一致点のロボット座標系ＲＣにおける位置と、制御点Ｔのロボット座標系ＲＣにおける位置との相対的な位置関係を明確にするための補助線である。当該状態において、図７に示した枠ＷＤ１は、図６に示した枠ＷＤ１を、ステップＳ２４５において算出された変位分だけ並進した場合における枠である。図７では、当該変位は、矢印Ａ２によって表している。この状態において、制御点Ｔの位置及び姿勢は、第３位置姿勢と一致している。すなわち、図７に示した枠ＷＤ１が表す範囲が撮像部２１により撮像された撮像画像における一致点は、当該撮像画像に含まれる第１マーカーＭＫの位置と一致している。
【００７３】
ステップＳ２５０の処理が行われた後、撮像制御部４１は、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる（ステップＳ２５３）。次に、画像取得部４３は、ステップＳ２５３において撮像部２１が撮像した撮像画像を撮像部２１から第０画像ＸＰ４として取得する（ステップＳ２５７）。次に、位置姿勢算出部４５は、ステップＳ２５７において取得された第０画像ＸＰ４に基づいて、第１マーカーＭＫを検出する。位置姿勢算出部４５は、検出した第１マーカーＭＫの撮像部座標系ＣＣにおける位置を算出する。位置姿勢算出部４５は、算出した当該位置と、第０画像ＸＰ４における一致点とが一致しているか否かを判定することにより、現在の制御点Ｔの位置及び姿勢が第３位置姿勢と一致しているか否かを判定する（ステップＳ２６０）。これは、前述の座標変換行列の誤差や、ロボット２０の剛性に起因する誤差等によって、第１マーカーＭＫの撮像部座標系ＣＣにおける位置と第０画像ＸＰ４における一致点とが一致しない場合があるために行われる。位置姿勢算出部４５は、第０画像ＸＰ４に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第０画像ＸＰ４における一致点とが一致していないと判定した場合、現在の制御点Ｔの位置及び姿勢が第３位置姿勢と一致していないと判定する。一方、位置姿勢算出部４５は、第０画像ＸＰ４に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第０画像ＸＰ４における一致点とが一致していると判定した場合、現在の制御点Ｔの位置及び姿勢が第３位置姿勢と一致していると判定する。
【００７４】
ステップＳ２６０において現在の制御点Ｔの位置及び姿勢が第３位置姿勢と一致していない（すなわち、第０画像ＸＰ４に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第０画像ＸＰ４における一致点とが一致していない）と判定した場合（ステップＳ２６０−ＮＯ）、位置姿勢算出部４５は、ステップＳ２４５に遷移し、ステップＳ２５７において取得した第０画像ＸＰ４に基づいて、第０画像ＸＰ４に含まれる第１マーカーＭＫの位置から第０画像ＸＰ４における一致点までの変位を算出する。そして、位置姿勢算出部４５は、算出した当該変位と、前述の座標変換行列と、現在の制御点Ｔの位置及び姿勢とに基づいて第３位置姿勢を算出する。すなわち、ロボット制御装置３０は、当該場合、ステップＳ２４５〜ステップＳ２６０の処理を繰り返すことにより、制御点Ｔの位置及び姿勢を第３位置姿勢と精度よく一致させることができる。一方、現在の制御点Ｔの位置及び姿勢が第３位置姿勢と一致している（すなわち、第０画像ＸＰ４に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第０画像ＸＰ４における一致点とが一致している）と判定した場合（ステップＳ２６０−ＹＥＳ）、位置姿勢算出部４５は、第１位置姿勢と、第３位置姿勢と、所定角度θとに基づいて、回動中心の位置を算出する（ステップＳ２７０）。回動中心の位置は、ステップＳ２８０においてロボット制御部４７が制御点Ｔの位置及び姿勢を第２位置姿勢と一致させる際に制御点Ｔを回動させる中心の位置のことである。当該位置は、ロボット座標系ＲＣにおける位置である。ここで、ステップＳ２７０の処理について説明する。
【００７５】
ここで、説明の便宜上、制御点Ｔの位置及び姿勢が第１位置姿勢と一致している状態を第１状態と称し、制御点Ｔの位置及び姿勢が第３位置姿勢と一致している状態を第３状態と称して説明する。第１状態と第３状態とを比較すると、第３状態は、第１マーカーＭＫの位置を通る仮想的な軸であってロボット座標系ＲＣにおけるＺ軸と平行な回動軸を中心として第１状態における制御点Ｔを所定角度θ回動した状態と同じ状態である。また、この回動における半径ｒは、第１マーカーＭＫのロボット座標系ＲＣにおける位置と制御点Ｔのロボット座標系ＲＣにおける位置との間の距離である。これを利用し、位置姿勢算出部４５は、第１位置姿勢における制御点Ｔのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標を、第１マーカーＭＫのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標と、当該半径ｒと、所定角度θとによって表す第１方程式を導出する。また、位置姿勢算出部４５は、第３位置姿勢における制御点Ｔのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標を、第１マーカーＭＫのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標と、当該半径ｒと、所定角度θとによって表す第３方程式を導出する。位置姿勢算出部４５は、導出した第１方程式及び第３方程式による連立方程式を解き、第１マーカーＭＫのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標を、前述の回動中心の位置として算出する。
【００７６】
ステップＳ２７０の処理が行われた後、位置姿勢算出部４５は、ステップＳ２７０において算出した回動中心の位置と、第１位置姿勢とに基づいて、第２位置姿勢を算出する（ステップＳ２７５）。第２位置姿勢は、前述の第１状態から制御点Ｔの位置及び姿勢を、当該回動中心の位置を通る軸であってロボット座標系ＲＣにおけるＺ軸に沿った軸を回動軸として反時計回り（又は時計回り）に第３所定角度回動させた状態である。ここで、当該反時計回りは、当該Ｚ軸の正方向から当該Ｚ軸の負方向に向かって見た場合の反時計回りのことである。第３所定角度は、この一例において、１８０°である。なお、第３所定角度は、これに代えて、１８０°より小さい角度であってもよく、１８０°より大きい角度であってもよい。ここで、ステップＳ２７５の処理について説明する。
【００７７】
位置姿勢算出部４５は、ステップＳ２７０において算出した回動中心の位置と、第１位置姿勢とに基づいて、第１位置姿勢から回動中心の位置までの距離を算出する。位置姿勢算出部４５は、算出した当該距離を半径とし、回動中心の位置を通る軸であってロボット座標系ＲＣにおけるＺ軸に沿った軸を回動軸として、制御点Ｔを反時計回り（又は時計回り）に第３所定角度回動させた状態における制御点Ｔの位置及び姿勢を第２位置姿勢として算出する。ここで、当該反時計回りは、当該Ｚ軸の正方向から当該Ｚ軸の負方向に向かって見た場合の反時計回りのことである。
【００７８】
ステップＳ２７５の処理が行われた後、ロボット制御部４７は、ステップＳ２７５において算出された第２位置姿勢に基づいて制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を第２位置姿勢と一致させる（ステップＳ２８０）。ここで、図８を参照し、ステップＳ２８０の処理について説明する。
【００７９】
図８は、図７に示した状態からステップＳ２７５において算出された第２位置姿勢と制御点Ｔの位置及び姿勢とを一致させた状態における撮像部２１により撮像される範囲と制御点Ｔの位置との位置関係の一例を模式的に表す図である。当該状態において、図８に示した枠ＷＤ１は、図５に示した枠ＷＤ１を、枠ＷＤ１が表す範囲が撮像部２１により撮像された撮像画像における一致点を通る軸であってロボット座標系ＲＣにおけるＺ軸に沿った軸を回動軸として前述の反時計回りに１８０°回動した場合における枠である。この状態において、制御点Ｔの位置及び姿勢は、第２位置姿勢と一致している。すなわち、図８に示した枠ＷＤ１が表す範囲が撮像部２１により撮像された撮像画像における一致点は、当該撮像画像に含まれる第１マーカーＭＫの位置と一致している。
【００８０】
ステップＳ２８０の処理が行われた後、撮像制御部４１は、撮像部２１が撮像可能な範囲を撮像部２１に撮像させる（ステップＳ２９０）。次に、画像取得部４３は、ステップＳ２９０において撮像部２１が撮像した撮像画像を撮像部２１から第２画像として取得する（ステップＳ３００）。次に、位置姿勢算出部４５は、ステップＳ３００において取得された第２画像に基づいて、第１マーカーＭＫを検出する。位置姿勢算出部４５は、算出した当該位置と、第２画像における一致点とが一致しているか否かを判定することにより、現在の制御点Ｔの位置及び姿勢が第２位置姿勢と一致しているか否かを判定する（ステップＳ３１０）。これは、前述の座標変換行列の誤差や、ロボット２０の剛性に起因する誤差等によって、第１マーカーＭＫの撮像部座標系ＣＣにおける位置と第２画像における一致点とが一致しない場合があるために行われる。位置姿勢算出部４５は、第２画像に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第２画像における一致点とが一致していないと判定した場合、現在の制御点Ｔの位置及び姿勢が第２位置姿勢と一致していないと判定する。一方、位置姿勢算出部４５は、第２画像に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第２画像における一致点とが一致していると判定した場合、現在の制御点Ｔの位置及び姿勢が第２位置姿勢と一致していると判定する。
【００８１】
ステップＳ３１０において現在の制御点Ｔの位置及び姿勢が第２位置姿勢と一致していない（すなわち、第２画像に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第２画像における一致点とが一致していない）と判定した場合（ステップＳ３１０−ＮＯ）、位置姿勢算出部４５は、ステップＳ２７５に遷移し、ステップＳ３００において取得した第２画像に基づいて、第２画像に含まれる第１マーカーＭＫの位置から第２画像における一致点までの変位を算出する。そして、位置姿勢算出部４５は、算出した当該変位と、前述の座標変換行列と、現在の制御点Ｔの位置及び姿勢とに基づいて第２位置姿勢を算出する。すなわち、ロボット制御装置３０は、当該場合、ステップＳ２７５〜ステップＳ３１０の処理を繰り返すことにより、制御点Ｔの位置及び姿勢を第２位置姿勢と精度よく一致させることができる。一方、現在の制御点Ｔの位置及び姿勢が第２位置姿勢と一致している（すなわち、第２画像に含まれる第１マーカーＭＫの撮像部座標系ＣＣにおける位置と、第２画像における一致点とが一致している）と判定した場合（ステップＳ３１０−ＹＥＳ）、位置姿勢算出部４５は、第１位置姿勢と第２位置姿勢とに基づいて、第１マーカーＭＫのロボット座標系ＲＣにおける位置を算出する（ステップＳ３２０）。ここで、図９〜図１１を参照し、ステップＳ３２０の処理について説明する。
【００８２】
図９は、第１位置姿勢及び第２位置姿勢のそれぞれにおける制御点Ｔの位置と、第１マーカーＭＫの位置との位置関係の一例を示す図である。図９に示した丸印ＶＴ１は、制御点Ｔの位置及び姿勢が第１位置姿勢と一致している場合の制御点Ｔの位置を仮想的に表している。また、丸印ＶＴ２は、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合の制御点Ｔの位置を仮想的に表している。以下では、一例として、第１位置姿勢と一致している場合の制御点Ｔの位置と、第２位置姿勢と一致している場合の制御点Ｔの位置とを結ぶ直線がロボット座標系ＲＣにおけるＸ軸に平行であり、ロボット座標系ＲＣにおけるＹ軸に直交する場合について説明する。なお、当該直線は、当該Ｘ軸に平行である必要はなく、当該Ｙ軸に直交する必要もない。しかし、当該直線は、ロボット座標系ＲＣにおけるＸＹ平面に対して平行である。これは、この一例では、ロボット制御部４７が制御点Ｔを移動させる際、制御点Ｔと作業台ＴＢの上面との間の距離であってロボット座標系ＲＣにおけるＺ軸に沿った方向の距離を変化させないためである。ここで、ロボット制御部４７は、第１位置姿勢における制御点Ｔの当該Ｚ軸方向の位置と、第２位置姿勢における制御点Ｔの当該Ｚ軸方向の位置とが同じであれば、制御点Ｔの位置及び姿勢が第１位置姿勢から第２位置姿勢まで変化する間に制御点Ｔの当該Ｚ軸方向における位置を変化させる構成であってもよい。
【００８３】
また、図９に示した撮像部Ｖ１１は、制御点Ｔの位置及び姿勢が第１位置姿勢と一致している場合における撮像部２１の位置を表している。そして、直線ＡＸ１は、当該撮像部２１の光軸を表している。この一例では、図９に示した通り、直線ＡＸ１は、作業台ＴＢの上面に対して角度θ１だけ傾いている。また、直線ＡＸ１は、第１マーカーＭＫの位置を通る直線である。すなわち、この一例における直線ＡＸ１は、第１マーカーＭＫの図心を通る直線である。
【００８４】
また、図９に示した撮像部Ｖ１２は、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合における撮像部２１の位置を表している。そして、直線ＡＸ２は、当該撮像部２１の光軸を表している。この一例では、図９に示した通り、直線ＡＸ２は、作業台ＴＢの上面に対して角度θ１だけ傾いている。また、直線ＡＸ２は、直線ＡＸ１と非平行である。これは、第２位置姿勢が、ロボット座標系ＲＣにおけるＸＹ平面上において第１マーカーＭＫの位置を通る軸であってロボット座標系ＲＣにおけるＺ軸に平行な軸を回動軸として第１位置姿勢を回動させた位置及び姿勢であるためである。また、これは、この一例において、制御点Ｔの位置と撮像部２１の位置との相対的な位置関係が変化しない、つまり第１位置姿勢と第２位置姿勢とで、撮像部２１と制御点Ｔとの距離が同じであるためである。これらのため、直線ＡＸ２は、第１マーカーＭＫの位置を通る直線である。すなわち、この一例における直線ＡＸ２は、第１マーカーＭＫの図心を通る直線である。また、これらのため、撮像部２１と第１マーカーＭＫとの距離は、第１位置姿勢と第２位置姿勢とで、同じになる。
【００８５】
前述した通り、第２位置姿勢は、ロボット座標系ＲＣにおけるＸＹ平面上において第１マーカーＭＫの位置を通る軸であってロボット座標系ＲＣにおけるＺ軸に平行な軸を回動軸として第１位置姿勢を回動させた位置及び姿勢である。これはすなわち、丸印ＶＴ１の位置を作業台ＴＢの上面に射影した位置と第１マーカーＭＫの位置との間の距離Ｌ１と、丸印ＶＴ２の位置を作業台ＴＢの上面に射影した位置と第１マーカーＭＫの位置との間の距離Ｌ２とが等しいことを示している。すなわち、第１マーカーＭＫのロボット座標系ＲＣにおけるＸＹ平面上の位置は、図１０に示したように丸印ＶＴ１の当該ＸＹ平面上の位置と、丸印ＶＴ２の当該ＸＹ平面上の位置との中点の位置である。図１０は、図９に示した位置関係を、ロボット座標系ＲＣにおけるＺ軸の正方向から当該Ｚ軸の負方向に向かって見た場合の一例を示す図である。図１０において、丸印Ｐ１は、当該中点の位置であって第１マーカーＭＫの位置を表している。
【００８６】
図９及び図１０に示した位置関係を利用し、位置姿勢算出部４５は、第１位置姿勢と第２位置姿勢とに基づいて、制御点Ｔの位置及び姿勢が第１位置姿勢と一致している場合における制御点Ｔの位置と、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合における制御点Ｔの位置との中点の位置を第１マーカーＭＫの位置として算出する。
【００８７】
なお、制御点Ｔの位置及び姿勢が第１位置姿勢と一致している場合における撮像部２１の光軸は、図１１に示したように作業台ＴＢの上面に直交する構成であってもよい。この場合、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合における撮像部２１の光軸も、作業台ＴＢの上面に直交する。この場合、直線ＡＸ２は、直線ＡＸ１と平行である。図１１は、第１位置姿勢及び第２位置姿勢のそれぞれにおける制御点Ｔの位置と、第１マーカーＭＫの位置との位置関係の他の例を示す図である。図１１に示した例では、直線ＡＸ１及び直線ＡＸ２は、作業台ＴＢの上面と直交している。
【００８８】
ステップＳ３２０の処理が行われた後、ロボット制御部４７は、ステップＳ３２０において算出された第１マーカーＭＫの位置に基づいてロボット２０に所定の作業を行わせ（ステップＳ３３０）、処理を終了する。
このようにして、ロボット制御装置３０は、ロボット２０が備えるアームＡに設けられた撮像部２１により第１マーカーＭＫを含む第１画像が撮像された時の制御点Ｔの第１位置姿勢と、撮像部２１により第１マーカーＭＫを含む第２画像が撮像された時の制御点Ｔの第２位置姿勢とを用いて求められた第１マーカーＭＫの位置に基づく動作をロボット２０に行わせる。これにより、ロボット制御装置３０は、オペレーターによってアームＡを操作されることなく、第１マーカーＭＫの位置に基づく動作を含む作業をロボット２０に精度よく行わせることができる。
【００８９】
なお、ステップＳ３２０において、位置姿勢算出部４５は、第１位置姿勢と第２位置姿勢とに基づく連立方程式によって第１マーカーＭＫの位置を算出する構成であってもよい。具体的には、位置姿勢算出部４５は、第１位置姿勢における制御点Ｔのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標を、第１マーカーＭＫのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標と、当該半径ｒと、所定角度θとによって表す第１方程式を導出する。また、位置姿勢算出部４５は、第２位置姿勢における制御点Ｔのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標を、第１マーカーＭＫのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標と、当該半径ｒと、所定角度θとによって表す第２方程式を導出する。位置姿勢算出部４５は、導出した第１方程式及び第２方程式による連立方程式を解き、第１マーカーＭＫのロボット座標系ＲＣにおける位置を表すＸ座標及びＹ座標を、前述の回動中心の位置として算出する。ただし、この方法よりも、ステップＳ３２０の処理による算出方法の方がロボット制御装置３０の計算量が少なくて済むため、ロボット制御装置３０は、ステップＳ３２０の処理を行うことが望ましい。
【００９０】
また、第１画像に含まれる第１マーカーＭＫの位置が第１画像における一致点と一致している場合の第１画像に含まれる第１マーカーＭＫの位置は、第１画像における第１マーカーの位置の一例である。また、第２画像に含まれる第１マーカーＭＫの位置が第２画像における一致点と一致している場合の第２画像に含まれる第１マーカーＭＫの位置は、第２画像における第１マーカーの位置の一例であり、第１画像における第１マーカーの位置に対応する位置の一例である。
【００９１】
＜ロボット制御装置による第１マーカーの位置の検出精度＞
以下、図１２〜図１４を参照し、ロボット制御装置３０による第１マーカーＭＫの位置の検出（算出）精度について説明する。
【００９２】
図４に示したフローチャートの処理によってロボット制御装置３０が第１マーカーＭＫの位置を複数回検出（算出）した場合、検出する毎に当該位置は、検出誤差によってばらつく。このような検出誤差による当該位置のばらつきの度合いは、制御点Ｔの位置及び姿勢が第１位置姿勢と一致している場合における制御点Ｔの位置と第１マーカーＭＫのロボット座標系ＲＣにおける位置とを結ぶ直線と、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合における制御点Ｔの位置と第１マーカーＭＫのロボット座標系ＲＣにおける位置とを結ぶ直線との間の角度φに応じて変化する。具体的には、当該度合いは、角度φが０°＜φ≦１８０°の範囲において大きいほど小さくなる。当該度合いは、例えば、図４に示したフローチャートの処理によってロボット制御装置３０が第１マーカーＭＫの位置を複数回検出（算出）した場合の、当該位置のそれぞれをプロットしたグラフ上の誤差棒の長さによって表すことができる。
【００９３】
図１２は、第１マーカーＭＫのロボット座標系ＲＣにおけるＸ軸方向の位置の検出誤差を例示するグラフである。図１２に示したグラフの横軸は、角度φを示す。また、当該グラフの縦軸は、ロボット座標系ＲＣにおけるＸ軸方向の位置を示す。そして、当該グラフには、２°、５°、７°、２０°、３０°、４５°、９０°、１８０°のそれぞれの角度を角度φとして選択した場合における第１マーカーＭＫのロボット座標系ＲＣにおけるＸ軸方向の位置が誤差棒とともにプロットされている。図１２に示したように、当該誤差棒は、角度φが大きくなるほど小さくなる。
【００９４】
図１３は、第１マーカーＭＫのロボット座標系ＲＣにおけるＹ軸方向の位置の検出誤差を例示するグラフである。図１３に示したグラフの横軸は、角度φを示す。また、当該グラフの縦軸は、ロボット座標系ＲＣにおけるＹ軸方向の位置を示す。そして、当該グラフには、２°、５°、７°、２０°、３０°、４５°、９０°、１８０°のそれぞれの角度を角度φとして選択した場合における第１マーカーＭＫのロボット座標系ＲＣにおけるＹ軸方向の位置が誤差棒とともにプロットされている。図１３に示したように、当該誤差棒は、角度φが大きくなるほど小さくなる。
【００９５】
図１４は、ロボット座標系ＲＣにおけるＸＹ平面上におけるばらつきであって角度φのそれぞれ毎に図４に示したフローチャートの処理によって検出された第１マーカーＭＫの位置のばらつきを表すグラフである。当該グラフの横軸はロボット座標系ＲＣにおけるＸ軸方向の位置を示す。当該グラフの縦軸はロボット座標系ＲＣにおけるＹ軸方向の位置を示す。図１４に示した通り、第１マーカーＭＫのロボット座標系ＲＣにおけるＸＹ平面上のばらつきであって角度φのそれぞれ毎に図４に示したフローチャートの処理によって検出された第１マーカーＭＫの位置のばらつきは、角度φが大きくなるほど小さくなる。
【００９６】
＜実施形態の変形例１＞
以下、図１５を参照し、実施形態の変形例１について説明する。
【００９７】
ロボット制御装置３０は、図４に示したステップＳ３２０において第１マーカーＭＫの位置を算出した後、現在の制御点Ｔの位置（すなわち、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合における制御点Ｔの位置）と、第１マーカーＭＫの位置との相対的な位置を示す相対位置情報を記憶部３２に記憶する構成であってもよい。この場合、ロボット制御装置３０は、当該相対位置情報に基づいて、第１マーカーＭＫと異なる位置に設けられた他のマーカーであって作業台ＴＢの上面に設けられたマーカーである第２マーカーＭＫ２の位置を検出（算出）することができる。
【００９８】
具体的には、図１５に示すように、ロボット制御装置３０は、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している状態から制御点Ｔの姿勢を保持したまま制御点Ｔの位置を移動させ、制御点Ｔの位置及び姿勢を第４位置姿勢と一致させる。図１５は、第１位置姿勢及び第４位置姿勢のそれぞれにおける制御点Ｔの位置と、第１マーカーＭＫの位置との位置関係の一例を示す図である。図１５に示した丸印ＶＴ１０は、制御点Ｔの位置及び姿勢が第４位置姿勢と一致している場合の制御点Ｔの位置を仮想的に表している。また、図１５に示した撮像部Ｖ１１０は、制御点Ｔの位置及び姿勢が第４位置姿勢と一致している場合における撮像部２１の位置を表している。そして、直線ＡＸ１０は、当該撮像部２１の光軸を表している。以下では、一例として、第１位置姿勢と一致している場合の制御点Ｔの位置と、第４位置姿勢と一致している場合の制御点Ｔの位置とを結ぶ直線がロボット座標系ＲＣにおけるＸ軸に平行であり、ロボット座標系ＲＣにおけるＹ軸に直交する場合について説明する。すなわち、第１位置姿勢と第４位置姿勢とで、第１マーカーＭＫと第２マーカーＭＫ２とを含む平面（この一例において、作業台ＴＢの上面）と制御点Ｔとの距離が同じである。なお、当該直線は、当該Ｘ軸に平行である必要はなく、当該Ｙ軸に直交する必要もない。しかし、当該直線は、ロボット座標系ＲＣにおけるＸＹ平面に対して平行である。これは、この一例では、ロボット制御部４７が制御点Ｔを移動させる際、制御点Ｔと作業台ＴＢの上面との間の距離であってロボット座標系ＲＣにおけるＺ軸に沿った方向の距離を変化させないためである。ここで、ロボット制御部４７は、第１位置姿勢における制御点Ｔの当該Ｚ軸方向の位置と、第４位置姿勢における制御点Ｔの当該Ｚ軸方向の位置とが同じであれば、制御点Ｔの位置及び姿勢が第１位置姿勢から第４位置姿勢まで変化する間に制御点Ｔの当該Ｚ軸方向における位置を変化させる構成であってもよい。
【００９９】
第４位置姿勢は、第１位置姿勢と異なる位置及び姿勢であって、撮像部２１により撮像画像を撮像した場合に当該撮像画像に含まれる第２マーカーＭＫ２と当該撮像画像上における一致点とが一致する位置及び姿勢である。また、制御点Ｔの位置及び姿勢が第４位置姿勢と一致している場合の制御点Ｔのロボット座標系ＲＣにおけるＺ軸方向の位置は、制御点Ｔの位置及び姿勢が第１位置姿勢と一致している場合の制御点Ｔのロボット座標系ＲＣにおけるＺ軸方向の位置と同じである。
【０１００】
例えば、ロボット制御装置３０は、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合における制御点Ｔの位置から、当該場合における制御点Ｔの姿勢を保持したまま、記憶部３２に予め記憶された位置へと制御点Ｔを移動させる。当該位置は、撮像部２１が撮像可能な範囲に第２マーカーＭＫ２が含まれる位置である。そして、ロボット制御装置３０は、撮像部２１に撮像可能な範囲を撮像部２１に撮像させる。ロボット制御装置３０は、撮像部２１が撮像した撮像画像を撮像部２１から第４画像として取得する。ロボット制御装置３０は、取得した第４画像に基づいて、第４画像に含まれる第２マーカーＭＫ２の位置から第４画像における一致点までの変位を算出する。ロボット制御装置３０は、算出した当該変位と、前述の座標変換行列と、現在の制御点Ｔの位置及び姿勢とに基づいて第４位置姿勢を算出する。ここで、制御点Ｔの位置及び姿勢が第４位置姿勢と一致している場合における制御点Ｔの姿勢は、制御点Ｔの位置及び姿勢が第２位置姿勢と一致している場合における制御点Ｔの姿勢と同じ姿勢でなければならない。ロボット制御装置３０は、算出した第４位置姿勢に基づいて制御点Ｔを移動させ、制御点Ｔの位置及び姿勢を第４位置姿勢と一致させる。また、ロボット制御装置３０は、記憶部３２に記憶された相対位置情報を読み出す。ロボット制御装置３０は、読み出した相対位置情報と、第４位置姿勢とに基づいて、第２マーカーＭＫ２の位置を算出する。すなわち、ロボット制御装置３０は、２個以上のマーカーを検出する場合、このような方法により、図４に示したフローチャートの処理のうちの少なくとも一部を省略することができる。その結果、ロボット制御装置３０は、第２マーカーＭＫ２の位置の検出に要する時間を短縮することができる。
【０１０１】
＜実施形態の変形例２＞
以下、実施形態の変形例２について説明する。ロボット制御装置３０は、制御点Ｔの位置及び姿勢と、撮像部２１の撮像可能な範囲における一致点の位置及び姿勢との相対的な位置及び姿勢を示す情報を記憶部３２に予め記憶されている構成であってもよい。この場合、ロボット制御装置３０は、図４に示したステップＳ１８０の処理において制御点Ｔの位置及び姿勢を第１位置姿勢と一致させた後、第１位置姿勢と、記憶部３２に予め記憶された当該情報とに基づいて、第１マーカーＭＫの位置を算出する。これにより、ロボット制御装置３０は、第１マーカーＭＫの位置の検出に要する時間を短縮することができる。
【０１０２】
以上のように、ロボット２０は、では、可動部（この一例において、アームＡ）は、可動部に設けられた撮像部（この一例において、撮像部２１）により第１マーカー（この一例において、第１マーカーＭＫ）を含む第１画像が撮像された時の可動部の第１位置姿勢と、撮像部により第１マーカーを含む第２画像が撮像された時の可動部の第２位置姿勢とを用いて求められた第１マーカーの位置に基づいて動作を行う。これにより、ロボット２０は、オペレーターによって可動部を操作されることなく、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１０３】
また、ロボット２０では、可動部の第１位置姿勢と可動部の第２位置姿勢とで、撮像部と第１マーカーとの距離が同じである。これにより、ロボット２０は、撮像部と第１マーカーとの距離が同じである第１位置姿勢及び第２位置姿勢に基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１０４】
また、ロボット２０では、第１位置姿勢と第２位置姿勢とで、撮像部と可動部の制御点との距離が同じである。これにより、ロボット２０は、撮像部と可動部の制御点との距離が同じである第１位置姿勢及び第２位置姿勢に基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１０５】
また、ロボット２０では、可動部の位置姿勢は、第１位置姿勢から第３位置姿勢に変化した際に撮像部により撮像された第３画像を用いて求められた第２位置姿勢に変化する。これにより、ロボット２０は、第１位置姿勢と、第３画像を用いて求められた第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１０６】
また、ロボット２０では、第１位置姿勢と、第２画像における第１マーカーの位置が第２画像における位置のうち第１画像における第１マーカーの位置に対応する位置と一致する第２位置姿勢とを用いて求められた第１マーカーの位置に基づいて動作を行う。これにより、ロボット２０は、第１位置姿勢と、第２画像における第１マーカーの位置が第２画像における位置のうち第１画像における第１マーカーの位置に対応する位置と一致する第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１０７】
また、ロボット２０では、第１画像における第１マーカーの位置が第１画像における中心位置と一致する第１位置姿勢と、第２画像における第１マーカーの位置が第２画像における中心位置と一致する第２位置姿勢とを用いて求められた第１マーカーの位置に基づいて動作を行う。これにより、ロボット２０は、第１画像における第１マーカーの位置が第１画像における中心位置と一致する第１位置姿勢と、第２画像における第１マーカーの位置が第２画像における中心位置と一致する第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１０８】
また、ロボット２０では、第１位置姿勢で撮像部により第１画像を撮像する光軸（この一例において、直線ＡＸ１が表す光軸）と、第２位置姿勢で撮像部により第２画像を撮像する光軸（この一例において、直線ＡＸ２が表す光軸）とが、平行である。これにより、ロボット２０は、第１位置姿勢と、撮像部の光軸が第１位置姿勢で撮像部により第１画像を撮像する光軸と平行になる第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１０９】
また、ロボット２０では、第１位置姿勢で撮像部により第１画像を撮像する光軸と、第２位置姿勢で撮像部により第２画像を撮像する光軸とが、非平行である。これにより、ロボット２０は、第１位置姿勢と、撮像部の光軸が第１位置姿勢で撮像部により第１画像を撮像する光軸と非平行になる第２位置姿勢とに基づいて、第１マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１１０】
また、ロボット２０では、可動部は、第１マーカーの位置と、第１位置姿勢と、撮像部により第２マーカーを含む第４画像が撮像された時の可動部の第４位置姿勢とを用いて求められた第２マーカーの位置に基づいて動作を行う。これにより、ロボット２０は、第１マーカーの位置と、第１位置姿勢と、撮像部により第２マーカーを含む第４画像が撮像された時の可動部の第４位置姿勢とに基づいて、第２マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１１１】
また、ロボット２０では、第１位置姿勢と第４位置姿勢とで、第１マーカーと第２マーカーとを含む平面と可動部の制御点との距離が同じである。これにより、ロボット２０は、第１位置姿勢と、第１マーカーと第２マーカーとを含む平面と可動部の制御点との距離が同じである第４位置姿勢とに基づいて、第２マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
【０１１２】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【０１１３】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Operating  System）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Compact  Disk）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１１４】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１１５】
１…ロボットシステム、２０…ロボット、２１…撮像部、３０…ロボット制御装置、３１…ＣＰＵ、３２…記憶部、３３…入力受付部、３４…通信部、３５…表示部、３６…制御部、４１…撮像制御部、４３…画像取得部、４５…位置姿勢算出部、４７…ロボット制御部
【図１】
2018001321.tif 000003
【図２】
2018001321.tif 000004
【図３】
2018001321.tif 000005
【図４】
2018001321.tif 000006
【図５】
2018001321.tif 000007
【図６】
2018001321.tif 000008
【図７】
2018001321.tif 000009
【図８】
2018001321.tif 000010
【図９】
2018001321.tif 000011
【図１０】
2018001321.tif 000012
【図１１】
2018001321.tif 000013
【図１２】
2018001321.tif 000014
【図１３】
2018001321.tif 000015
【図１４】
2018001321.tif 000016
【図１５】
2018001321.tif 000017