(多関節型ロボットの構成)
先ず、ロボット制御システムを構成する多関節型ロボット(以下、ロボットRと略記する。)の概略構成について説明する。
図1に示すように、ロボットRの基台C1の上部には、第1回転軸心J1を中心として旋回可能に旋回台C2が設けられている。旋回台C2の上部には、第2回転軸心J2を中心として旋回可能に第1アームC3が設けられている。第1アームC3の先端部には、第2回転軸心J2と直交する第3回転軸心J3を中心として旋回可能に第2アームC4が設けられている。第2アームC4の先端部には、第3回転軸心J3と直交する第4回転軸心J4を中心として旋回可能に第3アームC5が設けられている。
図1に示すように、第3アームC5の先端部には、第5回転軸心J5を中心として旋回可能に第4アームC6が設けられている。第4アームC6の先端部には、第5回転軸心J5と直交する第6回転軸心J6を中心として旋回可能に第5アームC7が設けられている。第5アームC7の先端には、第6回転軸心J6と直交する第7回転軸心J7を中心として旋回可能にツール固定部材C8が設けられている。ツール固定部材C8には、作業ツールとして溶接トーチC9が固定されており、この溶接トーチC9はツール固定部材C8と一体的に旋回する。なお、第4アームC6、第5アームC7及びツール固定部材C8は、これら全体で手首組立体と呼称されることもある。
図2に示すように、ロボットRには、第1アームC3を旋回させるための駆動源としてサーボモータ10が内蔵されている。サーボモータ10の出力軸10aは、減速機11に駆動連結されている。減速機11の出力軸11aは、第1アームC3に固定されている。したがって、サーボモータ10の出力軸10aが回転すると、減速機11において所定の減速比で減速されて減速機11の出力軸11aが回転する。そして、減速機11の出力軸11aの回転に応じて第1アームC3が旋回する。
図2に示すように、ロボットRには、サーボモータ10の出力軸10aの回転角度を検出するためのモータエンコーダ12が内蔵されている。モータエンコーダ12は、例えば、インクリメントエンコーダであり、サーボモータ10の出力軸10aの回転角度に応じたパルス数のパルス信号を出力する。また、ロボットRには、減速機11の出力軸11aの回転角度を検出するための減速機エンコーダ13が内蔵されている。減速機エンコーダ13は、例えば、インクリメントエンコーダであり、減速機11の出力軸11aの回転角度に応じたパルス数のパルス信号を出力する。
ロボットRには、旋回台C2、第2アームC4〜第5アームC7及びツール固定部材C8それぞれに対応してサーボモータ、減速機、モータエンコーダ及び減速機エンコーダが設けられている。これらの構成は、上述したサーボモータ10、減速機11、モータエンコーダ12及び減速機エンコーダ13と同様であるため、詳しい説明は省略する。この実施形態においては、旋回台C2、第1アームC3〜第5アームC7及びツール固定部材C8は、いずれも減速機の出力軸の回転に応じて駆動する可動部材に相当する。また、以下の説明では、これら旋回台C2、第2アームC4〜第5アームC7及びツール固定部材C8を「可動部材」と呼称することもある。
(第1実施形態のロボット制御装置RCの構成)
次に、第1実施形態のロボット制御装置RCについて説明する。
図1に示すように、ロボットRの基台C1には、通信ケーブル(図1では破線で図示)を介してロボット制御装置RCが接続されている。ロボット制御装置RCの主制御部20は、各種のプログラムを実行する演算部21(CPU)、各プログラムの実行に際してデータが一時的に格納される揮発性のメモリ22、処理に必要なプログラムや各種のデータ等が格納される不揮発性の記憶部23などを有するコンピュータとして構成されている。
図1に示すように、主制御部20の記憶部23には、各可動部材C2〜C8の旋回動作を制御するためのアーム制御シークエンスが記憶されている。例えば、第1アームC3を旋回動作させる場合には、主制御部20の演算部21は、このアーム制御シークエンスに従って各種の演算を行い、サーボモータ10の出力軸10aを目標回転角度θ1回転させるための速度指令S1を生成する。なお、演算部21は、速度指令S1を生成する指令生成部に相当する。
図1に示すように、主制御部20の記憶部23には、一連のアーム制御シークエンスの演算の中で使用される変形量補正マップが記憶されている。この変形量補正マップは、各可動部材C2〜C8の角度位置と、可動部材C2〜C8の重量によって各減速機の出力軸に生じる基準変形角度γとの関係が示されたマップである。具体的には、例えば、ロボットRがある姿勢をとった場合、出力軸11aが第1アームC3に固定されている減速機11には、第1アームC3及びそれよりも先端側の第2アームC4〜第5アームC7、ツール固定部材C8、溶接トーチC9等の重量が作用する。これらの重量が減速機11に作用することによって減速機11の歯車等に変形が生じ、それに伴い出力軸11aの角度位置にもずれが生じる。このように各可動部材C2〜C8等の重量によって生じる減速機11の出力軸11aの角度位置のずれを示すものを、基準変形角度γとしている。また、基準変形角度γは、減速機11に作用する重量の重心位置、及び減速機11に対する重量の作用方向によって変化する。そして、減速機11に作用する重量の重心位置、及び減速機11に対する重量の作用方向は、第1アームC3〜第5アームC7及びツール固定部材C8の角度位置(姿勢)によって求めることができる。そこで、変形量補正マップは、第1アームC3〜第5アームC7及びツール固定部材C8の各角度位置を入力することにより、基準変形角度γを得られるようになっている。なお、変形量補正マップは、各可動部材C2〜C8の各角度位置を徐々に変更しつつ基準変形角度γを計測するといった試験により予め作成しておくことができる。
図1に示すように、主制御部20の記憶部23には、一連のアーム制御シークエンスの演算の中で使用される符号情報が記憶されている。この符号情報は、アーム制御シークエンスの過程で算出される補正変形角度Δ2の正負の符号を反転するか否かの情報と、可動部材C2〜C8の動作態様とが関連付けられたものである。この実施形態では、可動部材C2〜C8の動作態様として、溶接トーチC9の先端を所定の位置に移動させ、その後、その位置で静止させる「アプローチモード」と、溶接トーチC9の先端を所定の軌跡に沿って移動させる「軌跡移動モード」とが設定されている。そして、符号情報には、「アプローチモード」の場合に「符号反転しない」という情報が、「軌跡移動モード」の場合に「符号反転する」という情報が含まれている。
図1に示すように、ロボット制御装置RCには、ロボットRに内蔵されている各サーボモータに電力を供給するサーボ制御部25が内蔵されている。例えば、サーボモータ10を制御する場合、サーボ制御部25は、演算部21から出力される速度指令S1に応じてパルス周波数及びパルス幅等を調整したモータ制御電圧Vxを、サーボモータ10に出力する。サーボ制御部25は、他のサーボモータ10に対しても同様に、速度指令S1に応じて調整したモータ制御電圧Vxを出力する。
(第1実施形態のアーム制御シークエンスの構成)
次に、第1実施形態のロボット制御装置RCが実行するアーム制御シークエンスについて説明する。なお、以下の説明では、第1アームC3を旋回動作させるためのサーボモータ10及び減速機11の制御を例として説明するが、他の可動部材C2、C4〜C8についても同様である。
図2に示すように、モータエンコーダ12はサーボモータ10の出力軸10aの回転角度に応じたパルス信号を、ロボット制御装置RCの主制御部20に出力する。主制御部20の演算部21は、モータエンコーダ12が出力したパルス信号に基づきモータ回転角度αを算出する。また、減速機エンコーダ13は、減速機11の出力軸11aの回転角度に応じたパルス信号を、ロボット制御装置RCの主制御部20に出力する。主制御部20の演算部21は、減速機エンコーダ13が出力したパルス信号に基づき減速機回転角度β1を算出する。
図2に示すように、乗算器31には、減速機回転角度β1及び乗算係数Kが入力される。乗算器31は、減速機回転角度β1と乗算係数Kとを乗算した乗算値β2を出力する。なお、乗算係数Kは、減速機11の減速比に応じて定められる係数である。例えば、減速機11の入力:出力の減速比が2:1である場合、乗算係数Kは「2」である。したがって、減速機回転角度β1に乗算係数Kを乗算することにより、減速機回転角度β1をモータ回転角度αに換算した換算角度として乗算値β2を得ることができる。
図2に示すように、第1減算器32には、モータ回転角度αと乗算値β2とが入力される。第1減算器32は、モータ回転角度αから乗算値β2を減算した値を変形角度Δ1として出力する。この変形角度Δ1は、モータ回転角度α及び減速機回転角度β1の間の回転角度のずれを示すものである。第2減算器33には、変形角度Δ1と基準変形角度γとが入力される。基準変形角度γは、一連のアーム制御シークエンス実行時の各可動部材C2〜C8の角度位置と記憶部23に記憶されている変形量補正マップに基づいて算出されるものである。第2減算器33は、変形角度Δ1から基準変形角度γを減算した値を、補正変形角度Δ2として出力する。このように第1減算器32及び第2減算器33は、モータ回転角度α及び減速機回転角度β1の間の回転角度のずれから基準変形角度γを差し引いて、差分角度としての補正変形角度Δ2を算出する算出部として機能する。
図2に示すように、符号変更部34には、補正変形角度Δ2及び符号情報S2が入力される。符号情報S2には、一連のアーム制御シークエンス実行時において各可動部材C2〜C8の動作態様が「アプローチモード」に設定されている場合には「符号反転しない」という情報が含まれており、「軌跡移動モード」が設定されている場合には「符号反転する」という情報が含まれている。符号変更部34は、符号情報S2に従って、補正変形角度Δ2、又は正負の符号を反転した補正変形角度−Δ2を出力する。
図2に示すように、第3減算器35には、目標回転角度θ1及び符号変更部34が出力した補正変形角度Δ2又は補正変形角度−Δ2が入力される。目標回転角度θ1は、第1アームC3を目標位置に位置させた場合に、サーボモータ10の出力軸10aが位置する回転角度位置を示すものである。第3減算器35は、目標回転角度θ1から補正変形角度Δ2又は補正変形角度−Δ2を減算した補正目標角度θ2を出力する。したがって、第3減算器35は、補正変形角度Δ2(差分角度)に基づいて目標回転角度θ1をフィードバック補正する第2補正部として機能する。
なお、目標回転角度θ1から補正変形角度−Δ2を減算することは、目標回転角度θ1から補正変形角度Δ2を加算することと等しい。したがって、符号変更部34が補正変形角度Δ2の正負の符号を反転するか否かを切り換えることは、目標回転角度θ1から補正変形角度Δ2を加算するか減算するかを切り換えることと同じである。
図2に示すように、第4減算器37には、補正目標角度θ2及びモータ回転角度αが入力される。第4減算器37は、補正目標角度θ2からモータ回転角度αを減算して、位置偏差θ3を算出する。そして、指令生成部38は、位置偏差θ3に基づいて、新たな速度指令S1を生成し、その速度指令S1をサーボ制御部25に出力する。なお、第4減算器37は、モータ回転角度αに基づいて補正目標角度θ2をフィードバック補正する第1補正部として機能する。
(第1実施形態のロボット制御装置の作用)
第1実施形態のロボット制御装置RCにおけるアーム制御シークエンスの作用について、具体的な数値の例を挙げつつ、図2に従って説明する。なお、以下の説明では、減速機11の入力:出力の減速比が2:1であり、乗算係数Kが「2」であるものとする。また、第4減算器37(第1補正部)によるフィードバック補正が行われてサーボモータ10に適用される処理と、第3減算器35(第2補正部)によるフィードバック補正が行われてサーボモータ10に適用される処理とを分けて説明する。
先ず、ロボットRにおける各可動部材C2〜C8の動作態様が「アプローチモード」に設定されている場合の例を説明する。
目標回転角度θ1として、例えば「30」が設定されたとする。アーム制御シークエンスの初期段階では、補正変形角度Δ2が算出されてなく「0」である。また、サーボモータ10の出力軸10aが回転していないため、モータ回転角度αも「0」である。したがって、第4減算器37は、位置偏差θ3として「30」を出力する。そして、指令生成部38は、位置偏差「30」に基づいて速度指令S1を生成する。サーボ制御部25は、速度指令S1に基づいて、サーボモータ10の出力軸10aを「30」角度回転させるためのモータ制御電圧Vxを生成し、サーボモータ10に供給する。そして、サーボモータ10の出力軸10aは、モータ制御電圧Vxに応じて回転する。
ここで、仮にサーボモータ10の出力軸10aのモータ回転角度αが「28」であった場合、第4減算器37において補正目標角度「30」からモータ回転角度「28」が減算されて、位置偏差θ3として「2」が算出される。指令生成部38は、位置偏差「2」に基づいて速度指令S1を生成する。すなわち、指令生成部38は、サーボモータ10の出力軸10aが既に回転していた「28」に加えてさらに「2」角度回転し、合わせてモータ回転角度αが「30」となるような速度指令S1を生成する。その結果、モータ回転角度「30」と補正目標角度「30」とが一致し、補正目標角度θ2のとおりにサーボモータ10の出力軸10aが回転したことになる。これ以降の説明では、上記の一連の補正が終了しているものとする。
一方、サーボモータ10の出力軸10aが回転すると、それに応じて減速機11の出力軸11aも回転する。ここで、減速機11における減速機11の入力:出力の減速比は2:1である。したがって、モータ回転角度αが「30」であれば、理想的には、減速機回転角度β1は「15」となる。しかしながら、サーボモータ10の出力軸10aが回転したことに伴って減速機11の歯車等に弾性変形が生じると、減速機回転角度β1が理想的な場合よりも小さくなることがある。ここでは、減速機回転角度β1として「13」が算出されたものとする。
減速機回転角度「13」が算出されるとそれに乗算係数「2」が乗算され、乗算値β2として「26」が算出される。そして、モータ回転角度「30」から乗算値「26」が減算され、変形角度Δ1として「4」が算出される。したがって、減速機11には、変形等が生じていない理想的な状態と比較して、モータ回転角度αに換算して、変形角度「4」角度分のずれが生じていることになる。このようにして算出された変形角度「4」の中には、サーボモータ10の出力軸10aが回転することに伴って生じる減速機11の弾性変形に加えて、各可動部材C2〜C8の重量によって生じる角度位置のずれである基準変形角度γも含まれる。ここでは、基準変形角度γが「2」であるものとする。そして、第2減算器33において、変形角度「4」から基準変形角度「2」が減算されて、補正変形角度Δ2として「2」が算出される。この補正変形角度Δ2は、サーボモータ10の出力軸10aが回転することに伴って生じる減速機11の弾性変形を反映したものである。
算出された補正変形角度「2」は、符号変更部34に入力される。今回の例の場合、各可動部材C2〜C8の動作態様が「アプローチモード」に設定されていて、符号情報S2として「符号反転しない」という情報が含まれている。したがって、符号変更部34は、補正変形角度「2」の正負の符号を反転せず、そのまま出力する。
第3減算器35において目標回転角度「30」から補正変形角度「2」が減算され、補正目標角度θ2として「28」が算出される。ここで、モータ回転角度αは「30」であるため、第4減算器37は位置偏差θ3として「−2」を算出する。そして、指令生成部38は、サーボモータ10の出力軸10aが既に回転していた「30」から「2」逆回転するような速度指令S1を生成する。その結果、サーボモータ10の出力軸10aの回転に伴って生じた減速機11の弾性変形の分だけ、サーボモータ10の出力軸10aの回転が戻される。これにより、減速機11の弾性変形が解消される。
これらの制御が行われると、モータ回転角度αとして「28」が算出される。また、サーボモータ10の出力軸10aの回転に伴って生じた変形が解消された結果、減速機回転角度β1として「13」が算出されるとともに、乗算値β2として「26」が算出される。そして、変形角度Δ1として「2」が算出されるとともに、補正変形角度Δ2として「0」が算出される。その結果、補正目標角度θ2として、目標回転角度θ1と同じ「30」が算出され、位置偏差θ3として「2」が算出される。
ここで、サーボモータ10の出力軸10aは、既に「28」角度回転した状態にある。したがって、新たに位置偏差「2」が算出された場合でも、サーボモータ10の出力軸10aは、「2」角度新たに回転するだけである。そのため、サーボモータ10の出力軸10aが「0」から「30」まで回転する場合に比較して、サーボモータ10の出力軸10aの回転に伴う減速機11の弾性変形は無視できるほど小さい。また、仮に、再度のサーボモータ10の出力軸10aの回転に伴って減速機11が弾性変形した場合でも、上記一連の制御サイクルが繰り返し行われることで、サーボモータ10の出力軸10aの回転に伴う減速機11の弾性変形は徐々に小さくなる。その結果、減速機11の弾性変形がほぼ解消された状態となる。
以上のとおり、各可動部材C2〜C8の動作態様が「アプローチモード」に設定されている場合には、サーボモータ10の出力軸10aが目標回転角度θ1に応じて回転する/減速機11の弾性変形の分だけ出力軸10aの回転が戻される/再度、出力軸10aが目標回転角度θ1に応じて回転する、という一連の制御が行われる。これにより、減速機11の弾性変形がほぼ解消された状態で、第1アームC3の旋回位置を目標回転角度θ1に応じた位置に制御できる。
次に、ロボットRにおける各可動部材C2〜C8の動作態様が「軌跡移動モード」に設定されている場合の例を説明する。なお、補正変形角度Δ2が算出されるまでの制御は「アプローチモード」に設定されている場合と同様なので説明を省略する。
補正変形角度「2」が算出されると、その補正変形角度「2」が符号変更部34に入力される。今回の例の場合、各可動部材C2〜C8の動作態様が「軌跡移動モード」に設定されていて、符号情報S2として「符号反転する」という情報が含まれている。したがって、符号変更部34は、補正変形角度「2」の正負の符号を反転して、補正変形角度「−2」を出力する。
第3減算器35において目標回転角度「30」から補正変形角度「−2」が減算され、補正目標角度θ2として「32」が算出される。また、モータ回転角度αは「30」であるため、第4減算器37において位置偏差θ3として「2」が算出される。指令生成部38は位置偏差「2」に基づいて速度指令を生成する。すなわち、指令生成部38は、サーボモータ10の出力軸10aが既に回転していた「30」からさらに「2」角度回転して、モータ回転角度αが「32」となるような速度指令S1を生成する。また、新たにサーボモータ10の出力軸10aが「2」角度回転するのに応じて、減速機11の出力軸11aは「1」角度回転して、減速機回転角度β1は「14」、乗算値β2は「28」となる。なお、目標回転角度「30」と乗算値β2は「28」との差は、基準変形角度γに相当する。したがって、基準変形角度γの分を除けば、減速機11は、目標回転角度θ1に応じた回転角度位置に回転したことになる。
なお、上記一連の制御によっては、減速機11の変形は解消しない。そのため、補正変形角度Δ2として「2」が演算され、その後、補正目標角度θ2として再び「32」が演算される。したがって、補正目標角度θ2として「32」が演算されたあとは、目標回転角度θ1が変更されない限り、一連の制御が繰り返されても補正目標角度θ2は「32」のまま一定となる。その結果、モータ回転角度αは「32」で、減速機回転角度β1は「14」で、乗算値β2は「28」で一定となる。
以上のとおり、各可動部材C2〜C8の動作態様が「軌跡移動モード」に設定されている場合には、減速機11が弾性変形して出力軸11aの回転が不足した分だけ、サーボモータ10の出力軸10aが追加で回転される。その結果、減速機11の回転位置を目標回転角度θ1に応じた位置に制御できる。
(第1実施形態のロボット制御装置の特徴及び効果)
(1)第1実施形態では、仮に減速機11に弾性変形が生じてモータ回転角度αと減速機回転角度β1との間にずれが生じた場合には、そのずれは変形角度Δ1に反映される。そして、第1実施形態では、この変形角度Δ1に基づいて目標回転角度θ1をフィードバック補正して補正目標角度θ2を算出し、補正目標角度θ2に基づいて速度指令S1を生成する。したがって、減速機11の弾性変形の程度を検出できるとともに、その弾性変形に応じたより適切な制御を行うことができる。
(2)減速機11には、第1アームC3及びそれよりも先端側の第2〜第5アームC4〜C7、ツール固定部材C8及び溶接トーチC9の重量が作用する。そのため、第1アームC3が静止している状態でも、これらの重量によって減速機11に変形が生じ得る。上記実施形態では、変形角度Δ1から基準変形角度γを差し引いた補正変形角度Δ2に基づいて、目標回転角度θ1をフィードバック補正する。したがって、サーボモータ10の出力軸10aが回転することに伴う減速機11の弾性変形をより正確に反映したフィードバック補正が可能となる。
(3)第1実施形態では、目標回転角度θ1に補正変形角度Δ2を加算するか減算するかを切り換え可能である。したがって、可動部材C2〜C8の動作態様(動作モード)に応じて適切なフィードバック補正の態様を選択できる。しかも、補正変形角度Δ2を加算するか減算するかの切り換えを、符号変更部34が補正変形角度Δ2の正負の符号を反転するか否かによって行っている。したがって、補正変形角度Δ2を加算するか減算するかに応じて別個のアーム制御シークエンスを用意する必要がなく、同一のアーム制御シークエンスで補正変形角度Δ2を加算する場合及び減算する場合の両方に対応できる。
(4)減速機11に弾性変形が生じている場合、サーボモータ10が停止していても、その弾性変形に起因して減速機11の出力軸11aの角度位置に振動が生じる。そして、それに伴って第1アームC3が振動するとともに溶接トーチC9の先端が振動してしまう。特に、「アプローチモード」の場合に、溶接トーチC9の先端が振動していると溶接トーチC9の先端の位置がぶれてしまい、溶接トーチC9の先端を所定の位置で静止させることが困難になる。この点、第1実施形態では、「アプローチモード」の場合には、目標回転角度θ1から補正変形角度Δ2を減算して補正目標角度θ2を算出することで、減速機11における弾性変形が解消されるようにサーボモータ10を制御できる。したがって、減速機11の弾性変形に起因して溶接トーチC9の先端が振動して、その先端の位置がぶれてしまうことを抑制できる。
(5)溶接トーチC9の先端を所定の軌跡に沿って移動させる「軌跡移動モード」では、目標回転角度θ1が随時変更される。したがって、仮に、目標回転角度θ1を補正変形角度Δ2でフィードバック補正する際に過度に多数の制御サイクルが必要であると、フィードバック補正が目標回転角度θ1の変化に追従できず、適切なフィードバック補正を実行できないおそれがある。この点、第1実施形態では、「軌跡移動モード」の場合には、目標回転角度θ1から補正変形角度Δ2を加算して補正目標角度θ2を算出することで、減速機11が弾性変形して出力軸11aの回転が不足した分だけ、サーボモータ10の出力軸10aが追加で回転される。その結果、減速機11の出力軸11aの回転位置を目標回転角度θ1に応じた位置に制御できる。この一連の制御によれば、少ない制御サイクルでフィードバック補正が可能であるため、「軌跡移動モード」における目標回転角度θ1の変化に十分に対応できる。
(第2実施形態のロボット制御システムの構成及びアーム制御シークエンスの構成)
次に、ロボット制御装置RCの第2実施形態について説明する。第2実施形態のロボット制御装置RCの構成は、第1実施形態のロボット制御装置RCと同様である。ただし、第2実施形態のロボット制御装置RCにおいては、主制御部20の記憶部23に、変形量補正マップ及び符号情報が記憶されてなく、「アプローチモード用のアーム制御シークエンス」及び「軌跡移動モード用のアーム制御シークエンス」の2種類のアーム制御シークエンスが記憶されている。
なお、以下の説明では、第1アームC3を旋回動作させるためのサーボモータ10及び減速機11の制御を例として説明するが、他の可動部材C2、C4〜C8についても同様である。また、第1実施形態におけるアーム制御シークエンス(図2参照)と同一の構成については同一の符号を付して、その説明を簡略化又は省略することがある。
先ず、第2実施形態のロボット制御装置RCが実行する「アプローチモード用のアーム制御シークエンス」について説明する。
図3に示すように、乗算器31には、減速機回転角度β1及び乗算係数Kが入力される。乗算器31は、減速機回転角度β1と乗算係数Kとを乗算した乗算値β2を出力する。乗算値β2は、減速機回転角度β1をモータ回転角度αに換算した換算角度である。第1減算器32には、モータ回転角度αと乗算値β2とが入力される。第1減算器32は、モータ回転角度αから乗算値β2を減算した値を変形角度Δ1として出力する。この変形角度Δ1は、モータ回転角度α及び減速機回転角度β1の間の回転角度のずれを示すものである。
図3に示すように、第3減算器35には、目標回転角度θ1及び第1減算器32が出力した変形角度Δ1が入力される。第3減算器35は、目標回転角度θ1から変形角度Δ1を減算した補正目標角度θ2を出力する。したがって、第3減算器35は、変形角度Δ1(差分角度)に基づいて目標回転角度θ1をフィードバック補正する第2補正部として機能する。
図3に示すように、第4減算器37には、補正目標角度θ2及び乗算値β2が入力される。第4減算器37は、補正目標角度θ2から乗算値β2を減算して、位置偏差θ3を算出する。そして、指令生成部38は、位置偏差θ3に基づいて、新たな速度指令S1を生成し、その速度指令S1をサーボ制御部25に出力する。なお、乗算値β2は減速機回転角度β1に応じたものである。したがって、第4減算器37は、減速機回転角度β1に基づいて補正目標角度θ2をフィードバック補正する第1補正部として機能する。
次に、第2実施形態のロボット制御装置RCが実行する「軌跡移動モード用のアーム制御シークエンス」について説明する。
図3に示すように、乗算器31には、減速機回転角度β1及び乗算係数Kが入力される。乗算器31は、減速機回転角度β1と乗算係数Kとを乗算した乗算値β2を出力する。第4減算器37には、目標回転角度θ1及び乗算値β2が入力される。第4減算器37は、目標回転角度θ1から乗算値β2を減算して、位置偏差θ3を算出する。そして、指令生成部38は、位置偏差θ3に基づいて、新たな速度指令S1を生成し、その速度指令S1をサーボ制御部25に出力する。なお、第4減算器37は、「アプローチモード用のアーム制御シークエンス」と同様に、減速機回転角度β1に基づいて補正目標角度θ2をフィードバック補正する第1補正部として機能する。
(第2実施形態のロボット制御装置の作用)
第2実施形態のロボット制御装置RCにおけるアーム制御シークエンスの作用について、具体的な数値の例を挙げつつ説明する。なお、以下の説明では、減速機11の入力:出力の減速比が2:1であり、乗算係数Kが「2」であるものとする。また、第4減算器37(第1補正部)によるフィードバック補正が行われてサーボモータ10に適用される処理と、第3減算器35(第2補正部)によるフィードバック補正が行われてサーボモータ10に適用される処理とを分けて説明する。
先ず、ロボットRにおける各可動部材C2〜C8の動作態様が「アプローチモード」に設定されている場合の例を説明する。ロボットRの動作態様が「アプローチモード」である場合には、図3に示す「アプローチモード用のアーム制御シークエンス」に従って処理が実行される。
目標回転角度θ1として例えば「30」が設定されたとする。アーム制御シークエンスの初期段階では、変形角度Δ1が算出されてなく「0」である。また、サーボモータ10の出力軸10aが回転していないため、モータ回転角度αも「0」である。したがって、第4減算器37は、位置偏差θ3として「30」を出力する。
理想的には、サーボモータ10の出力軸10aのモータ回転角度αが「30」で、減速機11の出力軸11aの減速機回転角度β1が「15」になるはずである。しかし、制御ずれや減速機11の弾性変形により、モータ回転角度αや減速機回転角度β1にずれが生じることがある。ここでは、仮にサーボモータ10の出力軸10aのモータ回転角度αが「28」であり、減速機11の出力軸11aの減速機回転角度β1が「13」であるとする。この場合、乗算器31において「2」が乗算され、乗算値β2として「26」が算出される。そして、第4減算器37において、補正目標角度「30」から乗算値「26」からが減算され、位置偏差として「4」が演算される。指令生成部38は、位置偏差「4」に基づいて速度指令S1を生成する。すなわち、指令生成部38は、サーボモータ10の出力軸10aが既に回転していた「28」に加えてさらに「4」角度回転し、合わせてモータ回転角度αが「32」となるような速度指令S1を生成する。これに伴い減速機11の出力軸11aは既に回転していた「13」に加えて「2」角度回転し、減速機11の出力軸11aの減速機回転角度β1は「15」となる。その結果、乗算値β2は「30」となり、補正目標角度「30」と一致し、位置偏差θ3は「0」となる。これ以降の説明では、上記の一連の補正が終了しているものとする。
一方、第1減算器32は、モータ回転角度「32」から乗算値「30」を減算して、変形角度Δ1として「2」を算出する。第3減算器35は、目標回転角度「30」から変形角度「2」を減算して、補正目標角度θ2として「28」を算出する。第4減算器37は、補正目標角度「28」から乗算値「30」を減算して、位置偏差θ3として「−2」を出力する。指令生成部38は、位置偏差「−2」に基づいて速度指令S1を生成する。すなわち、指令生成部38は、サーボモータ10の出力軸10aが既に回転していた「32」から「2」逆回転するような速度指令S1を生成する。その結果、サーボモータ10の出力軸10aの回転に伴って生じた減速機11の弾性変形の分だけ、サーボモータ10の出力軸10aの回転が戻されて、モータ回転角度αが「32」から「30」となる。このとき、減速機11における弾性変形が解消される一方で、減速機11の出力軸11aは回転せず角度位置は「15」のままである。また、仮に減速機11の出力軸11aが変化したとしても、新たな位置偏差θ3が算出されて、減速機回転角度β1が「15」となるようにフィードバック補正される。
以上のとおり、各可動部材C2〜C8の動作態様が「アプローチモード」に設定されている場合には、減速機11の出力軸11aが目標回転角度θ1に応じて回転する/減速機11の出力軸11aの回転が不足した分だけ追加で回転される/減速機11の弾性変形の分だけ回転が戻される、という一連の制御が行われる。これにより、減速機11の弾性変形がほぼ解消された状態で、第1アームC3の旋回位置を目標回転角度θ1に応じた位置に制御できる。
次に、ロボットRにおける各可動部材C2〜C8の動作態様が「軌跡移動モード」に設定されている場合の例を説明する。ロボットRの動作態様が「軌跡移動モード」である場合には、図4に示す「軌跡移動モード用のアーム制御シークエンス」に従って処理が実行される。
目標回転角度θ1として例えば「30」が設定されたとする。アーム制御シークエンスの初期段階では、サーボモータ10の出力軸10aが回転していないため、モータ回転角度αも「0」である。したがって、第4減算器37は、位置偏差θ3として「30」を出力する。
理想的には、サーボモータ10の出力軸10aのモータ回転角度αが「30」で、減速機11の出力軸11aの減速機回転角度β1が「15」になるはずである。しかし、制御ずれや減速機11の弾性変形により、モータ回転角度αや減速機回転角度β1にずれが生じることがある。ここでは、仮にサーボモータ10の出力軸10aのモータ回転角度αが「28」であり、減速機11の出力軸11aの減速機回転角度β1が「13」であるとする。この場合、乗算器31において「2」が乗算され、乗算値β2として「26」が算出される。そして、第4減算器37において、目標回転角度「30」から乗算値「26」が減算され、位置偏差θ3として「4」が算出される。指令生成部38は、位置偏差「4」に基づいて速度指令S1を生成する。すなわち、指令生成部38は、サーボモータ10の出力軸10aが既に回転していた「28」に加えてさらに「4」角度回転し、合わせてモータ回転角度αが「32」となるような速度指令S1を生成する。これに伴い減速機11の出力軸11aは既に回転していた「13」に加えて「2」角度回転し、減速機11の出力軸11aの減速機回転角度β1は「15」となる。したがって、減速機回転角度β1は、目標回転角度θ1に減速比を加味した角度位置に位置することになる。なお、この「軌跡移動モード」の場合には、減速機11における弾性変形は解消しない。
以上のとおり、各可動部材C2〜C8の動作態様が「軌跡移動モード」に設定されている場合には、減速機11の出力軸11aにおける回転が不足した分だけ、減速機11の出力軸11aが追加で回転される。その結果、減速機11の回転位置を目標回転角度θ1に応じた位置に制御できる。
(第2実施形態のロボット制御装置の特徴及び効果)
第2実施形態では、第1実施形態における(1)の効果に加え、次の効果が得られる。
(6)第2実施形態では、「アプローチモード」の場合には、目標回転角度θ1から変形角度Δ1を減算して補正目標角度θ2を算出することで、減速機11における弾性変形が解消されるようにサーボモータ10を制御できる。したがって、減速機11の弾性変形に起因して溶接トーチC9の先端が振動して、その先端の位置がぶれてしまうことを抑制できる。
(7)第2実施形態では、「軌跡移動モード」の場合には、減速機11の出力軸11aにおける回転不足分として位置偏差θ3が算出される。すなわち、回転不足分だけ、減速機11の出力軸11aが追加で回転される。その結果、減速機11の出力軸11a回転位置を目標回転角度θ1に応じた位置に制御できる。この一連の制御によれば、少ない制御サイクルでフィードバック補正が可能であるため、「軌跡移動モード」における目標回転角度θ1の変化に十分に対応できる。
(8)第2実施形態では、減速機11の出力軸11aの角度位置、すなわち第1アームC3の位置をフィードバックして位置偏差θ3を算出している。そのため、仮に、減速機11の出力軸11aの角度位置に、減速機11に重量が作用して弾性変形が生じたことに伴うずれが生じても、そのずれを加味した制御が可能である。これによれば、第1実施形態の場合のように基準変形角度γを考慮しなくともよく、主制御部20の記憶部23に変形量補正マップ等を記憶させなくても済む。
(第3実施形態のロボット制御システムの構成及びアーム制御シークエンスの構成)
次に、ロボット制御装置RCの第3実施形態について説明する。第3実施形態のロボット制御装置RCの構成は、第1実施形態のロボット制御装置RCと同様である。ただし、第3実施形態のロボット制御装置RCにおいては、主制御部20の記憶部23に、符合情報が記憶されてなく、第1係数K1及び第2係数K2が記憶されている。第1係数K1は、予め定められた0以上1以下の定数であり、この第3実施形態では「1」が設定されている。また、第2係数K2は、予め定められた0以上1以下の定数であり、この第3実施形態では「0.5」が設定されている。
なお、以下の説明では、第1アームC3を旋回動作させるためのサーボモータ10及び減速機11の制御を例として説明するが、他の可動部材C2、C4〜C8についても同様である。また、第1実施形態におけるアーム制御シークエンス(図2参照)と同一の構成については同一の符号を付して、その説明を簡略化又は省略することがある。
図5に示すように、乗算器31には、減速機回転角度β1及び乗算係数Kが入力される。乗算器31は、減速機回転角度β1と乗算係数Kとを乗算した乗算値β2を出力する。乗算値β2は、減速機回転角度β1をモータ回転角度αに換算した換算角度である。第1減算器32には、モータ回転角度αと乗算値β2とが入力される。第1減算器32は、モータ回転角度αから乗算値β2を減算した値を変形角度Δ1として出力する。この変形角度Δ1は、モータ回転角度α及び減速機回転角度β1の間の回転角度のずれを示すものである。
図5に示すように、第2減算器33には、変形角度Δ1と基準変形角度γとが入力される。基準変形角度γは、一連のアーム制御シークエンス実行時の各可動部材C2〜C8の角度位置と記憶部23に記憶されている変形量補正マップに基づいて算出されるものである。第2減算器33は、変形角度Δ1から基準変形角度γを減算した値を、補正変形角度Δ2として出力する。このように第1減算器32及び第2減算器33は、モータ回転角度α及び減速機回転角度β1の間の回転角度のずれから基準変形角度γを差し引いて、差分角度としての補正変形角度Δ2を算出する算出部として機能する。
図5に示すように、ローパスフィルタ41には、補正変形角度Δ2が入力される。ローパスフィルタ41は、補正変形角度Δ2の経時的変化のうち、所定周波数未満の帯域のみをねじれ角度Δ3として出力し、所定周波数を超える帯域については遮断する。この第3実施形態では、ローパスフィルタ41は、1Hz未満の帯域のみをねじれ角度Δ3として出力する。
図5に示すように、ねじれ角度補正部42には、ねじれ角度Δ3と第1係数K1とが入力される。ねじれ角度補正部42は、ねじれ角度Δ3に第1係数K1として設定されている「1」を乗算した値を、補正ねじれ角度Δ4として出力する。加算器43には、補正ねじれ角度Δ4と目標回転角度θ1とが入力される。加算器43は、目標回転角度θ1に補正ねじれ角度Δ4を加算して、第1補正目標角度θ4として出力する。
一方、図5に示すように、バンドパスフィルタ46には、第2減算器33が出力した補正変形角度Δ2が入力される。バンドパスフィルタ46は、補正変形角度Δ2の経時的な変化のうち、ローパスフィルタ41の上限周波数を超える所定帯域のみを振動角度Δ5として出力し、他の帯域については遮断する。この第3実施形態では、バンドパスフィルタ46は、1Hz以上10Hz以下の帯域のみを振動角度Δ5として出力する。
図5に示すように、振動角度補正部47には、振動角度Δ5と第2係数K2とが入力される。振動角度補正部47は、振動角度Δ5に第2係数K2として設定されている「0.5」を乗算した値を、補正振動角度Δ6として出力する。第5減算器48には、補正振動角度Δ6と、上述した加算器43が出力した第1補正目標角度θ4とが入力される。第5減算器48は、第1補正目標角度θ4から補正振動角度Δ6を減算して、第2補正目標角度θ5として出力する。なお、ローパスフィルタ41、ねじれ角度補正部42、加算器43、バンドパスフィルタ46、振動角度補正部47、及び第5減算器48は、補正変形角度Δ2(差分角度)に基づいて目標回転角度θ1をフィードバック補正する第2補正部を構成するものである。
図5に示すように、第4減算器37には、第2補正目標角度θ5及びモータ回転角度αが入力される。第4減算器37は、第2補正目標角度θ5からモータ回転角度αを減算して、位置偏差θ3を算出する。そして、指令生成部38は、位置偏差θ3に基づいて、新たな速度指令S1を生成し、その速度指令S1をサーボ制御部25に出力する。なお、第4減算器37は、モータ回転角度αに基づいて補正目標角度θ2をフィードバック補正する第1補正部として機能する。
第3実施形態のロボット制御装置RCにおけるアーム制御シークエンスの作用について、具体的な数値の例を挙げつつ、図5に従って説明する。なお、以下の説明では、減速機11の入力:出力の減速比が2:1であり、乗算係数Kが「2」であるものとする。また、第4減算器37(第1補正部)によるフィードバック補正が行われてサーボモータ10に適用される処理と、ローパスフィルタ41、ねじれ角度補正部42、加算器43、バンドパスフィルタ46、振動角度補正部47、及び第5減算器48(第2補正部)によるフィードバック補正が行われてサーボモータ10に適用される処理とを分けて説明する。
目標回転角度θ1として例えば「30」が設定されたとする。アーム制御シークエンスの初期段階では、補正ねじれ角度Δ4及び補正振動角度Δ6が算出されてなく、いずれも「0」である。したがって、加算器43は、第1補正目標角度θ4として「30」を出力し、第5減算器48は、第2補正目標角度θ5として「30」を出力する。また、アーム制御シークエンスの初期段階では、サーボモータ10の出力軸10aが回転していないため、モータ回転角度αも「0」である。したがって、第4減算器37は、位置偏差θ3として「30」を出力する。そして、指令生成部38は、位置偏差「30」に基づいて速度指令S1を生成する。サーボ制御部25は、速度指令S1に基づいて、サーボモータ10の出力軸10aを「30」角度回転させるためのモータ制御電圧Vxを生成し、サーボモータ10に供給する。そして、サーボモータ10の出力軸10aは、モータ制御電圧Vxに応じて回転する。
ここで、仮にサーボモータ10の出力軸10aのモータ回転角度αが「28」であった場合、第4減算器37において第2補正目標角度「30」からモータ回転角度「28」が減算されて、位置偏差θ3として「2」が算出される。指令生成部38は、位置偏差「2」に基づいて速度指令S1を生成する。すなわち、指令生成部38は、サーボモータ10の出力軸10aが既に回転していた「28」に加えてさらに「2」角度回転し、合わせてモータ回転角度αが「30」となるような速度指令S1を生成する。その結果、モータ回転角度「30」と補正目標角度「30」とが一致し、補正目標角度θ2のとおりにサーボモータ10の出力軸10aが回転したことになる。これ以降の説明では、上記の一連の補正が終了しているものとする。
一方、サーボモータ10の出力軸10aが回転すると、それに応じて減速機11の出力軸11aも回転する。ここで、減速機11における減速機11の入力:出力の減速比は2:1である。したがって、モータ回転角度αが「30」であれば、理想的には、減速機回転角度β1は「15」となる。しかしながら、減速機11の歯車等に弾性変形が生じると、減速機回転角度β1が理想的な場合よりも小さくなることがある。ここでは、減速機回転角度β1として「13」が算出されたものとする。
減速機回転角度「13」が算出されるとそれに乗算係数「2」が乗算され、乗算値β2として「26」が算出される。そして、モータ回転角度「30」から乗算値「26」が減算され、変形角度Δ1として「4」が算出される。したがって、減速機11には、変形等が生じていない理想的な状態と比較して、モータ回転角度αに換算して、変形角度「4」角度分のずれが生じていることになる。このようにして算出された変形角度「4」の中には、サーボモータ10の出力軸10aが回転することに伴って生じる減速機11の弾性変形に加えて、各可動部材C2〜C8の重量によって生じる角度位置のずれである基準変形角度γも含まれる。ここでは、基準変形角度γが「2」であるものとする。そして、第2減算器33において、変形角度「4」から基準変形角度「2」が減算されて、補正変形角度Δ2として「2」が算出される。この補正変形角度Δ2は、サーボモータ10の出力軸10aが回転することに伴って生じる減速機11の弾性変形を反映したものである。
サーボモータ10の出力軸10aが回転することに伴って生じる減速機11の弾性変形は、第1アームC3(可動部材)の旋回開始、停止によって生じるものである。したがって、減速機11の弾性変形に伴う、サーボモータ10の出力軸10aと減速機11の出力軸11aとの間のねじれ角度は、数秒〜数十秒周期で変化することはあっても、1秒未満の単位で変化することは考えにくい。すなわち、ねじれ角度の変動周期は1Hz未満である。したがって、減速機11の弾性変形に伴って発生する補正変形角度Δ2は、ローパスフィルタ41を通過して、ローパスフィルタ41からねじれ角度Δ3として出力される。ここでは、ねじれ角度Δ3は、補正変形角度Δ2と同じ「2」である。ねじれ角度「2」が出力されると、ねじれ角度補正部42において第1係数K1が乗算される。ここでは、第1係数K1は「1」であるので、ねじれ角度補正部42において、補正ねじれ角度Δ4として「2」が算出される。補正ねじれ角度「2」が算出されると、加算器43において目標回転角度「30」に補正ねじれ角度「2」が加算され、第1補正目標角度θ4として「32」が算出される。そして、この段階では、補正振動角度Δ6は「0」であるので、第5減算器48において、第2補正目標角度θ5として「32」が算出される。
第2補正目標角度θ5として「32」が算出されると、第4減算器37においてモータ回転角度「30」が減算されて、位置偏差θ3として「2」が算出される。指令生成部38は位置偏差「2」に基づいて速度指令を生成する。すなわち、指令生成部38は、サーボモータ10の出力軸10aが既に回転していた「30」からさらに「2」角度回転して、モータ回転角度αが「32」となるような速度指令S1を生成する。また、新たにサーボモータ10の出力軸10aが「2」角度回転するのに応じて、減速機11の出力軸11aは「1」角度回転して、減速機回転角度β1は「14」、乗算値β2は「28」となる。なお、目標回転角度「30」と乗算値β2は「28」との差は、基準変形角度γに相当する。したがって、基準変形角度γの分を除けば、減速機11は、目標回転角度θ1に応じた回転角度位置に回転したことになる。
上記の一連の制御が行われると、減速機11が弾性変形したことに伴って過不足した分の角度が補償され、減速機11の出力軸11aの角度位置として所望の角度位置が得られる。しかしながら、減速機11の弾性変形そのものは解消していないため、その弾性変形した状態から戻ろうとする。仮に、サーボモータ10の出力軸10aの回転トルクが、減速機11の出力軸11aが弾性変形した状態から戻ろうとする力よりも小さくなると、減速機11の出力軸11aが弾性変形していない状態へと回転する。そして、減速機11の出力軸11aが回転すると、その勢いで出力軸11aが再び弾性変形する。すなわち、モータ回転角度αが一定であっても、減速機回転角度β1が、所定の角度位置を中心として経時的に増減する。
ここで、モータ回転角度αは、この時点では一定であり、また、基準変形角度γも各可動部材の姿勢等に応じて予め定められた定数である。そのため、上述したように減速機回転角度β1が経時的に変化すると、補正変形角度Δ2も経時的に増減する。ここでは、補正変形角度Δ2が「±2」の範囲内で経時的に増減するものとする。
上記の補正変形角度Δ2の増減は、減速機11の弾性変形に起因するものであり、その周期は比較的に短い。すなわち、補正変形角度Δ2の増減の振動角度の周波数は、1Hz以上である。したがって、減速機11の出力軸11aが弾性変形した状態から元に戻ろうとした結果生じる補正変形角度Δ2の「±2」の範囲内での経時的な振動は、バンドパスフィルタ46を通過して、振動角度Δ5として出力される。
振動角度Δ5が出力されると、振動角度補正部47において第2係数K2が乗算される。ここでは、第2係数K2は「0.5」であるので、振動角度補正部47において、補正振動角度Δ6として、「±1」の範囲内で経時的に増減する値が算出される。そして、第5減算器48において、第1補正目標角度θ4から、「±1」の範囲内で経時的に増減する補正振動角度Δ6が減算された値が、第2補正目標角度θ5として算出される。さらに、第4減算器37において、第2補正目標角度θ5からモータ回転角度αが減算された値が位置偏差θ3として算出される。このときの位置偏差θ3の増減は、変形角度Δ1の増減とはプラスマイナスが反対の逆相である。また、位置偏差θ3の増減の振幅は、変形角度Δ1の増減の振幅のおよそ半分である。したがって、指令生成部38は、減速機11の出力軸11aが弾性変形を解消しようと回転するのとは反対方向に、サーボモータ10の出力軸10aを回転させるような速度指令S1を出力する。その結果、減速機11の出力軸11aの回転角度の振動は、上記一連の制御を行わない場合に比較して、およそ半分に低減される。
なお、上記の説明では、補正ねじれ角度Δ4による目標回転角度θ1の補正と、補正振動角度Δ6による第1補正目標角度θ4(目標回転角度θ1)の補正とを分けて説明したが、実際には、第1アームC3等の動作に応じて、上記2つの補正が並行して行われる。
(第3実施形態のロボット制御装置の特徴及び効果)
第3実施形態では、第1実施形態における(1)及び(2)の効果に加え、次の効果が得られる。
(9)第3実施形態では、補正ねじれ角度Δ4を目標回転角度θ1に加算することで、減速機11の弾性変形に起因する出力軸11aの回転の過不足分をフィードバック補正できる。したがって、サーボモータ10の出力軸10aが回転することに伴う減速機11の弾性変形をより正確に反映したフィードバック補正が可能となる。
(10)第3実施形態では、補正振動角度Δ6を第1補正目標角度θ4(目標回転角度θ1)から減算することで、弾性変形した状態から元に戻ろうとする減速機11の出力軸11aの回転方向とは反対側に、サーボモータ10の出力軸10aを回転できる。したがって、減速機11の出力軸11aの回転角度の振動を相殺するようにサーボモータ10を制御することができる。その結果、出力軸11aの回転角度が振動することに伴って、ロボットRの各可動部材が振動することを抑制できる。
(11)第3実施形態では、補正変形角度Δ2をローパスフィルタ41及びバンドパスフィルタ46に入力させることにより、補正変形角度Δ2を、ねじれ角度Δ3と振動角度Δ5とに分けている。したがって、例えば、アーム制御シークエンスを状況に応じて切り替えなくても、減速機11の弾性変形に起因する出力軸11aの回転の過不足分のフィードバック補正と、減速機11が弾性変形を解消しようとして生じる出力軸11aの回転角度の振動抑制との双方を実現できる。
(12)第3実施形態では、ねじれ角度補正部42に入力される第1係数K1、及び振動角度補正部47に入力される第2係数K2を、それぞれ0以上1以下の範囲内で設定可能である。すなわち、減速機11の弾性変形をどの程度考慮してフィードバック補正するのか、減速機11の出力軸11aの回転角度の振動をどの程度抑制するのかを、それぞれ個別に設定できる。
(変更例)
上記第1実施形態〜第3実施形態は、以下のとおり変更することができる。また、各変更例を適宜組み合わせて適用することもできる。
・ロボットRの態様は上記各実施形態のものに限らない。例えば、各可動部材C2〜C8の数は7つに限らず、6つ以下でも8つ以上でもよい。また、各可動部材C2〜C8は、旋回動作するものに限らず、例えばスライド移動するものであってもよい。
・上記各実施形態のアーム制御シークエンスは、各可動部材C2〜C8を動作させるためのサーボモータすべてに適用される必要はない。例えば、第1アームC3を旋回させるサーボモータ10を制御するためのアーム制御シークエンスとして、上記実施形態のアーム制御シークエンスを適用し、他の可動部材を旋回させるサーボモータを制御するためのアーム制御シークエンスとして、例えば特許文献1に記載されている制御を適用してもよい。
・モータエンコーダ12及び減速機エンコーダ13は、各出力軸の回転角度を検出できるのであれば、インクリメントエンコーダに限らない。例えば、モータエンコーダ12及び減速機エンコーダ13として、アブソリュートエンコーダを適用してもよい。
・サーボモータ10の出力軸10aに対して、複数の減速機が直列的に接続されていてもよい。例えば、サーボモータ10の出力軸10aに第1の減速機が接続され、第1の減速機の出力軸に第2の減速機が接続されていてもよい。この場合、第1の減速機の出力軸の回転を減速機エンコーダで検出してもよいが、第2の減速機の出力軸の回転を減速機エンコーダで検出すれば、第1及び第2の減速機の弾性変形の総量が変形角度Δ1として算出されることになる。
・減速機11において弾性変形以外の要因で出力軸11aの角度位置にずれが生じることもある。例えば、減速機11の歯車が過度に摩耗すると、歯車が他の歯車と噛み合って回転する際にすべりが生じて設計どおりに歯車が回転しないことがある。このような歯車のすべりに起因して減速機11の出力軸11aの角度位置にずれが生じた場合、変形角度Δ1にそのずれが含まれることになる。
・第1実施形態及び第2実施形態において、「アプローチモード」及び「軌跡移動モード」の組み合わせは適宜変更できる。例えば、「アプローチモード」については第1実施形態の「アプローチモード」を実行しつつ、「軌跡移動モード」については第2実施形態の「軌跡移動モード」を実行してもよい。また、その逆に、「アプローチモード」については第2実施形態の「アプローチモード」を実行しつつ、「軌跡移動モード」については第1実施形態の「軌跡移動モード」を実行してもよい。
・ロボットRの各可動部材C2〜C8の動作モードは、上記各実施形態で例示した「アプローチモード」、「軌跡移動モード」に限らず、他のモードがあってもよい。例えば、「アプローチモード」と「軌跡移動モード」との間に、溶接トーチC9の先端を所定の位置で静止させつつ、上記各実施形態の「軌跡移動モード」と同じアーム制御シークエンスを行う「位置決めモード」があってもよい。これら一連の制御によれば、「アプローチモード」で減速機11の弾性変形を解消しつつ溶接トーチC9の先端を所定の位置に移動させ、「位置決めモード」で確実にその所定の位置で静止させ、その後、「軌跡移動モード」で迅速に加工等を行う、といった動作が可能になる。
このように、「アプローチモード」及び「軌跡移動モード」ではない「他のモード」を採用する場合にどのような制御を採用するのかは、「他のモード」において可動部材C2〜C8の振動抑制(先端位置のぶれ抑制)を優先するかフィードバックの応答性を優先するかによって決定すればよい。また、「他のモード」において上記実施形態で説明したものとは異なる制御が行われてもよい。
・第1減算器32、第2減算器33、第3減算器35、第4減算器37において、どちらの数値からどちらの数値を減算するかは、必ずしも上記実施形態の態様に限らない。例えば、第1減算器32において乗算値β2からモータ回転角度αを減算してもよい。この変更例で得られる変形角度Δ1は、上記実施形態で得られる変形角度Δ1とは正負の符号が逆になる。これに伴って、基準変形角度γの正負の符号を上記実施形態とは反対にしたり、符号変更部34における正負の符号を反転するか否かの判断を反対にしたりすれば、上記実施形態と同様の制御が行える。
・第1実施形態において各可動部材C2〜C8の角度位置と減速機11の出力軸11aの角度位置のずれとの関係を示すものは、上記実施形態で例示した変形量補正マップに限らない。例えば、表、演算式など、各可動部材C2〜C8の角度位置に基づき特定の基準変形角度γが得られるものであれば、その態様は問わない。
・第1実施形態の変形量補正マップにおいて、各可動部材C2〜C8の重量に加えて他の要因を考慮した基準変形角度γが得られるようにしてもよい。
・第1実施形態において、変形量補正マップに基づいて基準変形角度γを算出するのではなく、例えば、可動部材C2〜C8毎に、一定の基準変形角度γを用いてもよい。例えば、各可動部材C2〜C8の旋回範囲が特定の範囲に限られている場合、各減速機に作用する各可動部材C2〜C8の重量の重心位置や重量の作用方向も大きく変化しない。したがって、このような場合には、一定の基準変形角度γを用いても、制御の正確性を大きく損なわせることはない。
・第1実施形態において、第2減算器33を省略して、変形角度Δ1が符号変更部34に入力されるようにしてもよい。例えば、図1に示すロボットRを水平な面に設置した場合、第1回転軸心J1の方向が鉛直方向となる。したがって、出力軸が旋回台C2に固定されている減速機の歯車は、各可動部材C2〜C8の角度位置に拘わらず、常に水平方向に沿って横置きされている。このように、水平方向に沿って横置きされている歯車に、各可動部材C2〜C8の重量が作用しても、減速機の出力軸の回転位置がずれるような弾性変形が生じるとは考えにくい。また、例えば、各可動部材C2〜C8の重量が比較的に軽くて、且つ、減速機の歯車等が相応に剛性の高い材料で構成されていれば、弾性変形が生じても無視できるほど小さい。このような場合には、第2減算器33を省略しても、正確な制御を行うことができる。なお、第2減算器33を省略する場合には、基準変形角度γが不要になるため、記憶部23に記憶されている変形量補正マップも不要である。また、この変更例の場合は、変形角度Δ1が差分角度として機能する。
・第1実施形態において目標回転角度θ1から補正変形角度Δ2を減算するか加算するかの切り換えは、上記実施形態のような符号変更部34に限らない。例えば、第3減算器35に代えて、符号情報S2に応じて減算するか加算するかが切り換わる加減算器を適用してもよい。また、図2に示すアーム制御シークエンスにおいて符号変更部34を省略したものを「アプローチモード用のアーム制御シークエンス」とし、図2に示すアーム制御シークエンスにおいて符号変更部34を省略し、且つ第3減算器35に代えてを適用したものを「軌跡移動モード用のアーム制御シークエンス」とする。そして、各可動部材C2〜C8の動作モードに応じてどちらのアーム制御シークエンスを採用するかを切り換えてもよい。
・第1実施形態において目標回転角度θ1から補正変形角度Δ2を減算するか加算するかの切換制御そのものを省略することができる。例えば、旋回台C2を旋回させるサーボモータに関しては、常に、目標回転角度θ1に補正変形角度Δ2を加算するアーム制御シークエンス(上記第1実施形態でいう軌跡移動モードの制御)を適用し、ツール固定部材C8を旋回させるサーボモータに関しては、常に、目標回転角度θ1に補正変形角度Δ2を減算するアーム制御シークエンス(上記第1実施形態でいうアプローチモードの制御)を適用する、といった態様でもよい。
・第3実施形態において、ローパスフィルタ41が通過させる帯域は1Hz未満に限らない。ロボットRの各可動部材の構成や、各可動部材の動作態様に応じて適宜設定すればよい。また、バンドパスフィルタ46が通過させる帯域も、1Hz以上10Hz未満に限らない。減速機11に生じるであろう弾性変形の程度やそれを解消しようとする際に生じる出力軸11aの回転角度の振動の周期を実験的に求めるなどして、それに応じて通過させる帯域を決定すればよい。
・第3実施形態において、上述した第1係数K1及び第2係数K2は、説明の便宜上において例示した数値であり、0以上1以下の範囲内で適宜変更できる。また、第1係数K1及び第2係数K2は、ロボットR毎に固定である必要はなく、例えば、各可動部材の動作プログラムに応じて変更したり、ユーザの入力によって任意に変更できるようにしてもよい。
・さらに、第3実施形態において、ねじれ角度補正部42及び振動角度補正部47のいずれか又は両方を省略することも可能である。なお、この変更例の場合、上記第3実施形態において第1係数K1として「1」、第2係数K2として「1」を設定した場合と同じである。
・第3実施形態において、目標回転角度θ1から補正振動角度Δ6を減算し、その結果得られた補正目標角度にねじれ角度Δ4を加算するようにしてもよい。この場合でも、上で例示した第3実施形態と同様の効果が得られる。
(技術思想の追記)
上記実施形態及び変更例から導き出せる技術思想を以下に追記する。
・可動部材の動作態様が、当該可動部材を所定の位置に移動させた後その所定の位置で静止させるアプローチモードに設定されている場合、切換部は、目標回転角度から差分角度が減算されるように切り換える。
・可動部材の動作態様が、当該可動部材を所定の軌跡に沿って移動させる軌跡移動モードに設定されている場合、切換部は、目標回転角度から差分角度が加算されるように切り換える。