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