(57)【要約】【課題】画像ヤコビアン推定のため等の本来の作業と無関係な事前作業を行うことなく、ビジュアルサーボを行うことができる。【解決手段】第１撮影部２０及び第２撮影部３０は、注目点Ｘを所定の方向に移動させる前後の第１の時点及び第２の時点において、注目点Ｘ及び注目点Ｘを一致させる目標点Ｙを第１の方向及び第２の方向から撮影する。第１撮影部２０及び第２撮影部３０のそれぞれで撮影された画像について注目点Ｘと目標点Ｙとの画像上の距離を算出する。第１撮影部２０及び第２撮影部３０で第２の時点で撮影された画像上における注目点Ｘと目標点Ｙとの距離が、第１の時点で撮影された画像上における注目点Ｘと目標点Ｙとの距離より小さい場合には、ロボット１０を所定の方向に移動させる。そうでない場合には、ロボット１０を所定の方向と異なる方向に移動させる。【選択図】図２
2014018881.tif 000002
【特許請求の範囲】
【請求項１】
可動部を有するロボットと、
前記可動部上の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点の画像である第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点の画像である第２の画像を撮影する第１の撮影部と、
前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点の画像である第３の画像と、前記第２の時点の画像である第４の画像を撮影する第２の撮影部と、
前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出する距離算出部と、
前記可動部上の注目点を前記目標点に一致させるように前記ロボットを制御する制御部であって、前記第２の距離が前記第１の距離より小さくない場合又は前記第４の距離が前記第３の距離より小さくない場合には、前記可動部を前記所定の方向と異なる方向に移動させる制御部と、
を備えることを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムにおいて、
前記制御部は、前記第２の距離が前記第１の距離より小さくない場合又は前記第４の距離が前記第３の距離より小さくない場合以外の場合には、前記所定の方向を含む平面と同一平面内で前記所定の方向と異なる方向に前記可動部を移動させる
ことを特徴とするロボットシステム。
【請求項３】
請求項１又は２に記載のロボットシステムにおいて、
前記距離算出部は、前記第２の画像及び前記第４の画像に対して、前記注目点と前記目標点との画像上の横方向の距離を測定し、
前記制御部は、前記第２の画像上及び前記第４の画像における前記注目点と前記目標点との画像上の横方向の距離が所定値より小さい場合は、前記可動部を水平面と直交する方向に移動させ、前記第２の画像上及び前記第４の画像における前記注目点と前記目標点との画像上の横方向の距離が所定値より小さい場合以外の場合は、前記可動部を前記水平面に沿って移動させる
ことを特徴とするロボットシステム。
【請求項４】
請求項１から３のいずれか一項に記載のロボットシステムにおいて、
前記制御部は、前記距離算出部が前記第２の画像又は前記第４の画像から前記注目点と前記目標点との画像上の距離を算出できなかった場合には、前記距離算出部が前記第２の画像及び前記第４の画像から前記注目点と前記目標点との画像上の距離が算出できた場合より、前記可動部の移動量を小さくする
ことを特徴とするロボットシステム。
【請求項５】
請求項１から４のいずれか一項に記載のロボットシステムにおいて、
前記制御部は、前記第２の画像及び前記第４の画像における前記注目点と前記目標点との画像上の距離に応じて、前記可動部の移動量を決定する
ことを特徴とするロボットシステム。
【請求項６】
ロボットの可動部の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点で撮影された第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点で撮影された第２の画像を取得する第１の画像取得部と、
前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点で撮影された第３の画像と、前記第２の時点で撮影された第４の画像を撮影する第２の画像取得部と、
前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出する距離算出部と、
前記可動部上の注目点を前記目標点に一致させるように前記ロボットを制御する制御部であって、前記第２の距離が前記第１の距離より小さくない場合又は前記第４の距離が前記第３の距離より小さくない場合には、前記可動部を前記所定の方向と異なる方向に移動させる制御部と、
を備えることを特徴とするロボット制御装置。
【請求項７】
可動部と、
前記可動部の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点で撮影された第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点で撮影された第２の画像を取得する第１の画像取得部と、
前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点で撮影された第３の画像と、前記第２の時点で撮影された第４の画像を撮影する第２の画像取得部と、
前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出する距離算出部と、
前記可動部上の注目点を前記目標点に一致させるように前記ロボットを制御する制御部であって、前記第２の距離が前記第１の距離より小さくない場合又は前記第４の距離が前記第３の距離より小さくない場合には、前記可動部を前記所定の方向と異なる方向に移動させる制御部と、
を備えることを特徴とするロボット。
【請求項８】
ロボットの可動部の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点で撮影された第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点で撮影された第２の画像を取得するステップと、
前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点で撮影された第３の画像と、前記第２の時点で撮影された第４の画像を撮影するステップと、
前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出するステップと、
前記第２の距離が前記第１の距離より小さくかつ前記第４の距離が前記第３の距離より小さい場合には、前記可動部を前記所定の方向に移動させ、前記第２の距離が前記第１の距離より小さくかつ前記第４の距離が前記第３の距離より小さい場合以外の場合には、前記可動部を前記所定の方向と異なる方向に移動させるステップと、
を含むことを特徴とするロボット制御方法。
【請求項９】
ロボットの可動部の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点で撮影された第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点で撮影された第２の画像を取得するステップと、
前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点で撮影された第３の画像と、前記第２の時点で撮影された第４の画像を撮影するステップと、
前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出するステップと、
前記第２の距離が前記第１の距離より小さくかつ前記第４の距離が前記第３の距離より小さい場合には、前記可動部を前記所定の方向に移動させ、前記第２の距離が前記第１の距離より小さくかつ前記第４の距離が前記第３の距離より小さい場合以外の場合には、前記可動部を前記所定の方向と異なる方向に移動させるステップと、
を演算装置に実行させることを特徴とするロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム、ロボット制御装置、ロボット、ロボット制御方法及びロボット制御プログラムに関する。
【背景技術】
【０００２】
特許文献１には、固定カメラで撮影したエンドエフェクターの動きから画像ヤコビアンを求め、これを用いてビジュアルサーボを行うエンドエフェクター制御方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２９０３８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の発明のように画像ヤコビアンを用いてビジュアルサーボを行うことは、位置決めしたい点（収束点）から所定の距離だけ離れたドーナツ状の領域内にエンドエフェクターがある場合には有効である。しかしながら、エンドエフェクターが収束点に近すぎる場合（ドーナツ状の領域の内側に位置する場合）には、画像ヤコビアン推定のためにエンドエフェクターを移動させることができない、又は十分な回数だけ移動させることができないため、画像ヤコビアンを推定することができないという問題がある。
【０００５】
さらに、エンドエフェクターが収束点から遠すぎる場合（ドーナツ状の領域の外側に位置する場合）には、推定した画像ヤコビアンを用いてビジュアルサーボを行ったとしても、エンドエフェクターを収束点に一致させることはできないという問題がある。
【０００６】
そこで、本発明は、画像ヤコビアン推定のため等の、本来の作業と無関係な事前作業を行うことなく、ビジュアルサーボを行うことができるロボットシステム、ロボット制御装置、ロボット、ロボット制御方法及びロボット制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための第一の態様は、可動部を有するロボットと、前記可動部上の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点の画像である第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点の画像である第２の画像を撮影する第１の撮影部と、前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点の画像である第３の画像と、前記第２の時点の画像である第４の画像を撮影する第２の撮影部と、前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出する距離算出部と、前記可動部上の注目点を前記目標点に一致させるように前記ロボットを制御する制御部であって、前記第２の距離が前記第１の距離より小さくない場合又は前記第４の距離が前記第３の距離より小さくない場合には、前記可動部を前記所定の方向と異なる方向に移動させる制御部と、を備えることを特徴とする。
【０００８】
これにより、本来の作業と無関係な事前作業を行うことなく、可動部上の注目点を目標点に一致させるように可動部を制御することができる。
【０００９】
ここで、前記制御部は、前記第２の距離が前記第１の距離より小さくない場合又は前記第４の距離が前記第３の距離より小さくない場合以外の場合には、前記所定の方向を含む平面と同一平面内で前記所定の方向と異なる方向に前記可動部を移動させるようにしてもよい。これにより、所定の方向を含む平面と同一平面上の方向について、注目点を目標点に一致させることができる。
【００１０】
ここで、前記距離算出部は、前記第２の画像及び前記第４の画像に対して、前記注目点と前記目標点との画像上の横方向の距離を測定し、前記制御部は、前記第２の画像上及び前記第４の画像における前記注目点と前記目標点との画像上の横方向の距離が所定値より小さい場合は、前記可動部を水平面と直交する方向に移動させ、前記第２の画像上及び前記第４の画像における前記注目点と前記目標点との画像上の横方向の距離が所定値より小さい場合以外の場合は、前記可動部を前記水平面に沿って移動させるようにしてもよい。これにより、まず水平方向について注目点を目標点に一致させ、その後垂直方向について注目点を目標点に一致させることができる。
【００１１】
ここで、前記制御部は、前記距離算出部が前記第２の画像又は前記第４の画像から前記注目点と前記目標点との画像上の距離を算出できなかった場合には、前記距離算出部が前記第２の画像及び前記第４の画像から前記注目点と前記目標点との画像上の距離が算出できた場合より、前記可動部の移動量を小さくするようにしてもよい。これにより、なるべく少ない移動量で、注目点と目標点との画像上の距離が算出できる状況にすることができる。
【００１２】
ここで、前記制御部は、前記第２の画像及び前記第４の画像における前記注目点と前記目標点との画像上の距離に応じて、前記可動部の移動量を決定するようにしてもよい。これにより、注目点が目標点を通り過ぎるように可動部が制御されることを防止することができる。
【００１３】
第二の態様は、ロボットの可動部の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点で撮影された第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点で撮影された第２の画像を取得する第１の画像取得部と、前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点で撮影された第３の画像と、前記第２の時点で撮影された第４の画像を撮影する第２の画像取得部と、前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出する距離算出部と、前記可動部上の注目点を前記目標点に一致させるように前記ロボットを制御する制御部であって、前記第２の距離が前記第１の距離より小さくない場合又は前記第４の距離が前記第３の距離より小さくない場合には、前記可動部を前記所定の方向と異なる方向に移動させる制御部と、を備えることを特徴とする。
【００１４】
第三の態様は、可動部と、前記可動部の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点で撮影された第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点で撮影された第２の画像を取得する第１の画像取得部と、前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点で撮影された第３の画像と、前記第２の時点で撮影された第４の画像を撮影する第２の画像取得部と、前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出する距離算出部と、前記可動部上の注目点を前記目標点に一致させるように前記ロボットを制御する制御部であって、前記第２の距離が前記第１の距離より小さくない場合又は前記第４の距離が前記第３の距離より小さくない場合には、前記可動部を前記所定の方向と異なる方向に移動させる制御部と、を備えることを特徴とする。
【００１５】
第四の態様は、ロボットの可動部の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点で撮影された第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点で撮影された第２の画像を取得するステップと、前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点で撮影された第３の画像と、前記第２の時点で撮影された第４の画像を撮影するステップと、前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出するステップと、前記第２の距離が前記第１の距離より小さくかつ前記第４の距離が前記第３の距離より小さい場合には、前記可動部を前記所定の方向に移動させ、前記第２の距離が前記第１の距離より小さくかつ前記第４の距離が前記第３の距離より小さい場合以外の場合には、前記可動部を前記所定の方向と異なる方向に移動させるステップと、を含むことを特徴とする。
【００１６】
第五の態様は、ロボットの可動部の注目点及び前記注目点を一致させる目標点を第１の方向から撮影した画像であって、前記可動部を所定の方向に移動させる前の第１の時点で撮影された第１の画像と、前記可動部を前記所定の方向に移動させた後の第２の時点で撮影された第２の画像を取得するステップと、前記注目点及び前記目標点を前記第１の方向と異なる第２の方向から撮影した画像であって、前記第１の時点で撮影された第３の画像と、前記第２の時点で撮影された第４の画像を撮影するステップと、前記第１の画像、前記第２の画像、前記第３の画像、及び前記第４の画像のそれぞれについて、前記注目点と前記目標点との画像上の距離である第１の距離、第２の距離、第３の距離及び第４の距離を算出するステップと、前記第２の距離が前記第１の距離より小さくかつ前記第４の距離が前記第３の距離より小さい場合には、前記可動部を前記所定の方向に移動させ、前記第２の距離が前記第１の距離より小さくかつ前記第４の距離が前記第３の距離より小さい場合以外の場合には、前記可動部を前記所定の方向と異なる方向に移動させるステップと、を演算装置に実行させることを特徴とする。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態におけるロボットシステム１の構成の一例を示すシステム構成図である。
【図２】ロボットシステム１の機能構成の一例を示すブロック図である。
【図３】制御部４０のハードウェア構成を示す図である。
【図４】ロボットシステム１の全体の処理の流れを示すフローチャートである。
【図５】実行準備処理の流れを示す図である。
【図６】（１）は第１撮影部で撮影される画像の一例を示す図であり、（２）は第２撮影部で撮影される画像の一例を示す図である。
【図７】注目点及び目標点と、第１撮影部及び第２撮影部との位置関係の一例を示す図である。
【図８】ビジュアルサーボステップの処理の流れを示すフローチャートである。
【図９】ビジュアルサーボステップの実行準備処理の流れを示すフローチャートである。
【図１０】（Ａ）は注目点と目標点との横方向の距離が指定値より小さい場合の一例であり、（Ｂ）は注目点と目標点との横方向の距離が指定値より大きい場合の一例を示す図である。また、（１）は第１撮影部で撮影される画像の一例を示す図であり、（２）は第２撮影部で撮影される画像の一例を示す図である。
【図１１】水平方向の移動方向、移動量を決定する処理の流れを示すフローチャートである。
【図１２】可動部の移動方向の一例を説明する図である。
【発明を実施するための形態】
【００１８】
本発明の一実施形態について、図面を参照しながら説明する。
【００１９】
図１は、本発明の一実施形態におけるロボットシステム１の構成の一例を示すシステム構成図である。本実施形態におけるロボットシステム１は、ロボット１０と、第１撮影部２０と、第２撮影部３０と、制御部４０とを備える。
【００２０】
ロボット１０は、アーム部１１と、アーム部１１の先端に設けられた加工部１４とを備えたアーム型のロボットである。なお、図１においては、２本のアーム部１１を有するいわゆる双腕ロボットを図示したが、１本のロボットアームを有していてもよい。以下、アーム部１１及び加工部１４を可動部１５（図２等参照）という。
アーム部１１は、複数のジョイント（関節）１２と、複数のリンク１３とを含む。
各ジョイント１２は、リンク１３同士や、ロボットの台座（胴体）とリンク１３等を回動自在に連結する。
【００２１】
加工部１４は、例えば、ドリル等の工具を有する。加工部１４は、対象物に対して穴あけ動作等の加工を行う。なお、本実施形態では、加工部１４の先端を、アームの「作業点」と呼ぶ。以下では、加工部１４の先端が「作業点」であるものとして説明する。以下、加工部１４の先端を注目点Ｘという。
【００２２】
また、ジョイント１２及び加工部１４には、それらを動作させるためのアクチュエーター（図示せず）が設けられる。アクチュエーターは、例えば、サーボモーターやエンコーダーなどを備える。エンコーダーが出力するエンコーダー値は、制御部４０によるロボット１０のフィードバック制御に使用される。
【００２３】
なお、ロボット１０の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。一般的な把持ロボットが備える構成を排除するものではない。例えば、図１では６軸のアームが示されているが、軸数（ジョイント数）をさらに増加させてもよいし、減らしてもよい。リンクの数を増減させてもよい。また、アーム、ハンド、リンク、ジョイント等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。
【００２４】
第１撮影部２０及び第２撮影部３０は、ロボット１０の外部環境（例えば、図示する作業台付近）を撮影して、画像データを生成するユニットである。第１撮影部２０及び第２撮影部３０は、例えば、カメラを含み、作業台、天井、壁などに設けられる。図１では、第１撮影部２０及び第２撮影部３０は、作業台に設けられている。
【００２５】
第１撮影部２０は、加工部１４の注目点Ｘ及び加工部１４が加工を行う対象物の加工位置（以下、目標点Ｙという）を所定の方向、図１においては右斜め前方向から撮影する。第２撮影部３０は、注目点Ｘ及び目標点Ｙを、第１撮影部２０の撮影方向とは異なる方向、図１においては左斜め前方向から撮影する。なお、第１撮影部２０の撮影方向、第２撮影部３０の撮影方向は、これに限られない。第１撮影部２０及び第２撮影部３０により、注目点Ｘ及び目標点Ｙが異なる２つの方向から撮影されていればよい。
【００２６】
制御部４０は、ロボット１０の全体を制御する処理を行う。制御部４０は、ロボット１０の本体とは離れた場所に（遠隔操作可能に）設置してもよいし、ロボット１０に内蔵してもよい。
【００２７】
次に、ロボットシステム１の機能構成例について説明する。図２は、ロボットシステム１の機能ブロック図である。
ロボット１０は、主として、中央制御部１０１と、動作制御部１０２とを備える。
中央制御部１０１は、他の各部（１０２）を統括的に制御する。
【００２８】
動作制御部１０２は、出力部４０６から出力された情報、アクチュエーターのエンコーダー値、及びセンサーのセンサー値等に基づいて可動部１５を制御する。例えば、動作制御部１０２は、出力部４０６から出力された移動方向及び移動量で可動部１５を移動させるように、アクチュエーターを駆動させる。また、動作制御部１０２は、アクチュエーターのエンコーダー値等から可動部１５の移動方向及び移動量を求め、アクチュエーターの駆動を制御し、かつ可動部１５の移動方向及び移動量を制御情報取得部４０４に出力する。
【００２９】
制御部４０は、中央制御部４０１と、記憶部４０２と、撮影制御部４０３と、制御情報取得部４０４と、動作決定部４０５と、出力部４０６とを備える。
中央制御部４０１は、他の各部（４０２〜４０６）を統括的に制御する。
記憶部４０２は、各種データやプログラムを記憶する。
【００３０】
撮影制御部４０３は、第１撮影部２０及び第２撮影部３０を制御する。例えば、撮影制御部４０３は、第１撮影部２０及び第２撮影部３０に対して、画像を撮影するように指示を出力する。そして、撮影制御部４０３は、第１撮影部２０及び第２撮影部３０で撮影された画像データを取得する。
制御情報取得部４０４は、動作制御部１０２の制御結果を取得する。
【００３１】
動作決定部４０５は、撮影制御部４０３で撮影された画像及び制御情報取得部４０４が取得した情報に基づいて可動部１５の動作を決定する。動作決定部４０５の処理については、後に詳述する。
出力部４０６は、動作決定部４０５が決定した動作内容を動作制御部１０２に出力する。
【００３２】
なお、ロボット１０及び制御部４０の各機能構成は、ロボット１０及び制御部４０の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。ロボット１０及び制御部４０の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００３３】
図３は、制御部４０の概略構成の一例を示すブロック図である。図示するように、制御部４０は、演算装置であるＣＰＵ５１と、揮発性の記憶装置であるＲＡＭ５２と、不揮発性の記憶装置であるＲＯＭ５３と、ハードディスクドライブ（ＨＤＤ）５４と、制御部４０と他のユニットを接続するインターフェイス（Ｉ／Ｆ）回路５５と、ロボット１０の外部の装置と通信を行う通信装置５６と、これらを互いに接続するバス５７とを備える。
【００３４】
上記の記憶部４０２以外の各機能部は、例えば、ＣＰＵ５１がＲＯＭ５３に格納された所定のプログラムをＲＡＭ５２に読み出して実行することにより実現される。記憶部４０２は、例えば、ＲＡＭ５２、ＲＯＭ５３又はＨＤＤ５４により実現される。なお、前記所定のプログラムは、例えば、予めＲＯＭ５３にインストールされてもよいし、通信装置５６を介してネットワークからダウンロードされてインストール又は更新されてもよい。
【００３５】
以上のロボットシステム１の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。ロボット１０は、可動部１５及び制御部４０を有していればよく、例えば制御部を備えていてもよいし、撮影部を備えていてもよい。また、一般的なロボットが備える構成を排除するものではない。
【００３６】
次に、本実施形態における、上記構成からなるロボットシステム１の特徴的な処理について説明する。
【００３７】
図４は、ロボットシステム１の全体の処理の流れを示すフローチャートである。この処理は、例えば、図示しないボタン等を介してビジュアルサーボ開始指示が入力されることにより開始される。
中央制御部４０１は、ビジュアルサーボの実行準備処理、具体的には撮影処理を行う（ステップＳ１０）。ステップＳ１０の処理については、後に詳述する。
【００３８】
中央制御部４０１は、ビジュアルサーボの実行が終了したか否かを判断する（ステップＳ１２）。ビジュアルサーボが終了した場合（ステップＳ１２でＹＥＳ）、すなわち戻り値が終了である場合（後に詳述、図８のステップＳ２３２参照）には、中央制御部４０１は、本フローの処理を終了する。ビジュアルサーボが終了していない場合（ステップＳ１２でＮＯ）、すなわち戻り値が継続である場合（後に詳述、図８のステップＳ２８２参照）には、中央制御部４０１は、ビジュアルサーボステップを実行する（ステップＳ２０）。ステップＳ２０の処理については、後に詳述する。
【００３９】
図５は、ステップＳ１０に示す実行準備処理の流れを示すフローチャートである。
【００４０】
中央制御部４０１は、実行準備処理を行うことを示す指示を各部へ出力する。これを受けて、撮影制御部４０３は、第１撮影部２０又は第２撮影部３０に撮影を行うように指示を出力する。撮影制御部４０３は、まず第１撮影部２０に指示を出力し、すでに第１撮影部２０に指示を出力した場合には、第２撮影部３０に指示を出力する。指示を受けた撮影部は、撮影制御部４０３の指示に従い、画像を撮影する（ステップＳ１０１）。
【００４１】
撮影制御部４０３は、第１撮影部２０又は第２撮影部３０から画像を取得し、動作決定部４０５へ画像を出力する。動作決定部４０５は、画像から注目点Ｘ及び目標点Ｙを検出する（ステップＳ１０２）。注目点Ｘ及び目標点Ｙの検出は、すでに公知の様々な画像処理技術を用いて行うことができる。
動作決定部４０５は、ステップＳ１０１で撮影された画像から注目点Ｘ及び目標点Ｙが検出できたか否かを判断する（ステップＳ１０３）。
【００４２】
注目点Ｘ及び目標点Ｙが検出できなかった場合（ステップＳ１０３でＮＯ）は、動作決定部４０５は、注目点Ｘ及び目標点Ｙが検出できなかったことを示す情報を中央制御部４０１へ出力する。中央制御部４０１は、図示しない表示部や音声出力部を介して注目点Ｘ及び目標点Ｙが検出できなかったことを示すエラー情報を出力する（ステップＳ１０４）。
【００４３】
エラー情報が出力されることにより、作業者は、注目点Ｘ及び目標点Ｙが撮影されていないことを知ることができる。これを受けて、作業者により、ステップＳ１０１で撮影が行われた撮影部の向きが変更される。その後、作業者により、図示しない入力部を介して処理の再スタート指示が入力される。これは、エラー情報と共に、再スタート指示の入力を促す表示等を行うようにすればよい。処理の再スタート指示は、中央制御部４０１によって入力が受け付けられる。
【００４４】
中央制御部４０１は、再スタート指示を受け付けたか否かを判断する（ステップＳ１０５）。再スタート指示が受け付けられていない場合（ステップＳ１０５でＮＯ）には、中央制御部４０１は、再度ステップＳ１０５を行う。再スタート指示が受け付けられた場合（ステップＳ１０５でＹＥＳ）には、中央制御部４０１は、再スタート指示を受け付け、再度ステップＳ１０１を行う。
【００４５】
注目点Ｘ及び目標点Ｙが検出できた場合（ステップＳ１０３でＹＥＳ）は、撮影制御部４０３は、まだ撮影が終わっていない撮影部があるか否かを判断する（ステップＳ１０６）。撮影制御部４０３は、動作決定部４０５に出力した画像が１枚であるか、２枚であるかに基づいて、まだ撮影が終わっていない撮影部があるか否かを判断できる。
【００４６】
２つの撮影部を用いて画像を取得する理由について、図６，７を用いて説明する。図６は、撮影された画像の一例であり、（１）は第１撮影部２０で撮影された画像、（２）は第２撮影部３０で撮影された画像である。図７は、第１撮影部２０及び第２撮影部３０と、注目点Ｘ及び目標点Ｙとの位置関係を示す平面図である。
【００４７】
図７に示すように、第１撮影部２０及び第２撮影部３０は、注目点Ｘ及び目標点Ｙをそれぞれ異なる方向から撮影する。したがって、図６に示すように、第１撮影部２０で撮影された画像と第２撮影部３０で撮影された画像とで注目点Ｘ及び目標点Ｙの位置が異なる。すなわち、２枚の画像を用いることで、立体的な位置関係の情報を得ることができる。
【００４８】
例えば、図６（１）の画像上で注目点Ｘ及び目標点Ｙの位置が一致したとしても、奥行き方向の位置が一致していない場合がある。しかしながら、図６（２）の画像を見れば、図６（１）の画像の奥行き方向の情報が得られる。つまり、異なる方向から撮影された２枚の画像において注目点Ｘ及び目標点Ｙの位置が一致した場合には、実際の３次元空間において注目点Ｘ及び目標点Ｙの位置が一致したと考えることができる。
【００４９】
図５の説明に戻る。まだ撮影が終わっていない撮影部がある場合（ステップＳ１０６でＹＥＳ）は、撮影制御部４０３は、再度ステップＳ１０１の処理を行う。撮影制御部４０３は、第１撮影部２０、第２撮影部３０の順番で撮影指示を出力するため、再度行われるステップＳ１０１で撮影が行われるのは第２撮影部３０である。
【００５０】
まだ撮影が終わっていない撮影部がない場合（ステップＳ１０６でＮＯ）は、第１撮影部２０及び第２撮影部３０の両方で撮影が行われた場合である。この場合には、撮影制御部４０３は、実行準備処理を終了する。
【００５１】
なお、図５に示すフローにおいては、第１撮影部２０で画像を撮影するタイミングと、第２撮影部３０で画像を撮影するタイミングとが異なる。しかしながら、制御部４０が当該処理を行う時間はごく短時間であるため、第１撮影部２０で画像を撮影するタイミングと、第２撮影部３０で画像を撮影するタイミングとは同時ということもできる。
【００５２】
次に、ステップＳ２０のビジュアルサーボステップについて説明する。図８は、ビジュアルサーボステップの処理の流れを示すフローチャートである。
【００５３】
撮影制御部４０３は、第１撮影部２０及び第２撮影部３０で撮影された画像を取得し、動作決定部４０５へ出力する。そして、動作決定部４０５は、取得した画像に基づいて注目点Ｘと目標点Ｙとの画像上の距離を計測する（ステップＳ２００）。図９は、ステップＳ２００の処理の流れを示すフローチャートである。
【００５４】
撮影制御部４０３は、第１撮影部２０又は第２撮影部３０で撮影された画像を取得する（ステップＳ２０１）。当該処理は、ステップＳ１０１と同一であるため、説明を省略する。
【００５５】
動作決定部４０５は、撮影制御部４０３を介して取得した画像から注目点Ｘ及び目標点Ｙを検出する（ステップＳ２０２）。当該処理は、ステップＳ１０２と同一であるため、説明を省略する。
【００５６】
動作決定部４０５は、検出された注目点Ｘ及び目標点Ｙに基づいて、注目点Ｘと目標点Ｙとの画像上の距離を算出する（ステップＳ２０３）。ステップＳ２０３の処理について、図６を用いて説明する。
【００５７】
動作決定部４０５は、注目点Ｘ及び目標点Ｙの画像上の横方向の距離及び縦方向の距離をそれぞれ測定する。そして、動作決定部４０５は、画像上の横方向の距離及び縦方向の距離から、注目点Ｘと目標点Ｙとの画像上の距離を算出する。図６（１）では、画像上の横方向の距離はａ１と測定され、画像上の縦方向の距離はｂ１と測定され、注目点Ｘと目標点Ｙとの画像上の距離は（ａ１２＋ｂ１２）１／２と算出される。図６（２）では、画像上の横方向の距離はａ２と測定され、画像上の縦方向の距離はｂ２と測定され、注目点Ｘと目標点Ｙとの画像上の距離は（ａ２２＋ｂ２２）１／２と算出される。
【００５８】
撮影制御部４０３は、まだ撮影が終わっていない撮影部があるか否かを判断する（ステップＳ２０４）。当該処理は、ステップＳ１０６と同一であるため、説明を省略する。
【００５９】
まだ撮影が終わっていない撮影部がある場合（ステップＳ２０４でＹＥＳ）は、撮影制御部４０３は、再度ステップＳ２０１の処理を行う。まだ撮影が終わっていない撮影部がない場合（ステップＳ２０４でＮＯ）は、撮影制御部４０３は、図９に示す処理を終了する。
【００６０】
図８の説明に戻る。動作決定部４０５は、ステップＳ２００において、第１撮影部２０及び第２撮影部３０で撮影された画像について、注目点Ｘと目標点Ｙとの画像上の距離が算出できたか否かを判断する（ステップＳ２１０）。
【００６１】
注目点Ｘと目標点Ｙとの画像上の距離が算出できなかった場合（ステップＳ２１０でＮＯ）として、例えば、注目点Ｘが目標点Ｙの背後に隠れてしまった場合が考えられる。この場合には、動作決定部４０５は、可動部１５の移動量を、通常の移動量より小さい値に決定する（ステップＳ２２０）。例えば、記憶部４０２には、通常の移動量の設定値が記憶されており、この設定値にゲインを掛けることにより、実際の移動量が算出される。通常、このゲインは１である。ステップＳ２２０では、ゲインを１以下の所定の値（例えば０．８）とする。これにより、移動量が通常の移動量より小さく設定され、なるべく少ない移動量で注目点Ｘと目標点Ｙとの画像上の距離が算出できるようにすることができる。
【００６２】
動作決定部４０５は、決定したゲインを出力部４０６に出力する。出力部４０６は取得したゲインを動作制御部１０２に出力する（ステップＳ２８０）。ステップＳ２８０については後に詳述する。
【００６３】
注目点Ｘと目標点Ｙとの画像上の距離が算出できた場合（ステップＳ２１０でＹＥＳ）には、動作決定部４０５は、ステップＳ２０３で算出された画像上の横方向の距離及び縦方向の距離が、それぞれ指定値より小さいか否かを判断する（ステップＳ２３０）。例えば、図６における距離ａ１及びｂ１が、それぞれ指定値より小さいか否かを判断する。指定値は、あらかじめ設定されていてもよいし、ユーザが任意の値に設定することもできる。
【００６４】
なお、以下の処理では、第１撮影部２０及び第２撮影部３０で撮影された画像の横方向が実空間上の水平方向と仮定し、第１撮影部２０及び第２撮影部３０で撮影された画像の下方向が実空間上の垂直方向と仮定して処理を実行する。
【００６５】
第１撮影部２０及び第２撮影部３０で撮影された画像における画像上の横方向の距離及び縦方向の距離が、いずれも指定値より小さい場合（ステップＳ２３０でＹＥＳ）は、第１撮影部２０及び第２撮影部３０で撮影された画像上において、注目点Ｘと目標点Ｙとがほぼ一致している場合、すなわち実空間において注目点Ｘと目標点Ｙとがほぼ一致している場合である。動作決定部４０５は、注目点Ｘと目標点Ｙとがほぼ一致していることを示す情報を中央制御部４０１に出力する。これを受けて、中央制御部４０１は戻り値を終了に設定する（ステップＳ２３２）。戻り値が終了に設定されることは、ビジュアルサーボの実行を終了することを意味する。中央制御部４０１は、図８に示す処理、すなわち図４に示すステップＳ２０の処理を終了し、図４に示すステップＳ１２の処理を行う。
【００６６】
第１撮影部２０又は第２撮影部３０で撮影された画像における画像上の横方向の距離及び縦方向の距離が、指定値より小さくない場合（ステップＳ２３０でＮＯ）は、ステップＳ２０３で算出された画像上の横方向の距離が、指定値より小さいか否かを判断する（ステップＳ２４０）。
【００６７】
第１撮影部２０及び第２撮影部３０で撮影された画像における画像上の横方向の距離が、いずれも指定値より小さい場合（ステップＳ２４０でＹＥＳ）は、図１０（Ａ）に示すように、第１撮影部２０で撮影された画像（図１０（Ａ）（１）参照）及び第２撮影部３０で撮影された画像（図１０（Ａ）（２）参照）上において、注目点Ｘと目標点Ｙとの横方向の位置がほぼ一致している場合である。この場合は、動作決定部４０５は、実空間において、注目点Ｘと目標点Ｙとの水平方向の位置がほぼ一致していると推定する。そのため、動作決定部４０５は、可動部１５を垂直方向に移動させるように、垂直方向のゲインを有効にする（ステップＳ２５０）。
【００６８】
動作決定部４０５は、ステップＳ２００で取得された注目点Ｘと目標点Ｙとの画像上の距離を取得し、注目点Ｘと目標点Ｙとの画像上の縦方向の距離に応じたゲインとなるように、ゲインを決定する（ステップＳ２５２）。例えば、注目点Ｘと目標点Ｙとの画像上の距離が所定の距離以上の場合には、動作決定部４０５はゲインを１とする。また、注目点Ｘと目標点Ｙとの画像上の距離が所定の距離以下の場合には、動作決定部４０５は距離に応じてゲインを小さくする。注目点Ｘと目標点Ｙとの画像上の距離が所定の距離×０．８の場合は、ゲインを０．８とすればよい。このように、距離に応じた移動量とすることで、注目点が目標点を通り過ぎるように作業点が制御されることを防止することができる。
【００６９】
一般的に注目点Ｘは目標点Ｙより高い位置にあるため、本実施の形態における垂直方向は垂直下向きとする。ただし、目標点Ｙが注目点Ｘより高い位置にある場合には、垂直方向は垂直上向きとなる。
【００７０】
第１撮影部２０又は第２撮影部３０で撮影された画像における画像上の横方向の距離が指定値より小さくない場合（ステップＳ２４０でＮＯ）は、図１０（Ｂ）に示すように、第１撮影部２０で撮影された画像（図１０（Ｂ）（１）参照）及び第２撮影部３０で撮影された画像（図１０（Ｂ）（２）参照）上において、注目点Ｘと目標点Ｙとの横方向の位置が一致していない場合である。この場合は、動作決定部４０５は、実空間において、注目点Ｘと目標点Ｙとの水平方向の位置が一致していないと判断する。そのため、動作決定部４０５は、可動部１５を水平方向にのみ移動させるように、垂直方向のゲインを無効とする（ステップＳ２６０）。
【００７１】
垂直方向のゲインを決定したら（ステップＳ２５０、Ｓ２６０）、動作決定部４０５は、水平方向の移動方向及びゲインを決定する（ステップＳ２７０）。
【００７２】
図１１は、水平方向の移動方向及びゲインを決定する（ステップＳ２７０）処理の流れを示すフローチャートである。
【００７３】
動作決定部４０５は、第１撮影部２０で撮影された画像に対して、ステップＳ２０３で算出された注目点Ｘと目標点Ｙとの画像上の距離であって、今回のビジュアルサーボステップで撮影された画像上の距離と、前回のビジュアルサーボステップで撮影された画像上の距離との距離差Ｉを算出する（ステップＳ２７１）。
【００７４】
動作決定部４０５は、第２撮影部３０で撮影された画像に対して、ステップＳ２０３で算出された注目点Ｘと目標点Ｙとの画像上の距離であって、今回のビジュアルサーボステップで撮影された画像上の距離と、前回のビジュアルサーボステップで撮影された画像上の距離との距離差ＩＩを算出する（ステップＳ２７２）。
【００７５】
つまり、ステップＳ２７１、Ｓ２７２では、前回のビジュアルサーボステップで決定された移動方向及び移動量で可動部１５が移動される前の注目点Ｘと目標点Ｙとの画像上の距離と、前回のビジュアルサーボステップで決定された移動方向及び移動量で可動部１５が移動された後の注目点Ｘと目標点Ｙとの画像上の距離との差を算出している。
【００７６】
動作決定部４０５は、ステップＳ２７１で算出された距離差Ｉ及びステップＳ２７２で算出された距離差ＩＩが小さくなっているか否か、すなわち注目点Ｘと目標点Ｙとの距離が縮まっているか否かを判断する（ステップＳ２７３）。
【００７７】
ステップＳ２７１〜Ｓ２７３では、注目点Ｘと目標点Ｙとの画像上の直線距離に基づいて処理を行う。これは、画像の横方向が実空間の水平方向と一致せず、画像の縦方向が実空間の垂直方向と一致しない可能性があるためである。このように、画像の横方向が実空間の水平方向と一致せず、画像の縦方向が実空間の垂直方向と一致しないことを前提とすることにより、第１撮影部２０及び第２撮影部３０の設置に制約がなくなり、設置に手間がかからないという効果を得ることができる。
【００７８】
ステップＳ２７１で算出された距離差Ｉ及びステップＳ２７２で算出された距離差ＩＩ距離が縮まっている場合（ステップＳ２７３でＹＥＳ）は、動作決定部４０５は、水平方向の移動方向及を前回と同じに決定する（ステップＳ２７４）。動作決定部４０５は、注目点Ｘと目標点Ｙとの画像上の横方向の距離に応じた移動量となるように、ゲインを決定する（ステップＳ２７５）。画像上の距離に応じたゲインを決定する方法は、ステップＳ２５２と同様である。そして、動作決定部４０５は、ステップＳ２７０の処理を終了する。
【００７９】
ステップＳ２７１で算出された距離差Ｉ又はステップＳ２７２で算出された距離差ＩＩ距離が縮まっていない場合、つまりステップＳ２７１で算出された距離差Ｉ、ステップＳ２７２で算出された距離差ＩＩのいずれかが大きくなっている場合（ステップＳ２７３でＮＯ）は、動作決定部４０５は、水平方向の移動方向を変更する（ステップＳ２７６）。図１２に示すように、可動部１５の移動方向は、例えば６０°間隔の６方向ａ、ｂ、ｃ、ｄ、ｅ、ｆがあらかじめ設定されている。方向ａ、ｂ、ｃ、ｄ、ｅ、ｆは、すべて水平面（ロボット１０が認識している水平面）と平行な同一平面内に設定される。動作決定部４０５は、方向ａ、方向ｂ、方向ｃ、方向ｄ、方向ｅ、方向ｆの順番で、移動方向を決定する。具体的には、現在の移動方向が方向ａの場合には、動作決定部４０５は、方向ｂを次の移動方向に設定する。現在の移動方向が方向ｆの場合には、動作決定部４０５は、方向ａを次の移動方向に設定する。
なお、可動部１５の移動方向は、図１２に示す場合に限定されるものではなく、任意の方向に設定可能である。
【００８０】
動作決定部４０５は、可動部１５がすべての移動方向に移動されたか否かを判断する（ステップＳ２７７）。図１２に示す場合には、動作決定部４０５は、ステップＳ２７６で次の移動方向として方向ａが設定されたか否かを判断する。
【００８１】
可動部１５がすべての移動方向に移動された場合（ステップＳ２７７でＹＥＳ）には、動作決定部４０５は、水平方向のゲインを増やす、すなわち水平方向の移動量を大きくする（例えば、ゲインを１．５とする）設定とし（ステップＳ２７８）、ステップＳ２７０の処理を終了する。可動部１５がすべての移動方向に移動されていない場合（ステップＳ２７７でＮＯ）には、動作決定部４０５は、ゲインを変更せず、ステップＳ２７０の処理を終了する。
【００８２】
ステップＳ２７８は、可動部１５が水平方向を一周以上してしまう可能性を低くするために、可動部１５を一度大きく動かそうという意図で設定されたステップである。ステップＳ２７７、Ｓ２７８の処理は必須ではなく、ステップＳ２７６の次にステップＳ２７９を行うようにしてもよい。
【００８３】
これにより、水平方向の移動方向及び移動量を決定する処理が終了する（ステップＳ２７０）。なお、最初にステップＳ２７０の処理を行う場合、すなわちステップＳ２０のビジュアルサーボステップを初めて行う場合には、前回取得された画像が存在しない。この場合には、ステップＳ２７０の処理の代わりに、初期設定された移動方向（例えば図１２の方向ａ）かつ移動量で可動部１５を移動させればよい。
【００８４】
図８の説明に戻る。動作決定部４０５は、ステップＳ２５０、Ｓ２７０で決定した移動方向及びゲイン（すなわち、移動量）を出力部４０６に出力する。出力部４０６は取得した移動方向及びゲインを動作制御部１０２に出力する（ステップＳ２８０）。
【００８５】
動作制御部１０２は、取得した移動方向及び移動量で可動部１５が移動するように、可動部１５を制御する。これにより、可動部１５は、水平方向及び垂直方向の少なくとも１方向に、決定された量だけ移動される。
【００８６】
動作制御部１０２は、エンコーダー値に基づいて、ステップＳ２５０、Ｓ２７０で決定された移動方向及び移動量で可動部１５が移動したと判断すると、可動部１５の移動が終了したことを制御情報取得部４０４に出力する。制御情報取得部４０４は、これを中央制御部４０１に出力する。これを受けて、中央制御部４０１は、戻り値を継続に設定する（ステップＳ２３２）。戻り値の継続は、ビジュアルサーボの一連の流れは終了したが、ビジュアルサーボは終了しておらず、継続してビジュアルサーボの処理が必要であることを意味する。中央制御部４０１は、図８に示す処理、すなわち図４に示すステップＳ２０の処理を終了し、図４に示すステップＳ１２の処理を行う。
これにより、ビジュアルサーボステップが終了される。
【００８７】
ここで、ビジュアルサーボステップを、可動部１５の動きに注目して説明する。
まず、可動部１５は、水平方向の方向ａに所定量だけ移動する。必要ならば方向をａ〜ｆに変えながら、注目点Ｘと目標点Ｙとの水平方向の位置がほぼ一致するまで、可動部１５は水平方向のみに移動される（水平方向の位置合わせ）。水平方向の位置合わせが終了したら、可動部１５は垂直下向きに移動される。
【００８８】
しかしながら、第１撮影部２０及び第２撮影部３０の横方向と実空間の水平方向とが一致せず、第１撮影部２０及び第２撮影部３０の縦方向と実空間の垂直方向とが一致していない場合がある。また、ロボット１が認識している水平方向と実空間の水平方向が一致せず、ロボット１が認識している垂直方向と実空間の垂直方向とが一致しない場合もある。このような場合には、第１撮影部２０及び第２撮影部３０で撮影された画像上では、注目点Ｘが斜め方向に移動することとなる。
【００８９】
その結果、注目点Ｘと目標点Ｙとの水平方向の位置が指定値より大きくなった場合には、再度水平方向の位置合わせが行われる。再度の水平方向の位置合わせが終了したら、可動部１５は再度垂直下向きに移動される。これが、注目点Ｘと目標点Ｙとの水平方向及び垂直方向の位置がほぼ一致するまで行われる。
【００９０】
本実施の形態によれば、画像ヤコビアン推定のために可動部を動かす等の事前作業を行うことなく、ビジュアルサーボを行うことができる。また、画像ヤコビアンの推定を行わないため、レイアウト変更等により第１撮影部、第２撮影部を移動させることができるし、地震等により第１撮影部、第２撮影部が移動しても迅速に作業を開始することができる。
【００９１】
なお、本実施の形態では、第１撮影部、第２撮影部の２つの撮影部で撮影された画像に基づいて処理を行ったが、本発明は、３個以上の撮影部で撮影された画像に基づいて処理を行う場合にも適用可能である。
【００９２】
また、本実施の形態に記載の内容に加えて、ロボット制御部が学習機能を備えるようにしてもよい。例えば、ビジュアルサーボ開始前の注目点Ｘの画像上の位置と、注目点Ｘと目標点Ｙとの距離が短くなったときの水平方向の移動方向との関係（例えば、移動方向と、注目点Ｘと目標点Ｙとが一致するまでのステップ数（ステップＳ２０を行った回数）とを関連付けた情報）を記憶部４０２に記憶しておく。
【００９３】
例えば、制御部４０は、第１撮影部２０で撮影された画像を左右上下各２区画の合計４区画に区切り、ビジュアルサーボ開始前の注目点Ｘの画像上の位置がどの区画に含まれるかを判断する。最初に可動部１５を移動させる方向を方向ａ〜ｆの順に設定し、最初に移動させた方向と、注目点Ｘと目標点Ｙとが一致するまでのステップ数とを関連付けて記憶部４０２に記憶する。この情報を、区画毎に行い、区画ごとの情報を記憶する。
【００９４】
そして、制御部４０は、ステップＳ１０で第１撮影部２０により撮影された画像における注目点Ｘの画像上の位置と、記憶部４０２に記憶いされた情報に基づいて、注目点Ｘと目標点Ｙとが一致するまでのステップ数が一番少ない方向に、可動部１５を移動させるようにすればよい。
【００９５】
また、本実施の形態に記載と、画像ヤコビアンを推定してビジュアルサーボを行う方法とを併用してもよい。例えば、第１撮影部及び第２撮影部で撮影された画像から注目点Ｘと目標点Ｙとの距離を推定し、画像ヤコビアン推定が有効な場合には画像ヤコビアンを推定してビジュアルサーボを行い、画像ヤコビアン推定が有効でない場合には本実施の形態に記載の方法によりビジュアルサーボを行えばよい。これにより、より効率よくビジュアルサーボを行うことができる。
【００９６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００９７】
１：ロボットシステム、１０：ロボット、１１：アーム部、１２：ジョイント、１３：リンク、１４：加工部、１５：可動部、２０：第１撮影部、３０：第２撮影部、４０：制御部、５１：ＣＰＵ、５２：ＲＡＭ、５３：ＲＯＭ、５４：ＨＤＤ、５５：Ｉ／Ｆ回路、５６：通信装置、５７：バス、１０１：中央制御部、１０２：動作制御部、４０１：中央制御部、４０２：記憶部、４０３：撮影制御部、４０４：制御情報取得部、４０５：動作決定部、４０６：出力部、Ｘ：注目点、Ｙ：目標点
【図１】
2014018881.tif 000003
【図２】
2014018881.tif 000004
【図３】
2014018881.tif 000005
【図４】
2014018881.tif 000006
【図５】
2014018881.tif 000007
【図６】
2014018881.tif 000008
【図７】
2014018881.tif 000009
【図８】
2014018881.tif 000010
【図９】
2014018881.tif 000011
【図１０】
2014018881.tif 000012
【図１１】
2014018881.tif 000013
【図１２】
2014018881.tif 000014