(57)【要約】【課題】  マスク画像を設定した画像を用いてビジュアルサーボを行うことができるロボット制御システム、ロボットシステム及びプログラムの提供。【解決手段】  ロボット制御システム１０は、参照画像と撮像画像とに基づきビジュアルサーボを行う処理部１１０と、制御信号に基づきロボット３０を制御するロボット制御部１２０と、参照画像とマスク画像とを記憶する記憶部１３０とを含む。記憶部１３０は、ワーク４０又はロボット３０のハンド３３０の領域にマスク画像が設定されたマスク有り参照画像を、参照画像として記憶する。処理部１１０は、ワーク４０又はロボット３０のハンド３３０の領域にマスク画像を設定したマスク有り撮像画像を、撮像画像に基づいて生成し、マスク有り参照画像とマスク有り撮像画像とに基づきビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部１２０に出力する。【選択図】      図２
2012236266.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、
前記処理部から出力された制御信号に基づいて、前記ロボットを制御するロボット制御部と、
ビジュアルサーボ用の前記参照画像とマスク画像とを記憶する記憶部と、
を含み、
前記記憶部は、
ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定されたマスク有り参照画像を、前記参照画像として記憶し、
前記処理部は、
前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して前記マスク画像を設定したマスク有り撮像画像を、前記撮像画像に基づいて生成し、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項２】
請求項１において、
前記処理部は、
前記ロボットのアームのエンドポイントの位置と前記目標位置との差が第１の閾値以上であると判断する場合に、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項３】
請求項２において、
前記処理部は、
前記ロボットの前記アームの前記エンドポイントの位置と前記目標位置との差が前記第１の閾値以上であると判断する場合に、前記アームの前記エンドポイントを所定の位置へ移動させるための前記制御信号を、前記ロボット制御部に出力し、
前記ロボット制御部は、
前記制御信号に基づいて前記ロボットを制御し、前記ロボットの前記アームの前記エンドポイントを前記所定の位置へ移動させ、
前記処理部は、
前記ロボットが前記所定の位置に位置すると判断した場合において、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記記憶部は、
前記マスク画像が設定されていないマスク無し参照画像と前記マスク有り参照画像とを、前記参照画像として記憶し、
前記処理部は、
前記ロボットのアームのエンドポイントと目標位置との差が第２の閾値以下であると判断する場合に、前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記記憶部は、
前記マスク画像が設定されていないマスク無し参照画像と前記マスク有り参照画像とを、前記参照画像として記憶し、
前記処理部は、
前記マスク画像が設定されていない前記撮像画像である前記マスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行い、前記制御信号の決定ができなかった場合に、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記処理部は、
前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に設定されたマーカーに基づいて、前記マスク画像を設定することを特徴とするロボット制御システム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記処理部は、
前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域の画像形状認識処理を行うことにより、前記マスク画像を設定することを特徴とするロボット制御システム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記記憶部は、
前記参照画像として複数のマスク有り参照画像を記憶し、
前記処理部は、
前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の属性情報に応じたマスク有り撮像画像を生成し、前記複数のマスク有り参照画像の中から、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の前記属性情報に応じたマスク有り参照画像を選択して、前記マスク有り撮像画像と前記マスク有り参照画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システム。
【請求項９】
請求項１乃至８のいずれかに記載するロボット制御システムを含むことを特徴とするロボットシステム。
【請求項１０】
ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、
前記処理部から出力された制御信号に基づいて、前記ロボットを制御するロボット制御部と、
ビジュアルサーボ用の前記参照画像とマスク画像とを記憶する記憶部として、
コンピューターを機能させ、
前記記憶部は、
ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定されたマスク有り参照画像を、前記参照画像として記憶し、
前記処理部は、
前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して前記マスク画像を設定したマスク有り撮像画像を、前記撮像画像に基づいて生成し、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御システム、ロボットシステム及びプログラム等に関係する。
【背景技術】
【０００２】
近年、生産現場において、人が行ってきた作業を機械化・自動化するために、産業用ロボットを導入することが多くなってきた。しかし、ロボットの位置決めを行うにあたっては、精密なキャリブレーションが前提となり、ロボット導入の障壁となっている。
【０００３】
ここで、ロボットの位置決めを行う手法の一つとしてビジュアルサーボがある。ビジュアルサーボは、参照画像（ゴール画像、目標画像）と撮像画像（現在の画像）との差に基づいて、ロボットを制御する技術である。ある種のビジュアルサーボは、キャリブレーションに精密さを求めない点で有用であり、ロボット導入障壁を下げる技術として注目されている。
【０００４】
しかし、その一方で、ビジュアルサーボは、カメラで捉えることのできる範囲でなければ、ロボットを制御することができないという欠点をもつ。
【０００５】
このため、一つのカメラでは捉えきれない範囲において、ロボットを制御するためには、例えばカメラを複数配置し、カメラごとに参照画像を持たせ、ビジュアルサーボを行う手法等が想定される。
【０００６】
これらのビジュアルサーボに関する技術としては非特許文献１に記載される従来技術がある。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】システム／制御／情報，Ｖｏｌ．５３，Ｎｏ．１１，ｐｐ．１−８，２００９，橋本浩一，ビジュアルサーボＶ  −特徴ベースビジュアルサーボ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
多種類の作業に対応できる汎用的なロボットを使うことを想定した場合、異なるワークやツールの組み合わせのすべてに対して、必要な参照画像を用意することは困難である。
【０００９】
さらに、ビジュアルサーボは使用する画像によっては、想定時間内に画像処理が終わらずに制御信号送出が遅れたり、目標位置からロボットが一定距離以上離れている場合に、画像処理に失敗して有効な制御信号を生成することができないこともある。
【００１０】
本発明の目的は、マスク画像を設定した画像を用いてビジュアルサーボを行うことができるロボット制御システム、ロボットシステム及びプログラム等を提供することにある。
【００１１】
また、本発明の目的は、ワークやハンド等にマスク画像を設定し、マスク画像を設定した画像を用いてビジュアルサーボを行うことにより、参照画像の準備コストを抑えつつ、ワークとハンドが一定距離以上離れている場合でも、有効な制御信号を算出することができるロボット制御システム、ロボットシステム及びプログラム等を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一態様は、ロボットの目標状態を表す画像である参照画像と、撮像部によりロボットを撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部と、前記処理部から出力された制御信号に基づいて、前記ロボットを制御するロボット制御部と、ビジュアルサーボ用の前記参照画像とマスク画像とを記憶する記憶部と、を含み、前記記憶部は、ワーク及び前記ロボットのハンドのうち、少なくとも一方の領域に対して、前記マスク画像が設定されたマスク有り参照画像を、前記参照画像として記憶し、前記処理部は、前記撮像画像に映る前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に対して前記マスク画像を設定したマスク有り撮像画像を、前記撮像画像に基づいて生成し、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力することを特徴とするロボット制御システムに関係する。また本発明の他の態様は、上記各部としてコンピューターを機能させるプログラム、又は該プログラムを記憶したコンピューター読み取り可能な情報記憶媒体に関係する。
【００１３】
本発明の一態様では、ワーク及びロボットのハンドのうち、少なくとも一方の領域に対して、あらかじめマスク画像が設定されたマスク有り参照画像を、参照画像として記憶しておく。さらに、撮像画像に映るワーク及びロボットのハンドのうち、少なくとも一方の領域に対してマスク画像を設定したマスク有り撮像画像を、撮像画像に基づいて生成する。これにより、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うことが可能となる。
【００１４】
また、本発明の一態様では、前記処理部は、前記ロボットのアームのエンドポイントの位置と前記目標位置との差が第１の閾値以上であると判断する場合に、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【００１５】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第１の閾値以上であると判断する場合に、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ロボット各部の位置を大きく動かすような処理量が大きい処理を行う場合に、ロボット制御システムにかかる処理負荷を抑制すること等が可能となる。
【００１６】
また、本発明の一態様では、前記処理部は、前記ロボットの前記アームの前記エンドポイントの位置と前記目標位置との差が前記第１の閾値以上であると判断する場合に、前記アームの前記エンドポイントを所定の位置へ移動させるための前記制御信号を、前記ロボット制御部に出力し、前記ロボット制御部は、前記制御信号に基づいて前記ロボットを制御し、前記ロボットの前記アームの前記エンドポイントを前記所定の位置へ移動させ、前記処理部は、前記ロボットが前記所定の位置に位置すると判断した場合において、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【００１７】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第１の閾値以上であると判断する場合に、ロボットのアームのエンドポイントを所定の位置へ移動させた後に、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ビジュアルサーボを行う回数を削減し、ロボット制御システムにかかる処理負荷を抑制すること等が可能になる。
【００１８】
また、本発明の一態様では、前記記憶部は、前記マスク画像が設定されていないマスク無し参照画像と前記マスク有り参照画像とを、前記参照画像として記憶し、前記処理部は、前記ロボットのアームのエンドポイントと目標位置との差が第２の閾値以下であると判断する場合に、前記マスク画像が設定されていない前記撮像画像であるマスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【００１９】
これにより、ロボットのアームのエンドポイントの位置と目標位置との差が第２の閾値以下であると判断する場合に、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、ロボット各部の位置の微調整のような精度の高い制御を要する場合に、精度の高いビジュアルサーボを行うこと等が可能となる。
【００２０】
また、本発明の一態様では、前記記憶部は、前記マスク画像が設定されていないマスク無し参照画像と前記マスク有り参照画像とを、前記参照画像として記憶し、前記処理部は、前記マスク画像が設定されていない前記撮像画像である前記マスク無し撮像画像と、前記マスク無し参照画像とに基づいてビジュアルサーボを行い、前記制御信号の決定ができなかった場合に、前記マスク有り参照画像と前記マスク有り撮像画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【００２１】
これにより、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、制御信号の決定ができなかった場合に、マスク有り撮像画像とマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、制御信号を決定できずに、ロボットが制御不可能になることを回避すること等が可能となる。
【００２２】
また、本発明の一態様では、前記処理部は、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域に設定されたマーカーに基づいて、前記マスク画像を設定してもよい。
【００２３】
これにより、ワーク及びロボットのハンドのうち、少なくとも一方の領域に設定されたマーカーに基づいて、マスク画像を設定すること等が可能になる。従って、マスク画像を設定する位置の特定が容易になり、処理負荷を軽減すること等が可能になる。
【００２４】
また、本発明の一態様では、前記処理部は、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の領域の画像形状認識処理を行うことにより、前記マスク画像を設定してもよい。
【００２５】
これにより、ワーク及びロボットのハンドのうち、少なくとも一方の領域の画像形状認識処理を行うことにより、マスク画像を設定すること等が可能になる。従って、マスク画像の設定を行う際の準備コストをかけずに、マスク画像を設定すること等が可能となる。
【００２６】
また、本発明の一態様では、前記記憶部は、前記参照画像として複数のマスク有り参照画像を記憶し、前記処理部は、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の属性情報に応じたマスク有り撮像画像を生成し、前記複数のマスク有り参照画像の中から、前記ワーク及び前記ロボットの前記ハンドのうち、少なくとも一方の前記属性情報に応じたマスク有り参照画像を選択して、前記マスク有り撮像画像と前記マスク有り参照画像とに基づいてビジュアルサーボを行い、前記制御信号を生成し、前記制御信号を前記ロボット制御部に出力してもよい。
【００２７】
これにより、ワーク及びロボットのハンドのうち、少なくとも一方の属性情報に応じたマスク有り撮像画像とマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、例えば、撮像画像の全体がマスク画像で覆われてしまう場合などの、マスク有り画像を用いたビジュアルサーボの実施が困難になる状態を防ぐことができる。
【００２８】
また、本発明の他の態様では、前記ロボット制御システムを含むことを特徴とするロボットシステムに関係する。
【図面の簡単な説明】
【００２９】
【図１】本実施形態のシステム構成例。
【図２】本実施形態の詳細なシステム構成例。
【図３】位置ベースビジュアルサーボのフローチャート。
【図４】図４（Ａ）、図４（Ｂ）は参照画像と撮像画像の説明図。
【図５】特徴ベースビジュアルサーボのフローチャート。
【図６】図６（Ａ）、図６（Ｂ）はマスク画像を設定した画像の説明図。
【図７】図７（Ａ）、図７（Ｂ）はマスク画像を用いたビジュアルサーボの説明図。
【図８】アームのエンドポイントが目標位置と十分離れている場合のビジュアルサーボの説明図。
【図９】図９（Ａ）、図９（Ｂ）は所定位置までロボットを移動させた後ビジュアルサーボを行う手法の説明図。
【図１０】アームのエンドポイントが目標位置と十分近い場合のビジュアルサーボの説明図。
【図１１】図１１（Ａ）、図１１（Ｂ）はマーカーを基準にマスク画像を設定する手法の説明図。
【図１２】図１２（Ａ）、図１２（Ｂ）は画像形状認識処理によりマスク画像を設定する手法の説明図。
【図１３】図１３（Ａ）、図１３（Ｂ）は属性情報に応じてマスク画像を選択する手法の説明図。
【図１４】本実施形態のマスク画像を用いたビジュアルサーボのフローチャート。
【発明を実施するための形態】
【００３０】
以下、本実施形態について説明する。まず、本実施形態のシステム構成例を説明し、次に、本実施形態の具体的な実施例を示す。その後、フローチャートを用いて本実施形態の処理の詳細について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３１】
１．システム構成例
１．１  ロボットシステムの構成例
本実施形態に係るロボットシステムの構成例を図１に示す。ロボットシステムは、ロボット制御システム１０と、撮像部２０と、ロボット３０とを含む。ただし、ロボットシステムは図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００３２】
ロボット制御システム１０は、撮像部２０により得られる画像に基づいて、制御信号を生成し、制御信号に基づいてロボット３０を制御する。ロボット制御システムの詳細は後述する。なお、本実施形態のロボット制御システム１０の一部又は全部の機能は、例えばＰＣ等の情報処理装置などにより実現される。但し、ロボット制御システム１０の一部又は全部の機能を、撮像部２０やロボット３０により実現したり、情報処理装置とは異なる電子機器により実現してもよい。また、本実施形態のロボット制御システム１０の一部又は全部の機能は、情報処理装置もしくは撮像部２０、ロボット３０と通信により接続されたサーバにより実現されてもよい。
【００３３】
撮像部（カメラ）２０は、作業スペースを撮影する。この撮像部２０は、例えばＣＣＤ等の撮像素子と光学系を含む。また画像処理用等に用いられるデバイス（プロセッサー）を含むことができる。撮像部２０は、ロボット３０やワーク４０が位置し得る作業スペースを撮影することができる位置に配置される。例えば、撮像部２０は、ワーク４０の直上でもよいし（固定カメラ）、ロボット３０のアーム３２０やハンド３３０等に取り付けられてもよい（可動カメラ）。なお、ワーク４０とは、ロボット３０における加工対象物のことをいう。また、撮像部２０は、一台で作業スペース全体又は一部を撮影してもよいし、複数台によって、作業スペースの全体又は一部を撮影してもよい。そして、撮像部２０は、撮像画像情報をロボット制御システム１０等に出力する。また、撮像部２０を用いることにより、ワーク４０の位置や姿勢等に関する情報を検出できればよいため、撮像部２０による撮像画像の取得以外の手法、例えばレーザー等を用いた３次元スキャン等を用いてもよい。本実施形態においては、撮像画像情報をそのままロボット制御システム１０に出力するものとするが、これに限定されるものではない。例えば、ロボット制御システム１０の処理部の一部を撮像部２０に持たせてもよい。その場合、撮像画像に対して画像処理が施された後の情報が出力されることになる。
【００３４】
ロボット３０は、アーム３２０及びハンド３３０を有し、ロボット制御システム１０からの制御信号に従い処理を行う。ロボット３０は、例えばワーク４０の把持や加工などの処理を行う。
【００３５】
ここで、アーム３２０とは、ロボット３０の一部の領域であって、一つ以上の関節を含む可動領域のことをいう。また、アーム３２０のエンドポイントとは、アーム３２０の先端部分の領域であって、ロボット３０のハンド３３０以外の他の領域と接続されていない領域のことをいう。さらに、ハンド３３０とは、ワーク４０を把持したり、ワーク４０に加工を施すためにアーム３２０のエンドポイントに取り付ける部品のことをいう。なお、アームのエンドポイントの位置は、ハンドの位置としてもよい。
【００３６】
１．２  ロボット制御システムの構成例
次に、本実施形態のロボット制御システム及びこれを含むロボットシステムの詳細な構成例を図２に示す。
【００３７】
ロボット制御システム１０は、処理部１１０と、ロボット制御部１２０と、記憶部１３０と、Ｉ／Ｆ部（入力部）１４０と、を含む。ロボット制御システム１０は、図２の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００３８】
次に各部で行われる処理について説明する。
【００３９】
処理部１１０は、記憶部１３０からのデータや、Ｉ／Ｆ部１４０において受信した撮像部２０或いはロボット３０からの情報等に基づいて種々の処理を行う。この処理部１１０の機能は、各種プロセッサー（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムなどにより実現できる。
【００４０】
さらに、処理部１１０は、制御信号生成部１１２と、マスク有り撮像画像生成部１１４と、を含む。処理部１１０は図２の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００４１】
制御信号生成部１１２は、参照画像と撮像画像とに基づいて、ビジュアルサーボを行い、ロボット３０の制御信号を生成し、制御信号をロボット制御部１２０に出力する。マスク有り撮像画像生成部１１４の動作については、後述する。なお、ここでは制御信号生成部１１２とマスク有り撮像画像生成部１１４は、ロボット制御システム１０の処理部１１０に設けられるものとしたがこれに限定されるものではない。制御信号生成部１１２とマスク有り撮像画像生成部１１４は、撮像部２０やロボット３０等に内蔵されてもよい。
【００４２】
ロボット制御部１２０は、処理部１１０から出力された制御信号に基づいて、ロボット３０を制御する。
【００４３】
記憶部１３０は、データベースを記憶したり、処理部１１０等のワーク領域となるもので、その機能はＲＡＭ等のメモリーやＨＤＤ（ハードディスクドライブ）などにより実現できる。
【００４４】
Ｉ／Ｆ部１４０は、ロボット制御システム１０に対するユーザーからの入力等を行ったり、撮像部２０やロボット３０からの情報を受け付けるためのインターフェースである。ユーザーからの入力等に関しては、スイッチやボタン、キーボード或いはマウス等から構成されてもよい。
【００４５】
また、ロボット制御システム１０を含むロボットシステムの例としては、撮像部２０や、ロボット３０等を含むロボットシステム等が挙げられる。
【００４６】
撮像部２０については上述の通りである。ロボット３０は、アーム３２０及びハンド３３０の他に制御部３１０を含む。制御部３１０は、ロボット制御システム１０からの情報を受け付けロボット３０の各部（アーム３２０及びハンド３３０等）の制御を行う。
【００４７】
１．３  ビジュアルサーボの概要
本実施形態の特徴を説明する前に、ビジュアルサーボの概要と、位置ベースビジュアルサーボの流れ、特徴ベースビジュアルサーボの流れについて説明する。
【００４８】
ビジュアルサーボとは、目標物の位置の変化を視覚情報として計測し、それをフィードバック情報として用いることによって目標物を追跡するサーボ系の一種である。ビジュアルサーボは、サーボ系への入力情報（制御量）によって、位置ベースビジュアルサーボと特徴ベースビジュアルサーボの二つに大別される。位置ベースビジュアルサーボは、物体の位置情報や姿勢情報がサーボ系への入力情報となり、特徴ベースビジュアルサーボは、画像の特徴量がサーボ系への入力情報となる。他にも、位置ベースと特徴ベースをハイブリッドした手法もある。本発明で扱うビジュアルサーボは、これら全ての手法を対象とする。
【００４９】
これらのビジュアルサーボにおける共通点は、参照画像と撮像画像を元にサーボ系への入力情報を求める点である。本発明は、この参照画像と撮像画像に、マスク画像を設定することにより、参照画像の準備コストの抑制と、サーボ系への入力情報の算出の容易化を図る。
【００５０】
１．３．１  位置ベースビジュアルサーボの流れ
まず、図３において、位置ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボでは、まず参照画像を設定する（Ｓ１）。ここで、参照画像とは、目標画像やゴール画像とも呼ばれ、ビジュアルサーボの制御目標となる画像であり、ロボット３０の目標状態を表す画像をいう。すなわち、参照画像とは、ロボット３０の目標位置や目標姿勢を表す画像、もしくはロボット３０が目標位置に位置する状態を表す画像である。また、参照画像はあらかじめ用意しておき、記憶部１３０に記憶しておく必要がある。
【００５１】
次に、撮像部２０によって作業スペースを撮像し、撮像画像を取得する（Ｓ２）。撮像画像とは、撮像部２０によって撮像された画像である。撮像画像は、作業スペースの現在の状態を表しており、撮像画像内にロボット３０やワーク４０が映りこんでいる場合には、ロボット３０やワーク４０の現在の状態を表している。なお、撮像部２０の性能によっては処理遅延が生じるが、ここでは、処理遅延が生じている場合でも、撮像画像には現在の状態が映されているものとして扱う。
【００５２】
例えば、図４（Ａ）に参照画像ＲＩＭの具体例を、図４（Ｂ）に撮像画像ＰＩＭの具体例を示す。撮像画像ＰＩＭにおいて、ロボットＲＢはアームＡＭとハンドＨＤ（もしくはエンドポイントＥＰ）を上方へ向けているが、参照画像ＲＩＭでは、ロボットＲＢはアームＡＭを折り曲げて、ハンドＨＤをワークＷＫに近づけている。したがって、この具体例においては、ロボットＲＢのアームＡＭを折り曲げ、ハンドＨＤをワークＷＫに近づけるようにロボットＲＢを制御することになる。
【００５３】
次に、制御指令を生成する（Ｓ３）。例えば、制御指令生成は、参照画像と撮像画像に基づいて、座標変換の一つであるホモグラフィー等を用いることにより行われる。この場合には、ホモグラフィー行列を求め、ホモグラフィー行列からロボット３０の制御信号として速度指令を生成する。
【００５４】
ここで、制御信号（制御指令）とは、ロボット３０を制御するための情報を含む信号のことをいう。また、速度指令とは、ロボット３０の各部を制御するための情報として、ロボット３０のアーム３２０のエンドポイント等の移動速度や回転速度を与える指令の方法を指す。
【００５５】
そして、生成された制御信号に基づいて、制御量（ここではロボット３０の位置や姿勢）が目標値に収束したか否かを判断する（Ｓ４）。例えば、ホモグラフィーを用いる場合において、速度指令により表される速度ベクトルが０である場合には、制御量である位置や姿勢が目標状態に到達したとみなすことができるため、制御量が目標値に収束したと判断し、速度ベクトルが０でない場合には、制御量が目標値に収束していないと判断する。
【００５６】
制御量が目標値に収束したと判断する場合にはビジュアルサーボを終了する。一方、制御量が目標値に収束していないと判断する場合には、処理部１１０はロボット制御部１２０に制御指令を送出する（Ｓ５）。
【００５７】
位置ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【００５８】
１．３．２  特徴ベースビジュアルサーボの流れ
次に、図５において、特徴ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボと同様に、まず参照画像を設定し（Ｓ１０）、次に、撮像部２０によって作業スペースを撮像し、撮像画像を取得する（Ｓ１１）。なお、特徴ベースビジュアルサーボを用いる場合には、参照画像を設定する際に参照画像の特徴抽出を行い、特徴量を算出しておくことが望ましい。または、参照画像の特徴を抽出した参照画像情報を記憶部１３０に記憶しておいてもよい。画像の特徴抽出については、例えば、コナー検出やガウスフィルタ等を用いて行なう。
【００５９】
次に、撮像画像の特徴を抽出する（Ｓ１２）。なお、参照画像の特徴抽出は、参照画像設定の際に行っておくことが望ましいが、ここで行ってもよい。特徴抽出では、ビジュアルサーボ系への入力情報（制御量）として、画像の特徴量を求める。
【００６０】
そして、画像の特徴量に基づいて、参照画像と撮像画像が一致するか否かを比較する（Ｓ１３）。画像が一致すると判断する場合（Ｓ１４）には、ビジュアルサーボを終了する。一方、画像が一致しないと判断する場合（Ｓ１４）には、制御指令を生成し（Ｓ１５）、ロボット制御部１２０に制御指令を送出する（Ｓ１６）。
【００６１】
特徴ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【００６２】
１．４  本実施形態の特徴
以上の本実施形態では、ロボット３０の目標状態を表す画像である参照画像と、撮像部２０によりロボット３０を撮像した画像である撮像画像とに基づいて、ビジュアルサーボを行う処理部１１０と、処理部１１０から出力された制御信号に基づいて、ロボット３０を制御するロボット制御部１２０と、ビジュアルサーボ用の参照画像とマスク画像とを記憶する記憶部１３０と、を含む。そして、記憶部１３０は、ワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域に対して、マスク画像が設定されたマスク有り参照画像を、参照画像として記憶する。さらに、処理部１１０は、撮像画像に映るワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域に対してマスク画像を設定したマスク有り撮像画像を、撮像画像に基づいて生成し、マスク有り参照画像とマスク有り撮像画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部１２０に出力する。
【００６３】
これにより、ワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域に対して、あらかじめマスク画像が設定されたマスク有り参照画像を、参照画像として記憶しておくことができる。さらに、撮像画像に映るワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域に対してマスク画像を設定したマスク有り撮像画像を、撮像画像に基づいて生成することができる。よって、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うことが可能となる。
【００６４】
ここで、マスク画像とは、作業スペースの一部の領域を覆うために設定される画像である。本実施形態では、作業スペース内にあるワーク４０やハンド３３０のうち、少なくとも一方の領域に対して設定される画像である。マスク画像自体がどのような画像であるかは問わないが、他の領域と区別しやすい画像、例えば黒色一色からなる画像などが望ましい。
【００６５】
図６（Ａ）に、作業スペースを撮像した画像でありマスク画像が未設定である画像ＮＭＩＭを、図６（Ｂ）に、作業スペースを撮像した画像でありマスク画像を設定した画像ＭＩＭを示す。図６（Ａ）において、ロボットＲＢのハンドＨＤとワークＷＫが映っている領域が、図６（Ｂ）では、領域ＭＨＤとＭＷＫに置き換えられている。本例では、図６（Ｂ）において、このハンドＨＤとワークＷＫを覆う黒色一色の領域がマスク画像であり、ハンドＨＤとワークＷＫの領域にマスク画像を設定することにより、領域ＭＨＤ及びＭＷＫとしている。
【００６６】
また、マスク画像を設定するとは、画像を生成する際に、作成される画像に映し出される任意の領域をマスク画像に置き換えることをいう。生成した画像の上にマスク画像を重畳したり、画像の任意の領域を切り出してマスク画像をはめ込むなど、マスク画像に置き換える方法は問わない。
【００６７】
さらに、マスク有り参照画像とは、ロボット３０の目標状態を表す画像であり、ワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域に対して、マスク画像が設定された画像をいう。例えば、マスク有り参照画像は、図６（Ｂ）に示すＭＩＭのような参照画像である。
【００６８】
一方、マスク無し参照画像とは、ロボット３０の目標状態を表す画像であり、マスク画像が設定されていない画像をいう。例えば、マスク無し参照画像は、図６（Ａ）に示すＮＭＩＭのような参照画像である。
【００６９】
また、マスク有り撮像画像とは、撮像部２０によりロボット３０を撮像した画像であり、ワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域に対して、マスク画像が設定された画像をいう。例えば、マスク有り撮像画像は、図６（Ｂ）に示すＭＩＭのような撮像画像である。
【００７０】
一方、マスク無し撮像画像とは、撮像部２０によりロボット３０を撮像した画像であり、マスク画像が設定されていない画像をいう。例えば、マスク無し撮像画像は、図６（Ａ）に示すＮＭＩＭのような撮像画像である。
【００７１】
なお、マスク有り撮像画像の生成は、処理部１１０に含まれるマスク有り撮像画像生成部１１４によって行われる。
【００７２】
以上のように、参照画像としてマスク有り参照画像を使用するため、ワークやハンドが異なっていた場合でも、同じマスク有り参照画像を使用することができる場合がある。そのため、ワークやハンドの種類が多く、それらの組み合わせ全てについて参照画像を準備する場合に比べて、参照画像の準備コストを抑えることが可能となる。
【００７３】
また、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うことが可能になるため、位置ベースビジュアルサーボを行う際には、ホモグラフィー行列の算出等が容易になり、特徴ベースビジュアルサーボを行う際には、特徴量の抽出が容易になる。よって、制御信号を算出する際の処理量を軽減することができ、ワークとハンドが一定距離以上離れている場合でも、有効な制御信号を算出することが可能となる。
【００７４】
また、処理部１１０は、ロボット３０のアーム３２０のエンドポイントの位置と目標位置との差が第１の閾値以上であると判断する場合に、マスク有り参照画像とマスク有り撮像画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部１２０に出力してもよい。
【００７５】
ここで、アーム３２０のエンドポイントの位置と目標位置との差とは、３次元空間上における二点間の直線距離だけではなく、数学的にこれと等価な情報も含まれる。例えば、２次元の撮像画像におけるアーム３２０のエンドポイントの位置と目標位置との距離などがある。具体的な一例としては、後述する図８に示すような、２次元画像上におけるワークＷＫの中心点ＷＣＰ（目標位置）とハンドＨＤの中心点ＨＣＰ間の距離Ｌ１のような値をいう。他にも、撮像画像上にアーム３２０のエンドポイントの位置もしくは目標位置のどちらか一方しか映っていない場合には、アーム３２０のエンドポイントの位置と目標位置との差を第１の閾値よりも大きい所定の値と設定すること等がある。
【００７６】
また、第１の閾値とは、アーム３２０のエンドポイントの位置と目標位置が十分に離れているか否かを判定する基準となる値である。第１の閾値には、アーム３２０のエンドポイントの位置と目標位置との差として用いられている値に対応する基準値が設定される。また、第１の閾値は、あらかじめ設定されるものでも良いし、処理部１１０等によって算出されるものであっても良い。例えば、第１の閾値とは、後述する図８に示すような、２次元画像上におけるワークＷＫの中心点ＷＣＰ（目標位置）を中心とする円の半径Ｒ１のような値をいう。
【００７７】
これにより、アーム３２０のエンドポイントの位置と目標位置との差が第１の閾値以上であると判断する場合に、アーム３２０のエンドポイントの位置と目標位置が十分に離れていると判断することができる。そして、この場合に、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。アーム３２０のエンドポイントの位置と目標位置が十分に離れている場合には、ロボット各部の位置を大きく動かすことが多いため、処理量が大きくなることが多い。マスク有り撮像画像とマスク有り参照画像とに基づくビジュアルサーボは、上述した通り、処理量を抑えることができるという利点があるため、このような処理を行い、処理負荷を抑制することが有効である。
【００７８】
また、処理部１１０は、ロボット３０のアーム３２０のエンドポイントの位置と目標位置との差が第１の閾値以上であると判断する場合に、アーム３２０のエンドポイントを所定の位置へ移動させるための制御信号を、ロボット制御部１２０に出力してもよい。そして、ロボット制御部１２０は、制御信号に基づいてロボット３０を制御し、ロボット３０のアーム３２０のエンドポイントを所定の位置へ移動させてもよい。さらに、処理部１１０は、ロボット３０が所定の位置に位置すると判断した場合において、マスク有り参照画像とマスク有り撮像画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部１２０に出力してもよい。
【００７９】
ここで、所定の位置とは、ビジュアルサーボを行うことなく、ロボット又はロボットの各部を移動させることができる位置のことをいう。所定の位置は、例えば、ロボット３０のアーム３２０のエンドポイントの初期位置でも良いし、初期位置以外のあらかじめ設定された位置であっても良い。
【００８０】
これにより、ロボット３０のアーム３２０のエンドポイントの位置と目標位置との差が第１の閾値以上であると判断する場合に、ロボット３０のアーム３２０のエンドポイントを所定の位置へ移動させた後に、マスク有り参照画像とマスク有り撮像画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。
【００８１】
この手法によれば、ビジュアルサーボを行わずに、ロボット３０を所定の位置へ移動させることができるため、ビジュアルサーボを行う回数を削減することができる場合がある。そのため、ロボット制御システムにかかる処理負荷を抑制することができる。
【００８２】
また、記憶部１３０は、マスク画像が設定されていないマスク無し参照画像とマスク有り参照画像とを、参照画像として記憶してもよい。そして、処理部１１０は、ロボット３０のアーム３２０のエンドポイントと目標位置との差が第２の閾値以下であると判断する場合に、マスク画像が設定されていない撮像画像であるマスク無し撮像画像と、マスク無し参照画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部１２０に出力してもよい。
【００８３】
ここで、第２の閾値とは、アーム３２０のエンドポイントの位置と目標位置が十分に近いか否かを判定する基準となる値である。第２の閾値には、アーム３２０のエンドポイントの位置と目標位置との差として用いられる値に対応する基準値が設定される。また、第２の閾値は、あらかじめ設定されるものでも良いし、処理部１１０等によって算出されるものであっても良い。さらに、第２の閾値は、第１の閾値と同じ値であってもよい。例えば、第２の閾値とは、後述する図１０に示すような、２次元画像上におけるワークＷＫの中心点ＷＣＰ（目標位置）を中心とする円の半径Ｒ２のような値をいう。
【００８４】
これにより、アーム３２０のエンドポイントの位置と目標位置との差が第２の閾値以下であると判断する場合に、アーム３２０のエンドポイントの位置と目標位置が十分に近いと判断することができる。そして、この場合に、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。アーム３２０のエンドポイントの位置と目標位置が十分に近い場合には、ロボット各部の位置の微調整をすることが多いため、精度の高い制御を要することが多い。マスク無し撮像画像とマスク無し参照画像とに基づくビジュアルサーボは、処理量はかかるものの、ワーク及びハンドの大きさや形状等の情報を詳細に認識することができるため、より精度の高い制御を行うことができるという利点がある。よって、このような処理が有効である。
【００８５】
また、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、処理負荷が大きすぎるため、制御信号の決定ができない場合がある。
【００８６】
そこで、処理部１１０は、マスク無し撮像画像とマスク無し参照画像とに基づいてビジュアルサーボを行い、制御信号の決定ができなかった場合に、マスク有り参照画像とマスク有り撮像画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部１２０に出力してもよい。
【００８７】
これにより、マスク無し撮像画像とマスク無し参照画像とに基づいて、ビジュアルサーボを行った時に、制御信号の決定ができなかった場合に、マスク有り撮像画像とマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、制御信号を決定できずに、ロボットを制御不可能になることを回避すること等が可能となる。
【００８８】
また、処理部１１０は、ワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域に設定されたマーカーに基づいて、マスク画像を設定してもよい。
【００８９】
ここで、マーカーとは、目印として利用することができる文字、図形、記号、模様もしくは立体的形状もしくはこれらの結合又はこれらと色彩との結合であって、ワーク及びロボットのうち少なくとも一方に付すものをいう。例えば、マーカーは後述する図１１（Ａ）のＭＫのようなものであり、例えば、マーカーはシールのようなものである。
【００９０】
これにより、ワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域に設定されたマーカーに基づいて、マスク画像を設定すること等が可能になる。その結果、マスク画像を設定する位置の特定が容易になり、処理負荷を軽減すること等が可能になる。
【００９１】
また、処理部は、ワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域の画像形状認識処理を行うことにより、マスク画像を設定してもよい。
【００９２】
ここで、画像形状認識処理とは、画像中の物体の形状を認識するために用いられる手法のこといい、例えば後述する図１２（Ａ）に示すようなオプティカルフロー解析などを指す。
【００９３】
これにより、ワーク４０及びロボット３０のハンド３３０のうち、少なくとも一方の領域の画像形状認識処理を行うことにより、マスク画像を設定すること等が可能になる。画像形状認識処理を行う際には、ハンド等にマーカーを貼り付けておく等の準備をする必要はない。従って、マスク画像の設定を行う際の準備コストをかけずに、マスク画像を設定すること等が可能となる。
【００９４】
また、記憶部１３０は、参照画像として複数のマスク有り参照画像を記憶してもよい。そして、処理部１１０は、ワーク４０及びハンド３３０のうち、少なくとも一方の属性情報に応じたマスク有り撮像画像を生成し、複数のマスク有り参照画像の中から、ワーク４０及びハンド３３０のうち、少なくとも一方の属性情報に応じたマスク有り参照画像を選択して、マスク有り撮像画像とマスク有り参照画像とに基づいてビジュアルサーボを行い、制御信号を生成し、制御信号をロボット制御部１２０に出力してもよい。
【００９５】
ここで、属性情報とは、物体の長さや幅、高さ、面積、色彩、模様、形状、種類、名称などの情報のうち、いずれかを含む情報のことをいう。例えば、後述する図１３（Ｂ）には、それぞれの属性情報に対応するマスク画像の例を示す。
【００９６】
これにより、ワーク４０及びハンド３３０のうち、少なくとも一方の属性情報に応じたマスク有り撮像画像とマスク有り参照画像とに基づいて、ビジュアルサーボを行うこと等が可能になる。従って、例えば、マスク画像がワークやハンドに釣り合わないｈ°ため、撮像画像の全体がマスク画像で覆われてしまう場合などの、マスク有り画像を用いたビジュアルサーボの実施が困難になる状態を防ぐことができる。
【００９７】
なお本実施形態のロボット制御システム等は、プログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御システム等が実現される。具体的には情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そしてＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【００９８】
２．具体的な実施例
以下では、図７（Ａ）〜図１３（Ｂ）を用いて、本実施形態の具体的な実施例について説明する。
【００９９】
まず、図７（Ａ）、図７（Ｂ）を用いて、マスク有り参照画像とマスク有り撮像画像に基づいて、ビジュアルサーボを行う手法を説明する。図７（Ａ）はマスク有り参照画像ＭＲＩＭを、図７（Ｂ）はマスク有り撮像画像ＭＰＩＭを示す。
【０１００】
マスク有り参照画像ＭＲＩＭは事前に準備される。この場合には、ロボットＲＢ及びロボットＲＢの各部を期待する位置に配置した上で、撮像部により作業スペースを撮像し、画像を生成する。そして、生成された画像に映るワーク及びハンドの領域にマスク画像を重畳し、領域ＭＷＫ及び領域ＭＨＤとした上で、マスク有り参照画像ＭＲＩＭを生成する。
【０１０１】
一方、マスク有り撮像画像ＭＰＩＭは、実際にビジュアルサーボを行う際に、撮像部により撮像される画像にマスク画像を重畳して生成される。マスク画像を重畳する方法は、マスク有り参照画像ＭＲＩＭと同様である。
【０１０２】
本例では、マスク有り参照画像ＭＲＩＭのＭＨＤと、マスク有り撮像画像ＭＰＩＭのＭＨＤとの位置が異なるため、マスク有り撮像画像ＭＰＩＭのＭＨＤをマスク有り参照画像ＭＲＩＭのＭＨＤの位置に近付けるような制御信号をホモグラフィー等により算出する。
【０１０３】
次に、図８を用いて、アームのエンドポイントが目標位置と十分離れている場合におけるビジュアルサーボの説明をする。なお、図８はワークＷＫの中心点ＷＣＰが目標位置と一致している場合を示している。
【０１０４】
本例では、２次元の撮像画像上において、撮像画像に映るワークＷＫの中心点ＷＣＰ（目標位置）とハンドＨＤの中心点ＨＣＰとの距離Ｌ１が、ＷＣＰを中心とする円の半径Ｒ１以上である場合には、アームのエンドポイントが目標位置と十分離れていると判断し、Ｌ１がＲ１よりも小さい場合には、十分離れていないと判断する。
【０１０５】
図８の場合においては、Ｌ１がＲ１以上であるため、アームのエンドポイントが目標位置と十分離れていると判断し、ワークＷＫとハンドＨＤにマスク画像を設定し、マスク有り撮像画像を生成する。そして、マスク有り参照画像とマスク有り撮像画像を用いて、ビジュアルサーボを行う。
【０１０６】
次に、図９（Ａ）と図９（Ｂ）を用いて、所定位置までロボットを移動させた後、ビジュアルサーボを行う手法を説明する。
【０１０７】
まず、図９（Ａ）は、ビジュアルサーボを複数回行うことにより、ロボットＲＢ及びロボットＲＢの各部を目標位置に移動させる手法を示している。この時、第１の撮像部により映すことのできる範囲をＶＡ１、第２の撮像部により映すことのできる範囲をＶＡ２、第３の撮像部により映すことのできる範囲をＶＡ３とする。本例では、ＶＡ１にロボットＲＢのハンドＨＤが映っているため、ＶＡ１で一回目のビジュアルサーボを行い、ＶＡ１での目標位置にハンドＨＤを移動させる。次に、ＶＡ２、ＶＡ３と順にビジュアルサーボを行い、ＶＡ２での目標位置を経て、最終的な目標位置でもあるＶＡ３での目標位置にハンドＨＤを移動させる。
【０１０８】
図９（Ａ）の場合には、１回のビジュアルサーボにより直接最終的な目標位置へハンドＨＤを移動させることができず、処理負荷が大きいビジュアルサーボを複数回繰り返す必要がある。また、ＶＡ１やＶＡ２では、ロボットＲＢ及びロボットＲＢの各部を目標位置へ厳密に移動させることを求められておらず、最終目標位置であるＶＡ３での目標位置にさえロボットＲＢ及びロボットＲＢの各部を正確に移動させればよい。さらに、ＶＡ３内からビジュアルサーボを行うことさえできれば、ＶＡ３のどの位置からであっても、ロボットＲＢ及びロボットＲＢの各部を最終目標位置へ移動させることが可能である。
【０１０９】
そこで、ロボットＲＢ及びロボットＲＢの各部の現在位置よりも目標位置に近い所定の位置へあらかじめ移動させた後に、ビジュアルサーボを行う手法が考えられる。例えば、図９（Ａ）の例で、ＶＡ２内の所定の位置へ移動させた場合には、ビジュアルサーボを２回行えば最終目標位置へ到達することが可能であるし、ＶＡ３内の所定の位置へ移動させた場合には、ビジュアルサーボを１回行えば最終目標位置へ到達することが可能である。
【０１１０】
図９（Ｂ）には、Ｓ１のような軌道を通って、ハンドＨＤの中心点ＨＣＰ１をＶＡ３内のＨＣＰ２へ移動させた後に、ビジュアルサーボを行う場合を示す。本例においては、所定の位置ＨＣＰ２は、ロボットＲＢが初期姿勢をとった際のハンドＨＤの中心点であるため、ビジュアルサーボを行うことなく、ハンドＨＤの位置を変更することが可能である。この手法は、初期姿勢を利用する場合に限らず、あらかじめ設定してある姿勢や位置が、ロボットＲＢ及びロボットＲＢの各部の現在位置より、目標位置に近いと判断する場合に実行することができる。以上の手法を用いることにより、上述した効果を得ることができ、ロボット制御システムにかかる処理負荷を抑制することができる。
【０１１１】
次に、図１０を用いて、アームのエンドポイントが目標位置と十分近い場合におけるビジュアルサーボの説明をする。なお、図１０は目標位置がワークＷＫの中心点ＷＣＰと一致している場合を示している。
【０１１２】
本例では、２次元の撮像画像上において、撮像画像に映るワークＷＫの中心点ＷＣＰ（目標位置）とハンドＨＤの中心点ＨＣＰとの距離Ｌ２が、ＷＣＰを中心とする円の半径Ｒ２以下である場合には、アームのエンドポイントが目標位置と十分近いと判断し、Ｌ２がＲ２よりも大きい場合には、十分近くはないと判断する。
【０１１３】
図１０の場合においては、Ｌ２がＲ２以下であるため、アームのエンドポイントが目標位置に十分近いと判断し、マスク無し参照画像とマスク無し撮像画像を用いて、ビジュアルサーボを行う。
【０１１４】
しかし、この場合に、ロボット制御システムにかかる処理負荷が大きすぎるため、ビジュアルサーボにより制御信号が決定できない場合には、ワークＷＫとハンドＨＤにマスク画像を設定し、マスク有り撮像画像を生成する。そして、マスク有り参照画像とマスク有り撮像画像を用いて、ビジュアルサーボを行う。
【０１１５】
次に、図１１（Ａ）と図１１（Ｂ）を用いて、マーカーを基準にマスク画像を設定する手法の説明をする。図１１（Ａ）は、マスク画像が未設定である画像ＮＭＩＭを、図１１（Ｂ）は、マスク画像が設定済みの画像ＭＩＭを示す。
【０１１６】
図１１（Ａ）では、ハンドＨＤにマーカーＭＫが貼り付けられており、このマーカーＭＫを基準として、マスク設定エリアＭＡを特定する。マスク設定エリアＭＡの特定方法は、例えばマスク画像にあらかじめ設定してあるマーカー重畳点とマーカーＭＫの位置を重ね合わせてマスク設定エリアＭＡを特定する方法や、マーカーＭＫを中心とする円をマスク設定エリアＭＡとする方法など任意の方法を選択することができる。
【０１１７】
そして、特定されたマスク設定エリアＭＡにマスク画像を重畳し、ハンドＨＤの領域を図１１（Ｂ）のＭＨＤにようにマスク画像で覆い、マスク有り画像ＭＩＭを生成する。この手法は、マスク有り参照画像及びマスク有り撮像画像のどちらの生成においても適用することが可能である。
【０１１８】
次に、図１２（Ａ）と図１２（Ｂ）を用いて、画像形状認識処理によりマスク画像を設定する手法の説明をする。図１２（Ａ）は、マスク画像が未設定である画像ＮＭＩＭを、図１２（Ｂ）は、マスク画像が設定済みの画像ＭＩＭを示す。
【０１１９】
図１２（Ａ）では、作業スペースを撮像する際に、オプティカルフロー解析を行った場合のオプティカルフローを矢印で示している。そして、オプティカルフロー解析によって検出された動体の先端を含む領域ＯＰＡを特定し、ＯＰＡ内にハンドＨＤが含まれているとみなす。さらに、動体が進行する方向に存在するＯＰＡ内の一定領域を、マスク設定エリアＭＡとして特定する。
【０１２０】
そして、特定されたマスク設定エリアＭＡにマスク画像を重畳し、マスク有り画像ＭＩＭを生成する。
【０１２１】
最後に、図１３（Ａ）、図１３（Ｂ）を用いて、属性情報に応じてマスク画像を選択する手法を説明する。
【０１２２】
マスク画像は、ワークＷＫやハンドＨＤの属性情報である大きさや形状によって、変更できることが望ましい。そのため、本例では、大きさや形状の異なるマスク画像を複数記憶しておき、ワークＷＫやハンドＨＤの属性情報に合わせて、適切なマスク画像を選択する。
【０１２３】
例えば、図１３（Ａ）のような画像において、ハンドＨＤのマスク設定エリアＭＨＡと、ワークＷＫのマスク設定エリアＭＷＡにマスク画像を設定する場合を考える。この場合には、図１３（Ｂ）に示すような複数のマスク画像ＭＩＭ１〜ＭＩＭ８をあらかじめ用意しておき、これらの複数のマスク画像ＭＩＭ１〜ＭＩＭ８の中から、ＭＨＡとＭＷＡを覆い隠すことができる最小面積のマスク画像をそれぞれ選択する。本例では、どちらの場合もＭＩＭ３が適切なマスク画像に該当するため、これを設定する。
【０１２４】
これにより、ワークやハンドの属性情報を反映した、マスク有り参照画像とマスク有り撮像画像を生成することができ、ビジュアルサーボで決定される制御情報をより正確なものとすることができる。
【０１２５】
３．処理の詳細
以下では、図１４のフローチャートを用いて、本実施形態の処理の詳細の一例について説明する。
【０１２６】
まず、撮像部２０が作業スペースを撮像し、撮像画像を生成する（Ｓ２０）。次に、処理部１１０が撮像画像に基づいて、ワーク４０の位置とアーム３２０のエンドポイント（ハンド３３０としてもよい）の位置の差分である３次元空間での直線距離を推定する（Ｓ２１）。
【０１２７】
そして、処理部１１０が、推定した距離が第１の閾値よりも大きいか判断し（Ｓ２２）、第１の閾値よりも大きいと判断する場合には、ロボット３０又はロボット３０の各部を所定の位置へ移動させるための制御信号をロボット制御部１２０に出力し、ロボット制御部１２０は制御信号に従ってロボット３０を制御する（Ｓ２３）。
【０１２８】
一方、処理部１１０が、推定した距離が第１の閾値以下であると判断した場合には、第２の閾値と推定した距離を比較する（Ｓ２４）。
【０１２９】
処理部１１０が推定した距離が第２の閾値よりも大きいと判断した場合、又はＳ２３の処理の後、処理部１１０は、複数の撮像部のうち、ロボット３０のアーム３２０のエンドポイントを映している撮像部２０により撮影された撮像画像に基づいて、ビジュアルサーボを開始することを決定する（Ｓ２５）。そして、処理部１１０は、ビジュアルサーボを開始する撮像画像に対応するマスク有り参照画像を記憶部１３０から読み出す（Ｓ２６）。さらに、処理部１１０が、記憶部１３０からマスク画像を読み出し、取得した撮像画像にマスク画像を重畳させて、マスク有り撮像画像を生成する（Ｓ２７）。
【０１３０】
一方、処理部１１０が、推定した距離が第２の閾値以下であると判断した場合、処理部１１０は、複数の撮像部のうち、ロボット３０のアーム３２０のエンドポイントを映している撮像部２０により撮影された撮像画像に基づいて、ビジュアルサーボを開始することを決定する（Ｓ２８）。そして、処理部１１０は、ビジュアルサーボを開始する撮像画像に対応するマスク無し参照画像を記憶部１３０から読み出す（Ｓ２９）。また、撮像部２０により取得した撮像画像をマスク無し撮像画像とする。
【０１３１】
そして、マスク有り参照画像を読み込んだ後には、マスク有り撮像画像とマスク有り参照画像に基づいて、処理部１１０がロボット３０の制御指令を生成する（Ｓ３０）。一方、マスク無し参照画像を読み込んだ後には、マスク無し撮像画像とマスク無し参照画像に基づいて、処理部１１０がロボット３０の制御指令を生成する（Ｓ３０）。制御指令生成処理は、上述した位置ベースビジュアルサーボと同様であり、例えば、制御指令生成はホモグラフィー等を用いることにより行われる。
【０１３２】
この際に、制御指令が生成できるか否かを判断し（Ｓ３１）、制御指令が生成できなかった場合には、Ｓ２５の処理へ移行する。一方、制御指令が生成できた場合には、生成された制御指令に基づいて、制御量が目標値に収束したか否かを判断する（Ｓ３２）。制御量が目標値に収束したと判断する場合にはビジュアルサーボを終了する。一方、制御量が目標値に収束していないと判断する場合には、処理部１１０はロボット制御部１２０に制御指令を送出する（Ｓ３３）。そして、Ｓ２０の処理へ移行する。以上の流れを制御量が収束するまで繰り返す。
【０１３３】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ロボット制御システム、ロボットシステム及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１３４】
１０  ロボット制御システム、２０  撮像部、３０  ロボット、４０  ワーク、
１１０  処理部、１１２  制御信号生成部、１１４  マスク有り撮像画像生成部、
１２０  ロボット制御部、１３０  記憶部、１４０  Ｉ／Ｆ部、３１０  制御部、
３２０  アーム、３３０  ハンド
【図１】
2012236266.tif 000003
【図２】
2012236266.tif 000004
【図３】
2012236266.tif 000005
【図４】
2012236266.tif 000006
【図５】
2012236266.tif 000007
【図６】
2012236266.tif 000008
【図７】
2012236266.tif 000009
【図８】
2012236266.tif 000010
【図９】
2012236266.tif 000011
【図１０】
2012236266.tif 000012
【図１３】
2012236266.tif 000013
【図１４】
2012236266.tif 000014
【図１１】
2012236266.tif 000015
【図１２】
2012236266.tif 000016