(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-15
(45)【発行日】2022-12-23
(54)【発明の名称】ロボット制御方法及びロボット制御装置
(51)【国際特許分類】
B25J 9/10 20060101AFI20221216BHJP
G05B 19/404 20060101ALI20221216BHJP
【FI】
B25J9/10 A
G05B19/404 G
(21)【出願番号】P 2020528715
(86)(22)【出願日】2019-05-23
(86)【国際出願番号】 JP2019020459
(87)【国際公開番号】W WO2020008751
(87)【国際公開日】2020-01-09
【審査請求日】2021-11-16
(31)【優先権主張番号】P 2018126187
(32)【優先日】2018-07-02
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】中田 広之
(72)【発明者】
【氏名】上田 紘義
(72)【発明者】
【氏名】橋本 敦実
(72)【発明者】
【氏名】山本 良祐
(72)【発明者】
【氏名】岩谷 正義
【審査官】亀田 貴志
(56)【参考文献】
【文献】米国特許第5804940(US,A)
【文献】特開平5-282019(JP,A)
【文献】特開平7-200018(JP,A)
【文献】特開2005-52913(JP,A)
【文献】特開2010-240827(JP,A)
【文献】特開2018-92357(JP,A)
【文献】特開平10-268916(JP,A)
【文献】特表2015-536249(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/00 - 9/22
B25J 13/00 - 13/08
G05B 19/18 - 19/46
(57)【特許請求の範囲】
【請求項1】
複数の関節部を有するロボットアームの動作を制御するためのロボット制御方法であって、
前記複数の関節部のうち、補正対象の該関節部の角速度を演算するステップと、
前記複数の関節部の位置指令に基づいて、前記補正対象の関節部にかかるトルクを演算するステップと、
前記補正対象の関節部の角速度に基づいて、該関節部の回転方向が反転する反転タイミングを演算するステップと、
前記トルクと前記反転タイミングとに基づいて、前記補正対象の関節部にかかる反転時トルクを演算するステップと、
前記反転時トルクと前記反転タイミングとに基づいて、該反転時トルクによって該補正対象の関節部で生じるねじれを補正するためのねじれ補正量及び補正時間を演算するステップとを備えたことを特徴とするロボット制御方法。
【請求項2】
請求項1において、
前記反転時トルクが所定の閾値よりも小さい場合には、前記補正対象の関節部で生じるバックラッシュを補正するためのバックラッシュ補正量に基づいて該関節部の位置指令を補正する一方、該反転時トルクが所定の閾値よりも大きい場合には、該バックラッシュ補正量と前記ねじれ補正量及び補正時間に基づいて該関節部の位置指令を補正するステップを備えたことを特徴とするロボット制御方法。
【請求項3】
請求項1又は2において、
前記ねじれ補正量及び補正時間を演算するステップでは、前記反転時トルクが大きいほど、該ねじれ補正量が大きく且つ該補正時間が短くなるように、該ねじれ補正量及び該補正時間が演算されることを特徴とするロボット制御方法。
【請求項4】
複数の関節部を有するロボットアームの動作を制御するためのロボット制御方法であって、
前記複数の関節部のうち補正対象の該関節部は、前記ロボットアームを旋回させる旋回軸であり、
前記旋回軸の位置指令に基づいて、該旋回軸の角速度を演算するステップと、
前記旋回軸の角速度に基づいて、該旋回軸の加速度を演算するステップと、
前記旋回軸の角速度に基づいて、該旋回軸の回転方向が反転する反転タイミングを演算するステップと、
前記旋回軸の加速度と前記反転タイミングとに基づいて、該旋回軸の反転時加速度を演算するステップと、
前記反転時加速度と前記反転タイミングとに基づいて、前記旋回軸の反転時に該旋回軸で生じるねじれを補正するためのねじれ補正量及び補正時間を演算するステップとを備えたことを特徴とするロボット制御方法。
【請求項5】
請求項4において、
前記反転時加速度が所定の閾値よりも小さい場合には、該旋回軸で生じるバックラッシュを補正するためのバックラッシュ補正量に基づいて該旋回軸の位置指令を補正する一方、該反転時加速度が所定の閾値よりも大きい場合には、該バックラッシュ補正量と前記ねじれ補正量及び補正時間に基づいて該旋回軸の位置指令を補正するステップを備えたことを特徴とするロボット制御方法。
【請求項6】
請求項4又は5において、
前記ねじれ補正量及び補正時間を演算するステップでは、前記反転時加速度が大きいほど、該ねじれ補正量が大きく且つ該補正時間が短くなるように、該ねじれ補正量及び該補正時間が演算されることを特徴とするロボット制御方法。
【請求項7】
複数の関節部を有するロボットアームの動作を制御するためのロボット制御装置であって、
前記複数の関節部のうち、補正対象の該関節部の角速度を演算する角速度演算部と、
前記複数の関節部の位置指令に基づいて、前記補正対象の関節部にかかるトルクを演算する動力学演算部と、
前記補正対象の関節部の角速度に基づいて、該関節部の回転方向が反転する反転タイミングを演算する反転タイミング演算部と、
前記トルクと前記反転タイミングとに基づいて、前記補正対象の関節部にかかる反転時トルクを演算する反転時トルク演算部と、
前記反転時トルクと前記反転タイミングとに基づいて、該反転時トルクによって該補正対象の関節部で生じるねじれを補正するためのねじれ補正量及び補正時間を演算する補正量演算部とを備えたことを特徴とするロボット制御装置。
【請求項8】
複数の関節部を有するロボットアームの動作を制御するためのロボット制御装置であって、
前記複数の関節部のうち補正対象の該関節部は、前記ロボットアームを旋回させる旋回軸であり、
前記旋回軸の位置指令に基づいて、該旋回軸の角速度を演算する角速度演算部と、
前記旋回軸の角速度に基づいて、該旋回軸の加速度を演算する加速度演算部と、
前記旋回軸の角速度に基づいて、該旋回軸の回転方向が反転する反転タイミングを演算する反転タイミング演算部と、
前記旋回軸の加速度と前記反転タイミングとに基づいて、該旋回軸の反転時加速度を演算する反転時加速度演算部と、
前記反転時加速度と前記反転タイミングとに基づいて、前記旋回軸の反転時に該旋回軸で生じるねじれを補正するためのねじれ補正量及び補正時間を演算する補正量演算部とを備えたことを特徴とするロボット制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御方法及びロボット制御装置に関するものである。
【背景技術】
【0002】
従来より、モータの回転方向を反転させたときに、制御数値の目標移動量と、テーブルやワークの相対的な移動量とが一致しなくなる、いわゆるバックラッシュ誤差が生じることが知られている(例えば、特許文献1参照)。
【0003】
特許文献1には、位置指令信号の増減方向反転後の経過時間に応じたレベル割合において補正後のステップ信号の大きさを削減し、これを位置補正信号(バックラッシュ情報)として出力することで、バックラッシュ補正を行うようにした構成が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、本願発明者らは、ロボットアームの位置ずれ、つまり、軌跡誤差が生じる要因として、バックラッシュ誤差の他にも、モータの回転速度が上昇すると、モータを反転させたときの反転時トルクが大きくなり、モータの減速機に瞬間的なねじれが加わって軌跡誤差が生じることを見出した。
【0006】
しかしながら、従来のバックラッシュ補正装置は、バックラッシュ誤差のみを補正するものであり、反転時トルクによるねじれの影響については何ら考慮されていないことから、ロボットアームの軌跡誤差が大きくなってしまうという問題がある。
【0007】
本発明は、かかる点に鑑みてなされたものであり、その目的は、ロボットアームの軌跡誤差を低減することにある。
【課題を解決するための手段】
【0008】
本開示の態様は、複数の関節部を有するロボットアームの動作を制御するためのロボット制御方法を対象とし、次のような解決手段を講じた。
【0009】
すなわち、第1の態様は、前記複数の関節部のうち、補正対象の該関節部の角速度を演算するステップと、
前記複数の関節部の位置指令に基づいて、前記補正対象の関節部にかかるトルクを演算するステップと、
前記補正対象の関節部の角速度に基づいて、該関節部の回転方向が反転する反転タイミングを演算するステップと、
前記トルクと前記反転タイミングとに基づいて、前記補正対象の関節部にかかる反転時トルクを演算するステップと、
前記反転時トルクと前記反転タイミングとに基づいて、該反転時トルクによって該補正対象の関節部で生じるねじれを補正するためのねじれ補正量及び補正時間を演算するステップとを備えたことを特徴とするものである。
【0010】
第1の態様では、補正対象の関節部で生じるねじれを補正するためのねじれ補正量及び補正時間を、反転時トルクと反転タイミングとに基づいて演算するようにしている。
【0011】
このように、補正対象の関節部で生じるねじれの影響を考慮した制御を行うことで、ロボットアームの軌跡誤差を低減することができる。
【0012】
第2の態様は、第1の態様において、
前記反転時トルクが所定の閾値よりも小さい場合には、前記補正対象の関節部で生じるバックラッシュを補正するためのバックラッシュ補正量に基づいて該関節部の位置指令を補正する一方、該反転時トルクが所定の閾値よりも大きい場合には、該バックラッシュ補正量と前記ねじれ補正量及び補正時間に基づいて該関節部の位置指令を補正するステップを備えたことを特徴とするものである。
【0013】
第2の態様では、反転時トルクが所定の閾値よりも小さい場合には、補正対象の関節部で生じるねじれの影響が小さいと判断して、関節部で生じるバックラッシュのみを補正するようにしている。そして、反転時トルクが所定の閾値よりも大きい場合には、補正対象の関節部で生じるバックラッシュに加えて、ねじれについても補正するようにしている。
【0014】
第3の態様は、第1又は第2の態様において、
前記ねじれ補正量及び補正時間を演算するステップでは、前記反転時トルクが大きいほど、該ねじれ補正量が大きく且つ該補正時間が短くなるように、該ねじれ補正量及び該補正時間が演算されることを特徴とするものである。
【0015】
第3の態様では、反転時トルクが大きいほど、ねじれ補正量を大きく且つ補正時間を短くするようにしている。これにより、関節部のねじれを効果的に低減して、ロボットアームの位置ずれを精度良く補正することができる。
【0016】
第4の態様は、複数の関節部を有するロボットアームの動作を制御するためのロボット制御方法を対象としている。そして、前記複数の関節部のうち補正対象の該関節部は、前記ロボットアームを旋回させる旋回軸であり、
前記旋回軸の位置指令に基づいて、該旋回軸の角速度を演算するステップと、
前記旋回軸の角速度に基づいて、該旋回軸の加速度を演算するステップと、
前記旋回軸の角速度に基づいて、該旋回軸の回転方向が反転する反転タイミングを演算するステップと、
前記旋回軸の加速度と前記反転タイミングとに基づいて、該旋回軸の反転時加速度を演算するステップと、
前記反転時加速度と前記反転タイミングとに基づいて、前記旋回軸の反転時に該旋回軸で生じるねじれを補正するためのねじれ補正量及び補正時間を演算するステップとを備えたことを特徴とするものである。
【0017】
第4の態様では、補正対象の関節部である旋回軸で生じるねじれを補正するためのねじれ補正量及び補正時間を、反転時加速度と反転タイミングとに基づいて演算するようにしている。
【0018】
このように、旋回軸で生じるねじれの影響を考慮した制御を行うことで、ロボットアームの軌跡誤差を低減することができる。
【0019】
また、ねじれ補正量及び補正時間を、反転時加速度に基づいて演算しているので、例えば、動力学トルクに基づいてねじれ補正量及び補正時間を演算する場合に比べて、演算量を減らすことができる。
【0020】
具体的に、動力学トルクは、関節部の軸に印加される全てのトルク(重力トルク、慣性力、遠心力、コリオリ力等)を含めて演算する必要がある。そのため、全軸の位置、速度、加速度、機械パラメータを用いて逆動力学演算を実行する必要があり、動力学トルクを正確に演算することができる反面、演算処理が重くなってしまう。
【0021】
ここで、本願発明者は、重力が印加されない旋回軸については、動力学トルクの主要成分が自軸の慣性力となることに着目した。そして、旋回軸のみについて、反転時加速度に基づいてねじれ補正量及び補正時間を演算するようにしたから、演算量を減らすことができる。
【0022】
第5の態様は、第4の態様において、
前記反転時加速度が所定の閾値よりも小さい場合には、該旋回軸で生じるバックラッシュを補正するためのバックラッシュ補正量に基づいて該旋回軸の位置指令を補正する一方、該反転時加速度が所定の閾値よりも大きい場合には、該バックラッシュ補正量と前記ねじれ補正量及び補正時間に基づいて該旋回軸の位置指令を補正するステップを備えたことを特徴とするものである。
【0023】
第5の態様では、反転時加速度が所定の閾値よりも小さい場合には、旋回軸で生じるねじれの影響が小さいと判断して、旋回軸で生じるバックラッシュのみを補正するようにしている。そして、反転時加速度が所定の閾値よりも大きい場合には、旋回軸で生じるバックラッシュに加えて、ねじれについても補正するようにしている。
【0024】
第6の態様は、第4又は第5の態様において、
前記ねじれ補正量及び補正時間を演算するステップでは、前記反転時加速度が大きいほど、該ねじれ補正量が大きく且つ該補正時間が短くなるように、該ねじれ補正量及び該補正時間が演算されることを特徴とするものである。
【0025】
第6の態様では、反転時加速度が大きいほど、ねじれ補正量を大きく且つ補正時間を短くするようにしている。これにより、旋回軸のねじれを効果的に低減して、ロボットアームの位置ずれを精度良く補正することができる。
【0026】
第7の態様は、複数の関節部を有するロボットアームの動作を制御するためのロボット制御装置を対象としている。そして、前記複数の関節部のうち、補正対象の該関節部の角速度を演算する角速度演算部と、
前記複数の関節部の位置指令に基づいて、前記補正対象の関節部にかかるトルクを演算する動力学演算部と、
前記補正対象の関節部の角速度に基づいて、該関節部の回転方向が反転する反転タイミングを演算する反転タイミング演算部と、
前記トルクと前記反転タイミングとに基づいて、前記補正対象の関節部にかかる反転時トルクを演算する反転時トルク演算部と、
前記反転時トルクと前記反転タイミングとに基づいて、該反転時トルクによって該補正対象の関節部で生じるねじれを補正するためのねじれ補正量及び補正時間を演算する補正量演算部とを備えたことを特徴とするものである。
【0027】
第7の態様では、補正対象の関節部で生じるねじれを補正するためのねじれ補正量及び補正時間を、反転時トルクと反転タイミングとに基づいて演算するようにしている。
【0028】
このように、補正対象の関節部で生じるねじれの影響を考慮した制御を行うことで、ロボットアームの軌跡誤差を低減することができる。
【0029】
第8の態様は、複数の関節部を有するロボットアームの動作を制御するためのロボット制御装置を対象としている。そして、前記複数の関節部のうち補正対象の該関節部は、前記ロボットアームを旋回させる旋回軸であり、
前記旋回軸の位置指令に基づいて、該旋回軸の角速度を演算する角速度演算部と、
前記旋回軸の角速度に基づいて、該旋回軸の加速度を演算する加速度演算部と、
前記旋回軸の角速度に基づいて、該旋回軸の回転方向が反転する反転タイミングを演算する反転タイミング演算部と、
前記旋回軸の加速度と前記反転タイミングとに基づいて、該旋回軸の反転時加速度を演算する反転時加速度演算部と、
前記反転時加速度と前記反転タイミングとに基づいて、前記旋回軸の反転時に該旋回軸で生じるねじれを補正するためのねじれ補正量及び補正時間を演算する補正量演算部とを備えたことを特徴とするものである。
【0030】
第8の態様では、補正対象の関節部である旋回軸で生じるねじれを補正するためのねじれ補正量及び補正時間を、反転時加速度と反転タイミングとに基づいて演算するようにしている。
【0031】
このように、旋回軸で生じるねじれの影響を考慮した制御を行うことで、ロボットアームの軌跡誤差を低減することができる。
【0032】
また、ねじれ補正量及び補正時間を、反転時加速度に基づいて演算しているので、例えば、動力学トルクに基づいてねじれ補正量を演算する場合に比べて、演算量を減らすことができる。
【発明の効果】
【0033】
本開示の態様によれば、ロボットアームの軌跡誤差を低減することができる。
【図面の簡単な説明】
【0034】
【
図1】
図1は、本実施形態1に係るロボットの構成を示す図である。
【
図2】
図2は、反転時トルクが所定の閾値よりも小さいときの軌跡ずれを示す図である。
【
図3】
図3は、軌跡ずれをバックラッシュ補正量のみで補正するときの図である。
【
図6A】
図6Aは、指令速度成分の変化を示すグラフ図である。
【
図6B】
図6Bは、動力学トルクの変化を示すグラフ図である。
【
図7】
図7は、反転時トルクが所定の閾値よりも大きいときの軌跡ずれを示す図である。
【
図8】
図8は、軌跡ずれをバックラッシュ補正量のみで補正するときの図である。
【
図12】
図12は、ロボットの位置制御に関する機能ブロック図である。
【
図13】
図13は、ロボットアームにおける減速機のねじれを説明する図である。
【
図15】
図15は、バックラッシュ補正ブロックのブロック線図である。
【
図16】
図16は、反転時トルクが所定の閾値よりも大きいときの軌跡ずれを示す図である。
【
図17】
図17は、軌跡ずれをバックラッシュ補正量とねじれ補正量とで補正するときの図である。
【
図21】
図21は、反転時トルクとねじれ補正量との関係を示すグラフ図である。
【
図22】
図22は、反転時トルクと補正時間との関係を示すグラフ図である。
【
図24】
図24は、本実施形態2に係るロボット制御装置のブロック線図である。
【
図25】
図25は、バックラッシュ補正ブロックのブロック線図である。
【
図27】
図27は、速度反転時加速度とねじれ補正量との関係を示すグラフ図である。
【
図28】
図28は、速度反転時加速度と補正時間との関係を示すグラフ図である。
【発明を実施するための形態】
【0035】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
【0036】
《実施形態1》
図1に示すように、垂直多関節型のロボット1は、ロボットアーム2と、複数の関節部J1~J6とを有している。ロボット1には、ロボット制御装置20が接続されている。
【0037】
ロボットアーム2は、複数の部分に分かれており、各部分の連結部に関節部J1~J6がそれぞれ設けられている。また、関節部J1~J6には、それぞれ減速機13を介してサーボモータ12が連結している(
図12参照)。
【0038】
サーボモータ12は、ロボット制御装置20からの位置指令θcに基づいて駆動して、関節部J1~J6をそれぞれ所望の量だけ回転させることで、ロボットアーム2の動作及び姿勢を制御する。
【0039】
ここで、関節部J1~J3は、ロボットアーム2の全体の姿勢を決める主軸3軸であり、関節部J4~J6は、ロボットアーム2の先端の方向を決める手首3軸である。関節部J1は、ロボットアーム2を旋回させる旋回軸である。
【0040】
以下、ロボットアーム2の先端に図示しないレーザ出力装置を装着し、レーザ光を照射してワークを切断する作業を行う場合について、説明する。
【0041】
図2に示すように、例えば、直径10mmの円を0.2m/分で切断する作業を仮定する。
図2に示す例では、0°の位置から反時計回り方向に円軌道でレーザ切断を行うものとする。
【0042】
ここで、関節部J1のモータ12の回転方向は、ロボットアーム2の先端が、
図2で90°と270°の位置に到達するタイミングでそれぞれ反転する。そのため、90°と270°の位置で、それぞれバックラッシュ誤差が発生する。
【0043】
具体的に、実軌跡は、
図2で反転位置よりも右側の部分、つまり、270°から90°の位置までの半円部分が、直径自体は変化しないで下方向にシフトした軌跡となる。
【0044】
また、
図2で反転位置よりも左側の部分、つまり、90°から270°の位置までの半円部分が、直径自体は変化しないで上方向にシフトした軌跡となる。
【0045】
このように、実軌跡は、
図2で反転位置よりも右側が下方向にシフトし、反転位置よりも左側が上方向にシフトした軌跡となっている。
【0046】
そこで、
図3に示すように、位置指令に対してバックラッシュ補正量を加算又は減算することで、実軌跡が目標軌跡に近付くように補正する。具体的には、0°から90°位置、及び270°から360°(0°)位置にかけて、バックラッシュ補正量(以下、「補正量1」とも呼ぶ)を位置指令に加算して、
図3で上方向にシフトさせた位置指令に補正する。
【0047】
一方、90°から270°位置にかけて、補正量1(θBL1)を位置指令から減算して、
図3で下方向にシフトさせた位置指令に補正する。
【0048】
このように、
図4に示すような補正加算指令を与えることで、ロボットアーム2の実軌跡が円軌道となるように補正することができる。
【0049】
以下、
図5A及び
図5Bに示す測定波形を参照しながら、補正前後で軌跡ずれがどの程度変化したかについて説明する。なお、
図5A及び
図5Bに示す測定波形では、誤差形状を明確にするために、誤差を5倍に拡大(デフォルメ)して表示している。
図5Aは、バックラッシュ補正を行わない場合の、目標軌跡と実軌跡との最大誤差を示している。
図5Aに示す例では、最大誤差が0.115mmとなっている。
【0050】
一方、
図5Bに示すように、バックラッシュ補正を行った場合には、最大誤差が0.072mmに低減されていることが分かる。
【0051】
ところで、直径10mmの円を0.2m/分で切断する作業では、指令速度成分、動力学トルク、補正量の時間変化は、
図6A~
図6Cに示すグラフ図で表される。
【0052】
ここで、直径10mmの円を0.2m/分で切断する条件下では、レーザ切断速度が比較的緩やかであるため、
図6Bに示すように、反転時トルクτdirが、所定のトルク閾値τthを越えることはない。
【0053】
しかしながら、レーザ切断速度が上昇すると、反転時トルクτdirがトルク閾値τthを越える場合がある。この場合には、バックラッシュ補正を行っただけでは、ロボットアーム2の軌跡誤差を精度良く低減することができない。以下、この点について具体的に説明する。
【0054】
図7に示すように、例えば、直径10mmの円を2m/分で切断する作業を仮定する。
図7に示す例では、0°の位置から反時計回り方向に円軌道でレーザ切断を行うものとする。
【0055】
ここで、関節部J1のモータ12の回転方向は、ロボットアーム2の先端が、
図7で90°と270°の位置に到達するタイミングでそれぞれ反転する。そのため、90°と270°の位置で、それぞれバックラッシュ誤差が発生する。
【0056】
具体的に、実軌跡は、上述した
図2に示す例と同様に、
図7で反転位置よりも右側が下方向にシフトし、反転位置よりも左側が上方向にシフトした軌跡となっている。
【0057】
そして、
図7に示す例では、モータ12の回転速度が速いため、反転時トルクが大きくなって所定のトルク閾値を超えることとなる(
図11Bも参照)。そのため、モータ12の減速機13にねじれが生じてしまう。そして、ねじれに起因して、反転後の軌跡ずれが、上述した
図2に示す例よりも大きくなっている。
【0058】
特に、主軸である関節部J1の回転位置は、ロボットアーム2の先端までの距離が長いので、関節部J1に連結した減速機13が少しでもねじれると、関節部J1の回転中心位置が揺動し、ロボットアーム2の先端が描く軌跡に影響を与える。
【0059】
ここで、上述したのと同様に、0°から90°位置、及び270°から360°(0°)位置にかけて、補正量1(θBL1)を位置指令に加算して、
図8で上方向にシフトさせた位置指令に補正する。
【0060】
一方、90°から270°位置にかけて、補正量1(θBL1)を位置指令から減算して、
図8で下方向にシフトさせた位置指令に補正する。
【0061】
しかしながら、
図8に示す例では、バックラッシュ誤差に加えて、ねじれ誤差が生じているので、
図9に示すようなバックラッシュ補正のみを行うように補正加算指令を与えても、ロボットアーム2の実軌跡が円軌道とはならず、反転後の位置において円軌道の一部が膨らんだ形状となっている。
【0062】
以下、
図10A及び
図10Bに示す測定波形を参照しながら、補正前後で軌跡ずれがどの程度変化したかについて説明する。なお、
図10A及び
図10Bに示す測定波形では、誤差形状を明確にするために、誤差を5倍に拡大(デフォルメ)して表示している。
図10Aは、バックラッシュ補正を行わない場合の、目標軌跡と実軌跡との最大誤差を示している。
図10Aに示す例では、最大誤差が0.183mmとなっている。
【0063】
一方、
図10Bに示すように、バックラッシュ補正を行った場合には、最大誤差が0.155mmとなっており、軌跡ずれを十分に低減できていないことが分かる。
【0064】
ところで、直径10mmの円を2m/分で切断する作業では、指令速度成分、動力学トルク、補正量の時間変化は、
図11A~
図11Cに示すグラフ図で表される。
【0065】
ここで、直径10mmの円を2m/分で切断する条件下では、レーザ切断速度が速いため、
図11Bに示すように、反転時トルクτdirが所定のトルク閾値τthを越えている。
【0066】
そこで、本実施形態では、反転時トルクが所定の閾値よりも大きい場合に、バックラッシュ補正に加えて、ねじれ補正を行うことで、ロボットアーム2の軌跡誤差を低減できるようにした。なお、このような補正の具体的な手順については、後述する。
【0067】
〈多関節ロボット及びその制御系の構成〉
図12は、ロボットの位置制御に関する機能ブロック図であり、ロボットメカ11とロボット制御装置20の内部構成の概略を示す。
【0068】
図12に示すように、ロボットメカ11は、ロボット1の機械的駆動部であり、サーボモータ12(以下、単にモータという)と、減速機13と、エンコーダ14とを有している。また、図示しないがロボットアーム2を含んでいる。
【0069】
モータ12は、減速機13を介してロボット1の関節部J1~J6にそれぞれ連結されており、ロボット制御装置20のサーボ制御部23から送られる制御信号により関節部J1~J6を駆動し、ロボットアーム2の動作及ぶ姿勢を制御する。ロボット1では、関節部J1~J6を動作させて、ロボットアーム2の先端で円や楕円等の所望の軌道を描くことができる。
【0070】
エンコーダ14は、モータ12に接続され、その回転量や回転速度を検出して、検出信号がフィードバック信号としてサーボ制御部23に送られる。
【0071】
なお、以降の説明において、関節部J1に連結されたモータ12と減速機13とエンコーダ14とを、それぞれ「第1のモータ」、「第1の減速機」、「第1のエンコーダ」と呼ぶことがあり、関節部J2~J6に連結されたモータ等を「第2~第6のモータ」等と呼ぶことがある。
【0072】
また、第1のモータに接続されたサーボ制御部23とバックラッシュ補正ブロック25とを、それぞれ「第1のサーボ制御部」、「第1のバックラッシュ補正ブロック」と呼ぶことがあり、第2~第6のモータ12に接続されたサーボ制御部23と第2~第6のサーボ制御部23に接続されたバックラッシュ補正ブロック25とを、それぞれ「第2~第6のサーボ制御部」、「第2~第6のバックラッシュ補正ブロック」と呼ぶことがある。
【0073】
また、各軸に送られる位置指令や位置指令補正値を、位置指令θ1c~θ6cや位置指令補正値θ1BL~θ6BLと呼ぶことがある。
【0074】
ロボット制御装置20は、操作・教示部21と、メイン制御部22と、サーボ制御部23と、バックラッシュ補正ブロック25とを有している。
【0075】
操作・教示部21は、例えば、ティーチング時に取得されたロボットアーム2の軌跡及び、この軌跡を描くための各モータ12の回転動作等を記憶する。
【0076】
メイン制御部22は、操作・教示部21からの指示を受け、操作・教示部21に記憶されたロボットメカ11のロボットアーム2等の移動の軌跡に従い、ロボット1の各軸J1~J6の位置指令θ1c~θ6cをそれぞれ出力する。
【0077】
サーボ制御部23は、メイン制御部22から送られた位置指令θ1c~θ6cに追従するように、ロボットメカ11内の第1~第6のモータ12の回転動作をそれぞれ制御する。
【0078】
バックラッシュ補正ブロック25は、関節部J1~J6に対応して、メイン制御部22と、各サーボ制御部23との間にそれぞれ設けられている。バックラッシュ補正ブロック25は、メイン制御部22から受け取った位置指令θ1c~θ6cに基づいて、位置指令補正値θ1BL~θ6BLを生成する。生成された位置指令補正値θ1Bl~θ6BLは、対応する位置指令θ1c~θ6cに加算されて第1~第5のサーボ制御部23にそれぞれ送られる。
【0079】
なお、ロボット制御装置20内の各機能ブロックは、それぞれ独立の回路で構成されていてもよいし、一つの集積回路で構成されていてもよい。一部の機能ブロックの組み合わせを一つの集積回路で構成してもよい。
【0080】
また、メイン制御部22、サーボ制御部23、バックラッシュ補正ブロック25の機能は、ソフトウェアで記述されたプログラムをCPU等の集積回路上で実行して概ね実現される。
【0081】
図13は、ロボットメカ11から、モータ12と、減速機13と、これらに連結されるロボットアーム2の一部を負荷30として抽出した図である。
【0082】
負荷30は、モータ取り付けベースとなる第1アーム31と、第1アーム31に連結されたモータ12と、モータ12に連結された1次側32とベアリング34を有する2次側33とを含む減速機13と、減速機13の2次側33に回転可能に連結された第2アーム35とを含んでいる。
【0083】
減速機1次側32は、モータ12の回転軸を介してモータ12のロータ36に結合され、サーボ制御部23から送られたモータ回転位置θMの分だけ回転する。減速機13は、モータ回転位置θMを、減速比Rgでアーム回転位置θLに変換する。減速機13は、減速機1次側32と減速機2次側33のと間にバネ成分37が存在する。
【0084】
なお、位置指令θcは、各軸の回転角度量を指示する角度指令を示し、実位置θLは、実際に各軸が回転した回転角度量を示す。
【0085】
〈多関節ロボットの制御ブロックの詳細構成〉
図14は、第1のサーボ制御部のブロック線図を示す。
図14に示すように、サーボ制御部23の位置制御ブロック50において、位置指令θcとバックラッシュ補正ブロック25から出力されるバックラッシュ補正値θBLとを加算した値からモータ位置θMを差分し、位置比例ゲインKppを乗じて速度指令ωcpを生成する。モータ位置θMは、位置検出器である第1のエンコーダ14での検出信号より得られる。
【0086】
なお、以降の説明において、第1のサーボ制御部23の構成等を例にとって説明するが、第2~第5のサーボ制御部23についても同様である。
【0087】
速度制御ブロック51において、速度指令ωcpからモータ位置θMを微分して得られるモータ速度ωMを差分した値に速度比例ゲインKpsを乗じた値と、当該差分値を積分して速度積分ゲインKiを乗じた値とを加算して、第1のモータ12に流す電流IMを演算する。電流IMは、負荷30に入力される。
【0088】
負荷30において、IMはモータ12を駆動するモータ電流指令、Ktはモータ12のトルク定数、1/Rgは減速比の逆数、Ksは減速機13のバネ定数、θsは減速機1次側32と減速機2次側33との間に発生するねじれ量、τddynはロボットアーム2に加わる動力学トルクである。
【0089】
モータ伝達関数40及び負荷伝達関数41は、それぞれの物理現象を数式化(モデル化)したものである。
【0090】
モータ伝達関数40において、JMはモータ12のロータ36と減速機1次側32とを合わせた回転軸回りの慣性モーメント、DMは粘性摩擦係数である。
【0091】
負荷伝達関数41において、JLは第2アーム35と減速機2次側33とを合わせた回転軸回りの慣性モーメント、DLは粘性摩擦係数である。
【0092】
なお、
図14は、負荷及び減速機が連結されたモータの一般的な制御ブロック線図であるため、上記以外の機能の詳細説明は省略する。
【0093】
図15は、バックラッシュ補正ブロックの詳細構成を示す。バックラッシュ補正ブロック25は、動力学演算ブロック60と、角速度演算ブロック61と、指令速度成分反転検出ブロック62と、反転時トルク検出ブロック63と、バックラッシュ補正量演算ブロック64とを有している。
【0094】
動力学演算ブロック60では、全軸に対してメイン制御部22から送られた位置指令θ1c~θ6cを用い、動力学トルクτdynを演算する。動力学演算ブロック60では、全軸の位置指令θ1c~θ6及びその微分値である速度成分、2階微分値である加速度成分から動力学演算を行い、各軸にかかる動力学トルクτdynを演算している。
【0095】
補正対象である関節部J1の位置指令θ1cは、角速度演算ブロック61において、その微分値である角速度成分dθcが演算され、指令速度成分反転検出ブロック62に入力される。指令速度成分反転検出ブロック62では、角速度成分dθcに基づいて、反転タイミングdirが演算される。反転タイミングdirは、反転時トルク検出ブロック63と、バックラッシュ補正量演算ブロック64に入力される。
【0096】
反転時トルク検出ブロック63では、動力学トルクτdynと、反転タイミングdirとに基づいて、反転時トルクτdirが演算される。
【0097】
バックラッシュ補正量演算ブロック64では、動力学トルクτdynと、反転時トルクτdirと、反転タイミングdirとに基づいて、関節部J1の補正量θ1BLが演算される。
【0098】
なお、バックラッシュ補正のみを行う場合には、例えば、
図6Cに示すバックラッシュ補正量(補正量1(θBL1))を含む波形が補正量θ1BLとして出力される。ここで、バックラッシュ補正量は、実験などによって予め決められた値である。
【0099】
一方、バックラッシュ補正及びねじれ補正を行う場合には、例えば、後述する
図20Cに示す補正量1(θBL1)、ねじれ補正量(補正量2(θBL2))、及び補正時間tBL2の波形が補正量θ1BLとして出力される。
【0100】
そして、メイン制御部22から第1のサーボ制御部23に送られる位置指令θ1cに、バックラッシュ補正量演算ブロック64で演算された補正量θ1BLが加味された新たな位置指令が第1のサーボ制御部23に入力され、第1のサーボ制御部23によって第1のモータ12の駆動が制御される。
【0101】
第1のサーボ制御部23では、反転時トルクτdirの大きさに応じて、補正量を調整するようにしている。具体的に、上述した直径10mmの円を0.2m/分で切断する作業(
図2参照)であれば、反転時トルクτdirが所定のトルク閾値τthよりも小さい(
図6B参照)ので、関節部J1に生じるねじれの影響が小さく、バックラッシュ補正のみを行うようにすればよい。
【0102】
一方、上述した直径10mmの円を2m/分で切断する作業(
図7参照)であれば、反転時トルクτdirが所定のトルク閾値τthよりも大きい(
図11B参照)ので、関節部J1に生じるねじれの影響が大きく、バックラッシュ補正に加えて、ねじれ補正も行う必要がある。
【0103】
図16に示すように、例えば、直径10mmの円を2m/分で切断する作業を仮定する。
図16に示す例では、0°の位置から反時計回り方向に円軌道でレーザ切断を行うものとする。
【0104】
ここで、関節部J1のモータ12の回転方向は、ロボットアーム2の先端が、
図16で90°と270°の位置に到達するタイミングでそれぞれ反転する。そのため、90°と270°の位置で、それぞれバックラッシュ誤差が発生する。
【0105】
具体的に、実軌跡は、上述した
図7に示す例と同様に、
図16で反転位置よりも右側が下方向にシフトし、反転位置よりも左側が上方向にシフトした軌跡となっている。
【0106】
そして、
図16に示す例では、モータ12の回転速度が速いため、反転時トルクが大きくなって所定のトルク閾値を超えてしまう(
図20Bも参照)。そのため、モータ12の減速機13にねじれが生じてしまい、このねじれの影響により、反転後の軌跡ずれがさらに大きくなっている。
【0107】
そこで、
図17に示すように、位置指令に対して、バックラッシュ補正量(補正量1)及びねじれ補正量(以下、「補正量2」と呼ぶ)を加算又は減算することで、実軌跡が目標軌跡に近付くように補正する。
【0108】
まず、0°から90°位置にかけて、補正量1(θBL1)を位置指令に加算して、
図17で上方向にシフトさせた位置指令に補正する。
【0109】
また、90°から270°位置にかけて、補正量1(θBL1)を位置指令から減算して、
図17で下方向にシフトさせた位置指令に補正する。このとき、モータ12の反転直後である90°から180°の区間において、モータ12の反転後、所定の補正時間tBL2が経過するまでの間は、補正量1(θBL1)よりも大きな補正量2(θBL2)を位置指令から減算して、さらに下方向にシフトさせた位置指令に補正する。
【0110】
また、270°から360°(0°)位置にかけて、補正量1(θBL1)を位置指令に加算して、
図17で上方向にシフトさせた位置指令に補正する。このとき、モータ12の反転直後である270°から360°(0°)の区間において、モータ12の反転後、所定の補正時間tBL2が経過するまでの間は、補正量1(θBL1)よりも大きな補正量2(θBL2)を位置指令に加算して、さらに上方向にシフトさせた位置指令に補正する。
【0111】
このように、
図18に示すような補正加算指令を与えることで、ロボットアーム2の実軌跡が円軌道となるように補正することができる。
【0112】
以下、
図19A及び
図19Bに示す測定波形を参照しながら、補正前後で軌跡ずれがどの程度変化したかについて説明する。なお、
図19A及び
図19Bに示す測定波形では、誤差形状を明確にするために、誤差を5倍に拡大(デフォルメ)して表示している。
図19Aは、バックラッシュ補正を行わない場合の、目標軌跡と実軌跡との最大誤差を示している。
図19Aに示す例では、最大誤差が0.183mmとなっている。
【0113】
一方、
図19Bに示すように、バックラッシュ補正を行った場合には、最大誤差が0.089mmに低減されていることが分かる。
【0114】
ここで、直径10mmの円を2m/分で切断する作業では、指令速度成分、動力学トルク、補正量の時間変化は、
図20A~
図20Cに示すグラフ図で表される。
【0115】
このように、直径10mmの円を2m/分で切断する条件下では、レーザ切断速度が速いため、
図20Bに示すように、反転時トルクτdirが所定のトルク閾値τthを越えている。
【0116】
ところで、
図21に示すように、反転時トルクτdirとねじれ補正量である補正量2(θBL2)とは、反転時トルクτdirが大きくなるほど、補正量2(θBL2)が大きくなるという関係にある。
【0117】
また、
図22に示すように、反転時トルクτdirと補正時間tBL2とは、反転時トルクτdirが大きくなるほど、補正時間tBL2が小さくなるという関係にある。
【0118】
そこで、例えば、
図23A~
図23Cに示すように、直径10mmの円を1m/分で切断する作業について検討すると、この作業は、
図20A~
図20Cに示す作業(直径10mmの円を2m/分で切断)よりもモータ12の回転速度が遅いため、反転時トルクτdirが小さくなる。そのため、位置指令に加算又は減算させる補正量2(θBL2)の大きさが小さく、補正時間tBL2が長くなるようにすればよい。
【0119】
以上のように、本実施形態に係るロボット制御装置20によれば、反転時トルクが所定の閾値よりも大きい場合に、補正対象の関節部J1のバックラッシュに加えて、ねじれについても補正することで、ロボットアーム2の軌跡誤差を低減することができる。
【0120】
《実施形態2》
図24は、本実施形態2に係るロボット制御装置のブロック線図である。以下、前記実施形態1と同じ部分については同じ符号を付し、相違点についてのみ説明する。
【0121】
図24に示すように、バックラッシュ補正ブロック70には、補正対象である関節部J1(旋回軸)の位置指令θ1cのみが入力される。
【0122】
ここで、関節部J1には、重力が印加されず、さらに、軌跡精度が必要な動作速度は、10m/分以下(最大速度の1/20以下)である。そのため、動力学トルクτdynの主要成分は、以下の(1)式に示すように、自軸の慣性力となる。
【0123】
τdyn≒J×αC ・・・(1)
ここで、Jは、旋回軸回りのイナーシャである。イナーシャは、作業時のロボット1の姿勢に依存する。また、αCは、加速度成分である。加速度成分αCは、角速度成分dθcの微分値である。
【0124】
図25は、バックラッシュ補正ブロックの詳細構成を示す。バックラッシュ補正ブロック70は、角速度演算ブロック71と、加速度演算ブロック72と、指令速度成分反転検出ブロック73と、反転時加速度検出ブロック74と、バックラッシュ補正量演算ブロック75とを有している。
【0125】
角速度演算ブロック71では、旋回軸の位置指令θ1cの微分値である角速度成分dθcを演算する。角速度演算ブロック71で演算された角速度成分dθcは、加速度演算ブロック72と、指令速度成分反転検出ブロック73に入力される。
【0126】
加速度演算ブロック72では、角速度成分dθcの微分値である加速度成分αCを演算する。加速度演算ブロック72で演算された加速度成分αCは、反転時加速度検出ブロック74と、バックラッシュ補正量演算ブロック75に入力される。
【0127】
指令速度成分反転検出ブロック73では、角速度成分dθcに基づいて、反転タイミングdirが演算される。反転タイミングdirは、反転時加速度検出ブロック74と、バックラッシュ補正量演算ブロック75に入力される。
【0128】
反転時加速度検出ブロック74では、加速度成分αCと、反転タイミングdirとに基づいて、反転時加速度αdirが演算される。
【0129】
バックラッシュ補正量演算ブロック75では、加速度成分αCと、反転時加速度αdirと、反転タイミングdirとに基づいて、関節部J1の補正量θ1BLが演算される。
【0130】
なお、バックラッシュ補正のみを行う場合には、バックラッシュ補正量(補正量1(θBL1))を含む波形が補正量θ1BLとして出力される。ここで、バックラッシュ補正量は、実験などによって予め決められた値である。
【0131】
一方、バックラッシュ補正及びねじれ補正を行う場合には、例えば、後述する
図26Cに示す補正量1(θBL1)、ねじれ補正量(補正量2(θBL2))、及び補正時間tBL2の波形が補正量θ1BLとして出力される。
【0132】
そして、メイン制御部22から第1のサーボ制御部23に送られる位置指令θ1cに、バックラッシュ補正量演算ブロック64で演算された補正量θ1BLが加味された新たな位置指令が第1のサーボ制御部23に入力され、第1のサーボ制御部23によって第1のモータ12の駆動が制御される。
【0133】
第1のサーボ制御部23では、反転時加速度αdirの大きさに応じて、補正量を調整するようにしている。具体的に、上述した直径10mmの円を0.2m/分で切断する作業(
図2参照)であれば、反転時加速度αdirが所定の加速度閾値αthよりも小さいので、関節部J1に生じるねじれの影響が小さく、バックラッシュ補正のみを行うようにすればよい。
【0134】
一方、上述した直径10mmの円を2m/分で切断する作業(
図7参照)であれば、指令速度成分、動力学トルク、補正量の時間変化は、
図26A~
図26Cに示すグラフ図で表される。
【0135】
ここで、直径10mmの円を2m/分で切断する条件下では、レーザ切断速度が速いため、
図26Bに示すように、反転時加速度αdirが所定の加速度閾値αthを越えている。
【0136】
そのため、関節部J1に生じるねじれの影響が大きく、
図26Cに示すように、バックラッシュ補正に加えて、ねじれ補正も行うようにすればよい。
【0137】
ところで、
図27に示すように、反転時加速度αdirとねじれ補正量である補正量2(θBL2)とは、反転時加速度αdirが大きくなるほど、補正量2(θBL2)が大きくなるという関係にある。
【0138】
また、
図28に示すように、反転時加速度αdirと補正時間tBL2とは、反転時加速度αdirが大きくなるほど、補正時間tBL2が小さくなるという関係にある。
【0139】
そこで、例えば、直径10mmの円を1m/分で切断する作業について検討すると、この作業は、
図26A~
図26Cに示す作業(直径10mmの円を2m/分で切断)よりもモータ12の回転速度が遅いため、反転時加速度αdirが小さくなる。そのため、位置指令に加算又は減算させる補正量2(θBL2)の大きさが小さく、補正時間tBL2が長くなるようにすればよい。
【0140】
なお、ロボット1の姿勢による旋回軸回りのイナーシャの変化に対しては、
図27及び
図28に示す補正量2(θBL2)及び補正時間tBL2のテーブルを複数組用意することで対応すればよい。
【0141】
以上のように、本実施形態に係るロボット制御装置20によれば、反転時加速度が所定の閾値よりも大きい場合に、補正対象の関節部J1のバックラッシュに加えて、ねじれについても補正することで、ロボットアーム2の軌跡誤差を低減することができる。
【0142】
《その他の実施形態》
前記実施形態については、以下のような構成としてもよい。
【0143】
本実施形態では、垂直多関節6軸のロボット1を例にとって説明したが、特にこれに限定されない。ロボットの関節部の数は6つに限られず、ロボットの仕様等によって適宜変更されうる。
【産業上の利用可能性】
【0144】
以上説明したように、本発明は、ロボットアームの軌跡誤差を低減することができるという実用性の高い効果が得られることから、きわめて有用で産業上の利用可能性は高い。
【符号の説明】
【0145】
1 ロボット
2 ロボットアーム
20 ロボット制御装置
61 角速度演算ブロック(角速度演算部)
60 動力学演算ブロック(動力学演算部)
62 指令速度成分反転検出ブロック(反転タイミング演算部)
63 反転時トルク検出ブロック(反転時トルク演算部)
64 バックラッシュ補正量演算ブロック(補正量演算部)
71 角速度演算ブロック(角速度演算部)
72 加速度演算ブロック(加速度演算部)
73 指令速度成分反転検出ブロック(反転タイミング演算部)
74 反転時加速度検出ブロック(反転時加速度演算部)
75 バックラッシュ補正量演算ブロック(補正量演算部)
J1 関節部(旋回軸)
J2~J6 関節部