(57)【要約】【課題】高速、高精度、かつ制御系として安定に、マニュピュレータを対象物まで移動させること。【解決手段】装置は、カメラが取り付けられたロボットアームを、対象物まで移動させる移動制御を行う。すなわち、装置は、対象物が検知されていない場合、対象物の位置に基づいて予め設定された目標位置までの経路に沿って、マニュピュレータを移動させるティーチングプレイバック制御を実行する（ステップＳ１）。装置は、対象物が検知された場合、目標位置よりも対象物に近い位置を新たな目標位置として、新たな目標位置までの新たな経路を設定して、移動制御を切り替えるための切替条件が満たされるまでの間、新たな経路に沿って、マニュピュレータを移動させるティーチングプレイバック制御を実行する（ステップＳ３及びＳ４）。装置は、切替条件が満たされた場合、視覚サーボ制御を実行する（ステップＳ５）。【選択図】図１５
2011093055.tif 000002
【特許請求の範囲】
【請求項１】
対象物を視認可能な視覚装置が取り付けられたマニュピュレータを、前記対象物まで移動させる移動制御を行う情報処理装置が実行する情報処理方法において、
前記視覚装置により前記対象物が視認されていない場合、前記対象物の位置に基づいて予め設定された目標位置までの経路に沿って、前記マニュピュレータを移動させるティーチングプレイバック制御を実行する第１のステップと、
前記視覚装置により前記対象物が視認された場合、前記目標位置よりも前記対象物に近い位置を新たな目標位置として、前記新たな目標位置までの新たな経路を設定して、前記移動制御を切り替えるための切替条件が満たされるまでの間、前記新たな経路に沿って、前記マニュピュレータを移動させる前記ティーチングプレイバック制御を実行する第２のステップと、
前記切替条件が満たされた場合、前記視覚装置により視認された前記対象物の位置情報を取得し、前記位置情報をフィードバック情報として用いて前記マニュピュレータを前記対象物まで移動させる視覚サーボ制御を実行する第３のステップと、
を含むことを特徴とする情報処理方法。
【請求項２】
前記第２のステップは、
前記新たな目標位置の１以上の候補及び前記新たな経路の１以上の候補を設定する候補設定ステップと、
前記新たな目標位置の１以上の候補及び前記新たな経路の１以上の候補の少なくとも一部に基づいて、前記新たな経路を設定する経路設定ステップと、
前記切替条件が満たされたか否かを判定する判定ステップと、
前記切替条件が満たされていない場合、前記ティーチングプレイバック制御より、前記マニュピュレータを前記新たな経路に沿って移動させる移動ステップと、
前記切替条件が満たされた場合、前記移動制御を、前記ティーチングプレイバック制御から前記視覚サーボ制御に切り替える切替ステップと、
を含むことを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記候補設定ステップは、
前記視覚装置により視認された前記対象物の位置を検出する対象物検出ステップと、
前記マニュピュレータの位置を検出するマニュピュレータ検出ステップと、
前記対象物の位置及び前記マニュピュレータの位置に基づいて、前記新たな目標位置の候補の１つを設定する目標位置候補設定ステップと、
前記目標位置候補設定ステップの処理により設定された前記新たな目標位置の候補までの経路を、前記新たな経路の候補の１つとして設定する経路候補設定ステップと、
を含み、
前記対象物検出ステップ乃至前記経路候補設定ステップの一連の処理が１以上実行されることで、前記新たな目標位置の１以上の候補及び前記新たな経路の１以上の候補が設定される
ことを特徴とする請求項２に記載の情報処理方法。
【請求項４】
前記切替条件は、前記マニュピュレータの速度が一定以下になるという条件を含む
ことを特徴とする請求項１乃至３の何れか１項に記載の情報処理方法。
【請求項５】
前記切替条件は、前記マニュピュレータと前記対象物との位置の偏差が一定以下になるという条件を含む
ことを特徴とする請求項１乃至４の何れか１項に記載の情報処理方法。
【請求項６】
対象物を視認可能な視覚装置が取り付けられたマニュピュレータを、前記対象物まで移動させる移動制御を行う情報処理装置において、
予め設定された経路に沿って前記マニュピュレータを目標位置まで移動させるティーチングプレイバック制御を実行するティーチングプレイバック制御手段と、
前記視覚装置の出力情報に基づいて、前記対象物を検出する視覚処理手段と、
前記視覚処理手段により検出された前記対象物の位置情報をフィードバック情報として、前記マニュピュレータを前記対象物まで移動させる視覚サーボ制御を実行する視覚サーボ制御手段と、
所定の切替条件が満たされた場合、前記移動制御として、前記ティーチングプレイバック制御から前記視覚サーボ制御に切替える切替手段と、
を備え、
前記ティーチングプレイバック制御手段は、
前記視覚手段により前記対象物が検出されるまでの間、前記対象物の位置に基づいて予め設定された目標位置までの経路に沿って、前記マニュピュレータを移動させるティーチングプレイバック制御を実行し、
前記視覚手段により前記対象物が検出された場合、前記目標位置よりも前記対象物に近い位置を新たな目標位置として、前記新たな目標位置までの新たな経路を設定して、前記切替条件が満たされるまでの間、前記新たな経路に沿って、前記マニュピュレータを移動させる前記ティーチングプレイバック制御を実行する
ことを特徴とする情報処理装置。
【請求項７】
対象物を視認可能な視覚装置が取り付けられたマニュピュレータを、前記対象物まで移動させる移動制御を行うコンピュータに、
前記視覚装置により前記対象物が視認されていない場合、前記対象物の位置に基づいて予め設定された目標位置までの経路に沿って、前記マニュピュレータを移動させるティーチングプレイバック制御を実行する第１のステップと、
前記視覚装置により前記対象物が視認された場合、前記目標位置よりも前記対象物に近い位置を新たな目標位置として、前記新たな目標位置までの新たな経路を設定して、前記移動制御を切り替えるための切替条件が満たされるまでの間、前記新たな経路に沿って、前記マニュピュレータを移動させる前記ティーチングプレイバック制御を実行する第２のステップと、
前記切替条件が満たされた場合、前記視覚装置により視認された前記対象物の位置情報を取得し、前記位置情報をフィードバック情報として用いて前記マニュピュレータを前記対象物まで移動させる視覚サーボ制御を実行する第３のステップと、
を含む制御処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マニュピュレータの動作を制御する情報処理方法及び装置並びにプログラムに関する。詳しくは、高速、高精度、かつ制御系として安定に、マニュピュレータを対象物まで移動させることが可能な情報処理方法及び装置並びにプログラムに関する。
【背景技術】
【０００２】
従来より、マニュピュレータを備えるロボットアームは、自動車等の生産ラインに配設され、自動車のドア等をワークとして、ワークの組立時におけるボルト締めの作業を行っている。すなわち、ロボットアームは、ワークの表面に形成されている複数のボルト穴のうち、次にボルト締めを行うボルト穴を対象物として、対象物まで移動して、ボルトを挿入して捻じ込む作業を行う。
【０００３】
ロボットアームを対象物まで移動させる制御として、対象物の位置に基づいて予め設定された位置（以下、「教示位置」と称する）を目標位置として、目標位置までの予め定められた経路に沿って、ロボットアームを移動させるティーチングプレイバック制御が広く用いられている。ティーチングプレイバック制御とは、予め定められた経路に沿ってロボットアームを移動させる動作を事前に教示しておき、この動作を再現させるオープンループ制御をいう。
【０００４】
しかしながら、実際の作業においては、生産ライン上でのワーク搬送の停止精度や、ワークを生産ライン上で搬送するためのワークパレットの個体差等に起因して、ワークの位置や姿勢にズレが生ずる。このズレのために、教示位置と、ボルト穴の実際の位置との間に誤差が生ずる。
そこで、この誤差を解消すべく、特許文献１及び２には、ロボットアームの先端に取り付けられたカメラにより、ロボットアームの先端の位置とボルト穴の実際の位置との偏差を求め、この偏差に基づいて、ロボットアームの位置補正を行う手法が開示されている。この位置補正には、偏差に基づく値をフィードバック値として用いる所定のフィードバック制御、例えばＰＩＤ制御が用いられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−１７４４５７号公報
【特許文献２】特開２００１−２４６５８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１及び２を含む従来の手法を適用した場合、ロボットアームは、最初にティーチングプレイバック制御により教示位置まで移動すると、位置補正を行うためのフィードバック制御を実行する前に一旦静止する。このように、ロボットアームが一旦静止する分だけ、ロボットアームの移動開始から位置補正終了までに長時間を要するという課題が生ずる。
【０００７】
そこで、本出願人は、このような課題を解決すべく、ティーチングプレイバック制御によりロボットアームが移動している最中に、カメラ等の視覚装置により対象物が視認されると、位置補正用のフィードバック制御に切り替える、という手法を開発した。
【０００８】
さらに、本出願人は、かかる手法の位置補正用のフィードバック制御としてＰＩＤ制御を適用すると、ＰＩＤ制御に切り替えたときにロボットアームに不要な振動が生ずる場合があるという知見を得た。このため、本出願人は、かかる手法にとって好適な位置補正用のフィードバック制御として、ビジュアルインピーダンス制御を用いることを見出した。
ビジュアルインピーダンス制御とは、従来のインピーダンス制御に基づく制御であって、従来のインピーダンス制御では実測により与えられていた外力の代わりに、カメラ等の視覚装置の出力情報により与えられる仮想的な外力を用いる制御である。
すなわち、本出願人は、ティーチングプレイバック制御によるロボットアームが移動している最中に、カメラ等の視覚装置により対象物が視認されると、ビジュアルインピーダンス制御に切り替える、という制御手法を開発した。以下、かかる制御手法を「基礎制御手法」と称する。
基礎制御手法については、本出願人により特願２００８−３１０４１２号として既に出願されている。なお、ビジュアルインピーダンス制御は、特願２００８−３１０４１２号の願書に添付した明細書においては「非接触型インピーダンス制御」と称されている。
【０００９】
基礎制御手法を適用することで、ティーチングプレイバック制御の途中にフィードバック制御に切り替えたときのロボットアームの振動を抑制し、かつ、位置補正に要する時間を短縮することが可能になる。
基礎制御手法は、自動車のドアのボルト締め作業のみならず、マニュピュレータが移動すべき対象物が多数存在するワークの作業に対して広く一般的に適用することが可能である。
【００１０】
現状、このような基礎制御手法よりも更に、高速、高精度、かつ制御系として安定に、ロボットアームを対象物まで移動させる手法の実現が望まれている。
【００１１】
本発明は、マニュピュレータの動作を制御する情報処理方法及び装置並びにプログラムであって、基礎制御手法と比較してより一段と高速、高精度、かつ制御系として安定に、マニュピュレータを対象物まで移動させることが可能な情報処理方法及び装置並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の情報処理方法は、対象物（例えば実施形態におけるボルト穴２１）を視認可能な視覚装置（例えば実施形態におけるカメラ１３）が取り付けられたマニュピュレータ（例えば実施形態におけるロボットアーム１１を構成する多関節マニュピュレータ２３）を、前記対象物まで移動させる移動制御を行う情報処理装置（例えば実施形態における制御装置１５）が実行する情報処理方法において、
前記視覚装置により前記対象物が視認されていない場合、前記対象物の位置に基づいて予め設定された目標位置までの経路に沿って、前記マニュピュレータを移動させるティーチングプレイバック制御を実行する第１のステップ（例えば実施形態におけるボルト締め処理のステップＳ１）と、
前記視覚装置により前記対象物が視認された場合、前記目標位置よりも前記対象物に近い位置を新たな目標位置として、前記新たな目標位置までの新たな経路を設定して、前記移動制御を切り替えるための切替条件が満たされるまでの間、前記新たな経路に沿って、前記マニュピュレータを移動させる前記ティーチングプレイバック制御を実行する第２のステップ（例えば実施形態におけるボルト締め処理のステップＳ３及びＳ４）と、
前記切替条件が満たされた場合、前記視覚装置により視認された前記対象物の位置情報を取得し、前記位置情報をフィードバック情報として用いて前記マニュピュレータを前記対象物まで移動させる視覚サーボ制御を実行する第３のステップ（例えば実施形態におけるボルト締め処理のステップＳ５）と、
を含むことを特徴とする。
【００１３】
この発明によれば、ティーチングプレイバック制御を実行する第１のステップの処理中に対象物が視認された場合、視覚サーボ制御を実行する第３のステップに直ちに切り替わるのではなく、次のようなティーチングプレイバック制御を引き続き実行する第２のステップに切り替わる。すなわち、第２のステップとは、目標位置よりも対象物に近い位置を新たな目標位置として、新たな目標位置までの新たな経路を設定して、移動制御を切り替えるための切替条件が満たされるまでの間、新たな経路に沿って、マニュピュレータを移動させるティーチングプレイバック制御を実行するというステップである。そして、第２のステップによるティーチングプレイ制御が実行されている最中に切替条件が満たされると、第３のステップに切り替わる。
これにより、マニュピュレータの速度等の状態を一定の範囲内に収めて、視覚サーボ制御を開始することが可能になる。この「一定の範囲」は、切替条件を適切に設定することで、視覚サーボ制御にとって適切な範囲とすることが容易にできる。この場合、視覚サーボ制御が安定して適切に実行される。その結果、ティーチングプレイバック制御の実行中に対象物が視認された段階で直ちに視覚サーボ制御に切り替える場合と比較して、より一段と高速、高精度、かつ制御系として安定に、マニュピュレータを移動させることが可能になる。
【００１４】
この場合、前記第２のステップは、
前記新たな目標位置の１以上の候補及び前記新たな経路の１以上の候補を設定する候補設定ステップ（例えば実施形態におけるティーチングプレイバック制御の修正移動処理のステップＳ１１乃至Ｓ１７）と、
前記新たな目標位置の１以上の候補及び前記新たな経路の１以上の候補の少なくとも一部に基づいて、前記新たな経路を設定する経路設定ステップ（例えば実施形態におけるティーチングプレイバック制御の修正移動処理のステップＳ１８）と、
前記切替条件が満たされたか否かを判定する判定ステップ（例えば実施形態におけるティーチングプレイバック制御の修正移動処理のステップＳ２０）と、
前記切替条件が満たされていない場合、前記ティーチングプレイバック制御より、前記マニュピュレータを前記新たな経路に沿って移動させる移動ステップ（例えば実施形態におけるティーチングプレイバック制御の修正移動処理のステップＳ１９）と、
前記切替条件が満たされた場合、前記移動制御を、前記ティーチングプレイバック制御から前記視覚サーボ制御に切り替える切替ステップ（例えば実施形態におけるボルト締め処理のステップＳ４）と、
を含むようにすることができる。
【００１５】
この場合、前記候補設定ステップは、
前記視覚装置により視認された前記対象物の位置を検出する対象物検出ステップ（例えば実施形態におけるティーチングプレイバック制御の修正移動処理のステップＳ１３）と、
前記マニュピュレータの位置を検出するマニュピュレータ検出ステップ（例えば実施形態におけるティーチングプレイバック制御の修正移動処理のステップＳ１２）と、
前記対象物の位置及び前記マニュピュレータの位置に基づいて、前記新たな目標位置の候補の１つを設定する目標位置候補設定ステップ（例えば実施形態におけるティーチングプレイバック制御の修正移動処理のステップＳ１４）と、
前記目標位置候補設定ステップの処理により設定された前記新たな目標位置の候補までの経路を、前記新たな経路の候補の１つとして設定する経路候補設定ステップ（例えば実施形態におけるティーチングプレイバック制御の修正移動処理のステップＳ１５）と、
を含み、
前記対象物検出ステップ乃至前記経路候補設定ステップの一連の処理が１以上実行されることで、前記新たな目標位置の１以上の候補及び前記新たな経路の１以上の候補が設定されるようにすることができる。
【００１６】
この場合、前記切替条件は、前記マニュピュレータの速度が一定以下になるという第１の条件を含むようにすることもできるし、前記マニュピュレータと前記対象物との位置の偏差が一定以下になるという第２の条件を含むようにすることもできる。ここで、これらの第１の条件と第２の条件とは、相互に独立した条件であるため、各々単体で用いることもできるし、組合せて用いることもできる。
【００１７】
本発明の情報処理装置（例えば実施形態における制御装置１５）及びプログラム（例えば実施形態におけるＣＰＵ１０１により実行されるプログラム）は、上述の本発明の情報処理方法に対応する装置及びプログラムである。従って、本発明の情報処理装置及びプログラムも、上述の本発明の情報処理方法と同様の効果を奏することが可能になる。
【発明の効果】
【００１８】
本発明によれば、視覚装置が取り付けられたマニュピュレータを対象物まで移動させるために、ティーチングプレイバック制御の後に視覚サーボ制御を実行する場合において、マニュピュレータの速度等の状態を一定の範囲内に収めて、視覚サーボ制御を開始することが可能になる。この「一定の範囲」は、視覚サーボ制御に切り替える切替条件を適切に設定することで、視覚サーボ制御にとって適切な範囲とすることが容易にできる。この場合、視覚サーボ制御が安定して適切に実行されるので、高速、高精度、かつ制御系として安定に、マニュピュレータを移動させることが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係るロボットシステムの概略外観構成を示す斜視図である。
【図２】図１のロボットシステムの制御装置の機能的構成例を示す機能ブロック図である。
【図３】基礎制御手法が有する課題を説明するための図であって、基礎制御手法が適用されたロボットアームの概略構成を示す側面図である。
【図４】基礎制御手法が有する課題を説明するための図であって、基礎制御手法が適用されたロボットアームに取り付けられたカメラの撮影画像の例を示す図である。
【図５】基礎制御手法が有する課題を説明するための図であって、基礎制御手法が適用されたロボットアームの速度の時間推移の一例を示すタイミングチャートである。
【図６】本発明が適用される３ステップ移動制御手法を説明するための図であって、図１のロボットシステムのロボットアームの概略構成を示す側面図である。
【図７】本発明が適用される３ステップ移動制御手法を説明するための図であって、図１のロボットシステムのロボットアームの速度の時間推移の一例を示すタイミングチャートである。
【図８】本発明が適用される３ステップ移動制御手法を説明するための図であって、図１のロボットシステムのロボットアームの位置の目標位置との偏差の時間推移の一例を示すタイミングチャートである。
【図９】本発明が適用されるビジュアルインピーダンス制御のパラメータ可変設定手法を説明するための図であって、図１のロボットシステムのロボットアームの速度と、初期ブレーキ量との関係を示す図である。
【図１０】本発明が適用されるビジュアルインピーダンス制御のパラメータ可変設定手法を説明するための図であって、更新前のアクセル量と、更新後のアクセル量との関係を示す図である。
【図１１】本発明が適用されるビジュアルインピーダンス制御のパラメータ可変設定手法を説明するための図であって、図１のロボットシステムのロボットアームの速度の時間推移の一例を示すタイミングチャートである。
【図１２】本発明が適用されるビジュアルインピーダンス制御のパラメータ可変設定手法を説明するための図であって、図１のロボットシステムのロボットアームの位置の目標位置との偏差の時間推移の一例を示すタイミングチャートである。
【図１３】本発明が適用されるビジュアルインピーダンス制御のパラメータ可変設定手法を説明するための図であって、図１のロボットシステムのロボットアームの速度と、更新後のブレーキ量との関係を示す図である。
【図１４】図２の制御装置のハードウェアの構成例を示すブロック図である。
【図１５】図１４の制御装置によるボルト締め処理の流れの一例を示すフローチャートである。
【図１６】図１５のボルト締め処理のティーチングプレイバック制御の修正移動処理の流れの一例を示すフローチャートである。
【図１７】図１５のボルト締め処理のビジュアルフィードバック処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態を図面に基づいて説明する。
図１は、本発明の一実施形態に係るロボットシステム１の概略外観構成を示す斜視図である。
例えば、ロボットシステム１は、自動車の生産ラインに配設され、自動車のドア等をワーク２として、ワーク２の組立時におけるボルト締めを行う。すなわち、ワーク２の表面においては、Ｎ個の予め規定されている位置（以下、「規定位置」と称する）の各々にボルト穴２１−１乃至２１―Ｎ（図１にはボルト穴２１−１乃至２１−４のみ図示）が形成されている。なお、Ｎは、１以上の整数値であり、図１の例では４以上の整数値である。ロボットシステム１は、ボルト穴２１−１乃至２１―Ｎの各々に対して、ボルトを挿入して捻じ込む作業を行う。
なお、以下、ボルト穴２１−１乃至２１―Ｎを個々に区別する必要が無い場合、これらをまとめて「ボルト穴２１」と称する。
【００２１】
ロボットシステム１は、ロボットアーム１１と、エンドエフェクタ１２と、カメラ１３と、ロボットアーム駆動装置１４と、制御装置１５と、を備える。
【００２２】
ロボットアーム１１は、ロボットベース２２と、そのロボットベース２２に旋回可能に取り付けられる多関節マニュピュレータ２３と、を備える。
多関節マニュピュレータ２３は、関節３１ａ乃至３１ｄと、連結部材３２ａ乃至３２ｅと、各関節３１ａ乃至３１ｄを回転させるサーボモータ（図示せず）と、サーボモータの位置、速度、電流等の各種状態を検出する検出器（図示せず）と、を備える。
各サーボモータによる各関節３１ａ乃至３１ｄの回転動作と、それらの回転動作に連動する各連結部材３２ａ乃至３２ｅの移動動作との組合せにより、多関節マニュピュレータ２３の全体の動作、すなわちロボットアーム１１の全体の動作が実現される。
【００２３】
エンドエフェクタ１２は、多関節マニュピュレータ２３の連結部材３２ｅの先端に取り付けられ、ボルト穴２１に対してボルトを挿入して捻じ込む動作をする。
【００２４】
カメラ１３は、エンドエフェクタ１２の先端を画角の中心として撮影できるように、多関節マニュピュレータ２３の連結部材３２ｅの外周部に固定して取り付けられている。
カメラ１３は、エンドエフェクタ１２の先端の方向に対して、画角の範囲内にある画像を撮影する。以下、カメラ１３により撮影された画像を、「撮影画像」と称する。ここで、本実施形態では、画角の中心であるエンドエフェクタ１２の先端の位置が、ロボットアーム１１の位置として採用されている。これにより、撮影画像の中心位置がロボットアーム１１の位置となるため、後述する制御装置１５は、撮影画像の画像データに対して画像処理を施すことで、撮影画像に含まれる各被写体についての、ロボットアーム１１の位置に対する相対位置を容易に求めることができる。
【００２５】
ロボットアーム駆動装置１４には、ロボットアーム１１を目標位置まで移動させる指令（以下、「移動指令」と称する）が、後述する制御装置１５から供給される。そこで、ロボットアーム駆動装置１４は、移動指令に従って、多関節マニュピュレータ２３に内蔵された各検出器の検出値をフィードバック値として用いて、多関節マニュピュレータ２３に内蔵された各サーボモータに対するトルク（電流）制御を行う。これにより、多関節マニュピュレータ２３の全体の動作、すなわちロボットアーム１１の全体の動作が制御される。
ロボットアーム駆動装置１４は、このような制御中に、フィードバック値に基づいてロボットアーム１１の位置や速度等の各種状態を逐次検出し、その検出結果を状態情報として制御装置１５に供給する。
【００２６】
制御装置１５は、ロボットシステム１の全体の動作を制御する。
図２は、制御装置１５の機能的構成例を示す機能ブロック図である。
【００２７】
制御装置１５は、ロボットアーム制御部４１と、エンドエフェクタ制御部４２と、を備える。
ロボットアーム制御部４１は、ロボットアーム駆動装置１４を介して、ロボットアーム１１の移動を制御する。ロボットアーム１１は、この制御により、ボルト穴２１まで移動する。
エンドエフェクタ制御部４２は、ロボットアーム１１がボルト穴２１まで移動すると、エンドエフェクタ１２を制御する。エンドエフェクタ１２は、この制御により、ボルトをボルト穴２１に挿入して捻じ込む。
【００２８】
以下、ロボットアーム制御部４１の詳細について説明する。
ロボットアーム制御部４１は、ティーチングプレイバック制御部５１と、視覚サーボ制御部５２と、制御切替部５３と、画像処理部５４と、ロボットアーム状態取得部５５と、を備える。
【００２９】
ティーチングプレイバック制御部５１は、予め設定された所定の経路に沿ってロボットアーム１１を移動させるティーチングプレイバック制御を実行する。
ティーチングプレイバック制御部５１は、教示位置保持部６１と、目標位置決定部６２と、移動指令生成部６３と、を備える。
教示位置保持部６１は、ティーチングプレイバック制御で用いられる経路の情報を保持する。すなわち、予め教示により設定された１以上の教示位置を、予め設定された所定の順番で結ぶことで形成される経路が、ティーチングプレイバック制御において用いられている。従って、１以上の教示位置に関する情報、例えばその座標や経路内の順番を示す情報が、教示位置保持部６１に保持される。
目標位置決定部６２は、教示位置保持部６１の保持内容から、次回の教示位置を認識する。そして、目標位置決定部６２は、次回の教示位置に基づいて、ロボットアーム１１の次回の目標位置を決定し、移動指令生成部６３に通知する。なお、目標位置決定部６２による目標位置の決定手法の詳細については、図３乃至図８等の図面を参照して後述する。
移動指令生成部６３は、目標位置決定部６２から通知された目標位置に基づいて移動指令を生成し、制御切替部５３を介してロボットアーム駆動装置１４に供給する。すると、上述したように、ロボットアーム駆動装置１４は、この移動指令に従って、ロボットアーム１１を目標位置まで移動させる。
【００３０】
このようなティーチングプレイバック制御によりロボットアーム１１が目標位置に向けて移動している最中に所定の条件が満たされると、制御切替部５３は、ロボットアーム１１の動作の制御を、ティーチングプレイバック制御部５１によるティーチングプレイバック制御から、視覚サーボ制御部５２による視覚サーボ制御に切り替える。
なお、制御を切り替えるための所定の条件（以下、「制御切替条件」と称する）の具体例については、図７や図８を参照して後述する。
【００３１】
視覚サーボ制御部５２は、カメラ１３の撮影画像に基づく情報をフィードバック情報として用いる所定の視覚サーボ制御により、移動指令を生成して、制御切替部５３を介してロボットアーム駆動装置１４に供給する。
【００３２】
本実施形態では、視覚サーボ制御として、ビジュアルインピーダンス制御が用いられている。ビジュアルインピーダンス制御とは、従来のインピーダンス制御に基づいて、本出願人が開発し、特願２００８−３１０４１２号として既に特許出願をしている非接触型インピーダンス制御をいう。
【００３３】
従来のインピーダンス制御とは、例えばロボットのエンドエフェクタについての機械的インピーダンス、すなわち、質量（マス）、粘性（ダンパ）、及び弾性（バネ）を所望の値に設定して行う位置や力の制御をいう。具体的には、インピーダンス制御は、次の式（１）を用いて行われる。
【数１】
2011093055.tif 000003
・・・（１）
式（１）において、Ｍｄ，Ｄｄ，Ｋｄのそれぞれが、質量（マス）、粘性（ダンパ）、及び弾性（バネ）の各々のインピーダンスのパラメータを示している。Ｘは、ロボットのエンドエフェクタの位置を示し、Ｘｄは、ロボットのエンドエフェクタの目標位置を示している。Ｆは、ロボットのエンドエフェクタにかかる外力を示している。従来においては、質量Ｍｄ，粘性Ｄｄ，弾性Ｋｄのそれぞれは、所望の動特性が得られるようにソフトウェア上で設定されていた。
従来のインピーダンス制御では、ロボットのエンドエフェクタが物体に接触していることが前提とされる。このため、ロボットのエンドエフェクタに搭載されたセンサにより外力Ｆが実測され、その実測値がフィードバック値として用いられていた。このような物体の接触が前提となる従来のインピーダンス制御を、以下、「接触型インピーダンス制御」と称する。
【００３４】
これに対して、視覚サーボ制御部５２が実行するビジュアルインピーダンス制御は、ボルト穴２１に対するボルト締め作業の前に、ロボットアーム１１をボルト穴２１まで移動させるために用いられる。この場合、ロボットアーム１１は、ボルト穴２１が形成されたワーク２に接触しない状態で移動する。このように、ビジュアルインピーダンス制御とは、ロボットアーム１１等の物体が接触されないことが前提となるインピーダンス制御である。このため、ビジュアルインピーダンス制御は、特願２００８−３１０４１２号の願書に添付した明細書においては「非接触型インピーダンス制御」と称されている。
ビジュアルインピーダンス制御では、外力Ｆの実測はできないので、ロボットアーム１１の位置Ｘの目標位置Ｘｄに対する偏差（Ｘ−Ｘｄ）が、ロボットアーム１１のワーク２に対する仮想接触量として用いられる。そして、式（２）に示すように、この仮想接触量である偏差（Ｘ−Ｘｄ）を用いて、エンドエフェクタ１２にかかる仮想的な外力Ｆが算出される。
【数２】
2011093055.tif 000004
・・・（２）
式（２）において、右辺のｆは、偏差（Ｘ−Ｘｄ）を入力パラメータとする所定の関数を示している。具体的には例えば本実施形態では、式（２）として、次の式（３）が採用されている。なお、式（３）におけるλは所定の定数を示している。
【数３】
2011093055.tif 000005
・・・（３）
式（３）を式（１）に代入して変形すると、次の式（４）が得られる。
【数４】
2011093055.tif 000006
・・・（４）
式（４）におけるＦαは、次の式（５）に示す通り、偏差（Ｘ−Ｘｄ）により可変するパラメータ、すなわち、仮想的な外力Ｆに基づくパラメータである。
【数５】
2011093055.tif 000007
・・・（５）
パラメータＦαは、式（４）より、値が増加すると左辺の加速度を増加させる機能、すなわち、自動車の運転に例えるならばいわゆるアクセルの機能を有している。そこで、以下、パラメータＦαを、「アクセル量Ｆα」と称する。
一方、パラメータＤｄは、上述のごとく仮想の粘性（ダンパ）を示しているが、式（４）より、値が増加すると左辺の加速度を減少させる機能、すなわち、自動車の運転に例えるならばいわゆるブレーキの機能を有している。そこで、以下、パラメータＤｄを、「ブレーキ量Ｄｄ」と称する。
Ｖは、ロボットアーム１１の速度を示している。ロボットアーム１１の速度Ｖは、本実施形態ではロボットアーム駆動装置１４から制御装置１５に供給される状態情報に含まれている。
【００３５】
このように、ビジュアルインピーダンス制御の出力は、式（４）に示すように、ロボットアーム１１の加速度となる。すなわち、ロボットアーム１１に振動を与えないように目標加速度が設定され、式（４）の左辺の加速度が目標加速度と一致するように、式（４）の右辺の各種パラメータが設定される制御が、ビジュアルインピーダンス制御である。
式（４）の右辺の各種パラメータは、事前のテストに基づいて予め設定された値を採用してもよいし、ビジュアルインピーダンス制御により移動中のロボットアーム１１の運動状態に従って可変する値を採用してもよい。本実施形態では、仮想質量Ｍｄが予め設定されているのに対して、アクセル量Ｆα及びブレーキ量Ｄｄが、ビジュアルインピーダンス制御により移動中のロボットアーム１１の運動状態に従って可変する。アクセル量Ｆα及びブレーキ量Ｄｄの可変設定の手法については、図９乃至図１３を参照して後述する。
【００３６】
視覚サーボ制御部５２は、ビジュアルインピーダンス制御を実行すべく、パラメータ保持部６４と、パラメータ設定部６５と、視覚サーボ演算部６６と、移動指令生成部６７と、を備える。
【００３７】
パラメータ保持部６４は、式（４）の右辺の各種パラメータ又はそれらを導き出すためのパラメータを保持する。すなわち、式（４）の右辺の仮想の質量Ｍｄが、パラメータ保持部６４に保持される。また、本実施形態では、式（４）の右辺のアクセル量Ｆα又はブレーキ量Ｄｄを導き出すためのパラメータとして、後述する式（５）のパラメータλ，Ｋｄ、後述する式（６）のパラメータＳ１,Ｉ１、後述する式（７）のパラメータＣ１、及び後述する式（８）のパラメータＣ２が、パラメータ保持部６４に保持されている。
パラメータ設定部６５は、式（４）の右辺の各種パラメータを設定する。この設定のために、パラメータ保持部６４の保持内容、後述する画像処理部５４から供給される偏差（Ｘ−Ｘｄ）、及び、後述するロボットアーム状態取得部５５から供給される速度Ｖが用いられる。なお、アクセル量Ｆα及びブレーキ量Ｄｄの設定手法については、図９乃至図１３を参照して後述する。
視覚サーボ演算部６６は、パラメータ設定部６５により設定された各種パラメータを式（４）に代入して演算し、その演算結果を移動指令生成部６７に供給する。
移動指令生成部６７は、視覚サーボ演算部６６の演算結果に基づいて、移動指令を生成し、制御切替部５３を介してロボットアーム駆動装置１４に供給する。すなわち、視覚サーボ演算部６６の演算結果とは、式（４）の左辺に示すように加速度であるため、移動指令生成部６７は、この加速度を積分することで、位置指令としての移動指令を生成し、制御切替部５３を介してロボットアーム駆動装置１４に供給する。
移動指令が供給されたロボットアーム駆動装置１４は、上述したように、この移動指令に従って、ロボットアーム１１をボルト穴２１に向けて移動させる。ロボットアーム１１の位置とボルト穴２１の位置とが略一致すると、視覚サーボ制御部５２によるビジュアルインピーダンス制御は停止し、ロボットアーム１１の移動動作が停止する。すると、エンドエフェクタ制御部４２は、エンドエフェクタ１２を制御して、ボルトをボルト穴２１に挿入して捻じ込む。
【００３８】
画像処理部５４は、ビジュアルインピーダンス制御に用いる偏差（Ｘ−Ｘｄ）を検出すべく、対象物認識部６８と、誤差検出部６９と、を備えている。
対象物認識部６８は、カメラ１３から出力された画像データに基づいて、撮影画像の中から対象物を認識する。本実施形態では、対象物認識部６８は、ボルト穴２１を対象物として認識すると、その認識結果及び撮影画像の画像データを誤差検出部６９に供給する。
誤差検出部６９は、撮影画像の画像データに対して画像処理を施すことで、撮影画像に対象物として含まれるボルト穴２１の、ロボットアーム１１の位置Ｘ（画像の中心位置）に対する相対位置を求める。ここで、ボルト穴２１の実際の位置が、ロボットアーム１１の目標位置Ｘｄであることから、このような相対位置が、ビジュアルインピーダンス制御に用いられる偏差（Ｘ−Ｘｄ）に相当する。偏差（Ｘ−Ｘｄ）は、ビジュアルインピーダンス制御のフィードバック情報として視覚サーボ制御部５２に供給され、必要に応じて、制御切替条件の１つとして制御切替部５３に供給される。
【００３９】
ロボットアーム状態取得部５５は、ロボットアーム駆動装置１４から供給される状態情報を取得する。例えば、状態情報に含まれる速度Ｖは、ビジュアルインピーダンス制御に用いるべく視覚サーボ制御部５２に供給され、必要に応じて、制御切替条件の１つとして制御切替部５３に供給される。
【００４０】
以上、図２の制御装置１５の機能的構成例について説明した。
次に、図３乃至図８を参照して、本出願人により開発され、特願２００８−３１０４１２号として既に出願された基礎制御手法が有する課題を説明し、引き続き、その課題を解決可能な手法について説明する。
はじめに、図１に示すロボットシステム１に対して、図２の制御装置１５の代わりに基礎制御手法が適用された制御装置（以下、「基礎制御装置」と称する）が設けられたロボットシステムを仮定して、図３乃至図５を参照して基礎制御手法が有する課題について説明する。
図３に示すように、基礎制御手法におけるティーチングプレイバック制御では、予め設定された教示位置Ｐ１を目標位置として、ロボットアーム１１は移動していく。
この間、カメラ１３は、撮影画像の画像データを基礎制御装置に逐次出力している。ロボットアーム１１が図３中下方の位置に存在する場合には、カメラ１３の画角内にボルト穴２１が存在しない。従って、このような場合、図示はしないが、撮影画像にはボルト穴２１は含まれていないため、基礎制御装置はボルト穴２１を検出しない。
その後、ロボットアーム１１が教示位置Ｐ１の近傍に移動してきて、例えば図３中上方の位置に到達すると、カメラ１３の画角内にボルト穴２１が現れるようになり、図４に示すように、撮影画像の被写体として、ボルト穴２１が含まれるようになる。このような場合、基礎制御装置は、撮影画像からボルト穴２１を認識し、そのボルト穴２１の中心位置に対する相対位置Ｐ３を求める。なお、相対位置Ｐ３の座標は、カメラ１３の画角内の座標系（以下、「カメラ座標系」と称する）により表現される。
ここで、図４に示す撮影画像の中心位置は、上述の如く、ロボットアーム１１の位置Ｘである。また、ロボットアーム１１の真の目標位置とは、ティーチングプレイバック制御の教示位置Ｐ１ではなく、ボルト穴２１の位置Ｐ３である。従って、撮影画像における位置Ｐ３の座標が、ビジュアルインピーダンス制御に用いられる偏差（Ｘ−Ｘｄ）に相当する。従って、撮影画像にボルト穴２１が含まれるようになった時点、すなわち、基礎制御装置がボルト穴２１を検出できた時点で、理論上、ビジュアルインピーダンス制御の実行が可能になる。
【００４１】
このため、基礎制御手法では、ティーチングプレイバック制御からビジュアルインピーダンス制御に切り替える制御切替条件として、「ボルト穴２１を検出した」という条件が採用されていた。
すなわち、特許文献１や２等の従来の制御手法では、ティーチングプレイバック制御が終了してロボットアームが一旦停止した後、位置の誤差を補正するためのフィードバック制御（例えばＰＩＤ制御）が実行されていた。これに対して、基礎制御手法では、ティーチングプレイバック制御によるロボットアーム１１の移動動作中に、従来のように無駄な停止動作を伴うことなく、ビジュアルインピーダンス制御に切り替えることができる。
【００４２】
図５は、基礎制御手法が適用された場合におけるロボットアーム１１の速度Ｖの時間推移の一例を示すタイミングチャートである。
図５において、横軸は時間を示し、縦軸は、ロボットアーム１１の速度Ｖを示す。
図５に示すように、基礎制御手法のティーチングプレイバック制御においては、ロボットアーム１１の速度Ｖは、初期段階では一定の速度であるが、一定段階を過ぎると、一定の割合で減速していく。
【００４３】
この場合、ワーク２の位置及び姿勢のズレ等の各種要因によって、ティーチングプレイバック制御における教示位置Ｐ１と、ボルト穴２１の実際の位置との間のズレ量は、ボルト締め毎に異なる。このズレ量の違いによって、基礎制御装置がボルト穴２１を検出するタイミングがその都度異なるため、基礎制御手法では、ビジュアルインピーダンス制御に切り替わるタイミングがその都度異なる。その結果、ビジュアルインピーダンス制御に切り替わった時点のロボットアーム１１の速度Ｖがその都度異なってくる。
【００４４】
ここで、基礎制御手法のビジュアルインピーダンス制御では、式（４）に示す各種パラメータは、ロボットアーム１１の速度Ｖ等について特定の状況を仮定して、この仮定が成立する場合に最適となるような値が設定されている。また、ビジュアルインピーダンス制御は、オープンループ制御であるティーチングプレイバック制御と比べると応答速度が遅い。このため、基礎制御手法では、ビジュアルインピーダンス制御に切り替わった時点のロボットアーム１１の速度Ｖが、仮定した速度と大幅に異なると、ビジュアルインピーダンス制御が適切に行われないという課題が生ずる。
【００４５】
具体的には例えば図５ａの例では、想定される時刻よりも早い時刻ｔａに、ボルト穴２１が検出されて、ティーチングプレイバック制御からビジュアルインピーダンス制御（視覚サーボ制御）に切り替えられている。このため、図５ａの例では、ビジュアルインピーダンス制御に切り替わった時点のロボットアーム１１の速度Ｖは、仮定した速度よりも高速の速度Ｖａとなる。速度Ｖａのように高速度でビジュアルインピーダンス制御が開始することは、式（４）に示す各種パラメータの設定が不適切な状態のまま、応答速度の遅い制御が開始することを意味する。従って、このような場合、位置制御のオーバーシュートが生じるという課題が生ずる。すなわち、ロボットアーム１１が、高速度のまま移動して、真の目標位置であるボルト穴２１の実際の位置を超えてしまうという課題が生ずる。
【００４６】
一方、例えば図５ｂの例では、想定される時刻よりも遅い時刻ｔｂに、ボルト穴２１が検出されて、ティーチングプレイバック制御からビジュアルインピーダンス制御（視覚サーボ制御）に切り替えられている。このため、図５ｂの例では、ビジュアルインピーダンス制御に切り替わった時点のロボットアーム１１の速度Ｖは、仮定した速度よりも低速の速度Ｖｂとなる。速度Ｖｂのように低速度でビジュアルインピーダンス制御が開始することは、式（４）に示す各種パラメータの設定が不適切な状態のまま、応答速度の遅い制御が開始することを意味する。従って、このような場合、ロボットアーム１１が、低速度のまま移動して、真の目標位置であるボルト穴２１の実際の位置までなかなか到達しないという課題が生ずる。
【００４７】
このような基礎制御手法が有する課題の解決手法として、カメラ１３の画角を狭くするという手法が考えられる。カメラ１３の画角を狭くすることで、ボルト穴２１が画角内に現れるタイミングのバラつきが少なくなり、ビジュアルインピーダンス制御に切り替わった時点のロボットアーム１１の速度Ｖのバラつきも少なくなる。しかしながら、カメラ１３の画角を狭めた分だけ、ロボットアーム１１に追従して移動するカメラ１３が、ボルト穴２１を撮影することは困難になり、ボルト穴２１の検出が不能になるという弊害が発生するおそれもある。すなわち、カメラ１３の画角を狭くしても、基礎制御手法が有する課題を解決できたとは言い難い。
【００４８】
そこで、本発明人は、このような基礎制御手法が有する課題を解決可能な、次のような２つの制御手法を発明した。なお、この２つの制御手法は、本実施形態では図２の制御装置１５に適用されているため、以下の説明では、図２の制御装置１５が動作主体であるものとする。
【００４９】
図６乃至図８は、本発明が適用される１つ目の制御手法を説明する図である。
１つ目の制御手法においては、初期段階には、教示位置Ｐ１を目標位置として、ティーチングプレイバック制御によりロボットアーム１１が目標位置に向けて移動する。この間、カメラ１３は、撮影画像の画像データを制御装置１５に逐次出力し続ける。
すると、ロボットアーム１１が図６の下方に示す位置から上方に示す位置まで移動してきた段階で、画像処理部５４は、カメラ１３の撮影画像からボルト穴２１を検出する。
ここまでの処理は、基礎制御手法が適用された場合の処理と同様である。
ただし、本発明が適用される１つ目の制御手法においては、カメラ１３の撮影画像からボルト穴２１が検出された段階では、基礎制御手法のようにビジュアルインピーダンス制御に切り替わらずに、ティーチングプレイバック制御のままで、次のような一連の処理が実行される。
すなわち、ティーチングプレイバック制御部５１の目標位置決定部６２は、ティーチングプレイバック制御の目標位置を、教示位置Ｐ１から、ボルト穴２１により近い位置Ｐ４に変更する。なお、以下、位置Ｐ４を、「仮想目標の位置Ｐ４」と称する。
次に、ティーチングプレイバック制御部５１の移動指令生成部６３は、教示位置Ｐ１から仮想目標の位置Ｐ４までの新経路ＰＬを設定し、この新経路ＰＬに従って移動指令を生成し、制御切替部５３を介してロボットアーム駆動装置１４に供給する。すると、ロボットアーム駆動装置１４は、この移動指令に従って、ロボットアーム１１を新経路ＰＬに沿って移動させる。
このようなティーチングプレイバック制御によりロボットアーム１１が新経路ＰＬに沿って移動している最中に、制御切替条件が満たされると、制御切替部５３は、ロボットアーム１１の動作の制御を、ティーチングプレイバック制御からビジュアルインピーダンス制御に切り替える。
【００５０】
ここで、制御切替条件は、真の目標位置であるボルト穴２１の近傍までロボットアーム１１が接近したことを示す条件であれば、任意の条件を採用することができる。
【００５１】
図７は、制御切替条件の一例を説明する図である。
図７において、横軸は時間を示し、縦軸は、ロボットアーム１１の速度Ｖを示す。
例えば、図７に示すように、所定の速度を閾値ｔｈｖ１として予め定義することで、「ロボットアーム１１の速度Ｖが閾値ｔｈｖ１以下となること」という制御切替条件を採用することができる。
この場合、ロボットアーム１１の速度Ｖが常に閾値ｔｈｖ１と略同一の速度で、ビジュアルインピーダンス制御に切り替えられる。ここで、閾値ｔｈｖ１をビジュアルインピーダンス制御にとって適切な範囲内で定義することで、ビジュアルインピーダンス制御が安定して適切に実行される。その結果、基礎制御手法と比較してより一段と高速、高精度、かつ制御系として安定に、ロボットアーム１１を真の目標位置であるボルト穴２１まで移動させることが容易に可能になる。
【００５２】
図８は、制御切替条件の一例であって、図７の例とは異なる例を説明する図である。
図１１において、横軸は時間を示し、縦軸は、偏差（Ｘ−Ｘｄ）を示す。
例えば、図８に示すように、所定の短距離を閾値ｔｈｐ１として予め定義することで、「偏差（Ｘ−Ｘｄ）が、閾値ｔｈｐ１以下となること」という制御切替条件を採用することができる。
この場合、ロボットアーム１１の偏差（Ｘ−Ｘｄ）が常に閾値ｔｈｐ１と略同一の偏差で、ビジュアルインピーダンス制御に切り替えられる。ここで、閾値ｔｈｐ１をビジュアルインピーダンス制御にとって適切な範囲内で定義することで、ビジュアルインピーダンス制御が安定して適切に実行される。その結果、基礎制御手法と比較してより一段と高速、高精度、かつ制御系として安定に、ロボットアーム１１を真の目標位置であるボルト穴２１まで移動させることが容易に可能になる。
【００５３】
なお、カメラ１３の撮影画像からボルト穴２１が検出された時から、ビジュアルインピーダンス制御に切り替わる時までの上述した一連の処理を、以下、ティーチングプレイバック制御の修正移動処理と称する。
すなわち、基礎制御手法は、ティーチングプレイバック制御によりロボットアーム１１の移動が実行される第１のステップと、ビジュアルインピーダンス制御によりロボットアーム移動が実行される第３のステップと、を含む手法であった。
これに対して、本発明が適用される１つ目の制御手法は、第１のステップと第３のステップとの間にさらに、ティーチングプレイバック制御の修正移動処理が実行される第２のステップを含む手法である。そこで、以下、このような制御手法を、「３ステップ移動制御手法」と称する。
このように、３ステップ移動制御手法では、ビジュアルインピーダンス制御への切替前に、ティーチングプレイバック制御の修正移動処理が実行されるので、カメラ１３の画角を変えることなく、ロボットアーム１１の速度Ｖ等の状態を一定の範囲内に収めて、ビジュアルインピーダンス制御を開始することができる。この「一定の範囲」は、切替条件を適切に設定することで、ビジュアルインピーダンス制御にとって適切な範囲とすることが容易にできる。この場合、ビジュアルインピーダンス制御が安定して適切に実行される。その結果、基礎制御手法と比較してより一段と高速、高精度、かつ制御系として安定に、ロボットアーム１１を真の目標位置であるボルト穴２１まで移動させることが容易に可能になる。
【００５４】
次に、本発明が適用される２つ目の制御手法について説明する。
２つ目の制御手法は、ロボットアーム１１の動作の制御が、ティーチングプレイバック制御からビジュアルインピーダンス制御に切り替えられた後の制御手法である。
基礎制御手法が有する課題が生ずる要因のひとつは、上述したように、ビジュアルインピーダンス制御に切り替わった時点のロボットアーム１１の速度Ｖ等の状態が、ビジュアルインピーダンス制御の式（４）に示す各種パラメータを設定した際に仮定した状態と大きく異なる場合があるということである。
そこで、２つ目の制御手法では、視覚サーボ制御部５２が、ビジュアルインピーダンス制御に切り替わった時点及びその後のロボットアーム１１の速度Ｖ等の状態に応じて、ビジュアルインピーダンス制御の式（４）に示すアクセル量Ｆα又はブレーキ量Ｄｄを可変設定する。これにより、ロボットアーム１１の速度Ｖ等の状態によらず、ビジュアルインピーダンス制御が安定して適切に実行される。その結果、基礎制御手法と比較してより一段と高速、高精度、かつ制御系として安定に、ロボットアーム１１をボルト穴２１まで移動させることが容易に可能になる。
【００５５】
なお、このような本発明が適用される２つ目の手法を、以下、「ビジュアルインピーダンス制御のパラメータ可変設定手法」と称する。
図９乃至図１３を参照して、ビジュアルインピーダンス制御のパラメータ可変設定手法についてさらに詳細に説明する。
【００５６】
図９は、ビジュアルインピーダンス制御への切替時におけるブレーキ量Ｄｄの設定手法を説明する図である。
図９において、横軸のＶは、ロボットアーム１１の速度を示し、縦軸のＤｉは、ビジュアルインピーダンス制御への切替時におけるブレーキ量（以下、特に「初期ブレーキ量」と称する）を示している。
図９に示すように、ビジュアルインピーダンス制御への切替時におけるロボットアーム１１の速度Ｖが高速になる程、初期ブレーキ量Ｄｉが大きくなるように設定される。具体的には例えば、式（６）に示すように初期ブレーキ量Ｄｉは演算される。
【数６】
2011093055.tif 000008
・・・（６）
式（６）において、Ｓ１，Ｉ１のそれぞれは、実験により得られたパラメータである。すなわち、ロボットアーム１１の速度Ｖに対する最適なブレーキ量Ｄｄが実験により得られており、この実験に基づいてパラメータＳ１，Ｉ１のそれぞれが予め求められている。
【００５７】
ビジュアルインピーダンス制御に切り替わった時点では、このような式（６）に従って演算された初期ブレーキ量Ｄｉをブレーキ量Ｄｄとして設定して、式（４）に代入して演算することで、切替直後のビジュアルインピーダンス制御を適切に実行することが可能になる。すなわち、ビジュアルインピーダンス制御への切替時におけるロボットアーム１１の速度Ｖが高速になる程、ビジュアルインピーダンス制御の加速度が減少するように、ビジュアルインピーダンス制御が実行される。このようにして、基礎制御手法が有する課題のうち、ビジュアルインピーダンス制御に切り替わった時点のロボットアーム１１の速度Ｖのバラつきが大きいためにビジュアルインピーダンス制御を適切に行うことができない、という課題を解決することが可能になる。
【００５８】
さらに、ビジュアルインピーダンス制御のパラメータ可変設定手法を適用することで、基礎制御手法が有する課題のうち、このようなビジュアルインピーダンス制御の開始時点に生ずる課題のみならず、ビジュアルインピーダンス制御の終了時点の近辺で生ずる課題も解決することが可能になる。
【００５９】
例えば基礎制御手法では、ビジュアルインピーダンス制御の実行が進んで、偏差（Ｘ−Ｘｄ）が小さくなっていくと、収束の反応が遅くなっていくという課題が存在する。
式（５）に示す通り、基礎制御手法においては、アクセル量Ｆαは、偏差（Ｘ−Ｘｄ）に比例するパラメータであるので、偏差（Ｘ−Ｘｄ）が小さくなっていくと、その分だけアクセル量Ｆαも小さくなっていく。その結果、ロボットアーム１１の加速度も減少していくため、収束の反応が鈍くなっていくという課題が生ずるのである。
【００６０】
図１０は、このような課題を解決するための、アクセル量Ｆαの設定手法を説明する図である。
図１０において、横軸は、式（５）により演算されるアクセル量Ｆα、すなわち更新前のアクセル量Ｆαを示している。なお、以下、図１０の記載にあわせて、式（５）により演算されるアクセル量Ｆαを、特に「アクセル量Ｆαｂ」と称する。縦軸は、更新後のアクセル量Ｆｎを示している。
偏差（Ｘ−Ｘｄ）が一定以下になると、図１０に示すように、更新前のアクセル量Ｆαｂよりも、更新後のアクセル量Ｆｎが大きくなるように設定される。具体的には例えば、式（７）に示すように更新後のアクセル量Ｆｎは演算される。
【数７】
2011093055.tif 000009
・・・（７）
式（７）において、Ｃ１は、実験により得られたパラメータである。すなわち、偏差（Ｘ−Ｘｄ）に対する最適なアクセル量Ｆαが実験により得られており、この実験に基づいてパラメータＣ１が予め求められている。
【００６１】
すなわち、ビジュアルインピーダンス制御が開始されてから、偏差（Ｘ−Ｘｄ）が一定以下であることを示す所定の条件（以下、「偏差小条件と称する」）を満たすまでの間、アクセル量Ｆαは、式（５）により演算された更新前のアクセル量Ｆαｂがそのまま設定される。そして、偏差小条件を満たしたとき以降、式（４）のアクセル量Ｆαとして、式（７）に示す更新後のアクセル量Ｆｎが設定される。
【００６２】
ここで、偏差小条件は、偏差（Ｘ−Ｘｄ）が一定以下であることを示す条件であれば、任意の条件を採用することができる。
図１１は、偏差小条件の一例を説明する図である。
図１１において、横軸は時間を示し、縦軸は、ロボットアーム１１の速度Ｖを示す。
例えば、図１１に示すように、偏差（Ｘ−Ｘｄ）が所定の短距離になった時点に想定される速度を、閾値ｔｈｖ２として予め定義することで、「ロボットアーム１１の速度が閾値ｔｈｖ２以下となること」という偏差小条件を採用することができる。
図１１において、曲線８１は、このような偏差小条件が満たされる前には更新前のアクセル量Ｆαｂが設定され、満たされた後には更新後のアクセル量Ｆｎが設定される場合における、速度Ｖと時間との関係を示している。
一方、曲線８２は、最後まで更新前のアクセル量Ｆαｂが設定される場合における、速度Ｖと時間との関係を示している。
曲線８１と曲線８２とを比較すると明らかなように、偏差小条件が満たされた後にアクセル量Ｆαとして更新前のアクセル量Ｆαｂから更新後のアクセル量Ｆｎに変更することで、ビジュアルインピーダンス制御の加速度が更新前よりも高くなるので、偏差（Ｘ−Ｘｄ）が一定以下になった後のビジュアルインピーダンス制御を適切に実行することが可能になり、収束の反応が早くなる。
【００６３】
図１２は、偏差小条件の一例であって、図１１とは異なる例を説明する図である。
図１２において、横軸は時間を示し、縦軸は、偏差（Ｘ−Ｘｄ）を示す。
例えば、図１２に示すように、所定の短距離を閾値ｔｈｐ２として予め定義することで、「偏差（Ｘ−Ｘｄ）が閾値ｔｈｐ２以下となること」という偏差小条件を採用することができる。
図１２において、曲線８３は、このような偏差小条件が満たされる前には更新前のアクセル量Ｆαｂが設定され、満たされた後には更新後のアクセル量Ｆｎが設定される場合における、偏差（Ｘ−Ｘｄ）と時間との関係を示している。
一方、曲線８４は、最後まで更新前のアクセル量Ｆαｂが設定される場合における、偏差（Ｘ−Ｘｄ）と時間との関係を示している。
曲線８３と曲線８４とを比較すると明らかなように、偏差小条件が満たされた後にアクセル量Ｆαとして更新前のアクセル量Ｆαｂから更新後のアクセル量Ｆｎに変更することで、ビジュアルインピーダンス制御の加速度が更新前よりも高くなるので、偏差（Ｘ−Ｘｄ）が一定以下になった後のビジュアルインピーダンス制御を適切に実行することが可能になり、収束の反応が早くなる。
【００６４】
このように、所定の偏差小条件が満たされた場合に、更新前のアクセル量Ｆαｂよりも大きい更新後のアクセル量Ｆｎが、式（４）のアクセル量Ｆαとして設定される。これにより、ビジュアルインピーダンス制御の加速度が更新前よりも高くなるので、偏差（Ｘ−Ｘｄ）が一定以下になった後のビジュアルインピーダンス制御を適切に実行することが可能になり、収束の反応が早くなる。
【００６５】
また、基礎制御手法が有する課題のうち、ビジュアルインピーダンス制御の終了時点の近辺で生ずる別の課題として、偏差（Ｘ−Ｘｄ）が小さくなった場合、特に、０近傍になり位置決め完了間際となった場合に、ロボットアーム１１の移動量が必要以上に大きくなり得るという課題が存在する。
【００６６】
図１３は、このような課題を解決するための、ブレーキ量Ｄｄの設定手法を説明する図である。
図１３において、横軸は、ロボットアーム１１の速度Ｖを示しており、縦軸は、更新後のブレーキ量Ｄｎを示している。
偏差（Ｘ−Ｘｄ）が一定以下になると、図１３に示すように、式（６）に示す初期ブレーキ量Ｄｉよりも大きい量が、更新後のブレーキ量Ｄｎとして設定される。具体的には例えば、式（８）に示すように更新後のブレーキ量Ｄｎは演算される。
【数８】
2011093055.tif 000010
・・・（８）
式（８）において、Ｃ２は、実験により得られたパラメータである。すなわち、ロボットアーム１１の速度Ｖに対する最適なブレーキ量Ｄｄが実験により得られており、この実験に基づいてパラメータＣ２が予め求められている。
【００６７】
すなわち、ビジュアルインピーダンス制御が開始されてから、偏差（Ｘ−Ｘｄ）が一定以下となるまでの間、式（４）のブレーキ量Ｄｄは、式（６）に従って演算された初期ブレーキ量Ｄｉが設定される。そして、偏差（Ｘ−Ｘｄ）が一定となった以降、式（４）のブレーキ量Ｄｄは、式（８）に示す更新後のブレーキ量Ｄｎが設定される。
なお、式（６）に示す初期ブレーキ量Ｄｉから、式（８）に示す更新後のブレーキ量Ｄｎへの切替条件は、本実施形態では偏差小条件がそのまま採用されている。しかしながら、これは例示であり、切替条件は、偏差小条件に一致させなくてもよい。
【００６８】
このように、偏差（Ｘ−Ｘｄ）が一定以下になった場合に、初期ブレーキ量Ｄｉよりも大きい量の更新後のブレーキ量Ｄｎが、式（４）のブレーキ量Ｄｉとして設定される。これにより、ビジュアルインピーダンス制御の加速度が更新前よりも低くなるので、ロボットアーム１１の移動量が必要以上に大きくなることを防止することが可能になる。
【００６９】
以上説明したように、制御装置１５には、３ステップ移動制御手法、及び、ビジュアルインピーダンス制御のパラメータ可変設定手法が適用されているので、基礎制御手法が有する各種課題を解決することが可能になる。すなわち、制御装置１５によりビジュアルインピーダンス制御が実行されることで、基礎制御手法が適用された場合と比較して、より一段と高速、高精度、かつ制御系として安定に、ロボットアーム１１を真の目標位置であるボルト穴２１まで移動させることが容易にできる、という効果を奏することが可能になる。
なお、３ステップ移動制御手法と、ビジュアルインピーダンス制御のパラメータ可変設定手法とは、相互に独立した手法であるため、組合せて適用する必要は特に無く、何れか一方のみを適用してもよい。ただし、本実施形態のように組合せて用いることで、上述した効果はより顕著なものとなる。
【００７０】
次に、このような効果を奏することが可能な制御装置１５のハードウェア構成例について説明する。
図１４は、制御装置１５のハードウェアの構成例を示すブロック図である。
【００７１】
制御装置１５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３と、バス１０４と、入出力インターフェース１０５と、入力部１０６と、出力部１０７と、記憶部１０８と、通信部１０９と、ドライブ１１０と、を備えている。
【００７２】
ＣＰＵ１０１は、ＲＯＭ１０２に記録されているプログラムに従って各種の処理を実行する。又は、ＣＰＵ１０１は、記憶部１０８からＲＡＭ１０３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ１０３にはまた、ＣＰＵ１０１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【００７３】
例えば本実施形態では、上述した図２のロボットアーム制御部４１及びエンドエフェクタ制御部４２の各機能を実行するプログラムが、ＲＯＭ１０２や記憶部１０８に記憶されている。従って、ＣＰＵ１０１が、このプログラムに従った処理を実行することで、ロボットアーム制御部４１及びエンドエフェクタ制御部４２の各機能を実現することができる。なお、以下、このプログラムに従った処理を、ボルト締め処理と呼ぶ。ボルト締め処理の一例については、図１５乃至図１７のフローチャートを参照して後述する。
【００７４】
ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３とは、バス１０４を介して相互に接続されている。このバス１０４にはまた、入出力インターフェース１０５も接続されている。
【００７５】
入出力インターフェース１０５には、キーボード等で構成される入力部１０６と、表示デバイスやスピーカ等で構成される出力部１０７と、ハードディスク等より構成される記憶部１０８と、通信部１０９と、が接続されている。通信部１０９は、カメラ１３との間で行う通信と、ロボットアーム駆動装置１４との間で行う通信と、インターネットを含むネットワークを介して他の装置（図示せず）との間で行う通信と、をそれぞれ制御する。なお、これらの通信は、図１の例では有線通信とされているが、無線通信であってもよい。
【００７６】
入出力インターフェース１０５にはまた、必要に応じてドライブ１１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなるリムーバブルメディア１１１が適宜装着される。そして、それらから読み出されたプログラムが、必要に応じて記憶部１０８にインストールされる。
【００７７】
図１５は、図１４の制御装置１５によるボルト締め処理の流れの一例を示すフローチャートである。
なお、図１５は、１つのボルト穴２１に対してボルト締めを行うまでの一連の処理を示している。すなわち、本実施形態では、Ｎ個のボルト穴２１−１乃至２１−Ｎがワーク２に存在するので、Ｎ個のボルト穴２１−１乃至２１−Ｎのそれぞれに対して、図１５のボルト締め処理が繰り返し実行される。
【００７８】
ステップＳ１において、ＣＰＵ１０１は、ティーチングプレイバック制御により、目標の教示位置Ｐ１に向けて、ロボットアーム１１を移動させる。
すなわち、ＣＰＵ１０１は、ティーチングプレイバック制御により、教示位置Ｐ１に基づいて移動指令を生成し、通信部１０９を介して、ロボットアーム駆動装置１４に送信する。すると、上述したように、ロボットアーム駆動装置１４は、この移動指令に従って、ロボットアーム１１を教示位置Ｐ１に向けて移動させる。
【００７９】
ステップＳ２において、ＣＰＵ１０１は、対象物を検知したか否かを判定する。
すなわち、ロボットアーム１１が教示位置Ｐ１に向けて移動している間、カメラ１３は、撮影画像の画像データを制御装置１５に逐次送信し続ける。
ＣＰＵ１０１は、この画像データを通信部１０９を介して受信し、所定の画像処理を施すことで、撮影画像にボルト穴２１が含まれるか否かを判定する。撮影画像にボルト穴２１が含まれていない限り、ステップＳ２において対象物は検知されていないと判定され、処理はステップＳ１に戻され、それ以降の処理が繰り返される。すなわち、撮影画像にボルト穴２１が含まれるようになるまでの間、ステップＳ１，Ｓ２ＮＯのループ処理が繰り返し実行されて、ティーチィングプレイバック制御によりロボットアーム１１が教示位置Ｐ１に向けて移動し続ける。
ロボットアーム１１が教示位置Ｐ１に近づき、カメラ１３の画角内にボルト穴２１が現れると、撮影画像にボルト穴２１が含まれるようになる。このような場合、ＣＰＵ１０１は、このボルト穴２１を対象物として検知する。これにより、ステップＳ２において、ＹＥＳであると判定されて、処理はステップＳ３に進む。
【００８０】
ステップＳ３において、ＣＰＵ１０１は、ティーチングプレイバック制御の修正移動処理を実行する。
すなわち、図６を用いて上述したように、ＣＰＵ１０１は、ティーチングプレイバック制御の目標位置を、教示位置Ｐ１から、仮想目標の位置Ｐ４に変更する。
ＣＰＵ１０１は、教示位置Ｐ１から仮想目標の位置Ｐ４までの新経路ＰＬを設定し、この新経路ＰＬに従って移動指令を生成し、通信部１０９を介してロボットアーム駆動装置１４に供給する。すると、ロボットアーム駆動装置１４は、この移動指令に従って、ロボットアーム１１を新経路ＰＬに沿って移動させる。
その後、ＣＰＵ１０１は、制御切替条件を満たすか否かを逐次判定する。
制御切替条件が満たされるまでの間、ティーチィングプレイバック制御によりロボットアーム１１が新経路ＰＬに沿って移動し続ける。
そして、制御切替条件が満たされると、ティーチングプレイバック制御の修正移動処理が終了して、処理はステップＳ４に進む。
なお、ティーチングプレイバック制御の修正移動処理の詳細例については、図１６のフローチャートを参照して後述する。
【００８１】
ステップＳ４において、ＣＰＵ１０１は、ロボットアーム１１の動作の制御を、ティーチングプレイバック制御からビジュアルインピーダンス制御に切り替える。
【００８２】
ステップＳ５において、ＣＰＵ１０１は、カメラ１３の撮影画像の画像データに基づいて偏差（Ｘ−Ｘｄ）を演算し、その偏差（Ｘ−Ｘｄ）をフィードバック量として用いるビジュアルインピーダンス制御により、移動指令を生成して、通信部１０９を介して、ロボットアーム駆動装置１４に送信する。すると、上述したように、ロボットアーム駆動装置１４は、この移動指令に従って、ロボットアーム１１を移動させる。
なお、以下、このようなステップＳ５の処理を、「ビジュアルインピーダンス制御の移動処理」と称する。
ビジュアルインピーダンス制御の移動処理の詳細例については、図１７のフローチャートを参照して後述する。
ロボットアーム１１がボルト穴２１まで移動して、偏差（Ｘ−Ｘｄ）が略０になると、位置決めが完了したと判定されて、ビジュアルインピーダンス制御の移動処理が終了し、処理はステップＳ６に進む。
【００８３】
ステップＳ６において、ＣＰＵ１０１は、ボルト締め作業を制御する。すなわち、ＣＰＵ１０１は、通信部１０９を介してエンドエフェクタ１２を制御することによって、ボルトをボルト穴２１に挿入して捻じ込む。
これにより、ボルト締め処理は終了する。
【００８４】
次に、ボルト締め処理のうち、ステップＳ３のティーチングプレイバック制御の修正移動処理の詳細例について説明する。
図１６は、ティーチングプレイバック制御の修正移動処理の流れの詳細例を示すフローチャートである。
上述したように、ボルト穴２１が対象物として検知されると、ステップＳ２においてＹＥＳであると判定されて、ティーチングプレイバック制御の修正移動処理として、次のようなステップ１１乃至Ｓ２０の処理が実行される。
【００８５】
ステップＳ１１において、ＣＰＵ１０１は、データ作成数ｉ＝０に設定する。
データ作成数ｉとは、新経路ＰＬの候補となるデータ（以下、「新経路候補」と称する）の作成済みの個数をいう。ここで、新経路候補の必要データ数をｎ（ｎは１以上の任意の整数値）とすると、データ作成数ｉは、１乃至ｎの何れかの値をとる。
【００８６】
ステップＳ１２において、ＣＰＵ１０１は、ロボットアーム１１の位置Ｐ２ｉを取得する。
ロボットアーム１１の位置Ｐ２ｉとは、本実施形態では、ワーク２が存在する空間の座標系（以下、「ワールド座標系」と称する）におけるエンドエフェクタ１２の先端の座標をいう。ロボットアーム１１の位置Ｐ２ｉは、本実施形態では、ロボットアーム駆動装置１４により検出され、状態情報に含まれて制御装置１５に送信される。そこで、ＣＰＵ１０１は、通信部１０９を介して状態情報を受信し、この状態情報から、ロボットアーム１１の位置Ｐ２ｉを取得する。
【００８７】
ステップＳ１３において、ＣＰＵ１０１は、カメラ内対象物の位置Ｐ３ｉを取得する。
カメラ内対象物の位置Ｐ３ｉとは、本実施形態では、カメラ１３の撮影画像に対象物として含まれるボルト穴２１についての、カメラ座標系での座標をいう。ＣＰＵ１０１は、カメラ１３の撮影画像の画像データを通信部１０９を介して受信し、上述のごとく、この画像データに対して画像処理を施すことで、カメラ内対象物の位置Ｐ３ｉを取得する。
【００８８】
ステップＳ１４において、ＣＰＵ１０１は、位置Ｐ２ｉ及び位置Ｐ３ｉに基づいて、仮目標の位置Ｐ４ｉを設定する。
ステップＳ１５において、ＣＰＵ１０１は、教示位置Ｐ１から仮想目標の位置Ｐ４ｉまでの新経路候補ＰＬｉを作成する。
これにより、作成済みの新経路候補ＰＬｉが１つ増えたので、ステップＳ１６において、ＣＰＵ１０１は、データ作成数ｉを１だけインクリメントする（ｉ＝ｉ＋１）。
【００８９】
ステップＳ１７において、ＣＰＵ１０１は、データ作成数ｉが必要データ数ｎとなったか（ｉ＝ｎであるか）否かを判定する。
【００９０】
データ作成数ｉが必要データ数ｎ未満の場合、ステップＳ１７においてＮＯであると判定されて、処理はステップＳ１２に戻され、それ以降の処理が繰り返される。すなわち、ステップＳ１２乃至Ｓ１７のループ処理が繰り返されて、ｎ個の新経路候補ＰＬ１乃至ＰＬｎが順次作成される。
ｎ個目の新経路候補ＰＬｎが作成されて、データ作成数ｉ＝ｎになると、次のステップＳ１７においてＹＥＳであると判定されて、処理はステップＳ１８に進む。
【００９１】
ステップＳ１８において、ＣＰＵ１０１は、新経路候補ＰＬ１乃至ＰＬｎに基づいて、新経路ＰＬを決定する。
なお、新経路ＰＬの決定手法自体は、新経路候補ＰＬ１乃至ＰＬｎの少なくとも一部を用いる手法であれば、特に限定されない。
例えば、ＣＰＵ１０１は、新経路候補ＰＬ１乃至ＰＬｎの各々の仮想目標の位置Ｐ４１乃至Ｐ４ｎを平均化した位置を、仮目標の位置Ｐ４として設定することによって、教示位置Ｐ１から仮想目標の位置Ｐ４までの新経路ＰＬを作成することができる。この場合、仮想目標の位置Ｐ４１乃至Ｐ４ｎが平均化されるので、各々が有している誤差量を減らすことができる。
また例えば、ＣＰＵ１０１は、新経路候補ＰＬ１乃至ＰＬｎの各々の仮想目標の位置Ｐ４１乃至Ｐ４ｎを重み付けして所定の演算を実行し、その演算結果を仮想目標の位置Ｐ４として設定することによって、教示位置Ｐ１から仮想目標の位置Ｐ４までの新経路ＰＬを作成することができる。
この場合の重み付けの手法は、特に限定されないが、例えばロボットアーム１１の速度Ｖを考慮した重み付けをすると、仮想目標の位置Ｐ４１乃至Ｐ４ｎの各々が有している誤差量を減らすことができるので好適である。すなわち、ロボットアーム１１の速度が遅い時点で得られた位置データの方が、誤差が少なく信頼性が高いと判断することができる。本実施形態では、仮想目標の位置Ｐ４１乃至Ｐ４ｎの各々が設定された時点のロボットアーム１１の速度Ｖは、その順で遅くなっていく（図５や図７参照）。そこで、仮想目標の位置Ｐ４１乃至Ｐ４ｎの各々の重みをその順で大きくしていくように重み付けをすることによって、仮想目標の位置Ｐ４１乃至Ｐ４ｎの各々が有している誤差量を減らすことが可能になる。
【００９２】
このようにして新経路ＰＬが決定されると、処理はステップＳ１９に進む。
ステップＳ１９において、ＣＰＵ１０１は、新経路ＰＬに従って、ティーチングプレイバック制御によりロボットアーム１１を移動させる。
すなわち、ＣＰＵ１０１は、ティーチングプレイバック制御により、新経路ＰＬに基づいて移動指令を生成し、通信部１０９を介して、ロボットアーム駆動装置１４に送信する。すると、上述したように、ロボットアーム駆動装置１４は、この移動指令に従って、ロボットアーム１１を新経路ＰＬに従って移動させる。
【００９３】
ステップＳ２０において、ＣＰＵ１０１は、制御切替条件を満たすか否かを判定する。
制御切替条件としては、例えば、図７に示す第１の条件と図８に示す第２の条件との何れか一方、又は両条件の組合せを採用することができる。両条件の組合せを採用する場合には、ＡＮＤ条件を採用してもよいし、ＯＲ条件を採用してもよい。
制御切替条件が満たされていない場合、ステップＳ２０においてＮＯであると判定されて、処理はステップＳ１９に戻され、それ以降の処理が繰り返される。すなわち、制御切替条件が満たされるまでの間、ステップＳ１９，Ｓ２０ＮＯのループ処理が繰り返し実行されることによって、ティーチィングプレイバック制御によりロボットアーム１１が新経路ＰＬに沿って移動し続ける。
そして、制御切替条件が満たされると、ステップＳ２０においてＹＥＳであると判定されて、ティーチングプレイバック制御の修正移動処理が終了して、処理は図１５のステップＳ４に進む。
すなわち、ロボットアーム１１の動作の制御が、ティーチングプレイバック制御からビジュアルインピーダンス制御に切り替えられて、ステップＳ５のビジュアルインピーダンス制御の移動処理が実行される。
【００９４】
次に、このようなステップＳ５のビジュアルインピーダンス制御の移動処理の詳細例について説明する。
図１７は、ビジュアルインピーダンス制御の移動処理の流れの詳細例を示すフローチャートである。
【００９５】
ステップＳ３１において、ＣＰＵ１０１は、ロボットアーム１１の速度Ｖを取得する。
ロボットアーム１１の速度Ｖは、本実施形態では、ロボットアーム駆動装置１４により検出され、状態情報に含まれて制御装置１５に送信される。そこで、ＣＰＵ１０１は、通信部１０９を介して状態情報を受信し、この状態情報から、ロボットアーム１１の速度Ｖを取得する。
【００９６】
ステップＳ３２において、ＣＰＵ１０１は、速度Ｖに基づいて初期ブレーキ量Ｄｉを設定する。すなわち、ＣＰＵ１０１は、ステップＳ３１の処理で取得した速度Ｖを、式（６）に代入して演算することで、初期ブレーキ量Ｄｉを設定する。
ステップＳ３３において、ＣＰＵ１０１は、式（４）におけるブレーキ量Ｄｄ＝Ｄｉに設定する。
【００９７】
ステップＳ３４において、ＣＰＵ１０１は、ビジュアルインピーダンス制御によりロボットアーム１１を移動させる。
すなわち、ＣＰＵ１０１は、ロボットアームの速度Ｖ、アクセル量Ｆα、ブレーキ量Ｄｄ、及び、仮想質量Ｍｄの各々を、式（４）に代入して演算する。
上述したように、ロボットアームの速度Ｖは、ロボットアーム駆動装置１４から送信されてくる状態情報に含まれている。アクセル量Ｆαは、カメラ１３の撮影画像から得られる偏差（Ｘ−Ｘｄ）が式（５）に代入された場合の、式（５）の演算結果であるアクセル量Ｆαｂである。ブレーキ量Ｄｄは、ステップＳ３３の処理で設定された初期ブレーキ量Ｄｉである。仮想質量Ｍｄは、予め設定されてＲＯＭ１０２等に予め記憶されている。
ＣＰＵ１０１は、このような式（４）の演算結果に基づいて移動指令を生成し、通信部１０９を介して、ロボットアーム駆動装置１４に送信する。すると、上述したように、ロボットアーム駆動装置１４は、この移動指令に従って、ロボットアーム１１を移動させる。
【００９８】
ステップＳ３５において、ＣＰＵ１０１は、偏差小条件を満たすか否かを判定する。
偏差小条件としては、例えば図１１に示す条件と図１２に示す条件との何れか一方、又は両条件の組合せを採用することができる。両条件の組合せを採用する場合には、ＡＮＤ条件を採用してもよいし、ＯＲ条件を採用してもよい。
偏差小条件が満たされていない場合、ステップＳ３５においてＮＯであると判定されて、処理はステップＳ３４に戻され、それ以降の処理が繰り返される。すなわち、偏差小条件が満たされるまでの間、ステップＳ３４，Ｓ３５ＮＯのループ処理が繰り返し実行されることによって、ビジュアルインピーダンス制御によりロボットアーム１１が移動し続ける。
ここでのビジュアルインピーダンス制御では、アクセル量Ｆαは、カメラ１３の撮影画像から得られる偏差（Ｘ−Ｘｄ）が式（５）に代入された場合の、式（５）の演算結果であるアクセル量Ｆαｂが設定される。ブレーキ量Ｄｄは、初期ブレーキ量Ｄｉが設定される。
その後、偏差小条件が満たされると、ステップＳ３５においてＹＥＳであると判定されて、処理はステップＳ３６に進む。
【００９９】
ステップＳ３６において、ＣＰＵ１０１は、式（７）に従って更新後のアクセル量Ｆｎを演算し、式（８）に従って更新後のブレーキ量Ｄｎを演算する。
ステップＳ３７において、ＣＰＵ１０１は、アクセル量Ｆα＝Ｆｎに設定し、ブレーキ量Ｄｄ＝Ｄｎに設定する。
【０１００】
ステップＳ３８において、ＣＰＵ１０１は、ビジュアルインピーダンス制御によりロボットアーム１１を移動させる。
ここでのビジュアルインピーダンス制御では、アクセル量Ｆαは、更新後のアクセル量Ｆｎが設定される。ブレーキ量Ｄｄは、更新後のブレーキ量Ｄｎが設定される。
【０１０１】
ステップＳ３９において、ＣＰＵ１０１は、位置決めが完了したか否かを判定する。
位置決め完了の判定条件は、特に限定されないが、本実施形態では「偏差（Ｘ−Ｘｄ）が略０になったとき」という条件が採用されているものとする。
従って、本実施形態では偏差（Ｘ−Ｘｄ）が略０になっていない場合、ステップＳ３９においてＮＯであると判定されて、処理はステップＳ３６に戻され、それ以降の処理が繰り返される。すなわち、偏差（Ｘ−Ｘｄ）が略０になるまでの間、ステップＳ３６乃至Ｓ３９ＮＯのループ処理が繰り返されることによって、ビジュアルインピーダンス制御によりロボットアーム１１が移動し続ける。
ここでのビジュアルインピーダンス制御では、アクセル量Ｆαは、ステップＳ３６乃至Ｓ３９ＮＯのループ処理毎に演算される更新後のアクセル量Ｆｎが設定される。ブレーキ量Ｄｄは、ステップＳ３６乃至Ｓ３９ＮＯのループ処理毎に演算される更新後のブレーキ量Ｄｎが設定される。
その後、偏差（Ｘ−Ｘｄ）が略０になると、ステップＳ３９においてＹＥＳであると判定されて、ビジュアルインピーダンス制御の移動処理が終了して、処理は図１５のステップＳ６に進む。すなわち、エンドエフェクタ１２により、ボルトがボルト穴２１に挿入されて捻じ込まれる。
【０１０２】
本実施形態によれば、以下のような効果がある。
（１）本実施形態に係る制御装置１５は、３ステップ移動制御手法に従って、次のような処理を実行することができる。
すなわち、制御装置１５は、ティーチングプレイバック制御を実行する第１のステップの処理中に対象物であるボルト穴２１が視認された段階で直ちに、ビジュアルインピーダンス制御を実行する第３のステップに切り替えるのではなく、第２のステップに切り替える。第２のステップとは、目標位置よりも対象物に近い位置を新たな目標位置として、新たな目標位置までの新たな経路を設定して、制御切替条件が満たされるまでの間、新たな経路に沿って、ロボットアーム１１を移動させるティーチングプレイバック制御を実行するステップである。そして、制御装置１５は、制御切替条件が満たされたときに第３のステップに切り替える。
これにより、ロボットアーム１１の速度等の状態を一定の範囲内に収めて、ビジュアルインピーダンス制御を開始することが可能になる。この「一定の範囲」は、制御切替条件を適切に設定することで、ビジュアルインピーダンス制御にとって適切な範囲内にすることが容易にできる。この場合、ビジュアルインピーダンス制御が安定して適切に実行される。その結果、基本制御手法の場合と比較して、より一段と高速、高精度、かつ制御系として安定に、ロボットアーム１１を移動させることが可能になる。
【０１０３】
（２）本実施形態に係る制御装置１５は、ビジュアルインピーダンス制御のパラメータ可変設定手法に従って、次のような処理を実行することができる。
すなわち、制御装置１５は、インピーダンスパラメータという係数を含む式（４）の制御式に対して、偏差（Ｘ−Ｘｄ）をフィードバック情報とし代入して演算し、その演算結果に基づいて、ロボットアーム１１をボルト穴２１まで移動させる。この場合、制御装置１５は、ロボットアーム１１の所定の状態に基づいて、アクセル量Ｆα又はブレーキ量Ｄｄの少なくとも一部を変更する。
これにより、ロボットアーム１１の速度Ｖ等の状態によらず、ビジュアルインピーダンス制御が安定して適切に実行される。その結果、基本制御手法の場合と比較して、より一段と高速、高精度、かつ制御系として安定に、マニュピュレータを移動させることが容易に可能になる。
【０１０４】
なお、本発明は本実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
例えば、本実施形態では、３ステップ移動制御手法と、ビジュアルインピーダンス制御のパラメータ可変設定手法とは組合せて用いられていたが、上述したごとく、これらの手法は相互に独立しているため、何れか一方のみを用いることができる。
例えば、３ステップ移動制御手法のみが用いられる場合には、第３のステップにおけるビジュアルインピーダンス制御として、基本制御手法に従った制御を採用してもよい。さらにいえば、第３のステップにおける制御は、ビジュアルインピーダンス制御に限定されず、任意の視覚サーボ制御を採用することができる。
また例えば、ビジュアルインピーダンス制御のパラメータ可変設定手法のみが実行される場合には、図１５のステップＳ２の処理でＹＥＳであると判定された場合には、ステップＳ３の処理が実行されずに、ステップＳ４の処理が実行される。そして、ステップＳ５の処理として、図１７のビジュアルインピーダンス制御の移動処理が実行される。
【０１０５】
さらに言えば、ビジュアルインピーダンス制御のパラメータ可変設定手法と同様の手法を、ビジュアルインピーダンス制御以外の視覚サーボ制御に対して適用することもできる。例えば、１以上の係数を含む制御式に対して、マニュピュレータに取り付けられた視覚装置により視認された対象物の位置情報を、フィードバック情報とし代入して演算し、その演算結果に基づいて、マニュピュレータを対象物まで移動させる視覚サーボ制御に対して、かかる手法を適用できる。この場合、制御装置は、マニュピュレータの所定の状態に基づいて、１以上の係数の少なくとも一部を変更することが可能になる。
これにより、マニュピュレータの速度等の状態によらず、視覚サーボ制御が安定して適切に実行される。その結果、１以上の係数が固定されていた視覚サーボ制御の場合と比較して、より一段と高速、高精度、かつ制御系として安定に、マニュピュレータを移動させることが容易に可能になる。
【０１０６】
また例えば、マニュピュレータは、本実施形態ではロボットアーム１１に取り付けられていたが、特にこれに限定されず、任意のワーク上の対象物に移動可能なものであればよい。
【０１０７】
また、本実施形態では、図２のロボットアーム制御部４１及びエンドエフェクタ制御部４２をソフトウェアとハーウェア（ＣＰＵ１０１を含む関連部分）の組合せにより構成するものとして説明したが、かかる構成は当然ながら例示であり、本発明はこれに限定されない。例えば、ロボットアーム制御部４１及びエンドエフェクタ制御部４２の少なくとも一部を、専用のハードウェアで構成してもよし、ソフトウェアで構成してもよい。
【０１０８】
このように、本発明に係る一連の処理は、ソフトウェアにより実行させることも、ハードウェアにより実行させることもできる。
【０１０９】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムを、コンピュータ等にネットワークを介して、或いは、記録媒体からインストールすることができる。コンピュータは、専用のハードウェアを組み込んだコンピュータであってもよいし、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータであってもよい。
【０１１０】
本発明に係る一連の処理を実行するための各種プログラムを含む記録媒体は、情報処理装置（本実施形態では制御装置１５）本体とは別に、ユーザにプログラムを提供するために配布されるリムーバブルメディアでもよく、或いは、情報処理装置本体に予め組み込まれた記録媒体等でもよい。リムーバブルメディアは、例えば、磁気ディスク（フロッピディスクを含む）、光ディスク、又は光磁気ディスク等により構成される。光ディスクは、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等により構成される。光磁気ディスクは、ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）等により構成される。また、装置本体に予め組み込まれた記録媒体としては、例えば、プログラムが記録されている、図５のＲＯＭ１０２や、図５の記憶部１０８に含まれるハードディスク等でもよい。
【０１１１】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
【０１１２】
また、本明細書において、システムとは、複数の装置や処理部により構成される装置全体を表すものである。
【符号の説明】
【０１１３】
１      ロボットシステム
１１    ロボットアーム
１２    エンドエフェクタ
１３    カメラ
１４    ロボットアーム駆動装置
１５    制御装置
２３    多関節マニュピュレータ
４１    ロボットアーム制御部
５１    ティーチングプレイバック制御部
５２    フィードバック制御部
５３    制御切替部
５４    画像処理部
５５    ロボットアーム状態取得部
６１    教示位置保持部
６２    目標位置決定部
６３    移動指令生成部
６４    パラメータ保持部
６５    パラメータ設定部
６６    視覚サーボ演算部
６７    移動指令生成部
６８    対象物認識部
６９    誤差検出部
【図１】
2011093055.tif 000011
【図２】
2011093055.tif 000012
【図３】
2011093055.tif 000013
【図４】
2011093055.tif 000014
【図５】
2011093055.tif 000015
【図６】
2011093055.tif 000016
【図７】
2011093055.tif 000017
【図８】
2011093055.tif 000018
【図９】
2011093055.tif 000019
【図１０】
2011093055.tif 000020
【図１１】
2011093055.tif 000021
【図１２】
2011093055.tif 000022
【図１３】
2011093055.tif 000023
【図１４】
2011093055.tif 000024
【図１５】
2011093055.tif 000025
【図１６】
2011093055.tif 000026
【図１７】
2011093055.tif 000027