説明

ロボット制御システム、ロボットシステム及びプログラム

【課題】 マスク画像を設定した画像を用いてビジュアルサーボを行うことができるロボット制御システム、ロボットシステム及びプログラムの提供。
【解決手段】 ロボット制御システム10は、参照画像と撮像画像とに基づきビジュアルサーボを行う処理部110と、制御信号に基づきロボット30を制御するロボット制御部120と、参照画像とマスク画像とを記憶する記憶部130とを含む。記憶部130は、ワーク40又はロボット30のハンド330の領域にマスク画像が設定されたマスク有り参照画像を、参照画像として記憶する。処理部110は、ワーク40又はロボット30のハンド330の領域にマスク画像を設定したマスク有り撮像画像を、撮像画像に基づいて生成し、マスク有り参照画像とマスク有り撮像画像とに基づきビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部120に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御システム、ロボットシステム及びプログラム等に関係する。
【背景技術】
【0002】
近年、生産現場において、人が行ってきた作業を機械化・自動化するために、産業用ロボットを導入することが多くなってきた。しかし、ロボットの位置決めを行うにあたっては、精密なキャリブレーションが前提となり、ロボット導入の障壁となっている。
【0003】
ここで、ロボットの位置決めを行う手法の一つとしてビジュアルサーボがある。ビジュアルサーボは、参照画像(ゴール画像、目標画像)と撮像画像(現在の画像)との差に基づいて、ロボットを制御する技術である。ある種のビジュアルサーボは、キャリブレーションに精密さを求めない点で有用であり、ロボット導入障壁を下げる技術として注目されている。
【0004】
しかし、その一方で、ビジュアルサーボは、カメラで捉えることのできる範囲でなければ、ロボットを制御することができないという欠点をもつ。
【0005】
このため、一つのカメラでは捉えきれない範囲において、ロボットを制御するためには、例えばカメラを複数配置し、カメラごとに参照画像を持たせ、ビジュアルサーボを行う手法等が想定される。
【0006】
これらのビジュアルサーボに関する技術としては非特許文献1に記載される従来技術がある。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】システム/制御/情報,Vol.53,No.11,pp.1−8,2009,橋本浩一,ビジュアルサーボV −特徴ベースビジュアルサーボ
【発明の概要】
【発明が解決しようとする課題】
【0008】
多種類の作業に対応できる汎用的なロボットを使うことを想定した場合、異なるワークやツールの組み合わせのすべてに対して、必要な参照画像を用意することは困難である。
【0009】
さらに、ビジュアルサーボは使用する画像によっては、想定時間内に画像処理が終わらずに制御信号送出が遅れたり、目標位置からロボットが一定距離以上離れている場合に、画像処理に失敗して有効な制御信号を生成することができないこともある。
【0010】
本発明の目的は、マスク画像を設定した画像を用いてビジュアルサーボを行うことができるロボット制御システム、ロボットシステム及びプログラム等を提供することにある。
【0011】
また、本発明の目的は、ワークやハンド等にマスク画像を設定し、マスク画像を設定した画像を用いてビジュアルサーボを行うことにより、参照画像の準備コストを抑えつつ、ワークとハンドが一定距離以上離れている場合でも、有効な制御信号を算出することができるロボット制御システム、ロボットシステム及びプログラム等を提供することにある。
【課題を解決するための手段】
【0012】
本発明の一態様は、ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、前記処理部から出力された制御信号に基づいて、前記ロボットを制御するロボット制御部と、ビジュアルサーボ用の前記参照画像とマスク画像とを記憶する記憶部と、を含み、前記記憶部は、ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定されたマスク有り参照画像を、前記参照画像として記憶し、前記処理部は、前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して前記マスク画像を設定したマスク有り撮像画像を、前記撮像画像に基づいて生成し、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システムに関係する。また本発明の他の態様は、上記各部としてコンピューターを機能させるプログラム、又は該プログラムを記憶したコンピューター読み取り可能な情報記憶媒体に関係する。
【0013】
本発明の一態様では、ワーク及びロボットのハンドのうち、少なくとも一方の領域に対して、あらかじめマスク画像が設定されたマスク有り参照画像を、参照画像として記憶しておく。さらに、撮像画像に映るワーク及びロボットのハンドのうち、少なくとも一方の領域に対してマスク画像を設定したマスク有り撮像画像を、撮像画像に基づいて生成する。これにより、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うことが可能となる。
【0014】
また、本発明の一態様では、前記処理部は、前記ロボットのアームのエンドポイントの位置と前記目標位置との差が第1の閾値以上であると判断する場合に、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0015】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ロボット各部の位置を大きく動かすような処理量が大きい処理を行う場合に、ロボット制御システムにかかる処理負荷を抑制すること等が可能となる。
【0016】
また、本発明の一態様では、前記処理部は、前記ロボットの前記アームの前記エンドポイントの位置と前記目標位置との差が前記第1の閾値以上であると判断する場合に、前記アームの前記エンドポイントを所定の位置へ移動させるための前記制御信号を、前記ロボット制御部に出力し、前記ロボット制御部は、前記制御信号に基づいて前記ロボットを制御し、前記ロボットの前記アームの前記エンドポイントを前記所定の位置へ移動させ、前記処理部は、前記ロボットが前記所定の位置に位置すると判断した場合において、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0017】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、ロボットのアームのエンドポイントを所定の位置へ移動させた後に、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ビジュアルサーボを行う回数を削減し、ロボット制御システムにかかる処理負荷を抑制すること等が可能になる。
【0018】
また、本発明の一態様では、前記記憶部は、前記マスク画像が設定されていないマスク無し参照画像と前記マスク有り参照画像とを、前記参照画像として記憶し、前記処理部は、前記ロボットのアームのエンドポイントと目標位置との差が第2の閾値以下であると判断する場合に、前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0019】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第2の閾値以下であると判断する場合に、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ロボット各部の位置の微調整のような精度の高い制御を要する場合に、精度の高いビジュアルサーボを行うこと等が可能となる。
【0020】
また、本発明の一態様では、前記記憶部は、前記マスク画像が設定されていないマスク無し参照画像と前記マスク有り参照画像とを、前記参照画像として記憶し、前記処理部は、前記マスク画像が設定されていない前記撮像画像である前記マスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行い、前記制御信号の決定ができなかった場合に、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0021】
これにより、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、制御信号の決定ができなかった場合に、マスク有り撮像画像とマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、制御信号を決定できずに、ロボットが制御不可能になることを回避すること等が可能となる。
【0022】
また、本発明の一態様では、前記処理部は、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に設定されたマーカーに基づいて、前記マスク画像を設定してもよい。
【0023】
これにより、ワーク及びロボットのハンドのうち、少なくとも一方の領域に設定されたマーカーに基づいて、マスク画像を設定すること等が可能になる。従って、マスク画像を設定する位置の特定が容易になり、処理負荷を軽減すること等が可能になる。
【0024】
また、本発明の一態様では、前記処理部は、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域の画像形状認識処理を行うことにより、前記マスク画像を設定してもよい。
【0025】
これにより、ワーク及びロボットのハンドのうち、少なくとも一方の領域の画像形状認識処理を行うことにより、マスク画像を設定すること等が可能になる。従って、マスク画像の設定を行う際の準備コストをかけずに、マスク画像を設定すること等が可能となる。
【0026】
また、本発明の一態様では、前記記憶部は、前記参照画像として複数のマスク有り参照画像を記憶し、前記処理部は、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の属性情報に応じたマスク有り撮像画像を生成し、前記複数のマスク有り参照画像の中から、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の前記属性情報に応じたマスク有り参照画像を選択して、前記マスク有り撮像画像と前記マスク有り参照画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0027】
これにより、ワーク及びロボットのハンドのうち、少なくとも一方の属性情報に応じたマスク有り撮像画像とマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、例えば、撮像画像の全体がマスク画像で覆われてしまう場合などの、マスク有り画像を用いたビジュアルサーボの実施が困難になる状態を防ぐことができる。
【0028】
また、本発明の他の態様では、前記ロボット制御システムを含むことを特徴とするロボットシステムに関係する。
【図面の簡単な説明】
【0029】
【図1】本実施形態のシステム構成例。
【図2】本実施形態の詳細なシステム構成例。
【図3】位置ベースビジュアルサーボのフローチャート。
【図4】図4(A)、図4(B)は参照画像と撮像画像の説明図。
【図5】特徴ベースビジュアルサーボのフローチャート。
【図6】図6(A)、図6(B)はマスク画像を設定した画像の説明図。
【図7】図7(A)、図7(B)はマスク画像を用いたビジュアルサーボの説明図。
【図8】アームのエンドポイントが目標位置と十分離れている場合のビジュアルサーボの説明図。
【図9】図9(A)、図9(B)は所定位置までロボットを移動させた後ビジュアルサーボを行う手法の説明図。
【図10】アームのエンドポイントが目標位置と十分近い場合のビジュアルサーボの説明図。
【図11】図11(A)、図11(B)はマーカーを基準にマスク画像を設定する手法の説明図。
【図12】図12(A)、図12(B)は画像形状認識処理によりマスク画像を設定する手法の説明図。
【図13】図13(A)、図13(B)は属性情報に応じてマスク画像を選択する手法の説明図。
【図14】本実施形態のマスク画像を用いたビジュアルサーボのフローチャート。
【発明を実施するための形態】
【0030】
以下、本実施形態について説明する。まず、本実施形態のシステム構成例を説明し、次に、本実施形態の具体的な実施例を示す。その後、フローチャートを用いて本実施形態の処理の詳細について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0031】
1.システム構成例
1.1 ロボットシステムの構成例
本実施形態に係るロボットシステムの構成例を図1に示す。ロボットシステムは、ロボット制御システム10と、撮像部20と、ロボット30とを含む。ただし、ロボットシステムは図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0032】
ロボット制御システム10は、撮像部20により得られる画像に基づいて、制御信号を生成し、制御信号に基づいてロボット30を制御する。ロボット制御システムの詳細は後述する。なお、本実施形態のロボット制御システム10の一部又は全部の機能は、例えばPC等の情報処理装置などにより実現される。但し、ロボット制御システム10の一部又は全部の機能を、撮像部20やロボット30により実現したり、情報処理装置とは異なる電子機器により実現してもよい。また、本実施形態のロボット制御システム10の一部又は全部の機能は、情報処理装置もしくは撮像部20、ロボット30と通信により接続されたサーバにより実現されてもよい。
【0033】
撮像部(カメラ)20は、作業スペースを撮影する。この撮像部20は、例えばCCD等の撮像素子と光学系を含む。また画像処理用等に用いられるデバイス(プロセッサー)を含むことができる。撮像部20は、ロボット30やワーク40が位置し得る作業スペースを撮影することができる位置に配置される。例えば、撮像部20は、ワーク40の直上でもよいし(固定カメラ)、ロボット30のアーム320やハンド330等に取り付けられてもよい(可動カメラ)。なお、ワーク40とは、ロボット30における加工対象物のことをいう。また、撮像部20は、一台で作業スペース全体又は一部を撮影してもよいし、複数台によって、作業スペースの全体又は一部を撮影してもよい。そして、撮像部20は、撮像画像情報をロボット制御システム10等に出力する。また、撮像部20を用いることにより、ワーク40の位置や姿勢等に関する情報を検出できればよいため、撮像部20による撮像画像の取得以外の手法、例えばレーザー等を用いた3次元スキャン等を用いてもよい。本実施形態においては、撮像画像情報をそのままロボット制御システム10に出力するものとするが、これに限定されるものではない。例えば、ロボット制御システム10の処理部の一部を撮像部20に持たせてもよい。その場合、撮像画像に対して画像処理が施された後の情報が出力されることになる。
【0034】
ロボット30は、アーム320及びハンド330を有し、ロボット制御システム10からの制御信号に従い処理を行う。ロボット30は、例えばワーク40の把持や加工などの処理を行う。
【0035】
ここで、アーム320とは、ロボット30の一部の領域であって、一つ以上の関節を含む可動領域のことをいう。また、アーム320のエンドポイントとは、アーム320の先端部分の領域であって、ロボット30のハンド330以外の他の領域と接続されていない領域のことをいう。さらに、ハンド330とは、ワーク40を把持したり、ワーク40に加工を施すためにアーム320のエンドポイントに取り付ける部品のことをいう。なお、アームのエンドポイントの位置は、ハンドの位置としてもよい。
【0036】
1.2 ロボット制御システムの構成例
次に、本実施形態のロボット制御システム及びこれを含むロボットシステムの詳細な構成例を図2に示す。
【0037】
ロボット制御システム10は、処理部110と、ロボット制御部120と、記憶部130と、I/F部(入力部)140と、を含む。ロボット制御システム10は、図2の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0038】
次に各部で行われる処理について説明する。
【0039】
処理部110は、記憶部130からのデータや、I/F部140において受信した撮像部20或いはロボット30からの情報等に基づいて種々の処理を行う。この処理部110の機能は、各種プロセッサー(CPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムなどにより実現できる。
【0040】
さらに、処理部110は、制御信号生成部112と、マスク有り撮像画像生成部114と、を含む。処理部110は図2の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0041】
制御信号生成部112は、参照画像と撮像画像とに基づいて、ビジュアルサーボを行い、ロボット30の制御信号を生成し、制御信号をロボット制御部120に出力する。マスク有り撮像画像生成部114の動作については、後述する。なお、ここでは制御信号生成部112とマスク有り撮像画像生成部114は、ロボット制御システム10の処理部110に設けられるものとしたがこれに限定されるものではない。制御信号生成部112とマスク有り撮像画像生成部114は、撮像部20やロボット30等に内蔵されてもよい。
【0042】
ロボット制御部120は、処理部110から出力された制御信号に基づいて、ロボット30を制御する。
【0043】
記憶部130は、データベースを記憶したり、処理部110等のワーク領域となるもので、その機能はRAM等のメモリーやHDD(ハードディスクドライブ)などにより実現できる。
【0044】
I/F部140は、ロボット制御システム10に対するユーザーからの入力等を行ったり、撮像部20やロボット30からの情報を受け付けるためのインターフェースである。ユーザーからの入力等に関しては、スイッチやボタン、キーボード或いはマウス等から構成されてもよい。
【0045】
また、ロボット制御システム10を含むロボットシステムの例としては、撮像部20や、ロボット30等を含むロボットシステム等が挙げられる。
【0046】
撮像部20については上述の通りである。ロボット30は、アーム320及びハンド330の他に制御部310を含む。制御部310は、ロボット制御システム10からの情報を受け付けロボット30の各部(アーム320及びハンド330等)の制御を行う。
【0047】
1.3 ビジュアルサーボの概要
本実施形態の特徴を説明する前に、ビジュアルサーボの概要と、位置ベースビジュアルサーボの流れ、特徴ベースビジュアルサーボの流れについて説明する。
【0048】
ビジュアルサーボとは、目標物の位置の変化を視覚情報として計測し、それをフィードバック情報として用いることによって目標物を追跡するサーボ系の一種である。ビジュアルサーボは、サーボ系への入力情報(制御量)によって、位置ベースビジュアルサーボと特徴ベースビジュアルサーボの二つに大別される。位置ベースビジュアルサーボは、物体の位置情報や姿勢情報がサーボ系への入力情報となり、特徴ベースビジュアルサーボは、画像の特徴量がサーボ系への入力情報となる。他にも、位置ベースと特徴ベースをハイブリッドした手法もある。本発明で扱うビジュアルサーボは、これら全ての手法を対象とする。
【0049】
これらのビジュアルサーボにおける共通点は、参照画像と撮像画像を元にサーボ系への入力情報を求める点である。本発明は、この参照画像と撮像画像に、マスク画像を設定することにより、参照画像の準備コストの抑制と、サーボ系への入力情報の算出の容易化を図る。
【0050】
1.3.1 位置ベースビジュアルサーボの流れ
まず、図3において、位置ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボでは、まず参照画像を設定する(S1)。ここで、参照画像とは、目標画像やゴール画像とも呼ばれ、ビジュアルサーボの制御目標となる画像であり、ロボット30の目標状態を表す画像をいう。すなわち、参照画像とは、ロボット30の目標位置や目標姿勢を表す画像、もしくはロボット30が目標位置に位置する状態を表す画像である。また、参照画像はあらかじめ用意しておき、記憶部130に記憶しておく必要がある。
【0051】
次に、撮像部20によって作業スペースを撮像し、撮像画像を取得する(S2)。撮像画像とは、撮像部20によって撮像された画像である。撮像画像は、作業スペースの現在の状態を表しており、撮像画像内にロボット30やワーク40が映りこんでいる場合には、ロボット30やワーク40の現在の状態を表している。なお、撮像部20の性能によっては処理遅延が生じるが、ここでは、処理遅延が生じている場合でも、撮像画像には現在の状態が映されているものとして扱う。
【0052】
例えば、図4(A)に参照画像RIMの具体例を、図4(B)に撮像画像PIMの具体例を示す。撮像画像PIMにおいて、ロボットRBはアームAMとハンドHD(もしくはエンドポイントEP)を上方へ向けているが、参照画像RIMでは、ロボットRBはアームAMを折り曲げて、ハンドHDをワークWKに近づけている。したがって、この具体例においては、ロボットRBのアームAMを折り曲げ、ハンドHDをワークWKに近づけるようにロボットRBを制御することになる。
【0053】
次に、制御指令を生成する(S3)。例えば、制御指令生成は、参照画像と撮像画像に基づいて、座標変換の一つであるホモグラフィー等を用いることにより行われる。この場合には、ホモグラフィー行列を求め、ホモグラフィー行列からロボット30の制御信号として速度指令を生成する。
【0054】
ここで、制御信号(制御指令)とは、ロボット30を制御するための情報を含む信号のことをいう。また、速度指令とは、ロボット30の各部を制御するための情報として、ロボット30のアーム320のエンドポイント等の移動速度や回転速度を与える指令の方法を指す。
【0055】
そして、生成された制御信号に基づいて、制御量(ここではロボット30の位置や姿勢)が目標値に収束したか否かを判断する(S4)。例えば、ホモグラフィーを用いる場合において、速度指令により表される速度ベクトルが0である場合には、制御量である位置や姿勢が目標状態に到達したとみなすことができるため、制御量が目標値に収束したと判断し、速度ベクトルが0でない場合には、制御量が目標値に収束していないと判断する。
【0056】
制御量が目標値に収束したと判断する場合にはビジュアルサーボを終了する。一方、制御量が目標値に収束していないと判断する場合には、処理部110はロボット制御部120に制御指令を送出する(S5)。
【0057】
位置ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【0058】
1.3.2 特徴ベースビジュアルサーボの流れ
次に、図5において、特徴ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボと同様に、まず参照画像を設定し(S10)、次に、撮像部20によって作業スペースを撮像し、撮像画像を取得する(S11)。なお、特徴ベースビジュアルサーボを用いる場合には、参照画像を設定する際に参照画像の特徴抽出を行い、特徴量を算出しておくことが望ましい。または、参照画像の特徴を抽出した参照画像情報を記憶部130に記憶しておいてもよい。画像の特徴抽出については、例えば、コナー検出やガウスフィルタ等を用いて行なう。
【0059】
次に、撮像画像の特徴を抽出する(S12)。なお、参照画像の特徴抽出は、参照画像設定の際に行っておくことが望ましいが、ここで行ってもよい。特徴抽出では、ビジュアルサーボ系への入力情報(制御量)として、画像の特徴量を求める。
【0060】
そして、画像の特徴量に基づいて、参照画像と撮像画像が一致するか否かを比較する(S13)。画像が一致すると判断する場合(S14)には、ビジュアルサーボを終了する。一方、画像が一致しないと判断する場合(S14)には、制御指令を生成し(S15)、ロボット制御部120に制御指令を送出する(S16)。
【0061】
特徴ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【0062】
1.4 本実施形態の特徴
以上の本実施形態では、ロボット30の目標状態を表す画像である参照画像と、撮像部20によりロボット30を撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部110と、処理部110から出力された制御信号に基づいて、ロボット30を制御するロボット制御部120と、ビジュアルサーボ用の参照画像とマスク画像とを記憶する記憶部130と、を含む。そして、記憶部130は、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定されたマスク有り参照画像を、参照画像として記憶する。さらに、処理部110は、撮像画像に映るワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対してマスク画像を設定したマスク有り撮像画像を、撮像画像に基づいて生成し、マスク有り参照画像とマスク有り撮像画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部120に出力する。
【0063】
これにより、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、あらかじめマスク画像が設定されたマスク有り参照画像を、参照画像として記憶しておくことができる。さらに、撮像画像に映るワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対してマスク画像を設定したマスク有り撮像画像を、撮像画像に基づいて生成することができる。よって、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うことが可能となる。
【0064】
ここで、マスク画像とは、作業スペースの一部の領域を覆うために設定される画像である。本実施形態では、作業スペース内にあるワーク40やハンド330のうち、少なくとも一方の領域に対して設定される画像である。マスク画像自体がどのような画像であるかは問わないが、他の領域と区別しやすい画像、例えば黒色一色からなる画像などが望ましい。
【0065】
図6(A)に、作業スペースを撮像した画像でありマスク画像が未設定である画像NMIMを、図6(B)に、作業スペースを撮像した画像でありマスク画像を設定した画像MIMを示す。図6(A)において、ロボットRBのハンドHDとワークWKが映っている領域が、図6(B)では、領域MHDとMWKに置き換えられている。本例では、図6(B)において、このハンドHDとワークWKを覆う黒色一色の領域がマスク画像であり、ハンドHDとワークWKの領域にマスク画像を設定することにより、領域MHD及びMWKとしている。
【0066】
また、マスク画像を設定するとは、画像を生成する際に、作成される画像に映し出される任意の領域をマスク画像に置き換えることをいう。生成した画像の上にマスク画像を重畳したり、画像の任意の領域を切り出してマスク画像をはめ込むなど、マスク画像に置き換える方法は問わない。
【0067】
さらに、マスク有り参照画像とは、ロボット30の目標状態を表す画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定された画像をいう。例えば、マスク有り参照画像は、図6(B)に示すMIMのような参照画像である。
【0068】
一方、マスク無し参照画像とは、ロボット30の目標状態を表す画像であり、マスク画像が設定されていない画像をいう。例えば、マスク無し参照画像は、図6(A)に示すNMIMのような参照画像である。
【0069】
また、マスク有り撮像画像とは、撮像部20によりロボット30を撮像した画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定された画像をいう。例えば、マスク有り撮像画像は、図6(B)に示すMIMのような撮像画像である。
【0070】
一方、マスク無し撮像画像とは、撮像部20によりロボット30を撮像した画像であり、マスク画像が設定されていない画像をいう。例えば、マスク無し撮像画像は、図6(A)に示すNMIMのような撮像画像である。
【0071】
なお、マスク有り撮像画像の生成は、処理部110に含まれるマスク有り撮像画像生成部114によって行われる。
【0072】
以上のように、参照画像としてマスク有り参照画像を使用するため、ワークやハンドが異なっていた場合でも、同じマスク有り参照画像を使用することができる場合がある。そのため、ワークやハンドの種類が多く、それらの組み合わせ全てについて参照画像を準備する場合に比べて、参照画像の準備コストを抑えることが可能となる。
【0073】
また、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うことが可能になるため、位置ベースビジュアルサーボを行う際には、ホモグラフィー行列の算出等が容易になり、特徴ベースビジュアルサーボを行う際には、特徴量の抽出が容易になる。よって、制御信号を算出する際の処理量を軽減することができ、ワークとハンドが一定距離以上離れている場合でも、有効な制御信号を算出することが可能となる。
【0074】
また、処理部110は、ロボット30のアーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、マスク有り参照画像とマスク有り撮像画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0075】
ここで、アーム320のエンドポイントの位置と目標位置との差とは、3次元空間上における二点間の直線距離だけではなく、数学的にこれと等価な情報も含まれる。例えば、2次元の撮像画像におけるアーム320のエンドポイントの位置と目標位置との距離などがある。具体的な一例としては、後述する図8に示すような、2次元画像上におけるワークWKの中心点WCP(目標位置)とハンドHDの中心点HCP間の距離L1のような値をいう。他にも、撮像画像上にアーム320のエンドポイントの位置もしくは目標位置のどちらか一方しか映っていない場合には、アーム320のエンドポイントの位置と目標位置との差を第1の閾値よりも大きい所定の値と設定すること等がある。
【0076】
また、第1の閾値とは、アーム320のエンドポイントの位置と目標位置が十分に離れているか否かを判定する基準となる値である。第1の閾値には、アーム320のエンドポイントの位置と目標位置との差として用いられている値に対応する基準値が設定される。また、第1の閾値は、あらかじめ設定されるものでも良いし、処理部110等によって算出されるものであっても良い。例えば、第1の閾値とは、後述する図8に示すような、2次元画像上におけるワークWKの中心点WCP(目標位置)を中心とする円の半径R1のような値をいう。
【0077】
これにより、アーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、アーム320のエンドポイントの位置と目標位置が十分に離れていると判断することができる。そして、この場合に、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。アーム320のエンドポイントの位置と目標位置が十分に離れている場合には、ロボット各部の位置を大きく動かすことが多いため、処理量が大きくなることが多い。マスク有り撮像画像とマスク有り参照画像とに基づくビジュアルサーボは、上述した通り、処理量を抑えることができるという利点があるため、このような処理を行い、処理負荷を抑制することが有効である。
【0078】
また、処理部110は、ロボット30のアーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、アーム320のエンドポイントを所定の位置へ移動させるための制御信号を、ロボット制御部120に出力してもよい。そして、ロボット制御部120は、制御信号に基づいてロボット30を制御し、ロボット30のアーム320のエンドポイントを所定の位置へ移動させてもよい。さらに、処理部110は、ロボット30が所定の位置に位置すると判断した場合において、マスク有り参照画像とマスク有り撮像画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0079】
ここで、所定の位置とは、ビジュアルサーボを行うことなく、ロボット又はロボットの各部を移動させることができる位置のことをいう。所定の位置は、例えば、ロボット30のアーム320のエンドポイントの初期位置でも良いし、初期位置以外のあらかじめ設定された位置であっても良い。
【0080】
これにより、ロボット30のアーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、ロボット30のアーム320のエンドポイントを所定の位置へ移動させた後に、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。
【0081】
この手法によれば、ビジュアルサーボを行わずに、ロボット30を所定の位置へ移動させることができるため、ビジュアルサーボを行う回数を削減することができる場合がある。そのため、ロボット制御システムにかかる処理負荷を抑制することができる。
【0082】
また、記憶部130は、マスク画像が設定されていないマスク無し参照画像とマスク有り参照画像とを、参照画像として記憶してもよい。そして、処理部110は、ロボット30のアーム320のエンドポイントと目標位置との差が第2の閾値以下であると判断する場合に、マスク画像が設定されていない撮像画像であるマスク無し撮像画像と、マスク無し参照画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0083】
ここで、第2の閾値とは、アーム320のエンドポイントの位置と目標位置が十分に近いか否かを判定する基準となる値である。第2の閾値には、アーム320のエンドポイントの位置と目標位置との差として用いられる値に対応する基準値が設定される。また、第2の閾値は、あらかじめ設定されるものでも良いし、処理部110等によって算出されるものであっても良い。さらに、第2の閾値は、第1の閾値と同じ値であってもよい。例えば、第2の閾値とは、後述する図10に示すような、2次元画像上におけるワークWKの中心点WCP(目標位置)を中心とする円の半径R2のような値をいう。
【0084】
これにより、アーム320のエンドポイントの位置と目標位置との差が第2の閾値以下であると判断する場合に、アーム320のエンドポイントの位置と目標位置が十分に近いと判断することができる。そして、この場合に、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。アーム320のエンドポイントの位置と目標位置が十分に近い場合には、ロボット各部の位置の微調整をすることが多いため、精度の高い制御を要することが多い。マスク無し撮像画像とマスク無し参照画像とに基づくビジュアルサーボは、処理量はかかるものの、ワーク及びハンドの大きさや形状等の情報を詳細に認識することができるため、より精度の高い制御を行うことができるという利点がある。よって、このような処理が有効である。
【0085】
また、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、処理負荷が大きすぎるため、制御信号の決定ができない場合がある。
【0086】
そこで、処理部110は、マスク無し撮像画像とマスク無し参照画像とに基づいてビジュアルサーボを行い、制御信号の決定ができなかった場合に、マスク有り参照画像とマスク有り撮像画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0087】
これにより、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、制御信号の決定ができなかった場合に、マスク有り撮像画像とマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、制御信号を決定できずに、ロボットを制御不可能になることを回避すること等が可能となる。
【0088】
また、処理部110は、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に設定されたマーカーに基づいて、マスク画像を設定してもよい。
【0089】
ここで、マーカーとは、目印として利用することができる文字、図形、記号、模様もしくは立体的形状もしくはこれらの結合又はこれらと色彩との結合であって、ワーク及びロボットのうち少なくとも一方に付すものをいう。例えば、マーカーは後述する図11(A)のMKのようなものであり、例えば、マーカーはシールのようなものである。
【0090】
これにより、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に設定されたマーカーに基づいて、マスク画像を設定すること等が可能になる。その結果、マスク画像を設定する位置の特定が容易になり、処理負荷を軽減すること等が可能になる。
【0091】
また、処理部は、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域の画像形状認識処理を行うことにより、マスク画像を設定してもよい。
【0092】
ここで、画像形状認識処理とは、画像中の物体の形状を認識するために用いられる手法のこといい、例えば後述する図12(A)に示すようなオプティカルフロー解析などを指す。
【0093】
これにより、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域の画像形状認識処理を行うことにより、マスク画像を設定すること等が可能になる。画像形状認識処理を行う際には、ハンド等にマーカーを貼り付けておく等の準備をする必要はない。従って、マスク画像の設定を行う際の準備コストをかけずに、マスク画像を設定すること等が可能となる。
【0094】
また、記憶部130は、参照画像として複数のマスク有り参照画像を記憶してもよい。そして、処理部110は、ワーク40及びハンド330のうち、少なくとも一方の属性情報に応じたマスク有り撮像画像を生成し、複数のマスク有り参照画像の中から、ワーク40及びハンド330のうち、少なくとも一方の属性情報に応じたマスク有り参照画像を選択して、マスク有り撮像画像とマスク有り参照画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0095】
ここで、属性情報とは、物体の長さや幅、高さ、面積、色彩、模様、形状、種類、名称などの情報のうち、いずれかを含む情報のことをいう。例えば、後述する図13(B)には、それぞれの属性情報に対応するマスク画像の例を示す。
【0096】
これにより、ワーク40及びハンド330のうち、少なくとも一方の属性情報に応じたマスク有り撮像画像とマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、例えば、マスク画像がワークやハンドに釣り合わないh°ため、撮像画像の全体がマスク画像で覆われてしまう場合などの、マスク有り画像を用いたビジュアルサーボの実施が困難になる状態を防ぐことができる。
【0097】
なお本実施形態のロボット制御システム等は、プログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御システム等が実現される。具体的には情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そしてCPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
【0098】
2.具体的な実施例
以下では、図7(A)〜図13(B)を用いて、本実施形態の具体的な実施例について説明する。
【0099】
まず、図7(A)、図7(B)を用いて、マスク有り参照画像とマスク有り撮像画像に基づいて、ビジュアルサーボを行う手法を説明する。図7(A)はマスク有り参照画像MRIMを、図7(B)はマスク有り撮像画像MPIMを示す。
【0100】
マスク有り参照画像MRIMは事前に準備される。この場合には、ロボットRB及びロボットRBの各部を期待する位置に配置した上で、撮像部により作業スペースを撮像し、画像を生成する。そして、生成された画像に映るワーク及びハンドの領域にマスク画像を重畳し、領域MWK及び領域MHDとした上で、マスク有り参照画像MRIMを生成する。
【0101】
一方、マスク有り撮像画像MPIMは、実際にビジュアルサーボを行う際に、撮像部により撮像される画像にマスク画像を重畳して生成される。マスク画像を重畳する方法は、マスク有り参照画像MRIMと同様である。
【0102】
本例では、マスク有り参照画像MRIMのMHDと、マスク有り撮像画像MPIMのMHDとの位置が異なるため、マスク有り撮像画像MPIMのMHDをマスク有り参照画像MRIMのMHDの位置に近付けるような制御信号をホモグラフィー等により算出する。
【0103】
次に、図8を用いて、アームのエンドポイントが目標位置と十分離れている場合におけるビジュアルサーボの説明をする。なお、図8はワークWKの中心点WCPが目標位置と一致している場合を示している。
【0104】
本例では、2次元の撮像画像上において、撮像画像に映るワークWKの中心点WCP(目標位置)とハンドHDの中心点HCPとの距離L1が、WCPを中心とする円の半径R1以上である場合には、アームのエンドポイントが目標位置と十分離れていると判断し、L1がR1よりも小さい場合には、十分離れていないと判断する。
【0105】
図8の場合においては、L1がR1以上であるため、アームのエンドポイントが目標位置と十分離れていると判断し、ワークWKとハンドHDにマスク画像を設定し、マスク有り撮像画像を生成する。そして、マスク有り参照画像とマスク有り撮像画像を用いて、ビジュアルサーボを行う。
【0106】
次に、図9(A)と図9(B)を用いて、所定位置までロボットを移動させた後、ビジュアルサーボを行う手法を説明する。
【0107】
まず、図9(A)は、ビジュアルサーボを複数回行うことにより、ロボットRB及びロボットRBの各部を目標位置に移動させる手法を示している。この時、第1の撮像部により映すことのできる範囲をVA1、第2の撮像部により映すことのできる範囲をVA2、第3の撮像部により映すことのできる範囲をVA3とする。本例では、VA1にロボットRBのハンドHDが映っているため、VA1で一回目のビジュアルサーボを行い、VA1での目標位置にハンドHDを移動させる。次に、VA2、VA3と順にビジュアルサーボを行い、VA2での目標位置を経て、最終的な目標位置でもあるVA3での目標位置にハンドHDを移動させる。
【0108】
図9(A)の場合には、1回のビジュアルサーボにより直接最終的な目標位置へハンドHDを移動させることができず、処理負荷が大きいビジュアルサーボを複数回繰り返す必要がある。また、VA1やVA2では、ロボットRB及びロボットRBの各部を目標位置へ厳密に移動させることを求められておらず、最終目標位置であるVA3での目標位置にさえロボットRB及びロボットRBの各部を正確に移動させればよい。さらに、VA3内からビジュアルサーボを行うことさえできれば、VA3のどの位置からであっても、ロボットRB及びロボットRBの各部を最終目標位置へ移動させることが可能である。
【0109】
そこで、ロボットRB及びロボットRBの各部の現在位置よりも目標位置に近い所定の位置へあらかじめ移動させた後に、ビジュアルサーボを行う手法が考えられる。例えば、図9(A)の例で、VA2内の所定の位置へ移動させた場合には、ビジュアルサーボを2回行えば最終目標位置へ到達することが可能であるし、VA3内の所定の位置へ移動させた場合には、ビジュアルサーボを1回行えば最終目標位置へ到達することが可能である。
【0110】
図9(B)には、S1のような軌道を通って、ハンドHDの中心点HCP1をVA3内のHCP2へ移動させた後に、ビジュアルサーボを行う場合を示す。本例においては、所定の位置HCP2は、ロボットRBが初期姿勢をとった際のハンドHDの中心点であるため、ビジュアルサーボを行うことなく、ハンドHDの位置を変更することが可能である。この手法は、初期姿勢を利用する場合に限らず、あらかじめ設定してある姿勢や位置が、ロボットRB及びロボットRBの各部の現在位置より、目標位置に近いと判断する場合に実行することができる。以上の手法を用いることにより、上述した効果を得ることができ、ロボット制御システムにかかる処理負荷を抑制することができる。
【0111】
次に、図10を用いて、アームのエンドポイントが目標位置と十分近い場合におけるビジュアルサーボの説明をする。なお、図10は目標位置がワークWKの中心点WCPと一致している場合を示している。
【0112】
本例では、2次元の撮像画像上において、撮像画像に映るワークWKの中心点WCP(目標位置)とハンドHDの中心点HCPとの距離L2が、WCPを中心とする円の半径R2以下である場合には、アームのエンドポイントが目標位置と十分近いと判断し、L2がR2よりも大きい場合には、十分近くはないと判断する。
【0113】
図10の場合においては、L2がR2以下であるため、アームのエンドポイントが目標位置に十分近いと判断し、マスク無し参照画像とマスク無し撮像画像を用いて、ビジュアルサーボを行う。
【0114】
しかし、この場合に、ロボット制御システムにかかる処理負荷が大きすぎるため、ビジュアルサーボにより制御信号が決定できない場合には、ワークWKとハンドHDにマスク画像を設定し、マスク有り撮像画像を生成する。そして、マスク有り参照画像とマスク有り撮像画像を用いて、ビジュアルサーボを行う。
【0115】
次に、図11(A)と図11(B)を用いて、マーカーを基準にマスク画像を設定する手法の説明をする。図11(A)は、マスク画像が未設定である画像NMIMを、図11(B)は、マスク画像が設定済みの画像MIMを示す。
【0116】
図11(A)では、ハンドHDにマーカーMKが貼り付けられており、このマーカーMKを基準として、マスク設定エリアMAを特定する。マスク設定エリアMAの特定方法は、例えばマスク画像にあらかじめ設定してあるマーカー重畳点とマーカーMKの位置を重ね合わせてマスク設定エリアMAを特定する方法や、マーカーMKを中心とする円をマスク設定エリアMAとする方法など任意の方法を選択することができる。
【0117】
そして、特定されたマスク設定エリアMAにマスク画像を重畳し、ハンドHDの領域を図11(B)のMHDにようにマスク画像で覆い、マスク有り画像MIMを生成する。この手法は、マスク有り参照画像及びマスク有り撮像画像のどちらの生成においても適用することが可能である。
【0118】
次に、図12(A)と図12(B)を用いて、画像形状認識処理によりマスク画像を設定する手法の説明をする。図12(A)は、マスク画像が未設定である画像NMIMを、図12(B)は、マスク画像が設定済みの画像MIMを示す。
【0119】
図12(A)では、作業スペースを撮像する際に、オプティカルフロー解析を行った場合のオプティカルフローを矢印で示している。そして、オプティカルフロー解析によって検出された動体の先端を含む領域OPAを特定し、OPA内にハンドHDが含まれているとみなす。さらに、動体が進行する方向に存在するOPA内の一定領域を、マスク設定エリアMAとして特定する。
【0120】
そして、特定されたマスク設定エリアMAにマスク画像を重畳し、マスク有り画像MIMを生成する。
【0121】
最後に、図13(A)、図13(B)を用いて、属性情報に応じてマスク画像を選択する手法を説明する。
【0122】
マスク画像は、ワークWKやハンドHDの属性情報である大きさや形状によって、変更できることが望ましい。そのため、本例では、大きさや形状の異なるマスク画像を複数記憶しておき、ワークWKやハンドHDの属性情報に合わせて、適切なマスク画像を選択する。
【0123】
例えば、図13(A)のような画像において、ハンドHDのマスク設定エリアMHAと、ワークWKのマスク設定エリアMWAにマスク画像を設定する場合を考える。この場合には、図13(B)に示すような複数のマスク画像MIM1〜MIM8をあらかじめ用意しておき、これらの複数のマスク画像MIM1〜MIM8の中から、MHAとMWAを覆い隠すことができる最小面積のマスク画像をそれぞれ選択する。本例では、どちらの場合もMIM3が適切なマスク画像に該当するため、これを設定する。
【0124】
これにより、ワークやハンドの属性情報を反映した、マスク有り参照画像とマスク有り撮像画像を生成することができ、ビジュアルサーボで決定される制御情報をより正確なものとすることができる。
【0125】
3.処理の詳細
以下では、図14のフローチャートを用いて、本実施形態の処理の詳細の一例について説明する。
【0126】
まず、撮像部20が作業スペースを撮像し、撮像画像を生成する(S20)。次に、処理部110が撮像画像に基づいて、ワーク40の位置とアーム320のエンドポイント(ハンド330としてもよい)の位置の差分である3次元空間での直線距離を推定する(S21)。
【0127】
そして、処理部110が、推定した距離が第1の閾値よりも大きいか判断し(S22)、第1の閾値よりも大きいと判断する場合には、ロボット30又はロボット30の各部を所定の位置へ移動させるための制御信号をロボット制御部120に出力し、ロボット制御部120は制御信号に従ってロボット30を制御する(S23)。
【0128】
一方、処理部110が、推定した距離が第1の閾値以下であると判断した場合には、第2の閾値と推定した距離を比較する(S24)。
【0129】
処理部110が推定した距離が第2の閾値よりも大きいと判断した場合、又はS23の処理の後、処理部110は、複数の撮像部のうち、ロボット30のアーム320のエンドポイントを映している撮像部20により撮影された撮像画像に基づいて、ビジュアルサーボを開始することを決定する(S25)。そして、処理部110は、ビジュアルサーボを開始する撮像画像に対応するマスク有り参照画像を記憶部130から読み出す(S26)。さらに、処理部110が、記憶部130からマスク画像を読み出し、取得した撮像画像にマスク画像を重畳させて、マスク有り撮像画像を生成する(S27)。
【0130】
一方、処理部110が、推定した距離が第2の閾値以下であると判断した場合、処理部110は、複数の撮像部のうち、ロボット30のアーム320のエンドポイントを映している撮像部20により撮影された撮像画像に基づいて、ビジュアルサーボを開始することを決定する(S28)。そして、処理部110は、ビジュアルサーボを開始する撮像画像に対応するマスク無し参照画像を記憶部130から読み出す(S29)。また、撮像部20により取得した撮像画像をマスク無し撮像画像とする。
【0131】
そして、マスク有り参照画像を読み込んだ後には、マスク有り撮像画像とマスク有り参照画像に基づいて、処理部110がロボット30の制御指令を生成する(S30)。一方、マスク無し参照画像を読み込んだ後には、マスク無し撮像画像とマスク無し参照画像に基づいて、処理部110がロボット30の制御指令を生成する(S30)。制御指令生成処理は、上述した位置ベースビジュアルサーボと同様であり、例えば、制御指令生成はホモグラフィー等を用いることにより行われる。
【0132】
この際に、制御指令が生成できるか否かを判断し(S31)、制御指令が生成できなかった場合には、S25の処理へ移行する。一方、制御指令が生成できた場合には、生成された制御指令に基づいて、制御量が目標値に収束したか否かを判断する(S32)。制御量が目標値に収束したと判断する場合にはビジュアルサーボを終了する。一方、制御量が目標値に収束していないと判断する場合には、処理部110はロボット制御部120に制御指令を送出する(S33)。そして、S20の処理へ移行する。以上の流れを制御量が収束するまで繰り返す。
【0133】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ロボット制御システム、ロボットシステム及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【0134】
10 ロボット制御システム、20 撮像部、30 ロボット、40 ワーク、
110 処理部、112 制御信号生成部、114 マスク有り撮像画像生成部、
120 ロボット制御部、130 記憶部、140 I/F部、310 制御部、
320 アーム、330 ハンド

【特許請求の範囲】
【請求項1】
ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、
前記処理部から出力された制御信号に基づいて、前記ロボットを制御するロボット制御部と、
ビジュアルサーボ用の前記参照画像とマスク画像とを記憶する記憶部と、
を含み、
前記記憶部は、
ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定されたマスク有り参照画像を、前記参照画像として記憶し、
前記処理部は、
前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して前記マスク画像を設定したマスク有り撮像画像を、前記撮像画像に基づいて生成し、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項2】
請求項1において、
前記処理部は、
前記ロボットのアームのエンドポイントの位置と前記目標位置との差が第1の閾値以上であると判断する場合に、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項3】
請求項2において、
前記処理部は、
前記ロボットの前記アームの前記エンドポイントの位置と前記目標位置との差が前記第1の閾値以上であると判断する場合に、前記アームの前記エンドポイントを所定の位置へ移動させるための前記制御信号を、前記ロボット制御部に出力し、
前記ロボット制御部は、
前記制御信号に基づいて前記ロボットを制御し、前記ロボットの前記アームの前記エンドポイントを前記所定の位置へ移動させ、
前記処理部は、
前記ロボットが前記所定の位置に位置すると判断した場合において、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記記憶部は、
前記マスク画像が設定されていないマスク無し参照画像と前記マスク有り参照画像とを、前記参照画像として記憶し、
前記処理部は、
前記ロボットのアームのエンドポイントと目標位置との差が第2の閾値以下であると判断する場合に、前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記記憶部は、
前記マスク画像が設定されていないマスク無し参照画像と前記マスク有り参照画像とを、前記参照画像として記憶し、
前記処理部は、
前記マスク画像が設定されていない前記撮像画像である前記マスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行い、前記制御信号の決定ができなかった場合に、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記処理部は、
前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に設定されたマーカーに基づいて、前記マスク画像を設定することを特徴とするロボット制御システム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記処理部は、
前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域の画像形状認識処理を行うことにより、前記マスク画像を設定することを特徴とするロボット制御システム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記記憶部は、
前記参照画像として複数のマスク有り参照画像を記憶し、
前記処理部は、
前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の属性情報に応じたマスク有り撮像画像を生成し、前記複数のマスク有り参照画像の中から、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の前記属性情報に応じたマスク有り参照画像を選択して、前記マスク有り撮像画像と前記マスク有り参照画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項9】
請求項1乃至8のいずれかに記載するロボット制御システムを含むことを特徴とするロボットシステム。
【請求項10】
ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、
前記処理部から出力された制御信号に基づいて、前記ロボットを制御するロボット制御部と、
ビジュアルサーボ用の前記参照画像とマスク画像とを記憶する記憶部として、
コンピューターを機能させ、
前記記憶部は、
ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定されたマスク有り参照画像を、前記参照画像として記憶し、
前記処理部は、
前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して前記マスク画像を設定したマスク有り撮像画像を、前記撮像画像に基づいて生成し、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図13】
image rotate

【図14】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−236266(P2012−236266A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−107933(P2011−107933)
【出願日】平成23年5月13日(2011.5.13)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】