(57)【要約】【課題】ロボットの動作停止時に振動が発生することを適切に回避し、ロボットの動作開始から動作停止までの動作全体での動作軌跡の精度を適切に高める。【解決手段】ロボット制御装置３は、ロボット２の動作停止時では摩擦補償をオフすることなく更新を停止し、ロボット２の動作再開時では、ロボット２の動作再開時の摩擦補償の状態量とロボット２の動作再開直前の摩擦補償の状態量との差分を補正量として計算し、ロボット２の動作再開時の積分補償の状態量をロボット２の動作開始直前の積分補償の状態量から補正量を差引くことで計算する。【選択図】図１
2010214561.tif 000002
【特許請求の範囲】
【請求項１】
モータ軸側ギアと出力軸側ギアとが噛み合っている状態で前記モータ軸側ギアが回転することに連動して前記出力軸側ギアが回転することで前記出力軸が駆動可能に構成されてなる駆動軸の動作を制御するように構成され、
前記モータ軸のねじれ、前記モータ軸と前記モータ軸側ギアとの接続箇所のねじれ、前記モータ軸側ギアの変形、前記出力軸側ギアの変形及び前記出力軸側ギアと前記出力軸との接続箇所のねじれ起因する変形を弾性変形としてそれらの合算値である弾性変形量に対する摩擦補償用トルクを印加する摩擦補償手段と、
外乱力に対する積分補償用トルクを印加する積分補償手段とを備えたロボット制御装置において、
前記摩擦補償手段は、ロボットの動作停止中ではロボットの動作停止直前での摩擦補償用トルクを固定値として継続して印加し、ロボットの動作開始時では当該動作開始時点での摩擦を補償するように摩擦補償用トルクを変更し、
前記積分補償手段は、ロボットの動作停止中では外乱力と摩擦との和に対して前記摩擦補償手段が印加する固定値である摩擦補償用トルクとの和が均衡を常時保つように積分補償用トルクを加減して変更し、ロボットの動作開始時の積分補償の状態量を次に示す計算式にしたがって計算することを特徴とするロボット制御装置。
ロボットの動作開始時の積分補償の状態量
＝ロボットの動作開始直前の積分補償の状態量−（ロボットの動作開始時の摩擦補償の状態量−ロボットの動作開始直前の摩擦補償の状態量）
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ側のギアと軸側のギアとが噛み合っている状態で前記モータ側のギアが回転することに連動して前記軸側のギアが回転することで前記軸が駆動可能に構成されてなる駆動軸の動作を制御するロボット制御装置に関する。
【背景技術】
【０００２】
モータ側のギアが回転することに連動して軸側のギアが回転することで軸が駆動可能に構成されてなる駆動軸を有するロボットの動作軌跡の精度を高める方法として、送り系のバックラッシに起因するロストモーション量、ギアの弾性変形に起因するロストモーション量及び静摩擦に起因するロストモーション量を予め計算しておき、軸の移動方向が反転する場合に、モータのギアをバックラッシ加速度で送り系のバックラッシに起因するロストモーション量だけ駆動させ、続いて弾性変形加速度でギアの弾性変形に起因するロストモーション量だけ駆動させ、続いて静摩擦加速度で静摩擦に起因するロストモーション量だけ駆動させる方法がある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２８２０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されている方法では摩擦補償を行うことでロボットの動作軌跡の精度を高めることが可能である。ところで、このように摩擦補償を行った場合に、ロボットの動作開始時での動作軌跡の精度を高めることができる一方で、ロボットの動作停止時では現実的に制御値と実測値との間に微小なズレが発生してそれら制御値と実測値とが同値に収束しないことで振動が発生するという問題がある。
【０００５】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、ロボットの動作開始から動作停止までの動作全体での動作軌跡の精度を適切に高めることができるロボット制御装置を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載した発明によれば、摩擦補償手段は、ロボットの動作停止中にあるときにはロボットの動作停止直前での摩擦補償用トルクを固定値として継続して印加し、ロボットの動作開始時では当該動作開始時点での摩擦を補償するように摩擦補償用トルクを変更する。積分補償手段は、ロボットの動作停止中では外乱力と摩擦との和に対して摩擦補償手段が印加する固定値である摩擦補償用トルクとの和が均衡を常時保つように積分補償用トルクを加減して変更し、ロボットの動作開始時の積分補償の状態量を次に示す計算式にしたがって計算することを特徴とするロボット制御装置。
【０００７】
ロボットの動作開始時の積分補償の状態量
＝ロボットの動作開始直前の積分補償の状態量−（ロボットの動作開始時の摩擦補償の状態量−ロボットの動作開始直前の摩擦補償の状態量）
これにより、ロボットの動作停止時から動作開始時までの停止期間では、外乱力や摩擦が変化すると、その外乱力や摩擦が変化したことに追従して変化分を積分補償することで、外乱力及び摩擦の和と積分補償及び摩擦補償の和との間で均衡を保つことができ、ロボットの動作開始時では、積分補償用トルクを上記した式にしたがって計算することで、ロボットの動作開始時においても外乱力及び摩擦の和と積分補償及び摩擦補償の和との間で均衡を保つことができる。よって、ロボットの動作開始から動作停止までの動作全体での動作軌跡の精度を適切に高めることができる。又、このように積分補償の状態量を変化させるだけで良いので、制御系の安定性に悪影響を与えることなく、単純な演算だけで実装可能である。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態を示す機能ブロック図
【図２】ロボット制御システムの全体構成を示す図
【図３】軸の駆動部分を概略的に示す図
【図４】フローチャート
【図５】図４相当図
【図６】図４相当図
【図７】図４相当図
【図８】モータ軸側ギアが動作開始時に弾性変形する態様を示す図及び摩擦補償用トルクの推移を示す図
【図９】図８相当図
【図１０】図８相当図
【図１１】モータ軸側ギアが動作停止時に弾性変形する態様を示す図及び摩擦補償用トルクの推移を示す図
【図１２】図１１相当図
【図１３】外乱力及び摩擦に対する積分補償及び摩擦補償を概略的に示す図
【図１４】図１３相当図
【図１５】図１３相当図
【図１６】測定結果を示す図
【発明を実施するための形態】
【０００９】
以下、本発明の一実施形態について、図面を参照して説明する。図２は、ロボット制御システムの全体構成を示している。ロボット制御システム１は、例えば６軸の垂直多関節型ロボットからなるロボット２と、ロボット２の動作を制御するロボット制御装置３と、作業者が操作するティーチングペンダンド４とを備えて構成されている。
【００１０】
ロボット２は、ベース５と、ベース５に水平方向に旋回可能に支持されているショルダ部６と、ショルダ部６に上下方向に旋回可能に支持されている下アーム７と、下アーム７に上下方向に旋回可能に支持されている第１の上アーム８と、第１の上アーム８の先端部に捻り回転可能に支持されている第２の上アーム９と、第２の上アーム９に上下方向に回転可能に支持されている手首１０と、手首１０に回転（捻り動作）可能に支持されているフランジ１１とを備えて構成されている。
【００１１】
上記したベース５を含め、ショルダ部６、下アーム７、第１の上アーム８、第２の上アーム９、手首１０及びフランジ１１は、ロボット２におけるリンクとして機能し、ベース５を除く各リンクは前段のリンクに対して回転関節により回転可能に連結されている。最先端のリンクであるフランジ１１にはワークを把持するためのハンド（図示せず）が取付け可能になっている。
【００１２】
尚、本実施形態では、第１のリンクであるベース５と第２のリンクであるショルダ部６との間を連結する回転関節の関節軸を１軸、第２のリンクであるショルダ部６と第３のリンクである下アーム７との間を連結する回転関節の関節軸を２軸、第３のリンクである下アーム７と第４のリンクである第１の上アーム８との間を連結する回転関節の関節軸を３軸、第４のリンクである第１の上アーム８と第５のリンクである第２の上アーム９との間を連結する回転関節の関節軸を４軸、第５のリンクである第２の上アーム９と第６のリンクである手首１０との間を連結する回転関節の関節軸を５軸、第６のリンクである手首１０と第７のリンクであるフランジ１１との間を連結する回転関節の関節軸を６軸として図示している。
【００１３】
図１は、ロボット制御装置３及びロボット２の電気的な構成を機能ブロック図により示している。ロボット制御装置３は、マイクロコンピュータからなるＣＰＵ１２（本発明でいう摩擦補償手段、積分補償手段）と、ＣＰＵ１２からの動作指令に基づいて駆動信号をロボット２に出力する駆動回路１３と、ロボット２の動作プログラムなどを記憶するＲＡＭ１４と、ロボット２のシステムプログラムや動作プログラムを作成するためのロボット言語などを記憶するＲＯＭ１５とを備えて構成されている。ロボット２は、ショルダ部６、各アーム７〜９、手首１０及びフランジ１１を駆動させるモータ１６と、モータ１６の回転角度を検出するエンコーダ１７とを備えている。尚、これらモータ１６及びエンコーダ１７はリンク毎に設けられている。
【００１４】
ＣＰＵ１２は、リンク毎のエンコーダ１７から入力したエンコーダ角度（エンコーダ値）に基づいてベース５に対するショルダ部６の回転角度、ショルダ部６に対する下アーム７の回転角度、下アーム７に対する第１の上アーム８の回転角度、第１の上アーム８に対する第２の上アーム９の回転角度、第２の上アーム９に対する手首１０の回転角度、手首１０に対するフランジ１１の回転角度を検出し、ロボット２の位置（姿勢）を検出すると共に、エンコーダ角度をフィードバック制御して駆動回路１３から駆動信号を出力させ、それらショルダ部６、各アーム７〜９、手首１０及びフランジ１１の動作を制御する。
【００１５】
ロボット２における各軸の駆動部分は、図３に示すように、モータ１６のモータ軸１８に取付けられているモータ軸側ハーモニックギア（以下、モータ軸側ギアと称する）１９と出力軸２０に取付けられている出力軸側ハーモニックギア（以下、出力軸側ギアと称する）２１とが噛み合っており、ロボット制御装置３からモータ１６に駆動信号が出力されてトルク指令値が与えられることでモータ１６がモータ軸側ギア１９を回転させ、モータ軸側ギア１９が回転されることに追従して出力軸側ギア２１が回転されるように構成されている。尚、これ以降、モータ軸１８の回転角度を検出するエンコーダ１７が出力するエンコーダ角度をモータ軸側エンコーダ角度として定義し、出力軸２０の回転角度を検出するエンコーダが出力するエンコーダ角度を出力軸側エンコーダ角度として定義する。
【００１６】
上記した構成では、モータ軸１８のねじれ、モータ軸１８とモータ軸側ギア１９との接続箇所のねじれ、モータ軸側ギア１９の変形、出力軸側ギア２１の変形及び出力軸側ギア２１と出力軸２０との接続箇所のねじれに起因する弾性変形が発生する。このような事情から、本実施形態ではＣＰＵ１２は以下に示す制御を行う。以下、上記した構成の作用として、ＣＰＵ１２が本発明に関連して行う制御を図４乃至図１６を参照して説明する。ロボット制御装置３において、ＣＰＵ１２は、ＲＡＭ１４に記憶されている動作プログラムを実行して所定周期（サンプリング単位周期）で以下に示すメイン処理を実行する。
【００１７】
ＣＰＵ１２は、実行中にある動作プログラムから目標角度指令を取得すると（ステップＳ１）、その目標角度指令により指示されている目標角度（目標値）とエンコーダ１７から入力しているモータ軸側エンコーダ角度とに基づいて指令速度を計算し（ステップＳ２）、計算した指令速度とエンコーダ速度とに基づいてトルク指令値を計算する（ステップＳ３）。そして、ＣＰＵ１２は、現在のモータ軸側エンコーダ角度と現在の出力軸側エンコーダ角度とに基づいて弾性変形量を更新する弾性変形量更新処理に移行する（ステップＳ４）。
【００１８】
ＣＰＵ１２は、メイン処理から弾性変形量更新処理に移行すると、現在の出力軸側エンコーダ角度を制御視点角度とし、制御視点角度から現在のモータ軸側エンコーダ角度を減算した値を弾性変形量として計算し（ステップＳ１１）、その計算した弾性変形量と予め記憶している正方向の最大弾性変形量及び負方向の弾性変形量との大小関係を比較判定する（ステップＳ１２、Ｓ１３）。ここで、ＣＰＵ１２は、計算した弾性変形量が正方向の最大弾性変形量を超えていなく（同等又は小さく）且つ負方向の最大弾性変形量を超えていない（同等又は大きい）と判定すると（ステップＳ１２にて「ＮＯ」、Ｓ１３にて「ＮＯ」）、モータ軸側ギア１９が弾性変形中であると判定し、現在の弾性変形量を維持し（ステップＳ１４）、弾性変形量更新処理を終了してメイン処理に戻り、弾性変形量から摩擦補償用トルクを決定する摩擦補償用トルク決定処理に移行する（ステップＳ５）。
【００１９】
一方、ＣＰＵ１２は、計算した弾性変形量が正方向の最大弾性変形量を超えていると判定すると（ステップＳ１２にて「ＹＥＳ」）、モータ軸側ギア１９が弾性変形中でないと判定し、その正方向の最大弾性変形量を弾性変形量として設定し（ステップＳ１５）、正方向の最大弾性変形量と現在のモータ軸側エンコーダ角度とを加算した値を制御視点角度として計算し（ステップＳ１６）、弾性変形量更新処理を終了してメイン処理に戻り、摩擦補償用トルク決定処理に移行する（ステップＳ５）。
【００２０】
又、ＣＰＵ１２は、計算した弾性変形量が負方向の最大弾性変形量を超えていると判定すると（ステップＳ１３にて「ＹＥＳ」）、モータ軸側ギア１９が弾性変形中でないと判定し、その負方向の最大弾性変形量を弾性変形量として設定し（ステップＳ１７）、負方向の最大弾性変形量と現在のモータ軸側エンコーダ角度とを加算した値を制御視点角度として計算し（ステップＳ１８）、弾性変形量更新処理を終了してメイン処理に戻り、摩擦補償用トルク決定処理に移行する（ステップＳ５）。
【００２１】
次いで、ＣＰＵ１２は、メイン処理から摩擦補償用トルク決定処理に移行すると、目標方向と弾性変形方向とを比較し、目標方向と弾性変形方向とが逆方向であるか否かを判定する（ステップＳ２１）。ここで、ＣＰＵ１２は、目標方向と弾性変形方向とが逆方向であると判定すると（ステップＳ２１にて「ＹＥＳ」）、摩擦補償用トルクを減少させ（ステップＳ２２）、摩擦補償用トルク決定処理を終了してメイン処理に戻り、停止時のチャタリングを防止する停止時チャタリング防止処理に移行する（ステップＳ６）。
【００２２】
又、ＣＰＵ１２は、目標方向と弾性変形方向とが逆方向でないと判定すると（ステップＳ２１にて「ＮＯ」）、弾性変形量が最大弾性変形量であるか否かを判定し（ステップＳ２３）、弾性変形量が最大弾性変形量でないと判定すると（ステップＳ２３にて「ＮＯ」）、摩擦補償用トルクを増加させ（ステップＳ２４）、摩擦補償用トルク決定処理を終了してメイン処理に戻り、停止時チャタリング防止処理に移行する（ステップＳ６）。一方、ＣＰＵ１２は、弾性変形量が最大弾性変形量であると判定すると（ステップＳ２３にて「ＹＥＳ」）、予め設定されている最大補償トルクを摩擦補償用トルクとして設定し（ステップＳ２５）、摩擦補償用トルク決定処理を終了してメイン処理に戻り、停止時チャタリング防止処理に移行する（ステップＳ６）。
【００２３】
次いで、ＣＰＵ１２は、メイン処理から停止時チャタリング防止処理に移行すると、計算した指令速度がゼロであるか否か（ロボット２の動作停止命令であるか否か）を判定する（ステップＳ３１）。ＣＰＵ１２は、指令速度がゼロでないと判定すると（ステップＳ３１にて「ＮＯ」）、指令速度ゼロフラグをオンに設定しているか否かを判定し（ステップＳ３２）、指令速度ゼロフラグをオンに設定していないと判定すると（ステップＳ３２にて「ＮＯ」）、現在の摩擦補償用トルクを保存補償トルクとして設定し（ステップＳ３３）、停止時チャタリング防止処理を終了してメイン処理に戻る。そして、ＣＰＵ１２は、摩擦補償用トルクをトルク指令値に加算し（ステップＳ７）、メイン処理を終了する。
【００２４】
ここで、ＣＰＵ１２は、指令速度がゼロであると判定すると（ステップＳ３１にて「ＹＥＳ」）、指令速度ゼロフラグをオフに設定しているか否かを判定し（ステップＳ３４）、指令速度ゼロフラグをオフに設定していると判定すると（ステップＳ３４にて「ＹＥＳ」）、指令速度ゼロフラグをオンに設定し（ステップＳ３５）、現在の保存補償トルクを摩擦補償用トルクとして設定し（ステップＳ３６）、停止時チャタリング防止処理を終了してメイン処理に戻る。そして、ＣＰＵ１２は、摩擦補償用トルクをトルク指令値に加算し（ステップＳ７）、メイン処理を終了する。即ち、ＣＰＵ１２は、ロボット２の動作停止時には、ロボット２の動作を停止させる直前の摩擦補償用トルクを維持する。
【００２５】
次いで、ＣＰＵ１２は、指令速度がゼロでないと判定し（ステップＳ３１にて「ＮＯ」）、指令速度ゼロフラグをオンに設定していると判定すると（ステップＳ３２にて「ＹＥＳ」）、指令速度ゼロフラグをオフに設定し（ステップＳ３７）、外乱力に対する補償を行う積分補償の状態量を次に示す計算式にしたがって計算する（ステップＳ３８）。
積分補償の状態量←積分補償の状態量−（保存補償トルク−摩擦補償用トルク）／積分補償ゲイン
【００２６】
そして、ＣＰＵ１２は、現在の摩擦補償用トルクを保存補償トルクとして設定し（ステップＳ３３）、停止時チャタリング防止処理を終了してメイン処理に戻る。そして、ＣＰＵ１２は、摩擦補償用トルクをトルク指令値に加算し（ステップＳ７）、メイン処理を終了する。
【００２７】
尚、上記した処理では、現在の出力軸側エンコーダ角度を制御視点角度とし、モータ軸側エンコーダ角度と出力軸側エンコーダ角度との差分に基づいて弾性変形量を計算する方法を説明したが、エンコーダ１７が電源投入時に示す角度を弾性変形量ゼロ角度とし、モータ軸側エンコーダ角度と弾性変形量ゼロ角度との差分に基づいて弾性変形量を計算するようにしても良い。
【００２８】
図８乃至図１０は、モータ軸側ギア１９が動作開始時に弾性変形する態様及び摩擦補償用トルクの推移を示しており、図１１及び図１２は、モータ軸側ギア１９が動作停止時に弾性変形する態様及び摩擦補償用トルクの推移を示している。尚、図８乃至図１２中では、「ａ１」は制御視点角度を示しており、「ａ２」はモータ軸側エンコーダ角度を示している。
【００２９】
図８は、モータ軸側ギア１９の弾性変形量がゼロである状態から出力軸２０を目標駆動方向に駆動させる場合を示しており、この場合は、摩擦補償用トルクがゼロの状態から摩擦補償用トルクをモータ軸側ギア１９の弾性変形量が最大弾性変形量に達するまで正比例的に増加させ、モータ軸側ギア１９の弾性変形量が最大弾性変形量に達した以後は一定値とする。即ち、摩擦補償用トルクが最大補償トルクを超えない領域では弾性変形し、摩擦補償用トルクが最大補償トルクを超えた領域では最大弾性変形量まで変形して出力軸２０が動作開始する。
【００３０】
図９は、モータ軸側ギア１９の弾性変形量がゼロでない状態から出力軸２０を目標駆動方向に駆動させる場合であり、出力軸を弾性変形方向と同一方向である目標駆動方向に駆動させる場合を示しており、この場合は、摩擦補償用トルクが所定値の状態から摩擦補償用トルクをモータ軸側ギア１９の弾性変形量が最大弾性変形量に達するまで正比例的に増加させ、モータ軸側ギア１９の弾性変形量が最大弾性変形量に達した以後は一定値とする。即ち、摩擦補償用トルクが最大補償トルクを超えた領域では最大弾性変形量まで変形して最初の弾性変形方向と同一方向に出力軸２０が動作開始する。
【００３１】
図１０は、モータ軸側ギア１９の弾性変形量がゼロでない状態から出力軸２０を目標駆動方向に駆動させる場合であり、出力軸を弾性変形方向と反対方向である目標駆動方向に駆動させる場合を示しており、この場合は、摩擦補償用トルクが所定値の状態から摩擦補償用トルクをモータ軸側ギア１９の弾性変形量が最大弾性変形量に達するまで正比例的に減少させ、モータ軸側ギア１９の弾性変形量が最大弾性変形量に達した以後は一定値とする。即ち、摩擦補償用トルクが最大補償トルクを超えた領域では最大弾性変形量まで変形して最初の弾性変形方向と反対方向に出力軸２０が動作開始する。
【００３２】
図１１は、出力軸側ギア２１が目標位置を通過することなく停止した場合を示しており、この場合は、出力軸側ギア２１が目標位置で停止した状態の摩擦補償用トルクを維持する。図１２は、出力軸側ギア２１が目標位置を通過して停止した場合を示しており、この場合は、出力軸側ギア２１を目標位置まで戻すために摩擦補償用トルクを減少させ、出力軸側ギア２１が目標位置で停止した状態の摩擦補償用トルクを維持する。
【００３３】
ところで、上記したように摩擦補償を実施した場合では、理論上では振動することなくロボット２が動作停止すると考えられるか、実際には僅かな補償誤差や外乱力（主には重力）に起因して振動が発生する。そのため、ロボット２の動作停止時には摩擦補償を停止する必要があるが、単純に摩擦補償をオンオフする制御では不連続な部分が発生して新たな振動が発生する要因となる。即ち、図１３に示すように、外乱力及び摩擦の和と積分補償及び摩擦補償の和とが同じであり両者の均衡が保たれている状況から摩擦が変化すると、摩擦が変化したことに追従して摩擦補償が変化することで、両者の均衡が継続して保たれることになる。
【００３４】
一方、図１４に示すように、外乱力及び摩擦の和と積分補償及び摩擦補償の和とが同じであり両者の均衡が保たれている状況で摩擦補償をオフすると、摩擦補償をオフした分だけ両者の均衡が崩れる。そして、両者の均衡が崩れると、オフした分の摩擦補償を時間が経過するにしたがって積分補償が補うことになり、その結果、両者の均衡が保たれるようになる。しかしながら、オフした分の摩擦補償を積分補償が補ったままの状況でロボット２の動作開始時（動作開始直後）に摩擦補償をオンすると、摩擦補償をオンした分だけ両者の均衡が崩れることになる。
【００３５】
そこで、本実施形態では、図１５に示すように、外乱力及び摩擦の和と積分補償及び摩擦補償の和とが同じであり両者の均衡が保たれている状況では摩擦補償をオフすることなく更新を停止する。即ち、ロボット２の動作停止直後では両者の均衡が保たれるようになる。その状況から時間経過にしたがって摩擦及び外乱力が変化すると、摩擦補償の更新を停止しているので、それら摩擦及び外乱力の変化分を積分補償が補うことで、両者の均衡が継続して保たれる。そして、ロボット２の動作開始時に摩擦補償の更新を再開し、更新を停止した時点から摩擦補償が変化することで摩擦と摩擦補償との均衡は保たれるが、その分、それまでに摩擦の変化分を補っていた積分補償に相当する分の補償量だけ均衡が崩れることになる。したがって、均衡を保つために、ロボット２の動作開始時の積分補償用トルク（状態量）を次式にしたがって計算して変更する。
【００３６】
ロボットの動作開始時の積分補償の状態量（図１５中（１）参照）
＝ロボットの動作開始直前の積分補償の状態量（図１５中（２）参照）−（ロボットの動作開始時の摩擦補償の状態量（図１５中（３）参照）−ロボットの動作開始直前の摩擦補償の状態量（図１５中（４）参照））
上記した計算式における（ロボットの動作開始時の摩擦補償の状態量−ロボットの動作開始直前の摩擦補償の状態量）は補正量に相当する。
【００３７】
尚、上記した図１５では、ロボット２の動作停止中に摩擦が増加したことで積分補償を加えたので、その加えた分を結果的に減じる場合を説明したが、これとは反対に、ロボット２の動作停止中に摩擦が低下したことで積分補償を減じた場合には、その減じた分を結果的に加えることになり、その場合も、不連続となることはなく、両者の均衡が継続して保たれることになる。
【００３８】
図１６は摩擦補償及び停止時チャタリング防止処理を行ったか否かによる動作中及び動作停止後の振動の発生状況を示す図であり、（ａ）は摩擦補償を行わなかった場合での振動の発生状況を示しており、（ｂ）は摩擦補償を行わったが停止時チャタリング防止処理を行わなかった場合での振動の発生状況を示しており、（ｃ）は摩擦補償を行って停止時チャタリング防止処理を行った場合での振動の発生状況を示している。図１６から明らかなように、摩擦補償を行った場合には、摩擦補償を行わなかった場合に比べて、動作中には振動の発生が抑制されるが、その一方で、動作停止後には逆に振動が発生している。しかしながら、摩擦補償を行った後に上記した積分補償の状態量を変化させることで、摩擦補償を行わなかった場合と同程度まで振動の発生が抑制される。
【００３９】
以上に説明したように本実施形態によれば、ロボット制御装置３において、ロボット２の動作停止時では摩擦補償をオフすることなく更新を停止し、ロボット２の動作再開時では、ロボット２の動作再開時の摩擦補償の状態量とロボット２の動作再開直前の摩擦補償の状態量との差分を補正量として計算し、ロボット２の動作再開時の積分補償の状態量をロボット２の動作開始直前の積分補償の状態量から補正量を差引くことで計算するように構成したので、ロボット２の動作再開直後においても外乱力及び摩擦の和と積分補償及び摩擦補償の和との間で両者の均衡を保つことができ、ロボット２の動作開始から動作停止までの全体の動作軌跡の精度をより高めることができる。又、このように積分補償の状態量を変化させるだけで良いので、制御系の安定性に悪影響を与えることなく、単純な演算だけで実装可能である。
【００４０】
本発明は、上記した実施形態にのみ限定されるものではなく、以下のように変形又は拡張することができる。
対象とするロボットは６軸の垂直多関節型ロボットに限らず他のロボットであっても良い。
【符号の説明】
【００４１】
図面中、２はロボット、３はロボット制御装置、１２はＣＰＵ（摩擦補償手段、積分補償手段）、１６はモータ、１８はモータ軸、１９モータ軸側ギア、２０は出力軸、２１は出力軸側ギアである。
【図１】
2010214561.tif 000003
【図２】
2010214561.tif 000004
【図３】
2010214561.tif 000005
【図４】
2010214561.tif 000006
【図５】
2010214561.tif 000007
【図６】
2010214561.tif 000008
【図７】
2010214561.tif 000009
【図８】
2010214561.tif 000010
【図９】
2010214561.tif 000011
【図１０】
2010214561.tif 000012
【図１１】
2010214561.tif 000013
【図１２】
2010214561.tif 000014
【図１３】
2010214561.tif 000015
【図１４】
2010214561.tif 000016
【図１５】
2010214561.tif 000017
【図１６】
2010214561.tif 000018