(57)【要約】【課題】  参照画像と撮像画像の撮像時の環境が異なる場合に、ビジュアルサーボの制御精度を向上させることができるロボット制御システム等の提供。【解決手段】  ロボット制御システム１０は、ロボット３０の作業対象が映る第１の参照画像を記憶し、ロボット３０のアーム、ロボット３０のエンドエフェクター３５０、及びロボット３０が把持するワークのうちの少なくとも１つと、作業対象とが映る第２の参照画像を記憶する記憶部１３０と、作業対象が映る第１の撮像画像と、第１の参照画像とに基づき第１のビジュアルサーボを行い、第１のビジュアルサーボの後、アーム、エンドエフェクター及びワークのうちの少なくとも１つと、作業対象とが映る第２の撮像画像と、第２の参照画像とに基づき第２のビジュアルサーボを行う処理部１１０と、制御信号に基づきロボット３０を制御するロボット制御部１２０を含む。【選択図】  図１
2014172119.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの目標状態を表す画像である参照画像を記憶する記憶部と、
撮像部から得られる撮像画像と前記参照画像とに基づいて、前記ロボットのビジュアルサーボを行い、前記ロボットの制御信号を出力する処理部と、
前記制御信号に基づいて、前記ロボットを制御するロボット制御部と、
を含み、
前記記憶部は、
前記ロボットの作業対象が映る画像を第１の参照画像として記憶し、
前記ロボットのアーム、前記ロボットのエンドエフェクター、及び前記ロボットが把持するワークのうちの少なくとも１つと、前記作業対象とが映る画像を、第２の参照画像として記憶し、
前記処理部は、
前記作業対象が映る第１の撮像画像と、前記第１の参照画像とに基づいて、第１のビジュアルサーボを行い、
前記第１のビジュアルサーボの後、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とが映る第２の撮像画像と、前記第２の参照画像とに基づいて、第２のビジュアルサーボを行うことを特徴とするロボット制御システム。
【請求項２】
請求項１において、
前記記憶部は、
所与の撮像位置及び所与の撮像方向で前記作業対象を見た時の画像を、前記第１の参照画像として記憶し、
前記所与の撮像位置及び前記所与の撮像方向で、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とを見た時の画像を、前記第２の参照画像として記憶し、
前記処理部は、
前記撮像部により前記作業対象を撮像することで得られる前記第１の撮像画像と、前記第１の参照画像とに基づいて、前記撮像部を前記所与の撮像位置に移動させ、前記撮像部を前記所与の撮像方向へ向けさせる前記第１のビジュアルサーボを行い、
前記所与の撮像位置及び前記所与の撮像方向で、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とを、前記撮像部により撮像することで得られる前記第２の撮像画像と、前記第２の参照画像とに基づいて、前記第２のビジュアルサーボを行うことを特徴とするロボット制御システム。
【請求項３】
請求項１又は２において、
前記ロボットは、
第１のアームと第２のアームとを有し、
前記撮像部は、
前記第１のアームに設けられ、
前記第２の参照画像は、
前記第２のアームと、前記第２のアームに設けられた前記エンドエフェクターと、前記第２のアームの前記エンドエフェクターが把持する前記ワークのうち、少なくとも１つが映る画像であることを特徴とするロボット制御システム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記処理部は、
前記第１のビジュアルサーボが収束したか否かの判定処理を行い、前記第１のビジュアルサーボが収束したと判定した場合に、前記第２のビジュアルサーボを行うことを特徴とするロボット制御システム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記記憶部は、
各第１の参照画像の撮像位置及び撮像方向が互いに異なる第１の参照画像群と、各第２の参照画像が前記各第１の参照画像に対応する第２の参照画像群とを記憶することを特徴とするロボット制御システム。
【請求項６】
請求項５において、
前記記憶部は、
前記第１の参照画像群の各第１の参照画像に対応する前記撮像位置及び前記撮像方向を表す位置方向特定情報を記憶することを特徴とするロボット制御システム。
【請求項７】
請求項１乃至４のいずれかにおいて、
前記記憶部は、
各第２の参照画像の撮像位置及び撮像方向が互いに異なる第２の参照画像群を記憶し、
前記処理部は、
前記第２のビジュアルサーボを行った後に、前記第２の参照画像群のうち、前回の前記第２のビジュアルサーボで用いた第２の参照画像とは異なる第２の参照画像を用いて、前記第２のビジュアルサーボを行うことを特徴とするロボット制御システム。
【請求項８】
請求項７において、
前記処理部は、
前記第２のビジュアルサーボを行った時に、前記第２のビジュアルサーボが収束したか否かの判定処理を行い、
前記第２のビジュアルサーボが収束していないと判定した場合に、前回の前記第２のビジュアルサーボで用いた前記第２の参照画像とは異なる第２の参照画像を用いて、前記第２のビジュアルサーボを行うことを特徴とするロボット制御システム。
【請求項９】
請求項７又は８において、
前記処理部は、
前記第２のビジュアルサーボを行った時に、前記第２のビジュアルサーボが収束したか否かの判定処理を行い、
前記第２のビジュアルサーボが収束したと判定した場合に、前回の前記第２のビジュアルサーボで用いた前記第２の参照画像とは異なる第２の参照画像を用いて、前記第２のビジュアルサーボを行うことを特徴とするロボット制御システム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記作業対象は、
前記ロボットの作業対象物、作業場所及びマーカーのうちの少なくとも一つであることを特徴とするロボット制御システム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記処理部は、
前記ビジュアルサーボとして、前記撮像画像が前記参照画像に一致又は近づくように前記ロボットを制御する処理を行うことを特徴とするロボット制御システム。
【請求項１２】
請求項１乃至１１のいずれかに記載のロボット制御システムを含むことを特徴とするロボット。
【請求項１３】
ロボットの目標状態を表す画像である第１の参照画像として、前記ロボットの作業対象が映る画像を記憶し、
前記ロボットのアーム、前記ロボットのエンドエフェクター、及び前記ロボットが把持するワークのうちの少なくとも１つと、前記作業対象とが映る画像を、第２の参照画像として記憶し、
前記作業対象が映る第１の撮像画像と、前記第１の参照画像とに基づいて、第１のビジュアルサーボを行い、
前記第１のビジュアルサーボの後、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とが映る第２の撮像画像と、前記第２の参照画像とに基づいて、第２のビジュアルサーボを行うことを特徴とするロボット。
【請求項１４】
ロボットの目標状態を表す画像である参照画像を記憶する記憶部と、
撮像部から得られる撮像画像と前記参照画像とに基づいて、前記ロボットのビジュアルサーボを行い、前記ロボットの制御信号を出力する処理部と、
前記制御信号に基づいて、前記ロボットを制御するロボット制御部として、
コンピューターを機能させ、
前記記憶部は、
前記ロボットの作業対象が映る画像を第１の参照画像として記憶し、
前記ロボットのアーム、前記ロボットのエンドエフェクター、及び前記ロボットが把持するワークのうちの少なくとも１つと、前記作業対象とが映る画像を、第２の参照画像として記憶し、
前記処理部は、
前記作業対象が映る第１の撮像画像と、前記第１の参照画像とに基づいて、第１のビジュアルサーボを行い、
前記第１のビジュアルサーボの後、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とが映る第２の撮像画像と、前記第２の参照画像とに基づいて、第２のビジュアルサーボを行うことを特徴とするプログラム。
【請求項１５】
ロボットの目標状態を表す画像である第１の参照画像として、前記ロボットの作業対象が映る画像を記憶し、
前記ロボットのアーム、前記ロボットのエンドエフェクター、及び前記ロボットが把持するワークのうちの少なくとも１つと、前記作業対象とが映る画像を、第２の参照画像として記憶し、
前記作業対象が映る第１の撮像画像と、前記第１の参照画像とに基づいて、前記ロボットの第１のビジュアルサーボを行い、前記ロボットの第１の制御信号を出力し、
前記第１の制御信号に基づいて、前記ロボットを制御し、
前記第１のビジュアルサーボの後、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とが映る第２の撮像画像と、前記第２の参照画像とに基づいて、第２のビジュアルサーボを行い、前記ロボットの第２の制御信号を出力し、
前記第２の制御信号に基づいて、前記ロボットを制御することを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御システム、ロボット、プログラム及びロボット制御方法等に関係する。
【背景技術】
【０００２】
近年、生産現場において、人が行ってきた作業を機械化・自動化するために、産業用ロボットを導入することが多くなってきた。しかし、ロボットのアームやハンド等の位置決めを行うにあたっては、精密なキャリブレーションが前提となり、ロボット導入の障壁となっている。
【０００３】
ここで、ロボットのアームやハンド等の位置決めを行う手法の一つとしてビジュアルサーボがある。ある種のビジュアルサーボは、キャリブレーションに精密さを求めない点で有用であり、ロボット導入障壁を下げる技術として注目されている。
【０００４】
これらのビジュアルサーボに関する発明としては特許文献１及び特許文献２に記載される従来技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３０２３４５号公報
【特許文献２】特開２００３−３１１６７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
参照画像の撮像タイミングと撮像画像の撮像タイミングは異なることが一般的である。そのため、参照画像を撮像した時の環境と、撮像画像を撮像した時の環境が異なることも多い。このような場合には、ビジュアルサーボが上手く収束しないことがある。
【０００７】
本発明の幾つかの態様によれば、参照画像と撮像画像の撮像時の環境が異なる場合に、ビジュアルサーボの制御精度を向上させることができるロボット制御システム、ロボット、プログラム及びロボット制御方法等を提供することができる。
【課題を解決するための手段】
【０００８】
本発明の一態様は、ロボットの目標状態を表す画像である参照画像を記憶する記憶部と、撮像部から得られる撮像画像と前記参照画像とに基づいて、前記ロボットのビジュアルサーボを行い、前記ロボットの制御信号を出力する処理部と、前記制御信号に基づいて、前記ロボットを制御するロボット制御部と、を含み、前記記憶部は、前記ロボットの作業対象が映る画像を第１の参照画像として記憶し、前記ロボットのアーム、前記ロボットのエンドエフェクター、及び前記ロボットが把持するワークのうちの少なくとも１つと、前記作業対象とが映る画像を、第２の参照画像として記憶し、前記処理部は、前記作業対象が映る第１の撮像画像と、前記第１の参照画像とに基づいて、第１のビジュアルサーボを行い、前記第１のビジュアルサーボの後、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とが映る第２の撮像画像と、前記第２の参照画像とに基づいて、第２のビジュアルサーボを行うロボット制御システムに関係する。
【０００９】
本発明の一態様では、第１の撮像画像と第１の参照画像とに基づいて、第１のビジュアルサーボを行い、第２の撮像画像の撮像時の環境を第２の参照画像の撮像時の環境に合わせる。そして、第２の撮像画像と第２の参照画像とに基づいて、第２のビジュアルサーボを行う。
【００１０】
これにより、参照画像と撮像画像の撮像時の環境が異なる場合に、ビジュアルサーボの制御精度を向上させることが可能になる。
【００１１】
また、本発明の一態様では、前記記憶部は、所与の撮像位置及び所与の撮像方向で前記作業対象を見た時の画像を、前記第１の参照画像として記憶し、前記所与の撮像位置及び前記所与の撮像方向で、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とを見た時の画像を、前記第２の参照画像として記憶し、前記処理部は、前記撮像部により前記作業対象を撮像することで得られる前記第１の撮像画像と、前記第１の参照画像とに基づいて、前記撮像部を前記所与の撮像位置に移動させ、前記撮像部を前記所与の撮像方向へ向けさせる前記第１のビジュアルサーボを行い、前記所与の撮像位置及び前記所与の撮像方向で、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とを、前記撮像部により撮像することで得られる前記第２の撮像画像と、前記第２の参照画像とに基づいて、前記第２のビジュアルサーボを行ってもよい。
【００１２】
これにより、撮像部の撮像位置及び撮像方向を、第２の参照画像の撮像時の撮像位置及び撮像方向と合わせて、第２のビジュアルサーボを行うこと等が可能になる。
【００１３】
また、本発明の一態様では、前記ロボットは、第１のアームと第２のアームとを有し、前記撮像部は、前記第１のアームに設けられ、前記第２の参照画像は、前記第２のアームと、前記第２のアームに設けられた前記エンドエフェクターと、前記第２のアームの前記エンドエフェクターが把持する前記ワークのうち、少なくとも１つが映る画像であってもよい。
【００１４】
これにより、第１のビジュアルサーボで第１のアームに設けられた撮像部を移動させること等が可能になり、第２のビジュアルサーボで第２のアームに設けられたエンドエフェクターを移動させること等が可能になる。
【００１５】
また、本発明の一態様では、前記処理部は、前記第１のビジュアルサーボが収束したか否かの判定処理を行い、前記第１のビジュアルサーボが収束したと判定した場合に、前記第２のビジュアルサーボを行ってもよい。
【００１６】
これにより、第２の参照画像と第２の撮像画像の撮像時の環境が一致したと判定できた場合に、第２のビジュアルサーボを行うこと等が可能になる。
【００１７】
また、本発明の一態様では、前記記憶部は、各第１の参照画像の撮像位置及び撮像方向が互いに異なる第１の参照画像群と、各第２の参照画像が前記各第１の参照画像に対応する第２の参照画像群とを記憶してもよい。
【００１８】
これにより、第１のビジュアルサーボと第２のビジュアルサーボを複数回行うこと等が可能になる。
【００１９】
また、本発明の一態様では、前記記憶部は、前記第１の参照画像群の各第１の参照画像に対応する前記撮像位置及び前記撮像方向を表す位置方向特定情報を記憶してもよい。
【００２０】
これにより、あらかじめ第１のビジュアルサーボを複数回行っておき、以後、必要に応じて、各第１の参照画像の撮像位置及び撮像方向に撮像部３４０を移動させること等が可能になる。
【００２１】
また、本発明の一態様では、前記記憶部は、各第２の参照画像の撮像位置及び撮像方向が互いに異なる第２の参照画像群を記憶し、前記処理部は、前記第２のビジュアルサーボを行った後に、前記第２の参照画像群のうち、前回の前記第２のビジュアルサーボで用いた第２の参照画像とは異なる第２の参照画像を用いて、前記第２のビジュアルサーボを行ってもよい。
【００２２】
これにより、第２の参照画像を切り替えて、再度第２のビジュアルサーボを行うこと等が可能になる。
【００２３】
また、本発明の一態様では、前記処理部は、前記第２のビジュアルサーボを行った時に、前記第２のビジュアルサーボが収束したか否かの判定処理を行い、前記第２のビジュアルサーボが収束していないと判定した場合に、前回の前記第２のビジュアルサーボで用いた前記第２の参照画像とは異なる第２の参照画像を用いて、前記第２のビジュアルサーボを行ってもよい。
【００２４】
これにより、第２のビジュアルサーボが期待通りに収束しなかった場合に、他の第２の参照画像を用いて、第２のビジュアルサーボを行うこと等が可能になる。
【００２５】
また、本発明の一態様では、前記処理部は、前記第２のビジュアルサーボを行った時に、前記第２のビジュアルサーボが収束したか否かの判定処理を行い、前記第２のビジュアルサーボが収束したと判定した場合に、前回の前記第２のビジュアルサーボで用いた前記第２の参照画像とは異なる第２の参照画像を用いて、前記第２のビジュアルサーボを行ってもよい。
【００２６】
これにより、第２のビジュアルサーボが期待通りに収束した場合に、他の位置から見ても第２のビジュアルサーボが期待通りに収束しているかの確認を行うこと等が可能になる。
【００２７】
また、本発明の一態様では、前記作業対象は、前記ロボットの作業対象物、作業場所及びマーカーのうちの少なくとも一つであってもよい。
【００２８】
これにより、作業対象がワーク以外の場合にも、第１のビジュアルサーボと第２のビジュアルサーボを行う本発明の手法を適用すること等が可能になる。
【００２９】
また、本発明の一態様では、前記処理部は、前記ビジュアルサーボとして、前記撮像画像が前記参照画像に一致又は近づくように前記ロボットを制御する処理を行ってもよい。
【００３０】
これにより、撮像部が参照画像と同じ画像を撮像可能な位置に、撮像部を移動させ、ロボットを目標の姿勢にすること等が可能になる。
【００３１】
また、本発明の他の態様では、前記ロボット制御システムを含むロボットに関係する。
【００３２】
また、本発明の他の態様では、ロボットの目標状態を表す画像である第１の参照画像として、前記ロボットの作業対象が映る画像を記憶し、前記ロボットのアーム、前記ロボットのエンドエフェクター、及び前記ロボットが把持するワークのうちの少なくとも１つと、前記作業対象とが映る画像を、第２の参照画像として記憶し、前記作業対象が映る第１の撮像画像と、前記第１の参照画像とに基づいて、第１のビジュアルサーボを行い、前記第１のビジュアルサーボの後、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とが映る第２の撮像画像と、前記第２の参照画像とに基づいて、第２のビジュアルサーボを行うロボットに関係する。
【００３３】
また、本発明の他の態様では、上記各部としてコンピューターを機能させるプログラムに関係する。
【００３４】
また、本発明の他の態様では、ロボットの目標状態を表す画像である第１の参照画像として、前記ロボットの作業対象が映る画像を記憶し、前記ロボットのアーム、前記ロボットのエンドエフェクター、及び前記ロボットが把持するワークのうちの少なくとも１つと、前記作業対象とが映る画像を、第２の参照画像として記憶し、前記作業対象が映る第１の撮像画像と、前記第１の参照画像とに基づいて、前記ロボットの第１のビジュアルサーボを行い、前記ロボットの第１の制御信号を出力し、前記第１の制御信号に基づいて、前記ロボットを制御し、前記第１のビジュアルサーボの後、前記アーム、前記エンドエフェクター及び前記ワークのうちの少なくとも１つと、前記作業対象とが映る第２の撮像画像と、前記第２の参照画像とに基づいて、第２のビジュアルサーボを行い、前記ロボットの第２の制御信号を出力し、前記第２の制御信号に基づいて、前記ロボットを制御するロボット制御方法に関係する。
【図面の簡単な説明】
【００３５】
【図１】本実施形態のシステム構成例。
【図２】図２（Ａ）、図２（Ｂ）は、本実施形態のロボットの構成例。
【図３】位置ベースビジュアルサーボの処理の流れを説明するフローチャート。
【図４】図４（Ａ）、図４（Ｂ）は参照画像と撮像画像の説明図。
【図５】特徴ベースビジュアルサーボの処理の流れを説明するフローチャート。
【図６】本実施形態の処理の概要を説明するフローチャート。
【図７】図７（Ａ）〜図７（Ｃ）は、第１のビジュアルサーボと第２のビジュアルサーボの説明図。
【図８】図８（Ａ）〜図８（Ｄ）は、作業対象物の隣にワークを置く処理の説明図。
【図９】図９（Ａ）〜図９（Ｄ）は、ネジ穴にネジを入れる処理の説明図。
【図１０】図１０（Ａ）〜図１０（Ｄ）は、パレットにワークを置く処理の説明図。
【図１１】図１１（Ａ）〜図１１（Ｄ）は、コネクターを組み付ける処理の説明図。
【図１２】本実施形態の変形例の処理の流れを説明するフローチャート。
【図１３】第１の参照画像群の説明図。
【図１４】第２の参照画像群の説明図。
【発明を実施するための形態】
【００３６】
以下、本実施形態について説明する。まず、本実施形態の概要を説明し、次にシステム構成例について説明する。そして、ビジュアルサーボの概要について説明した後で、フローチャート等を用いて本実施形態で行う処理の詳細について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３７】
１．概要
近年、生産現場において、人が行ってきた作業を機械化・自動化するために、産業用ロボットを導入することが多くなってきた。しかし、ロボットのアームやハンド等の位置決めを行うにあたっては、精密なキャリブレーションが前提となり、ロボット導入の障壁となっている。
【００３８】
ここで、ロボットのアームやハンド等の位置決めを行う手法の一つとしてビジュアルサーボがある。ビジュアルサーボは、参照画像（ゴール画像、目標画像）と撮像画像（現在の画像）との差に基づいて、ロボットを制御する技術である。ある種のビジュアルサーボは、キャリブレーションに精密さを求めない点で有用であり、ロボット導入障壁を下げる技術として注目されている。
【００３９】
ここで、ビジュアルサーボに用いる参照画像は、あらかじめワーク等の作業対象等を撮像した画像である。一方で、撮像画像は、ロボットを実際に動作させる際に現在の様子を撮像した画像である。
【００４０】
このように、参照画像と撮像画像では撮像タイミングが異なるため、参照画像を撮像した時の環境と、撮像画像を撮像した時の環境が異なることも多い。そして、このような場合には、ビジュアルサーボが上手く収束しないことがある。ここで、撮像時の環境とは、撮像部の撮像位置及び撮像方向や、ワーク等の作業対象の位置及び向き等、言い換えれば作業対象と撮像部との相対的な位置及び方向などのことを指す。
【００４１】
例えば、ビジュアルサーボによって、机の上に置かれた第１のワークの隣に、ロボットが把持している第２のワークを置く作業を考える。この時に、参照画像を撮像した時の撮像部の撮像位置及び撮像方向と、撮像画像を撮像する時の撮像部の撮像位置及び撮像方向が異なる場合には、撮像画像と参照画像とにおいて第１のワークが互いに異なる位置に、異なる角度で映ることになる。また、撮像位置及び撮像方向は変わらないが、第１のワークの位置及び方向の少なくとも一方が変わってしまった場合も同様である。このような場合には、ビジュアルサーボによって第１のワークの隣に第２のワークを正確に置くことは難しくなる。
【００４２】
本来であれば、ビジュアルサーボに用いる参照画像と撮像画像の撮像時の環境は変化しないことが好ましいが、実際には変化してしまうことが多い。
【００４３】
そこで、本実施形態では、双腕のロボットを用いて、２段階に分けてビジュアルサーボを行う。本実施形態のロボットの第１のアームには、撮像部が設けられており、第２のアームにはエンドエフェクターが設けられている。そして、第１のビジュアルサーボと第２のビジュアルサーボを続けて行う。ここで、第１のビジュアルサーボは、撮像部が設けられた第１のアームを動作させるものであり、第２のビジュアルサーボは、エンドエフェクター又は第２のアームを動作させるものである。そして、第２のビジュアルサーボを正確に行うために、第１のビジュアルサーボでは、作業対象と撮像部との相対的な位置及び方向が、第２のビジュアルサーボで用いる参照画像の撮影時における相対的な位置及び方向と、同じになるように、第１のアームに設けられた撮像部を移動させる。
【００４４】
これにより、第２のビジュアルサーボで用いる参照画像と撮像画像において、作業対象と撮像部との相対的な位置及び方向を一致させることが可能になる。その結果、参照画像と撮像画像の撮像時の環境が異なる場合に、ビジュアルサーボの制御精度を向上させることが可能になる。
【００４５】
２．システム構成例
次に、本実施形態のロボット制御システム１０及びロボット３０の構成例を図１に示す。
【００４６】
ロボット制御システム１０は、処理部１１０と、ロボット制御部１２０と、記憶部１３０と、Ｉ／Ｆ部（入力部）１４０と、を含む。なお、ロボット制御システム１０は、図１の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
【００４７】
次に、ロボット制御システム１０の各部で行われる処理について説明する。
【００４８】
処理部１１０は、後述する撮像部３４０から得られる撮像画像と、後述する記憶部１３０から取得される参照画像とに基づいて、ロボット３０のビジュアルサーボを行い、ロボット３０の制御信号を出力する。
【００４９】
次に、ロボット制御部１２０は、制御信号に基づいて、ロボット３０を制御する。なお、処理部１１０と、ロボット制御部１２０の機能は、各種プロセッサー（ＣＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムなどにより実現できる。
【００５０】
そして、記憶部１３０は、ロボット３０の目標状態を表す画像である参照画像を記憶したり、処理部１１０やロボット制御部１２０のワーク領域となったりするもので、その機能はＲＡＭ等のメモリーやＨＤＤ（ハードディスクドライブ）などにより実現できる。
【００５１】
さらに、入力部（Ｉ／Ｆ部）１４０は、ロボット制御システム１０に対する作業者からの入力を受け付けたり、ロボット制御システム１０とロボット３０間で情報をやり取りしたりするためのインターフェースである。作業者からの入力等を受け付ける場合には、入力部（Ｉ／Ｆ部）２４０は、スイッチやボタン、キーボード或いはマウス等から構成されてもよい。また、ロボット制御システム１０とロボット３０間で情報をやり取りする場合には、入力部（Ｉ／Ｆ部）２４０は、ネットワークを介して通信を行う通信部であってもよい。
【００５２】
また、図１に示すように、ロボット３０は、制御部３１０と、第１のアーム３２０と、第２のアーム３３０と、撮像部３４０と、エンドエフェクター３５０と、を含む。さらに、図２（Ａ）及び図２（Ｂ）に示すように、ロボット３０では、第１のアーム３２０に撮像部３４０が設けられ、第２のアーム３３０にエンドエフェクター３５０が設けられる。なお、ロボット３０は、図１、図２（Ａ）及び図２（Ｂ）の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。例えば、第１のアーム３２０のエンドポイント以外の位置に撮像部３４０が設けられても良いし、第１のアーム３２０と第２のアーム３３０の両方に撮像部３４０が設けられても良い。
【００５３】
次に、ロボット制御システム１０の各部で行われる処理について説明する。
【００５４】
また、制御部３１０は、ロボット制御部１２０からの情報に基づいて、ロボット３０の各部（第１のアーム３２０、第２のアーム３３０、撮像部３４０及びエンドエフェクター３５０等）の制御を行う。
【００５５】
本実施形態のロボット３０は双腕のロボットであり、ロボット３０には、第１のアーム３２０と、第１のアーム３２０とは異なる第２のアーム３３０が設けられている。ここで、アームとは、ロボット３０のパーツであって、一つ以上の関節を含む可動パーツのことをいう。
【００５６】
さらに、撮像部３４０は、ロボット３０の作業現場等を撮像し、制御部３１０とＩ／Ｆ部１４０を介して処理部１１０に撮像画像を出力する。例えば撮像部３４０は、可視カメラであってもよいし、赤外線カメラであってもよい。さらに、例えば可視カメラは、撮像素子としてＣＣＤやＣＭＯＳを用いるカメラであっても良く、また、白黒カメラであっても、カラーカメラであっても良い。白黒カメラを使う場合には、撮像画像として濃淡画像が撮像され、カラーカメラを使う場合には、撮像画像として色画像が撮像される。なお、可視カメラ及び赤外線カメラは、画像処理用等に用いられるデバイス（プロセッサー）を含んでもよい。本実施形態においては、撮像部３４０は撮像画像そのものを出力するが、これに限定されるものではない。例えば、処理部１１０において行う画像処理の一部を、撮像部３４０が行っても良い。その場合、撮像画像に対して、画像処理が施された後の撮像情報が処理部１１０に出力されることになる。
【００５７】
また、エンドエフェクター３５０は、アームのエンドポイントに設けられる把持部又はツールのことをいう。
【００５８】
ここで、把持部とは、ワークを把持したり、持ち上げたり、吊り上げたり、吸着させたりするために用いる部品のことをいう。把持部は、ハンドであってもよいし、フックであってもよいし、吸盤等であってもよい。なお、１本のアームに対して、複数のハンドを設けても良い。
【００５９】
また、ツールとは、ワークや作業対象に対して加工等の作業を行うための道具であって、例えばドリルやドライバーなどの工具を指す。なお、ツールは、ハンドにより把持されるものであってもよいし、アームのエンドポイントに直接設けられるものであってもよい。ここで、アームのエンドポイントとは、アームの先端部分のポイントであって、ロボット３０のハンド以外の他の部分と接続されていない部分のことをいう。
【００６０】
次に、ロボット制御システム１０とロボット３０の一例を図２（Ａ）及び図２（Ｂ）に示す。例えば図２（Ａ）のロボット３０では、ロボット本体３０（ロボット）とロボット制御システム１０とが一体に構成されている。しかし、本実施形態のロボット制御システム１０及びロボット３０は図２（Ａ）の構成に限定されず、図２（Ｂ）のようにロボット本体３０とロボット制御システム１０とが別体に構成されていてもよい。具体的には図２（Ａ）に示したように、ロボット３０は、ロボット本体（第１のアーム３２０、第２のアーム３３０、撮像部３４０及びエンドエフェクター３５０を有する）及びロボット本体を支えるベースユニット部を有し、当該ベースユニット部にロボット制御システム１０が格納されるものであってもよい。図２（Ａ）のロボット３０には、ベースユニット部に車輪等が設けられ、ロボット全体が移動可能な構成となっている。なお、図２（Ａ）のロボット３０は双腕型の例であるが、ロボット３０は単腕型や多腕型のロボットであってもよい。なお、ロボット３０は、人手により移動させられるものであってもよいし、車輪を駆動するモーターを設け、当該モーターをロボット制御システム１０により制御することにより、移動させられるものであってもよい。また、ロボット制御システム１０は、図２（Ａ）のようにロボット３０の下に設けられたベースユニット部に設けられるとは限られない。
【００６１】
３．ビジュアルサーボの概要
本実施形態の処理の詳細を説明する前に、ビジュアルサーボの概要と、位置ベースビジュアルサーボの流れ、特徴ベースビジュアルサーボの流れについて説明する。
【００６２】
ビジュアルサーボとは、目標物の位置の変化を視覚情報として計測し、それをフィードバック情報として用いることによって目標物を追跡するサーボ系の一種である。ビジュアルサーボは、サーボ系への入力情報（制御量）によって、位置ベースビジュアルサーボと特徴ベースビジュアルサーボの二つに大別される。位置ベースビジュアルサーボは、物体の位置情報や姿勢情報がサーボ系への入力情報となり、特徴ベースビジュアルサーボは、画像の特徴量がサーボ系への入力情報となる。他にも、位置ベースと特徴ベースをハイブリッドした手法もある。本発明で扱うビジュアルサーボは、これら全ての手法を対象とする。
【００６３】
これらのビジュアルサーボは、参照画像と撮像画像を元にサーボ系への入力情報を求める点で共通している。
【００６４】
３．１  位置ベースビジュアルサーボの流れ
まず、図３のフローチャートにおいて、位置ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボでは、まず参照画像を設定する（Ｓ１）。ここで、参照画像とは、目標画像やゴール画像とも呼ばれ、ビジュアルサーボの制御目標となる画像であり、ロボット３０の目標状態を表す画像をいう。すなわち、参照画像とは、ロボット３０の目標位置や目標姿勢を表す画像、もしくはロボット３０が目標位置に位置する状態を表す画像である。また、参照画像はあらかじめ用意しておき、記憶部１３０に記憶しておく必要がある。
【００６５】
次に、撮像部３４０によって作業スペースを撮像し、撮像画像を取得する（Ｓ２）。撮像画像とは、撮像部３４０によって撮像された画像である。撮像画像は、作業スペースの現在の状態を表しており、撮像画像内にロボット３０やワークが映りこんでいる場合には、ロボット３０やワークの現在の状態を表している。なお、撮像部３４０の性能によっては処理遅延が生じるが、ここでは、処理遅延が生じている場合でも、撮像画像には現在の状態が映されているものとして扱う。
【００６６】
例えば、図４（Ａ）に参照画像ＲＩＭの具体例を、図４（Ｂ）に撮像画像ＰＩＭの具体例を示す。撮像画像ＰＩＭにおいて、ロボットＲＢはアームＡＭとハンドＨＤ（もしくはエンドポイントＥＰ）を上方へ向けているが、参照画像ＲＩＭでは、ロボットＲＢはアームＡＭを折り曲げて、ハンドＨＤをワークＷＫに近づけている。したがって、この具体例においては、ロボットＲＢのアームＡＭを折り曲げ、ハンドＨＤをワークＷＫに近づけるようにロボットＲＢを制御することになる。
【００６７】
次に、制御指令を生成する（Ｓ３）。例えば、制御指令生成は、参照画像と撮像画像に基づいて、座標変換の一つであるホモグラフィー等を用いることにより行われる。この場合には、ホモグラフィー行列を求め、ホモグラフィー行列からロボット３０の制御信号として速度指令を生成する。
【００６８】
ここで、制御信号（制御指令）とは、ロボット３０を制御するための情報を含む信号のことをいう。例えば、制御信号としては速度指令などがある。また、速度指令とは、ロボット３０の各部を制御するための情報として、ロボット３０のアーム３２０のエンドポイント等の移動速度や回転速度を与える指令の方法を指す。
【００６９】
そして、生成された制御信号に基づいて、制御量（ここではロボット３０の位置や姿勢）が目標値に収束したか否かを判断する（Ｓ４）。例えば、ホモグラフィーを用いる場合において、速度指令により表される速度ベクトルが０である場合には、制御量である位置や姿勢が目標状態に到達したとみなすことができるため、制御量が目標値に収束したと判断し、速度ベクトルが０でない場合には、制御量が目標値に収束していないと判断する。ここで、収束とは、目標値に限りなく近づくこと、又は目標値に到達することを意味する。
【００７０】
制御量が目標値に収束したと判断する場合にはビジュアルサーボを終了する。一方、制御量が目標値に収束していないと判断する場合には、処理部１１０はロボット制御部１２０に制御指令を送出する（Ｓ５）。
【００７１】
位置ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【００７２】
３．２  特徴ベースビジュアルサーボの流れ
次に、図５のフローチャートにおいて、特徴ベースビジュアルサーボの流れを示す。位置ベースビジュアルサーボと同様に、まず参照画像を設定し（Ｓ１０）、次に、撮像部３４０によって作業スペースを撮像し、撮像画像を取得する（Ｓ１１）。なお、特徴ベースビジュアルサーボを用いる場合には、参照画像を設定する際に参照画像の特徴抽出を行い、特徴量を算出しておくことが望ましい。または、参照画像の特徴を抽出した参照画像情報を記憶部１３０に記憶しておいてもよい。画像の特徴抽出については、例えば、コーナー検出やガウスフィルタ等を用いて行なう。
【００７３】
次に、撮像画像の特徴を抽出する（Ｓ１２）。なお、参照画像の特徴抽出は、参照画像設定の際に行っておくことが望ましいが、本ステップで行ってもよい。特徴抽出では、ビジュアルサーボ系への入力情報（制御量）として、画像の特徴量を求める。
【００７４】
そして、画像の特徴量に基づいて、参照画像と撮像画像が一致するか否かを比較する（Ｓ１３）。画像が一致すると判断する場合（Ｓ１４）には、ビジュアルサーボを終了する。一方、画像が一致しないと判断する場合（Ｓ１４）には、制御指令を生成し（Ｓ１５）、ロボット制御部１２０に制御指令を送出する（Ｓ１６）。
【００７５】
特徴ベースビジュアルサーボでは、制御量が目標値に収束するまで以上の処理を繰り返す。
【００７６】
４．処理の詳細
本実施形態のロボット制御システム１０は、ロボット３０の目標状態を表す画像である参照画像を記憶する記憶部１３０と、撮像部３４０から得られる撮像画像と参照画像とに基づいて、ロボット３０のビジュアルサーボを行い、ロボット３０の制御信号を出力する処理部１１０と、制御信号に基づいて、ロボット３０を制御するロボット制御部１２０と、を含む。そして、記憶部１３０は、ロボット３０の作業対象が映る画像を第１の参照画像として記憶し、ロボット３０のアーム、ロボット３０のエンドエフェクター３５０、及びロボット３０が把持するワークのうちの少なくとも１つと、作業対象とが映る画像を、第２の参照画像として記憶する。さらに、処理部１１０は、作業対象が映る第１の撮像画像と、第１の参照画像とに基づいて、第１のビジュアルサーボを行い、第１のビジュアルサーボの後、アーム、エンドエフェクター３５０及びワークのうちの少なくとも１つと、作業対象とが映る第２の撮像画像と、第２の参照画像とに基づいて、第２のビジュアルサーボを行う。
【００７７】
ここで、本実施形態の処理の概要について、図６のフローチャートと、図７（Ａ）〜図７（Ｃ）と、図８（Ａ）〜図８（Ｄ）とを用いて説明する。ここでは具体的に、図７（Ａ）に示すように、ビジュアルサーボによって、机の上に置かれた作業対象物（ワーク）ＯＢの隣に、ハンドＨＤが把持するワークＷＫを置く作業を考える。
【００７８】
処理部１１０は、ビジュアルサーボとして、撮像画像が参照画像に一致又は近づくようにロボット３０を制御する処理を行ってもよい。
【００７９】
これにより、撮像部３４０が参照画像と同じ画像を撮像可能な位置に、撮像部を移動させ、ロボット３０を目標の姿勢にすることが可能になる。すなわち、ロボット３０が目標姿勢をとっている状態で撮像可能な画像を参照画像としておき、参照画像と一致又は近い撮像画像を撮像できるようにロボット３０を制御すれば、ロボット３０が目標姿勢をとるように制御することが可能になる。
【００８０】
具体的には、まず図７（Ｂ）に示すように、第１のビジュアルサーボを行い、作業対象物ＯＢが第１の参照画像ＲＩＭ１と同じ位置、かつ同じ角度で映るように、第１のアームＡＭ１に設けられた撮像部（カメラ）ＣＭを移動させる（Ｓ１０１）。
【００８１】
ここで、第１のビジュアルサーボは、図８（Ａ）に示すような第１の撮像画像ＰＩＭ１と、図８（Ｂ）に示すような第１の参照画像ＲＩＭ１とを比較することにより行われる。なお、第１の撮像画像とは、第１のビジュアルサーボにおいて用いる撮像画像であり、第１の参照画像とは、第１のビジュアルサーボにおいて用いる参照画像である。ここでは、第１の参照画像は、あらかじめ撮像部により撮像された画像であるものとして説明するが、第１の参照画像は、ＣＧ画像であってもよい。
【００８２】
そして、第１のビジュアルサーボが収束したか否かを判定する（Ｓ１０２）。第１のビジュアルサーボが期待通りに収束した場合、第１の撮像画像には、作業対象物ＯＢが図８（Ｂ）と同じような位置及び角度で映るようになる。第１のビジュアルサーボが収束していないと判定した場合には、第１のビジュアルサーボを継続する。
【００８３】
一方で、第１のビジュアルサーボが収束したと判定した場合には、図７（Ｃ）に示すように、第２のビジュアルサーボを行う（Ｓ１０３）。
【００８４】
ここで、第２のビジュアルサーボは、図８（Ｃ）に示すような第２の撮像画像ＰＩＭ２と、図８（Ｄ）に示すような第２の参照画像ＲＩＭ２とを比較することにより行われる。なお、第２の撮像画像は、第２のビジュアルサーボにおいて用いる撮像画像であり、第２の参照画像は、第２のビジュアルサーボにおいて用いる参照画像である。第２の参照画像も、第１の参照画像と同様にＣＧ画像であってもよい。
【００８５】
そして、第２のビジュアルサーボでは、ワークＷＫ、アーム及びエンドエフェクターのうち少なくとも一つと、作業対象物ＯＢとが、第２の参照画像ＲＩＭ２と同じ位置及び角度で映るように、第２のアームＡＭ２を移動させ、ハンドＨＤが把持するワークＷＫを作業対象物ＯＢの隣に置く。
【００８６】
このように、第１のビジュアルサーボを行うことによって、第２のビジュアルサーボで用いる参照画像と撮像画像において、撮像時の環境、すなわち作業対象と撮像部との相対的な位置及び方向を一致させることが可能になる。
【００８７】
その結果、参照画像と撮像画像の撮像時の環境が異なる場合に、ビジュアルサーボの制御精度を向上させることが可能になる。すなわち、ロボットを実際に動作させる時の作業対象と撮像部との相対的な位置及び方向が、参照画像の撮影時における相対的な位置及び方向と異なる場合に、ビジュアルサーボの制御精度を向上させることが可能になる。
【００８８】
また、撮像画像と参照画像の撮像時の環境が変わる例としては、作業対象やワークの位置は変わらないが、撮像部の撮像位置又は撮像方向が異なる場合と、撮像部の撮像位置及び撮像方向は変わらないが、作業対象やワークの位置が異なる場合の二つがある。前述したように、このような場合には、ビジュアルサーボの制御精度が低下してしまう。
【００８９】
そこで、作業対象やワークの位置は変わらないが、撮像部の撮像位置又は撮像方向が異なる場合には、第１のビジュアルサーボによって、撮像部の撮像位置又は撮像方向を参照画像の撮像時と合わせれば良い。
【００９０】
すなわち、記憶部１３０は、所与の撮像位置及び所与の撮像方向で作業対象を見た時の画像を、第１の参照画像として記憶し、所与の撮像位置及び所与の撮像方向で、アーム、エンドエフェクター３５０及びワークのうちの少なくとも１つと、作業対象とを見た時の画像を、第２の参照画像として記憶してもよい。そして、処理部１１０は、撮像部３４０により作業対象を撮像することで得られる第１の撮像画像と、第１の参照画像とに基づいて、撮像部３４０を所与の撮像位置に移動させ、撮像部３４０を所与の撮像方向へ向けさせる第１のビジュアルサーボを行い、所与の撮像位置及び所与の撮像方向で、アーム、エンドエフェクター３５０及びワークのうちの少なくとも１つと、作業対象とを、撮像部３４０により撮像することで得られる第２の撮像画像と、第２の参照画像とに基づいて、第２のビジュアルサーボを行ってもよい。
【００９１】
これにより、撮像部３４０の撮像位置及び撮像方向を、第２の参照画像の撮像時の撮像位置及び撮像方向と合わせて、第２のビジュアルサーボを行うこと等が可能になる。
【００９２】
また、ロボット３０は、第１のアーム３２０と第２のアーム３３０とを有してもよい。そして、撮像部３４０は、第１のアーム３２０に設けられてもよい。さらに、第２の参照画像は、第２のアーム３３０と、第２のアーム３３０に設けられたエンドエフェクター３５０と、第２のアーム３３０のエンドエフェクター３５０が把持するワークのうち、少なくとも１つが映る画像であってもよい。
【００９３】
これにより、第１のビジュアルサーボで第１のアーム３２０に設けられた撮像部３４０を移動させること等が可能になり、第２のビジュアルサーボで第２のアーム３３０に設けられたエンドエフェクター３５０を移動させること等が可能になる。
【００９４】
また、処理部１１０は、第１のビジュアルサーボが収束したか否かの判定処理を行い、第１のビジュアルサーボが収束したと判定した場合に、第２のビジュアルサーボを行ってもよい。
【００９５】
これにより、第２の参照画像と第２の撮像画像の撮像時の環境が一致したと判定できた場合に、第２のビジュアルサーボを行うこと等が可能になる。
【００９６】
ここで、作業対象は、ロボット３０の作業対象物、作業場所及びマーカーのうちの少なくとも一つであってもよい。
【００９７】
また、作業対象物とは、例えばワーク、パレット、ロボット３０のアーム及びエンドエフェクター３５０等を指す。一方で、作業場所とは、机や穴や壁などを指す。
【００９８】
図８（Ａ）〜図８（Ｄ）の例では、作業対象はワークＯＢであったが、その他の具体例を図９（Ａ）〜図９（Ｄ）、図１０（Ａ）〜図１０（Ｄ）、図１１（Ａ）〜図１１（Ｄ）に示す。なお、図９（Ａ）、図１０（Ａ）及び図１１（Ａ）は第１の撮像画像ＰＩＭ１を、図９（Ｂ）、図１０（Ｂ）及び図１１（Ｂ）は第１の参照画像ＲＩＭ１を、図９（Ｃ）、図１０（Ｃ）及び図１１（Ｃ）は第２の撮像画像ＰＩＭ２を、図９（Ｄ）、図１０（Ｄ）及び図１１（Ｄ）は第２の参照画像ＲＩＭ２を、それぞれ表す。
【００９９】
まず、図９（Ａ）〜図９（Ｄ）には、作業対象がネジ穴ＨＬであり、エンドエフェクターＥＦが吸着しているネジＳＣをネジ穴ＨＬに差し込む作業を行う例を示す。この場合には、始めに撮像部３４０とネジ穴ＨＬとの相対的な位置及び方向を合わせる必要がある。従って、図９（Ａ）の第１の撮像画像ＰＩＭ１が、図９（Ｂ）の第１の参照画像ＲＩＭ１と同じ画像になるように、第１のビジュアルサーボを行い、撮像部３４０を移動させる。そして、撮像部３４０を移動させた後に、ネジ穴ＨＬとネジＳＣの現在の位置関係を表す図９（Ｃ）の第２の撮像画像ＰＩＭ２を撮像し、あらかじめ撮像しておいた図９（Ｄ）の第２の参照画像ＲＩＭ２と比較して、第２のビジュアルサーボを行い、第２の参照画像ＲＩＭ２に示すような位置に、ネジＳＣを移動させる。
【０１００】
次に、図１０（Ａ）〜図１０（Ｄ）には、作業対象がパレットＰＴであり、ワークＷＫをパレットＰＴに入れる作業を行う例を示す。この場合も、図１０（Ａ）の第１の撮像画像ＰＩＭ１と、図１０（Ｂ）の第１の参照画像ＲＩＭ１とに基づいて、撮像部３４０とパレットＰＴとの相対的な位置及び方向を合わせるための第１のビジュアルサーボを行う。そしてその後に、図１０（Ｃ）の第２の撮像画像ＰＩＭ２と図１０（Ｄ）の第２の参照画像ＲＩＭ２とに基づいて、ワークＷＫをパレットＰＴに置くための第２のビジュアルサーボを行う。
【０１０１】
さらに、図１１（Ａ）〜図１１（Ｄ）には、作業対象がコネクターの一端ＣＮ１であり、コネクターの他端ＣＮ２をコネクターの一端ＣＮ１に組み付ける作業を行う例を示す。この場合も、図１１（Ａ）の第１の撮像画像ＰＩＭ１と、図１１（Ｂ）の第１の参照画像ＲＩＭ１とに基づいて、撮像部３４０とコネクターの一端ＣＮ１との相対的な位置及び方向を合わせるための第１のビジュアルサーボを行う。そしてその後に、図１１（Ｃ）の第２の撮像画像ＰＩＭ２と図１１（Ｄ）の第２の参照画像ＲＩＭ２とに基づいて、コネクターの一端ＣＮ１にコネクターの他端ＣＮ２を組み付けるための第２のビジュアルサーボを行う。
【０１０２】
これにより、作業対象がワーク以外の場合にも、第１のビジュアルサーボと第２のビジュアルサーボを行う手法を適用すること等が可能になる。
【０１０３】
また、図６のフローチャート等を用いてこれまで説明してきた処理では、第１のビジュアルサーボと、第２のビジュアルサーボをそれぞれ一回ずつ行っているが、本実施形態はこれに限定されず、第１のビジュアルサーボと第２のビジュアルサーボをそれぞれ複数回行っても良い。
【０１０４】
例えば、第２のビジュアルサーボが正しく収束したと判定した際に、他の位置から見た場合にも第２のビジュアルサーボが正しく収束しているか否かを判定する必要がある場合もある。この場合には、第１のビジュアルサーボをあらかじめ複数回を行っておき、第１のビジュアルサーボ後の撮像部の各位置における第１のアームのエンコーダー値を取得しておく。そして、第２のビジュアルサーボの収束判定時に、記憶しておいたエンコーダー値に基づいて、撮像部の撮像位置及び撮像方向を変更してもよい。
【０１０５】
また、第２のビジュアルサーボが正しく収束しないと判定した場合には、第２の参照画像を、例えばアームの目標位置が異なる他の第２の参照画像や、目標位置は変わらないが、他の撮像位置及び撮像方向で撮像された第２の参照画像に変更して、再度第２のビジュアルサーボを行っても良い。
【０１０６】
ここで、このような処理を行う場合の処理の流れを、図１２のフローチャートを用いて詳細に説明する。
【０１０７】
まず、複数の第１の参照画像（第１の参照画像群）を取得する（Ｓ２０１）。ここで、取得する第１の参照画像群のうちの各第１の参照画像は、互いに異なる撮像位置及び撮像方向で作業対象を見た時の画像である。例えば、図１３に示すように、撮像部ＣＭ１から作業対象物ＯＢを撮像して得られる第１の参照画像ＲＩＭ１１と、撮像部ＣＭ２から作業対象物ＯＢを撮像して得られる第１の参照画像ＲＩＭ１２と、撮像部ＣＭ３から作業対象物ＯＢを撮像して得られる第１の参照画像ＲＩＭ１３と、を取得する。なお、撮像部ＣＭ１〜ＣＭ３は、図示及び説明の都合上、別々の撮像部であるように記載するが、撮像部ＣＭ１〜ＣＭ３は別々の撮像部であってもよいし、撮像位置及び撮像方向が変更された同一の撮像部であってもよい。また、前述したように、第１の参照画像ＲＩＭ１１〜ＲＩＭ１３は、撮像部ＣＭ１〜ＣＭ３のそれぞれの位置から作業対象物ＯＢを見た時のＣＧ画像であってもよい。
【０１０８】
次に、第１の参照画像群の中から処理対象の第１の参照画像を選択する（Ｓ２０２）。図１３の例では、例えば処理対象の第１の参照画像として画像ＲＩＭ１１を選択する。
【０１０９】
そして、ステップＳ２０２で選択した第１の参照画像と、撮像部から取得される第１の撮像画像とに基づいて、第１のビジュアルサーボを行って、撮像部を移動する（Ｓ２０３）。図１３の例では、実際の撮像部ＴＣＭにより撮像される第１の撮像画像ＰＩＭ１が、選択された第１の参照画像ＲＩＭ１１と同じ画像になるように、撮像部ＴＣＭを矢印ＹＪのように移動させる。
【０１１０】
そして、第１のビジュアルサーボが収束したか否か判定する（Ｓ２０４）。第１のビジュアルサーボが収束していないと判定した場合には、第１のビジュアルサーボを継続する。
【０１１１】
一方で、第１のビジュアルサーボが収束したと判定した場合には、現在の第１のアームのエンコーダー値を記憶する（Ｓ２０５）。前述した図１３の例では、撮像部ＣＭ１の撮像位置及び撮像方向を表すエンコーダー値を記憶する。
【０１１２】
そして、第１の参照画像群のうちの全ての第１の参照画像について、ステップＳ２０３〜ステップＳ２０５の処理を行ったか否かを判定する（Ｓ２０６）。第１の参照画像群のうちの全ての第１の参照画像について、ステップＳ２０３〜ステップＳ２０５の処理を行っていないと判定する場合には、ステップＳ２０２の処理に戻る。図１３の例では、撮像部ＣＭ２と撮像部ＣＭ３の撮像位置及び撮像方向を表す第１のアームのエンコーダー値を取得するまで、これを繰り返す。
【０１１３】
一方、第１の参照画像群のうちの全ての第１の参照画像について、ステップＳ２０３〜ステップＳ２０５の処理を行ったと判定した場合には、記憶した第１のアームのエンコーダー値のうちのいずれかを選択し、選択したエンコーダー値に基づいて第１のアームを動作させ、撮像部を移動させる（Ｓ２０７）。ここで、図１３の例では、撮像部ＴＣＭを撮像部ＣＭ２の位置に移動させるものとする。
【０１１４】
次に、複数の第２の参照画像（第２の参照画像群）を取得する（Ｓ２０８）。例えば、図１４に示すように、撮像部ＣＭ１から作業対象物ＯＢとワークＷＫを撮像して得られる第２の参照画像ＲＩＭ２１と、撮像部ＣＭ２から作業対象物ＯＢとワークＷＫを撮像して得られる第２の参照画像ＲＩＭ２２と、撮像部ＣＭ３から作業対象物ＯＢとワークＷＫを撮像して得られる第２の参照画像ＲＩＭ２３と、を取得する。なお、図１３の撮像部ＣＭ１〜ＣＭ３の撮像位置及び撮像方向と、図１４の撮像部ＣＭ１〜ＣＭ３の撮像位置及び撮像方向は、それぞれ同じであるものとする。また、前述したように、第２の参照画像ＲＩＭ２１〜ＲＩＭ２３も、撮像部ＣＭ１〜ＣＭ３の位置から作業対象物ＯＢとワークＷＫを見た時のＣＧ画像であってもよい。
【０１１５】
次に、第２のビジュアルサーボにおいて使用する第２の参照画像を取得する（Ｓ２０９）。ここで、取得する第２の参照画像は、ステップＳ２０７で移動した撮像部の撮像位置及び撮像方向で撮像された画像である。従って、前述した例では撮像部ＣＭ２から撮像された第２の参照画像ＲＩＭ２２を取得する。
【０１１６】
そして、取得した第２の参照画像と、第２の撮像画像とに基づいて、第２のビジュアルサーボを行い、第２のアームを移動し（Ｓ２１０）、第２のビジュアルサーボが収束したか否かを判定する（Ｓ２１１）。前述した例では、第２のビジュアルサーボが期待通りに収束した場合には、第２の撮像画像ＰＩＭ２に映る作業対象物ＯＢとワークＷＫは、第２の参照画像ＲＩＭ２２に示すような状態になる。
【０１１７】
ここで、第２のビジュアルサーボが収束していないと判定した場合には、このまま第２のビジュアルサーボを継続しても第２のアームを目標位置に移動させることができないと判断し、他の第２の参照画像を用いて第２のビジュアルサーボを行うことを試みる。そのため、記憶した別の位置へ撮像部を移動させ（Ｓ２１２）、ステップＳ２０９の処理へ戻る。
【０１１８】
例えば、第２の参照画像ＲＩＭ２１を用いて、第２のビジュアルサーボを行うために、撮像部ＴＣＭを撮像部ＣＭ１の位置へ移動させる。この場合には、ステップＳ２０９では、ステップＳ２１２で移動させた撮像部の撮像位置及び撮像方向で撮像された第２の参照画像ＲＩＭ２１を取得する。なお、ここでは同一の目標位置を表す他の第２の参照画像を用いる例について説明するが、前述したように、異なる目標位置を表す他の第２の参照画像を用いてもよい。
【０１１９】
一方で、例えば、撮像部ＣＭ１の位置から第２のビジュアルサーボが収束していると判定されても、撮像部ＣＭ３の位置から見ると、作業対象物ＯＢとワークＷＫの位置がずれている場合がある。そのため、様々な位置及び方向から、第２のビジュアルサーボが期待通りに収束しているかを判定できることが好ましい。
【０１２０】
そこで、第２のビジュアルサーボが収束したと判定した場合には、記憶した別の位置へ撮像部を移動させる（Ｓ２１３）。そして、別の位置からでも、第２のビジュアルサーボが収束しているか否かを判定し（Ｓ２１４）、第２のビジュアルサーボが収束していないと判定した場合には、ステップＳ２１３の処理へ戻る。
【０１２１】
一方で、第２のビジュアルサーボが収束していると判定した場合には、処理を終了する。
【０１２２】
以上のように、記憶部１３０は、各第１の参照画像の撮像位置及び撮像方向が互いに異なる第１の参照画像群と、各第２の参照画像が各第１の参照画像に対応する第２の参照画像群とを記憶してもよい。
【０１２３】
これにより、第１のビジュアルサーボと第２のビジュアルサーボを複数回行うこと等が可能になる。
【０１２４】
また、記憶部１３０は、第１の参照画像群の各第１の参照画像に対応する撮像位置及び撮像方向を表す位置方向特定情報を記憶してもよい。
【０１２５】
これにより、あらかじめ第１のビジュアルサーボを複数回行っておき、以後、必要に応じて、各第１の参照画像の撮像位置及び撮像方向に撮像部３４０を移動させること等が可能になる。
【０１２６】
また、記憶部１３０は、各第２の参照画像の撮像位置及び撮像方向が互いに異なる第２の参照画像群を記憶してもよい。そして、処理部１１０は、第２のビジュアルサーボを行った後に、第２の参照画像群のうち、前回の第２のビジュアルサーボで用いた第２の参照画像とは異なる第２の参照画像を用いて、第２のビジュアルサーボを行ってもよい。
【０１２７】
これにより、第２の参照画像を切り替えて、再度第２のビジュアルサーボを行うこと等が可能になる。
【０１２８】
また、処理部１１０は、第２のビジュアルサーボを行った時に、第２のビジュアルサーボが収束したか否かの判定処理を行い、第２のビジュアルサーボが収束していないと判定した場合に、前回の第２のビジュアルサーボで用いた第２の参照画像とは異なる第２の参照画像を用いて、第２のビジュアルサーボを行ってもよい。
【０１２９】
これにより、第２のビジュアルサーボが期待通りに収束しなかった場合に、他の第２の参照画像を用いて、第２のビジュアルサーボを行うこと等が可能になる。
【０１３０】
また、処理部１１０は、第２のビジュアルサーボを行った時に、第２のビジュアルサーボが収束したか否かの判定処理を行い、第２のビジュアルサーボが収束したと判定した場合に、前回の第２のビジュアルサーボで用いた第２の参照画像とは異なる第２の参照画像を用いて、第２のビジュアルサーボを行ってもよい。
【０１３１】
これにより、第２のビジュアルサーボが期待通りに収束した場合に、他の位置から見ても第２のビジュアルサーボが期待通りに収束しているかの確認を行うこと等が可能になる。
【０１３２】
なお、本実施形態のロボット制御システム１０及びロボット３０等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御システム１０及びロボット３０等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサーが実行する。ここで、情報記憶媒体（コンピューターにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリー（カード型メモリー、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサーは、情報記憶媒体に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピューターに実行させるためのプログラム）が記憶される。
【０１３３】
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ロボット制御システム、ロボット及びプログラム等の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【０１３４】
１０  ロボット制御システム、３０  ロボット（ロボット本体）、１１０  処理部、
１２０  ロボット制御部、１３０  記憶部、１４０  Ｉ／Ｆ部（入力部）、
３１０  制御部、３２０  第１のアーム、３３０  第２のアーム、３４０  撮像部、
３５０  エンドエフェクター
【図１】
2014172119.tif 000003
【図２】
2014172119.tif 000004
【図３】
2014172119.tif 000005
【図４】
2014172119.tif 000006
【図５】
2014172119.tif 000007
【図６】
2014172119.tif 000008
【図７】
2014172119.tif 000009
【図８】
2014172119.tif 000010
【図９】
2014172119.tif 000011
【図１１】
2014172119.tif 000012
【図１２】
2014172119.tif 000013
【図１３】
2014172119.tif 000014
【図１４】
2014172119.tif 000015
【図１０】
2014172119.tif 000016