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