(57)【要約】【課題】第１の制御からビジュアルサーボへ切り替える場合に、処理時間を短くする。【解決手段】軌道情報に基づいて、軌道情報を用いる第１の制御によりアームを制御するか、現在画像及び目標画像を用いるビジュアルサーボによりアームを制御するかを切り替える。【選択図】図５
2015174206.tif 000002
【特許請求の範囲】
【請求項１】
予め設定された軌道情報に基づいて、第１の制御からビジュアルサーボに切り替えることを特徴とするロボット制御装置。
【請求項２】
前記第１の制御は、位置制御であることを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
請求項２に記載のロボット制御装置において、
前記位置制御は、前記軌道情報に基づいて、ロボットを第１の姿勢から第２の姿勢へと移動させる制御であることを特徴とするロボット制御装置。
【請求項４】
請求項１または２に記載のロボット制御装置において、
前記ビジュアルサーボは、複数の画像に基づいてロボットを第１の姿勢から第２の姿勢へと移動させる制御であることを特徴とするロボット制御装置。
【請求項５】
請求項４に記載のロボット制御装置において、
前記ビジュアルサーボは、ロボットが第１の姿勢から第２の姿勢へと移動する間に複数回撮像する制御であることを特徴とするロボット制御装置。
【請求項６】
請求項１から５のいずれか１項に記載のロボット制御装置において、
前記軌道情報は、位置及び時間に関する情報を含み、
前記軌道情報のうちの位置に関する情報又は時間に関する情報に基づいて、前記位置制御か前記ビジュアルサーボかを切り替える
ことを特徴とするロボット制御装置。
【請求項７】
ロボットのアームにおける任意の点であるエンドポイントを現在位置から目標位置に近づけるように前記アームを制御する制御部と、
前記エンドポイントが前記現在位置にあるときの前記エンドポイントを含む画像である現在画像及び前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像を取得する画像取得部と、を備え、
前記制御部は、複数の教示位置に基づいて形成された軌道情報に基づいて、前記軌道情報を用いる位置制御により前記アームを制御するか、前記現在画像及び前記目標画像を用いるビジュアルサーボにより前記アームを制御するかを切り替える
ことを特徴とするロボット制御装置。
【請求項８】
請求項７に記載のロボット制御装置において、
前記軌道情報は、位置及び時間に関する情報を含み、
前記制御部は、前記軌道情報のうちの位置に関する情報又は時間に関する情報に基づいて、前記位置制御か前記ビジュアルサーボかを切り替える
ことを特徴とするロボット制御装置。
【請求項９】
請求項８に記載のロボット制御装置において、
前記制御部は、前記位置制御により前記アームを制御しているときに、前記軌道情報に含まれる位置に関する情報のうちの任意の位置に前記エンドポイントが移動されたら、前記位置制御から前記ビジュアルサーボに切り替える
ことを特徴とするロボット制御装置。
【請求項１０】
請求項７に記載のロボット制御装置において、
前記制御部は、位置制御により前記アームを制御するか、前記ビジュアルサーボにより前記アームを制御するかの切り替えに、前記軌道情報と、前記現在画像のうちの当該切り替えを行う位置又は時間における画像である第１の現在画像と、を用いる
ことを特徴とするロボット制御装置。
【請求項１１】
請求項１０に記載のロボット制御装置において、
前記制御部は、前記第１の現在画像を取得する位置又は時間を求め、
前記画像取得部は、前記求められた位置又は時間で前記第１の現在画像を取得する
ことを特徴とするロボット制御装置。
【請求項１２】
請求項１０に記載のロボット制御装置において、
前記画像取得部は、一定時間ごとに連続して前記第１の現在画像を取得する
ことを特徴とするロボット制御装置。
【請求項１３】
請求項１０に記載のロボット制御装置において、
前記制御部は、前記第１の現在画像と、前記目標画像とを比較して求められる評価関数の値が所定の閾値を超える場合には、前記位置制御から前記ビジュアルサーボに切り替える
ことを特徴とするロボット制御装置。
【請求項１４】
ロボットのアームにおける任意の点であるエンドポイントを、複数の教示位置に基づいて形成された軌道情報に基づいて目標位置へ移動させる第１制御部と、
前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像と、前記エンドポイントが現在位置にあるときの前記エンドポイントを含む画像である現在画像とを取得する画像取得部と、
前記現在画像及び前記目標画像に基づいて、前記エンドポイントを前記現在位置から前記目標位置に移動させる第２制御部と、
前記軌道情報に基づいて、前記第１制御部により前記アームを制御するか、前記第２制御部により前記アームを制御するかを切り替える駆動制御部と、
を備えることを特徴とするロボット制御装置。
【請求項１５】
アームを有するロボットと、
予め設定された軌道情報に基づいて、第１の制御からビジュアルサーボに切り替えるロボット制御部と、
を備えることを特徴とするロボットシステム。
【請求項１６】
アームを有するロボットと、
前記アームにおける任意の点であるエンドポイントを現在位置から目標位置に近づけるように前記アームを制御する制御部と、
前記エンドポイントが前記現在位置にあるときの前記エンドポイントを含む画像である現在画像及び前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像を取得する画像取得部と、を備え、
前記制御部は、複数の教示位置に基づいて形成された軌道情報に基づいて、前記軌道情報を用いる位置制御により前記アームを制御するか、前記現在画像及び前記目標画像を用いるビジュアルサーボにより前記アームを制御するかを切り替える
ことを特徴とするロボットシステム。
【請求項１７】
ロボット本体と、
前記ロボット本体に設けられたアームと、
予め設定された軌道情報に基づいて、第１の制御からビジュアルサーボに切り替える制御部と、
を備えることを特徴とするロボット。
【請求項１８】
アームと、
前記アームにおける任意の点であるエンドポイントを現在位置から目標位置に近づけるように前記アームを制御する制御部と、
前記エンドポイントが前記現在位置にあるときの前記エンドポイントを含む画像である現在画像及び前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像を取得する画像取得部と、を備え、
前記制御部は、複数の教示位置に基づいて形成された軌道情報に基づいて、前記軌道情報を用いる位置制御により前記アームを制御するか、前記現在画像及び前記目標画像を用いるビジュアルサーボにより前記アームを制御するかを切り替える
ことを特徴とするロボット。
【請求項１９】
ロボットのアームにおける任意の点であるエンドポイントを、複数の教示位置に基づいて形成された軌道情報に基づいて目標位置へ移動させるステップと、
前記軌道情報に基づいて、前記アームを制御するか、前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像と、前記エンドポイントが現在位置にあるときの前記エンドポイントを含む画像である現在画像とに基づいて前記アームを制御するか、を切り替えるステップと、
を含むことを特徴とするロボット制御方法。
【請求項２０】
ロボットのアームにおける任意の点であるエンドポイントを、複数の教示位置に基づいて形成された軌道情報に基づいて目標位置へ移動させるステップと、
前記軌道情報に基づいて、前記アームを制御するか、前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像と、前記エンドポイントが現在位置にあるときの前記エンドポイントを含む画像である現在画像とに基づいて前記アームを制御するか、を切り替えるステップと、
を演算装置に実行させることを特徴とするロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボットシステム、ロボット、ロボット制御方法及びロボット制御プログラムに関する。
【背景技術】
【０００２】
特許文献１には、対象物が検知された場合、目標位置よりも対象物に近い位置を新たな目標位置として、新たな目標位置までの新たな経路を設定すること、そして、移動制御を切り替えるための切替条件が満たされるまでは新たな経路に沿ってティーチングプレイバック制御を実行し、切替条件が満たされたら視覚サーボ制御を実行することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−９３０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の発明は、位置制御（ティーチングプレイバック制御）のあとでビジュアルサーボ（視覚サーボ制御）に切り替える点に特徴がある。しかしながら、特許文献１に記載の発明では、位置制御とビジュアルサーボとの切り替えに画像情報を用いることが必須であるため、処理が重くなり時間がかかるという問題がある。
【０００５】
そこで、本発明は、ある制御からビジュアルサーボへ切り替える場合に、処理時間を短くすることができるロボット制御装置、ロボットシステム、ロボット、ロボット制御方法及びロボット制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための第一の態様は、ロボット制御装置であって、予め設定された軌道情報に基づいて、第１の制御からビジュアルサーボに切り替えることを特徴とする。これにより、処理の切り替えに画像を用いる必要がなく、処理時間を短縮することができる。ここで、第１の制御は位置制御であってもよい。なお、第１の制御としては、ビジュアルサーボ以外の制御である位置制御や力制御等が含まれる。
【０００７】
ここで、前記位置制御は、前記軌道情報に基づいて、ロボットを第１の姿勢から第２の姿勢へと移動させる制御であってもよい。また、前記ビジュアルサーボは、複数の画像に基づいてロボットを第１の姿勢から第２の姿勢へと移動させる制御であってもよい。また、前記ビジュアルサーボは、ロボットが第１の姿勢から第２の姿勢へと移動する間に複数回撮像する制御であってもよい。これにより、処理の切り替えに画像を用いる必要がなく、処理時間を短縮することができる。
【０００８】
ここで、前記軌道情報は、位置及び時間に関する情報を含み、前記軌道情報のうちの位置に関する情報又は時間に関する情報に基づいて、前記位置制御か前記ビジュアルサーボかを切り替えてもよい。このように、切替位置、時間をあらかじめ設定することで、処理時間を短縮することができる。
【０００９】
上記課題を解決するための第二の態様は、ロボット制御装置であって、ロボットのアームにおける任意の点であるエンドポイントを現在位置から目標位置に近づけるように前記アームを制御する制御部と、前記エンドポイントが前記現在位置にあるときの前記エンドポイントを含む画像である現在画像及び前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像を取得する画像取得部と、を備え、前記制御部は、複数の教示位置に基づいて形成された軌道情報に基づいて、前記軌道情報を用いる位置制御により前記アームを制御するか、前記現在画像及び前記目標画像を用いるビジュアルサーボにより前記アームを制御するかを切り替えることを特徴とする。
【００１０】
第二の態様によれば、軌道情報に基づいて、軌道情報を用いる位置制御によりアームを制御するか、現在画像及び目標画像を用いるビジュアルサーボによりアームを制御するかを切り替える。このように、軌道情報に基づいて位置制御とビジュアルサーボとを切り替えるため、処理の切り替えに画像を用いる必要がなく、処理時間を短縮することができる。
【００１１】
ここで、前記軌道情報は、位置及び時間に関する情報を含み、前記制御部は、前記軌道情報のうちの位置に関する情報又は時間に関する情報に基づいて、前記位置制御か前記ビジュアルサーボかを切り替えてもよい。このように、切替位置、時間をあらかじめ設定することで、処理時間を短縮することができる。
【００１２】
ここで、前記制御部は、前記位置制御により前記アームを制御しているときに、前記軌道情報に含まれる位置に関する情報のうちの任意の位置に前記エンドポイントが移動されたら、前記位置制御から前記ビジュアルサーボに切り替えてもよい。このように、切替位置を設定することで、設定を容易に行うことができる。
【００１３】
ここで、前記制御部は、位置制御により前記アームを制御するか、前記ビジュアルサーボにより前記アームを制御するかの切り替えに、前記軌道情報と、前記現在画像のうちの当該切り替えを行う位置又は時間における画像である第１の現在画像と、を用いてもよい。これにより、必要がない場合には、位置制御からビジュアルサーボへ切り替えないようにすることができる。
【００１４】
ここで、前記制御部は、前記第１の現在画像を取得する位置又は時間を求め、前記画像取得部は、前記求められた位置又は時間で前記第１の現在画像を取得してもよい。第１の現在画像取得の位置、時間をあらかじめ設定することで、処理時間を短縮することができる。
【００１５】
ここで、前記画像取得部は、一定時間ごとに連続して前記第１の現在画像を取得してもよい。これにより、軌道情報と、実際のエンドポイントの軌道とのズレが大きくなる場合にも対応可能となる。
【００１６】
ここで、前記制御部は、前記第１の現在画像と、前記目標画像とを比較して求められる評価関数の値が所定の閾値を超える場合には、前記位置制御から前記ビジュアルサーボに切り替えてもよい。これにより、容易に切り替えを判定可能となる。
【００１７】
上記課題を解決するための第三の態様は、ロボット制御装置であって、ロボットのアームにおける任意の点であるエンドポイントを、複数の教示位置に基づいて形成された軌道情報に基づいて目標位置へ移動させる第１制御部と、前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像と、前記エンドポイントが現在位置にあるときの前記エンドポイントを含む画像である現在画像とを取得する画像取得部と、前記現在画像及び前記目標画像に基づいて、前記エンドポイントを前記現在位置から前記目標位置に移動させる第２制御部と、前記軌道情報に基づいて、前記第１制御部により前記アームを制御するか、前記第２制御部により前記アームを制御するかを切り替える駆動制御部と、を備えることを特徴とする。このように、軌道情報に基づいて位置制御とビジュアルサーボとを切り替えるため、処理時間を短縮することができる。
【００１８】
上記課題を解決するための第四の態様は、ロボットシステムであって、アームを有するロボットと、予め設定された軌道情報に基づいて、第１の制御からビジュアルサーボに切り替えるロボット制御部と、を備えることを特徴とする。このように、軌道情報に基づいて位置制御とビジュアルサーボとを切り替えるため、処理時間を短縮することができる。
【００１９】
上記課題を解決するための第五の態様は、ロボットシステムであって、アームを有するロボットと、前記アームにおける任意の点であるエンドポイントを現在位置から目標位置に近づけるように前記アームを制御する制御部と、前記エンドポイントが前記現在位置にあるときの前記エンドポイントを含む画像である現在画像及び前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像を取得する画像取得部と、を備え、前記制御部は、複数の教示位置に基づいて形成された軌道情報に基づいて、前記軌道情報を用いる位置制御により前記アームを制御するか、前記現在画像及び前記目標画像を用いるビジュアルサーボにより前記アームを制御するかを切り替えることを特徴とする。このように、軌道情報に基づいて位置制御とビジュアルサーボとを切り替えるため、処理時間を短縮することができる。
【００２０】
上記課題を解決するための第六の態様は、ロボットであって、ロボット本体と、前記ロボット本体に設けられたアームと、予め設定された軌道情報に基づいて、第１の制御からビジュアルサーボに切り替える制御部と、を備えることを特徴とする。このように、軌道情報に基づいて位置制御とビジュアルサーボとを切り替えるため、処理時間を短縮することができる。
【００２１】
上記課題を解決するための第七の態様は、ロボットであって、アームと、前記アームにおける任意の点であるエンドポイントを現在位置から目標位置に近づけるように前記アームを制御する制御部と、前記エンドポイントが前記現在位置にあるときの前記エンドポイントを含む画像である現在画像及び前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像を取得する画像取得部と、を備え、前記制御部は、複数の教示位置に基づいて形成された軌道情報に基づいて、前記軌道情報を用いる位置制御により前記アームを制御するか、前記現在画像及び前記目標画像を用いるビジュアルサーボにより前記アームを制御するかを切り替えることを特徴とする。このように、軌道情報に基づいて位置制御とビジュアルサーボとを切り替えるため、処理時間を短縮することができる。
【００２２】
上記課題を解決するための第八の態様は、ロボット制御方法であって、ロボットのアームにおける任意の点であるエンドポイントを、複数の教示位置に基づいて形成された軌道情報に基づいて目標位置へ移動させるステップと、前記軌道情報に基づいて前記アームを制御するか、前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像と、前記エンドポイントが現在位置にあるときの前記エンドポイントを含む画像である現在画像とに基づいて前記アームを制御するか、を切り替えるステップと、を含むことを特徴とする。このように、軌道情報に基づいて位置制御とビジュアルサーボとを切り替えるため、処理時間を短縮することができる。
【００２３】
上記課題を解決するための第九の態様は、ロボット制御プログラムであって、ロボットのアームにおける任意の点であるエンドポイントを、複数の教示位置に基づいて形成された軌道情報に基づいて目標位置へ移動させるステップと、前記軌道情報に基づいて、前記アームを制御するか、前記エンドポイントが前記目標位置にあるときの前記エンドポイントを含む画像である目標画像と、前記エンドポイントが現在位置にあるときの前記エンドポイントを含む画像である現在画像とに基づいて前記アームを制御するか、を切り替えるステップと、を演算装置に実行させることを特徴とする。このように、軌道情報に基づいて位置制御とビジュアルサーボとを切り替えるため、処理時間を短縮することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態におけるロボットシステム１の構成の一例を示すシステム構成図である。
【図２】ロボットシステム１の機能ブロック図の一例を示す図である。
【図３】ロボットシステム１のデータフロー図である。
【図４】制御部２０のハードウェア構成の一例を示す図である。
【図５】ロボットシステム１の処理の流れを示すフローチャートである。
【図６】（Ａ）は、ロボットシステム１における、対象物Ｏ１、Ｏ２、Ｏ３と、エンドポイントの軌道との関係を示す図であり、（Ｂ）は目標画像の一例を示す図である。
【図７】第１の実施の形態の変形例に係る、位置制御及びビジュアルサーボによりアーム１１を制御する場合における、エンドポイントの軌道を説明する図である。
【図８】第１の実施の形態の変形例であり、軌道情報のうちの時間の情報に基づいてアームを制御する場合の処理の流れを示すフローチャートである。
【図９】本発明の第２の実施形態におけるロボットシステム２の処理の流れを示すフローチャートである。
【図１０】ロボットシステム２における、対象物Ｏ１、Ｏ２、Ｏ３と、エンドポイントの軌道との関係を示す図である。
【図１１】本発明の第３の実施形態におけるロボットシステム３の処理の流れを示すフローチャートである。
【図１２】ロボットシステム３における、対象物Ｏ１、Ｏ２、Ｏ３と、エンドポイントの軌道との関係を示す図である。
【図１３】（Ａ）〜（Ｄ）は図１２の位置Ａ〜Ｄにおける目標画像の一例を示す図であり、（Ｅ）〜（Ｆ）は図１２の位置Ｄにおける現在画像の一例を示す図である。
【発明を実施するための形態】
【００２５】
本発明の一実施形態について、図面を参照しながら説明する。
【００２６】
＜第１の実施形態＞
図１は、本発明の第１の実施形態におけるロボットシステム１の構成の一例を示すシステム構成図である。本実施形態におけるロボットシステム１は、主として、ロボット１０と、制御部２０と、第１撮像部３０と、第２撮像部４０とを備える。
【００２７】
ロボット１０は、複数のジョイント（関節）１２と、複数のリンク１３とを含むアーム１１を有するアーム型のロボットである。ロボット１０は、制御部２０からの制御信号に従い処理を行う。
【００２８】
ジョイント１２には、それらを動作させるためのアクチュエーター（図示せず）が設けられる。アクチュエーターは、例えば、サーボモーターやエンコーダーなどを備える。エンコーダーが出力するエンコーダー値は、制御部２０によるロボット１０のフィードバック制御に使用される。
【００２９】
アーム１１の先端近傍には、ハンドアイカメラ１５が設けられる。ハンドアイカメラ１５は、アーム１１の先端にある物体を撮像して、画像データを生成するユニットである。ハンドアイカメラ１５としては、例えば、可視光カメラ、赤外線カメラ等を採用することができる。
【００３０】
アーム１１の先端部分の任意の領域を、アーム１１のエンドポイントと定義する。本実施の形態では、図１に示す点Ｅの位置をエンドポイントの位置とする。ただし、エンドポイントはこれに限られず、アーム１１における任意の点であればよい。
【００３１】
なお、ロボット１０の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。一般的な把持ロボットが備える構成を排除するものではない。例えば、図１では６軸のアームが示されているが、軸数（ジョイント数）をさらに増加させてもよいし、減らしてもよい。リンクの数を増減させてもよい。また、アーム、リンク、ジョイント等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。
【００３２】
制御部２０は、ロボット１０の全体を制御する処理を行う。制御部２０は、ロボット１０の本体とは離れた場所に設置してもよいし、ロボット１０に内蔵してもよい。制御部２０がロボット１０の本体と離れた場所に設置されている場合には、制御部２０は、有線又は無線でロボット１０と接続される。
【００３３】
第１撮像部３０及び第２撮像部４０は、アーム１１の作業領域付近をそれぞれ異なる角度から撮像して、画像データを生成するユニットである。第１撮像部３０及び第２撮像部４０は、例えば、カメラを含み、作業台、天井、壁などに設けられる。第１撮像部３０及び第２撮像部４０としては、可視光カメラ、赤外線カメラ等を採用することができる。第１撮像部３０及び第２撮像部４０は制御部２０に接続され、第１撮像部３０及び第２撮像部４０により撮像された画像は制御部２０に入力される。なお、第１撮像部３０及び第２撮像部４０は、制御部２０ではなくロボット１０に接続されるようにしてもよいし、ロボット１０に内蔵されるようにしてもよい。この場合には、第１撮像部３０及び第２撮像部４０により撮像された画像は、ロボット１０を介して制御部２０に入力される。
【００３４】
次に、ロボットシステム１の機能構成例について説明する。図２は、ロボットシステム１の機能ブロック図の一例を示す図である。
【００３５】
ロボット１０は、アクチュエーターのエンコーダー値、及びセンサーのセンサー値等に基づいてアーム１１を制御する動作制御部１０１を備える。
【００３６】
動作制御部１０１は、制御部２０から出力された情報と、アクチュエーターのエンコーダー値、及びセンサーのセンサー値等とに基づいて、制御部２０から出力された位置にアーム１１を移動させるように、アクチュエーターを駆動させる。エンドポイントの現在位置は、ジョイント１２等に設けられたアクチュエーターにおけるエンコーダー値等から求めることができる。
【００３７】
制御部２０は、主として、位置制御部２００と、ビジュアルサーボ部２１０と、駆動制御部２２０とを備える。位置制御部２００は、主として、軌道情報生成部２０１と、軌道情報取得部２０２と、第１制御部２０３とを備える。ビジュアルサーボ部２１０は、主として画像取得部２１１と、画像処理部２１２と、第２制御部２１３とを備える。
【００３８】
位置制御部２００は、軌道に沿ってアーム１１を移動させる位置制御を実行する。
【００３９】
軌道情報生成部２０１は、軌道情報を生成する。軌道情報は、複数の教示位置（例えば、現在のエンドポイントの位置、エンドポイントを移動させたい位置（目標位置）、エンドポイントの最終的な目標位置（ゴール位置）等）を所定の順番で結ぶことで形成される。したがって、軌道情報には、途中の目標位置である経由点と、エンドポイントの最終的な目標位置であるゴール位置に関する情報が含まれる。
【００４０】
また、軌道情報は、途中の目標位置である経由点、エンドポイントの最終的な目標位置であるゴール位置等の位置に関する情報と、これらの位置にエンドポイントが移動される時間に関する情報とを用いて規定される。すなわち、軌道情報は、時間と位置との情報を含む情報である。なお、軌道情報の生成は、一般的であるため説明を省略する。
【００４１】
軌道情報取得部２０２は、軌道情報を取得する。軌道情報取得部２０２が取得する軌道情報は、軌道情報生成部２０１が生成した軌道情報でもよいし、メモリー２２（後の説明、図４等参照）に保持されているものでもよい。メモリー２２に保持される軌道情報は、入力装置２５等を介して入力されてもよい。
【００４２】
第１制御部２０３は、軌道情報取得部２０２により取得された軌道情報に基づいて、エンドポイントの軌道を設定する。
【００４３】
また、第１制御部２０３は、エンドポイントの軌道に基づいてアーム１１の次の移動位置、すなわちジョイント１２に設けられた各アクチュエーターの目標角度を決定する。また、第１制御部２０３は、目標角度だけアーム１１を移動させるような指令値を生成し、駆動制御部２２０へ出力する。この結果、位置制御によりアーム１１がある時点の姿勢（第１の姿勢）から次の時点の姿勢（第２の姿勢）へと移動される。なお、第１制御部２０３が行う処理は、一般的な内容であるため、詳細な説明を省略する。
【００４４】
ビジュアルサーボ部２１０は、第１撮像部３０と、第２撮像部４０が撮像した画像に基づいて、目標物との相対的な位置の変化を視覚情報として計測し、それをフィードバック情報として用いることによって目標物を追跡する制御手法であるいわゆるビジュアルサーボを実行して、アーム１１を移動させる。
【００４５】
なお、ビジュアルサーボとして、視差が生じるような２枚の画像を利用して画像を立体として認識させるステレオグラム等の方法を用いて計算した対象の３次元位置情報に基づいてロボットを制御する位置ベース法や、直交する方向から２個の撮像部で撮像した画像と、予め保持している各撮像部のゴール画像との差がゼロになる（各画像の画素数分の誤差行列がゼロになる）ようにロボットを制御する特徴ベース法等の方法を用いることができる。例えば、本実施の形態では、特徴ベース法を採用する。なお、特徴ベース法は、１台の撮像部を用いて行うことができるが、精度を向上させるために２台の撮像部を用いることが望ましい。
【００４６】
画像取得部２１１は、第１撮像部３０が撮像した画像（以下、第１画像という）及び第２撮像部４０が撮像した画像（以下、第２画像という）を取得する。画像取得部２１１が取得した第１画像及び第２画像は、画像処理部２１２に出力される。
【００４７】
画像処理部２１２は、画像取得部２１１から取得した第１画像及び第２画像からエンドポイントの先端を認識し、エンドポイントを含む画像を抽出する。なお、画像処理部２１２が行う画像認識処理は、一般的な様々な技術を用いることができるため、説明を省略する。
【００４８】
第２制御部２１３は、画像処理部２１２により抽出された画像（以下、現在画像という）と、エンドポイントが目標位置にある時の画像（以下、目標画像という）とに基づいてエンドポイントの軌道、すなわちエンドポイントの移動量及び移動方向を設定する。なお、目標画像は、予め取得したものをメモリー２２等に記憶しておけばよい。
【００４９】
また、第２制御部２１３は、エンドポイントの移動量及び移動方向に基づいて、ジョイント１２に設けられた各アクチュエーターの目標角度を決定する。さらに、第２制御部２１３は、目標角度だけアーム１１を移動させるような指令値を生成し、駆動制御部２２０へ出力する。この結果、ビジュアルサーボによりアーム１１が第１の姿勢から第２の姿勢へと移動される。なお、第２制御部２１３が行う処理は、一般的な内容であるため、詳細な説明を省略する。
【００５０】
なお、関節を持つロボット１０では、各関節の角度を決定すると、フォワードキネマティクス処理によりエンドポイントの位置は一意に決定される。つまり、Ｎ関節ロボットではＮ個の関節角度により１つの目標位置を表現できることになるから、当該Ｎ個の関節角度の組を１つの目標関節角度とすれば、エンドポイントの軌道を関節角度の集合と考えることができる。よって、第１制御部２０３及び第２制御部２１３から出力される指令値は、位置に関する値（目標位置）であってもよいし、関節の角度に関する値（目標角度）であってもよい。
【００５１】
駆動制御部２２０は、第１制御部２０３又は第２制御部２１３から取得した情報に基づいて、エンドポイントの位置（すなわち、アーム１１）を移動させるように、動作制御部１０１に指示を出力する。駆動制御部２２０が行う処理の詳細については、後に詳述する。
【００５２】
図３は、ロボットシステム１のデータフロー図である。
【００５３】
位置制御部２００においては、位置制御によりロボットの各関節を目標角度に近づける為のフィードバックループが回っている。第１制御部２０３は、軌道情報取得部２０２により取得された軌道情報等に基づいて指令値（ここでは目標角度）を生成する。
【００５４】
ビジュアルサーボ部２１０においては、第１撮像部３０及び第２撮像部４０からの情報を用いて目標位置に近づけるためのビジュアルフィードバックループが回っている。第２制御部２１３は、目標位置に関する情報として目標画像を取得する。第２制御部２１３は、現在画像及び現在画像上における目標位置は、画像上における座標系で表されているため、これをロボットにおける座標系に変換する。第２制御部２１３は、変換後の現在の現在画像及び目標画像に基づいて、指令値（ここでは目標角度）を生成する。
【００５５】
駆動制御部２２０は、スイッチを内蔵している。駆動制御部２２０は、スイッチを用いて、第１制御部２０３が生成した指令値を動作制御部１０１に出力するか、第２制御部２１３が生成した指令値を動作制御部１０１に出力するか、を切り替える。第１制御部２０３が生成した指令値を動作制御部１０１に出力する側にスイッチが切り替えられている場合には、第１制御部２０３が生成した指令値が動作制御部１０１に出力される。第２制御部２１３が生成した指令値を動作制御部１０１に出力する側にスイッチが切り替えられている場合には、第２制御部２１３が生成した指令値が動作制御部１０１に出力される。
【００５６】
動作制御部１０１は、制御部２０から指令値（目標角度）を取得する。動作制御部１０１は、ジョイント１２等に設けられたアクチュエーターにおけるエンコーダー値等に基づいてエンドポイントの現在角度を取得し、目標角度と現在角度の差分（偏差角度）を算出する。また、動作制御部１０１は、例えば、偏差角度に基づいてアーム１１の移動速度を算出（偏差角度が大きいほど移動速度が速い）し、算出した移動速度で算出した偏差角度だけアーム１１を移動させる。
【００５７】
図４は、制御部２０のハードウェア構成の一例を示す図である。図示するように、例えばコンピューターなどで構成される制御部２０は、演算装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、揮発性の記憶装置であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）や不揮発性の記憶装置であるＲＯＭ（Ｒｅａｄ  ｏｎｌｙ  Ｍｅｍｏｒｙ）からなるメモリー２２と、外部記憶装置２３と、ロボット１０等の外部の装置と通信を行う通信装置２４と、マウスやキーボード等の入力装置２５と、ディスプレイ等の出力装置２６と、制御部２０と他のユニットを接続するインターフェース（Ｉ／Ｆ）２７とを備える。
【００５８】
上記の各機能部は、例えば、ＣＰＵ２１がメモリー２２に格納された所定のプログラムをメモリー２２に読み出して実行することにより実現される。なお、所定のプログラムは、例えば、予めメモリー２２にインストールされてもよいし、通信装置２４を介してネットワークからダウンロードされてインストール又は更新されてもよい。
【００５９】
以上のロボットシステム１の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。また、一般的なロボットシステムが備える構成を排除するものではない。
【００６０】
次に、本実施形態における、上記構成からなるロボットシステム１の特徴的な処理について説明する。本実施の形態では、図１に示すような対象物Ｏ１、Ｏ２、Ｏ３を、ハンドアイカメラ１５を用いて順番に目視検査を行う作業を例に説明する。
【００６１】
図５は、ロボットシステム１の処理の流れを示すフローチャートである。図６（Ａ）は、対象物Ｏ１、Ｏ２、Ｏ３と、エンドポイントの軌道との関係を示す図である。
【００６２】
制御部２０は、図示しないボタン等を介して制御開始指示が入力されると、位置制御によりアーム１１を制御する（ステップＳ１００）。具体的には、駆動制御部２２０は、第１制御部２０３から出力される値（以下、位置制御による指令値という）を動作制御部１０１に出力する。すると、動作制御部１０１は、位置制御による指令値に基づいてアーム１１（すなわちエンドポイント）を移動させる。なお、ステップＳ１００においては、スタート位置（制御開始位置）、経由点、ゴール位置（図６（Ａ）参照）等に基づいて生成された軌道情報（以下、当初軌道情報という）を軌道情報取得部２０２が取得し、この取得された軌道情報に基づいて第１制御部２０３が位置制御を行う。
【００６３】
次に、第１制御部２０３は、位置制御によりエンドポイントが移動された結果、当初軌道情報における最初の経由点（ここでは、位置１）にエンドポイントが移動したか否かを判定する（ステップＳ１０２）。位置１の位置を示す情報は、当初軌道情報に含まれている。位置１は、当初軌道情報において、対象物Ｏ１が配置された位置である。
【００６４】
エンドポイントが経由点に移動していない場合（ステップＳ１０２でＮＯ）には、制御部２０は、ステップＳ１００の処理を繰り返す。
【００６５】
エンドポイントが経由点に移動した場合（ステップＳ１０２でＹＥＳ）には、駆動制御部２２０は、ビジュアルサーボを用いてアーム１１を制御する（ステップＳ１０４）。具体的には、駆動制御部２２０は、第２制御部２１３から出力される値（以下、ビジュアルサーボによる指令値という）を動作制御部１０１に出力する。すると、動作制御部１０１は、ビジュアルサーボによる指令値に基づいてアーム１１（すなわちエンドポイント）を移動させる。
【００６６】
図６（Ａ）に示すように、ステップＳ１００において使用した軌道情報においては、位置１に対象物Ｏ１が設置され、位置２に対象物Ｏ２が設置され、位置３に対象物Ｏ３が設置されている。しかしながら、実際には、位置１αに対象物Ｏ１が設置され、位置２αに対象物Ｏ２が設置され、位置３αに対象物Ｏ３が設置されている。ここで、対象物Ｏ１、Ｏ２、Ｏ３は同一平面（ＸＹ平面）上にあるとし、一定のＺ方向位置にハンドアイカメラ１５があるとする。
【００６７】
図６（Ｂ）に示す画像が目標画像として与えられている場合には、第２制御部２１３は、位置１から位置１αへ向けてエンドポイントを移動させる。このように、ビジュアルサーボを用いれば、対象物の位置がずれたとしても、対象物の直上にエンドポイントを移動することができる。また、ステップＳ１０２とステップＳ１０４との間で現在画像、目標画像等を使用しないため、ステップＳ１０２からステップＳ１０４へ早く処理を進めることができる。
【００６８】
次に、第１制御部２０３は、ビジュアルサーボによりエンドポイントが移動された結果、エンドポイントがビジュアルサーボにおける目標位置（例えば、位置１α）に到達したか否かを判定する（ステップＳ１０６）。
【００６９】
エンドポイントが目標位置に到達していない場合（ステップＳ１０６でＮＯ）には、制御部２０は、ステップＳ１０４の処理を繰り返す。
【００７０】
エンドポイントが目標位置に到達した場合（ステップＳ１０６でＹＥＳ）には、駆動制御部２２０は、動作制御部１０１にエンドポイントが位置１αに到達したことを出力する。すると、動作制御部１０１は、アーム１１を用いた作業を行う（ステップＳ１０８）。本実施の形態における作業は、ハンドアイカメラ１５を用いて対象物Ｏ１を撮影することである。
【００７１】
作業が終わった（ステップＳ１０８）ら、動作制御部１０１から制御部２０に作業が終わったことが出力される。すると、軌道情報生成部２０１は、現在位置（ここでは、位置１α）から、当初軌道情報において既に通過した経由点の次の経由点への軌道情報を生成する（ステップＳ１１０）。例えば、ステップＳ１０２で用いた最初の経由点の次の経由点は、位置２である。したがって、軌道情報生成部２０１は、現在位置である位置１αから位置２への軌道情報を生成する。
【００７２】
軌道情報取得部２０２は、ステップＳ１１０で生成された軌道情報を取得する。第１制御部２０３は、ステップＳ１１０で生成された軌道情報及び当初軌道情報に基づいて、位置制御によりアーム１１を制御する（ステップＳ１１２）。位置制御によりアーム１１を制御する方法は、ステップＳ１００と同じであるため、説明を省略する。
【００７３】
次に、第１制御部２０３は、位置制御によりエンドポイントが移動された結果、ステップＳ１１０で生成された軌道情報における目標位置、すなわち当初軌道情報における次の経由点にエンドポイントが移動したか否かを判定する（ステップＳ１１４）。
【００７４】
次の経由点にエンドポイントが移動していない場合（ステップＳ１１４でＮＯ）には、制御部２０は、ステップＳ１１２に処理を戻す。
【００７５】
次の経由点にエンドポイントが移動した場合（ステップＳ１１４でＹＥＳ）には、制御部２０は、ステップＳ１１４で移動した経由点がゴール位置であるか否かを判定する（ステップＳ１１６）。
【００７６】
ステップＳ１１４で移動した経由点がゴール位置でない場合（ステップＳ１１６でＮＯ）には、制御部２０は、ステップＳ１０４に処理を戻す。例えば、ステップＳ１１０で生成された軌道情報における目標位置が位置２である場合には、ステップＳ１１６ではＮＯとなる。この場合には、ステップＳ１０４に戻って、ビジュアルサーボ（ステップＳ１０４）によりエンドポイントが位置２αへ移動される。目標位置（位置２α）へエンドポイントが移動した（ステップＳ１０６でＹＥＳ）ら、アーム１１により作業が行われる（ステップＳ１０８）。そして、位置２αから次の経由点（ここでは、位置３）への軌道情報が生成され（ステップＳ１１０）、位置制御によりアームが移動される（ステップＳ１１２）。
【００７７】
ステップＳ１１４で移動した経由点がゴール位置である場合（ステップＳ１１６でＹＥＳ）には、制御部２０は処理を終了する。
【００７８】
本実施の形態によれば、軌道情報に基づいて位置制御とビジュアルサーボとを切り替える（画像を用いない）ため、処理時間を短縮することができる。
【００７９】
また、本実施の形態によれば、位置制御からビジュアルサーボへ切り替える位置をあらかじめ決めておくため、判定を行う必要が無い。したがって、処理時間を短縮することができる。
【００８０】
また、本実施の形態では、位置制御からビジュアルサーボへ切り替える位置（切り替え位置）を当初軌道情報に含める、すなわちあらかじめ切り替え位置を設定することができる。このように、位置情報を切り替えに用いることで、切り替え位置の設定を容易に行うことができる。
【００８１】
なお、本実施の形態では、ステップＳ１１０において、軌道情報生成部２０１が、現在位置から、当初軌道情報において既に通過した経由点の次の経由点への軌道情報を生成したが、軌道情報生成部２０１がステップＳ１１０で生成する軌道情報はこれに限られない。例えば、ステップＳ１１０において、軌道情報生成部２０１が、現在位置から、当初軌道情報において既に通過した経由点のうちの最もゴール位置に近い経由点へ戻ってから次の経由点に移動するような軌道情報を生成してもよい。
【００８２】
図７は、第１の実施の形態の変形例に係る、位置制御及びビジュアルサーボによりアーム１１を制御する場合における、エンドポイントの軌道を説明する図である。図７においては、ステップＳ１１０において、軌道情報生成部２０１は、現在位置から、当初軌道情報において既に通過した経由点のうちの最もゴール位置に近い経由点への軌道情報を生成する。例えば、ビジュアルサーボ（ステップＳ１０４）によりエンドポイントが位置２から位置２αへ移動された（ステップＳ１０６でＹＥＳ）ら、アーム１１により作業が行われる（ステップＳ１０８）。そして、位置２αから、当初軌道情報において既に通過した経由点のうちの最もゴール位置に近い経由点（ここでは、位置２）への軌道情報が生成される（ステップＳ１１０）。また、当初軌道情報において既に通過した経由点のうちの最もゴール位置に近い経由点（位置２）から当初軌道情報における次の経由点（位置３）への軌道情報が生成され（ステップＳ１１０）、位置制御によりアームが移動される（ステップＳ１１２）。この場合に、位置２αから位置２への軌道情報は、ビジュアルサーボにより位置２から位置２αへエンドポイントを移動させる（ステップＳ１０４）時の軌道を記憶することにより生成することができる。また、位置２から位置３への軌道情報については、当初軌道情報を用いることができる。したがって、この場合には、処理の途中で、新たに軌道生成をする必要がないという効果がある。
【００８３】
また、本実施の形態では、軌道情報のうちの位置の情報に基づいてアームを制御したが、軌道情報のうちの時間の情報に基づいてアームを制御してもよい。例えば、エンドポイントを一定速度で移動させているときに、一定時間おきに検査を行う場合等が考えられる。
【００８４】
軌道情報は、エンドポイントを移動させてから経過した時間と、その時間におけるエンドポイントの位置との関係とを用いて規定される。したがって、図５において、経由点に移動したか判定する（ステップＳ１０２、Ｓ１１４）代わりに、位置制御を開始してから所定時間経過したかを判定するようにすればよい。
【００８５】
図８は、軌道情報のうちの時間の情報に基づいてアームを制御する場合の処理の流れを示すフローチャートである。
【００８６】
制御部２０は、図示しないボタン等を介して制御開始指示が入力されると、位置制御によりアーム１１を制御する（ステップＳ１００）。そして、第１制御部２０３は、ステップＳ１００の処理を開始してから所定時間経過したか否かを判定する（ステップＳ１０１）。
【００８７】
ステップＳ１００の処理を開始してから所定時間（時間Ｘとする）経過していない場合（ステップＳ１０１でＮＯ）には、制御部２０は、ステップＳ１００の処理を繰り返す。
【００８８】
ステップＳ１００の処理を開始してから所定時間経過した場合（ステップＳ１０１でＹＥＳ）には、駆動制御部２２０は、ビジュアルサーボを用いてアーム１１を制御する（ステップＳ１０４）。
【００８９】
次に、第２制御部２１３は、ビジュアルサーボによりエンドポイントが移動された結果、エンドポイントがビジュアルサーボにおける目標位置に到達したか否かを判定する（ステップＳ１０６）。
【００９０】
エンドポイントがビジュアルサーボにおける目標位置に到達していない場合（ステップＳ１０６でＮＯ）には、制御部２０は、ステップＳ１０４の処理を繰り返す。
【００９１】
エンドポイントがビジュアルサーボにおける目標位置に到達した場合（ステップＳ１０６でＹＥＳ）には、動作制御部１０１は、アーム１１を用いた作業を行う（ステップＳ１０８）。
【００９２】
作業が終わった（ステップＳ１０８）ら、軌道情報生成部２０１は、現在位置から、当初軌道情報におけるステップＳ１００の処理開始から任意の時間（例えば、時間２Ｘ）経過した時間の位置への軌道情報を生成する（ステップＳ１１１）。
【００９３】
軌道情報取得部２０２は、ステップＳ１１１で生成された軌道情報を取得する。第１制御部２０３は、軌道情報取得部２０２が取得したステップＳ１１１で生成された軌道情報に基づいて、位置制御によりアーム１１を制御する（ステップＳ１１２）。
【００９４】
次に、第１制御部２０３は、ステップＳ１１２の処理を開始してから所定時間経過したしたか否かを判定する（ステップＳ１１５）。
【００９５】
ステップＳ１１２の処理を開始してから所定時間経過していない場合（ステップＳ１１５でＮＯ）には、制御部２０は、ステップＳ１１２に処理を戻す。
【００９６】
ステップＳ１１２の処理を開始してから所定時間経過した場合（ステップＳ１１５でＹＥＳ）には、制御部２０は、当該所定時間経過したときのエンドポイントの位置がゴール位置であるか否かを判定する（ステップＳ１１６）。
【００９７】
所定時間経過したときのエンドポイントの位置がゴール位置でない場合（ステップＳ１１６でＮＯ）には、制御部２０は、ステップＳ１０４に処理を戻す。所定時間経過したときのエンドポイントの位置がゴール位置である場合（ステップＳ１１６でＹＥＳ）には、制御部２０は処理を終了する。
【００９８】
この変形例においても、軌道情報のうちの位置の情報に基づいて位置制御とビジュアルサーボとを切り替えた場合と同様、処理時間を短縮することができる。ただし、位置の設定の方がユーザーにとって容易であるため、図５に示すように、軌道情報のうちの位置の情報に基づいて位置制御とビジュアルサーボとを切り替えることが望ましい。
【００９９】
＜第２の実施形態＞
本発明の第１の実施形態は、軌道情報のみに基づいてアームを制御したが、本発明の適用範囲はこれに限定されない。
【０１００】
本発明の第２の実施形態は、軌道情報と画像情報とに基づいてアームを制御する形態である。以下、本発明の第２の実施形態に係るロボットシステム２について説明する。なお、ロボットシステム２の構成は第１の実施形態のロボットシステム１と同一であるため、ロボットシステム２の構成についての説明を省略し、ロボットシステム２の処理について説明する。また、第１の実施形態と同一の部分については、同一の符号を付し、説明を省略する。
【０１０１】
図９は、ロボットシステム２の処理の流れを示すフローチャートである。図１０は、対象物Ｏ１、Ｏ２、Ｏ３と、エンドポイントの軌道との関係を示す図である。
【０１０２】
制御部２０は、図示しないボタン等を介して制御開始指示が入力されると、位置制御によりアーム１１を制御する（ステップＳ１００）。
【０１０３】
次に、第１制御部２０３は、位置制御によりエンドポイントが移動された結果、当初軌道情報における最初の経由点（ここでは、位置１）にエンドポイントが移動したか否かを判定する（ステップＳ１０２）。
【０１０４】
エンドポイントが経由点に移動していない場合（ステップＳ１０２でＮＯ）には、制御部２０は、ステップＳ１００の処理を繰り返す。
【０１０５】
エンドポイントが経由点に移動した場合（ステップＳ１０２でＹＥＳ）には、制御部２０は、エンドポイントが経由点に移動した時の現在画像（本発明の第１の現在画像に相当）と、目標画像との位置ズレが大きいか否かを判定する（ステップＳ１０３）。以下、ステップＳ１０３について、経由点が位置１の場合を例に詳細に説明する。
【０１０６】
画像取得部２１１は、エンドポイントが位置１に移動した時の目標画像を第１撮像部３０及び第２撮像部４０から取得し、画像処理部２１２は、エンドポイントが位置１に移動した時の現在画像を抽出する。
【０１０７】
第２制御部２１３は、この現在画像と、目標画像とを比較して評価関数の値を求める。例えば、評価関数として、現在画像の重心と、目標画像の重心との間の距離を採用することができる。第２制御部２１３は、評価関数の値が閾値を超えれば、現在画像と、目標画像との位置ズレが大きいと判定する。
【０１０８】
現在画像と、目標画像との位置ズレが大きい場合（ステップＳ１０３でＹＥＳ）には、駆動制御部２２０は、ビジュアルサーボを用いてアーム１１を制御する（ステップＳ１０４）。そして、第２制御部２１３は、ビジュアルサーボによりエンドポイントが移動された結果、エンドポイントがビジュアルサーボにおける目標位置（ここでは、位置１α）に到達したか否かを判定する（ステップＳ１０６）。
【０１０９】
エンドポイントが位置１αに到達していない場合（ステップＳ１０６でＮＯ）には、制御部２０は、ステップＳ１０４の処理を繰り返す。
【０１１０】
エンドポイントが位置１αに到達した場合（ステップＳ１０６でＹＥＳ）には、駆動制御部２２０は、動作制御部１０１にエンドポイントが位置１αに到達したことを出力する。すると、動作制御部１０１は、アーム１１を用いた作業を行う（ステップＳ１０８）。
【０１１１】
作業が終わった（ステップＳ１０８）ら、動作制御部１０１から制御部２０に作業が終わったことが出力される。すると、軌道情報生成部２０１は、現在位置（ここでは、位置１α）から、当初軌道情報において既に通過した経由点の次の経由点への軌道情報を生成する（ステップＳ１１０）。軌道情報取得部２０２は、ステップＳ１１０で生成された軌道情報を取得する。第１制御部２０３は、軌道情報取得部２０２が取得したステップＳ１１０で生成された軌道情報に基づいて、位置制御によりアーム１１を制御する（ステップＳ１１２）。
【０１１２】
現在画像と、目標画像との位置ズレが大きくない場合（ステップＳ１０３でＮＯ）には、動作制御部１０１は、アーム１１を用いた作業を行う（ステップＳ１０７）。ハンドアイカメラ１５を用いて対象物Ｏ３を撮影する作業を例に、ステップＳ１０７について説明する。
【０１１３】
目標画像においては、ハンドアイカメラ１５の画像中心に対象物Ｏ３が配置されている（図６（Ｂ）参照）。しかしながら、例えば、図１０に示すように、軌道情報における対象物Ｏ３の位置（位置３）と、実際に対象物Ｏ３がある位置（位置３α）との距離が近く、位置３においてハンドアイカメラ１５を用いて取得した画像に対象物Ｏ３が含まれれば、ビジュアルサーボによりエンドポイントを移動させる必要はない。
【０１１４】
したがって、閾値として、例えば、ハンドアイカメラ１５の画像内に対象物Ｏ３が含まれる値を設定しておけば、ビジュアルサーボによりエンドポイントの位置を移動させることなく、対象物Ｏ３を撮影することができる。なお、対象物Ｏ３を撮影する処理については、ステップＳ１０８と同じであるため、説明を省略する。
【０１１５】
その後、第１制御部２０３は、軌道情報取得部２０２が取得した当初軌道情報に基づいて、位置制御によりアーム１１を制御する（ステップＳ１１２）。
【０１１６】
次に、第１制御部２０３は、位置制御によりエンドポイントが移動された結果、ステップＳ１１０で生成された軌道情報における目標位置、すなわち当初軌道情報における次の経由点にエンドポイントが移動したか否かを判定する（ステップＳ１１４）。
【０１１７】
次の経由点にエンドポイントが移動していない場合（ステップＳ１１４でＮＯ）には、制御部２０は、ステップＳ１１２に処理を戻す。
【０１１８】
次の経由点にエンドポイントが移動した場合（ステップＳ１１４でＹＥＳ）には、制御部２０は、ステップＳ１１４で移動した経由点がゴール位置であるか否かを判定する（ステップＳ１１６）。
【０１１９】
ステップＳ１１４で移動した経由点がゴール位置でない場合（ステップＳ１１６でＮＯ）には、制御部２０は、ステップＳ１０３に処理を戻す。ステップＳ１１４で移動した経由点がゴール位置である場合（ステップＳ１１６でＹＥＳ）には、制御部２０は処理を終了する。
【０１２０】
本実施の形態によれば、軌道情報と、画像情報とに基づいて位置制御からビジュアルサーボへ切り替えるため、ビジュアルサーボに切り替える必要がない場合には位置制御からビジュアルサーボへの切り替えを行わないようにすることができる。したがって、処理時間をさらに短縮することができる。
【０１２１】
また、本実施の形態によれば、位置制御からビジュアルサーボへの切り替えの基となる現在画像の取得位置をあらかじめ設定しておくため、画像の取得回数を減らし、処理時間を短縮することができる。
【０１２２】
また、本実施の形態によれば、位置制御からビジュアルサーボへの切り替えに現在画像と目標画像とを比較して求められる評価関数を用いるため、簡単に切り替えを判定することができる。
【０１２３】
なお、本実施の形態では、当初軌道情報のうちの位置の情報を用いて位置制御からビジュアルサーボへの切り替えの基となる現在画像を取得したが、当初軌道情報のうちの時間の情報を用いて位置制御からビジュアルサーボへの切り替えの基となる現在画像を取得してもよい。例えば、当初軌道情報の処理開始から処理終了までの時間を数等分（例えば、４等分）し、数等分された時間毎に位置制御からビジュアルサーボへの切り替えの基となる現在画像を取得してもよい。
【０１２４】
＜第３の実施形態＞
本発明の第１、２の実施形態は、軌道情報のうちの位置の情報に基づいてアームを制御したが、本発明の適用範囲はこれに限定されない。
【０１２５】
本発明の第３の実施形態は、軌道情報のうちの時間の情報と、画像情報とに基づいてアームを制御する形態である。以下、本発明の第３の実施形態について説明する。なお、第１の実施形態及び第２の実施形態と同一の部分については、同一の符号を付し、説明を省略する。なお、ロボットシステム３の構成は第１の実施形態のロボットシステム１と同一であるため、ロボットシステム３の構成についての説明を省略し、ロボットシステム３の処理について説明する。
【０１２６】
図１１は、ロボットシステム３の処理の流れを示すフローチャートである。
【０１２７】
制御部２０は、図示しないボタン等を介して制御開始指示が入力されると、位置制御によりアーム１１を制御する（ステップＳ１００）。
【０１２８】
第１制御部２０３は、ステップＳ１００の処理又はステップＳ２１４（後に詳述）の処置を開始してから所定時間経過したか否かを判定する（ステップＳ１０１）。ステップＳ１００の処理又はステップＳ２１４の処理を開始してから所定時間（時間Ｙとする）経過していない場合（ステップＳ１０１でＮＯ）には、制御部２０は、ステップＳ１０１の処理を繰り返す。
【０１２９】
ステップＳ１００の処理又はステップＳ２１４の処理を開始してから所定時間経過した場合（ステップＳ１０１でＹＥＳ）には、制御部２０は、ステップＳ１００の処理又はステップＳ２１４の処理を開始してから所定時間経過した時における現在画像（本発明の第１の現在画像に相当）と、所定時間経過後における目標画像との位置ズレが大きいか否かを判定する（ステップＳ２００）。ステップＳ２００については、後に詳述する。
【０１３０】
現在画像と、所定時間経過後における目標画像との位置ズレが大きい場合には、（ステップＳ２００でＹＥＳ）には、駆動制御部２２０は、ビジュアルサーボを用いてアーム１１を制御する（ステップＳ２０２）。そして、第２制御部２１３は、ビジュアルサーボによりエンドポイントが移動された結果、エンドポイントがビジュアルサーボにおける目標位置に到達したか否かを判定する（ステップＳ２０４）。
【０１３１】
エンドポイントが目標位置に到達していない場合（ステップＳ２０４でＮＯ）には、制御部２０は、ステップＳ２０２の処理を繰り返す。
【０１３２】
エンドポイントが目標位置に到達した場合（ステップＳ２０４でＹＥＳ）には、駆動制御部２２０は、動作制御部１０１にエンドポイントが目標位置に到達したことを出力する。すると、動作制御部１０１は、アーム１１を用いた作業を行う（ステップＳ２０６）。
【０１３３】
作業が終わった（ステップＳ２０６）ら、動作制御部１０１から制御部２０に作業が終わったことが出力される。すると、軌道情報生成部２０１は、現在位置から、当初軌道情報に戻る軌道情報を生成する（ステップＳ２０８）。軌道情報取得部２０２は、ステップＳ２０８で生成された軌道情報を取得する。第１制御部２０３は、軌道情報取得部２０２が取得したステップＳ２０８で生成された軌道情報に基づいて、位置制御によりアーム１１を制御する（ステップＳ２１０）。ステップＳ２０２〜Ｓ２０６の処理は、ステップＳ１０４〜Ｓ１０８の処理と同じである。また、ステップＳ２０８及びステップＳ２１０の処理は、第１の実施の形態の変形例（図７参照）と同じである。
【０１３４】
その後、第１制御部２０３は、当初軌道情報を用いて位置制御を行う（ステップＳ２１２）。
【０１３５】
現在画像と、所定時間経過後における目標画像との位置ズレが大きくない場合（ステップＳ２００でＮＯ）には、第１制御部２０３は、位置制御によりエンドポイントが移動された結果、エンドポイントが位置制御における目標位置に到達したか否かを判定する（ステップＳ２０５）。ここで、位置制御における目標位置とは、例えば、当初軌道情報において、対象物Ｏ１、Ｏ２、Ｏ３が配置されているとされた位置（図１２参照）である。
【０１３６】
エンドポイントが位置制御における目標位置に到達していない場合（ステップＳ２０５でＮＯ）には、第１制御部２０３は、ステップＳ１００に処理を戻す。
【０１３７】
エンドポイントが位置制御における目標位置に到達した場合（ステップＳ２０５でＹＥＳ）には、動作制御部１０１は、アーム１１を用いた作業を行う（ステップＳ１０７）。その後、第１制御部２０３は、当初軌道情報を用いて位置制御を行う（ステップＳ２１２）。
【０１３８】
制御部２０は、現在のエンドポイントの位置がゴール位置であるか否かを判定する（ステップＳ２１４）。現在のエンドポイントの位置がゴール位置でない場合（ステップＳ２１４でＮＯ）には、制御部２０は、ステップＳ１０１に処理を戻す。現在のエンドポイントの位置がゴール位置である場合（ステップＳ２１４でＹＥＳ）には、制御部２０は処理を終了する。
【０１３９】
ここで、ステップＳ２００の処理の詳細について説明する。図１２は、対象物Ｏ１、Ｏ２、Ｏ３と、エンドポイントの軌道との関係を示す図である。図１３は、図１２の所定の位置にエンドポイントがある時の目標画像及び現在画像の一例を示す図である。
【０１４０】
本実施の形態では、所定時間（時間Ｙ）毎の目標画像をメモリー２２等に記憶しておく。例えば、ステップＳ１００を開始してから時間Ｙが経過した時には、エンドポイントが位置Ａにあることを、当初軌道情報から知ることができる。したがって、制御部２０は、エンドポイントが位置Ａにある時の目標画像を予め取得し、メモリー２２等に記憶しておく。同様に、当初軌道情報においてステップＳ１００を開始してから時間２Ｙが経過した（エンドポイントが位置Ｂにある）時の目標画像、当初軌道情報においてステップＳ１００を開始してから時間３Ｙが経過した（エンドポイントが位置Ｃにある）時の目標画像、当初軌道情報においてステップＳ１００を開始してから時間４Ｙが経過した（エンドポイントが位置Ｄにある）時の目標画像・・・等を予め取得し、メモリー２２等に記憶しておく。
【０１４１】
当初軌道情報では、図１２における位置１（位置Ｄと同じ）に対象物Ｏ１がある。このため、エンドポイントが位置Ａにある時の目標画像は図１３（Ａ）に示すようになり、エンドポイントが位置Ｂにある時の目標画像は図１３（Ｂ）に示すようになり、エンドポイントが位置Ｃにある時の目標画像は図１３（Ｃ）に示すようになり、エンドポイントが位置Ｄにある時の目標画像は図１３（Ｄ）に示すようになる。
【０１４２】
画像取得部２１１は、ステップＳ１００を開始してから時間Ｙ（時間２Ｙ、３Ｙ、４Ｙ
・・・についても同様）が経過したときに、第１撮像部３０及び第２撮像部４０から画像を取得し、取得した画像から画像処理部２１２が現在画像を抽出する。
【０１４３】
そして、制御部２０は、ステップＳ１００を開始してから時間Ｙ（時間２Ｙ、３Ｙ、４Ｙ・・・についても同様）が経過した時の現在画像と、ステップＳ１００を開始してから時間Ｙ（時間２Ｙ、３Ｙ、４Ｙ・・・についても同様）が経過した後における目標画像と、の位置ズレが大きいか否かを判定する。制御部２０は、ステップＳ１０３と同様、現在画像の重心と目標画像の重心との間の距離を評価関数として採用し、評価関数の値が閾値を超えれば、現在画像と、目標画像との位置ズレが大きいと判定する。
【０１４４】
例えば、例えば位置１βに対象物Ｏ１がある場合には、ステップＳ１００を開始してから時間４Ｙが経過したときの目標画像は、図１３（Ｅ）に示すようになる。この場合には、現在画像の重心と目標画像の重心との距離ｄ１が閾値より小さい。したがって、ステップＳ２００では、位置ズレは大きくないと判定される。
【０１４５】
それに対し、例えば位置１γに対象物Ｏ１がある場合には、ステップＳ１００を開始してから時間４Ｙが経過したときの目標画像は、図１３（Ｆ）に示すようになる。この場合には、現在画像の重心と目標画像の重心との距離ｄ２が閾値より大きい。したがって、ステップＳ２００では、位置ズレは大きいと判定される。
【０１４６】
本実施の形態によれば、軌道情報と、画像情報とに基づいて位置制御からビジュアルサーボへ切り替えるため、ビジュアルサーボに切り替える必要がない場合には位置制御からビジュアルサーボへの切り替えを行わないようにすることができる。したがって、処理時間をさらに短縮することができる。
【０１４７】
また、本実施の形態では、位置制御からビジュアルサーボへ切り替えるための現在画像を一定時間おきに取得するため、例えば経由点（位置１等）において、当初軌道情報における経由点（位置１）の位置と、実際に対象物のある位置（位置１α）とが大きくずれてしまい、位置１における現在画像に対象物Ｏ１が写らずにビジュアルサーボに問題が発生する等の不具合を防ぐことができる。すなわち、本実施の形態では、当初軌道情報と実際の位置との位置ずれが大きい場合にも対応することができる。
【０１４８】
上記実施形態では、片腕ロボットを用いた場合について説明したが、双腕ロボットを用いた場合にも本発明を適用することができる。上記実施形態では、ロボットのアームの先端にエンドポイントが設けられた場合について説明したが、ロボットに設けられるのはアームに限られない。例えば、複数のジョイントとリンクとにより構成され、ジョイントを動かすことで全体が動くマニピュレーターがロボットに設けられ、マニピュレーターの先端をエンドポイントとしてもよい。
【０１４９】
また、上記実施の形態では、第１撮像部３０及び第２撮像部４０の２個の撮像部を備えたが、撮像部は１つでもよい。
【０１５０】
また、上記実施の形態では、位置制御とビジュアルサーボとを切り替えたが、ビジュアルサーボへ切り替える前に行う制御は、位置制御に限定されない。本発明は、軌道情報を用いる制御である位置制御や力制御等の様々な制御と、ビジュアルサーボとの切り替えに適用することができる。
【０１５１】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。特に、本発明は、ロボットと、制御部及び撮像部とが別に設けられたロボットシステムとして提供してもよいし、ロボットに制御部等が含まれたロボットとして提供してもよいし、制御部のみ、又は制御部及び撮像部からなるロボット制御装置として提供してもよい。また、本発明は、ロボット等を制御するプログラムやプログラムを記憶した記憶媒体として提供することもできる。
【符号の説明】
【０１５２】
１、２、３：ロボットシステム
１０      ：ロボット
１１      ：アーム
１２      ：ジョイント
１３      ：リンク
１５      ：ハンドアイカメラ
２０      ：制御部
２１      ：ＣＰＵ
２２      ：メモリー
２３      ：外部記憶装置
２４      ：通信装置
２５      ：入力装置
２６      ：出力装置
３０      ：第１撮像部
４０      ：第２撮像部
１０１    ：動作制御部
２００    ：位置制御部
２０１    ：軌道情報生成部
２０２    ：軌道情報取得部
２０３    ：第１制御部
２１０    ：ビジュアルサーボ部
２１１    ：画像取得部
２１２    ：画像処理部
２１３    ：第２制御部
２２０    ：駆動制御部
【図１】
2015174206.tif 000003
【図２】
2015174206.tif 000004
【図３】
2015174206.tif 000005
【図４】
2015174206.tif 000006
【図５】
2015174206.tif 000007
【図６】
2015174206.tif 000008
【図７】
2015174206.tif 000009
【図８】
2015174206.tif 000010
【図９】
2015174206.tif 000011
【図１０】
2015174206.tif 000012
【図１１】
2015174206.tif 000013
【図１２】
2015174206.tif 000014
【図１３】
2015174206.tif 000015