ロボット制御システム、ロボットシステム及びプログラム
【課題】マーカーを設定した画像を用いてビジュアルサーボを行うことができるロボット制御システム及びロボットシステム等の提供。
【解決手段】ロボット制御システム10は、参照画像と撮像画像とに基づきビジュアルサーボを行う処理部110と、制御信号に基づきロボット30を制御するロボット制御部120と、参照画像とマーカーとを記憶する記憶部130とを含む。記憶部130は、ワーク40又はロボット30のハンド330の領域にマーカーが設定されたマーカー付き参照画像を、参照画像として記憶する。処理部110は、ワーク40又はロボット30のハンド330の領域にマーカーが設定されたマーカー付き撮像画像を、撮像画像に基づいて生成し、マーカー付き参照画像とマーカー付き撮像画像とに基づきビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力する。
【解決手段】ロボット制御システム10は、参照画像と撮像画像とに基づきビジュアルサーボを行う処理部110と、制御信号に基づきロボット30を制御するロボット制御部120と、参照画像とマーカーとを記憶する記憶部130とを含む。記憶部130は、ワーク40又はロボット30のハンド330の領域にマーカーが設定されたマーカー付き参照画像を、参照画像として記憶する。処理部110は、ワーク40又はロボット30のハンド330の領域にマーカーが設定されたマーカー付き撮像画像を、撮像画像に基づいて生成し、マーカー付き参照画像とマーカー付き撮像画像とに基づきビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御システム、ロボットシステム及びプログラム等に関係する。
【背景技術】
【0002】
近年、生産現場において、人が行ってきた作業を機械化・自動化するために、産業用ロボットを導入することが多くなってきた。しかし、ロボットの位置決めを行うにあたっては、精密なキャリブレーションが前提となり、ロボット導入の障壁となっている。
【0003】
ここで、ロボットの位置決めを行う手法の一つとしてビジュアルサーボがある。ビジュアルサーボは、参照画像(ゴール画像、目標画像)と撮像画像(現在の画像)との差に基づいて、ロボットを制御する技術である。ある種のビジュアルサーボは、キャリブレーションに精密さを求めない点で有用であり、ロボット導入障壁を下げる技術として注目されている。
【0004】
しかし、その一方で、ビジュアルサーボは、カメラで捉えることのできる範囲でなければ、ロボットを制御することができないという欠点をもつ。
【0005】
このため、一つのカメラでは捉えきれない範囲において、ロボットを制御するためには、例えばカメラを複数配置し、カメラごとに参照画像を持たせ、ビジュアルサーボを行う手法等が想定される。
【0006】
これらのビジュアルサーボに関する技術としては非特許文献1に記載される従来技術がある。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】システム/制御/情報,Vol.54,No.5,pp.206−213,2010,橋本浩一,ビジュアルサーボV −特徴ベースビジュアルサーボ
【発明の概要】
【発明が解決しようとする課題】
【0008】
ビジュアルサーボは使用する画像によっては、想定時間内に画像処理が終わらずに制御信号送出が遅れたり、目標位置からロボットが一定距離以上離れている場合に、画像処理に失敗して有効な制御信号を生成することができなかったりすることもある。
【0009】
さらに、多種類の作業に対応できる汎用的なロボットを使うことを想定した場合、異なるワークやツールの組み合わせのすべてに対して、必要な参照画像を用意することは困難である。
【0010】
本発明の目的は、マーカーを設定した画像を用いてビジュアルサーボを行うことができるロボット制御システム、ロボットシステム及びプログラム等を提供することにある。
【0011】
また、本発明の目的は、ワークやハンド等にマーカーとマスク画像とを設定し、これらの画像を用いてビジュアルサーボを行うことにより、参照画像の準備コストを抑えつつ、ワークとハンドが一定距離以上離れている場合でも、有効な制御信号を算出することができるように処理負荷を抑制するロボット制御システム、ロボットシステム及びプログラム等を提供することにある。
【課題を解決するための手段】
【0012】
本発明の一態様は、ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、前記処理部から出力された前記ロボットの制御信号に基づいて、前記ロボットを制御するロボット制御部と、ビジュアルサーボ用の前記参照画像とマーカーの情報とを記憶する記憶部と、を含み、前記記憶部は、ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き参照画像を、前記参照画像として記憶し、前記処理部は、前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き撮像画像を、前記撮像画像に基づいて生成し、前記マーカー付き参照画像と前記マーカー付き撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システムに関係する。また、本発明の他の態様では、上記各部としてコンピューターを機能させるプログラム、又は該プログラムを記憶したコンピューター読み取り可能な情報記憶媒体に関係する。
【0013】
本発明の一態様では、ワーク及びロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つのマーカーが設定されたマーカー付き参照画像を、参照画像として記憶しておく。さらに、撮像画像に映るワーク及びロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つのマーカーを設定したマーカー付き撮像画像を、撮像画像に基づいて生成する。これにより、マーカー付き参照画像とマーカー付き撮像画像とに基づいて、ビジュアルサーボを行うことが可能となる。
【0014】
また、本発明の一態様では、前記記憶部は、マスク画像を記憶すると共に、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り参照画像を、参照画像として記憶し、前記処理部は、前記撮像画像に映るワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り撮像画像を、前記撮像画像に基づいて生成し、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0015】
これにより、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、マスク画像を用いることにより、参照画像の準備コストを抑え、さらに、マーカーを用いることで、ホモグラフィー等の計算や画像の特徴量の算出の容易化を図ること等が可能となる。
【0016】
また、本発明の一態様では、前記処理部は、前記ロボットのアームのエンドポイントの位置と前記目標位置との差が第1の閾値以上であると判断する場合に、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0017】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ロボット各部の位置を大きく動かすような処理量が大きい処理を行う場合に、ロボット制御システムにかかる処理負荷を抑制すること等が可能となる。
【0018】
また、本発明の一態様では、前記処理部は、前記ロボットの前記アームの前記エンドポイントの位置と前記目標位置との差が前記第1の閾値以上であると判断する場合に、前記アームの前記エンドポイントを所定の位置へ移動させるための前記制御信号を、前記ロボット制御部に出力し、前記ロボット制御部は、前記制御信号に基づいて前記ロボットを制御し、前記ロボットの前記アームの前記エンドポイントを前記所定の位置へ移動させ、前記処理部は、前記ロボットが前記所定の位置に位置すると判断する場合において、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0019】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、ロボットのアームのエンドポイントを所定の位置へ移動させた後に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ビジュアルサーボを行う回数を削減し、ロボット制御システムにかかる処理負荷を抑制すること等が可能になる。
【0020】
また、本発明の一態様では、前記記憶部は、前記マスク画像が設定されていないマスク無し参照画像と前記マーカー付き参照画像とを、前記参照画像として記憶し、前記処理部は、前記ロボットのアームのエンドポイントと前記目標位置との差が第2の閾値以下であると判断する場合に、前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0021】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第2の閾値以下であると判断する場合に、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ロボット各部の位置の微調整のような精度の高い制御を要する場合に、精度の高いビジュアルサーボを行うこと等が可能となる。
【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】図8(A)、図8(B)はマーカーを用いたビジュアルサーボの説明図。
【図9】図9(A)、図9(B)はマスク画像の上にマーカーを設定した画像を用いた場合のビジュアルサーボの説明図。
【図10】アームのエンドポイントが目標位置と十分離れている場合のビジュアルサーボの説明図。
【図11】図11(A)、図11(B)は所定位置までロボットを移動させた後ビジュアルサーボを行う手法の説明図。
【図12】アームのエンドポイントが目標位置と十分近い場合のビジュアルサーボの説明図。
【図13】図13(A)、図13(B)は画像形状認識処理によりマーカーを設定する手法の説明図。
【図14】図14(A)〜図14(C)は回転対称性を有さないマーカーの説明図。
【図15】マスク画像の上にマーカーを設定した画像を用いたビジュアルサーボのフローチャート。
【発明を実施するための形態】
【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)。なお、参照画像の特徴抽出は、参照画像設定の際に行っておくことが望ましいが、ここで行ってもよい。特徴抽出では、ビジュアルサーボ系への入力情報(制御量)として、画像の特徴量を求める。そして、画像の特徴量に基づいて、参照画像と撮像画像が一致するか否かを比較する(S13)。画像が一致すると判断する場合(S14)には、ビジュアルサーボを終了する。一方、画像が一致しないと判断する場合(S14)には、制御指令を生成し(S15)、ロボット制御部120に制御指令を送出する(S16)。
【0060】
特徴ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【0061】
1.4 本実施形態の手法
以上の本実施形態では、ロボット30の目標状態を表す画像である参照画像と、撮像部20によりロボット30を撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部110と、処理部110から出力されたロボット30の制御信号に基づいて、ロボット30を制御するロボット制御部120と、ビジュアルサーボ用の参照画像とマーカーの情報とを記憶する記憶部130と、を含む。そして、記憶部130は、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、少なくとも一つのマーカーが設定されたマーカー付き参照画像を、参照画像として記憶する。さらに、処理部110は、撮像画像に映るワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、少なくとも一つのマーカーが設定されたマーカー付き撮像画像を、撮像画像に基づいて生成し、マーカー付き参照画像とマーカー付き撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力する。
【0062】
本実施形態では、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、あらかじめ少なくとも一つのマーカーが設定されたマーカー付き参照画像を、参照画像として記憶しておく。さらに、撮像画像に映るワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、少なくとも一つのマーカーを設定したマーカー付き撮像画像を、撮像画像に基づいて生成する。これにより、マーカー付き参照画像とマーカー付き撮像画像とに基づいて、ビジュアルサーボを行うことが可能となる。
【0063】
ここで、マーカー(マーカー画像)とは、目印として利用することができる文字、図形、記号、模様もしくは立体的形状もしくはこれらの結合又はこれらと色彩との結合であって、参照画像又は撮像画像の一部の領域に設定する画像のことをいう。さらに、マーカーには、撮像して画像を生成することにより、上記に示すマーカー画像と同様の画像を生成することができ、且つ、物体に固定可能な有体物も含むこととする。例えば、シールやステッカー、ラベル等である。なお、マーカーの形状や、色彩、模様等がどのようなものであるかは問わないが、他の領域と区別しやすいもの、例えば赤色一色からなる画像やシールなどが望ましい。
【0064】
また、マーカーの情報とは、マーカーとして使用する画像データや文字データ、マーカーを生成する際に用いる情報、又はこれらを含む情報であってもよい。さらに、これらのマーカーの情報は、外部記憶装置等から読み出しを行う際の一時記憶データであってもよい。
【0065】
具体例として、図6(A)に、作業スペースを撮像した画像でありマーカーMKが未設定である画像NMKIMを、図6(B)に、作業スペースを撮像した画像でありマーカーMKを設定した画像MKIMを示す。本例では、図6(B)において、ハンドとワークのそれぞれに3つずつ設定されている灰色の各円形領域がマーカーMKであり、ハンドとワークにマーカーMKを設定することにより、ハンドMKHDとワークMKWKとしている。
【0066】
また、マーカーを設定するとは、画像を生成する際に、作成される画像に映し出される任意の領域をマーカーに置き換えることをいう。画像の任意の領域をマーカーに置き換える方法としては、例えば、生成した画像の上にマーカー画像を重畳したり、画像の任意の領域を切り出してマーカー画像をはめ込んだり、マーカーとして用いるシール等をワークやハンドに付して撮像するなどがある。しかし、画像の任意の領域をマーカーに置き換える手法はこれらの手法に限定されない。
【0067】
また、ワークやハンドの領域にマーカーを設定する際に、ワークやハンドの領域からマーカーの一部がはみ出していてもよい。さらに、ワークやハンドの領域は、画像中に実際のワークやハンドが映っている部分だけでなく、一定の面積領域をワークやハンドの領域として定めておいてもよい。
【0068】
さらに、マーカー付き参照画像とは、ロボット30の目標状態を表す画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マーカーが設定された画像をいう。例えば、マーカー付き参照画像は、図6(B)に示すMKIMのような参照画像である。
【0069】
また、マーカー付き撮像画像とは、撮像部20によりロボット30を撮像した画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マーカーが設定された画像をいう。例えば、マーカー付き撮像画像は、図6(B)に示すMKIMのような撮像画像である。
【0070】
なお、マーカー付き撮像画像の生成は、処理部110に含まれるマーカー付き撮像画像生成部114によって行われる。
【0071】
以上のように、マーカー付き参照画像とマーカー付き撮像画像とに基づいて、ビジュアルサーボを行うことが可能になるため、位置ベースビジュアルサーボを行う際には、ホモグラフィー行列の算出等が容易になり、特徴ベースビジュアルサーボを行う際には、特徴量の抽出が容易になる。よって、制御信号を算出する際の処理量を軽減することができ、ワークとハンドが一定距離以上離れている場合でも、有効な制御信号を算出することが可能となる。
【0072】
また、記憶部130は、マスク画像を記憶すると共に、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定され、さらに少なくとも一つのマーカーがマスク画像の上に設定されたマーカー付きマスク有り参照画像を、参照画像として記憶してもよい。そして、処理部110は、撮像画像に映るワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定され、さらに少なくとも一つのマーカーがマスク画像の上に設定されたマーカー付きマスク有り撮像画像を、撮像画像に基づいて生成し、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0073】
これにより、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。
【0074】
ここで、マスク画像とは、作業スペースの一部の領域を覆うために設定される画像である。本実施形態では、作業スペース内にあるワーク40やハンド330のうち、少なくとも一方の領域に対して設定される画像である。マスク画像自体がどのような画像であるかは問わないが、他の領域と区別しやすい画像、例えば黒色一色からなる画像などが望ましい。
【0075】
図7(A)に、作業スペースを撮像した画像でありマスク画像が未設定である画像NMIMを、図7(B)に、作業スペースを撮像した画像でありマスク画像を設定した画像MIMを示す。図7(A)において、ロボットRBのハンドHDとワークWKが映っている領域が、図7(B)では、領域MHDとMWKに置き換えられている。本例では、図7(B)において、このハンドHDとワークWKを覆う黒色一色の領域がマスク画像であり、ハンドHDとワークWKの領域にマスク画像を設定することにより、領域MHD及びMWKとしている。
【0076】
また、マスク画像を設定するとは、画像を生成する際に、作成される画像に映し出される任意の領域をマスク画像に置き換えることをいう。生成した画像の上にマスク画像を重畳したり、画像の任意の領域を切り出してマスク画像をはめ込むなど、マスク画像に置き換える方法は問わない。
【0077】
さらに、マーカー付きマスク有り参照画像とは、ロボット30の目標状態を表す画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定され、さらに少なくとも一つのマーカーがマスク画像の上に設定された画像をいう。マーカー付きマスク有り参照画像は、マーカー付き参照画像のうちの一つでもある。例えば、マーカー付きマスク有り参照画像は、後述する図9(A)に示すMKMRIMのような画像である。
【0078】
また、マーカー付きマスク有り撮像画像とは、撮像部20によりロボット30を撮像した画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定され、さらに少なくとも一つのマーカーがマスク画像の上に設定された画像をいう。マーカー付きマスク有り撮像画像は、マーカー付き撮像画像のうちの一つでもある。例えば、マーカー付きマスク有り撮像画像は、後述する図9(B)に示すMKMPIMのような画像である。
【0079】
以上のように、参照画像としてマーカー付きマスク有り参照画像を使用するため、ワークやハンドが異なっていた場合でも、同じマーカー付きマスク有り参照画像を使用することができる場合がある。そのため、ワークやハンドの種類が多く、それらの組み合わせ全てについて参照画像を準備する場合に比べて、参照画像の準備コストを抑えることが可能となる。従って、マスク画像を用いることにより、参照画像の準備コストを抑え、さらに、マーカーを用いることで、ホモグラフィー等の計算や画像の特徴量の算出の容易化を図ること等が可能となる。
【0080】
また、処理部110は、ロボット30のアーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0081】
ここで、アーム320のエンドポイントの位置と目標位置との差とは、3次元空間上における二点間の直線距離だけではなく、数学的にこれと等価な情報も含まれる。例えば、2次元の撮像画像におけるアーム320のエンドポイントの位置と目標位置との距離などがある。具体的な一例としては、後述する図10に示すような、2次元画像上におけるワークWKの中心点WCP(目標位置)とハンドHDの中心点HCP間の距離L1のような値をいう。他にも、撮像画像上にアーム320のエンドポイントの位置もしくは目標位置のどちらか一方しか映っていない場合には、アーム320のエンドポイントの位置と目標位置との差を第1の閾値よりも大きい所定の値と設定すること等がある。
【0082】
また、第1の閾値とは、アーム320のエンドポイントの位置と目標位置が十分に離れているか否かを判定する基準となる値である。第1の閾値には、アーム320のエンドポイントの位置と目標位置との差として用いられている値に対応する基準値が設定される。また、第1の閾値は、あらかじめ設定されるものでも良いし、処理部110等によって算出されるものであっても良い。例えば、第1の閾値とは、後述する図10に示すような、2次元画像上におけるワークWKの中心点WCP(目標位置)を中心とする円の半径R1のような値をいう。
【0083】
これにより、アーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、アーム320のエンドポイントの位置と目標位置が十分に離れていると判断することができる。そして、この場合に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。アーム320のエンドポイントの位置と目標位置が十分に離れている場合には、ロボット各部の位置を大きく動かすことが多いため、処理量が大きくなることが多い。マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づくビジュアルサーボは、上述した通り、処理量を抑えることができるという利点があるため、このような処理を行い、処理負荷を抑制することが有効である。
【0084】
また、処理部110は、ロボット30のアーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、アーム320のエンドポイントを所定の位置へ移動させるための制御信号を、ロボット制御部120に出力してもよい。そして、ロボット制御部120は、制御信号に基づいてロボット30を制御し、ロボット30のアーム320のエンドポイントを所定の位置へ移動させてもよい。さらに、処理部110は、ロボット30が所定の位置に位置すると判断する場合において、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0085】
ここで、所定の位置とは、ビジュアルサーボを行うことなく、ロボット又はロボットの各部を移動させることができる位置のことをいう。所定の位置は、例えば、ロボット30のアーム320のエンドポイントの初期位置でも良いし、初期位置以外のあらかじめ設定された位置であっても良い。
【0086】
これにより、ロボット30のアーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、ロボット30のアーム320のエンドポイントを所定の位置へ移動させた後に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。
【0087】
この手法によれば、ビジュアルサーボを行わずに、ロボット30を所定の位置へ移動させることができるため、ビジュアルサーボを行う回数を削減することができる場合がある。そのため、ロボット制御システムにかかる処理負荷を抑制することができる。
【0088】
また、記憶部130は、マスク画像が設定されていないマスク無し参照画像とマーカー付き参照画像とを、参照画像として記憶してもよい。そして、処理部110は、ロボット30のアーム320のエンドポイントと目標位置との差が第2の閾値以下であると判断する場合に、マスク画像が設定されていない撮像画像であるマスク無し撮像画像と、マスク無し参照画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0089】
ここで、マスク無し参照画像とは、ロボット30の目標状態を表す画像であり、マスク画像が設定されていない画像をいう。例えば、マスク無し参照画像は、図4(A)に示すRIMのような参照画像である。また、マスク無し参照画像は、マーカーが設定されている否かは問わない。例えば、後述する図8(A)のマーカー付き参照画像MKRIMは、同時にマスク無し参照画像でもある。
【0090】
また、マスク無し撮像画像とは、撮像部20によりロボット30を撮像した画像であり、マスク画像が設定されていない画像をいう。例えば、マスク無し撮像画像は、図4(B)に示すPIMのような撮像画像である。また、マスク無し撮像画像は、マーカーが設定されている否かは問わない。例えば、後述する図8(B)のマーカー付き撮像画像MKPIMは、同時にマスク無し撮像画像でもある。
【0091】
さらに、第2の閾値とは、アーム320のエンドポイントの位置と目標位置が十分に近いか否かを判定する基準となる値である。第2の閾値には、アーム320のエンドポイントの位置と目標位置との差として用いられる値に対応する基準値が設定される。また、第2の閾値は、あらかじめ設定されるものでも良いし、処理部110等によって算出されるものであっても良い。さらに、第2の閾値は、第1の閾値と同じ値であってもよい。例えば、第2の閾値とは、後述する図12に示すような、2次元画像上におけるワークWKの中心点WCP(目標位置)を中心とする円の半径R2のような値をいう。
【0092】
これにより、アーム320のエンドポイントの位置と目標位置との差が第2の閾値以下であると判断する場合に、アーム320のエンドポイントの位置と目標位置が十分に近いと判断することができる。そして、この場合に、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。アーム320のエンドポイントの位置と目標位置が十分に近い場合には、ロボット各部の位置の微調整をすることが多いため、精度の高い制御を要することが多い。マスク無し撮像画像とマスク無し参照画像とに基づくビジュアルサーボは、処理量はかかるものの、ワーク及びハンドの大きさや形状等の情報を詳細に認識することができるため、より精度の高い制御を行うことができるという利点がある。よって、このような処理が有効である。
【0093】
また、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、処理負荷が大きすぎるため、制御信号の決定ができない場合がある。
【0094】
そこで、記憶部130は、マスク画像と、マスク無し参照画像とを記憶すると共に、マーカー付きマスク有り参照画像を参照画像として記憶してもよい。そして、処理部110は、マスク無し撮像画像とマスク無し参照画像とに基づきビジュアルサーボを行い、制御信号の決定ができなかった場合に、マーカー付きマスク有り撮像画像を生成し、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0095】
これにより、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、制御信号の決定ができなかった場合に、マーカー付きマスク有り撮像画像とマーカー付きマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、制御信号を決定できずに、ロボット30が制御不可能になることを回避すること等が可能となる。
【0096】
また、処理部110は、ワーク40及びロボット30のハンド330のうちの少なくとも一方について、画像形状認識処理を行うことにより、マーカーを設定してもよい。
【0097】
ここで、画像形状認識処理とは、画像中の物体の形状を認識するために用いられる手法のこといい、例えば後述する図13(A)に示すようなオプティカルフロー解析などを指す。
【0098】
これにより、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域の画像形状認識処理を行うことにより、マーカーを設定すること等が可能になる。画像形状認識処理を行う際には、ハンド等にシール等のマーカーを貼り付けておく等の準備をする必要はない。従って、マーカーの設定を行う際の準備コストをかけずに、マーカーを設定すること等が可能となる。
【0099】
また、記憶部130は、回転対称性を有さないマーカーが設定されたマーカー付き参照画像を記憶してもよい。そして、処理部110は、回転対称性を有さないマーカーが設定されたマーカー付き撮像画像を生成し、マーカー付き参照画像とマーカー付き撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0100】
これにより、回転対称性を有さないマーカーを設定したマーカー付き参照画像とマーカー付き撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。
【0101】
ここで、回転対称性を有するマーカーとは、2次元座標上においてマーカーを一回転させる場合に、元のマーカーと一致することのあるマーカーのことをいう。したがって、回転対称性を有するマーカーを用いて、マーカーが設定されたロボットのハンドやワークの向き等を判別する場合には、複数のマーカーを用い、複数のマーカーの位置関係により判別する必要がある。
【0102】
一方、回転対称性を有さないマーカーとは、2次元座標上においてマーカーを回転させる場合に、一回転させて初めて元のマーカーと一致するマーカーのことをいう。回転対称性を有さないマーカーを用いて、マーカーが設定されたロボットのハンドやワークの向き等を判別する場合には、一つのマーカーの向きさえ判別すればよく、複数のマーカーを準備する必要がない。
【0103】
したがって、設定するマーカーの数を削減し、マーカーを設定するコストを削減すること等が可能になる。
【0104】
なお本実施形態のロボット制御システム等は、プログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御システム等が実現される。具体的には情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そしてCPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
【0105】
2.具体的な実施例
以下では、図8(A)〜図14(C)を用いて、本実施形態の具体的な実施例について説明する。
【0106】
まず、図8(A)、図8(B)を用いて、マーカー付き参照画像とマーカー付き撮像画像に基づいて、ビジュアルサーボを行う手法を説明する。図8(A)はマーカー付き参照画像MKRIMを、図8(B)はマーカー付き撮像画像MKPIMを示す。
【0107】
マーカー付き参照画像MKRIMは事前に準備される。この場合には、ロボットRB及びロボットRBの各部を期待する位置に配置した上で、撮像部により作業スペースを撮像し、画像を生成する。そして、生成された画像に映るワーク及びハンドの領域にマーカー画像MKを重畳し、ワークMKWK、及びハンドMKHDとした上で、マーカー付き参照画像MKRIMを生成する。
【0108】
一方、マーカー付き撮像画像MKPIMは、実際にビジュアルサーボを行う際に、撮像部により撮像される画像にマーカー画像MKを重畳して生成される。マーカー画像MKを重畳する方法は、マーカー付き参照画像MKRIMと同様である。
【0109】
本例では、マーカー付き参照画像MKRIMのハンドMKHDと、マーカー付き撮像画像MKPIMのハンドMKHDとの位置が異なるため、マーカー付き撮像画像MKPIMのハンドMKHDをマーカー付き参照画像MKRIMのハンドMKHDの位置に近付けるような制御信号をホモグラフィー等により算出する。
【0110】
次に、図9(A)、図9(B)を用いて、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像に基づいて、ビジュアルサーボを行う手法を説明する。図9(A)はマーカー付きマスク有り参照画像MKMRIMを、図9(B)はマーカー付きマスク有り撮像画像MKMPIMを示す。
【0111】
マーカー付きマスク有り参照画像MKMRIMは例えば事前に準備される。この場合には、ロボットRB及びロボットRBの各部を期待する位置に配置した上で、撮像部により作業スペースを撮像し、画像を生成する。そして、生成された画像に映るワーク及びハンドの領域にマスク画像を重畳し、さらにマスク画像の上からマーカー画像MKを重畳して、ワークMKMWK、及びハンドMKMHDとした上で、マーカー付きマスク有り参照画像MKMRIMを生成する。
【0112】
一方、マーカー付きマスク有り撮像画像MKMPIMは、実際にビジュアルサーボを行う際に、撮像部により撮像される画像にマスク画像を重畳し、さらにその上からマーカー画像MKを重畳して生成される。マスク画像とマーカー画像MKを重畳する方法は、マーカー付き参照画像MKRIMと同様である。
【0113】
以降の処理の流れは、図8(A)、図8(B)と同様である。
【0114】
次に、図10を用いて、アームのエンドポイントが目標位置と十分離れている場合におけるビジュアルサーボの説明をする。なお、図10はワークWKの中心点WCPが目標位置と一致している場合を示している。
【0115】
本例では、2次元の撮像画像上において、撮像画像に映るワークWKの中心点WCP(目標位置)とハンドHDの中心点HCPとの距離L1が、WCPを中心とする円の半径R1以上である場合には、アームのエンドポイントが目標位置と十分離れていると判断し、L1がR1よりも小さい場合には、十分離れていないと判断する。
【0116】
図10の場合においては、L1がR1以上であるため、アームのエンドポイントが目標位置と十分離れていると判断し、ワークWKとハンドHDにマスク画像を設定し、さらにその上からマーカー画像を設定して、マーカー付きマスク有り撮像画像を生成する。そして、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像を用いて、ビジュアルサーボを行う。
【0117】
次に、図11(A)と図11(B)を用いて、所定位置までロボットを移動させた後、ビジュアルサーボを行う手法を説明する。
【0118】
まず、図11(A)は、ビジュアルサーボを複数回行うことにより、ロボットRB及びロボットRBの各部を目標位置に移動させる手法を示している。この時、第1の撮像部により映すことのできる範囲をVA1、第2の撮像部により映すことのできる範囲をVA2、第3の撮像部により映すことのできる範囲をVA3とする。本例では、VA1にロボットRBのハンドHDが映っているため、VA1で一回目のビジュアルサーボを行い、VA1での目標位置にハンドHDを移動させる。次に、VA2、VA3と順にビジュアルサーボを行い、VA2での目標位置を経て、最終的な目標位置でもあるVA3での目標位置にハンドHDを移動させる。
【0119】
図11(A)の場合には、1回のビジュアルサーボにより直接最終的な目標位置へハンドHDを移動させることができず、処理負荷が大きいビジュアルサーボを複数回繰り返す必要がある。また、VA1やVA2では、ロボットRB及びロボットRBの各部を目標位置へ厳密に移動させることを求められておらず、最終目標位置であるVA3での目標位置にさえロボットRB及びロボットRBの各部を正確に移動させればよい。さらに、VA3内からビジュアルサーボを行うことさえできれば、VA3のどの位置からであっても、ロボットRB及びロボットRBの各部を最終目標位置へ移動させることが可能である。
【0120】
そこで、ロボットRB及びロボットRBの各部の現在位置よりも目標位置に近い所定の位置へあらかじめ移動させた後に、ビジュアルサーボを行う手法が考えられる。例えば、図11(A)の例で、VA2内の所定の位置へ移動させた場合には、ビジュアルサーボを2回行えば最終目標位置へ到達することが可能であるし、VA3内の所定の位置へ移動させた場合には、ビジュアルサーボを1回行えば最終目標位置へ到達することが可能である。
【0121】
図11(B)には、S1のような軌道を通って、ハンドHDの中心点HCP1をVA3内のHCP2へ移動させた後に、ビジュアルサーボを行う場合を示す。本例においては、所定の位置HCP2は、ロボットRBが初期姿勢をとった際のハンドHDの中心点であるため、ビジュアルサーボを行うことなく、ハンドHDの位置を変更することが可能である。この手法は、初期姿勢を利用する場合に限らず、あらかじめ設定してある姿勢や位置が、ロボットRB及びロボットRBの各部の現在位置より、目標位置に近いと判断する場合に実行することができる。以上の手法を用いることにより、上述した効果を得ることができ、ロボット制御システムにかかる処理負荷を抑制することができる。
【0122】
次に、図12を用いて、アームのエンドポイントが目標位置と十分近い場合におけるビジュアルサーボの説明をする。なお、図12は目標位置がワークWKの中心点WCPと一致している場合を示している。
【0123】
本例では、2次元の撮像画像上において、撮像画像に映るワークWKの中心点WCP(目標位置)とハンドHDの中心点HCPとの距離L2が、WCPを中心とする円の半径R2以下である場合には、アームのエンドポイントが目標位置と十分近いと判断し、L2がR2よりも大きい場合には、十分近くはないと判断する。
【0124】
図12の場合においては、L2がR2以下であるため、アームのエンドポイントが目標位置に十分近いと判断し、マスク無し参照画像とマスク無し撮像画像を用いて、ビジュアルサーボを行う。
【0125】
しかし、この場合に、ロボット制御システムにかかる処理負荷が大きすぎるため、ビジュアルサーボにより制御信号が決定できない場合には、ワークWKとハンドHDにマスク画像を設定し、さらにその上からマーカー画像を設定して、マーカー付きマスク有り撮像画像を生成する。そして、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像を用いて、ビジュアルサーボを行う。
【0126】
次に、図13(A)と図13(B)を用いて、画像形状認識処理によりマーカー画像を設定する手法の説明をする。図13(A)は、マーカー画像が未設定である画像NMKIMを、図13(B)は、マーカー画像が設定済みの画像MKIMを示す。
【0127】
図13(A)では、作業スペースを撮像する際に、オプティカルフロー解析を行った場合のオプティカルフローを矢印で示している。そして、オプティカルフロー解析によって検出された動体の先端を含む領域OPAを特定し、OPA内にハンドHDが含まれているとみなす。さらに、動体が進行する方向に存在するOPA内の一定領域を、マーカー設定エリアMKAとして特定する。
【0128】
そして、特定されたマーカー設定エリアMKAにマーカー画像を重畳し、マーカー付き画像MKIMを生成する。マーカー設定エリアMKA内でのマーカー画像の配置方法は任意であるが、マーカーの配置によって、ハンドやワークの向きが判別できるように配置することが望ましい。例えば、3つのマーカーを用いる場合には、3つのマーカーを直線で結ぶと直角三角形となるようにマーカーを配置すること等が考えられる。
【0129】
最後に、図14(A)〜図14(C)を用いて、回転対称性を有さないマーカーを用いてビジュアルサーボを行う手法の説明をする。
【0130】
図14(A)及び図14(B)は、回転対称性を有さないマーカーの一例として、マーカーDMK1とマーカーDMK2を示す。また、図14(C)は、回転対称性を有さないマーカーDMKをハンドに設定し、ハンドMKHDとしたマーカー付き画像MKIMである。
【0131】
回転対称性を有さないマーカーを用いてビジュアルサーボを行う場合の以降の処理の流れは、上述した手法と同様である。
【0132】
3.処理の詳細
以下では、図15のフローチャートを用いて、本実施形態の処理の詳細の一例について説明する。
【0133】
まず、撮像部20が作業スペースを撮像し、撮像画像を生成する(S20)。次に、処理部110が撮像画像に基づいて、ワーク40の位置とアーム320のエンドポイント(ハンド330としてもよい)の位置の差分である3次元空間での直線距離を推定する(S21)。
【0134】
そして、処理部110が、推定した距離が第1の閾値よりも大きいか判断し(S22)、第1の閾値よりも大きいと判断する場合には、ロボット30又はロボット30の各部を所定の位置へ移動させるための制御信号をロボット制御部120に出力し、ロボット制御部120は制御信号に従ってロボット30を制御する(S23)。
【0135】
一方、処理部110が、推定した距離が第1の閾値以下であると判断した場合には、第2の閾値と推定した距離を比較する(S24)。
【0136】
処理部110が推定した距離が第2の閾値よりも大きいと判断した場合、又はS23の処理の後、処理部110は、複数の撮像部のうち、ロボット30のアーム320のエンドポイントを映している撮像部20により撮影された撮像画像に基づいて、ビジュアルサーボを開始することを決定する(S25)。そして、処理部110は、ビジュアルサーボを開始する撮像画像に対応するマーカー付きマスク有り参照画像を記憶部130から読み出す(S26)。さらに、処理部110が、記憶部130からマーカーとマスク画像を読み出し、取得した撮像画像にマスク画像を重畳させて、さらにその上にマーカーを重畳させて、マーカー付きマスク有り撮像画像を生成する(S27)。
【0137】
一方、処理部110が、推定した距離が第2の閾値以下であると判断した場合、処理部110は、複数の撮像部のうち、ロボット30のアーム320のエンドポイントを映している撮像部20により撮影された撮像画像に基づいて、ビジュアルサーボを開始することを決定する(S28)。そして、処理部110は、ビジュアルサーボを開始する撮像画像に対応するマスク無し参照画像を記憶部130から読み出す(S29)。また、撮像部20により取得した撮像画像をマスク無し撮像画像とする。
【0138】
そして、マーカー付きマスク有り参照画像を読み込んだ後には、マーカー付きマスク有り撮像画像とマーカー付きマスク有り参照画像に基づいて、処理部110がロボット30の制御指令を生成する(S30)。一方、マスク無し参照画像を読み込んだ後には、マスク無し撮像画像とマスク無し参照画像に基づいて、処理部110がロボット30の制御指令を生成する(S30)。制御指令生成処理は、上述した位置ベースビジュアルサーボと同様であり、例えば、制御指令生成はホモグラフィー等を用いることにより行われる。
【0139】
この際に、制御指令が生成できるか否かを判断し(S31)、制御指令が生成できなかった場合には、S25の処理へ移行する。一方、制御指令が生成できた場合には、生成された制御指令に基づいて、制御量が目標値に収束したか否かを判断する(S32)。制御量が目標値に収束したと判断する場合にはビジュアルサーボを終了する。一方、制御量が目標値に収束していないと判断する場合には、処理部110はロボット制御部120に制御指令を送出する(S33)。そして、S20の処理へ移行する。以上の流れを制御量が収束するまで繰り返す。
【0140】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ロボット制御システム、ロボットシステム及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【0141】
10 ロボット制御システム、20 撮像部、30 ロボット、40 ワーク、
110 処理部、112 制御信号生成部、114 マーカー付き撮像画像生成部、
120 ロボット制御部、130 記憶部、140 I/F部、310 制御部、
320 アーム、330 ハンド。
【技術分野】
【0001】
本発明は、ロボット制御システム、ロボットシステム及びプログラム等に関係する。
【背景技術】
【0002】
近年、生産現場において、人が行ってきた作業を機械化・自動化するために、産業用ロボットを導入することが多くなってきた。しかし、ロボットの位置決めを行うにあたっては、精密なキャリブレーションが前提となり、ロボット導入の障壁となっている。
【0003】
ここで、ロボットの位置決めを行う手法の一つとしてビジュアルサーボがある。ビジュアルサーボは、参照画像(ゴール画像、目標画像)と撮像画像(現在の画像)との差に基づいて、ロボットを制御する技術である。ある種のビジュアルサーボは、キャリブレーションに精密さを求めない点で有用であり、ロボット導入障壁を下げる技術として注目されている。
【0004】
しかし、その一方で、ビジュアルサーボは、カメラで捉えることのできる範囲でなければ、ロボットを制御することができないという欠点をもつ。
【0005】
このため、一つのカメラでは捉えきれない範囲において、ロボットを制御するためには、例えばカメラを複数配置し、カメラごとに参照画像を持たせ、ビジュアルサーボを行う手法等が想定される。
【0006】
これらのビジュアルサーボに関する技術としては非特許文献1に記載される従来技術がある。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】システム/制御/情報,Vol.54,No.5,pp.206−213,2010,橋本浩一,ビジュアルサーボV −特徴ベースビジュアルサーボ
【発明の概要】
【発明が解決しようとする課題】
【0008】
ビジュアルサーボは使用する画像によっては、想定時間内に画像処理が終わらずに制御信号送出が遅れたり、目標位置からロボットが一定距離以上離れている場合に、画像処理に失敗して有効な制御信号を生成することができなかったりすることもある。
【0009】
さらに、多種類の作業に対応できる汎用的なロボットを使うことを想定した場合、異なるワークやツールの組み合わせのすべてに対して、必要な参照画像を用意することは困難である。
【0010】
本発明の目的は、マーカーを設定した画像を用いてビジュアルサーボを行うことができるロボット制御システム、ロボットシステム及びプログラム等を提供することにある。
【0011】
また、本発明の目的は、ワークやハンド等にマーカーとマスク画像とを設定し、これらの画像を用いてビジュアルサーボを行うことにより、参照画像の準備コストを抑えつつ、ワークとハンドが一定距離以上離れている場合でも、有効な制御信号を算出することができるように処理負荷を抑制するロボット制御システム、ロボットシステム及びプログラム等を提供することにある。
【課題を解決するための手段】
【0012】
本発明の一態様は、ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、前記処理部から出力された前記ロボットの制御信号に基づいて、前記ロボットを制御するロボット制御部と、ビジュアルサーボ用の前記参照画像とマーカーの情報とを記憶する記憶部と、を含み、前記記憶部は、ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き参照画像を、前記参照画像として記憶し、前記処理部は、前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き撮像画像を、前記撮像画像に基づいて生成し、前記マーカー付き参照画像と前記マーカー付き撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システムに関係する。また、本発明の他の態様では、上記各部としてコンピューターを機能させるプログラム、又は該プログラムを記憶したコンピューター読み取り可能な情報記憶媒体に関係する。
【0013】
本発明の一態様では、ワーク及びロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つのマーカーが設定されたマーカー付き参照画像を、参照画像として記憶しておく。さらに、撮像画像に映るワーク及びロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つのマーカーを設定したマーカー付き撮像画像を、撮像画像に基づいて生成する。これにより、マーカー付き参照画像とマーカー付き撮像画像とに基づいて、ビジュアルサーボを行うことが可能となる。
【0014】
また、本発明の一態様では、前記記憶部は、マスク画像を記憶すると共に、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り参照画像を、参照画像として記憶し、前記処理部は、前記撮像画像に映るワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り撮像画像を、前記撮像画像に基づいて生成し、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0015】
これにより、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、マスク画像を用いることにより、参照画像の準備コストを抑え、さらに、マーカーを用いることで、ホモグラフィー等の計算や画像の特徴量の算出の容易化を図ること等が可能となる。
【0016】
また、本発明の一態様では、前記処理部は、前記ロボットのアームのエンドポイントの位置と前記目標位置との差が第1の閾値以上であると判断する場合に、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0017】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ロボット各部の位置を大きく動かすような処理量が大きい処理を行う場合に、ロボット制御システムにかかる処理負荷を抑制すること等が可能となる。
【0018】
また、本発明の一態様では、前記処理部は、前記ロボットの前記アームの前記エンドポイントの位置と前記目標位置との差が前記第1の閾値以上であると判断する場合に、前記アームの前記エンドポイントを所定の位置へ移動させるための前記制御信号を、前記ロボット制御部に出力し、前記ロボット制御部は、前記制御信号に基づいて前記ロボットを制御し、前記ロボットの前記アームの前記エンドポイントを前記所定の位置へ移動させ、前記処理部は、前記ロボットが前記所定の位置に位置すると判断する場合において、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0019】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、ロボットのアームのエンドポイントを所定の位置へ移動させた後に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ビジュアルサーボを行う回数を削減し、ロボット制御システムにかかる処理負荷を抑制すること等が可能になる。
【0020】
また、本発明の一態様では、前記記憶部は、前記マスク画像が設定されていないマスク無し参照画像と前記マーカー付き参照画像とを、前記参照画像として記憶し、前記処理部は、前記ロボットのアームのエンドポイントと前記目標位置との差が第2の閾値以下であると判断する場合に、前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【0021】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第2の閾値以下であると判断する場合に、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ロボット各部の位置の微調整のような精度の高い制御を要する場合に、精度の高いビジュアルサーボを行うこと等が可能となる。
【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】図8(A)、図8(B)はマーカーを用いたビジュアルサーボの説明図。
【図9】図9(A)、図9(B)はマスク画像の上にマーカーを設定した画像を用いた場合のビジュアルサーボの説明図。
【図10】アームのエンドポイントが目標位置と十分離れている場合のビジュアルサーボの説明図。
【図11】図11(A)、図11(B)は所定位置までロボットを移動させた後ビジュアルサーボを行う手法の説明図。
【図12】アームのエンドポイントが目標位置と十分近い場合のビジュアルサーボの説明図。
【図13】図13(A)、図13(B)は画像形状認識処理によりマーカーを設定する手法の説明図。
【図14】図14(A)〜図14(C)は回転対称性を有さないマーカーの説明図。
【図15】マスク画像の上にマーカーを設定した画像を用いたビジュアルサーボのフローチャート。
【発明を実施するための形態】
【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)。なお、参照画像の特徴抽出は、参照画像設定の際に行っておくことが望ましいが、ここで行ってもよい。特徴抽出では、ビジュアルサーボ系への入力情報(制御量)として、画像の特徴量を求める。そして、画像の特徴量に基づいて、参照画像と撮像画像が一致するか否かを比較する(S13)。画像が一致すると判断する場合(S14)には、ビジュアルサーボを終了する。一方、画像が一致しないと判断する場合(S14)には、制御指令を生成し(S15)、ロボット制御部120に制御指令を送出する(S16)。
【0060】
特徴ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【0061】
1.4 本実施形態の手法
以上の本実施形態では、ロボット30の目標状態を表す画像である参照画像と、撮像部20によりロボット30を撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部110と、処理部110から出力されたロボット30の制御信号に基づいて、ロボット30を制御するロボット制御部120と、ビジュアルサーボ用の参照画像とマーカーの情報とを記憶する記憶部130と、を含む。そして、記憶部130は、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、少なくとも一つのマーカーが設定されたマーカー付き参照画像を、参照画像として記憶する。さらに、処理部110は、撮像画像に映るワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、少なくとも一つのマーカーが設定されたマーカー付き撮像画像を、撮像画像に基づいて生成し、マーカー付き参照画像とマーカー付き撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力する。
【0062】
本実施形態では、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、あらかじめ少なくとも一つのマーカーが設定されたマーカー付き参照画像を、参照画像として記憶しておく。さらに、撮像画像に映るワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、少なくとも一つのマーカーを設定したマーカー付き撮像画像を、撮像画像に基づいて生成する。これにより、マーカー付き参照画像とマーカー付き撮像画像とに基づいて、ビジュアルサーボを行うことが可能となる。
【0063】
ここで、マーカー(マーカー画像)とは、目印として利用することができる文字、図形、記号、模様もしくは立体的形状もしくはこれらの結合又はこれらと色彩との結合であって、参照画像又は撮像画像の一部の領域に設定する画像のことをいう。さらに、マーカーには、撮像して画像を生成することにより、上記に示すマーカー画像と同様の画像を生成することができ、且つ、物体に固定可能な有体物も含むこととする。例えば、シールやステッカー、ラベル等である。なお、マーカーの形状や、色彩、模様等がどのようなものであるかは問わないが、他の領域と区別しやすいもの、例えば赤色一色からなる画像やシールなどが望ましい。
【0064】
また、マーカーの情報とは、マーカーとして使用する画像データや文字データ、マーカーを生成する際に用いる情報、又はこれらを含む情報であってもよい。さらに、これらのマーカーの情報は、外部記憶装置等から読み出しを行う際の一時記憶データであってもよい。
【0065】
具体例として、図6(A)に、作業スペースを撮像した画像でありマーカーMKが未設定である画像NMKIMを、図6(B)に、作業スペースを撮像した画像でありマーカーMKを設定した画像MKIMを示す。本例では、図6(B)において、ハンドとワークのそれぞれに3つずつ設定されている灰色の各円形領域がマーカーMKであり、ハンドとワークにマーカーMKを設定することにより、ハンドMKHDとワークMKWKとしている。
【0066】
また、マーカーを設定するとは、画像を生成する際に、作成される画像に映し出される任意の領域をマーカーに置き換えることをいう。画像の任意の領域をマーカーに置き換える方法としては、例えば、生成した画像の上にマーカー画像を重畳したり、画像の任意の領域を切り出してマーカー画像をはめ込んだり、マーカーとして用いるシール等をワークやハンドに付して撮像するなどがある。しかし、画像の任意の領域をマーカーに置き換える手法はこれらの手法に限定されない。
【0067】
また、ワークやハンドの領域にマーカーを設定する際に、ワークやハンドの領域からマーカーの一部がはみ出していてもよい。さらに、ワークやハンドの領域は、画像中に実際のワークやハンドが映っている部分だけでなく、一定の面積領域をワークやハンドの領域として定めておいてもよい。
【0068】
さらに、マーカー付き参照画像とは、ロボット30の目標状態を表す画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マーカーが設定された画像をいう。例えば、マーカー付き参照画像は、図6(B)に示すMKIMのような参照画像である。
【0069】
また、マーカー付き撮像画像とは、撮像部20によりロボット30を撮像した画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マーカーが設定された画像をいう。例えば、マーカー付き撮像画像は、図6(B)に示すMKIMのような撮像画像である。
【0070】
なお、マーカー付き撮像画像の生成は、処理部110に含まれるマーカー付き撮像画像生成部114によって行われる。
【0071】
以上のように、マーカー付き参照画像とマーカー付き撮像画像とに基づいて、ビジュアルサーボを行うことが可能になるため、位置ベースビジュアルサーボを行う際には、ホモグラフィー行列の算出等が容易になり、特徴ベースビジュアルサーボを行う際には、特徴量の抽出が容易になる。よって、制御信号を算出する際の処理量を軽減することができ、ワークとハンドが一定距離以上離れている場合でも、有効な制御信号を算出することが可能となる。
【0072】
また、記憶部130は、マスク画像を記憶すると共に、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定され、さらに少なくとも一つのマーカーがマスク画像の上に設定されたマーカー付きマスク有り参照画像を、参照画像として記憶してもよい。そして、処理部110は、撮像画像に映るワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定され、さらに少なくとも一つのマーカーがマスク画像の上に設定されたマーカー付きマスク有り撮像画像を、撮像画像に基づいて生成し、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0073】
これにより、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。
【0074】
ここで、マスク画像とは、作業スペースの一部の領域を覆うために設定される画像である。本実施形態では、作業スペース内にあるワーク40やハンド330のうち、少なくとも一方の領域に対して設定される画像である。マスク画像自体がどのような画像であるかは問わないが、他の領域と区別しやすい画像、例えば黒色一色からなる画像などが望ましい。
【0075】
図7(A)に、作業スペースを撮像した画像でありマスク画像が未設定である画像NMIMを、図7(B)に、作業スペースを撮像した画像でありマスク画像を設定した画像MIMを示す。図7(A)において、ロボットRBのハンドHDとワークWKが映っている領域が、図7(B)では、領域MHDとMWKに置き換えられている。本例では、図7(B)において、このハンドHDとワークWKを覆う黒色一色の領域がマスク画像であり、ハンドHDとワークWKの領域にマスク画像を設定することにより、領域MHD及びMWKとしている。
【0076】
また、マスク画像を設定するとは、画像を生成する際に、作成される画像に映し出される任意の領域をマスク画像に置き換えることをいう。生成した画像の上にマスク画像を重畳したり、画像の任意の領域を切り出してマスク画像をはめ込むなど、マスク画像に置き換える方法は問わない。
【0077】
さらに、マーカー付きマスク有り参照画像とは、ロボット30の目標状態を表す画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定され、さらに少なくとも一つのマーカーがマスク画像の上に設定された画像をいう。マーカー付きマスク有り参照画像は、マーカー付き参照画像のうちの一つでもある。例えば、マーカー付きマスク有り参照画像は、後述する図9(A)に示すMKMRIMのような画像である。
【0078】
また、マーカー付きマスク有り撮像画像とは、撮像部20によりロボット30を撮像した画像であり、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域に対して、マスク画像が設定され、さらに少なくとも一つのマーカーがマスク画像の上に設定された画像をいう。マーカー付きマスク有り撮像画像は、マーカー付き撮像画像のうちの一つでもある。例えば、マーカー付きマスク有り撮像画像は、後述する図9(B)に示すMKMPIMのような画像である。
【0079】
以上のように、参照画像としてマーカー付きマスク有り参照画像を使用するため、ワークやハンドが異なっていた場合でも、同じマーカー付きマスク有り参照画像を使用することができる場合がある。そのため、ワークやハンドの種類が多く、それらの組み合わせ全てについて参照画像を準備する場合に比べて、参照画像の準備コストを抑えることが可能となる。従って、マスク画像を用いることにより、参照画像の準備コストを抑え、さらに、マーカーを用いることで、ホモグラフィー等の計算や画像の特徴量の算出の容易化を図ること等が可能となる。
【0080】
また、処理部110は、ロボット30のアーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0081】
ここで、アーム320のエンドポイントの位置と目標位置との差とは、3次元空間上における二点間の直線距離だけではなく、数学的にこれと等価な情報も含まれる。例えば、2次元の撮像画像におけるアーム320のエンドポイントの位置と目標位置との距離などがある。具体的な一例としては、後述する図10に示すような、2次元画像上におけるワークWKの中心点WCP(目標位置)とハンドHDの中心点HCP間の距離L1のような値をいう。他にも、撮像画像上にアーム320のエンドポイントの位置もしくは目標位置のどちらか一方しか映っていない場合には、アーム320のエンドポイントの位置と目標位置との差を第1の閾値よりも大きい所定の値と設定すること等がある。
【0082】
また、第1の閾値とは、アーム320のエンドポイントの位置と目標位置が十分に離れているか否かを判定する基準となる値である。第1の閾値には、アーム320のエンドポイントの位置と目標位置との差として用いられている値に対応する基準値が設定される。また、第1の閾値は、あらかじめ設定されるものでも良いし、処理部110等によって算出されるものであっても良い。例えば、第1の閾値とは、後述する図10に示すような、2次元画像上におけるワークWKの中心点WCP(目標位置)を中心とする円の半径R1のような値をいう。
【0083】
これにより、アーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、アーム320のエンドポイントの位置と目標位置が十分に離れていると判断することができる。そして、この場合に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。アーム320のエンドポイントの位置と目標位置が十分に離れている場合には、ロボット各部の位置を大きく動かすことが多いため、処理量が大きくなることが多い。マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づくビジュアルサーボは、上述した通り、処理量を抑えることができるという利点があるため、このような処理を行い、処理負荷を抑制することが有効である。
【0084】
また、処理部110は、ロボット30のアーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、アーム320のエンドポイントを所定の位置へ移動させるための制御信号を、ロボット制御部120に出力してもよい。そして、ロボット制御部120は、制御信号に基づいてロボット30を制御し、ロボット30のアーム320のエンドポイントを所定の位置へ移動させてもよい。さらに、処理部110は、ロボット30が所定の位置に位置すると判断する場合において、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0085】
ここで、所定の位置とは、ビジュアルサーボを行うことなく、ロボット又はロボットの各部を移動させることができる位置のことをいう。所定の位置は、例えば、ロボット30のアーム320のエンドポイントの初期位置でも良いし、初期位置以外のあらかじめ設定された位置であっても良い。
【0086】
これにより、ロボット30のアーム320のエンドポイントの位置と目標位置との差が第1の閾値以上であると判断する場合に、ロボット30のアーム320のエンドポイントを所定の位置へ移動させた後に、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。
【0087】
この手法によれば、ビジュアルサーボを行わずに、ロボット30を所定の位置へ移動させることができるため、ビジュアルサーボを行う回数を削減することができる場合がある。そのため、ロボット制御システムにかかる処理負荷を抑制することができる。
【0088】
また、記憶部130は、マスク画像が設定されていないマスク無し参照画像とマーカー付き参照画像とを、参照画像として記憶してもよい。そして、処理部110は、ロボット30のアーム320のエンドポイントと目標位置との差が第2の閾値以下であると判断する場合に、マスク画像が設定されていない撮像画像であるマスク無し撮像画像と、マスク無し参照画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0089】
ここで、マスク無し参照画像とは、ロボット30の目標状態を表す画像であり、マスク画像が設定されていない画像をいう。例えば、マスク無し参照画像は、図4(A)に示すRIMのような参照画像である。また、マスク無し参照画像は、マーカーが設定されている否かは問わない。例えば、後述する図8(A)のマーカー付き参照画像MKRIMは、同時にマスク無し参照画像でもある。
【0090】
また、マスク無し撮像画像とは、撮像部20によりロボット30を撮像した画像であり、マスク画像が設定されていない画像をいう。例えば、マスク無し撮像画像は、図4(B)に示すPIMのような撮像画像である。また、マスク無し撮像画像は、マーカーが設定されている否かは問わない。例えば、後述する図8(B)のマーカー付き撮像画像MKPIMは、同時にマスク無し撮像画像でもある。
【0091】
さらに、第2の閾値とは、アーム320のエンドポイントの位置と目標位置が十分に近いか否かを判定する基準となる値である。第2の閾値には、アーム320のエンドポイントの位置と目標位置との差として用いられる値に対応する基準値が設定される。また、第2の閾値は、あらかじめ設定されるものでも良いし、処理部110等によって算出されるものであっても良い。さらに、第2の閾値は、第1の閾値と同じ値であってもよい。例えば、第2の閾値とは、後述する図12に示すような、2次元画像上におけるワークWKの中心点WCP(目標位置)を中心とする円の半径R2のような値をいう。
【0092】
これにより、アーム320のエンドポイントの位置と目標位置との差が第2の閾値以下であると判断する場合に、アーム320のエンドポイントの位置と目標位置が十分に近いと判断することができる。そして、この場合に、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。アーム320のエンドポイントの位置と目標位置が十分に近い場合には、ロボット各部の位置の微調整をすることが多いため、精度の高い制御を要することが多い。マスク無し撮像画像とマスク無し参照画像とに基づくビジュアルサーボは、処理量はかかるものの、ワーク及びハンドの大きさや形状等の情報を詳細に認識することができるため、より精度の高い制御を行うことができるという利点がある。よって、このような処理が有効である。
【0093】
また、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、処理負荷が大きすぎるため、制御信号の決定ができない場合がある。
【0094】
そこで、記憶部130は、マスク画像と、マスク無し参照画像とを記憶すると共に、マーカー付きマスク有り参照画像を参照画像として記憶してもよい。そして、処理部110は、マスク無し撮像画像とマスク無し参照画像とに基づきビジュアルサーボを行い、制御信号の決定ができなかった場合に、マーカー付きマスク有り撮像画像を生成し、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0095】
これにより、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、制御信号の決定ができなかった場合に、マーカー付きマスク有り撮像画像とマーカー付きマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、制御信号を決定できずに、ロボット30が制御不可能になることを回避すること等が可能となる。
【0096】
また、処理部110は、ワーク40及びロボット30のハンド330のうちの少なくとも一方について、画像形状認識処理を行うことにより、マーカーを設定してもよい。
【0097】
ここで、画像形状認識処理とは、画像中の物体の形状を認識するために用いられる手法のこといい、例えば後述する図13(A)に示すようなオプティカルフロー解析などを指す。
【0098】
これにより、ワーク40及びロボット30のハンド330のうち、少なくとも一方の領域の画像形状認識処理を行うことにより、マーカーを設定すること等が可能になる。画像形状認識処理を行う際には、ハンド等にシール等のマーカーを貼り付けておく等の準備をする必要はない。従って、マーカーの設定を行う際の準備コストをかけずに、マーカーを設定すること等が可能となる。
【0099】
また、記憶部130は、回転対称性を有さないマーカーが設定されたマーカー付き参照画像を記憶してもよい。そして、処理部110は、回転対称性を有さないマーカーが設定されたマーカー付き撮像画像を生成し、マーカー付き参照画像とマーカー付き撮像画像とに基づいてビジュアルサーボを行って、制御信号を生成し、制御信号をロボット制御部120に出力してもよい。
【0100】
これにより、回転対称性を有さないマーカーを設定したマーカー付き参照画像とマーカー付き撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。
【0101】
ここで、回転対称性を有するマーカーとは、2次元座標上においてマーカーを一回転させる場合に、元のマーカーと一致することのあるマーカーのことをいう。したがって、回転対称性を有するマーカーを用いて、マーカーが設定されたロボットのハンドやワークの向き等を判別する場合には、複数のマーカーを用い、複数のマーカーの位置関係により判別する必要がある。
【0102】
一方、回転対称性を有さないマーカーとは、2次元座標上においてマーカーを回転させる場合に、一回転させて初めて元のマーカーと一致するマーカーのことをいう。回転対称性を有さないマーカーを用いて、マーカーが設定されたロボットのハンドやワークの向き等を判別する場合には、一つのマーカーの向きさえ判別すればよく、複数のマーカーを準備する必要がない。
【0103】
したがって、設定するマーカーの数を削減し、マーカーを設定するコストを削減すること等が可能になる。
【0104】
なお本実施形態のロボット制御システム等は、プログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御システム等が実現される。具体的には情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そしてCPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
【0105】
2.具体的な実施例
以下では、図8(A)〜図14(C)を用いて、本実施形態の具体的な実施例について説明する。
【0106】
まず、図8(A)、図8(B)を用いて、マーカー付き参照画像とマーカー付き撮像画像に基づいて、ビジュアルサーボを行う手法を説明する。図8(A)はマーカー付き参照画像MKRIMを、図8(B)はマーカー付き撮像画像MKPIMを示す。
【0107】
マーカー付き参照画像MKRIMは事前に準備される。この場合には、ロボットRB及びロボットRBの各部を期待する位置に配置した上で、撮像部により作業スペースを撮像し、画像を生成する。そして、生成された画像に映るワーク及びハンドの領域にマーカー画像MKを重畳し、ワークMKWK、及びハンドMKHDとした上で、マーカー付き参照画像MKRIMを生成する。
【0108】
一方、マーカー付き撮像画像MKPIMは、実際にビジュアルサーボを行う際に、撮像部により撮像される画像にマーカー画像MKを重畳して生成される。マーカー画像MKを重畳する方法は、マーカー付き参照画像MKRIMと同様である。
【0109】
本例では、マーカー付き参照画像MKRIMのハンドMKHDと、マーカー付き撮像画像MKPIMのハンドMKHDとの位置が異なるため、マーカー付き撮像画像MKPIMのハンドMKHDをマーカー付き参照画像MKRIMのハンドMKHDの位置に近付けるような制御信号をホモグラフィー等により算出する。
【0110】
次に、図9(A)、図9(B)を用いて、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像に基づいて、ビジュアルサーボを行う手法を説明する。図9(A)はマーカー付きマスク有り参照画像MKMRIMを、図9(B)はマーカー付きマスク有り撮像画像MKMPIMを示す。
【0111】
マーカー付きマスク有り参照画像MKMRIMは例えば事前に準備される。この場合には、ロボットRB及びロボットRBの各部を期待する位置に配置した上で、撮像部により作業スペースを撮像し、画像を生成する。そして、生成された画像に映るワーク及びハンドの領域にマスク画像を重畳し、さらにマスク画像の上からマーカー画像MKを重畳して、ワークMKMWK、及びハンドMKMHDとした上で、マーカー付きマスク有り参照画像MKMRIMを生成する。
【0112】
一方、マーカー付きマスク有り撮像画像MKMPIMは、実際にビジュアルサーボを行う際に、撮像部により撮像される画像にマスク画像を重畳し、さらにその上からマーカー画像MKを重畳して生成される。マスク画像とマーカー画像MKを重畳する方法は、マーカー付き参照画像MKRIMと同様である。
【0113】
以降の処理の流れは、図8(A)、図8(B)と同様である。
【0114】
次に、図10を用いて、アームのエンドポイントが目標位置と十分離れている場合におけるビジュアルサーボの説明をする。なお、図10はワークWKの中心点WCPが目標位置と一致している場合を示している。
【0115】
本例では、2次元の撮像画像上において、撮像画像に映るワークWKの中心点WCP(目標位置)とハンドHDの中心点HCPとの距離L1が、WCPを中心とする円の半径R1以上である場合には、アームのエンドポイントが目標位置と十分離れていると判断し、L1がR1よりも小さい場合には、十分離れていないと判断する。
【0116】
図10の場合においては、L1がR1以上であるため、アームのエンドポイントが目標位置と十分離れていると判断し、ワークWKとハンドHDにマスク画像を設定し、さらにその上からマーカー画像を設定して、マーカー付きマスク有り撮像画像を生成する。そして、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像を用いて、ビジュアルサーボを行う。
【0117】
次に、図11(A)と図11(B)を用いて、所定位置までロボットを移動させた後、ビジュアルサーボを行う手法を説明する。
【0118】
まず、図11(A)は、ビジュアルサーボを複数回行うことにより、ロボットRB及びロボットRBの各部を目標位置に移動させる手法を示している。この時、第1の撮像部により映すことのできる範囲をVA1、第2の撮像部により映すことのできる範囲をVA2、第3の撮像部により映すことのできる範囲をVA3とする。本例では、VA1にロボットRBのハンドHDが映っているため、VA1で一回目のビジュアルサーボを行い、VA1での目標位置にハンドHDを移動させる。次に、VA2、VA3と順にビジュアルサーボを行い、VA2での目標位置を経て、最終的な目標位置でもあるVA3での目標位置にハンドHDを移動させる。
【0119】
図11(A)の場合には、1回のビジュアルサーボにより直接最終的な目標位置へハンドHDを移動させることができず、処理負荷が大きいビジュアルサーボを複数回繰り返す必要がある。また、VA1やVA2では、ロボットRB及びロボットRBの各部を目標位置へ厳密に移動させることを求められておらず、最終目標位置であるVA3での目標位置にさえロボットRB及びロボットRBの各部を正確に移動させればよい。さらに、VA3内からビジュアルサーボを行うことさえできれば、VA3のどの位置からであっても、ロボットRB及びロボットRBの各部を最終目標位置へ移動させることが可能である。
【0120】
そこで、ロボットRB及びロボットRBの各部の現在位置よりも目標位置に近い所定の位置へあらかじめ移動させた後に、ビジュアルサーボを行う手法が考えられる。例えば、図11(A)の例で、VA2内の所定の位置へ移動させた場合には、ビジュアルサーボを2回行えば最終目標位置へ到達することが可能であるし、VA3内の所定の位置へ移動させた場合には、ビジュアルサーボを1回行えば最終目標位置へ到達することが可能である。
【0121】
図11(B)には、S1のような軌道を通って、ハンドHDの中心点HCP1をVA3内のHCP2へ移動させた後に、ビジュアルサーボを行う場合を示す。本例においては、所定の位置HCP2は、ロボットRBが初期姿勢をとった際のハンドHDの中心点であるため、ビジュアルサーボを行うことなく、ハンドHDの位置を変更することが可能である。この手法は、初期姿勢を利用する場合に限らず、あらかじめ設定してある姿勢や位置が、ロボットRB及びロボットRBの各部の現在位置より、目標位置に近いと判断する場合に実行することができる。以上の手法を用いることにより、上述した効果を得ることができ、ロボット制御システムにかかる処理負荷を抑制することができる。
【0122】
次に、図12を用いて、アームのエンドポイントが目標位置と十分近い場合におけるビジュアルサーボの説明をする。なお、図12は目標位置がワークWKの中心点WCPと一致している場合を示している。
【0123】
本例では、2次元の撮像画像上において、撮像画像に映るワークWKの中心点WCP(目標位置)とハンドHDの中心点HCPとの距離L2が、WCPを中心とする円の半径R2以下である場合には、アームのエンドポイントが目標位置と十分近いと判断し、L2がR2よりも大きい場合には、十分近くはないと判断する。
【0124】
図12の場合においては、L2がR2以下であるため、アームのエンドポイントが目標位置に十分近いと判断し、マスク無し参照画像とマスク無し撮像画像を用いて、ビジュアルサーボを行う。
【0125】
しかし、この場合に、ロボット制御システムにかかる処理負荷が大きすぎるため、ビジュアルサーボにより制御信号が決定できない場合には、ワークWKとハンドHDにマスク画像を設定し、さらにその上からマーカー画像を設定して、マーカー付きマスク有り撮像画像を生成する。そして、マーカー付きマスク有り参照画像とマーカー付きマスク有り撮像画像を用いて、ビジュアルサーボを行う。
【0126】
次に、図13(A)と図13(B)を用いて、画像形状認識処理によりマーカー画像を設定する手法の説明をする。図13(A)は、マーカー画像が未設定である画像NMKIMを、図13(B)は、マーカー画像が設定済みの画像MKIMを示す。
【0127】
図13(A)では、作業スペースを撮像する際に、オプティカルフロー解析を行った場合のオプティカルフローを矢印で示している。そして、オプティカルフロー解析によって検出された動体の先端を含む領域OPAを特定し、OPA内にハンドHDが含まれているとみなす。さらに、動体が進行する方向に存在するOPA内の一定領域を、マーカー設定エリアMKAとして特定する。
【0128】
そして、特定されたマーカー設定エリアMKAにマーカー画像を重畳し、マーカー付き画像MKIMを生成する。マーカー設定エリアMKA内でのマーカー画像の配置方法は任意であるが、マーカーの配置によって、ハンドやワークの向きが判別できるように配置することが望ましい。例えば、3つのマーカーを用いる場合には、3つのマーカーを直線で結ぶと直角三角形となるようにマーカーを配置すること等が考えられる。
【0129】
最後に、図14(A)〜図14(C)を用いて、回転対称性を有さないマーカーを用いてビジュアルサーボを行う手法の説明をする。
【0130】
図14(A)及び図14(B)は、回転対称性を有さないマーカーの一例として、マーカーDMK1とマーカーDMK2を示す。また、図14(C)は、回転対称性を有さないマーカーDMKをハンドに設定し、ハンドMKHDとしたマーカー付き画像MKIMである。
【0131】
回転対称性を有さないマーカーを用いてビジュアルサーボを行う場合の以降の処理の流れは、上述した手法と同様である。
【0132】
3.処理の詳細
以下では、図15のフローチャートを用いて、本実施形態の処理の詳細の一例について説明する。
【0133】
まず、撮像部20が作業スペースを撮像し、撮像画像を生成する(S20)。次に、処理部110が撮像画像に基づいて、ワーク40の位置とアーム320のエンドポイント(ハンド330としてもよい)の位置の差分である3次元空間での直線距離を推定する(S21)。
【0134】
そして、処理部110が、推定した距離が第1の閾値よりも大きいか判断し(S22)、第1の閾値よりも大きいと判断する場合には、ロボット30又はロボット30の各部を所定の位置へ移動させるための制御信号をロボット制御部120に出力し、ロボット制御部120は制御信号に従ってロボット30を制御する(S23)。
【0135】
一方、処理部110が、推定した距離が第1の閾値以下であると判断した場合には、第2の閾値と推定した距離を比較する(S24)。
【0136】
処理部110が推定した距離が第2の閾値よりも大きいと判断した場合、又はS23の処理の後、処理部110は、複数の撮像部のうち、ロボット30のアーム320のエンドポイントを映している撮像部20により撮影された撮像画像に基づいて、ビジュアルサーボを開始することを決定する(S25)。そして、処理部110は、ビジュアルサーボを開始する撮像画像に対応するマーカー付きマスク有り参照画像を記憶部130から読み出す(S26)。さらに、処理部110が、記憶部130からマーカーとマスク画像を読み出し、取得した撮像画像にマスク画像を重畳させて、さらにその上にマーカーを重畳させて、マーカー付きマスク有り撮像画像を生成する(S27)。
【0137】
一方、処理部110が、推定した距離が第2の閾値以下であると判断した場合、処理部110は、複数の撮像部のうち、ロボット30のアーム320のエンドポイントを映している撮像部20により撮影された撮像画像に基づいて、ビジュアルサーボを開始することを決定する(S28)。そして、処理部110は、ビジュアルサーボを開始する撮像画像に対応するマスク無し参照画像を記憶部130から読み出す(S29)。また、撮像部20により取得した撮像画像をマスク無し撮像画像とする。
【0138】
そして、マーカー付きマスク有り参照画像を読み込んだ後には、マーカー付きマスク有り撮像画像とマーカー付きマスク有り参照画像に基づいて、処理部110がロボット30の制御指令を生成する(S30)。一方、マスク無し参照画像を読み込んだ後には、マスク無し撮像画像とマスク無し参照画像に基づいて、処理部110がロボット30の制御指令を生成する(S30)。制御指令生成処理は、上述した位置ベースビジュアルサーボと同様であり、例えば、制御指令生成はホモグラフィー等を用いることにより行われる。
【0139】
この際に、制御指令が生成できるか否かを判断し(S31)、制御指令が生成できなかった場合には、S25の処理へ移行する。一方、制御指令が生成できた場合には、生成された制御指令に基づいて、制御量が目標値に収束したか否かを判断する(S32)。制御量が目標値に収束したと判断する場合にはビジュアルサーボを終了する。一方、制御量が目標値に収束していないと判断する場合には、処理部110はロボット制御部120に制御指令を送出する(S33)。そして、S20の処理へ移行する。以上の流れを制御量が収束するまで繰り返す。
【0140】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ロボット制御システム、ロボットシステム及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【0141】
10 ロボット制御システム、20 撮像部、30 ロボット、40 ワーク、
110 処理部、112 制御信号生成部、114 マーカー付き撮像画像生成部、
120 ロボット制御部、130 記憶部、140 I/F部、310 制御部、
320 アーム、330 ハンド。
【特許請求の範囲】
【請求項1】
ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、
前記処理部から出力された前記ロボットの制御信号に基づいて、前記ロボットを制御するロボット制御部と、
ビジュアルサーボ用の前記参照画像とマーカーの情報とを記憶する記憶部と、
を含み、
前記記憶部は、
ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き参照画像を、前記参照画像として記憶し、 前記処理部は、
前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き撮像画像を、前記撮像画像に基づいて生成し、前記マーカー付き参照画像と前記マーカー付き撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項2】
請求項1において、
前記記憶部は、
マスク画像を記憶すると共に、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り参照画像を、参照画像として記憶し、
前記処理部は、
前記撮像画像に映るワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り参照画像を、前記撮像画像に基づいて生成し、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項3】
請求項2において、
前記処理部は、
前記ロボットのアームのエンドポイントの位置と前記目標位置との差が第1の閾値以上であると判断する場合に、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項4】
請求項3において、
前記処理部は、
前記ロボットの前記アームの前記エンドポイントの位置と前記目標位置との差が前記第1の閾値以上であると判断する場合に、前記アームの前記エンドポイントを所定の位置へ移動させるための前記制御信号を、前記ロボット制御部に出力し、
前記ロボット制御部は、
前記制御信号に基づいて前記ロボットを制御し、前記ロボットの前記アームの前記エンドポイントを前記所定の位置へ移動させ、
前記処理部は、
前記ロボットが前記所定の位置に位置すると判断する場合において、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記記憶部は、
前記マスク画像が設定されていないマスク無し参照画像と前記マーカー付き参照画像とを、前記参照画像として記憶し、
前記処理部は、
前記ロボットのアームのエンドポイントと前記目標位置との差が第2の閾値以下であると判断する場合に、前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記記憶部は、
マスク画像と、前記マスク画像が設定されていない前記参照画像であるマスク無し参照画像とを記憶すると共に、ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り参照画像を、前記参照画像として記憶し、
前記処理部は、
前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づきビジュアルサーボを行い、前記制御信号の決定ができなかった場合に、前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに前記マスク画像の上に少なくとも一つの前記マーカーが設定された前記撮像画像であるマーカー付きマスク有り撮像画像を生成し、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記処理部は、
前記ワーク及び前記ロボットの前記ハンドのうちの少なくとも一方について、画像形状認識処理を行うことにより、前記マーカーを設定することを特徴とするロボット制御システム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記記憶部は、
回転対称性を有さない前記マーカーが設定された前記マーカー付き参照画像を記憶し、 前記処理部は、
回転対称性を有さない前記マーカーが設定された前記マーカー付き撮像画像を生成し、前記マーカー付き参照画像と前記マーカー付き撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項9】
請求項1乃至8のいずれかに記載するロボット制御システムを含むことを特徴とするロボットシステム。
【請求項10】
ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、
前記処理部から出力された前記ロボットの制御信号に基づいて、前記ロボットを制御するロボット制御部と、
ビジュアルサーボ用の前記参照画像とマーカーの情報とを記憶する記憶部として、
コンピューターを機能させ、
前記記憶部は、
ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き参照画像を、前記参照画像として記憶し、 前記処理部は、
前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き撮像画像を、前記撮像画像に基づいて生成し、前記マーカー付き参照画像と前記マーカー付き撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするプログラム。
【請求項1】
ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、
前記処理部から出力された前記ロボットの制御信号に基づいて、前記ロボットを制御するロボット制御部と、
ビジュアルサーボ用の前記参照画像とマーカーの情報とを記憶する記憶部と、
を含み、
前記記憶部は、
ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き参照画像を、前記参照画像として記憶し、 前記処理部は、
前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き撮像画像を、前記撮像画像に基づいて生成し、前記マーカー付き参照画像と前記マーカー付き撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項2】
請求項1において、
前記記憶部は、
マスク画像を記憶すると共に、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り参照画像を、参照画像として記憶し、
前記処理部は、
前記撮像画像に映るワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り参照画像を、前記撮像画像に基づいて生成し、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項3】
請求項2において、
前記処理部は、
前記ロボットのアームのエンドポイントの位置と前記目標位置との差が第1の閾値以上であると判断する場合に、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項4】
請求項3において、
前記処理部は、
前記ロボットの前記アームの前記エンドポイントの位置と前記目標位置との差が前記第1の閾値以上であると判断する場合に、前記アームの前記エンドポイントを所定の位置へ移動させるための前記制御信号を、前記ロボット制御部に出力し、
前記ロボット制御部は、
前記制御信号に基づいて前記ロボットを制御し、前記ロボットの前記アームの前記エンドポイントを前記所定の位置へ移動させ、
前記処理部は、
前記ロボットが前記所定の位置に位置すると判断する場合において、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記記憶部は、
前記マスク画像が設定されていないマスク無し参照画像と前記マーカー付き参照画像とを、前記参照画像として記憶し、
前記処理部は、
前記ロボットのアームのエンドポイントと前記目標位置との差が第2の閾値以下であると判断する場合に、前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記記憶部は、
マスク画像と、前記マスク画像が設定されていない前記参照画像であるマスク無し参照画像とを記憶すると共に、ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに少なくとも一つの前記マーカーが前記マスク画像の上に設定されたマーカー付きマスク有り参照画像を、前記参照画像として記憶し、
前記処理部は、
前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づきビジュアルサーボを行い、前記制御信号の決定ができなかった場合に、前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定され、さらに前記マスク画像の上に少なくとも一つの前記マーカーが設定された前記撮像画像であるマーカー付きマスク有り撮像画像を生成し、前記マーカー付きマスク有り参照画像と前記マーカー付きマスク有り撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記処理部は、
前記ワーク及び前記ロボットの前記ハンドのうちの少なくとも一方について、画像形状認識処理を行うことにより、前記マーカーを設定することを特徴とするロボット制御システム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記記憶部は、
回転対称性を有さない前記マーカーが設定された前記マーカー付き参照画像を記憶し、 前記処理部は、
回転対称性を有さない前記マーカーが設定された前記マーカー付き撮像画像を生成し、前記マーカー付き参照画像と前記マーカー付き撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項9】
請求項1乃至8のいずれかに記載するロボット制御システムを含むことを特徴とするロボットシステム。
【請求項10】
ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、
前記処理部から出力された前記ロボットの制御信号に基づいて、前記ロボットを制御するロボット制御部と、
ビジュアルサーボ用の前記参照画像とマーカーの情報とを記憶する記憶部として、
コンピューターを機能させ、
前記記憶部は、
ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き参照画像を、前記参照画像として記憶し、 前記処理部は、
前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して、少なくとも一つの前記マーカーが設定されたマーカー付き撮像画像を、前記撮像画像に基づいて生成し、前記マーカー付き参照画像と前記マーカー付き撮像画像とに基づいてビジュアルサーボを行って、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図11】
【図12】
【図15】
【図9】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図11】
【図12】
【図15】
【図9】
【図13】
【図14】
【公開番号】特開2012−254518(P2012−254518A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−266540(P2011−266540)
【出願日】平成23年12月6日(2011.12.6)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願日】平成23年12月6日(2011.12.6)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]