(57)【特許請求の範囲】
【請求項１】
周期的な運動を行う制御対象のバックラッシュを補償しつつ当該制御対象の位置制御を行う制御方法であって、
前記制御対象の位置を指示する位置指令信号に前記バックラッシュを補償するバックラッシュ量信号をシフトしたうえで加算し、最終位置指令信号を生成する最終位置指令信号生成ステップと、
前記最終位置指令信号生成ステップで生成した最終位置指令信号に基づいて前記制御対象の位置制御を行う位置制御ステップと、を備え、
前記最終位置指令信号生成ステップは、
前記位置指令信号を生成する位置指令信号生成ステップと、
前記位置指令信号生成ステップで生成された位置指令信号に基づいて前記制御対象の制御方向を検出する制御方向検出ステップと、
前記制御方向検出ステップで検出した制御方向に応じて、前記制御対象のバックラッシュ量を補償するためのバックラッシュ量信号を生成するバックラッシュ量計算ステップと、
前記バックラッシュ量計算ステップで生成されたバックラッシュ量信号を前記位置指令信号に対して所定遅れ時間だけ遅らせたバックラッシュ補正信号を生成する遅れ時間計算ステップと、
前記遅れ時間計算ステップで生成されたバックラッシュ補正信号を前記位置指令信号に加算して最終位置指令信号を生成する信号加算ステップと、を有し、
前記位置制御ステップは、
前記最終位置指令信号生成ステップの前記信号加算ステップで生成された最終位置指令信号に基づいて、前記制御対象の位置を制御することを特徴とする制御方法。
【請求項２】
周期信号からなる位置指令信号の周期の半分以下の時間を、前記遅れ時間計算ステップで用いられる所定遅れ時間としていることを特徴とする請求項１に記載の制御方法。
【請求項３】
周期信号からなる位置指令信号に基づいて駆動した前記制御対象の実績出力を予め求めておき、前記位置指令信号と前記実績出力との位相差を求め、求めた位相差を遅れ時間計算ステップが用いる所定遅れ時間としていることを特徴とする請求項１に記載の制御方法
。
【請求項４】
制御対象をモデル化した制御モデルを準備しておき、
周期信号からなる位置指令信号を制御モデルに入力した際のモデル出力を求め、前記位置指令信号とモデル出力との位相差を求め、求めた位相差を遅れ時間計算ステップが用いる所定遅れ時間としていることを特徴とする請求項１に記載の制御方法。
【請求項５】
ステップ信号からなる位置指令信号に基づいて駆動した前記制御対象の実績出力を予め求めておき、前記位置指令信号に対する前記実績出力の応答特性に基づく時定数を求めて、前記時定数を遅れ時間計算ステップが用いる所定遅れ時間としていることを特徴とする請求項１に記載の制御方法。
【請求項６】
周期的な運動を行う制御対象のバックラッシュを補償しつつ当該制御対象の位置制御を行う制御装置であって、
前記制御対象の位置を指示する位置指令信号に前記バックラッシュを補償するバックラッシュ量信号をシフトしたうえで加算し、最終位置指令信号を生成して、生成した最終位置指令信号に基づいて前記制御対象の位置制御を行う制御部を備え、
前記制御部は、
前記位置指令信号を生成する位置指令信号生成部と、
前記位置指令信号生成部で生成された位置指令信号に基づいて前記制御対象の制御方向を検出する制御方向検出部と、
前記制御方向検出部が検出した制御方向に応じて、前記制御対象のバックラッシュ量を補償するためのバックラッシュ量信号を生成するバックラッシュ量計算部と、
前記バックラッシュ量計算部で生成されたバックラッシュ量信号を前記位置指令信号に対して所定遅れ時間だけ遅らせたバックラッシュ補正信号を生成する遅れ時間計算部と、
前記遅れ時間計算部で生成されたバックラッシュ補正信号を前記位置指令信号に加算して最終位置指令信号を生成する信号加算部と、
前記信号加算部で生成された最終位置指令信号に基づいて、前記制御対象の位置を制御する位置制御部と、を有することを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ、減速機などから構成される産業用ロボット等の位置制御に好適な制御方法及び制御装置に関する。
【背景技術】
【０００２】
例えば、溶接ロボットなどは垂直多関節型の６軸の産業用ロボットであり、そのアームの先端には溶接トーチなどから構成される溶接ツールが設けられている。このような溶接ロボットの駆動部である関節部などは、駆動源であるモータと、このモータの駆動力をアームに伝達する減速機とで構成されている。関節部のモータには、モータの回転位置を検出するエンコーダ等の位置検出器が設けられている。
【０００３】
このような関節部を有する溶接ロボットに対して、モータの回転位置を指示する位置指令信号が外部から与えられる。このとき、位置検出器が検出するモータの位置情報が、位置指令信号が示す指令位置と一致するようにモータの回転が制御される。このような制御によるモータの回転が減速機を介してアームに伝わり、アーム先端に設けられた溶接トーチなどが所望の位置へ移動する。
【０００４】
ところで、周知のように複数の歯車が組み合わされた減速機にはバックラッシュが存在し、このバックラッシュはアームの位置ずれの一因となる。そのため、減速機のバックラッシュ量を予め把握しておき、そのバックラッシュ量を補償する補正信号を位置指令信号に加算して位置指令補正信号を生成し、その後、この位置指令補正信号を溶接ロボットに与えることで、アームの位置ずれを解消するという試みがなされている。
【０００５】
アームの位置ずれを解消する手段として、以下の特許文献１及び特許文献２に開示された技術がある。
【０００６】
特許文献１には、指令位置信号と前記位置検出手段の出力信号である位置信号とを比較し、前記指令位置信号が指定する所定位置に前記腕の先端が占位するよう制御するサーボ機構である位置制御部と、腕毎に所定の位置へ動作させ、その時の位置検出手段の位置信号と腕の位置との関係を対応ずける位置合わせの時と同一方向に、予め設定しておく減速機のバックラッシュ量以上モータが回転した後に、モータの回転方向が反転したことを検出したとき、前記バックラッシュ量に対応する補正量を指令位置信号に加算するバックラッシュ補正を行ないバックラッシュの影響を除去するバックラッシュ補正部を有することを特徴とするロボットの制御装置が開示されている。
この制御装置によれば、常に適確なバックラッシュ補正を実施することができ、ロボットの手先位置を指令位置に正確に追従させることができるとされている。
【０００７】
特許文献２には、制御対象の位置指令値を監視して当該制御対象の制御方向を検出する制御方向検出手段と、上記制御方向検出手段により検出された制御方向が反転すると、その反転が発生してからの経過時間に応じてバックラッシュの補正指令値を更新する補正指令値更新手段と、上記補正指令値更新手段により更新されたバックラッシュの補正指令値を上記位置指令値に加算し、その加算結果に基づいて上記制御対象を駆動するモータの回転を制御する制御手段とを備えた数値制御装置が開示されている。
この数値制御装置によれば、バックラッシュを補償しつつ制御対象の移動方向が反転するときに生じる弾性変形を精度よく補償することができるとされている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】実用新案登録第２５６４７２２号公報
【特許文献２】特開２００４−２３４２０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に開示のロボットの制御装置によっても、常に適確なバックラッシュ補正を実施することが困難な場合がある。
例えば、ウィービング溶接などにおいてロボットのアームを溶接線に対して左右に揺動させるような場合、図２（ａ）に示す従来の手順によってバックラッシュ補正（バックラッシュ補償）を行っても、アームの運動に作用するバックラッシュの影響を解消することは困難である。
【００１０】
従来のバックラッシュ補正について、以下、図２（ａ）を基に説明する。
ウィービング溶接においてアームを左右に揺動させる場合、言い換えれば、モータの回転位置を指示する位置指令信号θr(t)が正弦波のような周期信号である場合、アームの往復運動（特に往復反転時）は、減速機のバックラッシュの影響で位置指令信号θr(t)よりも位相が遅れてしまう。このため、アームの運動方向が実際に反転する前に位置指令信号θr(t)が示す制御方向が反転することになる。また、バックラッシュ量を補償するためのステップ状のバックラッシュ量信号θB(t)が表す方向は位置指令信号θr(t)の制御方向の反転と同じタイミング（位置指令信号θr(t)のピーク位置）で反転する。従って、アームの往復運動が本来反転すべき位置の手前で制御方向が反転する位置指令信号θr(t)に、同じく手前で反転するバックラッシュ量信号θB(t)が加算されて最終位置指令信号θFr(t)が生成される。図２（ａ）に示す最終位置指令信号θFr(t)の波形では、位置指令信号θr(t)のピーク位置でバックラッシュ量信号θB(t)に起因するステップ状の段差が形成されている。
【００１１】
この最終位置指令信号θFr(t)をロボットに入力してアームを制御しても、最終位置指令信号θFr(t)が示す制御方向は、アームの往復運動が本来反転すべき位置の手前で反転する。そのため、実線で示すアームの往復運動の振幅（アームの回転角度θA(t)）は、破線で示す元の位置指令信号θr(t)が示す振幅よりも小さくなってしまい、アームの往復運動に作用するバックラッシュの影響を解消することはできない。
【００１２】
つまり、特許文献１によっても、減速機にバックラッシュがなく、それ故にバックラッシュ量を補償する補正信号を加算することなく位置指令信号を直接ロボットに入力した場合と比較して、アームの挙動幅（往復移動の振幅）が小さくなるという問題がある。
特許文献２に開示の数値制御装置は、伝達関数型フィルタを有している。この伝達関数型フィルタは、アームに作用する摩擦からそのアームの位置とモータの位置との偏差に至るまでの伝達関数がモデル化されたものである。このフィルタによって、矩形波のバックラッシュ量信号を滑らかな信号に変換している。
【００１３】
しかし、特許文献１と同様、位置指令信号が正弦波のような周期信号である場合、アームの往復運動は位置指令信号より位相が遅れるため、アームの運動方向が実際に反転する前に、位置指令信号が反転してバックラッシュ量信号も反転する。このため、たとえバックラッシュ量信号をフィルタにより滑らかにしても、特許文献１と同様に、減速機にバックラッシュがない場合と比較して、アームの往復運動の振幅が小さくなるという問題がある。
【００１４】
上述の問題に鑑みて、本発明は、産業用ロボットなどの制御対象の位置を指示する位置指令信号が正弦波のような周期信号である場合に、当該制御対象の挙動幅（往復移動の振幅）を、減速機にバックラッシュがない場合と同じにする、又は位置指令信号の振幅と同じにすることが可能な制御方法及び制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記の目的を達成するため、本発明は、以下の技術的手段を採用した。
本発明に係る制御方法は、周期的な運動を行う制御対象のバックラッシュを補償しつつ当該制御対象の位置制御を行う制御方法であって、前記制御対象の位置を指示する位置指令信号に前記バックラッシュを補償するバックラッシュ量信号をシフトしたうえで加算し、最終位置指令信号を生成する最終位置指令信号生成ステップと、前記最終位置指令信号生成ステップで生成した最終位置指令信号に基づいて前記制御対象の位置制御を行う位置制御ステップと、を備えることを特徴とする。
【００１６】
好ましくは、前記最終位置指令信号生成ステップは、前記位置指令信号を生成する位置指令信号生成ステップと、前記位置指令信号生成ステップで生成された位置指令信号に基づいて前記制御対象の制御方向を検出する制御方向検出ステップと、前記制御方向検出ステップで検出した制御方向に応じて、前記制御対象のバックラッシュ量を補償するためのバックラッシュ量信号を生成するバックラッシュ量計算ステップと、前記バックラッシュ量計算ステップで生成されたバックラッシュ量信号を前記位置指令信号に対して所定遅れ時間だけ遅らせたバックラッシュ補正信号を生成する遅れ時間計算ステップと、前記遅れ時間計算ステップで生成されたバックラッシュ補正信号を前記位置指令信号に加算して最終位置指令信号を生成する信号加算ステップと、を有し、前記位置制御ステップは、前記信号加算ステップで生成された最終位置指令信号に基づいて、前記制御対象の位置を制御するとよい。
【００１７】
ここで、好ましくは、周期信号からなる位置指令信号の周期の半分以下の時間を、前記遅れ時間計算ステップで用いられる所定遅れ時間としているとよい。
また、好ましくは、周期信号からなる位置指令信号に基づいて駆動した前記制御対象の実績出力を予め求めておき、前記位置指令信号と前記実績出力との位相差を求め、求めた位相差を遅れ時間計算ステップが用いる所定遅れ時間としているとよい。
【００１８】
また、好ましくは、制御対象をモデル化した制御モデルを準備しておき、周期信号からなる位置指令信号を制御モデルに入力した際のモデル出力を求め、前記位置指令信号とモデル出力との位相差を求め、求めた位相差を遅れ時間計算ステップが用いる所定遅れ時間としているとよい。
また、好ましくは、ステップ信号からなる位置指令信号に基づいて駆動した前記制御対象の実績出力を予め求めておき、前記位置指令信号に対する前記実績出力の応答特性に基づく時定数を求めて、前記時定数を遅れ時間計算ステップが用いる所定遅れ時間としているとよい。
【００１９】
本発明に係る制御装置は、周期的な運動を行う制御対象のバックラッシュを補償しつつ当該制御対象の位置制御を行う制御装置であって、前記制御対象の位置を指示する位置指令信号に前記バックラッシュを補償するバックラッシュ量信号をシフトしたうえで加算し、最終位置指令信号を生成して、生成した最終位置指令信号に基づいて前記制御対象の位置制御を行う制御部を備えることを特徴とする。
【００２０】
好ましくは、前記制御部は、前記位置指令信号を生成する位置指令信号生成部と、前記位置指令信号生成部で生成された位置指令信号に基づいて前記制御対象の制御方向を検出する制御方向検出部と、前記制御方向検出部が検出した制御方向に応じて、前記制御対象のバックラッシュ量を補償するためのバックラッシュ量信号を生成するバックラッシュ量計算部と、前記バックラッシュ量計算部で生成されたバックラッシュ量信号を前記位置指令信号に対して所定遅れ時間だけ遅らせたバックラッシュ補正信号を生成する遅れ時間計算部と、前記遅れ時間計算部で生成されたバックラッシュ補正信号を前記位置指令信号に加算して最終位置指令信号を生成する信号加算部と、前記信号加算部で生成された最終位置指令信号に基づいて、前記制御対象の位置を制御する位置制御部と、を有するとよい。
【発明の効果】
【００２１】
本発明による制御方法及び制御装置を用いれば、産業用ロボットなどの制御対象の位置を指示する位置指令信号が正弦波のような周期信号である場合に、当該制御対象の挙動幅（往復移動の振幅）を、減速機にバックラッシュがない場合と同じにする、又は位置指令信号の振幅と同じにすることできる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１実施形態による制御装置及びロボットの概略構成を示す図である。
【図２】バックラッシュ量補償における各信号の時間変化を表すグラフであり、（ａ）は従来のバックラッシュ量補償における信号変化を表し、（ｂ）は本発明の第１実施形態におけるバックラッシュ量補償における信号変化を示す。
【図３】バックラッシュを有する減速機の角度伝達を示す図である。
【図４】第１実施形態によるバックラッシュ量補償における処理のフローチャートである。
【図５】第１実施形態によるバックラッシュ量補償における信号変化を詳細に示す図である。
【図６】第１実施形態によるバックラッシュ量補償の効果を説明する図である。
【図７】本発明の第２実施形態によるアームの回転角度の周波数応答を表すグラフである。
【図８】第２実施形態によるバックラッシュ量補償の効果を説明する図である。
【図９】本発明の第３実施形態によるアームの回転角度のステップ応答を表すグラフである。
【図１０】第３実施形態によるバックラッシュ量補償の効果を説明する図である。
【図１１】本発明の第４実施形態によるバックラッシュ量補償において、最終位置指令信号からアームの回転角度までをモデル化したブロック線図である。
【発明を実施するための形態】
【００２３】
以下、本発明の各実施形態を、図面に基づき説明する。なお、以下の説明では、同一の構成要素には同一の符号を付している。また、同一の構成要素に関しては、名称も機能も同じである。したがって、同一のものについての詳細な説明は繰返さない。
【００２４】
［第１実施形態］
図面を参照しながら、本発明の第１実施形態によるアームの制御方法及び制御装置について説明する。
まず、本実施形態に係る制御方法及び制御装置が適用されるロボットシステム１の全体構成について説明する。
図１に示すように、ロボットシステム１は、溶接作業を行うロボット（溶接ロボット）２と、溶接ロボット２の動作を制御する制御装置３と、パソコン等の情報処理装置で構成される教示データ作成装置とを含む。図１において、教示データ作成装置は図示されていない。
【００２５】
溶接ロボット２は垂直多関節型の６軸の産業用ロボットであり、その先端に溶接トーチなどから構成される溶接ツール４が設けられている。この溶接ロボット２はそれ自体を移動させるスライダ（図示せず）に搭載されていてもよい。
図１に示すように、溶接ロボット２の各アームを接続する関節は、モータ６、減速機７、及びエンコーダ８を有している。例えば溶接ツール４が取り付けられるアーム５は、減速機７を介してモータ６に接続されている。制御対象であるモータ６は、後述する制御装置３の指示によって回転し、そのモータ６の回転は減速機７で減速されて、同じく制御対象であるアーム５に伝達される。
【００２６】
エンコーダ８は、モータ６に設けられた装置であり、モータ６の回転角度を検出すると共に、検出した回転角度を回転角度信号として制御装置３に出力する。
ところで、モータ６に備えられた減速機７は、複数の歯車で構成されているためにバックラッシュを有している。このバックラッシュの影響により、正方向に運動している減速機７を逆方向に運動させるためにモータ６の回転方向を反転させた際、その反転の瞬間において、モータ６が逆方向の回転を始めてから減速機７が逆方向の運動を開始（出力）するまでの時間差が生じる。つまり、バックラッシュの存在によって、モータ６の回転方向の反転時にモータ６の回転と減速機７の運動（出力）が一致しなくなるといった誤差現象が生じる。
【００２７】
このバックラッシュによる誤差を補償（誤差現象を解消）するために、本発明の制御装置３は、バックラッシュ量計算部９、遅れ時間計算部１０などを備えている、これらに関しては、後ほど詳しく説明する。
ところで、ロボットシステム１を構成する制御装置３は、溶接ロボット２の動作を、予め教示した教示プログラムに従って制御するものである。教示プログラムは、制御装置３に接続された教示ペンダントを使用して作成する場合や、図示しない教示データ作成装置を使用してオフラインで作成する場合がある。いずれの場合であっても、教示プログラムは、溶接ロボット２が実際に溶接作業を行う前に予め作成される。教示データ作成装置を用いて作成された教示プログラムは、磁気的又は電気的にデータを記憶した媒体等を介して制御装置３に渡されたり、データ通信により制御装置３に転送されたりする。
【００２８】
このような制御装置３は、位置指令信号生成部１１、制御方向検出部１２、バックラッシュ量計算部９、遅れ時間計算部１０、信号加算部１３、及び位置制御部１４からなる制御部１５を有している。
図１及び図２を参照しながら、制御装置３の各構成要素について説明する。
位置指令信号生成部１１は、アーム５の回転角度位置を制御するために、アーム５の回転角度位置に対応したモータ６の回転角度位置を指定するための位置指令信号θr(t)を生成し、出力するものである。
【００２９】
図２（ｂ）に示すように、位置指令信号θr(t)は、正弦波のように周期的に変動するものであって、モータ６の回転角度位置を指示する（回転制御方向が周期的に変動するように指示する）信号である。この周期的に変動する信号は、ウィービング溶接などにおいてアーム５を溶接線に対して左右に揺動させる際に発せられる。
制御方向検出部１２は、位置指令信号生成部１１から出力された位置指令信号からモータ６の回転制御方向を検出し、その制御方向に応じて正又は負の値１のステップ状制御方向信号を出力するものである。
【００３０】
制御方向信号は、位置指令信号θr(t)のピーク位置を境にして値の正負が入れ替わる。つまり、制御方向信号の波形は、位置指令信号θr(t)のピーク位置を境にして値１から値−１へ、その逆に値−１から値１へステップ状に変動する。
制御方向検出部１２は、その制御方向が反転しない場合は、同じ値の制御方向信号を出力し続ける。また、初期状態において制御方向検出部１２は、値ゼロの制御方向信号を出力する。
【００３１】
バックラッシュ量計算部９は、制御方向検出部１２から出力された制御方向信号に所定のバックラッシュ補償ゲインＢを乗じてバックラッシュ量信号θB(t)を生成し、出力するものである。バックラッシュ量信号θB(t)は、正又は負の値１のステップ状制御方向信号にバックラッシュ補償ゲインＢを乗じた信号であるので、制御方向信号と同じくステップ状の波形を有している。  
【００３２】
図２（ｂ）に示すバックラッシュ量信号θB(t)は、制御方向信号にバックラッシュ補償ゲインＢを乗じて得られるものである。よって、バックラッシュ量信号θB(t)の値は、制御方向信号と同じく位置指令信号θr(t)のピーク位置を境にして正から負へ、その逆に負から正へステップ状に変動する。つまり、位置指令信号θr(t)のピーク位置と、バックラッシュ量信号θB(t)のステップ状の変動位置とは同じ時間となっている。
【００３３】
なお、バックラッシュ補償ゲインＢの値は、バックラッシュ量信号θB(t)の値が減速機７のバックラッシュ量に対応する大きさとなるように設定される。
遅れ時間計算部１０は、バックラッシュ量計算部９から出力されたバックラッシュ量信号θB(t)を一定時間Ｌ（遅れ時間Ｌ）だけ遅れさせたバックラッシュ補正信号θBL(t)を生成し、出力するものである。
【００３４】
図２（ｂ）に示すバックラッシュ補正信号θBL(t)は、バックラッシュ量信号θB(t)を遅れ時間Ｌだけ遅れさせた（シフトした）波形を示している。つまり、バックラッシュ補正信号θBL(t)の値がステップ状に変動する位置は、位置指令信号θr(t)のピーク位置から遅れ時間Ｌだけ遅れる（シフトする）。
なお、上述のバックラッシュ量計算部９と遅れ時間計算部１０とを合わせて、バックラッシュ補正信号計算部という。
【００３５】
信号加算部１３は、位置指令信号生成部１１から出力された位置指令信号θr(t)と、遅れ時間計算部１０から出力されたバックラッシュ補正信号θBL(t)とを加算して最終位置指令信号θFr(t)を生成し、出力するものである。
図２（ｂ）を参照すると、位置指令信号θr(t)にバックラッシュ補正信号θBL(t)を加算して生成された最終位置指令信号θFr(t)が示されている。最終位置指令信号θFr(t)の波形は、バックラッシュ補正信号θBL(t)が位置指令信号θr(t)のピーク位置から遅れ時間Ｌ分だけ遅れているため、バックラッシュ補正信号θBL(t)に起因するステップ状の段差も遅れ時間Ｌ分だけ遅れている。
【００３６】
位置制御部１４は、エンコーダ８で検出されるモータ６の回転角度信号が、信号加算部１３から出力された最終位置指令信号θFr(t)に追従するように、モータ６の指令電圧を計算してモータ６の回転位置を制御するものである。この位置制御部１４の制御によってモータ６が動作し、減速機７を介してアーム５が駆動する。
図２（ｂ）に示すように、位置指令信号θr(t)にバックラッシュ補正信号θBL(t)を加算して得られた最終位置指令信号θFr(t)に従った制御では、アーム５の回転角度θA(t)の振幅を、破線で示す元の位置指令信号θr(t)の振幅とほぼ同じ大きさとなるように確保できることがわかる。
【００３７】
本実施形態では、遅れ時間Ｌだけ遅れさせたバックラッシュ補正信号θBL(t)を用いることによって、従来のバックラッシュ補償の手順を示す図２（ａ）の手順では解消できなかったアーム５の往復運動に作用するバックラッシュの影響を解消することができる。
このような構成のロボットシステム１によってウィービング溶接を行う場合を例として、遅れ時間Ｌだけ遅れさせたバックラッシュ補正信号θBL(t)を採用する必要性を、別の視点から説明する。
【００３８】
前述の如くウィービング溶接では、先端に溶接ツール４を取り付けたアーム５が溶接線に対して左右に揺動される。言い換えれば、位置制御部１４が、正弦波のような周期信号である位置指令信号θr(t)又は最終位置指令信号θFr(t)に従ってモータ６の回転位置を制御することで、アーム５が往復運動を行う。
図３に示すように、このときのアーム５の往復運動（特に往復反転時）は、減速機７のバックラッシュによって位置指令信号よりも位相が遅れてしまう。アーム５に作用する慣性力や重力により発生する回転方向の力が減速機７の摩擦力より小さい場合には、減速機７は、近似的に、以下の式（１）に従って角度伝達をする。
【００３９】
【数１】
0005269158.tif 000002
【００４０】
図３は、式（１）の関係をグラフに表したものである。図３において、モータ６の回転角度θM(t)は、正弦波として一点鎖線で示されている。図３において、このモータ６の回転角度θM(t)に減速機７の減速比Ｃを乗じたＣ・θM(t)が、破線で示されている。減速機７にバックラッシュが無いと仮定した場合、この破線が減速機７の出力を示す波形となるので、減速機７に取り付けられたアーム５の回転角度θA(t)も、破線が示す波形と同様の波形を示すはずである。しかし、実際のアーム５の回転角度θA(t)が示す波形は、バックラッシュの存在により図３において実線で示す波形となる。なお、記号の後に(t)が付された記号は、時間（ｓ：秒）に応じて値が変化する信号を表している。
【００４１】
実際のアーム５の回転角度θA(t)が示す波形を破線で示す減速機７の出力と比較すると、実際の回転角度θA(t)が示す実線の波形は、減速機７のバックラッシュ量Δθだけ振幅が減少している。また、一点鎖線で示すモータ６の回転角度θM(t)と比較すると、実際の回転角度θA(t)が示す波形の位相は、バックラッシュの存在によりモータ６の回転角度θM(t)の位相よりも遅れている。
このように、位置指令信号θr(t)及びモータ６の回転角度θM(t)から位相が遅れるアーム５の回転角度θA(t)に対して、バックラッシュに起因した振幅の減少分を補償（バックラッシュ補償）する必要がある。
【００４２】
本実施形態では、上述のように、バックラッシュに起因したアーム５の回転角度θA(t)の振幅の減少分を、図２（ｂ）に示すバックラッシュ補正信号θBL(t)を位置指令信号θr(t)に加算して最終位置指令信号θFr(t)を生成することで補償する。以下、バックラッシュ補正信号θBL(t)の生成及び最終位置指令信号θFr(t)の生成について順を追って説明する。
【００４３】
図４及び図５を参照しながら、バックラッシュ補正信号θBL(t)の生成について説明する。
制御装置３の位置指令信号生成部１１は、ウィービング溶接を行うためのアーム５の回転角度位置の位置指令信号θr(t)を生成し出力する。ウィービング溶接においては、アーム５を一定の振幅で滑らかに往復運動させる必要があるため、位置指令信号生成部１１は、図５に示すような正弦波の位置指令信号θr(t)を出力する（図４のステップＳ１：位置指令信号生成ステップ）。
【００４４】
制御方向検出部１２は、ステップＳ１で位置指令信号生成部１１から出力された位置指令信号θr(t)から、アーム５の回転を制御する方向（制御方向）を検出し、検出した制御方向に応じてステップ状の制御方向信号θ±(t)を出力する。制御方向信号θ±(t)は、位置指令信号θr(t)の微分値に基づいて式（２）によって定義される、図５に示すような正又は負の値１のステップ状信号である（図４のステップＳ２：制御方向検出ステップ）。
【００４５】
【数２】
0005269158.tif 000003
【００４６】
バックラッシュ量計算部９は、ステップＳ２で制御方向検出部１２から出力された制御方向信号θ±(t)を基に、以下の手順でバックラッシュ量信号θB(t)を生成して出力し（バックラッシュ量計算ステップ）、遅れ時間計算部１０は、次の手順でバックラッシュ量信号θB(t)を遅れ時間Ｌだけ遅らせてバックラッシュ補正信号θBL(t)を生成し出力する（遅れ時間計算ステップ）（図４のステップＳ３）。
【００４７】
まず、予め測定された減速機７の減速比（式（１）のＣ）とバックラッシュ量（式（１）のΔθ）とを用いて、式（３）に従ってバックラッシュ補償ゲインＢを計算する。
【００４８】
【数３】
0005269158.tif 000004
【００４９】
続いて、式（４）に示すように、ステップＳ２で出力された制御方向信号θ±(t)にバックラッシュ補償ゲインＢを乗算して、バックラッシュ量信号θB(t)が生成される。
【００５０】
【数４】
0005269158.tif 000005
【００５１】
バックラッシュ補償ゲインＢが１未満の値であるとき、生成されたバックラッシュ量信号θB(t)は、図５に示すように制御方向信号θ±(t)よりも振幅の小さなステップ状の信号となる。これにより、制御方向信号θ±(t)を基にして、バックラッシュ量に応じた振幅のバックラッシュ量信号θB(t)を得ることができる。この処理が、バックラッシュ量計算ステップである。
【００５２】
続いて、遅れ時間計算部１０は、得られたバックラッシュ量信号θB(t)を、そのままの波形で振幅を変えずに遅れ時間Ｌだけ遅らせることによって、図５に示すバックラッシュ補正信号θBL(t)を生成して出力する。バックラッシュ補正信号θBL(t)は、式（５）によって定義される。この処理が、遅れ時間計算ステップである。なお、遅れ時間Ｌの設定方法については、後に説明する。
【００５３】
【数５】
0005269158.tif 000006
【００５４】
ここまでの処理で、本実施形態の技術的特徴であるバックラッシュ補正信号θBL(t)を得ることができる。以下には、引き続き図４及び図５を参照しながら、バックラッシュ補正信号θBL(t)を用いて最終位置指令信号θFr(t)を生成し、生成した最終位置指令信号θFr(t)に従ってアーム５を制御するまでの処理を説明する。
【００５５】
信号加算部１３は、ステップＳ３で遅れ時間計算部１０から出力されたバックラッシュ補正信号θBL(t)と、ステップＳ１で位置指令信号生成部１１から出力された位置指令信号θr(t)とを足し合わせて、式（６）によって定義される最終位置指令信号θFr(t)を生成し出力する（図４のステップＳ４：信号加算ステップ）。
上記一連のステップＳ１〜ステップＳ４をまとめて、最終位置指令信号生成ステップという。
【００５６】
【数６】
0005269158.tif 000007
【００５７】
図５に示すように、上記の手順で得られた最終位置指令信号θFr(t)の波形では、バックラッシュ補正信号θBL(t)に起因するステップ状の段差がピーク位置から遅れ時間Ｌ分だけ遅れている。
位置制御部１４は、エンコーダ８で検出されるモータ６の回転角度信号が、信号加算部１３から出力された最終位置指令信号θFr(t)に追従するように、モータ６の指令電圧を計算してモータ６の回転位置を制御する。この位置制御部１４の制御によってモータ６が動作し、減速機７を介してアーム５の角度が制御される（図４のステップＳ５：位置制御ステップ）。
上述のステップＳ１からステップＳ５の処理によって、バックラッシュに影響されないロボットシステム１によるウィービング溶接を実施することができる。
【００５８】
次に、図６を参照しながら、本実施形態における遅れ時間Ｌの設定方法を説明する。図６は、本実施形態を、遅れ時間Ｌの設定値が小さい場合と大きい場合に適用したときの各信号の時間変化と、アーム５の回転角度を示している。図６では、上から順に、位置指令信号θr(t)、バックラッシュ補正信号θBL(t)、最終位置指令信号θFr(t)、及びアーム５の回転角度θA(t)が示されている。
【００５９】
本実施形態において、遅れ時間計算部１０は、制御方向検出部１２により検出された制御方向が反転してから実際にアーム５の挙動が反転するまでの時間以上となるように遅れ時間Ｌ[sec]を設定する。
このように遅れ時間Ｌ[sec]を設定すれば、アーム５の振幅はバックラッシュがない場合と同じになり、実線で示すアーム５の振幅は破線で示すバックラッシュがない場合の振幅（元の位置指令信号θr(t)が示す位置）と同じとなる（図６（ｂ）を参照）。
【００６０】
また、遅れ時間Ｌが、制御方向が反転してから実際にアーム５の挙動が反転するまでの時間より小さくなるように設定されると、実線で示すアーム５の振幅は破線で示すバックラッシュがない場合の振幅よりも小さくなる（図６（ａ）を参照）。しかし、遅れ時間Ｌを０とした図６（ｃ）の従来技術と比較すると、アーム５の振幅はバックラッシュがない場合に近くなる。これは、遅れ時間Ｌが０より少しでも大きければ、バックラッシュ補正信号θBL(t)の反転時間（更新時間）を遅らせることができ、実際のアーム５の反転時間が、バックラッシュがない場合のアーム５の反転時間に近くなることを示している。
【００６１】
本実施形態では、このような考えに基づいて、遅れ時間Ｌの設定値を０より大きい値に設定することで、アーム５の挙動の反転位置（振幅）をバックラッシュがない場合の反転位置（振幅）に近づけている。
例えば、遅れ時間Ｌが、位置指令信号θr(t)が示す制御方向が反転してから次の反転までの時間以上となるように設定されてしまうなど、上記設定方法で設定した遅れ時間Ｌが大きすぎた場合、次の反転時のアーム５の挙動に影響を与えることがある。
【００６２】
これに限らず、位置指令信号θr(t)が周期信号である場合、当該周期の半分以上の時間となるように遅れ時間Ｌを設定すると、次の反転時のアーム５の挙動に影響を与えることがある。そのような場合には、遅れ時間Ｌを、位置指令信号θr(t)の周期の半分以下となるように設定すると、上述した本実施形態の効果を得ることができる。
以上が、第１実施形態における遅れ時間Ｌの決定手法である。
【００６３】
［第２実施形態］
次に、本発明の第２実施形態について説明する。
本実施形態によるロボットシステム１の構成は、既に説明した第１実施形態とほぼ同様である。第１実施形態と異なる点は、遅れ時間計算部１０による遅れ時間Ｌの設定方法であるので、以下に、図７及び図８を参照しながら、第２実施形態における遅れ時間Ｌの設定方法を説明する。
本実施形態では、位置指令信号生成部１１で生成される位置指令信号θr(t)が、ある周波数ω[rad/s]の周期信号である場合に、遅れ時間Ｌを以下の手順に従ってより正確に設定する方法について説明する。
【００６４】
（手順１）
まず、位置制御部１４への入力信号（最終位置指令信号θFr(t)）としてバックラッシュ補正信号θBL(t)を含まない周波数ω[rad/s]の周期信号（例えば、正弦波信号）を採用して、そのときのアーム５の回転角度θA(t)を計測（実測）する。ただし、アーム５の回転角度θA(t)を実測する手段がない場合には、エンコーダ８で計測されたモータ６の回転角度θM(t)に減速機７の減速比Ｃを掛けたＣ・θM(t)をここでのアーム５の回転角度θA(t)とする。
図７は、この周波数ω[rad/s]の周期信号である最終位置指令信号θFr(t)に実測されたアーム５の回転角度θA(t)を重ね合わせたグラフである。
【００６５】
（手順２）
図７に示すように、実測されたアーム５の回転角度θA(t)が周期的な動きになっている時刻で、最終位置指令信号θFr(t)と実測されたアーム５の回転角度θA(t)との位相差Ｔを求め、その位相差Ｔに相当する時間を遅れ時間Ｌとして設定する。
例えば、図７の最終位置指令信号θFr(t)とアーム５の回転角度θA(t)について、それぞれの波形がピークとなる時間の差（位相差Ｔ）を求め、その位相差Ｔを遅れ時間Ｌとして設定する。アーム５の回転角度θA(t)がピークとなる時間を求める際、バックラッシュの影響によってピークが一定時間続くが、ここでは、ピーク値となった最初の時刻（図７の点Ａでの時刻）をアーム５の回転角度θA(t)のピーク時刻とみなして位相差Ｔを求める。
【００６６】
図８を参照しながら、上記のように遅れ時間Ｌを設定したとき本実施形態の効果について説明する。図８は、ロボットシステム１に本実施形態を適用したときの各信号の時間変化とアーム５の回転角度θA(t)を示している。
図８では、上から順に、位置指令信号θr(t)、バックラッシュ補正信号θBL(t)、最終位置指令信号θFr(t)、及びアーム５の回転角度θA(t)が示されている。ここで、バックラッシュ補正信号θBL(t)は、上述の手順で設定された遅れ時間Ｌだけ遅れている。また、一番下のグラフの実線は、本実施形態を適用した場合のアーム５の回転角度θA(t)であり、破線は減速機７にバックラッシュがないときの振幅（元の位置指令信号θr(t)が示す位置）を表している。このグラフから、位置指令信号θr(t)が周期信号（ここでは正弦波信号）のときのアーム５の挙動の振幅が、本実施形態によるバックラッシュ補償によってバックラッシュのない場合とほぼ同じとなることが分かる。
【００６７】
［第３実施形態］
本発明の第３実施形態について説明する。
本実施形態によるロボットシステム１の構成は、既に説明した第１実施形態及び第２実施形態とほぼ同様である。第１実施形態及び第２実施形態と異なる点は、遅れ時間計算部１０による遅れ時間Ｌの設定方法であるので、以下に、図９及び図１０を参照しながら、本実施形態における遅れ時間Ｌの設定方法を説明する。
本実施形態において、遅れ時間Ｌは、位置制御部１４にステップ信号を入力して、そのときに実測されたアーム５の回転角度θA(t)に基づいて決定される。このステップ信号を用いた設定方法は、位置指令信号生成部１１で生成される位置指令信号θr(t)が周期信号でない場合でも有効な方法である。遅れ時間Ｌを設定する手順を、以下順に説明する。
【００６８】
（手順１）
まず、位置制御部１４への入力信号（最終位置指令信号θFr(t)）として時刻０[sec]以降である一定の値となる信号（ステップ信号）を採用して、そのときのアーム５の回転角度θA(t)を計測（実測）する。ただし、アーム５の回転角度θA(t)を実測する手段がない場合には、エンコーダ８で計測されたモータ６の回転角度θM(t)に減速機７の減速比Ｃを掛けたＣ・θM(t)をここでのアーム５の回転角度θA(t)とする。
図９は、入力されたステップ信号に対するアーム５の回転角度θA(t)のステップ応答の実測値を示したグラフである。図９に示すステップ応答において、アーム５の回転角度θA(t)は、ステップ信号が入力されてから一定時間後に定常値１となっている。
【００６９】
（手順２）
図９のグラフを基に、実測されたアーム５の回転角度θA(t)が定常値の約６３．２％に達する時間（時定数）を求めて、その時定数を遅れ時間Ｌとする。大きさ１[rad]のステップ信号を用いて、図９に示すアーム５の回転角度θA(t)の波形が得られた場合、０．６３２[rad]に達するまでの時間は０．３６[sec]である。この０．３６[sec]を時定数として、遅れ時間 Ｌを０．３６[sec]とする。
【００７０】
図１０を参照しながら、時定数を用いて遅れ時間Ｌを設定したとき本実施形態の効果について説明する。図１０は、ロボットシステム１に本実施形態を適用したときの各信号の時間変化とアーム５の回転角度θA(t)を示している。
図１０では、上から順に、位置指令信号θr(t)、バックラッシュ補正信号θBL(t)、最終位置指令信号θFr(t)、及びアーム５の回転角度θA(t)が示されている。ここで、バックラッシュ補正信号θBL(t)は、上述の時定数を用いて設定された遅れ時間Ｌだけ遅れている。また、一番下のグラフの実線は、本実施形態を適用した場合のアーム５の回転角度θA(t)であり、破線は減速機７にバックラッシュがないときの振幅（元の位置指令信号θr(t)が示す位置）を表している。このグラフから、位置指令信号θr(t)が周期信号（ここでは正弦波信号）のときのアーム５の挙動の振幅が、本実施形態によるバックラッシュ補償によってバックラッシュのない場合とほぼ同じとなることが分かる。
【００７１】
さらに、上述の時定数を用いて遅れ時間Ｌを設定することにより、遅れ時間Ｌがロボットシステム１の系に適したものとなるため、アーム５の挙動は反転後にすばやくバックラッシュのない場合の挙動に近づく。
【００７２】
［第４実施形態］
本発明の第４実施形態について説明する。
本実施形態によるロボットシステム１の構成は、既に説明した第１実施形態〜第３実施形態とほぼ同様である。第１実施形態〜第３実施形態と異なる点は、遅れ時間計算部１０による遅れ時間Ｌの設定方法であるので、
以下に、図１１を参照しながら、本実施形態における遅れ時間Ｌの設定方法を説明する。
【００７３】
上述の第２実施形態及び第３実施形態では、実際にロボットシステム１にステップ信号や正弦波信号を入力して、アーム５の回転角度θA(t)を実測する方法であったが、本実施形態では、溶接ロボット２のモデルを基にして遅れ時間Ｌを設定する。以下、溶接ロボット２のモデルを用いて遅れ時間Ｌを設定する手順を説明する。
まず、位置制御部１４への入力信号である最終位置指令信号θFr(t)からアーム５の回転角度θA(t)までを、図１１のようなブロック図でモデル化する。ただし、ここでは減速機７にバックラッシュがない場合を考える。
【００７４】
図１１において、ｓはラプラス演算子である。図１１の破線で囲った部分はモータ６、減速機７、アーム５を合わせて簡易的なモデルで表したブロック図である。Ｊはモータ６と減速機７の慣性モーメントが全てアーム５に存在するとみなした場合のアーム５の慣性モーメントであり、Ｃは減速機７の減速比である。ＲＭはモータ６内部の抵抗であり、ＬＭはモータ６内部のインダクタンスである。Ｋτはトルク係数であり、Ｋｅは逆起電力係数を表す。Ｆ(t)はアーム５に作用する摩擦力である。
【００７５】
また、Ｋ(s)は位置制御部１４であり、例えば、式（７）に示すようなＰＩ制御である。
【００７６】
【数７】
0005269158.tif 000008
【００７７】
ここで、最終位置指令信号θFr(t)からアーム５の回転角度θA(t)までの伝達関数を求めると以下の式（８）で表せる。
【００７８】
【数８】
0005269158.tif 000009
【００７９】
ここで、上式の最終位置指令信号θFr(t)からアーム５の回転角度θA(t)までの伝達関数をＧ(s)と表すことにする。
このモデルに対して、上述の第３実施形態と同様に、ステップ信号を入力するシミュレーションを行って出力を求め、遅れ時間Ｌを求める。
また、位置指令信号生成部１１で生成される位置指令信号θr(t)がある周波数ω[rad/s]の正弦波信号である場合には、最終位置指令信号θFr(t)からアーム５の回転角度θA(t)までの周波数ω[rad/s]に対応する位相遅れargＧ(jω)を求める。ここで、ｊは虚数単位を表し、Ｇ(jω)はＧ(s)のｓにjωを代入したものである。argＧ(jω)はＧ(jω)の偏角を表す。その上で、−argＧ(jω)／ωを遅れ時間Ｌとする。
【００８０】
このように溶接ロボット２のモデルから遅れ時間Ｌを求めることで、第２実施形態及び第３実施形態のように実際に実機で計測実験を行うことなく遅れ時間Ｌを設定をすることができる。
本実施形態によって設定された遅れ時間Ｌを用いてバックラッシュ補正信号θBL(t)を生成しても、上述の各実施形態と同等の効果を得ることができる。
【００８１】
ところで、今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。特に、今回開示された実施形態において、明示的に開示されていない事項、例えば、動作条件や測定条件、各種パラメータ、構成物の寸法、重量、体積などは、当業者が通常実施する範囲を逸脱するものではなく、通常の当業者であれば、容易に想定することが可能な値を採用している。
【符号の説明】
【００８２】
１    ロボットシステム
２    溶接ロボット
３    制御装置
４    溶接ツール
５    アーム
６    モータ
７    減速機
８    エンコーダ
９    バックラッシュ量計算部
１０    遅れ時間計算部
１１    位置指令信号生成部
１２    制御方向検出部
１３    信号加算部
１４    位置制御部
１５    制御部
【図１】
0005269158.tif 000010
【図２】
0005269158.tif 000011
【図３】
0005269158.tif 000012
【図４】
0005269158.tif 000013
【図５】
0005269158.tif 000014
【図６】
0005269158.tif 000015
【図７】
0005269158.tif 000016
【図８】
0005269158.tif 000017
【図９】
0005269158.tif 000018
【図１０】
0005269158.tif 000019
【図１１】
0005269158.tif 000020