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