(57)【要約】【課題】部品点数の増加を抑制しつつ、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーションを行うことが可能なロボットシステムを提供する。【解決手段】このロボットシステム１００は、ロボット１０と、撮像する撮像部４０と、ビジョンコントローラ３０と、ロボットコントローラ２０とを備える。そして、ビジョンコントローラ３０は、ロボットコントローラ２０にワーク１を移動させるための移動情報を送信して、ロボット１０に保持されたワーク１を移動させて撮像部４０によりワーク１を複数の位置において撮像し、ロボット１０に保持されたワーク１の登録された部分を複数の位置において認識して、認識結果と移動情報とに基づいて、撮像部４０により撮像される画像の位置情報と、ロボット１０の位置情報とを対応づけるキャリブレーションを行うように構成されている。【選択図】図１
2015174191.tif 000002
【特許請求の範囲】
【請求項１】
ワークを保持するハンド部と、前記ハンド部が取り付けられた多関節のロボット本体とを含むロボットと、
前記ロボットの前記ハンド部に保持された前記ワークを撮像する撮像部と、
前記撮像部の撮像動作を制御する撮像制御手段と、
前記ロボット本体の駆動を制御するロボット制御手段と、を備え、
前記撮像制御手段は、前記ロボット制御手段に前記ワークを移動させるための移動情報を送信して、前記ロボットに保持された前記ワークを移動させて前記撮像部により前記ワークを複数の位置において撮像し、前記ロボットに保持された前記ワークの登録された部分を複数の位置において認識して、認識結果と前記移動情報とに基づいて、前記撮像部により撮像される画像の位置情報と、前記ロボットの位置情報とを対応づけるキャリブレーションを行うように構成されている、ロボットシステム。
【請求項２】
前記撮像制御手段は、前記キャリブレーション時に登録された前記ワークの部分を用いて、前記ロボットに保持された作業対象の前記ワークの位置および姿勢を認識して、キャリブレーション結果に基づいて作業対象の前記ワークの位置を補正するように構成されている、請求項１に記載のロボットシステム。
【請求項３】
前記撮像制御手段は、前記ロボットに保持された前記ワークの登録された部分の領域内で特徴部分を抽出するとともに、前記ワークの特徴部分を複数の移動された位置において前記撮像部により撮像し、前記ワークの特徴部分の移動状態を取得し、前記ワークの特徴部分の移動状態と、前記移動情報とに基づいて、キャリブレーションを行うように構成されている、請求項１または２に記載のロボットシステム。
【請求項４】
前記撮像制御手段は、前記ロボット制御手段に移動量情報を含む前記移動情報を送信して、前記ロボットに保持された前記ワークを複数回平行移動させて前記撮像部により前記ワークを複数の位置において撮像し、前記移動量情報と、前記撮像部により複数回撮像された前記ワークの撮像結果とに基づいて、前記撮像部により撮像される画像の座標情報と、前記ロボットの座標情報とを対応づけるように構成されている、請求項１〜３のいずれか１項に記載のロボットシステム。
【請求項５】
前記撮像制御手段は、前記ロボット制御手段に前記移動情報を送信して、前記ロボットに保持された前記ワークを水平面内の第１の方向に複数回移動させるとともに、前記第１の方向と直交する水平面内の第２の方向に複数回移動させることにより、前記ワークを格子状に平行移動させて前記撮像部により前記ワークを複数の位置において撮像し、前記移動情報と、前記撮像部により複数回撮像された前記ワークの撮像結果とに基づいて、前記撮像部により撮像される画像の座標情報と、前記ロボットの座標情報とを対応づけるように構成されている、請求項４に記載のロボットシステム。
【請求項６】
前記撮像制御手段は、前記ロボット制御手段に回動情報を含む前記移動情報を送信して、前記ロボットに保持された前記ワークを平行移動とは別に複数回回動させて前記撮像部により前記ワークを複数の回動位置において撮像し、前記回動情報と、前記撮像部により複数回撮像された前記ワークの撮像結果とに基づいて、前記撮像部により撮像される画像における画像内回動中心と、前記ロボットにより前記ワークを回動させる回動中心とを対応づけるように構成されている、請求項４または５に記載のロボットシステム。
【請求項７】
前記撮像制御手段は、前記ロボット制御手段に前記移動情報を送信して、前記ロボットに保持された前記ワークを回動させて前記撮像部により前記ワークを複数の回動位置において撮像し、前記撮像部により複数回撮像された前記ワークの撮像結果に基づいて、前記撮像部により撮像される画像における画像内回動中心を算出する動作を繰り返し行い、前記画像内回動中心と、前記移動情報とに基づいて、前記撮像部により撮像される画像の位置情報と、前記ロボットの位置情報とを対応づけるように構成されている、請求項６に記載のロボットシステム。
【請求項８】
多関節のロボット本体に取り付けられたハンド部によりワークを保持する工程と、
撮像制御手段により送信される移動情報に基づいて前記ロボットに保持された前記ワークを移動させて撮像部により前記ワークを複数の位置において撮像する工程と、
撮像結果に基づいて前記ロボットに保持された前記ワークの登録された部分を複数の位置において認識する工程と、
認識結果と前記移動情報とに基づいて、前記撮像部により撮像される画像の位置情報と、前記ロボットの位置情報とを対応づけてキャリブレーションを完了させる工程とを備える、ロボットシステムのキャリブレーション方法。
【請求項９】
多関節のロボット本体に取り付けられたハンド部によりワークを保持する工程と、
撮像制御手段により送信される移動情報に基づいて前記ロボットに保持された前記ワークを移動させて撮像部により前記ワークを複数の位置において撮像する工程と、
撮像結果に基づいて前記ロボットに保持された前記ワークの登録された部分を複数の位置において認識する工程と、
認識結果と前記移動情報とに基づいて、前記撮像部により撮像される画像の位置情報と、前記ロボットの位置情報とを対応づけるキャリブレーション工程と、
前記ロボットに保持された作業対象の前記ワークの位置および姿勢を認識して、キャリブレーション結果に基づいて作業対象の前記ワークの位置を補正する工程とを備える、ロボットシステムの位置補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム、ロボットシステムのキャリブレーション方法およびロボットシステムの位置補正方法に関する。
【背景技術】
【０００２】
従来、ロボットシステムが知られている（たとえば、特許文献１参照）。上記特許文献１には、ワークを保持するハンドと、先端にハンドが取り付けられた多関節のロボット本体とを含むロボットと、ロボットのハンドに保持されたワークを撮影するカメラと、ロボット本体の駆動を制御するロボットコントローラと、カメラにより撮影した画像に基づいて三次元計測・認識を行うパーソナルコンピュータとを備えるロボットシステムが開示されている。このロボットシステムは、キャリブレーションのためにロボットに取り付けられたチェッカーボードをカメラにより撮影して、ロボットにおける座標と、カメラにおける座標とを対応づけるキャリブレーションを行うように構成されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１７２９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載のロボットシステムは、キャリブレーションのためにロボットに取り付けられたチェッカーボードをカメラにより撮影して、ロボットにおける座標と、カメラにおける座標とを対応づけるキャリブレーションを行うため、キャリブレーションのためにチェッカーボードを用いる必要がある。このため、チェッカーボードを用いる分、部品点数が増加するという問題点がある。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、この発明の１つの目的は、部品点数の増加を抑制しつつ、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーションを行うことが可能なロボットシステム、ロボットシステムのキャリブレーション方法およびロボットシステムの位置補正方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、第１の局面によるロボットシステムは、ワークを保持するハンド部と、ハンド部が取り付けられた多関節のロボット本体とを含むロボットと、ロボットのハンド部に保持されたワークを撮像する撮像部と、撮像部の撮像動作を制御する撮像制御手段と、ロボット本体の駆動を制御するロボット制御手段と、を備え、撮像制御手段は、ロボット制御手段にワークを移動させるための移動情報を送信して、ロボットに保持されたワークを移動させて撮像部によりワークを複数の位置において撮像し、ロボットに保持されたワークの登録された部分を複数の位置において認識して、認識結果と移動情報とに基づいて、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーションを行うように構成されている。
【０００７】
この第１の局面によるロボットシステムでは、上記のように、撮像制御手段を、ロボット制御手段にワークを移動させるための移動情報を送信して、ロボットに保持されたワークを移動させて撮像部によりワークを複数の位置において撮像し、ロボットに保持されたワークの登録された部分を複数の位置において認識して、認識結果と移動情報とに基づいて、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーションを行うように構成することによって、キャリブレーション用のチェッカーボードを用いることなく、作業対象のワークを用いて撮像部により撮像される画像の位置情報とロボットの位置情報とを対応づけるキャリブレーションを行うことができる。これにより、部品点数の増加を抑制しつつ、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーションを行うことができる。また、キャリブレーションの際に撮像制御手段から送信される移動情報に基づいて、ロボットが駆動されるので、ロボット制御手段側においてロボットの移動状態を記録しなくても、撮像制御手段側でキャリブレーションの処理を行うことができる。これにより、キャリブレーションの処理が複雑化するのを抑制することができる。
【０００８】
第２の局面によるロボットシステムのキャリブレーション方法は、多関節のロボット本体に取り付けられたハンド部によりワークを保持する工程と、撮像制御手段により送信される移動情報に基づいてロボットに保持されたワークを移動させて撮像部によりワークを複数の位置において撮像する工程と、撮像結果に基づいてロボットに保持されたワークの登録された部分を複数の位置において認識する工程と、認識結果と移動情報とに基づいて、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけてキャリブレーションを完了させる工程とを備える。
【０００９】
この第２の局面によるロボットシステムのキャリブレーション方法では、上記のように、撮像制御手段により送信される移動情報に基づいてロボットに保持されたワークを移動させて撮像部によりワークを複数の位置において撮像する工程と、撮像結果に基づいてロボットに保持されたワークの登録された部分を複数の位置において認識する工程と、認識結果と移動情報とに基づいて、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけてキャリブレーションを完了させる工程とを設けることによって、キャリブレーション用のチェッカーボードを用いることなく、作業対象のワークを用いて撮像部により撮像される画像の位置情報とロボットの位置情報とを対応づけるキャリブレーションを行うことができる。これにより、部品点数の増加を抑制しつつ、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーションを行うことが可能なロボットシステムのキャリブレーション方法を提供することができる。また、キャリブレーションの際に撮像制御手段から送信される移動情報に基づいて、ロボットが駆動されるので、ロボット側においてロボットの移動状態を記録しなくても、撮像制御手段側でキャリブレーションの処理を行うことができる。これにより、キャリブレーションの処理が複雑化するのを抑制することができる。
【００１０】
第３の局面によるロボットシステムの位置補正方法は、多関節のロボット本体に取り付けられたハンド部によりワークを保持する工程と、撮像制御手段により送信される移動情報に基づいてロボットに保持されたワークを移動させて撮像部によりワークを複数の位置において撮像する工程と、撮像結果に基づいてロボットに保持されたワークの登録された部分を複数の位置において認識する工程と、認識結果と移動情報とに基づいて、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーション工程と、ロボットに保持された作業対象のワークの位置および姿勢を認識して、キャリブレーション結果に基づいて作業対象のワークの位置を補正する工程とを備える。
【００１１】
この第３の局面によるロボットシステムの位置補正方法では、上記のように、撮像制御手段により送信される移動情報に基づいてロボットに保持されたワークを移動させて撮像部によりワークを複数の位置において撮像する工程と、撮像結果に基づいてロボットに保持されたワークの登録された部分を複数の位置において認識する工程と、認識結果と移動情報とに基づいて、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーション工程とを設けることによって、キャリブレーション用のチェッカーボードを用いることなく、作業対象のワークを用いて撮像部により撮像される画像の位置情報とロボットの位置情報とを対応づけるキャリブレーションを行うことができる。これにより、部品点数の増加を抑制しつつ、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーションを行うことが可能なロボットシステムの位置補正方法を提供することができる。また、キャリブレーションの際に撮像制御手段から送信される移動情報に基づいて、ロボットが駆動されるので、ロボット側においてロボットの移動状態を記録しなくても、撮像制御手段側でキャリブレーションの処理を行うことができる。これにより、キャリブレーションの処理が複雑化するのを抑制することができる。
【発明の効果】
【００１２】
上記のように構成することによって、部品点数の増加を抑制しつつ、撮像部により撮像される画像の位置情報と、ロボットの位置情報とを対応づけるキャリブレーションを行うことができる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態によるロボットシステムの全体構成を示した概略図である。
【図２】一実施形態によるロボットシステムによるキャリブレーション時にワークを平行移動させる場合を説明するための図である。
【図３】一実施形態によるロボットシステムによるキャリブレーション時にワークを回動させる場合を説明するための図である。
【図４】一実施形態によるロボットシステムによるワーク認識処理を説明するためのフローチャートである。
【図５】一実施形態によるロボットシステムによるキャリブレーション処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本実施形態を図面に基づいて説明する。
【００１５】
図１を参照して、本実施形態のロボットシステム１００の構成について説明する。
【００１６】
図１に示すように、ロボットシステム１００は、ロボット１０と、ロボットコントローラ２０と、ビジョンコントローラ３０と、撮像部４０とを備えている。また、ロボットシステム１００は、ロボット１０によりワーク１を保持して所定の作業を行うように構成されている。ロボット１０は、垂直多関節のロボット本体１１と、ロボット本体１１が取り付けられている基台１２と、ロボット本体１１に取り付けられたハンド部１３とを含む。なお、ロボットコントローラ２０は、「ロボット制御手段」の一例であり、ビジョンコントローラ３０は、「撮像制御手段」の一例である。
【００１７】
ロボット１０は、ハンド部１３によりワーク１を保持するように構成されている。また、ロボット１０は、図２に示すように、保持したワーク１を水平面内で平行移動させることが可能に構成されている。また、ロボット１０は、図３に示すように、保持したワーク１を予め設定された制御点１４を中心に回動させることが可能に構成されている。たとえば、制御点１４は、ロボット本体１１のハンド部１３が取り付けられる位置に設定されている。ロボット本体１１は、垂直多関節ロボットにより構成されている。また、ロボット本体１１は、床に固定された基台１２に取り付けられている。また、ロボット本体１１は、床に固定された基台１２を基準にして、制御点１４の移動が制御されて駆動されるように構成されている。
【００１８】
ロボットコントローラ２０は、図１に示すように、ロボット１０に接続されている。また、ロボットコントローラ２０は、ロボット１０（ロボット本体１１）の駆動を制御するように構成されている。具体的には、ロボットコントローラ２０は、ロボット１０（ロボット本体１１）が所定の動作を行うように、プログラムに基づいてロボット本体１１を駆動させる制御を行うように構成されている。また、ロボットコントローラ２０は、ビジョンコントローラ３０に接続されている。また、ロボットコントローラ２０は、ビジョンコントローラ３０から受信したロボット１０に保持されたワーク１を移動させるための移動情報に基づいて、ロボット本体１１を駆動させるように構成されている。
【００１９】
ビジョンコントローラ３０は、撮像部４０に接続されている。また、ビジョンコントローラ３０は、撮像部４０の撮像動作を制御するように構成されている。また、ビジョンコントローラ３０は、撮像部４０によるワーク１の撮像結果に基づいてワーク１の位置および姿勢を認識するように構成されている。また、ビジョンコントローラ３０は、認識したワーク１の位置および姿勢の情報をロボットコントローラ２０に送信するように構成されている。また、ビジョンコントローラ３０は、撮像部４０により撮像される画像の位置情報と、ロボット１０の位置情報とを対応づけるキャリブレーションを行うように構成されている。また、ビジョンコントローラ３０は、ロボット１０に保持された作業対象のワーク１の撮像部４０による撮像結果と、キャリブレーション結果とに基づいて作業対象のワーク１の位置を補正するように、ロボットコントローラ２０にワーク１を移動させるための移動情報を送信するように構成されている。
【００２０】
撮像部４０は、ロボット１０のハンド部１３に保持されたワーク１を撮像するように構成されている。また、撮像部４０は、ロボット１０の上方に固定的に設置されている。また、撮像部４０に撮像された画像は、たとえば、図２に示すように、画像上の座標として、左上を基準にしてＸｖおよびＹｖの座標を有している。
【００２１】
ここで、本実施形態では、ビジョンコントローラ３０は、ロボットコントローラ２０にワーク１を移動させるための移動情報を送信して、ロボット１０に保持されたワーク１を移動させて撮像部４０によりワーク１を複数の位置において撮像し、ロボット１０に保持されたワーク１の登録された部分１ｂを複数の位置において認識して、認識結果と移動情報とに基づいて、撮像部４０により撮像される画像の位置情報と、ロボット１０の位置情報とを対応づけるキャリブレーションを行うように構成されている。
【００２２】
具体的には、ビジョンコントローラ３０は、図２および図３に示すように、ロボット１０に保持されたワーク１の登録された部分１ｂの領域内で特徴部分１ａを抽出するとともに、ワーク１の特徴部分１ａを複数の位置において撮像部４０により撮像し、ワーク１の特徴部分１ａの移動状態を取得し、ワーク１の特徴部分１ａの移動状態と、移動情報とに基づいて、キャリブレーションを行うように構成されている。なお、ワーク１の部分１ｂは、ワーク１の種類毎に予めユーザにより登録されている。たとえば、ワーク１の主要部分や特徴的な形状・模様を有する部分が登録される。また、バリなどの不確定な部分（ワーク毎に形状が異なる部分）ではないワーク１の部分が登録される。また、ビジョンコントローラ３０は、ワーク１の登録された部分１ｂから１つ以上の特徴部分１ａを抽出して、ワーク１の位置および姿勢を認識するために抽出した特徴部分１ａを用いるように構成されている。
【００２３】
また、ビジョンコントローラ３０は、ロボットコントローラ２０に移動量情報を含む移動情報を送信して、ロボット１０に保持されたワーク１を複数回平行移動させて撮像部４０によりワーク１を複数の位置において撮像し、移動量情報と、撮像部４０により複数回撮像されたワーク１の撮像結果とに基づいて、撮像部４０により撮像される画像の座標情報と、ロボット１０の座標情報とを対応づけるように構成されている。
【００２４】
具体的には、図２に示すように、ビジョンコントローラ３０は、ロボットコントローラ２０に移動量情報を含む移動情報を送信して、ロボット１０に保持されたワーク１を水平面内の第１の方向（Ｘ方向）に複数回移動させるとともに、第１の方向と直交する水平面内の第２の方向（Ｙ方向）に複数回移動させることにより、ワーク１を格子状に平行移動させて撮像部４０によりワーク１を複数の位置において撮像する。また、ビジョンコントローラ３０は、移動情報と、撮像部４０により複数回撮像されたワーク１の撮像結果とに基づいて、撮像部４０により撮像される画像の座標情報と、ロボット１０の座標情報とを対応づけるように構成されている。
【００２５】
図２の（１）に示すように、撮像部４０の撮像範囲（画角内）にワーク１が移動されて、ロボット１０に保持されたワーク１が撮像される。次に、図２の（２）に示すように、画像内のワーク１の特徴部分１ａが認識される。そして、認識された特徴部分１ａに対応する画像上にマーク２（２ａ）が記される。図２の（３）に示すように、ビジョンコントローラ３０から送信される移動情報に基づいてワーク１がＹ方向に平行移動される。図２の（４）に示すように、画像内の移動後のワーク１の特徴部分１ａが認識される。そして、認識された移動後の特徴部分１ａに対応する画像上にマーク２（２ｂ）が記される。
【００２６】
そして、図２の（５）に示すように、ビジョンコントローラ３０から送信される移動情報に基づいてワーク１がさらにＹ方向に平行移動される。図２の（６）に示すように、画像内の移動後のワーク１の特徴部分１ａが認識される。そして、認識された移動後の特徴部分１ａに対応する画像上にマーク２（２ｃ）が記される。その後、ワーク１がＸ方向およびＹ方向に複数回移動して、撮像および認識によりマーク２が複数記される。その結果、図２の（Ａ）に示すように、マーク２が格子状に記録される。この記された複数のマーク２の座標位置と、ワーク１を移動させた移動情報とに基づいて、撮像部４０により撮像される画像の座標情報と、ロボット１０の座標情報とが対応づけられるキャリブレーションが行われる。
【００２７】
また、図３に示すように、ビジョンコントローラ３０は、ロボットコントローラ２０に回動情報を含む移動情報を送信して、ロボット１０に保持されたワーク１を平行移動とは別に複数回回動させて撮像部４０によりワーク１を複数の回動位置において撮像し、回動情報と、撮像部４０により複数回撮像されたワーク１の撮像結果とに基づいて、撮像部４０により撮像される画像における画像内回動中心と、ロボット１０によりワーク１を回動させる回動中心とを対応づけるように構成されている。
【００２８】
図３の（１１）に示すように、撮像部４０の撮像範囲（画角内）にワーク１が移動されて、ロボット１０に保持されたワーク１が撮像される。次に、図３の（１２）に示すように、画像内のワーク１の特徴部分１ａが認識される。そして、認識された特徴部分１ａに対応する画像上にマーク３（３ａ）が記される。図３の（１３）に示すように、ビジョンコントローラ３０から送信される回動情報を含む移動情報に基づいてワーク１が制御点１４を中心に時計回りに角度θ回動される。図３の（１４）に示すように、画像内の移動後のワーク１の特徴部分１ａが認識される。そして、認識された移動後の特徴部分１ａに対応する画像上にマーク３（３ｂ）が記される。
【００２９】
そして、図３の（１５）に示すように、ビジョンコントローラ３０から送信される回動情報に基づいてワーク１がさらに制御点１４を中心に時計回りに角度θ回動される。図３の（１６）に示すように、画像内の移動後のワーク１の特徴部分１ａが認識される。そして、認識された移動後の特徴部分１ａに対応する画像上にマーク３（３ｃ）が記される。その後、ワーク１が複数回回動されて、図３の（Ｂ）に示すように、撮像および認識によりマーク３が複数記される。この記された複数のマーク３の座標位置と、ワーク１を回動させた回動情報とに基づいて、撮像部４０により撮像される画像における画像内回動中心と、ロボット１０によりワーク１を回動させる回動中心とが対応づけられるキャリブレーションが行われる。
【００３０】
また、ビジョンコントローラ３０は、ロボットコントローラ２０に回動情報を含む移動情報を送信して、ロボット１０に保持されたワーク１を回動させて撮像部４０によりワーク１を複数の回動位置において撮像し、撮像部４０により複数回撮像されたワーク１の撮像結果に基づいて、撮像部４０により撮像される画像における画像内回動中心を算出する動作を繰り返し行い、画像内回動中心と、移動情報とに基づいて、撮像部４０により撮像される画像の位置情報と、ロボット１０の位置情報とを対応づけるように構成されている。
【００３１】
また、ビジョンコントローラ３０は、キャリブレーション時に登録されたワーク１の部分１ｂを用いて、ロボット１０に保持された作業対象のワーク１の位置および姿勢を認識して、キャリブレーション結果に基づいて作業対象のワーク１の位置を補正するように構成されている。具体的には、キャリブレーション時に用いたワーク１と同じ種類のワーク１が作業対象の場合、ビジョンコントローラ３０は、作業対象のワーク１を認識するための登録を再度行うことなく、キャリブレーション時に登録されたワーク１の部分１ｂを用いてワーク１を認識するように構成されている。
【００３２】
次に、図４および図５を参照して、本実施形態によるロボットシステム１００のワーク認識処理について説明する。
【００３３】
図４のステップＳ１において、ロボットコントローラ２０とビジョンコントローラ３０とが接続される。ステップＳ２において、ビジョンコントローラ３０の設定が行われる。具体的には、ロボットコントローラ２０とビジョンコントローラ３０との間で通信が可能となるように、ビジョンコントローラ３０が設定される。ステップＳ３において、ビジョン条件ファイルが設定される。具体的には、ワーク１の位置および姿勢が認識される際のビジョン条件（キャリブレーション結果）を保存するファイルが指定される。なお、ビジョン条件は、ロボットコントローラ２０側に保存される。
【００３４】
ステップＳ４において、ロボットコントローラ２０にパラメータおよび変数の定義が行われる。つまり、ロボット１０を駆動させるための駆動情報を含むパラメータおよび変数が定義される。ステップＳ５において、ロボットコントローラ２０に対して検出ジョブの作成および実行が行われる。これにより、ロボットコントローラ２０とビジョンコントローラ３０との間で通信が行われ、ビジョンコントローラ３０による画像処理の結果に応じてロボット１０を制御することが可能となる。
【００３５】
ステップＳ６において、キャリブレーション処理が実行される。これにより、撮像部４０により撮像される画像の位置情報と、ロボット１０の位置情報とが対応づけられる。ステップＳ７において、計測用基準ワーク登録が行われる。具体的には、ワーク１に作業を行う際に、ワーク１が位置する基準となる位置が登録される。ステップＳ８において、作業対象のワーク１が計測（撮像および認識）される。そして、ステップＳ９において、作業対象のワーク１が基準ワーク登録された位置に位置するように補正（移動）される。
【００３６】
その後、基準ワーク登録されたワーク１を続けて作業する場合は、ステップＳ８およびステップＳ９の処理が繰り返される。また、基準ワーク登録されていないワーク１を作業する場合は、ステップＳ７の計測用基準ワーク登録処理に戻る。また、ロボット１０と、撮像部４０との位置関係が変更された場合は、ステップＳ６のキャリブレーション処理に戻る。そして、所定の数のワーク１の作業が終了後、ワーク認識処理が終了される。
【００３７】
次に、図５を参照して、図４のステップＳ６のキャリブレーション処理について詳細に説明する。
【００３８】
図５のステップＳ１１において、キャリブレーション用ワークの登録が行われる。具体的には、キャリブレーションに用いるワーク１の認識させるための部分１ｂ（図２および図３参照）がビジョンコントローラ３０側で登録される。ステップＳ１２において、キャリブレーションを行うためにロボットコントローラ２０側でキャリブレーションジョブが作成される。具体的には、ロボットコントローラ２０において、ビジョンコントローラ３０の移動情報に基づいて、ロボット１０を駆動させるようにジョブが作成される。
【００３９】
ステップＳ１３において、シフトデータ（Ｘ，Ｙ）（移動情報）がビジョンコントローラ３０から送信され、ロボットコントローラ２０で受信される。ステップＳ１４において、シフトデータ（Ｘ，Ｙ）（移動情報）に基づいて、ロボットコントローラ２０により、ロボット本体１１が駆動されてワーク１がＸＹ方向に水平移動される。ステップＳ１５において、ワーク１が撮像部４０により撮像される。
【００４０】
ステップＳ１６において、ワーク１が検出（ワーク１の特徴部分１ａが認識）されたか否かが判断される。ワーク１が検出されれば、ステップＳ１７に進み、ワーク１が検出されなければ、ステップＳ２３に進む。ステップＳ１７において、継続して判定（撮像および認識）を行うか否かが判断される。つまり、所定の回数だけ判定（撮像および認識）が行われたか否かが判断される。継続して判定するならば、ステップＳ１３に戻り、判定が終了すれば、ステップＳ１８に進む。これにより、ビジョンコントローラ３０により、撮像部４０により撮像された画像の方向および移動量（尺度）と、ロボット１０の移動方向および移動量とが対応づけられる。
【００４１】
ステップＳ１８において、シフトデータ（θ）（移動情報）がビジョンコントローラ３０から送信され、ロボットコントローラ２０で受信される。ステップＳ１９において、シフトデータ（θ）（移動情報）に基づいて、ロボットコントローラ２０により、ロボット本体１１が駆動されてワーク１が角度θ回動される。ステップＳ２０において、ワーク１が撮像部４０により撮像される。
【００４２】
ステップＳ２１において、ワーク１が検出（ワーク１の特徴部分１ａが認識）されたか否かが判断される。ワーク１が検出されれば、ステップＳ２２に進み、ワーク１が検出されなければ、ステップＳ２３に進む。ステップＳ２２において、継続して判定（撮像および認識）を行うか否かが判断される。つまり、所定の回数だけ判定（撮像および認識）が行われたか否かが判断される。また、ワーク１を撮像して算出した画像内回動中心が一定の範囲内に収束するように撮像および算出を繰り返すか否かが判断される。継続して判定するならば、ステップＳ１８に戻り、判定が終了すれば、キャリブレーション結果を登録してキャリブレーション処理を終了する。これにより、ビジョンコントローラ３０により、撮像部４０により撮像された画像の画像内回動中心と、ロボット１０のワーク１を回動させる回動中心とが対応づけられる。
【００４３】
ステップＳ１６またはステップＳ２１においてワーク１が検出されなければ、ステップＳ２３において、エラーが通知されてキャリブレーション処理が中止される。
【００４４】
本実施形態では、以下のような効果を得ることができる。
【００４５】
本実施形態では、上記のように、ビジョンコントローラ３０を、ロボットコントローラ２０にワーク１を移動させるための移動情報を送信して、ロボット１０に保持されたワーク１を移動させて撮像部４０によりワーク１を複数の位置において撮像し、ロボット１０に保持されたワーク１の登録された部分１ｂを複数の位置において認識して、認識結果と移動情報とに基づいて、撮像部４０により撮像される画像の位置情報と、ロボット１０の位置情報とを対応づけるキャリブレーションを行うように構成する。これにより、キャリブレーション用のチェッカーボードを用いることなく、作業対象のワーク１を用いて撮像部４０により撮像される画像の位置情報とロボット１０の位置情報とを対応づけるキャリブレーションを行うことができるので、部品点数の増加を抑制しつつ、撮像部４０により撮像される画像の位置情報と、ロボット１０の位置情報とを対応づけるキャリブレーションを行うことができる。また、キャリブレーションの際にビジョンコントローラ３０から送信される移動情報に基づいて、ロボット１０が駆動されるので、ロボットコントローラ２０側においてロボット１０の移動状態を記録しなくても、ビジョンコントローラ３０側でキャリブレーションの処理を行うことができる。これにより、キャリブレーションの処理が複雑化するのを抑制することができる。
【００４６】
また、本実施形態では、上記のように、ビジョンコントローラ３０を、キャリブレーション時に登録されたワーク１の部分１ｂを用いて、ロボット１０に保持された作業対象のワーク１の位置および姿勢を認識して、キャリブレーション結果に基づいて作業対象のワーク１の位置を補正するように構成する。これにより、キャリブレーション時に登録されたワーク１と同じ種類のワーク１に作業を行う場合には、作業対象のワーク１を認識するためにワーク１の部分を再度登録する必要がないので、その分、ワーク１の位置および姿勢を認識するための作業負担および処理負担を軽減することができる。
【００４７】
また、本実施形態では、上記のように、ビジョンコントローラ３０を、ロボット１０に保持されたワーク１の登録された部分１ｂの領域内で特徴部分１ａを抽出するとともに、ワーク１の特徴部分１ａを複数の移動された位置において撮像部４０により撮像し、ワーク１の特徴部分１ａの移動状態を取得し、ワーク１の特徴部分１ａの移動状態と、移動情報とに基づいて、キャリブレーションを行うように構成する。これにより、ワーク１の登録された部分１ｂからビジョンコントローラ３０により認識しやすい特徴部分１ａを自動的に抽出してキャリブレーションに用いることができるので、より精度よくキャリブレーションを行うことができる。
【００４８】
また、本実施形態では、上記のように、ビジョンコントローラ３０を、ロボットコントローラ２０に移動量情報を含む移動情報を送信して、ロボット１０に保持されたワーク１を複数回平行移動させて撮像部４０によりワーク１を複数の位置において撮像し、移動量情報と、撮像部４０により複数回撮像されたワーク１の撮像結果とに基づいて、撮像部４０により撮像される画像の座標情報と、ロボット１０の座標情報とを対応づけるように構成する。これにより、移動量情報に基づくワーク１の実際の移動と、撮像部４０により撮像された画像上のワーク１の移動とに基づいて、撮像部４０により撮像される画像の座標情報と、ロボット１０の座標情報とを容易に対応づけることができる。
【００４９】
また、本実施形態では、上記のように、ビジョンコントローラ３０を、ロボットコントローラ２０に移動情報を送信して、ロボット１０に保持されたワーク１を水平面内の第１の方向（Ｘ方向）に複数回移動させるとともに、第１の方向と直交する水平面内の第２の方向（Ｙ方向）に複数回移動させることにより、ワーク１を格子状に平行移動させて撮像部４０によりワーク１を複数の位置において撮像し、移動情報と、撮像部４０により複数回撮像されたワーク１の撮像結果とに基づいて、撮像部４０により撮像される画像の座標情報と、ロボット１０の座標情報とを対応づけるように構成する。これにより、水平面内を２次元的にワーク１を移動させて格子状の複数の位置においてワーク１を撮像した撮像結果と、移動情報に基づくワーク１の実際の移動とに基づいてキャリブレーションが行われるので、直線的に（１次元的に）移動させる場合に比べて、キャリブレーションをより精度よく行うことができる。
【００５０】
また、本実施形態では、上記のように、ビジョンコントローラ３０を、ロボットコントローラ２０に回動情報を含む移動情報を送信して、ロボット１０に保持されたワーク１を平行移動とは別に複数回回動させて撮像部４０によりワーク１を複数の回動位置において撮像し、回動情報と、撮像部４０により複数回撮像されたワーク１の撮像結果とに基づいて、撮像部４０により撮像される画像における画像内回動中心と、ロボット１０によりワーク１を回動させる回動中心とを対応づけるように構成する。これにより、回動情報に基づくワーク１の実際の移動（回動）と、撮像部４０により撮像された画像上のワーク１の移動（回動）とに基づいて、撮像部４０により撮像される画像の画像内回動中心と、ロボット１０によりワーク１を回動させる回動中心とを容易に対応づけることができる。
【００５１】
また、本実施形態では、上記のように、ビジョンコントローラ３０を、ロボットコントローラ２０に移動情報を送信して、ロボット１０に保持されたワーク１を回動させて撮像部４０によりワーク１を複数の回動位置において撮像し、撮像部４０により複数回撮像されたワーク１の撮像結果に基づいて、撮像部４０により撮像される画像における画像内回動中心を算出する動作を繰り返し行い、画像内回動中心と、移動情報とに基づいて、撮像部４０により撮像される画像の位置情報と、ロボット１０の位置情報とを対応づけるように構成されている。これにより、複数の回動位置においてワーク１を撮像して求めた画像内回動中心が一定の範囲内に収束するまで撮像および算出を繰り返すことによって、画像内回動中心を精度よく算出することができるので、撮像部４０により撮像される画像の画像内回動中心と、ロボット１０によりワーク１を回動させる回動中心とをより精度よく対応づけることができる。
【００５２】
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
【００５３】
たとえば、上記実施形態では、撮像部により平面的（２次元的）な位置を認識する構成の例を示したが、撮像部が３次元カメラを含み、撮像部により３次元的な位置を認識する構成であってもよい。
【００５４】
また、上記実施形態では、水平面内を格子状にワークを移動させてキャリブレーションを行う構成を示したが、３次元的に格子状（直方体格子状）にワークを移動させてキャリブレーションを行ってもよい。
【００５５】
また、上記実施形態では、ビジョンコントローラ（撮像部制御手段）と、ロボットコントローラ（ロボット制御手段）とが別個に設けられている構成の例を示したが、撮像制御手段とロボット制御手段とが一体のコントローラに設けられていてもよい。
【００５６】
また、上記実施形態では、撮像部が固定的に設置されている例を示したが、撮像部が移動可能に構成されていてもよい。この場合、撮像部の移動毎にキャリブレーションを行ってもよいし、撮像部の移動状態からキャリブレーションの補正を行ってもよい。
【００５７】
また、上記実施形態では、説明の便宜上、制御手段による制御処理を処理フローに沿って順番に処理を行うフロー駆動型のフローチャートを用いて説明したが、本発明はこれに限られない。本発明では、制御手段による処理を、イベント単位で処理を実行するイベント駆動型（イベントドリブン型）の処理により行ってもよい。この場合、完全なイベント駆動型で行ってもよいし、イベント駆動およびフロー駆動を組み合わせて行ってもよい。
【符号の説明】
【００５８】
１  ワーク
１０  ロボット
１１  ロボット本体
１３  ハンド部
２０  ロボットコントローラ（ロボット制御手段）
３０  ビジョンコントローラ（撮像制御手段）
４０  撮像部
１００  ロボットシステム
【図１】
2015174191.tif 000003
【図２】
2015174191.tif 000004
【図３】
2015174191.tif 000005
【図４】
2015174191.tif 000006
【図５】
2015174191.tif 000007