(57)【要約】【課題】ロボットの可動部材の位置をより適切に制御する。【解決手段】乗算器３１には、減速機回転角度β１及び乗算係数Ｋが入力される。乗算器３１は、減速機回転角度β１と乗算係数Ｋとを乗算した乗算値β２を出力する。第１減算器３２には、モータ回転角度αと乗算値β２とが入力される。第１減算器３２は、モータ回転角度αから乗算値β２を減算した値を変形角度Δ１として出力する。第２減算器３３には、変形角度Δ１と基準変形角度γとが入力される。第２減算器３３は、変形角度Δ１から基準変形角度γを減算した値を、補正変形角度Δ２として出力する。第３減算器３５には、目標回転角度θ１及び符号変更部３４が出力した補正変形角度Δ２又は補正変形角度−Δ２が入力される。第３減算器３５は、補正変形角度Δ２（差分角度）に基づいて目標回転角度θ１をフィードバック補正する。【選択図】図２
2017119342.tif 000002
【特許請求の範囲】
【請求項１】
サーボモータの出力軸が減速機に駆動連結され、当該減速機の出力軸の回転に応じて可動部材が駆動するロボットを制御するためのロボット制御装置であって、
前記サーボモータの出力軸を目標回転角度に回転させるための速度指令を生成する指令生成部と、
前記速度指令に応じて回転した前記サーボモータにおける出力軸の回転角度を示すモータ回転角度に基づいて、前記目標回転角度をフィードバック補正する第１補正部と、
前記モータ回転角度と、前記速度指令に応じて回転した前記減速機における出力軸の回転角度を示す減速機回転角度とのずれを示す差分角度を算出する算出部と、
前記差分角度に基づいて前記目標回転角度をフィードバック補正する第２補正部と
を有し、
前記指令生成部は、前記第１補正部及び第２補正部によって補正された前記目標回転角度に基づいて前記速度指令を生成する
ことを特徴とするロボット制御装置。
【請求項２】
前記可動部材の位置と、前記減速機の角度位置のずれを示す基準差分角度との関係が記憶された記憶部を有し、
前記算出部は、前記可動部材の位置、及び前記記憶部に記憶された可動部材の位置と基準差分角度との関係に基づいて基準差分角度を算出し、前記モータ回転角度及び前記減速機回転角度の間の回転角度のずれから、算出した基準差分角度を差し引いた値を前記差分角度として算出する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記第２補正部は、前記目標回転角度に対して前記差分角度を減算又は加算して補正目標角度を算出し、
前記第２補正部が前記目標回転角度に対して前記差分角度を減算するか加算するかを、前記可動部材の動作態様に応じて切り換え可能な切換部を有する
ことを特徴とする請求項１又は２に記載のロボット制御装置。
【請求項４】
前記切換部は、前記差分角度の正負の符号を反転して出力可能な符号変更部であり、
前記符号変更部が前記差分角度の正負の符号を反転せずに前記差分角度を出力するか、反転して反転差分角度を出力するかが切り換えられることにより、前記第２補正部が前記目標回転角度に対して前記差分角度を減算するか加算するかが切り換えられる
ことを特徴とする請求項３に記載のロボット制御装置。
【請求項５】
サーボモータの出力軸が減速機に駆動連結され、当該減速機の出力軸の回転に応じて可動部材が駆動するロボットを制御するためのロボット制御装置であって、
前記サーボモータの出力軸を目標回転角度に回転させるための速度指令を生成する指令生成部と、
前記速度指令に応じて回転した前記減速機における出力軸の回転角度を示す減速機回転角度に基づいて、前記目標回転角度をフィードバック補正する第１補正部と、
前記速度指令に応じて回転した前記サーボモータにおける出力軸の回転角度を示すモータ回転角度と、前記減速機回転角度とのずれを示す差分角度を算出する算出部と、
前記差分角度に基づいて前記目標回転角度をフィードバック補正する第２補正部と
を有し、
前記指令生成部は、前記第１補正部及び第２補正部によって補正された前記目標回転角度に基づいて前記速度指令を生成する
ことを特徴とするロボット制御装置。
【請求項６】
前記第２補正部は、前記差分角度が入力されて当該差分角度の経時的な変化のうちの所定周波数未満の帯域をねじれ角度として出力するローパスフィルタと、前記差分角度が入力されて当該差分角度の経時的な変化のうちの前記所定周波数以上の帯域を振動角度として出力するバンドパスフィルタとを備え、前記ねじれ角度及び前記振動角度に基づいて前記目標回転角度をフィードバック補正する
ことを特徴とする請求項１〜５のいずれか一項に記載のロボット制御装置。
【請求項７】
前記第２補正部は、前記ねじれ角度が入力されて当該ねじれ角度に０以上１以下の第１係数を乗算して補正ねじれ角度として出力するねじれ角度補正部と、前記振動角度が入力されて当該振動角度に０以上１以下の第２係数を乗算して補正振動角度として出力する振動角度補正部とを備え、前記補正ねじれ角度及び前記補正振動角度に基づいて前記目標回転角度をフィードバック補正する
ことを特徴とする請求項６に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置に関する。
【背景技術】
【０００２】
特許文献１に開示の多関節型ロボットは、ベース上に第１アームが回動可能に連結されている。第１アームには第２アームが回動可能に連結され、第２アームには第３アームが回動可能に連結されている。第３アームには第４アームが回動可能に連結され、第４アームには第５アームが回動可能に連結されている。この多関節型ロボットには、第１アームを駆動するためのサーボモータが搭載されている。同様に、多関節型ロボットには、第２〜第５アームを駆動するためのサーボモータが各々搭載されている。また、各サーボモータそれぞれには、サーボモータの出力軸の回転位置を検出するためのエンコーダが設けられている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３４１０８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、多関節型ロボットにおいては、サーボモータの出力軸が減速機に連結され、その減速機の出力軸がアームに固定されている。したがって、サーボモータの出力は、減速機において所定の減速比で減速されることを前提とした各アームの回動として制御される。
【０００５】
特許文献１が開示する技術では、サーボモータの出力軸からアームまでの間に介在される減速機等に生じる誤差や変形等については考慮されていない。そのため、サーボモータの出力軸については目標となる回転角度に制御できても、アームの回動位置については減速機に弾性変形等が生じた場合、目標となる回動位置に制御できないこともあり得る。したがって、特許文献１の技術は、アームの位置をより適切に制御するという点で、さらなる改善の余地がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、サーボモータの出力軸が減速機に駆動連結され、当該減速機の出力軸の回転に応じて可動部材が駆動するロボットを制御するためのロボット制御装置であって、前記サーボモータの出力軸を目標回転角度に回転させるための速度指令を生成する指令生成部と、前記速度指令に応じて回転した前記サーボモータにおける出力軸の回転角度を示すモータ回転角度に基づいて、前記目標回転角度をフィードバック補正する第１補正部と、前記モータ回転角度と、前記速度指令に応じて回転した前記減速機における出力軸の回転角度を示す減速機回転角度とのずれを示す差分角度を算出する算出部と、前記差分角度に基づいて前記目標回転角度をフィードバック補正する第２補正部とを有し、前記指令生成部は、前記第１補正部及び第２補正部によって補正された前記目標回転角度に基づいて前記速度指令を生成することを特徴とする。
【０００７】
また、本発明は、サーボモータの出力軸が減速機に駆動連結され、当該減速機の出力軸の回転に応じて可動部材が駆動するロボットを制御するためのロボット制御装置であって、前記サーボモータの出力軸を目標回転角度に回転させるための速度指令を生成する指令生成部と、前記速度指令に応じて回転した前記減速機における出力軸の回転角度を示す減速機回転角度に基づいて、前記目標回転角度をフィードバック補正する第１補正部と、前記速度指令に応じて回転した前記サーボモータにおける出力軸の回転角度を示すモータ回転角度と、前記減速機回転角度とのずれを示す差分角度を算出する算出部と、前記差分角度に基づいて前記目標回転角度をフィードバック補正する第２補正部とを有し、前記指令生成部は、前記第１補正部及び第２補正部によって補正された前記目標回転角度に基づいて前記速度指令を生成することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ロボットの可動部材の位置をより適切に制御できる。
【図面の簡単な説明】
【０００９】
【図１】多関節型ロボットの側面図及び第１実施形態のロボット制御装置のブロック図。
【図２】第１実施形態のアーム制御シークエンスを示す図。
【図３】第２実施形態におけるアプローチモードのアーム制御シークエンスを示す図。
【図４】第２実施形態における軌跡移動モードのアーム制御シークエンスを示す図。
【図５】第３実施形態のアーム制御シークエンスを示す図。
【発明を実施するための形態】
【００１０】
（多関節型ロボットの構成）
先ず、ロボット制御システムを構成する多関節型ロボット（以下、ロボットＲと略記する。）の概略構成について説明する。
【００１１】
図１に示すように、ロボットＲの基台Ｃ１の上部には、第１回転軸心Ｊ１を中心として旋回可能に旋回台Ｃ２が設けられている。旋回台Ｃ２の上部には、第２回転軸心Ｊ２を中心として旋回可能に第１アームＣ３が設けられている。第１アームＣ３の先端部には、第２回転軸心Ｊ２と直交する第３回転軸心Ｊ３を中心として旋回可能に第２アームＣ４が設けられている。第２アームＣ４の先端部には、第３回転軸心Ｊ３と直交する第４回転軸心Ｊ４を中心として旋回可能に第３アームＣ５が設けられている。
【００１２】
図１に示すように、第３アームＣ５の先端部には、第５回転軸心Ｊ５を中心として旋回可能に第４アームＣ６が設けられている。第４アームＣ６の先端部には、第５回転軸心Ｊ５と直交する第６回転軸心Ｊ６を中心として旋回可能に第５アームＣ７が設けられている。第５アームＣ７の先端には、第６回転軸心Ｊ６と直交する第７回転軸心Ｊ７を中心として旋回可能にツール固定部材Ｃ８が設けられている。ツール固定部材Ｃ８には、作業ツールとして溶接トーチＣ９が固定されており、この溶接トーチＣ９はツール固定部材Ｃ８と一体的に旋回する。なお、第４アームＣ６、第５アームＣ７及びツール固定部材Ｃ８は、これら全体で手首組立体と呼称されることもある。
【００１３】
図２に示すように、ロボットＲには、第１アームＣ３を旋回させるための駆動源としてサーボモータ１０が内蔵されている。サーボモータ１０の出力軸１０ａは、減速機１１に駆動連結されている。減速機１１の出力軸１１ａは、第１アームＣ３に固定されている。したがって、サーボモータ１０の出力軸１０ａが回転すると、減速機１１において所定の減速比で減速されて減速機１１の出力軸１１ａが回転する。そして、減速機１１の出力軸１１ａの回転に応じて第１アームＣ３が旋回する。
【００１４】
図２に示すように、ロボットＲには、サーボモータ１０の出力軸１０ａの回転角度を検出するためのモータエンコーダ１２が内蔵されている。モータエンコーダ１２は、例えば、インクリメントエンコーダであり、サーボモータ１０の出力軸１０ａの回転角度に応じたパルス数のパルス信号を出力する。また、ロボットＲには、減速機１１の出力軸１１ａの回転角度を検出するための減速機エンコーダ１３が内蔵されている。減速機エンコーダ１３は、例えば、インクリメントエンコーダであり、減速機１１の出力軸１１ａの回転角度に応じたパルス数のパルス信号を出力する。
【００１５】
ロボットＲには、旋回台Ｃ２、第２アームＣ４〜第５アームＣ７及びツール固定部材Ｃ８それぞれに対応してサーボモータ、減速機、モータエンコーダ及び減速機エンコーダが設けられている。これらの構成は、上述したサーボモータ１０、減速機１１、モータエンコーダ１２及び減速機エンコーダ１３と同様であるため、詳しい説明は省略する。この実施形態においては、旋回台Ｃ２、第１アームＣ３〜第５アームＣ７及びツール固定部材Ｃ８は、いずれも減速機の出力軸の回転に応じて駆動する可動部材に相当する。また、以下の説明では、これら旋回台Ｃ２、第２アームＣ４〜第５アームＣ７及びツール固定部材Ｃ８を「可動部材」と呼称することもある。
【００１６】
（第１実施形態のロボット制御装置ＲＣの構成）
次に、第１実施形態のロボット制御装置ＲＣについて説明する。
図１に示すように、ロボットＲの基台Ｃ１には、通信ケーブル（図１では破線で図示）を介してロボット制御装置ＲＣが接続されている。ロボット制御装置ＲＣの主制御部２０は、各種のプログラムを実行する演算部２１（ＣＰＵ）、各プログラムの実行に際してデータが一時的に格納される揮発性のメモリ２２、処理に必要なプログラムや各種のデータ等が格納される不揮発性の記憶部２３などを有するコンピュータとして構成されている。
【００１７】
図１に示すように、主制御部２０の記憶部２３には、各可動部材Ｃ２〜Ｃ８の旋回動作を制御するためのアーム制御シークエンスが記憶されている。例えば、第１アームＣ３を旋回動作させる場合には、主制御部２０の演算部２１は、このアーム制御シークエンスに従って各種の演算を行い、サーボモータ１０の出力軸１０ａを目標回転角度θ１回転させるための速度指令Ｓ１を生成する。なお、演算部２１は、速度指令Ｓ１を生成する指令生成部に相当する。
【００１８】
図１に示すように、主制御部２０の記憶部２３には、一連のアーム制御シークエンスの演算の中で使用される変形量補正マップが記憶されている。この変形量補正マップは、各可動部材Ｃ２〜Ｃ８の角度位置と、可動部材Ｃ２〜Ｃ８の重量によって各減速機の出力軸に生じる基準変形角度γとの関係が示されたマップである。具体的には、例えば、ロボットＲがある姿勢をとった場合、出力軸１１ａが第１アームＣ３に固定されている減速機１１には、第１アームＣ３及びそれよりも先端側の第２アームＣ４〜第５アームＣ７、ツール固定部材Ｃ８、溶接トーチＣ９等の重量が作用する。これらの重量が減速機１１に作用することによって減速機１１の歯車等に変形が生じ、それに伴い出力軸１１ａの角度位置にもずれが生じる。このように各可動部材Ｃ２〜Ｃ８等の重量によって生じる減速機１１の出力軸１１ａの角度位置のずれを示すものを、基準変形角度γとしている。また、基準変形角度γは、減速機１１に作用する重量の重心位置、及び減速機１１に対する重量の作用方向によって変化する。そして、減速機１１に作用する重量の重心位置、及び減速機１１に対する重量の作用方向は、第１アームＣ３〜第５アームＣ７及びツール固定部材Ｃ８の角度位置（姿勢）によって求めることができる。そこで、変形量補正マップは、第１アームＣ３〜第５アームＣ７及びツール固定部材Ｃ８の各角度位置を入力することにより、基準変形角度γを得られるようになっている。なお、変形量補正マップは、各可動部材Ｃ２〜Ｃ８の各角度位置を徐々に変更しつつ基準変形角度γを計測するといった試験により予め作成しておくことができる。
【００１９】
図１に示すように、主制御部２０の記憶部２３には、一連のアーム制御シークエンスの演算の中で使用される符号情報が記憶されている。この符号情報は、アーム制御シークエンスの過程で算出される補正変形角度Δ２の正負の符号を反転するか否かの情報と、可動部材Ｃ２〜Ｃ８の動作態様とが関連付けられたものである。この実施形態では、可動部材Ｃ２〜Ｃ８の動作態様として、溶接トーチＣ９の先端を所定の位置に移動させ、その後、その位置で静止させる「アプローチモード」と、溶接トーチＣ９の先端を所定の軌跡に沿って移動させる「軌跡移動モード」とが設定されている。そして、符号情報には、「アプローチモード」の場合に「符号反転しない」という情報が、「軌跡移動モード」の場合に「符号反転する」という情報が含まれている。
【００２０】
図１に示すように、ロボット制御装置ＲＣには、ロボットＲに内蔵されている各サーボモータに電力を供給するサーボ制御部２５が内蔵されている。例えば、サーボモータ１０を制御する場合、サーボ制御部２５は、演算部２１から出力される速度指令Ｓ１に応じてパルス周波数及びパルス幅等を調整したモータ制御電圧Ｖｘを、サーボモータ１０に出力する。サーボ制御部２５は、他のサーボモータ１０に対しても同様に、速度指令Ｓ１に応じて調整したモータ制御電圧Ｖｘを出力する。
【００２１】
（第１実施形態のアーム制御シークエンスの構成）
次に、第１実施形態のロボット制御装置ＲＣが実行するアーム制御シークエンスについて説明する。なお、以下の説明では、第１アームＣ３を旋回動作させるためのサーボモータ１０及び減速機１１の制御を例として説明するが、他の可動部材Ｃ２、Ｃ４〜Ｃ８についても同様である。
【００２２】
図２に示すように、モータエンコーダ１２はサーボモータ１０の出力軸１０ａの回転角度に応じたパルス信号を、ロボット制御装置ＲＣの主制御部２０に出力する。主制御部２０の演算部２１は、モータエンコーダ１２が出力したパルス信号に基づきモータ回転角度αを算出する。また、減速機エンコーダ１３は、減速機１１の出力軸１１ａの回転角度に応じたパルス信号を、ロボット制御装置ＲＣの主制御部２０に出力する。主制御部２０の演算部２１は、減速機エンコーダ１３が出力したパルス信号に基づき減速機回転角度β１を算出する。
【００２３】
図２に示すように、乗算器３１には、減速機回転角度β１及び乗算係数Ｋが入力される。乗算器３１は、減速機回転角度β１と乗算係数Ｋとを乗算した乗算値β２を出力する。なお、乗算係数Ｋは、減速機１１の減速比に応じて定められる係数である。例えば、減速機１１の入力：出力の減速比が２：１である場合、乗算係数Ｋは「２」である。したがって、減速機回転角度β１に乗算係数Ｋを乗算することにより、減速機回転角度β１をモータ回転角度αに換算した換算角度として乗算値β２を得ることができる。
【００２４】
図２に示すように、第１減算器３２には、モータ回転角度αと乗算値β２とが入力される。第１減算器３２は、モータ回転角度αから乗算値β２を減算した値を変形角度Δ１として出力する。この変形角度Δ１は、モータ回転角度α及び減速機回転角度β１の間の回転角度のずれを示すものである。第２減算器３３には、変形角度Δ１と基準変形角度γとが入力される。基準変形角度γは、一連のアーム制御シークエンス実行時の各可動部材Ｃ２〜Ｃ８の角度位置と記憶部２３に記憶されている変形量補正マップに基づいて算出されるものである。第２減算器３３は、変形角度Δ１から基準変形角度γを減算した値を、補正変形角度Δ２として出力する。このように第１減算器３２及び第２減算器３３は、モータ回転角度α及び減速機回転角度β１の間の回転角度のずれから基準変形角度γを差し引いて、差分角度としての補正変形角度Δ２を算出する算出部として機能する。
【００２５】
図２に示すように、符号変更部３４には、補正変形角度Δ２及び符号情報Ｓ２が入力される。符号情報Ｓ２には、一連のアーム制御シークエンス実行時において各可動部材Ｃ２〜Ｃ８の動作態様が「アプローチモード」に設定されている場合には「符号反転しない」という情報が含まれており、「軌跡移動モード」が設定されている場合には「符号反転する」という情報が含まれている。符号変更部３４は、符号情報Ｓ２に従って、補正変形角度Δ２、又は正負の符号を反転した補正変形角度−Δ２を出力する。
【００２６】
図２に示すように、第３減算器３５には、目標回転角度θ１及び符号変更部３４が出力した補正変形角度Δ２又は補正変形角度−Δ２が入力される。目標回転角度θ１は、第１アームＣ３を目標位置に位置させた場合に、サーボモータ１０の出力軸１０ａが位置する回転角度位置を示すものである。第３減算器３５は、目標回転角度θ１から補正変形角度Δ２又は補正変形角度−Δ２を減算した補正目標角度θ２を出力する。したがって、第３減算器３５は、補正変形角度Δ２（差分角度）に基づいて目標回転角度θ１をフィードバック補正する第２補正部として機能する。
【００２７】
なお、目標回転角度θ１から補正変形角度−Δ２を減算することは、目標回転角度θ１から補正変形角度Δ２を加算することと等しい。したがって、符号変更部３４が補正変形角度Δ２の正負の符号を反転するか否かを切り換えることは、目標回転角度θ１から補正変形角度Δ２を加算するか減算するかを切り換えることと同じである。
【００２８】
図２に示すように、第４減算器３７には、補正目標角度θ２及びモータ回転角度αが入力される。第４減算器３７は、補正目標角度θ２からモータ回転角度αを減算して、位置偏差θ３を算出する。そして、指令生成部３８は、位置偏差θ３に基づいて、新たな速度指令Ｓ１を生成し、その速度指令Ｓ１をサーボ制御部２５に出力する。なお、第４減算器３７は、モータ回転角度αに基づいて補正目標角度θ２をフィードバック補正する第１補正部として機能する。
【００２９】
（第１実施形態のロボット制御装置の作用）
第１実施形態のロボット制御装置ＲＣにおけるアーム制御シークエンスの作用について、具体的な数値の例を挙げつつ、図２に従って説明する。なお、以下の説明では、減速機１１の入力：出力の減速比が２：１であり、乗算係数Ｋが「２」であるものとする。また、第４減算器３７（第１補正部）によるフィードバック補正が行われてサーボモータ１０に適用される処理と、第３減算器３５（第２補正部）によるフィードバック補正が行われてサーボモータ１０に適用される処理とを分けて説明する。
【００３０】
先ず、ロボットＲにおける各可動部材Ｃ２〜Ｃ８の動作態様が「アプローチモード」に設定されている場合の例を説明する。
目標回転角度θ１として、例えば「３０」が設定されたとする。アーム制御シークエンスの初期段階では、補正変形角度Δ２が算出されてなく「０」である。また、サーボモータ１０の出力軸１０ａが回転していないため、モータ回転角度αも「０」である。したがって、第４減算器３７は、位置偏差θ３として「３０」を出力する。そして、指令生成部３８は、位置偏差「３０」に基づいて速度指令Ｓ１を生成する。サーボ制御部２５は、速度指令Ｓ１に基づいて、サーボモータ１０の出力軸１０ａを「３０」角度回転させるためのモータ制御電圧Ｖｘを生成し、サーボモータ１０に供給する。そして、サーボモータ１０の出力軸１０ａは、モータ制御電圧Ｖｘに応じて回転する。
【００３１】
ここで、仮にサーボモータ１０の出力軸１０ａのモータ回転角度αが「２８」であった場合、第４減算器３７において補正目標角度「３０」からモータ回転角度「２８」が減算されて、位置偏差θ３として「２」が算出される。指令生成部３８は、位置偏差「２」に基づいて速度指令Ｓ１を生成する。すなわち、指令生成部３８は、サーボモータ１０の出力軸１０ａが既に回転していた「２８」に加えてさらに「２」角度回転し、合わせてモータ回転角度αが「３０」となるような速度指令Ｓ１を生成する。その結果、モータ回転角度「３０」と補正目標角度「３０」とが一致し、補正目標角度θ２のとおりにサーボモータ１０の出力軸１０ａが回転したことになる。これ以降の説明では、上記の一連の補正が終了しているものとする。
【００３２】
一方、サーボモータ１０の出力軸１０ａが回転すると、それに応じて減速機１１の出力軸１１ａも回転する。ここで、減速機１１における減速機１１の入力：出力の減速比は２：１である。したがって、モータ回転角度αが「３０」であれば、理想的には、減速機回転角度β１は「１５」となる。しかしながら、サーボモータ１０の出力軸１０ａが回転したことに伴って減速機１１の歯車等に弾性変形が生じると、減速機回転角度β１が理想的な場合よりも小さくなることがある。ここでは、減速機回転角度β１として「１３」が算出されたものとする。
【００３３】
減速機回転角度「１３」が算出されるとそれに乗算係数「２」が乗算され、乗算値β２として「２６」が算出される。そして、モータ回転角度「３０」から乗算値「２６」が減算され、変形角度Δ１として「４」が算出される。したがって、減速機１１には、変形等が生じていない理想的な状態と比較して、モータ回転角度αに換算して、変形角度「４」角度分のずれが生じていることになる。このようにして算出された変形角度「４」の中には、サーボモータ１０の出力軸１０ａが回転することに伴って生じる減速機１１の弾性変形に加えて、各可動部材Ｃ２〜Ｃ８の重量によって生じる角度位置のずれである基準変形角度γも含まれる。ここでは、基準変形角度γが「２」であるものとする。そして、第２減算器３３において、変形角度「４」から基準変形角度「２」が減算されて、補正変形角度Δ２として「２」が算出される。この補正変形角度Δ２は、サーボモータ１０の出力軸１０ａが回転することに伴って生じる減速機１１の弾性変形を反映したものである。
【００３４】
算出された補正変形角度「２」は、符号変更部３４に入力される。今回の例の場合、各可動部材Ｃ２〜Ｃ８の動作態様が「アプローチモード」に設定されていて、符号情報Ｓ２として「符号反転しない」という情報が含まれている。したがって、符号変更部３４は、補正変形角度「２」の正負の符号を反転せず、そのまま出力する。
【００３５】
第３減算器３５において目標回転角度「３０」から補正変形角度「２」が減算され、補正目標角度θ２として「２８」が算出される。ここで、モータ回転角度αは「３０」であるため、第４減算器３７は位置偏差θ３として「−２」を算出する。そして、指令生成部３８は、サーボモータ１０の出力軸１０ａが既に回転していた「３０」から「２」逆回転するような速度指令Ｓ１を生成する。その結果、サーボモータ１０の出力軸１０ａの回転に伴って生じた減速機１１の弾性変形の分だけ、サーボモータ１０の出力軸１０ａの回転が戻される。これにより、減速機１１の弾性変形が解消される。
【００３６】
これらの制御が行われると、モータ回転角度αとして「２８」が算出される。また、サーボモータ１０の出力軸１０ａの回転に伴って生じた変形が解消された結果、減速機回転角度β１として「１３」が算出されるとともに、乗算値β２として「２６」が算出される。そして、変形角度Δ１として「２」が算出されるとともに、補正変形角度Δ２として「０」が算出される。その結果、補正目標角度θ２として、目標回転角度θ１と同じ「３０」が算出され、位置偏差θ３として「２」が算出される。
【００３７】
ここで、サーボモータ１０の出力軸１０ａは、既に「２８」角度回転した状態にある。したがって、新たに位置偏差「２」が算出された場合でも、サーボモータ１０の出力軸１０ａは、「２」角度新たに回転するだけである。そのため、サーボモータ１０の出力軸１０ａが「０」から「３０」まで回転する場合に比較して、サーボモータ１０の出力軸１０ａの回転に伴う減速機１１の弾性変形は無視できるほど小さい。また、仮に、再度のサーボモータ１０の出力軸１０ａの回転に伴って減速機１１が弾性変形した場合でも、上記一連の制御サイクルが繰り返し行われることで、サーボモータ１０の出力軸１０ａの回転に伴う減速機１１の弾性変形は徐々に小さくなる。その結果、減速機１１の弾性変形がほぼ解消された状態となる。
【００３８】
以上のとおり、各可動部材Ｃ２〜Ｃ８の動作態様が「アプローチモード」に設定されている場合には、サーボモータ１０の出力軸１０ａが目標回転角度θ１に応じて回転する／減速機１１の弾性変形の分だけ出力軸１０ａの回転が戻される／再度、出力軸１０ａが目標回転角度θ１に応じて回転する、という一連の制御が行われる。これにより、減速機１１の弾性変形がほぼ解消された状態で、第１アームＣ３の旋回位置を目標回転角度θ１に応じた位置に制御できる。
【００３９】
次に、ロボットＲにおける各可動部材Ｃ２〜Ｃ８の動作態様が「軌跡移動モード」に設定されている場合の例を説明する。なお、補正変形角度Δ２が算出されるまでの制御は「アプローチモード」に設定されている場合と同様なので説明を省略する。
【００４０】
補正変形角度「２」が算出されると、その補正変形角度「２」が符号変更部３４に入力される。今回の例の場合、各可動部材Ｃ２〜Ｃ８の動作態様が「軌跡移動モード」に設定されていて、符号情報Ｓ２として「符号反転する」という情報が含まれている。したがって、符号変更部３４は、補正変形角度「２」の正負の符号を反転して、補正変形角度「−２」を出力する。
【００４１】
第３減算器３５において目標回転角度「３０」から補正変形角度「−２」が減算され、補正目標角度θ２として「３２」が算出される。また、モータ回転角度αは「３０」であるため、第４減算器３７において位置偏差θ３として「２」が算出される。指令生成部３８は位置偏差「２」に基づいて速度指令を生成する。すなわち、指令生成部３８は、サーボモータ１０の出力軸１０ａが既に回転していた「３０」からさらに「２」角度回転して、モータ回転角度αが「３２」となるような速度指令Ｓ１を生成する。また、新たにサーボモータ１０の出力軸１０ａが「２」角度回転するのに応じて、減速機１１の出力軸１１ａは「１」角度回転して、減速機回転角度β１は「１４」、乗算値β２は「２８」となる。なお、目標回転角度「３０」と乗算値β２は「２８」との差は、基準変形角度γに相当する。したがって、基準変形角度γの分を除けば、減速機１１は、目標回転角度θ１に応じた回転角度位置に回転したことになる。
【００４２】
なお、上記一連の制御によっては、減速機１１の変形は解消しない。そのため、補正変形角度Δ２として「２」が演算され、その後、補正目標角度θ２として再び「３２」が演算される。したがって、補正目標角度θ２として「３２」が演算されたあとは、目標回転角度θ１が変更されない限り、一連の制御が繰り返されても補正目標角度θ２は「３２」のまま一定となる。その結果、モータ回転角度αは「３２」で、減速機回転角度β１は「１４」で、乗算値β２は「２８」で一定となる。
【００４３】
以上のとおり、各可動部材Ｃ２〜Ｃ８の動作態様が「軌跡移動モード」に設定されている場合には、減速機１１が弾性変形して出力軸１１ａの回転が不足した分だけ、サーボモータ１０の出力軸１０ａが追加で回転される。その結果、減速機１１の回転位置を目標回転角度θ１に応じた位置に制御できる。
【００４４】
（第１実施形態のロボット制御装置の特徴及び効果）
（１）第１実施形態では、仮に減速機１１に弾性変形が生じてモータ回転角度αと減速機回転角度β１との間にずれが生じた場合には、そのずれは変形角度Δ１に反映される。そして、第１実施形態では、この変形角度Δ１に基づいて目標回転角度θ１をフィードバック補正して補正目標角度θ２を算出し、補正目標角度θ２に基づいて速度指令Ｓ１を生成する。したがって、減速機１１の弾性変形の程度を検出できるとともに、その弾性変形に応じたより適切な制御を行うことができる。
【００４５】
（２）減速機１１には、第１アームＣ３及びそれよりも先端側の第２〜第５アームＣ４〜Ｃ７、ツール固定部材Ｃ８及び溶接トーチＣ９の重量が作用する。そのため、第１アームＣ３が静止している状態でも、これらの重量によって減速機１１に変形が生じ得る。上記実施形態では、変形角度Δ１から基準変形角度γを差し引いた補正変形角度Δ２に基づいて、目標回転角度θ１をフィードバック補正する。したがって、サーボモータ１０の出力軸１０ａが回転することに伴う減速機１１の弾性変形をより正確に反映したフィードバック補正が可能となる。
【００４６】
（３）第１実施形態では、目標回転角度θ１に補正変形角度Δ２を加算するか減算するかを切り換え可能である。したがって、可動部材Ｃ２〜Ｃ８の動作態様（動作モード）に応じて適切なフィードバック補正の態様を選択できる。しかも、補正変形角度Δ２を加算するか減算するかの切り換えを、符号変更部３４が補正変形角度Δ２の正負の符号を反転するか否かによって行っている。したがって、補正変形角度Δ２を加算するか減算するかに応じて別個のアーム制御シークエンスを用意する必要がなく、同一のアーム制御シークエンスで補正変形角度Δ２を加算する場合及び減算する場合の両方に対応できる。
【００４７】
（４）減速機１１に弾性変形が生じている場合、サーボモータ１０が停止していても、その弾性変形に起因して減速機１１の出力軸１１ａの角度位置に振動が生じる。そして、それに伴って第１アームＣ３が振動するとともに溶接トーチＣ９の先端が振動してしまう。特に、「アプローチモード」の場合に、溶接トーチＣ９の先端が振動していると溶接トーチＣ９の先端の位置がぶれてしまい、溶接トーチＣ９の先端を所定の位置で静止させることが困難になる。この点、第１実施形態では、「アプローチモード」の場合には、目標回転角度θ１から補正変形角度Δ２を減算して補正目標角度θ２を算出することで、減速機１１における弾性変形が解消されるようにサーボモータ１０を制御できる。したがって、減速機１１の弾性変形に起因して溶接トーチＣ９の先端が振動して、その先端の位置がぶれてしまうことを抑制できる。
【００４８】
（５）溶接トーチＣ９の先端を所定の軌跡に沿って移動させる「軌跡移動モード」では、目標回転角度θ１が随時変更される。したがって、仮に、目標回転角度θ１を補正変形角度Δ２でフィードバック補正する際に過度に多数の制御サイクルが必要であると、フィードバック補正が目標回転角度θ１の変化に追従できず、適切なフィードバック補正を実行できないおそれがある。この点、第１実施形態では、「軌跡移動モード」の場合には、目標回転角度θ１から補正変形角度Δ２を加算して補正目標角度θ２を算出することで、減速機１１が弾性変形して出力軸１１ａの回転が不足した分だけ、サーボモータ１０の出力軸１０ａが追加で回転される。その結果、減速機１１の出力軸１１ａの回転位置を目標回転角度θ１に応じた位置に制御できる。この一連の制御によれば、少ない制御サイクルでフィードバック補正が可能であるため、「軌跡移動モード」における目標回転角度θ１の変化に十分に対応できる。
【００４９】
（第２実施形態のロボット制御システムの構成及びアーム制御シークエンスの構成）
次に、ロボット制御装置ＲＣの第２実施形態について説明する。第２実施形態のロボット制御装置ＲＣの構成は、第１実施形態のロボット制御装置ＲＣと同様である。ただし、第２実施形態のロボット制御装置ＲＣにおいては、主制御部２０の記憶部２３に、変形量補正マップ及び符号情報が記憶されてなく、「アプローチモード用のアーム制御シークエンス」及び「軌跡移動モード用のアーム制御シークエンス」の２種類のアーム制御シークエンスが記憶されている。
【００５０】
なお、以下の説明では、第１アームＣ３を旋回動作させるためのサーボモータ１０及び減速機１１の制御を例として説明するが、他の可動部材Ｃ２、Ｃ４〜Ｃ８についても同様である。また、第１実施形態におけるアーム制御シークエンス（図２参照）と同一の構成については同一の符号を付して、その説明を簡略化又は省略することがある。
【００５１】
先ず、第２実施形態のロボット制御装置ＲＣが実行する「アプローチモード用のアーム制御シークエンス」について説明する。
図３に示すように、乗算器３１には、減速機回転角度β１及び乗算係数Ｋが入力される。乗算器３１は、減速機回転角度β１と乗算係数Ｋとを乗算した乗算値β２を出力する。乗算値β２は、減速機回転角度β１をモータ回転角度αに換算した換算角度である。第１減算器３２には、モータ回転角度αと乗算値β２とが入力される。第１減算器３２は、モータ回転角度αから乗算値β２を減算した値を変形角度Δ１として出力する。この変形角度Δ１は、モータ回転角度α及び減速機回転角度β１の間の回転角度のずれを示すものである。
【００５２】
図３に示すように、第３減算器３５には、目標回転角度θ１及び第１減算器３２が出力した変形角度Δ１が入力される。第３減算器３５は、目標回転角度θ１から変形角度Δ１を減算した補正目標角度θ２を出力する。したがって、第３減算器３５は、変形角度Δ１（差分角度）に基づいて目標回転角度θ１をフィードバック補正する第２補正部として機能する。
【００５３】
図３に示すように、第４減算器３７には、補正目標角度θ２及び乗算値β２が入力される。第４減算器３７は、補正目標角度θ２から乗算値β２を減算して、位置偏差θ３を算出する。そして、指令生成部３８は、位置偏差θ３に基づいて、新たな速度指令Ｓ１を生成し、その速度指令Ｓ１をサーボ制御部２５に出力する。なお、乗算値β２は減速機回転角度β１に応じたものである。したがって、第４減算器３７は、減速機回転角度β１に基づいて補正目標角度θ２をフィードバック補正する第１補正部として機能する。
【００５４】
次に、第２実施形態のロボット制御装置ＲＣが実行する「軌跡移動モード用のアーム制御シークエンス」について説明する。
図３に示すように、乗算器３１には、減速機回転角度β１及び乗算係数Ｋが入力される。乗算器３１は、減速機回転角度β１と乗算係数Ｋとを乗算した乗算値β２を出力する。第４減算器３７には、目標回転角度θ１及び乗算値β２が入力される。第４減算器３７は、目標回転角度θ１から乗算値β２を減算して、位置偏差θ３を算出する。そして、指令生成部３８は、位置偏差θ３に基づいて、新たな速度指令Ｓ１を生成し、その速度指令Ｓ１をサーボ制御部２５に出力する。なお、第４減算器３７は、「アプローチモード用のアーム制御シークエンス」と同様に、減速機回転角度β１に基づいて補正目標角度θ２をフィードバック補正する第１補正部として機能する。
【００５５】
（第２実施形態のロボット制御装置の作用）
第２実施形態のロボット制御装置ＲＣにおけるアーム制御シークエンスの作用について、具体的な数値の例を挙げつつ説明する。なお、以下の説明では、減速機１１の入力：出力の減速比が２：１であり、乗算係数Ｋが「２」であるものとする。また、第４減算器３７（第１補正部）によるフィードバック補正が行われてサーボモータ１０に適用される処理と、第３減算器３５（第２補正部）によるフィードバック補正が行われてサーボモータ１０に適用される処理とを分けて説明する。
【００５６】
先ず、ロボットＲにおける各可動部材Ｃ２〜Ｃ８の動作態様が「アプローチモード」に設定されている場合の例を説明する。ロボットＲの動作態様が「アプローチモード」である場合には、図３に示す「アプローチモード用のアーム制御シークエンス」に従って処理が実行される。
【００５７】
目標回転角度θ１として例えば「３０」が設定されたとする。アーム制御シークエンスの初期段階では、変形角度Δ１が算出されてなく「０」である。また、サーボモータ１０の出力軸１０ａが回転していないため、モータ回転角度αも「０」である。したがって、第４減算器３７は、位置偏差θ３として「３０」を出力する。
【００５８】
理想的には、サーボモータ１０の出力軸１０ａのモータ回転角度αが「３０」で、減速機１１の出力軸１１ａの減速機回転角度β１が「１５」になるはずである。しかし、制御ずれや減速機１１の弾性変形により、モータ回転角度αや減速機回転角度β１にずれが生じることがある。ここでは、仮にサーボモータ１０の出力軸１０ａのモータ回転角度αが「２８」であり、減速機１１の出力軸１１ａの減速機回転角度β１が「１３」であるとする。この場合、乗算器３１において「２」が乗算され、乗算値β２として「２６」が算出される。そして、第４減算器３７において、補正目標角度「３０」から乗算値「２６」からが減算され、位置偏差として「４」が演算される。指令生成部３８は、位置偏差「４」に基づいて速度指令Ｓ１を生成する。すなわち、指令生成部３８は、サーボモータ１０の出力軸１０ａが既に回転していた「２８」に加えてさらに「４」角度回転し、合わせてモータ回転角度αが「３２」となるような速度指令Ｓ１を生成する。これに伴い減速機１１の出力軸１１ａは既に回転していた「１３」に加えて「２」角度回転し、減速機１１の出力軸１１ａの減速機回転角度β１は「１５」となる。その結果、乗算値β２は「３０」となり、補正目標角度「３０」と一致し、位置偏差θ３は「０」となる。これ以降の説明では、上記の一連の補正が終了しているものとする。
【００５９】
一方、第１減算器３２は、モータ回転角度「３２」から乗算値「３０」を減算して、変形角度Δ１として「２」を算出する。第３減算器３５は、目標回転角度「３０」から変形角度「２」を減算して、補正目標角度θ２として「２８」を算出する。第４減算器３７は、補正目標角度「２８」から乗算値「３０」を減算して、位置偏差θ３として「−２」を出力する。指令生成部３８は、位置偏差「−２」に基づいて速度指令Ｓ１を生成する。すなわち、指令生成部３８は、サーボモータ１０の出力軸１０ａが既に回転していた「３２」から「２」逆回転するような速度指令Ｓ１を生成する。その結果、サーボモータ１０の出力軸１０ａの回転に伴って生じた減速機１１の弾性変形の分だけ、サーボモータ１０の出力軸１０ａの回転が戻されて、モータ回転角度αが「３２」から「３０」となる。このとき、減速機１１における弾性変形が解消される一方で、減速機１１の出力軸１１ａは回転せず角度位置は「１５」のままである。また、仮に減速機１１の出力軸１１ａが変化したとしても、新たな位置偏差θ３が算出されて、減速機回転角度β１が「１５」となるようにフィードバック補正される。
【００６０】
以上のとおり、各可動部材Ｃ２〜Ｃ８の動作態様が「アプローチモード」に設定されている場合には、減速機１１の出力軸１１ａが目標回転角度θ１に応じて回転する／減速機１１の出力軸１１ａの回転が不足した分だけ追加で回転される／減速機１１の弾性変形の分だけ回転が戻される、という一連の制御が行われる。これにより、減速機１１の弾性変形がほぼ解消された状態で、第１アームＣ３の旋回位置を目標回転角度θ１に応じた位置に制御できる。
【００６１】
次に、ロボットＲにおける各可動部材Ｃ２〜Ｃ８の動作態様が「軌跡移動モード」に設定されている場合の例を説明する。ロボットＲの動作態様が「軌跡移動モード」である場合には、図４に示す「軌跡移動モード用のアーム制御シークエンス」に従って処理が実行される。
【００６２】
目標回転角度θ１として例えば「３０」が設定されたとする。アーム制御シークエンスの初期段階では、サーボモータ１０の出力軸１０ａが回転していないため、モータ回転角度αも「０」である。したがって、第４減算器３７は、位置偏差θ３として「３０」を出力する。
【００６３】
理想的には、サーボモータ１０の出力軸１０ａのモータ回転角度αが「３０」で、減速機１１の出力軸１１ａの減速機回転角度β１が「１５」になるはずである。しかし、制御ずれや減速機１１の弾性変形により、モータ回転角度αや減速機回転角度β１にずれが生じることがある。ここでは、仮にサーボモータ１０の出力軸１０ａのモータ回転角度αが「２８」であり、減速機１１の出力軸１１ａの減速機回転角度β１が「１３」であるとする。この場合、乗算器３１において「２」が乗算され、乗算値β２として「２６」が算出される。そして、第４減算器３７において、目標回転角度「３０」から乗算値「２６」が減算され、位置偏差θ３として「４」が算出される。指令生成部３８は、位置偏差「４」に基づいて速度指令Ｓ１を生成する。すなわち、指令生成部３８は、サーボモータ１０の出力軸１０ａが既に回転していた「２８」に加えてさらに「４」角度回転し、合わせてモータ回転角度αが「３２」となるような速度指令Ｓ１を生成する。これに伴い減速機１１の出力軸１１ａは既に回転していた「１３」に加えて「２」角度回転し、減速機１１の出力軸１１ａの減速機回転角度β１は「１５」となる。したがって、減速機回転角度β１は、目標回転角度θ１に減速比を加味した角度位置に位置することになる。なお、この「軌跡移動モード」の場合には、減速機１１における弾性変形は解消しない。
【００６４】
以上のとおり、各可動部材Ｃ２〜Ｃ８の動作態様が「軌跡移動モード」に設定されている場合には、減速機１１の出力軸１１ａにおける回転が不足した分だけ、減速機１１の出力軸１１ａが追加で回転される。その結果、減速機１１の回転位置を目標回転角度θ１に応じた位置に制御できる。
【００６５】
（第２実施形態のロボット制御装置の特徴及び効果）
第２実施形態では、第１実施形態における（１）の効果に加え、次の効果が得られる。
（６）第２実施形態では、「アプローチモード」の場合には、目標回転角度θ１から変形角度Δ１を減算して補正目標角度θ２を算出することで、減速機１１における弾性変形が解消されるようにサーボモータ１０を制御できる。したがって、減速機１１の弾性変形に起因して溶接トーチＣ９の先端が振動して、その先端の位置がぶれてしまうことを抑制できる。
【００６６】
（７）第２実施形態では、「軌跡移動モード」の場合には、減速機１１の出力軸１１ａにおける回転不足分として位置偏差θ３が算出される。すなわち、回転不足分だけ、減速機１１の出力軸１１ａが追加で回転される。その結果、減速機１１の出力軸１１ａ回転位置を目標回転角度θ１に応じた位置に制御できる。この一連の制御によれば、少ない制御サイクルでフィードバック補正が可能であるため、「軌跡移動モード」における目標回転角度θ１の変化に十分に対応できる。
【００６７】
（８）第２実施形態では、減速機１１の出力軸１１ａの角度位置、すなわち第１アームＣ３の位置をフィードバックして位置偏差θ３を算出している。そのため、仮に、減速機１１の出力軸１１ａの角度位置に、減速機１１に重量が作用して弾性変形が生じたことに伴うずれが生じても、そのずれを加味した制御が可能である。これによれば、第１実施形態の場合のように基準変形角度γを考慮しなくともよく、主制御部２０の記憶部２３に変形量補正マップ等を記憶させなくても済む。
【００６８】
（第３実施形態のロボット制御システムの構成及びアーム制御シークエンスの構成）
次に、ロボット制御装置ＲＣの第３実施形態について説明する。第３実施形態のロボット制御装置ＲＣの構成は、第１実施形態のロボット制御装置ＲＣと同様である。ただし、第３実施形態のロボット制御装置ＲＣにおいては、主制御部２０の記憶部２３に、符合情報が記憶されてなく、第１係数Ｋ１及び第２係数Ｋ２が記憶されている。第１係数Ｋ１は、予め定められた０以上１以下の定数であり、この第３実施形態では「１」が設定されている。また、第２係数Ｋ２は、予め定められた０以上１以下の定数であり、この第３実施形態では「０．５」が設定されている。
【００６９】
なお、以下の説明では、第１アームＣ３を旋回動作させるためのサーボモータ１０及び減速機１１の制御を例として説明するが、他の可動部材Ｃ２、Ｃ４〜Ｃ８についても同様である。また、第１実施形態におけるアーム制御シークエンス（図２参照）と同一の構成については同一の符号を付して、その説明を簡略化又は省略することがある。
【００７０】
図５に示すように、乗算器３１には、減速機回転角度β１及び乗算係数Ｋが入力される。乗算器３１は、減速機回転角度β１と乗算係数Ｋとを乗算した乗算値β２を出力する。乗算値β２は、減速機回転角度β１をモータ回転角度αに換算した換算角度である。第１減算器３２には、モータ回転角度αと乗算値β２とが入力される。第１減算器３２は、モータ回転角度αから乗算値β２を減算した値を変形角度Δ１として出力する。この変形角度Δ１は、モータ回転角度α及び減速機回転角度β１の間の回転角度のずれを示すものである。
【００７１】
図５に示すように、第２減算器３３には、変形角度Δ１と基準変形角度γとが入力される。基準変形角度γは、一連のアーム制御シークエンス実行時の各可動部材Ｃ２〜Ｃ８の角度位置と記憶部２３に記憶されている変形量補正マップに基づいて算出されるものである。第２減算器３３は、変形角度Δ１から基準変形角度γを減算した値を、補正変形角度Δ２として出力する。このように第１減算器３２及び第２減算器３３は、モータ回転角度α及び減速機回転角度β１の間の回転角度のずれから基準変形角度γを差し引いて、差分角度としての補正変形角度Δ２を算出する算出部として機能する。
【００７２】
図５に示すように、ローパスフィルタ４１には、補正変形角度Δ２が入力される。ローパスフィルタ４１は、補正変形角度Δ２の経時的変化のうち、所定周波数未満の帯域のみをねじれ角度Δ３として出力し、所定周波数を超える帯域については遮断する。この第３実施形態では、ローパスフィルタ４１は、１Ｈｚ未満の帯域のみをねじれ角度Δ３として出力する。
【００７３】
図５に示すように、ねじれ角度補正部４２には、ねじれ角度Δ３と第１係数Ｋ１とが入力される。ねじれ角度補正部４２は、ねじれ角度Δ３に第１係数Ｋ１として設定されている「１」を乗算した値を、補正ねじれ角度Δ４として出力する。加算器４３には、補正ねじれ角度Δ４と目標回転角度θ１とが入力される。加算器４３は、目標回転角度θ１に補正ねじれ角度Δ４を加算して、第１補正目標角度θ４として出力する。
【００７４】
一方、図５に示すように、バンドパスフィルタ４６には、第２減算器３３が出力した補正変形角度Δ２が入力される。バンドパスフィルタ４６は、補正変形角度Δ２の経時的な変化のうち、ローパスフィルタ４１の上限周波数を超える所定帯域のみを振動角度Δ５として出力し、他の帯域については遮断する。この第３実施形態では、バンドパスフィルタ４６は、１Ｈｚ以上１０Ｈｚ以下の帯域のみを振動角度Δ５として出力する。
【００７５】
図５に示すように、振動角度補正部４７には、振動角度Δ５と第２係数Ｋ２とが入力される。振動角度補正部４７は、振動角度Δ５に第２係数Ｋ２として設定されている「０．５」を乗算した値を、補正振動角度Δ６として出力する。第５減算器４８には、補正振動角度Δ６と、上述した加算器４３が出力した第１補正目標角度θ４とが入力される。第５減算器４８は、第１補正目標角度θ４から補正振動角度Δ６を減算して、第２補正目標角度θ５として出力する。なお、ローパスフィルタ４１、ねじれ角度補正部４２、加算器４３、バンドパスフィルタ４６、振動角度補正部４７、及び第５減算器４８は、補正変形角度Δ２（差分角度）に基づいて目標回転角度θ１をフィードバック補正する第２補正部を構成するものである。
【００７６】
図５に示すように、第４減算器３７には、第２補正目標角度θ５及びモータ回転角度αが入力される。第４減算器３７は、第２補正目標角度θ５からモータ回転角度αを減算して、位置偏差θ３を算出する。そして、指令生成部３８は、位置偏差θ３に基づいて、新たな速度指令Ｓ１を生成し、その速度指令Ｓ１をサーボ制御部２５に出力する。なお、第４減算器３７は、モータ回転角度αに基づいて補正目標角度θ２をフィードバック補正する第１補正部として機能する。
【００７７】
第３実施形態のロボット制御装置ＲＣにおけるアーム制御シークエンスの作用について、具体的な数値の例を挙げつつ、図５に従って説明する。なお、以下の説明では、減速機１１の入力：出力の減速比が２：１であり、乗算係数Ｋが「２」であるものとする。また、第４減算器３７（第１補正部）によるフィードバック補正が行われてサーボモータ１０に適用される処理と、ローパスフィルタ４１、ねじれ角度補正部４２、加算器４３、バンドパスフィルタ４６、振動角度補正部４７、及び第５減算器４８（第２補正部）によるフィードバック補正が行われてサーボモータ１０に適用される処理とを分けて説明する。
【００７８】
目標回転角度θ１として例えば「３０」が設定されたとする。アーム制御シークエンスの初期段階では、補正ねじれ角度Δ４及び補正振動角度Δ６が算出されてなく、いずれも「０」である。したがって、加算器４３は、第１補正目標角度θ４として「３０」を出力し、第５減算器４８は、第２補正目標角度θ５として「３０」を出力する。また、アーム制御シークエンスの初期段階では、サーボモータ１０の出力軸１０ａが回転していないため、モータ回転角度αも「０」である。したがって、第４減算器３７は、位置偏差θ３として「３０」を出力する。そして、指令生成部３８は、位置偏差「３０」に基づいて速度指令Ｓ１を生成する。サーボ制御部２５は、速度指令Ｓ１に基づいて、サーボモータ１０の出力軸１０ａを「３０」角度回転させるためのモータ制御電圧Ｖｘを生成し、サーボモータ１０に供給する。そして、サーボモータ１０の出力軸１０ａは、モータ制御電圧Ｖｘに応じて回転する。
【００７９】
ここで、仮にサーボモータ１０の出力軸１０ａのモータ回転角度αが「２８」であった場合、第４減算器３７において第２補正目標角度「３０」からモータ回転角度「２８」が減算されて、位置偏差θ３として「２」が算出される。指令生成部３８は、位置偏差「２」に基づいて速度指令Ｓ１を生成する。すなわち、指令生成部３８は、サーボモータ１０の出力軸１０ａが既に回転していた「２８」に加えてさらに「２」角度回転し、合わせてモータ回転角度αが「３０」となるような速度指令Ｓ１を生成する。その結果、モータ回転角度「３０」と補正目標角度「３０」とが一致し、補正目標角度θ２のとおりにサーボモータ１０の出力軸１０ａが回転したことになる。これ以降の説明では、上記の一連の補正が終了しているものとする。
【００８０】
一方、サーボモータ１０の出力軸１０ａが回転すると、それに応じて減速機１１の出力軸１１ａも回転する。ここで、減速機１１における減速機１１の入力：出力の減速比は２：１である。したがって、モータ回転角度αが「３０」であれば、理想的には、減速機回転角度β１は「１５」となる。しかしながら、減速機１１の歯車等に弾性変形が生じると、減速機回転角度β１が理想的な場合よりも小さくなることがある。ここでは、減速機回転角度β１として「１３」が算出されたものとする。
【００８１】
減速機回転角度「１３」が算出されるとそれに乗算係数「２」が乗算され、乗算値β２として「２６」が算出される。そして、モータ回転角度「３０」から乗算値「２６」が減算され、変形角度Δ１として「４」が算出される。したがって、減速機１１には、変形等が生じていない理想的な状態と比較して、モータ回転角度αに換算して、変形角度「４」角度分のずれが生じていることになる。このようにして算出された変形角度「４」の中には、サーボモータ１０の出力軸１０ａが回転することに伴って生じる減速機１１の弾性変形に加えて、各可動部材Ｃ２〜Ｃ８の重量によって生じる角度位置のずれである基準変形角度γも含まれる。ここでは、基準変形角度γが「２」であるものとする。そして、第２減算器３３において、変形角度「４」から基準変形角度「２」が減算されて、補正変形角度Δ２として「２」が算出される。この補正変形角度Δ２は、サーボモータ１０の出力軸１０ａが回転することに伴って生じる減速機１１の弾性変形を反映したものである。
【００８２】
サーボモータ１０の出力軸１０ａが回転することに伴って生じる減速機１１の弾性変形は、第１アームＣ３（可動部材）の旋回開始、停止によって生じるものである。したがって、減速機１１の弾性変形に伴う、サーボモータ１０の出力軸１０ａと減速機１１の出力軸１１ａとの間のねじれ角度は、数秒〜数十秒周期で変化することはあっても、１秒未満の単位で変化することは考えにくい。すなわち、ねじれ角度の変動周期は１Ｈｚ未満である。したがって、減速機１１の弾性変形に伴って発生する補正変形角度Δ２は、ローパスフィルタ４１を通過して、ローパスフィルタ４１からねじれ角度Δ３として出力される。ここでは、ねじれ角度Δ３は、補正変形角度Δ２と同じ「２」である。ねじれ角度「２」が出力されると、ねじれ角度補正部４２において第１係数Ｋ１が乗算される。ここでは、第１係数Ｋ１は「１」であるので、ねじれ角度補正部４２において、補正ねじれ角度Δ４として「２」が算出される。補正ねじれ角度「２」が算出されると、加算器４３において目標回転角度「３０」に補正ねじれ角度「２」が加算され、第１補正目標角度θ４として「３２」が算出される。そして、この段階では、補正振動角度Δ６は「０」であるので、第５減算器４８において、第２補正目標角度θ５として「３２」が算出される。
【００８３】
第２補正目標角度θ５として「３２」が算出されると、第４減算器３７においてモータ回転角度「３０」が減算されて、位置偏差θ３として「２」が算出される。指令生成部３８は位置偏差「２」に基づいて速度指令を生成する。すなわち、指令生成部３８は、サーボモータ１０の出力軸１０ａが既に回転していた「３０」からさらに「２」角度回転して、モータ回転角度αが「３２」となるような速度指令Ｓ１を生成する。また、新たにサーボモータ１０の出力軸１０ａが「２」角度回転するのに応じて、減速機１１の出力軸１１ａは「１」角度回転して、減速機回転角度β１は「１４」、乗算値β２は「２８」となる。なお、目標回転角度「３０」と乗算値β２は「２８」との差は、基準変形角度γに相当する。したがって、基準変形角度γの分を除けば、減速機１１は、目標回転角度θ１に応じた回転角度位置に回転したことになる。
【００８４】
上記の一連の制御が行われると、減速機１１が弾性変形したことに伴って過不足した分の角度が補償され、減速機１１の出力軸１１ａの角度位置として所望の角度位置が得られる。しかしながら、減速機１１の弾性変形そのものは解消していないため、その弾性変形した状態から戻ろうとする。仮に、サーボモータ１０の出力軸１０ａの回転トルクが、減速機１１の出力軸１１ａが弾性変形した状態から戻ろうとする力よりも小さくなると、減速機１１の出力軸１１ａが弾性変形していない状態へと回転する。そして、減速機１１の出力軸１１ａが回転すると、その勢いで出力軸１１ａが再び弾性変形する。すなわち、モータ回転角度αが一定であっても、減速機回転角度β１が、所定の角度位置を中心として経時的に増減する。
【００８５】
ここで、モータ回転角度αは、この時点では一定であり、また、基準変形角度γも各可動部材の姿勢等に応じて予め定められた定数である。そのため、上述したように減速機回転角度β１が経時的に変化すると、補正変形角度Δ２も経時的に増減する。ここでは、補正変形角度Δ２が「±２」の範囲内で経時的に増減するものとする。
【００８６】
上記の補正変形角度Δ２の増減は、減速機１１の弾性変形に起因するものであり、その周期は比較的に短い。すなわち、補正変形角度Δ２の増減の振動角度の周波数は、１Ｈｚ以上である。したがって、減速機１１の出力軸１１ａが弾性変形した状態から元に戻ろうとした結果生じる補正変形角度Δ２の「±２」の範囲内での経時的な振動は、バンドパスフィルタ４６を通過して、振動角度Δ５として出力される。
【００８７】
振動角度Δ５が出力されると、振動角度補正部４７において第２係数Ｋ２が乗算される。ここでは、第２係数Ｋ２は「０．５」であるので、振動角度補正部４７において、補正振動角度Δ６として、「±１」の範囲内で経時的に増減する値が算出される。そして、第５減算器４８において、第１補正目標角度θ４から、「±１」の範囲内で経時的に増減する補正振動角度Δ６が減算された値が、第２補正目標角度θ５として算出される。さらに、第４減算器３７において、第２補正目標角度θ５からモータ回転角度αが減算された値が位置偏差θ３として算出される。このときの位置偏差θ３の増減は、変形角度Δ１の増減とはプラスマイナスが反対の逆相である。また、位置偏差θ３の増減の振幅は、変形角度Δ１の増減の振幅のおよそ半分である。したがって、指令生成部３８は、減速機１１の出力軸１１ａが弾性変形を解消しようと回転するのとは反対方向に、サーボモータ１０の出力軸１０ａを回転させるような速度指令Ｓ１を出力する。その結果、減速機１１の出力軸１１ａの回転角度の振動は、上記一連の制御を行わない場合に比較して、およそ半分に低減される。
【００８８】
なお、上記の説明では、補正ねじれ角度Δ４による目標回転角度θ１の補正と、補正振動角度Δ６による第１補正目標角度θ４（目標回転角度θ１）の補正とを分けて説明したが、実際には、第１アームＣ３等の動作に応じて、上記２つの補正が並行して行われる。
【００８９】
（第３実施形態のロボット制御装置の特徴及び効果）
第３実施形態では、第１実施形態における（１）及び（２）の効果に加え、次の効果が得られる。
【００９０】
（９）第３実施形態では、補正ねじれ角度Δ４を目標回転角度θ１に加算することで、減速機１１の弾性変形に起因する出力軸１１ａの回転の過不足分をフィードバック補正できる。したがって、サーボモータ１０の出力軸１０ａが回転することに伴う減速機１１の弾性変形をより正確に反映したフィードバック補正が可能となる。
【００９１】
（１０）第３実施形態では、補正振動角度Δ６を第１補正目標角度θ４（目標回転角度θ１）から減算することで、弾性変形した状態から元に戻ろうとする減速機１１の出力軸１１ａの回転方向とは反対側に、サーボモータ１０の出力軸１０ａを回転できる。したがって、減速機１１の出力軸１１ａの回転角度の振動を相殺するようにサーボモータ１０を制御することができる。その結果、出力軸１１ａの回転角度が振動することに伴って、ロボットＲの各可動部材が振動することを抑制できる。
【００９２】
（１１）第３実施形態では、補正変形角度Δ２をローパスフィルタ４１及びバンドパスフィルタ４６に入力させることにより、補正変形角度Δ２を、ねじれ角度Δ３と振動角度Δ５とに分けている。したがって、例えば、アーム制御シークエンスを状況に応じて切り替えなくても、減速機１１の弾性変形に起因する出力軸１１ａの回転の過不足分のフィードバック補正と、減速機１１が弾性変形を解消しようとして生じる出力軸１１ａの回転角度の振動抑制との双方を実現できる。
【００９３】
（１２）第３実施形態では、ねじれ角度補正部４２に入力される第１係数Ｋ１、及び振動角度補正部４７に入力される第２係数Ｋ２を、それぞれ０以上１以下の範囲内で設定可能である。すなわち、減速機１１の弾性変形をどの程度考慮してフィードバック補正するのか、減速機１１の出力軸１１ａの回転角度の振動をどの程度抑制するのかを、それぞれ個別に設定できる。
【００９４】
（変更例）
上記第１実施形態〜第３実施形態は、以下のとおり変更することができる。また、各変更例を適宜組み合わせて適用することもできる。
【００９５】
・ロボットＲの態様は上記各実施形態のものに限らない。例えば、各可動部材Ｃ２〜Ｃ８の数は７つに限らず、６つ以下でも８つ以上でもよい。また、各可動部材Ｃ２〜Ｃ８は、旋回動作するものに限らず、例えばスライド移動するものであってもよい。
【００９６】
・上記各実施形態のアーム制御シークエンスは、各可動部材Ｃ２〜Ｃ８を動作させるためのサーボモータすべてに適用される必要はない。例えば、第１アームＣ３を旋回させるサーボモータ１０を制御するためのアーム制御シークエンスとして、上記実施形態のアーム制御シークエンスを適用し、他の可動部材を旋回させるサーボモータを制御するためのアーム制御シークエンスとして、例えば特許文献１に記載されている制御を適用してもよい。
【００９７】
・モータエンコーダ１２及び減速機エンコーダ１３は、各出力軸の回転角度を検出できるのであれば、インクリメントエンコーダに限らない。例えば、モータエンコーダ１２及び減速機エンコーダ１３として、アブソリュートエンコーダを適用してもよい。
【００９８】
・サーボモータ１０の出力軸１０ａに対して、複数の減速機が直列的に接続されていてもよい。例えば、サーボモータ１０の出力軸１０ａに第１の減速機が接続され、第１の減速機の出力軸に第２の減速機が接続されていてもよい。この場合、第１の減速機の出力軸の回転を減速機エンコーダで検出してもよいが、第２の減速機の出力軸の回転を減速機エンコーダで検出すれば、第１及び第２の減速機の弾性変形の総量が変形角度Δ１として算出されることになる。
【００９９】
・減速機１１において弾性変形以外の要因で出力軸１１ａの角度位置にずれが生じることもある。例えば、減速機１１の歯車が過度に摩耗すると、歯車が他の歯車と噛み合って回転する際にすべりが生じて設計どおりに歯車が回転しないことがある。このような歯車のすべりに起因して減速機１１の出力軸１１ａの角度位置にずれが生じた場合、変形角度Δ１にそのずれが含まれることになる。
【０１００】
・第１実施形態及び第２実施形態において、「アプローチモード」及び「軌跡移動モード」の組み合わせは適宜変更できる。例えば、「アプローチモード」については第１実施形態の「アプローチモード」を実行しつつ、「軌跡移動モード」については第２実施形態の「軌跡移動モード」を実行してもよい。また、その逆に、「アプローチモード」については第２実施形態の「アプローチモード」を実行しつつ、「軌跡移動モード」については第１実施形態の「軌跡移動モード」を実行してもよい。
【０１０１】
・ロボットＲの各可動部材Ｃ２〜Ｃ８の動作モードは、上記各実施形態で例示した「アプローチモード」、「軌跡移動モード」に限らず、他のモードがあってもよい。例えば、「アプローチモード」と「軌跡移動モード」との間に、溶接トーチＣ９の先端を所定の位置で静止させつつ、上記各実施形態の「軌跡移動モード」と同じアーム制御シークエンスを行う「位置決めモード」があってもよい。これら一連の制御によれば、「アプローチモード」で減速機１１の弾性変形を解消しつつ溶接トーチＣ９の先端を所定の位置に移動させ、「位置決めモード」で確実にその所定の位置で静止させ、その後、「軌跡移動モード」で迅速に加工等を行う、といった動作が可能になる。
【０１０２】
このように、「アプローチモード」及び「軌跡移動モード」ではない「他のモード」を採用する場合にどのような制御を採用するのかは、「他のモード」において可動部材Ｃ２〜Ｃ８の振動抑制（先端位置のぶれ抑制）を優先するかフィードバックの応答性を優先するかによって決定すればよい。また、「他のモード」において上記実施形態で説明したものとは異なる制御が行われてもよい。
【０１０３】
・第１減算器３２、第２減算器３３、第３減算器３５、第４減算器３７において、どちらの数値からどちらの数値を減算するかは、必ずしも上記実施形態の態様に限らない。例えば、第１減算器３２において乗算値β２からモータ回転角度αを減算してもよい。この変更例で得られる変形角度Δ１は、上記実施形態で得られる変形角度Δ１とは正負の符号が逆になる。これに伴って、基準変形角度γの正負の符号を上記実施形態とは反対にしたり、符号変更部３４における正負の符号を反転するか否かの判断を反対にしたりすれば、上記実施形態と同様の制御が行える。
【０１０４】
・第１実施形態において各可動部材Ｃ２〜Ｃ８の角度位置と減速機１１の出力軸１１ａの角度位置のずれとの関係を示すものは、上記実施形態で例示した変形量補正マップに限らない。例えば、表、演算式など、各可動部材Ｃ２〜Ｃ８の角度位置に基づき特定の基準変形角度γが得られるものであれば、その態様は問わない。
【０１０５】
・第１実施形態の変形量補正マップにおいて、各可動部材Ｃ２〜Ｃ８の重量に加えて他の要因を考慮した基準変形角度γが得られるようにしてもよい。
・第１実施形態において、変形量補正マップに基づいて基準変形角度γを算出するのではなく、例えば、可動部材Ｃ２〜Ｃ８毎に、一定の基準変形角度γを用いてもよい。例えば、各可動部材Ｃ２〜Ｃ８の旋回範囲が特定の範囲に限られている場合、各減速機に作用する各可動部材Ｃ２〜Ｃ８の重量の重心位置や重量の作用方向も大きく変化しない。したがって、このような場合には、一定の基準変形角度γを用いても、制御の正確性を大きく損なわせることはない。
【０１０６】
・第１実施形態において、第２減算器３３を省略して、変形角度Δ１が符号変更部３４に入力されるようにしてもよい。例えば、図１に示すロボットＲを水平な面に設置した場合、第１回転軸心Ｊ１の方向が鉛直方向となる。したがって、出力軸が旋回台Ｃ２に固定されている減速機の歯車は、各可動部材Ｃ２〜Ｃ８の角度位置に拘わらず、常に水平方向に沿って横置きされている。このように、水平方向に沿って横置きされている歯車に、各可動部材Ｃ２〜Ｃ８の重量が作用しても、減速機の出力軸の回転位置がずれるような弾性変形が生じるとは考えにくい。また、例えば、各可動部材Ｃ２〜Ｃ８の重量が比較的に軽くて、且つ、減速機の歯車等が相応に剛性の高い材料で構成されていれば、弾性変形が生じても無視できるほど小さい。このような場合には、第２減算器３３を省略しても、正確な制御を行うことができる。なお、第２減算器３３を省略する場合には、基準変形角度γが不要になるため、記憶部２３に記憶されている変形量補正マップも不要である。また、この変更例の場合は、変形角度Δ１が差分角度として機能する。
【０１０７】
・第１実施形態において目標回転角度θ１から補正変形角度Δ２を減算するか加算するかの切り換えは、上記実施形態のような符号変更部３４に限らない。例えば、第３減算器３５に代えて、符号情報Ｓ２に応じて減算するか加算するかが切り換わる加減算器を適用してもよい。また、図２に示すアーム制御シークエンスにおいて符号変更部３４を省略したものを「アプローチモード用のアーム制御シークエンス」とし、図２に示すアーム制御シークエンスにおいて符号変更部３４を省略し、且つ第３減算器３５に代えてを適用したものを「軌跡移動モード用のアーム制御シークエンス」とする。そして、各可動部材Ｃ２〜Ｃ８の動作モードに応じてどちらのアーム制御シークエンスを採用するかを切り換えてもよい。
【０１０８】
・第１実施形態において目標回転角度θ１から補正変形角度Δ２を減算するか加算するかの切換制御そのものを省略することができる。例えば、旋回台Ｃ２を旋回させるサーボモータに関しては、常に、目標回転角度θ１に補正変形角度Δ２を加算するアーム制御シークエンス（上記第１実施形態でいう軌跡移動モードの制御）を適用し、ツール固定部材Ｃ８を旋回させるサーボモータに関しては、常に、目標回転角度θ１に補正変形角度Δ２を減算するアーム制御シークエンス（上記第１実施形態でいうアプローチモードの制御）を適用する、といった態様でもよい。
【０１０９】
・第３実施形態において、ローパスフィルタ４１が通過させる帯域は１Ｈｚ未満に限らない。ロボットＲの各可動部材の構成や、各可動部材の動作態様に応じて適宜設定すればよい。また、バンドパスフィルタ４６が通過させる帯域も、１Ｈｚ以上１０Ｈｚ未満に限らない。減速機１１に生じるであろう弾性変形の程度やそれを解消しようとする際に生じる出力軸１１ａの回転角度の振動の周期を実験的に求めるなどして、それに応じて通過させる帯域を決定すればよい。
【０１１０】
・第３実施形態において、上述した第１係数Ｋ１及び第２係数Ｋ２は、説明の便宜上において例示した数値であり、０以上１以下の範囲内で適宜変更できる。また、第１係数Ｋ１及び第２係数Ｋ２は、ロボットＲ毎に固定である必要はなく、例えば、各可動部材の動作プログラムに応じて変更したり、ユーザの入力によって任意に変更できるようにしてもよい。
【０１１１】
・さらに、第３実施形態において、ねじれ角度補正部４２及び振動角度補正部４７のいずれか又は両方を省略することも可能である。なお、この変更例の場合、上記第３実施形態において第１係数Ｋ１として「１」、第２係数Ｋ２として「１」を設定した場合と同じである。
【０１１２】
・第３実施形態において、目標回転角度θ１から補正振動角度Δ６を減算し、その結果得られた補正目標角度にねじれ角度Δ４を加算するようにしてもよい。この場合でも、上で例示した第３実施形態と同様の効果が得られる。
【０１１３】
（技術思想の追記）
上記実施形態及び変更例から導き出せる技術思想を以下に追記する。
・可動部材の動作態様が、当該可動部材を所定の位置に移動させた後その所定の位置で静止させるアプローチモードに設定されている場合、切換部は、目標回転角度から差分角度が減算されるように切り換える。
【０１１４】
・可動部材の動作態様が、当該可動部材を所定の軌跡に沿って移動させる軌跡移動モードに設定されている場合、切換部は、目標回転角度から差分角度が加算されるように切り換える。
【符号の説明】
【０１１５】
Ｒ…ロボット（多関節型ロボット）、ＲＣ…ロボット制御装置、２０…主制御部、２１…演算部、２３…記憶部、２５…サーボ制御部、３１…乗算器、３２…第１減算器、３３…第２減算器、３４…符号変更部、３５…第３減算器、３７…第４減算器、４１…ローパスフィルタ、４２…ねじれ角度補正部、４３…加算器、４６…バンドパスフィルタ、４７…振動角度補正部、４８…第５減算器、Ｋ…乗算係数、Ｋ１…第１係数、Ｋ２…第２係数、Ｓ１…速度指令、Ｓ２…符号情報、α…モータ回転角度、β１…減速機回転角度、β２…乗算値、γ…基準変形角度、Δ１…変形角度、Δ２…補正変形角度、Δ３…ねじれ角度、Δ４…補正ねじれ角度、Δ５…振動角度、Δ６…補正振動角度、θ１…目標回転角度、θ２…補正目標角度、θ３…位置偏差、θ４…第１補正目標角度、θ５…第２補正目標角度。
【図１】
2017119342.tif 000003
【図２】
2017119342.tif 000004
【図３】
2017119342.tif 000005
【図４】
2017119342.tif 000006
【図５】
2017119342.tif 000007