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