JP2018001321A - ロボット、ロボット制御装置、及びロボットシステム - Google Patents
ロボット、ロボット制御装置、及びロボットシステム Download PDFInfo
- Publication number
- JP2018001321A JP2018001321A JP2016130233A JP2016130233A JP2018001321A JP 2018001321 A JP2018001321 A JP 2018001321A JP 2016130233 A JP2016130233 A JP 2016130233A JP 2016130233 A JP2016130233 A JP 2016130233A JP 2018001321 A JP2018001321 A JP 2018001321A
- Authority
- JP
- Japan
- Prior art keywords
- orientation
- robot
- marker
- image
- imaging unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Manipulator (AREA)
Abstract
【課題】オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができるロボットを提供すること。【解決手段】可動部を備え、前記可動部は、前記可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の前記可動部の第1位置姿勢と、前記撮像部により前記第1マーカーを含む第2画像が撮像された時の前記可動部の第2位置姿勢とを用いて求められた前記第1マーカーの位置に基づいて動作を行う、ロボット。【選択図】図3
Description
この発明は、ロボット、ロボット制御装置、及びロボットシステムに関する。
ロボットを動作させるロボット制御装置にロボットの動作を教示する方法の研究や開発が行われている。
ロボットを人手で動作させてその位置・姿勢をロボット制御装置に記憶させる直接教示装置が知られている(特許文献1参照)。
特許文献1に記載された技術によると、ロボットが把持するツールで基準点を触るようにロボットのアームをオペレーターが操作することによって基準点の位置を教示する。しかし、ツールが基準点に触るか触らないかの境界の状態を目視で特定しながら、アームを正確に操作することは容易ではない。すなわち特許文献1に記載された技術では、基準点の位置を正確に教示することが困難な場合があった。
上記課題の少なくとも一つを解決するために本発明の一態様は、可動部を備え、前記可動部は、前記可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の前記可動部の第1位置姿勢と、前記撮像部により前記第1マーカーを含む第2画像が撮像された時の前記可動部の第2位置姿勢とを用いて求められた前記第1マーカーの位置に基づいて動作を行う、ロボットである。
この構成により、ロボットでは、可動部は、可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボットは、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、可動部は、可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボットは、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記第1位置姿勢と前記第2位置姿勢とで、前記撮像部と前記第1マーカーとの距離が同じである、構成が用いられてもよい。
この構成により、ロボットでは、可動部の第1位置姿勢と可動部の第2位置姿勢とで、撮像部と第1マーカーとの距離が同じである。これにより、ロボットは、撮像部と第1マーカーとの距離が同じである第1位置姿勢及び第2位置姿勢に基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、可動部の第1位置姿勢と可動部の第2位置姿勢とで、撮像部と第1マーカーとの距離が同じである。これにより、ロボットは、撮像部と第1マーカーとの距離が同じである第1位置姿勢及び第2位置姿勢に基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記第1位置姿勢と前記第2位置姿勢とで、前記撮像部と前記可動部の制御点との距離が同じである、構成が用いられてもよい。
この構成により、ロボットでは、第1位置姿勢と第2位置姿勢とで、撮像部と可動部の制御点との距離が同じである。これにより、ロボットは、撮像部と可動部の制御点との距離が同じである第1位置姿勢及び第2位置姿勢に基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、第1位置姿勢と第2位置姿勢とで、撮像部と可動部の制御点との距離が同じである。これにより、ロボットは、撮像部と可動部の制御点との距離が同じである第1位置姿勢及び第2位置姿勢に基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記可動部の位置姿勢は、前記第1位置姿勢から第3位置姿勢に変化した際に前記撮像部により撮像された第3画像を用いて求められた前記第2位置姿勢に変化する、構成が用いられてもよい。
この構成により、ロボットでは、可動部の位置姿勢は、第1位置姿勢から第3位置姿勢に変化した際に撮像部により撮像された第3画像を用いて求められた第2位置姿勢に変化する。これにより、ロボットは、第1位置姿勢と、第3画像を用いて求められた第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、可動部の位置姿勢は、第1位置姿勢から第3位置姿勢に変化した際に撮像部により撮像された第3画像を用いて求められた第2位置姿勢に変化する。これにより、ロボットは、第1位置姿勢と、第3画像を用いて求められた第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記第2画像における前記第1マーカーの位置は、前記第1画像における前記第1マーカーの位置に対応する位置である、構成が用いられてもよい。
この構成により、ロボットでは、第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における位置のうち第1画像における第1マーカーの位置に対応する位置と一致する第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボットは、第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における位置のうち第1画像における第1マーカーの位置に対応する位置と一致する第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における位置のうち第1画像における第1マーカーの位置に対応する位置と一致する第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボットは、第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における位置のうち第1画像における第1マーカーの位置に対応する位置と一致する第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記第1画像における前記第1マーカーの位置は、前記第1画像における中心位置であり、前記第2画像における前記第1マーカーの位置は、当該中心位置に対応する位置であって前記第2画像における中心位置である、構成が用いられてもよい。
この構成により、ロボットでは、第1画像における第1マーカーの位置が第1画像における中心位置と一致する第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における中心位置と一致する第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボットは、第1画像における第1マーカーの位置が第1画像における中心位置と一致する第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における中心位置と一致する第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、第1画像における第1マーカーの位置が第1画像における中心位置と一致する第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における中心位置と一致する第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボットは、第1画像における第1マーカーの位置が第1画像における中心位置と一致する第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における中心位置と一致する第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記第1位置姿勢で前記撮像部により前記第1画像を撮像する光軸と、前記第2位置姿勢で前記撮像部により前記第2画像を撮像する光軸とが、平行である、構成が用いられてもよい。
この構成により、ロボットでは、第1位置姿勢で撮像部により第1画像を撮像する光軸と、第2位置姿勢で撮像部により第2画像を撮像する光軸とが、平行である。これにより、ロボットは、第1位置姿勢と、撮像部の光軸が第1位置姿勢で撮像部により第1画像を撮像する光軸と平行になる第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、第1位置姿勢で撮像部により第1画像を撮像する光軸と、第2位置姿勢で撮像部により第2画像を撮像する光軸とが、平行である。これにより、ロボットは、第1位置姿勢と、撮像部の光軸が第1位置姿勢で撮像部により第1画像を撮像する光軸と平行になる第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記第1位置姿勢で前記撮像部により前記第1画像を撮像する光軸と、前記第2位置姿勢で前記撮像部により前記第2画像を撮像する光軸とが、非平行である、構成が用いられてもよい。
この構成により、ロボットでは、第1位置姿勢で撮像部により第1画像を撮像する光軸と、第2位置姿勢で撮像部により第2画像を撮像する光軸とが、非平行である。これにより、ロボットは、第1位置姿勢と、撮像部の光軸が第1位置姿勢で撮像部により第1画像を撮像する光軸と非平行になる第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、第1位置姿勢で撮像部により第1画像を撮像する光軸と、第2位置姿勢で撮像部により第2画像を撮像する光軸とが、非平行である。これにより、ロボットは、第1位置姿勢と、撮像部の光軸が第1位置姿勢で撮像部により第1画像を撮像する光軸と非平行になる第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記可動部は、前記第1マーカーの位置と、前記第1位置姿勢と、前記撮像部により第2マーカーを含む第4画像が撮像された時の前記可動部の第4位置姿勢とを用いて求められた前記第2マーカーの位置に基づいて動作を行う、構成が用いられてもよい。
この構成により、ロボットでは、可動部は、第1マーカーの位置と、第1位置姿勢と、撮像部により第2マーカーを含む第4画像が撮像された時の可動部の第4位置姿勢とを用いて求められた第2マーカーの位置に基づいて動作を行う。これにより、ロボットは、第1マーカーの位置と、第1位置姿勢と、撮像部により第2マーカーを含む第4画像が撮像された時の可動部の第4位置姿勢とに基づいて、第2マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、可動部は、第1マーカーの位置と、第1位置姿勢と、撮像部により第2マーカーを含む第4画像が撮像された時の可動部の第4位置姿勢とを用いて求められた第2マーカーの位置に基づいて動作を行う。これにより、ロボットは、第1マーカーの位置と、第1位置姿勢と、撮像部により第2マーカーを含む第4画像が撮像された時の可動部の第4位置姿勢とに基づいて、第2マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、ロボットにおいて、前記第1位置姿勢と前記第4位置姿勢とで、前記第1マーカーと前記第2マーカーとを含む平面と前記可動部の制御点との距離が同じである、構成が用いられてもよい。
この構成により、ロボットでは、第1位置姿勢と第4位置姿勢とで、第1マーカーと第2マーカーとを含む平面と可動部の制御点との距離が同じである。これにより、ロボットは、第1位置姿勢と、第1マーカーと第2マーカーとを含む平面と可動部の制御点との距離が同じである第4位置姿勢とに基づいて、第2マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
この構成により、ロボットでは、第1位置姿勢と第4位置姿勢とで、第1マーカーと第2マーカーとを含む平面と可動部の制御点との距離が同じである。これにより、ロボットは、第1位置姿勢と、第1マーカーと第2マーカーとを含む平面と可動部の制御点との距離が同じである第4位置姿勢とに基づいて、第2マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、本発明の他の態様は、上記に記載のロボットを制御する、ロボット制御装置である。
この構成により、ロボット制御装置では、ロボットが備える可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボット制御装置は、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
この構成により、ロボット制御装置では、ロボットが備える可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボット制御装置は、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
また、本発明の他の態様は、上記に記載のロボットと、上記に記載のロボット制御装置と、を備えるロボットシステムである。
この構成により、ロボットシステムでは、ロボットが備える可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボットシステムは、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
この構成により、ロボットシステムでは、ロボットが備える可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボットシステムは、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
以上により、ロボットでは、可動部は、可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボットは、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット制御装置では、ロボットが備える可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボット制御装置は、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
また、ロボットシステムでは、ロボットが備える可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボットシステムは、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
また、ロボット制御装置では、ロボットが備える可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボット制御装置は、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
また、ロボットシステムでは、ロボットが備える可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づく動作をロボットに行わせる。これにより、ロボットシステムは、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業をロボットに精度よく行わせることができる。
<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。
以下、本発明の実施形態について、図面を参照して説明する。
<ロボットシステムの構成>
まず、ロボットシステム1の構成について説明する。
図1は、実施形態に係るロボットシステム1の構成の一例を示す図である。ロボットシステム1は、ロボット20と、ロボット制御装置30を備える。
まず、ロボットシステム1の構成について説明する。
図1は、実施形態に係るロボットシステム1の構成の一例を示す図である。ロボットシステム1は、ロボット20と、ロボット制御装置30を備える。
ロボット20は、アームAと、アームAを支持する支持台Bを備える単腕ロボットである。単腕ロボットは、この一例におけるアームAのような1本のアーム(腕)を備えるロボットである。なお、ロボット20は、単腕ロボットに代えて、複腕ロボットであってもよい。複腕ロボットは、2本以上のアーム(例えば、2本以上のアームA)を備えるロボットである。なお、複腕ロボットのうち、2本のアームを備えるロボットは、双腕ロボットとも称される。すなわち、ロボット20は、2本のアームを備える双腕ロボットであってもよく、3本以上のアーム(例えば、3本以上のアームA)を備える複腕ロボットであってもよい。また、ロボット20は、スカラロボット、直交座標ロボット、円筒型ロボット等の他のロボットであってもよい。直交座標ロボットは、例えば、ガントリロボットである。
アームAは、エンドエフェクターEと、マニピュレーターMと、撮像部21を備える。アームAは、可動部の一例である。
エンドエフェクターEは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターEは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
エンドエフェクターEは、この一例において、物体を把持可能な指部を備えるエンドエフェクターである。なお、エンドエフェクターEは、当該指部を備えるエンドエフェクターに代えて、空気の吸引や磁力、治具等によって物体を持ち上げることが可能なエンドエフェクターや、他のエンドエフェクターであってもよい。
エンドエフェクターEは、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、エンドエフェクターEは、ロボット制御装置30から取得される制御信号に基づく動作を行う。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB(Universal Serial Bus)等の規格によって行われる。また、エンドエフェクターEは、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
マニピュレーターMは、6つの関節を備える。また、当該6つの関節はそれぞれ、図示しないアクチュエーターを備える。すなわち、マニピュレーターMを備えるアームAは、6軸垂直多関節型のアームである。アームAは、支持台Bと、エンドエフェクターEと、マニピュレーターMと、マニピュレーターMが備える6つの関節それぞれのアクチュエーターとによる連携した動作によって6軸の自由度の動作を行う。なお、アームAは、5軸以下の自由度で動作する構成であってもよく、7軸以上の自由度で動作する構成であってもよい。
マニピュレーターMが備える6つの(関節に備えられた)アクチュエーターはそれぞれ、ケーブルによってロボット制御装置30と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置30から取得される制御信号に基づいて、マニピュレーターMを動作させる。なお、ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。また、マニピュレーターMが備える6つのアクチュエーターのうちの一部又は全部は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。
撮像部21は、例えば、集光された光を電気信号に変換する撮像素子であるCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を備えたカメラである。撮像部21は、マニピュレーターMの一部に備えられる。そのため、撮像部21は、アームAの動きに応じて移動する。すなわち、撮像部21が撮像可能な範囲は、アームAの動きに応じて変化する。なお、撮像部21は、当該範囲の静止画像を撮像する構成であってもよく、当該範囲の動画像を撮像する構成であってもよい。以下では、一例として、撮像部21が当該範囲の静止画像を撮像する場合について説明する。撮像部21により撮像される撮像画像上の位置は、撮像部座標系CCにおけるX軸及びY軸の座標によって表される。撮像部座標系CCは、撮像部21により撮像される撮像画像に対応付けられた三次元局所座標系である。
以下では、一例として、撮像部21が、マニピュレーターMが備える5つのアーム部材のうちの最もエンドエフェクターEに近いアーム部材に設けられている場合について説明する。アーム部材は、マニピュレーターMが備える関節間を繋ぐ部材のことである。また、以下では、撮像部21の光軸が、マニピュレーターMが備える6つの関節のうちのエンドエフェクターEを回動させる関節の回動軸に沿った方向であって当該関節からエンドエフェクターEに向かう方向を向いている場合について説明する。
また、撮像部21は、ケーブルによってロボット制御装置30と通信可能に接続されている。ケーブルを介した有線通信は、例えば、イーサネット(登録商標)やUSB等の規格によって行われる。なお、撮像部21は、Wi−Fi(登録商標)等の通信規格により行われる無線通信によってロボット制御装置30と接続される構成であってもよい。図1では、図が煩雑になることを避けるため、撮像部21とロボット制御装置30とを繋ぐケーブルを省略している。
ロボット制御装置30は、この一例において、ロボットを制御する(動作させる)コントローラーである。ロボット制御装置30は、撮像部21が撮像可能な範囲を撮像部21に撮像させる。ロボット制御装置30は、撮像部21が撮像した撮像画像を撮像部21から取得する。ロボット制御装置30は、取得した撮像画像に基づいてロボット20に所定の作業を行わせる。
<ロボットが行う所定の作業の概要>
以下、ロボット20が行う所定の作業の概要について説明する。
図1に示した例では、ロボット20がエンドエフェクターEにより作業することが可能な領域には、作業台TBが配置されている。作業台TBは、例えば、テーブルである。なお、作業台TBは、テーブルに代えて、床面や棚等の他の物体であってもよい。
以下、ロボット20が行う所定の作業の概要について説明する。
図1に示した例では、ロボット20がエンドエフェクターEにより作業することが可能な領域には、作業台TBが配置されている。作業台TBは、例えば、テーブルである。なお、作業台TBは、テーブルに代えて、床面や棚等の他の物体であってもよい。
作業台TBの上面には、第1マーカーMKが設けられている。第1マーカーMKは、第1マーカーMKに対応付けられた位置を示す。当該位置は、ロボット座標系RCにおける位置である。第1マーカーMKは、第1マーカーMKに対応付けられた位置を示すことができるマーカーであれば如何なるマーカーであってもよい。以下では、一例として、当該位置が第1マーカーMKの図心の位置である場合について説明する。また、以下では、一例として、第1マーカーMKの位置は、第1マーカーMKが示す位置によって表される場合について説明する。なお、図1に示した例では、第1マーカーMKの形状は、円形状であるが、これに代えて、他の形状であってもよい。また、第1マーカーMKの位置は、第1マーカーMKが示す位置と異なる位置であって第1マーカーMKに対応付けられた他の位置であってもよい。
この一例において、ロボット20は、エンドエフェクターEにより予め把持された対象物Oを、作業台TBの上面の位置のうち第1マーカーMKが示す位置に載置する作業を所定の作業として行う。ここで、対象物Oは、例えば、製品に組み付けるプレート、ネジ、ボルト等の産業用の部品や部材である。図1では、図の簡略化のため、対象物Oを直方体形状の物体として表している。なお、対象物Oは、産業用の部品や部材に代えて、日用品や生体等の他の物体であってもよい。また、対象物Oの形状は、直方体形状に代えて、他の形状であってもよい。
<ロボット制御装置が行う処理の概要>
以下、ロボット20に所定の作業を行わせるためにロボット制御装置30が行う処理の概要について説明する。
以下、ロボット20に所定の作業を行わせるためにロボット制御装置30が行う処理の概要について説明する。
ロボット制御装置30は、撮像部座標系CCにおいて予め決められた位置を表す座標が予め記憶される。当該座標は、撮像部座標系CCにおけるX軸及びY軸の座標である。当該位置は、撮像部21により撮像された撮像画像上において第1マーカーMKの位置を一致させる目標となる位置である。以下では、説明の便宜上、当該座標によって表される当該撮像画像上の位置を一致点と称して説明する。また、以下では、一例として、一致点が当該撮像画像上の中心位置(中心の位置)である場合について説明する。なお、一致点は、これに代えて、当該撮像画像上における他の位置であってもよい。
また、ロボット制御装置30は、エンドエフェクターEに予め対応付けられた位置に、エンドエフェクターEとともに動く制御点Tを設定する。当該位置は、ロボット座標系RCにおける位置である。エンドエフェクターEに予め対応付けられた位置は、例えば、エンドエフェクターEにより把持された対象物Oの重心の位置である。制御点Tは、例えば、TCP(Tool Center Point)である。なお、制御点Tは、TCPに代えて、アームAの一部に対応付けられた仮想的な点等の他の仮想的な点であってもよい。すなわち、制御点Tは、エンドエフェクターEに対応付けられた位置に代えて、エンドエフェクターEの他の部位の位置に設定される構成であってもよく、マニピュレーターMに対応付けられた何らかの位置に設定される構成であってもよい。
制御点Tには、制御点Tの位置を示す情報である制御点位置情報と、制御点Tの姿勢を示す情報である制御点姿勢情報とが対応付けられている。当該位置は、ロボット座標系RCにおける位置である。当該姿勢は、ロボット座標系RCにおける姿勢である。なお、制御点Tには、これらに加えて、他の情報が対応付けられる構成であってもよい。制御点位置情報及び制御点姿勢情報をロボット制御装置30が指定(決定)すると、制御点Tの位置及び姿勢が決まる。当該位置及び姿勢は、ロボット座標系RCにおける位置及び姿勢である。ロボット制御装置30は、制御点位置情報及び制御点姿勢情報を指定する。ロボット制御装置30は、アームAを動作させ、ロボット制御装置30が指定した制御点位置情報が示す位置に制御点Tの位置を一致させるとともに、ロボット制御装置30が指定した制御点姿勢情報が示す姿勢に制御点Tの姿勢を一致させる。以下では、説明の便宜上、ロボット制御装置30が指定した制御点位置情報が示す位置を目標位置と称し、ロボット制御装置30が指定した制御点姿勢情報が示す姿勢を目標姿勢と称して説明する。すなわち、ロボット制御装置30は、制御点位置情報及び制御点姿勢情報を指定することにより、ロボット20を動作させ、制御点Tの位置及び姿勢を目標位置及び目標姿勢と一致させる。
この一例において、制御点Tの位置は、制御点座標系TCの原点のロボット座標系RCにおける位置によって表される。また、制御点Tの姿勢は、制御点座標系TCの各座標軸のロボット座標系RCにおける方向によって表される。制御点座標系TCは、制御点Tとともに動くように制御点Tに対応付けられた三次元局所座標系である。
ロボット制御装置30は、ユーザーから予め入力された制御点設定情報に基づいて制御点Tを設定する。制御点設定情報は、例えば、エンドエフェクターEの重心の位置及び姿勢と制御点Tの位置及び姿勢との相対的な位置及び姿勢を示す情報である。なお、制御点設定情報は、これに代えて、エンドエフェクターEに対応付けられた何らかの位置及び姿勢と制御点Tの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、マニピュレーターMに対応付けられた何らかの位置及び姿勢と制御点Tの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよく、ロボット20の他の部位に対応付けられた何らかの位置及び姿勢と制御点Tの位置及び姿勢との相対的な位置及び姿勢を示す情報であってもよい。
ロボット制御装置30は、アームAを移動させ、アームAの位置及び姿勢を待機位置姿勢X1と一致させる。この一例において、アームAの位置及び姿勢は、制御点Tの位置及び姿勢によって表される。すなわち、ロボット制御装置30は、制御点Tを移動させ、制御点Tの位置及び姿勢を待機位置姿勢X1と一致させる。待機位置姿勢X1は、制御点Tの位置及び姿勢のうち撮像部21により第1マーカーMKを撮像可能な位置及び姿勢である。ロボット制御装置30は、制御点Tの位置及び姿勢と待機位置姿勢X1とが一致している状態において、撮像部21が撮像可能な範囲を撮像部21に撮像させる。そして、ロボット制御装置30は、撮像部21が撮像した撮像画像を撮像部21から取得する。
ロボット制御装置30は、撮像部21から取得した撮像画像に基づいて、当該撮像画像上における一致点と当該撮像画像に含まれる第1マーカーMKの位置とが一致する場合における制御点Tの位置及び姿勢である第1位置姿勢を算出する。ロボット制御装置30は、算出した第1位置姿勢に基づいて制御点Tを移動させ、制御点Tの位置及び姿勢を第1位置姿勢と一致させる。そして、ロボット制御装置30は、制御点Tの位置及び姿勢を第1位置姿勢と一致させた状態において、撮像部21が撮像可能な範囲を撮像部21に撮像させる。以下では、説明の便宜上、制御点Tの位置及び姿勢が第1位置姿勢と一致している場合において撮像部21により撮像された撮像画像を第1画像と称して説明する。ロボット制御装置30は、撮像部21に撮像させた第1画像を撮像部21から取得する。
また、ロボット制御装置30は、撮像部21から取得した第1画像に基づいて、第1位置姿勢と異なる位置及び姿勢である第2位置姿勢を算出する。制御点Tの位置及び姿勢が第2位置姿勢と一致している場合、撮像部21により撮像された撮像画像上では、当該撮像画像に含まれる第1マーカーMKの位置と当該撮像画像上における一致点とが一致する。すなわち、第2位置姿勢は、第1位置姿勢と異なる位置及び姿勢であって、撮像部21により撮像画像を撮像した場合に当該撮像画像に含まれる第1マーカーMKと当該撮像画像上における一致点とが一致する位置及び姿勢である。ロボット制御装置30は、算出した第2位置姿勢に基づいて制御点Tを移動させ、制御点Tの位置及び姿勢を第2位置姿勢と一致させる。そして、ロボット制御装置30は、制御点Tの位置及び姿勢を第2位置姿勢と一致させた状態において、撮像部21が撮像可能な範囲を撮像部21に撮像させる。以下では、説明の便宜上、制御点Tの位置及び姿勢が第2位置姿勢と一致している場合において撮像部21により撮像された撮像画像を第2画像と称して説明する。
ロボット制御装置30は、アームAに設けられた撮像部21により第1マーカーMKを含む第1画像が撮像された時の制御点Tの第1位置姿勢と、撮像部21により第1マーカーMKを含む第2画像が撮像された時の制御点Tの第2位置姿勢とを用いて求められた第1マーカーMKの位置に基づく動作をロボット20に行わせる。当該位置は、ロボット座標系RCにおける位置である。これにより、ロボット制御装置30は、ダイレクトティーチングやオンラインティーチングのようにオペレーターによってアームAを操作されることなく、第1マーカーMKの位置に基づく動作を含む作業をロボット20に精度よく行わせることができる。換言すると、ロボット制御装置30は、オペレーターによって第1マーカーMKの位置を教示されることなく、第1マーカーMKの位置に基づく動作を含む作業をロボット20に精度よく行わせることができる。以下では、ロボット制御装置30が第1マーカーMKの位置を算出する処理について詳しく説明する。
<ロボット制御装置のハードウェア構成>
以下、図2を参照し、ロボット制御装置30のハードウェア構成について説明する。図2は、ロボット制御装置30のハードウェア構成の一例を示す図である。
以下、図2を参照し、ロボット制御装置30のハードウェア構成について説明する。図2は、ロボット制御装置30のハードウェア構成の一例を示す図である。
ロボット制御装置30は、例えば、CPU(Central Processing Unit)31と、記憶部32と、入力受付部33と、通信部34と、表示部35を備える。これらの構成要素は、バスBusを介して相互に通信可能に接続されている。また、ロボット制御装置30は、通信部34を介してロボット20と通信を行う。
CPU31は、記憶部32に格納された各種プログラムを実行する。
記憶部32は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含む。なお、記憶部32は、ロボット制御装置30に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部32は、ロボット制御装置30が処理する各種情報、ロボット20を動作させる動作プログラムを含む各種プログラム、各種画像、前述の撮像部座標系CCにおける一致点を表す座標等を格納する。
記憶部32は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含む。なお、記憶部32は、ロボット制御装置30に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部32は、ロボット制御装置30が処理する各種情報、ロボット20を動作させる動作プログラムを含む各種プログラム、各種画像、前述の撮像部座標系CCにおける一致点を表す座標等を格納する。
入力受付部33は、例えば、表示部35と一体に構成されたタッチパネルである。なお、入力受付部33は、キーボードやマウス、タッチパッド、その他の入力装置であってもよい。
通信部34は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
表示部35は、例えば、液晶ディスプレイパネル、あるいは、有機EL(ElectroLuminescence)ディスプレイパネルである。
通信部34は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
表示部35は、例えば、液晶ディスプレイパネル、あるいは、有機EL(ElectroLuminescence)ディスプレイパネルである。
<ロボット制御装置の機能構成>
以下、図3を参照し、ロボット制御装置30の機能構成について説明する。図3は、ロボット制御装置30の機能構成の一例を示す図である。
以下、図3を参照し、ロボット制御装置30の機能構成について説明する。図3は、ロボット制御装置30の機能構成の一例を示す図である。
ロボット制御装置30は、記憶部32と、制御部36を備える。
制御部36は、ロボット制御装置30の全体を制御する。制御部36は、撮像制御部41と、画像取得部43と、位置姿勢算出部45と、ロボット制御部47を備える。制御部36が備えるこれらの機能部は、例えば、CPU31が、記憶部32に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
撮像制御部41は、撮像部21が撮像可能な範囲を撮像部21に撮像させる。
画像取得部43は、撮像部21が撮像した撮像画像を撮像部21から取得する。
位置姿勢算出部45は、画像取得部43が取得した撮像画像に基づいて第1位置姿勢を算出する。また、位置姿勢算出部45は、画像取得部43が取得した撮像画像に基づいて第2位置姿勢を算出する。また、位置姿勢算出部45は、算出した第1位置姿勢及び第2位置姿勢に基づいて、第1マーカーMKの位置を算出する。当該位置は、ロボット座標系RCにおける位置である。
ロボット制御部51は、位置姿勢算出部45が算出した第1マーカーMKの位置に基づいてロボット20に所定の作業を行わせる。当該位置は、ロボット座標系RCにおける位置である。
画像取得部43は、撮像部21が撮像した撮像画像を撮像部21から取得する。
位置姿勢算出部45は、画像取得部43が取得した撮像画像に基づいて第1位置姿勢を算出する。また、位置姿勢算出部45は、画像取得部43が取得した撮像画像に基づいて第2位置姿勢を算出する。また、位置姿勢算出部45は、算出した第1位置姿勢及び第2位置姿勢に基づいて、第1マーカーMKの位置を算出する。当該位置は、ロボット座標系RCにおける位置である。
ロボット制御部51は、位置姿勢算出部45が算出した第1マーカーMKの位置に基づいてロボット20に所定の作業を行わせる。当該位置は、ロボット座標系RCにおける位置である。
<ロボット制御装置が行う処理>
以下、図4を参照し、ロボット制御装置30が行う処理について説明する。図4は、ロボット制御装置30が行う処理の流れの一例を示すフローチャートである。以下では、一例として、ロボット座標系RCにおけるXY平面と、作業台TBの上面とが平行な場合について説明する。また、以下では、ロボット制御部47が制御点Tを移動させる際、当該制御点Tと当該上面との間の距離であってロボット座標系RCにおけるZ軸に沿った方向の距離を変化させない場合について説明する。また、以下では、ロボット20において、撮像部21の位置と制御点Tの位置との相対的な位置関係が変化しない場合について説明する。なお、ロボットシステム1では、当該XY平面と当該上面とが平行ではない構成であってもよい。
以下、図4を参照し、ロボット制御装置30が行う処理について説明する。図4は、ロボット制御装置30が行う処理の流れの一例を示すフローチャートである。以下では、一例として、ロボット座標系RCにおけるXY平面と、作業台TBの上面とが平行な場合について説明する。また、以下では、ロボット制御部47が制御点Tを移動させる際、当該制御点Tと当該上面との間の距離であってロボット座標系RCにおけるZ軸に沿った方向の距離を変化させない場合について説明する。また、以下では、ロボット20において、撮像部21の位置と制御点Tの位置との相対的な位置関係が変化しない場合について説明する。なお、ロボットシステム1では、当該XY平面と当該上面とが平行ではない構成であってもよい。
ロボット制御部47は、制御点Tを移動させ、制御点Tの位置及び姿勢を待機位置姿勢X1と一致させる(ステップS110)。ここで、ステップS110の処理について説明する。ロボット制御部47は、記憶部32に予め記憶された待機位置姿勢X1を示す待機位置姿勢情報X1Dを記憶部32から読み出す。そして、ロボット制御部47は、読み出した待機位置姿勢情報X1Dに基づいて制御点Tを移動させ、制御点Tの位置及び姿勢を待機位置姿勢情報X1Dが示す待機位置姿勢X1と一致させる。なお、待機位置姿勢X1は、制御点Tの位置及び姿勢のうち撮像部21が第1マーカーMKを含む範囲を撮像可能な位置及び姿勢であれば如何なる位置及び姿勢であってもよい。
次に、撮像制御部41は、撮像部21が撮像可能な範囲を撮像部21に撮像させる(ステップS120)。次に、画像取得部43は、ステップS120において撮像部21が撮像した撮像画像を撮像部21から第0画像XP1として取得する(ステップS130)。次に、ロボット制御部47は、制御点Tを移動させ、制御点Tの位置及び姿勢を待機位置姿勢X2と一致させる(ステップS140)。具体的には、ロボット制御部47は、待機位置姿勢X1からロボット座標系RCにおけるX軸方向に予め決められた量だけ並進させた位置及び姿勢である待機位置姿勢X2と、制御点Tの位置及び姿勢とを一致させる。当該量は、撮像部21が撮像可能な範囲から第1マーカーMKが外れない量であれば如何なる量であってもよい。そして、ロボット制御部47は、待機位置姿勢X2を示す待機位置姿勢情報X2Dを記憶部32に記憶させる。
次に、撮像制御部41は、撮像部21が撮像可能な範囲を撮像部21に撮像させる(ステップS150)。次に、画像取得部43は、ステップS150において撮像部21が撮像した撮像画像を撮像部21から第0画像XP2−1として取得する(ステップS160)。
次に、ロボット制御部47は、制御点Tを移動させ、制御点Tの位置及び姿勢を待機位置姿勢X1に戻す。そして、ロボット制御部47は、制御点Tを移動させ、制御点Tの位置及び姿勢を待機位置姿勢X3と一致させる(ステップS163)。具体的には、ロボット制御部47は、待機位置姿勢X1からロボット座標系RCにおけるY軸方向に予め決められた量だけ並進させた位置及び姿勢である待機位置姿勢X3と、制御点Tの位置及び姿勢とを一致させる。当該量は、撮像部21が撮像可能な範囲から第1マーカーMKが外れない量であれば如何なる量であってもよい。そして、ロボット制御部47は、待機位置姿勢X3を示す待機位置姿勢情報X3Dを記憶部32に記憶させる。なお、ステップS163において、ロボット制御部47は、制御点Tの位置及び姿勢を待機位置姿勢X1に戻さずに、制御点Tの位置及び姿勢を待機位置姿勢X3と一致させる構成であってもよい。
次に、撮像制御部41は、撮像部21が撮像可能な範囲を撮像部21に撮像させる(ステップS165)。次に、画像取得部43は、ステップS165において撮像部21が撮像した撮像画像を撮像部21から第0画像XP2−2として取得する(ステップS167)。
次に、位置姿勢算出部45は、ステップS130において画像取得部43が取得した第0画像XP1と、ステップS160において画像取得部43が取得した第0画像XP2−1と、ステップS167において画像取得部43が取得した第0画像XP2−2とに基づいて第1位置姿勢を算出する(ステップS170)。ここで、ステップS170の処理について説明する。
位置姿勢算出部45は、第0画像XP1に基づいて、第0画像XP1に含まれる第1マーカーMKを検出する。位置姿勢算出部45は、第0画像XP1から検出した第1マーカーMKの撮像部座標系CCにおける位置である第1検出位置を算出する。また、位置姿勢算出部45は、第0画像XP2−1に基づいて、第0画像XP2−1に含まれる第1マーカーMKを検出する。位置姿勢算出部45は、第0画像XP2−1から検出した第1マーカーMKの撮像部座標系CCにおける位置である第2検出位置を算出する。また、位置姿勢算出部45は、第0画像XP2−2に基づいて、第0画像XP2−2に含まれる第1マーカーMKを検出する。位置姿勢算出部45は、第0画像XP2−2から検出した第1マーカーMKの撮像部座標系CCにおける位置である第3検出位置を算出する。
位置姿勢算出部45は、算出した第1検出位置及び第2検出位置に基づいて、第1検出位置から第2検出位置までの変位を第1変位として算出する。また、位置姿勢算出部45は、記憶部32から待機位置姿勢情報X1D及び待機位置姿勢情報X2Dを読み出す。位置姿勢算出部45は、読み出した待機位置姿勢情報X1Dが示す待機位置姿勢X1から、読み出した待機位置姿勢情報X2Dが示す待機位置姿勢X2までの変位を第2変位として算出する。
また、位置姿勢算出部45は、算出した第1検出位置及び第3検出位置に基づいて、第1検出位置から第3検出位置までの変位を第3変位として算出する。また、位置姿勢算出部45は、記憶部32から待機位置姿勢情報X1D及び待機位置姿勢情報X3Dを読み出す。位置姿勢算出部45は、読み出した待機位置姿勢情報X1Dが示す待機位置姿勢X1から、読み出した待機位置姿勢情報X3Dが示す待機位置姿勢X3までの変位を第4変位として算出する。
位置姿勢算出部45は、算出した第1変位、第2変位、第3変位、第4変位に基づいて、撮像部座標系CCにおける第1マーカーMKの変位をロボット座標系RCにおける第1マーカーMKの変位に変換する座標変換行列を算出する。
また、位置姿勢算出部45は、第0画像XP1に基づいて、第0画像XP1に含まれる第1マーカーMKの位置から第0画像XP1における一致点までの変位を算出する。位置姿勢算出部45は、算出した座標変換行列に基づいて、算出した当該変位をロボット座標系RCにおける変位に変換する。そして、位置姿勢算出部45は、変換した当該変位と、待機位置姿勢X1とに基づいて、待機位置姿勢X1を当該変位分だけ並進させた第1位置姿勢を算出する。すなわち、当該第1位置姿勢は、ロボット座標系RCにおける位置及び姿勢である。制御点Tの位置及び姿勢が第1位置姿勢と一致している場合、撮像部21により撮像される撮像画像に含まれる第1マーカーMKの位置は、当該撮像画像における一致点と一致している。なお、位置姿勢算出部45は、第0画像XP2−1と第0画像XP2−2との少なくとも一方に基づいて、当該少なくとも一方に含まれる第1マーカーMKの位置から当該少なくとも一方における一致点までの変位を算出する構成であってもよい。この場合、位置姿勢算出部45は、算出した座標変換行列に基づいて、算出した当該変位をロボット座標系RCにおける変位に変換する。そして、位置姿勢算出部45は、変換した当該変位と、待機位置姿勢X2とに基づいて、ロボット座標系RCにおける第1位置姿勢を算出する。
ステップS170の処理が行われた後、ロボット制御部47は、制御点Tを移動させ、制御点Tの位置及び姿勢を、ステップS170において算出された第1位置姿勢と一致させる(ステップS180)。ここで、図5を参照し、ステップS180の処理について説明する。
図5は、制御点Tの位置及び姿勢と第1位置姿勢とが一致した状態における撮像部21により撮像される範囲と制御点Tの位置との位置関係の一例を模式的に表す図である。図5に示した丸印VTは、制御点Tのロボット座標系RCにおける位置を仮想的に表す印である。また、枠WD1は、ロボット座標系RCにおいて撮像部21により撮像される範囲を表す枠である。このため、枠WD1の内部には、第1マーカーMKが含まれている。また、丸印CTは、枠WD1が表す範囲が撮像部21により撮像された撮像画像における一致点と制御点Tとが一致した場合における制御点Tの位置であってロボット座標系RCにおける位置を表す印である。ステップS180においてロボット制御部47が制御点Tの位置及び姿勢を第1位置姿勢と一致させた場合、図5に示した通り、枠WD1内において丸印CTと第1マーカーMKの位置とが一致する。ここで、直線LNは、丸印CTと丸印VTとを通る直線であり、当該一致点のロボット座標系RCにおける位置と、制御点Tのロボット座標系RCにおける位置との相対的な位置関係を明確にするための補助線である。
ステップS180の処理が行われた後、撮像制御部41は、撮像部21が撮像可能な範囲を撮像部21に撮像させる(ステップS190)。次に、画像取得部43は、ステップS190において撮像部21が撮像した撮像画像を撮像部21から第1画像として取得する(ステップS200)。次に、位置姿勢算出部45は、ステップS200において取得された第1画像に基づいて、第1マーカーMKを検出する。位置姿勢算出部45は、検出した第1マーカーMKの撮像部座標系CCにおける位置を算出する。位置姿勢算出部45は、算出した当該位置と、第1画像における一致点とが一致しているか否かを判定することにより、現在の制御点Tの位置及び姿勢が第1位置姿勢と一致しているか否かを判定する(ステップS210)。これは、前述の座標変換行列の誤差や、ロボット20の剛性に起因する誤差等によって、第1マーカーMKの撮像部座標系CCにおける位置と第1画像における一致点とが一致しない場合があるために行われる。位置姿勢算出部45は、第1画像に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第1画像における一致点とが一致していないと判定した場合、現在の制御点Tの位置及び姿勢が第1位置姿勢と一致していないと判定する。一方、位置姿勢算出部45は、第1画像に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第1画像における一致点とが一致していると判定した場合、現在の制御点Tの位置及び姿勢が第1位置姿勢と一致していると判定する。
ステップS210において現在の制御点Tの位置及び姿勢が第1位置姿勢と一致していない(すなわち、第1画像に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第1画像における一致点とが一致していない)と判定した場合(ステップS210−NO)、位置姿勢算出部45は、ステップS170に遷移し、ステップS200において取得した第1画像に基づいて、第1画像に含まれる第1マーカーMKの位置から第1画像における一致点までの変位を算出する。そして、位置姿勢算出部45は、算出した当該変位と、前述の座標変換行列と、現在の制御点Tの位置及び姿勢とに基づいて第1位置姿勢を算出する。すなわち、ロボット制御装置30は、当該場合、ステップS170〜ステップS210の処理を繰り返すことにより、制御点Tの位置及び姿勢を第1位置姿勢と精度よく一致させることができる。一方、現在の制御点Tの位置及び姿勢が第1位置姿勢と一致している(すなわち、第1画像に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第1画像における一致点とが一致している)と位置姿勢算出部45が判定した場合(ステップS210−YES)、ロボット制御部47は、制御点Tの姿勢をロボット座標系RCにおけるZ軸周りに所定角度θ回動させる(ステップS220)。所定角度θは、例えば、10°である。なお、所定角度θは、これに代えて、枠WD1の内部から第1マーカーMKが外に出ない角度範囲において、10°より小さい角度であってもよく、10°より大きい角度であってもよい。ここで、図6を参照し、ステップS220の処理について説明する。
図6は、図5に示した状態から制御点Tの姿勢を所定角度θ回動させた状態における撮像部21により撮像される範囲と制御点Tの位置との位置関係の一例を模式的に表す図である。図6に示した直線LN2は、当該状態における丸印CTと丸印VTとを通る直線であり、枠WD1が表す範囲が撮像部21により撮像された撮像画像における一致点のロボット座標系RCにおける位置と、制御点Tのロボット座標系RCにおける位置との相対的な位置関係を明確にするための補助線である。当該状態において、図6に示した枠WD1は、図5に示した枠WD1を、丸印VTを通る軸であってロボット座標系RCにおけるZ軸に沿った軸を回動軸として矢印A1が示す方向に所定角度θ回動した場合における枠である。当該状態において、当該一致点は、図6に示した通り、第1マーカーMKの位置と一致しなくなっている。
ステップS220の処理が行われた後、撮像制御部41は、撮像部21が撮像可能な範囲を撮像部21に撮像させる(ステップS230)。次に、画像取得部43は、撮像部21が撮像した撮像画像を撮像部21から第0画像XP3として取得する(ステップS240)。次に、位置姿勢算出部45は、ステップS240において画像取得部43が取得した第0画像XP3に基づいて第3位置姿勢を算出する(ステップS245)。ここで、ステップS245の処理について説明する。
位置姿勢算出部45は、第0画像XP3に基づいて、第0画像XP3に含まれる第1マーカーMKを検出する。位置姿勢算出部45は、第0画像XP3から検出した第1マーカーMKの撮像部座標系CCにおける位置である第3検出位置を算出する。位置姿勢算出部45は、第0画像XP3における一致点から、算出した第3検出位置までの撮像部座標系CCにおける変位を算出する。位置姿勢算出部45は、前述の座標変換行列に基づいて、算出した当該変位をロボット座標系RCにおける変位に変換する。そして、位置姿勢算出部45は、変換した当該変位と、現在の制御点Tの位置及び姿勢(すなわち、第1位置姿勢)とに基づいて、現在の制御点Tの位置及び姿勢を当該変位分だけ並進させた第3位置姿勢を算出する。第3位置姿勢は、ロボット座標系RCにおける位置及び姿勢である。すなわち、制御点Tの位置及び姿勢が第3位置姿勢と一致した場合、撮像部21により撮像された撮像画像に含まれる第1マーカーMKの位置は、当該撮像画像における一致点と一致する。
ステップS245の処理が行われた後、ロボット制御部47は、ステップS245において算出された第3位置姿勢に基づいて制御点Tを移動させ、制御点Tの位置及び姿勢を第3位置姿勢と一致させる(ステップS250)。ここで、図7を参照し、ステップS250の処理について説明する。
図7は、図6に示した状態からステップS245において算出された変位分だけ制御点Tの位置を並進させた状態における撮像部21により撮像される範囲と制御点Tの位置との位置関係の一例を模式的に表す図である。図7に示した直線LN3は、当該状態における丸印CTと丸印VTとを通る直線であり、枠WD1が表す範囲が撮像部21により撮像された撮像画像における一致点のロボット座標系RCにおける位置と、制御点Tのロボット座標系RCにおける位置との相対的な位置関係を明確にするための補助線である。当該状態において、図7に示した枠WD1は、図6に示した枠WD1を、ステップS245において算出された変位分だけ並進した場合における枠である。図7では、当該変位は、矢印A2によって表している。この状態において、制御点Tの位置及び姿勢は、第3位置姿勢と一致している。すなわち、図7に示した枠WD1が表す範囲が撮像部21により撮像された撮像画像における一致点は、当該撮像画像に含まれる第1マーカーMKの位置と一致している。
ステップS250の処理が行われた後、撮像制御部41は、撮像部21が撮像可能な範囲を撮像部21に撮像させる(ステップS253)。次に、画像取得部43は、ステップS253において撮像部21が撮像した撮像画像を撮像部21から第0画像XP4として取得する(ステップS257)。次に、位置姿勢算出部45は、ステップS257において取得された第0画像XP4に基づいて、第1マーカーMKを検出する。位置姿勢算出部45は、検出した第1マーカーMKの撮像部座標系CCにおける位置を算出する。位置姿勢算出部45は、算出した当該位置と、第0画像XP4における一致点とが一致しているか否かを判定することにより、現在の制御点Tの位置及び姿勢が第3位置姿勢と一致しているか否かを判定する(ステップS260)。これは、前述の座標変換行列の誤差や、ロボット20の剛性に起因する誤差等によって、第1マーカーMKの撮像部座標系CCにおける位置と第0画像XP4における一致点とが一致しない場合があるために行われる。位置姿勢算出部45は、第0画像XP4に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第0画像XP4における一致点とが一致していないと判定した場合、現在の制御点Tの位置及び姿勢が第3位置姿勢と一致していないと判定する。一方、位置姿勢算出部45は、第0画像XP4に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第0画像XP4における一致点とが一致していると判定した場合、現在の制御点Tの位置及び姿勢が第3位置姿勢と一致していると判定する。
ステップS260において現在の制御点Tの位置及び姿勢が第3位置姿勢と一致していない(すなわち、第0画像XP4に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第0画像XP4における一致点とが一致していない)と判定した場合(ステップS260−NO)、位置姿勢算出部45は、ステップS245に遷移し、ステップS257において取得した第0画像XP4に基づいて、第0画像XP4に含まれる第1マーカーMKの位置から第0画像XP4における一致点までの変位を算出する。そして、位置姿勢算出部45は、算出した当該変位と、前述の座標変換行列と、現在の制御点Tの位置及び姿勢とに基づいて第3位置姿勢を算出する。すなわち、ロボット制御装置30は、当該場合、ステップS245〜ステップS260の処理を繰り返すことにより、制御点Tの位置及び姿勢を第3位置姿勢と精度よく一致させることができる。一方、現在の制御点Tの位置及び姿勢が第3位置姿勢と一致している(すなわち、第0画像XP4に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第0画像XP4における一致点とが一致している)と判定した場合(ステップS260−YES)、位置姿勢算出部45は、第1位置姿勢と、第3位置姿勢と、所定角度θとに基づいて、回動中心の位置を算出する(ステップS270)。回動中心の位置は、ステップS280においてロボット制御部47が制御点Tの位置及び姿勢を第2位置姿勢と一致させる際に制御点Tを回動させる中心の位置のことである。当該位置は、ロボット座標系RCにおける位置である。ここで、ステップS270の処理について説明する。
ここで、説明の便宜上、制御点Tの位置及び姿勢が第1位置姿勢と一致している状態を第1状態と称し、制御点Tの位置及び姿勢が第3位置姿勢と一致している状態を第3状態と称して説明する。第1状態と第3状態とを比較すると、第3状態は、第1マーカーMKの位置を通る仮想的な軸であってロボット座標系RCにおけるZ軸と平行な回動軸を中心として第1状態における制御点Tを所定角度θ回動した状態と同じ状態である。また、この回動における半径rは、第1マーカーMKのロボット座標系RCにおける位置と制御点Tのロボット座標系RCにおける位置との間の距離である。これを利用し、位置姿勢算出部45は、第1位置姿勢における制御点Tのロボット座標系RCにおける位置を表すX座標及びY座標を、第1マーカーMKのロボット座標系RCにおける位置を表すX座標及びY座標と、当該半径rと、所定角度θとによって表す第1方程式を導出する。また、位置姿勢算出部45は、第3位置姿勢における制御点Tのロボット座標系RCにおける位置を表すX座標及びY座標を、第1マーカーMKのロボット座標系RCにおける位置を表すX座標及びY座標と、当該半径rと、所定角度θとによって表す第3方程式を導出する。位置姿勢算出部45は、導出した第1方程式及び第3方程式による連立方程式を解き、第1マーカーMKのロボット座標系RCにおける位置を表すX座標及びY座標を、前述の回動中心の位置として算出する。
ステップS270の処理が行われた後、位置姿勢算出部45は、ステップS270において算出した回動中心の位置と、第1位置姿勢とに基づいて、第2位置姿勢を算出する(ステップS275)。第2位置姿勢は、前述の第1状態から制御点Tの位置及び姿勢を、当該回動中心の位置を通る軸であってロボット座標系RCにおけるZ軸に沿った軸を回動軸として反時計回り(又は時計回り)に第3所定角度回動させた状態である。ここで、当該反時計回りは、当該Z軸の正方向から当該Z軸の負方向に向かって見た場合の反時計回りのことである。第3所定角度は、この一例において、180°である。なお、第3所定角度は、これに代えて、180°より小さい角度であってもよく、180°より大きい角度であってもよい。ここで、ステップS275の処理について説明する。
位置姿勢算出部45は、ステップS270において算出した回動中心の位置と、第1位置姿勢とに基づいて、第1位置姿勢から回動中心の位置までの距離を算出する。位置姿勢算出部45は、算出した当該距離を半径とし、回動中心の位置を通る軸であってロボット座標系RCにおけるZ軸に沿った軸を回動軸として、制御点Tを反時計回り(又は時計回り)に第3所定角度回動させた状態における制御点Tの位置及び姿勢を第2位置姿勢として算出する。ここで、当該反時計回りは、当該Z軸の正方向から当該Z軸の負方向に向かって見た場合の反時計回りのことである。
ステップS275の処理が行われた後、ロボット制御部47は、ステップS275において算出された第2位置姿勢に基づいて制御点Tを移動させ、制御点Tの位置及び姿勢を第2位置姿勢と一致させる(ステップS280)。ここで、図8を参照し、ステップS280の処理について説明する。
図8は、図7に示した状態からステップS275において算出された第2位置姿勢と制御点Tの位置及び姿勢とを一致させた状態における撮像部21により撮像される範囲と制御点Tの位置との位置関係の一例を模式的に表す図である。当該状態において、図8に示した枠WD1は、図5に示した枠WD1を、枠WD1が表す範囲が撮像部21により撮像された撮像画像における一致点を通る軸であってロボット座標系RCにおけるZ軸に沿った軸を回動軸として前述の反時計回りに180°回動した場合における枠である。この状態において、制御点Tの位置及び姿勢は、第2位置姿勢と一致している。すなわち、図8に示した枠WD1が表す範囲が撮像部21により撮像された撮像画像における一致点は、当該撮像画像に含まれる第1マーカーMKの位置と一致している。
ステップS280の処理が行われた後、撮像制御部41は、撮像部21が撮像可能な範囲を撮像部21に撮像させる(ステップS290)。次に、画像取得部43は、ステップS290において撮像部21が撮像した撮像画像を撮像部21から第2画像として取得する(ステップS300)。次に、位置姿勢算出部45は、ステップS300において取得された第2画像に基づいて、第1マーカーMKを検出する。位置姿勢算出部45は、算出した当該位置と、第2画像における一致点とが一致しているか否かを判定することにより、現在の制御点Tの位置及び姿勢が第2位置姿勢と一致しているか否かを判定する(ステップS310)。これは、前述の座標変換行列の誤差や、ロボット20の剛性に起因する誤差等によって、第1マーカーMKの撮像部座標系CCにおける位置と第2画像における一致点とが一致しない場合があるために行われる。位置姿勢算出部45は、第2画像に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第2画像における一致点とが一致していないと判定した場合、現在の制御点Tの位置及び姿勢が第2位置姿勢と一致していないと判定する。一方、位置姿勢算出部45は、第2画像に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第2画像における一致点とが一致していると判定した場合、現在の制御点Tの位置及び姿勢が第2位置姿勢と一致していると判定する。
ステップS310において現在の制御点Tの位置及び姿勢が第2位置姿勢と一致していない(すなわち、第2画像に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第2画像における一致点とが一致していない)と判定した場合(ステップS310−NO)、位置姿勢算出部45は、ステップS275に遷移し、ステップS300において取得した第2画像に基づいて、第2画像に含まれる第1マーカーMKの位置から第2画像における一致点までの変位を算出する。そして、位置姿勢算出部45は、算出した当該変位と、前述の座標変換行列と、現在の制御点Tの位置及び姿勢とに基づいて第2位置姿勢を算出する。すなわち、ロボット制御装置30は、当該場合、ステップS275〜ステップS310の処理を繰り返すことにより、制御点Tの位置及び姿勢を第2位置姿勢と精度よく一致させることができる。一方、現在の制御点Tの位置及び姿勢が第2位置姿勢と一致している(すなわち、第2画像に含まれる第1マーカーMKの撮像部座標系CCにおける位置と、第2画像における一致点とが一致している)と判定した場合(ステップS310−YES)、位置姿勢算出部45は、第1位置姿勢と第2位置姿勢とに基づいて、第1マーカーMKのロボット座標系RCにおける位置を算出する(ステップS320)。ここで、図9〜図11を参照し、ステップS320の処理について説明する。
図9は、第1位置姿勢及び第2位置姿勢のそれぞれにおける制御点Tの位置と、第1マーカーMKの位置との位置関係の一例を示す図である。図9に示した丸印VT1は、制御点Tの位置及び姿勢が第1位置姿勢と一致している場合の制御点Tの位置を仮想的に表している。また、丸印VT2は、制御点Tの位置及び姿勢が第2位置姿勢と一致している場合の制御点Tの位置を仮想的に表している。以下では、一例として、第1位置姿勢と一致している場合の制御点Tの位置と、第2位置姿勢と一致している場合の制御点Tの位置とを結ぶ直線がロボット座標系RCにおけるX軸に平行であり、ロボット座標系RCにおけるY軸に直交する場合について説明する。なお、当該直線は、当該X軸に平行である必要はなく、当該Y軸に直交する必要もない。しかし、当該直線は、ロボット座標系RCにおけるXY平面に対して平行である。これは、この一例では、ロボット制御部47が制御点Tを移動させる際、制御点Tと作業台TBの上面との間の距離であってロボット座標系RCにおけるZ軸に沿った方向の距離を変化させないためである。ここで、ロボット制御部47は、第1位置姿勢における制御点Tの当該Z軸方向の位置と、第2位置姿勢における制御点Tの当該Z軸方向の位置とが同じであれば、制御点Tの位置及び姿勢が第1位置姿勢から第2位置姿勢まで変化する間に制御点Tの当該Z軸方向における位置を変化させる構成であってもよい。
また、図9に示した撮像部V11は、制御点Tの位置及び姿勢が第1位置姿勢と一致している場合における撮像部21の位置を表している。そして、直線AX1は、当該撮像部21の光軸を表している。この一例では、図9に示した通り、直線AX1は、作業台TBの上面に対して角度θ1だけ傾いている。また、直線AX1は、第1マーカーMKの位置を通る直線である。すなわち、この一例における直線AX1は、第1マーカーMKの図心を通る直線である。
また、図9に示した撮像部V12は、制御点Tの位置及び姿勢が第2位置姿勢と一致している場合における撮像部21の位置を表している。そして、直線AX2は、当該撮像部21の光軸を表している。この一例では、図9に示した通り、直線AX2は、作業台TBの上面に対して角度θ1だけ傾いている。また、直線AX2は、直線AX1と非平行である。これは、第2位置姿勢が、ロボット座標系RCにおけるXY平面上において第1マーカーMKの位置を通る軸であってロボット座標系RCにおけるZ軸に平行な軸を回動軸として第1位置姿勢を回動させた位置及び姿勢であるためである。また、これは、この一例において、制御点Tの位置と撮像部21の位置との相対的な位置関係が変化しない、つまり第1位置姿勢と第2位置姿勢とで、撮像部21と制御点Tとの距離が同じであるためである。これらのため、直線AX2は、第1マーカーMKの位置を通る直線である。すなわち、この一例における直線AX2は、第1マーカーMKの図心を通る直線である。また、これらのため、撮像部21と第1マーカーMKとの距離は、第1位置姿勢と第2位置姿勢とで、同じになる。
前述した通り、第2位置姿勢は、ロボット座標系RCにおけるXY平面上において第1マーカーMKの位置を通る軸であってロボット座標系RCにおけるZ軸に平行な軸を回動軸として第1位置姿勢を回動させた位置及び姿勢である。これはすなわち、丸印VT1の位置を作業台TBの上面に射影した位置と第1マーカーMKの位置との間の距離L1と、丸印VT2の位置を作業台TBの上面に射影した位置と第1マーカーMKの位置との間の距離L2とが等しいことを示している。すなわち、第1マーカーMKのロボット座標系RCにおけるXY平面上の位置は、図10に示したように丸印VT1の当該XY平面上の位置と、丸印VT2の当該XY平面上の位置との中点の位置である。図10は、図9に示した位置関係を、ロボット座標系RCにおけるZ軸の正方向から当該Z軸の負方向に向かって見た場合の一例を示す図である。図10において、丸印P1は、当該中点の位置であって第1マーカーMKの位置を表している。
図9及び図10に示した位置関係を利用し、位置姿勢算出部45は、第1位置姿勢と第2位置姿勢とに基づいて、制御点Tの位置及び姿勢が第1位置姿勢と一致している場合における制御点Tの位置と、制御点Tの位置及び姿勢が第2位置姿勢と一致している場合における制御点Tの位置との中点の位置を第1マーカーMKの位置として算出する。
なお、制御点Tの位置及び姿勢が第1位置姿勢と一致している場合における撮像部21の光軸は、図11に示したように作業台TBの上面に直交する構成であってもよい。この場合、制御点Tの位置及び姿勢が第2位置姿勢と一致している場合における撮像部21の光軸も、作業台TBの上面に直交する。この場合、直線AX2は、直線AX1と平行である。図11は、第1位置姿勢及び第2位置姿勢のそれぞれにおける制御点Tの位置と、第1マーカーMKの位置との位置関係の他の例を示す図である。図11に示した例では、直線AX1及び直線AX2は、作業台TBの上面と直交している。
ステップS320の処理が行われた後、ロボット制御部47は、ステップS320において算出された第1マーカーMKの位置に基づいてロボット20に所定の作業を行わせ(ステップS330)、処理を終了する。
このようにして、ロボット制御装置30は、ロボット20が備えるアームAに設けられた撮像部21により第1マーカーMKを含む第1画像が撮像された時の制御点Tの第1位置姿勢と、撮像部21により第1マーカーMKを含む第2画像が撮像された時の制御点Tの第2位置姿勢とを用いて求められた第1マーカーMKの位置に基づく動作をロボット20に行わせる。これにより、ロボット制御装置30は、オペレーターによってアームAを操作されることなく、第1マーカーMKの位置に基づく動作を含む作業をロボット20に精度よく行わせることができる。
このようにして、ロボット制御装置30は、ロボット20が備えるアームAに設けられた撮像部21により第1マーカーMKを含む第1画像が撮像された時の制御点Tの第1位置姿勢と、撮像部21により第1マーカーMKを含む第2画像が撮像された時の制御点Tの第2位置姿勢とを用いて求められた第1マーカーMKの位置に基づく動作をロボット20に行わせる。これにより、ロボット制御装置30は、オペレーターによってアームAを操作されることなく、第1マーカーMKの位置に基づく動作を含む作業をロボット20に精度よく行わせることができる。
なお、ステップS320において、位置姿勢算出部45は、第1位置姿勢と第2位置姿勢とに基づく連立方程式によって第1マーカーMKの位置を算出する構成であってもよい。具体的には、位置姿勢算出部45は、第1位置姿勢における制御点Tのロボット座標系RCにおける位置を表すX座標及びY座標を、第1マーカーMKのロボット座標系RCにおける位置を表すX座標及びY座標と、当該半径rと、所定角度θとによって表す第1方程式を導出する。また、位置姿勢算出部45は、第2位置姿勢における制御点Tのロボット座標系RCにおける位置を表すX座標及びY座標を、第1マーカーMKのロボット座標系RCにおける位置を表すX座標及びY座標と、当該半径rと、所定角度θとによって表す第2方程式を導出する。位置姿勢算出部45は、導出した第1方程式及び第2方程式による連立方程式を解き、第1マーカーMKのロボット座標系RCにおける位置を表すX座標及びY座標を、前述の回動中心の位置として算出する。ただし、この方法よりも、ステップS320の処理による算出方法の方がロボット制御装置30の計算量が少なくて済むため、ロボット制御装置30は、ステップS320の処理を行うことが望ましい。
また、第1画像に含まれる第1マーカーMKの位置が第1画像における一致点と一致している場合の第1画像に含まれる第1マーカーMKの位置は、第1画像における第1マーカーの位置の一例である。また、第2画像に含まれる第1マーカーMKの位置が第2画像における一致点と一致している場合の第2画像に含まれる第1マーカーMKの位置は、第2画像における第1マーカーの位置の一例であり、第1画像における第1マーカーの位置に対応する位置の一例である。
<ロボット制御装置による第1マーカーの位置の検出精度>
以下、図12〜図14を参照し、ロボット制御装置30による第1マーカーMKの位置の検出(算出)精度について説明する。
以下、図12〜図14を参照し、ロボット制御装置30による第1マーカーMKの位置の検出(算出)精度について説明する。
図4に示したフローチャートの処理によってロボット制御装置30が第1マーカーMKの位置を複数回検出(算出)した場合、検出する毎に当該位置は、検出誤差によってばらつく。このような検出誤差による当該位置のばらつきの度合いは、制御点Tの位置及び姿勢が第1位置姿勢と一致している場合における制御点Tの位置と第1マーカーMKのロボット座標系RCにおける位置とを結ぶ直線と、制御点Tの位置及び姿勢が第2位置姿勢と一致している場合における制御点Tの位置と第1マーカーMKのロボット座標系RCにおける位置とを結ぶ直線との間の角度φに応じて変化する。具体的には、当該度合いは、角度φが0°<φ≦180°の範囲において大きいほど小さくなる。当該度合いは、例えば、図4に示したフローチャートの処理によってロボット制御装置30が第1マーカーMKの位置を複数回検出(算出)した場合の、当該位置のそれぞれをプロットしたグラフ上の誤差棒の長さによって表すことができる。
図12は、第1マーカーMKのロボット座標系RCにおけるX軸方向の位置の検出誤差を例示するグラフである。図12に示したグラフの横軸は、角度φを示す。また、当該グラフの縦軸は、ロボット座標系RCにおけるX軸方向の位置を示す。そして、当該グラフには、2°、5°、7°、20°、30°、45°、90°、180°のそれぞれの角度を角度φとして選択した場合における第1マーカーMKのロボット座標系RCにおけるX軸方向の位置が誤差棒とともにプロットされている。図12に示したように、当該誤差棒は、角度φが大きくなるほど小さくなる。
図13は、第1マーカーMKのロボット座標系RCにおけるY軸方向の位置の検出誤差を例示するグラフである。図13に示したグラフの横軸は、角度φを示す。また、当該グラフの縦軸は、ロボット座標系RCにおけるY軸方向の位置を示す。そして、当該グラフには、2°、5°、7°、20°、30°、45°、90°、180°のそれぞれの角度を角度φとして選択した場合における第1マーカーMKのロボット座標系RCにおけるY軸方向の位置が誤差棒とともにプロットされている。図13に示したように、当該誤差棒は、角度φが大きくなるほど小さくなる。
図14は、ロボット座標系RCにおけるXY平面上におけるばらつきであって角度φのそれぞれ毎に図4に示したフローチャートの処理によって検出された第1マーカーMKの位置のばらつきを表すグラフである。当該グラフの横軸はロボット座標系RCにおけるX軸方向の位置を示す。当該グラフの縦軸はロボット座標系RCにおけるY軸方向の位置を示す。図14に示した通り、第1マーカーMKのロボット座標系RCにおけるXY平面上のばらつきであって角度φのそれぞれ毎に図4に示したフローチャートの処理によって検出された第1マーカーMKの位置のばらつきは、角度φが大きくなるほど小さくなる。
<実施形態の変形例1>
以下、図15を参照し、実施形態の変形例1について説明する。
以下、図15を参照し、実施形態の変形例1について説明する。
ロボット制御装置30は、図4に示したステップS320において第1マーカーMKの位置を算出した後、現在の制御点Tの位置(すなわち、制御点Tの位置及び姿勢が第2位置姿勢と一致している場合における制御点Tの位置)と、第1マーカーMKの位置との相対的な位置を示す相対位置情報を記憶部32に記憶する構成であってもよい。この場合、ロボット制御装置30は、当該相対位置情報に基づいて、第1マーカーMKと異なる位置に設けられた他のマーカーであって作業台TBの上面に設けられたマーカーである第2マーカーMK2の位置を検出(算出)することができる。
具体的には、図15に示すように、ロボット制御装置30は、制御点Tの位置及び姿勢が第2位置姿勢と一致している状態から制御点Tの姿勢を保持したまま制御点Tの位置を移動させ、制御点Tの位置及び姿勢を第4位置姿勢と一致させる。図15は、第1位置姿勢及び第4位置姿勢のそれぞれにおける制御点Tの位置と、第1マーカーMKの位置との位置関係の一例を示す図である。図15に示した丸印VT10は、制御点Tの位置及び姿勢が第4位置姿勢と一致している場合の制御点Tの位置を仮想的に表している。また、図15に示した撮像部V110は、制御点Tの位置及び姿勢が第4位置姿勢と一致している場合における撮像部21の位置を表している。そして、直線AX10は、当該撮像部21の光軸を表している。以下では、一例として、第1位置姿勢と一致している場合の制御点Tの位置と、第4位置姿勢と一致している場合の制御点Tの位置とを結ぶ直線がロボット座標系RCにおけるX軸に平行であり、ロボット座標系RCにおけるY軸に直交する場合について説明する。すなわち、第1位置姿勢と第4位置姿勢とで、第1マーカーMKと第2マーカーMK2とを含む平面(この一例において、作業台TBの上面)と制御点Tとの距離が同じである。なお、当該直線は、当該X軸に平行である必要はなく、当該Y軸に直交する必要もない。しかし、当該直線は、ロボット座標系RCにおけるXY平面に対して平行である。これは、この一例では、ロボット制御部47が制御点Tを移動させる際、制御点Tと作業台TBの上面との間の距離であってロボット座標系RCにおけるZ軸に沿った方向の距離を変化させないためである。ここで、ロボット制御部47は、第1位置姿勢における制御点Tの当該Z軸方向の位置と、第4位置姿勢における制御点Tの当該Z軸方向の位置とが同じであれば、制御点Tの位置及び姿勢が第1位置姿勢から第4位置姿勢まで変化する間に制御点Tの当該Z軸方向における位置を変化させる構成であってもよい。
第4位置姿勢は、第1位置姿勢と異なる位置及び姿勢であって、撮像部21により撮像画像を撮像した場合に当該撮像画像に含まれる第2マーカーMK2と当該撮像画像上における一致点とが一致する位置及び姿勢である。また、制御点Tの位置及び姿勢が第4位置姿勢と一致している場合の制御点Tのロボット座標系RCにおけるZ軸方向の位置は、制御点Tの位置及び姿勢が第1位置姿勢と一致している場合の制御点Tのロボット座標系RCにおけるZ軸方向の位置と同じである。
例えば、ロボット制御装置30は、制御点Tの位置及び姿勢が第2位置姿勢と一致している場合における制御点Tの位置から、当該場合における制御点Tの姿勢を保持したまま、記憶部32に予め記憶された位置へと制御点Tを移動させる。当該位置は、撮像部21が撮像可能な範囲に第2マーカーMK2が含まれる位置である。そして、ロボット制御装置30は、撮像部21に撮像可能な範囲を撮像部21に撮像させる。ロボット制御装置30は、撮像部21が撮像した撮像画像を撮像部21から第4画像として取得する。ロボット制御装置30は、取得した第4画像に基づいて、第4画像に含まれる第2マーカーMK2の位置から第4画像における一致点までの変位を算出する。ロボット制御装置30は、算出した当該変位と、前述の座標変換行列と、現在の制御点Tの位置及び姿勢とに基づいて第4位置姿勢を算出する。ここで、制御点Tの位置及び姿勢が第4位置姿勢と一致している場合における制御点Tの姿勢は、制御点Tの位置及び姿勢が第2位置姿勢と一致している場合における制御点Tの姿勢と同じ姿勢でなければならない。ロボット制御装置30は、算出した第4位置姿勢に基づいて制御点Tを移動させ、制御点Tの位置及び姿勢を第4位置姿勢と一致させる。また、ロボット制御装置30は、記憶部32に記憶された相対位置情報を読み出す。ロボット制御装置30は、読み出した相対位置情報と、第4位置姿勢とに基づいて、第2マーカーMK2の位置を算出する。すなわち、ロボット制御装置30は、2個以上のマーカーを検出する場合、このような方法により、図4に示したフローチャートの処理のうちの少なくとも一部を省略することができる。その結果、ロボット制御装置30は、第2マーカーMK2の位置の検出に要する時間を短縮することができる。
<実施形態の変形例2>
以下、実施形態の変形例2について説明する。ロボット制御装置30は、制御点Tの位置及び姿勢と、撮像部21の撮像可能な範囲における一致点の位置及び姿勢との相対的な位置及び姿勢を示す情報を記憶部32に予め記憶されている構成であってもよい。この場合、ロボット制御装置30は、図4に示したステップS180の処理において制御点Tの位置及び姿勢を第1位置姿勢と一致させた後、第1位置姿勢と、記憶部32に予め記憶された当該情報とに基づいて、第1マーカーMKの位置を算出する。これにより、ロボット制御装置30は、第1マーカーMKの位置の検出に要する時間を短縮することができる。
以下、実施形態の変形例2について説明する。ロボット制御装置30は、制御点Tの位置及び姿勢と、撮像部21の撮像可能な範囲における一致点の位置及び姿勢との相対的な位置及び姿勢を示す情報を記憶部32に予め記憶されている構成であってもよい。この場合、ロボット制御装置30は、図4に示したステップS180の処理において制御点Tの位置及び姿勢を第1位置姿勢と一致させた後、第1位置姿勢と、記憶部32に予め記憶された当該情報とに基づいて、第1マーカーMKの位置を算出する。これにより、ロボット制御装置30は、第1マーカーMKの位置の検出に要する時間を短縮することができる。
以上のように、ロボット20は、では、可動部(この一例において、アームA)は、可動部に設けられた撮像部(この一例において、撮像部21)により第1マーカー(この一例において、第1マーカーMK)を含む第1画像が撮像された時の可動部の第1位置姿勢と、撮像部により第1マーカーを含む第2画像が撮像された時の可動部の第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボット20は、オペレーターによって可動部を操作されることなく、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット20では、可動部の第1位置姿勢と可動部の第2位置姿勢とで、撮像部と第1マーカーとの距離が同じである。これにより、ロボット20は、撮像部と第1マーカーとの距離が同じである第1位置姿勢及び第2位置姿勢に基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット20では、第1位置姿勢と第2位置姿勢とで、撮像部と可動部の制御点との距離が同じである。これにより、ロボット20は、撮像部と可動部の制御点との距離が同じである第1位置姿勢及び第2位置姿勢に基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット20では、可動部の位置姿勢は、第1位置姿勢から第3位置姿勢に変化した際に撮像部により撮像された第3画像を用いて求められた第2位置姿勢に変化する。これにより、ロボット20は、第1位置姿勢と、第3画像を用いて求められた第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット20では、第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における位置のうち第1画像における第1マーカーの位置に対応する位置と一致する第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボット20は、第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における位置のうち第1画像における第1マーカーの位置に対応する位置と一致する第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット20では、第1画像における第1マーカーの位置が第1画像における中心位置と一致する第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における中心位置と一致する第2位置姿勢とを用いて求められた第1マーカーの位置に基づいて動作を行う。これにより、ロボット20は、第1画像における第1マーカーの位置が第1画像における中心位置と一致する第1位置姿勢と、第2画像における第1マーカーの位置が第2画像における中心位置と一致する第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット20では、第1位置姿勢で撮像部により第1画像を撮像する光軸(この一例において、直線AX1が表す光軸)と、第2位置姿勢で撮像部により第2画像を撮像する光軸(この一例において、直線AX2が表す光軸)とが、平行である。これにより、ロボット20は、第1位置姿勢と、撮像部の光軸が第1位置姿勢で撮像部により第1画像を撮像する光軸と平行になる第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット20では、第1位置姿勢で撮像部により第1画像を撮像する光軸と、第2位置姿勢で撮像部により第2画像を撮像する光軸とが、非平行である。これにより、ロボット20は、第1位置姿勢と、撮像部の光軸が第1位置姿勢で撮像部により第1画像を撮像する光軸と非平行になる第2位置姿勢とに基づいて、第1マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット20では、可動部は、第1マーカーの位置と、第1位置姿勢と、撮像部により第2マーカーを含む第4画像が撮像された時の可動部の第4位置姿勢とを用いて求められた第2マーカーの位置に基づいて動作を行う。これにより、ロボット20は、第1マーカーの位置と、第1位置姿勢と、撮像部により第2マーカーを含む第4画像が撮像された時の可動部の第4位置姿勢とに基づいて、第2マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
また、ロボット20では、第1位置姿勢と第4位置姿勢とで、第1マーカーと第2マーカーとを含む平面と可動部の制御点との距離が同じである。これにより、ロボット20は、第1位置姿勢と、第1マーカーと第2マーカーとを含む平面と可動部の制御点との距離が同じである第4位置姿勢とに基づいて、第2マーカーの位置に基づく動作を含む作業を精度よく行うことができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、ロボット制御装置30)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
1…ロボットシステム、20…ロボット、21…撮像部、30…ロボット制御装置、31…CPU、32…記憶部、33…入力受付部、34…通信部、35…表示部、36…制御部、41…撮像制御部、43…画像取得部、45…位置姿勢算出部、47…ロボット制御部
Claims (12)
- 可動部を備え、
前記可動部は、前記可動部に設けられた撮像部により第1マーカーを含む第1画像が撮像された時の前記可動部の第1位置姿勢と、前記撮像部により前記第1マーカーを含む第2画像が撮像された時の前記可動部の第2位置姿勢とを用いて求められた前記第1マーカーの位置に基づいて動作を行う、
ロボット。 - 前記第1位置姿勢と前記第2位置姿勢とで、前記撮像部と前記第1マーカーとの距離が同じである、
請求項1に記載のロボット。 - 前記第1位置姿勢と前記第2位置姿勢とで、前記撮像部と前記可動部の制御点との距離が同じである、
請求項1又は2に記載のロボット。 - 前記可動部の位置姿勢は、前記第1位置姿勢から第3位置姿勢に変化した際に前記撮像部により撮像された第3画像を用いて求められた前記第2位置姿勢に変化する、
請求項1から3のうちいずれか一項に記載のロボット。 - 前記第2画像における前記第1マーカーの位置は、前記第1画像における前記第1マーカーの位置に対応する位置である、
請求項1から4のうちいずれか一項に記載のロボット。 - 前記第1画像における前記第1マーカーの位置は、前記第1画像における中心位置であり、
前記第2画像における前記第1マーカーの位置は、当該中心位置に対応する位置であって前記第2画像における中心位置である、
請求項5に記載のロボット。 - 前記第1位置姿勢で前記撮像部により前記第1画像を撮像する光軸と、前記第2位置姿勢で前記撮像部により前記第2画像を撮像する光軸とが、平行である、
請求項1から6のうちいずれか一項に記載のロボット。 - 前記第1位置姿勢で前記撮像部により前記第1画像を撮像する光軸と、前記第2位置姿勢で前記撮像部により前記第2画像を撮像する光軸とが、非平行である、
請求項1から6のうちいずれか一項に記載のロボット。 - 前記可動部は、前記第1マーカーの位置と、前記第1位置姿勢と、前記撮像部により第2マーカーを含む第4画像が撮像された時の前記可動部の第4位置姿勢とを用いて求められた前記第2マーカーの位置に基づいて動作を行う、
請求項1から8のうちいずれか一項に記載のロボット。 - 前記第1位置姿勢と前記第4位置姿勢とで、前記第1マーカーと前記第2マーカーとを含む平面と前記可動部の制御点との距離が同じである、
請求項9に記載のロボット。 - 請求項1から10のうちいずれか一項に記載のロボットを制御する、
ロボット制御装置。 - 撮像部と、
請求項1から10のうちいずれか一項に記載のロボットと、
請求項11に記載のロボット制御装置と、
を備えるロボットシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016130233A JP2018001321A (ja) | 2016-06-30 | 2016-06-30 | ロボット、ロボット制御装置、及びロボットシステム |
US15/637,094 US10551821B2 (en) | 2016-06-30 | 2017-06-29 | Robot, robot control apparatus and robot system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016130233A JP2018001321A (ja) | 2016-06-30 | 2016-06-30 | ロボット、ロボット制御装置、及びロボットシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018001321A true JP2018001321A (ja) | 2018-01-11 |
Family
ID=60945607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016130233A Pending JP2018001321A (ja) | 2016-06-30 | 2016-06-30 | ロボット、ロボット制御装置、及びロボットシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018001321A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7222135B1 (ja) | 2022-06-01 | 2023-02-14 | 株式会社ダイヘン | ロボット制御装置、及びロボット制御システム |
-
2016
- 2016-06-30 JP JP2016130233A patent/JP2018001321A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7222135B1 (ja) | 2022-06-01 | 2023-02-14 | 株式会社ダイヘン | ロボット制御装置、及びロボット制御システム |
JP2023177092A (ja) * | 2022-06-01 | 2023-12-13 | 株式会社ダイヘン | ロボット制御装置、及びロボット制御システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10589424B2 (en) | Robot control device, robot, and robot system | |
CN107414842B (zh) | 控制装置、机器人以及机器人系统 | |
US20160184996A1 (en) | Robot, robot system, control apparatus, and control method | |
US20170277167A1 (en) | Robot system, robot control device, and robot | |
JPWO2018043525A1 (ja) | ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法 | |
US20150343634A1 (en) | Robot, robot system, and control method | |
JP2017124470A (ja) | ロボット、及びロボットシステム | |
JP2019025578A (ja) | 制御装置、ロボットシステムおよび制御方法 | |
JP6926906B2 (ja) | ロボットシステム、制御装置及びロボット制御方法 | |
JP6665450B2 (ja) | ロボット、制御装置、及びロボットシステム | |
JP2018122376A (ja) | 画像処理装置、ロボット制御装置、及びロボット | |
JP6488571B2 (ja) | 教示装置、及びロボットシステム | |
JP2018001333A (ja) | 校正ボード、ロボット、及び検出方法 | |
EP3290164A2 (en) | Robot, robot control device, and robot system | |
JP2018001321A (ja) | ロボット、ロボット制御装置、及びロボットシステム | |
JP2016120530A (ja) | ロボット、及びロボット校正システム | |
JP2016120558A (ja) | ロボット、及びロボットシステム | |
JP2015157343A (ja) | ロボット、ロボットシステム、制御装置、および制御方法 | |
JP2018017610A (ja) | 三次元計測装置、ロボット、ロボット制御装置、及びロボットシステム | |
JP2017100197A (ja) | ロボット、及び制御方法 | |
JP2019111588A (ja) | ロボットシステム、情報処理装置、及びプログラム | |
JP2016013590A (ja) | 教示装置、及びロボットシステム | |
JP2017119321A (ja) | 制御装置、及びロボットシステム | |
JP2019034386A (ja) | ロボット制御装置、ロボット、ロボットシステム、及びロボット制御方法 | |
JP2016120557A (ja) | ロボット、及びロボット校正システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20181026 |