(57)【要約】【課題】  ロボットのエンドエフェクターが第１の領域内に位置するか否かを特定することができる制御装置、ロボットシステム、ロボット及びロボット制御方法等の提供。【解決手段】  制御装置１００は、第１の領域が撮像部により撮像されて得られる撮像画像を受け付ける撮像画像受付部１１０と、第１の領域で動作するエンドエフェクター３１０を備えるロボット３００を動作させる処理部１３０と、を含む。そして、処理部１３０は、撮像画像に映るマーカー５０の情報に基づいて、エンドエフェクター３１０が第１の領域内にあるか否かを判定する。【選択図】      図１
2015136763.tif 000002
【特許請求の範囲】
【請求項１】
第１の領域が撮像部により撮像されて得られる撮像画像を受け付ける撮像画像受付部と、
前記第１の領域で動作するエンドエフェクターを備えるロボットを動作させる処理部と、
を含み、
前記処理部は、
前記撮像画像に映るマーカーの情報に基づいて、前記エンドエフェクターが前記第１の領域内にあるか否かを判定することを特徴する制御装置。
【請求項２】
請求項１において、
前記撮像画像受付部は、
少なくとも一つの前記マーカーを第２の領域に配置して撮像されて得られた前記撮像画像を受け付け、
前記処理部は、
前記撮像画像に基づいて、前記第２の領域に配置された前記マーカーの認識処理を行い、前記認識処理の結果に基づいて、前記エンドエフェクターが前記第１の領域内に位置するか否かを判定して、ビジュアルサーボ又は検査処理を行うことを特徴とする制御装置。
【請求項３】
請求項２において、
前記処理部は、
前記マーカーの前記認識処理を行うことにより、前記マーカーの少なくとも一部の領域が、前記ロボットの作業対象物又は前記エンドエフェクターにより遮蔽されている状態であるマーカー遮蔽状態を検出し、検出した前記マーカー遮蔽状態に基づいて、前記エンドエフェクターが前記第１の領域内に位置するか否かを判定することを特徴とする制御装置。
【請求項４】
請求項３において、
前記処理部は、
前記マーカーの少なくとも一部の領域が、前記作業対象物又は前記エンドエフェクターにより遮蔽されていると判定した場合には、前記エンドエフェクターが前記第１の領域内に位置すると判定し、
前記マーカーの少なくとも一部の領域が、前記作業対象物又は前記エンドエフェクターにより遮蔽されていないと判定した場合には、前記エンドエフェクターが前記第１の領域外に位置すると判定することを特徴とする制御装置。
【請求項５】
請求項２乃至４のいずれかにおいて、
前記第２の領域は、
前記撮像部の位置から前記撮像画像の撮像方向に向かって、前記第１の領域の後方に位置する領域であることを特徴とする制御装置。
【請求項６】
請求項３において、
前記撮像画像受付部は、
前記第１の領域内には前記マーカーが非配置であり、前記第１の領域外の前記第２の領域に前記マーカーを配置して撮像されて得られた前記撮像画像を受け付け、
前記処理部は、
前記マーカーの少なくとも一部の領域が、前記作業対象物又は前記エンドエフェクターにより遮蔽されていると判定した場合には、前記エンドエフェクターが前記第１の領域外に位置すると判定し、
前記マーカーの少なくとも一部の領域が、前記作業対象物又は前記エンドエフェクターにより遮蔽されていないと判定した場合には、前記エンドエフェクターが前記第１の領域内に位置すると判定することを特徴とする制御装置。
【請求項７】
請求項２乃至６のいずれかにおいて、
前記処理部は、
前記第１の領域に対応する領域を注目領域として前記撮像画像に設定して、前記注目領域において前記ビジュアルサーボ又は前記検査処理を行うことを特徴とする制御装置。
【請求項８】
請求項２乃至７のいずれかにおいて、
前記撮像画像受付部は、
複数のマーカーを前記第２の領域にアレイ配置して撮像されて得られた前記撮像画像を受け付けることを特徴とする制御装置。
【請求項９】
請求項２乃至８のいずれかにおいて、
前記撮像画像受付部は、
複数の異なるマーカーを前記第２の領域に配置して撮像されて得られた前記撮像画像を受け付けることを特徴とする制御装置。
【請求項１０】
請求項９において、
前記処理部は、
前記撮像画像における前記複数の異なるマーカーの前記認識処理の結果に基づいて、前記撮像画像の撮像方向を特定することを特徴とする制御装置。
【請求項１１】
請求項８乃至１０のいずれかにおいて、
前記処理部は、
前記撮像画像における前記複数のマーカーの前記認識処理の結果に基づいて、前記ロボットの作業対象物又は前記ロボットの前記エンドエフェクターの位置姿勢の特定処理を行うことを特徴とする制御装置。
【請求項１２】
請求項２乃至１１のいずれかにおいて、
前記処理部は、
前記ビジュアルサーボとして、前記撮像画像が参照画像に一致又は近付くように前記ロボットを制御する処理を行うことを特徴とする制御装置。
【請求項１３】
第１の領域で動作するエンドエフェクターを備えるロボットと、
マーカーと、
前記第１の領域を撮像する撮像部と、
を含み、
前記ロボットは、
前記撮像部が撮像した撮像画像に映る前記マーカーの情報に基づいて、前記エンドエフェクターが前記第１の領域にあるか否かを判定することを特徴するロボットシステム。
【請求項１４】
第１の領域で動作するエンドエフェクターを含み、
撮像部が撮像した撮像画像に映るマーカーの情報に基づいて、前記エンドエフェクターが前記第１の領域にあるか否かを判定することを特徴とするロボット。
【請求項１５】
第１の領域で動作するエンドエフェクターを備えるロボットを動作させるロボット制御方法であって、
マーカーを撮像することと、
撮像画像に映るマーカーの情報に基づいて、前記エンドエフェクターが前記第１の領域にあるか否かを判定することと、
を含むロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ロボットシステム、ロボット及びロボット制御方法等に関係する。
【背景技術】
【０００２】
近年、生産現場において、人が行ってきた作業を機械化・自動化するために、産業用ロボットを導入することが多くなってきた。しかし、ロボットの位置決めを行うにあたっては、精密なキャリブレーションが前提となり、ロボット導入の障壁となっている。
【０００３】
ここで、ロボットの位置決めを行う手法の一つとしてビジュアルサーボがある。ビジュアルサーボは、参照画像（ゴール画像、目標画像）と撮像画像（現在の画像）との差に基づいて、ロボットを制御する技術である。ある種のビジュアルサーボは、キャリブレーションに精密さを求めない点で有用であり、ロボット導入障壁を下げる技術として注目されている。
【０００４】
このビジュアルサーボに関する技術としては、例えば特許文献１に記載される従来技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３０５６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ビジュアルサーボでは、撮像画像において物体検出処理を行い、例えば作業対象物又はロボットのエンドエフェクターなどの検出対象物を検出し、検出結果に基づいて、ロボットを制御する。そのため、ビジュアルサーボを行う際には、検出対象物が撮像画像に映っている必要がある。すなわち、撮像画像に映る実空間上の範囲（撮像範囲）を、ロボットの作業範囲とすると、正常にビジュアルサーボを行うためには、作業範囲内に検出対象物が位置している必要がある。
【０００７】
しかし、検出対象物が撮像画像に映っている場合でも、検出対象物が映っていないと判定してしまう場合や、検出対象物が撮像画像に映っていないにも関わらず、検出対象物が映っていると誤って判定してしまう場合がある。このような場合には、正常にロボットを制御することができない。
【課題を解決するための手段】
【０００８】
本発明の一態様は、第１の領域が撮像部により撮像されて得られる撮像画像を受け付ける撮像画像受付部と、前記第１の領域で動作するエンドエフェクターを備えるロボットを動作させる処理部と、を含み、前記処理部は、前記撮像画像に映るマーカーの情報に基づいて、前記エンドエフェクターが前記第１の領域内にあるか否かを判定する制御装置に関係する。
【０００９】
本発明の一態様では、撮像画像においてマーカーが認識できたか否かに基づいて、ロボットのエンドエフェクターが第１の領域内にあるか否かを判定する。
【００１０】
よって、ロボットのエンドエフェクターが第１の領域内に位置するか否かを特定することが可能となる。
【００１１】
また、本発明の一態様では、前記撮像画像受付部は、少なくとも一つの前記マーカーを第２の領域に配置して撮像されて得られた前記撮像画像を受け付け、前記処理部は、前記撮像画像に基づいて、前記第２の領域に配置された前記マーカーの認識処理を行い、前記認識処理の結果に基づいて、前記エンドエフェクターが前記第１の領域内に位置するか否かを判定して、ビジュアルサーボ又は検査処理を行ってもよい。
【００１２】
これにより、マーカー認識処理の結果に基づいて、ビジュアルサーボ又は検査処理を行うこと等が可能になる。
【００１３】
また、本発明の一態様では、前記処理部は、前記マーカーの前記認識処理を行うことにより、前記マーカーの少なくとも一部の領域が、前記ロボットの作業対象物又は前記エンドエフェクターにより遮蔽されている状態であるマーカー遮蔽状態を検出し、検出した前記マーカー遮蔽状態に基づいて、前記エンドエフェクターが前記第１の領域内に位置するか否かを判定してもよい。
【００１４】
これにより、マーカーの配置とマーカー遮蔽状態とに基づいて、エンドエフェクターが第１の領域内に位置するか否かを判定すること等が可能になる。
【００１５】
また、本発明の一態様では、前記処理部は、前記マーカーの少なくとも一部の領域が、前記作業対象物又は前記エンドエフェクターにより遮蔽されていると判定した場合には、前記エンドエフェクターが前記第１の領域内に位置すると判定し、前記マーカーの少なくとも一部の領域が、前記作業対象物又は前記エンドエフェクターにより遮蔽されていないと判定した場合には、前記エンドエフェクターが前記第１の領域外に位置すると判定してもよい。
【００１６】
これにより、作業対象物又はエンドエフェクターによるマーカー遮蔽状態の有無に基づいて、エンドエフェクターが第１の領域内に位置するか否かを判定すること等が可能になる。
【００１７】
また、本発明の一態様では、前記第２の領域は、前記撮像部の位置から前記撮像画像の撮像方向に向かって、前記第１の領域の後方に位置する領域であってもよい。
【００１８】
これにより、例えばロボットの作業範囲の背景にマーカーを配置すること等が可能になる。
【００１９】
また、本発明の一態様では、前記撮像画像受付部は、前記第１の領域内には前記マーカーが非配置であり、前記第１の領域外の前記第２の領域に前記マーカーを配置して撮像されて得られた前記撮像画像を受け付け、前記処理部は、前記マーカーの少なくとも一部の領域が、前記作業対象物又は前記エンドエフェクターにより遮蔽されていると判定した場合には、前記エンドエフェクターが前記第１の領域外に位置すると判定し、前記マーカーの少なくとも一部の領域が、前記作業対象物又は前記エンドエフェクターにより遮蔽されていないと判定した場合には、前記エンドエフェクターが前記第１の領域内に位置すると判定してもよい。
【００２０】
これにより、ビジュアルサーボや検査処理を行う際に、第２の領域に配置したマーカーが物体検出処理に影響を与えることを防ぎつつ、作業対象物又はエンドエフェクターによるマーカー遮蔽状態の有無に基づいて、エンドエフェクターが第１の領域内に位置するか否かを判定すること等が可能になる。
【００２１】
また、本発明の一態様では、前記処理部は、前記第１の領域に対応する領域を注目領域として前記撮像画像に設定して、前記注目領域において前記ビジュアルサーボ又は前記検査処理を行ってもよい。
【００２２】
これにより、撮像画像において、マーカーが映っていない領域の画像に基づいて、ビジュアルサーボ又は検査処理を行うこと等が可能になる。
【００２３】
また、本発明の一態様では、前記撮像画像受付部は、複数のマーカーを前記第２の領域にアレイ配置して撮像されて得られた前記撮像画像を受け付けてもよい。
【００２４】
これにより、マーカーを一つだけ配置する場合よりも、エンドエフェクターが第１の領域内に位置するか否かをより細かく判定すること等が可能になる。
【００２５】
また、本発明の一態様では、前記撮像画像受付部は、複数の異なるマーカーを前記第２の領域に配置して撮像されて得られた前記撮像画像を受け付けてもよい。
【００２６】
これにより、認識したマーカーの種類により、撮像画像に映っている領域を特定すること等が可能になる。
【００２７】
また、本発明の一態様では、前記処理部は、前記撮像画像における前記複数の異なるマーカーの前記認識処理の結果に基づいて、前記撮像画像の撮像方向を特定してもよい。
【００２８】
これにより、撮像部の向きを調整すること等が可能になる。
【００２９】
また、本発明の一態様では、前記処理部は、前記撮像画像における前記複数のマーカーの前記認識処理の結果に基づいて、前記ロボットの作業対象物又は前記ロボットの前記エンドエフェクターの位置姿勢の特定処理を行ってもよい。
【００３０】
これにより、作業対象物又はエンドエフェクターの実際の位置姿勢と、作業対象物又はエンドエフェクターの目標位置姿勢とを比較すること等が可能になる。
【００３１】
また、本発明の一態様では、前記処理部は、前記ビジュアルサーボとして、前記撮像画像が参照画像に一致又は近付くように前記ロボットを制御する処理を行ってもよい。
【００３２】
これにより、ロボットの位置姿勢を目標の位置姿勢にすることが可能になる。
【００３３】
また、本発明の他の態様は、第１の領域で動作するエンドエフェクターを備えるロボットと、マーカーと、前記第１の領域を撮像する撮像部と、を含み、前記ロボットは、前記撮像部が撮像した撮像画像に映る前記マーカーの情報に基づいて、前記エンドエフェクターが前記第１の領域にあるか否かを判定するロボットシステムに関係する。
【００３４】
また、本発明の他の態様は、第１の領域で動作するエンドエフェクターを含み、撮像部が撮像した撮像画像に映るマーカーの情報に基づいて、前記エンドエフェクターが前記第１の領域にあるか否かを判定するロボットに関係する。
【００３５】
また、本発明の他の態様は、第１の領域で動作するエンドエフェクターを備えるロボットを動作させるロボット制御方法であって、マーカーを撮像することと、撮像画像に映るマーカーの情報に基づいて、前記エンドエフェクターが前記第１の領域にあるか否かを判定することと、を含むロボット制御方法に関係する。
【００３６】
本発明の幾つかの態様によれば、ロボットのエンドエフェクターが第１の領域内に位置するか否かを特定することができる制御装置、ロボットシステム、ロボット及びロボット制御方法等を提供することができる。
【００３７】
また、本発明の幾つかの態様によれば、撮像画像において物体検出処理を行った結果、ロボットのエンドエフェクターを非検出又は誤検出してしまう場合でも、エンドエフェクターが第１の領域内に位置するか否かを特定することができる制御装置、ロボットシステム、ロボット及びロボット制御方法等を提供することができる。
【図面の簡単な説明】
【００３８】
【図１】本実施形態のシステム構成例。
【図２】図２（Ａ）〜図２（Ｄ）は、背景に一つのマーカーを配置した場合の処理の説明図。
【図３】図３（Ａ）〜図３（Ｆ）は、マーカーの説明図。
【図４】本実施形態の処理の流れを説明するフローチャート。
【図５】図５（Ａ）〜図５（Ｆ）は、背景に複数のマーカーをアレイ配置した場合の処理の説明図。
【図６】第１の実施例の処理の流れを説明するフローチャート。
【図７】図７（Ａ）、図７（Ｂ）は、マーカーの配置位置の説明図。
【図８】図８（Ａ）〜図８（Ｃ）は、作業範囲外にのみマーカーを配置する場合の処理の説明図。
【図９】第２の実施例の処理の流れを説明するフローチャート。
【図１０】図１０（Ａ）、図１０（Ｂ）は、複数の異なるマーカーを配置する場合の説明図。
【図１１】図１１（Ａ）〜図１１（Ｄ）は、検出対象物の位置姿勢の特定処理の説明図。
【図１２】第３の実施例の処理の流れを説明するフローチャート。
【図１３】図１３（Ａ）、図１３（Ｂ）は、ロボットシステム及びロボットの構成例。
【図１４】ネットワークを介してロボットを制御するロボットシステムの構成例。
【図１５】位置ベースビジュアルサーボのフローチャート。
【図１６】図１６（Ａ）、図１６（Ｂ）は参照画像と撮像画像の説明図。
【図１７】特徴ベースビジュアルサーボのフローチャート。
【発明を実施するための形態】
【００３９】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４０】
１．本実施形態の手法
正常にビジュアルサーボを行うためには、実空間上のロボットの作業範囲（第１の領域）内に検出対象物が位置している必要がある。そして、作業範囲外に検出対象物が位置している場合には、作業範囲内に検出対象物が位置するように、ロボットを移動するなどして、その後にビジュアルサーボを再開する必要がある。このような制御を行うためには、ロボットの作業範囲内に検出対象物が位置しているか否かを判定する必要がある。
【００４１】
そこで、本実施形態では、検出対象物の背景（第２の領域）にマーカーを配置し、配置したマーカーの検出結果に基づいて、検出対象物が作業範囲内にあるか否かを判定する。
【００４２】
ここで、作業範囲とは、ビジュアルサーボによりロボットが作業を行う際に、検出対象物がその範囲内に位置する必要がある実空間上の範囲のことである。また、作業範囲は、第１の領域の具体例である。前述したように、ビジュアルサーボを行う際には、検出対象物が撮像画像に映っている必要があるため、作業範囲は、撮像範囲と同じ範囲であることが多い。また、撮像範囲とは、撮像部により撮像された撮像画像に映る実空間上の範囲のことである。例えば、撮像範囲は、後述する図２（Ａ）に示す範囲ＷＡのことである。図２（Ａ）の場合には、作業範囲は撮像範囲と同一の範囲である。ただし、後述する図７（Ａ）及び図７（Ｂ）のように、作業範囲は必ずしも撮像範囲と同一の範囲であるとは限らない。なお、本実施形態における検出対象物とは、主にロボットの作業対象物又はロボットのエンドエフェクターのことを指す。
【００４３】
次に、本実施形態の制御装置１００の構成例を図１に示す。本実施形態の制御装置１００は、第１の領域が撮像部２００により撮像されて得られる撮像画像を受け付ける撮像画像受付部１１０と、第１の領域で動作するエンドエフェクターを備えるロボットを動作させる処理部１３０とを含む。
【００４４】
そして、処理部１３０は、撮像画像に映るマーカーの情報に基づいて、エンドエフェクター３１０が第１の領域内にあるか否かを判定する。
【００４５】
具体的に、撮像画像受付部１１０は、少なくとも一つのマーカー５０を第２の領域に配置して撮像されて得られた撮像画像を受け付ける。例えば、撮像画像受付部１１０は、作業対象物の背景又はロボット３００のエンドエフェクター３１０の背景に、少なくとも一つのマーカー５０を配置して撮像して得られた撮像画像を取得する。
【００４６】
さらに、処理部１３０は、撮像画像に基づいて、ビジュアルサーボ又は検査処理を行う。この際に、処理部１３０は、背景（第２の領域）に配置されたマーカー５０の認識処理を行い、認識処理の結果に基づいて、作業対象物又はエンドエフェクター３１０が作業範囲内に位置するか否かの判定処理を行う。なお、作業対象物とは、例えばワークやパレット等である。
【００４７】
ここで、図２（Ａ）〜図２（Ｄ）を用いて具体例を説明する。図２（Ａ）には、ロボットのエンドエフェクターＥＥ（把持部）が作業対象物ＯＢを把持し、把持した作業対象物ＯＢを穴ＨＬに入れる作業を、ビジュアルサーボにより行う様子を示す。なお、ＡＭはロボットのアームである。
【００４８】
このビジュアルサーボは、撮像部ＣＭにより撮像される図２（Ｂ）〜図２（Ｄ）のような撮像画像（ＩＭ１〜ＩＭ３）に基づいて行う。これらの撮像画像には、図２（Ａ）の撮像範囲ＷＡ（作業範囲）内の様子が映し出されている。そして、作業対象物ＯＢ及びエンドエフェクターＥＥの背景ＢＧには、マーカーＭＫが配置されており、遮蔽物がない時にこのマーカーＭＫ全体が撮像画像に映るように、撮像部ＣＭの画角が調整されている。
【００４９】
この場合には、撮像画像に映る撮像範囲ＷＡが、作業範囲として設定されているため、検出対象物が撮像画像に映っていれば、検出対象物が作業範囲内に位置するし、検出対象物が撮像画像に映っていなければ、検出対象物が作業範囲外に位置すると判定できる。ただし、本実施形態では、前述したように、マーカーＭＫの認識処理の結果に基づいて、検出対象物が作業範囲内に位置するか否かを判定する。
【００５０】
具体的には、図２（Ｂ）の撮像画像ＩＭ１や、図２（Ｃ）の撮像画像ＩＭ２のように、作業対象物ＯＢによりマーカーＭＫの一部が遮蔽されており、マーカーＭＫが正しく認識できない場合には、作業対象物ＯＢが作業範囲内に位置すると判定する。
【００５１】
一方で、図２（Ｄ）の撮像画像ＩＭ３のように、作業対象物ＯＢによりマーカーＭＫが遮蔽されておらず、マーカーＭＫが正しく認識できる場合には、作業対象物ＯＢが作業範囲外に位置すると判定する。
【００５２】
このように本実施形態によれば、検出対象物（作業対象物又はロボットのエンドエフェクター）が作業範囲内に位置するか否かを特定することが可能となる。
【００５３】
ここで、撮像画像受付部１１０は、例えば有線及び無線の少なくとも一方を含むネットワークにより撮像部２００と通信を行う通信部（インターフェース部）であってもよいし、撮像部２００そのものであってもよい。
【００５４】
また、処理部１３０の機能は、各種プロセッサー（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムなどにより実現できる。
【００５５】
そして、制御装置１００は、図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。さらに、本実施形態の制御装置１００は、後述する図１３（Ｂ）に示すように、ロボット３００に含まれており、ロボット３００と一体に構成されていてもよい。さらに、後述する図１４に示すように、制御装置１００の機能は、サーバー５００と、各ロボット３００が有する端末装置３３０（制御部）とにより、実現されてもよい。
【００５６】
そして、撮像画像とは、撮像部２００によって撮像することにより得られる画像のことをいう。また、撮像画像は、外部の記憶部に記憶された画像や、ネットワークを介して取得される画像であってもよい。
【００５７】
また、作業対象物の背景又はロボット３００のエンドエフェクター３１０の背景とは、例えば撮像部２００の位置から見て、作業対象物又はエンドエフェクター３１０の後ろにある壁、板、柱、台、スクリーン及びディスプレイ（表示部）などであり、図２（Ａ）ではＢＧのことである。なお、背景はマーカー５０を配置することができればよく、これらに限定されない。背景がスクリーンやディスプレイなどの表示部である場合には、表示部がマーカーを表示する。ただし、作業対象物の背景又はエンドエフェクター３１０の背景は、マーカー５０が撮像画像に映るように、撮像範囲内の領域である必要がある。
【００５８】
ここで、作業対象物の背景又はエンドエフェクター３１０の背景は、第２の領域の具体例である。つまり、第２の領域が、作業対象物の背景又はエンドエフェクター３１０の背景である場合には、第２の領域は、撮像部２００の位置から撮像画像の撮像方向に向かって、第１の領域の後方に位置する領域であると言える。
【００５９】
ここで、マーカー５０とは、目印として利用することができる文字、図形、記号、模様もしくは立体的形状もしくはこれらの結合又はこれらと色彩との結合を形成する有体物で、物体に固定可能なものである。例えば、シールやステッカー、ラベル等である。なお、マーカー５０の形状や、色彩、模様等がどのようなものであるかは問わないが、マーカーを安定して検出する上で、他の領域と区別しやすいもの、例えば白い領域に対し黒色からなる画像やシールなどが望ましい。具体例としては、図３（Ａ）〜図３（Ｄ）に示すようなマーカーＭＫ１〜マーカーＭＫ４や、図３（Ｅ）に示す地図記号などのマーカーＭＫ５〜マーカーＭＫ８、図３（Ｆ）に示す文字や数字などのマーカーＭＫ１１〜マーカーＭＫ１３などが挙げられる。さらに、マーカー５０は、ＱＲ（Quick Response）コードや、ＡＲ（Augmented Reality）マーカーなどであってもよい。また、例外としてマーカー５０は、表示部に表示可能な画像であってもよい。
【００６０】
このように、検出対象物よりも検出が容易なものをマーカーとして用いるため、検出対象物の認識率（検出率）よりも高い認識率でマーカーを認識でき、検出対象物が作業範囲内に位置するか否かをより確実に判定することが可能となる。
【００６１】
そして、処理部１３０は、ビジュアルサーボとして、撮像画像が参照画像に一致又は近付くようにロボット３００を制御する処理を行う。
【００６２】
これにより、ロボット３００の位置姿勢を目標の位置姿勢にすることが可能になる。すなわち、ロボット３００が目標姿勢をとっている状態で撮像可能な画像を参照画像としておき、参照画像と一致又は近い撮像画像を撮像できるようにロボット３００を制御すれば、ロボット３００が目標姿勢をとるように制御することが可能になる。なお、ビジュアルサーボについては、後段においてさらに詳しい説明を行う。
【００６３】
また、本実施形態の比較例として、前述したように、撮像画像に対する物体検出処理において、検出対象物そのものが検出できたか否かにより、検出対象物が作業範囲内にあるか否かを判定する手法も考えられる。このような手法に対して、本実施形態の手法は以下で説明する点において優れている。
【００６４】
ここで、比較例に対する本実施形態の優位点を説明する前に、物体検出処理の結果について説明しておく。
【００６５】
動作が不安定なビジュアルサーボにおいて、検出対象物を撮像している撮像部の画角から、サーボ中に検出対象物が外れてしまう事がある。このように、ビジュアルサーボが上手くいかないのは、物体検出処理が失敗していることが原因である可能性が高い。
【００６６】
ここで、物体検出処理を行った結果は、大きく分けると以下の４つのケースに大別できる。第１のケースは、検出対象物が撮像画像に映っており、検出対象物が正しく検出できたという結果が得られた場合である。この第１のケースでは、この後、問題なくビジュアルサーボを継続することができる。
【００６７】
次に、第２のケースは、第１のケースとは逆に、検出対象物が撮像画像に映っていないため、検出対象物を検出できなかったという結果が得られた場合である。第２のケースでは、このままではビジュアルサーボを行うことができないが、撮像画像に検出対象物が映る状態にロボットを移動させる等して、ビジュアルサーボを再開することができる。
【００６８】
以上の第１のケースと第２のケースは、検出対象物が検出できたかどうかの差はあるものの、どちらも物体検出処理自体は正常に行われており、正しい結果が得られている。問題となるのは、以下の２つのケース（第３のケースと第４のケース）である。
【００６９】
第３のケースは、検出対象物が撮像画像に映っているにも関わらず、検出対象物が映っていないと誤って判定し、その結果、検出対象物が検出できなかったという結果が得られた場合である。
【００７０】
一方で、第４のケースは、第３のケースの逆であり、検出対象物が撮像画像に映っていないにも関わらず、検出対象物が映っていると誤って判定し、本来の検出対象物ではないものを検出対象物として検出してしまったという結果が得られた場合である。
【００７１】
すなわち、第３のケースと第４のケースではどちらの場合も、撮像画像に検出対象物が映っているか否かの判定を間違えており、物体検出処理自体が正常に行われていない。そのため、これらの場合に得られた物体検出処理の結果に基づいて、ビジュアルサーボを正常に行うことはできない。
【００７２】
以上をまとめると、物体検出処理により得られた結果に基づいて、その後ビジュアルサーボを正常に継続可能な場合は、第１のケースのみである。
【００７３】
ただし、前述したように、第２のケースでは、物体検出処理自体には問題がないため、撮像画像に検出対象物が映る状態にロボットを移動させた後に、ビジュアルサーボを再開するなどの対処ができる。一方で、第３のケースと第４のケースでは、物体検出処理自体に問題があるため、物体検出処理の方法を変えるなどしない限り、ビジュアルサーボを正常に継続することができない。
【００７４】
つまり、検出対象物が正しく検出できなかった場合でも、今回が第２のケースであるのか、又は第３のケース若しくは第４のケースであるのかが判定できれば、その後にロボットをどのように制御すればよいかも判定することができる。
【００７５】
しかし、前述した比較例では、検出対象物の検出結果に基づいて、検出対象物が作業範囲内に位置するか否かを判定するため、今回の物体検出処理の結果が、これらの４つのケースのいずれに属するかを正しく判別することができない。これに対して本実施形態では、今回の物体検出処理の結果が、これらの４つのケースのいずれに属するかを正しく判別し、各ケースに適した処理を行うことができる。本実施形態は、この点において比較例よりも優れている。
【００７６】
具体的に、本実施形態の処理の流れを図４のフローチャートを用いて説明する。
【００７７】
まず、前述した図２（Ａ）〜図２（Ｄ）に示すように、作業対象物ＯＢの背景ＢＧ（又はロボットのエンドエフェクターＥＥの背景ＢＧ）に、少なくとも一つのマーカーＭＫを配置して撮像して得られた撮像画像（ＩＭ１〜ＩＭ３）を取得する（Ｓ１０１）。
【００７８】
次に、取得した撮像画像において物体検出処理を行い（Ｓ１０２）、さらに撮像画像に基づいて、背景ＢＧに配置されたマーカーＭＫの認識処理を行う（Ｓ１０３）。
【００７９】
そして、ステップＳ１０２において、検出対象物が検出できたか否かを判定する（Ｓ１０４）。検出対象物が検出できたと判定した場合には、さらにステップＳ１０３の認識処理の結果に基づいて、検出対象物（作業対象物又はエンドエフェクター）が作業範囲内に位置するか否かの判定処理を行う（Ｓ１０５）。
【００８０】
ステップＳ１０５において、検出対象物が作業範囲内に位置すると判定した場合、つまり前述した第１のケースである場合には、正常に物体検出ができているため、判定処理の結果に基づいて、ビジュアルサーボ又は検査処理を行う（Ｓ１０６）。
【００８１】
そして、ビジュアルサーボが収束したか否か、又は検査処理が完了したか否かを判定し（Ｓ１０７）、ビジュアルサーボが収束した、又は検査処理が完了したと判定した場合には、処理を終了する。一方、ビジュアルサーボが収束していない、又は検査処理が完了していないと判定した場合には、ステップＳ１０１に戻り、処理を繰り返す。
【００８２】
一方で、ステップＳ１０５において、検出対象物が作業範囲内に位置していないと判定した場合には、ステップＳ１０２で誤検出が発生していた第４のケースであると判定できる。この場合には、正常に物体検出ができていないため、エラーが発生したものとして処理を終了する。又はこの場合には、物体検出処理の方法を変更して、再度ステップＳ１０１に戻り、処理を繰り返しても良い。
【００８３】
そして、ステップＳ１０４において、検出対象物が検出できなかったと判定した場合にも、ステップＳ１０５と同様に、ステップＳ１０３の認識処理の結果に基づいて、検出対象物が作業範囲内に位置するか否かの判定処理を行う（Ｓ１０８）。
【００８４】
ステップＳ１０８において、検出対象物が作業範囲内に位置すると判定した場合には、ステップＳ１０２で検出ミスが発生していた第３のケースであると判定できる。この場合にも第４のケースと同様に、正常に物体検出ができていないため、エラーが発生したものとして処理を終了する。このように、第３のケースや第４のケースで行うエラー検出処理は、比較例では行うことができず、このようなエラー検出処理を行うことができるのは、本実施形態の優位点である。
【００８５】
一方で、ステップＳ１０８において、検出対象物が作業範囲内に位置していないと判定した場合、つまり前述した第２のケースである場合には、物体検出処理自体は正常であるため、検出対象物が作業範囲内に位置するようにロボットを制御した後に（Ｓ１０９）、ステップＳ１０１に戻り、処理を繰り返す。比較例では第２のケースであることを判別できないため、第２のケースの時にだけステップＳ１０９の処理を行うことができない。したがって、第２のケースの時にだけステップＳ１０９の処理を行うことができる点も本実施形態の優位点である。以上が本実施形態の処理の流れと、特筆すべき優位点である。
【００８６】
次に、図４のフローチャートのステップＳ１０５及びステップＳ１０８の処理の詳細について説明する。
【００８７】
処理部１３０は、マーカー５０の認識処理の結果として、マーカー５０の少なくとも一部の領域が、作業対象物又はエンドエフェクター３１０により遮蔽されている状態であるマーカー遮蔽状態を検出し、検出したマーカー遮蔽状態に基づいて、作業対象物又はエンドエフェクター３１０が作業範囲内に位置するか否かの判定処理を行う。
【００８８】
例えば、前述した図２（Ｂ）や図２（Ｃ）の例のように、マーカー遮蔽状態が検出された場合には、作業対象物ＯＢ（検出対象物）が作業範囲内に位置すると判定し、図２（Ｄ）の例のように、マーカー遮蔽状態が検出されない場合には、作業対象物ＯＢが作業範囲外に位置すると判定する。
【００８９】
ただし、検出対象物が作業範囲内に位置するか否かの判定処理の内容はこれに限定されず、マーカー５０の配置によって、具体的な処理の内容が異なる。
【００９０】
以下で説明する第１の実施例では、後述する図５（Ａ）のように、作業範囲ＷＡ内での検出対象物の背景ＢＧに複数のマーカー（ＭＫ１１〜ＭＫ５３）をアレイ配置して、後述する図５（Ｂ）〜図５（Ｄ）のように、複数のマーカーのいずれかがマーカー遮蔽状態であることが検出された場合には、検出対象物が作業範囲ＷＡ内に位置すると判定し、後述する図５（Ｅ）のように、複数のマーカーのいずれにもマーカー遮蔽状態が検出されない場合には、検出対象物が作業範囲ＷＡ外に位置すると判定する。なお、図５（Ａ）〜図５（Ｄ）は、検出対象物が作業対象物ＯＢのみである場合の例であり、エンドエフェクターＥＥによりマーカー遮蔽状態が発生することについては考慮しない。次に説明する図７（Ａ）、図８（Ａ）及び図８（Ｂ）についても同様である。
【００９１】
一方で、以下で説明する第２の実施例では、後述する図７（Ａ）のように、作業範囲ＷＡ内（及びその背景）にはマーカーを配置せず、作業範囲ＷＡ外の背景ＢＧに複数のマーカーを配置しておく。そして、第１の実施例とは逆に、後述する図８（Ａ）のように、複数のマーカーのいずれにもマーカー遮蔽状態が検出されない場合には、検出対象物が作業範囲ＷＡ内に位置すると判定し、後述する図８（Ｂ）のように、複数のマーカーのいずれかがマーカー遮蔽状態であることが検出された場合には、検出対象物が作業範囲ＷＡ外に位置すると判定する。
【００９２】
ここで、マーカー遮蔽状態とは、撮像部２００からマーカー５０を見た時に、マーカー５０の全体領域又は一部の領域が、作業対象物又はエンドエフェクター３１０により遮蔽されている状態のことである。また、マーカー遮蔽状態とは、撮像画像を撮像する際に、作業対象物又はエンドエフェクター３１０によりオクルージョンが発生して、取得した撮像画像においてマーカー５０が認識できない状態とも言える。例えば、前述した図２（Ｂ）や図２（Ｃ）は、マーカー遮蔽状態の例であって、図２（Ｄ）は、マーカー遮蔽状態ではない例である。
【００９３】
また、マーカー５０の少なくとも一部の領域とは、例えば、前述した図２（Ａ）のように、マーカーＭＫが一つだけ配置されている場合には、そのマーカーＭＫの全体領域のうちの少なくとも一部の領域のことであり、マーカーＭＫの全体領域であってもよい。そして、後述する図５（Ａ）のように、複数のマーカー（ＭＫ１１〜ＭＫ５３）が配置されている場合には、複数配置されたマーカーのうち、一部のマーカーの全体の領域又は一部の領域のことをいう。
【００９４】
これにより、マーカーの配置とマーカー遮蔽状態とに基づいて、検出対象物が作業範囲内に位置するか否かを判定すること等が可能になる。
【００９５】
さらに、第３の実施例では、後述する図１０（Ａ）及び図１０（Ｂ）に示すように、複数の異なるマーカー（ＭＫ１１〜ＭＫｉｊ）を背景ＢＧに配置し、検出対象物が作業範囲内に位置するか否か判定することに加えて、配置した複数のマーカーのうち、マーカー遮蔽状態のマーカーに基づいて、検出対象物の位置姿勢を特定する。
【００９６】
２．第１の実施例
次に、第１の実施例を図５（Ａ）〜図５（Ｆ）と、図６のフローチャートを用いて説明する。
【００９７】
まず、第１の実施例では、撮像画像受付部１１０は、複数のマーカー５０を背景（第２の領域）にアレイ配置して撮像されて得られた撮像画像を受け付ける（Ｓ２０１）。
【００９８】
例えば、図５（Ａ）のように、作業範囲ＷＡ内での検出対象物の背景ＢＧに複数のマーカー（ＭＫ１１〜ＭＫ５３）をアレイ配置しておく。そして、その状態でロボットを制御している様子を撮像部ＣＭにより撮像して、図５（Ｂ）〜図５（Ｅ）に示すような撮像画像ＩＭ１〜ＩＭ４を取得する。
【００９９】
ここで、図２（Ａ）のように、マーカーＭＫを一つだけ配置する場合には、例えば図５（Ｆ）に示すように、作業対象物ＯＢが撮像画像ＩＭ５の右上端に映っている際に、作業対象物ＯＢが作業範囲ＷＡ内に位置するにも関わらず、マーカー遮蔽状態が発生しない。そのため、作業対象物ＯＢが作業範囲ＷＡ内に位置しないと判定してしまう。
【０１００】
これに対して、本例の場合には、作業範囲ＷＡの背景ＢＧの右上端にマーカーＭＫ５１が配置されているため、作業対象物ＯＢが図５（Ｆ）に示すような位置にある場合でも、マーカーＭＫ５１においてマーカー遮蔽状態が発生し、作業対象物ＯＢが作業範囲ＷＡ内に位置すると正しく判定することができる。
【０１０１】
なお、前述したように本例では、検出対象物として作業対象物ＯＢのみを考慮する。従って、エンドエフェクターＥＥによりマーカー遮蔽状態が発生することについては考慮しない。
【０１０２】
これにより、図２（Ａ）のように、マーカーを一つだけ配置する場合よりも、検出対象物が作業範囲内に位置するか否かをより細かく判定すること等が可能になる。
【０１０３】
次に、処理部１３０は、取得した撮像画像に基づいて、マーカー認識処理を行う（Ｓ２０２）。
【０１０４】
そして、処理部１３０は、マーカー５０の少なくとも一部の領域が、検出対象物（作業対象物、又、場合によってはエンドエフェクター３１０）により遮蔽されていると判定した場合、すなわち認識できなかったマーカーがあると判定した場合には、検出対象物（作業対象物、又、場合によってはエンドエフェクター３１０）が作業範囲（第１の領域）内に位置すると判定する（Ｓ２０３）。
【０１０５】
例えば、図５（Ｂ）の撮像画像ＩＭ１では、作業対象物ＯＢによりマーカーＭＫ３１〜マーカーＭＫ３３の全体と、マーカーＭＫ４１〜マーカーＭＫ４３の一部の領域に、マーカー遮蔽状態が発生している。同様に、図５（Ｃ）の撮像画像ＩＭ２では、作業対象物ＯＢによりマーカーＭＫ５１〜マーカーＭＫ５３の全体と、マーカーＭＫ４１〜マーカーＭＫ４３の一部の領域に、マーカー遮蔽状態が発生している。さらに、図５（Ｄ）の撮像画像ＩＭ３では、作業対象物ＯＢによりマーカーＭＫ５１〜マーカーＭＫ５３の一部の領域に、マーカー遮蔽状態が発生している。そのため、図５（Ｂ）〜図５（Ｄ）のような撮像画像が得られた場合には、検出対象物が作業範囲ＷＡ内に位置すると判定する。
【０１０６】
よって、これらの場合には、正常にビジュアルサーボを行うことが可能であると考えられるため、撮像画像に基づいてビジュアルサーボを行い（Ｓ２０５）、ビジュアルサーボが収束したか否かを判定する（Ｓ２０６）。そして、ビジュアルサーボが収束したと判定した場合には、処理を終了する。一方、ビジュアルサーボが収束していないと判定した場合には、ステップＳ２０１に戻り、処理を繰り返す。
【０１０７】
一方で、処理部１３０は、マーカー５０の少なくとも一部の領域が、検出対象物（作業対象物、又、場合によってはエンドエフェクター３１０）により遮蔽されていないと判定した場合、すなわち認識できなかったマーカーがないと判定した場合には、検出対象物（作業対象物、又、場合によってはエンドエフェクター３１０）が作業範囲（第１の領域）外に位置すると判定する（Ｓ２０３）。
【０１０８】
例えば、図５（Ｅ）の撮像画像ＩＭ４では、マーカーＭＫ１１〜マーカーＭＫ５３のどのマーカーにも、作業対象物ＯＢによるマーカー遮蔽状態が発生していない。よって、この場合には、検出対象物が作業範囲外に位置すると判定できる。
【０１０９】
そのため、検出対象物が作業範囲内に位置するように、ロボットを制御して移動させ（Ｓ２０４）、ステップＳ２０１に戻り、処理を繰り返す。
【０１１０】
これにより、検出対象物によるマーカー遮蔽状態の有無に基づいて、検出対象物が作業範囲内に位置するか否かを判定すること等が可能になる。前述したように、マーカーは検出対象物よりも認識が容易なため、検出対象物が作業範囲内に位置するか否かをより容易に判定すること等が可能になる。
【０１１１】
また、前述した図５（Ｃ）や図５（Ｄ）では、撮像画像において右端のマーカーだけがマーカー遮蔽状態になっているため、このままロボットを制御した場合に、検出対象物が作業範囲外に出てしまう可能性が高いと判定することも可能である。
【０１１２】
３．第２の実施例
次に、図７（Ａ）及び図７（Ｂ）と、図８（Ａ）〜図８（Ｃ）と、図９のフローチャートを用いて、第２の実施例を説明する。
【０１１３】
前提として、本例では作業範囲を、撮像範囲と異なる範囲として設定しておく。例えば、図７（Ａ）に示すように、撮像部ＣＭにより撮像される撮像範囲がＰＡである場合には、この撮像範囲ＰＡの中に、作業範囲ＷＡを設定しておく。そして、撮像部ＣＭにより撮像された図７（Ｂ）に示す撮像画像ＩＭでは、撮像画像ＩＭの全体が撮像範囲ＰＡに相当し、その中に設定された領域ＲＯＩが作業範囲ＷＡに相当する。なお、後述するように、この領域ＲＯＩは、注目領域として撮像画像に設定されるものである。
【０１１４】
以上の前提の下に、撮像画像受付部１１０は、作業範囲（第１の領域）内にはマーカー５０が非配置であり、作業範囲外にマーカー５０を配置して撮像されて得られた撮像画像を受け付ける（Ｓ３０１）。
【０１１５】
例えば、本例では図７（Ａ）のように、作業範囲ＷＡ内（及びその背景）にはマーカーを配置せず、作業範囲ＷＡ外の背景ＢＧに複数のマーカーＭＫを配置しておく。そして、撮像部ＣＭにより撮像を行い、図７（Ｂ）に示すような撮像画像ＩＭを取得する。すなわち、ビジュアルサーボにより作業を行う位置の周辺には、マーカーを配置せず、撮像画像ＩＭの中心付近にはマーカーが映らないようにし、撮像画像ＩＭの端付近にマーカーが映るようにする。
【０１１６】
これにより、処理部１３０は、マーカー認識処理を行った後に（Ｓ３０２）、以下のような判定処理を行うことが可能になる。
【０１１７】
すなわち、処理部１３０は、マーカー５０の少なくとも一部の領域が、検出対象物（作業対象物、又、場合によってはエンドエフェクター３１０）により遮蔽されていると判定した場合、つまり認識できなかったマーカーがあると判定した場合には、検出対象物（作業対象物、又、場合によってはエンドエフェクター３１０）が作業範囲（第１の領域）外に位置すると判定する（Ｓ３０３）。
【０１１８】
例えば、図８（Ａ）に示すような撮像画像ＩＭ１では、作業対象物ＯＢにより、Ｐ１の位置に配置されたマーカーにおいてマーカー遮蔽状態が発生している。そのため、検出対象物が作業範囲外に位置すると判定する。
【０１１９】
よって、検出対象物が作業範囲内に位置するように、ロボットを制御して移動させ（Ｓ３０４）、ステップＳ３０１に戻り、処理を繰り返す。
【０１２０】
一方で、処理部１３０は、マーカー５０の少なくとも一部の領域が、検出対象物（作業対象物、又、場合によってはエンドエフェクター３１０）により遮蔽されていないと判定した場合、つまり認識できなかったマーカーがないと判定した場合には、検出対象物（作業対象物、又、場合によってはエンドエフェクター３１０）が作業範囲（第１の領域）内に位置すると判定する（Ｓ３０３）。
【０１２１】
例えば、図８（Ｂ）に示すような撮像画像ＩＭ２では、作業対象物ＯＢにより、どのマーカーにおいてもマーカー遮蔽状態が発生していない。そのため、検出対象物が作業範囲内に位置すると判定する。なお、前述したように本例でも、検出対象物としては作業対象物ＯＢのみを考慮し、エンドエフェクターＥＥによりマーカー遮蔽状態が発生することについては考慮しない。
【０１２２】
よって、図８（Ｂ）の場合には、正常にビジュアルサーボを行うことが可能であると考えられるため、撮像画像に基づいてビジュアルサーボを行い（Ｓ３０５）、ビジュアルサーボが収束したか否かを判定する（Ｓ３０６）。そして、ビジュアルサーボが収束したと判定した場合には、処理を終了する。一方、ビジュアルサーボが収束していないと判定した場合には、ステップＳ３０１に戻り、処理を繰り返す。
【０１２３】
また、前述したステップＳ３０５では、処理部１３０は、作業範囲（第１の領域）に対応する領域を注目領域として撮像画像に設定して、注目領域においてビジュアルサーボ又は検査処理を行う。
【０１２４】
例えば、図８（Ｂ）のような撮像画像ＩＭ２が取得された場合には、図８（Ｃ）に示すような、注目領域ＲＯＩを切り出した画像に基づいて、ビジュアルサーボを行う。
【０１２５】
これにより、撮像画像において、マーカーが映っていない領域の画像に基づいて、ビジュアルサーボ又は検査処理を行うこと等が可能になる。
【０１２６】
また、逆に、撮像画像の全体を見た場合には、マーカーが検出できるため、ビジュアルサーボが上手く行かず、撮像範囲の外に検出対象物が出そうになってしまっていることを検出することができる。
【０１２７】
以上のように本例では、ビジュアルサーボや検査処理を行う際に、背景に配置したマーカーが物体検出処理において、邪魔になることを防ぐことができる。つまり、物体検出処理において、検出対象物の誤検出してしまったり、ビジュアルサーボが収束しなかったりすることを抑制することができる。そして、それに加えて、検出対象物によるマーカー遮蔽状態の有無に基づいて、検出対象物が作業範囲内に位置するか否かを判定すること等が可能になる。
【０１２８】
４．第３の実施例
第３の実施例では、例えば図１０（Ａ）に示す背景ＢＧに、それぞれ模様や色などが異なるマーカー（ＭＫ１１〜ＭＫｉｊ（ｉ、ｊは２以上の整数））をあらかじめ配置しておく。なお、図１０（Ａ）では、図示の都合上、各マーカーを記号で示すが、実際には前述した図３（Ａ）〜図３（Ｄ）に示すようなそれぞれ異なる模様又は色のマーカーが配置されているものとする。
【０１２９】
そして、図１０（Ｂ）に示すように、撮像画像受付部１１０（ＣＭ）は、複数の異なるマーカー５０（ＭＫ１１〜ＭＫｉｊ）を背景ＢＧ（第２の領域）に配置して撮像されて得られた撮像画像を受け付ける。なお、図１０（Ｂ）には、図示の都合上、マーカーの詳細は省略して図示するが、実際には図１０（Ａ）に示すようなマーカー（ＭＫ１１〜ＭＫｉｊ）が背景ＢＧに配置されているものとする。
【０１３０】
これにより、処理部１３０がマーカー認識処理を行って、認識したマーカーの種類により、撮像画像に映っている領域を特定すること等が可能になる。
【０１３１】
すなわち、処理部１３０は、撮像画像における複数の異なるマーカー５０の認識処理の結果に基づいて、撮像画像の撮像方向を特定することができる。具体的には、処理部１３０は、マーカー認識処理において認識したマーカーの種類と、予め決めて記憶しておく各マーカーの配置位置に基づいて、撮像画像の撮像方向（撮像画像に映る領域、撮像範囲）を特定することができる。
【０１３２】
例えば、図１０（Ｂ）において、撮像画像の左上端に映るマーカーがＭＫ１１である場合には、撮像画像に映る領域はＰＡ１であり、撮像方向はＤＲ１であると特定できる。また、撮像画像の左上端に映るマーカーがＭＫ９４である場合には、撮像画像に映る領域がＰＡ２であり、撮像方向はＤＲ２であると特定できる。
【０１３３】
ここで、撮像方向とは、カメラが撮像する方向を意味し、例えば、カメラの撮像レンズの中心点を通る光軸の方向のことをいう。
【０１３４】
これにより、撮像部２００の向き（撮像方向）を調整すること等が可能になる。
【０１３５】
さらに、処理部１３０は、撮像画像における複数のマーカー５０の認識処理の結果に基づいて、ロボット３００の作業対象物又はロボット３００のエンドエフェクター３１０の位置姿勢の特定処理を行うことができる。なお、位置姿勢とは、位置及び姿勢のことをいう。
【０１３６】
例えば、図１０（Ａ）に示すように複数の異なるマーカー（ＭＫ１１〜ＭＫｉｊ）が背景ＢＧに配置されている場合に、マーカー認識処理を行った結果、図１１（Ａ）に示すように、領域ＡＲ１内のマーカーだけが認識できた場合には、認識できなかったマーカーが配置されている領域に対応する位置に、検出対象物ＯＢが位置することが特定できる。
【０１３７】
そして、撮像画像においてマーカーが認識できない領域は、検出対象物の位置姿勢によって変わる。例えば、検出対象物ＯＢが図１１（Ｂ）のように斜めに傾いて位置している場合には、領域ＡＲ２と領域ＡＲ３に配置されたマーカーだけが認識できる。そのため、認識できなかったマーカーの種類に基づいて、図１１（Ｂ）のように検出対象物ＯＢが斜めに傾いて位置していることが特定できる。
【０１３８】
さらに、撮像画像においてマーカーが認識できない領域は、撮像部２００に対する奥行き方向の位置によっても変わる。具体的には、検出対象物が撮像部２００と近い手前に位置する場合の方が、マーカーが検出できない領域が広くなる。例えば、検出対象物ＯＢが図１１（Ｃ）のように手前に位置する場合には、領域ＡＲ４に配置されたマーカーだけが認識でき、逆に、検出対象物ＯＢが図１１（Ｄ）のように奥に位置する場合には、領域ＡＲ５に配置されたマーカーだけが認識できる。よって、検出対象物の奥行き方向での位置も特定することができる。
【０１３９】
これにより、実際の検出対象物の位置姿勢と、検出対象物の目標位置姿勢とを比較すること等が可能になる。そして、例えばこの比較結果を用いて、ロボットを移動させたり、ビジュアルサーボの結果が期待通りであるかを検査したりすること等が可能になる。すなわち、背景に配置した複数のマーカーのうち、どのマーカーが認識できる時にビジュアルサーボが収束した状態になるかを、事前に知っていれば、撮像画像に基づいて、ビジュアルサーボが収束しているか否かを判定することが可能になる。
【０１４０】
具体的に、ビジュアルサーボの結果の検査処理を行う場合の処理の流れを、図１２のフローチャートを用いて説明する。
【０１４１】
まず、処理部１３０がビジュアルサーボを行い（Ｓ４０１）、ビジュアルサーボが収束したか否かを判定する（Ｓ４０２）。そして、ビジュアルサーボが収束していないと判定した場合には、ビジュアルサーボが収束するまで処理を繰り返す。
【０１４２】
一方で、ビジュアルサーボが収束したと判定した場合には、撮像画像受付部１１０が、図１０（Ｂ）に示すように、複数の異なるマーカー５０（ＭＫ１１〜ＭＫｉｊ）を背景ＢＧに配置して撮像して得られた撮像画像を取得する（Ｓ４０３）。
【０１４３】
そして、処理部１３０は、マーカー認識処理を行い（Ｓ４０４）、マーカー認識処理の結果、認識できなかったマーカーの配置位置が、ビジュアルサーボが正しく収束した時に、マーカー遮蔽状態が発生するマーカーの配置位置と一致している否かを判定する検査処理を行う（Ｓ４０５）。
【０１４４】
そして、検査処理において、認識できなかったマーカーの配置位置が、ビジュアルサーボが正しく収束した時に、マーカー遮蔽状態が発生するマーカーの配置位置と一致していると判定した場合には、処理を終了する。一方、配置位置が一致していないと判定した場合には、ステップＳ４０１に戻り、再度ビジュアルサーボを行う。以上が、一連の処理の流れである。
【０１４５】
なお、本例では、図１０（Ａ）に示すように、複数の異なるマーカーがアレイ配置されている場合について説明したが、一つのマーカーにおいて、マーカーのどの領域が遮蔽されているかを検出できる場合には、一つのマーカーのマーカー遮蔽状態に基づいて、検出対象物の位置姿勢の特定処理を行ってもよい。
【０１４６】
また、以上の本実施形態で用いる撮像部（カメラ）２００は、例えばＣＣＤ（charge-coupled device）等の撮像素子と光学系とを含む。撮像部２００は、例えば天井や作業台の上などに、ビジュアルサーボにおける検出対象物（作業対象物又はロボット３００のエンドエフェクター３１０）が、撮像部２００の画角内に入るような角度で配置される。そして、撮像部２００は、撮像画像の情報を制御装置１００等に出力する。ただし、本実施形態においては、撮像画像の情報をそのまま制御装置１００に出力するものとするが、これに限定されるものではない。例えば、撮像部２００は、画像処理用等に用いられるデバイス（プロセッサー）を含むことができる。
【０１４７】
５．ロボットシステム及びロボット
次に、図１３（Ａ）及び図１３（Ｂ）に、本実施形態の制御装置１００が適用されるロボットシステム及びロボット３００の構成例を示す。図１３（Ａ）及び図１３（Ｂ）のどちらの場合にも、ロボット３００は、エンドエフェクター３１０を有する。また、ロボットシステムは、ロボット３００と、マーカー５０と、撮像部２００と、を含む。
【０１４８】
エンドエフェクター３１０とは、ワーク（作業対象物）を把持したり、持ち上げたり、吊り上げたり、吸着させたり、ワークに加工を施したりするために、アームのエンドポイントに取り付ける部品のことをいう。エンドエフェクター３１０は、例えばハンド（把持部）であってもよいし、フックであってもよいし、吸盤等であってもよい。さらに、１本のアームに対して、複数のエンドエフェクターを設けても良い。なお、アームとは、ロボット３００のパーツであって、一つ以上の関節を含む可動パーツのことをいう。
【０１４９】
例えば、図１３（Ａ）のロボットは、ロボット本体３００（ロボット）と制御装置１００とが別体に構成されている。この場合には、制御装置１００の一部又は全部の機能は、例えばＰＣ（Personal Computer）により実現される。
【０１５０】
また、本実施形態のロボットは図１３（Ａ）の構成に限定されず、図１３（Ｂ）のようにロボット本体３００と制御装置１００とが一体に構成されていてもよい。すなわち、ロボット３００は、制御装置１００を含んでいても良い。具体的には図１３（Ｂ）に示したように、ロボット３００は、ロボット本体（アーム及びエンドエフェクター３１０を有する）及びロボット本体を支えるベースユニット部を有し、当該ベースユニット部に制御装置１００が格納されるものであってもよい。図１３（Ｂ）のロボット３００には、ベースユニット部に車輪等が設けられ、ロボット全体が移動可能な構成となっている。なお、図１３（Ａ）は単腕型の例であるが、ロボット３００は図１３（Ｂ）に示すように双腕型等の多腕型のロボットであってもよい。また、ロボット３００は、人手により移動させられるものであってもよいし、車輪を駆動させるモーターを設け、当該モーターを制御装置１００により制御することにより、移動させられるものであってもよい。また、制御装置１００は、図１３（Ｂ）のようにロボット３００の下に設けられたベースユニット部に設けられるとは限られない。
【０１５１】
また、図１４に示すように、制御装置１００の機能は、有線及び無線の少なくとも一方を含むネットワーク４００を介して、ロボット３００と通信接続されたサーバー５００により実現されてもよい。
【０１５２】
或いは本実施形態では、本発明の制御装置の処理の一部を、サーバー５００側の制御装置が行ってもよい。この場合には、ロボット３００側に設けられた制御装置との分散処理により、当該処理を実現する。なお、ロボット３００側の制御装置は、例えばロボット３００に設置される端末装置３３０（制御部）により実現される。
【０１５３】
そして、この場合に、サーバー５００側の制御装置は、本発明の制御装置における各処理のうち、サーバー５００の制御装置に割り当てられた処理を行う。一方、ロボット３００に設けられた制御装置は、本発明の制御装置の各処理のうち、ロボット３００の制御装置に割り当てられた処理を行う。なお、本発明の制御装置の各処理は、サーバー５００側に割り当てられた処理であってもよいし、ロボット３００側に割り当てられた処理であってもよい。
【０１５４】
これにより、例えば端末装置３３０よりも処理能力の高いサーバー５００が、処理量の多い処理を行うこと等が可能になる。さらに、例えばサーバー５００が各ロボット３００の動作を一括して制御することができ、例えば複数のロボット３００に協調動作をさせること等が容易になる。
【０１５５】
また近年は、多品種少数の部品を製造することが増えてきている。そして、製造する部品の種類を変更する場合には、ロボットが行う動作を変更する必要がある。図１４に示すような構成であれば、複数のロボット３００の各ロボットへ教示作業をし直さなくても、サーバー５００が一括して、ロボット３００が行う動作を変更すること等が可能になる。
【０１５６】
さらに、図１４に示すような構成であれば、各ロボット３００に対して一つの制御装置１００を設ける場合に比べて、制御装置１００のソフトウェアアップデートを行う際の手間を大幅に減らすこと等が可能になる。
【０１５７】
６．ビジュアルサーボ
ここでは、ビジュアルサーボの概要と、位置ベースビジュアルサーボの流れ、特徴ベースビジュアルサーボの流れについて説明する。
【０１５８】
ビジュアルサーボとは、目標物の位置の変化を視覚情報として計測し、それをフィードバック情報として用いることによって目標物を追跡するサーボ系の一種である。ビジュアルサーボは、サーボ系への入力情報（制御量）によって、位置ベースビジュアルサーボと特徴ベースビジュアルサーボの二つに大別される。位置ベースビジュアルサーボは、物体の位置情報や姿勢情報がサーボ系への入力情報となり、特徴ベースビジュアルサーボは、画像の特徴量がサーボ系への入力情報となる。他にも、位置ベースと特徴ベースをハイブリッドした手法もある。本発明で扱うビジュアルサーボは、これら全ての手法を対象とする。
【０１５９】
これらのビジュアルサーボは、参照画像と撮像画像を元にサーボ系への入力情報を求める点で共通している。
【０１６０】
６．１  位置ベースビジュアルサーボの流れ
まず、図１５のフローチャートにおいて、位置ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボでは、まず参照画像を設定する（Ｓ１）。ここで、参照画像とは、目標画像やゴール画像とも呼ばれ、ビジュアルサーボの制御目標となる画像であり、ロボット３００の目標状態を表す画像をいう。すなわち、参照画像とは、ロボット３００の目標位置や目標姿勢を表す画像、もしくはロボット３００が目標位置に位置する状態を表す画像である。また、参照画像はあらかじめ用意しておき、記憶部に記憶しておく必要がある。
【０１６１】
次に、撮像部２００によって作業スペースを撮像し、撮像画像を取得する（Ｓ２）。撮像画像は、作業スペースの現在の状態を表しており、撮像画像内にロボット３００やワークが映りこんでいる場合には、ロボット３００やワークの現在の状態を表している。なお、撮像部２００の性能によっては処理遅延が生じるが、ここでは、処理遅延が生じている場合でも、撮像画像には現在の状態が映されているものとして扱う。
【０１６２】
例えば、図１６（Ａ）に参照画像ＲＩＭの具体例を、図１６（Ｂ）に撮像画像ＰＩＭの具体例を示す。撮像画像ＰＩＭにおいて、ロボットＲＢはアームＡＭとハンドＨＤ（もしくはエンドポイントＥＰ）を上方へ向けているが、参照画像ＲＩＭでは、ロボットＲＢはアームＡＭを折り曲げて、ハンドＨＤをワークＷＫに近づけている。したがって、この具体例においては、ロボットＲＢのアームＡＭを折り曲げ、ハンドＨＤをワークＷＫに近づけるようにロボットＲＢを制御することになる。
【０１６３】
次に、制御指令を生成する（Ｓ３）。例えば、制御指令生成は、参照画像と撮像画像に基づいて、座標変換の一つであるホモグラフィー等を用いることにより行われる。この場合には、ホモグラフィー行列を求め、ホモグラフィー行列からロボット３００の制御信号として速度指令を生成する。
【０１６４】
ここで、制御信号（制御指令）とは、ロボット３００を制御するための情報を含む信号のことをいう。例えば、制御信号としては速度指令などがある。また、速度指令とは、ロボット３００の各部を制御するための情報として、ロボット３００のアームのエンドポイント等の移動速度や回転速度を与える指令の方法を指す。
【０１６５】
そして、生成された制御信号に基づいて、制御量（ここではロボット３００の位置や姿勢）が目標値に収束したか否かを判定する（Ｓ４）。例えば、ホモグラフィーを用いる場合において、速度指令により表される速度ベクトルが０である場合には、制御量である位置や姿勢が目標状態に到達したとみなすことができるため、制御量が目標値に収束したと判定し、速度ベクトルが０でない場合には、制御量が目標値に収束していないと判定する。ここで、収束とは、目標値に限りなく近づくこと、又は目標値に到達することを意味する。
【０１６６】
制御量が目標値に収束したと判定した場合にはビジュアルサーボを終了する。一方、制御量が目標値に収束していないと判定した場合には、処理部１３０はロボット３００に制御指令を送出する（Ｓ５）。
【０１６７】
位置ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【０１６８】
６．２  特徴ベースビジュアルサーボの流れ
次に、図１７のフローチャートにおいて、特徴ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボと同様に、まず参照画像を設定し（Ｓ１０）、次に、撮像部２００によって作業スペースを撮像し、撮像画像を取得する（Ｓ１１）。なお、特徴ベースビジュアルサーボを用いる場合には、参照画像を設定する際に参照画像の特徴抽出を行い、特徴量を算出しておくことが望ましい。または、参照画像の特徴を抽出した参照画像情報を記憶部に記憶しておいてもよい。画像の特徴抽出については、例えば、コナー検出やガウスフィルター等を用いて行なう。
【０１６９】
次に、撮像画像の特徴を抽出する（Ｓ１２）。なお、参照画像の特徴抽出は、参照画像設定の際に行っておくことが望ましいが、本ステップで行ってもよい。特徴抽出では、ビジュアルサーボ系への入力情報（制御量）として、画像の特徴量を求める。
【０１７０】
そして、画像の特徴量に基づいて、参照画像と撮像画像が一致するか否かを比較する（Ｓ１３）。画像が一致すると判定した場合（Ｓ１４）には、ビジュアルサーボを終了する。一方、画像が一致しないと判定した場合（Ｓ１４）には、制御指令を生成し（Ｓ１５）、ロボット３００に制御指令を送出する（Ｓ１６）。
【０１７１】
特徴ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【０１７２】
なお、本実施形態の制御装置、ロボットシステム及びロボット等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態の制御装置、ロボットシステム及びロボット等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【０１７３】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、制御装置、ロボットシステム及びロボット等の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１７４】
５０  マーカー、１００  制御装置、１１０  撮像画像受付部、
１３０  処理部、２００  撮像部、３００  ロボット、３１０  エンドエフェクター、
３３０  端末装置、４００  ネットワーク、５００  サーバー
【図１】
2015136763.tif 000003
【図２】
2015136763.tif 000004
【図３】
2015136763.tif 000005
【図４】
2015136763.tif 000006
【図５】
2015136763.tif 000007
【図６】
2015136763.tif 000008
【図７】
2015136763.tif 000009
【図８】
2015136763.tif 000010
【図９】
2015136763.tif 000011
【図１０】
2015136763.tif 000012
【図１１】
2015136763.tif 000013
【図１２】
2015136763.tif 000014
【図１３】
2015136763.tif 000015
【図１４】
2015136763.tif 000016
【図１５】
2015136763.tif 000017
【図１６】
2015136763.tif 000018
【図１７】
2015136763.tif 000019